Decompiler
Transforms ISIL into higher level with stack analysis, ssa form, simplification, etc. and then translates that into CIL. The decompiled C# is pretty messy right now (dnSpy just refuses to decompile it, but ILSpy works) but most of the times it's possible to at least see what methods do.
I'm MrUser127 btw, i changed my name, and that stuff in that previous decompiler pr should now be fixed, and now i actually have motivation to work on this if something needs to be changed
Pull Request Test Coverage Report for Build 19646943404
Details
- 100 of 1854 (5.39%) changed or added relevant lines in 29 files are covered.
- 41 unchanged lines in 6 files lost coverage.
- Overall coverage decreased (-4.0%) to 30.3%
| Changes Missing Coverage | Covered Lines | Changed/Added Lines | % |
|---|---|---|---|
| Cpp2IL.Core/ISIL/StackOffset.cs | 1 | 2 | 50.0% |
| Cpp2IL.Core/InstructionSets/Arm64InstructionSet.cs | 0 | 1 | 0.0% |
| Cpp2IL.Core/InstructionSets/ArmV7InstructionSet.cs | 0 | 1 | 0.0% |
| Cpp2IL.Core/InstructionSets/WasmInstructionSet.cs | 0 | 1 | 0.0% |
| Cpp2IL.Core/DecompilerException.cs | 0 | 3 | 0.0% |
| Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormat.cs | 0 | 3 | 0.0% |
| Cpp2IL.Core/ProcessingLayers/CallAnalysisProcessingLayer.cs | 0 | 4 | 0.0% |
| Cpp2IL.Core/ISIL/FieldReference.cs | 0 | 5 | 0.0% |
| Cpp2IL.Core/ISIL/LocalVariable.cs | 0 | 5 | 0.0% |
| Cpp2IL.Core/ProcessingLayers/NativeMethodDetectionProcessingLayer.cs | 0 | 5 | 0.0% |
| <!-- | Total: | 100 | 1854 |
| Files with Coverage Reduction | New Missed Lines | % |
|---|---|---|
| Cpp2IL.Core/Graphs/ISILControlFlowGraph.cs | 1 | 38.29% |
| Cpp2IL.Core/Extensions/MiscExtensions.cs | 2 | 5.23% |
| Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs | 2 | 53.9% |
| Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs | 3 | 0.79% |
| Cpp2IL.Core/InstructionSets/NewArmV8InstructionSet.cs | 12 | 0.0% |
| Cpp2IL.Core/InstructionSets/X86InstructionSet.cs | 21 | 0.13% |
| <!-- | Total: | 41 |
| Totals | |
|---|---|
| Change from base Build 18333364266: | -4.0% |
| Covered Lines: | 4084 |
| Relevant Lines: | 11864 |
💛 - Coveralls
So I attempted to review this but I think you have a massive number of thread safety issues. I got thousands of exceptions - some concurrent modification, some sequence contained no matching element, and various others - while analyzing, and then when it finished and tried to write the assemblies, I got an AggregateException with 2588 inner exceptions, most of which were either MemberNotImportedException, or IL_[offset] references an offset that is not present in the method body.
From a quick look, you're using one _ilGenerator in AsmResolverDllOutputFormatIlRecovery.FillMethodBody, but that method is called in parallel so you've got multiple calls to it at once, which it can't handle - e.g. it maintains an _importer field which is being overwritten constantly, so methods are being imported into the wrong modules. Seems you'll have to pass that through.
The control flow graphs I did get (I uncommented the line which wrote them, so that I could evaluate the decompilation in at least some way) looked promising, though they were much more complex and I didn't have much time to familiarise myself with the string representations you were using.
For reference, I was attempting to decompile AUDICA.
I forgot to try this in non debug mode so stuff was not actually parallel, should be fixed now
When i try to use the dll_il_recovery option for the output im getting many errors. Is this maybe a common error or can someone help me? I tried different versions of my game with different unity versions. Both smaller than 2022 and one 6000. Log: `E:\X>Cpp2IL.exe --game-path " x1.0.0 Unity 2018.4.6f1.apk" --output-as dll_il_recovery ===Cpp2IL by Samboy063=== A Tool to Reverse Unity's "il2cpp" Build Process. Version 2022.1.0-pr-481.1408+4d8d062.4d8d06293af897be820a2b80363a64f98d473d27
[Info] [Program] Running on Win32NT
[Info] [Plugins] Loading plugins from E:\X\Plugins...
[Info] [Plugins] Using Plugin: Cpp2IL Built-In
[Info] [APK] Attempting to extract required files from APK x1.0.0 Unity 2018.4.6f1.apk
[Info] [APK] Extracting APK/lib/arm64-v8a/libil2cpp.so to C:\Users\AppData\Local\Temp\tmpf2kola.tmp
[Info] [APK] Extracting APK/assets/bin/Data/Managed/Metadata/global-metadata.dat to C:\Users\AppData\Local\Temp\tmpbuzvk5.tmp
[Info] [APK] Reading globalgamemanagers to determine unity version...
[Info] [APK] Determined game's unity version to be 2018.4.6f1
[Info] [Library] Initializing Metadata...
[Info] [Library] Using actual IL2CPP Metadata version 24,1
[Info] [Library] Initialized Metadata in 455ms
[Info] [Library] Using binary type ELF (from LibCpp2IL)
[Info] [Library] Searching Binary for Required Data...
[Info] [Library] Got Binary codereg: 0x304D0F0, metareg: 0x304D160 in 588ms.
[Info] [Library] Initializing Binary...
[Info] [Library] Initialized Binary in 108ms
[Info] [Library] Mapping Globals...OK (30ms)
[Info] [Library] Mapping pointers to Il2CppMethodDefinitions...Processed 59927 OK (68ms)
[Info] [Program] Creating application model...
[Info] [Program] Application model created in 3742,4124ms
[Info] [Program] Pre-processing processing layers...
[Info] [Program] Invoking processing layers...
[Info] [Program] Outputting as DLL files with IL Recovery to E:\X\cpp2il_out...
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::IsWordBreak failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List1.get_Item(Int32 index) at Cpp2IL.Core.Analysis.LocalVariables.PropagateFromCallParameters(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/LocalVariables.cs:line 249 at Cpp2IL.Core.Analysis.LocalVariables.PropagateTypes(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/LocalVariables.cs:line 196 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /_/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 321 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 [Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::.ctor failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') at System.Collections.Generic.List1.get_Item(Int32 index)
at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in //Cpp2IL.Core/Analysis/LocalVariables.cs:line 85
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in //Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in //Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::Parse failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List1.get_Item(Int32 index) at Cpp2IL.Core.Analysis.LocalVariables.PropagateFromCallParameters(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/LocalVariables.cs:line 249 at Cpp2IL.Core.Analysis.LocalVariables.PropagateTypes(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/LocalVariables.cs:line 196 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /_/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 321 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 [Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::Dispose failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') at System.Collections.Generic.List1.get_Item(Int32 index)
at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in //Cpp2IL.Core/Analysis/LocalVariables.cs:line 85
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in //Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in //Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::ParseObject failed: System.Collections.Generic.KeyNotFoundException: The given key 'Exit 1
' was not present in the dictionary. at System.Collections.Generic.Dictionary`2.get_Item(TKey key) at Cpp2IL.Core.Analysis.StackAnalyzer.Analyze(MethodAnalysisContext method) in //Cpp2IL.Core/Analysis/StackAnalyzer.cs:line 38 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in //Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 310 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 [Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::ParseArray failed: System.Collections.Generic.KeyNotFoundException: The given key 'Exit 1
' was not present in the dictionary.
at System.Collections.Generic.Dictionary2.get_Item(TKey key) at Cpp2IL.Core.Analysis.StackAnalyzer.Analyze(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/StackAnalyzer.cs:line 38 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /_/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 310 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 [Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::ParseValue failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') at System.Collections.Generic.List1.get_Item(Int32 index)
at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in //Cpp2IL.Core/Analysis/LocalVariables.cs:line 85
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in //Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in //Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::ParseByToken failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List1.get_Item(Int32 index) at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/LocalVariables.cs:line 85 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /_/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 [Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::ParseString failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') at System.Collections.Generic.List1.get_Item(Int32 index)
at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in //Cpp2IL.Core/Analysis/LocalVariables.cs:line 85
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in //Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in //Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::ParseNumber failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List1.get_Item(Int32 index) at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/LocalVariables.cs:line 85 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /_/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 [Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::EatWhitespace failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') at System.Collections.Generic.List1.get_Item(Int32 index)
at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in //Cpp2IL.Core/Analysis/LocalVariables.cs:line 85
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in //Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in //Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::get_PeekChar failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List1.get_Item(Int32 index) at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/LocalVariables.cs:line 85 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /_/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 [Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::get_NextChar failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') at System.Collections.Generic.List1.get_Item(Int32 index)
at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in //Cpp2IL.Core/Analysis/LocalVariables.cs:line 85
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in //Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in //Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::get_NextWord failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List1.get_Item(Int32 index) at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/LocalVariables.cs:line 85 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /_/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 [Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Parser::get_NextToken failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') at System.Collections.Generic.List1.get_Item(Int32 index)
at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in //Cpp2IL.Core/Analysis/LocalVariables.cs:line 85
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in //Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in //Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Serializer::.ctor failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List1.get_Item(Int32 index) at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/LocalVariables.cs:line 85 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /_/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 [Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Serializer::Serialize failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') at System.Collections.Generic.List1.get_Item(Int32 index)
at Cpp2IL.Core.Analysis.LocalVariables.PropagateFromCallParameters(MethodAnalysisContext method) in //Cpp2IL.Core/Analysis/LocalVariables.cs:line 249
at Cpp2IL.Core.Analysis.LocalVariables.PropagateTypes(MethodAnalysisContext method) in //Cpp2IL.Core/Analysis/LocalVariables.cs:line 196
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in //Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 321
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in //Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Serializer::SerializeValue failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List1.get_Item(Int32 index) at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/LocalVariables.cs:line 85 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /_/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 [Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Serializer::SerializeObject failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') at System.Collections.Generic.List1.get_Item(Int32 index)
at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in //Cpp2IL.Core/Analysis/LocalVariables.cs:line 85
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in //Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in //Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Serializer::SerializeArray failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List`1.get_Item(Int32 index)
at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in //Cpp2IL.Core/Analysis/LocalVariables.cs:line 85
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in //Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Serializer::SerializeString failed: System.Collections.Generic.KeyNotFoundException: The given key 'Exit 1
' was not present in the dictionary.
at System.Collections.Generic.Dictionary2.get_Item(TKey key) at Cpp2IL.Core.Analysis.StackAnalyzer.Analyze(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/StackAnalyzer.cs:line 38 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /_/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 310 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 [Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.Json+Serializer::SerializeOther failed: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') at System.Collections.Generic.List1.get_Item(Int32 index)
at Cpp2IL.Core.Analysis.LocalVariables.CreateAll(MethodAnalysisContext method) in //Cpp2IL.Core/Analysis/LocalVariables.cs:line 85
at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in //Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 314
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53
[Fail] [Program] Decompiling UnityEngine.Purchasing.MiniJSON.MiniJsonExtensions::toJson failed: System.Collections.Generic.KeyNotFoundException: The given key 'Exit 1
' was not present in the dictionary.
at System.Collections.Generic.Dictionary2.get_Item(TKey key) at Cpp2IL.Core.Analysis.StackAnalyzer.Analyze(MethodAnalysisContext method) in /_/Cpp2IL.Core/Analysis/StackAnalyzer.cs:line 38 at Cpp2IL.Core.Model.Contexts.MethodAnalysisContext.Analyze() in /_/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs:line 310 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 53 Unhandled exception. System.AggregateException: One or more errors occurred. (Failed to process type Locale (module mscorlib.dll, declaring type ) in mscorlib) ---> System.Exception: Failed to process type Locale (module mscorlib.dll, declaring type ) in mscorlib ---> System.InvalidOperationException: Sequence contains no matching element at System.Linq.ThrowHelper.ThrowNoMatchException() at System.Linq.Enumerable.First[TSource](IEnumerable1 source, Func2 predicate) at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FindExceptionConstructor(MethodDefinition method) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 80 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormatIlRecovery.FillMethodBody(MethodDefinition methodDefinition, MethodAnalysisContext methodContext) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormatIlRecovery.cs:line 28 at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormat.FillMethodBodies(AssemblyAnalysisContext context) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormat.cs:line 143 --- End of inner exception stack trace --- at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormat.FillMethodBodies(AssemblyAnalysisContext context) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormat.cs:line 150 at System.Linq.Parallel.PartitionedDataSource1.ListContiguousIndexRangeEnumerator.MoveNext(T& currentElement, Int32& currentKey)
at System.Linq.Parallel.StopAndGoSpoolingTask2.SpoolingWork() at System.Linq.Parallel.SpoolingTaskBase.Work() at System.Linq.Parallel.QueryTask.BaseWork(Object unused) at System.Linq.Parallel.QueryTask.<>c.<.cctor>b__10_0(Object o) at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__292_0(Object obj) at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location --- at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) --- End of inner exception stack trace --- at System.Linq.Parallel.QueryTaskGroupState.QueryEnd(Boolean userInitiatedDispose) at System.Linq.Parallel.SpoolingTask.SpoolStopAndGo[TInputOutput,TIgnoreKey](QueryTaskGroupState groupState, PartitionedStream2 partitions, SynchronousChannel1[] channels, TaskScheduler taskScheduler) at System.Linq.Parallel.DefaultMergeHelper2.System.Linq.Parallel.IMergeHelper<TInputOutput>.Execute()
at System.Linq.Parallel.MergeExecutor1.Execute() at System.Linq.Parallel.MergeExecutor1.Execute[TKey](PartitionedStream2 partitions, Boolean ignoreOutput, ParallelMergeOptions options, TaskScheduler taskScheduler, Boolean isOrdered, CancellationState cancellationState, Int32 queryId) at System.Linq.Parallel.PartitionedStreamMerger1.Receive[TKey](PartitionedStream2 partitionedStream) at System.Linq.Parallel.UnaryQueryOperator2.UnaryQueryOperatorResults.GivePartitionedStream(IPartitionedStreamRecipient1 recipient) at System.Linq.Parallel.QueryOperator1.GetOpenedEnumerator(Nullable1 mergeOptions, Boolean suppressOrder, Boolean forEffect, QuerySettings querySettings) at System.Linq.Parallel.QueryOpeningEnumerator1.OpenQuery()
at System.Linq.Parallel.QueryOpeningEnumerator1.MoveNext() at System.Linq.ParallelEnumerable.ToList[TSource](ParallelQuery1 source)
at Cpp2IL.Core.Utils.MiscUtils.ExecuteParallel[T](IEnumerable1 enumerable, Action1 what) in //Cpp2IL.Core/Utils/MiscUtils.cs:line 257
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormat.BuildAssemblies(ApplicationAnalysisContext context) in //Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormat.cs:line 117
at Cpp2IL.Core.OutputFormats.AsmResolverDllOutputFormat.DoOutput(ApplicationAnalysisContext context, String outputRoot) in /_/Cpp2IL.Core/OutputFormats/AsmResolverDllOutputFormat.cs:line 29
at Cpp2IL.Program.MainWithArgs(Cpp2IlRuntimeArgs runtimeArgs) in /home/runner/work/Cpp2IL/Cpp2IL/Cpp2IL/Program.cs:line 705
at Cpp2IL.Program.Main(String[] args) in /home/runner/work/Cpp2IL/Cpp2IL/Cpp2IL/Program.cs:line 617
`