using System; using Cpp2IlInjected; namespace BestHTTP.Decompression.Zlib { // Token: 0x0200208B RID: 8331 [Token(Token = "0x200208B")] internal sealed class InflateCodes { // Token: 0x0600D169 RID: 53609 RVA: 0x002FBC20 File Offset: 0x002F9E20 [Token(Token = "0x600D169")] [Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")] internal InflateCodes() { } // Token: 0x0600D16A RID: 53610 RVA: 0x002FBC34 File Offset: 0x002F9E34 [Token(Token = "0x600D16A")] [Address(RVA = "0x4EBB60", Offset = "0x4EAB60", VA = "0x1804EBB60")] internal void Init(int bl, int bd, int[] tl, int tl_index, int[] td, int td_index) { int num = 0; this.ltree_index = 0; this.dtree = 0; this.dtree_index = 0; this.mode = num; this.lbits = (byte)bl; this.dbits = (byte)bd; this.ltree = tl; this.tree = num; } // Token: 0x0600D16B RID: 53611 RVA: 0x002FBC7C File Offset: 0x002F9E7C [Token(Token = "0x600D16B")] [Address(RVA = "0x241A0C0", Offset = "0x24190C0", VA = "0x18241A0C0")] internal int Process(InflateBlocks blocks, int r) { ZlibCodec codec = blocks._codec; int writeAt = blocks.writeAt; int num = blocks.readAt; int bitb = blocks.bitb; int nextIn = codec.NextIn; int availableBytesIn = codec.AvailableBytesIn; int bitk = blocks.bitk; if (writeAt < num) { num -= writeAt; } int num2 = blocks.end; num2 -= writeAt; blocks.bitb = bitb; blocks.bitk = bitk; codec.AvailableBytesIn = availableBytesIn; codec.NextIn = nextIn; blocks.writeAt = writeAt; int writeAt2 = blocks.writeAt; int num3 = blocks.readAt; int bitb2 = blocks.bitb; int num4 = codec.NextIn; int availableBytesIn2 = codec.AvailableBytesIn; int num5 = blocks.bitk; if (writeAt2 < num3) { num3 -= writeAt2; } int num6 = blocks.end; num6 -= writeAt2; int num7; if (num7 != 0) { } uint num8; if (num5 < (int)num8) { if (availableBytesIn2 == 0) { goto IL_31B; } byte[] inputBuffer = codec.InputBuffer; num4++; num5 += 8; } uint num9; int num10; if (num5 < (int)num9) { if (availableBytesIn2 == 0) { goto IL_31B; } num10 = 0; byte[] inputBuffer2 = codec.InputBuffer; num4++; num5 += 8; } num5 -= (int)num9; if (num5 < (int)num9) { if (availableBytesIn2 == 0) { goto IL_349; } byte[] inputBuffer3 = codec.InputBuffer; num4++; num5 += 8; } num5 -= num10; uint num11; int num12; if (num5 < (int)num11) { if (availableBytesIn2 == 0) { goto IL_31B; } num12 = 0; byte[] inputBuffer4 = codec.InputBuffer; num4++; num5 += 8; } num5 -= (int)num11; int num14; int num15; int num16; if (num6 == 0) { int num13 = blocks.end; if (writeAt2 == num13) { int readAt = blocks.readAt; if (readAt != 0) { if (readAt > 0) { } if (num13 != 0) { goto IL_203; } } } blocks.writeAt = writeAt2; num14 = blocks.Flush(num12); int writeAt3 = blocks.writeAt; int end = blocks.end; int readAt2 = blocks.readAt; if (writeAt3 < readAt2) { num13 = readAt2; num13 -= writeAt3; } num13 -= writeAt3; if (writeAt3 == end && readAt2 != 0) { num15 = 0; num16 = readAt2 - 1; if (readAt2 <= 0) { } } if (num16 == 0) { goto IL_358; } } IL_203: byte[] window = blocks.window; int num17 = writeAt2 + 1; num15++; int length = window.Length; int end2 = blocks.end; int i; if (num16 == 0) { int end3 = blocks.end; int num18; if (num15 == end3) { int readAt3 = blocks.readAt; if (readAt3 != 0) { num18 = 0; int num19; if (readAt3 > 0) { num19 = readAt3 - 1; } if (num19 != 0) { goto IL_2D0; } } } blocks.writeAt = num18; int num20 = blocks.Flush(num14); int readAt4 = blocks.readAt; num14 = num20; int writeAt4 = blocks.writeAt; if (writeAt4 < readAt4) { int num19 = readAt4; num19 -= writeAt4; } int num21 = blocks.end; num21 -= writeAt4; int end4 = blocks.end; int num22; if (writeAt4 == end4 && readAt4 != 0) { i = 0; num22 = readAt4 - 1; num22 = end4; } if (num22 == 0) { goto IL_36E; } } IL_2D0: byte[] window2 = blocks.window; int num23 = 0; i++; while (i <= 9) { } blocks.bitb = bitb2; blocks.bitk = num5; codec.AvailableBytesIn = availableBytesIn2; int num24 = 0; codec.NextIn = num4; blocks.writeAt = i; return blocks.Flush(-2); IL_31B: blocks.bitb = num24; blocks.bitk = 0; blocks.writeAt = 0; blocks.bitb = 0; blocks.bitk = 0; int num25 = 0; blocks.writeAt = 0; IL_349: blocks.bitb = num25; blocks.bitk = 0; IL_358: blocks.bitb = bitb2; blocks.bitk = 0; blocks.writeAt = 0; IL_36E: blocks.bitb = bitb2; blocks.bitk = 0; blocks.writeAt = 0; blocks.writeAt = 0; int num26 = blocks.Flush(num23); int writeAt5 = blocks.writeAt; while (blocks.readAt != writeAt5) { } blocks.bitb = bitb2; blocks.bitk = 0; int num27 = 0; blocks.writeAt = writeAt5; blocks.bitb = num27; throw new NullReferenceException(); } // Token: 0x0600D16C RID: 53612 RVA: 0x002FC058 File Offset: 0x002FA258 [Token(Token = "0x600D16C")] [Address(RVA = "0x24194F0", Offset = "0x24184F0", VA = "0x1824194F0")] internal int InflateFast(int bl, int bd, int[] tl, int tl_index, int[] td, int td_index, InflateBlocks s, ZlibCodec z) { int num6; if (bl != 0) { int num = bd + 1; if (bl == 16) { if (bl != 64) { goto IL_67; } while (bl != 0) { } int num2 = bd + 1; } int num3 = bd + 1; if (bl == 16 && bl != 64) { goto IL_73; } int num4 = bd - 1; while (num4 != 0) { } int num5 = 0; num6 = 0; if (num5 != 1) { num6 += 2; num4 -= num6; if (num4 > 0) { num6++; while (num4 != 0) { } } } Array.Copy(num6, num6, num6, 1, num4); } IL_67: if (num6 == 32) { } uint num7; num7 -= tl; IL_73: throw new NullReferenceException(); } // Token: 0x040084E7 RID: 34023 [Token(Token = "0x40084E7")] private const int START = 0; // Token: 0x040084E8 RID: 34024 [Token(Token = "0x40084E8")] private const int LEN = 1; // Token: 0x040084E9 RID: 34025 [Token(Token = "0x40084E9")] private const int LENEXT = 2; // Token: 0x040084EA RID: 34026 [Token(Token = "0x40084EA")] private const int DIST = 3; // Token: 0x040084EB RID: 34027 [Token(Token = "0x40084EB")] private const int DISTEXT = 4; // Token: 0x040084EC RID: 34028 [Token(Token = "0x40084EC")] private const int COPY = 5; // Token: 0x040084ED RID: 34029 [Token(Token = "0x40084ED")] private const int LIT = 6; // Token: 0x040084EE RID: 34030 [Token(Token = "0x40084EE")] private const int WASH = 7; // Token: 0x040084EF RID: 34031 [Token(Token = "0x40084EF")] private const int END = 8; // Token: 0x040084F0 RID: 34032 [Token(Token = "0x40084F0")] private const int BADCODE = 9; // Token: 0x040084F1 RID: 34033 [FieldOffset(Offset = "0x10")] [Token(Token = "0x40084F1")] internal int mode; // Token: 0x040084F2 RID: 34034 [FieldOffset(Offset = "0x14")] [Token(Token = "0x40084F2")] internal int len; // Token: 0x040084F3 RID: 34035 [FieldOffset(Offset = "0x18")] [Token(Token = "0x40084F3")] internal int[] tree; // Token: 0x040084F4 RID: 34036 [FieldOffset(Offset = "0x20")] [Token(Token = "0x40084F4")] internal int tree_index; // Token: 0x040084F5 RID: 34037 [FieldOffset(Offset = "0x24")] [Token(Token = "0x40084F5")] internal int need; // Token: 0x040084F6 RID: 34038 [FieldOffset(Offset = "0x28")] [Token(Token = "0x40084F6")] internal int lit; // Token: 0x040084F7 RID: 34039 [FieldOffset(Offset = "0x2C")] [Token(Token = "0x40084F7")] internal int bitsToGet; // Token: 0x040084F8 RID: 34040 [FieldOffset(Offset = "0x30")] [Token(Token = "0x40084F8")] internal int dist; // Token: 0x040084F9 RID: 34041 [FieldOffset(Offset = "0x34")] [Token(Token = "0x40084F9")] internal byte lbits; // Token: 0x040084FA RID: 34042 [FieldOffset(Offset = "0x35")] [Token(Token = "0x40084FA")] internal byte dbits; // Token: 0x040084FB RID: 34043 [FieldOffset(Offset = "0x38")] [Token(Token = "0x40084FB")] internal int[] ltree; // Token: 0x040084FC RID: 34044 [FieldOffset(Offset = "0x40")] [Token(Token = "0x40084FC")] internal int ltree_index; // Token: 0x040084FD RID: 34045 [FieldOffset(Offset = "0x48")] [Token(Token = "0x40084FD")] internal int[] dtree; // Token: 0x040084FE RID: 34046 [FieldOffset(Offset = "0x50")] [Token(Token = "0x40084FE")] internal int dtree_index; } }