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