1084 lines
27 KiB
C#
1084 lines
27 KiB
C#
using System;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw
|
|
{
|
|
// Token: 0x020019DB RID: 6619
|
|
[Token(Token = "0x20019DB")]
|
|
internal abstract class Nat128
|
|
{
|
|
// Token: 0x06009EF7 RID: 40695 RVA: 0x00218A28 File Offset: 0x00216C28
|
|
[Token(Token = "0x6009EF7")]
|
|
[Address(RVA = "0x1F6E600", Offset = "0x1F6D400", VA = "0x181F6E600")]
|
|
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: 0x06009EF8 RID: 40696 RVA: 0x00218AD0 File Offset: 0x00216CD0
|
|
[Token(Token = "0x6009EF8")]
|
|
[Address(RVA = "0x1F6DF50", Offset = "0x1F6CD50", VA = "0x181F6DF50")]
|
|
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: 0x06009EF9 RID: 40697 RVA: 0x00218BA4 File Offset: 0x00216DA4
|
|
[Token(Token = "0x6009EF9")]
|
|
[Address(RVA = "0x1F6E330", Offset = "0x1F6D130", VA = "0x181F6E330")]
|
|
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: 0x06009EFA RID: 40698 RVA: 0x00218C40 File Offset: 0x00216E40
|
|
[Token(Token = "0x6009EFA")]
|
|
[Address(RVA = "0x1F6E480", Offset = "0x1F6D280", VA = "0x181F6E480")]
|
|
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: 0x06009EFB RID: 40699 RVA: 0x00218CF4 File Offset: 0x00216EF4
|
|
[Token(Token = "0x6009EFB")]
|
|
[Address(RVA = "0x1F6E130", Offset = "0x1F6CF30", VA = "0x181F6E130")]
|
|
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: 0x06009EFC RID: 40700 RVA: 0x00218DD0 File Offset: 0x00216FD0
|
|
[Token(Token = "0x6009EFC")]
|
|
[Address(RVA = "0x1F6E8F0", Offset = "0x1F6D6F0", VA = "0x181F6E8F0")]
|
|
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: 0x06009EFD RID: 40701 RVA: 0x00218E24 File Offset: 0x00217024
|
|
[Token(Token = "0x6009EFD")]
|
|
[Address(RVA = "0x1F6E9E0", Offset = "0x1F6D7E0", VA = "0x181F6E9E0")]
|
|
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: 0x06009EFE RID: 40702 RVA: 0x00218E84 File Offset: 0x00217084
|
|
[Token(Token = "0x6009EFE")]
|
|
[Address(RVA = "0x1F6E7C0", Offset = "0x1F6D5C0", VA = "0x181F6E7C0")]
|
|
public static void Copy64(ulong[] x, ulong[] z)
|
|
{
|
|
ulong num = x[0];
|
|
z[0] = num;
|
|
ulong num2 = x[1];
|
|
z[1] = num2;
|
|
}
|
|
|
|
// Token: 0x06009EFF RID: 40703 RVA: 0x00218EB8 File Offset: 0x002170B8
|
|
[Token(Token = "0x6009EFF")]
|
|
[Address(RVA = "0x1F6E850", Offset = "0x1F6D650", VA = "0x181F6E850")]
|
|
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: 0x06009F00 RID: 40704 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x6009F00")]
|
|
[Address(RVA = "0x1F6EBE0", Offset = "0x1F6D9E0", VA = "0x181F6EBE0")]
|
|
public static uint[] Create()
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06009F01 RID: 40705 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x6009F01")]
|
|
[Address(RVA = "0x1F6EB20", Offset = "0x1F6D920", VA = "0x181F6EB20")]
|
|
public static ulong[] Create64()
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06009F02 RID: 40706 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x6009F02")]
|
|
[Address(RVA = "0x1F6EBA0", Offset = "0x1F6D9A0", VA = "0x181F6EBA0")]
|
|
public static uint[] CreateExt()
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06009F03 RID: 40707 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x6009F03")]
|
|
[Address(RVA = "0x1F6EB60", Offset = "0x1F6D960", VA = "0x181F6EB60")]
|
|
public static ulong[] CreateExt64()
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06009F04 RID: 40708 RVA: 0x00218EF4 File Offset: 0x002170F4
|
|
[Token(Token = "0x6009F04")]
|
|
[Address(RVA = "0x1F6EC20", Offset = "0x1F6DA20", VA = "0x181F6EC20")]
|
|
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: 0x06009F05 RID: 40709 RVA: 0x00218F14 File Offset: 0x00217114
|
|
[Token(Token = "0x6009F05")]
|
|
[Address(RVA = "0x1F6ED90", Offset = "0x1F6DB90", VA = "0x181F6ED90")]
|
|
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: 0x06009F06 RID: 40710 RVA: 0x00218F38 File Offset: 0x00217138
|
|
[Token(Token = "0x6009F06")]
|
|
[Address(RVA = "0x1F6ED20", Offset = "0x1F6DB20", VA = "0x181F6ED20")]
|
|
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: 0x06009F07 RID: 40711 RVA: 0x00218F5C File Offset: 0x0021715C
|
|
[Token(Token = "0x6009F07")]
|
|
[Address(RVA = "0x1F6EF30", Offset = "0x1F6DD30", VA = "0x181F6EF30")]
|
|
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: 0x06009F08 RID: 40712 RVA: 0x00218FA8 File Offset: 0x002171A8
|
|
[Token(Token = "0x6009F08")]
|
|
[Address(RVA = "0x1F6EE00", Offset = "0x1F6DC00", VA = "0x181F6EE00")]
|
|
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: 0x06009F09 RID: 40713 RVA: 0x00218FF4 File Offset: 0x002171F4
|
|
[Token(Token = "0x6009F09")]
|
|
[Address(RVA = "0x1F6F060", Offset = "0x1F6DE60", VA = "0x181F6F060")]
|
|
public static uint GetBit(uint[] x, int bit)
|
|
{
|
|
if (bit != 0)
|
|
{
|
|
if (bit == 0)
|
|
{
|
|
return x[bit];
|
|
}
|
|
}
|
|
return x[0];
|
|
}
|
|
|
|
// Token: 0x06009F0A RID: 40714 RVA: 0x00219020 File Offset: 0x00217220
|
|
[Token(Token = "0x6009F0A")]
|
|
[Address(RVA = "0x1F6F160", Offset = "0x1F6DF60", VA = "0x181F6F160")]
|
|
public static bool Gte(uint[] x, uint[] y)
|
|
{
|
|
uint num2;
|
|
uint num = y[(int)num2];
|
|
if (x[(int)num2] <= num)
|
|
{
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009F0B RID: 40715 RVA: 0x00219048 File Offset: 0x00217248
|
|
[Token(Token = "0x6009F0B")]
|
|
[Address(RVA = "0x1F6F0E0", Offset = "0x1F6DEE0", VA = "0x181F6F0E0")]
|
|
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: 0x06009F0C RID: 40716 RVA: 0x0021906C File Offset: 0x0021726C
|
|
[Token(Token = "0x6009F0C")]
|
|
[Address(RVA = "0x1F6F250", Offset = "0x1F6E050", VA = "0x181F6F250")]
|
|
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: 0x06009F0D RID: 40717 RVA: 0x002190A0 File Offset: 0x002172A0
|
|
[Token(Token = "0x6009F0D")]
|
|
[Address(RVA = "0x1F6F1E0", Offset = "0x1F6DFE0", VA = "0x181F6F1E0")]
|
|
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: 0x06009F0E RID: 40718 RVA: 0x002190D4 File Offset: 0x002172D4
|
|
[Token(Token = "0x6009F0E")]
|
|
[Address(RVA = "0x1F6F310", Offset = "0x1F6E110", VA = "0x181F6F310")]
|
|
public static bool IsZero(uint[] x)
|
|
{
|
|
int num = 0;
|
|
if ("{il2cpp array field x->}" == (ulong)0L)
|
|
{
|
|
num++;
|
|
return true;
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009F0F RID: 40719 RVA: 0x002190FC File Offset: 0x002172FC
|
|
[Token(Token = "0x6009F0F")]
|
|
[Address(RVA = "0x1F6F2C0", Offset = "0x1F6E0C0", VA = "0x181F6F2C0")]
|
|
public static bool IsZero64(ulong[] x)
|
|
{
|
|
int num = 0;
|
|
if ("{il2cpp array field x->}" == (ulong)0L)
|
|
{
|
|
num++;
|
|
return true;
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009F10 RID: 40720 RVA: 0x00219124 File Offset: 0x00217324
|
|
[Token(Token = "0x6009F10")]
|
|
[Address(RVA = "0x1F70350", Offset = "0x1F6F150", VA = "0x181F70350")]
|
|
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: 0x06009F11 RID: 40721 RVA: 0x00219290 File Offset: 0x00217490
|
|
[Token(Token = "0x6009F11")]
|
|
[Address(RVA = "0x1F70020", Offset = "0x1F6EE20", VA = "0x181F70020")]
|
|
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: 0x06009F12 RID: 40722 RVA: 0x00219368 File Offset: 0x00217568
|
|
[Token(Token = "0x6009F12")]
|
|
[Address(RVA = "0x1F6F7C0", Offset = "0x1F6E5C0", VA = "0x181F6F7C0")]
|
|
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: 0x06009F13 RID: 40723 RVA: 0x0021945C File Offset: 0x0021765C
|
|
[Token(Token = "0x6009F13")]
|
|
[Address(RVA = "0x1F6F9E0", Offset = "0x1F6E7E0", VA = "0x181F6F9E0")]
|
|
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: 0x06009F14 RID: 40724 RVA: 0x002194E0 File Offset: 0x002176E0
|
|
[Token(Token = "0x6009F14")]
|
|
[Address(RVA = "0x1F6F360", Offset = "0x1F6E160", VA = "0x181F6F360")]
|
|
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: 0x06009F15 RID: 40725 RVA: 0x0021957C File Offset: 0x0021777C
|
|
[Token(Token = "0x6009F15")]
|
|
[Address(RVA = "0x1F6FC30", Offset = "0x1F6EA30", VA = "0x181F6FC30")]
|
|
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: 0x06009F16 RID: 40726 RVA: 0x00219624 File Offset: 0x00217824
|
|
[Token(Token = "0x6009F16")]
|
|
[Address(RVA = "0x1F6F5C0", Offset = "0x1F6E3C0", VA = "0x181F6F5C0")]
|
|
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: 0x06009F17 RID: 40727 RVA: 0x002196B4 File Offset: 0x002178B4
|
|
[Token(Token = "0x6009F17")]
|
|
[Address(RVA = "0x1F6F6C0", Offset = "0x1F6E4C0", VA = "0x181F6F6C0")]
|
|
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: 0x06009F18 RID: 40728 RVA: 0x00219738 File Offset: 0x00217938
|
|
[Token(Token = "0x6009F18")]
|
|
[Address(RVA = "0x1F6FDC0", Offset = "0x1F6EBC0", VA = "0x181F6FDC0")]
|
|
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: 0x06009F19 RID: 40729 RVA: 0x002197C4 File Offset: 0x002179C4
|
|
[Token(Token = "0x6009F19")]
|
|
[Address(RVA = "0x1F6FF60", Offset = "0x1F6ED60", VA = "0x181F6FF60")]
|
|
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: 0x06009F1A RID: 40730 RVA: 0x00219820 File Offset: 0x00217A20
|
|
[Token(Token = "0x6009F1A")]
|
|
[Address(RVA = "0x1F6FED0", Offset = "0x1F6ECD0", VA = "0x181F6FED0")]
|
|
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: 0x06009F1B RID: 40731 RVA: 0x0021984C File Offset: 0x00217A4C
|
|
[Token(Token = "0x6009F1B")]
|
|
[Address(RVA = "0x1F70640", Offset = "0x1F6F440", VA = "0x181F70640")]
|
|
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: 0x06009F1C RID: 40732 RVA: 0x002199E4 File Offset: 0x00217BE4
|
|
[Token(Token = "0x6009F1C")]
|
|
[Address(RVA = "0x1F70A10", Offset = "0x1F6F810", VA = "0x181F70A10")]
|
|
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: 0x06009F1D RID: 40733 RVA: 0x00219B7C File Offset: 0x00217D7C
|
|
[Token(Token = "0x6009F1D")]
|
|
[Address(RVA = "0x1F71520", Offset = "0x1F70320", VA = "0x181F71520")]
|
|
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: 0x06009F1E RID: 40734 RVA: 0x00219C18 File Offset: 0x00217E18
|
|
[Token(Token = "0x6009F1E")]
|
|
[Address(RVA = "0x1F71310", Offset = "0x1F70110", VA = "0x181F71310")]
|
|
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: 0x06009F1F RID: 40735 RVA: 0x00219CA0 File Offset: 0x00217EA0
|
|
[Token(Token = "0x6009F1F")]
|
|
[Address(RVA = "0x1F70E70", Offset = "0x1F6FC70", VA = "0x181F70E70")]
|
|
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: 0x06009F20 RID: 40736 RVA: 0x00219D74 File Offset: 0x00217F74
|
|
[Token(Token = "0x6009F20")]
|
|
[Address(RVA = "0x1F71050", Offset = "0x1F6FE50", VA = "0x181F71050")]
|
|
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: 0x06009F21 RID: 40737 RVA: 0x00219E10 File Offset: 0x00218010
|
|
[Token(Token = "0x6009F21")]
|
|
[Address(RVA = "0x1F711A0", Offset = "0x1F6FFA0", VA = "0x181F711A0")]
|
|
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: 0x06009F22 RID: 40738 RVA: 0x00219EBC File Offset: 0x002180BC
|
|
[Token(Token = "0x6009F22")]
|
|
[Address(RVA = "0x1F717B0", Offset = "0x1F705B0", VA = "0x181F717B0")]
|
|
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: 0x06009F23 RID: 40739 RVA: 0x00219EFC File Offset: 0x002180FC
|
|
[Token(Token = "0x6009F23")]
|
|
[Address(RVA = "0x1F716E0", Offset = "0x1F704E0", VA = "0x181F716E0")]
|
|
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: 0x06009F24 RID: 40740 RVA: 0x00219F3C File Offset: 0x0021813C
|
|
[Token(Token = "0x6009F24")]
|
|
[Address(RVA = "0x1F71880", Offset = "0x1F70680", VA = "0x181F71880")]
|
|
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: 0x06009F25 RID: 40741 RVA: 0x00219F74 File Offset: 0x00218174
|
|
[Token(Token = "0x6009F25")]
|
|
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
|
protected Nat128()
|
|
{
|
|
}
|
|
|
|
// Token: 0x04006A55 RID: 27221
|
|
[Token(Token = "0x4006A55")]
|
|
private const ulong M = 4294967295UL;
|
|
}
|
|
}
|