https://bugs.winehq.org/show_bug.cgi?id=47077
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Regression: Brawlhalla |Brawlhalla (Steam) crashes |crashes with latest wine |with Wine 4.6 (Steam Game | |Overlay Renderer hook | |engine can't cope with | |GOT/PIC register load code | |at API entry, needs | |DECLSPEC_HOTPATCH for | |setupapi.SetupDiEnumDeviceI | |nfo) CC| |focht@gmx.net URL|http://www.brawlhalla.com/p |https://store.steampowered. |lay/ |com/app/291550/Brawlhalla/ Component|-unknown |setupapi
--- Comment #7 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming. Refining some fields to be less ambiguous and have better Bugzilla query results.
The game seems to use Adobe AIR but the culprit is Steam Game Overlay Renderer hooking various APIs, and some of them have GOT/PIC register load code directly at API entry which is a no-no.
--- snip --- SetupDiEnumDeviceInfo:
79162040 E9 C5E0EA05 JMP 7F01010A 79162045 05 BBBF0500 ADD EAX,5BFBB 7916204A 8D4C24 04 LEA ECX,DWORD PTR SS:[ESP+4] 7916204E 83E4 F0 AND ESP,FFFFFFF0 79162051 FF71 FC PUSH DWORD PTR DS:[ECX-4] 79162054 55 PUSH EBP 79162055 89E5 MOV EBP,ESP 79162057 57 PUSH EDI 79162058 56 PUSH ESI 79162059 53 PUSH EBX 7916205A 51 PUSH ECX 7916205B 83EC 18 SUB ESP,18 7916205E 8B11 MOV EDX,DWORD PTR DS:[ECX] 79162060 8B59 04 MOV EBX,DWORD PTR DS:[ECX+4] 79162063 8B71 08 MOV ESI,DWORD PTR DS:[ECX+8] 79162066 F680 141D0100 08 TEST BYTE PTR DS:[EAX+11D14],8 ; *boom* 7916206D 75 61 JNZ SHORT setupapi.791620D0 7916206F 8D42 FF LEA EAX,DWORD PTR DS:[EDX-1] 79162072 83F8 FD CMP EAX,-3
...
7F01010A E9 918B0891 JMP gameover.10098CA0 7F01010F 0000 ADD BYTE PTR DS:[EAX],AL 7F010111 0000 ADD BYTE PTR DS:[EAX],AL --- snip ---
--- snip --- Executable modules Base Size Entry Name File version Path
00400000 00027000 00401725 Brawlhal C:\Program Files (x86)\Steam\steamapps\common\Brawlhalla\Brawlhalla.exe 018A0000 0150D000 018F5187 Adobe_AI 19.0.0.213 C:\Program Files (x86)\Steam\steamapps\common\Brawlhalla\Adobe AIR\Versions\1.0\Adobe AIR.dll 10000000 00164000 100A6D61 gameover 05.03.63.53 C:\Program Files (x86)\Steam\gameoverlayrenderer.dll 79150000 00085000 79155AA0 setupapi C:\windows\system32\setupapi.dll 7A390000 00112000 7A393D00 opengl32 5.1.2600.2082 C:\windows\system32\opengl32.dll ... --- snip ---
--- snip --- $ gdb /home/focht/projects/wine/staging-install-4.6-x86_64/lib/wine/setupapi.dll.so -batch -ex 'disassemble SetupDiEnumDeviceInfo' Dump of assembler code for function SetupDiEnumDeviceInfo: 0x00023040 <+0>: call 0x294b6 <__x86.get_pc_thunk.ax> 0x00023045 <+5>: add $0x5bfbb,%eax 0x0002304a <+10>: lea 0x4(%esp),%ecx 0x0002304e <+14>: and $0xfffffff0,%esp 0x00023051 <+17>: pushl -0x4(%ecx) 0x00023054 <+20>: push %ebp 0x00023055 <+21>: mov %esp,%ebp 0x00023057 <+23>: push %edi 0x00023058 <+24>: push %esi 0x00023059 <+25>: push %ebx 0x0002305a <+26>: push %ecx 0x0002305b <+27>: sub $0x18,%esp 0x0002305e <+30>: mov (%ecx),%edx 0x00023060 <+32>: mov 0x4(%ecx),%ebx 0x00023063 <+35>: mov 0x8(%ecx),%esi 0x00023066 <+38>: testb $0x8,0x11d14(%eax) 0x0002306d <+45>: jne 0x230d0 <SetupDiEnumDeviceInfo+144> 0x0002306f <+47>: lea -0x1(%edx),%eax ... --- snip ---
Regards