https://bugs.winehq.org/show_bug.cgi?id=49598
--- Comment #10 from Zebediah Figura z.figura12@gmail.com --- I don't think there's actually a Wine bug here.
If I manually poke various values into %ecx at the end of wsprintfA(), the program will essentially hang on the "Steam Scan" step for some amount of time. E.g. if %ecx = 0, it hangs for about 6 seconds, if %ecx = 1, it doesn't hang, if %ecx = 0x80000000, it hangs for about 3 seconds. This would be consistent with some loop executing %ecx times.
Moreover, though, I manually tried calling wsprintfA() on Windows, with the exact same parameter values, and it didn't preserve %ecx—it set it to some random value relatively high in the memory space. Running the program with steam_api.dll caused it to hang in the "Steam Scan" for about 5 seconds.
Béla, does the program hang forever for you? If not, and you can reproduce similar behaviour, I think this is an application bug, not a Wine bug.