Files
2026-04-10 22:50:51 +02:00

826 lines
21 KiB
C#

using System;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Zlib
{
// Token: 0x0200192C RID: 6444
[Token(Token = "0x200192C")]
internal sealed class InfBlocks
{
// Token: 0x060098A3 RID: 39075 RVA: 0x001F8A38 File Offset: 0x001F6C38
[Token(Token = "0x60098A3")]
[Address(RVA = "0x18DFB40", Offset = "0x18DE940", VA = "0x1818DFB40")]
internal InfBlocks(ZStream z, object checkfn, int w)
{
int[] array = new int[1];
this.bb = array;
int[] array2 = new int[1];
this.tb = array2;
int num = 0;
InfCodes infCodes;
infCodes.free(num);
this.codes = infCodes;
InfTree infTree = new InfTree();
this.inftree = infTree;
base..ctor();
int[] array3 = new int[4320];
this.hufts = array3;
byte[] array4 = new byte[w];
this.window = array4;
this.end = w;
this.checkfn = checkfn;
int num2 = 0;
this.mode = num2;
this.bitk = num2;
this.read = num2;
if (checkfn != 0)
{
this.check = (long)((ulong)1L);
z.adler = (long)((ulong)1L);
}
}
// Token: 0x060098A4 RID: 39076 RVA: 0x001F8AF0 File Offset: 0x001F6CF0
[Token(Token = "0x60098A4")]
[Address(RVA = "0x18E1320", Offset = "0x18E0120", VA = "0x1818E1320")]
internal void reset(ZStream z, long[] c)
{
if (c != 0)
{
long num = this.check;
c[0] = num;
}
if (this.mode == 6)
{
}
int num2 = 0;
this.mode = num2;
this.bitk = num2;
this.read = num2;
if (this.checkfn != num2)
{
this.check = (long)((ulong)1L);
z.adler = (long)((ulong)1L);
}
}
// Token: 0x060098A5 RID: 39077 RVA: 0x001F8B54 File Offset: 0x001F6D54
[Token(Token = "0x60098A5")]
[Address(RVA = "0x18DFE60", Offset = "0x18DEC60", VA = "0x1818DFE60")]
internal int proc(ZStream z, int r)
{
int num = this.write;
int num2 = this.read;
int num3 = z.next_in_index;
int avail_in = z.avail_in;
int num4 = this.bitb;
int num5 = this.bitk;
if (num < num2)
{
num2 -= num;
}
int num6 = this.end;
num6 -= num;
int num7 = this.mode;
int num19;
if (num7 <= 9)
{
if (num5 >= 3)
{
goto IL_77;
}
if (avail_in != 0)
{
byte[] next_in = z.next_in;
num3++;
num5 += 8;
goto IL_77;
}
goto IL_79C;
IL_87A:
uint num8;
while (num8 != (uint)(-3))
{
}
this.blens = (ulong)0L;
this.mode = (int)((ulong)9L);
int num9;
this.bitb = num9;
int num10;
this.bitk = num10;
int num11;
this.write = num11;
goto IL_8AC;
IL_77:
num7 = num4;
num5 = num4;
this.last = num7;
if (num5 != 3)
{
if (num5 != 3)
{
if (num5 != 3)
{
if (num5 != 1)
{
goto IL_1A6;
}
this.mode = (int)((ulong)9L);
z.msg = "invalid block type";
this.bitk = "invalid block type";
}
this.mode = 3;
}
int[] array = new int[1];
int[] array2 = new int[1];
int[][] array3 = new int[1][];
int[][] array4 = new int[1][];
array[0] = (int)((ulong)9L);
array2[0] = (int)((ulong)5L);
int[] fixed_tl = InfTree.fixed_tl;
if (fixed_tl != 0)
{
}
array3[0] = fixed_tl;
int[] fixed_td = InfTree.fixed_td;
if (fixed_td != 0)
{
}
array4[0] = fixed_td;
int num12 = array[0];
int num13 = array2[0];
int[] array5 = array3[0];
InfCodes infCodes = this.codes;
infCodes.mode = (int)((ulong)0L);
infCodes.lbits = (byte)num12;
infCodes.dbits = (byte)num13;
infCodes.ltree = array5;
infCodes.ltree_index = (int)((ulong)0L);
infCodes.dtree = fixed_td;
infCodes.dtree_index = (int)((ulong)0L);
infCodes.tree = (ulong)0L;
this.mode = (int)((ulong)6L);
IL_1A6:
int i = this.mode;
while (i <= 9)
{
}
goto IL_1B4;
}
this.mode = (int)((ulong)1L);
int num14 = 0;
this.left = 0;
int num15 = 0;
uint num16;
this.mode = (int)num16;
int num17 = this.last;
this.mode = num17;
int num18 = this.end;
int num21;
int num22;
if (num19 == num18)
{
int num20 = this.read;
if (num20 != 0)
{
num21 = 0;
if (num20 > 0)
{
num22 = num20 - 1;
}
if (num22 != 0)
{
goto IL_295;
}
}
}
this.write = num21;
int num23 = this.write;
int num24 = this.read;
int num25 = this.end;
if (num23 < num24)
{
num22 = num24;
num22 -= num23;
}
num22 = num25;
num22 -= num23;
int num26;
int num27;
if (num23 == num25 && num24 != 0)
{
num26 = 0;
num27 = num24 - 1;
if (num24 <= 0)
{
num27 = num25;
}
}
if (num27 == 0)
{
goto IL_784;
}
IL_295:
int num28;
if (num28 <= num27)
{
num27 = num28;
}
num26 += num27;
num27 -= num27;
while (num28 != num27)
{
}
this.mode = num28;
if (num14 < 14)
{
num14 += 8;
}
this.table = num15;
if (num15 > 29 || num15 > 29)
{
goto IL_7B4;
}
if (this.blens != 0)
{
int num29 = 0;
int[] array6 = this.blens;
num29++;
}
int[] array7 = new int[0];
this.blens = array7;
this.index = (int)((ulong)0L);
this.mode = (int)((ulong)4L);
int num30 = this.table;
int num31 = this.index;
num30 += 4;
int num36;
if (num31 < num30)
{
if (num14 < 3)
{
num14 += 8;
}
int[] array8 = this.blens;
int num32 = this.index;
int[] array9 = InfBlocks.border;
int num33 = num32 + 1;
this.index = num33;
int num34 = array9[num32];
array8[0] = num15;
int num35 = this.table;
num36 = this.index;
num35 += 4;
}
if (num36 < 19)
{
int[] array10 = this.blens;
int num37 = this.index;
int[] array11 = InfBlocks.border;
int num38 = num37 + 1;
this.index = num38;
num38 = num37;
int num39 = array11[num38];
int num40 = this.index;
}
int[] array12 = this.bb;
int[] array13 = this.tb;
InfTree infTree = this.inftree;
int[] array14 = this.bb;
int[] array15 = this.hufts;
infTree.initWorkArea(19);
int[] hn = infTree.hn;
int num41 = 0;
hn[0] = num41;
int[] v = infTree.v;
int[] hn2 = infTree.hn;
int num42;
if (num42 == -3 || num42 == -5 || "{il2cpp array field local78->}" == (ulong)0L)
{
goto IL_7F4;
}
if (num42 != 0)
{
goto IL_7EE;
}
this.index = num42;
this.mode = (int)((ulong)5L);
int num43 = this.table;
num42 = num43;
num43 += 258;
num42 += num43;
int num49;
if (this.index < num42)
{
int num44 = this.bb[0];
if (num14 < num44)
{
num14 += 8;
}
int[] array16 = this.tb;
int[] array17 = this.hufts;
int num45 = array16[0];
int[] array18 = InfBlocks.inflate_mask;
int length = array18.Length;
int num46 = array18[num44];
num46 += num45;
int[] array19 = this.tb;
int[] array20 = this.hufts;
int num47;
if (num47 != 18)
{
}
if (num14 < array18)
{
num14 += 8;
}
int num48;
num14 -= num48;
int[] array21 = InfBlocks.inflate_mask;
num49 = this.index;
uint num50;
num14 -= (int)num50;
int num51 = array21[(int)num50];
uint num52;
num52 += (uint)num51;
int num53 = this.table;
num53 += 258;
num53 += num53;
if (num47 == 16)
{
int[] array22 = this.blens;
int num54 = num49 - 1;
}
int num55 = 0;
int[] array23 = this.blens;
num49++;
uint num56 = num52 - 1U;
array23[0] = num55;
while (num56 != (uint)0)
{
}
this.index = num49;
int num57 = this.index;
num14 -= num48;
int[] array24 = this.blens;
int num58 = num57 + 1;
this.index = num58;
array24[0] = num47;
int num59 = this.index;
int num60 = this.table;
num58 = num60;
num60 += 258;
num58 += num60;
}
int[] array25 = this.tb;
int[] array26 = new int[1];
int[] array27 = new int[1];
int[] array28 = new int[1];
int[] array29 = new int[1];
array26[0] = (int)((ulong)9L);
array27[0] = (int)((ulong)6L);
InfTree infTree2 = this.inftree;
int num61 = this.table;
num49 = num61;
int[] array30 = this.hufts;
num61 += 257;
num49++;
int num62;
if (num62 != 0)
{
goto IL_87A;
}
int num63 = array26[0];
int num64 = array27[0];
int[] array31 = this.hufts;
int num65 = array28[0];
int num66 = array29[0];
InfCodes infCodes2 = this.codes;
infCodes2.dbits = (byte)num64;
infCodes2.mode = (int)((ulong)0L);
infCodes2.lbits = (byte)num63;
infCodes2.ltree = array31;
infCodes2.ltree_index = num65;
infCodes2.dtree = array31;
infCodes2.dtree_index = num66;
infCodes2.tree = (ulong)0L;
this.mode = (int)((ulong)6L);
this.bitb = num15;
this.bitk = num14;
InfCodes infCodes3 = this.codes;
this.write = num26;
int num67;
if (num67 != 1)
{
goto IL_8F0;
}
int num68 = 0;
num11 = this.write;
int num69 = this.read;
num9 = this.bitb;
num10 = this.bitk;
if (num11 < num69)
{
num69 -= num11;
}
int num70 = this.end;
num70 -= num11;
if (this.last != num68)
{
goto IL_8AC;
}
this.mode = num68;
this.mode = (int)((ulong)9L);
IL_784:
this.bitb = num9;
this.bitk = num10;
this.write = num11;
IL_79C:
this.bitb = num9;
this.bitk = num10;
this.write = num11;
IL_7B4:
this.mode = (int)((ulong)9L);
this.bitk = num10;
this.bitb = num9;
this.write = num11;
this.bitb = num9;
this.bitk = num10;
this.write = num11;
IL_7EE:
if (num11 != -3)
{
goto IL_807;
}
IL_7F4:
this.blens = (ulong)0L;
this.mode = (int)((ulong)9L);
IL_807:
this.bitb = num9;
this.bitk = num10;
this.write = num11;
this.bitb = num9;
this.bitk = num10;
this.write = num11;
this.bitb = num9;
this.bitk = num10;
this.write = num11;
this.blens = (ulong)0L;
this.mode = (int)((ulong)9L);
this.bitb = num9;
this.bitk = num10;
this.write = num11;
goto IL_87A;
IL_8AC:
this.mode = (int)((ulong)7L);
this.write = num11;
int num71 = this.write;
while (this.read != num71)
{
}
this.mode = (int)((ulong)8L);
this.bitb = num9;
this.bitk = num10;
this.write = num71;
IL_8F0:
throw new NullReferenceException();
}
IL_1B4:
this.bitb = num4;
this.bitk = num5;
this.write = num;
num19 = 0;
int num72;
return num72;
}
// Token: 0x060098A6 RID: 39078 RVA: 0x001F9458 File Offset: 0x001F7658
[Token(Token = "0x60098A6")]
[Address(RVA = "0x18DFC80", Offset = "0x18DEA80", VA = "0x1818DFC80")]
internal void free(ZStream z)
{
if (this.mode == 6)
{
}
int num = 0;
this.mode = num;
this.bitk = num;
this.read = num;
if (this.checkfn != num)
{
this.check = (long)((ulong)1L);
z.adler = (long)((ulong)1L);
}
this.window = num;
this.hufts = num;
}
// Token: 0x060098A7 RID: 39079 RVA: 0x001F94B4 File Offset: 0x001F76B4
[Token(Token = "0x60098A7")]
[Address(RVA = "0x18E13A0", Offset = "0x18E01A0", VA = "0x1818E13A0")]
internal void set_dictionary(byte[] d, int start, int n)
{
byte[] array = this.window;
int num = 0;
Array.Copy(d, start, array, num, n);
this.write = n;
this.read = n;
}
// Token: 0x060098A8 RID: 39080 RVA: 0x001F94E4 File Offset: 0x001F76E4
[Token(Token = "0x60098A8")]
[Address(RVA = "0x18E13F0", Offset = "0x18E01F0", VA = "0x1818E13F0")]
internal int sync_point()
{
/*
An exception occurred when decompiling this method (060098A8)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Zlib.InfBlocks::sync_point()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:bool(var_0_09, ceq:bool(ldfld:int32(InfBlocks::mode, ldloc:InfBlocks(this)), ldc.i4:int32(1)))
}
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: 0x060098A9 RID: 39081 RVA: 0x001F94FC File Offset: 0x001F76FC
[Token(Token = "0x60098A9")]
[Address(RVA = "0x18DFCE0", Offset = "0x18DEAE0", VA = "0x1818DFCE0")]
internal int inflate_flush(ZStream z, int r)
{
int num = this.read;
int num2 = this.write;
int num3 = z.next_out_index;
if (num > num2)
{
}
int num4 = z.avail_out;
num2 -= num;
if (num2 <= num4)
{
num4 = num2;
}
int num5 = 0;
if (num4 != 0)
{
}
num4 -= num4;
z.avail_out = num4;
if (this.checkfn != num5)
{
Adler32 adler = z._adler;
byte[] array = this.window;
long num6 = this.check;
long num7 = adler.adler32(num6, array, num, num4);
this.check = num7;
z.adler = num7;
}
byte[] next_out = z.next_out;
num = num3;
Array.Copy(this.window, num, next_out, num, num4);
int num8 = this.end;
num3 += num4;
num += num4;
if (num == num8)
{
if (this.write == num8)
{
this.write = num5;
}
int num9 = z.avail_out;
if (num5 != 0)
{
}
num9 -= num5;
z.avail_out = num9;
if (this.checkfn != num5)
{
Adler32 adler2 = z._adler;
byte[] array2 = this.window;
int num10 = 0;
long num11 = this.check;
long num12 = adler2.adler32(num11, array2, num10, num5);
this.check = num12;
z.adler = num12;
}
byte[] next_out2 = z.next_out;
byte[] array3 = this.window;
int num13 = 0;
Array.Copy(array3, num13, next_out2, num3, num5);
num3 += num5;
}
z.next_out_index = num3;
this.read = num5;
return num5;
}
// Token: 0x060098AA RID: 39082 RVA: 0x001F9670 File Offset: 0x001F7870
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x60098AA")]
[Address(RVA = "0x18DFAA0", Offset = "0x18DE8A0", VA = "0x1818DFAA0")]
static InfBlocks()
{
int[] array = new int[17];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.F584B6C7CCA3CD4ECC3B9B1E20D2F2EFB73DBBDF).FieldHandle);
InfBlocks.inflate_mask = array;
int[] array2 = new int[19];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.1FDC8DB567F5AAA7068D0D2A601CD71657CBDF38).FieldHandle);
InfBlocks.border = array2;
}
// Token: 0x04006762 RID: 26466
[Token(Token = "0x4006762")]
private const int MANY = 1440;
// Token: 0x04006763 RID: 26467
[Token(Token = "0x4006763")]
private static readonly int[] inflate_mask;
// Token: 0x04006764 RID: 26468
[Token(Token = "0x4006764")]
private static readonly int[] border;
// Token: 0x04006765 RID: 26469
[Token(Token = "0x4006765")]
private const int Z_OK = 0;
// Token: 0x04006766 RID: 26470
[Token(Token = "0x4006766")]
private const int Z_STREAM_END = 1;
// Token: 0x04006767 RID: 26471
[Token(Token = "0x4006767")]
private const int Z_NEED_DICT = 2;
// Token: 0x04006768 RID: 26472
[Token(Token = "0x4006768")]
private const int Z_ERRNO = -1;
// Token: 0x04006769 RID: 26473
[Token(Token = "0x4006769")]
private const int Z_STREAM_ERROR = -2;
// Token: 0x0400676A RID: 26474
[Token(Token = "0x400676A")]
private const int Z_DATA_ERROR = -3;
// Token: 0x0400676B RID: 26475
[Token(Token = "0x400676B")]
private const int Z_MEM_ERROR = -4;
// Token: 0x0400676C RID: 26476
[Token(Token = "0x400676C")]
private const int Z_BUF_ERROR = -5;
// Token: 0x0400676D RID: 26477
[Token(Token = "0x400676D")]
private const int Z_VERSION_ERROR = -6;
// Token: 0x0400676E RID: 26478
[Token(Token = "0x400676E")]
private const int TYPE = 0;
// Token: 0x0400676F RID: 26479
[Token(Token = "0x400676F")]
private const int LENS = 1;
// Token: 0x04006770 RID: 26480
[Token(Token = "0x4006770")]
private const int STORED = 2;
// Token: 0x04006771 RID: 26481
[Token(Token = "0x4006771")]
private const int TABLE = 3;
// Token: 0x04006772 RID: 26482
[Token(Token = "0x4006772")]
private const int BTREE = 4;
// Token: 0x04006773 RID: 26483
[Token(Token = "0x4006773")]
private const int DTREE = 5;
// Token: 0x04006774 RID: 26484
[Token(Token = "0x4006774")]
private const int CODES = 6;
// Token: 0x04006775 RID: 26485
[Token(Token = "0x4006775")]
private const int DRY = 7;
// Token: 0x04006776 RID: 26486
[Token(Token = "0x4006776")]
private const int DONE = 8;
// Token: 0x04006777 RID: 26487
[Token(Token = "0x4006777")]
private const int BAD = 9;
// Token: 0x04006778 RID: 26488
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006778")]
internal int mode;
// Token: 0x04006779 RID: 26489
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x4006779")]
internal int left;
// Token: 0x0400677A RID: 26490
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400677A")]
internal int table;
// Token: 0x0400677B RID: 26491
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x400677B")]
internal int index;
// Token: 0x0400677C RID: 26492
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400677C")]
internal int[] blens;
// Token: 0x0400677D RID: 26493
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400677D")]
internal int[] bb;
// Token: 0x0400677E RID: 26494
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400677E")]
internal int[] tb;
// Token: 0x0400677F RID: 26495
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x400677F")]
internal InfCodes codes;
// Token: 0x04006780 RID: 26496
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4006780")]
private int last;
// Token: 0x04006781 RID: 26497
[FieldOffset(Offset = "0x44")]
[Token(Token = "0x4006781")]
internal int bitk;
// Token: 0x04006782 RID: 26498
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4006782")]
internal int bitb;
// Token: 0x04006783 RID: 26499
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006783")]
internal int[] hufts;
// Token: 0x04006784 RID: 26500
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4006784")]
internal byte[] window;
// Token: 0x04006785 RID: 26501
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4006785")]
internal int end;
// Token: 0x04006786 RID: 26502
[FieldOffset(Offset = "0x64")]
[Token(Token = "0x4006786")]
internal int read;
// Token: 0x04006787 RID: 26503
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4006787")]
internal int write;
// Token: 0x04006788 RID: 26504
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4006788")]
internal object checkfn;
// Token: 0x04006789 RID: 26505
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x4006789")]
internal long check;
// Token: 0x0400678A RID: 26506
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x400678A")]
internal InfTree inftree;
}
}