Files
niko c12fbe3fc6 m
2026-04-12 16:51:38 +02:00

359 lines
14 KiB
C#

using System;
using BestHTTP.Extensions;
using Cpp2IlInjected;
namespace BestHTTP.Decompression.Zlib
{
// Token: 0x0200208C RID: 8332
[Token(Token = "0x200208C")]
internal sealed class InflateManager
{
// Token: 0x17002154 RID: 8532
// (get) Token: 0x0600D16D RID: 53613 RVA: 0x002FC0E0 File Offset: 0x002FA2E0
// (set) Token: 0x0600D16E RID: 53614 RVA: 0x002FC0F4 File Offset: 0x002FA2F4
[Token(Token = "0x17002154")]
internal bool HandleRfc1950HeaderBytes
{
[Token(Token = "0x600D16D")]
[Address(RVA = "0x5AB2E0", Offset = "0x5AA2E0", VA = "0x1805AB2E0")]
get
{
return this._handleRfc1950HeaderBytes;
}
[Token(Token = "0x600D16E")]
[Address(RVA = "0x5AB400", Offset = "0x5AA400", VA = "0x1805AB400")]
set
{
this._handleRfc1950HeaderBytes = value;
}
}
// Token: 0x0600D16F RID: 53615 RVA: 0x002FC108 File Offset: 0x002FA308
[Token(Token = "0x600D16F")]
[Address(RVA = "0x1BCA0F0", Offset = "0x1BC90F0", VA = "0x181BCA0F0")]
public InflateManager()
{
}
// Token: 0x0600D170 RID: 53616 RVA: 0x002FC124 File Offset: 0x002FA324
[Token(Token = "0x600D170")]
[Address(RVA = "0x10AFB40", Offset = "0x10AEB40", VA = "0x1810AFB40")]
public InflateManager(bool expectRfc1950HeaderBytes)
{
this._handleRfc1950HeaderBytes = expectRfc1950HeaderBytes;
}
// Token: 0x0600D171 RID: 53617 RVA: 0x002FC148 File Offset: 0x002FA348
[Token(Token = "0x600D171")]
[Address(RVA = "0x241B980", Offset = "0x241A980", VA = "0x18241B980")]
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: 0x0600D172 RID: 53618 RVA: 0x002FC194 File Offset: 0x002FA394
[Token(Token = "0x600D172")]
[Address(RVA = "0x241AD90", Offset = "0x2419D90", VA = "0x18241AD90")]
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: 0x0600D173 RID: 53619 RVA: 0x002FC1E4 File Offset: 0x002FA3E4
[Token(Token = "0x600D173")]
[Address(RVA = "0x241B760", Offset = "0x241A760", VA = "0x18241B760")]
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: 0x0600D174 RID: 53620 RVA: 0x002FC2E0 File Offset: 0x002FA4E0
[Token(Token = "0x600D174")]
[Address(RVA = "0x241AE30", Offset = "0x2419E30", VA = "0x18241AE30")]
internal int Inflate(FlushType flush)
{
/*
An exception occurred when decompiling this method (0600D174)
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 1663
*/;
}
// Token: 0x0600D175 RID: 53621 RVA: 0x002FC8B8 File Offset: 0x002FAAB8
[Token(Token = "0x600D175")]
[Address(RVA = "0x241B9D0", Offset = "0x241A9D0", VA = "0x18241B9D0")]
internal int SetDictionary(byte[] dictionary)
{
/*
An exception occurred when decompiling this method (0600D175)
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 1663
*/;
}
// Token: 0x0600D176 RID: 53622 RVA: 0x002FC96C File Offset: 0x002FAB6C
[Token(Token = "0x600D176")]
[Address(RVA = "0x241BB90", Offset = "0x241AB90", VA = "0x18241BB90")]
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: 0x0600D177 RID: 53623 RVA: 0x002FCAA8 File Offset: 0x002FACA8
[Token(Token = "0x600D177")]
[Address(RVA = "0x241BB60", Offset = "0x241AB60", VA = "0x18241BB60")]
internal int SyncPoint(ZlibCodec z)
{
bool flag = this.blocks.mode == InflateBlocks.InflateBlockMode.LENS;
throw new NullReferenceException();
}
// Token: 0x0600D178 RID: 53624 RVA: 0x002FCACC File Offset: 0x002FACCC
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600D178")]
[Address(RVA = "0x241BE00", Offset = "0x241AE00", VA = "0x18241BE00")]
static InflateManager()
{
byte[] array = new byte[4];
array[0] = (byte)((ulong)255L);
array[0] = (byte)((ulong)255L);
InflateManager.mark = array;
}
// Token: 0x040084FF RID: 34047
[Token(Token = "0x40084FF")]
private const int PRESET_DICT = 32;
// Token: 0x04008500 RID: 34048
[Token(Token = "0x4008500")]
private const int Z_DEFLATED = 8;
// Token: 0x04008501 RID: 34049
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4008501")]
private InflateManager.InflateManagerMode mode;
// Token: 0x04008502 RID: 34050
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4008502")]
internal ZlibCodec _codec;
// Token: 0x04008503 RID: 34051
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4008503")]
internal int method;
// Token: 0x04008504 RID: 34052
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x4008504")]
internal uint computedCheck;
// Token: 0x04008505 RID: 34053
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4008505")]
internal uint expectedCheck;
// Token: 0x04008506 RID: 34054
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x4008506")]
internal int marker;
// Token: 0x04008507 RID: 34055
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4008507")]
private bool _handleRfc1950HeaderBytes = true;
// Token: 0x04008508 RID: 34056
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x4008508")]
internal int wbits;
// Token: 0x04008509 RID: 34057
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4008509")]
internal InflateBlocks blocks;
// Token: 0x0400850A RID: 34058
[Token(Token = "0x400850A")]
private static readonly byte[] mark;
// Token: 0x0200208D RID: 8333
[Token(Token = "0x200208D")]
private enum InflateManagerMode
{
// Token: 0x0400850C RID: 34060
[Token(Token = "0x400850C")]
METHOD,
// Token: 0x0400850D RID: 34061
[Token(Token = "0x400850D")]
FLAG,
// Token: 0x0400850E RID: 34062
[Token(Token = "0x400850E")]
DICT4,
// Token: 0x0400850F RID: 34063
[Token(Token = "0x400850F")]
DICT3,
// Token: 0x04008510 RID: 34064
[Token(Token = "0x4008510")]
DICT2,
// Token: 0x04008511 RID: 34065
[Token(Token = "0x4008511")]
DICT1,
// Token: 0x04008512 RID: 34066
[Token(Token = "0x4008512")]
DICT0,
// Token: 0x04008513 RID: 34067
[Token(Token = "0x4008513")]
BLOCKS,
// Token: 0x04008514 RID: 34068
[Token(Token = "0x4008514")]
CHECK4,
// Token: 0x04008515 RID: 34069
[Token(Token = "0x4008515")]
CHECK3,
// Token: 0x04008516 RID: 34070
[Token(Token = "0x4008516")]
CHECK2,
// Token: 0x04008517 RID: 34071
[Token(Token = "0x4008517")]
CHECK1,
// Token: 0x04008518 RID: 34072
[Token(Token = "0x4008518")]
DONE,
// Token: 0x04008519 RID: 34073
[Token(Token = "0x4008519")]
BAD
}
}
}