https://bugs.winehq.org/show_bug.cgi?id=40779
--- Comment #10 from Vincent Povirk madewokherd@gmail.com --- I don't think we can run the current version.
It seems to have trouble with this method: converting method string W9sL8qMZ2gvL5ALRQZ.ECXxAIAI190mcxNI82:A2fd5lmlNX (int) * Assertion at /home/meh/work/wine-mono/mono/mono/metadata/metadata.c:1081, condition `index < meta->heap_blob.size' not met
Looking at it more closely, 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.
It might be possible for an interpreter, but I don't think it's possible to use the interpreter in Mono selectively, or to run Windows programs in a fully interpreted mode.