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