using System; using System.ComponentModel; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Serialization.Formatters.Binary; using System.Threading; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities; using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc7748; using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw; using BestHTTP.SecureProtocol.Org.BouncyCastle.Security; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032 { // Token: 0x02001430 RID: 5168 [Token(Token = "0x2001430")] [StructLayout(3)] public abstract class Ed448 { // Token: 0x060085FB RID: 34299 RVA: 0x001D4948 File Offset: 0x001D2B48 [Token(Token = "0x60085FB")] [Address(RVA = "0x20A9A60", Offset = "0x20A8460", VA = "0x1820A9A60")] private static byte[] CalculateS(byte[] r, byte[] k, byte[] s) { uint[] array = new uint[28]; int num = 0; Ed448.DecodeScalar(r, num, array); uint[] array2 = new uint[14]; int num2 = 0; Ed448.DecodeScalar(k, num2, array2); uint[] array3 = new uint[14]; int num3 = 0; Ed448.DecodeScalar(s, num3, array3); int num4 = 0; int num5 = 0; uint num6 = array2[num4]; num6 = Nat.MulWordAddTo(14, num6, array3, num5, array, num4); num4++; uint num7; num7 += num6; num4 += (int)num7; array[0] = (uint)num4; byte[] array4 = new byte[114]; int length = array.Length; if (num4 < length) { uint num8 = array[num4]; num4++; } return Ed448.ReduceScalar(array4); } // Token: 0x060085FC RID: 34300 RVA: 0x001D4A08 File Offset: 0x001D2C08 [Token(Token = "0x60085FC")] [Address(RVA = "0x20A9C80", Offset = "0x20A8680", VA = "0x1820A9C80")] private static bool CheckContextVar(byte[] ctx) { if (ctx == 0) { } return ctx.Length < 256; } // Token: 0x060085FD RID: 34301 RVA: 0x001D4A28 File Offset: 0x001D2C28 [Token(Token = "0x60085FD")] [Address(RVA = "0x20A9CA0", Offset = "0x20A86A0", VA = "0x1820A9CA0")] private static bool CheckPointVar(byte[] p) { if ("{il2cpp array field p->}" == (ulong)127L) { uint[] array = new uint[14]; int num = 0; int num2 = 0; ulong num3; Ed448.Decode32(p, num2, array, num, (int)num3); uint num5; uint num4 = Ed448.P[(int)num5]; if (array[(int)num5] <= num4) { } } throw new NullReferenceException(); } // Token: 0x060085FE RID: 34302 RVA: 0x001D4A7C File Offset: 0x001D2C7C [Token(Token = "0x60085FE")] [Address(RVA = "0x20A9DD0", Offset = "0x20A87D0", VA = "0x1820A9DD0")] private static bool CheckScalarVar(byte[] s) { if ("{il2cpp array field s->}" == (ulong)0L) { uint[] array = new uint[14]; int num = 0; Ed448.DecodeScalar(s, num, array); uint num3; uint num2 = Ed448.L[(int)num3]; if (array[(int)num3] <= num2) { } } throw new NullReferenceException(); } // Token: 0x060085FF RID: 34303 RVA: 0x001D4AC8 File Offset: 0x001D2CC8 [Token(Token = "0x60085FF")] [Address(RVA = "0x20A9EF0", Offset = "0x20A88F0", VA = "0x1820A9EF0")] public static IXof CreatePrehash() { /* An exception occurred when decompiling this method (060085FF) ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IXof BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed448::CreatePrehash() ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:ShakeDigest(var_0_0A, newobj:ShakeDigest(ShakeDigest::.ctor, ldc.i4:int32(256))) } 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: 0x06008600 RID: 34304 RVA: 0x001D4AE0 File Offset: 0x001D2CE0 [Token(Token = "0x6008600")] [Address(RVA = "0x20A9F80", Offset = "0x20A8980", VA = "0x1820A9F80")] private static IXof CreateXof() { /* An exception occurred when decompiling this method (06008600) ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IXof BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed448::CreateXof() ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:ShakeDigest(var_0_0A, newobj:ShakeDigest(ShakeDigest::.ctor, ldc.i4:int32(256))) } 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: 0x06008601 RID: 34305 RVA: 0x001D4AF8 File Offset: 0x001D2CF8 [Token(Token = "0x6008601")] [Address(RVA = "0x20A9FD0", Offset = "0x20A89D0", VA = "0x1820A9FD0")] private static uint Decode16(byte[] bs, int off) { int length = bs.Length; throw new NullReferenceException(); } // Token: 0x06008602 RID: 34306 RVA: 0x001D4B14 File Offset: 0x001D2D14 [Token(Token = "0x6008602")] [Address(RVA = "0x2086EE0", Offset = "0x20858E0", VA = "0x182086EE0")] private static uint Decode24(byte[] bs, int off) { int length = bs.Length; int num = off + 1; throw new NullReferenceException(); } // Token: 0x06008603 RID: 34307 RVA: 0x001D4B34 File Offset: 0x001D2D34 [Token(Token = "0x6008603")] [Address(RVA = "0x74C4E0", Offset = "0x74AEE0", VA = "0x18074C4E0")] private static uint Decode32(byte[] bs, int off) { int length = bs.Length; int num = off + 1; throw new NullReferenceException(); } // Token: 0x06008604 RID: 34308 RVA: 0x001D4B54 File Offset: 0x001D2D54 [Token(Token = "0x6008604")] [Address(RVA = "0x20AA030", Offset = "0x20A8A30", VA = "0x1820AA030")] private static void Decode32(byte[] bs, int bsOff, uint[] n, int nOff, int nLen) { } // Token: 0x06008605 RID: 34309 RVA: 0x001D4B68 File Offset: 0x001D2D68 [Token(Token = "0x6008605")] [Address(RVA = "0x20AA100", Offset = "0x20A8B00", VA = "0x1820AA100")] private static bool DecodePointVar(byte[] p, int pOff, bool negate, Ed448.PointExt r) { byte[] array = Arrays.CopyOfRange(p, pOff, negate ? 1 : 0); if (Ed448.CheckPointVar(array)) { byte b = array[7]; array[7] = b; uint[] y = r.y; int num = 0; X448Field.Decode(array, num, y); uint[] array2 = X448Field.Create(); uint[] array3 = X448Field.Create(); X448Field.Sqr(r.y, array2); X448Field.Mul(array2, (uint)39081, array3); X448Field.Negate(array2, array2); X448Field.AddOne(array2); X448Field.AddOne(array3); uint[] x = r.x; if (X448Field.SqrtRatioVar(array2, array3, x)) { X448Field.Normalize(r.x); if (!X448Field.IsZeroVar(r.x)) { uint[] x2 = r.x; uint num2 = x2[0]; if ((uint)b != num2 != negate) { X448Field.Negate(x2, x2); } X448Field.One(r.z); } } } throw new IndexOutOfRangeException(); } // Token: 0x06008606 RID: 34310 RVA: 0x001D4C5C File Offset: 0x001D2E5C [Token(Token = "0x6008606")] [Address(RVA = "0x20AA310", Offset = "0x20A8D10", VA = "0x1820AA310")] private static void DecodeScalar(byte[] k, int kOff, uint[] n) { int num = 0; ulong num2; Ed448.Decode32(k, kOff, n, num, (int)num2); } // Token: 0x06008607 RID: 34311 RVA: 0x001D4C78 File Offset: 0x001D2E78 [Token(Token = "0x6008607")] [Address(RVA = "0x20AA3A0", Offset = "0x20A8DA0", VA = "0x1820AA3A0")] private static void Dom4(IXof d, byte x, byte[] y) { int length = Ed448.Dom4Prefix.Length; int length2 = y.Length; } // Token: 0x06008608 RID: 34312 RVA: 0x001D4CA0 File Offset: 0x001D2EA0 [Token(Token = "0x6008608")] [Address(RVA = "0x2087560", Offset = "0x2085F60", VA = "0x182087560")] private static void Encode24(uint n, byte[] bs, int off) { int num = off + 1; } // Token: 0x06008609 RID: 34313 RVA: 0x001D4CB8 File Offset: 0x001D2EB8 [Token(Token = "0x6008609")] [Address(RVA = "0x1DFD250", Offset = "0x1DFBC50", VA = "0x181DFD250")] private static void Encode32(uint n, byte[] bs, int off) { int num = off + 1; } // Token: 0x0600860A RID: 34314 RVA: 0x001D4CD0 File Offset: 0x001D2ED0 [Token(Token = "0x600860A")] [Address(RVA = "0x20AA4B0", Offset = "0x20A8EB0", VA = "0x1820AA4B0")] private static void Encode56(ulong n, byte[] bs, int off) { Ed25519.Encode32((uint)n, bs, off); bs[0] = (byte)n; } // Token: 0x0600860B RID: 34315 RVA: 0x001D4CF4 File Offset: 0x001D2EF4 [Token(Token = "0x600860B")] [Address(RVA = "0x20AA5A0", Offset = "0x20A8FA0", VA = "0x1820AA5A0")] private static void EncodePoint(Ed448.PointExt p, byte[] r, int rOff) { uint[] array = X448Field.Create(); uint[] array2 = X448Field.Create(); X448Field.Inv(p.z, array2); X448Field.Mul(p.x, array2, array); X448Field.Mul(p.y, array2, array2); X448Field.Normalize(array); X448Field.Normalize(array2); X448Field.Encode(array2, r, rOff); uint num = array[0]; array2[0] = num; } // Token: 0x0600860C RID: 34316 RVA: 0x001D4D64 File Offset: 0x001D2F64 [Token(Token = "0x600860C")] [Address(RVA = "0x2087860", Offset = "0x2086260", VA = "0x182087860")] public static void GeneratePrivateKey(SecureRandom random, byte[] k) { bool isChanged = ((IChangeTracking)random).IsChanged; } // Token: 0x0600860D RID: 34317 RVA: 0x001D4D80 File Offset: 0x001D2F80 [Token(Token = "0x600860D")] [Address(RVA = "0x20AA6A0", Offset = "0x20A90A0", VA = "0x1820AA6A0")] public static void GeneratePublicKey(byte[] sk, int skOff, byte[] pk, int pkOff) { ShakeDigest shakeDigest = new ShakeDigest(256); byte[] array = new byte[114]; int secretKeySize = Ed448.SecretKeySize; int length = array.Length; byte[] array2 = new byte[57]; int num = 0; Ed448.PruneScalar(array, num, array2); Ed448.ScalarMultBaseEncoded(array2, pk, pkOff); } // Token: 0x0600860E RID: 34318 RVA: 0x001D4DD4 File Offset: 0x001D2FD4 [Token(Token = "0x600860E")] [Address(RVA = "0x20AA800", Offset = "0x20A9200", VA = "0x1820AA800")] private static sbyte[] GetWnaf(uint[] n, int width) { uint[] array = new uint[28]; int num = 0; int num2 = array.Length; num2 += -2; uint num3; array[0] = num3; array[0] = num3; sbyte[] array2 = new sbyte[448]; int length = array.Length; if (num < length) { uint num4 = array[num]; if (num < 16) { if (num4 != (uint)num) { num4 += (uint)num; num3 = num4; num4 += num4; num3 -= num4; } uint num5; num += (int)num5; } num++; num += 16; } return array2; } // Token: 0x0600860F RID: 34319 RVA: 0x001D4E64 File Offset: 0x001D3064 [Token(Token = "0x600860F")] [Address(RVA = "0x20AAC40", Offset = "0x20A9640", VA = "0x1820AAC40")] private static void ImplSign(IXof d, byte[] h, byte[] s, byte[] pk, int pkOff, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen, byte[] sig, int sigOff) { int length = h.Length; byte[] array = Ed448.ReduceScalar(h); byte[] array2 = new byte[57]; int num = 0; Ed448.ScalarMultBaseEncoded(array, array2, num); int length2 = h.Length; byte[] array3 = Ed448.ReduceScalar(h); } // Token: 0x06008610 RID: 34320 RVA: 0x001D4EB0 File Offset: 0x001D30B0 [Token(Token = "0x6008610")] [Address(RVA = "0x20AAED0", Offset = "0x20A98D0", VA = "0x1820AAED0")] private static void ImplSign(byte[] sk, int skOff, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen, byte[] sig, int sigOff) { /* An exception occurred when decompiling this method (06008610) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed448::ImplSign(System.Byte[],System.Int32,System.Byte[],System.Byte,System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_5F: stloc:ArgumentException(var_11_69, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("ctx"))) } 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: 0x06008611 RID: 34321 RVA: 0x001D4F28 File Offset: 0x001D3128 [Token(Token = "0x6008611")] [Address(RVA = "0x20AAA00", Offset = "0x20A9400", VA = "0x1820AAA00")] private static void ImplSign(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen, byte[] sig, int sigOff) { ShakeDigest shakeDigest = new ShakeDigest(256); byte[] array = new byte[114]; int secretKeySize = Ed448.SecretKeySize; int length = array.Length; byte[] array2 = new byte[0]; int num = 0; Ed448.PruneScalar(array, num, array2); } // Token: 0x06008612 RID: 34322 RVA: 0x001D4F7C File Offset: 0x001D317C [Token(Token = "0x6008612")] [Address(RVA = "0x20AB130", Offset = "0x20A9B30", VA = "0x1820AB130")] private static bool ImplVerify(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen) { /* An exception occurred when decompiling this method (06008612) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed448::ImplVerify(System.Byte[],System.Int32,System.Byte[],System.Int32,System.Byte[],System.Byte,System.Byte[],System.Int32,System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { Block_3: stloc:IXof(var_19_A0, call:IXof(Ed448::CreateXof)) stloc:uint8[](var_21_A9, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(114))) stloc:int32(var_25_B5, callgetter:int32(Array::get_Length, ldloc:uint8[][exp:Array](var_21_A9))) stloc:uint8[](var_26_BE, call:uint8[](Ed448::ReduceScalar, ldloc:uint8[](var_21_A9))) stloc:uint32[](var_27_C6, newarr:uint32[]([mscorlib]System.UInt32, ldc.i4:int32(0))) stloc:uint32[](var_28_CE, newarr:uint32[]([mscorlib]System.UInt32, ldc.i4:int32(0))) stloc:int32(var_29_D1, ldc.i4:int32(0)) call:void(Ed448::DecodeScalar, ldloc:uint8[](var_26_BE), ldloc:int32(var_29_D1), ldloc:uint32[](var_28_CE)) stloc:PointExt(var_30_E3, newobj:PointExt(PointExt::.ctor)) call:void(Ed448::ScalarMultStraussVar, ldloc:uint32[](var_27_C6), ldloc:uint32[](var_28_CE), ldloc:PointExt(var_9), ldloc:PointExt(var_30_E3)) stloc:uint8[](var_31_F8, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(0))) stloc:int32(var_32_FB, ldc.i4:int32(0)) call:void(Ed448::EncodePoint, ldloc:PointExt(var_30_E3), ldloc:uint8[](var_31_F8), ldloc:int32(var_32_FB)) stloc:ArgumentException(var_34_112, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("ctx"))) } 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: 0x06008613 RID: 34323 RVA: 0x001D509C File Offset: 0x001D329C [Token(Token = "0x6008613")] [Address(RVA = "0x20AB800", Offset = "0x20AA200", VA = "0x1820AB800")] private static void PointAddVar(bool negate, Ed448.PointExt p, Ed448.PointExt r) { uint[] array = X448Field.Create(); uint[] array2 = X448Field.Create(); uint[] array3 = X448Field.Create(); uint[] array4 = X448Field.Create(); uint[] array5 = X448Field.Create(); uint[] array6 = X448Field.Create(); uint[] array7 = X448Field.Create(); uint[] array8 = X448Field.Create(); if (!negate) { uint[] x = p.x; X448Field.Add(p.y, x, array8); } uint[] x2 = p.x; X448Field.Sub(p.y, x2, array8); uint[] z = r.z; X448Field.Mul(p.z, z, array); X448Field.Sqr(array, array2); uint[] x3 = r.x; X448Field.Mul(p.x, x3, array3); uint[] y = r.y; X448Field.Mul(p.y, y, array4); X448Field.Mul(array3, array4, array5); X448Field.Mul(array5, (uint)39081, array5); X448Field.Add(array2, array5, array7); X448Field.Sub(array2, array5, array6); uint[] y2 = r.y; X448Field.Add(r.x, y2, array5); X448Field.Mul(array8, array5, array8); X448Field.Add(array4, array3, array5); X448Field.Sub(array4, array3, array2); X448Field.Carry(array5); X448Field.Sub(array8, array2, array8); X448Field.Mul(array8, array, array8); X448Field.Mul(array5, array, array5); uint[] x4 = r.x; X448Field.Mul(array6, array8, x4); uint[] y3 = r.y; X448Field.Mul(array5, array7, y3); uint[] z2 = r.z; X448Field.Mul(array6, array7, z2); } // Token: 0x06008614 RID: 34324 RVA: 0x001D523C File Offset: 0x001D343C [Token(Token = "0x6008614")] [Address(RVA = "0x20AB610", Offset = "0x20AA010", VA = "0x1820AB610")] private static void PointAddPrecomp(Ed448.PointPrecomp p, Ed448.PointExt r) { uint[] array = X448Field.Create(); uint[] array2 = X448Field.Create(); uint[] array3 = X448Field.Create(); uint[] array4 = X448Field.Create(); uint[] array5 = X448Field.Create(); uint[] array6 = X448Field.Create(); uint[] array7 = X448Field.Create(); X448Field.Sqr(r.z, array); uint[] x = r.x; X448Field.Mul(p.x, x, array2); uint[] y = r.y; X448Field.Mul(p.y, y, array3); X448Field.Mul(array2, array3, array4); X448Field.Mul(array4, (uint)39081, array4); X448Field.Add(array, array4, array5); X448Field.Sub(array, array4, array6); uint[] y2 = p.y; X448Field.Add(p.x, y2, array); uint[] y3 = r.y; X448Field.Add(r.x, y3, array4); X448Field.Mul(array, array4, array7); X448Field.Add(array3, array2, array); X448Field.Sub(array3, array2, array4); X448Field.Carry(array); X448Field.Sub(array7, array, array7); uint[] z = r.z; X448Field.Mul(array7, z, array7); uint[] z2 = r.z; X448Field.Mul(array4, z2, array4); uint[] x2 = r.x; X448Field.Mul(array5, array7, x2); uint[] y4 = r.y; X448Field.Mul(array4, array6, y4); uint[] z3 = r.z; X448Field.Mul(array5, array6, z3); } // Token: 0x06008615 RID: 34325 RVA: 0x001D53B0 File Offset: 0x001D35B0 [Token(Token = "0x6008615")] [Address(RVA = "0x20ABA70", Offset = "0x20AA470", VA = "0x1820ABA70")] private static Ed448.PointExt PointCopy(Ed448.PointExt p) { uint[] array = X448Field.Create(); Ed448.PointExt pointExt; pointExt.x = array; uint[] array2 = X448Field.Create(); pointExt.y = array2; uint[] array3 = X448Field.Create(); pointExt.z = array3; uint[] x = pointExt.x; int num = 0; uint[] x2 = p.x; int num2 = 0; X448Field.Copy(x2, num2, x, num); uint[] y = pointExt.y; int num3 = 0; uint[] y2 = p.y; int num4 = 0; X448Field.Copy(y2, num4, y, num3); uint[] z = pointExt.z; int num5 = 0; uint[] z2 = p.z; int num6 = 0; X448Field.Copy(z2, num6, z, num5); return pointExt; } // Token: 0x06008616 RID: 34326 RVA: 0x001D5460 File Offset: 0x001D3660 [Token(Token = "0x6008616")] [Address(RVA = "0x20ABB40", Offset = "0x20AA540", VA = "0x1820ABB40")] private static void PointDouble(Ed448.PointExt r) { uint[] array = X448Field.Create(); uint[] array2 = X448Field.Create(); uint[] array3 = X448Field.Create(); uint[] array4 = X448Field.Create(); uint[] array5 = X448Field.Create(); uint[] array6 = X448Field.Create(); uint[] y = r.y; X448Field.Add(r.x, y, array); X448Field.Sqr(array, array); X448Field.Sqr(r.x, array2); X448Field.Sqr(r.y, array3); X448Field.Add(array2, array3, array4); X448Field.Carry(array4); X448Field.Sqr(r.z, array5); X448Field.Add(array5, array5, array5); X448Field.Carry(array5); X448Field.Sub(array4, array5, array6); X448Field.Sub(array, array4, array); X448Field.Sub(array2, array3, array2); uint[] x = r.x; X448Field.Mul(array, array6, x); uint[] y2 = r.y; X448Field.Mul(array4, array2, y2); uint[] z = r.z; X448Field.Mul(array4, array6, z); } // Token: 0x06008617 RID: 34327 RVA: 0x001D5568 File Offset: 0x001D3768 [Token(Token = "0x6008617")] [Address(RVA = "0x20ABCC0", Offset = "0x20AA6C0", VA = "0x1820ABCC0")] private static void PointExtendXY(Ed448.PointExt p) { X448Field.One(p.z); } // Token: 0x06008618 RID: 34328 RVA: 0x001D5588 File Offset: 0x001D3788 [Token(Token = "0x6008618")] [Address(RVA = "0x20ABCE0", Offset = "0x20AA6E0", VA = "0x1820ABCE0")] private static void PointLookup(int block, int index, Ed448.PointPrecomp p) { int num = 0; uint[] x = p.x; uint[] array = Ed448.precompBase; uint num2; Nat.CMov((int)num2, num, array, block, x, num); uint[] y = p.y; uint[] array2 = Ed448.precompBase; uint num3; Nat.CMov((int)num3, num, array2, block, y, num); num++; } // Token: 0x06008619 RID: 34329 RVA: 0x001D55D8 File Offset: 0x001D37D8 [Token(Token = "0x6008619")] [Address(RVA = "0x20ABE00", Offset = "0x20AA800", VA = "0x1820ABE00")] private static Ed448.PointExt[] PointPrecompVar(Ed448.PointExt p, int count) { Ed448.PointExt pointExt = Ed448.PointCopy(p); Ed448.PointDouble(pointExt); Ed448.PointExt[] array = new Ed448.PointExt[count]; Ed448.PointExt pointExt2 = Ed448.PointCopy(p); if (pointExt2 != 0) { } array[0] = pointExt2; if (count > 1) { Ed448.PointExt pointExt3 = Ed448.PointCopy(array[pointExt2]); throw new ArrayTypeMismatchException(); } return array; } // Token: 0x0600861A RID: 34330 RVA: 0x001D563C File Offset: 0x001D383C [Token(Token = "0x600861A")] [Address(RVA = "0x20ABFC0", Offset = "0x20AA9C0", VA = "0x1820ABFC0")] private static void PointSetNeutral(Ed448.PointExt p) { X448Field.Zero(p.x); X448Field.One(p.y); X448Field.One(p.z); } // Token: 0x0600861B RID: 34331 RVA: 0x001D5670 File Offset: 0x001D3870 [Token(Token = "0x600861B")] [Address(RVA = "0x20AC000", Offset = "0x20AAA00", VA = "0x1820AC000")] public static void Precompute() { int num; Ed448.PointExt pointExt; for (;;) { num = 0; object obj = Ed448.precompLock; uint[] array = X448Field.Create(); pointExt.x = array; uint[] array2 = X448Field.Create(); pointExt.y = array2; uint[] array3 = X448Field.Create(); pointExt.z = array3; int num2 = 0; uint[] x = pointExt.x; int num3 = 0; X448Field.Copy(Ed448.B_x, num3, x, num2); int num4 = 0; uint[] y = pointExt.y; int num5 = 0; X448Field.Copy(Ed448.B_y, num5, y, num4); X448Field.One(pointExt.z); Ed448.precompBaseTable = Ed448.PointPrecompVar(pointExt, 32); Ed448.precompBase = new uint[2560]; if (num < 5) { break; } Monitor.Exit(obj); if (num != -1) { } if (num == 0) { return; } } Ed448.PointExt[] array4 = new Ed448.PointExt[5]; uint[] array5 = X448Field.Create(); Ed448.PointExt pointExt2; pointExt2.x = array5; uint[] array6 = X448Field.Create(); pointExt2.y = array6; uint[] array7 = X448Field.Create(); pointExt2.z = array7; Ed448.PointSetNeutral(pointExt2); if (num < 5) { ulong num6; Ed448.PointAddVar(num6 != 0UL, pointExt, pointExt2); Ed448.PointDouble(pointExt); Ed448.PointExt pointExt3 = Ed448.PointCopy(pointExt); throw new ArrayTypeMismatchException(); } Ed448.PointExt[] array8 = new Ed448.PointExt[16]; throw new ArrayTypeMismatchException(); } // Token: 0x0600861C RID: 34332 RVA: 0x001D5944 File Offset: 0x001D3B44 [Token(Token = "0x600861C")] [Address(RVA = "0x20AC660", Offset = "0x20AB060", VA = "0x1820AC660")] private static void PruneScalar(byte[] n, int nOff, byte[] r) { int num = 0; ulong num2; Array.Copy(n, nOff, r, num, (int)num2); } // Token: 0x0600861D RID: 34333 RVA: 0x001D5964 File Offset: 0x001D3B64 [Token(Token = "0x600861D")] [Address(RVA = "0x20AC6F0", Offset = "0x20AB0F0", VA = "0x1820AC6F0")] private static byte[] ReduceScalar(byte[] n) { int num = 0; int @int = SerializationHeaderRecord.GetInt32(n, num); uint num2 = Ed25519.Decode24(n, 4); int int2 = SerializationHeaderRecord.GetInt32(n, 7); uint num3 = Ed25519.Decode24(n, 11); int int3 = SerializationHeaderRecord.GetInt32(n, 14); uint num4 = Ed25519.Decode24(n, 18); int int4 = SerializationHeaderRecord.GetInt32(n, 21); uint num5 = Ed25519.Decode24(n, 25); int int5 = SerializationHeaderRecord.GetInt32(n, 28); uint num6 = Ed25519.Decode24(n, 32); int int6 = SerializationHeaderRecord.GetInt32(n, 35); uint num7 = Ed25519.Decode24(n, 39); int int7 = SerializationHeaderRecord.GetInt32(n, 42); uint num8 = Ed25519.Decode24(n, 46); int int8 = SerializationHeaderRecord.GetInt32(n, 49); uint num9 = Ed25519.Decode24(n, 53); int int9 = SerializationHeaderRecord.GetInt32(n, 56); uint num10 = Ed25519.Decode24(n, 60); int int10 = SerializationHeaderRecord.GetInt32(n, 63); uint num11 = Ed25519.Decode24(n, 67); int num12 = SerializationHeaderRecord.GetInt32(n, 70); uint num13 = Ed25519.Decode24(n, 74); int int11 = SerializationHeaderRecord.GetInt32(n, 77); uint num14 = Ed25519.Decode24(n, 81); int num15 = SerializationHeaderRecord.GetInt32(n, 84); uint num16 = Ed25519.Decode24(n, 88); int int12 = SerializationHeaderRecord.GetInt32(n, 91); uint num17 = Ed25519.Decode24(n, 95); int int13 = SerializationHeaderRecord.GetInt32(n, 98); uint num18 = Ed25519.Decode24(n, 102); int num19 = SerializationHeaderRecord.GetInt32(n, 105); uint num20 = Ed25519.Decode24(n, 109); int length = n.Length; byte b = n[14]; num20 += (uint)num19; num19 = int13; num18 += (uint)num19; long num21 = (long)((ulong)num19 * (ulong)149865618L); long num22 = (long)((ulong)num18 * (ulong)550336261L); long num23 = (long)((ulong)num20 * (ulong)550336261L); num22 += num21; long num24 = (long)((ulong)num20 * (ulong)227822194L); num22 += num24; long num25 = (long)((ulong)b * (ulong)96434764L); num22 += num25; num22 += (long)num12; num12 = int12; num17 += (uint)num12; long num26 = (long)((ulong)b * (ulong)30366549L); num10 = (uint)((long)num10 + num26); long num27 = (long)((ulong)num19 * (ulong)258169998L); num10 = (uint)((long)num10 + num27); long num28 = (long)((ulong)int12 * (ulong)550336261L); num10 = (uint)((long)num10 + num28); long num29 = (long)((ulong)num17 * (ulong)149865618L); num10 = (uint)((long)num10 + num29); long num30 = (long)((ulong)int13 * (ulong)227822194L); num10 = (uint)((long)num10 + num30); long num31 = (long)((ulong)num20 * (ulong)163752818L); num10 = (uint)((long)num10 + num31); long num32 = (long)((ulong)num18 * (ulong)96434764L); num10 = (uint)((long)num10 + num32); num16 += (uint)num15; long num33 = (long)((ulong)num19 * (ulong)550336261L); num13 = (uint)((long)num13 + num33); long num34 = (long)((ulong)num20 * (ulong)149865618L); num13 = (uint)((long)num13 + num34); long num35 = (long)((ulong)b * (ulong)227822194L); num13 = (uint)((long)num13 + num35); num35 = num22; num13 = (uint)((long)num13 + num35); long num36 = (long)((ulong)b * (ulong)149865618L); num23 += num36; num23 += (long)num13; num23 += (long)int11; long num37 = (long)((ulong)b * (ulong)550336261L); num14 = (uint)((long)num14 + num37); long num38 = (long)((ulong)num19 * (ulong)43969588L); num37 = num23; num14 = (uint)((long)num14 + num37); num15 += (int)num14; long num39 = (long)((ulong)num18 * (ulong)30366549L); num38 += num39; long num40 = (long)((ulong)num14 * (ulong)550336261L); long num41 = (long)((ulong)num20 * (ulong)258169998L); num38 += num40; long num42 = (long)((ulong)num17 * (ulong)258169998L); num38 += num42; long num43 = (long)((ulong)num15 * (ulong)149865618L); num38 += num43; long num44 = (long)((ulong)num16 * (ulong)227822194L); num38 += num44; long num45 = (long)((ulong)int13 * (ulong)163752818L); num38 += num45; long num46 = (long)((ulong)int12 * (ulong)96434764L); num38 += num46; num38 += (long)int8; long num47 = (long)((ulong)num17 * (ulong)550336261L); num41 += num47; long num48 = (long)((ulong)num18 * (ulong)227822194L); num41 += num48; long num49 = (long)((ulong)int13 * (ulong)149865618L); num41 += num49; long num50 = (long)((ulong)b * (ulong)163752818L); num41 += num50; long num51; num41 += num51; num41 += (long)num10; num41 += (long)int10; long num52 = (long)((ulong)b * (ulong)258169998L); num11 = (uint)((long)num11 + num52); long num53; num11 = (uint)((long)num11 + num53); long num54 = (long)((ulong)num18 * (ulong)149865618L); num11 = (uint)((long)num11 + num54); long num55; num11 = (uint)((long)num11 + num55); long num56 = (long)((ulong)num20 * (ulong)96434764L); num11 = (uint)((long)num11 + num56); num56 = num41; num11 = (uint)((long)num11 + num56); num22 += (long)num11; num13 = (uint)((long)num13 + num22); long num57 = (long)((ulong)num20 * (ulong)43969588L); num9 = (uint)((long)num9 + num57); long num58; num9 = (uint)((long)num9 + num58); long num59 = (long)((ulong)num15 * (ulong)550336261L); num9 = (uint)((long)num9 + num59); long num60 = (long)((ulong)b * (ulong)43969588L); long num61; num9 = (uint)((long)num9 + num61); long num62 = (long)((ulong)num16 * (ulong)149865618L); num9 = (uint)((long)num9 + num62); long num63; num9 = (uint)((long)num9 + num63); long num64 = (long)((ulong)num18 * (ulong)163752818L); num9 = (uint)((long)num9 + num64); long num65 = (long)((ulong)num17 * (ulong)96434764L); num9 = (uint)((long)num9 + num65); num65 = num38; num9 = (uint)((long)num9 + num65); long num66 = (long)((ulong)num20 * (ulong)30366549L); num60 += num66; long num67 = (long)((ulong)num18 * (ulong)258169998L); num60 += num67; long num68 = (long)((ulong)num16 * (ulong)550336261L); num60 += num68; long num69; num60 += num69; long num70 = (long)((ulong)num17 * (ulong)227822194L); num60 += num70; long num71; num60 += num71; long num72; num60 += num72; num60 += (long)num9; num60 += (long)int9; num10 = (uint)((long)num10 + num60); num41 += (long)num10; num10 = num9; long num73 = (long)((ulong)(num20 + 1U) * (ulong)78101261L); num73 += (long)@int; long num74 = (long)((ulong)(num20 + 1U) * (ulong)141809365L); long num75 = (long)((ulong)num10 * (ulong)43969588L); num2 = (uint)((long)num2 + num74); num2 = (uint)((long)num2 + num75); num75 = num73; num2 = (uint)((long)num2 + num75); long num76 = (long)((ulong)(num20 + 1U) * (ulong)175155932L); long num77 = num41 * (long)((ulong)43969588L); num76 += num77; long num78 = (long)((ulong)num10 * (ulong)30366549L); num76 += num78; num76 += (long)num2; num76 += (long)int2; long num79 = (long)((ulong)(num20 + 1U) * (ulong)64542499L); num3 = (uint)((long)num3 + num79); long num80 = (long)((ulong)num11 * (ulong)43969588L); num3 = (uint)((long)num3 + num80); long num81 = num41 * (long)((ulong)30366549L); num3 = (uint)((long)num3 + num81); long num82 = (long)((ulong)num10 * (ulong)163752818L); num3 = (uint)((long)num3 + num82); num82 = num76; num3 = (uint)((long)num3 + num82); long num83 = (long)((ulong)(num20 + 1U) * (ulong)158326419L); long num84 = num22 * (long)((ulong)43969588L); num83 += num84; long num85 = (long)((ulong)num11 * (ulong)30366549L); num83 += num85; long num86 = (long)((ulong)num10 * (ulong)258169998L); num83 += num86; long num87 = num41 * (long)((ulong)163752818L); num83 += num87; num83 += (long)num3; num83 += (long)int3; long num88 = (long)((ulong)(num20 + 1U) * (ulong)191173276L); long num89 = (long)((ulong)num13 * (ulong)43969588L); num4 = (uint)((long)num4 + num88); num4 = (uint)((long)num4 + num89); long num90 = num22 * (long)((ulong)30366549L); num4 = (uint)((long)num4 + num90); long num91 = num41 * (long)((ulong)258169998L); num4 = (uint)((long)num4 + num91); long num92 = (long)((ulong)num11 * (ulong)163752818L); num4 = (uint)((long)num4 + num92); long num93 = (long)((ulong)num10 * (ulong)96434764L); num4 = (uint)((long)num4 + num93); num93 = num83; num4 = (uint)((long)num4 + num93); long num94 = (long)((ulong)(num20 + 1U) * (ulong)104575268L); long num95 = num23 * (long)((ulong)43969588L); num94 += num95; long num96 = (long)((ulong)num13 * (ulong)30366549L); num94 += num96; long num97 = (long)((ulong)num11 * (ulong)258169998L); num94 += num97; long num98 = (long)((ulong)num10 * (ulong)227822194L); num94 += num98; long num99 = num22 * (long)((ulong)163752818L); num94 += num99; long num100 = num41 * (long)((ulong)96434764L); num94 += num100; num94 += (long)num4; num94 += (long)int4; long num101 = (long)((ulong)(num20 + 1U) * (ulong)137584065L); long num102 = (long)((ulong)num14 * (ulong)43969588L); num5 = (uint)((long)num5 + num101); num5 = (uint)((long)num5 + num102); long num103; num5 = (uint)((long)num5 + num103); long num104 = num22 * (long)((ulong)258169998L); num5 = (uint)((long)num5 + num104); long num105 = (long)((ulong)num10 * (ulong)149865618L); num5 = (uint)((long)num5 + num105); long num106 = num41 * (long)((ulong)227822194L); num5 = (uint)((long)num5 + num106); long num107 = (long)((ulong)num13 * (ulong)163752818L); num5 = (uint)((long)num5 + num107); long num108 = (long)((ulong)num11 * (ulong)96434764L); num5 = (uint)((long)num5 + num108); num108 = num94; num5 = (uint)((long)num5 + num108); long num109 = (long)((ulong)num14 * (ulong)30366549L); long num110; num110 += num109; long num111 = (long)((ulong)num10 * (ulong)550336261L); num110 += num111; long num112 = (long)((ulong)num13 * (ulong)258169998L); num110 += num112; long num113 = num41 * (long)((ulong)149865618L); num110 += num113; long num114 = (long)((ulong)num11 * (ulong)227822194L); num110 += num114; long num115; num110 += num115; long num116 = num22 * (long)((ulong)96434764L); num110 += num116; num110 += (long)num5; num110 += (long)int5; long num117; num6 = (uint)((long)num6 + num117); long num118; num6 = (uint)((long)num6 + num118); long num119 = num41 * (long)((ulong)550336261L); num6 = (uint)((long)num6 + num119); long num120 = num23 * (long)((ulong)258169998L); num6 = (uint)((long)num6 + num120); long num121 = (long)((ulong)num11 * (ulong)149865618L); num6 = (uint)((long)num6 + num121); long num122 = num22 * (long)((ulong)227822194L); num6 = (uint)((long)num6 + num122); long num123 = (long)((ulong)num14 * (ulong)163752818L); num6 = (uint)((long)num6 + num123); long num124 = (long)((ulong)num13 * (ulong)96434764L); num6 = (uint)((long)num6 + num124); num124 = num110; num6 = (uint)((long)num6 + num124); long num125; long num126; num125 += num126; long num127 = (long)((ulong)num11 * (ulong)550336261L); num125 += num127; long num128 = (long)((ulong)num14 * (ulong)258169998L); num125 += num128; long num129 = num22 * (long)((ulong)149865618L); num125 += num129; long num130 = (long)((ulong)num13 * (ulong)227822194L); num125 += num130; long num131; num125 += num131; long num132 = num23 * (long)((ulong)96434764L); num125 += num132; num125 += (long)num6; num125 += (long)int6; long num133; num7 = (uint)((long)num7 + num133); long num134; num7 = (uint)((long)num7 + num134); long num135; num7 = (uint)((long)num7 + num135); long num136; num7 = (uint)((long)num7 + num136); long num137 = (long)((ulong)num13 * (ulong)149865618L); num7 = (uint)((long)num7 + num137); long num138 = num23 * (long)((ulong)227822194L); num7 = (uint)((long)num7 + num138); long num139; num7 = (uint)((long)num7 + num139); long num140 = (long)((ulong)num14 * (ulong)96434764L); num7 = (uint)((long)num7 + num140); num140 = num125; num7 = (uint)((long)num7 + num140); long num141; long num142; num141 += num142; long num143 = (long)((ulong)num13 * (ulong)550336261L); num141 += num143; long num144; num141 += num144; long num145 = num23 * (long)((ulong)149865618L); num141 += num145; long num146 = (long)((ulong)num14 * (ulong)227822194L); num141 += num146; long num147; num141 += num147; long num148; num141 += num148; num141 += (long)num7; num141 += (long)int7; long num149; num8 = (uint)((long)num8 + num149); long num150; num8 = (uint)((long)num8 + num150); long num151; num8 = (uint)((long)num8 + num151); long num152; num8 = (uint)((long)num8 + num152); long num153 = (long)((ulong)num14 * (ulong)149865618L); num8 = (uint)((long)num8 + num153); long num154; num8 = (uint)((long)num8 + num154); long num155; num8 = (uint)((long)num8 + num155); long num156; num8 = (uint)((long)num8 + num156); num156 = num141; num8 = (uint)((long)num8 + num156); num38 += (long)num8; num9 = (uint)((long)num9 + num38); num73 -= (long)num9; num73 -= (long)num9; num73 += (long)num2; num2 = num9; num73 -= (long)num2; num73 += num76; num2 = num9; num73 -= (long)num2; num73 += (long)num3; num2 = num9; num73 -= (long)num2; num73 += num83; num2 = num9; num73 -= (long)num2; num73 += (long)num4; num2 = num9; num73 -= (long)num2; num73 += num94; num73 -= (long)num9; num73 += (long)num5; num73 += num110; num73 += (long)num6; num83 = num73; num83 += num125; num110 = num83; num110 += (long)num7; num110 += num141; num110 += (long)num8; num76 = num110; num76 += num38; byte[] array = new byte[57]; int num157 = 0; Ed448.Encode56((ulong)num73, array, num157); Ed448.Encode56((ulong)num73, array, 7); Ed448.Encode56((ulong)num73, array, 14); Ed448.Encode56((ulong)num73, array, 21); Ed448.Encode56((ulong)num73, array, 28); num73 = num110; Ed448.Encode56((ulong)num73, array, 35); num73 = num110; Ed448.Encode56((ulong)num73, array, 42); num73 = num76; num9 = (uint)((long)num9 + num73); Ed448.Encode56((ulong)num9, array, 49); return array; } // Token: 0x0600861E RID: 34334 RVA: 0x001D6584 File Offset: 0x001D4784 [Token(Token = "0x600861E")] [Address(RVA = "0x20AD810", Offset = "0x20AC210", VA = "0x1820AD810")] private static void ScalarMultBase(byte[] k, Ed448.PointExt r) { Ed448.Precompute(); X448Field.Zero(r.x); X448Field.One(r.y); X448Field.One(r.z); uint[] array = new uint[15]; int num = 0; Ed448.DecodeScalar(k, num, array); int num2 = 0; int num3 = 0; uint num4 = Ed448.L[num3]; num3++; uint num5 = array[num3]; num2 += (int)num5; num2 += (int)num4; array[0] = (uint)num2; array[7] = 4U; int length = array.Length; uint num6 = array[length]; array[0] = num6; uint[] array2 = X448Field.Create(); Ed448.PointPrecomp pointPrecomp; pointPrecomp.x = array2; uint[] array3 = X448Field.Create(); pointPrecomp.y = array3; int num7 = 0; int length2 = array.Length; int num8 = 0; uint num9; num9 += (uint)18; num8++; uint num10 = array[(int)num9]; Ed448.PointLookup(num7, (int)num10, pointPrecomp); uint[] x = pointPrecomp.x; X448Field.CNegate((int)num10, x); Ed448.PointAddPrecomp(pointPrecomp, r); num7++; uint num11 = num9 - 1U; Ed448.PointDouble(r); } // Token: 0x0600861F RID: 34335 RVA: 0x001D66B4 File Offset: 0x001D48B4 [Token(Token = "0x600861F")] [Address(RVA = "0x20AD620", Offset = "0x20AC020", VA = "0x1820AD620")] private static void ScalarMultBaseEncoded(byte[] k, byte[] r, int rOff) { uint[] array = X448Field.Create(); Ed448.PointExt pointExt; pointExt.x = array; uint[] array2 = X448Field.Create(); pointExt.y = array2; uint[] array3 = X448Field.Create(); pointExt.z = array3; Ed448.ScalarMultBase(k, pointExt); Ed448.EncodePoint(pointExt, r, rOff); } // Token: 0x06008620 RID: 34336 RVA: 0x001D6704 File Offset: 0x001D4904 [Token(Token = "0x6008620")] [Address(RVA = "0x20AD6F0", Offset = "0x20AC0F0", VA = "0x1820AD6F0")] internal static void ScalarMultBaseXY(byte[] k, int kOff, uint[] x, uint[] y) { byte[] array = new byte[57]; Ed448.PruneScalar(k, kOff, array); uint[] array2 = X448Field.Create(); Ed448.PointExt pointExt; pointExt.x = array2; uint[] array3 = X448Field.Create(); pointExt.y = array3; uint[] array4 = X448Field.Create(); pointExt.z = array4; Ed448.ScalarMultBase(array, pointExt); uint[] x2 = pointExt.x; int num = 0; int num2 = 0; X448Field.Copy(x2, num2, x, num); uint[] y2 = pointExt.y; int num3 = 0; int num4 = 0; X448Field.Copy(y2, num4, y, num3); } // Token: 0x06008621 RID: 34337 RVA: 0x001D6794 File Offset: 0x001D4994 [Token(Token = "0x6008621")] [Address(RVA = "0x20ADB70", Offset = "0x20AC570", VA = "0x1820ADB70")] private static void ScalarMultStraussVar(uint[] nb, uint[] np, Ed448.PointExt p, Ed448.PointExt r) { Ed448.Precompute(); sbyte[] wnaf = Ed448.GetWnaf(nb, 7); sbyte[] wnaf2 = Ed448.GetWnaf(np, 5); Ed448.PointExt[] array = Ed448.PointPrecompVar(p, 8); X448Field.Zero(r.x); X448Field.One(r.y); X448Field.One(r.z); if ((uint)447 == (uint)wnaf2.Length) { } sbyte b; Ed448.PointExt pointExt = Ed448.precompBaseTable[(int)b]; bool flag; Ed448.PointAddVar(flag, pointExt, r); if ((uint)447 != 0U) { Ed448.PointExt pointExt2; Ed448.PointAddVar((uint)447 != 0U, pointExt2, r); } Ed448.PointDouble(r); } // Token: 0x06008622 RID: 34338 RVA: 0x001D6830 File Offset: 0x001D4A30 [Token(Token = "0x6008622")] [Address(RVA = "0x20AE300", Offset = "0x20ACD00", VA = "0x1820AE300")] public static void Sign(byte[] sk, int skOff, byte[] ctx, byte[] m, int mOff, int mLen, byte[] sig, int sigOff) { } // Token: 0x06008623 RID: 34339 RVA: 0x001D6840 File Offset: 0x001D4A40 [Token(Token = "0x6008623")] [Address(RVA = "0x20AE3C0", Offset = "0x20ACDC0", VA = "0x1820AE3C0")] public static void Sign(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, byte[] m, int mOff, int mLen, byte[] sig, int sigOff) { } // Token: 0x06008624 RID: 34340 RVA: 0x001D6850 File Offset: 0x001D4A50 [Token(Token = "0x6008624")] [Address(RVA = "0x20AE230", Offset = "0x20ACC30", VA = "0x1820AE230")] public static void SignPrehash(byte[] sk, int skOff, byte[] ctx, byte[] ph, int phOff, byte[] sig, int sigOff) { int prehashSize = Ed448.PrehashSize; } // Token: 0x06008625 RID: 34341 RVA: 0x001D6864 File Offset: 0x001D4A64 [Token(Token = "0x6008625")] [Address(RVA = "0x20ADE30", Offset = "0x20AC830", VA = "0x1820ADE30")] public static void SignPrehash(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, byte[] ph, int phOff, byte[] sig, int sigOff) { int prehashSize = Ed448.PrehashSize; } // Token: 0x06008626 RID: 34342 RVA: 0x001D6878 File Offset: 0x001D4A78 [Token(Token = "0x6008626")] [Address(RVA = "0x20AE0B0", Offset = "0x20ACAB0", VA = "0x1820AE0B0")] public static void SignPrehash(byte[] sk, int skOff, byte[] ctx, IXof ph, byte[] sig, int sigOff) { /* An exception occurred when decompiling this method (06008626) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed448::SignPrehash(System.Byte[],System.Int32,System.Byte[],BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IXof,System.Byte[],System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_21: stloc:ArgumentException(var_5_2B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("ph"))) } 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: 0x06008627 RID: 34343 RVA: 0x001D68B4 File Offset: 0x001D4AB4 [Token(Token = "0x6008627")] [Address(RVA = "0x20ADF10", Offset = "0x20AC910", VA = "0x1820ADF10")] public static void SignPrehash(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, IXof ph, byte[] sig, int sigOff) { /* An exception occurred when decompiling this method (06008627) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed448::SignPrehash(System.Byte[],System.Int32,System.Byte[],System.Int32,System.Byte[],BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IXof,System.Byte[],System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_21: stloc:ArgumentException(var_6_2B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("ph"))) } 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: 0x06008628 RID: 34344 RVA: 0x001D68F0 File Offset: 0x001D4AF0 [Token(Token = "0x6008628")] [Address(RVA = "0x20AE6F0", Offset = "0x20AD0F0", VA = "0x1820AE6F0")] public static bool Verify(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, byte[] m, int mOff, int mLen) { bool flag; return flag; } // Token: 0x06008629 RID: 34345 RVA: 0x001D6900 File Offset: 0x001D4B00 [Token(Token = "0x6008629")] [Address(RVA = "0x20AE4A0", Offset = "0x20ACEA0", VA = "0x1820AE4A0")] public static bool VerifyPrehash(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, byte[] ph, int phOff) { int prehashSize = Ed448.PrehashSize; bool flag; return flag; } // Token: 0x0600862A RID: 34346 RVA: 0x001D6914 File Offset: 0x001D4B14 [Token(Token = "0x600862A")] [Address(RVA = "0x20AE570", Offset = "0x20ACF70", VA = "0x1820AE570")] public static bool VerifyPrehash(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, IXof ph) { /* An exception occurred when decompiling this method (0600862A) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed448::VerifyPrehash(System.Byte[],System.Int32,System.Byte[],System.Int32,System.Byte[],BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IXof) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_23: stloc:ArgumentException(var_7_2D, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("ph"))) } 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: 0x0600862B RID: 34347 RVA: 0x001D6950 File Offset: 0x001D4B50 [Token(Token = "0x600862B")] [Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")] protected Ed448() { } // Token: 0x0600862C RID: 34348 RVA: 0x001D6964 File Offset: 0x001D4B64 // Note: this type is marked as 'beforefieldinit'. [Token(Token = "0x600862C")] [Address(RVA = "0x20AE7B0", Offset = "0x20AD1B0", VA = "0x1820AE7B0")] static Ed448() { uint[] array = new uint[14]; RuntimeHelpers.InitializeArray(array, fieldof(.6E92E42774698E4C089FE0FE4F7539D0D5F845F5).FieldHandle); Ed448.P = array; uint[] array2 = new uint[14]; int num = 0; RuntimeHelpers.InitializeArray(array2, fieldof(.14353D63A97A25640437E7C0DAE8B1596F34AB2C).FieldHandle); Ed448.L = array2; uint[] l = Ed448.L; int length = l.Length; byte[] array3 = new byte[0]; int num2 = 0; if (length > 0) { uint num3 = l[num2]; if (num3 != (uint)0) { Pack.UInt32_To_BE(num3, array3, num); } num2++; } Ed448.N = new BigInteger(1, array3); uint[] array4 = new uint[16]; RuntimeHelpers.InitializeArray(array4, fieldof(.17BCB27C371D710141A300DA5A9A3EADF78D7A35).FieldHandle); Ed448.B_x = array4; uint[] array5 = new uint[16]; RuntimeHelpers.InitializeArray(array5, fieldof(.0060620709E93572EB9D62564332C778F7AE32E9).FieldHandle); Ed448.B_y = array5; Ed448.precompLock = new object(); } // Token: 0x04005C90 RID: 23696 [Token(Token = "0x4005C90")] private const ulong M26UL = 67108863UL; // Token: 0x04005C91 RID: 23697 [Token(Token = "0x4005C91")] private const ulong M28UL = 268435455UL; // Token: 0x04005C92 RID: 23698 [Token(Token = "0x4005C92")] private const int PointBytes = 57; // Token: 0x04005C93 RID: 23699 [Token(Token = "0x4005C93")] private const int ScalarUints = 14; // Token: 0x04005C94 RID: 23700 [Token(Token = "0x4005C94")] private const int ScalarBytes = 57; // Token: 0x04005C95 RID: 23701 [Token(Token = "0x4005C95")] public static readonly int PrehashSize; // Token: 0x04005C96 RID: 23702 [Token(Token = "0x4005C96")] public static readonly int PublicKeySize; // Token: 0x04005C97 RID: 23703 [Token(Token = "0x4005C97")] public static readonly int SecretKeySize; // Token: 0x04005C98 RID: 23704 [Token(Token = "0x4005C98")] public static readonly int SignatureSize; // Token: 0x04005C99 RID: 23705 [Token(Token = "0x4005C99")] private static readonly byte[] Dom4Prefix = Strings.ToByteArray("SigEd448"); // Token: 0x04005C9A RID: 23706 [Token(Token = "0x4005C9A")] private static readonly uint[] P; // Token: 0x04005C9B RID: 23707 [Token(Token = "0x4005C9B")] private static readonly uint[] L; // Token: 0x04005C9C RID: 23708 [Token(Token = "0x4005C9C")] private static readonly BigInteger N; // Token: 0x04005C9D RID: 23709 [Token(Token = "0x4005C9D")] private const int L_0 = 78101261; // Token: 0x04005C9E RID: 23710 [Token(Token = "0x4005C9E")] private const int L_1 = 141809365; // Token: 0x04005C9F RID: 23711 [Token(Token = "0x4005C9F")] private const int L_2 = 175155932; // Token: 0x04005CA0 RID: 23712 [Token(Token = "0x4005CA0")] private const int L_3 = 64542499; // Token: 0x04005CA1 RID: 23713 [Token(Token = "0x4005CA1")] private const int L_4 = 158326419; // Token: 0x04005CA2 RID: 23714 [Token(Token = "0x4005CA2")] private const int L_5 = 191173276; // Token: 0x04005CA3 RID: 23715 [Token(Token = "0x4005CA3")] private const int L_6 = 104575268; // Token: 0x04005CA4 RID: 23716 [Token(Token = "0x4005CA4")] private const int L_7 = 137584065; // Token: 0x04005CA5 RID: 23717 [Token(Token = "0x4005CA5")] private const int L4_0 = 43969588; // Token: 0x04005CA6 RID: 23718 [Token(Token = "0x4005CA6")] private const int L4_1 = 30366549; // Token: 0x04005CA7 RID: 23719 [Token(Token = "0x4005CA7")] private const int L4_2 = 163752818; // Token: 0x04005CA8 RID: 23720 [Token(Token = "0x4005CA8")] private const int L4_3 = 258169998; // Token: 0x04005CA9 RID: 23721 [Token(Token = "0x4005CA9")] private const int L4_4 = 96434764; // Token: 0x04005CAA RID: 23722 [Token(Token = "0x4005CAA")] private const int L4_5 = 227822194; // Token: 0x04005CAB RID: 23723 [Token(Token = "0x4005CAB")] private const int L4_6 = 149865618; // Token: 0x04005CAC RID: 23724 [Token(Token = "0x4005CAC")] private const int L4_7 = 550336261; // Token: 0x04005CAD RID: 23725 [Token(Token = "0x4005CAD")] private static readonly uint[] B_x; // Token: 0x04005CAE RID: 23726 [Token(Token = "0x4005CAE")] private static readonly uint[] B_y; // Token: 0x04005CAF RID: 23727 [Token(Token = "0x4005CAF")] private const int C_d = -39081; // Token: 0x04005CB0 RID: 23728 [Token(Token = "0x4005CB0")] private const int WnafWidthBase = 7; // Token: 0x04005CB1 RID: 23729 [Token(Token = "0x4005CB1")] private const int PrecompBlocks = 5; // Token: 0x04005CB2 RID: 23730 [Token(Token = "0x4005CB2")] private const int PrecompTeeth = 5; // Token: 0x04005CB3 RID: 23731 [Token(Token = "0x4005CB3")] private const int PrecompSpacing = 18; // Token: 0x04005CB4 RID: 23732 [Token(Token = "0x4005CB4")] private const int PrecompPoints = 16; // Token: 0x04005CB5 RID: 23733 [Token(Token = "0x4005CB5")] private const int PrecompMask = 15; // Token: 0x04005CB6 RID: 23734 [Token(Token = "0x4005CB6")] private static readonly object precompLock; // Token: 0x04005CB7 RID: 23735 [Token(Token = "0x4005CB7")] private static Ed448.PointExt[] precompBaseTable; // Token: 0x04005CB8 RID: 23736 [Token(Token = "0x4005CB8")] private static uint[] precompBase; // Token: 0x02001431 RID: 5169 [Token(Token = "0x2001431")] public enum Algorithm { // Token: 0x04005CBA RID: 23738 [Token(Token = "0x4005CBA")] Ed448, // Token: 0x04005CBB RID: 23739 [Token(Token = "0x4005CBB")] Ed448ph } // Token: 0x02001432 RID: 5170 [Token(Token = "0x2001432")] private class PointExt { // Token: 0x0600862D RID: 34349 RVA: 0x001D6A4C File Offset: 0x001D4C4C [Token(Token = "0x600862D")] [Address(RVA = "0x20C14A0", Offset = "0x20BFEA0", VA = "0x1820C14A0")] public PointExt() { uint[] array = X448Field.Create(); this.x = array; uint[] array2 = X448Field.Create(); this.y = array2; uint[] array3 = X448Field.Create(); this.z = array3; base..ctor(); } // Token: 0x04005CBC RID: 23740 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4005CBC")] internal uint[] x; // Token: 0x04005CBD RID: 23741 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x4005CBD")] internal uint[] y; // Token: 0x04005CBE RID: 23742 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x4005CBE")] internal uint[] z; } // Token: 0x02001433 RID: 5171 [Token(Token = "0x2001433")] private class PointPrecomp { // Token: 0x0600862E RID: 34350 RVA: 0x001D6A90 File Offset: 0x001D4C90 [Token(Token = "0x600862E")] [Address(RVA = "0x20C1560", Offset = "0x20BFF60", VA = "0x1820C1560")] public PointPrecomp() { uint[] array = X448Field.Create(); this.x = array; uint[] array2 = X448Field.Create(); this.y = array2; base..ctor(); } // Token: 0x04005CBF RID: 23743 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4005CBF")] internal uint[] x; // Token: 0x04005CC0 RID: 23744 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x4005CC0")] internal uint[] y; } } }