using System; using System.Collections.Generic; using System.IO; using System.Runtime.InteropServices; using BestHTTP.Decompression.Crc; using BestHTTP.Extensions; using Cpp2IlInjected; namespace BestHTTP.Decompression.Zlib { // Token: 0x020019DC RID: 6620 [Token(Token = "0x20019DC")] [StructLayout(3)] internal class ZlibBaseStream : Stream { // Token: 0x17001CB7 RID: 7351 // (get) Token: 0x0600B1E5 RID: 45541 RVA: 0x0029C674 File Offset: 0x0029A874 [Token(Token = "0x17001CB7")] internal int Crc32 { [Token(Token = "0x600B1E5")] [Address(RVA = "0x1E70B70", Offset = "0x1E6F570", VA = "0x181E70B70")] get { CRC32 crc = this.crc; if (crc != 0) { return crc.Crc32Result; } return 0; } } // Token: 0x0600B1E6 RID: 45542 RVA: 0x0029C694 File Offset: 0x0029A894 [Token(Token = "0x600B1E6")] [Address(RVA = "0x1E6FFA0", Offset = "0x1E6E9A0", VA = "0x181E6FFA0")] public ZlibBaseStream(Stream stream, CompressionMode compressionMode, CompressionLevel level, ZlibStreamFlavor flavor, bool leaveOpen) { byte[] array = new byte[1]; this._buf1 = array; base..ctor(); this._leaveOpen = false; this._flushMode = (FlushType)((ulong)0L); this._stream = stream; this._compressionMode = compressionMode; this._flavor = (ZlibStreamFlavor)0; this._level = level; this.windowBitsMax = (int)((ulong)15L); CRC32 crc = new CRC32(); this.crc = crc; } // Token: 0x0600B1E7 RID: 45543 RVA: 0x0029C714 File Offset: 0x0029A914 [Token(Token = "0x600B1E7")] [Address(RVA = "0x1E70090", Offset = "0x1E6EA90", VA = "0x181E70090")] public ZlibBaseStream(Stream stream, CompressionMode compressionMode, CompressionLevel level, ZlibStreamFlavor flavor, bool leaveOpen, int windowBits) { byte[] array = new byte[1]; this._buf1 = array; base..ctor(); this._leaveOpen = false; this.windowBitsMax = 0; this._flushMode = (FlushType)((ulong)0L); this._stream = stream; this._compressionMode = compressionMode; this._flavor = (ZlibStreamFlavor)0; this._level = level; CRC32 crc = new CRC32(); this.crc = crc; } // Token: 0x17001CB8 RID: 7352 // (get) Token: 0x0600B1E8 RID: 45544 RVA: 0x0029C790 File Offset: 0x0029A990 [Token(Token = "0x17001CB8")] protected internal bool _wantCompress { [Token(Token = "0x600B1E8")] [Address(RVA = "0xE380F0", Offset = "0xE36AF0", VA = "0x180E380F0")] get { return this._compressionMode == CompressionMode.Compress; } } // Token: 0x17001CB9 RID: 7353 // (get) Token: 0x0600B1E9 RID: 45545 RVA: 0x0029C7A8 File Offset: 0x0029A9A8 [Token(Token = "0x17001CB9")] private ZlibCodec z { [Token(Token = "0x600B1E9")] [Address(RVA = "0x1E70C60", Offset = "0x1E6F660", VA = "0x181E70C60")] get { if (this._z == (ulong)0L) { bool flag = this._flavor == ZlibStreamFlavor.ZLIB; ZlibCodec zlibCodec = new ZlibCodec(); zlibCodec.CompressLevel = (CompressionLevel)((ulong)6L); zlibCodec.WindowBits = (int)((ulong)15L); this._z = zlibCodec; if (this._compressionMode != CompressionMode.Decompress) { CompressionStrategy strategy = this.Strategy; zlibCodec.Strategy = strategy; ZlibCodec z = this._z; int num = this.windowBitsMax; CompressionLevel level = this._level; z.WindowBits = num; z.CompressLevel = level; int num2 = z._InternalInitializeDeflate(flag); } int num3 = this.windowBitsMax; int num4 = zlibCodec.InitializeInflate(num3, flag); } return this._z; } } // Token: 0x17001CBA RID: 7354 // (get) Token: 0x0600B1EA RID: 45546 RVA: 0x0029C858 File Offset: 0x0029AA58 [Token(Token = "0x17001CBA")] private byte[] workingBuffer { [Token(Token = "0x600B1EA")] [Address(RVA = "0x1E70BE0", Offset = "0x1E6F5E0", VA = "0x181E70BE0")] get { if (this._workingBuffer == (ulong)0L) { byte[] array = VariableSizedBufferPool.Get((long)this._bufferSize, true); this._workingBuffer = array; } return this._workingBuffer; } } // Token: 0x0600B1EB RID: 45547 RVA: 0x0029C88C File Offset: 0x0029AA8C [Token(Token = "0x600B1EB")] [Address(RVA = "0x1E6F720", Offset = "0x1E6E120", VA = "0x181E6F720", Slot = "29")] public override void Write(byte[] buffer, int offset, int count) { int num; ZlibCodec z3; do { CRC32 crc = this.crc; num = 0; if (crc != 0) { crc.SlurpBlock(buffer, offset, count); } ZlibBaseStream.StreamMode streamMode = this._streamMode; if (streamMode != ZlibBaseStream.StreamMode.Undefined && streamMode != ZlibBaseStream.StreamMode.Writer) { goto IL_14C; } this._streamMode = (ZlibBaseStream.StreamMode)num; if (count == 0) { return; } this.z.InputBuffer = buffer; this._z.NextIn = offset; this._z.AvailableBytesIn = count; ZlibCodec z = this._z; if (this._workingBuffer == num) { ulong num2; byte[] array = VariableSizedBufferPool.Get((long)this._bufferSize, num2 != 0UL); this._workingBuffer = array; } byte[] workingBuffer = this._workingBuffer; z.OutputBuffer = workingBuffer; this._z.NextOut = num; byte[] workingBuffer2 = this._workingBuffer; ZlibCodec z2 = this._z; int length = workingBuffer2.Length; z2.AvailableBytesOut = length; z3 = this._z; FlushType flushMode = this._flushMode; if (this._compressionMode == (CompressionMode)num && z3.dstate == 0) { goto IL_158; } } while (z3.istate == 0); int num3; if (num3 > 1) { goto IL_164; } byte[] workingBuffer3 = this._workingBuffer; ZlibCodec z4 = this._z; int num4 = this._stream.ReadByte(); int availableBytesIn = this._z.AvailableBytesIn; if (availableBytesIn != 0) { } if (this._flavor != ZlibStreamFlavor.GZIP || this._compressionMode == (CompressionMode)num || availableBytesIn == 8) { } while (num == 0) { } return; IL_14C: ZlibException ex = new ZlibException("Cannot Write after Reading."); IL_158: ZlibException ex2 = new ZlibException("No Deflate State!"); IL_164: throw new NullReferenceException(); } // Token: 0x0600B1EC RID: 45548 RVA: 0x0029CA0C File Offset: 0x0029AC0C [Token(Token = "0x600B1EC")] [Address(RVA = "0x1E70300", Offset = "0x1E6ED00", VA = "0x181E70300")] private void finish() { /* An exception occurred when decompiling this method (0600B1EC) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.Decompression.Zlib.ZlibBaseStream::finish() ---> System.Exception: Basic block has to end with unconditional control flow. { IL_297: stloc:ZlibException(var_47_2AA, newobj:ZlibException(ZlibException::.ctor, call:string(string::Format, ldstr:string("Bad size in GZIP trailer. (actual({0})!=expected({1}))"), ldloc:ZlibException[exp:object](var_46), ldloc:ZlibException[exp:object](var_46)))) } 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 1663 */; } // Token: 0x0600B1ED RID: 45549 RVA: 0x0029CCC4 File Offset: 0x0029AEC4 [Token(Token = "0x600B1ED")] [Address(RVA = "0x1E70180", Offset = "0x1E6EB80", VA = "0x181E70180")] private void end() { /* An exception occurred when decompiling this method (0600B1ED) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.Decompression.Zlib.ZlibBaseStream::end() ---> System.Exception: Basic block has to end with unconditional control flow. { IL_8D: stloc:ZlibException(var_7_97, newobj:ZlibException(ZlibException::.ctor, ldstr:string("No Deflate State!"))) } 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 1663 */; } // Token: 0x0600B1EE RID: 45550 RVA: 0x0029CD6C File Offset: 0x0029AF6C [Token(Token = "0x600B1EE")] [Address(RVA = "0x1E6EDA0", Offset = "0x1E6D7A0", VA = "0x181E6EDA0", Slot = "15")] public override void Close() { /* An exception occurred when decompiling this method (0600B1EE) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.Decompression.Zlib.ZlibBaseStream::Close() ---> System.Exception: Basic block has to end with unconditional control flow. { IL_BA: stloc:ZlibException(var_6_C4, newobj:ZlibException(ZlibException::.ctor, ldstr:string("No Deflate State!"))) } 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 1663 */; } // Token: 0x0600B1EF RID: 45551 RVA: 0x0029CE40 File Offset: 0x0029B040 [Token(Token = "0x600B1EF")] [Address(RVA = "0xE35510", Offset = "0xE33F10", VA = "0x180E35510", Slot = "17")] public override void Flush() { bool canRead = this._stream.CanRead; } // Token: 0x0600B1F0 RID: 45552 RVA: 0x0029CE60 File Offset: 0x0029B060 [Token(Token = "0x600B1F0")] [Address(RVA = "0x1E6F690", Offset = "0x1E6E090", VA = "0x181E6F690", Slot = "25")] public override long Seek(long offset, SeekOrigin origin) { /* An exception occurred when decompiling this method (0600B1F0) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int64 BestHTTP.Decompression.Zlib.ZlibBaseStream::Seek(System.Int64,System.IO.SeekOrigin) ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:NotImplementedException(var_0_05, newobj:NotImplementedException(NotImplementedException::.ctor)) } 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 1663 */; } // Token: 0x0600B1F1 RID: 45553 RVA: 0x0029CE74 File Offset: 0x0029B074 [Token(Token = "0x600B1F1")] [Address(RVA = "0x1E6F6E0", Offset = "0x1E6E0E0", VA = "0x181E6F6E0", Slot = "26")] public override void SetLength(long value) { Stream stream = this._stream; this.nomoreinput = false; } // Token: 0x0600B1F2 RID: 45554 RVA: 0x0029CE98 File Offset: 0x0029B098 [Token(Token = "0x600B1F2")] [Address(RVA = "0x1E6EFD0", Offset = "0x1E6D9D0", VA = "0x181E6EFD0")] private string ReadZeroTerminatedString() { List list = new List(); Stream stream = this._stream; byte b = this._buf1[0]; list.Add(b); byte[] array = list.ToArray(); return GZipStream.iso8859dash1.GetString(array); } // Token: 0x0600B1F3 RID: 45555 RVA: 0x0029CEE0 File Offset: 0x0029B0E0 [Token(Token = "0x600B1F3")] [Address(RVA = "0x1E6FAC0", Offset = "0x1E6E4C0", VA = "0x181E6FAC0")] private int _ReadAndValidateGzipHeader() { byte[] array; do { uint num; ulong num2; array = VariableSizedBufferPool.Get((long)num, num2 != 0UL); Stream stream = this._stream; int length = array.Length; } while ("{il2cpp array field local5->}" != (ulong)31L || "{il2cpp array field local5->}" != (ulong)139L || "{il2cpp array field local5->}" != (ulong)8L); int num3 = BitConverter.ToInt32(array, 4); DateTime unixEpoch = GZipStream._unixEpoch; int length2 = array.Length; if ("{il2cpp array field local5->}" != (ulong)4L) { Stream stream2 = this._stream; int length3 = array.Length; byte b = array[0]; byte b2 = array[0]; uint num4; byte b3 = (byte)((uint)b * num4); b3 += b2; Stream stream3 = this._stream; } if ("{il2cpp array field local5->}" != (ulong)8L) { string text = this.ReadZeroTerminatedString(); this._GzipFileName = text; int length4 = array.Length; } if ("{il2cpp array field local5->}" != (ulong)16L) { string text2 = this.ReadZeroTerminatedString(); this._GzipComment = text2; int length5 = array.Length; } if ("{il2cpp array field local5->}" != (ulong)2L) { } VariableSizedBufferPool.Release(array); VariableSizedBufferPool.Release(array); throw new NullReferenceException(); } // Token: 0x0600B1F4 RID: 45556 RVA: 0x0029CFE4 File Offset: 0x0029B1E4 [Token(Token = "0x600B1F4")] [Address(RVA = "0x1E6F160", Offset = "0x1E6DB60", VA = "0x181E6F160", Slot = "27")] public override int Read(byte[] buffer, int offset, int count) { int num; int num4; bool flag; for (;;) { num = 0; if (this._streamMode == ZlibBaseStream.StreamMode.Undefined) { this._stream.Dispose(); this._streamMode = (ZlibBaseStream.StreamMode)((ulong)1L); this.z.AvailableBytesIn = num; if (this._flavor == ZlibStreamFlavor.GZIP) { int num2 = this._ReadAndValidateGzipHeader(); this._gzipHeaderByteCount = num2; if (num2 == 0) { goto IL_1D9; } } } if (this._streamMode != ZlibBaseStream.StreamMode.Reader || count == 0 || ((this.nomoreinput ? 1 : 0) != num && this._compressionMode == (CompressionMode)num)) { goto IL_1D9; } if (buffer != 0) { this._z.OutputBuffer = buffer; this._z.NextOut = offset; this._z.AvailableBytesOut = count; ZlibCodec z = this._z; byte[] workingBuffer = this.workingBuffer; z.InputBuffer = workingBuffer; ZlibCodec z2 = this._z; ZlibCodec z4; if (z2.AvailableBytesIn == num && (this.nomoreinput ? 1 : 0) == num) { z2.NextIn = num; byte[] workingBuffer2 = this._workingBuffer; ZlibCodec z3 = this._z; Stream stream = this._stream; int length = workingBuffer2.Length; z4 = this._z; if (z4.AvailableBytesIn == num) { this.nomoreinput = true; } } FlushType flushMode = this._flushMode; if (this._compressionMode == (CompressionMode)num) { int num3 = z4.Deflate(flushMode); } num4 = z4.Inflate(flushMode); flag = this.nomoreinput; if (flag && num4 == -5) { goto IL_1D9; } if (num4 <= 1) { break; } } } ZlibCodec z5; if ((!flag && num4 != 1) || this._z.AvailableBytesOut != count) { z5 = this._z; if (z5.AvailableBytesOut <= num || flag || num4 == 0) { } } if (z5.AvailableBytesOut <= num || !flag || this._compressionMode != (CompressionMode)num || z5.Deflate(FlushType.Finish) <= 1) { ZlibCodec z6 = this._z; CRC32 crc = this.crc; if (crc != 0) { crc.SlurpBlock(buffer, offset, count); } return count; } goto IL_1F1; IL_1D9: ZlibException ex = new ZlibException("Cannot Read after Writing."); ZlibException ex2 = new ZlibException("The stream is not readable."); IL_1F1: throw new NullReferenceException(); } // Token: 0x17001CBB RID: 7355 // (get) Token: 0x0600B1F5 RID: 45557 RVA: 0x0029D1FC File Offset: 0x0029B3FC [Token(Token = "0x17001CBB")] public override bool CanRead { [Token(Token = "0x600B1F5")] [Address(RVA = "0xE38010", Offset = "0xE36A10", VA = "0x180E38010", Slot = "7")] get { return this._stream.CanRead; } } // Token: 0x17001CBC RID: 7356 // (get) Token: 0x0600B1F6 RID: 45558 RVA: 0x0029D21C File Offset: 0x0029B41C [Token(Token = "0x17001CBC")] public override bool CanSeek { [Token(Token = "0x600B1F6")] [Address(RVA = "0xE38040", Offset = "0xE36A40", VA = "0x180E38040", Slot = "8")] get { return this._stream.CanRead; } } // Token: 0x17001CBD RID: 7357 // (get) Token: 0x0600B1F7 RID: 45559 RVA: 0x0029D23C File Offset: 0x0029B43C [Token(Token = "0x17001CBD")] public override bool CanWrite { [Token(Token = "0x600B1F7")] [Address(RVA = "0xE38070", Offset = "0xE36A70", VA = "0x180E38070", Slot = "9")] get { return this._stream.CanRead; } } // Token: 0x17001CBE RID: 7358 // (get) Token: 0x0600B1F8 RID: 45560 RVA: 0x0029D25C File Offset: 0x0029B45C [Token(Token = "0x17001CBE")] public override long Length { [Token(Token = "0x600B1F8")] [Address(RVA = "0xE365E0", Offset = "0xE34FE0", VA = "0x180E365E0", Slot = "10")] get { bool canRead = this._stream.CanRead; throw new NullReferenceException(); } } // Token: 0x17001CBF RID: 7359 // (get) Token: 0x0600B1F9 RID: 45561 RVA: 0x0029D27C File Offset: 0x0029B47C // (set) Token: 0x0600B1FA RID: 45562 RVA: 0x0029D290 File Offset: 0x0029B490 [Token(Token = "0x17001CBF")] public override long Position { [Token(Token = "0x600B1F9")] [Address(RVA = "0x1E70B90", Offset = "0x1E6F590", VA = "0x181E70B90", Slot = "11")] get { /* An exception occurred when decompiling this method (0600B1F9) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int64 BestHTTP.Decompression.Zlib.ZlibBaseStream::get_Position() ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:NotImplementedException(var_0_05, newobj:NotImplementedException(NotImplementedException::.ctor)) } 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 1663 */; } [Token(Token = "0x600B1FA")] [Address(RVA = "0x1E70D30", Offset = "0x1E6F730", VA = "0x181E70D30", Slot = "12")] set { /* An exception occurred when decompiling this method (0600B1FA) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.Decompression.Zlib.ZlibBaseStream::set_Position(System.Int64) ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:NotImplementedException(var_0_05, newobj:NotImplementedException(NotImplementedException::.ctor)) } 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 1663 */; } } // Token: 0x04007561 RID: 30049 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x4007561")] protected internal ZlibCodec _z; // Token: 0x04007562 RID: 30050 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x4007562")] protected internal ZlibBaseStream.StreamMode _streamMode = (ZlibBaseStream.StreamMode)((ulong)2L); // Token: 0x04007563 RID: 30051 [global::Cpp2IlInjected.FieldOffset(Offset = "0x34")] [Token(Token = "0x4007563")] protected internal FlushType _flushMode; // Token: 0x04007564 RID: 30052 [global::Cpp2IlInjected.FieldOffset(Offset = "0x38")] [Token(Token = "0x4007564")] protected internal ZlibStreamFlavor _flavor; // Token: 0x04007565 RID: 30053 [global::Cpp2IlInjected.FieldOffset(Offset = "0x3C")] [Token(Token = "0x4007565")] protected internal CompressionMode _compressionMode; // Token: 0x04007566 RID: 30054 [global::Cpp2IlInjected.FieldOffset(Offset = "0x40")] [Token(Token = "0x4007566")] protected internal CompressionLevel _level; // Token: 0x04007567 RID: 30055 [global::Cpp2IlInjected.FieldOffset(Offset = "0x44")] [Token(Token = "0x4007567")] protected internal bool _leaveOpen; // Token: 0x04007568 RID: 30056 [global::Cpp2IlInjected.FieldOffset(Offset = "0x48")] [Token(Token = "0x4007568")] protected internal byte[] _workingBuffer; // Token: 0x04007569 RID: 30057 [global::Cpp2IlInjected.FieldOffset(Offset = "0x50")] [Token(Token = "0x4007569")] protected internal int _bufferSize = (int)((ulong)16384L); // Token: 0x0400756A RID: 30058 [global::Cpp2IlInjected.FieldOffset(Offset = "0x54")] [Token(Token = "0x400756A")] protected internal int windowBitsMax; // Token: 0x0400756B RID: 30059 [global::Cpp2IlInjected.FieldOffset(Offset = "0x58")] [Token(Token = "0x400756B")] protected internal byte[] _buf1; // Token: 0x0400756C RID: 30060 [global::Cpp2IlInjected.FieldOffset(Offset = "0x60")] [Token(Token = "0x400756C")] protected internal Stream _stream; // Token: 0x0400756D RID: 30061 [global::Cpp2IlInjected.FieldOffset(Offset = "0x68")] [Token(Token = "0x400756D")] protected internal CompressionStrategy Strategy; // Token: 0x0400756E RID: 30062 [global::Cpp2IlInjected.FieldOffset(Offset = "0x70")] [Token(Token = "0x400756E")] private CRC32 crc; // Token: 0x0400756F RID: 30063 [global::Cpp2IlInjected.FieldOffset(Offset = "0x78")] [Token(Token = "0x400756F")] protected internal string _GzipFileName; // Token: 0x04007570 RID: 30064 [global::Cpp2IlInjected.FieldOffset(Offset = "0x80")] [Token(Token = "0x4007570")] protected internal string _GzipComment; // Token: 0x04007571 RID: 30065 [global::Cpp2IlInjected.FieldOffset(Offset = "0x88")] [Token(Token = "0x4007571")] protected internal DateTime _GzipMtime; // Token: 0x04007572 RID: 30066 [global::Cpp2IlInjected.FieldOffset(Offset = "0x90")] [Token(Token = "0x4007572")] protected internal int _gzipHeaderByteCount; // Token: 0x04007573 RID: 30067 [global::Cpp2IlInjected.FieldOffset(Offset = "0x94")] [Token(Token = "0x4007573")] private bool nomoreinput; // Token: 0x020019DD RID: 6621 [Token(Token = "0x20019DD")] internal enum StreamMode { // Token: 0x04007575 RID: 30069 [Token(Token = "0x4007575")] Writer, // Token: 0x04007576 RID: 30070 [Token(Token = "0x4007576")] Reader, // Token: 0x04007577 RID: 30071 [Token(Token = "0x4007577")] Undefined } } }