1135 lines
27 KiB
C#
1135 lines
27 KiB
C#
using System;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw
|
|
{
|
|
// Token: 0x020019DC RID: 6620
|
|
[Token(Token = "0x20019DC")]
|
|
internal abstract class Nat160
|
|
{
|
|
// Token: 0x06009F26 RID: 40742 RVA: 0x00219F88 File Offset: 0x00218188
|
|
[Token(Token = "0x6009F26")]
|
|
[Address(RVA = "0x1F72180", Offset = "0x1F70F80", VA = "0x181F72180")]
|
|
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 = x[2];
|
|
uint num10 = y[2];
|
|
num10 += num7;
|
|
num10 += num9;
|
|
z[2] = num10;
|
|
return num10;
|
|
}
|
|
|
|
// Token: 0x06009F27 RID: 40743 RVA: 0x0021A058 File Offset: 0x00218258
|
|
[Token(Token = "0x6009F27")]
|
|
[Address(RVA = "0x1F71900", Offset = "0x1F70700", VA = "0x181F71900")]
|
|
public static uint AddBothTo(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 = z[0];
|
|
num2 += num4;
|
|
uint num5 = y[0];
|
|
num2 += num5;
|
|
uint num6 = x[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 = z[1];
|
|
num2 += num10;
|
|
uint num11 = y[1];
|
|
num2 += num11;
|
|
uint num12 = x[1];
|
|
num2 += num12;
|
|
z[1] = num2;
|
|
uint num13 = x[2];
|
|
uint num14 = y[2];
|
|
uint num15 = z[2];
|
|
num2 += num15;
|
|
num2 += num14;
|
|
num2 += num13;
|
|
z[2] = num2;
|
|
return num2;
|
|
}
|
|
|
|
// Token: 0x06009F28 RID: 40744 RVA: 0x0021A160 File Offset: 0x00218360
|
|
[Token(Token = "0x6009F28")]
|
|
[Address(RVA = "0x1F71DC0", Offset = "0x1F70BC0", VA = "0x181F71DC0")]
|
|
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];
|
|
uint num10 = z[2];
|
|
num += num9;
|
|
num += num10;
|
|
z[2] = num;
|
|
return num;
|
|
}
|
|
|
|
// Token: 0x06009F29 RID: 40745 RVA: 0x0021A220 File Offset: 0x00218420
|
|
[Token(Token = "0x6009F29")]
|
|
[Address(RVA = "0x1F71F60", Offset = "0x1F70D60", VA = "0x181F71F60")]
|
|
public static uint AddTo(uint[] x, int xOff, uint[] z, int zOff, uint cIn)
|
|
{
|
|
uint num = z[zOff];
|
|
uint num2 = x[xOff];
|
|
num += num2;
|
|
int num3 = xOff + 1;
|
|
z[0] = num;
|
|
uint num4 = x[num3];
|
|
int num5 = zOff + 1;
|
|
uint num6 = z[num5];
|
|
num6 += num;
|
|
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[num5];
|
|
num12 += num10;
|
|
num12 += num11;
|
|
z[0] = num12;
|
|
uint num13 = x[xOff];
|
|
uint num14 = z[zOff];
|
|
num14 += num12;
|
|
return num14 + num13;
|
|
}
|
|
|
|
// Token: 0x06009F2A RID: 40746 RVA: 0x0021A324 File Offset: 0x00218524
|
|
[Token(Token = "0x6009F2A")]
|
|
[Address(RVA = "0x1F71B50", Offset = "0x1F70950", VA = "0x181F71B50")]
|
|
public static uint AddToEachOther(uint[] u, int uOff, uint[] v, int vOff)
|
|
{
|
|
uint num = u[uOff];
|
|
uint num2 = v[vOff];
|
|
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[uOff];
|
|
uint num12 = u[num4];
|
|
num11 += num9;
|
|
num11 += num12;
|
|
u[0] = num11;
|
|
v[0] = num11;
|
|
return num11;
|
|
}
|
|
|
|
// Token: 0x06009F2B RID: 40747 RVA: 0x0021A430 File Offset: 0x00218630
|
|
[Token(Token = "0x6009F2B")]
|
|
[Address(RVA = "0x1F723A0", Offset = "0x1F711A0", VA = "0x181F723A0")]
|
|
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;
|
|
}
|
|
|
|
// Token: 0x06009F2C RID: 40748 RVA: 0x0021A498 File Offset: 0x00218698
|
|
[Token(Token = "0x6009F2C")]
|
|
[Address(RVA = "0x1F724E0", Offset = "0x1F712E0", VA = "0x181F724E0")]
|
|
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[xOff];
|
|
z[0] = num7;
|
|
}
|
|
|
|
// Token: 0x06009F2D RID: 40749 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x6009F2D")]
|
|
[Address(RVA = "0x1F726A0", Offset = "0x1F714A0", VA = "0x181F726A0")]
|
|
public static uint[] Create()
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06009F2E RID: 40750 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x6009F2E")]
|
|
[Address(RVA = "0x1F72660", Offset = "0x1F71460", VA = "0x181F72660")]
|
|
public static uint[] CreateExt()
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06009F2F RID: 40751 RVA: 0x0021A50C File Offset: 0x0021870C
|
|
[Token(Token = "0x6009F2F")]
|
|
[Address(RVA = "0x1F726E0", Offset = "0x1F714E0", VA = "0x181F726E0")]
|
|
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: 0x06009F30 RID: 40752 RVA: 0x0021A52C File Offset: 0x0021872C
|
|
[Token(Token = "0x6009F30")]
|
|
[Address(RVA = "0x1F727E0", Offset = "0x1F715E0", VA = "0x181F727E0")]
|
|
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: 0x06009F31 RID: 40753 RVA: 0x0021A550 File Offset: 0x00218750
|
|
[Token(Token = "0x6009F31")]
|
|
[Address(RVA = "0x1F72850", Offset = "0x1F71650", VA = "0x181F72850")]
|
|
public static uint[] FromBigInteger(BigInteger x)
|
|
{
|
|
int bitLength = x.BitLength;
|
|
uint[] array = new uint[5];
|
|
int num = 0;
|
|
if (x.sign != 0)
|
|
{
|
|
num++;
|
|
int intValue = x.IntValue;
|
|
array[0] = (uint)intValue;
|
|
BigInteger bigInteger = x.ShiftRight(32);
|
|
}
|
|
return array;
|
|
}
|
|
|
|
// Token: 0x06009F32 RID: 40754 RVA: 0x0021A59C File Offset: 0x0021879C
|
|
[Token(Token = "0x6009F32")]
|
|
[Address(RVA = "0x1F72980", Offset = "0x1F71780", VA = "0x181F72980")]
|
|
public static uint GetBit(uint[] x, int bit)
|
|
{
|
|
if (bit != 0)
|
|
{
|
|
if (bit <= 4)
|
|
{
|
|
return x[bit];
|
|
}
|
|
}
|
|
return x[0];
|
|
}
|
|
|
|
// Token: 0x06009F33 RID: 40755 RVA: 0x0021A5C8 File Offset: 0x002187C8
|
|
[Token(Token = "0x6009F33")]
|
|
[Address(RVA = "0x1F72A80", Offset = "0x1F71880", VA = "0x181F72A80")]
|
|
public static bool Gte(uint[] x, uint[] y)
|
|
{
|
|
uint num2;
|
|
uint num = y[(int)num2];
|
|
if (x[(int)num2] <= num)
|
|
{
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009F34 RID: 40756 RVA: 0x0021A5F0 File Offset: 0x002187F0
|
|
[Token(Token = "0x6009F34")]
|
|
[Address(RVA = "0x1F72A00", Offset = "0x1F71800", VA = "0x181F72A00")]
|
|
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: 0x06009F35 RID: 40757 RVA: 0x0021A614 File Offset: 0x00218814
|
|
[Token(Token = "0x6009F35")]
|
|
[Address(RVA = "0x1F72B00", Offset = "0x1F71900", VA = "0x181F72B00")]
|
|
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: 0x06009F36 RID: 40758 RVA: 0x0021A648 File Offset: 0x00218848
|
|
[Token(Token = "0x6009F36")]
|
|
[Address(RVA = "0x1F72B70", Offset = "0x1F71970", VA = "0x181F72B70")]
|
|
public static bool IsZero(uint[] x)
|
|
{
|
|
int num = 0;
|
|
if ("{il2cpp array field x->}" == (ulong)0L)
|
|
{
|
|
num++;
|
|
return true;
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009F37 RID: 40759 RVA: 0x0021A670 File Offset: 0x00218870
|
|
[Token(Token = "0x6009F37")]
|
|
[Address(RVA = "0x1F73A70", Offset = "0x1F72870", VA = "0x181F73A70")]
|
|
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 = x[0];
|
|
uint num7 = num6 * num;
|
|
zz[0] = num7;
|
|
uint num8 = num6 * num2;
|
|
num8 += num7;
|
|
zz[0] = num8;
|
|
num7 = num6;
|
|
uint num9 = num7 * num3;
|
|
num9 += num8;
|
|
zz[1] = num9;
|
|
num8 = num6;
|
|
uint num10 = num8 * num4;
|
|
num10 += num9;
|
|
uint num11 = num6 * num5;
|
|
zz[1] = num10;
|
|
num11 += num10;
|
|
zz[2] = num11;
|
|
zz[2] = num11;
|
|
uint num13;
|
|
uint num12 = x[(int)num13];
|
|
uint num14 = num13 + 1U;
|
|
uint num15 = zz[(int)num13];
|
|
num9 = num12;
|
|
uint num16 = num9 * num;
|
|
num16 += num15;
|
|
zz[0] = num16;
|
|
uint num17 = zz[(int)num14];
|
|
num15 = num12;
|
|
uint num18 = num15 * num2;
|
|
num17 += num18;
|
|
num17 += num16;
|
|
zz[0] = num17;
|
|
uint num19 = zz[(int)num16];
|
|
num18 = num12;
|
|
uint num20 = num18 * num3;
|
|
num19 += num20;
|
|
num19 += num17;
|
|
zz[0] = num19;
|
|
uint num21 = zz[(int)num17];
|
|
num20 = num12;
|
|
uint num22 = num20 * num4;
|
|
num21 += num22;
|
|
num21 += num19;
|
|
zz[0] = num21;
|
|
uint num23 = zz[(int)num17];
|
|
num13 += (uint)5;
|
|
uint num24 = num12 * num5;
|
|
num23 += num24;
|
|
num23 += num21;
|
|
zz[0] = num23;
|
|
num13 += (uint)1;
|
|
zz[0] = num23;
|
|
}
|
|
|
|
// Token: 0x06009F38 RID: 40760 RVA: 0x0021A82C File Offset: 0x00218A2C
|
|
[Token(Token = "0x6009F38")]
|
|
[Address(RVA = "0x1F73DF0", Offset = "0x1F72BF0", VA = "0x181F73DF0")]
|
|
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[yOff];
|
|
uint num7 = x[xOff];
|
|
uint num8 = num7 * num;
|
|
uint num9 = num7 * num3;
|
|
num9 += num8;
|
|
num8 = num7;
|
|
uint num10 = num8 * num4;
|
|
num10 += num9;
|
|
num9 = num7;
|
|
uint num11 = num9 * num5;
|
|
num11 += num10;
|
|
uint num12 = num7 * num6;
|
|
num12 += num11;
|
|
int num13 = xOff + 1;
|
|
uint num14 = x[num13];
|
|
num12 = num14;
|
|
uint num15 = num12 * num;
|
|
num15 += (uint)num13;
|
|
uint num16 = num14 * num3;
|
|
num16 = num14;
|
|
uint num17 = num16 * num5;
|
|
num15 += num17;
|
|
uint num18 = num14 * num6;
|
|
num17 += num18;
|
|
num17 += num15;
|
|
num13++;
|
|
num13 -= xOff;
|
|
}
|
|
|
|
// Token: 0x06009F39 RID: 40761 RVA: 0x0021A920 File Offset: 0x00218B20
|
|
[Token(Token = "0x6009F39")]
|
|
[Address(RVA = "0x1F73100", Offset = "0x1F71F00", VA = "0x181F73100")]
|
|
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];
|
|
int num6 = 0;
|
|
uint num7 = x[num6];
|
|
uint num8 = zz[num6];
|
|
uint num9 = num7 * num;
|
|
num9 += num8;
|
|
zz[0] = num9;
|
|
num8 = num7;
|
|
uint num10 = num8 * num2;
|
|
uint num11;
|
|
num11 += num10;
|
|
num11 += num9;
|
|
zz[0] = num11;
|
|
num10 = num7;
|
|
uint num12 = num10 * num3;
|
|
uint num13;
|
|
num13 += num12;
|
|
num13 += num11;
|
|
zz[0] = num13;
|
|
num12 = num7;
|
|
uint num14 = num12 * num4;
|
|
uint num15;
|
|
num15 += num14;
|
|
num15 += num13;
|
|
zz[0] = num15;
|
|
num6 += 5;
|
|
uint num16 = num7 * num5;
|
|
uint num17;
|
|
num17 += num16;
|
|
num17 += num15;
|
|
zz[0] = num17;
|
|
uint num18 = zz[num6];
|
|
num6++;
|
|
num6 += (int)num18;
|
|
num6 += (int)num17;
|
|
zz[0] = (uint)num6;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009F3A RID: 40762 RVA: 0x0021AA40 File Offset: 0x00218C40
|
|
[Token(Token = "0x6009F3A")]
|
|
[Address(RVA = "0x1F73370", Offset = "0x1F72170", VA = "0x181F73370")]
|
|
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)num3];
|
|
uint num6 = y[yOff];
|
|
int num7 = 0;
|
|
uint num8 = x[(int)num6];
|
|
uint num9 = num8 * num;
|
|
num9 += num6;
|
|
num6 = num8;
|
|
uint num10 = num6 * num4;
|
|
num9 += num10;
|
|
num10 = num8;
|
|
uint num11 = num10 * num5;
|
|
num9 += num8;
|
|
num7 += (int)num11;
|
|
num7 += (int)num9;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009F3B RID: 40763 RVA: 0x0021AAD8 File Offset: 0x00218CD8
|
|
[Token(Token = "0x6009F3B")]
|
|
[Address(RVA = "0x1F72BC0", Offset = "0x1F719C0", VA = "0x181F72BC0")]
|
|
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 = num13 * w;
|
|
num14 += num11;
|
|
uint num15;
|
|
num14 += num15;
|
|
num3 += num14;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009F3C RID: 40764 RVA: 0x0021ABA4 File Offset: 0x00218DA4
|
|
[Token(Token = "0x6009F3C")]
|
|
[Address(RVA = "0x1F73620", Offset = "0x1F72420", VA = "0x181F73620")]
|
|
public static uint MulWordAddExt(uint x, uint[] yy, int yyOff, uint[] zz, int zzOff)
|
|
{
|
|
uint num = yy[yyOff] * x;
|
|
uint num2;
|
|
num += num2;
|
|
int num3 = yyOff + 1;
|
|
zz[0] = num;
|
|
uint num4 = yy[num3] * x;
|
|
uint num5;
|
|
num5 += num4;
|
|
num5 += num;
|
|
zz[0] = num5;
|
|
uint num6 = yy[(int)num4] * x;
|
|
uint num7;
|
|
num7 += num6;
|
|
num7 += num5;
|
|
zz[0] = num7;
|
|
uint num8 = yy[(int)num6] * x;
|
|
uint num9;
|
|
num9 += num8;
|
|
num9 += num7;
|
|
zz[0] = num9;
|
|
uint num10 = yy[yyOff] * x;
|
|
uint num11;
|
|
num11 += num10;
|
|
num11 += num9;
|
|
zz[0] = num11;
|
|
return num11;
|
|
}
|
|
|
|
// Token: 0x06009F3D RID: 40765 RVA: 0x0021AC58 File Offset: 0x00218E58
|
|
[Token(Token = "0x6009F3D")]
|
|
[Address(RVA = "0x1F72E90", Offset = "0x1F71C90", VA = "0x181F72E90")]
|
|
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 && num7 == (uint)z.Length)
|
|
{
|
|
num7 += (uint)1;
|
|
num7 -= (uint)zOff;
|
|
uint num9;
|
|
return num9;
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009F3E RID: 40766 RVA: 0x0021AD04 File Offset: 0x00218F04
|
|
[Token(Token = "0x6009F3E")]
|
|
[Address(RVA = "0x1F73000", Offset = "0x1F71E00", VA = "0x181F73000")]
|
|
public static uint Mul33WordAdd(uint x, uint y, uint[] z, int zOff)
|
|
{
|
|
uint num = z[zOff];
|
|
int num2 = zOff + 1;
|
|
uint num3 = x * y;
|
|
num3 += num;
|
|
z[0] = num3;
|
|
uint num4 = z[num2];
|
|
num4 += y;
|
|
num3 += num4;
|
|
z[0] = num3;
|
|
uint num5 = z[zOff];
|
|
num5 += num3;
|
|
z[0] = num5;
|
|
ulong num6;
|
|
if (num6 != (ulong)num5 && num5 == (uint)z.Length)
|
|
{
|
|
num5 += (uint)1;
|
|
num5 -= (uint)zOff;
|
|
uint num7;
|
|
return num7;
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009F3F RID: 40767 RVA: 0x0021AD88 File Offset: 0x00218F88
|
|
[Token(Token = "0x6009F3F")]
|
|
[Address(RVA = "0x1F73810", Offset = "0x1F72610", VA = "0x181F73810")]
|
|
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 && num6 == (uint)z.Length)
|
|
{
|
|
num6 += (uint)1;
|
|
num6 -= (uint)zOff;
|
|
uint num8;
|
|
return num8;
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009F40 RID: 40768 RVA: 0x0021AE14 File Offset: 0x00219014
|
|
[Token(Token = "0x6009F40")]
|
|
[Address(RVA = "0x1F739B0", Offset = "0x1F727B0", VA = "0x181F739B0")]
|
|
public static uint MulWordsAdd(uint x, uint y, uint[] z, int zOff)
|
|
{
|
|
uint num = x * y;
|
|
uint num2 = z[zOff];
|
|
num += num2;
|
|
z[0] = num;
|
|
uint num3 = z[zOff];
|
|
num3 += num;
|
|
z[0] = num3;
|
|
ulong num4;
|
|
if (num4 != (ulong)num3 && num3 == (uint)z.Length)
|
|
{
|
|
num3 += (uint)1;
|
|
num3 -= (uint)zOff;
|
|
uint num5;
|
|
return num5;
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009F41 RID: 40769 RVA: 0x0021AE70 File Offset: 0x00219070
|
|
[Token(Token = "0x6009F41")]
|
|
[Address(RVA = "0x1F73920", Offset = "0x1F72720", VA = "0x181F73920")]
|
|
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: 0x06009F42 RID: 40770 RVA: 0x0021AE9C File Offset: 0x0021909C
|
|
[Token(Token = "0x6009F42")]
|
|
[Address(RVA = "0x1F741C0", Offset = "0x1F72FC0", VA = "0x181F741C0")]
|
|
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];
|
|
num4 = num9;
|
|
uint num11 = zz[2];
|
|
num8 = num4;
|
|
uint num12 = num4 * num;
|
|
num12 += num8;
|
|
num12 += num7;
|
|
num4 = num9;
|
|
uint num13 = num4 * num6;
|
|
zz[1] = num8;
|
|
num8 = num12;
|
|
num13 += num8;
|
|
num13 += num10;
|
|
num10 = num13;
|
|
num10 += num11;
|
|
uint num14 = x[1];
|
|
uint num15 = zz[2];
|
|
num10 += num15;
|
|
num7 = num14;
|
|
num15 = num13;
|
|
uint num16 = num7 * num;
|
|
uint num17 = zz[3];
|
|
num16 += num15;
|
|
zz[1] = num15;
|
|
num15 = num16;
|
|
uint num18 = num14 * num6;
|
|
uint num19 = num14 * num9;
|
|
num18 += num15;
|
|
num15 = num10;
|
|
num18 += num15;
|
|
num15 = num18;
|
|
num19 += num15;
|
|
num15 = num10;
|
|
num19 += num15;
|
|
num15 = num19;
|
|
num10 += num15;
|
|
num10 += num17;
|
|
uint num20 = x[2];
|
|
int length2 = zz.Length;
|
|
uint num21 = zz[3];
|
|
num12 = num10;
|
|
num12 += num21;
|
|
uint num22 = zz[4];
|
|
num10 = num20;
|
|
uint num23 = num10 * num;
|
|
num21 = num18;
|
|
num23 += num21;
|
|
zz[2] = num21;
|
|
num16 = num20;
|
|
uint num24 = num16 * num6;
|
|
uint num25 = num20 * num9;
|
|
uint num26 = num20 * num14;
|
|
num21 = num23;
|
|
num24 += num21;
|
|
num21 = num19;
|
|
num24 += num21;
|
|
num21 = num24;
|
|
num25 += num21;
|
|
num21 = num10;
|
|
num25 += num21;
|
|
num21 = num25;
|
|
num26 += num21;
|
|
num21 = num12;
|
|
num26 += num21;
|
|
num21 = num26;
|
|
num12 += num21;
|
|
num12 += num22;
|
|
zz[2] = num21;
|
|
zz[3] = num21;
|
|
zz[3] = num21;
|
|
zz[4] = num21;
|
|
num21 = num12;
|
|
num21 += num21;
|
|
zz[4] = num21;
|
|
}
|
|
|
|
// Token: 0x06009F43 RID: 40771 RVA: 0x0021B0F8 File Offset: 0x002192F8
|
|
[Token(Token = "0x6009F43")]
|
|
[Address(RVA = "0x1F746B0", Offset = "0x1F734B0", VA = "0x181F746B0")]
|
|
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[(int)num9];
|
|
num4 = num10;
|
|
uint num12 = num4 * num;
|
|
num11 = num3;
|
|
num12 += num11;
|
|
num12 += num8;
|
|
zz[0] = num8;
|
|
num8 = num12;
|
|
uint num13 = num10 * num6;
|
|
num13 += num8;
|
|
uint num14;
|
|
num13 += num14;
|
|
num3 = num13;
|
|
num3 += num11;
|
|
uint num15 = x[(int)num11];
|
|
int length3 = zz.Length;
|
|
uint num16 = zz[(int)num11];
|
|
num11 = num3;
|
|
num16 += num11;
|
|
uint num17 = zz[(int)num14];
|
|
uint num18 = num15 * num;
|
|
num17 = num13;
|
|
num18 += num17;
|
|
zz[0] = num17;
|
|
uint num19 = num15 * num10;
|
|
num17 = num18;
|
|
num15 += num17;
|
|
num17 = num3;
|
|
num15 += num17;
|
|
num17 = num15;
|
|
num19 += num17;
|
|
num17 = num16;
|
|
num19 += num17;
|
|
num17 = num19;
|
|
num16 += num17;
|
|
num16 += num17;
|
|
uint num20 = x[xOff];
|
|
int length4 = zz.Length;
|
|
uint num21 = zz[xOff];
|
|
num17 = num16;
|
|
num21 += num17;
|
|
uint num22 = zz[xOff];
|
|
uint num23 = num20 * num;
|
|
num22 = num15;
|
|
num23 += num22;
|
|
zz[0] = num22;
|
|
num18 = num20;
|
|
uint num24 = num20 * num10;
|
|
num22 = num23;
|
|
num18 += num22;
|
|
num18 += num19;
|
|
num19 = num18;
|
|
num24 += num19;
|
|
num19 = num16;
|
|
num24 += num19;
|
|
num19 = num24;
|
|
num20 += num19;
|
|
num19 = num21;
|
|
num20 += num19;
|
|
num19 = num20;
|
|
num21 += num19;
|
|
num21 += num22;
|
|
zz[2] = num22;
|
|
zz[3] = num22;
|
|
zz[3] = num22;
|
|
zz[0] = num22;
|
|
num22 = num21;
|
|
num22 += num22;
|
|
zz[0] = num22;
|
|
}
|
|
|
|
// Token: 0x06009F44 RID: 40772 RVA: 0x0021B340 File Offset: 0x00219540
|
|
[Token(Token = "0x6009F44")]
|
|
[Address(RVA = "0x1F75220", Offset = "0x1F74020", VA = "0x181F75220")]
|
|
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 = x[2];
|
|
uint num10 = y[2];
|
|
num2 -= num10;
|
|
num2 += num9;
|
|
z[2] = num2;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009F45 RID: 40773 RVA: 0x0021B400 File Offset: 0x00219600
|
|
[Token(Token = "0x6009F45")]
|
|
[Address(RVA = "0x1F75450", Offset = "0x1F74250", VA = "0x181F75450")]
|
|
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[yOff];
|
|
uint num12 = y[yOff];
|
|
num -= num12;
|
|
num += num11;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009F46 RID: 40774 RVA: 0x0021B4A8 File Offset: 0x002196A8
|
|
[Token(Token = "0x6009F46")]
|
|
[Address(RVA = "0x1F74C60", Offset = "0x1F73A60", VA = "0x181F74C60")]
|
|
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 = x[2];
|
|
uint num14 = y[2];
|
|
num2 -= num14;
|
|
uint num15 = z[2];
|
|
num2 -= num13;
|
|
num2 += num15;
|
|
z[2] = num2;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009F47 RID: 40775 RVA: 0x0021B5AC File Offset: 0x002197AC
|
|
[Token(Token = "0x6009F47")]
|
|
[Address(RVA = "0x1F75080", Offset = "0x1F73E80", VA = "0x181F75080")]
|
|
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;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009F48 RID: 40776 RVA: 0x0021B66C File Offset: 0x0021986C
|
|
[Token(Token = "0x6009F48")]
|
|
[Address(RVA = "0x1F74EB0", Offset = "0x1F73CB0", VA = "0x181F74EB0")]
|
|
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[xOff];
|
|
uint num12 = z[zOff];
|
|
num10 -= num11;
|
|
num12 += num10;
|
|
z[0] = num12;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009F49 RID: 40777 RVA: 0x0021B734 File Offset: 0x00219934
|
|
[Token(Token = "0x6009F49")]
|
|
[Address(RVA = "0x1F756D0", Offset = "0x1F744D0", VA = "0x181F756D0")]
|
|
public static BigInteger ToBigInteger(uint[] x)
|
|
{
|
|
byte[] array = new byte[20];
|
|
int num = 0;
|
|
uint num2 = x[num];
|
|
if (num2 != (uint)0)
|
|
{
|
|
Pack.UInt32_To_BE(num2, array, 16);
|
|
}
|
|
num++;
|
|
return new BigInteger(1, array);
|
|
}
|
|
|
|
// Token: 0x06009F4A RID: 40778 RVA: 0x0021B774 File Offset: 0x00219974
|
|
[Token(Token = "0x6009F4A")]
|
|
[Address(RVA = "0x1F757A0", Offset = "0x1F745A0", VA = "0x181F757A0")]
|
|
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;
|
|
}
|
|
|
|
// Token: 0x06009F4B RID: 40779 RVA: 0x0021B7B4 File Offset: 0x002199B4
|
|
[Token(Token = "0x6009F4B")]
|
|
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
|
protected Nat160()
|
|
{
|
|
}
|
|
|
|
// Token: 0x04006A56 RID: 27222
|
|
[Token(Token = "0x4006A56")]
|
|
private const ulong M = 4294967295UL;
|
|
}
|
|
}
|