using System; using System.Collections; using System.Runtime.InteropServices; using System.Text; using BestHTTP.SecureProtocol.Org.BouncyCastle.Security; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math { // Token: 0x020013F7 RID: 5111 [Token(Token = "0x20013F7")] [Serializable] [StructLayout(3)] public class BigInteger { // Token: 0x06008223 RID: 33315 RVA: 0x001BAC14 File Offset: 0x001B8E14 [Token(Token = "0x6008223")] [Address(RVA = "0x21D0110", Offset = "0x21CEB10", VA = "0x1821D0110")] static BigInteger() { /* An exception occurred when decompiling this method (06008223) 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: 0x06008224 RID: 33316 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x6008224")] [Address(RVA = "0x21C8BE0", Offset = "0x21C75E0", VA = "0x1821C8BE0")] private static int GetByteLength(int nBits) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06008225 RID: 33317 RVA: 0x001BB424 File Offset: 0x001B9624 [Token(Token = "0x6008225")] [Address(RVA = "0x21C6900", Offset = "0x21C5300", VA = "0x1821C6900")] internal static BigInteger Arbitrary(int sizeInBits) { SecureRandom randomSource = BigInteger.RandomSource; return new BigInteger(sizeInBits, randomSource); } // Token: 0x06008226 RID: 33318 RVA: 0x001BB440 File Offset: 0x001B9640 [Token(Token = "0x6008226")] [Address(RVA = "0x21D2D60", Offset = "0x21D1760", VA = "0x1821D2D60")] 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: 0x06008227 RID: 33319 RVA: 0x001BB4F0 File Offset: 0x001B96F0 [Token(Token = "0x6008227")] [Address(RVA = "0x21D3070", Offset = "0x21D1A70", VA = "0x1821D3070")] public BigInteger(string value) { } // Token: 0x06008228 RID: 33320 RVA: 0x001BB500 File Offset: 0x001B9700 [Token(Token = "0x6008228")] [Address(RVA = "0x21D2730", Offset = "0x21D1130", VA = "0x1821D2730")] public BigInteger(string str, int radix) { /* An exception occurred when decompiling this method (06008228) 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_42_1FA, newobj:FormatException(FormatException::.ctor, ldloc:string(var_41))) } 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: 0x06008229 RID: 33321 RVA: 0x001BB708 File Offset: 0x001B9908 [Token(Token = "0x6008229")] [Address(RVA = "0x21D3310", Offset = "0x21D1D10", VA = "0x1821D3310")] public BigInteger(byte[] bytes) { int length = bytes.Length; } // Token: 0x0600822A RID: 33322 RVA: 0x001BB724 File Offset: 0x001B9924 [Token(Token = "0x600822A")] [Address(RVA = "0x21D3080", Offset = "0x21D1A80", VA = "0x1821D3080")] public BigInteger(byte[] bytes, int offset, int length) { /* An exception occurred when decompiling this method (0600822A) 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: 0x0600822B RID: 33323 RVA: 0x001BB7CC File Offset: 0x001B99CC [Token(Token = "0x600822B")] [Address(RVA = "0x21C96C0", Offset = "0x21C80C0", VA = "0x1821C96C0")] private static int[] MakeMagnitude(byte[] bytes, int offset, int length) { return BigInteger.ZeroMagnitude; } // Token: 0x0600822C RID: 33324 RVA: 0x001BB80C File Offset: 0x001B9A0C [Token(Token = "0x600822C")] [Address(RVA = "0x21D25F0", Offset = "0x21D0FF0", VA = "0x1821D25F0")] public BigInteger(int sign, byte[] bytes) { /* An exception occurred when decompiling this method (0600822C) 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: 0x0600822D RID: 33325 RVA: 0x001BB87C File Offset: 0x001B9A7C [Token(Token = "0x600822D")] [Address(RVA = "0x21D24C0", Offset = "0x21D0EC0", VA = "0x1821D24C0")] public BigInteger(int sign, byte[] bytes, int offset, int length) { /* An exception occurred when decompiling this method (0600822D) 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: 0x0600822E RID: 33326 RVA: 0x001BB8D4 File Offset: 0x001B9AD4 [Token(Token = "0x600822E")] [Address(RVA = "0x21D2EA0", Offset = "0x21D18A0", VA = "0x1821D2EA0")] 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: 0x0600822F RID: 33327 RVA: 0x001BB968 File Offset: 0x001B9B68 [Token(Token = "0x600822F")] [Address(RVA = "0x21D3340", Offset = "0x21D1D40", VA = "0x1821D3340")] 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: 0x06008230 RID: 33328 RVA: 0x001BBA48 File Offset: 0x001B9C48 [Token(Token = "0x6008230")] [Address(RVA = "0x21C6090", Offset = "0x21C4A90", VA = "0x1821C6090")] 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: 0x06008231 RID: 33329 RVA: 0x001BBA88 File Offset: 0x001B9C88 [Token(Token = "0x6008231")] [Address(RVA = "0x21C6130", Offset = "0x21C4B30", VA = "0x1821C6130")] 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: 0x06008232 RID: 33330 RVA: 0x001BBAE0 File Offset: 0x001B9CE0 [Token(Token = "0x6008232")] [Address(RVA = "0x21C63C0", Offset = "0x21C4DC0", VA = "0x1821C63C0")] 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: 0x06008233 RID: 33331 RVA: 0x001BBB38 File Offset: 0x001B9D38 [Token(Token = "0x6008233")] [Address(RVA = "0x21C6210", Offset = "0x21C4C10", VA = "0x1821C6210")] 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: 0x06008234 RID: 33332 RVA: 0x001BBBA0 File Offset: 0x001B9DA0 [Token(Token = "0x6008234")] [Address(RVA = "0x21C64C0", Offset = "0x21C4EC0", VA = "0x1821C64C0")] 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: 0x06008235 RID: 33333 RVA: 0x001BBCCC File Offset: 0x001B9ECC [Token(Token = "0x6008235")] [Address(RVA = "0x21C6470", Offset = "0x21C4E70", VA = "0x1821C6470")] public BigInteger AndNot(BigInteger val) { BigInteger bigInteger = val.Inc().Negate(); return this.And(bigInteger); } // Token: 0x17001525 RID: 5413 // (get) Token: 0x06008236 RID: 33334 RVA: 0x001BBCF4 File Offset: 0x001B9EF4 [Token(Token = "0x17001525")] public int BitCount { [Token(Token = "0x6008236")] [Address(RVA = "0x21D37A0", Offset = "0x21D21A0", VA = "0x1821D37A0")] 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: 0x06008237 RID: 33335 RVA: 0x001BBD74 File Offset: 0x001B9F74 [Token(Token = "0x6008237")] [Address(RVA = "0x21C6990", Offset = "0x21C5390", VA = "0x1821C6990")] public static int BitCnt(int i) { return i; } // Token: 0x06008238 RID: 33336 RVA: 0x001BBD84 File Offset: 0x001B9F84 [Token(Token = "0x6008238")] [Address(RVA = "0x21C6BA0", Offset = "0x21C55A0", VA = "0x1821C6BA0")] 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: 0x17001526 RID: 5414 // (get) Token: 0x06008239 RID: 33337 RVA: 0x001BBDDC File Offset: 0x001B9FDC [Token(Token = "0x17001526")] public int BitLength { [Token(Token = "0x6008239")] [Address(RVA = "0x21D3900", Offset = "0x21D2300", VA = "0x1821D3900")] 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: 0x0600823A RID: 33338 RVA: 0x001BBE28 File Offset: 0x001BA028 [Token(Token = "0x600823A")] [Address(RVA = "0x21C69D0", Offset = "0x21C53D0", VA = "0x1821C69D0")] 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: 0x0600823B RID: 33339 RVA: 0x001BBE60 File Offset: 0x001BA060 [Token(Token = "0x600823B")] [Address(RVA = "0x21CC520", Offset = "0x21CAF20", VA = "0x1821CC520")] private bool QuickPow2Check() { return this.nBits == 1; } // Token: 0x0600823C RID: 33340 RVA: 0x001BBE78 File Offset: 0x001BA078 [Token(Token = "0x600823C")] [Address(RVA = "0x21C70F0", Offset = "0x21C5AF0", VA = "0x1821C70F0")] public int CompareTo(object obj) { do { if (obj == 0) { } } while (obj == 0); int num; return num; } // Token: 0x0600823D RID: 33341 RVA: 0x001BBE90 File Offset: 0x001BA090 [Token(Token = "0x600823D")] [Address(RVA = "0x21C7270", Offset = "0x21C5C70", VA = "0x1821C7270")] 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: 0x0600823E RID: 33342 RVA: 0x001BBED8 File Offset: 0x001BA0D8 [Token(Token = "0x600823E")] [Address(RVA = "0x21C7030", Offset = "0x21C5A30", VA = "0x1821C7030")] 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: 0x0600823F RID: 33343 RVA: 0x001BBF2C File Offset: 0x001BA12C [Token(Token = "0x600823F")] [Address(RVA = "0x21C7190", Offset = "0x21C5B90", VA = "0x1821C7190")] public int CompareTo(BigInteger value) { int num = this.sign; if (num < value.sign) { return -1; } if (num > value.sign) { return 1; } return 0; } // Token: 0x06008240 RID: 33344 RVA: 0x001BBF64 File Offset: 0x001BA164 [Token(Token = "0x6008240")] [Address(RVA = "0x21C7DC0", Offset = "0x21C67C0", VA = "0x1821C7DC0")] 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: 0x06008241 RID: 33345 RVA: 0x001BC14C File Offset: 0x001BA34C [Token(Token = "0x6008241")] [Address(RVA = "0x21C7BD0", Offset = "0x21C65D0", VA = "0x1821C7BD0")] public BigInteger Divide(BigInteger val) { /* An exception occurred when decompiling this method (06008241) 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: 0x06008242 RID: 33346 RVA: 0x001BC1F4 File Offset: 0x001BA3F4 [Token(Token = "0x6008242")] [Address(RVA = "0x21C7640", Offset = "0x21C6040", VA = "0x1821C7640")] 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: 0x06008243 RID: 33347 RVA: 0x001BC314 File Offset: 0x001BA514 [Token(Token = "0x6008243")] [Address(RVA = "0x21C8640", Offset = "0x21C7040", VA = "0x1821C8640", 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: 0x06008244 RID: 33348 RVA: 0x001BC340 File Offset: 0x001BA540 [Token(Token = "0x6008244")] [Address(RVA = "0x21C91E0", Offset = "0x21C7BE0", VA = "0x1821C91E0")] 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: 0x06008245 RID: 33349 RVA: 0x001BC394 File Offset: 0x001BA594 [Token(Token = "0x6008245")] [Address(RVA = "0x21C8AD0", Offset = "0x21C74D0", VA = "0x1821C8AD0")] 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: 0x06008246 RID: 33350 RVA: 0x001BC3FC File Offset: 0x001BA5FC [Token(Token = "0x6008246")] [Address(RVA = "0x21C8BF0", Offset = "0x21C75F0", VA = "0x1821C8BF0", 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: 0x06008247 RID: 33351 RVA: 0x001BC43C File Offset: 0x001BA63C [Token(Token = "0x6008247")] [Address(RVA = "0x21C9090", Offset = "0x21C7A90", VA = "0x1821C9090")] private BigInteger Inc() { if (this.sign != 0) { int[] array = BigInteger.One.magnitude; return this.AddToMagnitude(array); } return BigInteger.One; } // Token: 0x17001527 RID: 5415 // (get) Token: 0x06008248 RID: 33352 RVA: 0x001BC488 File Offset: 0x001BA688 [Token(Token = "0x17001527")] public int IntValue { [Token(Token = "0x6008248")] [Address(RVA = "0x21D39A0", Offset = "0x21D23A0", VA = "0x1821D39A0")] get { if (this.sign != 0) { int[] array = this.magnitude; int num = array.Length - 1; return array[num]; } return 0; } } // Token: 0x06008249 RID: 33353 RVA: 0x001BC4C0 File Offset: 0x001BA6C0 [Token(Token = "0x6008249")] [Address(RVA = "0x21C9400", Offset = "0x21C7E00", VA = "0x1821C9400")] 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: 0x0600824A RID: 33354 RVA: 0x001BC504 File Offset: 0x001BA704 [Token(Token = "0x600824A")] [Address(RVA = "0x21C9270", Offset = "0x21C7C70", VA = "0x1821C9270")] 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: 0x0600824B RID: 33355 RVA: 0x001BC544 File Offset: 0x001BA744 [Token(Token = "0x600824B")] [Address(RVA = "0x21C6CD0", Offset = "0x21C56D0", VA = "0x1821C6CD0")] 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: 0x0600824C RID: 33356 RVA: 0x001BC5C8 File Offset: 0x001BA7C8 [Token(Token = "0x600824C")] [Address(RVA = "0x21CC540", Offset = "0x21CAF40", VA = "0x1821CC540")] public bool RabinMillerTest(int certainty, Random random) { int num = 0; return this.RabinMillerTest(certainty, random, num != 0); } // Token: 0x0600824D RID: 33357 RVA: 0x001BC5E0 File Offset: 0x001BA7E0 [Token(Token = "0x600824D")] [Address(RVA = "0x21CC560", Offset = "0x21CAF60", VA = "0x1821CC560")] 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: 0x17001528 RID: 5416 // (get) Token: 0x0600824E RID: 33358 RVA: 0x001BC708 File Offset: 0x001BA908 [Token(Token = "0x17001528")] public long LongValue { [Token(Token = "0x600824E")] [Address(RVA = "0x21D39F0", Offset = "0x21D23F0", VA = "0x1821D39F0")] get { if (this.sign != 0) { int length = this.magnitude.Length; int num = length - 1; if (length > 1) { } } throw new IndexOutOfRangeException(); } } // Token: 0x0600824F RID: 33359 RVA: 0x001BC73C File Offset: 0x001BA93C [Token(Token = "0x600824F")] [Address(RVA = "0x21C9860", Offset = "0x21C8260", VA = "0x1821C9860")] public BigInteger Max(BigInteger value) { int num = this.CompareTo(value); return this; } // Token: 0x06008250 RID: 33360 RVA: 0x001BC754 File Offset: 0x001BA954 [Token(Token = "0x6008250")] [Address(RVA = "0x21C9890", Offset = "0x21C8290", VA = "0x1821C9890")] public BigInteger Min(BigInteger value) { int num = this.CompareTo(value); return this; } // Token: 0x06008251 RID: 33361 RVA: 0x001BC76C File Offset: 0x001BA96C [Token(Token = "0x6008251")] [Address(RVA = "0x21CAFD0", Offset = "0x21C99D0", VA = "0x1821CAFD0")] public BigInteger Mod(BigInteger m) { BigInteger bigInteger = this.Remainder(m); if (bigInteger.sign < 0) { BigInteger bigInteger2 = bigInteger.Add(m); } return bigInteger; } // Token: 0x06008252 RID: 33362 RVA: 0x001BC79C File Offset: 0x001BA99C [Token(Token = "0x6008252")] [Address(RVA = "0x21C9C50", Offset = "0x21C8650", VA = "0x1821C9C50")] public BigInteger ModInverse(BigInteger m) { /* An exception occurred when decompiling this method (06008252) 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: 0x06008253 RID: 33363 RVA: 0x001BC83C File Offset: 0x001BAA3C [Token(Token = "0x6008253")] [Address(RVA = "0x21C9970", Offset = "0x21C8370", VA = "0x1821C9970")] private BigInteger ModInversePow2(BigInteger m) { /* An exception occurred when decompiling this method (06008253) 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: 0x06008254 RID: 33364 RVA: 0x001BC968 File Offset: 0x001BAB68 [Token(Token = "0x6008254")] [Address(RVA = "0x21C98C0", Offset = "0x21C82C0", VA = "0x1821C98C0")] private static int ModInverse32(int d) { /* An exception occurred when decompiling this method (06008254) 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: 0x06008255 RID: 33365 RVA: 0x001BC984 File Offset: 0x001BAB84 [Token(Token = "0x6008255")] [Address(RVA = "0x21C9910", Offset = "0x21C8310", VA = "0x1821C9910")] private static long ModInverse64(long d) { /* An exception occurred when decompiling this method (06008255) 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: 0x06008256 RID: 33366 RVA: 0x001BC998 File Offset: 0x001BAB98 [Token(Token = "0x6008256")] [Address(RVA = "0x21C86F0", Offset = "0x21C70F0", VA = "0x1821C86F0")] 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: 0x06008257 RID: 33367 RVA: 0x001BC9FC File Offset: 0x001BABFC [Token(Token = "0x6008257")] [Address(RVA = "0x21D00E0", Offset = "0x21CEAE0", VA = "0x1821D00E0")] private static void ZeroOut(int[] x) { int length = x.Length; int num = 0; Array.Clear(x, num, length); } // Token: 0x06008258 RID: 33368 RVA: 0x001BCA20 File Offset: 0x001BAC20 [Token(Token = "0x6008258")] [Address(RVA = "0x21CAD20", Offset = "0x21C9720", VA = "0x1821CAD20")] 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: 0x06008259 RID: 33369 RVA: 0x001BCA94 File Offset: 0x001BAC94 [Token(Token = "0x6008259")] [Address(RVA = "0x21C9EE0", Offset = "0x21C88E0", VA = "0x1821C9EE0")] 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: 0x0600825A RID: 33370 RVA: 0x001BCBDC File Offset: 0x001BADDC [Token(Token = "0x600825A")] [Address(RVA = "0x21CC900", Offset = "0x21CB300", VA = "0x1821CC900")] 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: 0x0600825B RID: 33371 RVA: 0x001BCC7C File Offset: 0x001BAE7C [Token(Token = "0x600825B")] [Address(RVA = "0x21CA4C0", Offset = "0x21C8EC0", VA = "0x1821CA4C0")] 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: 0x0600825C RID: 33372 RVA: 0x001BCE84 File Offset: 0x001BB084 [Token(Token = "0x600825C")] [Address(RVA = "0x21C8E10", Offset = "0x21C7810", VA = "0x1821C8E10")] 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: 0x0600825D RID: 33373 RVA: 0x001BCF60 File Offset: 0x001BB160 [Token(Token = "0x600825D")] [Address(RVA = "0x21C7620", Offset = "0x21C6020", VA = "0x1821C7620")] private static int CreateWindowEntry(int mult, int zeroes) { if (mult == 1) { while (mult == 1) { } } return zeroes; } // Token: 0x0600825E RID: 33374 RVA: 0x001BCF78 File Offset: 0x001BB178 [Token(Token = "0x600825E")] [Address(RVA = "0x21CE5A0", Offset = "0x21CCFA0", VA = "0x1821CE5A0")] 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: 0x0600825F RID: 33375 RVA: 0x001BD05C File Offset: 0x001BB25C [Token(Token = "0x600825F")] [Address(RVA = "0x21CB840", Offset = "0x21CA240", VA = "0x1821CB840")] 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: 0x06008260 RID: 33376 RVA: 0x001BD0D0 File Offset: 0x001BB2D0 [Token(Token = "0x6008260")] [Address(RVA = "0x21C8D30", Offset = "0x21C7730", VA = "0x1821C8D30")] 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: 0x06008261 RID: 33377 RVA: 0x001BD130 File Offset: 0x001BB330 [Token(Token = "0x6008261")] [Address(RVA = "0x21CB070", Offset = "0x21C9A70", VA = "0x1821CB070")] 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: 0x06008262 RID: 33378 RVA: 0x001BD1C4 File Offset: 0x001BB3C4 [Token(Token = "0x6008262")] [Address(RVA = "0x21CB2A0", Offset = "0x21C9CA0", VA = "0x1821CB2A0")] 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: 0x06008263 RID: 33379 RVA: 0x001BD38C File Offset: 0x001BB58C [Token(Token = "0x6008263")] [Address(RVA = "0x21CDF90", Offset = "0x21CC990", VA = "0x1821CDF90")] 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: 0x06008264 RID: 33380 RVA: 0x001BD63C File Offset: 0x001BB83C [Token(Token = "0x6008264")] [Address(RVA = "0x21CB260", Offset = "0x21C9C60", VA = "0x1821CB260")] private static uint MultiplyMontyNIsOne(uint x, uint y, uint m, uint mDash) { uint num = x * y; uint num2 = x * mDash * m; return y; } // Token: 0x06008265 RID: 33381 RVA: 0x001BD654 File Offset: 0x001BB854 [Token(Token = "0x6008265")] [Address(RVA = "0x21CB9A0", Offset = "0x21CA3A0", VA = "0x1821CB9A0")] 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: 0x06008266 RID: 33382 RVA: 0x001BD784 File Offset: 0x001BB984 [Token(Token = "0x6008266")] [Address(RVA = "0x21CE7D0", Offset = "0x21CD1D0", VA = "0x1821CE7D0")] 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: 0x06008267 RID: 33383 RVA: 0x001BD808 File Offset: 0x001BBA08 [Token(Token = "0x6008267")] [Address(RVA = "0x21CBCA0", Offset = "0x21CA6A0", VA = "0x1821CBCA0")] 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: 0x06008268 RID: 33384 RVA: 0x001BD840 File Offset: 0x001BBA40 [Token(Token = "0x6008268")] [Address(RVA = "0x21CBD30", Offset = "0x21CA730", VA = "0x1821CBD30")] public BigInteger NextProbablePrime() { BigInteger two = BigInteger.Two; int num = this.CompareTo(two); BigInteger bigInteger = this.Inc(); int num2 = 0; BigInteger bigInteger2 = bigInteger.SetBit(num2); SecureRandom randomSource = BigInteger.RandomSource; int num3 = 0; if (!bigInteger2.CheckProbablePrime(100, randomSource, num3 != 0)) { BigInteger two2 = BigInteger.Two; BigInteger bigInteger3 = bigInteger2.Add(two2); } return bigInteger2; } // Token: 0x06008269 RID: 33385 RVA: 0x001BD8B0 File Offset: 0x001BBAB0 [Token(Token = "0x6008269")] [Address(RVA = "0x21CBEF0", Offset = "0x21CA8F0", VA = "0x1821CBEF0")] public BigInteger Not() { return this.Inc().Negate(); } // Token: 0x0600826A RID: 33386 RVA: 0x001BD8D0 File Offset: 0x001BBAD0 [Token(Token = "0x600826A")] [Address(RVA = "0x21CC2B0", Offset = "0x21CACB0", VA = "0x1821CC2B0")] 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: 0x0600826B RID: 33387 RVA: 0x001BD944 File Offset: 0x001BBB44 [Token(Token = "0x600826B")] [Address(RVA = "0x21CC4B0", Offset = "0x21CAEB0", VA = "0x1821CC4B0")] public static BigInteger ProbablePrime(int bitLength, Random random) { return new BigInteger(bitLength, 100, random); } // Token: 0x0600826C RID: 33388 RVA: 0x001BD95C File Offset: 0x001BBB5C [Token(Token = "0x600826C")] [Address(RVA = "0x21CCB90", Offset = "0x21CB590", VA = "0x1821CCB90")] private int Remainder(int m) { int[] array = this.magnitude; int num = 0; int length = array.Length; if (num < length) { num++; } return num; } // Token: 0x0600826D RID: 33389 RVA: 0x001BD988 File Offset: 0x001BBB88 [Token(Token = "0x600826D")] [Address(RVA = "0x21CCEB0", Offset = "0x21CB8B0", VA = "0x1821CCEB0")] 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: 0x0600826E RID: 33390 RVA: 0x001BDB64 File Offset: 0x001BBD64 [Token(Token = "0x600826E")] [Address(RVA = "0x21CCC00", Offset = "0x21CB600", VA = "0x1821CCC00")] public BigInteger Remainder(BigInteger n) { /* An exception occurred when decompiling this method (0600826E) 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: 0x0600826F RID: 33391 RVA: 0x001BDC60 File Offset: 0x001BBE60 [Token(Token = "0x600826F")] [Address(RVA = "0x21C9570", Offset = "0x21C7F70", VA = "0x1821C9570")] 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: 0x06008270 RID: 33392 RVA: 0x001BDCBC File Offset: 0x001BBEBC [Token(Token = "0x6008270")] [Address(RVA = "0x21C7AB0", Offset = "0x21C64B0", VA = "0x1821C7AB0")] 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: 0x06008271 RID: 33393 RVA: 0x001BDD2C File Offset: 0x001BBF2C [Token(Token = "0x6008271")] [Address(RVA = "0x21CCA90", Offset = "0x21CB490", VA = "0x1821CCA90")] 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: 0x06008272 RID: 33394 RVA: 0x001BDD98 File Offset: 0x001BBF98 [Token(Token = "0x6008272")] [Address(RVA = "0x21CD6B0", Offset = "0x21CC0B0", VA = "0x1821CD6B0")] 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: 0x06008273 RID: 33395 RVA: 0x001BDE2C File Offset: 0x001BC02C [Token(Token = "0x6008273")] [Address(RVA = "0x21CD650", Offset = "0x21CC050", VA = "0x1821CD650")] private static int ShiftLeftOneInPlace(int[] x, int carry) { int length = x.Length; x[0] = x; return carry; } // Token: 0x06008274 RID: 33396 RVA: 0x001BDE54 File Offset: 0x001BC054 [Token(Token = "0x6008274")] [Address(RVA = "0x21CD8D0", Offset = "0x21CC2D0", VA = "0x1821CD8D0")] 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: 0x06008275 RID: 33397 RVA: 0x001BDED0 File Offset: 0x001BC0D0 [Token(Token = "0x6008275")] [Address(RVA = "0x21CDA40", Offset = "0x21CC440", VA = "0x1821CDA40")] 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: 0x06008276 RID: 33398 RVA: 0x001BDF70 File Offset: 0x001BC170 [Token(Token = "0x6008276")] [Address(RVA = "0x21CDBF0", Offset = "0x21CC5F0", VA = "0x1821CDBF0")] 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: 0x06008277 RID: 33399 RVA: 0x001BDFC4 File Offset: 0x001BC1C4 [Token(Token = "0x6008277")] [Address(RVA = "0x21CDCC0", Offset = "0x21CC6C0", VA = "0x1821CDCC0")] 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: 0x17001529 RID: 5417 // (get) Token: 0x06008278 RID: 33400 RVA: 0x001BE0C4 File Offset: 0x001BC2C4 [Token(Token = "0x17001529")] public int SignValue { [Token(Token = "0x6008278")] [Address(RVA = "0x3EE8D0", Offset = "0x3ED2D0", VA = "0x1803EE8D0")] get { return this.sign; } } // Token: 0x06008279 RID: 33401 RVA: 0x001BE0D8 File Offset: 0x001BC2D8 [Token(Token = "0x6008279")] [Address(RVA = "0x21CE950", Offset = "0x21CD350", VA = "0x1821CE950")] 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: 0x0600827A RID: 33402 RVA: 0x001BE114 File Offset: 0x001BC314 [Token(Token = "0x600827A")] [Address(RVA = "0x21CEA50", Offset = "0x21CD450", VA = "0x1821CEA50")] 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: 0x0600827B RID: 33403 RVA: 0x001BE1A4 File Offset: 0x001BC3A4 [Token(Token = "0x600827B")] [Address(RVA = "0x21D36D0", Offset = "0x21D20D0", VA = "0x1821D36D0")] private static int[] doSubBigLil(int[] bigMag, int[] lilMag) { int[] array; return array; } // Token: 0x0600827C RID: 33404 RVA: 0x001BE1BC File Offset: 0x001BC3BC [Token(Token = "0x600827C")] [Address(RVA = "0x21CED40", Offset = "0x21CD740", VA = "0x1821CED40")] public byte[] ToByteArray() { int num = 0; return this.ToByteArray(num != 0); } // Token: 0x0600827D RID: 33405 RVA: 0x001BE1D4 File Offset: 0x001BC3D4 [Token(Token = "0x600827D")] [Address(RVA = "0x21CED30", Offset = "0x21CD730", VA = "0x1821CED30")] public byte[] ToByteArrayUnsigned() { return this.ToByteArray(true); } // Token: 0x0600827E RID: 33406 RVA: 0x001BE1E8 File Offset: 0x001BC3E8 [Token(Token = "0x600827E")] [Address(RVA = "0x21CED50", Offset = "0x21CD750", VA = "0x1821CED50")] 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: 0x0600827F RID: 33407 RVA: 0x001BE39C File Offset: 0x001BC59C [Token(Token = "0x600827F")] [Address(RVA = "0x21CF240", Offset = "0x21CDC40", VA = "0x1821CF240", Slot = "3")] public override string ToString() { return this.ToString(10); } // Token: 0x06008280 RID: 33408 RVA: 0x001BE3B4 File Offset: 0x001BC5B4 [Token(Token = "0x6008280")] [Address(RVA = "0x21CF250", Offset = "0x21CDC50", VA = "0x1821CF250")] public string ToString(int radix) { /* An exception occurred when decompiling this method (06008280) 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: 0x06008281 RID: 33409 RVA: 0x001BE51C File Offset: 0x001BC71C [Token(Token = "0x6008281")] [Address(RVA = "0x21CF9E0", Offset = "0x21CE3E0", VA = "0x1821CF9E0")] 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: 0x06008282 RID: 33410 RVA: 0x001BE5A4 File Offset: 0x001BC7A4 [Token(Token = "0x6008282")] [Address(RVA = "0x21C6880", Offset = "0x21C5280", VA = "0x1821C6880")] 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: 0x06008283 RID: 33411 RVA: 0x001BE5D0 File Offset: 0x001BC7D0 [Token(Token = "0x6008283")] [Address(RVA = "0x21C7360", Offset = "0x21C5D60", VA = "0x1821C7360")] 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: 0x06008284 RID: 33412 RVA: 0x001BE65C File Offset: 0x001BC85C [Token(Token = "0x6008284")] [Address(RVA = "0x21C7540", Offset = "0x21C5F40", VA = "0x1821C7540")] private static BigInteger CreateValueOf(long value) { return BigInteger.CreateUValueOf((ulong)value); } // Token: 0x06008285 RID: 33413 RVA: 0x001BE688 File Offset: 0x001BC888 [Token(Token = "0x6008285")] [Address(RVA = "0x21CFC50", Offset = "0x21CE650", VA = "0x1821CFC50")] 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: 0x06008286 RID: 33414 RVA: 0x001BE6BC File Offset: 0x001BC8BC [Token(Token = "0x6008286")] [Address(RVA = "0x21C8D10", Offset = "0x21C7710", VA = "0x1821C8D10")] public int GetLowestSetBit() { if (this.sign != 0) { return this.GetLowestSetBitMaskFirst(-1); } return -1; } // Token: 0x06008287 RID: 33415 RVA: 0x001BE6DC File Offset: 0x001BC8DC [Token(Token = "0x6008287")] [Address(RVA = "0x21C8C70", Offset = "0x21C7670", VA = "0x1821C8C70")] 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: 0x06008288 RID: 33416 RVA: 0x001BE744 File Offset: 0x001BC944 [Token(Token = "0x6008288")] [Address(RVA = "0x21CEC00", Offset = "0x21CD600", VA = "0x1821CEC00")] 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: 0x06008289 RID: 33417 RVA: 0x001BE784 File Offset: 0x001BC984 [Token(Token = "0x6008289")] [Address(RVA = "0x21CBF20", Offset = "0x21CA920", VA = "0x1821CBF20")] 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: 0x0600828A RID: 33418 RVA: 0x001BE8B8 File Offset: 0x001BCAB8 [Token(Token = "0x600828A")] [Address(RVA = "0x21CFD40", Offset = "0x21CE740", VA = "0x1821CFD40")] 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: 0x0600828B RID: 33419 RVA: 0x001BE9EC File Offset: 0x001BCBEC [Token(Token = "0x600828B")] [Address(RVA = "0x21CD530", Offset = "0x21CBF30", VA = "0x1821CD530")] 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: 0x0600828C RID: 33420 RVA: 0x001BEA40 File Offset: 0x001BCC40 [Token(Token = "0x600828C")] [Address(RVA = "0x21C6EF0", Offset = "0x21C58F0", VA = "0x1821C6EF0")] 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: 0x0600828D RID: 33421 RVA: 0x001BEAA0 File Offset: 0x001BCCA0 [Token(Token = "0x600828D")] [Address(RVA = "0x21C8840", Offset = "0x21C7240", VA = "0x1821C8840")] 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: 0x0600828E RID: 33422 RVA: 0x001BEB14 File Offset: 0x001BCD14 [Token(Token = "0x600828E")] [Address(RVA = "0x21C89A0", Offset = "0x21C73A0", VA = "0x1821C89A0")] 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: 0x04005BE1 RID: 23521 [Token(Token = "0x4005BE1")] internal static readonly int[][] primeLists; // Token: 0x04005BE2 RID: 23522 [Token(Token = "0x4005BE2")] internal static readonly int[] primeProducts; // Token: 0x04005BE3 RID: 23523 [Token(Token = "0x4005BE3")] private const long IMASK = 4294967295L; // Token: 0x04005BE4 RID: 23524 [Token(Token = "0x4005BE4")] private const ulong UIMASK = 4294967295UL; // Token: 0x04005BE5 RID: 23525 [Token(Token = "0x4005BE5")] private static readonly int[] ZeroMagnitude; // Token: 0x04005BE6 RID: 23526 [Token(Token = "0x4005BE6")] private static readonly byte[] ZeroEncoding; // Token: 0x04005BE7 RID: 23527 [Token(Token = "0x4005BE7")] private static readonly BigInteger[] SMALL_CONSTANTS; // Token: 0x04005BE8 RID: 23528 [Token(Token = "0x4005BE8")] public static readonly BigInteger Zero; // Token: 0x04005BE9 RID: 23529 [Token(Token = "0x4005BE9")] public static readonly BigInteger One; // Token: 0x04005BEA RID: 23530 [Token(Token = "0x4005BEA")] public static readonly BigInteger Two; // Token: 0x04005BEB RID: 23531 [Token(Token = "0x4005BEB")] public static readonly BigInteger Three; // Token: 0x04005BEC RID: 23532 [Token(Token = "0x4005BEC")] public static readonly BigInteger Ten; // Token: 0x04005BED RID: 23533 [Token(Token = "0x4005BED")] private static readonly byte[] BitLengthTable; // Token: 0x04005BEE RID: 23534 [Token(Token = "0x4005BEE")] private const int chunk2 = 1; // Token: 0x04005BEF RID: 23535 [Token(Token = "0x4005BEF")] private const int chunk8 = 1; // Token: 0x04005BF0 RID: 23536 [Token(Token = "0x4005BF0")] private const int chunk10 = 19; // Token: 0x04005BF1 RID: 23537 [Token(Token = "0x4005BF1")] private const int chunk16 = 16; // Token: 0x04005BF2 RID: 23538 [Token(Token = "0x4005BF2")] private static readonly BigInteger radix2; // Token: 0x04005BF3 RID: 23539 [Token(Token = "0x4005BF3")] private static readonly BigInteger radix2E; // Token: 0x04005BF4 RID: 23540 [Token(Token = "0x4005BF4")] private static readonly BigInteger radix8; // Token: 0x04005BF5 RID: 23541 [Token(Token = "0x4005BF5")] private static readonly BigInteger radix8E; // Token: 0x04005BF6 RID: 23542 [Token(Token = "0x4005BF6")] private static readonly BigInteger radix10; // Token: 0x04005BF7 RID: 23543 [Token(Token = "0x4005BF7")] private static readonly BigInteger radix10E; // Token: 0x04005BF8 RID: 23544 [Token(Token = "0x4005BF8")] private static readonly BigInteger radix16; // Token: 0x04005BF9 RID: 23545 [Token(Token = "0x4005BF9")] private static readonly BigInteger radix16E; // Token: 0x04005BFA RID: 23546 [Token(Token = "0x4005BFA")] private static readonly SecureRandom RandomSource; // Token: 0x04005BFB RID: 23547 [Token(Token = "0x4005BFB")] private static readonly int[] ExpWindowThresholds; // Token: 0x04005BFC RID: 23548 [Token(Token = "0x4005BFC")] private const int BitsPerByte = 8; // Token: 0x04005BFD RID: 23549 [Token(Token = "0x4005BFD")] private const int BitsPerInt = 32; // Token: 0x04005BFE RID: 23550 [Token(Token = "0x4005BFE")] private const int BytesPerInt = 4; // Token: 0x04005BFF RID: 23551 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4005BFF")] private int[] magnitude; // Token: 0x04005C00 RID: 23552 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x4005C00")] private int sign; // Token: 0x04005C01 RID: 23553 [global::Cpp2IlInjected.FieldOffset(Offset = "0x1C")] [Token(Token = "0x4005C01")] private int nBits; // Token: 0x04005C02 RID: 23554 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x4005C02")] private int nBitLength; // Token: 0x04005C03 RID: 23555 [global::Cpp2IlInjected.FieldOffset(Offset = "0x24")] [Token(Token = "0x4005C03")] private int mQuote; } }