terraria-cpp2il-methodrecon v1.4.4.9
Terraria mobile dump, with reconstructed method body. Dump with CallAnalysis: https://infinitynichto.github.io/terraria-cpp2il
Loading...
Searching...
No Matches
UTF16Decoder.cs
Go to the documentation of this file.
1using System;
3using System.Text;
5
6namespace System.Xml
7{
8 // Token: 0x0200009C RID: 156
9 internal class UTF16Decoder : Decoder
10 {
11 // Token: 0x06000746 RID: 1862 RVA: 0x00018820 File Offset: 0x00016A20
13 {
14 }
15
16 // Token: 0x06000747 RID: 1863 RVA: 0x00003FFD File Offset: 0x000021FD
17 public override int GetCharCount(byte[] bytes, int index, int count)
18 {
19 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
20 }
21
22 // Token: 0x06000748 RID: 1864 RVA: 0x00018834 File Offset: 0x00016A34
23 public override int GetCharCount(byte[] bytes, int index, int count, bool flush)
24 {
25 int num = this.lastByte;
27 }
28
29 // Token: 0x06000749 RID: 1865 RVA: 0x00018850 File Offset: 0x00016A50
30 public override int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex)
31 {
32 /*
33An exception occurred when decompiling this method (06000749)
34
35ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 System.Xml.UTF16Decoder::GetChars(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32)
36
37 ---> System.Exception: Basic block has to end with unconditional control flow.
38{
39 IL_002A:
40 call:void(Buffer::BlockCopy, ldloc:uint8[][exp:Array](bytes), ldloc:int32(byteIndex), ldloc:char[][exp:Array](chars), ldloc:int32(byteCount), ldloc:int32(byteCount))
41}
42
43 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
44 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
45 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
46 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
47 --- End of inner exception stack trace ---
48 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
49 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1683
50*/;
51 }
52
53 // Token: 0x0600074A RID: 1866 RVA: 0x00018894 File Offset: 0x00016A94
54 public override void Convert(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex, int charCount, bool flush, [Out] int bytesUsed, [Out] int charsUsed, [Out] bool completed)
55 {
56 int num = this.lastByte;
57 if (byteCount == 0)
58 {
59 return;
60 }
61 int num2 = this.lastByte;
62 bool flag = this.bigEndian;
64 bool flag2 = this.bigEndian;
65 if (num2 == 0)
66 {
67 }
68 if (this.bigEndian)
69 {
70 return;
71 }
72 }
73
74 // Token: 0x040003B7 RID: 951
75 private bool bigEndian;
76
77 // Token: 0x040003B8 RID: 952
78 private int lastByte;
79 }
80}
class f__AnonymousType0<< Count > j__TPar
override int GetCharCount(byte[] bytes, int index, int count, bool flush)
override int GetCharCount(byte[] bytes, int index, int count)
override int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex)
UTF16Decoder(bool bigEndian)
override void Convert(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex, int charCount, bool flush, [Out] int bytesUsed, [Out] int charsUsed, [Out] bool completed)