using System; using System.Runtime.InteropServices; using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Field; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Abc { // Token: 0x020014E3 RID: 5347 [Token(Token = "0x20014E3")] [StructLayout(3)] internal class Tnaf { // Token: 0x06008E48 RID: 36424 RVA: 0x001FBAF8 File Offset: 0x001F9CF8 [Token(Token = "0x6008E48")] [Address(RVA = "0x21DA640", Offset = "0x21D9040", VA = "0x1821DA640")] public static BigInteger Norm(sbyte mu, ZTauElement lambda) { BigInteger u = lambda.u; BigInteger bigInteger = u.Multiply(u); BigInteger u2 = lambda.u; BigInteger v = lambda.v; BigInteger bigInteger2 = u2.Multiply(v); BigInteger v2 = lambda.v; BigInteger bigInteger3 = v2.Multiply(v2).ShiftLeft(1); BigInteger bigInteger4 = bigInteger.Subtract(bigInteger2); return bigInteger.Add(bigInteger2).Add(bigInteger3); } // Token: 0x06008E49 RID: 36425 RVA: 0x001FBB70 File Offset: 0x001F9D70 [Token(Token = "0x6008E49")] [Address(RVA = "0x21DA4C0", Offset = "0x21D8EC0", VA = "0x1821DA4C0")] public static SimpleBigDecimal Norm(sbyte mu, SimpleBigDecimal u, SimpleBigDecimal v) { SimpleBigDecimal simpleBigDecimal = u.Multiply(u); SimpleBigDecimal simpleBigDecimal2 = u.Multiply(v); SimpleBigDecimal simpleBigDecimal3 = v.Multiply(v); BigInteger bigInteger = simpleBigDecimal3.bigInt.ShiftLeft(1); int scale = simpleBigDecimal3.scale; SimpleBigDecimal simpleBigDecimal4 = new SimpleBigDecimal(bigInteger, scale); SimpleBigDecimal simpleBigDecimal5 = simpleBigDecimal.Subtract(simpleBigDecimal2); return simpleBigDecimal.Add(simpleBigDecimal2).Add(simpleBigDecimal4); } // Token: 0x06008E4A RID: 36426 RVA: 0x001FBBE0 File Offset: 0x001F9DE0 [Token(Token = "0x6008E4A")] [Address(RVA = "0x21DAB10", Offset = "0x21D9510", VA = "0x1821DAB10")] public static ZTauElement Round(SimpleBigDecimal lambda0, SimpleBigDecimal lambda1, sbyte mu) { /* An exception occurred when decompiling this method (06008E4A) ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Abc.ZTauElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Abc.Tnaf::Round(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Abc.SimpleBigDecimal,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Abc.SimpleBigDecimal,System.SByte) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_1AF: stloc:ArgumentException(var_46_1B9, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("lambda0 and lambda1 do not have same scale"))) } 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: 0x06008E4B RID: 36427 RVA: 0x001FBDA8 File Offset: 0x001F9FA8 [Token(Token = "0x6008E4B")] [Address(RVA = "0x21D8DE0", Offset = "0x21D77E0", VA = "0x1821D8DE0")] public static SimpleBigDecimal ApproximateDivisionByN(BigInteger k, BigInteger s, BigInteger vm, sbyte a, int m, int c) { BigInteger bigInteger2; BigInteger bigInteger = s.Multiply(bigInteger2); BigInteger bigInteger4; BigInteger bigInteger3 = vm.Multiply(bigInteger4); BigInteger bigInteger5 = bigInteger.Add(bigInteger3); bool flag; if (flag) { BigInteger one = BigInteger.One; BigInteger bigInteger7; BigInteger bigInteger6 = bigInteger7.Add(one); } SimpleBigDecimal simpleBigDecimal; return simpleBigDecimal; } // Token: 0x06008E4C RID: 36428 RVA: 0x001FBDF0 File Offset: 0x001F9FF0 [Token(Token = "0x6008E4C")] [Address(RVA = "0x21DB060", Offset = "0x21D9A60", VA = "0x1821DB060")] public static sbyte[] TauAdicNaf(sbyte mu, ZTauElement lambda) { sbyte b = mu + 1; int bitLength = Tnaf.Norm(mu, lambda).BitLength; sbyte[] array = new sbyte[34]; int num = 0; BigInteger u = lambda.u; BigInteger v = lambda.v; int num2 = 0; if (!u.TestBit(num2)) { } BigInteger two = BigInteger.Two; BigInteger bigInteger = v.ShiftLeft(1); BigInteger bigInteger2 = u.Subtract(bigInteger); BigInteger four = Tnaf.Four; BigInteger bigInteger3 = bigInteger2.Mod(four); if (two.Subtract(bigInteger3).IntValue != 1) { BigInteger one = BigInteger.One; BigInteger bigInteger4 = u.Add(one); } int num3 = 0; BigInteger bigInteger5 = u.ClearBit(num3); BigInteger bigInteger6 = bigInteger5.ShiftRight(1); BigInteger bigInteger7 = v.Subtract(bigInteger6); BigInteger bigInteger8 = v.Add(bigInteger6); BigInteger bigInteger9 = bigInteger5.ShiftRight(1).Negate(); num++; num++; sbyte[] array2 = new sbyte[num]; int num4 = 0; int num5 = 0; Array.Copy(array, num5, array2, num4, num); return array2; } // Token: 0x06008E4D RID: 36429 RVA: 0x001FBEF8 File Offset: 0x001FA0F8 [Token(Token = "0x6008E4D")] [Address(RVA = "0x21DB900", Offset = "0x21DA300", VA = "0x1821DB900")] public static AbstractF2mPoint Tau(AbstractF2mPoint p) { bool flag = p.SatisfiesCurveEquation(); throw new NullReferenceException(); } // Token: 0x06008E4E RID: 36430 RVA: 0x001FBF14 File Offset: 0x001FA114 [Token(Token = "0x6008E4E")] [Address(RVA = "0x21D9190", Offset = "0x21D7B90", VA = "0x1821D9190")] public static sbyte GetMu(AbstractF2mCurve curve) { IFiniteField field = curve.Field; throw new NullReferenceException(); } // Token: 0x06008E4F RID: 36431 RVA: 0x001FBF38 File Offset: 0x001FA138 [Token(Token = "0x6008E4F")] [Address(RVA = "0x21D9290", Offset = "0x21D7C90", VA = "0x1821D9290")] public static sbyte GetMu(ECFieldElement curveA) { bool isOne = curveA.IsOne; throw new NullReferenceException(); } // Token: 0x06008E50 RID: 36432 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x6008E50")] [Address(RVA = "0x21D92D0", Offset = "0x21D7CD0", VA = "0x1821D92D0")] public static sbyte GetMu(int curveA) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06008E51 RID: 36433 RVA: 0x001FBF54 File Offset: 0x001FA154 [Token(Token = "0x6008E51")] [Address(RVA = "0x21D8F60", Offset = "0x21D7960", VA = "0x1821D8F60")] public static BigInteger[] GetLucas(sbyte mu, int k, bool doV) { sbyte b = mu + 1; if (!doV) { } BigInteger two = BigInteger.Two; BigInteger bigInteger2; BigInteger bigInteger4; if (k > 1) { BigInteger bigInteger = bigInteger2.Negate(); BigInteger bigInteger3 = two.ShiftLeft(1); bigInteger4 = bigInteger2.Subtract(bigInteger3); } BigInteger[] array = new BigInteger[2]; if (bigInteger2 != 0) { } array[0] = bigInteger2; if (bigInteger4 != 0) { } array[1] = bigInteger4; return array; } // Token: 0x06008E52 RID: 36434 RVA: 0x001FBFC0 File Offset: 0x001FA1C0 [Token(Token = "0x6008E52")] [Address(RVA = "0x21D9D60", Offset = "0x21D8760", VA = "0x1821D9D60")] public static BigInteger GetTw(sbyte mu, int w) { if (w != 4) { int num = 0; BigInteger[] lucas = Tnaf.GetLucas(mu, w, num != 0); BigInteger bigInteger = BigInteger.Zero.SetBit(w); BigInteger bigInteger2 = lucas[1].ModInverse(bigInteger); BigInteger two = BigInteger.Two; BigInteger bigInteger3 = lucas[0]; return two.Multiply(bigInteger3).Multiply(bigInteger2).Mod(bigInteger); } BigInteger bigInteger4; return bigInteger4; } // Token: 0x06008E53 RID: 36435 RVA: 0x001FC028 File Offset: 0x001FA228 [Token(Token = "0x6008E53")] [Address(RVA = "0x21D95C0", Offset = "0x21D7FC0", VA = "0x1821D95C0")] public static BigInteger[] GetSi(AbstractF2mCurve curve) { while (curve.GetSi() == 0) { } string text = curve.ToString(); IFiniteField field = curve.Field; int num = 0; BigInteger order = curve.Order; int num2 = 0; int shiftsForCofactor = Tnaf.GetShiftsForCofactor(order); text -= num; int num3 = 0; uint num4; BigInteger[] lucas = Tnaf.GetLucas((sbyte)num4, num2, num3 != 0); if (num != 0) { BigInteger bigInteger = lucas[0].Negate(); if (bigInteger != 0) { } lucas[0] = bigInteger; BigInteger bigInteger2 = lucas[1].Negate(); if (bigInteger2 != 0) { } lucas[1] = bigInteger2; } BigInteger one = BigInteger.One; BigInteger bigInteger3 = lucas[1]; BigInteger bigInteger4 = one.Add(bigInteger3).ShiftRight(shiftsForCofactor); BigInteger one2 = BigInteger.One; BigInteger bigInteger5 = lucas[0]; BigInteger bigInteger6 = one2.Add(bigInteger5).ShiftRight(shiftsForCofactor).Negate(); BigInteger[] array = new BigInteger[2]; if (bigInteger4 != 0) { } array[0] = bigInteger4; if (bigInteger6 != 0) { } array[1] = bigInteger6; return array; } // Token: 0x06008E54 RID: 36436 RVA: 0x001FC130 File Offset: 0x001FA330 [Token(Token = "0x6008E54")] [Address(RVA = "0x21D9A10", Offset = "0x21D8410", VA = "0x1821D9A10")] public static BigInteger[] GetSi(int fieldSize, int curveA, BigInteger cofactor) { int num = 0; int shiftsForCofactor = Tnaf.GetShiftsForCofactor(cofactor); int num2 = 0; uint num3; BigInteger[] lucas = Tnaf.GetLucas((sbyte)num3, num, num2 != 0); if (curveA != 0) { BigInteger bigInteger = lucas[0].Negate(); if (bigInteger != 0) { } lucas[0] = bigInteger; BigInteger bigInteger2 = lucas[1].Negate(); if (bigInteger2 != 0) { } lucas[1] = bigInteger2; } BigInteger one = BigInteger.One; BigInteger bigInteger3 = lucas[1]; BigInteger bigInteger4 = one.Add(bigInteger3).ShiftRight(shiftsForCofactor); BigInteger one2 = BigInteger.One; BigInteger bigInteger5 = lucas[0]; BigInteger bigInteger6 = one2.Add(bigInteger5).ShiftRight(shiftsForCofactor).Negate(); BigInteger[] array = new BigInteger[2]; if (bigInteger4 != 0) { } array[0] = bigInteger4; if (bigInteger6 != 0) { } array[1] = bigInteger6; return array; } // Token: 0x06008E55 RID: 36437 RVA: 0x001FC20C File Offset: 0x001FA40C [Token(Token = "0x6008E55")] [Address(RVA = "0x21D94F0", Offset = "0x21D7EF0", VA = "0x1821D94F0")] protected static int GetShiftsForCofactor(BigInteger h) { /* An exception occurred when decompiling this method (06008E55) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Abc.Tnaf::GetShiftsForCofactor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_3C: stloc:ArgumentException(var_3_46, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("h (Cofactor) must be 2 or 4"))) } 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.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: 0x06008E56 RID: 36438 RVA: 0x001FC260 File Offset: 0x001FA460 [Token(Token = "0x6008E56")] [Address(RVA = "0x21DA780", Offset = "0x21D9180", VA = "0x1821DA780")] public static ZTauElement PartModReduction(BigInteger k, int m, sbyte a, BigInteger[] s, sbyte mu, sbyte c) { int length = s.Length; BigInteger bigInteger = s[0]; BigInteger bigInteger2 = s[1]; BigInteger bigInteger3 = bigInteger.Subtract(bigInteger2); BigInteger bigInteger4 = s[0]; BigInteger bigInteger5 = s[1]; BigInteger bigInteger6 = bigInteger4.Add(bigInteger5); ZTauElement ztauElement; BigInteger u = ztauElement.u; BigInteger bigInteger7 = bigInteger6.Multiply(u); BigInteger bigInteger8 = k.Subtract(bigInteger7); BigInteger bigInteger9 = s[1]; BigInteger bigInteger11; BigInteger bigInteger10 = bigInteger11.Multiply(bigInteger9); BigInteger v = ztauElement.v; BigInteger bigInteger12 = bigInteger10.Multiply(v); BigInteger bigInteger13 = bigInteger8.Subtract(bigInteger12); BigInteger bigInteger14 = s[1]; BigInteger u2 = ztauElement.u; BigInteger bigInteger15 = bigInteger14.Multiply(u2); BigInteger bigInteger16 = s[0]; BigInteger v2 = ztauElement.v; BigInteger bigInteger17 = bigInteger16.Multiply(v2); BigInteger bigInteger18 = bigInteger15.Subtract(bigInteger17); ZTauElement ztauElement2; ztauElement2.u = bigInteger13; ztauElement2.v = bigInteger18; return ztauElement2; } // Token: 0x06008E57 RID: 36439 RVA: 0x001FC35C File Offset: 0x001FA55C [Token(Token = "0x6008E57")] [Address(RVA = "0x21DA170", Offset = "0x21D8B70", VA = "0x1821DA170")] public static AbstractF2mPoint MultiplyRTnaf(AbstractF2mPoint p, BigInteger k) { bool flag; do { flag = p.SatisfiesOrder(); } while (!flag); string text = flag.ToString(); bool flag2; flag = flag2; int stringLength = flag.ToString().m_stringLength; ZTauElement ztauElement; return Tnaf.MultiplyTnaf(p, ztauElement); } // Token: 0x06008E58 RID: 36440 RVA: 0x001FC3A0 File Offset: 0x001FA5A0 [Token(Token = "0x6008E58")] [Address(RVA = "0x21DA350", Offset = "0x21D8D50", VA = "0x1821DA350")] public static AbstractF2mPoint MultiplyTnaf(AbstractF2mPoint p, ZTauElement lambda) { bool flag; do { flag = p.SatisfiesOrder(); } while (!flag || !flag); sbyte[] array; return Tnaf.MultiplyFromTnaf(p, array); } // Token: 0x06008E59 RID: 36441 RVA: 0x001FC3D0 File Offset: 0x001FA5D0 [Token(Token = "0x6008E59")] [Address(RVA = "0x21D9F40", Offset = "0x21D8940", VA = "0x1821D9F40")] public static AbstractF2mPoint MultiplyFromTnaf(AbstractF2mPoint p, sbyte[] u) { for (;;) { bool flag = p.SatisfiesOrder(); object obj; if (obj == 0) { } if (obj != 0) { ECPoint ecpoint; if (ecpoint == 0) { } if (ecpoint != 0) { break; } } } int num = 0; int length = u.Length; num++; if (0 > 0) { } throw new NullReferenceException(); } // Token: 0x06008E5A RID: 36442 RVA: 0x001FC414 File Offset: 0x001FA614 [Token(Token = "0x6008E5A")] [Address(RVA = "0x21DB480", Offset = "0x21D9E80", VA = "0x1821DB480")] public static sbyte[] TauAdicWNaf(sbyte mu, ZTauElement lambda, sbyte width, BigInteger pow2w, BigInteger tw, ZTauElement[] alpha) { sbyte b = mu + 1; BigInteger bigInteger = Tnaf.Norm(mu, lambda); int num = 0; int bitLength = bigInteger.BitLength; if (bitLength > 30) { num += 4; num += bitLength; } num += 34; sbyte[] array = new sbyte[num]; BigInteger bigInteger2 = pow2w.ShiftRight(1); BigInteger u = lambda.u; int num2 = 0; BigInteger v = lambda.v; int num3 = 0; if (!u.TestBit(num3)) { } BigInteger bigInteger4; BigInteger bigInteger3 = u.Add(bigInteger4).Mod(pow2w); int num4 = bigInteger3.CompareTo(bigInteger2); int intValue = bigInteger3.IntValue; int num5 = 0; BigInteger bigInteger5; int intValue2 = bigInteger5.IntValue; BigInteger bigInteger6 = u.Add(num5); BigInteger bigInteger7 = v.Add(num5); BigInteger bigInteger8 = bigInteger6.Subtract(num5); BigInteger bigInteger9 = v.Subtract(num5); BigInteger bigInteger10 = bigInteger8.ShiftRight(1); BigInteger bigInteger11 = bigInteger9.Subtract(bigInteger10); BigInteger bigInteger12 = bigInteger9.Add(bigInteger11); BigInteger bigInteger13 = bigInteger8.ShiftRight(1).Negate(); num2++; return array; } // Token: 0x06008E5B RID: 36443 RVA: 0x001FC51C File Offset: 0x001FA71C [Token(Token = "0x6008E5B")] [Address(RVA = "0x21D92F0", Offset = "0x21D7CF0", VA = "0x1821D92F0")] public static AbstractF2mPoint[] GetPreComp(AbstractF2mPoint p, sbyte a) { sbyte[][] alpha1Tnaf = Tnaf.Alpha1Tnaf; int num = alpha1Tnaf.Length; num++; AbstractF2mPoint[] array = new AbstractF2mPoint[num]; if (p != 0) { } array[0] = p; uint num2; if (alpha1Tnaf.Length > (int)num2) { sbyte[] array2 = alpha1Tnaf[(int)num2]; AbstractF2mPoint abstractF2mPoint = Tnaf.MultiplyFromTnaf(p, array2); throw new ArrayTypeMismatchException(); } bool flag = p.SatisfiesOrder(); return array; } // Token: 0x06008E5C RID: 36444 RVA: 0x001FC58C File Offset: 0x001FA78C [Token(Token = "0x6008E5C")] [Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")] public Tnaf() { } // Token: 0x06008E5D RID: 36445 RVA: 0x001FC5A0 File Offset: 0x001FA7A0 // Note: this type is marked as 'beforefieldinit'. [Token(Token = "0x6008E5D")] [Address(RVA = "0x21DB930", Offset = "0x21DA330", VA = "0x1821DB930")] static Tnaf() { BigInteger bigInteger; Tnaf.Four = bigInteger; ZTauElement[] array = new ZTauElement[9]; BigInteger one = BigInteger.One; BigInteger zero = BigInteger.Zero; ZTauElement ztauElement; ztauElement.u = one; ztauElement.v = zero; array[1] = ztauElement; BigInteger minusThree = Tnaf.MinusThree; BigInteger minusOne = Tnaf.MinusOne; ZTauElement ztauElement2; ztauElement2.u = minusThree; ztauElement2.v = minusOne; array[3] = ztauElement2; BigInteger minusOne2 = Tnaf.MinusOne; ZTauElement ztauElement3; ztauElement3.u = minusOne2; ztauElement3.v = minusOne2; array[5] = ztauElement3; BigInteger one2 = BigInteger.One; BigInteger minusOne3 = Tnaf.MinusOne; ZTauElement ztauElement4; ztauElement4.u = one2; ztauElement4.v = minusOne3; array[7] = ztauElement4; Tnaf.Alpha0 = array; sbyte[][] array2 = new sbyte[8][]; array2[1] = new sbyte[] { (sbyte)((ulong)1L) }; sbyte[] array3 = new sbyte[3]; array3[0] = (sbyte)((ulong)255L); array3[0] = (sbyte)((ulong)1L); array2[3] = array3; sbyte[] array4 = new sbyte[3]; array4[0] = (sbyte)((ulong)1L); array4[0] = (sbyte)((ulong)1L); array2[5] = array4; sbyte[] array5 = new sbyte[4]; array5[0] = (sbyte)((ulong)255L); array5[0] = (sbyte)((ulong)1L); array2[7] = array5; Tnaf.Alpha0Tnaf = array2; ZTauElement[] array6 = new ZTauElement[9]; BigInteger one3 = BigInteger.One; BigInteger zero2 = BigInteger.Zero; ZTauElement ztauElement5; ztauElement5.u = one3; ztauElement5.v = zero2; array6[1] = ztauElement5; BigInteger minusThree2 = Tnaf.MinusThree; BigInteger one4 = BigInteger.One; ZTauElement ztauElement6; ztauElement6.u = minusThree2; ztauElement6.v = one4; array6[3] = ztauElement6; BigInteger minusOne4 = Tnaf.MinusOne; BigInteger one5 = BigInteger.One; ZTauElement ztauElement7; ztauElement7.u = minusOne4; ztauElement7.v = one5; array6[5] = ztauElement7; BigInteger one6 = BigInteger.One; ZTauElement ztauElement8; ztauElement8.u = one6; ztauElement8.v = one6; array6[7] = ztauElement8; Tnaf.Alpha1 = array6; sbyte[][] array7 = new sbyte[8][]; array7[1] = new sbyte[] { (sbyte)((ulong)1L) }; sbyte[] array8 = new sbyte[3]; array8[0] = (sbyte)((ulong)255L); array8[0] = (sbyte)((ulong)1L); array7[3] = array8; sbyte[] array9 = new sbyte[3]; array9[0] = (sbyte)((ulong)1L); array9[0] = (sbyte)((ulong)1L); array7[5] = array9; sbyte[] array10 = new sbyte[4]; array10[0] = (sbyte)((ulong)255L); array10[0] = (sbyte)((ulong)255L); array7[7] = array10; Tnaf.Alpha1Tnaf = array7; } // Token: 0x04005E44 RID: 24132 [Token(Token = "0x4005E44")] private static readonly BigInteger MinusOne = BigInteger.One.Negate(); // Token: 0x04005E45 RID: 24133 [Token(Token = "0x4005E45")] private static readonly BigInteger MinusTwo = BigInteger.Two.Negate(); // Token: 0x04005E46 RID: 24134 [Token(Token = "0x4005E46")] private static readonly BigInteger MinusThree = BigInteger.Three.Negate(); // Token: 0x04005E47 RID: 24135 [Token(Token = "0x4005E47")] private static readonly BigInteger Four; // Token: 0x04005E48 RID: 24136 [Token(Token = "0x4005E48")] public const sbyte Width = 4; // Token: 0x04005E49 RID: 24137 [Token(Token = "0x4005E49")] public const sbyte Pow2Width = 16; // Token: 0x04005E4A RID: 24138 [Token(Token = "0x4005E4A")] public static readonly ZTauElement[] Alpha0; // Token: 0x04005E4B RID: 24139 [Token(Token = "0x4005E4B")] public static readonly sbyte[][] Alpha0Tnaf; // Token: 0x04005E4C RID: 24140 [Token(Token = "0x4005E4C")] public static readonly ZTauElement[] Alpha1; // Token: 0x04005E4D RID: 24141 [Token(Token = "0x4005E4D")] public static readonly sbyte[][] Alpha1Tnaf; } }