using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto; using BestHTTP.SecureProtocol.Org.BouncyCastle.Security; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math { // Token: 0x020013F8 RID: 5112 [Token(Token = "0x20013F8")] [StructLayout(3)] public abstract class Primes { // Token: 0x0600828F RID: 33423 RVA: 0x001BEB4C File Offset: 0x001BCD4C [Token(Token = "0x600828F")] [Address(RVA = "0x20C1D60", Offset = "0x20C0760", VA = "0x1820C1D60")] public static Primes.STOutput GenerateSTRandomPrime(IDigest hash, int length, byte[] inputSeed) { /* An exception occurred when decompiling this method (0600828F) ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Primes/STOutput BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Primes::GenerateSTRandomPrime(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest,System.Int32,System.Byte[]) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_2C: stloc:ArgumentException(var_2_3B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("cannot be empty"), ldstr:string("inputSeed"))) } 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.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.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: 0x06008290 RID: 33424 RVA: 0x001BEB94 File Offset: 0x001BCD94 [Token(Token = "0x6008290")] [Address(RVA = "0x20C16E0", Offset = "0x20C00E0", VA = "0x1820C16E0")] public static Primes.MROutput EnhancedMRProbablePrimeTest(BigInteger candidate, SecureRandom random, int iterations) { /* An exception occurred when decompiling this method (06008290) ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Primes/MROutput BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Primes::EnhancedMRProbablePrimeTest(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Security.SecureRandom,System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_114: stloc:ArgumentNullException(var_26_11E, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("random"))) } 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: 0x06008291 RID: 33425 RVA: 0x001BECC0 File Offset: 0x001BCEC0 [Token(Token = "0x6008291")] [Address(RVA = "0x20C1F00", Offset = "0x20C0900", VA = "0x1820C1F00")] public static bool HasAnySmallFactors(BigInteger candidate) { Primes.CheckCandidate(candidate, "candidate"); return Primes.ImplHasAnySmallFactors(candidate); } // Token: 0x06008292 RID: 33426 RVA: 0x001BECE0 File Offset: 0x001BCEE0 [Token(Token = "0x6008292")] [Address(RVA = "0x20C39C0", Offset = "0x20C23C0", VA = "0x1820C39C0")] public static bool IsMRProbablePrime(BigInteger candidate, SecureRandom random, int iterations) { /* An exception occurred when decompiling this method (06008292) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Primes::IsMRProbablePrime(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Security.SecureRandom,System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_81: stloc:ArgumentException(var_10_90, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("cannot be null"), ldstr:string("random"))) } 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: 0x06008293 RID: 33427 RVA: 0x001BED80 File Offset: 0x001BCF80 [Token(Token = "0x6008293")] [Address(RVA = "0x20C3810", Offset = "0x20C2210", VA = "0x1820C3810")] public static bool IsMRProbablePrimeToBase(BigInteger candidate, BigInteger baseValue) { Primes.CheckCandidate(candidate, "candidate"); Primes.CheckCandidate(baseValue, "baseValue"); BigInteger one = Primes.One; BigInteger bigInteger = candidate.Subtract(one); int num = baseValue.CompareTo(bigInteger); if (candidate.BitLength != 2) { BigInteger one2 = Primes.One; BigInteger bigInteger2 = candidate.Subtract(one2); int lowestSetBit = bigInteger2.GetLowestSetBit(); BigInteger bigInteger3 = bigInteger2.ShiftRight(lowestSetBit); return Primes.ImplMRProbablePrimeToBase(candidate, bigInteger2, bigInteger3, lowestSetBit, baseValue); } throw new NullReferenceException(); } // Token: 0x06008294 RID: 33428 RVA: 0x001BEDF8 File Offset: 0x001BCFF8 [Token(Token = "0x6008294")] [Address(RVA = "0x20C1650", Offset = "0x20C0050", VA = "0x1820C1650")] private static void CheckCandidate(BigInteger n, string name) { /* An exception occurred when decompiling this method (06008294) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Primes::CheckCandidate(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,System.String) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_0C: stloc:ArgumentException(var_1_17, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("must be non-null and >= 2"), ldloc:string(name))) } 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: 0x06008295 RID: 33429 RVA: 0x001BEE1C File Offset: 0x001BD01C [Token(Token = "0x6008295")] [Address(RVA = "0x20C21E0", Offset = "0x20C0BE0", VA = "0x1820C21E0")] private static bool ImplHasAnySmallFactors(BigInteger x) { uint num; BigInteger bigInteger = BigInteger.ValueOf((long)num); int num2 = x.Mod(bigInteger).IntValue; if (num2 != 1 && num2 != 1) { ulong num3; num3 += num3; if (num2 != 1) { ulong num4; num4 += num4; long num5 = (long)(num4 * (ulong)((uint)7)); num2 = (int)((long)num2 - num5); if (num2 != 1) { ulong num6; num6 += num6; long num7 = (long)(num6 * (ulong)((uint)11)); num2 = (int)((long)num2 - num7); if (num2 != 1) { ulong num8; num8 += num8; long num9 = (long)(num8 * (ulong)((uint)13)); num2 = (int)((long)num2 - num9); if (num2 != 1) { ulong num10; num10 += num10; long num11 = (long)(num10 * (ulong)((uint)17)); num2 = (int)((long)num2 - num11); if (num2 != 1) { ulong num12; num12 += num12; long num13 = (long)(num12 * (ulong)((uint)19)); num2 = (int)((long)num2 - num13); if (num2 != 1) { ulong num14; num14 += num14; long num15 = (long)(num14 * (ulong)((uint)23)); if ((long)num2 != num15) { uint num16; BigInteger bigInteger2 = BigInteger.ValueOf((long)num16); int num17 = x.Mod(bigInteger2).IntValue; ulong num18; num18 += num18; long num19 = (long)(num18 * (ulong)((uint)29)); if ((long)num17 != num19) { ulong num20; num20 += num20; long num21 = (long)(num20 * (ulong)((uint)31)); num17 = (int)((long)num17 - num21); if ((long)num17 != num19) { ulong num22; num22 += num22; long num23 = (long)(num22 * (ulong)((uint)37)); num17 = (int)((long)num17 - num23); if ((long)num17 != num19) { ulong num24; num24 += num24; long num25 = (long)(num24 * (ulong)((uint)41)); num17 = (int)((long)num17 - num25); if ((long)num17 != num19) { ulong num26; num26 += num26; long num27 = (long)(num26 * (ulong)((uint)43)); if ((long)num17 != num27) { uint num28; BigInteger bigInteger3 = BigInteger.ValueOf((long)num28); int num29 = x.Mod(bigInteger3).IntValue; ulong num30; num30 += num30; long num31 = (long)(num30 * (ulong)((uint)47)); if ((long)num29 != num31) { ulong num32; num32 += num32; long num33 = (long)(num32 * (ulong)((uint)53)); num29 = (int)((long)num29 - num33); if ((long)num29 != num31) { ulong num34; num34 += num34; long num35 = (long)(num34 * (ulong)((uint)59)); num29 = (int)((long)num29 - num35); if ((long)num29 != num31) { ulong num36; num36 += num36; long num37 = (long)(num36 * (ulong)((uint)61)); num29 = (int)((long)num29 - num37); if ((long)num29 != num31) { ulong num38; num38 += num38; long num39 = (long)(num38 * (ulong)((uint)67)); if ((long)num29 != num39) { uint num40; BigInteger bigInteger4 = BigInteger.ValueOf((long)num40); int num41 = x.Mod(bigInteger4).IntValue; ulong num42; num42 += num42; long num43 = (long)(num42 * (ulong)((uint)71)); if ((long)num41 != num43) { ulong num44; num44 += num44; long num45 = (long)(num44 * (ulong)((uint)73)); num41 = (int)((long)num41 - num45); if ((long)num41 != num43) { ulong num46; num46 += num46; long num47 = (long)(num46 * (ulong)((uint)79)); num41 = (int)((long)num41 - num47); if ((long)num41 != num43) { ulong num48; num48 += num48; long num49 = (long)(num48 * (ulong)((uint)83)); if ((long)num41 != num49) { uint num50; BigInteger bigInteger5 = BigInteger.ValueOf((long)num50); int num51 = x.Mod(bigInteger5).IntValue; ulong num52; num52 += num52; long num53 = (long)(num52 * (ulong)((uint)89)); if ((long)num51 != num53) { ulong num54; num54 += num54; long num55 = (long)(num54 * (ulong)((uint)97)); num51 = (int)((long)num51 - num55); if ((long)num51 != num53) { ulong num56; num56 += num56; long num57 = (long)(num56 * (ulong)((uint)101)); num51 = (int)((long)num51 - num57); if ((long)num51 != num53) { ulong num58; num58 += num58; long num59 = (long)(num58 * (ulong)((uint)103)); if ((long)num51 != num59) { uint num60; BigInteger bigInteger6 = BigInteger.ValueOf((long)num60); int num61 = x.Mod(bigInteger6).IntValue; ulong num62; num62 += num62; long num63 = (long)(num62 * (ulong)((uint)107)); if ((long)num61 != num63) { ulong num64; num64 += num64; long num65 = (long)(num64 * (ulong)((uint)109)); num61 = (int)((long)num61 - num65); if ((long)num61 != num63) { ulong num66; num66 += num66; long num67 = (long)(num66 * (ulong)((uint)113)); num61 = (int)((long)num61 - num67); if ((long)num61 != num63) { ulong num68; num68 += num68; long num69 = (long)(num68 * (ulong)((uint)127)); if ((long)num61 != num69) { uint num70; BigInteger bigInteger7 = BigInteger.ValueOf((long)num70); int num71 = x.Mod(bigInteger7).IntValue; ulong num72; num72 += num72; long num73 = (long)(num72 * (ulong)((uint)131)); if ((long)num71 != num73) { ulong num74; num74 += num74; long num75 = (long)(num74 * (ulong)((uint)137)); num71 = (int)((long)num71 - num75); if ((long)num71 != num73) { ulong num76; num76 += num76; long num77 = (long)(num76 * (ulong)((uint)139)); num71 = (int)((long)num71 - num77); if ((long)num71 != num73) { ulong num78; num78 += num78; long num79 = (long)(num78 * (ulong)((uint)149)); if ((long)num71 != num79) { uint num80; BigInteger bigInteger8 = BigInteger.ValueOf((long)num80); int num81 = x.Mod(bigInteger8).IntValue; ulong num82; num82 += num82; long num83 = (long)(num82 * (ulong)((uint)151)); if ((long)num81 != num83) { ulong num84; num84 += num84; long num85 = (long)(num84 * (ulong)((uint)157)); num81 = (int)((long)num81 - num85); if ((long)num81 != num83) { ulong num86; num86 += num86; long num87 = (long)(num86 * (ulong)((uint)163)); num81 = (int)((long)num81 - num87); if ((long)num81 != num83) { ulong num88; num88 += num88; long num89 = (long)(num88 * (ulong)((uint)167)); if ((long)num81 != num89) { uint num90; BigInteger bigInteger9 = BigInteger.ValueOf((long)num90); int num91 = x.Mod(bigInteger9).IntValue; ulong num92; num92 += num92; long num93 = (long)(num92 * (ulong)((uint)173)); if ((long)num91 != num93) { ulong num94; num94 += num94; long num95 = (long)(num94 * (ulong)((uint)179)); num91 = (int)((long)num91 - num95); if ((long)num91 != num93) { ulong num96; num96 += num96; long num97 = (long)(num96 * (ulong)((uint)181)); num91 = (int)((long)num91 - num97); if ((long)num91 != num93) { ulong num98; num98 += num98; long num99 = (long)(num98 * (ulong)((uint)191)); if ((long)num91 != num99) { uint num100; BigInteger bigInteger10 = BigInteger.ValueOf((long)num100); int num101 = x.Mod(bigInteger10).IntValue; ulong num102; num102 += num102; long num103 = (long)(num102 * (ulong)((uint)193)); if ((long)num101 != num103) { ulong num104; num104 += num104; long num105 = (long)(num104 * (ulong)((uint)197)); num101 = (int)((long)num101 - num105); if ((long)num101 != num103) { ulong num106; num106 += num106; long num107 = (long)(num106 * (ulong)((uint)199)); num101 = (int)((long)num101 - num107); if ((long)num101 != num103) { ulong num108; num108 += num108; long num109 = (long)(num108 * (ulong)((uint)211)); if ((long)num101 != num109) { } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } throw new NullReferenceException(); } // Token: 0x06008296 RID: 33430 RVA: 0x001BF414 File Offset: 0x001BD614 [Token(Token = "0x6008296")] [Address(RVA = "0x20C2B20", Offset = "0x20C1520", VA = "0x1820C2B20")] private static bool ImplMRProbablePrimeToBase(BigInteger w, BigInteger wSubOne, BigInteger m, int a, BigInteger b) { if (a > 1) { BigInteger two = Primes.Two; BigInteger bigInteger2; BigInteger bigInteger = bigInteger2.ModPow(two, w); } throw new NullReferenceException(); } // Token: 0x06008297 RID: 33431 RVA: 0x001BF43C File Offset: 0x001BD63C [Token(Token = "0x6008297")] [Address(RVA = "0x20C2CF0", Offset = "0x20C16F0", VA = "0x1820C2CF0")] private static Primes.STOutput ImplSTRandomPrime(IDigest d, int length, byte[] primeSeed) { /* An exception occurred when decompiling this method (06008297) ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Primes/STOutput BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Primes::ImplSTRandomPrime(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest,System.Int32,System.Byte[]) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_2F8: stloc:InvalidOperationException(var_65_302, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Too many iterations in Shawe-Taylor Random_Prime Routine"))) } 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: 0x06008298 RID: 33432 RVA: 0x001BF74C File Offset: 0x001BD94C [Token(Token = "0x6008298")] [Address(RVA = "0x20C1C90", Offset = "0x20C0690", VA = "0x1820C1C90")] private static uint Extract32(byte[] bs) { int num = 0; int length = bs.Length; int num2 = Math.Min(4, length); if (num2 > 0) { num2 = bs.Length; num++; num += 8; } throw new NullReferenceException(); } // Token: 0x06008299 RID: 33433 RVA: 0x001BF784 File Offset: 0x001BD984 [Token(Token = "0x6008299")] [Address(RVA = "0x20C20D0", Offset = "0x20C0AD0", VA = "0x1820C20D0")] private static void Hash(IDigest d, byte[] input, byte[] output, int outPos) { int length = input.Length; int num = 0; if (num < d) { num += num; num++; } string algorithmName = d.AlgorithmName; } // Token: 0x0600829A RID: 33434 RVA: 0x001BF7B4 File Offset: 0x001BD9B4 [Token(Token = "0x600829A")] [Address(RVA = "0x20C1F70", Offset = "0x20C0970", VA = "0x1820C1F70")] private static BigInteger HashGen(IDigest d, byte[] seed, int count) { byte[] array = new byte[0]; int num = 0; if (count > 0) { int length = seed.Length; uint num2; byte b; num2 += (uint)b; num++; } return new BigInteger(1, array); } // Token: 0x0600829B RID: 33435 RVA: 0x001BF7EC File Offset: 0x001BD9EC [Token(Token = "0x600829B")] [Address(RVA = "0x20C37C0", Offset = "0x20C21C0", VA = "0x1820C37C0")] private static void Inc(byte[] seed, int c) { int length = seed.Length; if (c > 0) { } } // Token: 0x0600829C RID: 33436 RVA: 0x001BF80C File Offset: 0x001BDA0C [Token(Token = "0x600829C")] [Address(RVA = "0x20C3C20", Offset = "0x20C2620", VA = "0x1820C3C20")] private static bool IsPrime32(uint x) { if (x > (uint)5) { if (x != (uint)1 && x != (uint)1 && x != (uint)1) { uint[] array = new uint[8]; RuntimeHelpers.InitializeArray(array, fieldof(.CF47311491B9DA067CDF3F5F087D7EFAF2B64F97).FieldHandle); int num = 0; int length = array.Length; uint num2; if (num2 < (uint)length) { int num3 = 0; uint num4 = array[(int)num2]; num4 += (uint)num; if (num3 == 0) { goto IL_64; } num2 += (uint)1; } num += 30; if (num == -65536 && num * num < (int)x) { } } IL_64:; } return x == (uint)5; } // Token: 0x0600829D RID: 33437 RVA: 0x001BF88C File Offset: 0x001BDA8C [Token(Token = "0x600829D")] [Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")] protected Primes() { } // Token: 0x04005C04 RID: 23556 [Token(Token = "0x4005C04")] public static readonly int SmallFactorLimit; // Token: 0x04005C05 RID: 23557 [Token(Token = "0x4005C05")] private static readonly BigInteger One = BigInteger.One; // Token: 0x04005C06 RID: 23558 [Token(Token = "0x4005C06")] private static readonly BigInteger Two = BigInteger.Two; // Token: 0x04005C07 RID: 23559 [Token(Token = "0x4005C07")] private static readonly BigInteger Three = BigInteger.Three; // Token: 0x020013F9 RID: 5113 [Token(Token = "0x20013F9")] public class MROutput { // Token: 0x0600829F RID: 33439 RVA: 0x001BF8CC File Offset: 0x001BDACC [Token(Token = "0x600829F")] [Address(RVA = "0x20AFA30", Offset = "0x20AE430", VA = "0x1820AFA30")] internal static Primes.MROutput ProbablyPrime() { Primes.MROutput mroutput; mroutput.mProvablyComposite = false; mroutput.mFactor = (ulong)0L; return mroutput; } // Token: 0x060082A0 RID: 33440 RVA: 0x001BF8EC File Offset: 0x001BDAEC [Token(Token = "0x60082A0")] [Address(RVA = "0x20AFAD0", Offset = "0x20AE4D0", VA = "0x1820AFAD0")] internal static Primes.MROutput ProvablyCompositeWithFactor(BigInteger factor) { Primes.MROutput mroutput; mroutput.mProvablyComposite = true; mroutput.mFactor = factor; return mroutput; } // Token: 0x060082A1 RID: 33441 RVA: 0x001BF908 File Offset: 0x001BDB08 [Token(Token = "0x60082A1")] [Address(RVA = "0x20AFA80", Offset = "0x20AE480", VA = "0x1820AFA80")] internal static Primes.MROutput ProvablyCompositeNotPrimePower() { Primes.MROutput mroutput; mroutput.mProvablyComposite = true; mroutput.mFactor = (ulong)0L; return mroutput; } // Token: 0x060082A2 RID: 33442 RVA: 0x001BF928 File Offset: 0x001BDB28 [Token(Token = "0x60082A2")] [Address(RVA = "0xB628E0", Offset = "0xB612E0", VA = "0x180B628E0")] private MROutput(bool provablyComposite, BigInteger factor) { this.mProvablyComposite = provablyComposite; this.mFactor = factor; } // Token: 0x1700152A RID: 5418 // (get) Token: 0x060082A3 RID: 33443 RVA: 0x001BF94C File Offset: 0x001BDB4C [Token(Token = "0x1700152A")] public BigInteger Factor { [Token(Token = "0x60082A3")] [Address(RVA = "0x3C1240", Offset = "0x3BFC40", VA = "0x1803C1240")] get { return this.mFactor; } } // Token: 0x1700152B RID: 5419 // (get) Token: 0x060082A4 RID: 33444 RVA: 0x001BF960 File Offset: 0x001BDB60 [Token(Token = "0x1700152B")] public bool IsProvablyComposite { [Token(Token = "0x60082A4")] [Address(RVA = "0x559440", Offset = "0x557E40", VA = "0x180559440")] get { return this.mProvablyComposite; } } // Token: 0x1700152C RID: 5420 // (get) Token: 0x060082A5 RID: 33445 RVA: 0x001BF974 File Offset: 0x001BDB74 [Token(Token = "0x1700152C")] public bool IsNotPrimePower { [Token(Token = "0x60082A5")] [Address(RVA = "0x20AFB30", Offset = "0x20AE530", VA = "0x1820AFB30")] get { if (!this.mProvablyComposite) { } return this.mFactor == (ulong)0L; } } // Token: 0x04005C08 RID: 23560 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4005C08")] private readonly bool mProvablyComposite; // Token: 0x04005C09 RID: 23561 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x4005C09")] private readonly BigInteger mFactor; } // Token: 0x020013FA RID: 5114 [Token(Token = "0x20013FA")] public class STOutput { // Token: 0x060082A6 RID: 33446 RVA: 0x001BF998 File Offset: 0x001BDB98 [Token(Token = "0x60082A6")] [Address(RVA = "0x602F40", Offset = "0x601940", VA = "0x180602F40")] internal STOutput(BigInteger prime, byte[] primeSeed, int primeGenCounter) { this.mPrime = prime; this.mPrimeSeed = primeSeed; this.mPrimeGenCounter = primeGenCounter; } // Token: 0x1700152D RID: 5421 // (get) Token: 0x060082A7 RID: 33447 RVA: 0x001BF9C0 File Offset: 0x001BDBC0 [Token(Token = "0x1700152D")] public BigInteger Prime { [Token(Token = "0x60082A7")] [Address(RVA = "0x3C39A0", Offset = "0x3C23A0", VA = "0x1803C39A0")] get { return this.mPrime; } } // Token: 0x1700152E RID: 5422 // (get) Token: 0x060082A8 RID: 33448 RVA: 0x001BF9D4 File Offset: 0x001BDBD4 [Token(Token = "0x1700152E")] public byte[] PrimeSeed { [Token(Token = "0x60082A8")] [Address(RVA = "0x3C1240", Offset = "0x3BFC40", VA = "0x1803C1240")] get { return this.mPrimeSeed; } } // Token: 0x1700152F RID: 5423 // (get) Token: 0x060082A9 RID: 33449 RVA: 0x001BF9E8 File Offset: 0x001BDBE8 [Token(Token = "0x1700152F")] public int PrimeGenCounter { [Token(Token = "0x60082A9")] [Address(RVA = "0x4FBD40", Offset = "0x4FA740", VA = "0x1804FBD40")] get { return this.mPrimeGenCounter; } } // Token: 0x04005C0A RID: 23562 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4005C0A")] private readonly BigInteger mPrime; // Token: 0x04005C0B RID: 23563 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x4005C0B")] private readonly byte[] mPrimeSeed; // Token: 0x04005C0C RID: 23564 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x4005C0C")] private readonly int mPrimeGenCounter; } } }