https://bugs.winehq.org/show_bug.cgi?id=46918
--- Comment #7 from Ethan Lee flibitijibibo@gmail.com --- More on the "why did I let myself open the disassembly tab" saga:
I stepped through the Source DSP's Process function and it seems the reason for crashing may be an infinite loop. Consider this function...
void Blorp(float4* x, float4* y) { while (x != y) { *x = *y; // Just making something up... x++; } }
For whatever reason it's giving the equivalent of Blorp(0x430, 0x420) when SetParameters is called. This causes infinite overwriting, resulting in corruption in other parts of the engine, which is why the crash doesn't necessarily happen on the audio thread but does always stop when the audio thread is in IXAPO_Process.
When we skip SetParameters it doesn't even go to the routine in question, so unfortunately it's hard to say if there's a corrupted variable without just My First Fuzzing the thing.