http://bugs.winehq.org/show_bug.cgi?id=20380
--- Comment #73 from Roderick Colenbrander thunderbird2k@gmail.com 2010-02-13 04:45:22 --- (In reply to comment #72)
"stack pointer esp now invalid" - may be i'm wrong, but "push ebp" at start of usr1_handler definitely generates SIGSEGV.
I'm not an assembly guru bt this sounds very similar as the issue in Populous. In that case the game used Lock directly and it played with the stack pointer internally which messed up our own logic.
You might be able to get a nicer result using winedbg if you disable 'first chance exceptions' (this are the DIBSection segfaults). See http://wiki.winehq.org/Backtraces.
What mostly interests me is where the calls originate from. Is it from Wine itself or from the game?