Files
27Aug2021-Cpp2IL-Dump/Assembly-CSharp/BestHTTP/SecureProtocol/Org/BouncyCastle/Utilities/Zlib/Inflate.cs
T
niko c12fbe3fc6 m
2026-04-12 16:51:38 +02:00

572 lines
15 KiB
C#

using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Zlib
{
// Token: 0x02001A0F RID: 6671
[Token(Token = "0x2001A0F")]
internal sealed class Inflate
{
// Token: 0x06009C86 RID: 40070 RVA: 0x00203390 File Offset: 0x00201590
[Token(Token = "0x6009C86")]
[Address(RVA = "0x411770", Offset = "0x410770", VA = "0x180411770")]
internal int inflateReset(ZStream z)
{
if (z != 0)
{
Inflate istate = z.istate;
if (istate != 0)
{
int num = 0;
z.total_out = (long)num;
z.total_in = (long)num;
z.msg = num;
istate.mode = this;
InfBlocks infBlocks = z.istate.blocks;
return 0;
}
}
return -2;
}
// Token: 0x06009C87 RID: 40071 RVA: 0x002033E0 File Offset: 0x002015E0
[Token(Token = "0x6009C87")]
[Address(RVA = "0x411630", Offset = "0x410630", VA = "0x180411630")]
internal int inflateEnd(ZStream z)
{
InfBlocks infBlocks = this.blocks;
if (infBlocks != 0)
{
infBlocks.free(z);
}
int num = 0;
this.blocks = num;
return num;
}
// Token: 0x06009C88 RID: 40072 RVA: 0x0020340C File Offset: 0x0020160C
[Token(Token = "0x6009C88")]
[Address(RVA = "0x411660", Offset = "0x410660", VA = "0x180411660")]
internal int inflateInit(ZStream z, int w)
{
int num = 0;
z.msg = num;
this.blocks = num;
this.nowrap = num;
this.nowrap = 1;
this.wbits = w;
Inflate istate = z.istate;
int num2 = istate.nowrap;
InfBlocks infBlocks = new InfBlocks(z, this, 1);
istate.blocks = infBlocks;
int num3 = this.inflateReset(z);
return 0;
}
// Token: 0x06009C89 RID: 40073 RVA: 0x0020346C File Offset: 0x0020166C
[Token(Token = "0x6009C89")]
[Address(RVA = "0x411B80", Offset = "0x410B80", VA = "0x180411B80")]
internal int inflate(ZStream z, int f)
{
if (z != 0 && z.istate != (ulong)0L && z.next_in != (ulong)0L)
{
int num = 0;
if (z.istate.mode <= 13)
{
int avail_in = z.avail_in;
if (avail_in != 0)
{
z.avail_in = avail_in;
int next_in_index = z.next_in_index;
byte[] next_in = z.next_in;
Inflate istate = z.istate;
int num2 = next_in_index + 1;
z.next_in_index = num2;
byte b;
istate.method = (int)b;
Inflate istate2 = z.istate;
int num3 = istate2.method;
num3 += 8;
istate2.mode = (int)((ulong)1L);
int avail_in2 = z.avail_in;
if (avail_in2 != 0)
{
z.avail_in = avail_in2;
int next_in_index2 = z.next_in_index;
byte[] next_in2 = z.next_in;
int num4 = next_in_index2 + 1;
z.next_in_index = num4;
Inflate istate3 = z.istate;
int num5 = istate3.method;
byte b2;
num5 += (int)b2;
ulong num6;
num6 += num6;
long num7 = (long)(num6 * (ulong)((uint)31));
if ((long)num5 == num7)
{
istate3.mode = (int)((ulong)7L);
z.istate.mode = (int)((ulong)13L);
}
istate.mode = (int)((ulong)13L);
int num8;
if (num8 != -3)
{
if (num != 1)
{
goto IL_360;
}
Inflate istate4 = z.istate;
InfBlocks infBlocks = istate4.blocks;
long[] array = istate4.was;
infBlocks.reset(z, array);
Inflate istate5 = z.istate;
Inflate istate11;
if (istate5.nowrap == num)
{
istate5.mode = (int)((ulong)8L);
int avail_in3 = z.avail_in;
if (avail_in3 == 0)
{
goto IL_360;
}
z.avail_in = avail_in3;
int next_in_index3 = z.next_in_index;
byte[] next_in3 = z.next_in;
Inflate istate6 = z.istate;
int num9 = next_in_index3 + 1;
z.next_in_index = num9;
byte b3;
istate6.need = (long)b3;
z.istate.mode = (int)((ulong)9L);
int avail_in4 = z.avail_in;
if (avail_in4 == 0)
{
goto IL_360;
}
z.avail_in = avail_in4;
Inflate istate7 = z.istate;
int next_in_index4 = z.next_in_index;
byte[] next_in4 = z.next_in;
long num10 = istate7.need;
int num11 = next_in_index4 + 1;
z.next_in_index = num11;
byte b4 = (byte)((long)b4 + num10);
istate7.need = (long)b4;
z.istate.mode = (int)((ulong)10L);
int avail_in5 = z.avail_in;
if (avail_in5 == 0)
{
goto IL_360;
}
z.avail_in = avail_in5;
Inflate istate8 = z.istate;
int next_in_index5 = z.next_in_index;
byte[] next_in5 = z.next_in;
long num12 = istate8.need;
int num13 = next_in_index5 + 1;
z.next_in_index = num13;
byte b5 = (byte)((long)b5 + num12);
istate8.need = (long)b5;
z.istate.mode = (int)((ulong)11L);
int avail_in6 = z.avail_in;
if (avail_in6 == 0)
{
goto IL_360;
}
z.avail_in = avail_in6;
Inflate istate9 = z.istate;
int next_in_index6 = z.next_in_index;
byte[] next_in6 = z.next_in;
long num14 = istate9.need;
int num15 = next_in_index6 + 1;
z.next_in_index = num15;
byte b6 = (byte)((long)b6 + num14);
istate9.need = (long)b6;
Inflate istate10 = z.istate;
long[] array2 = istate10.was;
long num16 = istate10.need;
if ("{il2cpp array field local64->}" == num16)
{
goto IL_39B;
}
istate10.mode = (int)((ulong)13L);
z.msg = "incorrect data check";
istate11 = z.istate;
istate11.marker = (int)((ulong)5L);
}
istate11.mode = (int)((ulong)12L);
}
z.istate.mode = (int)((ulong)13L);
z.istate.marker = num;
}
}
IL_360:
int avail_in7 = z.avail_in;
while (avail_in7 == 0)
{
}
z.avail_in = avail_in7;
int next_in_index7 = z.next_in_index;
byte[] next_in7 = z.next_in;
Inflate istate12 = z.istate;
int num17 = next_in_index7 + 1;
z.next_in_index = num17;
IL_39B:
byte b7;
istate12.need = (long)b7;
z.istate.mode = (int)((ulong)3L);
int avail_in8 = z.avail_in;
while (avail_in8 == 0)
{
}
z.avail_in = avail_in8;
Inflate istate13 = z.istate;
int next_in_index8 = z.next_in_index;
byte[] next_in8 = z.next_in;
long num18 = istate13.need;
int num19 = next_in_index8 + 1;
z.next_in_index = num19;
byte b8 = (byte)((long)b8 + num18);
istate13.need = (long)b8;
z.istate.mode = (int)((ulong)4L);
int avail_in9 = z.avail_in;
while (avail_in9 == 0)
{
}
z.avail_in = avail_in9;
Inflate istate14 = z.istate;
int next_in_index9 = z.next_in_index;
byte[] next_in9 = z.next_in;
long num20 = istate14.need;
int num21 = next_in_index9 + 1;
z.next_in_index = num21;
byte b9 = (byte)((long)b9 + num20);
istate14.need = (long)b9;
z.istate.mode = (int)((ulong)5L);
int avail_in10 = z.avail_in;
while (avail_in10 == 0)
{
}
z.avail_in = avail_in10;
Inflate istate15 = z.istate;
int next_in_index10 = z.next_in_index;
byte[] next_in10 = z.next_in;
long num22 = istate15.need;
int num23 = next_in_index10 + 1;
z.next_in_index = num23;
byte b10 = (byte)((long)b10 + num22);
istate15.need = (long)b10;
Inflate istate16 = z.istate;
long num24 = istate16.need;
z.adler = num24;
istate16.mode = (int)((ulong)6L);
istate15.mode = (int)((ulong)13L);
z.msg = "need dictionary";
z.istate.marker = num;
}
}
throw new NullReferenceException();
}
// Token: 0x06009C8A RID: 40074 RVA: 0x00203990 File Offset: 0x00201B90
[Token(Token = "0x6009C8A")]
[Address(RVA = "0x4117E0", Offset = "0x4107E0", VA = "0x1804117E0")]
internal int inflateSetDictionary(ZStream z, byte[] dictionary, int dictLength)
{
if (z != 0)
{
Inflate istate = z.istate;
if (istate != 0 && istate.mode == 6)
{
Adler32 adler = z._adler;
int num = 0;
uint num2;
if (adler.adler32((long)num2, dictionary, num, dictLength) == z.adler)
{
Adler32 adler2 = z._adler;
Inflate istate2 = z.istate;
long num3;
z.adler = num3;
uint num4 = num2 - 1U;
istate2.blocks.set_dictionary(dictionary, dictLength, (int)num4);
z.istate.mode = (int)((ulong)7L);
return 0;
}
}
}
throw new NullReferenceException();
}
// Token: 0x06009C8B RID: 40075 RVA: 0x00203A18 File Offset: 0x00201C18
[Token(Token = "0x6009C8B")]
[Address(RVA = "0x411950", Offset = "0x410950", VA = "0x180411950")]
internal int inflateSync(ZStream z)
{
if (z != 0)
{
Inflate istate = z.istate;
if (istate != 0)
{
if (istate.mode != 13)
{
istate.mode = (int)((ulong)13L);
z.istate.marker = (int)((ulong)0L);
}
int avail_in = z.avail_in;
if (avail_in != 0)
{
Inflate istate2 = z.istate;
int num = z.next_in_index;
int num2 = istate2.marker;
int num4;
if (num2 < 4)
{
byte b = z.next_in[num];
byte[] array = Inflate.mark;
byte[] next_in = z.next_in;
if ("{il2cpp array field local11->}" == (ulong)0L)
{
uint num3;
num3 -= (uint)num2;
}
num4 = 0;
num4++;
num++;
while ("{il2cpp array field local11->}" != (ulong)0L)
{
}
}
Inflate istate3 = z.istate;
z.next_in_index = num;
z.avail_in = avail_in;
istate3.marker = num4;
if (num4 == 4)
{
long total_in = z.total_in;
long total_out = z.total_out;
int num5 = this.inflateReset(z);
Inflate istate4 = z.istate;
z.total_in = total_in;
z.total_out = total_out;
istate4.mode = (int)((ulong)7L);
return 0;
}
}
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x06009C8C RID: 40076 RVA: 0x00203B30 File Offset: 0x00201D30
[Token(Token = "0x6009C8C")]
[Address(RVA = "0x411920", Offset = "0x410920", VA = "0x180411920")]
internal int inflateSyncPoint(ZStream z)
{
if (z != 0)
{
Inflate istate = z.istate;
if (istate != 0)
{
InfBlocks infBlocks = istate.blocks;
if (infBlocks != 0)
{
return infBlocks.sync_point();
}
}
}
return -2;
}
// Token: 0x06009C8D RID: 40077 RVA: 0x00203B60 File Offset: 0x00201D60
[Token(Token = "0x6009C8D")]
[Address(RVA = "0x4115E0", Offset = "0x4105E0", VA = "0x1804115E0")]
public Inflate()
{
long[] array = new long[1];
this.was = array;
base..ctor();
}
// Token: 0x06009C8E RID: 40078 RVA: 0x00203B84 File Offset: 0x00201D84
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x6009C8E")]
[Address(RVA = "0x411550", Offset = "0x410550", VA = "0x180411550")]
static Inflate()
{
byte[] array = new byte[4];
array[0] = (byte)((ulong)255L);
array[0] = (byte)((ulong)255L);
Inflate.mark = array;
}
// Token: 0x0400697F RID: 27007
[Token(Token = "0x400697F")]
private const int MAX_WBITS = 15;
// Token: 0x04006980 RID: 27008
[Token(Token = "0x4006980")]
private const int PRESET_DICT = 32;
// Token: 0x04006981 RID: 27009
[Token(Token = "0x4006981")]
internal const int Z_NO_FLUSH = 0;
// Token: 0x04006982 RID: 27010
[Token(Token = "0x4006982")]
internal const int Z_PARTIAL_FLUSH = 1;
// Token: 0x04006983 RID: 27011
[Token(Token = "0x4006983")]
internal const int Z_SYNC_FLUSH = 2;
// Token: 0x04006984 RID: 27012
[Token(Token = "0x4006984")]
internal const int Z_FULL_FLUSH = 3;
// Token: 0x04006985 RID: 27013
[Token(Token = "0x4006985")]
internal const int Z_FINISH = 4;
// Token: 0x04006986 RID: 27014
[Token(Token = "0x4006986")]
private const int Z_DEFLATED = 8;
// Token: 0x04006987 RID: 27015
[Token(Token = "0x4006987")]
private const int Z_OK = 0;
// Token: 0x04006988 RID: 27016
[Token(Token = "0x4006988")]
private const int Z_STREAM_END = 1;
// Token: 0x04006989 RID: 27017
[Token(Token = "0x4006989")]
private const int Z_NEED_DICT = 2;
// Token: 0x0400698A RID: 27018
[Token(Token = "0x400698A")]
private const int Z_ERRNO = -1;
// Token: 0x0400698B RID: 27019
[Token(Token = "0x400698B")]
private const int Z_STREAM_ERROR = -2;
// Token: 0x0400698C RID: 27020
[Token(Token = "0x400698C")]
private const int Z_DATA_ERROR = -3;
// Token: 0x0400698D RID: 27021
[Token(Token = "0x400698D")]
private const int Z_MEM_ERROR = -4;
// Token: 0x0400698E RID: 27022
[Token(Token = "0x400698E")]
private const int Z_BUF_ERROR = -5;
// Token: 0x0400698F RID: 27023
[Token(Token = "0x400698F")]
private const int Z_VERSION_ERROR = -6;
// Token: 0x04006990 RID: 27024
[Token(Token = "0x4006990")]
private const int METHOD = 0;
// Token: 0x04006991 RID: 27025
[Token(Token = "0x4006991")]
private const int FLAG = 1;
// Token: 0x04006992 RID: 27026
[Token(Token = "0x4006992")]
private const int DICT4 = 2;
// Token: 0x04006993 RID: 27027
[Token(Token = "0x4006993")]
private const int DICT3 = 3;
// Token: 0x04006994 RID: 27028
[Token(Token = "0x4006994")]
private const int DICT2 = 4;
// Token: 0x04006995 RID: 27029
[Token(Token = "0x4006995")]
private const int DICT1 = 5;
// Token: 0x04006996 RID: 27030
[Token(Token = "0x4006996")]
private const int DICT0 = 6;
// Token: 0x04006997 RID: 27031
[Token(Token = "0x4006997")]
private const int BLOCKS = 7;
// Token: 0x04006998 RID: 27032
[Token(Token = "0x4006998")]
private const int CHECK4 = 8;
// Token: 0x04006999 RID: 27033
[Token(Token = "0x4006999")]
private const int CHECK3 = 9;
// Token: 0x0400699A RID: 27034
[Token(Token = "0x400699A")]
private const int CHECK2 = 10;
// Token: 0x0400699B RID: 27035
[Token(Token = "0x400699B")]
private const int CHECK1 = 11;
// Token: 0x0400699C RID: 27036
[Token(Token = "0x400699C")]
private const int DONE = 12;
// Token: 0x0400699D RID: 27037
[Token(Token = "0x400699D")]
private const int BAD = 13;
// Token: 0x0400699E RID: 27038
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400699E")]
internal int mode;
// Token: 0x0400699F RID: 27039
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x400699F")]
internal int method;
// Token: 0x040069A0 RID: 27040
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40069A0")]
internal long[] was;
// Token: 0x040069A1 RID: 27041
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40069A1")]
internal long need;
// Token: 0x040069A2 RID: 27042
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40069A2")]
internal int marker;
// Token: 0x040069A3 RID: 27043
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40069A3")]
internal int nowrap;
// Token: 0x040069A4 RID: 27044
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40069A4")]
internal int wbits;
// Token: 0x040069A5 RID: 27045
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40069A5")]
internal InfBlocks blocks;
// Token: 0x040069A6 RID: 27046
[Token(Token = "0x40069A6")]
private static readonly byte[] mark;
}
}