using System; using System.Runtime.InteropServices; using BestHTTP.Extensions; using Cpp2IlInjected; namespace BestHTTP.Decompression.Zlib { // Token: 0x020019C5 RID: 6597 [Token(Token = "0x20019C5")] [StructLayout(3)] internal sealed class DeflateManager { // Token: 0x0600B14B RID: 45387 RVA: 0x00296954 File Offset: 0x00294B54 [Token(Token = "0x600B14B")] [Address(RVA = "0x1F09170", Offset = "0x1F07B70", VA = "0x181F09170")] internal DeflateManager() { ZTree ztree = new ZTree(); this.treeLiterals = ztree; ZTree ztree2 = new ZTree(); this.treeDistances = ztree2; ZTree ztree3 = new ZTree(); this.treeBitLengths = ztree3; int num = InternalConstants.MAX_BITS; num++; short[] array = new short[num]; this.bl_count = array; int[] array2 = new int[InternalConstants.L_CODES]; this.heap = array2; sbyte[] array3 = new sbyte[InternalConstants.L_CODES]; this.depth = array3; this._WantRfc1950HeaderBytes = true; base..ctor(); int num2 = DeflateManager.HEAP_SIZE; num2 += num2; short[] array4 = new short[num2]; this.dyn_ltree = array4; short[] array5 = new short[InternalConstants.D_CODES]; this.dyn_dtree = array5; short[] array6 = new short[InternalConstants.BL_CODES]; this.bl_tree = array6; } // Token: 0x0600B14C RID: 45388 RVA: 0x00296A20 File Offset: 0x00294C20 [Token(Token = "0x600B14C")] [Address(RVA = "0x1F088E0", Offset = "0x1F072E0", VA = "0x181F088E0")] private void _InitializeLazyMatch() { int num = this.w_size; int num2 = this.hash_size; num += num; short[] array = this.head; int num3 = 0; this.window_size = num; Array.Clear(array, num3, num2); int num4 = (int)this.compressionLevel; DeflateManager.Config config; this.config = config; this.SetDeflater(); int num5 = 0; this.strstart = num5; this.block_start = num5; this.lookahead = num5; int min_MATCH = DeflateManager.MIN_MATCH; this.match_available = num5; this.prev_length = min_MATCH; this.match_length = min_MATCH; this.ins_h = num5; } // Token: 0x0600B14D RID: 45389 RVA: 0x00296AB0 File Offset: 0x00294CB0 [Token(Token = "0x600B14D")] [Address(RVA = "0x1F089D0", Offset = "0x1F073D0", VA = "0x181F089D0")] private void _InitializeTreeData() { ZTree ztree = this.treeLiterals; short[] array = this.dyn_ltree; ztree.dyn_tree = array; ZTree ztree2 = this.treeLiterals; StaticTree literals = StaticTree.Literals; ztree2.staticTree = literals; ZTree ztree3 = this.treeDistances; short[] array2 = this.dyn_dtree; ztree3.dyn_tree = array2; ZTree ztree4 = this.treeDistances; StaticTree distances = StaticTree.Distances; ztree4.staticTree = distances; ZTree ztree5 = this.treeBitLengths; short[] array3 = this.bl_tree; ztree5.dyn_tree = array3; ZTree ztree6 = this.treeBitLengths; StaticTree bitLengths = StaticTree.BitLengths; ztree6.staticTree = bitLengths; int num = 0; this.bi_buf = (short)num; this.bi_valid = num; this.last_eob_len = (int)((ulong)8L); this._InitializeBlocks(); } // Token: 0x0600B14E RID: 45390 RVA: 0x00296B70 File Offset: 0x00294D70 [Token(Token = "0x600B14E")] [Address(RVA = "0x1F086C0", Offset = "0x1F070C0", VA = "0x181F086C0")] internal void _InitializeBlocks() { int num = 0; short[] array = this.dyn_ltree; num++; num += 2; array[0] = (short)num; if ("{il2cpp array field local2->}" == (ulong)2L || "{il2cpp array field local2->}" == num) { } short[] array2 = this.dyn_dtree; num++; num += 2; array2[0] = (short)num; short[] array3 = this.bl_tree; num++; num += 2; array3[0] = (short)num; short[] array4 = this.dyn_ltree; int num2 = DeflateManager.END_BLOCK; num2 += num2; uint num3; array4[0] = (short)num3; this.opt_len = num; this.matches = num; this.last_lit = num; } // Token: 0x0600B14F RID: 45391 RVA: 0x00296C14 File Offset: 0x00294E14 [Token(Token = "0x600B14F")] [Address(RVA = "0x1F0AC90", Offset = "0x1F09690", VA = "0x181F0AC90")] internal void pqdownheap(short[] tree, int k) { int[] array = this.heap; int num = this.heap_len; int num2 = array[k]; int length = this.heap.Length; int num3 = k + 1; sbyte[] array2 = this.depth; if (DeflateManager._IsSmaller(tree, num3, k, array2)) { } int[] array3 = this.heap; sbyte[] array4 = this.depth; if (!DeflateManager._IsSmaller(tree, num2, k, array4)) { int[] array5 = this.heap; int length2 = array5.Length; int num4; array5[0] = num4; int num5 = this.heap_len; } int[] array6 = this.heap; array6[0] = num2; } // Token: 0x0600B150 RID: 45392 RVA: 0x00296CB8 File Offset: 0x00294EB8 [Token(Token = "0x600B150")] [Address(RVA = "0x1F08B10", Offset = "0x1F07510", VA = "0x181F08B10")] internal static bool _IsSmaller(short[] tree, int n, int m, sbyte[] depth) { int length = tree.Length; short num; short num2; if (num < num2) { return true; } if (num != num2) { } int length2 = depth.Length; bool flag; return flag; } // Token: 0x0600B151 RID: 45393 RVA: 0x00296CE8 File Offset: 0x00294EE8 [Token(Token = "0x600B151")] [Address(RVA = "0x1F0AEF0", Offset = "0x1F098F0", VA = "0x181F0AEF0")] internal void scan_tree(short[] tree, int max_code) { int length = tree.Length; int i = 0; uint num; tree[0] = (short)num; int num2 = 0; num2 += 3; uint num3; if (1U < num3) { } short[] array = this.bl_tree; if (1UL > (ulong)10L) { int num4 = InternalConstants.REPZ_11_138; num4 += num4; } int num5 = InternalConstants.REPZ_3_10; num5 += num5; short[] array2 = this.bl_tree; short[] array3 = this.bl_tree; int num6 = InternalConstants.REP_3_6; num6 += num6; short[] array4 = this.bl_tree; i++; num2 += 2; while (i <= max_code) { } } // Token: 0x0600B152 RID: 45394 RVA: 0x00296D7C File Offset: 0x00294F7C [Token(Token = "0x600B152")] [Address(RVA = "0x1F0A340", Offset = "0x1F08D40", VA = "0x181F0A340")] internal int build_bl_tree() { int max_code = this.treeLiterals.max_code; short[] array = this.dyn_ltree; this.scan_tree(array, max_code); int max_code2 = this.treeDistances.max_code; short[] array2 = this.dyn_dtree; this.scan_tree(array2, max_code2); this.treeBitLengths.build_tree(this); int i = InternalConstants.BL_CODES; short[] array3 = this.bl_tree; sbyte[] array4 = ZTree.bl_order; i++; if ("{il2cpp array field local12->}" == (ulong)0L) { while (i >= 3) { } } array4 += i; return i; } // Token: 0x0600B153 RID: 45395 RVA: 0x00296E08 File Offset: 0x00295008 [Token(Token = "0x600B153")] [Address(RVA = "0x1F0B230", Offset = "0x1F09C30", VA = "0x181F0B230")] internal void send_all_trees(int lcodes, int dcodes, int blcodes) { this.send_bits(lcodes, 5); this.send_bits(lcodes, 5); this.send_bits(lcodes, 4); int num = 0; if (blcodes > 0) { short[] array = this.bl_tree; sbyte[] bl_order = ZTree.bl_order; num++; num++; } short[] array2 = this.dyn_ltree; int num2 = lcodes - 1; this.send_tree(array2, num2); short[] array3 = this.dyn_dtree; this.send_tree(array3, num2); } // Token: 0x0600B154 RID: 45396 RVA: 0x00296E78 File Offset: 0x00295078 [Token(Token = "0x600B154")] [Address(RVA = "0x1F0BAF0", Offset = "0x1F0A4F0", VA = "0x181F0BAF0")] internal void send_tree(short[] tree, int max_code) { int num = 0; int num2 = 0; num2 += 3; uint num3; if (1U < num3) { } if (1UL > (ulong)10L) { short[] array = this.bl_tree; int repz_11_ = InternalConstants.REPZ_11_138; this.send_code(repz_11_, array); uint num4; this.send_bits(repz_11_, (int)num4); } short[] array2 = this.bl_tree; int repz_3_ = InternalConstants.REPZ_3_10; this.send_code(repz_3_, array2); this.send_bits(repz_3_, 3); short[] array3 = this.bl_tree; this.send_code((int)num3, array3); short[] array4 = this.bl_tree; int rep_3_ = InternalConstants.REP_3_6; this.send_code(rep_3_, array4); this.send_bits(rep_3_, 2); short[] array5 = this.bl_tree; this.send_code(rep_3_, array5); num++; num2 += 2; } // Token: 0x0600B155 RID: 45397 RVA: 0x00296F38 File Offset: 0x00295138 [Token(Token = "0x600B155")] [Address(RVA = "0xE29F30", Offset = "0xE28930", VA = "0x180E29F30")] private void put_bytes(byte[] p, int start, int len) { byte[] array = this.pending; int num = this.pendingCount; Array.Copy(p, start, array, num, len); } // Token: 0x0600B156 RID: 45398 RVA: 0x00296F60 File Offset: 0x00295160 [Token(Token = "0x600B156")] [Address(RVA = "0x1F0B550", Offset = "0x1F09F50", VA = "0x181F0B550")] internal void send_code(int c, short[] tree) { int length = tree.Length; short num; short num2; this.send_bits((int)num, (int)num2); } // Token: 0x0600B157 RID: 45399 RVA: 0x00296F84 File Offset: 0x00295184 [Token(Token = "0x600B157")] [Address(RVA = "0x1F0B3B0", Offset = "0x1F09DB0", VA = "0x181F0B3B0")] internal void send_bits(int value, int length) { int num = this.bi_valid; int num2 = this.bi_valid; int num3 = DeflateManager.Buf_size; num3 -= length; this.bi_buf = (short)value; this.bi_valid = value; } // Token: 0x0600B158 RID: 45400 RVA: 0x00296FCC File Offset: 0x002951CC [Token(Token = "0x600B158")] [Address(RVA = "0x1F09670", Offset = "0x1F08070", VA = "0x181F09670")] internal void _tr_align() { int num = DeflateManager.STATIC_TREES; num += num; this.send_bits(num, 3); int length = StaticTree.lengthAndLiteralsTreeCodes.Length; short num2; short num3; this.send_bits((int)num2, (int)num3); this.bi_flush(); int num4 = this.last_eob_len; num4 += 11; if (num4 < 9) { int num5 = DeflateManager.STATIC_TREES; num5 += num5; this.send_bits(num5, 3); int length2 = StaticTree.lengthAndLiteralsTreeCodes.Length; short num6; short num7; this.send_bits((int)num6, (int)num7); this.bi_flush(); } this.last_eob_len = (int)((ulong)7L); } // Token: 0x0600B159 RID: 45401 RVA: 0x0029705C File Offset: 0x0029525C [Token(Token = "0x600B159")] [Address(RVA = "0x1F09F70", Offset = "0x1F08970", VA = "0x181F09F70")] internal bool _tr_tally(int dist, int lc) { byte[] array = this.pending; int num = this.last_lit; int distanceOffset = this._distanceOffset; byte[] array2 = this.pending; int num2 = this._distanceOffset; num2++; byte[] array3 = this.pending; num2 = this._lengthOffset; short[] array4 = this.dyn_ltree; if (dist != 0) { sbyte[] lengthCode = ZTree.LengthCode; int num3 = InternalConstants.LITERALS; num3 += typeof(InternalConstants).TypeHandle; int num4 = dist - 1; short[] array5 = this.dyn_dtree; int num5 = ZTree.DistanceCode(num4); num5 += num5; } int num9; if (this.last_lit == 8191 && this.compressionLevel > CompressionLevel.Level2) { int num6 = 0; short[] array6 = this.dyn_dtree; int[] extraDistanceBits = ZTree.ExtraDistanceBits; num6++; int num7 = extraDistanceBits[num6]; num7 += 5; int num8 = num7 * num6; num6 += 2; num9 = this.last_lit; num9 -= typeof(InternalConstants).TypeHandle; if (this.matches < num9) { num9 -= typeof(InternalConstants).TypeHandle; if (lc < num9) { } } } int num10 = this.lit_bufsize - 1; while (num9 == num10) { } throw new NullReferenceException(); } // Token: 0x0600B15A RID: 45402 RVA: 0x00297178 File Offset: 0x00295378 [Token(Token = "0x600B15A")] [Address(RVA = "0x1F0B5C0", Offset = "0x1F09FC0", VA = "0x181F0B5C0")] internal void send_compressed_block(short[] ltree, short[] dtree) { int num = 0; if (this.last_lit != num) { int num2 = this._distanceOffset; byte[] array = this.pending; num2 += num; int length = array.Length; int num3 = num2 + 1; int num4 = this._lengthOffset; num4 += num; num += 2; num++; sbyte[] lengthCode = ZTree.LengthCode; int num5 = InternalConstants.LITERALS; num5 += num5; int length2 = ltree.Length; num5 += 3; short num6 = ltree[num5]; short num7 = ltree[array]; this.send_bits((int)num7, (int)num6); int[] extraLengthBits = ZTree.ExtraLengthBits; int num8; if (num8 != 0) { int[] lengthBase = ZTree.LengthBase; byte b; this.send_bits((int)b, num8); } byte b2; int num9 = ZTree.DistanceCode((int)b2); this.send_bits(1, (int)num6); if (ZTree.ExtraDistanceBits[num9] != 0) { int[] distanceBase = ZTree.DistanceBase; int length3 = ltree.Length; num4++; short num10 = ltree[num4]; short num11 = ltree[num4]; this.send_bits((int)num11, (int)num10); } if (num < this.last_lit) { } } int num12 = DeflateManager.END_BLOCK; num12 += num12; int length4 = ltree.Length; short num13 = ltree[num12]; num12++; short num14 = ltree[num12]; this.send_bits((int)num13, (int)num14); int num15 = DeflateManager.END_BLOCK; num15 += num15; num15++; this.last_eob_len = num15; } // Token: 0x0600B15B RID: 45403 RVA: 0x002972E0 File Offset: 0x002954E0 [Token(Token = "0x600B15B")] [Address(RVA = "0x1F0BDB0", Offset = "0x1F0A7B0", VA = "0x181F0BDB0")] internal void set_data_type() { short[] array = this.dyn_ltree; int num = 0; int length = array.Length; num++; num += 2; if (num < 128) { num++; } short[] array2 = this.dyn_ltree; num++; num += array2; if (num > num) { } int z_ASCII = DeflateManager.Z_ASCII; this.data_type = (sbyte)z_ASCII; } // Token: 0x0600B15C RID: 45404 RVA: 0x0029733C File Offset: 0x0029553C [Token(Token = "0x600B15C")] [Address(RVA = "0xE29000", Offset = "0xE27A00", VA = "0x180E29000")] internal void bi_flush() { if (this.bi_valid != 16) { int num = this.pendingCount; byte[] array = this.pending; short num2 = this.bi_buf; int num3 = num + 1; this.pendingCount = num3; this.bi_buf = (short)num3; return; } int num4 = this.pendingCount; byte[] array2 = this.pending; short num5 = this.bi_buf; int num6 = num4 + 1; this.pendingCount = num6; int num7 = this.pendingCount; byte[] array3 = this.pending; short num8 = this.bi_buf; int num9 = num7 + 1; this.pendingCount = num9; int num10 = 0; this.bi_buf = (short)num10; this.bi_valid = num10; } // Token: 0x0600B15D RID: 45405 RVA: 0x002973E0 File Offset: 0x002955E0 [Token(Token = "0x600B15D")] [Address(RVA = "0xE29100", Offset = "0xE27B00", VA = "0x180E29100")] internal void bi_windup() { if (this.bi_valid > 0) { int num = this.pendingCount; byte[] array = this.pending; short num2 = this.bi_buf; int num3 = num + 1; this.pendingCount = num3; int num4 = 0; this.bi_buf = (short)num4; this.bi_valid = num4; return; } int num5 = 0; this.bi_buf = (short)num5; this.bi_valid = num5; } // Token: 0x0600B15E RID: 45406 RVA: 0x00297494 File Offset: 0x00295694 [Token(Token = "0x600B15E")] [Address(RVA = "0xE29390", Offset = "0xE27D90", VA = "0x180E29390")] internal void copy_block(int buf, int len, bool header) { this.bi_windup(); this.last_eob_len = (int)((ulong)8L); if (header) { int num = this.pendingCount; byte[] array = this.pending; int num2 = num + 1; this.pendingCount = num2; int num3 = this.pendingCount; byte[] array2 = this.pending; int num4 = num3 + 1; this.pendingCount = num4; int num5 = this.pendingCount; byte[] array3 = this.pending; int num6 = num5 + 1; this.pendingCount = num6; int num7 = this.pendingCount; byte[] array4 = this.pending; int num8 = num7 + 1; this.pendingCount = num8; } int num9 = this.pendingCount; byte[] array5 = this.pending; Array.Copy(this.window, buf, array5, num9, len); } // Token: 0x0600B15F RID: 45407 RVA: 0x0029754C File Offset: 0x0029574C [Token(Token = "0x600B15F")] [Address(RVA = "0x1F0A4D0", Offset = "0x1F08ED0", VA = "0x181F0A4D0")] internal void flush_block_only(bool eof) { int num = this.block_start; int num2 = this.strstart; num2 -= num; this._tr_flush_block(num, num2, eof); ZlibCodec codec = this._codec; int num3 = this.strstart; this.block_start = num3; codec.flush_pending(); } // Token: 0x0600B160 RID: 45408 RVA: 0x00297598 File Offset: 0x00295798 [Token(Token = "0x600B160")] [Address(RVA = "0x1F064A0", Offset = "0x1F04EA0", VA = "0x181F064A0")] internal BlockState DeflateNone(FlushType flush) { int num3; do { int num = this.pending.Length; num += -5; uint num2; if (num < (int)num2) { } num3 = 0; int num4 = this.lookahead; this._fillWindow(); int num5 = this.lookahead; if (num5 == 0) { if (flush == FlushType.None) { break; } if (num5 == 0) { break; } } int num6 = this.block_start; int num7 = this.strstart; this.lookahead = num3; if (num5 != 0) { } num7 -= this; this.strstart = this; this.lookahead = num7; int num8 = 0; this._tr_flush_block(num6, (int)num2, num8 != 0); ZlibCodec codec = this._codec; int num9 = this.strstart; this.block_start = num9; codec.flush_pending(); if (this._codec.AvailableBytesOut == num3) { break; } int num10 = this.strstart; int num11 = this.block_start; int num12 = this.w_size; num10 -= num11; int num13 = this.block_start; int num14 = this.strstart; int num15 = 0; num14 -= num13; this._tr_flush_block(num13, num14, num15 != 0); ZlibCodec codec2 = this._codec; int num16 = this.strstart; this.block_start = num16; codec2.flush_pending(); } while (this._codec.AvailableBytesOut != num3); bool flag = flush == FlushType.Finish; this.flush_block_only(flag); ZlibCodec codec3 = this._codec; while (flush != FlushType.Finish) { } throw new NullReferenceException(); } // Token: 0x0600B161 RID: 45409 RVA: 0x002976EC File Offset: 0x002958EC [Token(Token = "0x600B161")] [Address(RVA = "0x1F09DB0", Offset = "0x1F087B0", VA = "0x181F09DB0")] internal void _tr_stored_block(int buf, int stored_len, bool eof) { this.send_bits(buf, 3); this.bi_windup(); int num = this.pendingCount; byte[] array = this.pending; this.last_eob_len = (int)((ulong)8L); int num2 = num + 1; this.pendingCount = num2; int num3 = this.pendingCount; byte[] array2 = this.pending; int num4 = num3 + 1; this.pendingCount = num4; int num5 = this.pendingCount; byte[] array3 = this.pending; int num6 = num5 + 1; this.pendingCount = num6; int num7 = this.pendingCount; byte[] array4 = this.pending; int num8 = num7 + 1; this.pendingCount = num8; int num9 = this.pendingCount; byte[] array5 = this.pending; Array.Copy(this.window, buf, array5, num9, stored_len); } // Token: 0x0600B162 RID: 45410 RVA: 0x002977A8 File Offset: 0x002959A8 [Token(Token = "0x600B162")] [Address(RVA = "0x1F098A0", Offset = "0x1F082A0", VA = "0x181F098A0")] internal void _tr_flush_block(int buf, int stored_len, bool eof) { int num = 0; this.set_data_type(); this.treeLiterals.build_tree(this); this.treeDistances.build_tree(this); int max_code = this.treeLiterals.max_code; short[] array = this.dyn_ltree; this.scan_tree(array, max_code); int max_code2 = this.treeDistances.max_code; short[] array2 = this.dyn_dtree; this.scan_tree(array2, max_code2); this.treeBitLengths.build_tree(this); int i = InternalConstants.BL_CODES; short[] array3 = this.bl_tree; sbyte[] bl_order = ZTree.bl_order; i++; if ("{il2cpp array field local22->}" == num) { while (i >= 3) { } } int num2 = this.static_len; i += i; num2 += 10; int num3 = this.opt_len; num3 += 10; if (num2 <= num3) { num3 = num2; } if (buf != -1) { num3 = buf; this._tr_stored_block(num3, stored_len, eof); } if (this != num3) { this.send_bits(num3, 3); ZTree ztree = this.treeLiterals; ZTree ztree2 = this.treeDistances; int num4 = i + 1; int max_code3 = ztree.max_code; this.send_bits(num3, 5); this.send_bits(num3, 5); this.send_bits(num3, 4); if (num4 > 0) { short[] array4 = this.bl_tree; sbyte[] bl_order2 = ZTree.bl_order; num++; this.send_bits(num3, 3); num++; } short[] array5 = this.dyn_ltree; this.send_tree(array5, max_code3); short[] array6 = this.dyn_dtree; this.send_tree(array6, max_code3); } short[] distTreeCodes = StaticTree.distTreeCodes; short[] lengthAndLiteralsTreeCodes = StaticTree.lengthAndLiteralsTreeCodes; this.send_compressed_block(lengthAndLiteralsTreeCodes, distTreeCodes); this._InitializeBlocks(); if (eof) { this.bi_windup(); } } // Token: 0x0600B163 RID: 45411 RVA: 0x00297948 File Offset: 0x00295B48 [Token(Token = "0x600B163")] [Address(RVA = "0x1F09350", Offset = "0x1F07D50", VA = "0x181F09350")] private void _fillWindow() { int num; do { num = 0; int num2 = this.window_size; int num3 = this.strstart; num2 -= num3; int num4 = this.lookahead; num2 -= num4; if (num3 != 0 || num4 != 0 || this.w_size != -1) { int num5 = this.w_size; num5 += num5; byte[] array = this.window; int num6 = 0; int num7 = this.w_size; Array.Copy(array, num7, array, num6, num7); int num8 = this.hash_size; num7 = num8; short[] array2 = this.head; short num9 = array2[num7]; int num10 = this.w_size; num9 = (short)((int)num9 - num10); array2[0] = (short)num; int num11 = num8 - 1; while (num11 != 0) { } int num12 = this.w_size; num7 = num12; short[] array3 = this.prev; short num13 = array3[num7]; int num14 = this.w_size; num13 = (short)((int)num13 - num14); array3[0] = (short)num; int num15 = num12 - 1; while (num15 != 0) { } } ZlibCodec codec = this._codec; if (codec.AvailableBytesIn == num) { break; } int num16 = this.lookahead; byte[] array4 = this.window; uint num18; int num17 = codec.read_buf(array4, num16, (int)num18); int num19 = this.lookahead; byte[] array5 = this.window; int num20 = this.strstart; byte b; this.ins_h = (int)b; int num21 = num20 + 1; this.ins_h = (int)b; int num22 = this.lookahead; } while (this._codec.AvailableBytesIn != num); } // Token: 0x0600B164 RID: 45412 RVA: 0x00297AC4 File Offset: 0x00295CC4 [Token(Token = "0x600B164")] [Address(RVA = "0x1F05DD0", Offset = "0x1F047D0", VA = "0x181F05DD0")] internal BlockState DeflateFast(FlushType flush) { do { int num = this.lookahead; this._fillWindow(); int num2 = this.lookahead; if (flush == FlushType.None) { break; } if (this.lookahead == 0) { break; } int num3 = this.lookahead; int num4 = this.ins_h; byte[] array = this.window; int num5 = this.strstart; int num6 = DeflateManager.MIN_MATCH; num6 += num5; short[] array2 = this.head; this.ins_h = num4; short num7 = array2[num4]; short[] array3 = this.prev; int num8 = this.w_mask; array3[0] = num7; short[] array4 = this.head; num8 = this.ins_h; int num9 = this.strstart; array4[0] = (short)num9; int num10 = this.strstart; int num11 = this.w_size; num10 -= (int)num7; if (this.compressionStrategy != CompressionStrategy.HuffmanOnly) { int num12 = this.longest_match((int)num7); this.match_length = num12; } int num13 = this.match_length; byte[] array5 = this.window; int num14 = this.strstart; int num15 = 0; byte b; bool flag = this._tr_tally(num15, (int)b); int num16 = this.strstart; int num17 = this.strstart; int num18 = this.match_start; if (this.treeBitLengths == (ulong)0L) { } num17 -= num18; bool flag2 = this._tr_tally(num17, num16); int num19 = this.lookahead; flag = flag2; int num20 = this.match_length; num19 -= num20; DeflateManager.Config config = this.config; this.lookahead = num19; int num21 = this.strstart; int num22 = this.ins_h; byte[] array6 = this.window; int num23 = DeflateManager.MIN_MATCH; num23 += num21; short[] array7 = this.head; this.ins_h = num22; short num24 = array7[num22]; short[] array8 = this.prev; int num25 = this.w_mask; array8[0] = num24; short[] array9 = this.head; int num26 = this.ins_h; int num27 = this.strstart; array9[0] = (short)num27; while (num26 != array9.Length) { } int num28 = this.strstart; int num29 = 0; byte[] array10 = this.window; this.strstart = num28; this.match_length = num29; byte b2; this.ins_h = (int)b2; num28++; this.ins_h = (int)b2; while (!flag) { } int num30 = this.block_start; num28 -= num30; int num31 = 0; this._tr_flush_block(num30, num28, num31 != 0); ZlibCodec codec = this._codec; int num32 = this.strstart; this.block_start = num32; codec.flush_pending(); } while (this._codec.AvailableBytesOut != 0); int num33 = this.block_start; int num34 = this.strstart; bool flag3 = flush == FlushType.Finish; num34 -= num33; this._tr_flush_block(num33, num34, flag3); ZlibCodec codec2 = this._codec; int num35 = this.strstart; this.block_start = num35; codec2.flush_pending(); if (this._codec.AvailableBytesOut != 0) { } throw new NullReferenceException(); } // Token: 0x0600B165 RID: 45413 RVA: 0x00297DB4 File Offset: 0x00295FB4 [Token(Token = "0x600B165")] [Address(RVA = "0x1F066E0", Offset = "0x1F050E0", VA = "0x181F066E0")] internal BlockState DeflateSlow(FlushType flush) { int num = 0; int num2 = this.lookahead; this._fillWindow(); int num3 = this.lookahead; if (flush != FlushType.None) { if (this.lookahead != 0) { int num4 = this.lookahead; int num5 = this.ins_h; byte[] array = this.window; int num6 = this.strstart; int num7 = DeflateManager.MIN_MATCH; num7 += num6; short[] array2 = this.head; this.ins_h = num5; short num8 = array2[num5]; short[] array3 = this.prev; int num9 = this.w_mask; array3[0] = num8; short[] array4 = this.head; num9 = this.ins_h; int num10 = this.strstart; array4[0] = (short)num10; int num11 = this.match_length; this.prev_length = num11; int num12 = this.match_start; this.prev_match = num12; int min_MATCH = DeflateManager.MIN_MATCH; this.match_length = min_MATCH; int maxLazy = this.config.MaxLazy; if (this.prev_length < maxLazy) { int num13 = this.strstart; int num14 = this.w_size; num13 -= (int)num8; if (this.compressionStrategy != CompressionStrategy.HuffmanOnly) { int num15 = this.longest_match((int)num8); this.match_length = num15; } int num16 = this.match_length; if (this.compressionStrategy == CompressionStrategy.Filtered || this.strstart > 4096) { int min_MATCH2 = DeflateManager.MIN_MATCH; this.match_length = min_MATCH2; } } int num17 = this.prev_length; int num18 = this.prev_length; int num19 = this.strstart; int num20 = this.lookahead; int num21 = this.strstart; int num22 = this.prev_length; num20 += num19; bool flag = this._tr_tally(num21, num22); int num23 = this.prev_length; this.prev_length = 1; int num24 = this.strstart; num24++; this.strstart = num24; int num25 = this.ins_h; byte[] array5 = this.window; int num26 = DeflateManager.MIN_MATCH; num26 += num24; short[] array6 = this.head; this.ins_h = num25; short num27 = array6[num25]; short[] array7 = this.prev; int num28 = this.w_mask; array7[0] = num27; short[] array8 = this.head; int num29 = this.ins_h; int num30 = this.strstart; array8[0] = (short)num30; while (num29 != array8.Length) { } int num31 = 0; this.match_available = num31; int num32 = this.strstart; num32++; int min_MATCH3 = DeflateManager.MIN_MATCH; this.strstart = num32; this.match_length = min_MATCH3; while (!flag) { } int num33 = this.block_start; num32 -= num33; int num34 = 0; this._tr_flush_block(num33, num32, num34 != 0); ZlibCodec codec = this._codec; int num35 = this.strstart; this.block_start = num35; codec.flush_pending(); if (this._codec.AvailableBytesOut == num31) { goto IL_393; } if (this.match_available == 0) { this.match_available = 1; } byte[] array9 = this.window; int num36 = this.strstart; int num37 = 0; byte b; if (this._tr_tally(num37, (int)b)) { int num38 = this.block_start; int num39 = this.strstart; int num40 = 0; num39 -= num38; this._tr_flush_block(num38, num39, num40 != 0); ZlibCodec codec2 = this._codec; int num41 = this.strstart; this.block_start = num41; codec2.flush_pending(); } if (this._codec.AvailableBytesOut == 0) { goto IL_393; } } if (this.match_available != 0) { byte[] array10 = this.window; int num42 = this.strstart; int num43 = 0; byte b2; bool flag2 = this._tr_tally(num43, (int)b2); this.match_available = num; } bool flag3 = flush == FlushType.Finish; this.flush_block_only(flag3); if (this._codec.AvailableBytesOut != 0) { } } IL_393: throw new NullReferenceException(); } // Token: 0x0600B166 RID: 45414 RVA: 0x0029815C File Offset: 0x0029635C [Token(Token = "0x600B166")] [Address(RVA = "0x1F0A530", Offset = "0x1F08F30", VA = "0x181F0A530")] internal int longest_match(int cur_match) { DeflateManager.Config config = this.config; int num = this.strstart; int num2 = this.prev_length; int num3 = this.w_size; if (num > num3) { int num4 = this.strstart; int num5 = this.w_size; int num6 = DeflateManager.MIN_LOOKAHEAD; num6 -= num5; num6 += num4; } int niceLength = this.config.NiceLength; int num7 = this.w_mask; int num8 = this.strstart; int num9 = this.window.Length; DeflateManager.Config config2 = this.config; int num10 = this.lookahead; if (niceLength <= num10) { } int num11 = this.prev_length; byte[] array = this.window; int num12 = array.Length; byte b; if ("{il2cpp array field local22->}" == b) { num9 = num; int num13 = num9 + 1; num += 2; num++; num9 = num12; int num14 = num9 + 1; byte b2 = array[num14]; num++; int num15 = num + 1; num = num15; num15 = num12; num15 += 3; num++; int num16 = num + 1; num = num16; num16 = num12; num16 += 5; num++; int num17 = num + 1; num = num17; num17 = num12; num17 += 7; byte b3 = array[num17]; int num18 = num + 1; num = num18; num12 += 8; int num19 = DeflateManager.MAX_MATCH; num19 -= num8; num19 += num; num = num8; num -= num19; if (num19 > num2) { num2 = num19; this.match_start = cur_match; int length = this.window.Length; int num20 = cur_match - 1; } } short[] array2 = this.prev; ulong num21; if ((ulong)array2[num7] > num21) { int num22 = niceLength - 1; while (num22 != 0) { } } int num23 = this.lookahead; if (num2 > num23) { num2 = num23; } return num2; } // Token: 0x17001C9F RID: 7327 // (get) Token: 0x0600B167 RID: 45415 RVA: 0x00298324 File Offset: 0x00296524 // (set) Token: 0x0600B168 RID: 45416 RVA: 0x00298338 File Offset: 0x00296538 [Token(Token = "0x17001C9F")] internal bool WantRfc1950HeaderBytes { [Token(Token = "0x600B167")] [Address(RVA = "0xE29560", Offset = "0xE27F60", VA = "0x180E29560")] get { return this._WantRfc1950HeaderBytes; } [Token(Token = "0x600B168")] [Address(RVA = "0xE2AE40", Offset = "0xE29840", VA = "0x180E2AE40")] set { this._WantRfc1950HeaderBytes = value; } } // Token: 0x0600B169 RID: 45417 RVA: 0x0029834C File Offset: 0x0029654C [Token(Token = "0x600B169")] [Address(RVA = "0x1F07A60", Offset = "0x1F06460", VA = "0x181F07A60")] internal int Initialize(ZlibCodec codec, CompressionLevel level) { int mem_LEVEL_DEFAULT = DeflateManager.MEM_LEVEL_DEFAULT; int num; return num; } // Token: 0x0600B16A RID: 45418 RVA: 0x00298364 File Offset: 0x00296564 [Token(Token = "0x600B16A")] [Address(RVA = "0x1F079B0", Offset = "0x1F063B0", VA = "0x181F079B0")] internal int Initialize(ZlibCodec codec, CompressionLevel level, int bits) { int mem_LEVEL_DEFAULT = DeflateManager.MEM_LEVEL_DEFAULT; int num; return num; } // Token: 0x0600B16B RID: 45419 RVA: 0x0029837C File Offset: 0x0029657C [Token(Token = "0x600B16B")] [Address(RVA = "0x1F07DB0", Offset = "0x1F067B0", VA = "0x181F07DB0")] internal int Initialize(ZlibCodec codec, CompressionLevel level, int bits, CompressionStrategy compressionStrategy) { int mem_LEVEL_DEFAULT = DeflateManager.MEM_LEVEL_DEFAULT; int num; return num; } // Token: 0x0600B16C RID: 45420 RVA: 0x00298390 File Offset: 0x00296590 [Token(Token = "0x600B16C")] [Address(RVA = "0x1F07B00", Offset = "0x1F06500", VA = "0x181F07B00")] internal int Initialize(ZlibCodec codec, CompressionLevel level, int windowBits, int memLevel, CompressionStrategy strategy) { this._codec = codec; codec.Message = (ulong)0L; this._codec.dstate = this; this.w_bits = windowBits; this.hash_bits = windowBits; uint num; this.w_size = (int)num; uint num2 = num - 1U; this.hash_size = (int)num; this.w_mask = (int)num2; uint num3 = num - 1U; this.hash_mask = (int)num3; int min_MATCH = DeflateManager.MIN_MATCH; int num4 = windowBits - 1; num4 += min_MATCH; this.hash_shift = num4; int num5 = 0; byte[] array = VariableSizedBufferPool.Get((long)num4, num5 != 0); int num6 = this.w_size; this.window = array; short[] array2 = new short[num6]; int num7 = this.hash_size; this.prev = array2; short[] array3 = new short[num7]; this.head = array3; this.lit_bufsize = (int)num; byte[] array4; this.pending = array4; int num8 = this.lit_bufsize; this._distanceOffset = num8; this.compressionLevel = level; this._lengthOffset = num8; this.compressionStrategy = CompressionStrategy.Default; this.Reset(); return 0; } // Token: 0x0600B16D RID: 45421 RVA: 0x00298494 File Offset: 0x00296694 [Token(Token = "0x600B16D")] [Address(RVA = "0x1F07E60", Offset = "0x1F06860", VA = "0x181F07E60")] internal void Reset() { ZlibCodec codec = this._codec; int num = 0; codec.TotalBytesOut = (long)num; codec.TotalBytesIn = (long)num; this._codec.Message = num; this.nextPending = num; this.Rfc1950BytesEmitted = num != 0; if ((this._WantRfc1950HeaderBytes ? 1 : 0) != num) { } int busy_STATE = DeflateManager.BUSY_STATE; this.status = busy_STATE; this._codec._Adler32 = (uint)((ulong)1L); this.last_flush = num; ZTree ztree = this.treeLiterals; short[] array = this.dyn_ltree; ztree.dyn_tree = array; ZTree ztree2 = this.treeLiterals; StaticTree literals = StaticTree.Literals; ztree2.staticTree = literals; ZTree ztree3 = this.treeDistances; short[] array2 = this.dyn_dtree; ztree3.dyn_tree = array2; ZTree ztree4 = this.treeDistances; StaticTree distances = StaticTree.Distances; ztree4.staticTree = distances; ZTree ztree5 = this.treeBitLengths; short[] array3 = this.bl_tree; ztree5.dyn_tree = array3; ZTree ztree6 = this.treeBitLengths; StaticTree bitLengths = StaticTree.BitLengths; ztree6.staticTree = bitLengths; this.bi_buf = (short)num; this.bi_valid = num; this.last_eob_len = (int)((ulong)8L); this._InitializeBlocks(); int num2 = this.w_size; int num3 = this.hash_size; num2 += num2; short[] array4 = this.head; int num4 = 0; this.window_size = num2; Array.Clear(array4, num4, num3); int num5 = (int)this.compressionLevel; DeflateManager.Config config; this.config = config; this.SetDeflater(); this.strstart = num; this.block_start = num; this.lookahead = num; int min_MATCH = DeflateManager.MIN_MATCH; this.match_available = num; this.ins_h = num; this.prev_length = min_MATCH; this.match_length = min_MATCH; } // Token: 0x0600B16E RID: 45422 RVA: 0x00298638 File Offset: 0x00296838 [Token(Token = "0x600B16E")] [Address(RVA = "0x1F07850", Offset = "0x1F06250", VA = "0x181F07850")] internal int End() { int num = this.status; int num2 = this.status; int num3 = this.status; return -2; } // Token: 0x0600B16F RID: 45423 RVA: 0x00298664 File Offset: 0x00296864 [Token(Token = "0x600B16F")] [Address(RVA = "0x1F08180", Offset = "0x1F06B80", VA = "0x181F08180")] private void SetDeflater() { DeflateFlavor flavor = this.config.Flavor; if (flavor == DeflateFlavor.Store || flavor == DeflateFlavor.Store || flavor == DeflateFlavor.Fast) { DeflateManager.CompressFunc compressFunc; compressFunc.method_ptr = ldftn(DeflateNone); compressFunc.method = ldftn(DeflateNone); compressFunc.m_target = this; this.DeflateFunction = compressFunc; } } // Token: 0x0600B170 RID: 45424 RVA: 0x002986B8 File Offset: 0x002968B8 [Token(Token = "0x600B170")] [Address(RVA = "0x1F085D0", Offset = "0x1F06FD0", VA = "0x181F085D0")] internal int SetParams(CompressionLevel level, CompressionStrategy strategy) { int num = 0; if (this.compressionLevel != level) { DeflateFlavor flavor = this.config.Flavor; DeflateManager.Config config; if (config.Flavor != flavor) { ZlibCodec codec = this._codec; if (codec.TotalBytesIn != (long)num) { int num2 = codec.Deflate(FlushType.Partial); } } this.compressionLevel = level; this.config = config; this.SetDeflater(); } this.compressionStrategy = strategy; return num; } // Token: 0x0600B171 RID: 45425 RVA: 0x0029872C File Offset: 0x0029692C [Token(Token = "0x600B171")] [Address(RVA = "0x1F08220", Offset = "0x1F06C20", VA = "0x181F08220")] internal int SetDictionary(byte[] dictionary) { int num = 0; int length = dictionary.Length; int num2 = this.status; ZlibCodec codec = this._codec; uint adler = codec._Adler32; int length2 = dictionary.Length; int num3 = 0; uint num4 = Adler.Adler32(adler, dictionary, num3, length2); codec._Adler32 = num4; int num5 = this.w_size; if (length > num5) { int num6 = this.w_size; int num7 = dictionary.Length; num7 -= num6; } byte[] array = this.window; int num8 = 0; Array.Copy(dictionary, num, array, num8, length); byte[] array2 = this.window; this.strstart = length; this.block_start = length; byte b = array2[0]; this.ins_h = (int)b; this.ins_h = (int)b; int num9 = this.ins_h; byte[] array3 = this.window; int num10 = DeflateManager.MIN_MATCH; num10 += num; short[] array4 = this.head; this.ins_h = num9; short[] array5 = this.prev; int num11 = this.w_mask; short num12 = array4[num9]; array5[0] = num12; short[] array6 = this.head; int num13 = this.ins_h; array6[0] = (short)num; num++; return 0; } // Token: 0x0600B172 RID: 45426 RVA: 0x0029885C File Offset: 0x00296A5C [Token(Token = "0x600B172")] [Address(RVA = "0x1F06F00", Offset = "0x1F05900", VA = "0x181F06F00")] internal int Deflate(FlushType flush) { for (;;) { ZlibCodec codec = this._codec; if (codec.OutputBuffer != (ulong)0L && (codec.InputBuffer != (ulong)0L || codec.AvailableBytesIn == 0)) { int num = this.status; if (flush == FlushType.Finish && this._codec.AvailableBytesOut != 0) { int num2 = this.last_flush; int num3 = this.status; this.last_flush = (int)flush; CompressionLevel compressionLevel = this.compressionLevel; if (this.strstart != 0) { int preset_DICT = DeflateManager.PRESET_DICT; } ulong num4; num4 += (ulong)1L; num4 += num4; long num5 = (long)(num4 * (ulong)((uint)31)); int num6 = this.pendingCount; byte[] array = this.pending; int busy_STATE = DeflateManager.BUSY_STATE; this.status = busy_STATE; int num7 = num6 + 1; this.pendingCount = num7; int num8 = this.pendingCount; byte[] array2 = this.pending; int num9 = num8 + 1; this.pendingCount = num9; if (this.strstart != 0) { int num10 = this.pendingCount; byte[] array3 = this.pending; int num11 = num10 + 1; this.pendingCount = num11; uint adler = this._codec._Adler32; int num12 = this.pendingCount; byte[] array4 = this.pending; int num13 = num12 + 1; this.pendingCount = num13; uint adler2 = this._codec._Adler32; int num14 = this.pendingCount; byte[] array5 = this.pending; int num15 = num14 + 1; this.pendingCount = num15; uint adler3 = this._codec._Adler32; int num16 = this.pendingCount; byte[] array6 = this.pending; int num17 = num16 + 1; this.pendingCount = num17; uint adler4 = this._codec._Adler32; } this._codec._Adler32 = (uint)((ulong)1L); ZlibCodec codec2 = this._codec; if (this.Z_ASCII != 0 || (codec2.AvailableBytesIn == 0 && flush != FlushType.Finish)) { codec2.flush_pending(); if (this._codec.AvailableBytesOut == 0) { goto IL_38C; } } int num18 = this.status; if (this._codec.AvailableBytesIn == 0) { break; } } } } if (this._codec.AvailableBytesIn == 0 && this.lookahead == 0) { if (flush == FlushType.None) { goto IL_2A6; } int num19 = this.status; } DeflateManager.CompressFunc deflateFunction = this.DeflateFunction; BlockState blockState; int num20 = (int)blockState; if (blockState == BlockState.FinishStarted || blockState == BlockState.FinishDone) { int finish_STATE = DeflateManager.FINISH_STATE; this.status = finish_STATE; } if (num20 == 0 || num20 == 2) { goto IL_38C; } if (num20 == 1) { if (flush != (FlushType)num20) { int num21 = 0; int num22 = 0; int num23 = 0; int num24 = 0; this._tr_stored_block(num24, num23, num22 != 0); if (flush == FlushType.Full && this.hash_size > num21) { short[] array7 = this.head; num21++; array7[0] = (short)num21; } } this._codec.flush_pending(); if (this._codec.AvailableBytesOut == 0) { goto IL_38C; } } IL_2A6: if (flush == FlushType.Finish && this._WantRfc1950HeaderBytes && !this.Rfc1950BytesEmitted) { int num25 = this.pendingCount; byte[] array8 = this.pending; int num26 = num25 + 1; this.pendingCount = num26; uint adler5 = this._codec._Adler32; int num27 = this.pendingCount; byte[] array9 = this.pending; int num28 = num27 + 1; this.pendingCount = num28; uint adler6 = this._codec._Adler32; int num29 = this.pendingCount; byte[] array10 = this.pending; int num30 = num29 + 1; this.pendingCount = num30; uint adler7 = this._codec._Adler32; int num31 = this.pendingCount; byte[] array11 = this.pending; int num32 = num31 + 1; this.pendingCount = num32; uint adler8 = this._codec._Adler32; this._codec.flush_pending(); this.Rfc1950BytesEmitted = true; if (this.Z_ASCII == 0) { } } IL_38C: throw new NullReferenceException(); } // Token: 0x0600B173 RID: 45427 RVA: 0x00298BFC File Offset: 0x00296DFC // Note: this type is marked as 'beforefieldinit'. [Token(Token = "0x600B173")] [Address(RVA = "0x1F08BD0", Offset = "0x1F075D0", VA = "0x181F08BD0")] static DeflateManager() { string[] array = new string[10]; if ("need dictionary" != 0) { } array[0] = "need dictionary"; if ("stream end" != 0) { } array[1] = "stream end"; if ("" != 0) { } array[2] = ""; if ("file error" != 0) { } array[3] = "file error"; if ("stream error" != 0) { } array[4] = "stream error"; if ("data error" != 0) { } array[5] = "data error"; if ("insufficient memory" != 0) { } array[6] = "insufficient memory"; if ("buffer error" != 0) { } array[7] = "buffer error"; if ("incompatible version" != 0) { } array[8] = "incompatible version"; if ("" != 0) { } array[9] = ""; int num = 0; DeflateManager._ErrorMessage = array; DeflateManager.STORED_BLOCK = num; DeflateManager.Z_BINARY = num; int num2 = DeflateManager.MIN_MATCH; int num3 = DeflateManager.MAX_MATCH; num2++; num3 += num2; DeflateManager.MIN_LOOKAHEAD = num3; } // Token: 0x04007453 RID: 29779 [Token(Token = "0x4007453")] private static readonly int MEM_LEVEL_MAX; // Token: 0x04007454 RID: 29780 [Token(Token = "0x4007454")] private static readonly int MEM_LEVEL_DEFAULT; // Token: 0x04007455 RID: 29781 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4007455")] private DeflateManager.CompressFunc DeflateFunction; // Token: 0x04007456 RID: 29782 [Token(Token = "0x4007456")] private static readonly string[] _ErrorMessage; // Token: 0x04007457 RID: 29783 [Token(Token = "0x4007457")] private static readonly int PRESET_DICT; // Token: 0x04007458 RID: 29784 [Token(Token = "0x4007458")] private static readonly int INIT_STATE; // Token: 0x04007459 RID: 29785 [Token(Token = "0x4007459")] private static readonly int BUSY_STATE; // Token: 0x0400745A RID: 29786 [Token(Token = "0x400745A")] private static readonly int FINISH_STATE; // Token: 0x0400745B RID: 29787 [Token(Token = "0x400745B")] private static readonly int Z_DEFLATED; // Token: 0x0400745C RID: 29788 [Token(Token = "0x400745C")] private static readonly int STORED_BLOCK; // Token: 0x0400745D RID: 29789 [Token(Token = "0x400745D")] private static readonly int STATIC_TREES; // Token: 0x0400745E RID: 29790 [Token(Token = "0x400745E")] private static readonly int DYN_TREES; // Token: 0x0400745F RID: 29791 [Token(Token = "0x400745F")] private static readonly int Z_BINARY; // Token: 0x04007460 RID: 29792 [Token(Token = "0x4007460")] private static readonly int Z_ASCII; // Token: 0x04007461 RID: 29793 [Token(Token = "0x4007461")] private static readonly int Z_UNKNOWN; // Token: 0x04007462 RID: 29794 [Token(Token = "0x4007462")] private static readonly int Buf_size; // Token: 0x04007463 RID: 29795 [Token(Token = "0x4007463")] private static readonly int MIN_MATCH; // Token: 0x04007464 RID: 29796 [Token(Token = "0x4007464")] private static readonly int MAX_MATCH; // Token: 0x04007465 RID: 29797 [Token(Token = "0x4007465")] private static readonly int MIN_LOOKAHEAD; // Token: 0x04007466 RID: 29798 [Token(Token = "0x4007466")] private static readonly int HEAP_SIZE; // Token: 0x04007467 RID: 29799 [Token(Token = "0x4007467")] private static readonly int END_BLOCK; // Token: 0x04007468 RID: 29800 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x4007468")] internal ZlibCodec _codec; // Token: 0x04007469 RID: 29801 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x4007469")] internal int status; // Token: 0x0400746A RID: 29802 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x400746A")] internal byte[] pending; // Token: 0x0400746B RID: 29803 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x400746B")] internal int nextPending; // Token: 0x0400746C RID: 29804 [global::Cpp2IlInjected.FieldOffset(Offset = "0x34")] [Token(Token = "0x400746C")] internal int pendingCount; // Token: 0x0400746D RID: 29805 [global::Cpp2IlInjected.FieldOffset(Offset = "0x38")] [Token(Token = "0x400746D")] internal sbyte data_type; // Token: 0x0400746E RID: 29806 [global::Cpp2IlInjected.FieldOffset(Offset = "0x3C")] [Token(Token = "0x400746E")] internal int last_flush; // Token: 0x0400746F RID: 29807 [global::Cpp2IlInjected.FieldOffset(Offset = "0x40")] [Token(Token = "0x400746F")] internal int w_size; // Token: 0x04007470 RID: 29808 [global::Cpp2IlInjected.FieldOffset(Offset = "0x44")] [Token(Token = "0x4007470")] internal int w_bits; // Token: 0x04007471 RID: 29809 [global::Cpp2IlInjected.FieldOffset(Offset = "0x48")] [Token(Token = "0x4007471")] internal int w_mask; // Token: 0x04007472 RID: 29810 [global::Cpp2IlInjected.FieldOffset(Offset = "0x50")] [Token(Token = "0x4007472")] internal byte[] window; // Token: 0x04007473 RID: 29811 [global::Cpp2IlInjected.FieldOffset(Offset = "0x58")] [Token(Token = "0x4007473")] internal int window_size; // Token: 0x04007474 RID: 29812 [global::Cpp2IlInjected.FieldOffset(Offset = "0x60")] [Token(Token = "0x4007474")] internal short[] prev; // Token: 0x04007475 RID: 29813 [global::Cpp2IlInjected.FieldOffset(Offset = "0x68")] [Token(Token = "0x4007475")] internal short[] head; // Token: 0x04007476 RID: 29814 [global::Cpp2IlInjected.FieldOffset(Offset = "0x70")] [Token(Token = "0x4007476")] internal int ins_h; // Token: 0x04007477 RID: 29815 [global::Cpp2IlInjected.FieldOffset(Offset = "0x74")] [Token(Token = "0x4007477")] internal int hash_size; // Token: 0x04007478 RID: 29816 [global::Cpp2IlInjected.FieldOffset(Offset = "0x78")] [Token(Token = "0x4007478")] internal int hash_bits; // Token: 0x04007479 RID: 29817 [global::Cpp2IlInjected.FieldOffset(Offset = "0x7C")] [Token(Token = "0x4007479")] internal int hash_mask; // Token: 0x0400747A RID: 29818 [global::Cpp2IlInjected.FieldOffset(Offset = "0x80")] [Token(Token = "0x400747A")] internal int hash_shift; // Token: 0x0400747B RID: 29819 [global::Cpp2IlInjected.FieldOffset(Offset = "0x84")] [Token(Token = "0x400747B")] internal int block_start; // Token: 0x0400747C RID: 29820 [global::Cpp2IlInjected.FieldOffset(Offset = "0x88")] [Token(Token = "0x400747C")] private DeflateManager.Config config; // Token: 0x0400747D RID: 29821 [global::Cpp2IlInjected.FieldOffset(Offset = "0x90")] [Token(Token = "0x400747D")] internal int match_length; // Token: 0x0400747E RID: 29822 [global::Cpp2IlInjected.FieldOffset(Offset = "0x94")] [Token(Token = "0x400747E")] internal int prev_match; // Token: 0x0400747F RID: 29823 [global::Cpp2IlInjected.FieldOffset(Offset = "0x98")] [Token(Token = "0x400747F")] internal int match_available; // Token: 0x04007480 RID: 29824 [global::Cpp2IlInjected.FieldOffset(Offset = "0x9C")] [Token(Token = "0x4007480")] internal int strstart; // Token: 0x04007481 RID: 29825 [global::Cpp2IlInjected.FieldOffset(Offset = "0xA0")] [Token(Token = "0x4007481")] internal int match_start; // Token: 0x04007482 RID: 29826 [global::Cpp2IlInjected.FieldOffset(Offset = "0xA4")] [Token(Token = "0x4007482")] internal int lookahead; // Token: 0x04007483 RID: 29827 [global::Cpp2IlInjected.FieldOffset(Offset = "0xA8")] [Token(Token = "0x4007483")] internal int prev_length; // Token: 0x04007484 RID: 29828 [global::Cpp2IlInjected.FieldOffset(Offset = "0xAC")] [Token(Token = "0x4007484")] internal CompressionLevel compressionLevel; // Token: 0x04007485 RID: 29829 [global::Cpp2IlInjected.FieldOffset(Offset = "0xB0")] [Token(Token = "0x4007485")] internal CompressionStrategy compressionStrategy; // Token: 0x04007486 RID: 29830 [global::Cpp2IlInjected.FieldOffset(Offset = "0xB8")] [Token(Token = "0x4007486")] internal short[] dyn_ltree; // Token: 0x04007487 RID: 29831 [global::Cpp2IlInjected.FieldOffset(Offset = "0xC0")] [Token(Token = "0x4007487")] internal short[] dyn_dtree; // Token: 0x04007488 RID: 29832 [global::Cpp2IlInjected.FieldOffset(Offset = "0xC8")] [Token(Token = "0x4007488")] internal short[] bl_tree; // Token: 0x04007489 RID: 29833 [global::Cpp2IlInjected.FieldOffset(Offset = "0xD0")] [Token(Token = "0x4007489")] internal ZTree treeLiterals; // Token: 0x0400748A RID: 29834 [global::Cpp2IlInjected.FieldOffset(Offset = "0xD8")] [Token(Token = "0x400748A")] internal ZTree treeDistances; // Token: 0x0400748B RID: 29835 [global::Cpp2IlInjected.FieldOffset(Offset = "0xE0")] [Token(Token = "0x400748B")] internal ZTree treeBitLengths; // Token: 0x0400748C RID: 29836 [global::Cpp2IlInjected.FieldOffset(Offset = "0xE8")] [Token(Token = "0x400748C")] internal short[] bl_count; // Token: 0x0400748D RID: 29837 [global::Cpp2IlInjected.FieldOffset(Offset = "0xF0")] [Token(Token = "0x400748D")] internal int[] heap; // Token: 0x0400748E RID: 29838 [global::Cpp2IlInjected.FieldOffset(Offset = "0xF8")] [Token(Token = "0x400748E")] internal int heap_len; // Token: 0x0400748F RID: 29839 [global::Cpp2IlInjected.FieldOffset(Offset = "0xFC")] [Token(Token = "0x400748F")] internal int heap_max; // Token: 0x04007490 RID: 29840 [global::Cpp2IlInjected.FieldOffset(Offset = "0x100")] [Token(Token = "0x4007490")] internal sbyte[] depth; // Token: 0x04007491 RID: 29841 [global::Cpp2IlInjected.FieldOffset(Offset = "0x108")] [Token(Token = "0x4007491")] internal int _lengthOffset; // Token: 0x04007492 RID: 29842 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10C")] [Token(Token = "0x4007492")] internal int lit_bufsize; // Token: 0x04007493 RID: 29843 [global::Cpp2IlInjected.FieldOffset(Offset = "0x110")] [Token(Token = "0x4007493")] internal int last_lit; // Token: 0x04007494 RID: 29844 [global::Cpp2IlInjected.FieldOffset(Offset = "0x114")] [Token(Token = "0x4007494")] internal int _distanceOffset; // Token: 0x04007495 RID: 29845 [global::Cpp2IlInjected.FieldOffset(Offset = "0x118")] [Token(Token = "0x4007495")] internal int opt_len; // Token: 0x04007496 RID: 29846 [global::Cpp2IlInjected.FieldOffset(Offset = "0x11C")] [Token(Token = "0x4007496")] internal int static_len; // Token: 0x04007497 RID: 29847 [global::Cpp2IlInjected.FieldOffset(Offset = "0x120")] [Token(Token = "0x4007497")] internal int matches; // Token: 0x04007498 RID: 29848 [global::Cpp2IlInjected.FieldOffset(Offset = "0x124")] [Token(Token = "0x4007498")] internal int last_eob_len; // Token: 0x04007499 RID: 29849 [global::Cpp2IlInjected.FieldOffset(Offset = "0x128")] [Token(Token = "0x4007499")] internal short bi_buf; // Token: 0x0400749A RID: 29850 [global::Cpp2IlInjected.FieldOffset(Offset = "0x12C")] [Token(Token = "0x400749A")] internal int bi_valid; // Token: 0x0400749B RID: 29851 [global::Cpp2IlInjected.FieldOffset(Offset = "0x130")] [Token(Token = "0x400749B")] private bool Rfc1950BytesEmitted; // Token: 0x0400749C RID: 29852 [global::Cpp2IlInjected.FieldOffset(Offset = "0x131")] [Token(Token = "0x400749C")] private bool _WantRfc1950HeaderBytes; // Token: 0x020019C6 RID: 6598 [Token(Token = "0x20019C6")] internal sealed class CompressFunc : MulticastDelegate { // Token: 0x0600B174 RID: 45428 RVA: 0x00298D14 File Offset: 0x00296F14 [Token(Token = "0x600B174")] [Address(RVA = "0x3E5170", Offset = "0x3E3B70", VA = "0x1803E5170")] public CompressFunc(object @object, IntPtr method) { this.method = method; this.m_target = @object; } // Token: 0x0600B175 RID: 45429 RVA: 0x00298D30 File Offset: 0x00296F30 [Token(Token = "0x600B175")] [Address(RVA = "0x46F230", Offset = "0x46DC30", VA = "0x18046F230", Slot = "13")] public BlockState Invoke(FlushType flush) { uint num; do { if (this.delegates != 0) { } } while (num == (uint)0); throw new ExecutionEngineException(); } // Token: 0x0600B176 RID: 45430 RVA: 0x00298DA4 File Offset: 0x00296FA4 [Token(Token = "0x600B176")] [Address(RVA = "0x1F00970", Offset = "0x1EFF370", VA = "0x181F00970", Slot = "14")] public IAsyncResult BeginInvoke(FlushType flush, AsyncCallback callback, object @object) { } // Token: 0x0600B177 RID: 45431 RVA: 0x00298DB4 File Offset: 0x00296FB4 [Token(Token = "0x600B177")] [Address(RVA = "0x4338C0", Offset = "0x4322C0", VA = "0x1804338C0", Slot = "15")] public BlockState EndInvoke(IAsyncResult result) { throw new NullReferenceException(); } } // Token: 0x020019C7 RID: 6599 [Token(Token = "0x20019C7")] internal class Config { // Token: 0x0600B178 RID: 45432 RVA: 0x00298DC8 File Offset: 0x00296FC8 [Token(Token = "0x600B178")] [Address(RVA = "0xE250B0", Offset = "0xE23AB0", VA = "0x180E250B0")] private Config(int goodLength, int maxLazy, int niceLength, int maxChainLength, DeflateFlavor flavor) { this.MaxChainLength = 0; this.GoodLength = goodLength; this.NiceLength = niceLength; this.Flavor = DeflateFlavor.Store; this.MaxLazy = maxLazy; } // Token: 0x0600B179 RID: 45433 RVA: 0x00298E00 File Offset: 0x00297000 [Token(Token = "0x600B179")] [Address(RVA = "0x1F009F0", Offset = "0x1EFF3F0", VA = "0x181F009F0")] public static DeflateManager.Config Lookup(CompressionLevel level) { return DeflateManager.Config.Table[(int)level]; } // Token: 0x0600B17A RID: 45434 RVA: 0x00298E20 File Offset: 0x00297020 [Token(Token = "0x600B17A")] [Address(RVA = "0x1F00A80", Offset = "0x1EFF480", VA = "0x181F00A80")] static Config() { DeflateManager.Config[] array = new DeflateManager.Config[10]; int num = 0; DeflateManager.Config config; config.GoodLength = num; config.NiceLength = num; config.Flavor = (DeflateFlavor)num; array[0] = config; DeflateManager.Config config2; config2.GoodLength = (int)((ulong)4L); config2.MaxLazy = (int)((ulong)4L); config2.NiceLength = (int)((ulong)8L); config2.MaxChainLength = (int)((ulong)4L); config2.Flavor = (DeflateFlavor)((ulong)1L); array[1] = config2; DeflateManager.Config config3; config3.GoodLength = (int)((ulong)4L); config3.MaxLazy = (int)((ulong)5L); config3.NiceLength = (int)((ulong)16L); config3.MaxChainLength = (int)((ulong)8L); config3.Flavor = (DeflateFlavor)((ulong)1L); array[2] = config3; DeflateManager.Config config4; config4.GoodLength = (int)((ulong)4L); config4.MaxLazy = (int)((ulong)6L); config4.NiceLength = (int)((ulong)32L); config4.MaxChainLength = (int)((ulong)32L); config4.Flavor = (DeflateFlavor)((ulong)1L); array[3] = config4; DeflateManager.Config config5; config5.GoodLength = (int)((ulong)4L); config5.MaxLazy = (int)((ulong)4L); config5.NiceLength = (int)((ulong)16L); config5.MaxChainLength = (int)((ulong)16L); config5.Flavor = (DeflateFlavor)((ulong)2L); array[4] = config5; DeflateManager.Config config6; config6.GoodLength = (int)((ulong)8L); config6.MaxLazy = (int)((ulong)16L); config6.NiceLength = (int)((ulong)32L); config6.MaxChainLength = (int)((ulong)32L); config6.Flavor = (DeflateFlavor)((ulong)2L); array[5] = config6; DeflateManager.Config config7; config7.GoodLength = (int)((ulong)8L); config7.MaxLazy = (int)((ulong)16L); config7.NiceLength = (int)((ulong)128L); config7.MaxChainLength = (int)((ulong)128L); config7.Flavor = (DeflateFlavor)((ulong)2L); array[6] = config7; DeflateManager.Config config8; config8.GoodLength = (int)((ulong)8L); config8.MaxLazy = (int)((ulong)32L); config8.NiceLength = (int)((ulong)128L); config8.MaxChainLength = (int)((ulong)256L); config8.Flavor = (DeflateFlavor)((ulong)2L); array[7] = config8; DeflateManager.Config config9; config9.GoodLength = (int)((ulong)32L); config9.MaxLazy = (int)((ulong)128L); config9.NiceLength = (int)((ulong)258L); config9.MaxChainLength = (int)((ulong)1024L); config9.Flavor = (DeflateFlavor)((ulong)2L); array[8] = config9; DeflateManager.Config config10; config10.GoodLength = (int)((ulong)32L); config10.MaxLazy = (int)((ulong)258L); config10.NiceLength = (int)((ulong)258L); config10.MaxChainLength = (int)((ulong)4096L); config10.Flavor = (DeflateFlavor)((ulong)2L); array[9] = config10; DeflateManager.Config.Table = array; } // Token: 0x0400749D RID: 29853 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x400749D")] internal int GoodLength; // Token: 0x0400749E RID: 29854 [global::Cpp2IlInjected.FieldOffset(Offset = "0x14")] [Token(Token = "0x400749E")] internal int MaxLazy; // Token: 0x0400749F RID: 29855 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x400749F")] internal int NiceLength; // Token: 0x040074A0 RID: 29856 [global::Cpp2IlInjected.FieldOffset(Offset = "0x1C")] [Token(Token = "0x40074A0")] internal int MaxChainLength; // Token: 0x040074A1 RID: 29857 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x40074A1")] internal DeflateFlavor Flavor; // Token: 0x040074A2 RID: 29858 [Token(Token = "0x40074A2")] private static readonly DeflateManager.Config[] Table; } } }