https://bugs.winehq.org/show_bug.cgi?id=40068
--- Comment #28 from Dmitry Timoshkov dmitry@baikal.ru --- (In reply to Andrew Kennedy from comment #27)
I corrected this
FireThread: [...] sub ebp,12 ; as 3 local variables --- snip ---
The register %ebp was never properly initialized, effectively corrupting the variables of the parent function.
Corrected line is
; PROBLEM HERE ?? ebp was never properly initialized ;sub ebp,12 ; as 3 local variables sub esp,12 ; CORRECT statment
As far as I am concerned, it IS fixed.
Quoting Sebastian's reply from Comment 22: "the issue is explained in comment 14, and can be easily fixed by allocating a proper stack frame at the beginning of the function and initializing %ebp before using it. Based on the original description I assume you are a bit familiar with assembler and can easily do this change yourself."
What you did above doesn't qualify as a proper fix.