https://bugs.winehq.org/show_bug.cgi?id=48499
--- Comment #3 from Vincent Povirk madewokherd@gmail.com --- Copying my original comment explaining the problem:
The method is obfuscated by using a switch instruction to branch between parts of the IL. It also violates an important rule of IL code: For each IL instruction, the stack should be the same depth regardless of the path taken to reach that instruction. There are obvious loops involving the switch instruction where the stack depth would be changed. I don't think it's possible for Mono's JIT to execute code like this given the approach it currently takes.