This commit is contained in:
niko
2026-04-12 16:51:38 +02:00
parent 1b6f6d81d0
commit c12fbe3fc6
17828 changed files with 2994770 additions and 0 deletions
@@ -0,0 +1,119 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw
{
// Token: 0x02001AB8 RID: 6840
[Token(Token = "0x2001AB8")]
internal abstract class Interleave
{
// Token: 0x0600A252 RID: 41554 RVA: 0x0022004C File Offset: 0x0021E24C
[Token(Token = "0x600A252")]
[Address(RVA = "0x751FF0", Offset = "0x750FF0", VA = "0x180751FF0")]
internal static uint Expand8to16(uint x)
{
return x;
}
// Token: 0x0600A253 RID: 41555 RVA: 0x0022005C File Offset: 0x0021E25C
[Token(Token = "0x600A253")]
[Address(RVA = "0x751CE0", Offset = "0x750CE0", VA = "0x180751CE0")]
internal static uint Expand16to32(uint x)
{
return x;
}
// Token: 0x0600A254 RID: 41556 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A254")]
[Address(RVA = "0x751D20", Offset = "0x750D20", VA = "0x180751D20")]
internal static ulong Expand32to64(uint x)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A255 RID: 41557 RVA: 0x0022006C File Offset: 0x0021E26C
[Token(Token = "0x600A255")]
[Address(RVA = "0x751ED0", Offset = "0x750ED0", VA = "0x180751ED0")]
internal static void Expand64To128(ulong x, ulong[] z, int zOff)
{
z[0] = x;
z[0] = x;
}
// Token: 0x0600A256 RID: 41558 RVA: 0x00220090 File Offset: 0x0021E290
[Token(Token = "0x600A256")]
[Address(RVA = "0x751DB0", Offset = "0x750DB0", VA = "0x180751DB0")]
internal static void Expand64To128Rev(ulong x, ulong[] z, int zOff)
{
z[0] = x;
z[0] = x;
}
// Token: 0x0600A257 RID: 41559 RVA: 0x002200B4 File Offset: 0x0021E2B4
[Token(Token = "0x600A257")]
[Address(RVA = "0x752140", Offset = "0x751140", VA = "0x180752140")]
internal static uint Shuffle(uint x)
{
return x;
}
// Token: 0x0600A258 RID: 41560 RVA: 0x002200C4 File Offset: 0x0021E2C4
[Token(Token = "0x600A258")]
[Address(RVA = "0x752090", Offset = "0x751090", VA = "0x180752090")]
internal static ulong Shuffle(ulong x)
{
return (ulong)2459565876494606882L;
}
// Token: 0x0600A259 RID: 41561 RVA: 0x002200DC File Offset: 0x0021E2DC
[Token(Token = "0x600A259")]
[Address(RVA = "0x752020", Offset = "0x751020", VA = "0x180752020")]
internal static uint Shuffle2(uint x)
{
return x;
}
// Token: 0x0600A25A RID: 41562 RVA: 0x002200EC File Offset: 0x0021E2EC
[Token(Token = "0x600A25A")]
[Address(RVA = "0x7522D0", Offset = "0x7512D0", VA = "0x1807522D0")]
internal static uint Unshuffle(uint x)
{
return x;
}
// Token: 0x0600A25B RID: 41563 RVA: 0x002200FC File Offset: 0x0021E2FC
[Token(Token = "0x600A25B")]
[Address(RVA = "0x752220", Offset = "0x751220", VA = "0x180752220")]
internal static ulong Unshuffle(ulong x)
{
return x;
}
// Token: 0x0600A25C RID: 41564 RVA: 0x0022010C File Offset: 0x0021E30C
[Token(Token = "0x600A25C")]
[Address(RVA = "0x7521B0", Offset = "0x7511B0", VA = "0x1807521B0")]
internal static uint Unshuffle2(uint x)
{
return x;
}
// Token: 0x0600A25D RID: 41565 RVA: 0x0022011C File Offset: 0x0021E31C
[Token(Token = "0x600A25D")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
protected Interleave()
{
}
// Token: 0x04006C09 RID: 27657
[Token(Token = "0x4006C09")]
private const ulong M32 = 1431655765UL;
// Token: 0x04006C0A RID: 27658
[Token(Token = "0x4006C0A")]
private const ulong M64 = 6148914691236517205UL;
// Token: 0x04006C0B RID: 27659
[Token(Token = "0x4006C0B")]
private const ulong M64R = 12297829382473034410UL;
}
}
@@ -0,0 +1,196 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw
{
// Token: 0x02001AB9 RID: 6841
[Token(Token = "0x2001AB9")]
internal abstract class Mod
{
// Token: 0x0600A25E RID: 41566 RVA: 0x00220130 File Offset: 0x0021E330
[Token(Token = "0x600A25E")]
[Address(RVA = "0x752780", Offset = "0x751780", VA = "0x180752780")]
public static void Invert(uint[] p, uint[] x, uint[] z)
{
/*
An exception occurred when decompiling this method (0600A25E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw.Mod::Invert(System.UInt32[],System.UInt32[],System.UInt32[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_238:
stloc:ArgumentException(var_27_247, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("cannot be 0"), ldstr:string("x")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600A25F RID: 41567 RVA: 0x00220388 File Offset: 0x0021E588
[Token(Token = "0x600A25F")]
[Address(RVA = "0x752F10", Offset = "0x751F10", VA = "0x180752F10")]
public static uint[] Random(uint[] p)
{
uint[] array;
int num3;
uint num4;
do
{
int i = p.Length;
array = new uint[i];
int num = i - 1;
byte[] array2 = new byte[i];
int num2 = 0;
Pack.BE_To_UInt32(array2, num2, array);
num3 = i - 1;
while (i <= 0)
{
}
int length = array.Length;
num4 = p[num3];
}
while (array[num3] > num4);
return array;
}
// Token: 0x0600A260 RID: 41568 RVA: 0x002203E8 File Offset: 0x0021E5E8
[Token(Token = "0x600A260")]
[Address(RVA = "0x7524A0", Offset = "0x7514A0", VA = "0x1807524A0")]
public static void Add(uint[] p, uint[] x, uint[] y, uint[] z)
{
int length = p.Length;
if (Nat.Add(length, x, y, z) != (uint)0)
{
int num = Nat.SubFrom(length, p, z);
}
}
// Token: 0x0600A261 RID: 41569 RVA: 0x00220418 File Offset: 0x0021E618
[Token(Token = "0x600A261")]
[Address(RVA = "0x753100", Offset = "0x752100", VA = "0x180753100")]
public static void Subtract(uint[] p, uint[] x, uint[] y, uint[] z)
{
int length = p.Length;
int num = 0;
if (length > 0)
{
uint num2 = x[num];
num++;
uint num3 = y[num];
num2 -= num3;
num += (int)num2;
z[0] = (uint)num;
}
if (num != 0 && length > 0)
{
uint num4 = z[num];
num++;
uint num5 = p[num];
num += (int)num4;
num += (int)num5;
z[0] = (uint)num;
}
}
// Token: 0x0600A262 RID: 41570 RVA: 0x0022048C File Offset: 0x0021E68C
[Token(Token = "0x600A262")]
[Address(RVA = "0x752520", Offset = "0x751520", VA = "0x180752520")]
private static void InversionResult(uint[] p, int ac, uint[] a, uint[] z)
{
int length = p.Length;
int num = 0;
int num2 = 0;
Array.Copy(a, num2, z, num, length);
}
// Token: 0x0600A263 RID: 41571 RVA: 0x002204C0 File Offset: 0x0021E6C0
[Token(Token = "0x600A263")]
[Address(RVA = "0x752580", Offset = "0x751580", VA = "0x180752580")]
private static void InversionStep(uint[] p, uint[] u, int uLen, uint[] x, ref int xc)
{
int length = p.Length;
int num = 0;
uint num2 = u[0];
if (num2 == (uint)0)
{
int num3 = uLen - 1;
u[0] = (uint)num;
num += 32;
}
uint num5;
if (num2 == (uint)1)
{
num++;
while (num2 == (uint)1)
{
}
if (num > 0)
{
int num4 = uLen - 1;
num5 = u[num4];
u[0] = num5;
num += num;
}
}
if (num > 0)
{
if ("{il2cpp array field x->}" != (ulong)1L)
{
int num6 = Nat.SubFrom(length, p, x);
uint num7 = Nat.AddTo(length, p, x);
num7 += num5;
}
uint num8 = Nat.ShiftDownBit(length, x, (uint)num);
num++;
}
}
// Token: 0x0600A264 RID: 41572 RVA: 0x00220560 File Offset: 0x0021E760
[Token(Token = "0x600A264")]
[Address(RVA = "0x752500", Offset = "0x751500", VA = "0x180752500")]
private static int GetTrailingZeroes(uint x)
{
int num = 0;
if (x == (uint)1)
{
num++;
while (x == (uint)1)
{
}
}
return num;
}
// Token: 0x0600A265 RID: 41573 RVA: 0x00220580 File Offset: 0x0021E780
[Token(Token = "0x600A265")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
protected Mod()
{
}
// Token: 0x0600A266 RID: 41574 RVA: 0x00220594 File Offset: 0x0021E794
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A266")]
[Address(RVA = "0x753240", Offset = "0x752240", VA = "0x180753240")]
static Mod()
{
SecureRandom secureRandom = new SecureRandom();
}
// Token: 0x04006C0C RID: 27660
[Token(Token = "0x4006C0C")]
private static readonly SecureRandom RandomSource;
}
}
@@ -0,0 +1,1698 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw
{
// Token: 0x02001ABA RID: 6842
[Token(Token = "0x2001ABA")]
internal abstract class Nat
{
// Token: 0x0600A267 RID: 41575 RVA: 0x002205A8 File Offset: 0x0021E7A8
[Token(Token = "0x600A267")]
[Address(RVA = "0x760440", Offset = "0x75F440", VA = "0x180760440")]
public static uint Add(int len, uint[] x, uint[] y, uint[] z)
{
int num = 0;
if (len > 0)
{
uint num2 = y[num];
num++;
uint num3 = x[num];
num += (int)num2;
num += (int)num3;
z[0] = (uint)num;
}
throw new NullReferenceException();
}
// Token: 0x0600A268 RID: 41576 RVA: 0x002205E4 File Offset: 0x0021E7E4
[Token(Token = "0x600A268")]
[Address(RVA = "0x75F8A0", Offset = "0x75E8A0", VA = "0x18075F8A0")]
public static uint Add33At(int len, uint x, uint[] z, int zPos)
{
uint num = z[zPos];
z[0] = x;
uint num2 = z[zPos];
num2 += (uint)1;
z[0] = x;
ulong num3;
if (num3 == (ulong)x)
{
}
if (num3 < (ulong)len)
{
while (num3 != (ulong)z.Length)
{
}
num3 += (ulong)1L;
}
uint num4;
return num4;
}
// Token: 0x0600A269 RID: 41577 RVA: 0x00220638 File Offset: 0x0021E838
[Token(Token = "0x600A269")]
[Address(RVA = "0x75F960", Offset = "0x75E960", VA = "0x18075F960")]
public static uint Add33At(int len, uint x, uint[] z, int zOff, int zPos)
{
uint num;
num += x;
z[0] = num;
uint num2;
num2 += (uint)1;
num += num2;
z[0] = num;
ulong num3;
if (num3 == (ulong)num)
{
}
while (num != (uint)z.Length)
{
}
num += (uint)1;
uint num4;
return num4;
}
// Token: 0x0600A26A RID: 41578 RVA: 0x00220680 File Offset: 0x0021E880
[Token(Token = "0x600A26A")]
[Address(RVA = "0x75FA30", Offset = "0x75EA30", VA = "0x18075FA30")]
public static uint Add33To(int len, uint x, uint[] z)
{
uint num = z[0];
num += x;
z[0] = num;
uint num2 = z[0];
num2 += (uint)1;
num += num2;
z[0] = num;
ulong num3;
if (num3 == (ulong)num)
{
}
uint num4;
if (len > (int)num4)
{
while (num4 != (uint)z.Length)
{
}
num4 += (uint)1;
}
uint num5;
return num5;
}
// Token: 0x0600A26B RID: 41579 RVA: 0x002206E0 File Offset: 0x0021E8E0
[Token(Token = "0x600A26B")]
[Address(RVA = "0x75FAF0", Offset = "0x75EAF0", VA = "0x18075FAF0")]
public static uint Add33To(int len, uint x, uint[] z, int zOff)
{
uint num = z[zOff];
num += x;
z[0] = num;
uint num2 = z[zOff];
num2 += (uint)1;
num += num2;
z[0] = num;
ulong num3;
if (num3 == (ulong)num)
{
}
if (len > 2)
{
while (num != (uint)z.Length)
{
}
num += (uint)1;
num -= (uint)zOff;
}
uint num4;
return num4;
}
// Token: 0x0600A26C RID: 41580 RVA: 0x00220740 File Offset: 0x0021E940
[Token(Token = "0x600A26C")]
[Address(RVA = "0x75FBB0", Offset = "0x75EBB0", VA = "0x18075FBB0")]
public static uint AddBothTo(int len, uint[] x, uint[] y, uint[] z)
{
int num = 0;
if (len > 0)
{
uint num2 = y[num];
num++;
uint num3 = x[num];
num3 += num2;
uint num4 = z[num];
num += (int)num4;
num += (int)num3;
z[0] = (uint)num;
}
throw new NullReferenceException();
}
// Token: 0x0600A26D RID: 41581 RVA: 0x00220788 File Offset: 0x0021E988
[Token(Token = "0x600A26D")]
[Address(RVA = "0x75FC60", Offset = "0x75EC60", VA = "0x18075FC60")]
public static uint AddBothTo(int len, uint[] x, int xOff, uint[] y, int yOff, uint[] z, int zOff)
{
int num = 0;
if (len > 0)
{
uint num2 = x[x];
uint num3;
num2 += num3;
num += (int)num2;
}
throw new NullReferenceException();
}
// Token: 0x0600A26E RID: 41582 RVA: 0x002207B0 File Offset: 0x0021E9B0
[Token(Token = "0x600A26E")]
[Address(RVA = "0x75FD60", Offset = "0x75ED60", VA = "0x18075FD60")]
public static uint AddDWordAt(int len, ulong x, uint[] z, int zPos)
{
uint num = z[zPos];
z[0] = (uint)x;
uint num2 = z[zPos];
num2 = (uint)((ulong)num2 + x);
num2 = (uint)((ulong)num2 + x);
z[0] = num2;
ulong num3;
if (num3 == (ulong)num2)
{
}
if (num2 < (uint)len)
{
while (num2 != (uint)z.Length)
{
}
num2 += (uint)1;
}
uint num4;
return num4;
}
// Token: 0x0600A26F RID: 41583 RVA: 0x00220808 File Offset: 0x0021EA08
[Token(Token = "0x600A26F")]
[Address(RVA = "0x75FE20", Offset = "0x75EE20", VA = "0x18075FE20")]
public static uint AddDWordAt(int len, ulong x, uint[] z, int zOff, int zPos)
{
z[0] = (uint)x;
uint num = (uint)((ulong)num + x);
num = (uint)((ulong)num + x);
z[0] = num;
ulong num2;
if (num2 == (ulong)num)
{
}
while (num != (uint)z.Length)
{
}
num += (uint)1;
uint num3;
return num3;
}
// Token: 0x0600A270 RID: 41584 RVA: 0x0022084C File Offset: 0x0021EA4C
[Token(Token = "0x600A270")]
[Address(RVA = "0x75FFE0", Offset = "0x75EFE0", VA = "0x18075FFE0")]
public static uint AddDWordTo(int len, ulong x, uint[] z)
{
uint num = z[0];
z[0] = (uint)x;
uint num2 = z[0];
z[0] = (uint)x;
ulong num3;
if (num3 == x)
{
}
uint num4;
if (len > (int)num4)
{
while (num4 != (uint)z.Length)
{
}
num4 += (uint)1;
}
uint num5;
return num5;
}
// Token: 0x0600A271 RID: 41585 RVA: 0x002208A0 File Offset: 0x0021EAA0
[Token(Token = "0x600A271")]
[Address(RVA = "0x75FF10", Offset = "0x75EF10", VA = "0x18075FF10")]
public static uint AddDWordTo(int len, ulong x, uint[] z, int zOff)
{
uint num = z[zOff];
z[0] = (uint)x;
uint num2 = z[zOff];
num2 = (uint)((ulong)num2 + x);
num2 = (uint)((ulong)num2 + x);
z[0] = num2;
ulong num3;
if (num3 == (ulong)num2)
{
}
if (len > 2)
{
while (num2 != (uint)z.Length)
{
}
num2 += (uint)1;
num2 -= (uint)zOff;
}
uint num4;
return num4;
}
// Token: 0x0600A272 RID: 41586 RVA: 0x002208FC File Offset: 0x0021EAFC
[Token(Token = "0x600A272")]
[Address(RVA = "0x7600A0", Offset = "0x75F0A0", VA = "0x1807600A0")]
public static uint AddTo(int len, uint[] x, uint[] z)
{
int num = 0;
if (len > 0)
{
uint num2 = z[num];
num++;
uint num3 = x[num];
num += (int)num2;
num += (int)num3;
z[0] = (uint)num;
}
throw new NullReferenceException();
}
// Token: 0x0600A273 RID: 41587 RVA: 0x00220938 File Offset: 0x0021EB38
[Token(Token = "0x600A273")]
[Address(RVA = "0x760120", Offset = "0x75F120", VA = "0x180760120")]
public static uint AddTo(int len, uint[] x, int xOff, uint[] z, int zOff)
{
int num = 0;
if (len > 0)
{
uint num2 = x[len];
uint num3;
num += (int)num3;
num += (int)num2;
z[0] = (uint)num;
}
throw new NullReferenceException();
}
// Token: 0x0600A274 RID: 41588 RVA: 0x00220968 File Offset: 0x0021EB68
[Token(Token = "0x600A274")]
[Address(RVA = "0x760270", Offset = "0x75F270", VA = "0x180760270")]
public static uint AddWordAt(int len, uint x, uint[] z, int zPos)
{
uint num = z[zPos];
num += x;
z[0] = num;
ulong num2;
if (num2 == (ulong)num)
{
}
int num3 = zPos + 1;
if (num3 < len)
{
while (num3 != z.Length)
{
}
num3++;
}
uint num4;
return num4;
}
// Token: 0x0600A275 RID: 41589 RVA: 0x002209AC File Offset: 0x0021EBAC
[Token(Token = "0x600A275")]
[Address(RVA = "0x7601D0", Offset = "0x75F1D0", VA = "0x1807601D0")]
public static uint AddWordAt(int len, uint x, uint[] z, int zOff, int zPos)
{
uint num;
num += x;
z[0] = num;
ulong num2;
if (num2 == (ulong)num)
{
}
while (num != (uint)z.Length)
{
}
num += (uint)1;
uint num3;
return num3;
}
// Token: 0x0600A276 RID: 41590 RVA: 0x002209E0 File Offset: 0x0021EBE0
[Token(Token = "0x600A276")]
[Address(RVA = "0x760300", Offset = "0x75F300", VA = "0x180760300")]
public static uint AddWordTo(int len, uint x, uint[] z)
{
uint num = z[0];
num += x;
z[0] = num;
ulong num2;
if (num2 == (ulong)num)
{
}
uint num3;
if (len > (int)num3)
{
if (num3 != (uint)z.Length)
{
throw new NullReferenceException();
}
num3 += (uint)1;
}
return num3;
}
// Token: 0x0600A277 RID: 41591 RVA: 0x00220A24 File Offset: 0x0021EC24
[Token(Token = "0x600A277")]
[Address(RVA = "0x7603A0", Offset = "0x75F3A0", VA = "0x1807603A0")]
public static uint AddWordTo(int len, uint x, uint[] z, int zOff)
{
uint num = z[zOff];
num += x;
z[0] = num;
ulong num2;
if (num2 == (ulong)num)
{
}
if (len > 1)
{
int num3 = zOff + 1;
while (num3 != z.Length)
{
}
num3++;
num3 -= zOff;
}
uint num4;
return num4;
}
// Token: 0x0600A278 RID: 41592 RVA: 0x00220A6C File Offset: 0x0021EC6C
[Token(Token = "0x600A278")]
[Address(RVA = "0x7604F0", Offset = "0x75F4F0", VA = "0x1807604F0")]
public static uint CAdd(int len, int mask, uint[] x, uint[] y, uint[] z)
{
int num = 0;
if (len > 0)
{
num++;
uint num2 = x[num];
num += (int)num2;
num += mask;
}
throw new NullReferenceException();
}
// Token: 0x0600A279 RID: 41593 RVA: 0x00220A98 File Offset: 0x0021EC98
[Token(Token = "0x600A279")]
[Address(RVA = "0x7605B0", Offset = "0x75F5B0", VA = "0x1807605B0")]
public static void CMov(int len, int mask, uint[] x, int xOff, uint[] z, int zOff)
{
if (len > 0)
{
}
}
// Token: 0x0600A27A RID: 41594 RVA: 0x00220AB0 File Offset: 0x0021ECB0
[Token(Token = "0x600A27A")]
[Address(RVA = "0x7605B0", Offset = "0x75F5B0", VA = "0x1807605B0")]
public static void CMov(int len, int mask, int[] x, int xOff, int[] z, int zOff)
{
if (len > 0)
{
}
}
// Token: 0x0600A27B RID: 41595 RVA: 0x00220AC8 File Offset: 0x0021ECC8
[Token(Token = "0x600A27B")]
[Address(RVA = "0x7606A0", Offset = "0x75F6A0", VA = "0x1807606A0")]
public static void Copy(int len, uint[] x, uint[] z)
{
int num = 0;
int num2 = 0;
Array.Copy(x, num2, z, num, len);
}
// Token: 0x0600A27C RID: 41596 RVA: 0x00220AE4 File Offset: 0x0021ECE4
[Token(Token = "0x600A27C")]
[Address(RVA = "0x7606D0", Offset = "0x75F6D0", VA = "0x1807606D0")]
public static uint[] Copy(int len, uint[] x)
{
uint[] array = new uint[len];
int num = 0;
int num2 = 0;
Array.Copy(x, num2, array, num, len);
return array;
}
// Token: 0x0600A27D RID: 41597 RVA: 0x00220B08 File Offset: 0x0021ED08
[Token(Token = "0x600A27D")]
[Address(RVA = "0x760670", Offset = "0x75F670", VA = "0x180760670")]
public static void Copy(int len, uint[] x, int xOff, uint[] z, int zOff)
{
}
// Token: 0x0600A27E RID: 41598 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A27E")]
[Address(RVA = "0x760780", Offset = "0x75F780", VA = "0x180760780")]
public static uint[] Create(int len)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A27F RID: 41599 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A27F")]
[Address(RVA = "0x760740", Offset = "0x75F740", VA = "0x180760740")]
public static ulong[] Create64(int len)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A280 RID: 41600 RVA: 0x00220B18 File Offset: 0x0021ED18
[Token(Token = "0x600A280")]
[Address(RVA = "0x760890", Offset = "0x75F890", VA = "0x180760890")]
public static int Dec(int len, uint[] z)
{
int num = 0;
if (len > 0)
{
uint num2 = z[num];
z[0] = num2;
if (num2 != (uint)(-1))
{
return 0;
}
num++;
}
return -1;
}
// Token: 0x0600A281 RID: 41601 RVA: 0x00220B50 File Offset: 0x0021ED50
[Token(Token = "0x600A281")]
[Address(RVA = "0x7608F0", Offset = "0x75F8F0", VA = "0x1807608F0")]
public static int Dec(int len, uint[] x, uint[] z)
{
int num = 0;
if (num < len)
{
uint num2 = x[num];
num++;
z[0] = num2;
while (num2 == (uint)(-1))
{
}
if (num < len)
{
uint num3 = x[num];
num++;
z[0] = num3;
}
return 0;
}
return -1;
}
// Token: 0x0600A282 RID: 41602 RVA: 0x00220BA0 File Offset: 0x0021EDA0
[Token(Token = "0x600A282")]
[Address(RVA = "0x7607C0", Offset = "0x75F7C0", VA = "0x1807607C0")]
public static int DecAt(int len, uint[] z, int zPos)
{
if (zPos < len)
{
uint num = z[zPos];
z[0] = num;
if (num != (uint)(-1))
{
return 0;
}
}
return -1;
}
// Token: 0x0600A283 RID: 41603 RVA: 0x00220BD0 File Offset: 0x0021EDD0
[Token(Token = "0x600A283")]
[Address(RVA = "0x760820", Offset = "0x75F820", VA = "0x180760820")]
public static int DecAt(int len, uint[] z, int zOff, int zPos)
{
if (zPos < len)
{
uint num = z[zOff];
z[0] = num;
if (num == (uint)(-1))
{
num -= (uint)zOff;
}
}
return 0;
}
// Token: 0x0600A284 RID: 41604 RVA: 0x00220C04 File Offset: 0x0021EE04
[Token(Token = "0x600A284")]
[Address(RVA = "0x7609C0", Offset = "0x75F9C0", VA = "0x1807609C0")]
public static bool Eq(int len, uint[] x, uint[] y)
{
uint num = y[len];
if ("{il2cpp array field x->}" == num)
{
}
throw new NullReferenceException();
}
// Token: 0x0600A285 RID: 41605 RVA: 0x00220C28 File Offset: 0x0021EE28
[Token(Token = "0x600A285")]
[Address(RVA = "0x760A30", Offset = "0x75FA30", VA = "0x180760A30")]
public static uint[] FromBigInteger(int bits, BigInteger x)
{
int num = 0;
int bitLength = x.BitLength;
uint[] array = new uint[num];
int num2 = 0;
if (x.sign != 0)
{
num2++;
int intValue = x.IntValue;
array[0] = (uint)intValue;
BigInteger bigInteger = x.ShiftRight(32);
}
return array;
}
// Token: 0x0600A286 RID: 41606 RVA: 0x00220C78 File Offset: 0x0021EE78
[Token(Token = "0x600A286")]
[Address(RVA = "0x760B60", Offset = "0x75FB60", VA = "0x180760B60")]
public static uint GetBit(uint[] x, int bit)
{
if (bit != 0)
{
if (bit < x.Length)
{
return x[bit];
}
}
return x[0];
}
// Token: 0x0600A287 RID: 41607 RVA: 0x00220CAC File Offset: 0x0021EEAC
[Token(Token = "0x600A287")]
[Address(RVA = "0x760BE0", Offset = "0x75FBE0", VA = "0x180760BE0")]
public static bool Gte(int len, uint[] x, uint[] y)
{
uint num = y[len];
if (x[len] <= num)
{
}
throw new NullReferenceException();
}
// Token: 0x0600A288 RID: 41608 RVA: 0x00220CD4 File Offset: 0x0021EED4
[Token(Token = "0x600A288")]
[Address(RVA = "0x760DF0", Offset = "0x75FDF0", VA = "0x180760DF0")]
public static uint Inc(int len, uint[] z)
{
int num = 0;
if (len > 0)
{
if (num != z.Length)
{
throw new NullReferenceException();
}
num++;
}
uint num2;
return num2;
}
// Token: 0x0600A289 RID: 41609 RVA: 0x00220D00 File Offset: 0x0021EF00
[Token(Token = "0x600A289")]
[Address(RVA = "0x760D20", Offset = "0x75FD20", VA = "0x180760D20")]
public static uint Inc(int len, uint[] x, uint[] z)
{
int num = 0;
if (num < len)
{
uint num2 = x[num];
num2 += (uint)1;
num++;
z[0] = num2;
while (num2 == (uint)0)
{
}
if (num < len)
{
uint num3 = x[num];
num++;
z[0] = num3;
}
}
return (uint)1;
}
// Token: 0x0600A28A RID: 41610 RVA: 0x00220D54 File Offset: 0x0021EF54
[Token(Token = "0x600A28A")]
[Address(RVA = "0x760CC0", Offset = "0x75FCC0", VA = "0x180760CC0")]
public static uint IncAt(int len, uint[] z, int zPos)
{
if (zPos >= len || zPos == z.Length)
{
uint num;
return num;
}
throw new NullReferenceException();
}
// Token: 0x0600A28B RID: 41611 RVA: 0x00220D78 File Offset: 0x0021EF78
[Token(Token = "0x600A28B")]
[Address(RVA = "0x760C60", Offset = "0x75FC60", VA = "0x180760C60")]
public static uint IncAt(int len, uint[] z, int zOff, int zPos)
{
if (zPos < len)
{
}
uint num;
return num;
}
// Token: 0x0600A28C RID: 41612 RVA: 0x00220D94 File Offset: 0x0021EF94
[Token(Token = "0x600A28C")]
[Address(RVA = "0x760E50", Offset = "0x75FE50", VA = "0x180760E50")]
public static bool IsOne(int len, uint[] x)
{
int length = x.Length;
if ("{il2cpp array field x->}" == (ulong)1L && (len <= 1 || "{il2cpp array field x->}" == (ulong)0L))
{
return true;
}
throw new NullReferenceException();
}
// Token: 0x0600A28D RID: 41613 RVA: 0x00220DCC File Offset: 0x0021EFCC
[Token(Token = "0x600A28D")]
[Address(RVA = "0x760EC0", Offset = "0x75FEC0", VA = "0x180760EC0")]
public static bool IsZero(int len, uint[] x)
{
int length = x.Length;
if ("{il2cpp array field x->}" == (ulong)0L && (len <= 1 || "{il2cpp array field x->}" == (ulong)0L))
{
return true;
}
throw new NullReferenceException();
}
// Token: 0x0600A28E RID: 41614 RVA: 0x00220E04 File Offset: 0x0021F004
[Token(Token = "0x600A28E")]
[Address(RVA = "0x7618F0", Offset = "0x7608F0", VA = "0x1807618F0")]
public static void Mul(int len, uint[] x, uint[] y, uint[] zz)
{
uint num = x[0];
int num2 = 0;
uint num3 = y[num2] * num;
num2 += (int)num3;
zz[0] = (uint)num2;
zz[0] = (uint)num2;
uint num4;
if (len > (int)num4)
{
int num5 = 0;
uint num6 = x[(int)num4];
uint num7 = Nat.MulWordAddTo(len, num6, y, num5, zz, (int)num4);
num4 += (uint)1;
zz[0] = num7;
}
}
// Token: 0x0600A28F RID: 41615 RVA: 0x00220E6C File Offset: 0x0021F06C
[Token(Token = "0x600A28F")]
[Address(RVA = "0x761710", Offset = "0x760710", VA = "0x180761710")]
public static void Mul(int len, uint[] x, int xOff, uint[] y, int yOff, uint[] zz, int zzOff)
{
uint num;
if (len > (int)num)
{
int num2 = xOff + 1;
int num3 = 0;
uint num4 = x[len];
num3 += 0;
uint num6;
uint num5 = num6 * num4;
num3 += (int)num5;
num += (uint)1;
num2++;
}
}
// Token: 0x0600A290 RID: 41616 RVA: 0x00220EB0 File Offset: 0x0021F0B0
[Token(Token = "0x600A290")]
[Address(RVA = "0x761530", Offset = "0x760530", VA = "0x180761530")]
public static void Mul(uint[] x, int xOff, int xLen, uint[] y, int yOff, int yLen, uint[] zz, int zzOff)
{
int num = xOff + 1;
int num2 = 0;
uint num3 = x[num];
num2 += 0;
uint num5;
uint num4 = num5 * num3;
num2 += (int)num4;
uint num6;
num6 += (uint)1;
num++;
}
// Token: 0x0600A291 RID: 41617 RVA: 0x00220EEC File Offset: 0x0021F0EC
[Token(Token = "0x600A291")]
[Address(RVA = "0x761140", Offset = "0x760140", VA = "0x180761140")]
public static uint MulAddTo(int len, uint[] x, uint[] y, uint[] zz)
{
int num = 0;
if (len > 0)
{
int num2 = 0;
uint num3 = x[num];
num3 = Nat.MulWordAddTo(len, num3, y, num2, zz, num);
num++;
uint num4;
num4 += num3;
num += (int)num4;
zz[0] = (uint)num;
}
throw new NullReferenceException();
}
// Token: 0x0600A292 RID: 41618 RVA: 0x00220F30 File Offset: 0x0021F130
[Token(Token = "0x600A292")]
[Address(RVA = "0x761020", Offset = "0x760020", VA = "0x180761020")]
public static uint MulAddTo(int len, uint[] x, int xOff, uint[] y, int yOff, uint[] zz, int zzOff)
{
int num = 0;
if (len > 0)
{
uint num2 = x[xOff];
uint num3;
num2 = num3;
num3 += num2;
num += (int)num3;
}
throw new NullReferenceException();
}
// Token: 0x0600A293 RID: 41619 RVA: 0x00220F5C File Offset: 0x0021F15C
[Token(Token = "0x600A293")]
[Address(RVA = "0x760F30", Offset = "0x75FF30", VA = "0x180760F30")]
public static uint Mul31BothAdd(int len, uint a, uint[] x, uint b, uint[] y, uint[] z, int zOff)
{
int num = 0;
uint num2 = x[num];
int num3 = num * (int)b;
uint num4 = num2 * a;
num4 += (uint)num3;
num += num3;
num += (int)num4;
throw new NullReferenceException();
}
// Token: 0x0600A294 RID: 41620 RVA: 0x00220F8C File Offset: 0x0021F18C
[Token(Token = "0x600A294")]
[Address(RVA = "0x761400", Offset = "0x760400", VA = "0x180761400")]
public static uint MulWord(int len, uint x, uint[] y, uint[] z)
{
int num = 0;
uint num2 = y[num] * x;
num += (int)num2;
z[0] = (uint)num;
throw new NullReferenceException();
}
// Token: 0x0600A295 RID: 41621 RVA: 0x00220FB8 File Offset: 0x0021F1B8
[Token(Token = "0x600A295")]
[Address(RVA = "0x761480", Offset = "0x760480", VA = "0x180761480")]
public static uint MulWord(int len, uint x, uint[] y, int yOff, uint[] z, int zOff)
{
int num = 0;
uint num3;
uint num2 = num3 * x;
num += (int)num2;
throw new NullReferenceException();
}
// Token: 0x0600A296 RID: 41622 RVA: 0x00220FD4 File Offset: 0x0021F1D4
[Token(Token = "0x600A296")]
[Address(RVA = "0x761220", Offset = "0x760220", VA = "0x180761220")]
public static uint MulWordAddTo(int len, uint x, uint[] y, int yOff, uint[] z, int zOff)
{
int num = 0;
num += 0;
uint num3;
uint num2 = num3 * x;
num += (int)num2;
throw new NullReferenceException();
}
// Token: 0x0600A297 RID: 41623 RVA: 0x00220FF4 File Offset: 0x0021F1F4
[Token(Token = "0x600A297")]
[Address(RVA = "0x7612E0", Offset = "0x7602E0", VA = "0x1807612E0")]
public static uint MulWordDwordAddAt(int len, uint x, ulong y, uint[] z, int zPos)
{
ulong num = y * (ulong)x;
uint num2;
num += (ulong)num2;
z[0] = (uint)num;
uint num3 = z[(int)num2];
ulong num4 = y * (ulong)x;
num3 = (uint)((ulong)num3 + num4);
num3 = (uint)((ulong)num3 + num);
z[0] = num3;
uint num5;
num5 += num3;
z[0] = num5;
ulong num6;
if (num6 == (ulong)num5)
{
}
if (num5 < (uint)len)
{
while (num5 != (uint)z.Length)
{
}
num5 += (uint)1;
}
uint num7;
return num7;
}
// Token: 0x0600A298 RID: 41624 RVA: 0x00221064 File Offset: 0x0021F264
[Token(Token = "0x600A298")]
[Address(RVA = "0x761B70", Offset = "0x760B70", VA = "0x180761B70")]
public static uint ShiftDownBit(int len, uint[] z, uint c)
{
int num = len - 1;
uint num2 = z[num];
z[0] = num2;
return c;
}
// Token: 0x0600A299 RID: 41625 RVA: 0x0022108C File Offset: 0x0021F28C
[Token(Token = "0x600A299")]
[Address(RVA = "0x761A60", Offset = "0x760A60", VA = "0x180761A60")]
public static uint ShiftDownBit(int len, uint[] z, int zOff, uint c)
{
int num = len - 1;
uint num2 = z[zOff];
z[0] = num2;
return c;
}
// Token: 0x0600A29A RID: 41626 RVA: 0x002210B8 File Offset: 0x0021F2B8
[Token(Token = "0x600A29A")]
[Address(RVA = "0x761BD0", Offset = "0x760BD0", VA = "0x180761BD0")]
public static uint ShiftDownBit(int len, uint[] x, uint c, uint[] z)
{
int num = len - 1;
uint num2 = x[num];
z[0] = num2;
return c;
}
// Token: 0x0600A29B RID: 41627 RVA: 0x002210E0 File Offset: 0x0021F2E0
[Token(Token = "0x600A29B")]
[Address(RVA = "0x761AD0", Offset = "0x760AD0", VA = "0x180761AD0")]
public static uint ShiftDownBit(int len, uint[] x, int xOff, uint c, uint[] z, int zOff)
{
int num = len - 1;
return c;
}
// Token: 0x0600A29C RID: 41628 RVA: 0x002210F8 File Offset: 0x0021F2F8
[Token(Token = "0x600A29C")]
[Address(RVA = "0x761D00", Offset = "0x760D00", VA = "0x180761D00")]
public static uint ShiftDownBits(int len, uint[] z, int bits, uint c)
{
int num = len - 1;
uint num2 = z[num];
z[0] = num2;
return c;
}
// Token: 0x0600A29D RID: 41629 RVA: 0x00221124 File Offset: 0x0021F324
[Token(Token = "0x600A29D")]
[Address(RVA = "0x761C50", Offset = "0x760C50", VA = "0x180761C50")]
public static uint ShiftDownBits(int len, uint[] z, int zOff, int bits, uint c)
{
int num = len - 1;
uint num2 = z[zOff];
z[0] = num2;
return num2;
}
// Token: 0x0600A29E RID: 41630 RVA: 0x0022114C File Offset: 0x0021F34C
[Token(Token = "0x600A29E")]
[Address(RVA = "0x761DA0", Offset = "0x760DA0", VA = "0x180761DA0")]
public static uint ShiftDownBits(int len, uint[] x, int bits, uint c, uint[] z)
{
int num = len - 1;
return c;
}
// Token: 0x0600A29F RID: 41631 RVA: 0x00221164 File Offset: 0x0021F364
[Token(Token = "0x600A29F")]
[Address(RVA = "0x761E60", Offset = "0x760E60", VA = "0x180761E60")]
public static uint ShiftDownBits(int len, uint[] x, int xOff, int bits, uint c, uint[] z, int zOff)
{
int num = len - 1;
uint num2;
return num2;
}
// Token: 0x0600A2A0 RID: 41632 RVA: 0x0022117C File Offset: 0x0021F37C
[Token(Token = "0x600A2A0")]
[Address(RVA = "0x761F40", Offset = "0x760F40", VA = "0x180761F40")]
public static uint ShiftDownWord(int len, uint[] z, uint c)
{
int num = len - 1;
z[0] = c;
return c;
}
// Token: 0x0600A2A1 RID: 41633 RVA: 0x0022119C File Offset: 0x0021F39C
[Token(Token = "0x600A2A1")]
[Address(RVA = "0x762030", Offset = "0x761030", VA = "0x180762030")]
public static uint ShiftUpBit(int len, uint[] z, uint c)
{
int num = 0;
if (len > 0)
{
num++;
z[0] = c;
}
return c;
}
// Token: 0x0600A2A2 RID: 41634 RVA: 0x002211C4 File Offset: 0x0021F3C4
[Token(Token = "0x600A2A2")]
[Address(RVA = "0x762090", Offset = "0x761090", VA = "0x180762090")]
public static uint ShiftUpBit(int len, uint[] z, int zOff, uint c)
{
if (len > 0)
{
z[0] = c;
}
return c;
}
// Token: 0x0600A2A3 RID: 41635 RVA: 0x002211E4 File Offset: 0x0021F3E4
[Token(Token = "0x600A2A3")]
[Address(RVA = "0x762100", Offset = "0x761100", VA = "0x180762100")]
public static uint ShiftUpBit(int len, uint[] x, uint c, uint[] z)
{
int num = 0;
if (len > 0)
{
num++;
z[0] = c;
}
return c;
}
// Token: 0x0600A2A4 RID: 41636 RVA: 0x0022120C File Offset: 0x0021F40C
[Token(Token = "0x600A2A4")]
[Address(RVA = "0x762180", Offset = "0x761180", VA = "0x180762180")]
public static uint ShiftUpBit(int len, uint[] x, int xOff, uint c, uint[] z, int zOff)
{
if (len > 0)
{
}
return c;
}
// Token: 0x0600A2A5 RID: 41637 RVA: 0x00221224 File Offset: 0x0021F424
[Token(Token = "0x600A2A5")]
[Address(RVA = "0x761F90", Offset = "0x760F90", VA = "0x180761F90")]
public static ulong ShiftUpBit64(int len, ulong[] x, int xOff, ulong c, ulong[] z, int zOff)
{
if (len > 0)
{
}
return c;
}
// Token: 0x0600A2A6 RID: 41638 RVA: 0x0022123C File Offset: 0x0021F43C
[Token(Token = "0x600A2A6")]
[Address(RVA = "0x762650", Offset = "0x761650", VA = "0x180762650")]
public static uint ShiftUpBits(int len, uint[] z, int bits, uint c)
{
int num = 0;
if (len > 0)
{
num++;
z[0] = c;
}
return c;
}
// Token: 0x0600A2A7 RID: 41639 RVA: 0x00221264 File Offset: 0x0021F464
[Token(Token = "0x600A2A7")]
[Address(RVA = "0x762590", Offset = "0x761590", VA = "0x180762590")]
public static uint ShiftUpBits(int len, uint[] z, int zOff, int bits, uint c)
{
while (len <= 0)
{
}
return z[bits];
}
// Token: 0x0600A2A8 RID: 41640 RVA: 0x00221284 File Offset: 0x0021F484
[Token(Token = "0x600A2A8")]
[Address(RVA = "0x762310", Offset = "0x761310", VA = "0x180762310")]
public static ulong ShiftUpBits64(int len, ulong[] z, int zOff, int bits, ulong c)
{
while (len <= 0)
{
}
return z[bits];
}
// Token: 0x0600A2A9 RID: 41641 RVA: 0x002212A4 File Offset: 0x0021F4A4
[Token(Token = "0x600A2A9")]
[Address(RVA = "0x7624C0", Offset = "0x7614C0", VA = "0x1807624C0")]
public static uint ShiftUpBits(int len, uint[] x, int bits, uint c, uint[] z)
{
int num = 0;
if (len > 0)
{
num++;
}
return c;
}
// Token: 0x0600A2AA RID: 41642 RVA: 0x002212C4 File Offset: 0x0021F4C4
[Token(Token = "0x600A2AA")]
[Address(RVA = "0x7623D0", Offset = "0x7613D0", VA = "0x1807623D0")]
public static uint ShiftUpBits(int len, uint[] x, int xOff, int bits, uint c, uint[] z, int zOff)
{
if (len > 0)
{
}
uint num;
return num;
}
// Token: 0x0600A2AB RID: 41643 RVA: 0x002212DC File Offset: 0x0021F4DC
[Token(Token = "0x600A2AB")]
[Address(RVA = "0x762220", Offset = "0x761220", VA = "0x180762220")]
public static ulong ShiftUpBits64(int len, ulong[] x, int xOff, int bits, ulong c, ulong[] z, int zOff)
{
if (len > 0)
{
}
ulong num;
return num;
}
// Token: 0x0600A2AC RID: 41644 RVA: 0x002212F4 File Offset: 0x0021F4F4
[Token(Token = "0x600A2AC")]
[Address(RVA = "0x762890", Offset = "0x761890", VA = "0x180762890")]
public static void Square(int len, uint[] x, uint[] zz)
{
int num = 0;
uint num2 = x[len];
uint num3 = num2 * num2;
zz[0] = num3;
zz[0] = num3;
uint num4;
if (len > (int)num4)
{
uint num5 = x[(int)num4];
uint num6 = x[num];
uint num7;
num += (int)num7;
uint num8 = num6 * num5;
num += (int)num8;
zz[0] = (uint)num;
uint num9 = zz[(int)num8];
num9 += (uint)num;
zz[0] = num9;
ulong num10;
if (num10 != (ulong)num9)
{
uint num11 = num8 + 1U;
if (num11 == (uint)zz.Length)
{
num11 += (uint)1;
}
}
num4 += (uint)1;
}
uint num12 = x[0];
num++;
zz[0] = num12;
}
// Token: 0x0600A2AD RID: 41645 RVA: 0x002213AC File Offset: 0x0021F5AC
[Token(Token = "0x600A2AD")]
[Address(RVA = "0x762B00", Offset = "0x761B00", VA = "0x180762B00")]
public static void Square(int len, uint[] x, int xOff, uint[] zz, int zzOff)
{
int num = xOff - 1;
uint num3;
uint num2 = num3 * num3;
zz[0] = num2;
zz[0] = num2;
uint num4;
if (len > (int)num4)
{
int num5 = 0;
uint num6 = x[(int)num2];
num2 += (uint)1;
uint num7 = zz[(int)num2];
num5 += (int)num7;
uint num9;
uint num8 = num9 * num6;
num5 += (int)num8;
zz[0] = (uint)num5;
uint num10;
num10 += (uint)num5;
zz[0] = num10;
ulong num11;
if (num11 != (ulong)num10)
{
num2 += (uint)1;
if (num11 == (ulong)zz.Length)
{
num2 += (uint)1;
num11 += (ulong)1L;
}
}
num4 += (uint)1;
}
uint num12 = x[xOff];
zz[0] = num12;
}
// Token: 0x0600A2AE RID: 41646 RVA: 0x0022145C File Offset: 0x0021F65C
[Token(Token = "0x600A2AE")]
[Address(RVA = "0x7626F0", Offset = "0x7616F0", VA = "0x1807626F0")]
public static uint SquareWordAdd(uint[] x, int xPos, uint[] z)
{
int num = 0;
uint num2 = x[xPos];
uint num3 = x[num];
uint num4;
num += (int)num4;
uint num5 = num3 * num2;
num += (int)num5;
z[0] = (uint)num;
throw new NullReferenceException();
}
// Token: 0x0600A2AF RID: 41647 RVA: 0x00221498 File Offset: 0x0021F698
[Token(Token = "0x600A2AF")]
[Address(RVA = "0x7627B0", Offset = "0x7617B0", VA = "0x1807627B0")]
public static uint SquareWordAdd(uint[] x, int xOff, int xPos, uint[] z, int zOff)
{
int num = 0;
uint num2;
num += (int)num2;
uint num4;
uint num5;
uint num3 = num4 * num5;
num += (int)num3;
z[0] = (uint)num;
throw new NullReferenceException();
}
// Token: 0x0600A2B0 RID: 41648 RVA: 0x002214C4 File Offset: 0x0021F6C4
[Token(Token = "0x600A2B0")]
[Address(RVA = "0x763A00", Offset = "0x762A00", VA = "0x180763A00")]
public static int Sub(int len, uint[] x, uint[] y, uint[] z)
{
int num = 0;
if (len > 0)
{
uint num2 = x[num];
num++;
uint num3 = y[num];
num2 -= num3;
num += (int)num2;
z[0] = (uint)num;
}
return num;
}
// Token: 0x0600A2B1 RID: 41649 RVA: 0x00221504 File Offset: 0x0021F704
[Token(Token = "0x600A2B1")]
[Address(RVA = "0x763AB0", Offset = "0x762AB0", VA = "0x180763AB0")]
public static int Sub(int len, uint[] x, int xOff, uint[] y, int yOff, uint[] z, int zOff)
{
int num = 0;
if (len > 0)
{
uint num2 = x[len];
uint num3;
num2 -= num3;
num += (int)num2;
}
return num;
}
// Token: 0x0600A2B2 RID: 41650 RVA: 0x00221530 File Offset: 0x0021F730
[Token(Token = "0x600A2B2")]
[Address(RVA = "0x762DA0", Offset = "0x761DA0", VA = "0x180762DA0")]
public static int Sub33At(int len, uint x, uint[] z, int zPos)
{
uint num = z[zPos];
num -= x;
z[0] = num;
uint num2 = z[zPos];
num += num2;
z[0] = num;
ulong num3;
if (num3 == (ulong)num)
{
return 0;
}
if (num3 < (ulong)len)
{
uint num4 = z[(int)num3];
z[0] = num4;
while (num4 != (uint)(-1))
{
}
num3 += (ulong)1L;
}
throw new NullReferenceException();
}
// Token: 0x0600A2B3 RID: 41651 RVA: 0x00221590 File Offset: 0x0021F790
[Token(Token = "0x600A2B3")]
[Address(RVA = "0x762E70", Offset = "0x761E70", VA = "0x180762E70")]
public static int Sub33At(int len, uint x, uint[] z, int zOff, int zPos)
{
uint num;
num -= x;
z[0] = num;
uint num2;
num += num2;
z[0] = num;
ulong num3;
if (num3 == (ulong)num)
{
return 0;
}
uint num4 = z[(int)num];
z[0] = num4;
while (num4 != (uint)(-1))
{
}
num += (uint)1;
throw new NullReferenceException();
}
// Token: 0x0600A2B4 RID: 41652 RVA: 0x002215DC File Offset: 0x0021F7DC
[Token(Token = "0x600A2B4")]
[Address(RVA = "0x763030", Offset = "0x762030", VA = "0x180763030")]
public static int Sub33From(int len, uint x, uint[] z)
{
uint num = z[0];
num -= x;
z[0] = num;
uint num2 = z[0];
num += num2;
z[0] = num;
ulong num3;
if (num3 == (ulong)num)
{
return 0;
}
uint num4;
if (len > (int)num4)
{
uint num5 = z[(int)num4];
z[0] = num5;
while (num5 != (uint)(-1))
{
}
num4 += (uint)1;
}
throw new NullReferenceException();
}
// Token: 0x0600A2B5 RID: 41653 RVA: 0x00221640 File Offset: 0x0021F840
[Token(Token = "0x600A2B5")]
[Address(RVA = "0x762F50", Offset = "0x761F50", VA = "0x180762F50")]
public static int Sub33From(int len, uint x, uint[] z, int zOff)
{
uint num = z[zOff];
num -= x;
z[0] = num;
uint num2 = z[zOff];
num += num2;
z[0] = num;
ulong num3;
if (num3 == (ulong)num)
{
return 0;
}
if (len > 2)
{
uint num4 = z[(int)num3];
z[0] = num4;
while (num4 != (uint)(-1))
{
}
num3 += (ulong)1L;
num3 -= (ulong)zOff;
}
throw new NullReferenceException();
}
// Token: 0x0600A2B6 RID: 41654 RVA: 0x002216A4 File Offset: 0x0021F8A4
[Token(Token = "0x600A2B6")]
[Address(RVA = "0x763100", Offset = "0x762100", VA = "0x180763100")]
public static int SubBothFrom(int len, uint[] x, uint[] y, uint[] z)
{
int num = 0;
if (len > 0)
{
uint num2 = x[num];
num++;
uint num3 = z[num];
num3 -= num2;
uint num4 = y[num];
num3 -= num4;
num += (int)num3;
z[0] = (uint)num;
}
return num;
}
// Token: 0x0600A2B7 RID: 41655 RVA: 0x002216F0 File Offset: 0x0021F8F0
[Token(Token = "0x600A2B7")]
[Address(RVA = "0x7631B0", Offset = "0x7621B0", VA = "0x1807631B0")]
public static int SubBothFrom(int len, uint[] x, int xOff, uint[] y, int yOff, uint[] z, int zOff)
{
int num = 0;
if (len > 0)
{
uint num2 = y[len];
uint num3 = x[len];
num += xOff;
}
return num;
}
// Token: 0x0600A2B8 RID: 41656 RVA: 0x00221720 File Offset: 0x0021F920
[Token(Token = "0x600A2B8")]
[Address(RVA = "0x7633B0", Offset = "0x7623B0", VA = "0x1807633B0")]
public static int SubDWordAt(int len, ulong x, uint[] z, int zPos)
{
uint num = z[zPos];
num = (uint)((ulong)num - x);
z[0] = num;
uint num2 = z[zPos];
num2 = (uint)((ulong)num2 - x);
num2 += num;
z[0] = num2;
ulong num3;
if (num3 == (ulong)num2)
{
return 0;
}
if (num2 < (uint)len)
{
uint num4 = z[(int)num2];
z[0] = num4;
while (num4 != (uint)(-1))
{
}
num2 += (uint)1;
}
throw new NullReferenceException();
}
// Token: 0x0600A2B9 RID: 41657 RVA: 0x00221784 File Offset: 0x0021F984
[Token(Token = "0x600A2B9")]
[Address(RVA = "0x7632B0", Offset = "0x7622B0", VA = "0x1807632B0")]
public static int SubDWordAt(int len, ulong x, uint[] z, int zOff, int zPos)
{
uint num = (uint)((ulong)num - x);
z[0] = num;
uint num2 = (uint)((ulong)num2 - x);
num2 += num;
z[0] = num2;
ulong num3;
if (num3 == (ulong)num2)
{
return 0;
}
uint num4 = z[(int)num2];
z[0] = num4;
while (num4 != (uint)(-1))
{
}
num2 += (uint)1;
throw new NullReferenceException();
}
// Token: 0x0600A2BA RID: 41658 RVA: 0x002217D4 File Offset: 0x0021F9D4
[Token(Token = "0x600A2BA")]
[Address(RVA = "0x763570", Offset = "0x762570", VA = "0x180763570")]
public static int SubDWordFrom(int len, ulong x, uint[] z)
{
uint num = z[0];
num = (uint)((ulong)num - x);
z[0] = num;
uint num2 = z[0];
num = (uint)((ulong)num - x);
num += num2;
z[0] = num;
ulong num3;
if (num3 == (ulong)num)
{
return 0;
}
uint num4;
if (len > (int)num4)
{
uint num5 = z[(int)num4];
z[0] = num5;
while (num5 != (uint)(-1))
{
}
num4 += (uint)1;
}
throw new NullReferenceException();
}
// Token: 0x0600A2BB RID: 41659 RVA: 0x0022183C File Offset: 0x0021FA3C
[Token(Token = "0x600A2BB")]
[Address(RVA = "0x763490", Offset = "0x762490", VA = "0x180763490")]
public static int SubDWordFrom(int len, ulong x, uint[] z, int zOff)
{
uint num = z[zOff];
num = (uint)((ulong)num - x);
z[0] = num;
uint num2 = z[zOff];
num2 = (uint)((ulong)num2 - x);
num2 += num;
z[0] = num2;
ulong num3;
if (num3 == (ulong)num2)
{
return 0;
}
if (len > 2)
{
uint num4 = z[(int)num2];
z[0] = num4;
while (num4 != (uint)(-1))
{
}
num2 += (uint)1;
num4 = num2;
num4 -= (uint)zOff;
}
throw new NullReferenceException();
}
// Token: 0x0600A2BC RID: 41660 RVA: 0x002218A4 File Offset: 0x0021FAA4
[Token(Token = "0x600A2BC")]
[Address(RVA = "0x763640", Offset = "0x762640", VA = "0x180763640")]
public static int SubFrom(int len, uint[] x, uint[] z)
{
int num = 0;
if (len > 0)
{
uint num2 = x[num];
num++;
uint num3 = z[num];
num3 -= num2;
num += (int)num3;
z[0] = (uint)num;
}
return num;
}
// Token: 0x0600A2BD RID: 41661 RVA: 0x002218E4 File Offset: 0x0021FAE4
[Token(Token = "0x600A2BD")]
[Address(RVA = "0x7636C0", Offset = "0x7626C0", VA = "0x1807636C0")]
public static int SubFrom(int len, uint[] x, int xOff, uint[] z, int zOff)
{
int num = 0;
if (len > 0)
{
uint num2 = x[len];
uint num3 = z[xOff];
num3 -= num2;
num += (int)num3;
z[0] = (uint)num;
}
return num;
}
// Token: 0x0600A2BE RID: 41662 RVA: 0x00221920 File Offset: 0x0021FB20
[Token(Token = "0x600A2BE")]
[Address(RVA = "0x763820", Offset = "0x762820", VA = "0x180763820")]
public static int SubWordAt(int len, uint x, uint[] z, int zPos)
{
uint num = z[zPos];
num -= x;
z[0] = num;
ulong num2;
if (num2 == (ulong)num)
{
return 0;
}
int num3 = zPos + 1;
if (num3 < len)
{
uint num4 = z[num3];
z[0] = num4;
while (num4 != (uint)(-1))
{
}
num3++;
}
throw new NullReferenceException();
}
// Token: 0x0600A2BF RID: 41663 RVA: 0x00221970 File Offset: 0x0021FB70
[Token(Token = "0x600A2BF")]
[Address(RVA = "0x763770", Offset = "0x762770", VA = "0x180763770")]
public static int SubWordAt(int len, uint x, uint[] z, int zOff, int zPos)
{
uint num;
num -= x;
z[0] = num;
ulong num2;
if (num2 == (ulong)num)
{
return 0;
}
uint num3 = z[(int)num2];
z[0] = num3;
while (num3 != (uint)(-1))
{
}
num2 += (ulong)1L;
throw new NullReferenceException();
}
// Token: 0x0600A2C0 RID: 41664 RVA: 0x002219B0 File Offset: 0x0021FBB0
[Token(Token = "0x600A2C0")]
[Address(RVA = "0x7638C0", Offset = "0x7628C0", VA = "0x1807638C0")]
public static int SubWordFrom(int len, uint x, uint[] z)
{
uint num = z[0];
num -= x;
z[0] = num;
ulong num2;
if (num2 == (ulong)num)
{
return 0;
}
uint num3;
if (len > (int)num3)
{
uint num4 = z[(int)num3];
z[0] = num4;
while (num4 != (uint)(-1))
{
}
num3 += (uint)1;
}
throw new NullReferenceException();
}
// Token: 0x0600A2C1 RID: 41665 RVA: 0x002219FC File Offset: 0x0021FBFC
[Token(Token = "0x600A2C1")]
[Address(RVA = "0x763960", Offset = "0x762960", VA = "0x180763960")]
public static int SubWordFrom(int len, uint x, uint[] z, int zOff)
{
uint num = z[zOff];
num -= x;
z[0] = num;
ulong num2;
if (num2 == (ulong)num)
{
return 0;
}
if (len > 1)
{
int num3 = zOff + 1;
uint num4 = z[num3];
z[0] = num4;
while (num4 != (uint)(-1))
{
}
num3++;
num3 -= zOff;
}
throw new NullReferenceException();
}
// Token: 0x0600A2C2 RID: 41666 RVA: 0x00221A50 File Offset: 0x0021FC50
[Token(Token = "0x600A2C2")]
[Address(RVA = "0x763BA0", Offset = "0x762BA0", VA = "0x180763BA0")]
public static BigInteger ToBigInteger(int len, uint[] x)
{
byte[] array = new byte[x];
int num = 0;
if (len > 0)
{
if (x[num] != (uint)0)
{
}
num++;
}
return new BigInteger(1, array);
}
// Token: 0x0600A2C3 RID: 41667 RVA: 0x00221A88 File Offset: 0x0021FC88
[Token(Token = "0x600A2C3")]
[Address(RVA = "0x763C90", Offset = "0x762C90", VA = "0x180763C90")]
public static void Zero(int len, uint[] z)
{
int num = 0;
if (len > 0)
{
num++;
z[0] = (uint)num;
}
}
// Token: 0x0600A2C4 RID: 41668 RVA: 0x00221AB0 File Offset: 0x0021FCB0
[Token(Token = "0x600A2C4")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
protected Nat()
{
}
// Token: 0x04006C0D RID: 27661
[Token(Token = "0x4006C0D")]
private const ulong M = 4294967295UL;
}
}
@@ -0,0 +1,1083 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw
{
// Token: 0x02001ABB RID: 6843
[Token(Token = "0x2001ABB")]
internal abstract class Nat128
{
// Token: 0x0600A2C5 RID: 41669 RVA: 0x00221AC4 File Offset: 0x0021FCC4
[Token(Token = "0x600A2C5")]
[Address(RVA = "0x753950", Offset = "0x752950", VA = "0x180753950")]
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: 0x0600A2C6 RID: 41670 RVA: 0x00221B6C File Offset: 0x0021FD6C
[Token(Token = "0x600A2C6")]
[Address(RVA = "0x7532A0", Offset = "0x7522A0", VA = "0x1807532A0")]
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: 0x0600A2C7 RID: 41671 RVA: 0x00221C40 File Offset: 0x0021FE40
[Token(Token = "0x600A2C7")]
[Address(RVA = "0x753680", Offset = "0x752680", VA = "0x180753680")]
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: 0x0600A2C8 RID: 41672 RVA: 0x00221CDC File Offset: 0x0021FEDC
[Token(Token = "0x600A2C8")]
[Address(RVA = "0x7537D0", Offset = "0x7527D0", VA = "0x1807537D0")]
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: 0x0600A2C9 RID: 41673 RVA: 0x00221D90 File Offset: 0x0021FF90
[Token(Token = "0x600A2C9")]
[Address(RVA = "0x753480", Offset = "0x752480", VA = "0x180753480")]
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: 0x0600A2CA RID: 41674 RVA: 0x00221E6C File Offset: 0x0022006C
[Token(Token = "0x600A2CA")]
[Address(RVA = "0x753C40", Offset = "0x752C40", VA = "0x180753C40")]
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: 0x0600A2CB RID: 41675 RVA: 0x00221EC0 File Offset: 0x002200C0
[Token(Token = "0x600A2CB")]
[Address(RVA = "0x753D30", Offset = "0x752D30", VA = "0x180753D30")]
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: 0x0600A2CC RID: 41676 RVA: 0x00221F20 File Offset: 0x00220120
[Token(Token = "0x600A2CC")]
[Address(RVA = "0x753B10", Offset = "0x752B10", VA = "0x180753B10")]
public static void Copy64(ulong[] x, ulong[] z)
{
ulong num = x[0];
z[0] = num;
ulong num2 = x[1];
z[1] = num2;
}
// Token: 0x0600A2CD RID: 41677 RVA: 0x00221F54 File Offset: 0x00220154
[Token(Token = "0x600A2CD")]
[Address(RVA = "0x753BA0", Offset = "0x752BA0", VA = "0x180753BA0")]
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: 0x0600A2CE RID: 41678 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A2CE")]
[Address(RVA = "0x753F30", Offset = "0x752F30", VA = "0x180753F30")]
public static uint[] Create()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A2CF RID: 41679 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A2CF")]
[Address(RVA = "0x753E70", Offset = "0x752E70", VA = "0x180753E70")]
public static ulong[] Create64()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A2D0 RID: 41680 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A2D0")]
[Address(RVA = "0x753EF0", Offset = "0x752EF0", VA = "0x180753EF0")]
public static uint[] CreateExt()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A2D1 RID: 41681 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A2D1")]
[Address(RVA = "0x753EB0", Offset = "0x752EB0", VA = "0x180753EB0")]
public static ulong[] CreateExt64()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A2D2 RID: 41682 RVA: 0x00221F90 File Offset: 0x00220190
[Token(Token = "0x600A2D2")]
[Address(RVA = "0x753F70", Offset = "0x752F70", VA = "0x180753F70")]
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: 0x0600A2D3 RID: 41683 RVA: 0x00221FB0 File Offset: 0x002201B0
[Token(Token = "0x600A2D3")]
[Address(RVA = "0x7540E0", Offset = "0x7530E0", VA = "0x1807540E0")]
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: 0x0600A2D4 RID: 41684 RVA: 0x00221FD4 File Offset: 0x002201D4
[Token(Token = "0x600A2D4")]
[Address(RVA = "0x754070", Offset = "0x753070", VA = "0x180754070")]
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: 0x0600A2D5 RID: 41685 RVA: 0x00221FF8 File Offset: 0x002201F8
[Token(Token = "0x600A2D5")]
[Address(RVA = "0x754280", Offset = "0x753280", VA = "0x180754280")]
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: 0x0600A2D6 RID: 41686 RVA: 0x00222044 File Offset: 0x00220244
[Token(Token = "0x600A2D6")]
[Address(RVA = "0x754150", Offset = "0x753150", VA = "0x180754150")]
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: 0x0600A2D7 RID: 41687 RVA: 0x00222090 File Offset: 0x00220290
[Token(Token = "0x600A2D7")]
[Address(RVA = "0x7543B0", Offset = "0x7533B0", VA = "0x1807543B0")]
public static uint GetBit(uint[] x, int bit)
{
if (bit != 0)
{
if (bit == 0)
{
return x[bit];
}
}
return x[0];
}
// Token: 0x0600A2D8 RID: 41688 RVA: 0x002220BC File Offset: 0x002202BC
[Token(Token = "0x600A2D8")]
[Address(RVA = "0x7544B0", Offset = "0x7534B0", VA = "0x1807544B0")]
public static bool Gte(uint[] x, uint[] y)
{
uint num2;
uint num = y[(int)num2];
if (x[(int)num2] <= num)
{
}
throw new NullReferenceException();
}
// Token: 0x0600A2D9 RID: 41689 RVA: 0x002220E4 File Offset: 0x002202E4
[Token(Token = "0x600A2D9")]
[Address(RVA = "0x754430", Offset = "0x753430", VA = "0x180754430")]
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: 0x0600A2DA RID: 41690 RVA: 0x00222108 File Offset: 0x00220308
[Token(Token = "0x600A2DA")]
[Address(RVA = "0x7545A0", Offset = "0x7535A0", VA = "0x1807545A0")]
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: 0x0600A2DB RID: 41691 RVA: 0x0022213C File Offset: 0x0022033C
[Token(Token = "0x600A2DB")]
[Address(RVA = "0x754530", Offset = "0x753530", VA = "0x180754530")]
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: 0x0600A2DC RID: 41692 RVA: 0x00222170 File Offset: 0x00220370
[Token(Token = "0x600A2DC")]
[Address(RVA = "0x754660", Offset = "0x753660", VA = "0x180754660")]
public static bool IsZero(uint[] x)
{
int num = 0;
if ("{il2cpp array field x->}" == (ulong)0L)
{
num++;
return true;
}
throw new NullReferenceException();
}
// Token: 0x0600A2DD RID: 41693 RVA: 0x00222198 File Offset: 0x00220398
[Token(Token = "0x600A2DD")]
[Address(RVA = "0x754610", Offset = "0x753610", VA = "0x180754610")]
public static bool IsZero64(ulong[] x)
{
int num = 0;
if ("{il2cpp array field x->}" == (ulong)0L)
{
num++;
return true;
}
throw new NullReferenceException();
}
// Token: 0x0600A2DE RID: 41694 RVA: 0x002221C0 File Offset: 0x002203C0
[Token(Token = "0x600A2DE")]
[Address(RVA = "0x7556A0", Offset = "0x7546A0", VA = "0x1807556A0")]
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: 0x0600A2DF RID: 41695 RVA: 0x0022232C File Offset: 0x0022052C
[Token(Token = "0x600A2DF")]
[Address(RVA = "0x755370", Offset = "0x754370", VA = "0x180755370")]
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: 0x0600A2E0 RID: 41696 RVA: 0x00222404 File Offset: 0x00220604
[Token(Token = "0x600A2E0")]
[Address(RVA = "0x754B10", Offset = "0x753B10", VA = "0x180754B10")]
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: 0x0600A2E1 RID: 41697 RVA: 0x002224F8 File Offset: 0x002206F8
[Token(Token = "0x600A2E1")]
[Address(RVA = "0x754D30", Offset = "0x753D30", VA = "0x180754D30")]
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: 0x0600A2E2 RID: 41698 RVA: 0x0022257C File Offset: 0x0022077C
[Token(Token = "0x600A2E2")]
[Address(RVA = "0x7546B0", Offset = "0x7536B0", VA = "0x1807546B0")]
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: 0x0600A2E3 RID: 41699 RVA: 0x00222618 File Offset: 0x00220818
[Token(Token = "0x600A2E3")]
[Address(RVA = "0x754F80", Offset = "0x753F80", VA = "0x180754F80")]
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: 0x0600A2E4 RID: 41700 RVA: 0x002226C0 File Offset: 0x002208C0
[Token(Token = "0x600A2E4")]
[Address(RVA = "0x754910", Offset = "0x753910", VA = "0x180754910")]
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: 0x0600A2E5 RID: 41701 RVA: 0x00222750 File Offset: 0x00220950
[Token(Token = "0x600A2E5")]
[Address(RVA = "0x754A10", Offset = "0x753A10", VA = "0x180754A10")]
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: 0x0600A2E6 RID: 41702 RVA: 0x002227D4 File Offset: 0x002209D4
[Token(Token = "0x600A2E6")]
[Address(RVA = "0x755110", Offset = "0x754110", VA = "0x180755110")]
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: 0x0600A2E7 RID: 41703 RVA: 0x00222860 File Offset: 0x00220A60
[Token(Token = "0x600A2E7")]
[Address(RVA = "0x7552B0", Offset = "0x7542B0", VA = "0x1807552B0")]
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: 0x0600A2E8 RID: 41704 RVA: 0x002228BC File Offset: 0x00220ABC
[Token(Token = "0x600A2E8")]
[Address(RVA = "0x755220", Offset = "0x754220", VA = "0x180755220")]
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: 0x0600A2E9 RID: 41705 RVA: 0x002228E8 File Offset: 0x00220AE8
[Token(Token = "0x600A2E9")]
[Address(RVA = "0x755990", Offset = "0x754990", VA = "0x180755990")]
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: 0x0600A2EA RID: 41706 RVA: 0x00222A80 File Offset: 0x00220C80
[Token(Token = "0x600A2EA")]
[Address(RVA = "0x755D60", Offset = "0x754D60", VA = "0x180755D60")]
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: 0x0600A2EB RID: 41707 RVA: 0x00222C18 File Offset: 0x00220E18
[Token(Token = "0x600A2EB")]
[Address(RVA = "0x756870", Offset = "0x755870", VA = "0x180756870")]
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: 0x0600A2EC RID: 41708 RVA: 0x00222CB4 File Offset: 0x00220EB4
[Token(Token = "0x600A2EC")]
[Address(RVA = "0x756660", Offset = "0x755660", VA = "0x180756660")]
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: 0x0600A2ED RID: 41709 RVA: 0x00222D3C File Offset: 0x00220F3C
[Token(Token = "0x600A2ED")]
[Address(RVA = "0x7561C0", Offset = "0x7551C0", VA = "0x1807561C0")]
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: 0x0600A2EE RID: 41710 RVA: 0x00222E10 File Offset: 0x00221010
[Token(Token = "0x600A2EE")]
[Address(RVA = "0x7563A0", Offset = "0x7553A0", VA = "0x1807563A0")]
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: 0x0600A2EF RID: 41711 RVA: 0x00222EAC File Offset: 0x002210AC
[Token(Token = "0x600A2EF")]
[Address(RVA = "0x7564F0", Offset = "0x7554F0", VA = "0x1807564F0")]
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: 0x0600A2F0 RID: 41712 RVA: 0x00222F58 File Offset: 0x00221158
[Token(Token = "0x600A2F0")]
[Address(RVA = "0x756B00", Offset = "0x755B00", VA = "0x180756B00")]
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: 0x0600A2F1 RID: 41713 RVA: 0x00222F98 File Offset: 0x00221198
[Token(Token = "0x600A2F1")]
[Address(RVA = "0x756A30", Offset = "0x755A30", VA = "0x180756A30")]
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: 0x0600A2F2 RID: 41714 RVA: 0x00222FD8 File Offset: 0x002211D8
[Token(Token = "0x600A2F2")]
[Address(RVA = "0x756BD0", Offset = "0x755BD0", VA = "0x180756BD0")]
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: 0x0600A2F3 RID: 41715 RVA: 0x00223010 File Offset: 0x00221210
[Token(Token = "0x600A2F3")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
protected Nat128()
{
}
// Token: 0x04006C0E RID: 27662
[Token(Token = "0x4006C0E")]
private const ulong M = 4294967295UL;
}
}
@@ -0,0 +1,1134 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw
{
// Token: 0x02001ABC RID: 6844
[Token(Token = "0x2001ABC")]
internal abstract class Nat160
{
// Token: 0x0600A2F4 RID: 41716 RVA: 0x00223024 File Offset: 0x00221224
[Token(Token = "0x600A2F4")]
[Address(RVA = "0x7574D0", Offset = "0x7564D0", VA = "0x1807574D0")]
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: 0x0600A2F5 RID: 41717 RVA: 0x002230F4 File Offset: 0x002212F4
[Token(Token = "0x600A2F5")]
[Address(RVA = "0x756C50", Offset = "0x755C50", VA = "0x180756C50")]
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: 0x0600A2F6 RID: 41718 RVA: 0x002231FC File Offset: 0x002213FC
[Token(Token = "0x600A2F6")]
[Address(RVA = "0x757110", Offset = "0x756110", VA = "0x180757110")]
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: 0x0600A2F7 RID: 41719 RVA: 0x002232BC File Offset: 0x002214BC
[Token(Token = "0x600A2F7")]
[Address(RVA = "0x7572B0", Offset = "0x7562B0", VA = "0x1807572B0")]
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: 0x0600A2F8 RID: 41720 RVA: 0x002233C0 File Offset: 0x002215C0
[Token(Token = "0x600A2F8")]
[Address(RVA = "0x756EA0", Offset = "0x755EA0", VA = "0x180756EA0")]
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: 0x0600A2F9 RID: 41721 RVA: 0x002234CC File Offset: 0x002216CC
[Token(Token = "0x600A2F9")]
[Address(RVA = "0x7576F0", Offset = "0x7566F0", VA = "0x1807576F0")]
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: 0x0600A2FA RID: 41722 RVA: 0x00223534 File Offset: 0x00221734
[Token(Token = "0x600A2FA")]
[Address(RVA = "0x757830", Offset = "0x756830", VA = "0x180757830")]
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: 0x0600A2FB RID: 41723 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A2FB")]
[Address(RVA = "0x7579F0", Offset = "0x7569F0", VA = "0x1807579F0")]
public static uint[] Create()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A2FC RID: 41724 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A2FC")]
[Address(RVA = "0x7579B0", Offset = "0x7569B0", VA = "0x1807579B0")]
public static uint[] CreateExt()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A2FD RID: 41725 RVA: 0x002235A8 File Offset: 0x002217A8
[Token(Token = "0x600A2FD")]
[Address(RVA = "0x757A30", Offset = "0x756A30", VA = "0x180757A30")]
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: 0x0600A2FE RID: 41726 RVA: 0x002235C8 File Offset: 0x002217C8
[Token(Token = "0x600A2FE")]
[Address(RVA = "0x757B30", Offset = "0x756B30", VA = "0x180757B30")]
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: 0x0600A2FF RID: 41727 RVA: 0x002235EC File Offset: 0x002217EC
[Token(Token = "0x600A2FF")]
[Address(RVA = "0x757BA0", Offset = "0x756BA0", VA = "0x180757BA0")]
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: 0x0600A300 RID: 41728 RVA: 0x00223638 File Offset: 0x00221838
[Token(Token = "0x600A300")]
[Address(RVA = "0x757CD0", Offset = "0x756CD0", VA = "0x180757CD0")]
public static uint GetBit(uint[] x, int bit)
{
if (bit != 0)
{
if (bit <= 4)
{
return x[bit];
}
}
return x[0];
}
// Token: 0x0600A301 RID: 41729 RVA: 0x00223664 File Offset: 0x00221864
[Token(Token = "0x600A301")]
[Address(RVA = "0x757DD0", Offset = "0x756DD0", VA = "0x180757DD0")]
public static bool Gte(uint[] x, uint[] y)
{
uint num2;
uint num = y[(int)num2];
if (x[(int)num2] <= num)
{
}
throw new NullReferenceException();
}
// Token: 0x0600A302 RID: 41730 RVA: 0x0022368C File Offset: 0x0022188C
[Token(Token = "0x600A302")]
[Address(RVA = "0x757D50", Offset = "0x756D50", VA = "0x180757D50")]
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: 0x0600A303 RID: 41731 RVA: 0x002236B0 File Offset: 0x002218B0
[Token(Token = "0x600A303")]
[Address(RVA = "0x757E50", Offset = "0x756E50", VA = "0x180757E50")]
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: 0x0600A304 RID: 41732 RVA: 0x002236E4 File Offset: 0x002218E4
[Token(Token = "0x600A304")]
[Address(RVA = "0x757EC0", Offset = "0x756EC0", VA = "0x180757EC0")]
public static bool IsZero(uint[] x)
{
int num = 0;
if ("{il2cpp array field x->}" == (ulong)0L)
{
num++;
return true;
}
throw new NullReferenceException();
}
// Token: 0x0600A305 RID: 41733 RVA: 0x0022370C File Offset: 0x0022190C
[Token(Token = "0x600A305")]
[Address(RVA = "0x758DC0", Offset = "0x757DC0", VA = "0x180758DC0")]
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: 0x0600A306 RID: 41734 RVA: 0x002238C8 File Offset: 0x00221AC8
[Token(Token = "0x600A306")]
[Address(RVA = "0x759140", Offset = "0x758140", VA = "0x180759140")]
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: 0x0600A307 RID: 41735 RVA: 0x002239BC File Offset: 0x00221BBC
[Token(Token = "0x600A307")]
[Address(RVA = "0x758450", Offset = "0x757450", VA = "0x180758450")]
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: 0x0600A308 RID: 41736 RVA: 0x00223ADC File Offset: 0x00221CDC
[Token(Token = "0x600A308")]
[Address(RVA = "0x7586C0", Offset = "0x7576C0", VA = "0x1807586C0")]
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: 0x0600A309 RID: 41737 RVA: 0x00223B74 File Offset: 0x00221D74
[Token(Token = "0x600A309")]
[Address(RVA = "0x757F10", Offset = "0x756F10", VA = "0x180757F10")]
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: 0x0600A30A RID: 41738 RVA: 0x00223C40 File Offset: 0x00221E40
[Token(Token = "0x600A30A")]
[Address(RVA = "0x758970", Offset = "0x757970", VA = "0x180758970")]
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: 0x0600A30B RID: 41739 RVA: 0x00223CF4 File Offset: 0x00221EF4
[Token(Token = "0x600A30B")]
[Address(RVA = "0x7581E0", Offset = "0x7571E0", VA = "0x1807581E0")]
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: 0x0600A30C RID: 41740 RVA: 0x00223DA0 File Offset: 0x00221FA0
[Token(Token = "0x600A30C")]
[Address(RVA = "0x758350", Offset = "0x757350", VA = "0x180758350")]
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: 0x0600A30D RID: 41741 RVA: 0x00223E24 File Offset: 0x00222024
[Token(Token = "0x600A30D")]
[Address(RVA = "0x758B60", Offset = "0x757B60", VA = "0x180758B60")]
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: 0x0600A30E RID: 41742 RVA: 0x00223EB0 File Offset: 0x002220B0
[Token(Token = "0x600A30E")]
[Address(RVA = "0x758D00", Offset = "0x757D00", VA = "0x180758D00")]
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: 0x0600A30F RID: 41743 RVA: 0x00223F0C File Offset: 0x0022210C
[Token(Token = "0x600A30F")]
[Address(RVA = "0x758C70", Offset = "0x757C70", VA = "0x180758C70")]
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: 0x0600A310 RID: 41744 RVA: 0x00223F38 File Offset: 0x00222138
[Token(Token = "0x600A310")]
[Address(RVA = "0x759510", Offset = "0x758510", VA = "0x180759510")]
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: 0x0600A311 RID: 41745 RVA: 0x00224194 File Offset: 0x00222394
[Token(Token = "0x600A311")]
[Address(RVA = "0x759A00", Offset = "0x758A00", VA = "0x180759A00")]
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: 0x0600A312 RID: 41746 RVA: 0x002243DC File Offset: 0x002225DC
[Token(Token = "0x600A312")]
[Address(RVA = "0x75A570", Offset = "0x759570", VA = "0x18075A570")]
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: 0x0600A313 RID: 41747 RVA: 0x0022449C File Offset: 0x0022269C
[Token(Token = "0x600A313")]
[Address(RVA = "0x75A7A0", Offset = "0x7597A0", VA = "0x18075A7A0")]
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: 0x0600A314 RID: 41748 RVA: 0x00224544 File Offset: 0x00222744
[Token(Token = "0x600A314")]
[Address(RVA = "0x759FB0", Offset = "0x758FB0", VA = "0x180759FB0")]
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: 0x0600A315 RID: 41749 RVA: 0x00224648 File Offset: 0x00222848
[Token(Token = "0x600A315")]
[Address(RVA = "0x75A3D0", Offset = "0x7593D0", VA = "0x18075A3D0")]
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: 0x0600A316 RID: 41750 RVA: 0x00224708 File Offset: 0x00222908
[Token(Token = "0x600A316")]
[Address(RVA = "0x75A200", Offset = "0x759200", VA = "0x18075A200")]
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: 0x0600A317 RID: 41751 RVA: 0x002247D0 File Offset: 0x002229D0
[Token(Token = "0x600A317")]
[Address(RVA = "0x75AA20", Offset = "0x759A20", VA = "0x18075AA20")]
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: 0x0600A318 RID: 41752 RVA: 0x00224810 File Offset: 0x00222A10
[Token(Token = "0x600A318")]
[Address(RVA = "0x75AAF0", Offset = "0x759AF0", VA = "0x18075AAF0")]
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: 0x0600A319 RID: 41753 RVA: 0x00224850 File Offset: 0x00222A50
[Token(Token = "0x600A319")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
protected Nat160()
{
}
// Token: 0x04006C0F RID: 27663
[Token(Token = "0x4006C0F")]
private const ulong M = 4294967295UL;
}
}
@@ -0,0 +1,1389 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw
{
// Token: 0x02001ABD RID: 6845
[Token(Token = "0x2001ABD")]
internal abstract class Nat192
{
// Token: 0x0600A31A RID: 41754 RVA: 0x00224864 File Offset: 0x00222A64
[Token(Token = "0x600A31A")]
[Address(RVA = "0x75B540", Offset = "0x75A540", VA = "0x18075B540")]
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 = x[2];
uint num12 = y[2];
num12 += num9;
num12 += num11;
z[2] = num12;
return num12;
}
// Token: 0x0600A31B RID: 41755 RVA: 0x0022495C File Offset: 0x00222B5C
[Token(Token = "0x600A31B")]
[Address(RVA = "0x75AB90", Offset = "0x759B90", VA = "0x18075AB90")]
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 = z[1];
num2 += num7;
uint num8 = y[1];
num2 += num8;
uint num9 = x[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 = z[2];
num2 += num13;
uint num14 = y[2];
num2 += num14;
uint num15 = x[2];
num2 += num15;
z[2] = num2;
uint num16 = x[2];
uint num17 = y[2];
uint num18 = z[2];
num2 += num17;
num2 += num16;
num2 += num18;
z[2] = num2;
return num2;
}
// Token: 0x0600A31C RID: 41756 RVA: 0x00224A94 File Offset: 0x00222C94
[Token(Token = "0x600A31C")]
[Address(RVA = "0x75B130", Offset = "0x75A130", VA = "0x18075B130")]
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 = z[1];
num += num7;
uint num8 = x[1];
num += num8;
z[1] = num;
uint num9 = z[2];
num += num9;
uint num10 = x[2];
num += num10;
z[2] = num;
uint num11 = x[2];
uint num12 = z[2];
num += num12;
num += num11;
z[2] = num;
return num;
}
// Token: 0x0600A31D RID: 41757 RVA: 0x00224B78 File Offset: 0x00222D78
[Token(Token = "0x600A31D")]
[Address(RVA = "0x75B310", Offset = "0x75A310", VA = "0x18075B310")]
public static uint AddTo(uint[] x, int xOff, uint[] z, int zOff, uint cIn)
{
uint num = x[xOff];
uint num2 = z[xOff];
num += num2;
int num3 = xOff + 1;
z[0] = num;
uint num4 = x[num3];
int num5 = xOff + 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[xOff];
num14 += num12;
num14 += num13;
z[0] = num14;
return num14;
}
// Token: 0x0600A31E RID: 41758 RVA: 0x00224C84 File Offset: 0x00222E84
[Token(Token = "0x600A31E")]
[Address(RVA = "0x75AE50", Offset = "0x759E50", VA = "0x18075AE50")]
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[(int)num5];
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[uOff];
uint num14 = u[(int)num9];
num13 += num11;
num13 += num14;
u[0] = num13;
v[0] = num13;
return num13;
}
// Token: 0x0600A31F RID: 41759 RVA: 0x00224DC8 File Offset: 0x00222FC8
[Token(Token = "0x600A31F")]
[Address(RVA = "0x75B950", Offset = "0x75A950", VA = "0x18075B950")]
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;
}
// Token: 0x0600A320 RID: 41760 RVA: 0x00224E40 File Offset: 0x00223040
[Token(Token = "0x600A320")]
[Address(RVA = "0x75BAD0", Offset = "0x75AAD0", VA = "0x18075BAD0")]
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[xOff];
z[0] = num8;
}
// Token: 0x0600A321 RID: 41761 RVA: 0x00224EC4 File Offset: 0x002230C4
[Token(Token = "0x600A321")]
[Address(RVA = "0x75B890", Offset = "0x75A890", VA = "0x18075B890")]
public static void Copy64(ulong[] x, ulong[] z)
{
ulong num = x[0];
z[0] = num;
ulong num2 = x[1];
z[1] = num2;
ulong num3 = x[2];
z[2] = num3;
}
// Token: 0x0600A322 RID: 41762 RVA: 0x00224F08 File Offset: 0x00223108
[Token(Token = "0x600A322")]
[Address(RVA = "0x75B7C0", Offset = "0x75A7C0", VA = "0x18075B7C0")]
public static void Copy64(ulong[] x, int xOff, ulong[] z, int zOff)
{
ulong num = x[xOff];
int num2 = xOff + 1;
z[0] = num;
ulong num3 = x[num2];
int num4 = xOff + 1;
z[0] = num3;
ulong num5 = x[num4];
z[0] = num5;
}
// Token: 0x0600A323 RID: 41763 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A323")]
[Address(RVA = "0x75BD50", Offset = "0x75AD50", VA = "0x18075BD50")]
public static uint[] Create()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A324 RID: 41764 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A324")]
[Address(RVA = "0x75BC90", Offset = "0x75AC90", VA = "0x18075BC90")]
public static ulong[] Create64()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A325 RID: 41765 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A325")]
[Address(RVA = "0x75BD10", Offset = "0x75AD10", VA = "0x18075BD10")]
public static uint[] CreateExt()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A326 RID: 41766 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A326")]
[Address(RVA = "0x75BCD0", Offset = "0x75ACD0", VA = "0x18075BCD0")]
public static ulong[] CreateExt64()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A327 RID: 41767 RVA: 0x00224F58 File Offset: 0x00223158
[Token(Token = "0x600A327")]
[Address(RVA = "0x75BD90", Offset = "0x75AD90", VA = "0x18075BD90")]
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: 0x0600A328 RID: 41768 RVA: 0x00224F78 File Offset: 0x00223178
[Token(Token = "0x600A328")]
[Address(RVA = "0x75BF00", Offset = "0x75AF00", VA = "0x18075BF00")]
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: 0x0600A329 RID: 41769 RVA: 0x00224F9C File Offset: 0x0022319C
[Token(Token = "0x600A329")]
[Address(RVA = "0x75BE90", Offset = "0x75AE90", VA = "0x18075BE90")]
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: 0x0600A32A RID: 41770 RVA: 0x00224FC0 File Offset: 0x002231C0
[Token(Token = "0x600A32A")]
[Address(RVA = "0x75C0A0", Offset = "0x75B0A0", VA = "0x18075C0A0")]
public static uint[] FromBigInteger(BigInteger x)
{
int bitLength = x.BitLength;
uint[] array = new uint[6];
int num = 0;
if (x.sign != 0)
{
num++;
int intValue = x.IntValue;
array[0] = (uint)intValue;
BigInteger bigInteger = x.ShiftRight(32);
}
return array;
}
// Token: 0x0600A32B RID: 41771 RVA: 0x0022500C File Offset: 0x0022320C
[Token(Token = "0x600A32B")]
[Address(RVA = "0x75BF70", Offset = "0x75AF70", VA = "0x18075BF70")]
public static ulong[] FromBigInteger64(BigInteger x)
{
int bitLength = x.BitLength;
ulong[] array = new ulong[3];
int num = 0;
if (x.sign != 0)
{
num++;
long longValue = x.LongValue;
array[0] = (ulong)longValue;
BigInteger bigInteger = x.ShiftRight(64);
}
return array;
}
// Token: 0x0600A32C RID: 41772 RVA: 0x00225058 File Offset: 0x00223258
[Token(Token = "0x600A32C")]
[Address(RVA = "0x75C1D0", Offset = "0x75B1D0", VA = "0x18075C1D0")]
public static uint GetBit(uint[] x, int bit)
{
if (bit != 0)
{
if (bit <= 5)
{
return x[bit];
}
}
return x[0];
}
// Token: 0x0600A32D RID: 41773 RVA: 0x00225084 File Offset: 0x00223284
[Token(Token = "0x600A32D")]
[Address(RVA = "0x75C250", Offset = "0x75B250", VA = "0x18075C250")]
public static bool Gte(uint[] x, uint[] y)
{
uint num2;
uint num = y[(int)num2];
if (x[(int)num2] <= num)
{
}
throw new NullReferenceException();
}
// Token: 0x0600A32E RID: 41774 RVA: 0x002250AC File Offset: 0x002232AC
[Token(Token = "0x600A32E")]
[Address(RVA = "0x75C2D0", Offset = "0x75B2D0", VA = "0x18075C2D0")]
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: 0x0600A32F RID: 41775 RVA: 0x002250D0 File Offset: 0x002232D0
[Token(Token = "0x600A32F")]
[Address(RVA = "0x75C3C0", Offset = "0x75B3C0", VA = "0x18075C3C0")]
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: 0x0600A330 RID: 41776 RVA: 0x00225104 File Offset: 0x00223304
[Token(Token = "0x600A330")]
[Address(RVA = "0x75C350", Offset = "0x75B350", VA = "0x18075C350")]
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: 0x0600A331 RID: 41777 RVA: 0x00225138 File Offset: 0x00223338
[Token(Token = "0x600A331")]
[Address(RVA = "0x75C480", Offset = "0x75B480", VA = "0x18075C480")]
public static bool IsZero(uint[] x)
{
int num = 0;
if ("{il2cpp array field x->}" == (ulong)0L)
{
num++;
return true;
}
throw new NullReferenceException();
}
// Token: 0x0600A332 RID: 41778 RVA: 0x00225160 File Offset: 0x00223360
[Token(Token = "0x600A332")]
[Address(RVA = "0x75C430", Offset = "0x75B430", VA = "0x18075C430")]
public static bool IsZero64(ulong[] x)
{
int num = 0;
if ("{il2cpp array field x->}" == (ulong)0L)
{
num++;
return true;
}
throw new NullReferenceException();
}
// Token: 0x0600A333 RID: 41779 RVA: 0x00225188 File Offset: 0x00223388
[Token(Token = "0x600A333")]
[Address(RVA = "0x75D460", Offset = "0x75C460", VA = "0x18075D460")]
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 = x[0];
uint num8 = num7 * num;
zz[0] = num8;
uint num9 = num7 * num2;
num9 += num8;
zz[0] = num9;
num8 = num7;
uint num10 = num8 * num3;
num10 += num9;
zz[1] = num10;
num9 = num7;
uint num11 = num9 * num4;
num11 += num10;
zz[1] = num11;
num10 = num7;
uint num12 = num10 * num5;
num12 += num11;
uint num13 = num7 * num6;
zz[2] = num12;
num13 += num12;
zz[2] = num13;
zz[3] = num13;
uint num15;
uint num14 = x[(int)num15];
uint num16 = num15 + 1U;
uint num17 = zz[(int)num15];
num12 = num14;
uint num18 = num12 * num;
num18 += num17;
zz[0] = num18;
uint num19 = zz[(int)num16];
num17 = num14;
uint num20 = num17 * num2;
num19 += num20;
num19 += num18;
zz[0] = num19;
uint num21 = zz[(int)num16];
num20 = num14;
uint num22 = num20 * num3;
num21 += num22;
num21 += num19;
zz[0] = num21;
uint num23 = zz[(int)num16];
num22 = num14;
uint num24 = num22 * num4;
num23 += num24;
num23 += num21;
zz[0] = num23;
uint num25 = zz[(int)num16];
num24 = num14;
uint num26 = num24 * num5;
num25 += num26;
num25 += num23;
zz[0] = num25;
uint num27 = zz[(int)num23];
num15 += (uint)6;
uint num28 = num14 * num6;
num27 += num28;
num27 += num25;
zz[0] = num27;
num15 += (uint)1;
zz[0] = num27;
}
// Token: 0x0600A334 RID: 41780 RVA: 0x00225394 File Offset: 0x00223594
[Token(Token = "0x600A334")]
[Address(RVA = "0x75D850", Offset = "0x75C850", VA = "0x18075D850")]
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[yOff];
uint num8 = x[xOff];
uint num9 = num8 * num;
uint num10 = num8 * num3;
num10 += num9;
num9 = num8;
uint num11 = num9 * num4;
num11 += num10;
num10 = num8;
uint num12 = num10 * num5;
num12 += num11;
num11 = num8;
uint num13 = num11 * num6;
num13 += num12;
uint num14 = num8 * num7;
num14 += num13;
int num15 = xOff + 1;
uint num16 = x[num15];
num12 = num16;
uint num17 = num12 * num;
num17 += (uint)num15;
uint num18 = num16 * num3;
num18 = num16;
num17 += num18;
num18 = num16;
uint num19 = num18 * num6;
num17 += num19;
uint num20 = num16 * num7;
num19 += num20;
num19 += num17;
num15++;
num15 -= xOff;
}
// Token: 0x0600A335 RID: 41781 RVA: 0x002254B0 File Offset: 0x002236B0
[Token(Token = "0x600A335")]
[Address(RVA = "0x75CDA0", Offset = "0x75BDA0", VA = "0x18075CDA0")]
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];
int num7 = 0;
uint num8 = x[num7];
uint num9 = zz[num7];
uint num10 = num8 * num;
num10 += num9;
zz[0] = num10;
num9 = num8;
uint num11 = num9 * num2;
uint num12;
num12 += num11;
num12 += num10;
zz[0] = num12;
num11 = num8;
uint num13 = num11 * num3;
uint num14;
num14 += num13;
num14 += num12;
zz[0] = num14;
num13 = num8;
uint num15 = num13 * num4;
uint num16;
num16 += num15;
num16 += num14;
zz[0] = num16;
num15 = num8;
uint num17 = num15 * num5;
uint num18;
num18 += num17;
num18 += num16;
zz[0] = num18;
num7 += 6;
uint num19;
num19 += num8;
num19 += num18;
zz[0] = num19;
uint num20 = zz[num7];
num7++;
num7 += (int)num20;
num7 += (int)num19;
zz[0] = (uint)num7;
throw new NullReferenceException();
}
// Token: 0x0600A336 RID: 41782 RVA: 0x002255F4 File Offset: 0x002237F4
[Token(Token = "0x600A336")]
[Address(RVA = "0x75CA90", Offset = "0x75BA90", VA = "0x18075CA90")]
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)num4];
uint num7 = y[yOff];
int num8 = 0;
uint num9 = x[(int)num7];
uint num10 = num9 * num;
num10 += num7;
num7 = num9;
num10 += num7;
num7 = num9;
uint num11 = num7 * num5;
num11 = num9;
uint num12 = num11 * num6;
num10 += num9;
num8 += (int)num12;
num8 += (int)num10;
throw new NullReferenceException();
}
// Token: 0x0600A337 RID: 41783 RVA: 0x0022569C File Offset: 0x0022389C
[Token(Token = "0x600A337")]
[Address(RVA = "0x75C4D0", Offset = "0x75B4D0", VA = "0x18075C4D0")]
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 = num16 * w;
num17 += num14;
uint num18;
num17 += num18;
num3 += num17;
throw new NullReferenceException();
}
// Token: 0x0600A338 RID: 41784 RVA: 0x00225798 File Offset: 0x00223998
[Token(Token = "0x600A338")]
[Address(RVA = "0x75D070", Offset = "0x75C070", VA = "0x18075D070")]
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[(int)num8] * x;
uint num11;
num11 += num10;
num11 += num9;
zz[0] = num11;
uint num12 = yy[yyOff];
uint num13 = zz[yy];
uint num14 = num12 * x;
num13 += num14;
num13 += num11;
zz[0] = num13;
return num13;
}
// Token: 0x0600A339 RID: 41785 RVA: 0x0022587C File Offset: 0x00223A7C
[Token(Token = "0x600A339")]
[Address(RVA = "0x75C820", Offset = "0x75B820", VA = "0x18075C820")]
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: 0x0600A33A RID: 41786 RVA: 0x00225928 File Offset: 0x00223B28
[Token(Token = "0x600A33A")]
[Address(RVA = "0x75C990", Offset = "0x75B990", VA = "0x18075C990")]
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: 0x0600A33B RID: 41787 RVA: 0x002259AC File Offset: 0x00223BAC
[Token(Token = "0x600A33B")]
[Address(RVA = "0x75D2C0", Offset = "0x75C2C0", VA = "0x18075D2C0")]
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: 0x0600A33C RID: 41788 RVA: 0x00225A38 File Offset: 0x00223C38
[Token(Token = "0x600A33C")]
[Address(RVA = "0x75D3D0", Offset = "0x75C3D0", VA = "0x18075D3D0")]
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: 0x0600A33D RID: 41789 RVA: 0x00225A64 File Offset: 0x00223C64
[Token(Token = "0x600A33D")]
[Address(RVA = "0x75DCA0", Offset = "0x75CCA0", VA = "0x18075DCA0")]
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;
num12 = num14;
uint num18 = num12 * num6;
uint num19 = num14 * num9;
num15 = num16;
num18 += num15;
num15 = num7;
num18 += num15;
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];
num13 = num7;
num13 += num21;
uint num22 = zz[4];
num7 = num20;
uint num23 = num7 * num;
num22 = num18;
num23 += num22;
zz[2] = num22;
num22 = num23;
uint num24 = num20 * num6;
num24 += num22;
num22 = num19;
num24 += num22;
num19 = num20;
uint num25 = num19 * num9;
num22 = num24;
num25 += num22;
num22 = num7;
num25 += num22;
num7 = num20;
uint num26 = num7 * num14;
num22 = num25;
num26 += num22;
num22 = num13;
num26 += num22;
num22 = num26;
num13 += num22;
num13 += num22;
int length3 = zz.Length;
uint num27 = x[2];
uint num28 = zz[4];
num26 = num13;
num26 += num28;
uint num29 = zz[5];
uint num30 = num27 * num;
num29 = num24;
num30 += num29;
num = num27;
zz[2] = num29;
num23 = num27;
num29 = num30;
uint num31 = num * num6;
uint num32 = num23 * num9;
uint num33 = num27 * num14;
uint num34 = num27 * num20;
num31 += num29;
num29 = num25;
num31 += num29;
num29 = num31;
num32 += num29;
num32 += num26;
num26 = num32;
num33 += num26;
num26 = num13;
num33 += num26;
num26 = num33;
num34 += num26;
num34 += num26;
num26 = num34;
num26 += num26;
num26 += num29;
zz[3] = num29;
zz[3] = num29;
zz[4] = num29;
zz[4] = num29;
zz[5] = num29;
num29 = num26;
num29 += num29;
zz[5] = num29;
}
// Token: 0x0600A33E RID: 41790 RVA: 0x00225D9C File Offset: 0x00223F9C
[Token(Token = "0x600A33E")]
[Address(RVA = "0x75E2D0", Offset = "0x75D2D0", VA = "0x18075E2D0")]
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;
int length2 = zz.Length;
uint num10 = x[(int)num9];
uint num11 = zz[xOff];
uint num12 = zz[(int)num9];
num4 = num10;
uint num13 = num4 * num;
num12 = num3;
num13 += num12;
num13 += num8;
num3 = num10;
zz[0] = num8;
num8 = num13;
uint num14 = num3 * num6;
num14 += num8;
num14 += num11;
num11 = num14;
num11 += num12;
uint num15 = x[(int)num12];
int length3 = zz.Length;
uint num16 = zz[(int)num12];
num12 = num11;
num16 += num12;
uint num17 = zz[(int)num12];
uint num18 = num15 * num;
num17 = num14;
num18 += num17;
zz[0] = num17;
num17 = num18;
num15 += num17;
num17 = num11;
num15 += num17;
uint num19 = num15 * num10;
num17 = num15;
num19 += num17;
num17 = num16;
num19 += num17;
num17 = num19;
num16 += num17;
num16 += num17;
uint num20 = x[(int)num17];
int length4 = zz.Length;
uint num21 = zz[length3];
num17 = num16;
num21 += num17;
uint num22 = num20 * num;
uint num23 = num15;
num22 += num23;
zz[0] = num23;
num15 = num20;
num23 = num22;
num15 += num23;
num23 = num19;
num15 += num23;
num19 = num20;
num23 = num15;
num15 = num20;
num19 += num23;
num23 = num16;
num19 += num23;
num23 = num19;
num15 += num23;
num23 = num21;
num15 += num23;
num23 = num15;
num21 += num23;
num21 += num23;
uint num24 = x[xOff];
int length5 = zz.Length;
uint num25 = zz[xOff];
num23 = num21;
num25 += num23;
uint num26 = zz[length4];
uint num27 = num24 * num;
num27 += num15;
zz[0] = num15;
num22 = num24;
num19 = num24;
num15 = num27;
num19 += num15;
num19 += num19;
num24 += num19;
num24 += num15;
num15 = num24;
num22 += num15;
num15 = num21;
num22 += num15;
num15 = num22;
num24 += num15;
num15 = num25;
num24 += num15;
num15 = num24;
num25 += num15;
num25 += num26;
zz[0] = num26;
zz[0] = num26;
zz[0] = num26;
zz[4] = num26;
zz[5] = num26;
num26 = num25;
num26 += num26;
zz[0] = num26;
}
// Token: 0x0600A33F RID: 41791 RVA: 0x002260A8 File Offset: 0x002242A8
[Token(Token = "0x600A33F")]
[Address(RVA = "0x75F0D0", Offset = "0x75E0D0", VA = "0x18075F0D0")]
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 = x[2];
uint num12 = y[2];
num2 -= num12;
num2 += num11;
z[2] = num2;
throw new NullReferenceException();
}
// Token: 0x0600A340 RID: 41792 RVA: 0x0022618C File Offset: 0x0022438C
[Token(Token = "0x600A340")]
[Address(RVA = "0x75F360", Offset = "0x75E360", VA = "0x18075F360")]
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[yOff];
uint num14 = y[yOff];
num -= num14;
num += num13;
throw new NullReferenceException();
}
// Token: 0x0600A341 RID: 41793 RVA: 0x00226250 File Offset: 0x00224450
[Token(Token = "0x600A341")]
[Address(RVA = "0x75EA10", Offset = "0x75DA10", VA = "0x18075EA10")]
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 = x[2];
uint num17 = y[2];
num2 -= num17;
uint num18 = z[2];
num2 -= num16;
num2 += num18;
z[2] = num2;
throw new NullReferenceException();
}
// Token: 0x0600A342 RID: 41794 RVA: 0x00226388 File Offset: 0x00224588
[Token(Token = "0x600A342")]
[Address(RVA = "0x75ECD0", Offset = "0x75DCD0", VA = "0x18075ECD0")]
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;
throw new NullReferenceException();
}
// Token: 0x0600A343 RID: 41795 RVA: 0x0022646C File Offset: 0x0022466C
[Token(Token = "0x600A343")]
[Address(RVA = "0x75EEB0", Offset = "0x75DEB0", VA = "0x18075EEB0")]
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 = z[(int)num8];
num10 += num12;
z[0] = num10;
uint num13 = x[xOff];
uint num14 = z[zOff];
num10 -= num13;
num14 += num10;
z[0] = num14;
throw new NullReferenceException();
}
// Token: 0x0600A344 RID: 41796 RVA: 0x00226560 File Offset: 0x00224760
[Token(Token = "0x600A344")]
[Address(RVA = "0x75F720", Offset = "0x75E720", VA = "0x18075F720")]
public static BigInteger ToBigInteger(uint[] x)
{
byte[] array = new byte[24];
int num = 0;
uint num2 = x[num];
if (num2 != (uint)0)
{
Pack.UInt32_To_BE(num2, array, 20);
}
num++;
return new BigInteger(1, array);
}
// Token: 0x0600A345 RID: 41797 RVA: 0x002265A0 File Offset: 0x002247A0
[Token(Token = "0x600A345")]
[Address(RVA = "0x75F650", Offset = "0x75E650", VA = "0x18075F650")]
public static BigInteger ToBigInteger64(ulong[] x)
{
byte[] array = new byte[24];
int num = 0;
ulong num2 = x[num];
if (num2 != (ulong)0L)
{
Pack.UInt64_To_BE(num2, array, 16);
}
num++;
return new BigInteger(1, array);
}
// Token: 0x0600A346 RID: 41798 RVA: 0x002265E0 File Offset: 0x002247E0
[Token(Token = "0x600A346")]
[Address(RVA = "0x75F7F0", Offset = "0x75E7F0", VA = "0x18075F7F0")]
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;
}
// Token: 0x0600A347 RID: 41799 RVA: 0x00226628 File Offset: 0x00224828
[Token(Token = "0x600A347")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
protected Nat192()
{
}
// Token: 0x04006C10 RID: 27664
[Token(Token = "0x4006C10")]
private const ulong M = 4294967295UL;
}
}
@@ -0,0 +1,1576 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw
{
// Token: 0x02001ABE RID: 6846
[Token(Token = "0x2001ABE")]
internal abstract class Nat224
{
// Token: 0x0600A348 RID: 41800 RVA: 0x0022663C File Offset: 0x0022483C
[Token(Token = "0x600A348")]
[Address(RVA = "0xCF3040", Offset = "0xCF2040", VA = "0x180CF3040")]
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: 0x0600A349 RID: 41801 RVA: 0x00226760 File Offset: 0x00224960
[Token(Token = "0x600A349")]
[Address(RVA = "0xCF3330", Offset = "0xCF2330", VA = "0x180CF3330")]
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: 0x0600A34A RID: 41802 RVA: 0x0022685C File Offset: 0x00224A5C
[Token(Token = "0x600A34A")]
[Address(RVA = "0xCF2170", Offset = "0xCF1170", VA = "0x180CF2170")]
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: 0x0600A34B RID: 41803 RVA: 0x002269C8 File Offset: 0x00224BC8
[Token(Token = "0x600A34B")]
[Address(RVA = "0xCF2490", Offset = "0xCF1490", VA = "0x180CF2490")]
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: 0x0600A34C RID: 41804 RVA: 0x00226A9C File Offset: 0x00224C9C
[Token(Token = "0x600A34C")]
[Address(RVA = "0xCF2B90", Offset = "0xCF1B90", VA = "0x180CF2B90")]
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: 0x0600A34D RID: 41805 RVA: 0x00226BA4 File Offset: 0x00224DA4
[Token(Token = "0x600A34D")]
[Address(RVA = "0xCF2DC0", Offset = "0xCF1DC0", VA = "0x180CF2DC0")]
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: 0x0600A34E RID: 41806 RVA: 0x00226CDC File Offset: 0x00224EDC
[Token(Token = "0x600A34E")]
[Address(RVA = "0xCF2830", Offset = "0xCF1830", VA = "0x180CF2830")]
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: 0x0600A34F RID: 41807 RVA: 0x00226E50 File Offset: 0x00225050
[Token(Token = "0x600A34F")]
[Address(RVA = "0xCF36A0", Offset = "0xCF26A0", VA = "0x180CF36A0")]
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: 0x0600A350 RID: 41808 RVA: 0x00226EDC File Offset: 0x002250DC
[Token(Token = "0x600A350")]
[Address(RVA = "0xCF3860", Offset = "0xCF2860", VA = "0x180CF3860")]
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: 0x0600A351 RID: 41809 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A351")]
[Address(RVA = "0xCF3AB0", Offset = "0xCF2AB0", VA = "0x180CF3AB0")]
public static uint[] Create()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A352 RID: 41810 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A352")]
[Address(RVA = "0xCF3A70", Offset = "0xCF2A70", VA = "0x180CF3A70")]
public static uint[] CreateExt()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A353 RID: 41811 RVA: 0x00226F74 File Offset: 0x00225174
[Token(Token = "0x600A353")]
[Address(RVA = "0xCF3AF0", Offset = "0xCF2AF0", VA = "0x180CF3AF0")]
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: 0x0600A354 RID: 41812 RVA: 0x00226F94 File Offset: 0x00225194
[Token(Token = "0x600A354")]
[Address(RVA = "0xCF3BF0", Offset = "0xCF2BF0", VA = "0x180CF3BF0")]
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: 0x0600A355 RID: 41813 RVA: 0x00226FB8 File Offset: 0x002251B8
[Token(Token = "0x600A355")]
[Address(RVA = "0xCF3C60", Offset = "0xCF2C60", VA = "0x180CF3C60")]
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: 0x0600A356 RID: 41814 RVA: 0x00227004 File Offset: 0x00225204
[Token(Token = "0x600A356")]
[Address(RVA = "0xCF3D90", Offset = "0xCF2D90", VA = "0x180CF3D90")]
public static uint GetBit(uint[] x, int bit)
{
if (bit != 0)
{
if (bit <= 6)
{
return x[bit];
}
}
return x[0];
}
// Token: 0x0600A357 RID: 41815 RVA: 0x00227030 File Offset: 0x00225230
[Token(Token = "0x600A357")]
[Address(RVA = "0xCF3E10", Offset = "0xCF2E10", VA = "0x180CF3E10")]
public static bool Gte(uint[] x, uint[] y)
{
uint num2;
uint num = y[(int)num2];
if (x[(int)num2] <= num)
{
}
throw new NullReferenceException();
}
// Token: 0x0600A358 RID: 41816 RVA: 0x00227058 File Offset: 0x00225258
[Token(Token = "0x600A358")]
[Address(RVA = "0xCF3E90", Offset = "0xCF2E90", VA = "0x180CF3E90")]
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: 0x0600A359 RID: 41817 RVA: 0x0022707C File Offset: 0x0022527C
[Token(Token = "0x600A359")]
[Address(RVA = "0xCF3F10", Offset = "0xCF2F10", VA = "0x180CF3F10")]
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: 0x0600A35A RID: 41818 RVA: 0x002270B0 File Offset: 0x002252B0
[Token(Token = "0x600A35A")]
[Address(RVA = "0xCF3F80", Offset = "0xCF2F80", VA = "0x180CF3F80")]
public static bool IsZero(uint[] x)
{
int num = 0;
if ("{il2cpp array field x->}" == (ulong)0L)
{
num++;
return true;
}
throw new NullReferenceException();
}
// Token: 0x0600A35B RID: 41819 RVA: 0x002270D8 File Offset: 0x002252D8
[Token(Token = "0x600A35B")]
[Address(RVA = "0xCF5930", Offset = "0xCF4930", VA = "0x180CF5930")]
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: 0x0600A35C RID: 41820 RVA: 0x00227330 File Offset: 0x00225530
[Token(Token = "0x600A35C")]
[Address(RVA = "0xCF5440", Offset = "0xCF4440", VA = "0x180CF5440")]
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: 0x0600A35D RID: 41821 RVA: 0x0022745C File Offset: 0x0022565C
[Token(Token = "0x600A35D")]
[Address(RVA = "0xCF45D0", Offset = "0xCF35D0", VA = "0x180CF45D0")]
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: 0x0600A35E RID: 41822 RVA: 0x002275B4 File Offset: 0x002257B4
[Token(Token = "0x600A35E")]
[Address(RVA = "0xCF4900", Offset = "0xCF3900", VA = "0x180CF4900")]
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: 0x0600A35F RID: 41823 RVA: 0x00227670 File Offset: 0x00225870
[Token(Token = "0x600A35F")]
[Address(RVA = "0xCF3FD0", Offset = "0xCF2FD0", VA = "0x180CF3FD0")]
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: 0x0600A360 RID: 41824 RVA: 0x0022779C File Offset: 0x0022599C
[Token(Token = "0x600A360")]
[Address(RVA = "0xCF4ED0", Offset = "0xCF3ED0", VA = "0x180CF4ED0")]
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: 0x0600A361 RID: 41825 RVA: 0x00227858 File Offset: 0x00225A58
[Token(Token = "0x600A361")]
[Address(RVA = "0xCF4C80", Offset = "0xCF3C80", VA = "0x180CF4C80")]
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: 0x0600A362 RID: 41826 RVA: 0x002279A4 File Offset: 0x00225BA4
[Token(Token = "0x600A362")]
[Address(RVA = "0xCF5020", Offset = "0xCF4020", VA = "0x180CF5020")]
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: 0x0600A363 RID: 41827 RVA: 0x00227AC8 File Offset: 0x00225CC8
[Token(Token = "0x600A363")]
[Address(RVA = "0xCF43A0", Offset = "0xCF33A0", VA = "0x180CF43A0")]
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: 0x0600A364 RID: 41828 RVA: 0x00227B68 File Offset: 0x00225D68
[Token(Token = "0x600A364")]
[Address(RVA = "0xCF44F0", Offset = "0xCF34F0", VA = "0x180CF44F0")]
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: 0x0600A365 RID: 41829 RVA: 0x00227BE0 File Offset: 0x00225DE0
[Token(Token = "0x600A365")]
[Address(RVA = "0xCF52C0", Offset = "0xCF42C0", VA = "0x180CF52C0")]
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: 0x0600A366 RID: 41830 RVA: 0x00227C5C File Offset: 0x00225E5C
[Token(Token = "0x600A366")]
[Address(RVA = "0xCF53B0", Offset = "0xCF43B0", VA = "0x180CF53B0")]
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: 0x0600A367 RID: 41831 RVA: 0x00227C88 File Offset: 0x00225E88
[Token(Token = "0x600A367")]
[Address(RVA = "0xCF6690", Offset = "0xCF5690", VA = "0x180CF6690")]
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: 0x0600A368 RID: 41832 RVA: 0x002280BC File Offset: 0x002262BC
[Token(Token = "0x600A368")]
[Address(RVA = "0xCF5DB0", Offset = "0xCF4DB0", VA = "0x180CF5DB0")]
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: 0x0600A369 RID: 41833 RVA: 0x0022849C File Offset: 0x0022669C
[Token(Token = "0x600A369")]
[Address(RVA = "0xCF75E0", Offset = "0xCF65E0", VA = "0x180CF75E0")]
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: 0x0600A36A RID: 41834 RVA: 0x002285A4 File Offset: 0x002267A4
[Token(Token = "0x600A36A")]
[Address(RVA = "0xCF78D0", Offset = "0xCF68D0", VA = "0x180CF78D0")]
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: 0x0600A36B RID: 41835 RVA: 0x00228688 File Offset: 0x00226888
[Token(Token = "0x600A36B")]
[Address(RVA = "0xCF6E20", Offset = "0xCF5E20", VA = "0x180CF6E20")]
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: 0x0600A36C RID: 41836 RVA: 0x002287F0 File Offset: 0x002269F0
[Token(Token = "0x600A36C")]
[Address(RVA = "0xCF73B0", Offset = "0xCF63B0", VA = "0x180CF73B0")]
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: 0x0600A36D RID: 41837 RVA: 0x002288F8 File Offset: 0x00226AF8
[Token(Token = "0x600A36D")]
[Address(RVA = "0xCF7140", Offset = "0xCF6140", VA = "0x180CF7140")]
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: 0x0600A36E RID: 41838 RVA: 0x00228A00 File Offset: 0x00226C00
[Token(Token = "0x600A36E")]
[Address(RVA = "0xCF7C30", Offset = "0xCF6C30", VA = "0x180CF7C30")]
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: 0x0600A36F RID: 41839 RVA: 0x00228A40 File Offset: 0x00226C40
[Token(Token = "0x600A36F")]
[Address(RVA = "0xCF7D00", Offset = "0xCF6D00", VA = "0x180CF7D00")]
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: 0x0600A370 RID: 41840 RVA: 0x00228A90 File Offset: 0x00226C90
[Token(Token = "0x600A370")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
protected Nat224()
{
}
// Token: 0x04006C11 RID: 27665
[Token(Token = "0x4006C11")]
private const ulong M = 4294967295UL;
}
}
@@ -0,0 +1,1872 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw
{
// Token: 0x02001ABF RID: 6847
[Token(Token = "0x2001ABF")]
internal abstract class Nat256
{
// Token: 0x0600A371 RID: 41841 RVA: 0x00228AA4 File Offset: 0x00226CA4
[Token(Token = "0x600A371")]
[Address(RVA = "0xCF9260", Offset = "0xCF8260", VA = "0x180CF9260")]
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 = y[3];
uint num14 = x[3];
num13 += num11;
num13 += num14;
z[3] = num13;
uint num15 = x[3];
uint num16 = y[3];
num16 += num13;
num16 += num15;
z[3] = num16;
return num16;
}
// Token: 0x0600A372 RID: 41842 RVA: 0x00228BF0 File Offset: 0x00226DF0
[Token(Token = "0x600A372")]
[Address(RVA = "0xCF8E90", Offset = "0xCF7E90", VA = "0x180CF8E90")]
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[num5];
uint num16 = y[num5];
num16 += num14;
num16 += num15;
uint num17 = x[yOff];
uint num18 = y[yOff];
num18 += num16;
return num18 + num17;
}
// Token: 0x0600A373 RID: 41843 RVA: 0x00228D10 File Offset: 0x00226F10
[Token(Token = "0x600A373")]
[Address(RVA = "0xCF7DD0", Offset = "0xCF6DD0", VA = "0x180CF7DD0")]
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 = y[1];
num2 += num10;
uint num11 = x[1];
num2 += num11;
uint num12 = z[1];
num2 += num12;
z[1] = num2;
uint num13 = z[2];
num2 += num13;
uint num14 = y[2];
num2 += num14;
uint num15 = x[2];
num2 += num15;
z[2] = num2;
uint num16 = z[2];
num2 += num16;
uint num17 = y[2];
num2 += num17;
uint num18 = x[2];
num2 += num18;
z[2] = num2;
uint num19 = z[3];
num2 += num19;
uint num20 = y[3];
num2 += num20;
uint num21 = x[3];
num2 += num21;
z[3] = num2;
uint num22 = x[3];
uint num23 = y[3];
uint num24 = z[3];
num2 += num23;
num2 += num22;
num2 += num24;
z[3] = num2;
return num2;
}
// Token: 0x0600A374 RID: 41844 RVA: 0x00228EAC File Offset: 0x002270AC
[Token(Token = "0x600A374")]
[Address(RVA = "0xCF8160", Offset = "0xCF7160", VA = "0x180CF8160")]
public static uint AddBothTo(uint[] x, int xOff, uint[] y, int yOff, uint[] z, int zOff)
{
uint num = y[yOff];
uint num2 = x[xOff];
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];
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];
uint num15 = x[(int)num14];
uint num16 = y[(int)num14];
uint num17 = x[xOff];
uint num18 = y[yOff];
num16 += num18;
return num16 + num17;
}
// Token: 0x0600A375 RID: 41845 RVA: 0x00228F70 File Offset: 0x00227170
[Token(Token = "0x600A375")]
[Address(RVA = "0xCF8940", Offset = "0xCF7940", VA = "0x180CF8940")]
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 = z[1];
num += num7;
uint num8 = x[1];
num += num8;
z[1] = num;
uint num9 = z[2];
num += num9;
uint num10 = x[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];
num += num13;
uint num14 = z[3];
num += num14;
z[3] = num;
uint num15 = x[3];
uint num16 = z[3];
num += num16;
num += num15;
z[3] = num;
return num;
}
// Token: 0x0600A376 RID: 41846 RVA: 0x0022909C File Offset: 0x0022729C
[Token(Token = "0x600A376")]
[Address(RVA = "0xCF8BC0", Offset = "0xCF7BC0", VA = "0x180CF8BC0")]
public static uint AddTo(uint[] x, int xOff, uint[] z, int zOff, uint cIn)
{
uint num = x[xOff];
uint num2 = z[xOff];
num += num2;
int num3 = xOff + 1;
z[0] = num;
uint num4 = x[num3];
int num5 = xOff + 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[(int)num11];
uint num14 = z[num5];
num14 += num12;
num14 += num13;
z[0] = num14;
uint num15 = x[(int)num13];
uint num16 = z[num5];
num16 += num14;
num16 += num15;
z[0] = num16;
uint num17 = x[xOff];
uint num18 = z[xOff];
num18 += num16;
num18 += num17;
z[0] = num18;
return num18;
}
// Token: 0x0600A377 RID: 41847 RVA: 0x002291FC File Offset: 0x002273FC
[Token(Token = "0x600A377")]
[Address(RVA = "0xCF8570", Offset = "0xCF7570", VA = "0x180CF8570")]
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[num4];
uint num12 = u[num3];
num11 += num9;
num11 += num12;
u[0] = num11;
v[0] = num11;
uint num13 = v[num4];
uint num14 = u[num3];
num13 += num11;
num13 += num14;
u[0] = num13;
v[0] = num13;
uint num15 = v[num4];
uint num16 = u[num3];
num15 += num13;
num15 += num16;
u[0] = num15;
v[0] = num15;
uint num17 = v[uOff];
uint num18 = u[(int)num13];
num17 += num15;
num17 += num18;
u[0] = num17;
v[0] = num17;
return num17;
}
// Token: 0x0600A378 RID: 41848 RVA: 0x002293A0 File Offset: 0x002275A0
[Token(Token = "0x600A378")]
[Address(RVA = "0xCF97E0", Offset = "0xCF87E0", VA = "0x180CF97E0")]
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;
uint num8 = x[3];
z[3] = num8;
}
// Token: 0x0600A379 RID: 41849 RVA: 0x0022943C File Offset: 0x0022763C
[Token(Token = "0x600A379")]
[Address(RVA = "0xCF99E0", Offset = "0xCF89E0", VA = "0x180CF99E0")]
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[num4];
z[0] = num9;
uint num10 = x[xOff];
z[0] = num10;
}
// Token: 0x0600A37A RID: 41850 RVA: 0x002294E4 File Offset: 0x002276E4
[Token(Token = "0x600A37A")]
[Address(RVA = "0xCF96F0", Offset = "0xCF86F0", VA = "0x180CF96F0")]
public static void Copy64(ulong[] x, ulong[] z)
{
ulong num = x[0];
z[0] = num;
ulong num2 = x[1];
z[1] = num2;
ulong num3 = x[2];
z[2] = num3;
ulong num4 = x[3];
z[3] = num4;
}
// Token: 0x0600A37B RID: 41851 RVA: 0x00229538 File Offset: 0x00227738
[Token(Token = "0x600A37B")]
[Address(RVA = "0xCF95B0", Offset = "0xCF85B0", VA = "0x180CF95B0")]
public static void Copy64(ulong[] x, int xOff, ulong[] z, int zOff)
{
ulong num = x[xOff];
int num2 = xOff + 1;
z[0] = num;
ulong num3 = x[num2];
int num4 = xOff + 1;
z[0] = num3;
ulong num5 = x[num4];
z[0] = num5;
ulong num6 = x[num4];
z[0] = num6;
}
// Token: 0x0600A37C RID: 41852 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A37C")]
[Address(RVA = "0xCF9CF0", Offset = "0xCF8CF0", VA = "0x180CF9CF0")]
public static uint[] Create()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A37D RID: 41853 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A37D")]
[Address(RVA = "0xCF9C30", Offset = "0xCF8C30", VA = "0x180CF9C30")]
public static ulong[] Create64()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A37E RID: 41854 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A37E")]
[Address(RVA = "0xCF9CB0", Offset = "0xCF8CB0", VA = "0x180CF9CB0")]
public static uint[] CreateExt()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A37F RID: 41855 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A37F")]
[Address(RVA = "0xCF9C70", Offset = "0xCF8C70", VA = "0x180CF9C70")]
public static ulong[] CreateExt64()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A380 RID: 41856 RVA: 0x00229598 File Offset: 0x00227798
[Token(Token = "0x600A380")]
[Address(RVA = "0xCF9D30", Offset = "0xCF8D30", VA = "0x180CF9D30")]
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: 0x0600A381 RID: 41857 RVA: 0x002295B8 File Offset: 0x002277B8
[Token(Token = "0x600A381")]
[Address(RVA = "0xCF9EA0", Offset = "0xCF8EA0", VA = "0x180CF9EA0")]
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: 0x0600A382 RID: 41858 RVA: 0x002295DC File Offset: 0x002277DC
[Token(Token = "0x600A382")]
[Address(RVA = "0xCF9E30", Offset = "0xCF8E30", VA = "0x180CF9E30")]
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: 0x0600A383 RID: 41859 RVA: 0x00229600 File Offset: 0x00227800
[Token(Token = "0x600A383")]
[Address(RVA = "0xCFA040", Offset = "0xCF9040", VA = "0x180CFA040")]
public static uint[] FromBigInteger(BigInteger x)
{
int bitLength = x.BitLength;
uint[] array = new uint[8];
int num = 0;
if (x.sign != 0)
{
num++;
int intValue = x.IntValue;
array[0] = (uint)intValue;
BigInteger bigInteger = x.ShiftRight(32);
}
return array;
}
// Token: 0x0600A384 RID: 41860 RVA: 0x0022964C File Offset: 0x0022784C
[Token(Token = "0x600A384")]
[Address(RVA = "0xCF9F10", Offset = "0xCF8F10", VA = "0x180CF9F10")]
public static ulong[] FromBigInteger64(BigInteger x)
{
int bitLength = x.BitLength;
ulong[] array = new ulong[4];
int num = 0;
if (x.sign != 0)
{
num++;
long longValue = x.LongValue;
array[0] = (ulong)longValue;
BigInteger bigInteger = x.ShiftRight(64);
}
return array;
}
// Token: 0x0600A385 RID: 41861 RVA: 0x00229698 File Offset: 0x00227898
[Token(Token = "0x600A385")]
[Address(RVA = "0xCFA170", Offset = "0xCF9170", VA = "0x180CFA170")]
public static uint GetBit(uint[] x, int bit)
{
if (bit != 0)
{
if (bit == 0)
{
return x[bit];
}
}
return x[0];
}
// Token: 0x0600A386 RID: 41862 RVA: 0x002296C4 File Offset: 0x002278C4
[Token(Token = "0x600A386")]
[Address(RVA = "0xCFA1F0", Offset = "0xCF91F0", VA = "0x180CFA1F0")]
public static bool Gte(uint[] x, uint[] y)
{
uint num2;
uint num = y[(int)num2];
if (x[(int)num2] <= num)
{
}
throw new NullReferenceException();
}
// Token: 0x0600A387 RID: 41863 RVA: 0x002296EC File Offset: 0x002278EC
[Token(Token = "0x600A387")]
[Address(RVA = "0xCFA270", Offset = "0xCF9270", VA = "0x180CFA270")]
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: 0x0600A388 RID: 41864 RVA: 0x00229710 File Offset: 0x00227910
[Token(Token = "0x600A388")]
[Address(RVA = "0xCFA360", Offset = "0xCF9360", VA = "0x180CFA360")]
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: 0x0600A389 RID: 41865 RVA: 0x00229744 File Offset: 0x00227944
[Token(Token = "0x600A389")]
[Address(RVA = "0xCFA2F0", Offset = "0xCF92F0", VA = "0x180CFA2F0")]
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: 0x0600A38A RID: 41866 RVA: 0x00229778 File Offset: 0x00227978
[Token(Token = "0x600A38A")]
[Address(RVA = "0xCFA420", Offset = "0xCF9420", VA = "0x180CFA420")]
public static bool IsZero(uint[] x)
{
int num = 0;
if ("{il2cpp array field x->}" == (ulong)0L)
{
num++;
return true;
}
throw new NullReferenceException();
}
// Token: 0x0600A38B RID: 41867 RVA: 0x002297A0 File Offset: 0x002279A0
[Token(Token = "0x600A38B")]
[Address(RVA = "0xCFA3D0", Offset = "0xCF93D0", VA = "0x180CFA3D0")]
public static bool IsZero64(ulong[] x)
{
int num = 0;
if ("{il2cpp array field x->}" == (ulong)0L)
{
num++;
return true;
}
throw new NullReferenceException();
}
// Token: 0x0600A38C RID: 41868 RVA: 0x002297C8 File Offset: 0x002279C8
[Token(Token = "0x600A38C")]
[Address(RVA = "0xCFC080", Offset = "0xCFB080", VA = "0x180CFC080")]
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 = y[3];
uint num9 = x[0];
uint num10 = num9 * num;
zz[0] = num10;
uint num11 = num9 * num2;
num11 += num10;
zz[0] = num11;
num10 = num9;
uint num12 = num10 * num3;
num12 += num11;
zz[1] = num12;
num11 = num9;
uint num13 = num11 * num4;
num13 += num12;
zz[1] = num13;
num12 = num9;
uint num14 = num12 * num5;
num14 += num13;
zz[2] = num14;
num13 = num9;
uint num15 = num13 * num6;
num15 += num14;
zz[2] = num15;
num14 = num9;
uint num16 = num14 * num7;
num16 += num15;
uint num17 = num9 * num8;
zz[3] = num16;
num17 += num16;
zz[3] = num17;
zz[4] = num17;
uint num19;
uint num18 = x[(int)num19];
uint num20 = num19 + 1U;
num3 = num18;
uint num21 = num3 * num;
num21 += num17;
zz.m_value = num21;
uint num22 = zz[(int)num20];
num17 = num18;
uint num23 = num17 * num2;
num22 += num23;
num22 += num21;
zz[0] = num22;
uint num24 = zz[(int)num20];
num23 = num18;
num24 += num23;
num24 += num22;
zz[0] = num24;
uint num25 = zz[(int)num20];
num23 = num18;
num25 += num23;
num25 += num24;
zz[0] = num25;
uint num26 = zz[(int)num20];
num23 = num18;
num26 += num23;
num26 += num25;
zz[0] = num26;
uint num27 = zz[(int)num20];
num23 = num18;
uint num28 = num23 * num6;
num27 += num28;
num27 += num26;
zz[0] = num27;
uint num29 = zz[(int)num20];
num28 = num18;
uint num30 = num28 * num7;
num19 += (uint)7;
num29 += num30;
num29 += num27;
zz[0] = num29;
uint num31 = zz[(int)num19];
uint num32 = num18 * num8;
num31 += num32;
num31 += num29;
zz[0] = num31;
num19 += (uint)1;
zz[0] = num31;
}
// Token: 0x0600A38D RID: 41869 RVA: 0x00229A54 File Offset: 0x00227C54
[Token(Token = "0x600A38D")]
[Address(RVA = "0xCFBAF0", Offset = "0xCFAAF0", VA = "0x180CFBAF0")]
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[(int)num4];
uint num6 = y[(int)num5];
uint num7 = y[(int)num5];
uint num8 = y[(int)num5];
uint num9 = y[yOff];
uint num10 = x[xOff];
uint num11 = num10 * num;
uint num12 = num10 * num3;
num12 += num11;
num11 = num10;
num11 += num12;
num12 = num10;
num12 += num11;
num11 = num10;
uint num13 = num11 * num6;
num13 += num12;
num12 = num10;
uint num14 = num12 * num7;
num14 += num13;
num13 = num10;
uint num15 = num13 * num8;
num15 += num14;
uint num16 = num10 * num9;
num16 += num15;
int num17 = xOff + 1;
uint num18 = x[num17];
num14 = num18;
uint num19 = num14 * num;
num19 += (uint)num17;
num19 += num18;
num19 += num18;
uint num20 = num18 * num7;
num20 = num18;
uint num21 = num20 * num8;
num19 += num21;
uint num22 = num18 * num9;
num21 += num22;
num21 += num19;
num17++;
num17 -= xOff;
}
// Token: 0x0600A38E RID: 41870 RVA: 0x00229B9C File Offset: 0x00227D9C
[Token(Token = "0x600A38E")]
[Address(RVA = "0xCFAED0", Offset = "0xCF9ED0", VA = "0x180CFAED0")]
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];
uint num8 = y[3];
int num9 = 0;
uint num10 = x[num9];
uint num11 = num10 * num;
num11 += (uint)length;
zz.m_value = num11;
uint num12;
num12 += num10;
num12 += num11;
zz[0] = num12;
uint num13;
num13 += num10;
num13 += num12;
zz[0] = num13;
uint num14;
num14 += num10;
num14 += num13;
zz[0] = num14;
uint num15;
num15 += num10;
num15 += num14;
zz[0] = num15;
uint num16 = num10 * num6;
uint num17;
num17 += num16;
num17 += num15;
zz[0] = num17;
num16 = num10;
uint num18 = num16 * num7;
uint num19;
num19 += num18;
num19 += num17;
zz[0] = num19;
uint num20 = num10 * num8;
uint num21;
num21 += num20;
num21 += num19;
zz[0] = num21;
num9++;
uint num22;
num9 += (int)num22;
num9 += (int)num21;
zz[0] = (uint)num9;
throw new NullReferenceException();
}
// Token: 0x0600A38F RID: 41871 RVA: 0x00229CF4 File Offset: 0x00227EF4
[Token(Token = "0x600A38F")]
[Address(RVA = "0xCFAAF0", Offset = "0xCF9AF0", VA = "0x180CFAAF0")]
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)num6];
uint num8 = y[(int)num7];
int num9 = 0;
uint num10 = y[yOff];
uint num11 = x[length];
uint num12 = num11 * num;
num12 += (uint)length;
num12 += num11;
num12 += num11;
num12 += num11;
uint num13 = num11 * num10;
num9 += (int)num11;
throw new NullReferenceException();
}
// Token: 0x0600A390 RID: 41872 RVA: 0x00229D98 File Offset: 0x00227F98
[Token(Token = "0x600A390")]
[Address(RVA = "0xCFA470", Offset = "0xCF9470", VA = "0x180CFA470")]
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 = x[(int)num18];
uint num21 = y[(int)num18];
num19 = num20;
uint num22 = num19 * w;
num22 += num17;
num22 += num21;
num3 += num22;
uint num23 = num22 * w;
num23 += num20;
uint num24;
num23 += num24;
num3 += num23;
throw new NullReferenceException();
}
// Token: 0x0600A391 RID: 41873 RVA: 0x00229EF8 File Offset: 0x002280F8
[Token(Token = "0x600A391")]
[Address(RVA = "0xCFB4F0", Offset = "0xCFA4F0", VA = "0x180CFB4F0")]
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;
uint num8 = z[3] * x;
num8 += num7;
z[3] = num8;
return num8;
}
// Token: 0x0600A392 RID: 41874 RVA: 0x00229FCC File Offset: 0x002281CC
[Token(Token = "0x600A392")]
[Address(RVA = "0xCFB250", Offset = "0xCFA250", VA = "0x180CFB250")]
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;
uint num22 = z[3];
uint num23 = y[3];
uint num24 = num22 * x;
num24 += num23;
num24 += num21;
z[3] = num24;
return num24;
}
// Token: 0x0600A393 RID: 41875 RVA: 0x0022A148 File Offset: 0x00228348
[Token(Token = "0x600A393")]
[Address(RVA = "0xCFB670", Offset = "0xCFA670", VA = "0x180CFB670")]
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] * x;
uint num11;
num11 += num10;
num11 += num9;
z[0] = num11;
uint num12 = y[(int)num10] * x;
uint num13;
num13 += num12;
num13 += num11;
z[0] = num13;
uint num14 = y[(int)num12] * x;
uint num15;
num15 += num14;
num15 += num13;
z[0] = num15;
uint num16 = y[yOff];
uint num17 = z[y];
uint num18 = num16 * x;
num17 += num18;
num17 += num15;
z[0] = num17;
return num17;
}
// Token: 0x0600A394 RID: 41876 RVA: 0x0022A274 File Offset: 0x00228474
[Token(Token = "0x600A394")]
[Address(RVA = "0xCFA8C0", Offset = "0xCF98C0", VA = "0x180CFA8C0")]
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: 0x0600A395 RID: 41877 RVA: 0x0022A314 File Offset: 0x00228514
[Token(Token = "0x600A395")]
[Address(RVA = "0xCFAA10", Offset = "0xCF9A10", VA = "0x180CFAA10")]
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: 0x0600A396 RID: 41878 RVA: 0x0022A38C File Offset: 0x0022858C
[Token(Token = "0x600A396")]
[Address(RVA = "0xCFB970", Offset = "0xCFA970", VA = "0x180CFB970")]
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: 0x0600A397 RID: 41879 RVA: 0x0022A408 File Offset: 0x00228608
[Token(Token = "0x600A397")]
[Address(RVA = "0xCFBA60", Offset = "0xCFAA60", VA = "0x180CFBA60")]
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: 0x0600A398 RID: 41880 RVA: 0x0022A434 File Offset: 0x00228634
[Token(Token = "0x600A398")]
[Address(RVA = "0xCFD000", Offset = "0xCFC000", VA = "0x180CFD000")]
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;
zz[1] = num8;
num4 = num9;
uint num13 = num4 * num6;
num8 = num12;
num13 += num8;
num13 += num10;
num13 += num11;
uint num14 = x[1];
uint num15 = zz[2];
num13 += num15;
uint num16 = zz[3];
num10 = num14;
uint num17 = num10 * num;
num15 = num13;
num17 += num15;
zz[1] = num15;
num15 = num17;
uint num18 = num14 * num6;
num18 += num15;
num15 = num13;
num18 += num15;
num13 = num14;
uint num19 = num13 * num9;
num15 = num18;
num19 += num15;
num15 = num13;
num19 += num15;
num15 = num19;
num13 += num15;
num13 += num16;
int length2 = zz.Length;
uint num20 = x[2];
uint num21 = zz[3];
num12 = num13;
num12 += num21;
uint num22 = zz[4];
num13 = num20;
uint num23 = num13 * num;
num22 = num18;
num23 += num22;
num18 = num20;
zz[2] = num22;
uint num24 = num18 * num6;
uint num25 = num20 * num14;
num22 = num23;
num24 += num22;
num22 = num19;
num24 += num22;
num19 = num20;
uint num26 = num19 * num9;
num22 = num24;
num26 += num22;
num22 = num13;
num26 += num22;
num22 = num26;
num25 += num22;
num22 = num12;
num25 += num22;
num22 = num25;
num12 += num22;
num12 += num22;
uint num27 = x[2];
int length3 = zz.Length;
uint num28 = zz[4];
num13 = num12;
num13 += num28;
uint num29 = zz[5];
uint num30 = num27 * num;
num29 = num24;
num30 += num29;
num23 = num27;
zz[2] = num29;
num29 = num30;
uint num31 = num23 * num6;
num31 += num29;
num29 = num26;
num31 += num29;
num26 = num27;
uint num32 = num26 * num9;
num29 = num31;
num32 += num29;
num29 = num25;
num32 += num29;
num25 = num27;
uint num33 = num25 * num14;
num29 = num32;
num33 += num29;
num29 = num12;
num33 += num29;
num12 = num27;
uint num34 = num12 * num20;
num29 = num33;
num34 += num29;
num29 = num13;
num34 += num29;
num29 = num34;
num13 += num29;
num13 += num29;
uint num35 = x[3];
int length4 = zz.Length;
uint num36 = zz[5];
num31 = num13;
num31 += num36;
uint num37 = zz[6];
uint num38 = num35 * num;
num38 += num31;
num30 = num35;
zz[3] = num31;
num31 = num38;
uint num39 = num30 * num6;
num39 += num31;
num31 = num32;
num39 += num31;
num32 = num35;
num31 = num39;
num39 = num35;
uint num40 = num32 * num9;
uint num41 = num39 * num14;
num40 += num31;
num31 = num33;
num40 += num31;
num33 = num35;
uint num42 = num33 * num20;
num31 = num40;
num41 += num31;
num41 += num34;
num34 = num41;
num42 += num34;
num34 = num13;
num42 += num34;
num13 = num35;
num34 = num42;
num13 += num34;
num34 = num31;
num13 += num34;
num34 = num13;
num31 += num34;
num31 += num37;
int length5 = zz.Length;
uint num43 = x[3];
uint num44 = zz[6];
num13 = num31;
num13 += num44;
uint num45 = zz[7];
uint num46 = num43 * num;
num46 += num39;
num42 = num43;
zz[3] = num39;
num = num43;
uint num47 = num42 * num6;
uint num48 = num * num14;
num38 = num43;
uint num49 = num38 * num20;
num39 = num46;
num47 += num39;
num39 = num40;
num47 += num39;
num40 = num43;
uint num50 = num40 * num9;
num39 = num47;
num50 += num39;
num50 += num41;
num41 = num50;
num48 += num41;
num48 += num42;
num42 = num48;
num49 += num42;
num49 += num13;
num13 = num49;
num43 += num13;
num13 = num31;
num43 += num13;
num13 = num43;
num43 += num13;
num43 += num13;
num13 = num43;
num13 += num13;
num13 += num45;
zz[4] = num45;
zz[4] = num45;
zz[5] = num45;
zz[5] = num45;
zz[6] = num45;
zz[6] = num45;
zz[7] = num45;
num45 = num13;
num45 += num45;
zz[7] = num45;
}
// Token: 0x0600A399 RID: 41881 RVA: 0x0022A970 File Offset: 0x00228B70
[Token(Token = "0x600A399")]
[Address(RVA = "0xCFC580", Offset = "0xCFB580", VA = "0x180CFC580")]
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;
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[length];
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)num11];
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 = zz[(int)num17];
uint num22 = num19 * num;
num21 = num15;
num22 += num21;
zz[0] = num21;
num15 = num19;
num21 = num22;
num15 += num21;
num21 = num15;
num15 += num21;
num15 = num19;
num21 = num15;
num15 += num21;
num21 = num16;
num15 += num21;
num21 = num15;
num19 += num21;
num21 = num20;
num19 += num21;
num21 = num19;
num20 += num21;
num20 += num21;
uint num23 = x[(int)num21];
int length5 = zz.Length;
uint num24 = zz[(int)num21];
num21 = num20;
num24 += num21;
uint num25 = zz[(int)num21];
uint num26 = num23 * num;
num25 = num15;
num26 += num25;
zz[0] = num25;
num11 = num23;
uint num27 = num11 * num10;
num25 = num26;
num23 += num25;
num25 = num15;
num23 += num25;
num25 = num23;
num27 += num25;
num25 = num19;
num27 += num25;
num19 = num23;
uint num28 = num19 * num15;
num25 = num27;
num28 += num25;
num25 = num20;
num28 += num25;
num20 = num23;
num25 = num28;
num20 += num25;
num25 = num24;
num20 += num25;
num25 = num20;
num24 += num25;
num24 += num25;
uint num29 = x[(int)num25];
int length6 = zz.Length;
uint num30 = zz[(int)num27];
num25 = num24;
num30 += num25;
uint num31 = zz[(int)num25];
uint num32 = num29 * num;
num31 = num23;
num32 += num31;
zz[0] = num31;
num23 = num29;
uint num33 = num23 * num6;
num31 = num32;
num33 += num31;
num33 += num27;
num27 = num29;
uint num34 = num27 * num10;
num34 = num33;
num33 = num29;
num34 += num34;
num34 += num28;
num28 = num34;
num34 = num29;
uint num35 = num33 * num15;
num35 += num28;
num35 += num20;
num20 = num35;
num34 += num20;
num20 = num24;
num34 += num20;
num20 = num34;
num29 += num20;
num20 = num30;
num29 += num20;
num20 = num29;
num30 += num20;
num30 += num31;
uint num36 = x[xOff];
int length7 = zz.Length;
uint num37 = zz[xOff];
num31 = num30;
num37 += num31;
uint num38 = zz[(int)num35];
num24 = num36;
uint num39 = num24 * num;
num39 += num33;
num = num36;
zz[0] = num33;
num32 = num36;
uint num40 = num * num6;
num15 = num36;
num6 = num36;
num33 = num39;
num40 += num33;
num40 += num34;
num34 = num40;
num15 += num34;
num15 += num35;
num35 = num15;
num32 += num35;
num32 += num34;
num34 = num32;
num6 += num34;
num6 += num29;
num29 = num6;
num36 += num29;
num29 = num30;
num36 += num29;
num29 = num36;
num36 += num29;
num29 = num37;
num36 += num29;
num29 = num36;
num37 += num29;
num37 += num38;
zz[0] = num38;
zz[0] = num38;
zz[0] = num38;
zz[0] = num38;
zz[0] = num38;
zz[0] = num38;
zz[0] = num38;
num38 = num37;
num38 += num38;
zz[0] = num38;
}
// Token: 0x0600A39A RID: 41882 RVA: 0x0022AE70 File Offset: 0x00229070
[Token(Token = "0x600A39A")]
[Address(RVA = "0xCFE5F0", Offset = "0xCFD5F0", VA = "0x180CFE5F0")]
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 = y[3];
num2 -= num13;
uint num14 = x[3];
num2 += num14;
z[3] = num2;
uint num15 = x[3];
uint num16 = y[3];
num2 -= num16;
num2 += num15;
z[3] = num2;
throw new NullReferenceException();
}
// Token: 0x0600A39B RID: 41883 RVA: 0x0022AF9C File Offset: 0x0022919C
[Token(Token = "0x600A39B")]
[Address(RVA = "0xCFE210", Offset = "0xCFD210", VA = "0x180CFE210")]
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[(int)num14];
uint num16 = y[(int)num14];
num -= num16;
num += num15;
uint num17 = x[yOff];
uint num18 = y[yOff];
num -= num18;
num += num17;
throw new NullReferenceException();
}
// Token: 0x0600A39C RID: 41884 RVA: 0x0022B09C File Offset: 0x0022929C
[Token(Token = "0x600A39C")]
[Address(RVA = "0xCFD940", Offset = "0xCFC940", VA = "0x180CFD940")]
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 = y[3];
num2 -= num19;
uint num20 = x[3];
num2 -= num20;
uint num21 = z[3];
num2 += num21;
z[3] = num2;
uint num22 = x[3];
uint num23 = y[3];
num2 -= num23;
uint num24 = z[3];
num2 -= num22;
num2 += num24;
z[3] = num2;
throw new NullReferenceException();
}
// Token: 0x0600A39D RID: 41885 RVA: 0x0022B238 File Offset: 0x00229438
[Token(Token = "0x600A39D")]
[Address(RVA = "0xCFDF90", Offset = "0xCFCF90", VA = "0x180CFDF90")]
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;
uint num15 = x[3];
num2 -= num15;
uint num16 = z[3];
num2 += num16;
z[3] = num2;
throw new NullReferenceException();
}
// Token: 0x0600A39E RID: 41886 RVA: 0x0022B364 File Offset: 0x00229564
[Token(Token = "0x600A39E")]
[Address(RVA = "0xCFDCD0", Offset = "0xCFCCD0", VA = "0x180CFDCD0")]
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[(int)num13];
num14 -= num15;
uint num16 = z[(int)num12];
num14 += num16;
z[0] = num14;
uint num17 = x[xOff];
uint num18 = z[zOff];
num14 -= num17;
num18 += num14;
z[0] = num18;
throw new NullReferenceException();
}
// Token: 0x0600A39F RID: 41887 RVA: 0x0022B498 File Offset: 0x00229698
[Token(Token = "0x600A39F")]
[Address(RVA = "0xCFEA20", Offset = "0xCFDA20", VA = "0x180CFEA20")]
public static BigInteger ToBigInteger(uint[] x)
{
byte[] array = new byte[32];
int num = 0;
uint num2 = x[num];
if (num2 != (uint)0)
{
Pack.UInt32_To_BE(num2, array, 28);
}
num++;
return new BigInteger(1, array);
}
// Token: 0x0600A3A0 RID: 41888 RVA: 0x0022B4D8 File Offset: 0x002296D8
[Token(Token = "0x600A3A0")]
[Address(RVA = "0xCFE950", Offset = "0xCFD950", VA = "0x180CFE950")]
public static BigInteger ToBigInteger64(ulong[] x)
{
byte[] array = new byte[32];
int num = 0;
ulong num2 = x[num];
if (num2 != (ulong)0L)
{
Pack.UInt64_To_BE(num2, array, 24);
}
num++;
return new BigInteger(1, array);
}
// Token: 0x0600A3A1 RID: 41889 RVA: 0x0022B518 File Offset: 0x00229718
[Token(Token = "0x600A3A1")]
[Address(RVA = "0xCFEAF0", Offset = "0xCFDAF0", VA = "0x180CFEAF0")]
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;
z[3] = (uint)num;
}
// Token: 0x0600A3A2 RID: 41890 RVA: 0x0022B570 File Offset: 0x00229770
[Token(Token = "0x600A3A2")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
protected Nat256()
{
}
// Token: 0x04006C12 RID: 27666
[Token(Token = "0x4006C12")]
private const ulong M = 4294967295UL;
}
}
@@ -0,0 +1,144 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw
{
// Token: 0x02001AC0 RID: 6848
[Token(Token = "0x2001AC0")]
internal abstract class Nat320
{
// Token: 0x0600A3A3 RID: 41891 RVA: 0x0022B584 File Offset: 0x00229784
[Token(Token = "0x600A3A3")]
[Address(RVA = "0xCFEBD0", Offset = "0xCFDBD0", VA = "0x180CFEBD0")]
public static void Copy64(ulong[] x, ulong[] z)
{
ulong num = x[0];
z[0] = num;
ulong num2 = x[1];
z[1] = num2;
ulong num3 = x[2];
z[2] = num3;
ulong num4 = x[3];
z[3] = num4;
ulong num5 = x[4];
z[4] = num5;
}
// Token: 0x0600A3A4 RID: 41892 RVA: 0x0022B5EC File Offset: 0x002297EC
[Token(Token = "0x600A3A4")]
[Address(RVA = "0xCFED20", Offset = "0xCFDD20", VA = "0x180CFED20")]
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;
ulong num5 = x[num4];
z[0] = num5;
ulong num6 = x[xOff];
z[0] = num6;
ulong num7 = x[zOff];
z[0] = num7;
}
// Token: 0x0600A3A5 RID: 41893 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A3A5")]
[Address(RVA = "0xCFEEB0", Offset = "0xCFDEB0", VA = "0x180CFEEB0")]
public static ulong[] Create64()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A3A6 RID: 41894 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A3A6")]
[Address(RVA = "0xCFEEF0", Offset = "0xCFDEF0", VA = "0x180CFEEF0")]
public static ulong[] CreateExt64()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A3A7 RID: 41895 RVA: 0x0022B660 File Offset: 0x00229860
[Token(Token = "0x600A3A7")]
[Address(RVA = "0xCFEF30", Offset = "0xCFDF30", VA = "0x180CFEF30")]
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: 0x0600A3A8 RID: 41896 RVA: 0x0022B684 File Offset: 0x00229884
[Token(Token = "0x600A3A8")]
[Address(RVA = "0xCFEFA0", Offset = "0xCFDFA0", VA = "0x180CFEFA0")]
public static ulong[] FromBigInteger64(BigInteger x)
{
int bitLength = x.BitLength;
ulong[] array = new ulong[5];
int num = 0;
if (x.sign != 0)
{
num++;
long longValue = x.LongValue;
array[0] = (ulong)longValue;
BigInteger bigInteger = x.ShiftRight(64);
}
return array;
}
// Token: 0x0600A3A9 RID: 41897 RVA: 0x0022B6D0 File Offset: 0x002298D0
[Token(Token = "0x600A3A9")]
[Address(RVA = "0xCFF0D0", Offset = "0xCFE0D0", VA = "0x180CFF0D0")]
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: 0x0600A3AA RID: 41898 RVA: 0x0022B704 File Offset: 0x00229904
[Token(Token = "0x600A3AA")]
[Address(RVA = "0xCFF140", Offset = "0xCFE140", VA = "0x180CFF140")]
public static bool IsZero64(ulong[] x)
{
int num = 0;
if ("{il2cpp array field x->}" == (ulong)0L)
{
num++;
return true;
}
throw new NullReferenceException();
}
// Token: 0x0600A3AB RID: 41899 RVA: 0x0022B72C File Offset: 0x0022992C
[Token(Token = "0x600A3AB")]
[Address(RVA = "0xCFF190", Offset = "0xCFE190", VA = "0x180CFF190")]
public static BigInteger ToBigInteger64(ulong[] x)
{
byte[] array = new byte[40];
int num = 0;
ulong num2 = x[num];
if (num2 != (ulong)0L)
{
Pack.UInt64_To_BE(num2, array, 32);
}
num++;
return new BigInteger(1, array);
}
// Token: 0x0600A3AC RID: 41900 RVA: 0x0022B76C File Offset: 0x0022996C
[Token(Token = "0x600A3AC")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
protected Nat320()
{
}
}
}
@@ -0,0 +1,78 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw
{
// Token: 0x02001AC1 RID: 6849
[Token(Token = "0x2001AC1")]
internal abstract class Nat384
{
// Token: 0x0600A3AD RID: 41901 RVA: 0x0022B780 File Offset: 0x00229980
[Token(Token = "0x600A3AD")]
[Address(RVA = "0xCFF260", Offset = "0xCFE260", VA = "0x180CFF260")]
public static void Mul(uint[] x, uint[] y, uint[] zz)
{
Nat192.Mul(x, y, zz);
int num = 0;
uint num2;
ulong num3;
Nat192.Mul(x, (int)num2, y, (int)num2, zz, (int)num3);
uint num4 = Nat192.AddToEachOther(zz, 6, zz, 12);
int num5 = 0;
uint num6 = Nat192.AddTo(zz, num5, zz, 6, (uint)num);
num6 += num4;
uint num7 = Nat192.AddTo(zz, 18, zz, 12, num6);
uint[] array = Nat192.Create();
uint[] array2 = Nat192.Create();
int num8 = 0;
bool flag = Nat192.Diff(x, 6, x, num8, array, num);
int num9 = 0;
int num10 = 0;
bool flag2 = Nat192.Diff(y, 6, y, num9, array2, num10);
uint[] array3 = Nat192.CreateExt();
Nat192.Mul(array, array2, array3);
int num11 = 0;
if (flag != flag2)
{
ulong num13;
uint num12 = Nat.AddTo(12, array3, num11, zz, (int)num13);
}
ulong num15;
int num14 = Nat.SubFrom(12, array3, num11, zz, (int)num15);
uint num17;
uint num16 = Nat.AddWordAt(12, array3, zz, (int)num17);
}
// Token: 0x0600A3AE RID: 41902 RVA: 0x0022B860 File Offset: 0x00229A60
[Token(Token = "0x600A3AE")]
[Address(RVA = "0xCFF400", Offset = "0xCFE400", VA = "0x180CFF400")]
public static void Square(uint[] x, uint[] zz)
{
Nat192.Square(x, zz);
int num = 0;
Nat192.Square(x, 6, zz, 12);
uint num2 = Nat192.AddToEachOther(zz, 6, zz, 12);
int num3 = 0;
uint num4 = Nat192.AddTo(zz, num3, zz, 6, (uint)num);
num4 += num2;
uint num5 = Nat192.AddTo(zz, 18, zz, 12, num4);
uint[] array = Nat192.Create();
int num6 = 0;
bool flag = Nat192.Diff(x, 6, x, num6, array, num);
uint[] array2 = Nat192.CreateExt();
Nat192.Square(array, array2);
int num7 = 0;
ulong num9;
int num8 = Nat.SubFrom(12, array2, num7, zz, (int)num9);
array2 += num2;
uint num10 = Nat.AddWordAt(24, array2, zz, 18);
}
// Token: 0x0600A3AF RID: 41903 RVA: 0x0022B900 File Offset: 0x00229B00
[Token(Token = "0x600A3AF")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
protected Nat384()
{
}
}
}
@@ -0,0 +1,152 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw
{
// Token: 0x02001AC2 RID: 6850
[Token(Token = "0x2001AC2")]
internal abstract class Nat448
{
// Token: 0x0600A3B0 RID: 41904 RVA: 0x0022B914 File Offset: 0x00229B14
[Token(Token = "0x600A3B0")]
[Address(RVA = "0xCFF740", Offset = "0xCFE740", VA = "0x180CFF740")]
public static void Copy64(ulong[] x, ulong[] z)
{
ulong num = x[0];
z[0] = num;
ulong num2 = x[1];
z[1] = num2;
ulong num3 = x[2];
z[2] = num3;
ulong num4 = x[3];
z[3] = num4;
ulong num5 = x[4];
z[4] = num5;
ulong num6 = x[5];
z[5] = num6;
ulong num7 = x[6];
z[6] = num7;
}
// Token: 0x0600A3B1 RID: 41905 RVA: 0x0022B9A0 File Offset: 0x00229BA0
[Token(Token = "0x600A3B1")]
[Address(RVA = "0xCFF530", Offset = "0xCFE530", VA = "0x180CFF530")]
public static void Copy64(ulong[] x, int xOff, ulong[] z, int zOff)
{
ulong num = x[xOff];
int num2 = xOff + 1;
z.m_value = num;
ulong num3 = x[num2];
int num4 = xOff + 1;
z[0] = num3;
ulong num5 = x[num4];
z[0] = num5;
ulong num6 = x[num4];
z[0] = num6;
ulong num7;
z[0] = num7;
ulong num8 = x[(int)num7];
z[0] = num8;
ulong num9 = x[xOff];
z[0] = num9;
}
// Token: 0x0600A3B2 RID: 41906 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A3B2")]
[Address(RVA = "0xCFF910", Offset = "0xCFE910", VA = "0x180CFF910")]
public static ulong[] Create64()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A3B3 RID: 41907 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A3B3")]
[Address(RVA = "0xCFF950", Offset = "0xCFE950", VA = "0x180CFF950")]
public static ulong[] CreateExt64()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A3B4 RID: 41908 RVA: 0x0022BA2C File Offset: 0x00229C2C
[Token(Token = "0x600A3B4")]
[Address(RVA = "0xCFF990", Offset = "0xCFE990", VA = "0x180CFF990")]
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: 0x0600A3B5 RID: 41909 RVA: 0x0022BA50 File Offset: 0x00229C50
[Token(Token = "0x600A3B5")]
[Address(RVA = "0xCFFA00", Offset = "0xCFEA00", VA = "0x180CFFA00")]
public static ulong[] FromBigInteger64(BigInteger x)
{
int bitLength = x.BitLength;
ulong[] array = new ulong[7];
int num = 0;
if (x.sign != 0)
{
num++;
long longValue = x.LongValue;
array[0] = (ulong)longValue;
BigInteger bigInteger = x.ShiftRight(64);
}
return array;
}
// Token: 0x0600A3B6 RID: 41910 RVA: 0x0022BA9C File Offset: 0x00229C9C
[Token(Token = "0x600A3B6")]
[Address(RVA = "0xCFFB30", Offset = "0xCFEB30", VA = "0x180CFFB30")]
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: 0x0600A3B7 RID: 41911 RVA: 0x0022BAD0 File Offset: 0x00229CD0
[Token(Token = "0x600A3B7")]
[Address(RVA = "0xCFFBA0", Offset = "0xCFEBA0", VA = "0x180CFFBA0")]
public static bool IsZero64(ulong[] x)
{
int num = 0;
if ("{il2cpp array field x->}" == (ulong)0L)
{
num++;
return true;
}
throw new NullReferenceException();
}
// Token: 0x0600A3B8 RID: 41912 RVA: 0x0022BAF8 File Offset: 0x00229CF8
[Token(Token = "0x600A3B8")]
[Address(RVA = "0xCFFBF0", Offset = "0xCFEBF0", VA = "0x180CFFBF0")]
public static BigInteger ToBigInteger64(ulong[] x)
{
byte[] array = new byte[56];
int num = 0;
ulong num2 = x[num];
if (num2 != (ulong)0L)
{
Pack.UInt64_To_BE(num2, array, 48);
}
num++;
return new BigInteger(1, array);
}
// Token: 0x0600A3B9 RID: 41913 RVA: 0x0022BB38 File Offset: 0x00229D38
[Token(Token = "0x600A3B9")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
protected Nat448()
{
}
}
}
@@ -0,0 +1,78 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw
{
// Token: 0x02001AC3 RID: 6851
[Token(Token = "0x2001AC3")]
internal abstract class Nat512
{
// Token: 0x0600A3BA RID: 41914 RVA: 0x0022BB4C File Offset: 0x00229D4C
[Token(Token = "0x600A3BA")]
[Address(RVA = "0xCFFCC0", Offset = "0xCFECC0", VA = "0x180CFFCC0")]
public static void Mul(uint[] x, uint[] y, uint[] zz)
{
Nat256.Mul(x, y, zz);
int num = 0;
uint num2;
ulong num3;
Nat256.Mul(x, (int)num2, y, (int)num2, zz, (int)num3);
uint num4 = Nat256.AddToEachOther(zz, 8, zz, 16);
int num5 = 0;
uint num6 = Nat256.AddTo(zz, num5, zz, 8, (uint)num);
num6 += num4;
uint num7 = Nat256.AddTo(zz, 24, zz, 16, num6);
uint[] array = new uint[8];
uint[] array2 = new uint[8];
int num8 = 0;
bool flag = Nat256.Diff(x, 8, x, num8, array, num);
int num9 = 0;
bool flag2 = Nat256.Diff(y, 8, y, num9, array2, num);
bool flag3 = flag != flag2;
uint[] array3 = new uint[16];
Nat256.Mul(array, array2, array3);
int num10 = 0;
ulong num12;
if (flag3)
{
uint num11 = Nat.AddTo(16, array3, num10, zz, (int)num12);
}
int num13 = Nat.SubFrom(16, array3, num10, zz, (int)num12);
uint num15;
uint num14 = Nat.AddWordAt(16, array3, zz, (int)num15);
}
// Token: 0x0600A3BB RID: 41915 RVA: 0x0022BC28 File Offset: 0x00229E28
[Token(Token = "0x600A3BB")]
[Address(RVA = "0xCFFEC0", Offset = "0xCFEEC0", VA = "0x180CFFEC0")]
public static void Square(uint[] x, uint[] zz)
{
Nat256.Square(x, zz);
int num = 0;
Nat256.Square(x, 8, zz, 16);
uint num2 = Nat256.AddToEachOther(zz, 8, zz, 16);
int num3 = 0;
uint num4 = Nat256.AddTo(zz, num3, zz, 8, (uint)num);
num4 += num2;
uint num5 = Nat256.AddTo(zz, 24, zz, 16, num4);
num2 += num5;
uint[] array = new uint[8];
int num6 = 0;
bool flag = Nat256.Diff(x, 8, x, num6, array, num);
uint[] array2 = new uint[16];
Nat256.Square(array, array2);
int num7 = 0;
ulong num9;
int num8 = Nat.SubFrom(16, array2, num7, zz, (int)num9);
uint num11;
uint num10 = Nat.AddWordAt(16, array2, zz, (int)num11);
}
// Token: 0x0600A3BC RID: 41916 RVA: 0x0022BCC4 File Offset: 0x00229EC4
[Token(Token = "0x600A3BC")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
protected Nat512()
{
}
}
}
@@ -0,0 +1,160 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw
{
// Token: 0x02001AC4 RID: 6852
[Token(Token = "0x2001AC4")]
internal abstract class Nat576
{
// Token: 0x0600A3BD RID: 41917 RVA: 0x0022BCD8 File Offset: 0x00229ED8
[Token(Token = "0x600A3BD")]
[Address(RVA = "0xD00040", Offset = "0xCFF040", VA = "0x180D00040")]
public static void Copy64(ulong[] x, ulong[] z)
{
ulong num = x[0];
z[0] = num;
ulong num2 = x[1];
z[1] = num2;
ulong num3 = x[2];
z[2] = num3;
ulong num4 = x[3];
z[3] = num4;
ulong num5 = x[4];
z[4] = num5;
ulong num6 = x[5];
z[5] = num6;
ulong num7 = x[6];
z[6] = num7;
ulong num8 = x[7];
z[7] = num8;
ulong num9 = x[8];
z[8] = num9;
}
// Token: 0x0600A3BE RID: 41918 RVA: 0x0022BD88 File Offset: 0x00229F88
[Token(Token = "0x600A3BE")]
[Address(RVA = "0xD00280", Offset = "0xCFF280", VA = "0x180D00280")]
public static void Copy64(ulong[] x, int xOff, ulong[] z, int zOff)
{
ulong num = x[xOff];
int num2 = xOff + 1;
z.m_value = num;
ulong num3 = x[num2];
int num4 = xOff + 1;
z[0] = num3;
ulong num5 = x[num4];
z[0] = num5;
ulong num6 = x[num4];
z[0] = num6;
ulong num7;
z[0] = num7;
ulong num8 = x[(int)num7];
z[0] = num8;
ulong num9 = x[(int)num7];
z[0] = num9;
ulong num10 = x[(int)num7];
z[0] = num10;
ulong num11 = x[xOff];
z[0] = num11;
}
// Token: 0x0600A3BF RID: 41919 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A3BF")]
[Address(RVA = "0xD00520", Offset = "0xCFF520", VA = "0x180D00520")]
public static ulong[] Create64()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A3C0 RID: 41920 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A3C0")]
[Address(RVA = "0xD00560", Offset = "0xCFF560", VA = "0x180D00560")]
public static ulong[] CreateExt64()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A3C1 RID: 41921 RVA: 0x0022BE3C File Offset: 0x0022A03C
[Token(Token = "0x600A3C1")]
[Address(RVA = "0xD005A0", Offset = "0xCFF5A0", VA = "0x180D005A0")]
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: 0x0600A3C2 RID: 41922 RVA: 0x0022BE60 File Offset: 0x0022A060
[Token(Token = "0x600A3C2")]
[Address(RVA = "0xD00610", Offset = "0xCFF610", VA = "0x180D00610")]
public static ulong[] FromBigInteger64(BigInteger x)
{
int bitLength = x.BitLength;
ulong[] array = new ulong[9];
int num = 0;
if (x.sign != 0)
{
num++;
long longValue = x.LongValue;
array[0] = (ulong)longValue;
BigInteger bigInteger = x.ShiftRight(64);
}
return array;
}
// Token: 0x0600A3C3 RID: 41923 RVA: 0x0022BEAC File Offset: 0x0022A0AC
[Token(Token = "0x600A3C3")]
[Address(RVA = "0xD00740", Offset = "0xCFF740", VA = "0x180D00740")]
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: 0x0600A3C4 RID: 41924 RVA: 0x0022BEE0 File Offset: 0x0022A0E0
[Token(Token = "0x600A3C4")]
[Address(RVA = "0xD007B0", Offset = "0xCFF7B0", VA = "0x180D007B0")]
public static bool IsZero64(ulong[] x)
{
int num = 0;
if ("{il2cpp array field x->}" == (ulong)0L)
{
num++;
return true;
}
throw new NullReferenceException();
}
// Token: 0x0600A3C5 RID: 41925 RVA: 0x0022BF08 File Offset: 0x0022A108
[Token(Token = "0x600A3C5")]
[Address(RVA = "0xD00800", Offset = "0xCFF800", VA = "0x180D00800")]
public static BigInteger ToBigInteger64(ulong[] x)
{
byte[] array = new byte[72];
int num = 0;
ulong num2 = x[num];
if (num2 != (ulong)0L)
{
Pack.UInt64_To_BE(num2, array, 64);
}
num++;
return new BigInteger(1, array);
}
// Token: 0x0600A3C6 RID: 41926 RVA: 0x0022BF48 File Offset: 0x0022A148
[Token(Token = "0x600A3C6")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
protected Nat576()
{
}
}
}