using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Zlib { // Token: 0x0200134F RID: 4943 [Token(Token = "0x200134F")] [StructLayout(3)] internal sealed class InfBlocks { // Token: 0x06007CC9 RID: 31945 RVA: 0x001A10F8 File Offset: 0x0019F2F8 [Token(Token = "0x6007CC9")] [Address(RVA = "0x202C310", Offset = "0x202AD10", VA = "0x18202C310")] 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: 0x06007CCA RID: 31946 RVA: 0x001A11B0 File Offset: 0x0019F3B0 [Token(Token = "0x6007CCA")] [Address(RVA = "0x202DAF0", Offset = "0x202C4F0", VA = "0x18202DAF0")] 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: 0x06007CCB RID: 31947 RVA: 0x001A1214 File Offset: 0x0019F414 [Token(Token = "0x6007CCB")] [Address(RVA = "0x202C630", Offset = "0x202B030", VA = "0x18202C630")] 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: 0x06007CCC RID: 31948 RVA: 0x001A1B18 File Offset: 0x0019FD18 [Token(Token = "0x6007CCC")] [Address(RVA = "0x202C450", Offset = "0x202AE50", VA = "0x18202C450")] 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: 0x06007CCD RID: 31949 RVA: 0x001A1B74 File Offset: 0x0019FD74 [Token(Token = "0x6007CCD")] [Address(RVA = "0x202DB70", Offset = "0x202C570", VA = "0x18202DB70")] 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: 0x06007CCE RID: 31950 RVA: 0x001A1BA4 File Offset: 0x0019FDA4 [Token(Token = "0x6007CCE")] [Address(RVA = "0x1F15570", Offset = "0x1F13F70", VA = "0x181F15570")] internal int sync_point() { /* An exception occurred when decompiling this method (06007CCE) 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: 0x06007CCF RID: 31951 RVA: 0x001A1BBC File Offset: 0x0019FDBC [Token(Token = "0x6007CCF")] [Address(RVA = "0x202C4B0", Offset = "0x202AEB0", VA = "0x18202C4B0")] 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: 0x06007CD0 RID: 31952 RVA: 0x001A1D30 File Offset: 0x0019FF30 // Note: this type is marked as 'beforefieldinit'. [Token(Token = "0x6007CD0")] [Address(RVA = "0x202C270", Offset = "0x202AC70", VA = "0x18202C270")] static InfBlocks() { int[] array = new int[17]; RuntimeHelpers.InitializeArray(array, fieldof(.F584B6C7CCA3CD4ECC3B9B1E20D2F2EFB73DBBDF).FieldHandle); InfBlocks.inflate_mask = array; int[] array2 = new int[19]; RuntimeHelpers.InitializeArray(array2, fieldof(.1FDC8DB567F5AAA7068D0D2A601CD71657CBDF38).FieldHandle); InfBlocks.border = array2; } // Token: 0x0400591F RID: 22815 [Token(Token = "0x400591F")] private const int MANY = 1440; // Token: 0x04005920 RID: 22816 [Token(Token = "0x4005920")] private static readonly int[] inflate_mask; // Token: 0x04005921 RID: 22817 [Token(Token = "0x4005921")] private static readonly int[] border; // Token: 0x04005922 RID: 22818 [Token(Token = "0x4005922")] private const int Z_OK = 0; // Token: 0x04005923 RID: 22819 [Token(Token = "0x4005923")] private const int Z_STREAM_END = 1; // Token: 0x04005924 RID: 22820 [Token(Token = "0x4005924")] private const int Z_NEED_DICT = 2; // Token: 0x04005925 RID: 22821 [Token(Token = "0x4005925")] private const int Z_ERRNO = -1; // Token: 0x04005926 RID: 22822 [Token(Token = "0x4005926")] private const int Z_STREAM_ERROR = -2; // Token: 0x04005927 RID: 22823 [Token(Token = "0x4005927")] private const int Z_DATA_ERROR = -3; // Token: 0x04005928 RID: 22824 [Token(Token = "0x4005928")] private const int Z_MEM_ERROR = -4; // Token: 0x04005929 RID: 22825 [Token(Token = "0x4005929")] private const int Z_BUF_ERROR = -5; // Token: 0x0400592A RID: 22826 [Token(Token = "0x400592A")] private const int Z_VERSION_ERROR = -6; // Token: 0x0400592B RID: 22827 [Token(Token = "0x400592B")] private const int TYPE = 0; // Token: 0x0400592C RID: 22828 [Token(Token = "0x400592C")] private const int LENS = 1; // Token: 0x0400592D RID: 22829 [Token(Token = "0x400592D")] private const int STORED = 2; // Token: 0x0400592E RID: 22830 [Token(Token = "0x400592E")] private const int TABLE = 3; // Token: 0x0400592F RID: 22831 [Token(Token = "0x400592F")] private const int BTREE = 4; // Token: 0x04005930 RID: 22832 [Token(Token = "0x4005930")] private const int DTREE = 5; // Token: 0x04005931 RID: 22833 [Token(Token = "0x4005931")] private const int CODES = 6; // Token: 0x04005932 RID: 22834 [Token(Token = "0x4005932")] private const int DRY = 7; // Token: 0x04005933 RID: 22835 [Token(Token = "0x4005933")] private const int DONE = 8; // Token: 0x04005934 RID: 22836 [Token(Token = "0x4005934")] private const int BAD = 9; // Token: 0x04005935 RID: 22837 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4005935")] internal int mode; // Token: 0x04005936 RID: 22838 [global::Cpp2IlInjected.FieldOffset(Offset = "0x14")] [Token(Token = "0x4005936")] internal int left; // Token: 0x04005937 RID: 22839 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x4005937")] internal int table; // Token: 0x04005938 RID: 22840 [global::Cpp2IlInjected.FieldOffset(Offset = "0x1C")] [Token(Token = "0x4005938")] internal int index; // Token: 0x04005939 RID: 22841 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x4005939")] internal int[] blens; // Token: 0x0400593A RID: 22842 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x400593A")] internal int[] bb; // Token: 0x0400593B RID: 22843 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x400593B")] internal int[] tb; // Token: 0x0400593C RID: 22844 [global::Cpp2IlInjected.FieldOffset(Offset = "0x38")] [Token(Token = "0x400593C")] internal InfCodes codes; // Token: 0x0400593D RID: 22845 [global::Cpp2IlInjected.FieldOffset(Offset = "0x40")] [Token(Token = "0x400593D")] private int last; // Token: 0x0400593E RID: 22846 [global::Cpp2IlInjected.FieldOffset(Offset = "0x44")] [Token(Token = "0x400593E")] internal int bitk; // Token: 0x0400593F RID: 22847 [global::Cpp2IlInjected.FieldOffset(Offset = "0x48")] [Token(Token = "0x400593F")] internal int bitb; // Token: 0x04005940 RID: 22848 [global::Cpp2IlInjected.FieldOffset(Offset = "0x50")] [Token(Token = "0x4005940")] internal int[] hufts; // Token: 0x04005941 RID: 22849 [global::Cpp2IlInjected.FieldOffset(Offset = "0x58")] [Token(Token = "0x4005941")] internal byte[] window; // Token: 0x04005942 RID: 22850 [global::Cpp2IlInjected.FieldOffset(Offset = "0x60")] [Token(Token = "0x4005942")] internal int end; // Token: 0x04005943 RID: 22851 [global::Cpp2IlInjected.FieldOffset(Offset = "0x64")] [Token(Token = "0x4005943")] internal int read; // Token: 0x04005944 RID: 22852 [global::Cpp2IlInjected.FieldOffset(Offset = "0x68")] [Token(Token = "0x4005944")] internal int write; // Token: 0x04005945 RID: 22853 [global::Cpp2IlInjected.FieldOffset(Offset = "0x70")] [Token(Token = "0x4005945")] internal object checkfn; // Token: 0x04005946 RID: 22854 [global::Cpp2IlInjected.FieldOffset(Offset = "0x78")] [Token(Token = "0x4005946")] internal long check; // Token: 0x04005947 RID: 22855 [global::Cpp2IlInjected.FieldOffset(Offset = "0x80")] [Token(Token = "0x4005947")] internal InfTree inftree; } }