https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #27 from Fabian Maurer dark.shadow4@web.de --- 1) Well, the crash happened right after "GetMenuInfo", so my first idea was to make GetMenuInfo always do nothing and see if it still works (it does).
2) Second was experience, pointer truncation is a common problem in 64Bit compatibility... And it worked in 32Bit. Just a hunch at this point.
3) GetMenuInfo returns a structure with details, one of them an application defined value. So I added a printf statement to output that value.
4) Turned out it crash address is almost the same to that value (a few 100 bytes difference). So that's our problem.
5) Either the program passed a wrong value (unlikely) or we changed it accidentally. I looked into the structure that stores it, and it's saved as DWORD (32Bit). That can't work.
6) Change the DWORD to DWORD_PTR and see if it helps. It does, so no second issue here.
Is that good enough? :D