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
BZip2InputStream.cs
Go to the documentation of this file.
1using System;
2using System.IO;
4using Ionic.Crc;
5
6namespace Ionic.BZip2
7{
8 // Token: 0x02000037 RID: 55
9 public class BZip2InputStream : Stream
10 {
11 // Token: 0x060002CC RID: 716 RVA: 0x00009F14 File Offset: 0x00008114
13 {
14 }
15
16 // Token: 0x060002CD RID: 717 RVA: 0x00009F24 File Offset: 0x00008124
17 public BZip2InputStream(Stream input, bool leaveOpen)
18 {
20 this.init();
21 }
22
23 // Token: 0x060002CE RID: 718 RVA: 0x00009F44 File Offset: 0x00008144
24 public override int Read(byte[] buffer, int offset, int count)
25 {
26 while (this.input == null)
27 {
28 }
29 return "offset ({0}) must be > 0";
30 }
31
32 // Token: 0x060002CF RID: 719 RVA: 0x00009F60 File Offset: 0x00008160
33 private void MakeMaps()
34 {
36 long num = 0L;
37 bool[] inUse = decompressionState.inUse;
38 byte[] seqToUnseq = decompressionState.seqToUnseq;
39 this.nInUse = (int)num;
40 }
41
42 // Token: 0x060002D0 RID: 720 RVA: 0x00009F90 File Offset: 0x00008190
43 public override int ReadByte()
44 {
45 long num = this.totalBytesRead;
46 int num2 = this.currentChar;
47 uint num3 = this.storedBlockCRC;
49 this.SetupRandPartB();
50 this.SetupRandPartC();
51 this.SetupNoRandPartC();
52 this.SetupNoRandPartB();
53 return num2;
54 }
55
56 // Token: 0x170000BF RID: 191
57 // (get) Token: 0x060002D1 RID: 721 RVA: 0x00009FD4 File Offset: 0x000081D4
58 public override bool CanRead
59 {
60 get
61 {
62 /*
63An exception occurred when decompiling this method (060002D1)
64
65ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Ionic.BZip2.BZip2InputStream::get_CanRead()
66
67 ---> System.Exception: Basic block has to end with unconditional control flow.
68{
69 Block_0:
70 stloc:Stream(var_0_0E, ldfld:Stream(BZip2InputStream::input, ldloc:BZip2InputStream(this)))
71}
72
73 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
74 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
75 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
76 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
77 --- End of inner exception stack trace ---
78 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
79 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
80*/;
81 }
82 }
83
84 // Token: 0x170000C0 RID: 192
85 // (get) Token: 0x060002D2 RID: 722 RVA: 0x00009FF0 File Offset: 0x000081F0
86 public override bool CanSeek
87 {
88 get
89 {
90 }
91 }
92
93 // Token: 0x170000C1 RID: 193
94 // (get) Token: 0x060002D3 RID: 723 RVA: 0x0000A000 File Offset: 0x00008200
95 public override bool CanWrite
96 {
97 get
98 {
99 /*
100An exception occurred when decompiling this method (060002D3)
101
102ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Ionic.BZip2.BZip2InputStream::get_CanWrite()
103
104 ---> System.Exception: Basic block has to end with unconditional control flow.
105{
106 Block_0:
107 stloc:Stream(var_0_0E, ldfld:Stream(BZip2InputStream::input, ldloc:BZip2InputStream(this)))
108}
109
110 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
111 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
112 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
113 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
114 --- End of inner exception stack trace ---
115 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
116 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
117*/;
118 }
119 }
120
121 // Token: 0x060002D4 RID: 724 RVA: 0x0000A01C File Offset: 0x0000821C
122 public override void Flush()
123 {
124 while (this._disposed)
125 {
126 }
127 Stream stream = this.input;
128 }
129
130 // Token: 0x170000C2 RID: 194
131 // (get) Token: 0x060002D5 RID: 725 RVA: 0x00002122 File Offset: 0x00000322
132 public override long Length
133 {
134 get
135 {
136 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
137 }
138 }
139
140 // Token: 0x170000C3 RID: 195
141 // (get) Token: 0x060002D6 RID: 726 RVA: 0x0000A038 File Offset: 0x00008238
142 // (set) Token: 0x060002D7 RID: 727 RVA: 0x00002122 File Offset: 0x00000322
143 public override long Position
144 {
145 get
146 {
147 return this.totalBytesRead;
148 }
149 set
150 {
151 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
152 }
153 }
154
155 // Token: 0x060002D8 RID: 728 RVA: 0x00002122 File Offset: 0x00000322
156 public override long Seek(long offset, SeekOrigin origin)
157 {
158 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
159 }
160
161 // Token: 0x060002D9 RID: 729 RVA: 0x00002122 File Offset: 0x00000322
162 public override void SetLength(long value)
163 {
164 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
165 }
166
167 // Token: 0x060002DA RID: 730 RVA: 0x00002122 File Offset: 0x00000322
168 public override void Write(byte[] buffer, int offset, int count)
169 {
170 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
171 }
172
173 // Token: 0x060002DB RID: 731 RVA: 0x0000A04C File Offset: 0x0000824C
174 protected override void Dispose(bool disposing)
175 {
176 if (!this._disposed)
177 {
178 if (this.input != null)
179 {
180 }
181 this._disposed = true;
182 }
183 base.Dispose(disposing);
184 }
185
186 // Token: 0x060002DC RID: 732 RVA: 0x0000A098 File Offset: 0x00008298
187 private void init()
188 {
189 if (this.input != null)
190 {
191 int num = 66;
192 long num2 = 0L;
193 this.CheckMagicChar((char)num, (int)num2);
194 int num3 = 90;
195 int num4 = 1;
196 this.CheckMagicChar((char)num3, num4);
197 int num5 = 104;
198 int num6 = 2;
199 this.CheckMagicChar((char)num5, num6);
200 Stream stream = this.input;
201 this.InitBlock();
202 this.SetupBlock();
203 return;
204 }
205 }
206
207 // Token: 0x060002DD RID: 733 RVA: 0x0000A0F0 File Offset: 0x000082F0
208 private void CheckMagicChar(char expected, int position)
209 {
210 Stream stream = this.input;
211 }
212
213 // Token: 0x060002DE RID: 734 RVA: 0x0000A114 File Offset: 0x00008314
214 private void InitBlock()
215 {
216 int bits = this.GetBits(8);
217 int bits2 = this.GetBits(8);
218 int bits3 = this.GetBits(8);
219 int bits4 = this.GetBits(8);
220 int bits5 = this.GetBits(8);
221 int bits6 = this.GetBits(8);
222 this.complete();
223 }
224
225 // Token: 0x060002DF RID: 735 RVA: 0x0000A1A4 File Offset: 0x000083A4
226 private void EndBlock()
227 {
228 int crc32Result = this.crc.Crc32Result;
229 uint num = this.storedBlockCRC;
231 uint num2 = this.computedCombinedCRC;
233 }
234
235 // Token: 0x060002E0 RID: 736 RVA: 0x0000A1E0 File Offset: 0x000083E0
236 private void complete()
237 {
238 uint num = this.bsGetInt();
239 uint num2 = this.computedCombinedCRC;
241 }
242
243 // Token: 0x060002E1 RID: 737 RVA: 0x0000A20C File Offset: 0x0000840C
244 public override void Close()
245 {
246 if (this.input == null || !this._leaveOpen)
247 {
248 }
249 }
250
251 // Token: 0x060002E2 RID: 738 RVA: 0x0000A238 File Offset: 0x00008438
252 private int GetBits(int n)
253 {
254 /*
255An exception occurred when decompiling this method (060002E2)
256
257ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Ionic.BZip2.BZip2InputStream::GetBits(System.Int32)
258
259 ---> System.Exception: Basic block has to end with unconditional control flow.
260{
261 Block_0:
262 stloc:int32(var_0_06, ldfld:int32(BZip2InputStream::bsBuff, ldloc:BZip2InputStream(this)))
263 stloc:CRC32(var_1_0D, ldfld:CRC32(BZip2InputStream::crc, ldloc:BZip2InputStream(this)))
264 stloc:Stream(var_2_14, ldfld:Stream(BZip2InputStream::input, ldloc:BZip2InputStream(this)))
265 stfld:int32(BZip2InputStream::bsBuff, ldloc:BZip2InputStream(this), ldloc:int32(var_0_06))
266}
267
268 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
269 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
270 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
271 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
272 --- End of inner exception stack trace ---
273 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
274 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
275*/;
276 }
277
278 // Token: 0x060002E3 RID: 739 RVA: 0x0000A260 File Offset: 0x00008460
279 private bool bsGetBit()
280 {
281 /*
282An exception occurred when decompiling this method (060002E3)
283
284ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Ionic.BZip2.BZip2InputStream::bsGetBit()
285
286 ---> System.Exception: Basic block has to end with unconditional control flow.
287{
288 Block_0:
289 stloc:int32(var_0_07, call:int32(BZip2InputStream::GetBits, ldloc:BZip2InputStream(this), ldc.i4:int32(1)))
290}
291
292 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
293 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
294 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
295 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
296 --- End of inner exception stack trace ---
297 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
298 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
299*/;
300 }
301
302 // Token: 0x060002E4 RID: 740 RVA: 0x0000A274 File Offset: 0x00008474
303 private char bsGetUByte()
304 {
305 /*
306An exception occurred when decompiling this method (060002E4)
307
308ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Char Ionic.BZip2.BZip2InputStream::bsGetUByte()
309
310 ---> System.Exception: Basic block has to end with unconditional control flow.
311{
312 Block_0:
313 stloc:int32(var_0_07, call:int32(BZip2InputStream::GetBits, ldloc:BZip2InputStream(this), ldc.i4:int32(8)))
314}
315
316 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
317 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
318 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
319 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
320 --- End of inner exception stack trace ---
321 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
322 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
323*/;
324 }
325
326 // Token: 0x060002E5 RID: 741 RVA: 0x0000A288 File Offset: 0x00008488
327 private uint bsGetInt()
328 {
329 /*
330An exception occurred when decompiling this method (060002E5)
331
332ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt32 Ionic.BZip2.BZip2InputStream::bsGetInt()
333
334 ---> System.Exception: Basic block has to end with unconditional control flow.
335{
336 Block_0:
337 stloc:int32(var_0_07, call:int32(BZip2InputStream::GetBits, ldloc:BZip2InputStream(this), ldc.i4:int32(8)))
338 stloc:int32(var_1_0F, call:int32(BZip2InputStream::GetBits, ldloc:BZip2InputStream(this), ldc.i4:int32(8)))
339 stloc:int32(var_2_17, call:int32(BZip2InputStream::GetBits, ldloc:BZip2InputStream(this), ldc.i4:int32(8)))
340 stloc:int32(var_3_1F, call:int32(BZip2InputStream::GetBits, ldloc:BZip2InputStream(this), ldc.i4:int32(8)))
341}
342
343 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
344 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
345 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
346 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
347 --- End of inner exception stack trace ---
348 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
349 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
350*/;
351 }
352
353 // Token: 0x060002E6 RID: 742 RVA: 0x0000A2B4 File Offset: 0x000084B4
354 private static void hbCreateDecodeTables(int[] limit, int[] bbase, int[] perm, char[] length, int minLen, int maxLen, int alphaSize)
355 {
356 if (alphaSize == 0)
357 {
358 }
359 if (alphaSize == 0)
360 {
361 }
363 }
364
365 // Token: 0x060002E7 RID: 743 RVA: 0x0000A2D8 File Offset: 0x000084D8
366 private void recvDecodingTables()
367 {
369 long num5;
370 byte[] seqToUnseq;
371 int bits2;
372 int num8;
373 do
374 {
376 long num = 0L;
377 bool[] inUse = decompressionState.inUse;
378 byte[] recvDecodingTables_pos = decompressionState.recvDecodingTables_pos;
379 int num2 = 1;
380 int bits = this.GetBits(num2);
381 int num3 = 1;
382 int num4 = 1;
383 if (this.GetBits(num4) != 0)
384 {
386 }
388 num5 = 0L;
389 bool[] inUse2 = decompressionState2.inUse;
390 seqToUnseq = decompressionState2.seqToUnseq;
391 int num6 = 3;
392 this.nInUse = (int)num5;
393 bits2 = this.GetBits(num6);
394 int num7 = 15;
395 int bits3 = this.GetBits(num7);
396 num8 = 1;
397 }
398 while (this.GetBits(num8) != 0);
399 byte[] selectorMtf = decompressionState.selectorMtf;
400 seqToUnseq.m_value = selectorMtf;
401 byte[] selectorMtf2 = decompressionState.selectorMtf;
402 byte[] selector = decompressionState.selector;
403 char[][] temp_charArray2d = decompressionState.temp_charArray2d;
404 int num9 = 5;
405 int bits4 = this.GetBits(num9);
406 int num10 = 1;
407 if (this.GetBits(num10) != 0)
408 {
409 int num11 = 1;
410 int bits5 = this.GetBits(num11);
411 return;
412 }
413 this.createHuffmanDecodingTables((int)num5, bits2);
414 }
415
416 // Token: 0x060002E8 RID: 744 RVA: 0x0000A3E0 File Offset: 0x000085E0
418 {
420 char[][] temp_charArray2d = decompressionState.temp_charArray2d;
421 }
422
423 // Token: 0x060002E9 RID: 745 RVA: 0x0000A428 File Offset: 0x00008628
425 {
426 int num = 1;
428 int num2 = 24;
429 int bits = this.GetBits(num2);
430 this.origPtr = bits;
431 if (num == 0)
432 {
433 }
434 int num3 = this.blockSize100k;
435 this.recvDecodingTables();
436 byte[] getAndMoveToFrontDecode_yy = decompressionState.getAndMoveToFrontDecode_yy;
437 int num4 = this.blockSize100k;
438 long num5 = 0L;
439 int[] unzftab = decompressionState.unzftab;
440 if (num5 == 0L)
441 {
442 }
443 int num6 = this.nInUse;
444 long num7 = 0L;
446 int num8 = this.bsBuff;
447 CRC32 crc = this.crc;
448 }
449
450 // Token: 0x060002EA RID: 746 RVA: 0x0000A564 File Offset: 0x00008764
452 {
453 /*
454An exception occurred when decompiling this method (060002EA)
455
456ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Ionic.BZip2.BZip2InputStream::getAndMoveToFrontDecode0(System.Int32)
457
458 ---> System.Exception: Basic block has to end with unconditional control flow.
459{
460 Block_0:
461 stloc:DecompressionState(var_0_06, ldfld:DecompressionState(BZip2InputStream::data, ldloc:BZip2InputStream(this)))
462 stloc:uint8[](var_1_0D, ldfld:uint8[](DecompressionState::selector, ldloc:DecompressionState(var_0_06)))
463 stloc:int32[][](var_2_14, ldfld:int32[][](DecompressionState::gLimit, ldloc:DecompressionState(var_0_06)))
464 stloc:int32[](var_3_1B, ldfld:int32[](DecompressionState::gMinlen, ldloc:DecompressionState(var_0_06)))
465 stloc:int32(var_4_23, call:int32(BZip2InputStream::GetBits, ldloc:BZip2InputStream(this), ldloc:int32(groupNo)))
466 stloc:int32(var_5_2B, ldfld:int32(BZip2InputStream::bsBuff, ldloc:BZip2InputStream(this)))
467 stloc:CRC32(var_6_33, ldfld:CRC32(BZip2InputStream::crc, ldloc:BZip2InputStream(this)))
468 stloc:Stream(var_7_3B, ldfld:Stream(BZip2InputStream::input, ldloc:BZip2InputStream(this)))
469 stfld:int32(BZip2InputStream::bsBuff, ldloc:BZip2InputStream(this), ldloc:int32(var_5_2B))
470 stfld:CRC32(BZip2InputStream::crc, ldloc:BZip2InputStream(this), ldloc:CRC32(var_6_33))
471 stloc:int32[][](var_8_53, ldfld:int32[][](DecompressionState::gBase, ldloc:DecompressionState(var_0_06)))
472 stloc:int32[][](var_9_5B, ldfld:int32[][](DecompressionState::gPerm, ldloc:DecompressionState(var_0_06)))
473}
474
475 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
476 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
477 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
478 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
479 --- End of inner exception stack trace ---
480 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
481 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
482*/;
483 }
484
485 // Token: 0x060002EB RID: 747 RVA: 0x0000A5D0 File Offset: 0x000087D0
486 private void SetupBlock()
487 {
489 if (decompressionState == null)
490 {
491 return;
492 }
493 int num = this.last;
494 int[] unzftab = decompressionState.unzftab;
495 int num2 = this.last;
496 int[] cftab = decompressionState.cftab;
497 long num3 = 0L;
498 num2.m_value = (int)num3;
499 int num4 = this.last;
500 byte[] ll = decompressionState.ll8;
501 bool flag = this.blockRandomised;
502 this.su_tPos = cftab;
503 if (flag)
504 {
505 this.SetupRandPartA();
506 return;
507 }
508 this.SetupNoRandPartA();
509 }
510
511 // Token: 0x060002EC RID: 748 RVA: 0x0000A65C File Offset: 0x0000885C
512 private void SetupRandPartA()
513 {
514 int num = this.su_i2;
515 int num2 = this.last;
516 this.EndBlock();
517 this.InitBlock();
518 this.SetupBlock();
519 }
520
521 // Token: 0x060002ED RID: 749 RVA: 0x0000A70C File Offset: 0x0000890C
522 private void SetupNoRandPartA()
523 {
524 int num = this.su_i2;
525 int num2 = this.last;
526 int num3 = 5;
528 this.EndBlock();
529 this.InitBlock();
530 this.SetupBlock();
531 }
532
533 // Token: 0x060002EE RID: 750 RVA: 0x0000A790 File Offset: 0x00008990
534 private void SetupRandPartB()
535 {
536 int num = this.su_ch2;
537 int num2 = this.su_i2;
538 int num3 = this.su_count;
540 int num4 = 2;
542 }
543
544 // Token: 0x060002EF RID: 751 RVA: 0x0000A860 File Offset: 0x00008A60
545 private void SetupRandPartC()
546 {
547 int num = this.su_j2;
548 char c = this.su_z;
549 int num2 = this.su_ch2;
550 CRC32 crc = this.crc;
552 crc.UpdateCRC((byte)num2);
553 int num3 = this.su_j2;
555 }
556
557 // Token: 0x060002F0 RID: 752 RVA: 0x0000A8CC File Offset: 0x00008ACC
558 private void SetupNoRandPartB()
559 {
560 int num = this.su_ch2;
561 int num2 = this.su_i2;
562 int num3 = this.su_count;
564 this.SetupNoRandPartA();
565 }
566
567 // Token: 0x060002F1 RID: 753 RVA: 0x0000A93C File Offset: 0x00008B3C
568 private void SetupNoRandPartC()
569 {
570 int num = this.su_j2;
571 char c = this.su_z;
572 int num2 = this.su_ch2;
573 CRC32 crc = this.crc;
575 crc.UpdateCRC((byte)num2);
576 int num3 = this.su_j2;
577 int num4 = 7;
580 }
581
582 // Token: 0x04000184 RID: 388
583 private bool _disposed;
584
585 // Token: 0x04000185 RID: 389
586 private bool _leaveOpen;
587
588 // Token: 0x04000186 RID: 390
589 private long totalBytesRead;
590
591 // Token: 0x04000187 RID: 391
592 private int last;
593
594 // Token: 0x04000188 RID: 392
595 private int origPtr;
596
597 // Token: 0x04000189 RID: 393
598 private int blockSize100k;
599
600 // Token: 0x0400018A RID: 394
601 private bool blockRandomised;
602
603 // Token: 0x0400018B RID: 395
604 private int bsBuff;
605
606 // Token: 0x0400018C RID: 396
607 private int bsLive;
608
609 // Token: 0x0400018D RID: 397
611
612 // Token: 0x0400018E RID: 398
613 private int nInUse;
614
615 // Token: 0x0400018F RID: 399
616 private Stream input;
617
618 // Token: 0x04000190 RID: 400
619 private int currentChar;
620
621 // Token: 0x04000191 RID: 401
623
624 // Token: 0x04000192 RID: 402
625 private uint storedBlockCRC;
626
627 // Token: 0x04000193 RID: 403
628 private uint storedCombinedCRC;
629
630 // Token: 0x04000194 RID: 404
631 private uint computedBlockCRC;
632
633 // Token: 0x04000195 RID: 405
635
636 // Token: 0x04000196 RID: 406
637 private int su_count;
638
639 // Token: 0x04000197 RID: 407
640 private int su_ch2;
641
642 // Token: 0x04000198 RID: 408
643 private int su_chPrev;
644
645 // Token: 0x04000199 RID: 409
646 private int su_i2;
647
648 // Token: 0x0400019A RID: 410
649 private int su_j2;
650
651 // Token: 0x0400019B RID: 411
652 private int su_rNToGo;
653
654 // Token: 0x0400019C RID: 412
655 private int su_rTPos;
656
657 // Token: 0x0400019D RID: 413
658 private int su_tPos;
659
660 // Token: 0x0400019E RID: 414
661 private char su_z;
662
663 // Token: 0x0400019F RID: 415
665
666 // Token: 0x02000038 RID: 56
667 private enum CState
668 {
669 // Token: 0x040001A1 RID: 417
670 EOF,
671 // Token: 0x040001A2 RID: 418
673 // Token: 0x040001A3 RID: 419
675 // Token: 0x040001A4 RID: 420
677 // Token: 0x040001A5 RID: 421
679 // Token: 0x040001A6 RID: 422
681 // Token: 0x040001A7 RID: 423
683 // Token: 0x040001A8 RID: 424
685 }
686
687 // Token: 0x02000039 RID: 57
688 private sealed class DecompressionState
689 {
690 // Token: 0x060002F2 RID: 754 RVA: 0x0000A9A8 File Offset: 0x00008BA8
692 {
693 if (!true)
694 {
695 }
696 base..ctor();
697 }
698
699 // Token: 0x060002F3 RID: 755 RVA: 0x0000A9C0 File Offset: 0x00008BC0
700 public int[] initTT(int length)
701 {
702 /*
703An exception occurred when decompiling this method (060002F3)
704
705ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32[] Ionic.BZip2.BZip2InputStream/DecompressionState::initTT(System.Int32)
706
707 ---> System.Exception: Basic block has to end with unconditional control flow.
708{
709 IL_0000:
710 brtrue(IL_0000, logicnot:bool(ldfld:int32[][exp:bool](DecompressionState::tt, ldloc:DecompressionState(this))))
711}
712
713 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
714 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
715 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
716 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
717 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
718 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
719 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
720 --- End of inner exception stack trace ---
721 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
722 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
723*/;
724 }
725
726 // Token: 0x040001A9 RID: 425
727 public readonly bool[] inUse;
728
729 // Token: 0x040001AA RID: 426
730 public readonly byte[] seqToUnseq;
731
732 // Token: 0x040001AB RID: 427
733 public readonly byte[] selector;
734
735 // Token: 0x040001AC RID: 428
736 public readonly byte[] selectorMtf;
737
738 // Token: 0x040001AD RID: 429
739 public readonly int[] unzftab;
740
741 // Token: 0x040001AE RID: 430
742 public readonly int[][] gLimit;
743
744 // Token: 0x040001AF RID: 431
745 public readonly int[][] gBase;
746
747 // Token: 0x040001B0 RID: 432
748 public readonly int[][] gPerm;
749
750 // Token: 0x040001B1 RID: 433
751 public readonly int[] gMinlen;
752
753 // Token: 0x040001B2 RID: 434
754 public readonly int[] cftab;
755
756 // Token: 0x040001B3 RID: 435
758
759 // Token: 0x040001B4 RID: 436
760 public readonly char[][] temp_charArray2d;
761
762 // Token: 0x040001B5 RID: 437
764
765 // Token: 0x040001B6 RID: 438
766 public int[] tt;
767
768 // Token: 0x040001B7 RID: 439
769 public byte[] ll8;
770 }
771 }
772}
class f__AnonymousType0<< Count > j__TPar
static readonly long
void createHuffmanDecodingTables(int alphaSize, int nGroups)
static void hbCreateDecodeTables(int[] limit, int[] bbase, int[] perm, char[] length, int minLen, int maxLen, int alphaSize)
BZip2InputStream.CState currentState
override void Dispose(bool disposing)
override void Write(byte[] buffer, int offset, int count)
void CheckMagicChar(char expected, int position)
BZip2InputStream.DecompressionState data
override long Seek(long offset, SeekOrigin origin)
override int Read(byte[] buffer, int offset, int count)
override void SetLength(long value)
int getAndMoveToFrontDecode0(int groupNo)
BZip2InputStream(Stream input, bool leaveOpen)
int Crc32Result
Definition CRC32.cs:26
void UpdateCRC(byte b)
Definition CRC32.cs:152