Files
Apr2020-Cpp2Il-Dump/Assembly-CSharp/BestHTTP/Decompression/Zlib/InflateCodes.cs
T
niko 8fc35183db a
2026-04-11 22:19:20 +02:00

432 lines
8.9 KiB
C#

using System;
using Cpp2IlInjected;
namespace BestHTTP.Decompression.Zlib
{
// Token: 0x02001FAB RID: 8107
[Token(Token = "0x2001FAB")]
internal sealed class InflateCodes
{
// Token: 0x0600CD9B RID: 52635 RVA: 0x002F35B0 File Offset: 0x002F17B0
[Token(Token = "0x600CD9B")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
internal InflateCodes()
{
}
// Token: 0x0600CD9C RID: 52636 RVA: 0x002F35C4 File Offset: 0x002F17C4
[Token(Token = "0x600CD9C")]
[Address(RVA = "0x18E2030", Offset = "0x18E0E30", VA = "0x1818E2030")]
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: 0x0600CD9D RID: 52637 RVA: 0x002F360C File Offset: 0x002F180C
[Token(Token = "0x600CD9D")]
[Address(RVA = "0x1972090", Offset = "0x1970E90", VA = "0x181972090")]
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: 0x0600CD9E RID: 52638 RVA: 0x002F39E8 File Offset: 0x002F1BE8
[Token(Token = "0x600CD9E")]
[Address(RVA = "0x19714C0", Offset = "0x19702C0", VA = "0x1819714C0")]
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: 0x0400832E RID: 33582
[Token(Token = "0x400832E")]
private const int START = 0;
// Token: 0x0400832F RID: 33583
[Token(Token = "0x400832F")]
private const int LEN = 1;
// Token: 0x04008330 RID: 33584
[Token(Token = "0x4008330")]
private const int LENEXT = 2;
// Token: 0x04008331 RID: 33585
[Token(Token = "0x4008331")]
private const int DIST = 3;
// Token: 0x04008332 RID: 33586
[Token(Token = "0x4008332")]
private const int DISTEXT = 4;
// Token: 0x04008333 RID: 33587
[Token(Token = "0x4008333")]
private const int COPY = 5;
// Token: 0x04008334 RID: 33588
[Token(Token = "0x4008334")]
private const int LIT = 6;
// Token: 0x04008335 RID: 33589
[Token(Token = "0x4008335")]
private const int WASH = 7;
// Token: 0x04008336 RID: 33590
[Token(Token = "0x4008336")]
private const int END = 8;
// Token: 0x04008337 RID: 33591
[Token(Token = "0x4008337")]
private const int BADCODE = 9;
// Token: 0x04008338 RID: 33592
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4008338")]
internal int mode;
// Token: 0x04008339 RID: 33593
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x4008339")]
internal int len;
// Token: 0x0400833A RID: 33594
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400833A")]
internal int[] tree;
// Token: 0x0400833B RID: 33595
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400833B")]
internal int tree_index;
// Token: 0x0400833C RID: 33596
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x400833C")]
internal int need;
// Token: 0x0400833D RID: 33597
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400833D")]
internal int lit;
// Token: 0x0400833E RID: 33598
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x400833E")]
internal int bitsToGet;
// Token: 0x0400833F RID: 33599
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400833F")]
internal int dist;
// Token: 0x04008340 RID: 33600
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x4008340")]
internal byte lbits;
// Token: 0x04008341 RID: 33601
[FieldOffset(Offset = "0x35")]
[Token(Token = "0x4008341")]
internal byte dbits;
// Token: 0x04008342 RID: 33602
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4008342")]
internal int[] ltree;
// Token: 0x04008343 RID: 33603
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4008343")]
internal int ltree_index;
// Token: 0x04008344 RID: 33604
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4008344")]
internal int[] dtree;
// Token: 0x04008345 RID: 33605
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4008345")]
internal int dtree_index;
}
}