using System; using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Field; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Abc { // Token: 0x02001AC0 RID: 6848 [Token(Token = "0x2001AC0")] internal class Tnaf { // Token: 0x0600AA22 RID: 43554 RVA: 0x002531E8 File Offset: 0x002513E8 [Token(Token = "0x600AA22")] [Address(RVA = "0x1EE1400", Offset = "0x1EE0200", VA = "0x181EE1400")] 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: 0x0600AA23 RID: 43555 RVA: 0x00253260 File Offset: 0x00251460 [Token(Token = "0x600AA23")] [Address(RVA = "0x1EE1280", Offset = "0x1EE0080", VA = "0x181EE1280")] 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: 0x0600AA24 RID: 43556 RVA: 0x002532D0 File Offset: 0x002514D0 [Token(Token = "0x600AA24")] [Address(RVA = "0x1EE18D0", Offset = "0x1EE06D0", VA = "0x181EE18D0")] public static ZTauElement Round(SimpleBigDecimal lambda0, SimpleBigDecimal lambda1, sbyte mu) { /* An exception occurred when decompiling this method (0600AA24) 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: 0x0600AA25 RID: 43557 RVA: 0x00253498 File Offset: 0x00251698 [Token(Token = "0x600AA25")] [Address(RVA = "0x1EDFC40", Offset = "0x1EDEA40", VA = "0x181EDFC40")] 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: 0x0600AA26 RID: 43558 RVA: 0x002534E0 File Offset: 0x002516E0 [Token(Token = "0x600AA26")] [Address(RVA = "0x1EE1E20", Offset = "0x1EE0C20", VA = "0x181EE1E20")] 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: 0x0600AA27 RID: 43559 RVA: 0x002535E8 File Offset: 0x002517E8 [Token(Token = "0x600AA27")] [Address(RVA = "0x1EE26C0", Offset = "0x1EE14C0", VA = "0x181EE26C0")] public static AbstractF2mPoint Tau(AbstractF2mPoint p) { bool flag = p.SatisfiesCurveEquation(); throw new NullReferenceException(); } // Token: 0x0600AA28 RID: 43560 RVA: 0x00253604 File Offset: 0x00251804 [Token(Token = "0x600AA28")] [Address(RVA = "0x1EDFFF0", Offset = "0x1EDEDF0", VA = "0x181EDFFF0")] public static sbyte GetMu(AbstractF2mCurve curve) { IFiniteField field = curve.Field; throw new NullReferenceException(); } // Token: 0x0600AA29 RID: 43561 RVA: 0x00253628 File Offset: 0x00251828 [Token(Token = "0x600AA29")] [Address(RVA = "0x1EE00F0", Offset = "0x1EDEEF0", VA = "0x181EE00F0")] public static sbyte GetMu(ECFieldElement curveA) { bool isOne = curveA.IsOne; throw new NullReferenceException(); } // Token: 0x0600AA2A RID: 43562 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x600AA2A")] [Address(RVA = "0x1EE0130", Offset = "0x1EDEF30", VA = "0x181EE0130")] public static sbyte GetMu(int curveA) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600AA2B RID: 43563 RVA: 0x00253644 File Offset: 0x00251844 [Token(Token = "0x600AA2B")] [Address(RVA = "0x1EDFDC0", Offset = "0x1EDEBC0", VA = "0x181EDFDC0")] 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: 0x0600AA2C RID: 43564 RVA: 0x002536B0 File Offset: 0x002518B0 [Token(Token = "0x600AA2C")] [Address(RVA = "0x1EE0B60", Offset = "0x1EDF960", VA = "0x181EE0B60")] 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: 0x0600AA2D RID: 43565 RVA: 0x00253718 File Offset: 0x00251918 [Token(Token = "0x600AA2D")] [Address(RVA = "0x1EE03F0", Offset = "0x1EDF1F0", VA = "0x181EE03F0")] public static BigInteger[] GetSi(AbstractF2mCurve curve) { while (curve.GetSi() == 0) { } string text = curve.ToString(); IFiniteField field = curve.Field; BigInteger order = curve.Order; int num = 0; int shiftsForCofactor = Tnaf.GetShiftsForCofactor(order); int num2; text -= num2; int num3 = 0; uint num4; BigInteger[] lucas = Tnaf.GetLucas((sbyte)num4, num, num3 != 0); if (num4 == (uint)1) { 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: 0x0600AA2E RID: 43566 RVA: 0x00253820 File Offset: 0x00251A20 [Token(Token = "0x600AA2E")] [Address(RVA = "0x1EE0810", Offset = "0x1EDF610", VA = "0x181EE0810")] 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: 0x0600AA2F RID: 43567 RVA: 0x002538FC File Offset: 0x00251AFC [Token(Token = "0x600AA2F")] [Address(RVA = "0x1EE0350", Offset = "0x1EDF150", VA = "0x181EE0350")] protected static int GetShiftsForCofactor(BigInteger h) { /* An exception occurred when decompiling this method (0600AA2F) 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_20: stloc:ArgumentException(var_1_2A, 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: 0x0600AA30 RID: 43568 RVA: 0x00253934 File Offset: 0x00251B34 [Token(Token = "0x600AA30")] [Address(RVA = "0x1EE1540", Offset = "0x1EE0340", VA = "0x181EE1540")] 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: 0x0600AA31 RID: 43569 RVA: 0x00253A30 File Offset: 0x00251C30 [Token(Token = "0x600AA31")] [Address(RVA = "0x1EE0F70", Offset = "0x1EDFD70", VA = "0x181EE0F70")] public static AbstractF2mPoint MultiplyRTnaf(AbstractF2mPoint p, BigInteger k) { bool flag; do { flag = p.SatisfiesOrder(); } while (!flag); string text = flag.ToString(); bool flag2; flag = flag2; string text2 = flag.ToString(); ZTauElement ztauElement; return Tnaf.MultiplyTnaf(p, ztauElement); } // Token: 0x0600AA32 RID: 43570 RVA: 0x00253A6C File Offset: 0x00251C6C [Token(Token = "0x600AA32")] [Address(RVA = "0x1EE1110", Offset = "0x1EDFF10", VA = "0x181EE1110")] 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: 0x0600AA33 RID: 43571 RVA: 0x00253A9C File Offset: 0x00251C9C [Token(Token = "0x600AA33")] [Address(RVA = "0x1EE0D40", Offset = "0x1EDFB40", VA = "0x181EE0D40")] 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: 0x0600AA34 RID: 43572 RVA: 0x00253AE0 File Offset: 0x00251CE0 [Token(Token = "0x600AA34")] [Address(RVA = "0x1EE2240", Offset = "0x1EE1040", VA = "0x181EE2240")] 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: 0x0600AA35 RID: 43573 RVA: 0x00253BE8 File Offset: 0x00251DE8 [Token(Token = "0x600AA35")] [Address(RVA = "0x1EE0150", Offset = "0x1EDEF50", VA = "0x181EE0150")] 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: 0x0600AA36 RID: 43574 RVA: 0x00253C58 File Offset: 0x00251E58 [Token(Token = "0x600AA36")] [Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")] public Tnaf() { } // Token: 0x0600AA37 RID: 43575 RVA: 0x00253C6C File Offset: 0x00251E6C // Note: this type is marked as 'beforefieldinit'. [Token(Token = "0x600AA37")] [Address(RVA = "0x1EE26F0", Offset = "0x1EE14F0", VA = "0x181EE26F0")] 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: 0x04006C87 RID: 27783 [Token(Token = "0x4006C87")] private static readonly BigInteger MinusOne = BigInteger.One.Negate(); // Token: 0x04006C88 RID: 27784 [Token(Token = "0x4006C88")] private static readonly BigInteger MinusTwo = BigInteger.Two.Negate(); // Token: 0x04006C89 RID: 27785 [Token(Token = "0x4006C89")] private static readonly BigInteger MinusThree = BigInteger.Three.Negate(); // Token: 0x04006C8A RID: 27786 [Token(Token = "0x4006C8A")] private static readonly BigInteger Four; // Token: 0x04006C8B RID: 27787 [Token(Token = "0x4006C8B")] public const sbyte Width = 4; // Token: 0x04006C8C RID: 27788 [Token(Token = "0x4006C8C")] public const sbyte Pow2Width = 16; // Token: 0x04006C8D RID: 27789 [Token(Token = "0x4006C8D")] public static readonly ZTauElement[] Alpha0; // Token: 0x04006C8E RID: 27790 [Token(Token = "0x4006C8E")] public static readonly sbyte[][] Alpha0Tnaf; // Token: 0x04006C8F RID: 27791 [Token(Token = "0x4006C8F")] public static readonly ZTauElement[] Alpha1; // Token: 0x04006C90 RID: 27792 [Token(Token = "0x4006C90")] public static readonly sbyte[][] Alpha1Tnaf; } }