Files
Aug2021-Cpp2IL-Dump/Assembly-CSharp/BestHTTP/SecureProtocol/Org/BouncyCastle/Math/Raw/Nat224.cs
T
2026-04-10 22:50:51 +02:00

1577 lines
36 KiB
C#

using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw
{
// Token: 0x020019DE RID: 6622
[Token(Token = "0x20019DE")]
internal abstract class Nat224
{
// Token: 0x06009F7A RID: 40826 RVA: 0x0021D5A0 File Offset: 0x0021B7A0
[Token(Token = "0x6009F7A")]
[Address(RVA = "0x28B7A10", Offset = "0x28B6810", VA = "0x1828B7A10")]
public static uint Add(uint[] x, uint[] y, uint[] z)
{
uint num = y[0];
uint num2 = x[0];
num += num2;
z[0] = num;
uint num3 = y[0];
uint num4 = x[0];
num3 += num;
num3 += num4;
z[0] = num3;
uint num5 = y[1];
uint num6 = x[1];
num5 += num3;
num5 += num6;
z[1] = num5;
uint num7 = y[1];
uint num8 = x[1];
num7 += num5;
num7 += num8;
z[1] = num7;
uint num9 = y[2];
uint num10 = x[2];
num9 += num7;
num9 += num10;
z[2] = num9;
uint num11 = y[2];
uint num12 = x[2];
num11 += num9;
num11 += num12;
z[2] = num11;
uint num13 = x[3];
uint num14 = y[3];
num14 += num11;
num14 += num13;
z[3] = num14;
return num14;
}
// Token: 0x06009F7B RID: 40827 RVA: 0x0021D6C4 File Offset: 0x0021B8C4
[Token(Token = "0x6009F7B")]
[Address(RVA = "0x28B7D00", Offset = "0x28B6B00", VA = "0x1828B7D00")]
public static uint Add(uint[] x, int xOff, uint[] y, int yOff, uint[] z, int zOff)
{
uint num = y[yOff];
uint num2 = x[yOff];
num += num2;
int num3 = yOff + 1;
uint num4 = x[num3];
int num5 = yOff + 1;
uint num6 = y[num5];
num6 += num;
num6 += num4;
uint num7 = x[num5];
uint num8 = y[num5];
num8 += num6;
num8 += num7;
uint num9 = x[num5];
uint num10 = y[num5];
num10 += num8;
num10 += num9;
uint num11 = x[num5];
uint num12 = y[num5];
num12 += num10;
num12 += num11;
uint num13 = x[num5];
uint num14 = y[num5];
num14 += num12;
num14 += num13;
uint num15 = x[yOff];
uint num16 = y[yOff];
num16 += num14;
return num16 + num15;
}
// Token: 0x06009F7C RID: 40828 RVA: 0x0021D7C0 File Offset: 0x0021B9C0
[Token(Token = "0x6009F7C")]
[Address(RVA = "0x28B6B40", Offset = "0x28B5940", VA = "0x1828B6B40")]
public static uint AddBothTo(uint[] x, uint[] y, uint[] z)
{
uint num = y[0];
uint num2 = x[0];
num += num2;
uint num3 = z[0];
num += num3;
z[0] = num;
uint num4 = z[0];
num += num4;
uint num5 = y[0];
num += num5;
uint num6 = x[0];
num += num6;
z[0] = num;
uint num7 = z[1];
num += num7;
uint num8 = y[1];
num += num8;
uint num9 = x[1];
num += num9;
z[1] = num;
uint num10 = z[1];
num += num10;
uint num11 = y[1];
num += num11;
uint num12 = x[1];
num += num12;
z[1] = num;
uint num13 = y[2];
num += num13;
uint num14 = x[2];
num += num14;
uint num15 = z[2];
num += num15;
z[2] = num;
uint num16 = z[2];
num += num16;
uint num17 = y[2];
num += num17;
uint num18 = x[2];
num += num18;
z[2] = num;
uint num19 = x[3];
uint num20 = y[3];
uint num21 = z[3];
num += num21;
num += num20;
num += num19;
z[3] = num;
return num;
}
// Token: 0x06009F7D RID: 40829 RVA: 0x0021D92C File Offset: 0x0021BB2C
[Token(Token = "0x6009F7D")]
[Address(RVA = "0x28B6E60", Offset = "0x28B5C60", VA = "0x1828B6E60")]
public static uint AddBothTo(uint[] x, int xOff, uint[] y, int yOff, uint[] z, int zOff)
{
uint num = x[xOff];
uint num2 = y[yOff];
num2 += num;
num2 += num;
int num3 = xOff + 1;
uint num4 = x[num3];
int num5 = yOff + 1;
uint num6 = y[num5];
uint num7 = x[(int)num6];
uint num8 = y[(int)num6];
num2 += num8;
num2 += num7;
uint num9 = x[(int)num8];
uint num10 = y[(int)num8];
uint num11 = x[(int)num10];
uint num12 = y[(int)num10];
uint num13 = x[(int)num12];
uint num14 = y[(int)num12];
num2 += num14;
num2 += num13;
uint num15 = x[xOff];
uint num16 = y[yOff];
num14 += num2;
num14 += num16;
return num14 + num15;
}
// Token: 0x06009F7E RID: 40830 RVA: 0x0021DA00 File Offset: 0x0021BC00
[Token(Token = "0x6009F7E")]
[Address(RVA = "0x28B7560", Offset = "0x28B6360", VA = "0x1828B7560")]
public static uint AddTo(uint[] x, uint[] z)
{
uint num = x[0];
uint num2 = z[0];
num += num2;
z[0] = num;
uint num3 = z[0];
num += num3;
uint num4 = x[0];
num += num4;
z[0] = num;
uint num5 = z[1];
num += num5;
uint num6 = x[1];
num += num6;
z[1] = num;
uint num7 = z[1];
num += num7;
uint num8 = x[1];
num += num8;
z[1] = num;
uint num9 = x[2];
num += num9;
uint num10 = z[2];
num += num10;
z[2] = num;
uint num11 = z[2];
num += num11;
uint num12 = x[2];
num += num12;
z[2] = num;
uint num13 = x[3];
uint num14 = z[3];
num += num14;
num += num13;
z[3] = num;
return num;
}
// Token: 0x06009F7F RID: 40831 RVA: 0x0021DB08 File Offset: 0x0021BD08
[Token(Token = "0x6009F7F")]
[Address(RVA = "0x28B7790", Offset = "0x28B6590", VA = "0x1828B7790")]
public static uint AddTo(uint[] x, int xOff, uint[] z, int zOff, uint cIn)
{
uint num = x[xOff];
uint num2 = z[xOff];
num2 += num;
int num3 = xOff + 1;
z[0] = num2;
uint num4 = x[num3];
int num5 = xOff + 1;
uint num6 = z[num5];
num6 += num2;
num6 += num4;
z[0] = num6;
uint num7 = x[(int)num4];
uint num8 = z[num5];
num8 += num6;
num8 += num7;
z[0] = num8;
uint num9 = x[(int)num7];
uint num10 = z[num5];
num10 += num8;
num10 += num9;
z[0] = num10;
uint num11 = x[(int)num9];
uint num12 = z[(int)num8];
num12 += num10;
num12 += num11;
z[0] = num12;
uint num13 = x[(int)num11];
uint num14 = z[(int)num10];
num14 += num12;
num14 += num13;
z[0] = num14;
uint num15 = x[xOff];
uint num16 = z[xOff];
num16 += num14;
num16 += num15;
z[0] = num16;
return num16;
}
// Token: 0x06009F80 RID: 40832 RVA: 0x0021DC40 File Offset: 0x0021BE40
[Token(Token = "0x6009F80")]
[Address(RVA = "0x28B7200", Offset = "0x28B6000", VA = "0x1828B7200")]
public static uint AddToEachOther(uint[] u, int uOff, uint[] v, int vOff)
{
uint num = v[vOff];
uint num2 = u[uOff];
num += num2;
u[0] = num;
int num3 = uOff + 1;
v[0] = num;
int num4 = vOff + 1;
uint num5 = v[num4];
uint num6 = u[num3];
num5 += num;
num5 += num6;
u[0] = num5;
v[0] = num5;
uint num7 = v[num4];
uint num8 = u[num3];
num7 += num5;
num7 += num8;
u[0] = num7;
v[0] = num7;
uint num9 = v[num4];
uint num10 = u[num3];
num9 += num7;
num9 += num10;
u[0] = num9;
v[0] = num9;
uint num11 = v[(int)num7];
uint num12 = u[num3];
num11 += num9;
num11 += num12;
u[0] = num11;
v[0] = num11;
uint num13 = v[(int)num9];
uint num14 = u[num3];
num13 += num11;
num13 += num14;
u[0] = num13;
v[0] = num13;
uint num15 = v[uOff];
uint num16 = u[(int)num9];
num15 += num13;
num15 += num16;
u[0] = num15;
v[0] = num15;
return num15;
}
// Token: 0x06009F81 RID: 40833 RVA: 0x0021DDB4 File Offset: 0x0021BFB4
[Token(Token = "0x6009F81")]
[Address(RVA = "0x28B8070", Offset = "0x28B6E70", VA = "0x1828B8070")]
public static void Copy(uint[] x, uint[] z)
{
uint num = x[0];
z[0] = num;
uint num2 = x[0];
z[0] = num2;
uint num3 = x[1];
z[1] = num3;
uint num4 = x[1];
z[1] = num4;
uint num5 = x[2];
z[2] = num5;
uint num6 = x[2];
z[2] = num6;
uint num7 = x[3];
z[3] = num7;
}
// Token: 0x06009F82 RID: 40834 RVA: 0x0021DE40 File Offset: 0x0021C040
[Token(Token = "0x6009F82")]
[Address(RVA = "0x28B8230", Offset = "0x28B7030", VA = "0x1828B8230")]
public static void Copy(uint[] x, int xOff, uint[] z, int zOff)
{
uint num = x[xOff];
int num2 = xOff + 1;
z[0] = num;
uint num3 = x[num2];
int num4 = xOff + 1;
z[0] = num3;
uint num5 = x[num4];
z[0] = num5;
uint num6 = x[num4];
z[0] = num6;
uint num7 = x[num4];
z[0] = num7;
uint num8 = x[num4];
z[0] = num8;
uint num9 = x[xOff];
z[0] = num9;
}
// Token: 0x06009F83 RID: 40835 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6009F83")]
[Address(RVA = "0x28B8480", Offset = "0x28B7280", VA = "0x1828B8480")]
public static uint[] Create()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06009F84 RID: 40836 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6009F84")]
[Address(RVA = "0x28B8440", Offset = "0x28B7240", VA = "0x1828B8440")]
public static uint[] CreateExt()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06009F85 RID: 40837 RVA: 0x0021DED8 File Offset: 0x0021C0D8
[Token(Token = "0x6009F85")]
[Address(RVA = "0x28B84C0", Offset = "0x28B72C0", VA = "0x1828B84C0")]
public static bool Diff(uint[] x, int xOff, uint[] y, int yOff, uint[] z, int zOff)
{
uint num;
if ("{il2cpp array field x->}" <= num)
{
}
throw new NullReferenceException();
}
// Token: 0x06009F86 RID: 40838 RVA: 0x0021DEF8 File Offset: 0x0021C0F8
[Token(Token = "0x6009F86")]
[Address(RVA = "0x28B85C0", Offset = "0x28B73C0", VA = "0x1828B85C0")]
public static bool Eq(uint[] x, uint[] y)
{
uint num2;
uint num = y[(int)num2];
if ("{il2cpp array field x->}" == num)
{
}
throw new NullReferenceException();
}
// Token: 0x06009F87 RID: 40839 RVA: 0x0021DF1C File Offset: 0x0021C11C
[Token(Token = "0x6009F87")]
[Address(RVA = "0x28B8630", Offset = "0x28B7430", VA = "0x1828B8630")]
public static uint[] FromBigInteger(BigInteger x)
{
int bitLength = x.BitLength;
uint[] array = new uint[7];
int num = 0;
if (x.sign != 0)
{
num++;
int intValue = x.IntValue;
array[0] = (uint)intValue;
BigInteger bigInteger = x.ShiftRight(32);
}
return array;
}
// Token: 0x06009F88 RID: 40840 RVA: 0x0021DF68 File Offset: 0x0021C168
[Token(Token = "0x6009F88")]
[Address(RVA = "0x28B8760", Offset = "0x28B7560", VA = "0x1828B8760")]
public static uint GetBit(uint[] x, int bit)
{
if (bit != 0)
{
if (bit <= 6)
{
return x[bit];
}
}
return x[0];
}
// Token: 0x06009F89 RID: 40841 RVA: 0x0021DF94 File Offset: 0x0021C194
[Token(Token = "0x6009F89")]
[Address(RVA = "0x28B87E0", Offset = "0x28B75E0", VA = "0x1828B87E0")]
public static bool Gte(uint[] x, uint[] y)
{
uint num2;
uint num = y[(int)num2];
if (x[(int)num2] <= num)
{
}
throw new NullReferenceException();
}
// Token: 0x06009F8A RID: 40842 RVA: 0x0021DFBC File Offset: 0x0021C1BC
[Token(Token = "0x6009F8A")]
[Address(RVA = "0x28B8860", Offset = "0x28B7660", VA = "0x1828B8860")]
public static bool Gte(uint[] x, int xOff, uint[] y, int yOff)
{
uint num = y[x];
if ("{il2cpp array field x->}" <= num)
{
}
throw new NullReferenceException();
}
// Token: 0x06009F8B RID: 40843 RVA: 0x0021DFE0 File Offset: 0x0021C1E0
[Token(Token = "0x6009F8B")]
[Address(RVA = "0x28B88E0", Offset = "0x28B76E0", VA = "0x1828B88E0")]
public static bool IsOne(uint[] x)
{
int length = x.Length;
if ("{il2cpp array field x->}" == (ulong)1L && "{il2cpp array field x->}" == (ulong)0L)
{
return true;
}
throw new NullReferenceException();
}
// Token: 0x06009F8C RID: 40844 RVA: 0x0021E014 File Offset: 0x0021C214
[Token(Token = "0x6009F8C")]
[Address(RVA = "0x28B8950", Offset = "0x28B7750", VA = "0x1828B8950")]
public static bool IsZero(uint[] x)
{
int num = 0;
if ("{il2cpp array field x->}" == (ulong)0L)
{
num++;
return true;
}
throw new NullReferenceException();
}
// Token: 0x06009F8D RID: 40845 RVA: 0x0021E03C File Offset: 0x0021C23C
[Token(Token = "0x6009F8D")]
[Address(RVA = "0x28BA300", Offset = "0x28B9100", VA = "0x1828BA300")]
public static void Mul(uint[] x, uint[] y, uint[] zz)
{
int length = y.Length;
uint num = y[0];
uint num2 = y[0];
uint num3 = y[1];
uint num4 = y[1];
uint num5 = y[2];
uint num6 = y[2];
uint num7 = y[3];
uint num8 = x[0];
uint num9 = num8 * num;
zz[0] = num9;
uint num10 = num8 * num2;
num10 += num9;
zz[0] = num10;
num9 = num8;
uint num11 = num9 * num3;
num11 += num10;
zz[1] = num11;
num10 = num8;
uint num12 = num10 * num4;
num12 += num11;
zz[1] = num12;
num11 = num8;
uint num13 = num11 * num5;
num13 += num12;
zz[2] = num13;
num12 = num8;
uint num14 = num12 * num6;
num14 += num13;
uint num15 = num8 * num7;
zz[2] = num14;
num15 += num14;
zz[3] = num15;
zz[3] = num15;
uint num17;
uint num16 = x[(int)num17];
uint num18 = num17 + 1U;
uint num19 = zz[(int)num17];
num4 = num16;
uint num20 = num4 * num;
num20 += num19;
zz[0] = num20;
uint num21 = zz[(int)num18];
num19 = num16;
uint num22 = num19 * num2;
num21 += num22;
num21 += num20;
zz[0] = num21;
uint num23 = zz[(int)num18];
num22 = num16;
uint num24 = num22 * num3;
num23 += num24;
num23 += num21;
zz[0] = num23;
uint num25 = zz[(int)num18];
num24 = num16;
num25 += num24;
num25 += num23;
zz[0] = num25;
uint num26 = zz[(int)num23];
num24 = num16;
uint num27 = num24 * num5;
num26 += num27;
num26 += num25;
zz[0] = num26;
uint num28 = zz[(int)num25];
num27 = num16;
uint num29 = num27 * num6;
num28 += num29;
num28 += num26;
zz[0] = num28;
uint num30 = zz[(int)num25];
num17 += (uint)7;
uint num31 = num16 * num7;
num30 += num31;
num30 += num28;
zz[0] = num30;
num17 += (uint)1;
zz[0] = num30;
}
// Token: 0x06009F8E RID: 40846 RVA: 0x0021E294 File Offset: 0x0021C494
[Token(Token = "0x6009F8E")]
[Address(RVA = "0x28B9E10", Offset = "0x28B8C10", VA = "0x1828B9E10")]
public static void Mul(uint[] x, int xOff, uint[] y, int yOff, uint[] zz, int zzOff)
{
int length = y.Length;
uint num = y[yOff];
int num2 = yOff + 1;
uint num3 = y[num2];
uint num4 = y[num2];
uint num5 = y[num2];
uint num6 = y[num2];
uint num7 = y[num2];
uint num8 = y[yOff];
uint num9 = x[xOff];
uint num10 = num9 * num;
uint num11 = num9 * num3;
num11 += num10;
num10 = num9;
uint num12 = num10 * num4;
num12 += num11;
num11 = num9;
uint num13 = num11 * num5;
num13 += num12;
num12 = num9;
uint num14 = num12 * num6;
num14 += num13;
num13 = num9;
uint num15 = num13 * num7;
num15 += num14;
uint num16 = num9 * num8;
num16 += num15;
int num17 = xOff + 1;
uint num18 = x[num17];
uint num19 = num18 * num;
num19 += (uint)num17;
num19 += num18;
uint num20 = num18 * num6;
num20 = num18;
uint num21 = num20 * num7;
num19 += num21;
uint num22 = num18 * num8;
num21 += num22;
num21 += num19;
num17++;
num17 -= xOff;
}
// Token: 0x06009F8F RID: 40847 RVA: 0x0021E3C0 File Offset: 0x0021C5C0
[Token(Token = "0x6009F8F")]
[Address(RVA = "0x28B8FA0", Offset = "0x28B7DA0", VA = "0x1828B8FA0")]
public static uint MulAddTo(uint[] x, uint[] y, uint[] zz)
{
int length = y.Length;
uint num = y[0];
uint num2 = y[0];
uint num3 = y[1];
uint num4 = y[1];
uint num5 = y[2];
uint num6 = y[2];
uint num7 = y[3];
int num8 = 0;
uint num9 = x[num8];
uint num10 = zz[num8];
uint num11 = num9 * num;
num11 += num10;
zz[0] = num11;
num10 = num9;
uint num12 = num10 * num2;
uint num13;
num13 += num12;
num13 += num11;
zz[0] = num13;
num12 = num9;
uint num14 = num12 * num3;
uint num15;
num15 += num14;
num15 += num13;
zz[0] = num15;
num14 = num9;
uint num16;
num16 += num14;
num16 += num15;
zz[0] = num16;
num14 = num9;
uint num17 = num14 * num5;
uint num18;
num18 += num17;
num18 += num16;
zz[0] = num18;
num17 = num9;
uint num19 = num17 * num6;
uint num20;
num20 += num19;
num20 += num18;
zz[0] = num20;
uint num21;
num21 += num9;
num21 += num20;
zz[0] = num21;
num8++;
uint num22;
num8 += (int)num22;
num8 += (int)num21;
zz[0] = (uint)num8;
throw new NullReferenceException();
}
// Token: 0x06009F90 RID: 40848 RVA: 0x0021E518 File Offset: 0x0021C718
[Token(Token = "0x6009F90")]
[Address(RVA = "0x28B92D0", Offset = "0x28B80D0", VA = "0x1828B92D0")]
public static uint MulAddTo(uint[] x, int xOff, uint[] y, int yOff, uint[] zz, int zzOff)
{
int length = y.Length;
uint num = y[yOff];
int num2 = yOff + 1;
uint num3 = y[num2];
uint num4 = y[(int)num3];
uint num5 = y[(int)num4];
uint num6 = y[(int)num5];
uint num7 = y[(int)num5];
uint num8 = y[yOff];
int num9 = 0;
uint num10 = x[(int)num8];
uint num11 = num10 * num;
num11 += num8;
num8 = num10;
num11 += num8;
num8 = num10;
uint num12 = num8 * num6;
num11 += num12;
num12 = num10;
uint num13 = num12 * num7;
num11 += num10;
num9 += (int)num13;
num9 += (int)num11;
throw new NullReferenceException();
}
// Token: 0x06009F91 RID: 40849 RVA: 0x0021E5D4 File Offset: 0x0021C7D4
[Token(Token = "0x6009F91")]
[Address(RVA = "0x28B89A0", Offset = "0x28B77A0", VA = "0x1828B89A0")]
public static ulong Mul33Add(uint w, uint[] x, int xOff, uint[] y, int yOff, uint[] z, int zOff)
{
uint num = x[xOff];
uint num2 = num * w;
uint num3;
num3 += num2;
int num4 = xOff + 1;
uint num5 = x[num4];
uint num6 = y[num4];
uint num7 = w * w;
num7 += num;
num7 += num6;
num3 += num7;
uint num8 = x[(int)num6];
uint num9 = y[(int)num6];
num7 = num8;
uint num10 = num7 * w;
num10 += num5;
num10 += num9;
num3 += num10;
uint num11 = x[(int)num9];
uint num12 = y[(int)num9];
num10 = num11;
uint num13 = num10 * w;
num13 += num8;
num13 += num12;
num3 += num13;
uint num14 = x[(int)num12];
uint num15 = y[(int)num12];
num13 = num14;
uint num16 = num13 * w;
num16 += num11;
num16 += num15;
num3 += num16;
uint num17 = x[(int)num15];
uint num18 = y[(int)num15];
num16 = num17;
uint num19 = num16 * w;
num19 += num14;
num19 += num18;
num3 += num19;
uint num20 = num19 * w;
num20 += num17;
uint num21;
num20 += num21;
num3 += num20;
throw new NullReferenceException();
}
// Token: 0x06009F92 RID: 40850 RVA: 0x0021E700 File Offset: 0x0021C900
[Token(Token = "0x6009F92")]
[Address(RVA = "0x28B98A0", Offset = "0x28B86A0", VA = "0x1828B98A0")]
public static uint MulByWord(uint x, uint[] z)
{
uint num = z[0] * x;
z[0] = num;
uint num2 = z[0] * x;
num2 += num;
z[0] = num2;
uint num3 = z[1] * x;
num3 += num2;
z[1] = num3;
uint num4 = z[1] * x;
num4 += num3;
z[1] = num4;
uint num5 = z[2] * x;
num5 += num4;
z[2] = num5;
uint num6 = z[2] * x;
num6 += num5;
z[2] = num6;
uint num7 = z[3] * x;
num7 += num6;
z[3] = num7;
return num7;
}
// Token: 0x06009F93 RID: 40851 RVA: 0x0021E7BC File Offset: 0x0021C9BC
[Token(Token = "0x6009F93")]
[Address(RVA = "0x28B9650", Offset = "0x28B8450", VA = "0x1828B9650")]
public static uint MulByWordAddTo(uint x, uint[] y, uint[] z)
{
uint num = z[0];
uint num2 = y[0];
uint num3 = num * x;
num3 += num2;
z[0] = num3;
uint num4 = z[0];
uint num5 = y[0];
uint num6 = num4 * x;
num6 += num5;
num6 += num3;
z[0] = num6;
uint num7 = z[1];
uint num8 = y[1];
uint num9 = num7 * x;
num9 += num8;
num9 += num6;
z[1] = num9;
uint num10 = z[1];
uint num11 = y[1];
uint num12 = num10 * x;
num12 += num11;
num12 += num9;
z[1] = num12;
uint num13 = z[2];
uint num14 = y[2];
uint num15 = num13 * x;
num15 += num14;
num15 += num12;
z[2] = num15;
uint num16 = z[2];
uint num17 = y[2];
uint num18 = num16 * x;
num18 += num17;
num18 += num15;
z[2] = num18;
uint num19 = z[3];
uint num20 = y[3];
uint num21 = num19 * x;
num21 += num20;
num21 += num18;
z[3] = num21;
return num21;
}
// Token: 0x06009F94 RID: 40852 RVA: 0x0021E908 File Offset: 0x0021CB08
[Token(Token = "0x6009F94")]
[Address(RVA = "0x28B99F0", Offset = "0x28B87F0", VA = "0x1828B99F0")]
public static uint MulWordAddTo(uint x, uint[] y, int yOff, uint[] z, int zOff)
{
uint num = y[yOff] * x;
uint num2;
num += num2;
int num3 = yOff + 1;
z[0] = num;
uint num4 = y[num3] * x;
uint num5;
num5 += num4;
num5 += num;
z[0] = num5;
uint num6 = y[(int)num4] * x;
uint num7;
num7 += num6;
num7 += num5;
z[0] = num7;
uint num8 = y[(int)num6] * x;
uint num9;
num9 += num8;
num9 += num7;
z[0] = num9;
uint num10 = y[(int)num8];
uint num11 = z[(int)num7];
uint num12 = num10 * x;
num11 += num12;
num11 += num9;
z[0] = num11;
uint num13 = y[(int)num12];
uint num14 = z[(int)num9];
uint num15 = num13 * x;
num14 += num15;
num14 += num11;
z[0] = num14;
uint num16 = y[yOff];
uint num17 = z[y];
uint num18 = num16 * x;
num17 += num18;
num17 += num14;
z[0] = num17;
return num17;
}
// Token: 0x06009F95 RID: 40853 RVA: 0x0021EA2C File Offset: 0x0021CC2C
[Token(Token = "0x6009F95")]
[Address(RVA = "0x28B8D70", Offset = "0x28B7B70", VA = "0x1828B8D70")]
public static uint Mul33DWordAdd(uint x, ulong y, uint[] z, int zOff)
{
uint num = z[zOff];
ulong num2 = y * (ulong)x;
int num3 = zOff + 1;
num2 += (ulong)num;
z[0] = (uint)num2;
uint num4 = z[num3];
ulong num5 = y * (ulong)x;
num5 += y;
num5 += (ulong)num4;
num2 += num5;
z[0] = (uint)num2;
uint num6 = z[(int)num5];
num6 = (uint)((ulong)num6 + y);
num2 += (ulong)num6;
z[0] = (uint)num2;
uint num7 = z[zOff];
num7 = (uint)((ulong)num7 + num2);
z[0] = num7;
ulong num8;
if (num8 == (ulong)num7)
{
}
uint num9;
return Nat.IncAt((int)num8, z, zOff, (int)num9);
}
// Token: 0x06009F96 RID: 40854 RVA: 0x0021EACC File Offset: 0x0021CCCC
[Token(Token = "0x6009F96")]
[Address(RVA = "0x28B8EC0", Offset = "0x28B7CC0", VA = "0x1828B8EC0")]
public static uint Mul33WordAdd(uint x, uint y, uint[] z, int zOff)
{
uint num = z[zOff];
uint num2 = x * y;
num2 += num;
z[0] = num2;
int num3 = zOff + 1;
uint num4 = z[num3];
num4 += y;
num2 += num4;
z[0] = num2;
uint num5 = z[zOff];
num5 += num2;
z[0] = num5;
ulong num6;
if (num6 == (ulong)num5)
{
}
uint num7;
return Nat.IncAt((int)num6, z, zOff, (int)num7);
}
// Token: 0x06009F97 RID: 40855 RVA: 0x0021EB44 File Offset: 0x0021CD44
[Token(Token = "0x6009F97")]
[Address(RVA = "0x28B9C90", Offset = "0x28B8A90", VA = "0x1828B9C90")]
public static uint MulWordDwordAdd(uint x, ulong y, uint[] z, int zOff)
{
uint num = z[zOff];
uint num2 = (uint)((ulong)x * y);
num2 += num;
int num3 = zOff + 1;
z[0] = num2;
uint num4 = z[num3];
ulong num5 = y * (ulong)x;
num4 = (uint)((ulong)num4 + num5);
num4 += num2;
z[0] = num4;
uint num6 = z[zOff];
num6 += num4;
z[0] = num6;
ulong num7;
if (num7 == (ulong)num6)
{
}
uint num8;
return Nat.IncAt((int)num7, z, zOff, (int)num8);
}
// Token: 0x06009F98 RID: 40856 RVA: 0x0021EBC0 File Offset: 0x0021CDC0
[Token(Token = "0x6009F98")]
[Address(RVA = "0x28B9D80", Offset = "0x28B8B80", VA = "0x1828B9D80")]
public static uint MulWord(uint x, uint[] y, uint[] z, int zOff)
{
int num = 0;
uint num2 = y[num] * x;
num += (int)num2;
z[0] = (uint)num;
throw new NullReferenceException();
}
// Token: 0x06009F99 RID: 40857 RVA: 0x0021EBEC File Offset: 0x0021CDEC
[Token(Token = "0x6009F99")]
[Address(RVA = "0x28BB060", Offset = "0x28B9E60", VA = "0x1828BB060")]
public static void Square(uint[] x, uint[] zz)
{
uint num = x[0];
uint num3;
uint num2 = x[(int)num3];
uint num4 = num2 * num2;
zz[0] = num4;
zz[0] = num4;
num4 = num;
uint num5 = num4 * num;
zz[0] = num5;
uint num6 = x[0];
uint num7 = zz[1];
num5 = num6;
uint num8 = num5 * num;
num4 += num8;
zz[0] = num5;
int length = zz.Length;
uint num9 = x[1];
uint num10 = zz[1];
num5 = num9;
uint num11 = zz[2];
num8 = num4;
uint num12 = num5 * num;
num12 += num8;
num12 += num7;
num4 = num9;
uint num13 = num4 * num6;
zz[1] = num8;
num8 = num12;
num13 += num8;
num13 += num10;
num7 = num13;
num7 += num11;
uint num14 = x[1];
uint num15 = zz[2];
num7 += num15;
num10 = num14;
num15 = num13;
uint num16 = num10 * num;
uint num17 = zz[3];
num16 += num15;
zz[1] = num15;
num15 = num16;
uint num18 = num14 * num6;
num18 += num15;
num15 = num7;
num18 += num15;
num7 = num14;
uint num19 = num7 * num9;
num15 = num18;
num19 += num15;
num15 = num7;
num19 += num15;
num15 = num19;
num7 += num15;
num7 += num17;
int length2 = zz.Length;
uint num20 = x[2];
uint num21 = zz[3];
num12 = num7;
num12 += num21;
uint num22 = zz[4];
num13 = num20;
uint num23 = num13 * num;
num22 = num18;
num23 += num22;
num18 = num20;
zz[2] = num22;
num22 = num23;
uint num24 = num18 * num6;
uint num25 = num20 * num9;
uint num26 = num20 * num14;
num24 += num22;
num22 = num19;
num24 += num22;
num22 = num24;
num25 += num22;
num22 = num7;
num25 += num22;
num22 = num25;
num26 += num22;
num22 = num12;
num26 += num22;
num22 = num26;
num12 += num22;
num12 += num22;
uint num27 = x[2];
int length3 = zz.Length;
uint num28 = zz[4];
num16 = num12;
num16 += num28;
uint num29 = zz[5];
uint num30 = num27 * num;
num29 = num24;
num30 += num29;
num24 = num27;
num23 = num27;
zz[2] = num29;
num29 = num30;
uint num31 = num24 * num6;
uint num32 = num23 * num9;
num31 += num29;
num29 = num25;
num31 += num29;
num29 = num31;
num32 += num29;
num29 = num26;
num32 += num29;
num26 = num27;
uint num33 = num26 * num14;
uint num34 = num27 * num20;
num29 = num32;
num33 += num29;
num29 = num12;
num33 += num29;
num29 = num33;
num34 += num29;
num29 = num16;
num34 += num29;
num29 = num34;
num16 += num29;
num16 += num29;
uint num35 = x[3];
int length4 = zz.Length;
uint num36 = zz[5];
num34 = num16;
num34 += num36;
uint num37 = zz[6];
num32 = num35;
uint num38 = num32 * num;
num37 = num31;
num38 += num37;
num31 = num35;
zz[3] = num37;
num = num35;
num30 = num35;
uint num39 = num31 * num6;
uint num40 = num * num9;
uint num41 = num30 * num14;
uint num42 = num35 * num20;
num37 = num38;
num39 += num37;
num39 += num32;
num32 = num39;
num40 += num32;
num32 = num33;
num40 += num32;
num32 = num40;
num41 += num32;
num41 += num34;
num34 = num41;
num42 += num34;
num34 = num16;
num42 += num34;
num34 = num42;
num35 += num34;
num35 += num34;
num34 = num35;
num34 += num34;
num34 += num37;
zz[3] = num37;
zz[4] = num37;
zz[4] = num37;
zz[5] = num37;
zz[5] = num37;
zz[6] = num37;
num37 = num34;
num37 += num37;
zz[6] = num37;
}
// Token: 0x06009F9A RID: 40858 RVA: 0x0021F020 File Offset: 0x0021D220
[Token(Token = "0x6009F9A")]
[Address(RVA = "0x28BA780", Offset = "0x28B9580", VA = "0x1828BA780")]
public static void Square(uint[] x, int xOff, uint[] zz, int zzOff)
{
uint num = x[xOff];
uint num2 = x[x];
uint num3 = num2 * num2;
zz[0] = num3;
zz[0] = num3;
num3 = num;
uint num4 = num3 * num;
int num5 = xOff + 1;
zz.m_value = num4;
uint num6 = x[num5];
int length = zz.Length;
int num7 = zzOff + 1;
uint num8 = num6;
uint num9 = num8 * num;
num3 += num9;
zz[0] = num4;
uint num10 = x[(int)num9];
int length2 = zz.Length;
uint num11 = zz[xOff];
num4 = num10;
uint num12 = num4 * num;
uint num13 = num3;
num12 += num13;
num12 += num8;
num3 = num10;
zz[0] = num8;
num8 = num12;
uint num14 = num3 * num6;
num14 += num8;
num14 += num11;
num10 = num14;
num10 += num13;
uint num15 = x[(int)num13];
int length3 = zz.Length;
uint num16 = zz[(int)num13];
num13 = num10;
num16 += num13;
uint num17 = zz[(int)num13];
uint num18 = num15 * num;
num17 = num14;
num18 += num17;
zz[0] = num17;
num17 = num18;
num15 += num17;
num17 = num10;
num15 += num17;
num17 = num15;
num15 += num17;
num17 = num16;
num15 += num17;
num17 = num15;
num16 += num17;
num16 += num17;
uint num19 = x[(int)num17];
int length4 = zz.Length;
uint num20 = zz[(int)num17];
num17 = num16;
num20 += num17;
uint num21 = num19 * num;
uint num22 = num15;
num21 += num22;
num15 = num19;
num18 = num19;
zz[0] = num22;
num22 = num21;
num15 += num22;
num22 = num15;
num15 += num22;
num22 = num15;
num18 += num22;
num22 = num16;
num18 += num22;
num16 = num19;
num22 = num18;
num16 += num22;
num22 = num20;
num16 += num22;
num22 = num16;
num20 += num22;
num20 += num22;
uint num23 = x[(int)num22];
int length5 = zz.Length;
num22 = num20;
uint num24;
num24 += num22;
uint num25 = zz[(int)num22];
uint num26 = num23 * num;
num25 = num15;
num26 += num25;
num15 = num23;
zz[0] = num25;
num21 = num23;
num25 = num26;
uint num27 = num15 * num6;
num27 += num25;
num27 += num18;
num18 = num27;
num21 += num18;
num21 += num16;
num16 = num21;
num16 += num16;
num16 = num20;
num16 += num16;
num20 = num23;
num20 += num16;
num16 = num24;
num20 += num16;
num16 = num20;
num24 += num16;
num24 += num25;
uint num28 = x[xOff];
int length6 = zz.Length;
uint num29 = zz[xOff];
num25 = num24;
num29 += num25;
uint num30 = zz[(int)num25];
uint num31 = num28 * num;
num30 = num27;
num31 += num30;
zz[0] = num30;
num26 = num28;
num27 = num28;
uint num32 = num27 * num6;
num6 = num28;
num30 = num31;
num32 += num30;
num32 += num21;
num21 = num32;
num6 += num21;
num6 += num16;
num16 = num6;
num26 += num16;
num26 += num20;
num20 = num26;
num28 += num20;
num20 = num24;
num28 += num20;
num20 = num28;
num28 += num20;
num20 = num29;
num28 += num20;
num20 = num28;
num29 += num20;
num29 += num30;
zz[0] = num30;
zz[0] = num30;
zz[0] = num30;
zz[0] = num30;
zz[5] = num30;
zz[6] = num30;
num30 = num29;
num30 += num30;
zz[0] = num30;
}
// Token: 0x06009F9B RID: 40859 RVA: 0x0021F400 File Offset: 0x0021D600
[Token(Token = "0x6009F9B")]
[Address(RVA = "0x28BBFB0", Offset = "0x28BADB0", VA = "0x1828BBFB0")]
public static int Sub(uint[] x, uint[] y, uint[] z)
{
uint num = y[0];
uint num2 = x[0];
num2 -= num;
z[0] = num2;
uint num3 = y[0];
num2 -= num3;
uint num4 = x[0];
num2 += num4;
z[0] = num2;
uint num5 = y[1];
num2 -= num5;
uint num6 = x[1];
num2 += num6;
z[1] = num2;
uint num7 = y[1];
num2 -= num7;
uint num8 = x[1];
num2 += num8;
z[1] = num2;
uint num9 = y[2];
num2 -= num9;
uint num10 = x[2];
num2 += num10;
z[2] = num2;
uint num11 = y[2];
num2 -= num11;
uint num12 = x[2];
num2 += num12;
z[2] = num2;
uint num13 = x[3];
uint num14 = y[3];
num2 -= num14;
num2 += num13;
z[3] = num2;
throw new NullReferenceException();
}
// Token: 0x06009F9C RID: 40860 RVA: 0x0021F508 File Offset: 0x0021D708
[Token(Token = "0x6009F9C")]
[Address(RVA = "0x28BC2A0", Offset = "0x28BB0A0", VA = "0x1828BC2A0")]
public static int Sub(uint[] x, int xOff, uint[] y, int yOff, uint[] z, int zOff)
{
uint num = x[yOff];
uint num2 = y[yOff];
num -= num2;
int num3 = yOff + 1;
uint num4 = x[num3];
int num5 = yOff + 1;
uint num6 = y[num5];
num -= num6;
num += num4;
uint num7 = x[(int)num6];
uint num8 = y[(int)num6];
num -= num8;
num += num7;
uint num9 = x[(int)num8];
uint num10 = y[(int)num8];
num -= num10;
num += num9;
uint num11 = x[(int)num10];
uint num12 = y[(int)num10];
num -= num12;
num += num11;
uint num13 = x[(int)num12];
uint num14 = y[(int)num12];
num -= num14;
num += num13;
uint num15 = x[yOff];
uint num16 = y[yOff];
num -= num16;
num += num15;
throw new NullReferenceException();
}
// Token: 0x06009F9D RID: 40861 RVA: 0x0021F5EC File Offset: 0x0021D7EC
[Token(Token = "0x6009F9D")]
[Address(RVA = "0x28BB7F0", Offset = "0x28BA5F0", VA = "0x1828BB7F0")]
public static int SubBothFrom(uint[] x, uint[] y, uint[] z)
{
uint num = y[0];
uint num2 = z[0];
num2 -= num;
uint num3 = x[0];
num2 -= num3;
z[0] = num2;
uint num4 = y[0];
num2 -= num4;
uint num5 = x[0];
num2 -= num5;
uint num6 = z[0];
num2 += num6;
z[0] = num2;
uint num7 = y[1];
num2 -= num7;
uint num8 = x[1];
num2 -= num8;
uint num9 = z[1];
num2 += num9;
z[1] = num2;
uint num10 = y[1];
num2 -= num10;
uint num11 = x[1];
num2 -= num11;
uint num12 = z[1];
num2 += num12;
z[1] = num2;
uint num13 = y[2];
num2 -= num13;
uint num14 = x[2];
num2 -= num14;
uint num15 = z[2];
num2 += num15;
z[2] = num2;
uint num16 = y[2];
num2 -= num16;
uint num17 = x[2];
num2 -= num17;
uint num18 = z[2];
num2 += num18;
z[2] = num2;
uint num19 = x[3];
uint num20 = y[3];
num2 -= num20;
uint num21 = z[3];
num2 -= num19;
num2 += num21;
z[3] = num2;
throw new NullReferenceException();
}
// Token: 0x06009F9E RID: 40862 RVA: 0x0021F754 File Offset: 0x0021D954
[Token(Token = "0x6009F9E")]
[Address(RVA = "0x28BBD80", Offset = "0x28BAB80", VA = "0x1828BBD80")]
public static int SubFrom(uint[] x, uint[] z)
{
uint num = x[0];
uint num2 = z[0];
num2 -= num;
z[0] = num2;
uint num3 = x[0];
num2 -= num3;
uint num4 = z[0];
num2 += num4;
z[0] = num2;
uint num5 = x[1];
num2 -= num5;
uint num6 = z[1];
num2 += num6;
z[1] = num2;
uint num7 = x[1];
num2 -= num7;
uint num8 = z[1];
num2 += num8;
z[1] = num2;
uint num9 = x[2];
num2 -= num9;
uint num10 = z[2];
num2 += num10;
z[2] = num2;
uint num11 = x[2];
num2 -= num11;
uint num12 = z[2];
num2 += num12;
z[2] = num2;
uint num13 = x[3];
num2 -= num13;
uint num14 = z[3];
num2 += num14;
z[3] = num2;
throw new NullReferenceException();
}
// Token: 0x06009F9F RID: 40863 RVA: 0x0021F85C File Offset: 0x0021DA5C
[Token(Token = "0x6009F9F")]
[Address(RVA = "0x28BBB10", Offset = "0x28BA910", VA = "0x1828BBB10")]
public static int SubFrom(uint[] x, int xOff, uint[] z, int zOff)
{
uint num = z[zOff];
int num2 = zOff + 1;
uint num3 = x[xOff];
num -= num3;
z[0] = num;
int num4 = xOff + 1;
uint num5 = x[num4];
num -= num5;
uint num6 = z[num2];
num += num6;
z[0] = num;
uint num7 = x[(int)num6];
num -= num7;
uint num8;
num8 += num;
z[0] = num8;
uint num9 = x[(int)num7];
num8 -= num9;
uint num10;
num10 += num8;
z[0] = num10;
uint num11 = x[(int)num9];
num10 -= num11;
uint num12;
num12 += num10;
z[0] = num12;
uint num13 = x[(int)num11];
num12 -= num13;
uint num14;
num14 += num12;
z[0] = num14;
uint num15 = x[xOff];
uint num16 = z[zOff];
num14 -= num15;
num16 += num14;
z[0] = num16;
throw new NullReferenceException();
}
// Token: 0x06009FA0 RID: 40864 RVA: 0x0021F964 File Offset: 0x0021DB64
[Token(Token = "0x6009FA0")]
[Address(RVA = "0x28BC600", Offset = "0x28BB400", VA = "0x1828BC600")]
public static BigInteger ToBigInteger(uint[] x)
{
byte[] array = new byte[28];
int num = 0;
uint num2 = x[num];
if (num2 != (uint)0)
{
Pack.UInt32_To_BE(num2, array, 24);
}
num++;
return new BigInteger(1, array);
}
// Token: 0x06009FA1 RID: 40865 RVA: 0x0021F9A4 File Offset: 0x0021DBA4
[Token(Token = "0x6009FA1")]
[Address(RVA = "0x28BC6D0", Offset = "0x28BB4D0", VA = "0x1828BC6D0")]
public static void Zero(uint[] z)
{
int num = 0;
z[0] = (uint)num;
z[0] = (uint)num;
z[1] = (uint)num;
z[1] = (uint)num;
z[2] = (uint)num;
z[2] = (uint)num;
z[3] = (uint)num;
}
// Token: 0x06009FA2 RID: 40866 RVA: 0x0021F9F4 File Offset: 0x0021DBF4
[Token(Token = "0x6009FA2")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
protected Nat224()
{
}
// Token: 0x04006A58 RID: 27224
[Token(Token = "0x4006A58")]
private const ulong M = 4294967295UL;
}
}