https://bugs.winehq.org/show_bug.cgi?id=49436
--- Comment #14 from Maciej Stanczew maciej.stanczew+b@gmail.com --- (In reply to Paul Gofman from comment #13)
I am attaching the patch which fixes the issue for me. Tested on top of Staging 37fc290f7786687b95a90b58e31fba00e3f092f2. This patch is also needed: https://source.winehq.org/patches/data/187864
Tested on Wine 13b2587d4f55d64a1381c60ac34acf4abe6bb1e8 with cherry-picked eef527723f02abcdb301b02cae059b123f277d26 and e1e34cdc375baf2d1d5a2266ae0faa885987ab37 + Wine Staging 37fc290f7786687b95a90b58e31fba00e3f092f2 + your patch, and I can confirm the game runs.
It is still crashing in mainstream Wine after reading the same ntdll.dll (but now in non-recoverable way). I can guess the relevant patchset in Staging which makes it work is winebuild-FakeDlls while I did not check that yet.
It does look like it; with Wine 5.10 I get 00ac:err:seh:setup_exception stack overflow 1600 bytes in thread 00ac eip 000000007bcb3f86 esp 0000000000120fd0 stack 0x120000-0x121000-0x220000 and with winebuild-FakeDlls applied the game continues past that, but then hits "D3D Error: Diablo III was unable to initialize D3D. Click OK to retry." If I then install DXVK, the game successfully launches to the login menu.
The latest Staging git has this patchset temporary disabled.
Yeah, I also tried compiling Wine 359ee2ecc21b08e4118f0f77b3a208e4b5e1e63d + Staging 262df397efd272d375fd93be8ee29240faf9ed80, and the game hits 00b8:err:seh:setup_exception stack overflow 832 bytes in thread 00b8 eip 00007fb7de35bd13 esp 00000000001212f0 stack 0x120000-0x121000-0x220000 similarly to the way it is happening in plain Wine. I guess I'll be staying on Staging 5.10 for a bit longer then…