https://bugs.winehq.org/show_bug.cgi?id=40068
--- Comment #14 from Sebastian Lackner sebastian@fds-team.de --- (In reply to Andrew Kennedy from comment #11)
There is no stack corruption under XP.
It always corrupts the stack, with more or less critical consequences. Michael Müller spotted what is going wrong:
--- snip --- FireThread: [...] sub ebp,12 ; as 3 local variables --- snip ---
The register %ebp was never properly initialized, effectively corrupting the variables of the parent function. Depending on the Windows version, the registers are initialized a bit different, effectively hiding all the trouble on Windows XP. Dmitry wrote a patch to "fix" it, which I've added to the Staging tree.
I can't guarantee that the patch will be accepted though. It is out of the scope of wine to be 100% bug-compatible with Windows, especially when your application is clearly doing something which can't work.