using System; using System.Collections; using System.Text; using BestHTTP.SecureProtocol.Org.BouncyCastle.Security; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math { // Token: 0x02001AB4 RID: 6836 [Token(Token = "0x2001AB4")] [Serializable] public class BigInteger { // Token: 0x0600A1CB RID: 41419 RVA: 0x0021B228 File Offset: 0x00219428 [Token(Token = "0x600A1CB")] [Address(RVA = "0x459230", Offset = "0x458230", VA = "0x180459230")] static BigInteger() { /* An exception occurred when decompiling this method (0600A1CB) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::.cctor() ---> System.Exception: Basic block has to end with unconditional control flow. { IL_7FA: stelem:int32[]([mscorlib]System.Int32, ldloc:int32[][](var_0_07), ldc.i4:int32(58), ldloc:int32[](var_59_7E7)) } 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: 0x0600A1CC RID: 41420 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x600A1CC")] [Address(RVA = "0x451C60", Offset = "0x450C60", VA = "0x180451C60")] private static int GetByteLength(int nBits) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600A1CD RID: 41421 RVA: 0x0021BA38 File Offset: 0x00219C38 [Token(Token = "0x600A1CD")] [Address(RVA = "0x44F980", Offset = "0x44E980", VA = "0x18044F980")] internal static BigInteger Arbitrary(int sizeInBits) { SecureRandom randomSource = BigInteger.RandomSource; return new BigInteger(sizeInBits, randomSource); } // Token: 0x0600A1CE RID: 41422 RVA: 0x0021BA54 File Offset: 0x00219C54 [Token(Token = "0x600A1CE")] [Address(RVA = "0x45BE80", Offset = "0x45AE80", VA = "0x18045BE80")] private BigInteger(int signum, int[] mag, bool checkMag) { this.nBits = (int)((ulong)(-1L)); base..ctor(); if (!checkMag) { this.sign = signum; this.magnitude = mag; return; } int num = 0; int num2 = 0; int length = mag.Length; if (num2 < length && "{il2cpp array field mag->}" == (ulong)0L) { num++; } if (num != length) { this.sign = signum; while (num == 0) { } int num3 = mag.Length; num3 -= num; int[] array = new int[num3]; this.magnitude = array; int length2 = array.Length; int num4 = 0; Array.Copy(mag, num, array, num4, length2); } this.sign = (int)((ulong)0L); int[] zeroMagnitude = BigInteger.ZeroMagnitude; this.magnitude = zeroMagnitude; throw new NullReferenceException(); } // Token: 0x0600A1CF RID: 41423 RVA: 0x0021BB04 File Offset: 0x00219D04 [Token(Token = "0x600A1CF")] [Address(RVA = "0x45C190", Offset = "0x45B190", VA = "0x18045C190")] public BigInteger(string value) { } // Token: 0x0600A1D0 RID: 41424 RVA: 0x0021BB14 File Offset: 0x00219D14 [Token(Token = "0x600A1D0")] [Address(RVA = "0x45B850", Offset = "0x45A850", VA = "0x18045B850")] public BigInteger(string str, int radix) { /* An exception occurred when decompiling this method (0600A1D0) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::.ctor(System.String,System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_1F3: stloc:FormatException(var_43_1FA, newobj:FormatException(FormatException::.ctor, ldloc:string(var_42))) } 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: 0x0600A1D1 RID: 41425 RVA: 0x0021BD1C File Offset: 0x00219F1C [Token(Token = "0x600A1D1")] [Address(RVA = "0x45C430", Offset = "0x45B430", VA = "0x18045C430")] public BigInteger(byte[] bytes) { int length = bytes.Length; } // Token: 0x0600A1D2 RID: 41426 RVA: 0x0021BD38 File Offset: 0x00219F38 [Token(Token = "0x600A1D2")] [Address(RVA = "0x45C1A0", Offset = "0x45B1A0", VA = "0x18045C1A0")] public BigInteger(byte[] bytes, int offset, int length) { /* An exception occurred when decompiling this method (0600A1D2) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::.ctor(System.Byte[],System.Int32,System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_8F: stloc:FormatException(var_11_99, newobj:FormatException(FormatException::.ctor, ldstr:string("Zero length BigInteger"))) } 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: 0x0600A1D3 RID: 41427 RVA: 0x0021BDE0 File Offset: 0x00219FE0 [Token(Token = "0x600A1D3")] [Address(RVA = "0x452740", Offset = "0x451740", VA = "0x180452740")] private static int[] MakeMagnitude(byte[] bytes, int offset, int length) { return BigInteger.ZeroMagnitude; } // Token: 0x0600A1D4 RID: 41428 RVA: 0x0021BE20 File Offset: 0x0021A020 [Token(Token = "0x600A1D4")] [Address(RVA = "0x45B710", Offset = "0x45A710", VA = "0x18045B710")] public BigInteger(int sign, byte[] bytes) { /* An exception occurred when decompiling this method (0600A1D4) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::.ctor(System.Int32,System.Byte[]) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_58: stloc:FormatException(var_5_62, newobj:FormatException(FormatException::.ctor, ldstr:string("Invalid sign value"))) } 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: 0x0600A1D5 RID: 41429 RVA: 0x0021BE90 File Offset: 0x0021A090 [Token(Token = "0x600A1D5")] [Address(RVA = "0x45B5E0", Offset = "0x45A5E0", VA = "0x18045B5E0")] public BigInteger(int sign, byte[] bytes, int offset, int length) { /* An exception occurred when decompiling this method (0600A1D5) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::.ctor(System.Int32,System.Byte[],System.Int32,System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_3E: stloc:FormatException(var_3_48, newobj:FormatException(FormatException::.ctor, ldstr:string("Invalid sign value"))) } 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: 0x0600A1D6 RID: 41430 RVA: 0x0021BEE8 File Offset: 0x0021A0E8 [Token(Token = "0x600A1D6")] [Address(RVA = "0x45BFC0", Offset = "0x45AFC0", VA = "0x18045BFC0")] public BigInteger(int sizeInBits, Random random) { int num = 0; this.nBits = (int)((ulong)(-1L)); base..ctor(); this.nBits = (int)((ulong)(-1L)); if (sizeInBits != 0) { byte[] array = new byte[num]; double num2 = random.NextDouble(); int num3 = 0; int length = array.Length; int[] array2 = BigInteger.MakeMagnitude(array, num3, length); this.magnitude = array2; bool flag = array2.Length >= 1; this.sign = (flag ? 1 : 0); return; } int num4 = 0; this.sign = num4; int[] zeroMagnitude = BigInteger.ZeroMagnitude; this.magnitude = zeroMagnitude; } // Token: 0x0600A1D7 RID: 41431 RVA: 0x0021BF7C File Offset: 0x0021A17C [Token(Token = "0x600A1D7")] [Address(RVA = "0x45C460", Offset = "0x45B460", VA = "0x18045C460")] public BigInteger(int bitLength, int certainty, Random random) { int num = 0; base..ctor(); this.nBitLength = bitLength; if (bitLength != 2) { byte[] array = new byte[num]; num -= bitLength; uint num2; num2 -= (uint)num; int num3 = 0; byte b = array[0]; array[0] = b; array[0] = b; int length = array.Length; int num4 = 0; int[] array2 = BigInteger.MakeMagnitude(array, num4, length); this.magnitude = array2; this.mQuote = num3; ulong num5; if (this.CheckProbablePrime(certainty, random, num5 != 0UL)) { return; } int num6 = this.magnitude.Length - 1; uint num7; if (num7 < (uint)num6) { double num8 = random.Sample(); ulong num9; if (this.CheckProbablePrime(certainty, random, num9 != 0UL)) { return; } num7 += (uint)1; } } int num10; if (num10 == 0) { } int[] array3 = BigInteger.Three.magnitude; this.magnitude = array3; } // Token: 0x0600A1D8 RID: 41432 RVA: 0x0021C05C File Offset: 0x0021A25C [Token(Token = "0x600A1D8")] [Address(RVA = "0x44F110", Offset = "0x44E110", VA = "0x18044F110")] public BigInteger Abs() { int num = this.sign; int num2 = this.sign; if (num2 != 0) { int[] array = this.magnitude; BigInteger bigInteger; bigInteger.nBits = (int)((ulong)(-1L)); bigInteger.magnitude = array; bigInteger.sign = num2; } return this; } // Token: 0x0600A1D9 RID: 41433 RVA: 0x0021C09C File Offset: 0x0021A29C [Token(Token = "0x600A1D9")] [Address(RVA = "0x44F1B0", Offset = "0x44E1B0", VA = "0x18044F1B0")] private static int[] AddMagnitudes(int[] a, int[] b) { int length = a.Length; int length2 = b.Length; int num = a[length]; int num2 = b[length2]; uint num3; num3 += (uint)num; num3 += (uint)num2; a[0] = (int)num3; if (num3 != (uint)0) { num2 = length; while (num2 == a.Length) { } } return a; } // Token: 0x0600A1DA RID: 41434 RVA: 0x0021C0F4 File Offset: 0x0021A2F4 [Token(Token = "0x600A1DA")] [Address(RVA = "0x44F440", Offset = "0x44E440", VA = "0x18044F440")] public BigInteger Add(BigInteger value) { int num = this.sign; if (num == 0) { return value; } int num2 = value.sign; if (num == num2) { int[] array = value.magnitude; return this.AddToMagnitude(array); } if (num2 != 0) { BigInteger bigInteger = this.Negate(); return value.Subtract(bigInteger); } return this; } // Token: 0x0600A1DB RID: 41435 RVA: 0x0021C14C File Offset: 0x0021A34C [Token(Token = "0x600A1DB")] [Address(RVA = "0x44F290", Offset = "0x44E290", VA = "0x18044F290")] private BigInteger AddToMagnitude(int[] magToAdd) { int[] array; int length3; do { array = this.magnitude; int length = magToAdd.Length; int length2 = magToAdd.Length; length3 = array.Length; if (length2 == length3) { } if ("{il2cpp array field magToAdd->}" >= (uint)(-1)) { break; } if (length3 == 0) { } } while (length3 == 0); int[] array2 = new int[0]; int num = 0; int[] array3 = BigInteger.AddMagnitudes(array2, array); return new BigInteger(this.sign, array3, num != 0); } // Token: 0x0600A1DC RID: 41436 RVA: 0x0021C1B4 File Offset: 0x0021A3B4 [Token(Token = "0x600A1DC")] [Address(RVA = "0x44F540", Offset = "0x44E540", VA = "0x18044F540")] public BigInteger And(BigInteger value) { int num = this.sign; if (num != 0 && value.sign != 0) { if (num > 0) { } BigInteger one = BigInteger.One; int[] array = this.Add(one).magnitude; if (value.sign > 0) { } BigInteger one2 = BigInteger.One; int[] array2 = value.Add(one2).magnitude; int num2 = value.sign; int num3 = array2.Length; num3 = Math.Max(array.Length, num3); int[] array3 = new int[num3]; int num4 = array3.Length; int num5 = 0; int num6 = 0; num4 -= num4; int length = array3.Length; if (num6 < length) { num6 += num5; int num7 = 0; array3[0] = num7; if (num2 != 0) { array3[0] = num7; } num5++; } uint num8; ulong num9; BigInteger bigInteger = new BigInteger((int)num8, array3, num9 != 0UL); if (num2 != 0) { BigInteger bigInteger2 = bigInteger.Inc(); int num10 = bigInteger2.sign; if (num10 != 0) { int[] array4 = bigInteger2.magnitude; BigInteger bigInteger3; bigInteger3.nBits = (int)((ulong)(-1L)); bigInteger3.sign = num10; bigInteger3.magnitude = array4; } } } return BigInteger.Zero; } // Token: 0x0600A1DD RID: 41437 RVA: 0x0021C2E0 File Offset: 0x0021A4E0 [Token(Token = "0x600A1DD")] [Address(RVA = "0x44F4F0", Offset = "0x44E4F0", VA = "0x18044F4F0")] public BigInteger AndNot(BigInteger val) { BigInteger bigInteger = val.Inc().Negate(); return this.And(bigInteger); } // Token: 0x170019C3 RID: 6595 // (get) Token: 0x0600A1DE RID: 41438 RVA: 0x0021C308 File Offset: 0x0021A508 [Token(Token = "0x170019C3")] public int BitCount { [Token(Token = "0x600A1DE")] [Address(RVA = "0x45C8C0", Offset = "0x45B8C0", VA = "0x18045C8C0")] get { int num = this.nBits; if (num == -1) { int[] array = this.magnitude; int num2 = 0; if (num2 < array.Length) { int num3 = array[num2]; int[] array2 = this.magnitude; num2++; num3 -= num3; num3 += num3; num3 += num3; num3 += num3; num3 += num3; num2 += num3; } this.nBits = num2; } return num; } } // Token: 0x0600A1DF RID: 41439 RVA: 0x0021C388 File Offset: 0x0021A588 [Token(Token = "0x600A1DF")] [Address(RVA = "0x44FA10", Offset = "0x44EA10", VA = "0x18044FA10")] public static int BitCnt(int i) { return i; } // Token: 0x0600A1E0 RID: 41440 RVA: 0x0021C398 File Offset: 0x0021A598 [Token(Token = "0x600A1E0")] [Address(RVA = "0x44FC20", Offset = "0x44EC20", VA = "0x18044FC20")] private static int CalcBitLength(int sign, int indx, int[] mag) { int num = mag.Length; if (indx < num) { int num2 = mag[indx]; if (num2 == 0) { } num -= indx; int num3 = 0; int num4 = BigInteger.BitLen(num2); num4 = num2; if (num4 == num2) { int length = mag.Length; if (indx < length) { while ("{il2cpp array field mag->}" == (ulong)0L) { } } } return num3; } throw new NullReferenceException(); } // Token: 0x170019C4 RID: 6596 // (get) Token: 0x0600A1E1 RID: 41441 RVA: 0x0021C3F0 File Offset: 0x0021A5F0 [Token(Token = "0x170019C4")] public int BitLength { [Token(Token = "0x600A1E1")] [Address(RVA = "0x45CA20", Offset = "0x45BA20", VA = "0x18045CA20")] get { int num = this.nBitLength; if (num == -1) { int num2 = this.sign; if (num2 == 0) { int num3 = 0; this.nBitLength = num3; return num3; } int[] array = this.magnitude; int num4 = 0; int num5 = BigInteger.CalcBitLength(num2, num4, array); this.nBitLength = num5; } return num; } } // Token: 0x0600A1E2 RID: 41442 RVA: 0x0021C43C File Offset: 0x0021A63C [Token(Token = "0x600A1E2")] [Address(RVA = "0x44FA50", Offset = "0x44EA50", VA = "0x18044FA50")] internal static int BitLen(int w) { if (w == 0) { if (w == 0) { if (w == 0) { byte[] bitLengthTable = BigInteger.BitLengthTable; } byte[] bitLengthTable2 = BigInteger.BitLengthTable; } byte[] bitLengthTable3 = BigInteger.BitLengthTable; } byte[] bitLengthTable4 = BigInteger.BitLengthTable; throw new NullReferenceException(); } // Token: 0x0600A1E3 RID: 41443 RVA: 0x0021C474 File Offset: 0x0021A674 [Token(Token = "0x600A1E3")] [Address(RVA = "0x455640", Offset = "0x454640", VA = "0x180455640")] private bool QuickPow2Check() { return this.nBits == 1; } // Token: 0x0600A1E4 RID: 41444 RVA: 0x0021C48C File Offset: 0x0021A68C [Token(Token = "0x600A1E4")] [Address(RVA = "0x450170", Offset = "0x44F170", VA = "0x180450170")] public int CompareTo(object obj) { do { if (obj == 0) { } } while (obj == 0); int num; return num; } // Token: 0x0600A1E5 RID: 41445 RVA: 0x0021C4A4 File Offset: 0x0021A6A4 [Token(Token = "0x600A1E5")] [Address(RVA = "0x4502F0", Offset = "0x44F2F0", VA = "0x1804502F0")] private static int CompareTo(int xIndx, int[] x, int yIndx, int[] y) { int length = x.Length; if (xIndx == length || "{il2cpp array field x->}" == (ulong)0L) { } int length2 = y.Length; if (yIndx == length2 || "{il2cpp array field y->}" == (ulong)0L) { } return BigInteger.CompareNoLeadingZeroes(xIndx, x, yIndx, y); } // Token: 0x0600A1E6 RID: 41446 RVA: 0x0021C4EC File Offset: 0x0021A6EC [Token(Token = "0x600A1E6")] [Address(RVA = "0x4500B0", Offset = "0x44F0B0", VA = "0x1804500B0")] private static int CompareNoLeadingZeroes(int xIndx, int[] x, int yIndx, int[] y) { int num = x.Length; int length = y.Length; num -= length; num -= xIndx; num += yIndx; if (y == 0) { if (xIndx < xIndx) { int num2 = y[yIndx]; while ("{il2cpp array field x->}" == num2) { } if ("{il2cpp array field x->}" >= num2) { goto IL_40; } } return 0; } IL_40: throw new NullReferenceException(); } // Token: 0x0600A1E7 RID: 41447 RVA: 0x0021C540 File Offset: 0x0021A740 [Token(Token = "0x600A1E7")] [Address(RVA = "0x450210", Offset = "0x44F210", VA = "0x180450210")] public int CompareTo(BigInteger value) { int num = this.sign; if (num < value.sign) { return -1; } if (num > value.sign) { return 1; } return 0; } // Token: 0x0600A1E8 RID: 41448 RVA: 0x0021C578 File Offset: 0x0021A778 [Token(Token = "0x600A1E8")] [Address(RVA = "0x450E40", Offset = "0x44FE40", VA = "0x180450E40")] private int[] Divide(int[] x, int[] y) { int num = 0; int num2 = 0; int length = x.Length; if (num2 < length && "{il2cpp array field x->}" == (ulong)0L) { num++; } int num3 = 0; int num4 = 0; int length2 = y.Length; if (num4 < length2 && "{il2cpp array field y->}" == (ulong)0L) { num3++; } int num5 = BigInteger.CompareNoLeadingZeroes(num, x, num3, y); int[] array = new int[1]; int num6 = y.Length; if (num3 < num6) { if (y[num3] == 0) { num3++; } num6 -= num3; } int num7 = 0; ulong num8; if (num8 == (ulong)0L) { } int num9 = x.Length; if (num < num9) { int num10 = x[num]; if (num10 == 0) { num++; } num9 -= num; int num11 = BigInteger.BitLen(num10); } int num12 = 0; num12 -= num7; int num13 = 0; int num14 = 0; (new int[0])[0] = (int)((ulong)1L); num12 -= num3; int[] array2 = new int[num12]; num7++; if (array2.Length < num13) { num7++; } uint num15; array2[0] = (int)num15; int[] array3 = new int[array2.Length]; int[] array4; int num16 = BigInteger.CompareNoLeadingZeroes(num, x, num14, array4); int[] array5 = BigInteger.Subtract(num, x, num14, array4); int[] array6 = BigInteger.AddMagnitudes(array3, array2); int length3 = x.Length; if (x[num] == 0) { while (1 != length3) { } return array3; } int num17 = x.Length; num17--; int num18; num17 += num18; int num19 = x.Length; num19--; num19 += num3; if (1 < num19) { num3++; uint num20; if (num20 == (uint)0) { int[] array7 = BigInteger.One.magnitude; int[] array8 = BigInteger.AddMagnitudes(array3, array7); int num21 = x.Length; num21--; Array.Clear(x, 1, num21); } } uint num22; while (num22 == (uint)0) { } num12 -= num17; if (num12 != 1 || x > "{il2cpp array field x->}") { } num14++; throw new NullReferenceException(); } // Token: 0x0600A1E9 RID: 41449 RVA: 0x0021C760 File Offset: 0x0021A960 [Token(Token = "0x600A1E9")] [Address(RVA = "0x450C50", Offset = "0x44FC50", VA = "0x180450C50")] public BigInteger Divide(BigInteger val) { /* An exception occurred when decompiling this method (0600A1E9) ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::Divide(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_90: stloc:ArithmeticException(var_10_9A, newobj:ArithmeticException(ArithmeticException::.ctor, ldstr:string("Division by zero error"))) } 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: 0x0600A1EA RID: 41450 RVA: 0x0021C808 File Offset: 0x0021AA08 [Token(Token = "0x600A1EA")] [Address(RVA = "0x4506C0", Offset = "0x44F6C0", VA = "0x1804506C0")] public BigInteger[] DivideAndRemainder(BigInteger val) { BigInteger[] array; for (;;) { if (val.sign != 0) { array = new BigInteger[2]; if (this.sign == 0) { goto IL_E0; } if (val.sign > 0 && val.nBits == 1) { int bitLength = val.Abs().BitLength; BigInteger bigInteger = this.Abs(); int num = bitLength - 1; BigInteger bigInteger2 = bigInteger.ShiftRight(num); int num2 = bitLength - 1; int[] array2 = this.LastNBits(num2); int num3 = this.sign; if (val.sign != num3) { BigInteger bigInteger3 = bigInteger2.Negate(); } if (bigInteger2 != 0) { } array[0] = bigInteger2; if (new BigInteger(this.sign, array2, true) != 0) { } } int[] array3 = this.magnitude; if (array == 0) { } if (array != 0) { break; } } } int num4 = this.sign; int num5 = val.sign; int num6; int[] array4; BigInteger bigInteger4 = new BigInteger(num6, array4, true); num6 = num5 * num4; if (bigInteger4 != 0) { } array[0] = bigInteger4; BigInteger bigInteger5; if (bigInteger5 != 0) { } IL_E0: BigInteger zero = BigInteger.Zero; if (zero != 0) { } array[0] = zero; BigInteger zero2 = BigInteger.Zero; if (zero2 != 0) { } array[1] = zero2; return array; } // Token: 0x0600A1EB RID: 41451 RVA: 0x0021C928 File Offset: 0x0021AB28 [Token(Token = "0x600A1EB")] [Address(RVA = "0x4516C0", Offset = "0x4506C0", VA = "0x1804516C0", Slot = "0")] public override bool Equals(object obj) { if (obj != this) { if (obj != 0) { int num = 0; if (obj != 0 && this.sign == num) { bool flag; return flag; } } } return true; } // Token: 0x0600A1EC RID: 41452 RVA: 0x0021C954 File Offset: 0x0021AB54 [Token(Token = "0x600A1EC")] [Address(RVA = "0x452260", Offset = "0x451260", VA = "0x180452260")] private bool IsEqualMagnitude(BigInteger x) { int[] array = this.magnitude; int[] array2 = x.magnitude; int length = array.Length; if (length == array2.Length) { int num = 0; if (num < length) { int num2 = array2[num]; if ("{il2cpp array field local2->}" != num2) { goto IL_3C; } num++; } return true; } IL_3C: throw new NullReferenceException(); } // Token: 0x0600A1ED RID: 41453 RVA: 0x0021C9A8 File Offset: 0x0021ABA8 [Token(Token = "0x600A1ED")] [Address(RVA = "0x451B50", Offset = "0x450B50", VA = "0x180451B50")] public BigInteger Gcd(BigInteger value) { int num; do { num = this.sign; if (value.sign == 0) { goto IL_2A; } } while (num == 0); if (value.sign != 0) { return this.Mod(value).Abs(); } BigInteger bigInteger; return bigInteger; IL_2A: int num2 = this.sign; if (num2 != 0) { int[] array = this.magnitude; bigInteger.nBits = (int)((ulong)(-1L)); bigInteger.magnitude = array; bigInteger.sign = num2; } return bigInteger; } // Token: 0x0600A1EE RID: 41454 RVA: 0x0021CA10 File Offset: 0x0021AC10 [Token(Token = "0x600A1EE")] [Address(RVA = "0x451C70", Offset = "0x450C70", VA = "0x180451C70", Slot = "2")] public override int GetHashCode() { int[] array = this.magnitude; int length = array.Length; int length2 = array.Length; if (length != 0 && length2 > 1) { int num = length2 - 1; } if (this.sign < 0) { } return length2; } // Token: 0x0600A1EF RID: 41455 RVA: 0x0021CA50 File Offset: 0x0021AC50 [Token(Token = "0x600A1EF")] [Address(RVA = "0x452110", Offset = "0x451110", VA = "0x180452110")] private BigInteger Inc() { if (this.sign != 0) { int[] array = BigInteger.One.magnitude; return this.AddToMagnitude(array); } return BigInteger.One; } // Token: 0x170019C5 RID: 6597 // (get) Token: 0x0600A1F0 RID: 41456 RVA: 0x0021CA9C File Offset: 0x0021AC9C [Token(Token = "0x170019C5")] public int IntValue { [Token(Token = "0x600A1F0")] [Address(RVA = "0x45CAC0", Offset = "0x45BAC0", VA = "0x18045CAC0")] get { if (this.sign != 0) { int[] array = this.magnitude; int num = array.Length - 1; return array[num]; } return 0; } } // Token: 0x0600A1F1 RID: 41457 RVA: 0x0021CAD4 File Offset: 0x0021ACD4 [Token(Token = "0x600A1F1")] [Address(RVA = "0x452480", Offset = "0x451480", VA = "0x180452480")] public bool IsProbablePrime(int certainty) { if (certainty > 0) { BigInteger bigInteger = this.Abs(); int num = 0; if (bigInteger.TestBit(num)) { int num2 = 0; SecureRandom randomSource = BigInteger.RandomSource; return bigInteger.CheckProbablePrime(certainty, randomSource, num2 != 0); } } return true; } // Token: 0x0600A1F2 RID: 41458 RVA: 0x0021CB18 File Offset: 0x0021AD18 [Token(Token = "0x600A1F2")] [Address(RVA = "0x4522F0", Offset = "0x4512F0", VA = "0x1804522F0")] internal bool IsProbablePrime(int certainty, bool randomlySelected) { if (certainty > 0) { BigInteger bigInteger = this.Abs(); int num = 0; if (bigInteger.TestBit(num)) { SecureRandom randomSource = BigInteger.RandomSource; return bigInteger.CheckProbablePrime(certainty, randomSource, randomlySelected); } } return true; } // Token: 0x0600A1F3 RID: 41459 RVA: 0x0021CB58 File Offset: 0x0021AD58 [Token(Token = "0x600A1F3")] [Address(RVA = "0x44FD50", Offset = "0x44ED50", VA = "0x18044FD50")] private bool CheckProbablePrime(int certainty, Random random, bool randomlySelected) { int bitLength = this.BitLength; int length = BigInteger.primeLists.Length; int num = Math.Min(bitLength - 1, length); int num2 = 0; if (num > 0) { int num3 = BigInteger.primeProducts[num2]; int num4 = this.Remainder(num3); int[] array = BigInteger.primeLists[num2]; int num5 = 0; if (num5 < array.Length) { if (num3 == 0) { throw new NullReferenceException(); } num5++; } num2++; } return this.RabinMillerTest(certainty, random, randomlySelected); } // Token: 0x0600A1F4 RID: 41460 RVA: 0x0021CBDC File Offset: 0x0021ADDC [Token(Token = "0x600A1F4")] [Address(RVA = "0x455660", Offset = "0x454660", VA = "0x180455660")] public bool RabinMillerTest(int certainty, Random random) { int num = 0; return this.RabinMillerTest(certainty, random, num != 0); } // Token: 0x0600A1F5 RID: 41461 RVA: 0x0021CBF4 File Offset: 0x0021ADF4 [Token(Token = "0x600A1F5")] [Address(RVA = "0x455680", Offset = "0x454680", VA = "0x180455680")] internal bool RabinMillerTest(int certainty, Random random, bool randomlySelected) { int num3; int lowestSetBitMaskFirst; BigInteger bigInteger; BigInteger bigInteger2; BigInteger bigInteger3; BigInteger bigInteger4; do { int num = 0; int bitLength = this.BitLength; int num2 = certainty - 1; num2 -= num; num3 = num2 + 1; if (randomlySelected) { num3 += -50; uint num4; num3 += (int)num4; num3 = Math.Min((int)num4, num3); } lowestSetBitMaskFirst = this.GetLowestSetBitMaskFirst(-2); bigInteger = this.ShiftRight(lowestSetBitMaskFirst); int[] array = this.magnitude; BigInteger one = BigInteger.One; int length = array.Length; bigInteger2 = one.ShiftLeft(length).Remainder(this); bigInteger3 = this.Subtract(bigInteger2); if (this.nBitLength == -1) { int num5 = this.sign; if (num5 == 0) { } int[] array2 = this.magnitude; int num6 = 0; num5 = BigInteger.CalcBitLength(num5, num6, array2); this.nBitLength = num5; } while (bigInteger4.sign == 0) { } int num7 = bigInteger4.CompareTo(this); } while (bigInteger4.IsEqualMagnitude(bigInteger2) || bigInteger4.IsEqualMagnitude(bigInteger3)); int num8 = 0; BigInteger bigInteger5 = BigInteger.ModPowMonty(bigInteger4, bigInteger, this, num8 != 0); if (bigInteger5 == 0) { if (1 != lowestSetBitMaskFirst) { int num9 = 0; BigInteger two = BigInteger.Two; BigInteger bigInteger6 = BigInteger.ModPowMonty(bigInteger5, two, this, num9 != 0); } } num3--; throw new NullReferenceException(); } // Token: 0x170019C6 RID: 6598 // (get) Token: 0x0600A1F6 RID: 41462 RVA: 0x0021CD1C File Offset: 0x0021AF1C [Token(Token = "0x170019C6")] public long LongValue { [Token(Token = "0x600A1F6")] [Address(RVA = "0x45CB10", Offset = "0x45BB10", VA = "0x18045CB10")] get { if (this.sign != 0) { int length = this.magnitude.Length; int num = length - 1; if (length > 1) { } } throw new IndexOutOfRangeException(); } } // Token: 0x0600A1F7 RID: 41463 RVA: 0x0021CD50 File Offset: 0x0021AF50 [Token(Token = "0x600A1F7")] [Address(RVA = "0x4528E0", Offset = "0x4518E0", VA = "0x1804528E0")] public BigInteger Max(BigInteger value) { int num = this.CompareTo(value); return this; } // Token: 0x0600A1F8 RID: 41464 RVA: 0x0021CD68 File Offset: 0x0021AF68 [Token(Token = "0x600A1F8")] [Address(RVA = "0x452910", Offset = "0x451910", VA = "0x180452910")] public BigInteger Min(BigInteger value) { int num = this.CompareTo(value); return this; } // Token: 0x0600A1F9 RID: 41465 RVA: 0x0021CD80 File Offset: 0x0021AF80 [Token(Token = "0x600A1F9")] [Address(RVA = "0x454050", Offset = "0x453050", VA = "0x180454050")] public BigInteger Mod(BigInteger m) { BigInteger bigInteger = this.Remainder(m); if (bigInteger.sign < 0) { BigInteger bigInteger2 = bigInteger.Add(m); } return bigInteger; } // Token: 0x0600A1FA RID: 41466 RVA: 0x0021CDB0 File Offset: 0x0021AFB0 [Token(Token = "0x600A1FA")] [Address(RVA = "0x452CD0", Offset = "0x451CD0", VA = "0x180452CD0")] public BigInteger ModInverse(BigInteger m) { /* An exception occurred when decompiling this method (0600A1FA) ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::ModInverse(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_73: stloc:BigInteger(var_8_7A, call:BigInteger(BigInteger::ModInversePow2, ldloc:BigInteger(this), ldloc:BigInteger(m))) stloc:ArithmeticException(var_9_86, newobj:ArithmeticException(ArithmeticException::.ctor, ldstr:string("Modulus must be positive"))) stloc:ArithmeticException(var_10_92, newobj:ArithmeticException(ArithmeticException::.ctor, ldstr:string("Numbers not relatively prime."))) } 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: 0x0600A1FB RID: 41467 RVA: 0x0021CE50 File Offset: 0x0021B050 [Token(Token = "0x600A1FB")] [Address(RVA = "0x4529F0", Offset = "0x4519F0", VA = "0x1804529F0")] private BigInteger ModInversePow2(BigInteger m) { /* An exception occurred when decompiling this method (0600A1FB) ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::ModInversePow2(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_111: stloc:ArithmeticException(var_23_11B, newobj:ArithmeticException(ArithmeticException::.ctor, ldstr:string("Numbers not relatively prime."))) } 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: 0x0600A1FC RID: 41468 RVA: 0x0021CF7C File Offset: 0x0021B17C [Token(Token = "0x600A1FC")] [Address(RVA = "0x452940", Offset = "0x451940", VA = "0x180452940")] private static int ModInverse32(int d) { /* An exception occurred when decompiling this method (0600A1FC) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::ModInverse32(System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:uint32(var_1_03, mul:uint32(ldloc:uint32(var_0), ldloc:int32[exp:uint32](d))) stloc:uint32(var_0, sub:uint32(ldloc:uint32(var_0), ldloc:uint32(var_1_03))) stloc:uint32(var_2_0B, mul:uint32(ldloc:uint32(var_0), ldloc:int32[exp:uint32](d))) stloc:uint32(var_0, sub:uint32(ldloc:uint32(var_0), ldloc:uint32(var_2_0B))) } 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: 0x0600A1FD RID: 41469 RVA: 0x0021CF98 File Offset: 0x0021B198 [Token(Token = "0x600A1FD")] [Address(RVA = "0x452990", Offset = "0x451990", VA = "0x180452990")] private static long ModInverse64(long d) { /* An exception occurred when decompiling this method (0600A1FD) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int64 BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::ModInverse64(System.Int64) ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:uint32(var_1_03, mul:int64[exp:uint32](ldloc:uint32[exp:int64](var_0), ldloc:int64(d))) stloc:uint32(var_0, sub:uint32(ldloc:uint32(var_0), ldloc:uint32(var_1_03))) } 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: 0x0600A1FE RID: 41470 RVA: 0x0021CFAC File Offset: 0x0021B1AC [Token(Token = "0x600A1FE")] [Address(RVA = "0x451770", Offset = "0x450770", VA = "0x180451770")] private static BigInteger ExtEuclid(BigInteger a, BigInteger b, out BigInteger u1Out) { BigInteger one = BigInteger.One; BigInteger zero = BigInteger.Zero; if (b.sign > 0) { BigInteger[] array = a.DivideAndRemainder(b); int length = array.Length; if (array[1].sign > 0) { BigInteger bigInteger = array[0]; BigInteger bigInteger2 = zero.Multiply(bigInteger); BigInteger bigInteger3 = one.Subtract(bigInteger2); } } return a; } // Token: 0x0600A1FF RID: 41471 RVA: 0x0021D010 File Offset: 0x0021B210 [Token(Token = "0x600A1FF")] [Address(RVA = "0x459200", Offset = "0x458200", VA = "0x180459200")] private static void ZeroOut(int[] x) { int length = x.Length; int num = 0; Array.Clear(x, num, length); } // Token: 0x0600A200 RID: 41472 RVA: 0x0021D034 File Offset: 0x0021B234 [Token(Token = "0x600A200")] [Address(RVA = "0x453DA0", Offset = "0x452DA0", VA = "0x180453DA0")] public BigInteger ModPow(BigInteger e, BigInteger m) { int num; BigInteger bigInteger4; do { num = e.sign; if (num == 0 || this.sign == 0) { goto IL_61; } if (num != 0) { BigInteger bigInteger = e.Negate(); } BigInteger bigInteger2 = this.Mod(m); int num2 = m.magnitude.Length - 1; if ("{il2cpp array field local10->}" != (ulong)1L) { BigInteger bigInteger3 = BigInteger.ModPowMonty(bigInteger2, e, m, true); } bigInteger4 = BigInteger.ModPowBarrett(bigInteger2, e, m); } while (num == 0); return bigInteger4.ModInverse(m); IL_61: throw new NullReferenceException(); } // Token: 0x0600A201 RID: 41473 RVA: 0x0021D0A8 File Offset: 0x0021B2A8 [Token(Token = "0x600A201")] [Address(RVA = "0x452F60", Offset = "0x451F60", VA = "0x180452F60")] private static BigInteger ModPowBarrett(BigInteger b, BigInteger e, BigInteger m) { int num = m.magnitude.Length; BigInteger one = BigInteger.One; int num2 = num + 1; BigInteger bigInteger = one.ShiftLeft(num2); BigInteger one2 = BigInteger.One; num2 = num; BigInteger bigInteger2 = one2.ShiftLeft(num2).Divide(m); int num3 = 0; num = e.BitLength; int[] expWindowThresholds = BigInteger.ExpWindowThresholds; if (num > "{il2cpp array field local17->}") { num3++; } BigInteger[] array = new BigInteger[1]; if (b != 0) { } array[0] = b; BigInteger bigInteger3 = BigInteger.ReduceBarrett(b.Square(), m, bigInteger, bigInteger2); uint num4; if (num4 > num4) { uint num5 = num4 - 1U; BigInteger bigInteger4 = array[(int)num5].Multiply(bigInteger3); throw new ArrayTypeMismatchException(); } int[] array2; int num6 = array2[0]; BigInteger bigInteger5; if (num6 != (int)num4) { bigInteger5 = array[num6]; } int num7 = array2[(int)num4]; if (num7 != -1) { byte[] bitLengthTable = BigInteger.BitLengthTable; int num8 = 0; byte b2 = (byte)((int)b2 + num6); BigInteger bigInteger6 = bigInteger5.Square(); num8++; BigInteger bigInteger7 = array[num7]; BigInteger bigInteger9; BigInteger bigInteger8 = bigInteger9.Multiply(bigInteger7); ulong num9; num9 += (ulong)1L; } int num10 = 0; if (num7 > 0) { BigInteger bigInteger11; BigInteger bigInteger10 = bigInteger11.Square(); num10++; } BigInteger bigInteger12; return bigInteger12; } // Token: 0x0600A202 RID: 41474 RVA: 0x0021D1F0 File Offset: 0x0021B3F0 [Token(Token = "0x600A202")] [Address(RVA = "0x455A20", Offset = "0x454A20", VA = "0x180455A20")] private static BigInteger ReduceBarrett(BigInteger x, BigInteger m, BigInteger mr, BigInteger yu) { int num = x.BitLength; int bitLength = m.BitLength; num -= bitLength; if (num > 1) { int num2 = m.magnitude.Length; int num3 = num2 - 1; BigInteger bigInteger = x.DivideWords(num3).Multiply(yu); num2++; BigInteger bigInteger2 = bigInteger.DivideWords(num2); BigInteger bigInteger3 = x.RemainderWords(num2); BigInteger bigInteger4 = bigInteger2.Multiply(m).RemainderWords(num2); BigInteger bigInteger5 = bigInteger3.Subtract(bigInteger4); if (bigInteger5.sign < 0) { BigInteger bigInteger6 = bigInteger5.Add(mr); } } int num4 = x.CompareTo(m); return x.Subtract(m); } // Token: 0x0600A203 RID: 41475 RVA: 0x0021D290 File Offset: 0x0021B490 [Token(Token = "0x600A203")] [Address(RVA = "0x453540", Offset = "0x452540", VA = "0x180453540")] private static BigInteger ModPowMonty(BigInteger b, BigInteger e, BigInteger m, bool convert) { int length = m.magnitude.Length; int num = m.BitLength; num += 2; int num2 = m.mQuote; uint num5; if (num2 == 0) { int[] array = m.magnitude; int num3 = array.Length - 1; int num4 = array[num3]; array += num4; int[] array2 = array * num4; num5 -= array2; int[] array3 = array * num5; int[] array4 = array3 * num4; num5 -= array4; int[] array5 = array3 * num5; int[] array6 = array5 * num4; num5 -= array6; uint num6 = num5 * array5; m.mQuote = (int)num6; } BigInteger bigInteger; if (convert) { bigInteger = b.ShiftLeft(length).Remainder(m); } int num7 = length + 1; int[] array7 = new int[num7]; int[] array8; if (bigInteger.magnitude.Length < length) { num7 = length; array8 = new int[num7]; } int num8 = 0; int[] array9 = e.magnitude; if (e.BitCount > (int)num5) { int bitLength = e.BitLength; int[] expWindowThresholds = BigInteger.ExpWindowThresholds; if (bitLength > "{il2cpp array field local36->}") { num8++; } } int[][] array10 = new int[1][]; if (array8 != 0) { } array10[0] = array8; int[] array11 = Arrays.Clone(array8); uint num9; uint num10; if (num9 > num10) { uint num11 = num10 - 1U; int[] array12 = Arrays.Clone(array10[(int)num11]); throw new ArrayTypeMismatchException(); } int[] windowList = BigInteger.GetWindowList(e.magnitude, num8); int num12 = windowList[0]; int[] array13; if (num12 != 1) { array13 = Arrays.Clone(array10[num12]); } uint num14; int num13 = windowList[(int)num14]; if (num13 != -1) { num2 = num13; byte[] bitLengthTable = BigInteger.BitLengthTable; byte b2 = (byte)((int)b2 + num12); num14 = num5; num5 += (uint)1; } if (num13 > 0) { } int[] array14 = m.magnitude; int num15 = 0; int num16 = BigInteger.CompareTo(0, array13, num15, array14); int[] array15 = m.magnitude; int num17 = 0; int[] array16 = BigInteger.Subtract(0, array13, num17, array15); int[] array17 = m.magnitude; BigInteger.MontgomeryReduce(array13, array17, (uint)num2); uint num18; ulong num19; return new BigInteger((int)num18, array13, num19 != 0UL); } // Token: 0x0600A204 RID: 41476 RVA: 0x0021D498 File Offset: 0x0021B698 [Token(Token = "0x600A204")] [Address(RVA = "0x451E90", Offset = "0x450E90", VA = "0x180451E90")] private static int[] GetWindowList(int[] mag, int extraBits) { int num = mag[0]; int num2 = 0; int num3 = BigInteger.BitLen(num); int num4 = mag.Length; num4 += num3; int[] array = new int[num2]; uint num5; num5 -= (uint)num3; int num6 = 0; int num7 = 0; int num8 = 0; uint num9; if (num5 < (uint)32) { num7++; num += num; num5 += (uint)1; num6++; if (num9 == (uint)1) { num7++; while (num9 == (uint)1) { } } num += num; array[0] = num7; num5 += (uint)1; num += num; num5 += (uint)1; } num8++; if (num8 != mag.Length) { } if (num9 == (uint)1) { num7++; while (num9 == (uint)1) { } } array[0] = num7; num6++; array[0] = (int)((ulong)4294967295L); return array; } // Token: 0x0600A205 RID: 41477 RVA: 0x0021D574 File Offset: 0x0021B774 [Token(Token = "0x600A205")] [Address(RVA = "0x4506A0", Offset = "0x44F6A0", VA = "0x1804506A0")] private static int CreateWindowEntry(int mult, int zeroes) { if (mult == 1) { while (mult == 1) { } } return zeroes; } // Token: 0x0600A206 RID: 41478 RVA: 0x0021D58C File Offset: 0x0021B78C [Token(Token = "0x600A206")] [Address(RVA = "0x4576C0", Offset = "0x4566C0", VA = "0x1804576C0")] private static int[] Square(int[] w, int[] x) { int num = w.Length; int num2 = x.Length; int num3 = num2 - 1; if (num3 > 0) { num2 = num3; int num4 = num3 - 1; int num5 = x[num2]; int num6 = w[num]; int num7 = num5 * num5; num7 += num6; w[0] = num7; num = num7; num6 = num4; int num8 = x[num6] * num5; num7 += num6; num7 += num; num7 += num8; num8 = num7; int num9 = num - 1; num6 += num8; if (num9 > 0) { w[0] = num6; } int num10 = num3 - 1; num10 += num9; } int num11 = x[0]; int num12 = w[num]; int num13 = num11 * num11; num13 += num12; w[0] = num13; if (num > 0) { int num14 = num - 1; } return w; } // Token: 0x0600A207 RID: 41479 RVA: 0x0021D670 File Offset: 0x0021B870 [Token(Token = "0x600A207")] [Address(RVA = "0x4548C0", Offset = "0x4538C0", VA = "0x1804548C0")] private static int[] Multiply(int[] x, int[] y, int[] z) { int num = z.Length; int length = x.Length; num--; int num2 = z[num]; int num3 = 0; if (num2 != 0) { int length2 = y.Length; int num4 = y[length2]; int num5 = x[z]; num3 += num5; int num6 = num4 * num2; num3 += num6; x[0] = num3; } x[0] = num3; return x; } // Token: 0x0600A208 RID: 41480 RVA: 0x0021D6E4 File Offset: 0x0021B8E4 [Token(Token = "0x600A208")] [Address(RVA = "0x451DB0", Offset = "0x450DB0", VA = "0x180451DB0")] private int GetMQuote() { int num = this.mQuote; if (num == 0) { int[] array = this.magnitude; int num2 = array.Length - 1; int num3 = array[num2]; uint num4; num4 -= typeof(BigInteger).TypeHandle; num4 -= typeof(BigInteger).TypeHandle; uint num5 = num4 * (uint)num3; num4 -= num5; this.mQuote = (int)num4; } return num; } // Token: 0x0600A209 RID: 41481 RVA: 0x0021D744 File Offset: 0x0021B944 [Token(Token = "0x600A209")] [Address(RVA = "0x4540F0", Offset = "0x4530F0", VA = "0x1804540F0")] private static void MontgomeryReduce(int[] x, int[] m, uint mDash) { int length = m.Length; int num = length - 1; int num2 = length - 1; int num3 = x[num2]; int num4 = num3 * (int)mDash; int num5 = m[num2] * num4; num5 += num3; int length2 = x.Length; int num6; num5 += num6; int num8; int num7 = num8 * num4; num5 += num7; x[0] = num5; x[0] = num5; int num9 = 0; int num10 = BigInteger.CompareTo(0, x, num9, m); int num11 = 0; int[] array = BigInteger.Subtract(0, x, num11, m); } // Token: 0x0600A20A RID: 41482 RVA: 0x0021D7D8 File Offset: 0x0021B9D8 [Token(Token = "0x600A20A")] [Address(RVA = "0x454320", Offset = "0x453320", VA = "0x180454320")] private static void MultiplyMonty(int[] a, int[] x, int[] y, int[] m, uint mDash, bool smallMontyModulus) { int num = m.Length; if (num != 1) { int num2 = num - 1; int num3 = y[num2]; int num5; int num4 = num3 * num5; int num7; int num6 = num7 * num4; num6 += num4; num6 += num6; int num8 = m[num4]; int num9 = y[num4]; int num10 = num8 * num4; num = num10; num += num6; num += num2; num6 += num10; a[0] = num; num6 += num; a[0] = num6; int num11 = a[num]; int num13; int num12 = num3 * num13; num11 += num12; int num14 = num - 1; num = num11; int num15 = m[num14] * num; num14 = num15; num14 += num11; num14 += num15; num14 += num12; int length = a.Length; int num16 = a[num15]; int num18; int num17 = num18 * num13; num15 = num17; num16 += num15; num += num14; num += num16; a[0] = num; num14 += num; num14 += num17; num15 = num6; num14 += num15; a[0] = num14; num6 = num14; a[0] = num6; int num19 = 0; int num20 = BigInteger.CompareTo(0, a, num19, m); int num21 = 0; int[] array = BigInteger.Subtract(0, a, num21, m); int num22 = 0; Array.Copy(a, 1, x, num22, num); return; } int length2 = x.Length; int num23 = x[0]; int num24 = y[0]; int num25 = m[0]; int length3 = x.Length; int num26 = num24 * num23; int num27 = num26 * num25; num26 += num27; num26 += num27; num27 = num26; num27 -= num25; if (num26 <= num25) { num27 = num26; } x[0] = num27; throw new NullReferenceException(); } // Token: 0x0600A20B RID: 41483 RVA: 0x0021D9A0 File Offset: 0x0021BBA0 [Token(Token = "0x600A20B")] [Address(RVA = "0x4570B0", Offset = "0x4560B0", VA = "0x1804570B0")] private static void SquareMonty(int[] a, int[] x, int[] m, uint mDash, bool smallMontyModulus) { int num = m.Length; if (num != 1) { int num2 = num - 1; int num3 = x[num2]; int num4 = num3 * num3; int num5 = num4 * (int)mDash; int num6 = m[num2] * num5; num6 += num4; num6 += num6; int num7 = x[(int)mDash] * num3; int num8 = m[(int)mDash] * num5; num8 += num6; num8 += num2; num6 = num7; num6 += num8; a[0] = num8; num6 += num8; num8 = num; a[0] = num6; int num9 = a[num8]; int num10 = num8 - 1; num = num9; int num11 = num * (int)mDash; int num12 = m[num10] * num11; num12 += num9; int num13; if (num7 > num7) { int length = a.Length; num10 = num7; num13 = num10 + 1; int num14 = m[num10]; int num15 = a[num13]; num12 += num15; int num16 = num14 * num11; num12 += num16; a[0] = num12; } num13 = num7; int num17 = x[num13]; num7 = num17; int num18 = num7 * num17; int length2 = a.Length; int num19 = num13 + 1; int num20 = a[num19]; int num21 = m[num13]; num13 += 2; int num22 = num21 * num11; num19 = num18; num20 += num19; num19 = num22; num12 += num19; num12 += num20; int num23 = num7 - 1; a[0] = num12; num22 += num18; num13 = num23; num22 += num12; num7 = num13; int num24 = x[num7] * num17; int length3 = a.Length; int num25 = num7 + 1; int num26 = m[num7]; int num27 = a[num25]; num7 += 2; num27 += num23; num23 += num22; num23 += num27; num22 += num24; a[0] = num23; num22 += num23; num25 = num6; num22 += num25; a[0] = num22; num6 = num22; a[0] = num6; int num28 = 0; int num29 = BigInteger.CompareTo(0, a, num28, m); int num30 = 0; int[] array = BigInteger.Subtract(0, a, num30, m); int num31 = 0; Array.Copy(a, 1, x, num31, num); return; } int length4 = x.Length; int num32 = x[0]; int num33 = m[0]; int length5 = x.Length; int num34 = num32 * num32; int num35 = num34 * (int)mDash * num33; num34 += num35; num34 += num35; num35 = num34; num35 -= num33; if (num34 <= num33) { num35 = num34; } x[0] = num35; throw new NullReferenceException(); } // Token: 0x0600A20C RID: 41484 RVA: 0x0021DC50 File Offset: 0x0021BE50 [Token(Token = "0x600A20C")] [Address(RVA = "0x4542E0", Offset = "0x4532E0", VA = "0x1804542E0")] private static uint MultiplyMontyNIsOne(uint x, uint y, uint m, uint mDash) { uint num = x * y; uint num2 = x * mDash * m; return y; } // Token: 0x0600A20D RID: 41485 RVA: 0x0021DC68 File Offset: 0x0021BE68 [Token(Token = "0x600A20D")] [Address(RVA = "0x454A20", Offset = "0x453A20", VA = "0x180454A20")] public BigInteger Multiply(BigInteger val) { if (val != this) { int num = val.sign; int num2 = this.sign; if (num2 != num) { if (num > 0 && val.nBits == 1) { int num3 = val.Abs().BitLength - 1; BigInteger bigInteger = this.ShiftLeft(num3); } if (num2 > 0 && this.nBits == 1) { int num4 = this.Abs().BitLength - 1; return val.ShiftLeft(num4).Negate(); } int[] array = this.magnitude; int[] array2 = new int[val.magnitude.Length]; int[] array3 = this.magnitude; int[] array4 = val.magnitude; int num5 = array4.Length; int length = array2.Length; int num6 = num5 - 1; num5 = num6; int num7 = array4[num5]; int num8 = 0; int length2; int num10; if (num7 != 0) { length2 = array3.Length; num6 = length2; int num9 = array3[num6]; num8 += num10; int num11 = num9 * num7; num8 += num11; array2[0] = num8; } num10 = length; array2[0] = num8; ulong num12; BigInteger bigInteger2 = new BigInteger(length2, array2, num12 != 0UL); } } return this.Square(); } // Token: 0x0600A20E RID: 41486 RVA: 0x0021DD98 File Offset: 0x0021BF98 [Token(Token = "0x600A20E")] [Address(RVA = "0x4578F0", Offset = "0x4568F0", VA = "0x1804578F0")] public BigInteger Square() { int num = this.sign; if (num == 0) { return BigInteger.Zero; } if (num > 0 && this.nBits == 1) { int num2 = this.Abs().BitLength - 1; return this.ShiftLeft(num2); } int length = this.magnitude.Length; int[] array = this.magnitude; int[] array3; int[] array2 = BigInteger.Square(array3, array); BigInteger bigInteger; bigInteger.nBits = (int)((ulong)(-1L)); bigInteger.sign = (int)((ulong)1L); bigInteger.magnitude = array3; return bigInteger; } // Token: 0x0600A20F RID: 41487 RVA: 0x0021DE1C File Offset: 0x0021C01C [Token(Token = "0x600A20F")] [Address(RVA = "0x454D20", Offset = "0x453D20", VA = "0x180454D20")] public BigInteger Negate() { int num = this.sign; if (num != 0) { int[] array = this.magnitude; BigInteger bigInteger; bigInteger.nBits = (int)((ulong)(-1L)); bigInteger.magnitude = array; bigInteger.sign = num; } return this; } // Token: 0x0600A210 RID: 41488 RVA: 0x0021DE54 File Offset: 0x0021C054 [Token(Token = "0x600A210")] [Address(RVA = "0x454DB0", Offset = "0x453DB0", VA = "0x180454DB0")] public BigInteger NextProbablePrime() { BigInteger bigInteger; SecureRandom randomSource; int num5; do { BigInteger two = BigInteger.Two; int num = this.CompareTo(two); bigInteger = this.Inc(); int num2 = 0; if (!bigInteger.TestBit(num2)) { if (bigInteger.sign > 0 && bigInteger.BitLength > 0) { int num3 = 0; BigInteger bigInteger2 = bigInteger.FlipExistingBit(num3); } BigInteger one = BigInteger.One; int num4 = 0; BigInteger bigInteger3 = one.ShiftLeft(num4); BigInteger bigInteger4 = bigInteger.Or(bigInteger3); } randomSource = BigInteger.RandomSource; num5 = 0; } while (bigInteger.CheckProbablePrime(100, randomSource, num5 != 0)); BigInteger two2 = BigInteger.Two; return bigInteger.Add(two2); } // Token: 0x0600A211 RID: 41489 RVA: 0x0021DF00 File Offset: 0x0021C100 [Token(Token = "0x600A211")] [Address(RVA = "0x455010", Offset = "0x454010", VA = "0x180455010")] public BigInteger Not() { return this.Inc().Negate(); } // Token: 0x0600A212 RID: 41490 RVA: 0x0021DF20 File Offset: 0x0021C120 [Token(Token = "0x600A212")] [Address(RVA = "0x4553D0", Offset = "0x4543D0", VA = "0x1804553D0")] public BigInteger Pow(int exp) { if (exp <= 0) { return BigInteger.One; } int num = this.sign; if (num == 0) { return this; } if (num > 0 && this.nBits == 1) { int num2 = this.BitLength * exp; return BigInteger.One.ShiftLeft(num2); } BigInteger one = BigInteger.One; BigInteger bigInteger; if (exp != 1) { bigInteger = one.Multiply(this); } if (one != 0) { BigInteger bigInteger2 = this.Multiply(this); } return bigInteger; } // Token: 0x0600A213 RID: 41491 RVA: 0x0021DF94 File Offset: 0x0021C194 [Token(Token = "0x600A213")] [Address(RVA = "0x4555D0", Offset = "0x4545D0", VA = "0x1804555D0")] public static BigInteger ProbablePrime(int bitLength, Random random) { return new BigInteger(bitLength, 100, random); } // Token: 0x0600A214 RID: 41492 RVA: 0x0021DFAC File Offset: 0x0021C1AC [Token(Token = "0x600A214")] [Address(RVA = "0x455CB0", Offset = "0x454CB0", VA = "0x180455CB0")] private int Remainder(int m) { int[] array = this.magnitude; int num = 0; int length = array.Length; if (num < length) { num++; } return num; } // Token: 0x0600A215 RID: 41493 RVA: 0x0021DFD8 File Offset: 0x0021C1D8 [Token(Token = "0x600A215")] [Address(RVA = "0x455FD0", Offset = "0x454FD0", VA = "0x180455FD0")] private static int[] Remainder(int[] x, int[] y) { int num = 0; int num2 = 0; int length = x.Length; if (num2 < length && "{il2cpp array field x->}" == (ulong)0L) { num++; } int num3 = 0; int num4 = 0; int length2 = y.Length; if (num4 < length2 && "{il2cpp array field y->}" == (ulong)0L) { num3++; } if (BigInteger.CompareNoLeadingZeroes(num, x, num3, y) > 0) { int num5 = y.Length; if (num3 < num5) { if (y[num3] == 0) { num3++; } num5 -= num3; } int num6 = 0; ulong num7; if (num7 == (ulong)0L) { } int num8 = x.Length; if (num < num8) { int num9 = x[num]; if (num9 == 0) { num++; } num8 -= num; int num10 = BigInteger.BitLen(num9); } int num11 = 0; int num12 = 0; num11 -= num6; num11 -= num3; int[] array = new int[num11]; int num13 = x.Length; int[] array2; int length3 = array2.Length; num13 -= length3; num13 -= num; num13 += num12; if (array2 == 0 && num < num13) { num++; num12++; int num14 = array2[num12]; while ("{il2cpp array field x->}" == num14) { } if ("{il2cpp array field x->}" < num14) { } } int[] array3 = BigInteger.Subtract(num, x, num12, array2); int length4 = x.Length; int num15 = x[num]; if (num15 == 0) { while (1 != length4) { } } int num16 = BigInteger.BitLen(num15); int num17 = x.Length; num17--; num17 += num16; int num18 = x.Length; num18 -= num15; num18--; num18 += num3; if (1 >= num18) { uint num19; while (num19 == (uint)0) { } int num20; if (num20 > "{il2cpp array field x->}") { } while ("{il2cpp array field local25->}" != (ulong)0L) { } throw new NullReferenceException(); } num3++; } uint num21; if (num21 == (uint)0) { int num22 = x.Length; num22--; Array.Clear(x, 1, num22); } return x; } // Token: 0x0600A216 RID: 41494 RVA: 0x0021E1B4 File Offset: 0x0021C3B4 [Token(Token = "0x600A216")] [Address(RVA = "0x455D20", Offset = "0x454D20", VA = "0x180455D20")] public BigInteger Remainder(BigInteger n) { /* An exception occurred when decompiling this method (0600A216) ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::Remainder(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_E1: stloc:ArithmeticException(var_16_EB, newobj:ArithmeticException(ArithmeticException::.ctor, ldstr:string("Division by zero error"))) } 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: 0x0600A217 RID: 41495 RVA: 0x0021E2B0 File Offset: 0x0021C4B0 [Token(Token = "0x600A217")] [Address(RVA = "0x4525F0", Offset = "0x4515F0", VA = "0x1804525F0")] private int[] LastNBits(int n) { int num = this.magnitude.Length; int num2; num = num2; int[] array = new int[num]; int[] array2 = this.magnitude; int num3 = array2.Length; int num4 = 0; num3 -= num2; Array.Copy(array2, num3, array, num4, num2); num2 -= n; if (num2 > 0) { } return array; } // Token: 0x0600A218 RID: 41496 RVA: 0x0021E30C File Offset: 0x0021C50C [Token(Token = "0x600A218")] [Address(RVA = "0x450B30", Offset = "0x44FB30", VA = "0x180450B30")] private BigInteger DivideWords(int w) { int num = this.magnitude.Length; if (w < num) { num -= w; int[] array = new int[w]; int[] array2 = this.magnitude; int num2 = 0; int num3 = 0; Array.Copy(array2, num3, array, num2, num); int num4 = this.sign; BigInteger bigInteger; bigInteger.nBits = (int)((ulong)(-1L)); bigInteger.sign = num4; bigInteger.magnitude = array; return bigInteger; } return BigInteger.Zero; } // Token: 0x0600A219 RID: 41497 RVA: 0x0021E37C File Offset: 0x0021C57C [Token(Token = "0x600A219")] [Address(RVA = "0x455BB0", Offset = "0x454BB0", VA = "0x180455BB0")] private BigInteger RemainderWords(int w) { int num = this.magnitude.Length; if (w < num) { int[] array = new int[w]; int[] array2 = this.magnitude; num -= w; int num2 = 0; Array.Copy(array2, w, array, num2, w); int num3 = this.sign; BigInteger bigInteger; bigInteger.nBits = (int)((ulong)(-1L)); bigInteger.sign = num3; bigInteger.magnitude = array; return bigInteger; } return this; } // Token: 0x0600A21A RID: 41498 RVA: 0x0021E3E8 File Offset: 0x0021C5E8 [Token(Token = "0x600A21A")] [Address(RVA = "0x4567D0", Offset = "0x4557D0", VA = "0x1804567D0")] private static int[] ShiftLeft(int[] mag, int n) { int length = mag.Length; if (n != 0) { int num = 0; int num2 = mag[0]; if (num2 == 0) { int[] array = new int[n]; } int[] array2 = new int[n]; array2[0] = num2; int length2 = mag.Length; if (length - 1 > 0) { num++; num++; array2[0] = n; int length3 = mag.Length; } int num3 = length - 1; int num4 = mag[num3]; array2[0] = num4; } return new int[n]; } // Token: 0x0600A21B RID: 41499 RVA: 0x0021E47C File Offset: 0x0021C67C [Token(Token = "0x600A21B")] [Address(RVA = "0x456770", Offset = "0x455770", VA = "0x180456770")] private static int ShiftLeftOneInPlace(int[] x, int carry) { int length = x.Length; x[0] = x; return carry; } // Token: 0x0600A21C RID: 41500 RVA: 0x0021E4A4 File Offset: 0x0021C6A4 [Token(Token = "0x600A21C")] [Address(RVA = "0x4569F0", Offset = "0x4559F0", VA = "0x1804569F0")] public BigInteger ShiftLeft(int n) { if (this.sign != 0) { int[] array = this.magnitude; if (array.Length != 0 && n != 0) { int[] array2 = BigInteger.ShiftLeft(array, n); ulong num; BigInteger bigInteger = new BigInteger(n, array2, num != 0UL); if (this.nBits != -1) { bigInteger.nBits = bigInteger; } int num2 = this.nBitLength; if (num2 != -1) { num2 += n; bigInteger.nBitLength = num2; } BigInteger bigInteger2 = this.ShiftRight(n); } } return BigInteger.Zero; } // Token: 0x0600A21D RID: 41501 RVA: 0x0021E520 File Offset: 0x0021C720 [Token(Token = "0x600A21D")] [Address(RVA = "0x456B60", Offset = "0x455B60", VA = "0x180456B60")] private static void ShiftRightInPlace(int start, int[] mag, int n) { int i = mag.Length; if (n != start) { int length = mag.Length; int num = mag[start]; mag[0] = num; while (i >= n) { } int j = n - 1; int num2 = 0; mag[0] = num2; while (j >= start) { } } if (n != 0) { int length2 = mag.Length; int num = i; int num3 = mag[num]; if (i > n) { int length3 = mag.Length; int num4 = start - 1; mag[0] = num3; } int num5 = mag[n]; mag[0] = num5; } } // Token: 0x0600A21E RID: 41502 RVA: 0x0021E5C0 File Offset: 0x0021C7C0 [Token(Token = "0x600A21E")] [Address(RVA = "0x456D10", Offset = "0x455D10", VA = "0x180456D10")] private static void ShiftRightOneInPlace(int start, int[] mag) { int num = mag.Length; int num2 = num - 1; int num3 = mag[num2]; if (num2 > start) { int length = mag.Length; num = num2; int num4 = num - 1; mag[0] = num3; } int num5 = mag[start]; mag[0] = num5; } // Token: 0x0600A21F RID: 41503 RVA: 0x0021E614 File Offset: 0x0021C814 [Token(Token = "0x600A21F")] [Address(RVA = "0x456DE0", Offset = "0x455DE0", VA = "0x180456DE0")] public BigInteger ShiftRight(int n) { while (n != 0) { int bitLength = this.BitLength; if (n < bitLength) { int bitLength2 = this.BitLength; uint num; num -= (uint)n; num += (uint)bitLength2; int[] array = new int[31]; if (n != bitLength) { int num2 = this.magnitude.Length; uint num3 = num - 1U; num2 -= n; int num4 = this.magnitude[num2]; array[0] = num4; int[] array2 = this.magnitude; int num5 = array2[n]; array[0] = num5; } int length = array.Length; int num6 = 0; int[] array3 = this.magnitude; int num7 = 0; Array.Copy(array3, num7, array, num6, length); int num8 = this.sign; BigInteger bigInteger; bigInteger.nBits = (int)((ulong)(-1L)); bigInteger.sign = num8; bigInteger.magnitude = array; return bigInteger; } if (this.sign < 0) { return BigInteger.One.Negate().ShiftLeft(n); } } return this; } // Token: 0x170019C7 RID: 6599 // (get) Token: 0x0600A220 RID: 41504 RVA: 0x0021E714 File Offset: 0x0021C914 [Token(Token = "0x170019C7")] public int SignValue { [Token(Token = "0x600A220")] [Address(RVA = "0x411540", Offset = "0x410540", VA = "0x180411540")] get { return this.sign; } } // Token: 0x0600A221 RID: 41505 RVA: 0x0021E728 File Offset: 0x0021C928 [Token(Token = "0x600A221")] [Address(RVA = "0x457A70", Offset = "0x456A70", VA = "0x180457A70")] private static int[] Subtract(int xStart, int[] x, int yStart, int[] y) { int length = x.Length; int num = y.Length; num--; int num2 = y[num]; if (yStart != 0) { while (length == -1) { } } return x; } // Token: 0x0600A222 RID: 41506 RVA: 0x0021E764 File Offset: 0x0021C964 [Token(Token = "0x600A222")] [Address(RVA = "0x457B70", Offset = "0x456B70", VA = "0x180457B70")] public BigInteger Subtract(BigInteger n) { int num = n.sign; if (num != 0) { int num2 = this.sign; if (num2 != 0) { if (num2 == num) { int[] array = this.magnitude; int[] array2 = n.magnitude; int num3 = 0; int num4 = BigInteger.CompareNoLeadingZeroes(0, array, num3, array2); if (num4 != 0) { int num5 = this.sign; int[] array3 = n.magnitude; int[] array4 = this.magnitude; int[] array5 = BigInteger.doSubBigLil(array3, array4); int num6; BigInteger bigInteger = new BigInteger(num6, array5, true); num6 = num5 * num4; return this; } } BigInteger bigInteger3; BigInteger bigInteger2 = this.Add(bigInteger3); } throw new NullReferenceException(); } return this; } // Token: 0x0600A223 RID: 41507 RVA: 0x0021E7F4 File Offset: 0x0021C9F4 [Token(Token = "0x600A223")] [Address(RVA = "0x45C7F0", Offset = "0x45B7F0", VA = "0x18045C7F0")] private static int[] doSubBigLil(int[] bigMag, int[] lilMag) { int[] array; return array; } // Token: 0x0600A224 RID: 41508 RVA: 0x0021E80C File Offset: 0x0021CA0C [Token(Token = "0x600A224")] [Address(RVA = "0x457E60", Offset = "0x456E60", VA = "0x180457E60")] public byte[] ToByteArray() { int num = 0; return this.ToByteArray(num != 0); } // Token: 0x0600A225 RID: 41509 RVA: 0x0021E824 File Offset: 0x0021CA24 [Token(Token = "0x600A225")] [Address(RVA = "0x457E50", Offset = "0x456E50", VA = "0x180457E50")] public byte[] ToByteArrayUnsigned() { return this.ToByteArray(true); } // Token: 0x0600A226 RID: 41510 RVA: 0x0021E838 File Offset: 0x0021CA38 [Token(Token = "0x600A226")] [Address(RVA = "0x457E70", Offset = "0x456E70", VA = "0x180457E70")] private byte[] ToByteArray(bool unsigned) { byte[] array2; int num5; int num6; do { int num = this.sign; if (num == 0) { goto IL_196; } if (unsigned && num > 0) { int bitLength = this.BitLength; } if (this.nBitLength == -1) { int num2 = this.sign; if (num2 == 0) { } int[] array = this.magnitude; int num3 = 0; int num4 = BigInteger.CalcBitLength(num2, num3, array); this.nBitLength = num4; } array2 = new byte[unsigned ? 1 : 0]; num5 = this.magnitude.Length; num6 = array2.Length; } while (num5 <= 1); int num7 = this.magnitude[num5]; ulong num8; int num9; bool flag; if (num8 != (ulong)0L) { num9 = num7 + 1; num7 = num9; flag = num9 == 0; } num9 = num6; int num10 = num9 - 1; array2[0] = (byte)num7; num9 = num7; array2[0] = (byte)num9; num10 = num6; num10 += -3; num9 = num7; num6 += -4; array2[0] = (byte)num9; int i = this.magnitude[0]; if (flag) { } if (i > 255) { num6--; while (i > 255) { } } num5 = num6; int num11 = num5 - 1; if (num6 - 1 > 0) { return array2; } return array2; IL_196: if (unsigned) { return BigInteger.ZeroEncoding; } throw new IndexOutOfRangeException(); } // Token: 0x0600A227 RID: 41511 RVA: 0x0021E9EC File Offset: 0x0021CBEC [Token(Token = "0x600A227")] [Address(RVA = "0x458360", Offset = "0x457360", VA = "0x180458360", Slot = "3")] public override string ToString() { return this.ToString(10); } // Token: 0x0600A228 RID: 41512 RVA: 0x0021EA04 File Offset: 0x0021CC04 [Token(Token = "0x600A228")] [Address(RVA = "0x458370", Offset = "0x457370", VA = "0x180458370")] public string ToString(int radix) { /* An exception occurred when decompiling this method (0600A228) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.String BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::ToString(System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_14F: stloc:FormatException(var_34_159, newobj:FormatException(FormatException::.ctor, ldstr:string("Only bases 2, 8, 10, 16 are allowed"))) } 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: 0x0600A229 RID: 41513 RVA: 0x0021EB6C File Offset: 0x0021CD6C [Token(Token = "0x600A229")] [Address(RVA = "0x458B00", Offset = "0x457B00", VA = "0x180458B00")] private static void ToString(StringBuilder sb, int radix, IList moduli, int scale, BigInteger pos) { int num; int num2; do { num = 0; num2 = scale - 1; if (radix == 0) { } } while (radix == 0); BigInteger[] array; BigInteger bigInteger = array[0]; BigInteger.ToString(sb, radix, moduli, num2, bigInteger); BigInteger bigInteger2 = array[1]; string text = Convert.ToString(bigInteger2.LongValue, radix); int length = sb.Length; if (sb.Length == 1) { int num3 = 0; char c = sb[num3]; } if (bigInteger2.sign != num) { StringBuilder stringBuilder = sb.Append(text); } } // Token: 0x0600A22A RID: 41514 RVA: 0x0021EBF4 File Offset: 0x0021CDF4 [Token(Token = "0x600A22A")] [Address(RVA = "0x44F900", Offset = "0x44E900", VA = "0x18044F900")] private static void AppendZeroExtendedString(StringBuilder sb, string s, int minLength) { int num = s.m_stringLength; if (num < minLength) { num++; } StringBuilder stringBuilder = sb.Append(s); } // Token: 0x0600A22B RID: 41515 RVA: 0x0021EC20 File Offset: 0x0021CE20 [Token(Token = "0x600A22B")] [Address(RVA = "0x4503E0", Offset = "0x44F3E0", VA = "0x1804503E0")] private static BigInteger CreateUValueOf(ulong value) { if (value != (ulong)0L) { int[] array = new int[2]; array[0] = (int)value; array[0] = (int)value; BigInteger bigInteger; bigInteger.nBits = (int)((ulong)(-1L)); bigInteger.sign = (int)((ulong)1L); bigInteger.magnitude = array; return bigInteger; } if (value == (ulong)0L) { return BigInteger.Zero; } int[] array2 = new int[] { (int)value }; BigInteger bigInteger2; bigInteger2.nBits = (int)((ulong)(-1L)); bigInteger2.sign = (int)((ulong)1L); bigInteger2.magnitude = array2; if (value == 0UL) { bigInteger2.nBits = (int)((ulong)1L); } return bigInteger2; } // Token: 0x0600A22C RID: 41516 RVA: 0x0021ECAC File Offset: 0x0021CEAC [Token(Token = "0x600A22C")] [Address(RVA = "0x4505C0", Offset = "0x44F5C0", VA = "0x1804505C0")] private static BigInteger CreateValueOf(long value) { return BigInteger.CreateUValueOf((ulong)value); } // Token: 0x0600A22D RID: 41517 RVA: 0x0021ECD8 File Offset: 0x0021CED8 [Token(Token = "0x600A22D")] [Address(RVA = "0x458D70", Offset = "0x457D70", VA = "0x180458D70")] public static BigInteger ValueOf(long value) { int length = BigInteger.SMALL_CONSTANTS.Length; if (value < (long)length) { return BigInteger.SMALL_CONSTANTS[(int)value]; } return BigInteger.CreateValueOf(value); } // Token: 0x0600A22E RID: 41518 RVA: 0x0021ED0C File Offset: 0x0021CF0C [Token(Token = "0x600A22E")] [Address(RVA = "0x451D90", Offset = "0x450D90", VA = "0x180451D90")] public int GetLowestSetBit() { if (this.sign != 0) { return this.GetLowestSetBitMaskFirst(-1); } return -1; } // Token: 0x0600A22F RID: 41519 RVA: 0x0021ED2C File Offset: 0x0021CF2C [Token(Token = "0x600A22F")] [Address(RVA = "0x451CF0", Offset = "0x450CF0", VA = "0x180451CF0")] private int GetLowestSetBitMaskFirst(int firstWordMask) { int[] array; int num2; int num4; do { array = this.magnitude; int num = array.Length; num2 = 0; int num3 = num - 1; num = num3; num4 = array[num]; if (num3 != num) { break; } num4 = num3; num2 += 32; } while (array[num4] == 0); if (num4 == 0) { num2 += 8; while (num4 == 0) { } } if (num4 == 1) { num2++; while (num4 == 1) { } } return num2; } // Token: 0x0600A230 RID: 41520 RVA: 0x0021ED94 File Offset: 0x0021CF94 [Token(Token = "0x600A230")] [Address(RVA = "0x457D20", Offset = "0x456D20", VA = "0x180457D20")] public bool TestBit(int n) { int length = this.magnitude.Length; if (n < length) { int num = n - 1; } BigInteger bigInteger; return !bigInteger.Negate().TestBit(n); } // Token: 0x0600A231 RID: 41521 RVA: 0x0021EDD4 File Offset: 0x0021CFD4 [Token(Token = "0x600A231")] [Address(RVA = "0x455040", Offset = "0x454040", VA = "0x180455040")] public BigInteger Or(BigInteger value) { int num = this.sign; if (num != 0 && value.sign != 0) { if (num > 0) { } BigInteger one = BigInteger.One; int[] array = this.Add(one).magnitude; if (value.sign > 0) { } BigInteger one2 = BigInteger.One; int[] array2 = value.Add(one2).magnitude; if (this.sign < 0) { } int num2 = value.sign; int num3 = array2.Length; num3 = Math.Max(array.Length, num3); int[] array3 = new int[num3]; int num4 = array3.Length; int num5 = 0; int num6 = 0; num4 -= num4; int length = array3.Length; if (num6 < length) { num6 += num5; int num7 = 0; array3[0] = num7; if (num2 != 0) { array3[0] = num7; } num5++; } uint num8; ulong num9; BigInteger bigInteger = new BigInteger((int)num8, array3, num9 != 0UL); BigInteger bigInteger3; if (num2 != 0) { BigInteger bigInteger2 = bigInteger.Inc(); int num10 = bigInteger2.sign; if (num10 != 0) { int[] array4 = bigInteger2.magnitude; bigInteger3.nBits = (int)((ulong)(-1L)); bigInteger3.sign = num10; bigInteger3.magnitude = array4; } } return bigInteger3; } return value; } // Token: 0x0600A232 RID: 41522 RVA: 0x0021EF08 File Offset: 0x0021D108 [Token(Token = "0x600A232")] [Address(RVA = "0x458E60", Offset = "0x457E60", VA = "0x180458E60")] public BigInteger Xor(BigInteger value) { int num = this.sign; if (num != 0 && value.sign != 0) { if (num > 0) { } BigInteger one = BigInteger.One; int[] array = this.Add(one).magnitude; if (value.sign > 0) { } BigInteger one2 = BigInteger.One; int[] array2 = value.Add(one2).magnitude; int num2 = value.sign; if (this.sign < 0) { } int num3 = array2.Length; num3 = Math.Max(array.Length, num3); int[] array3 = new int[num3]; int num4 = array3.Length; int num5 = 0; int num6 = 0; num4 -= num4; int length = array3.Length; if (num6 < length) { num6 += num5; int num7 = 0; array3[0] = num7; if (num2 != 0) { array3[0] = num7; } num5++; } uint num8; ulong num9; BigInteger bigInteger = new BigInteger((int)num8, array3, num9 != 0UL); BigInteger bigInteger3; if (num2 != 0) { BigInteger bigInteger2 = bigInteger.Inc(); int num10 = bigInteger2.sign; if (num10 != 0) { int[] array4 = bigInteger2.magnitude; bigInteger3.nBits = (int)((ulong)(-1L)); bigInteger3.sign = num10; bigInteger3.magnitude = array4; } } return bigInteger3; } return value; } // Token: 0x0600A233 RID: 41523 RVA: 0x0021F03C File Offset: 0x0021D23C [Token(Token = "0x600A233")] [Address(RVA = "0x456650", Offset = "0x455650", VA = "0x180456650")] public BigInteger SetBit(int n) { if (!this.TestBit(n)) { if (this.sign > 0) { int bitLength = this.BitLength; if (n < bitLength) { return this.FlipExistingBit(n); } } BigInteger bigInteger = BigInteger.One.ShiftLeft(n); return this.Or(bigInteger); } return this; } // Token: 0x0600A234 RID: 41524 RVA: 0x0021F090 File Offset: 0x0021D290 [Token(Token = "0x600A234")] [Address(RVA = "0x44FF70", Offset = "0x44EF70", VA = "0x18044FF70")] public BigInteger ClearBit(int n) { if (this.TestBit(n)) { if (this.sign > 0) { int bitLength = this.BitLength; if (n < bitLength) { return this.FlipExistingBit(n); } } BigInteger bigInteger = BigInteger.One.ShiftLeft(n).Inc().Negate(); return this.And(bigInteger); } return this; } // Token: 0x0600A235 RID: 41525 RVA: 0x0021F0F0 File Offset: 0x0021D2F0 [Token(Token = "0x600A235")] [Address(RVA = "0x4518C0", Offset = "0x4508C0", VA = "0x1804518C0")] public BigInteger FlipBit(int n) { if (this.sign > 0) { int num = this.nBitLength; if (num == -1) { int num2 = this.sign; if (num2 == 0) { } int[] array = this.magnitude; int num3 = 0; int num4 = BigInteger.CalcBitLength(num2, num3, array); this.nBitLength = num4; } if (n < num) { return this.FlipExistingBit(n); } } BigInteger bigInteger = BigInteger.One.ShiftLeft(n); return this.Xor(bigInteger); } // Token: 0x0600A236 RID: 41526 RVA: 0x0021F164 File Offset: 0x0021D364 [Token(Token = "0x600A236")] [Address(RVA = "0x451A20", Offset = "0x450A20", VA = "0x180451A20")] private BigInteger FlipExistingBit(int n) { int[] array = this.magnitude; array -= n; int num = this.sign; BigInteger bigInteger; bigInteger.nBits = (int)((ulong)(-1L)); bigInteger.sign = num; return bigInteger; } // Token: 0x04006BDD RID: 27613 [Token(Token = "0x4006BDD")] internal static readonly int[][] primeLists; // Token: 0x04006BDE RID: 27614 [Token(Token = "0x4006BDE")] internal static readonly int[] primeProducts; // Token: 0x04006BDF RID: 27615 [Token(Token = "0x4006BDF")] private const long IMASK = 4294967295L; // Token: 0x04006BE0 RID: 27616 [Token(Token = "0x4006BE0")] private const ulong UIMASK = 4294967295UL; // Token: 0x04006BE1 RID: 27617 [Token(Token = "0x4006BE1")] private static readonly int[] ZeroMagnitude; // Token: 0x04006BE2 RID: 27618 [Token(Token = "0x4006BE2")] private static readonly byte[] ZeroEncoding; // Token: 0x04006BE3 RID: 27619 [Token(Token = "0x4006BE3")] private static readonly BigInteger[] SMALL_CONSTANTS; // Token: 0x04006BE4 RID: 27620 [Token(Token = "0x4006BE4")] public static readonly BigInteger Zero; // Token: 0x04006BE5 RID: 27621 [Token(Token = "0x4006BE5")] public static readonly BigInteger One; // Token: 0x04006BE6 RID: 27622 [Token(Token = "0x4006BE6")] public static readonly BigInteger Two; // Token: 0x04006BE7 RID: 27623 [Token(Token = "0x4006BE7")] public static readonly BigInteger Three; // Token: 0x04006BE8 RID: 27624 [Token(Token = "0x4006BE8")] public static readonly BigInteger Ten; // Token: 0x04006BE9 RID: 27625 [Token(Token = "0x4006BE9")] private static readonly byte[] BitLengthTable; // Token: 0x04006BEA RID: 27626 [Token(Token = "0x4006BEA")] private const int chunk2 = 1; // Token: 0x04006BEB RID: 27627 [Token(Token = "0x4006BEB")] private const int chunk8 = 1; // Token: 0x04006BEC RID: 27628 [Token(Token = "0x4006BEC")] private const int chunk10 = 19; // Token: 0x04006BED RID: 27629 [Token(Token = "0x4006BED")] private const int chunk16 = 16; // Token: 0x04006BEE RID: 27630 [Token(Token = "0x4006BEE")] private static readonly BigInteger radix2; // Token: 0x04006BEF RID: 27631 [Token(Token = "0x4006BEF")] private static readonly BigInteger radix2E; // Token: 0x04006BF0 RID: 27632 [Token(Token = "0x4006BF0")] private static readonly BigInteger radix8; // Token: 0x04006BF1 RID: 27633 [Token(Token = "0x4006BF1")] private static readonly BigInteger radix8E; // Token: 0x04006BF2 RID: 27634 [Token(Token = "0x4006BF2")] private static readonly BigInteger radix10; // Token: 0x04006BF3 RID: 27635 [Token(Token = "0x4006BF3")] private static readonly BigInteger radix10E; // Token: 0x04006BF4 RID: 27636 [Token(Token = "0x4006BF4")] private static readonly BigInteger radix16; // Token: 0x04006BF5 RID: 27637 [Token(Token = "0x4006BF5")] private static readonly BigInteger radix16E; // Token: 0x04006BF6 RID: 27638 [Token(Token = "0x4006BF6")] private static readonly SecureRandom RandomSource; // Token: 0x04006BF7 RID: 27639 [Token(Token = "0x4006BF7")] private static readonly int[] ExpWindowThresholds; // Token: 0x04006BF8 RID: 27640 [Token(Token = "0x4006BF8")] private const int BitsPerByte = 8; // Token: 0x04006BF9 RID: 27641 [Token(Token = "0x4006BF9")] private const int BitsPerInt = 32; // Token: 0x04006BFA RID: 27642 [Token(Token = "0x4006BFA")] private const int BytesPerInt = 4; // Token: 0x04006BFB RID: 27643 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4006BFB")] private int[] magnitude; // Token: 0x04006BFC RID: 27644 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4006BFC")] private int sign; // Token: 0x04006BFD RID: 27645 [FieldOffset(Offset = "0x1C")] [Token(Token = "0x4006BFD")] private int nBits; // Token: 0x04006BFE RID: 27646 [FieldOffset(Offset = "0x20")] [Token(Token = "0x4006BFE")] private int nBitLength; // Token: 0x04006BFF RID: 27647 [FieldOffset(Offset = "0x24")] [Token(Token = "0x4006BFF")] private int mQuote; } }