Files
Apr2020-Cpp2Il-Dump/Assembly-CSharp/BestHTTP/Decompression/Zlib/ZlibBaseStream.cs
T
niko 8fc35183db a
2026-04-11 22:19:20 +02:00

724 lines
35 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using BestHTTP.Decompression.Crc;
using BestHTTP.Extensions;
using Cpp2IlInjected;
namespace BestHTTP.Decompression.Zlib
{
// Token: 0x02001FB9 RID: 8121
[Token(Token = "0x2001FB9")]
internal class ZlibBaseStream : Stream
{
// Token: 0x170020B8 RID: 8376
// (get) Token: 0x0600CDBF RID: 52671 RVA: 0x002F4D78 File Offset: 0x002F2F78
[Token(Token = "0x170020B8")]
internal int Crc32
{
[Token(Token = "0x600CDBF")]
[Address(RVA = "0x1977D10", Offset = "0x1976B10", VA = "0x181977D10")]
get
{
/*
An exception occurred when decompiling this method (0600CDBF)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.Decompression.Zlib.ZlibBaseStream::get_Crc32()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32(var_1_11, ldfld:uint32(CRC32::_register, ldloc:CRC32(var_0_06)))
}
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: 0x0600CDC0 RID: 52672 RVA: 0x002F4D98 File Offset: 0x002F2F98
[Token(Token = "0x600CDC0")]
[Address(RVA = "0x1977190", Offset = "0x1975F90", VA = "0x181977190")]
public ZlibBaseStream(Stream stream, CompressionMode compressionMode, CompressionLevel level, ZlibStreamFlavor flavor, bool leaveOpen)
{
}
// Token: 0x0600CDC1 RID: 52673 RVA: 0x002F4DA8 File Offset: 0x002F2FA8
[Token(Token = "0x600CDC1")]
[Address(RVA = "0x19771C0", Offset = "0x1975FC0", VA = "0x1819771C0")]
public ZlibBaseStream(Stream stream, CompressionMode compressionMode, CompressionLevel level, ZlibStreamFlavor flavor, bool leaveOpen, int windowBits)
{
this._streamMode = (ZlibBaseStream.StreamMode)((ulong)2L);
this._bufferSize = (int)((ulong)16384L);
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;
int num;
CRC32 crc = new CRC32(-306674912, num != 0);
num = 0;
this.crc = crc;
}
// Token: 0x170020B9 RID: 8377
// (get) Token: 0x0600CDC2 RID: 52674 RVA: 0x002F4E30 File Offset: 0x002F3030
[Token(Token = "0x170020B9")]
protected internal bool _wantCompress
{
[Token(Token = "0x600CDC2")]
[Address(RVA = "0x6DAE90", Offset = "0x6D9C90", VA = "0x1806DAE90")]
get
{
return this._compressionMode == CompressionMode.Compress;
}
}
// Token: 0x170020BA RID: 8378
// (get) Token: 0x0600CDC3 RID: 52675 RVA: 0x002F4E48 File Offset: 0x002F3048
[Token(Token = "0x170020BA")]
private ZlibCodec z
{
[Token(Token = "0x600CDC3")]
[Address(RVA = "0x1977E20", Offset = "0x1976C20", VA = "0x181977E20")]
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: 0x170020BB RID: 8379
// (get) Token: 0x0600CDC4 RID: 52676 RVA: 0x002F4EF8 File Offset: 0x002F30F8
[Token(Token = "0x170020BB")]
private byte[] workingBuffer
{
[Token(Token = "0x600CDC4")]
[Address(RVA = "0x1977DA0", Offset = "0x1976BA0", VA = "0x181977DA0")]
get
{
if (this._workingBuffer == (ulong)0L)
{
byte[] array = VariableSizedBufferPool.Get((long)this._bufferSize, true);
this._workingBuffer = array;
}
return this._workingBuffer;
}
}
// Token: 0x0600CDC5 RID: 52677 RVA: 0x002F4F2C File Offset: 0x002F312C
[Token(Token = "0x600CDC5")]
[Address(RVA = "0x1976910", Offset = "0x1975710", VA = "0x181976910", 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: 0x0600CDC6 RID: 52678 RVA: 0x002F50AC File Offset: 0x002F32AC
[Token(Token = "0x600CDC6")]
[Address(RVA = "0x1977420", Offset = "0x1976220", VA = "0x181977420")]
private void finish()
{
/*
An exception occurred when decompiling this method (0600CDC6)
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 1660
*/;
}
// Token: 0x0600CDC7 RID: 52679 RVA: 0x002F5364 File Offset: 0x002F3564
[Token(Token = "0x600CDC7")]
[Address(RVA = "0x19772B0", Offset = "0x19760B0", VA = "0x1819772B0")]
private void end()
{
/*
An exception occurred when decompiling this method (0600CDC7)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.Decompression.Zlib.ZlibBaseStream::end()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_7A:
stloc:ZlibException(var_5_84, 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 1660
*/;
}
// Token: 0x0600CDC8 RID: 52680 RVA: 0x002F53F8 File Offset: 0x002F35F8
[Token(Token = "0x600CDC8")]
[Address(RVA = "0x1975FA0", Offset = "0x1974DA0", VA = "0x181975FA0", Slot = "15")]
public override void Close()
{
/*
An exception occurred when decompiling this method (0600CDC8)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.Decompression.Zlib.ZlibBaseStream::Close()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_A0:
stloc:ZlibException(var_6_AA, 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 1660
*/;
}
// Token: 0x0600CDC9 RID: 52681 RVA: 0x002F54B0 File Offset: 0x002F36B0
[Token(Token = "0x600CDC9")]
[Address(RVA = "0x1976190", Offset = "0x1974F90", VA = "0x181976190", Slot = "17")]
public override void Flush()
{
bool canRead = this._stream.CanRead;
}
// Token: 0x0600CDCA RID: 52682 RVA: 0x002F54D0 File Offset: 0x002F36D0
[Token(Token = "0x600CDCA")]
[Address(RVA = "0x1976880", Offset = "0x1975680", VA = "0x181976880", Slot = "25")]
public override long Seek(long offset, SeekOrigin origin)
{
/*
An exception occurred when decompiling this method (0600CDCA)
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 1660
*/;
}
// Token: 0x0600CDCB RID: 52683 RVA: 0x002F54E4 File Offset: 0x002F36E4
[Token(Token = "0x600CDCB")]
[Address(RVA = "0x19768D0", Offset = "0x19756D0", VA = "0x1819768D0", Slot = "26")]
public override void SetLength(long value)
{
Stream stream = this._stream;
this.nomoreinput = false;
}
// Token: 0x0600CDCC RID: 52684 RVA: 0x002F5508 File Offset: 0x002F3708
[Token(Token = "0x600CDCC")]
[Address(RVA = "0x19761C0", Offset = "0x1974FC0", VA = "0x1819761C0")]
private string ReadZeroTerminatedString()
{
List<byte> 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: 0x0600CDCD RID: 52685 RVA: 0x002F5550 File Offset: 0x002F3750
[Token(Token = "0x600CDCD")]
[Address(RVA = "0x1976CB0", Offset = "0x1975AB0", VA = "0x181976CB0")]
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, (int)8.487983164E-314);
DateTime unixEpoch = GZipStream._unixEpoch;
DateTime dateTime;
this._GzipMtime = dateTime;
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: 0x0600CDCE RID: 52686 RVA: 0x002F5664 File Offset: 0x002F3864
[Token(Token = "0x600CDCE")]
[Address(RVA = "0x1976350", Offset = "0x1975150", VA = "0x181976350", 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: 0x170020BC RID: 8380
// (get) Token: 0x0600CDCF RID: 52687 RVA: 0x002F587C File Offset: 0x002F3A7C
[Token(Token = "0x170020BC")]
public override bool CanRead
{
[Token(Token = "0x600CDCF")]
[Address(RVA = "0x1977C80", Offset = "0x1976A80", VA = "0x181977C80", Slot = "7")]
get
{
return this._stream.CanRead;
}
}
// Token: 0x170020BD RID: 8381
// (get) Token: 0x0600CDD0 RID: 52688 RVA: 0x002F589C File Offset: 0x002F3A9C
[Token(Token = "0x170020BD")]
public override bool CanSeek
{
[Token(Token = "0x600CDD0")]
[Address(RVA = "0x1977CB0", Offset = "0x1976AB0", VA = "0x181977CB0", Slot = "8")]
get
{
return this._stream.CanRead;
}
}
// Token: 0x170020BE RID: 8382
// (get) Token: 0x0600CDD1 RID: 52689 RVA: 0x002F58BC File Offset: 0x002F3ABC
[Token(Token = "0x170020BE")]
public override bool CanWrite
{
[Token(Token = "0x600CDD1")]
[Address(RVA = "0x1977CE0", Offset = "0x1976AE0", VA = "0x181977CE0", Slot = "9")]
get
{
return this._stream.CanRead;
}
}
// Token: 0x170020BF RID: 8383
// (get) Token: 0x0600CDD2 RID: 52690 RVA: 0x002F58DC File Offset: 0x002F3ADC
[Token(Token = "0x170020BF")]
public override long Length
{
[Token(Token = "0x600CDD2")]
[Address(RVA = "0x1977D20", Offset = "0x1976B20", VA = "0x181977D20", Slot = "10")]
get
{
bool canRead = this._stream.CanRead;
throw new NullReferenceException();
}
}
// Token: 0x170020C0 RID: 8384
// (get) Token: 0x0600CDD3 RID: 52691 RVA: 0x002F58FC File Offset: 0x002F3AFC
// (set) Token: 0x0600CDD4 RID: 52692 RVA: 0x002F5910 File Offset: 0x002F3B10
[Token(Token = "0x170020C0")]
public override long Position
{
[Token(Token = "0x600CDD3")]
[Address(RVA = "0x1977D50", Offset = "0x1976B50", VA = "0x181977D50", Slot = "11")]
get
{
/*
An exception occurred when decompiling this method (0600CDD3)
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 1660
*/;
}
[Token(Token = "0x600CDD4")]
[Address(RVA = "0x1977EF0", Offset = "0x1976CF0", VA = "0x181977EF0", Slot = "12")]
set
{
/*
An exception occurred when decompiling this method (0600CDD4)
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 1660
*/;
}
}
// Token: 0x040083A4 RID: 33700
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40083A4")]
protected internal ZlibCodec _z;
// Token: 0x040083A5 RID: 33701
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40083A5")]
protected internal ZlibBaseStream.StreamMode _streamMode;
// Token: 0x040083A6 RID: 33702
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x40083A6")]
protected internal FlushType _flushMode;
// Token: 0x040083A7 RID: 33703
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40083A7")]
protected internal ZlibStreamFlavor _flavor;
// Token: 0x040083A8 RID: 33704
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x40083A8")]
protected internal CompressionMode _compressionMode;
// Token: 0x040083A9 RID: 33705
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40083A9")]
protected internal CompressionLevel _level;
// Token: 0x040083AA RID: 33706
[FieldOffset(Offset = "0x44")]
[Token(Token = "0x40083AA")]
protected internal bool _leaveOpen;
// Token: 0x040083AB RID: 33707
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40083AB")]
protected internal byte[] _workingBuffer;
// Token: 0x040083AC RID: 33708
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40083AC")]
protected internal int _bufferSize;
// Token: 0x040083AD RID: 33709
[FieldOffset(Offset = "0x54")]
[Token(Token = "0x40083AD")]
protected internal int windowBitsMax;
// Token: 0x040083AE RID: 33710
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x40083AE")]
protected internal byte[] _buf1;
// Token: 0x040083AF RID: 33711
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x40083AF")]
protected internal Stream _stream;
// Token: 0x040083B0 RID: 33712
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x40083B0")]
protected internal CompressionStrategy Strategy;
// Token: 0x040083B1 RID: 33713
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x40083B1")]
private CRC32 crc;
// Token: 0x040083B2 RID: 33714
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x40083B2")]
protected internal string _GzipFileName;
// Token: 0x040083B3 RID: 33715
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x40083B3")]
protected internal string _GzipComment;
// Token: 0x040083B4 RID: 33716
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x40083B4")]
protected internal DateTime _GzipMtime;
// Token: 0x040083B5 RID: 33717
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x40083B5")]
protected internal int _gzipHeaderByteCount;
// Token: 0x040083B6 RID: 33718
[FieldOffset(Offset = "0x94")]
[Token(Token = "0x40083B6")]
private bool nomoreinput;
// Token: 0x02001FBA RID: 8122
[Token(Token = "0x2001FBA")]
internal enum StreamMode
{
// Token: 0x040083B8 RID: 33720
[Token(Token = "0x40083B8")]
Writer,
// Token: 0x040083B9 RID: 33721
[Token(Token = "0x40083B9")]
Reader,
// Token: 0x040083BA RID: 33722
[Token(Token = "0x40083BA")]
Undefined
}
}
}