using System; using BestHTTP.Extensions; using Cpp2IlInjected; namespace BestHTTP.Decompression.Zlib { // Token: 0x02001FAC RID: 8108 [Token(Token = "0x2001FAC")] internal sealed class InflateManager { // Token: 0x170020B7 RID: 8375 // (get) Token: 0x0600CD9F RID: 52639 RVA: 0x002F3A70 File Offset: 0x002F1C70 // (set) Token: 0x0600CDA0 RID: 52640 RVA: 0x002F3A84 File Offset: 0x002F1C84 [Token(Token = "0x170020B7")] internal bool HandleRfc1950HeaderBytes { [Token(Token = "0x600CD9F")] [Address(RVA = "0x4364F0", Offset = "0x4352F0", VA = "0x1804364F0")] get { return this._handleRfc1950HeaderBytes; } [Token(Token = "0x600CDA0")] [Address(RVA = "0x436790", Offset = "0x435590", VA = "0x180436790")] set { this._handleRfc1950HeaderBytes = value; } } // Token: 0x0600CDA1 RID: 52641 RVA: 0x002F3A98 File Offset: 0x002F1C98 [Token(Token = "0x600CDA1")] [Address(RVA = "0x106D240", Offset = "0x106C040", VA = "0x18106D240")] public InflateManager() { } // Token: 0x0600CDA2 RID: 52642 RVA: 0x002F3AB4 File Offset: 0x002F1CB4 [Token(Token = "0x600CDA2")] [Address(RVA = "0x1973E60", Offset = "0x1972C60", VA = "0x181973E60")] public InflateManager(bool expectRfc1950HeaderBytes) { this._handleRfc1950HeaderBytes = expectRfc1950HeaderBytes; } // Token: 0x0600CDA3 RID: 52643 RVA: 0x002F3AD8 File Offset: 0x002F1CD8 [Token(Token = "0x600CDA3")] [Address(RVA = "0x1973950", Offset = "0x1972750", VA = "0x181973950")] internal int Reset() { ZlibCodec codec = this._codec; int num = 0; codec.TotalBytesOut = (long)num; codec.TotalBytesIn = (long)num; this._codec.Message = num; this.mode = (InflateManager.InflateManagerMode)((uint)7); uint num2 = this.blocks.Reset(); return 0; } // Token: 0x0600CDA4 RID: 52644 RVA: 0x002F3B24 File Offset: 0x002F1D24 [Token(Token = "0x600CDA4")] [Address(RVA = "0x1972D60", Offset = "0x1971B60", VA = "0x181972D60")] internal int End() { InflateBlocks inflateBlocks = this.blocks; if (inflateBlocks != 0) { uint num = inflateBlocks.Reset(); VariableSizedBufferPool.Release(inflateBlocks.window); int num2 = 0; inflateBlocks.window = num2; inflateBlocks.hufts = num2; this.blocks = num2; return num2; } int num3 = 0; this.blocks = num3; return num3; } // Token: 0x0600CDA5 RID: 52645 RVA: 0x002F3B74 File Offset: 0x002F1D74 [Token(Token = "0x600CDA5")] [Address(RVA = "0x1973730", Offset = "0x1972530", VA = "0x181973730")] internal int Initialize(ZlibCodec codec, int w) { this._codec = codec; int num = 0; codec.Message = num; this.blocks = num; this.wbits = w; int[] array = new int[1]; InflateBlocks inflateBlocks; inflateBlocks.bb = array; int[] array2 = new int[1]; inflateBlocks.tb = array2; InflateCodes inflateCodes = new InflateCodes(); inflateBlocks.codes = inflateCodes; InfTree infTree = new InfTree(); inflateBlocks.inftree = infTree; inflateBlocks._codec = codec; int[] array3 = new int[4320]; inflateBlocks.hufts = array3; byte[] array4; inflateBlocks.window = array4; inflateBlocks.checkfn = num; inflateBlocks.mode = (InflateBlocks.InflateBlockMode)num; uint num2 = inflateBlocks.Reset(); this.blocks = inflateBlocks; ZlibCodec codec2 = this._codec; codec2.TotalBytesOut = (long)num; codec2.TotalBytesIn = (long)num; this._codec.Message = num; this.mode = (InflateManager.InflateManagerMode)((uint)7); uint num3 = this.blocks.Reset(); return 0; } // Token: 0x0600CDA6 RID: 52646 RVA: 0x002F3C70 File Offset: 0x002F1E70 [Token(Token = "0x600CDA6")] [Address(RVA = "0x1972E00", Offset = "0x1971C00", VA = "0x181972E00")] internal int Inflate(FlushType flush) { /* An exception occurred when decompiling this method (0600CDA6) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.Decompression.Zlib.InflateManager::Inflate(BestHTTP.Decompression.Zlib.FlushType) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_5BD: stloc:ZlibException(var_104_5C7, newobj:ZlibException(ZlibException::.ctor, ldstr:string("Stream error."))) } 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 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 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 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 --- End of inner exception stack trace --- 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 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 1660 */; } // Token: 0x0600CDA7 RID: 52647 RVA: 0x002F4248 File Offset: 0x002F2448 [Token(Token = "0x600CDA7")] [Address(RVA = "0x19739A0", Offset = "0x19727A0", VA = "0x1819739A0")] internal int SetDictionary(byte[] dictionary) { /* An exception occurred when decompiling this method (0600CDA7) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.Decompression.Zlib.InflateManager::SetDictionary(System.Byte[]) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_9A: stloc:ZlibException(var_14_A4, newobj:ZlibException(ZlibException::.ctor, ldstr:string("Stream error."))) } 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 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 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 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 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 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 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 --- End of inner exception stack trace --- 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 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 1660 */; } // Token: 0x0600CDA8 RID: 52648 RVA: 0x002F42FC File Offset: 0x002F24FC [Token(Token = "0x600CDA8")] [Address(RVA = "0x1973B60", Offset = "0x1972960", VA = "0x181973B60")] internal int Sync() { int num = 0; if (this.mode != InflateManager.InflateManagerMode.BAD) { this.mode = (InflateManager.InflateManagerMode)((ulong)13L); this.marker = num; } ZlibCodec codec = this._codec; int availableBytesIn = codec.AvailableBytesIn; if (availableBytesIn != 0) { int num2 = codec.NextIn; int num3 = this.marker; if (num3 < 4) { byte b = this._codec.InputBuffer[num2]; byte[] array = InflateManager.mark; byte[] inputBuffer = this._codec.InputBuffer; if ("{il2cpp array field local11->}" == num) { uint num4; num4 -= (uint)num3; } num++; num2++; while ("{il2cpp array field local11->}" != num) { } } ZlibCodec codec2 = this._codec; this._codec.NextIn = num2; this._codec.AvailableBytesIn = availableBytesIn; this.marker = num; if (num == 4) { ZlibCodec codec3 = this._codec; long totalBytesIn = codec3.TotalBytesIn; long totalBytesOut = codec3.TotalBytesOut; codec3.TotalBytesOut = (long)num; codec3.TotalBytesIn = (long)num; this._codec.Message = num; uint num5; this.mode = (InflateManager.InflateManagerMode)num5; uint num6 = this.blocks.Reset(); this._codec.TotalBytesIn = totalBytesIn; this._codec.TotalBytesOut = totalBytesOut; int num7 = 0; this.mode = (InflateManager.InflateManagerMode)num5; return num7; } } throw new NullReferenceException(); } // Token: 0x0600CDA9 RID: 52649 RVA: 0x002F4438 File Offset: 0x002F2638 [Token(Token = "0x600CDA9")] [Address(RVA = "0x1973B30", Offset = "0x1972930", VA = "0x181973B30")] internal int SyncPoint(ZlibCodec z) { bool flag = this.blocks.mode == InflateBlocks.InflateBlockMode.LENS; throw new NullReferenceException(); } // Token: 0x0600CDAA RID: 52650 RVA: 0x002F445C File Offset: 0x002F265C // Note: this type is marked as 'beforefieldinit'. [Token(Token = "0x600CDAA")] [Address(RVA = "0x1973DD0", Offset = "0x1972BD0", VA = "0x181973DD0")] static InflateManager() { byte[] array = new byte[4]; array[0] = (byte)((ulong)255L); array[0] = (byte)((ulong)255L); InflateManager.mark = array; } // Token: 0x04008346 RID: 33606 [Token(Token = "0x4008346")] private const int PRESET_DICT = 32; // Token: 0x04008347 RID: 33607 [Token(Token = "0x4008347")] private const int Z_DEFLATED = 8; // Token: 0x04008348 RID: 33608 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4008348")] private InflateManager.InflateManagerMode mode; // Token: 0x04008349 RID: 33609 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4008349")] internal ZlibCodec _codec; // Token: 0x0400834A RID: 33610 [FieldOffset(Offset = "0x20")] [Token(Token = "0x400834A")] internal int method; // Token: 0x0400834B RID: 33611 [FieldOffset(Offset = "0x24")] [Token(Token = "0x400834B")] internal uint computedCheck; // Token: 0x0400834C RID: 33612 [FieldOffset(Offset = "0x28")] [Token(Token = "0x400834C")] internal uint expectedCheck; // Token: 0x0400834D RID: 33613 [FieldOffset(Offset = "0x2C")] [Token(Token = "0x400834D")] internal int marker; // Token: 0x0400834E RID: 33614 [FieldOffset(Offset = "0x30")] [Token(Token = "0x400834E")] private bool _handleRfc1950HeaderBytes = true; // Token: 0x0400834F RID: 33615 [FieldOffset(Offset = "0x34")] [Token(Token = "0x400834F")] internal int wbits; // Token: 0x04008350 RID: 33616 [FieldOffset(Offset = "0x38")] [Token(Token = "0x4008350")] internal InflateBlocks blocks; // Token: 0x04008351 RID: 33617 [Token(Token = "0x4008351")] private static readonly byte[] mark; // Token: 0x02001FAD RID: 8109 [Token(Token = "0x2001FAD")] private enum InflateManagerMode { // Token: 0x04008353 RID: 33619 [Token(Token = "0x4008353")] METHOD, // Token: 0x04008354 RID: 33620 [Token(Token = "0x4008354")] FLAG, // Token: 0x04008355 RID: 33621 [Token(Token = "0x4008355")] DICT4, // Token: 0x04008356 RID: 33622 [Token(Token = "0x4008356")] DICT3, // Token: 0x04008357 RID: 33623 [Token(Token = "0x4008357")] DICT2, // Token: 0x04008358 RID: 33624 [Token(Token = "0x4008358")] DICT1, // Token: 0x04008359 RID: 33625 [Token(Token = "0x4008359")] DICT0, // Token: 0x0400835A RID: 33626 [Token(Token = "0x400835A")] BLOCKS, // Token: 0x0400835B RID: 33627 [Token(Token = "0x400835B")] CHECK4, // Token: 0x0400835C RID: 33628 [Token(Token = "0x400835C")] CHECK3, // Token: 0x0400835D RID: 33629 [Token(Token = "0x400835D")] CHECK2, // Token: 0x0400835E RID: 33630 [Token(Token = "0x400835E")] CHECK1, // Token: 0x0400835F RID: 33631 [Token(Token = "0x400835F")] DONE, // Token: 0x04008360 RID: 33632 [Token(Token = "0x4008360")] BAD } } }