1086 lines
27 KiB
C#
1086 lines
27 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw
|
|
{
|
|
// Token: 0x020013FE RID: 5118
|
|
[Token(Token = "0x20013FE")]
|
|
[StructLayout(3)]
|
|
internal abstract class Nat128
|
|
{
|
|
// Token: 0x0600831D RID: 33565 RVA: 0x001C1474 File Offset: 0x001BF674
|
|
[Token(Token = "0x600831D")]
|
|
[Address(RVA = "0x20B1000", Offset = "0x20AFA00", VA = "0x1820B1000")]
|
|
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 = x[1];
|
|
uint num8 = y[1];
|
|
num8 += num5;
|
|
num8 += num7;
|
|
z[1] = num8;
|
|
return num8;
|
|
}
|
|
|
|
// Token: 0x0600831E RID: 33566 RVA: 0x001C151C File Offset: 0x001BF71C
|
|
[Token(Token = "0x600831E")]
|
|
[Address(RVA = "0x20B0950", Offset = "0x20AF350", VA = "0x1820B0950")]
|
|
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 = y[0];
|
|
num2 += num4;
|
|
uint num5 = x[0];
|
|
num2 += num5;
|
|
uint num6 = z[0];
|
|
num2 += num6;
|
|
z[0] = num2;
|
|
uint num7 = z[1];
|
|
num2 += num7;
|
|
uint num8 = y[1];
|
|
num2 += num8;
|
|
uint num9 = x[1];
|
|
num2 += num9;
|
|
z[1] = num2;
|
|
uint num10 = x[1];
|
|
uint num11 = y[1];
|
|
uint num12 = z[1];
|
|
num2 += num11;
|
|
num2 += num10;
|
|
num2 += num12;
|
|
z[1] = num2;
|
|
return num2;
|
|
}
|
|
|
|
// Token: 0x0600831F RID: 33567 RVA: 0x001C15F0 File Offset: 0x001BF7F0
|
|
[Token(Token = "0x600831F")]
|
|
[Address(RVA = "0x20B0D30", Offset = "0x20AF730", VA = "0x1820B0D30")]
|
|
public static uint AddTo(uint[] x, uint[] z)
|
|
{
|
|
uint num = z[0];
|
|
uint num2 = x[0];
|
|
num += num2;
|
|
z[0] = num;
|
|
uint num3 = z[0];
|
|
num += num3;
|
|
uint num4 = x[0];
|
|
num += num4;
|
|
z[0] = num;
|
|
uint num5 = x[1];
|
|
num += num5;
|
|
uint num6 = z[1];
|
|
num += num6;
|
|
z[1] = num;
|
|
uint num7 = x[1];
|
|
uint num8 = z[1];
|
|
num += num8;
|
|
num += num7;
|
|
z[1] = num;
|
|
return num;
|
|
}
|
|
|
|
// Token: 0x06008320 RID: 33568 RVA: 0x001C168C File Offset: 0x001BF88C
|
|
[Token(Token = "0x6008320")]
|
|
[Address(RVA = "0x20B0E80", Offset = "0x20AF880", VA = "0x1820B0E80")]
|
|
public static uint AddTo(uint[] x, int xOff, uint[] z, int zOff, uint cIn)
|
|
{
|
|
uint num = x[xOff];
|
|
uint num2 = z[zOff];
|
|
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[xOff];
|
|
uint num10 = z[zOff];
|
|
num10 += num8;
|
|
num10 += num9;
|
|
z[0] = num10;
|
|
return num10;
|
|
}
|
|
|
|
// Token: 0x06008321 RID: 33569 RVA: 0x001C1740 File Offset: 0x001BF940
|
|
[Token(Token = "0x6008321")]
|
|
[Address(RVA = "0x20B0B30", Offset = "0x20AF530", VA = "0x1820B0B30")]
|
|
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[(int)num];
|
|
uint num8 = u[num3];
|
|
num7 += num5;
|
|
num7 += num8;
|
|
u[0] = num7;
|
|
v[0] = num7;
|
|
uint num9 = v[uOff];
|
|
uint num10 = u[(int)num5];
|
|
num9 += num7;
|
|
num9 += num10;
|
|
u[0] = num9;
|
|
v[0] = num9;
|
|
return num9;
|
|
}
|
|
|
|
// Token: 0x06008322 RID: 33570 RVA: 0x001C181C File Offset: 0x001BFA1C
|
|
[Token(Token = "0x6008322")]
|
|
[Address(RVA = "0x20B12F0", Offset = "0x20AFCF0", VA = "0x1820B12F0")]
|
|
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;
|
|
}
|
|
|
|
// Token: 0x06008323 RID: 33571 RVA: 0x001C1870 File Offset: 0x001BFA70
|
|
[Token(Token = "0x6008323")]
|
|
[Address(RVA = "0x20B13E0", Offset = "0x20AFDE0", VA = "0x1820B13E0")]
|
|
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[xOff];
|
|
z[0] = num6;
|
|
}
|
|
|
|
// Token: 0x06008324 RID: 33572 RVA: 0x001C18D0 File Offset: 0x001BFAD0
|
|
[Token(Token = "0x6008324")]
|
|
[Address(RVA = "0x20B11C0", Offset = "0x20AFBC0", VA = "0x1820B11C0")]
|
|
public static void Copy64(ulong[] x, ulong[] z)
|
|
{
|
|
ulong num = x[0];
|
|
z[0] = num;
|
|
ulong num2 = x[1];
|
|
z[1] = num2;
|
|
}
|
|
|
|
// Token: 0x06008325 RID: 33573 RVA: 0x001C1904 File Offset: 0x001BFB04
|
|
[Token(Token = "0x6008325")]
|
|
[Address(RVA = "0x20B1250", Offset = "0x20AFC50", VA = "0x1820B1250")]
|
|
public static void Copy64(ulong[] x, int xOff, ulong[] z, int zOff)
|
|
{
|
|
ulong num = x[xOff];
|
|
z[0] = num;
|
|
int num2 = xOff + 1;
|
|
ulong num3 = x[num2];
|
|
int num4 = zOff + 1;
|
|
z[0] = num3;
|
|
}
|
|
|
|
// Token: 0x06008326 RID: 33574 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x6008326")]
|
|
[Address(RVA = "0x20B15E0", Offset = "0x20AFFE0", VA = "0x1820B15E0")]
|
|
public static uint[] Create()
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06008327 RID: 33575 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x6008327")]
|
|
[Address(RVA = "0x20B1520", Offset = "0x20AFF20", VA = "0x1820B1520")]
|
|
public static ulong[] Create64()
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06008328 RID: 33576 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x6008328")]
|
|
[Address(RVA = "0x20B15A0", Offset = "0x20AFFA0", VA = "0x1820B15A0")]
|
|
public static uint[] CreateExt()
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06008329 RID: 33577 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x6008329")]
|
|
[Address(RVA = "0x20B1560", Offset = "0x20AFF60", VA = "0x1820B1560")]
|
|
public static ulong[] CreateExt64()
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x0600832A RID: 33578 RVA: 0x001C1940 File Offset: 0x001BFB40
|
|
[Token(Token = "0x600832A")]
|
|
[Address(RVA = "0x20B1620", Offset = "0x20B0020", VA = "0x1820B1620")]
|
|
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: 0x0600832B RID: 33579 RVA: 0x001C1960 File Offset: 0x001BFB60
|
|
[Token(Token = "0x600832B")]
|
|
[Address(RVA = "0x20B1790", Offset = "0x20B0190", VA = "0x1820B1790")]
|
|
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: 0x0600832C RID: 33580 RVA: 0x001C1984 File Offset: 0x001BFB84
|
|
[Token(Token = "0x600832C")]
|
|
[Address(RVA = "0x20B1720", Offset = "0x20B0120", VA = "0x1820B1720")]
|
|
public static bool Eq64(ulong[] x, ulong[] y)
|
|
{
|
|
uint num2;
|
|
ulong num = y[(int)num2];
|
|
if ("{il2cpp array field x->}" == num)
|
|
{
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600832D RID: 33581 RVA: 0x001C19A8 File Offset: 0x001BFBA8
|
|
[Token(Token = "0x600832D")]
|
|
[Address(RVA = "0x20B1930", Offset = "0x20B0330", VA = "0x1820B1930")]
|
|
public static uint[] FromBigInteger(BigInteger x)
|
|
{
|
|
int bitLength = x.BitLength;
|
|
uint[] array = new uint[4];
|
|
int num = 0;
|
|
if (x.sign != 0)
|
|
{
|
|
num++;
|
|
int intValue = x.IntValue;
|
|
array[0] = (uint)intValue;
|
|
BigInteger bigInteger = x.ShiftRight(32);
|
|
}
|
|
return array;
|
|
}
|
|
|
|
// Token: 0x0600832E RID: 33582 RVA: 0x001C19F4 File Offset: 0x001BFBF4
|
|
[Token(Token = "0x600832E")]
|
|
[Address(RVA = "0x20B1800", Offset = "0x20B0200", VA = "0x1820B1800")]
|
|
public static ulong[] FromBigInteger64(BigInteger x)
|
|
{
|
|
int bitLength = x.BitLength;
|
|
ulong[] array = new ulong[2];
|
|
int num = 0;
|
|
if (x.sign != 0)
|
|
{
|
|
num++;
|
|
long longValue = x.LongValue;
|
|
array[0] = (ulong)longValue;
|
|
BigInteger bigInteger = x.ShiftRight(64);
|
|
}
|
|
return array;
|
|
}
|
|
|
|
// Token: 0x0600832F RID: 33583 RVA: 0x001C1A40 File Offset: 0x001BFC40
|
|
[Token(Token = "0x600832F")]
|
|
[Address(RVA = "0x20B1A60", Offset = "0x20B0460", VA = "0x1820B1A60")]
|
|
public static uint GetBit(uint[] x, int bit)
|
|
{
|
|
if (bit != 0)
|
|
{
|
|
if (bit == 0)
|
|
{
|
|
return x[bit];
|
|
}
|
|
}
|
|
return x[0];
|
|
}
|
|
|
|
// Token: 0x06008330 RID: 33584 RVA: 0x001C1A6C File Offset: 0x001BFC6C
|
|
[Token(Token = "0x6008330")]
|
|
[Address(RVA = "0x20B1B60", Offset = "0x20B0560", VA = "0x1820B1B60")]
|
|
public static bool Gte(uint[] x, uint[] y)
|
|
{
|
|
uint num2;
|
|
uint num = y[(int)num2];
|
|
if (x[(int)num2] <= num)
|
|
{
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06008331 RID: 33585 RVA: 0x001C1A94 File Offset: 0x001BFC94
|
|
[Token(Token = "0x6008331")]
|
|
[Address(RVA = "0x20B1AE0", Offset = "0x20B04E0", VA = "0x1820B1AE0")]
|
|
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: 0x06008332 RID: 33586 RVA: 0x001C1AB8 File Offset: 0x001BFCB8
|
|
[Token(Token = "0x6008332")]
|
|
[Address(RVA = "0x20B1C50", Offset = "0x20B0650", VA = "0x1820B1C50")]
|
|
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: 0x06008333 RID: 33587 RVA: 0x001C1AEC File Offset: 0x001BFCEC
|
|
[Token(Token = "0x6008333")]
|
|
[Address(RVA = "0x20B1BE0", Offset = "0x20B05E0", VA = "0x1820B1BE0")]
|
|
public static bool IsOne64(ulong[] x)
|
|
{
|
|
int length = x.Length;
|
|
if ("{il2cpp array field x->}" == (ulong)1L && "{il2cpp array field x->}" == (ulong)0L)
|
|
{
|
|
return true;
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06008334 RID: 33588 RVA: 0x001C1B20 File Offset: 0x001BFD20
|
|
[Token(Token = "0x6008334")]
|
|
[Address(RVA = "0x20B1D10", Offset = "0x20B0710", VA = "0x1820B1D10")]
|
|
public static bool IsZero(uint[] x)
|
|
{
|
|
int num = 0;
|
|
if ("{il2cpp array field x->}" == (ulong)0L)
|
|
{
|
|
num++;
|
|
return true;
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06008335 RID: 33589 RVA: 0x001C1B48 File Offset: 0x001BFD48
|
|
[Token(Token = "0x6008335")]
|
|
[Address(RVA = "0x20B1CC0", Offset = "0x20B06C0", VA = "0x1820B1CC0")]
|
|
public static bool IsZero64(ulong[] x)
|
|
{
|
|
int num = 0;
|
|
if ("{il2cpp array field x->}" == (ulong)0L)
|
|
{
|
|
num++;
|
|
return true;
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06008336 RID: 33590 RVA: 0x001C1B70 File Offset: 0x001BFD70
|
|
[Token(Token = "0x6008336")]
|
|
[Address(RVA = "0x20B2D50", Offset = "0x20B1750", VA = "0x1820B2D50")]
|
|
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 = x[0];
|
|
uint num6 = num5 * num;
|
|
zz[0] = num6;
|
|
uint num7 = num5 * num2;
|
|
num7 += num6;
|
|
zz[0] = num7;
|
|
num6 = num5;
|
|
uint num8 = num6 * num3;
|
|
num8 += num7;
|
|
uint num9 = num5 * num4;
|
|
zz[1] = num8;
|
|
num9 += num8;
|
|
zz[1] = num9;
|
|
zz[2] = num9;
|
|
uint num11;
|
|
uint num10 = x[(int)num11];
|
|
uint num12 = num11 + 1U;
|
|
uint num13 = zz[(int)num11];
|
|
num8 = num10;
|
|
uint num14 = num8 * num;
|
|
num14 += num13;
|
|
zz[0] = num14;
|
|
uint num15 = zz[(int)num12];
|
|
num13 = num10;
|
|
uint num16 = num13 * num2;
|
|
num15 += num16;
|
|
num15 += num14;
|
|
zz[0] = num15;
|
|
uint num17 = zz[(int)num12];
|
|
num16 = num10;
|
|
uint num18 = num16 * num3;
|
|
num17 += num18;
|
|
num17 += num15;
|
|
zz[0] = num17;
|
|
uint num19 = zz[(int)num15];
|
|
num11 += (uint)4;
|
|
uint num20 = num10 * num4;
|
|
num19 += num20;
|
|
num19 += num17;
|
|
zz[0] = num19;
|
|
num11 += (uint)1;
|
|
zz[0] = num19;
|
|
}
|
|
|
|
// Token: 0x06008337 RID: 33591 RVA: 0x001C1CDC File Offset: 0x001BFEDC
|
|
[Token(Token = "0x6008337")]
|
|
[Address(RVA = "0x20B2A20", Offset = "0x20B1420", VA = "0x1820B2A20")]
|
|
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[yOff];
|
|
uint num6 = x[xOff];
|
|
uint num7 = num6 * num;
|
|
uint num8 = num6 * num3;
|
|
num8 += num7;
|
|
num7 = num6;
|
|
uint num9 = num7 * num4;
|
|
num9 += num8;
|
|
uint num10 = num6 * num5;
|
|
num10 += num9;
|
|
int num11 = xOff + 1;
|
|
uint num12 = x[num11];
|
|
num8 = num12;
|
|
uint num13 = num8 * num;
|
|
num13 += (uint)num11;
|
|
uint num14 = num12 * num3;
|
|
num14 = num12;
|
|
uint num15 = num14 * num4;
|
|
num13 += num15;
|
|
uint num16 = num12 * num5;
|
|
num15 += num16;
|
|
num15 += num13;
|
|
num11++;
|
|
num11 -= xOff;
|
|
}
|
|
|
|
// Token: 0x06008338 RID: 33592 RVA: 0x001C1DB4 File Offset: 0x001BFFB4
|
|
[Token(Token = "0x6008338")]
|
|
[Address(RVA = "0x20B21C0", Offset = "0x20B0BC0", VA = "0x1820B21C0")]
|
|
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];
|
|
int num5 = 0;
|
|
uint num6 = x[num5];
|
|
uint num7 = zz[num5];
|
|
uint num8 = num6 * num;
|
|
num8 += num7;
|
|
zz[0] = num8;
|
|
num7 = num6;
|
|
uint num9 = num7 * num2;
|
|
uint num10;
|
|
num10 += num9;
|
|
num10 += num8;
|
|
zz[0] = num10;
|
|
num9 = num6;
|
|
uint num11 = num9 * num3;
|
|
uint num12;
|
|
num12 += num11;
|
|
num12 += num10;
|
|
zz[0] = num12;
|
|
num5 += 4;
|
|
uint num13 = num6 * num4;
|
|
uint num14;
|
|
num14 += num13;
|
|
num14 += num12;
|
|
zz[0] = num14;
|
|
uint num15 = zz[num5];
|
|
num5++;
|
|
num5 += (int)num15;
|
|
num5 += (int)num14;
|
|
zz[0] = (uint)num5;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06008339 RID: 33593 RVA: 0x001C1EA8 File Offset: 0x001C00A8
|
|
[Token(Token = "0x6008339")]
|
|
[Address(RVA = "0x20B23E0", Offset = "0x20B0DE0", VA = "0x1820B23E0")]
|
|
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[num2];
|
|
uint num5 = y[yOff];
|
|
int num6 = 0;
|
|
uint num7 = x[(int)num5];
|
|
uint num8 = num7 * num;
|
|
num8 += num5;
|
|
num5 = num7;
|
|
uint num9 = num5 * num3;
|
|
num9 = num7;
|
|
uint num10 = num9 * num4;
|
|
num8 += num7;
|
|
num6 += (int)num10;
|
|
num6 += (int)num8;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600833A RID: 33594 RVA: 0x001C1F2C File Offset: 0x001C012C
|
|
[Token(Token = "0x600833A")]
|
|
[Address(RVA = "0x20B1D60", Offset = "0x20B0760", VA = "0x1820B1D60")]
|
|
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 = num10 * w;
|
|
num11 += num8;
|
|
uint num12;
|
|
num11 += num12;
|
|
num3 += num11;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600833B RID: 33595 RVA: 0x001C1FC8 File Offset: 0x001C01C8
|
|
[Token(Token = "0x600833B")]
|
|
[Address(RVA = "0x20B2630", Offset = "0x20B1030", VA = "0x1820B2630")]
|
|
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 = zz[yyOff];
|
|
num5 += num4;
|
|
num5 += num;
|
|
zz[0] = num5;
|
|
uint num6 = yy[(int)num4];
|
|
uint num7 = zz[(int)num];
|
|
uint num8 = num6 * x;
|
|
num7 += num8;
|
|
num7 += num5;
|
|
zz[0] = num7;
|
|
uint num9 = yy[yyOff] * x;
|
|
uint num10;
|
|
num10 += num9;
|
|
num10 += num7;
|
|
zz[0] = num10;
|
|
return num10;
|
|
}
|
|
|
|
// Token: 0x0600833C RID: 33596 RVA: 0x001C2070 File Offset: 0x001C0270
|
|
[Token(Token = "0x600833C")]
|
|
[Address(RVA = "0x20B1FC0", Offset = "0x20B09C0", VA = "0x1820B1FC0")]
|
|
public static uint Mul33DWordAdd(uint x, ulong y, uint[] z, int zOff)
|
|
{
|
|
uint num = z[zOff];
|
|
int num2 = zOff + 1;
|
|
ulong num3 = y * (ulong)x;
|
|
num3 += (ulong)num;
|
|
z[0] = (uint)num3;
|
|
uint num4 = z[num2];
|
|
ulong num5 = y * (ulong)x;
|
|
num5 += y;
|
|
num5 += (ulong)num4;
|
|
num3 += num5;
|
|
z[0] = (uint)num3;
|
|
uint num6 = z[(int)num5];
|
|
num6 = (uint)((ulong)num6 + y);
|
|
num3 += (ulong)num6;
|
|
z[0] = (uint)num3;
|
|
uint num7 = z[(int)num5];
|
|
num7 = (uint)((ulong)num7 + num3);
|
|
z[0] = num7;
|
|
return num7;
|
|
}
|
|
|
|
// Token: 0x0600833D RID: 33597 RVA: 0x001C2100 File Offset: 0x001C0300
|
|
[Token(Token = "0x600833D")]
|
|
[Address(RVA = "0x20B20C0", Offset = "0x20B0AC0", VA = "0x1820B20C0")]
|
|
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: 0x0600833E RID: 33598 RVA: 0x001C2184 File Offset: 0x001C0384
|
|
[Token(Token = "0x600833E")]
|
|
[Address(RVA = "0x20B27C0", Offset = "0x20B11C0", VA = "0x1820B27C0")]
|
|
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: 0x0600833F RID: 33599 RVA: 0x001C2210 File Offset: 0x001C0410
|
|
[Token(Token = "0x600833F")]
|
|
[Address(RVA = "0x20B2960", Offset = "0x20B1360", VA = "0x1820B2960")]
|
|
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: 0x06008340 RID: 33600 RVA: 0x001C226C File Offset: 0x001C046C
|
|
[Token(Token = "0x6008340")]
|
|
[Address(RVA = "0x20B28D0", Offset = "0x20B12D0", VA = "0x1820B28D0")]
|
|
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: 0x06008341 RID: 33601 RVA: 0x001C2298 File Offset: 0x001C0498
|
|
[Token(Token = "0x6008341")]
|
|
[Address(RVA = "0x20B3040", Offset = "0x20B1A40", VA = "0x1820B3040")]
|
|
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];
|
|
uint num11 = zz[2];
|
|
num8 = num4;
|
|
uint num12 = num9 * num;
|
|
num12 += num8;
|
|
num12 += num7;
|
|
num7 = num9;
|
|
uint num13 = num7 * num6;
|
|
zz[1] = num8;
|
|
num8 = num12;
|
|
num13 += num8;
|
|
num13 += num10;
|
|
num13 += num11;
|
|
uint num14 = x[1];
|
|
uint num15 = zz[2];
|
|
num13 += num15;
|
|
uint num16 = zz[3];
|
|
num4 = num14;
|
|
uint num17 = num4 * num;
|
|
num15 = num13;
|
|
num17 += num15;
|
|
num12 = num14;
|
|
zz[1] = num15;
|
|
num15 = num17;
|
|
uint num18 = num12 * num6;
|
|
uint num19 = num14 * num9;
|
|
num18 += num15;
|
|
num15 = num13;
|
|
num18 += num15;
|
|
num15 = num18;
|
|
num19 += num15;
|
|
num15 = num13;
|
|
num19 += num15;
|
|
num15 = num19;
|
|
num13 += num15;
|
|
num13 += num16;
|
|
zz[2] = num15;
|
|
zz[2] = num15;
|
|
zz[3] = num15;
|
|
num15 = num13;
|
|
num15 += num15;
|
|
zz[3] = num15;
|
|
}
|
|
|
|
// Token: 0x06008342 RID: 33602 RVA: 0x001C2430 File Offset: 0x001C0630
|
|
[Token(Token = "0x6008342")]
|
|
[Address(RVA = "0x20B3410", Offset = "0x20B1E10", VA = "0x1820B3410")]
|
|
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[0] = num4;
|
|
uint num6 = x[num5];
|
|
int length = zz.Length;
|
|
uint num7 = zz[zzOff];
|
|
int num8 = zzOff + 1;
|
|
num7 = num6;
|
|
uint num9 = num7 * num;
|
|
num3 += num9;
|
|
zz[0] = num4;
|
|
uint num10 = x[(int)num9];
|
|
int length2 = zz.Length;
|
|
uint num11 = num10 * num;
|
|
uint num12 = num3;
|
|
num11 += num12;
|
|
num11 += num7;
|
|
zz[0] = num7;
|
|
uint num13 = num10 * num6;
|
|
num7 = num11;
|
|
num13 += num7;
|
|
uint num14;
|
|
num13 += num14;
|
|
num14 = num13;
|
|
num14 += num12;
|
|
uint num15 = x[xOff];
|
|
int length3 = zz.Length;
|
|
uint num16 = zz[(int)num6];
|
|
num12 = num14;
|
|
num16 += num12;
|
|
uint num17 = zz[xOff];
|
|
num10 = num15;
|
|
uint num18 = num10 * num;
|
|
num17 = num13;
|
|
num18 += num17;
|
|
zz[0] = num17;
|
|
num17 = num18;
|
|
num15 += num17;
|
|
num17 = num14;
|
|
num15 += num17;
|
|
num17 = num15;
|
|
num15 += num17;
|
|
num17 = num16;
|
|
num15 += num17;
|
|
num17 = num15;
|
|
num16 += num17;
|
|
num16 += num17;
|
|
zz[2] = num17;
|
|
zz[2] = num17;
|
|
zz[3] = num17;
|
|
num17 = num16;
|
|
num17 += num17;
|
|
zz[0] = num17;
|
|
}
|
|
|
|
// Token: 0x06008343 RID: 33603 RVA: 0x001C25C8 File Offset: 0x001C07C8
|
|
[Token(Token = "0x6008343")]
|
|
[Address(RVA = "0x20B3F20", Offset = "0x20B2920", VA = "0x1820B3F20")]
|
|
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 = x[1];
|
|
uint num8 = y[1];
|
|
num2 -= num8;
|
|
num2 += num7;
|
|
z[1] = num2;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06008344 RID: 33604 RVA: 0x001C2664 File Offset: 0x001C0864
|
|
[Token(Token = "0x6008344")]
|
|
[Address(RVA = "0x20B3D10", Offset = "0x20B2710", VA = "0x1820B3D10")]
|
|
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[yOff];
|
|
uint num10 = y[yOff];
|
|
num -= num10;
|
|
num += num9;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06008345 RID: 33605 RVA: 0x001C26EC File Offset: 0x001C08EC
|
|
[Token(Token = "0x6008345")]
|
|
[Address(RVA = "0x20B3870", Offset = "0x20B2270", VA = "0x1820B3870")]
|
|
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 = x[1];
|
|
uint num11 = y[1];
|
|
num2 -= num11;
|
|
uint num12 = z[1];
|
|
num2 -= num10;
|
|
num2 += num12;
|
|
z[1] = num2;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06008346 RID: 33606 RVA: 0x001C27C0 File Offset: 0x001C09C0
|
|
[Token(Token = "0x6008346")]
|
|
[Address(RVA = "0x20B3A50", Offset = "0x20B2450", VA = "0x1820B3A50")]
|
|
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;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06008347 RID: 33607 RVA: 0x001C285C File Offset: 0x001C0A5C
|
|
[Token(Token = "0x6008347")]
|
|
[Address(RVA = "0x20B3BA0", Offset = "0x20B25A0", VA = "0x1820B3BA0")]
|
|
public static int SubFrom(uint[] x, int xOff, uint[] z, int zOff)
|
|
{
|
|
int num = zOff + 1;
|
|
uint num2 = z[zOff];
|
|
uint num3 = x[zOff];
|
|
num2 -= num3;
|
|
z[0] = num2;
|
|
int num4 = zOff + 1;
|
|
uint num5 = x[num4];
|
|
num2 -= num5;
|
|
uint num6 = z[num];
|
|
num2 += num6;
|
|
z[0] = num2;
|
|
uint num7 = x[(int)num6];
|
|
num2 -= num7;
|
|
uint num8 = z[num];
|
|
num2 += num8;
|
|
z[0] = num2;
|
|
uint num9 = x[zOff];
|
|
uint num10 = z[zOff];
|
|
num2 -= num9;
|
|
num10 += num2;
|
|
z[0] = num10;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06008348 RID: 33608 RVA: 0x001C2908 File Offset: 0x001C0B08
|
|
[Token(Token = "0x6008348")]
|
|
[Address(RVA = "0x20B41B0", Offset = "0x20B2BB0", VA = "0x1820B41B0")]
|
|
public static BigInteger ToBigInteger(uint[] x)
|
|
{
|
|
byte[] array = new byte[16];
|
|
int num = 0;
|
|
uint num2 = x[num];
|
|
if (num2 != (uint)0)
|
|
{
|
|
Pack.UInt32_To_BE(num2, array, 12);
|
|
}
|
|
num++;
|
|
return new BigInteger(1, array);
|
|
}
|
|
|
|
// Token: 0x06008349 RID: 33609 RVA: 0x001C2948 File Offset: 0x001C0B48
|
|
[Token(Token = "0x6008349")]
|
|
[Address(RVA = "0x20B40E0", Offset = "0x20B2AE0", VA = "0x1820B40E0")]
|
|
public static BigInteger ToBigInteger64(ulong[] x)
|
|
{
|
|
byte[] array = new byte[16];
|
|
int num = 0;
|
|
ulong num2 = x[num];
|
|
if (num2 != (ulong)0L)
|
|
{
|
|
Pack.UInt64_To_BE(num2, array, 8);
|
|
}
|
|
num++;
|
|
return new BigInteger(1, array);
|
|
}
|
|
|
|
// Token: 0x0600834A RID: 33610 RVA: 0x001C2988 File Offset: 0x001C0B88
|
|
[Token(Token = "0x600834A")]
|
|
[Address(RVA = "0x20B4280", Offset = "0x20B2C80", VA = "0x1820B4280")]
|
|
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;
|
|
}
|
|
|
|
// Token: 0x0600834B RID: 33611 RVA: 0x001C29C0 File Offset: 0x001C0BC0
|
|
[Token(Token = "0x600834B")]
|
|
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
|
protected Nat128()
|
|
{
|
|
}
|
|
|
|
// Token: 0x04005C12 RID: 23570
|
|
[Token(Token = "0x4005C12")]
|
|
private const ulong M = 4294967295UL;
|
|
}
|
|
}
|