https://bugs.winehq.org/show_bug.cgi?id=49436
--- Comment #10 from Maciej Stanczew maciej.stanczew+b@gmail.com --- Thank you for a great summary.
You can launch the game directly, skipping Battle.net Launcher, by running: $ wine 'Diablo III64.exe' -launch Then the part about TLS callbacks doesn't seem to come into play and break anything. I have compiled Staging 5.11 with the 'tmpKiUserExceptionDispatcher' hack *and* with 1dc3383389da636617bfa7d9570e7de5c94f7882 applied, and the game launches without issues.
(Btw, does this mean that 1dc3383389da636617bfa7d9570e7de5c94f7882 breaks Battle.net Launcher?)
I then compiled Staging 5.11 with 1dc3383389da636617bfa7d9570e7de5c94f7882 (without the hack), and added some logs to KiUserExceptionDispatcher. First of all, behavior changed a bit: after the exception, there is now: 00d4:err:seh:setup_exception stack overflow 1728 bytes in thread 00d4 eip 00007f7d426a6029 esp 00000000008a0f50 stack 0x8a0000-0x8a1000-0x9a0000 00c8:err:ntdll:RtlpWaitForCriticalSection section 0x7bd1b520 "../../../wine-staging/dlls/ntdll/loader.c: loader_section" wait timed out in thread 00c8, blocked by 00d4, retrying (60 sec)
What I found from the logs is that there are repeated (recursive?) calls to KiUserExceptionDispatcher just before the stack overflow exception. New exceptions are generated on dereferencing of 'rec' and/or 'context' variables. But I don't really understand how this hotpatching works, so I don't know if those logs make any sense at all.