1334 lines
43 KiB
C#
1334 lines
43 KiB
C#
using System;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Text;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC
|
|
{
|
|
// Token: 0x02001A04 RID: 6660
|
|
[Token(Token = "0x2001A04")]
|
|
internal class LongArray
|
|
{
|
|
// Token: 0x0600A14D RID: 41293 RVA: 0x002288CC File Offset: 0x00226ACC
|
|
[Token(Token = "0x600A14D")]
|
|
[Address(RVA = "0x1F596B0", Offset = "0x1F584B0", VA = "0x181F596B0")]
|
|
public LongArray(int intLen)
|
|
{
|
|
long[] array = new long[intLen];
|
|
this.m_ints = array;
|
|
}
|
|
|
|
// Token: 0x0600A14E RID: 41294 RVA: 0x002288F0 File Offset: 0x00226AF0
|
|
[Token(Token = "0x600A14E")]
|
|
[Address(RVA = "0x3FFB80", Offset = "0x3FE980", VA = "0x1803FFB80")]
|
|
public LongArray(long[] ints)
|
|
{
|
|
this.m_ints = ints;
|
|
}
|
|
|
|
// Token: 0x0600A14F RID: 41295 RVA: 0x0022890C File Offset: 0x00226B0C
|
|
[Token(Token = "0x600A14F")]
|
|
[Address(RVA = "0x1F593B0", Offset = "0x1F581B0", VA = "0x181F593B0")]
|
|
public LongArray(long[] ints, int off, int len)
|
|
{
|
|
if (off == 0 && len == ints.Length)
|
|
{
|
|
this.m_ints = ints;
|
|
}
|
|
long[] array = new long[len];
|
|
int num = 0;
|
|
this.m_ints = array;
|
|
Array.Copy(ints, len, array, num, len);
|
|
}
|
|
|
|
// Token: 0x0600A150 RID: 41296 RVA: 0x00228954 File Offset: 0x00226B54
|
|
[Token(Token = "0x600A150")]
|
|
[Address(RVA = "0x1F59460", Offset = "0x1F58260", VA = "0x181F59460")]
|
|
public LongArray(BigInteger bigInt)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600A150)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.LongArray::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_A8:
|
|
stloc:ArgumentException(var_15_B7, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("invalid F2m field value"), ldstr:string("bigInt")))
|
|
}
|
|
|
|
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: 0x0600A151 RID: 41297 RVA: 0x00228A1C File Offset: 0x00226C1C
|
|
[Token(Token = "0x600A151")]
|
|
[Address(RVA = "0x1F53920", Offset = "0x1F52720", VA = "0x181F53920")]
|
|
internal void CopyTo(long[] z, int zOff)
|
|
{
|
|
long[] ints = this.m_ints;
|
|
int length = ints.Length;
|
|
int num = 0;
|
|
Array.Copy(ints, num, z, zOff, length);
|
|
}
|
|
|
|
// Token: 0x0600A152 RID: 41298 RVA: 0x00228A4C File Offset: 0x00226C4C
|
|
[Token(Token = "0x600A152")]
|
|
[Address(RVA = "0x1F553F0", Offset = "0x1F541F0", VA = "0x181F553F0")]
|
|
public bool IsOne()
|
|
{
|
|
int length = this.m_ints.Length;
|
|
if ("{il2cpp array field local1->}" == (ulong)1L && ((uint)1 >= (uint)length || "{il2cpp array field local1->}" == (ulong)0L))
|
|
{
|
|
return true;
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600A153 RID: 41299 RVA: 0x00228A88 File Offset: 0x00226C88
|
|
[Token(Token = "0x600A153")]
|
|
[Address(RVA = "0x1F55460", Offset = "0x1F54260", VA = "0x181F55460")]
|
|
public bool IsZero()
|
|
{
|
|
long[] ints = this.m_ints;
|
|
int num = 0;
|
|
int length = ints.Length;
|
|
if (num < length)
|
|
{
|
|
if ("{il2cpp array field local1->}" == (ulong)0L)
|
|
{
|
|
num++;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
// Token: 0x0600A154 RID: 41300 RVA: 0x00228AC0 File Offset: 0x00226CC0
|
|
[Token(Token = "0x600A154")]
|
|
[Address(RVA = "0x1F541C0", Offset = "0x1F52FC0", VA = "0x181F541C0")]
|
|
public int GetUsedLength()
|
|
{
|
|
int num = this.m_ints.Length;
|
|
long[] ints = this.m_ints;
|
|
int num2 = ints.Length;
|
|
num = Math.Min(num, num2);
|
|
int length = ints.Length;
|
|
if ("{il2cpp array field local3->}" == (ulong)0L)
|
|
{
|
|
int num3 = num - 1;
|
|
num2 = num;
|
|
if ("{il2cpp array field local3->}" == (ulong)0L)
|
|
{
|
|
}
|
|
return num2;
|
|
}
|
|
int num4 = num - 1;
|
|
num2 = num;
|
|
while ("{il2cpp array field local3->}" == (ulong)0L)
|
|
{
|
|
}
|
|
return num2;
|
|
}
|
|
|
|
// Token: 0x0600A155 RID: 41301 RVA: 0x00228B3C File Offset: 0x00226D3C
|
|
[Token(Token = "0x600A155")]
|
|
[Address(RVA = "0x1F540B0", Offset = "0x1F52EB0", VA = "0x181F540B0")]
|
|
public int GetUsedLengthFrom(int from)
|
|
{
|
|
long[] ints = this.m_ints;
|
|
int num = ints.Length;
|
|
int num2 = Math.Min(from, num);
|
|
num = num2;
|
|
int length = ints.Length;
|
|
if ("{il2cpp array field local2->}" != (ulong)0L)
|
|
{
|
|
int num3 = num - 1;
|
|
num2 = num;
|
|
while ("{il2cpp array field local2->}" == (ulong)0L)
|
|
{
|
|
}
|
|
return num2;
|
|
}
|
|
int num4 = num - 1;
|
|
if ("{il2cpp array field local2->}" == (ulong)0L)
|
|
{
|
|
return 0;
|
|
}
|
|
return from;
|
|
}
|
|
|
|
// Token: 0x0600A156 RID: 41302 RVA: 0x00228BA8 File Offset: 0x00226DA8
|
|
[Token(Token = "0x600A156")]
|
|
[Address(RVA = "0x1F53AB0", Offset = "0x1F528B0", VA = "0x181F53AB0")]
|
|
public int Degree()
|
|
{
|
|
long[] ints = this.m_ints;
|
|
int length = ints.Length;
|
|
if (length != 0)
|
|
{
|
|
int num = LongArray.BitLength(ints[length]);
|
|
return num + length;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
// Token: 0x0600A157 RID: 41303 RVA: 0x00228BE4 File Offset: 0x00226DE4
|
|
[Token(Token = "0x600A157")]
|
|
[Address(RVA = "0x1F539F0", Offset = "0x1F527F0", VA = "0x181F539F0")]
|
|
private int DegreeFrom(int limit)
|
|
{
|
|
if (limit != 0)
|
|
{
|
|
int num = LongArray.BitLength(this.m_ints[limit]);
|
|
return num + limit;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
// Token: 0x0600A158 RID: 41304 RVA: 0x00228C14 File Offset: 0x00226E14
|
|
[Token(Token = "0x600A158")]
|
|
[Address(RVA = "0x1F53710", Offset = "0x1F52510", VA = "0x181F53710")]
|
|
private static int BitLength(long w)
|
|
{
|
|
byte[] bitLengths = LongArray.BitLengths;
|
|
byte[] bitLengths2 = LongArray.BitLengths;
|
|
byte[] bitLengths3 = LongArray.BitLengths;
|
|
byte[] bitLengths4 = LongArray.BitLengths;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600A159 RID: 41305 RVA: 0x00228C40 File Offset: 0x00226E40
|
|
[Token(Token = "0x600A159")]
|
|
[Address(RVA = "0x1F58860", Offset = "0x1F57660", VA = "0x181F58860")]
|
|
private long[] ResizedInts(int newLen)
|
|
{
|
|
long[] array = new long[newLen];
|
|
long[] ints = this.m_ints;
|
|
int num = Math.Min(ints.Length, newLen);
|
|
int num2 = 0;
|
|
int num3 = 0;
|
|
Array.Copy(ints, num3, array, num2, num);
|
|
return array;
|
|
}
|
|
|
|
// Token: 0x0600A15A RID: 41306 RVA: 0x00228C80 File Offset: 0x00226E80
|
|
[Token(Token = "0x600A15A")]
|
|
[Address(RVA = "0x1F58DE0", Offset = "0x1F57BE0", VA = "0x181F58DE0")]
|
|
public BigInteger ToBigInteger()
|
|
{
|
|
int num = this.GetUsedLength();
|
|
if (num != 0)
|
|
{
|
|
long[] ints = this.m_ints;
|
|
num--;
|
|
long num2 = ints[num];
|
|
byte[] array = new byte[8];
|
|
int num3 = 0;
|
|
int num4 = 0;
|
|
if (num4 == 0)
|
|
{
|
|
}
|
|
num3++;
|
|
byte[] array2 = new byte[0];
|
|
if (num3 > 0)
|
|
{
|
|
num3++;
|
|
}
|
|
long num5 = this.m_ints[num4];
|
|
num3++;
|
|
return new BigInteger(1, array2);
|
|
}
|
|
return BigInteger.Zero;
|
|
}
|
|
|
|
// Token: 0x0600A15B RID: 41307 RVA: 0x00228D00 File Offset: 0x00226F00
|
|
[Token(Token = "0x600A15B")]
|
|
[Address(RVA = "0x1F58910", Offset = "0x1F57710", VA = "0x181F58910")]
|
|
private static long ShiftUp(long[] x, int xOff, int count, int shift)
|
|
{
|
|
long num;
|
|
if (count > 0)
|
|
{
|
|
num = x[shift];
|
|
x[0] = num;
|
|
}
|
|
return num;
|
|
}
|
|
|
|
// Token: 0x0600A15C RID: 41308 RVA: 0x00228D28 File Offset: 0x00226F28
|
|
[Token(Token = "0x600A15C")]
|
|
[Address(RVA = "0x1F589B0", Offset = "0x1F577B0", VA = "0x181F589B0")]
|
|
private static long ShiftUp(long[] x, int xOff, long[] z, int zOff, int count, int shift)
|
|
{
|
|
long num;
|
|
z[0] = num;
|
|
return num;
|
|
}
|
|
|
|
// Token: 0x0600A15D RID: 41309 RVA: 0x00228D44 File Offset: 0x00226F44
|
|
[Token(Token = "0x600A15D")]
|
|
[Address(RVA = "0x1F530D0", Offset = "0x1F51ED0", VA = "0x181F530D0")]
|
|
public LongArray AddOne()
|
|
{
|
|
if (this.m_ints.Length != 0)
|
|
{
|
|
int num = this.GetUsedLength();
|
|
num = Math.Max(1, num);
|
|
long[] array = this.ResizedInts(num);
|
|
}
|
|
LongArray longArray;
|
|
longArray.m_ints = new long[] { (long)((ulong)1L) };
|
|
return longArray;
|
|
}
|
|
|
|
// Token: 0x0600A15E RID: 41310 RVA: 0x00228D98 File Offset: 0x00226F98
|
|
[Token(Token = "0x600A15E")]
|
|
[Address(RVA = "0x1F531E0", Offset = "0x1F51FE0", VA = "0x181F531E0")]
|
|
private void AddShiftedByBitsSafe(LongArray other, int otherDegree, int bits)
|
|
{
|
|
long[] ints = this.m_ints;
|
|
long[] ints2 = other.m_ints;
|
|
int num = 0;
|
|
long num2 = LongArray.AddShiftedUp(ints, bits, ints2, num, otherDegree, bits);
|
|
long[] ints3 = this.m_ints;
|
|
}
|
|
|
|
// Token: 0x0600A15F RID: 41311 RVA: 0x00228DD0 File Offset: 0x00226FD0
|
|
[Token(Token = "0x600A15F")]
|
|
[Address(RVA = "0x1F534D0", Offset = "0x1F522D0", VA = "0x181F534D0")]
|
|
private static long AddShiftedUp(long[] x, int xOff, long[] y, int yOff, int count, int shift)
|
|
{
|
|
return y[x];
|
|
}
|
|
|
|
// Token: 0x0600A160 RID: 41312 RVA: 0x00228DEC File Offset: 0x00226FEC
|
|
[Token(Token = "0x600A160")]
|
|
[Address(RVA = "0x1F53400", Offset = "0x1F52200", VA = "0x181F53400")]
|
|
private static long AddShiftedDown(long[] x, int xOff, long[] y, int yOff, int count, int shift)
|
|
{
|
|
return y[x];
|
|
}
|
|
|
|
// Token: 0x0600A161 RID: 41313 RVA: 0x00228E08 File Offset: 0x00227008
|
|
[Token(Token = "0x600A161")]
|
|
[Address(RVA = "0x1F53320", Offset = "0x1F52120", VA = "0x181F53320")]
|
|
public void AddShiftedByWords(LongArray other, int words)
|
|
{
|
|
int num = 0;
|
|
int usedLength = other.GetUsedLength();
|
|
if (usedLength != 0)
|
|
{
|
|
long[] ints = this.m_ints;
|
|
if (num > ints.Length)
|
|
{
|
|
long[] array = this.ResizedInts(num);
|
|
this.m_ints = array;
|
|
}
|
|
long[] ints2 = other.m_ints;
|
|
int num2 = 0;
|
|
LongArray.Add(ints, words, ints2, num2, usedLength);
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600A162 RID: 41314 RVA: 0x00228E60 File Offset: 0x00227060
|
|
[Token(Token = "0x600A162")]
|
|
[Address(RVA = "0x1F53680", Offset = "0x1F52480", VA = "0x181F53680")]
|
|
private static void Add(long[] x, int xOff, long[] y, int yOff, int count)
|
|
{
|
|
}
|
|
|
|
// Token: 0x0600A163 RID: 41315 RVA: 0x00228E74 File Offset: 0x00227074
|
|
[Token(Token = "0x600A163")]
|
|
[Address(RVA = "0x1F535A0", Offset = "0x1F523A0", VA = "0x181F535A0")]
|
|
private static void Add(long[] x, int xOff, long[] y, int yOff, long[] z, int zOff, int count)
|
|
{
|
|
}
|
|
|
|
// Token: 0x0600A164 RID: 41316 RVA: 0x00228E88 File Offset: 0x00227088
|
|
[Token(Token = "0x600A164")]
|
|
[Address(RVA = "0x1F52FF0", Offset = "0x1F51DF0", VA = "0x181F52FF0")]
|
|
private static void AddBoth(long[] x, int xOff, long[] y1, int y1Off, long[] y2, int y2Off, int count)
|
|
{
|
|
}
|
|
|
|
// Token: 0x0600A165 RID: 41317 RVA: 0x00228E9C File Offset: 0x0022709C
|
|
[Token(Token = "0x600A165")]
|
|
[Address(RVA = "0x1F53B60", Offset = "0x1F52960", VA = "0x181F53B60")]
|
|
private static void Distribute(long[] x, int src, int dst1, int dst2, int count)
|
|
{
|
|
int num = x.Length;
|
|
num = dst1 - dst1;
|
|
}
|
|
|
|
// Token: 0x17001975 RID: 6517
|
|
// (get) Token: 0x0600A166 RID: 41318 RVA: 0x00228EC0 File Offset: 0x002270C0
|
|
[Token(Token = "0x17001975")]
|
|
public int Length
|
|
{
|
|
[Token(Token = "0x600A166")]
|
|
[Address(RVA = "0x40DB30", Offset = "0x40C930", VA = "0x18040DB30")]
|
|
get
|
|
{
|
|
return this.m_ints.Length;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600A167 RID: 41319 RVA: 0x00228EE0 File Offset: 0x002270E0
|
|
[Token(Token = "0x600A167")]
|
|
[Address(RVA = "0x1F53FA0", Offset = "0x1F52DA0", VA = "0x181F53FA0")]
|
|
private static void FlipWord(long[] buf, int off, int bit, long word)
|
|
{
|
|
if (bit != 0)
|
|
{
|
|
int num = off + 1;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600A168 RID: 41320 RVA: 0x00228EFC File Offset: 0x002270FC
|
|
[Token(Token = "0x600A168")]
|
|
[Address(RVA = "0x1F58D30", Offset = "0x1F57B30", VA = "0x181F58D30")]
|
|
public bool TestBitZero()
|
|
{
|
|
if (this.m_ints.Length == 0)
|
|
{
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600A169 RID: 41321 RVA: 0x00228F20 File Offset: 0x00227120
|
|
[Token(Token = "0x600A169")]
|
|
[Address(RVA = "0x1F58D80", Offset = "0x1F57B80", VA = "0x181F58D80")]
|
|
private static bool TestBit(long[] buf, int off, int n)
|
|
{
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600A16A RID: 41322 RVA: 0x00228F34 File Offset: 0x00227134
|
|
[Token(Token = "0x600A16A")]
|
|
[Address(RVA = "0x1F53D60", Offset = "0x1F52B60", VA = "0x181F53D60")]
|
|
private static void FlipBit(long[] buf, int off, int n)
|
|
{
|
|
}
|
|
|
|
// Token: 0x0600A16B RID: 41323 RVA: 0x00228F48 File Offset: 0x00227148
|
|
[Token(Token = "0x600A16B")]
|
|
[Address(RVA = "0x1F57340", Offset = "0x1F56140", VA = "0x181F57340")]
|
|
private static void MultiplyWord(long a, long[] b, int bLen, long[] c, int cOff)
|
|
{
|
|
while (c != c.Length)
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600A16C RID: 41324 RVA: 0x00228F68 File Offset: 0x00227168
|
|
[Token(Token = "0x600A16C")]
|
|
[Address(RVA = "0x1F562F0", Offset = "0x1F550F0", VA = "0x181F562F0")]
|
|
public LongArray ModMultiplyLD(LongArray other, int m, int[] ks)
|
|
{
|
|
int num = this.Degree();
|
|
if (num != 0)
|
|
{
|
|
int num2 = other.Degree();
|
|
if (num2 != 0)
|
|
{
|
|
if (num > num2)
|
|
{
|
|
num = num2;
|
|
}
|
|
long[] ints2;
|
|
if (other != (ulong)1L)
|
|
{
|
|
int[] array = new int[16];
|
|
long[] array2 = new long[num];
|
|
array[0] = num;
|
|
long[] ints = other.m_ints;
|
|
int num3 = 0;
|
|
int num4 = 0;
|
|
Array.Copy(ints, num4, array2, num, ks);
|
|
num += num;
|
|
array[0] = num;
|
|
uint num5;
|
|
if (num5 != (uint)1)
|
|
{
|
|
LongArray.Add(array2, num, array2, num, array2, num, num);
|
|
}
|
|
if ("{il2cpp array field local10->}" == (ulong)2L || "{il2cpp array field local10->}" == num3)
|
|
{
|
|
}
|
|
ulong num7;
|
|
long num6 = LongArray.ShiftUp(array2, num, array2, num, num, (int)num7);
|
|
num5 += (uint)1;
|
|
long[] array3 = new long[array2.Length];
|
|
int length = array2.Length;
|
|
int num8 = 0;
|
|
int num9 = 0;
|
|
ulong num11;
|
|
long num10 = LongArray.ShiftUp(array2, num9, array3, num8, length, (int)num11);
|
|
ints2 = this.m_ints;
|
|
long[] array4 = new long[0];
|
|
uint num12;
|
|
if (other > num12)
|
|
{
|
|
int length2 = array.Length;
|
|
long num13 = ints2[(int)num12];
|
|
int num14 = array[(int)num13];
|
|
int num15 = array[(int)num13];
|
|
uint num16 = num12 - 1U;
|
|
LongArray.AddBoth(array4, (int)num16, array2, num14, array3, num15, num);
|
|
num12 += (uint)2;
|
|
}
|
|
if (other != 0)
|
|
{
|
|
int length3 = array.Length;
|
|
long num17 = ints2[num3];
|
|
int num18 = array[(int)num17];
|
|
int num19 = array[(int)num17];
|
|
LongArray.AddBoth(array4, num3, array2, num18, array3, num19, num);
|
|
num3 += 2;
|
|
}
|
|
uint num20;
|
|
if (num20 > (uint)0)
|
|
{
|
|
}
|
|
LongArray longArray;
|
|
return longArray;
|
|
}
|
|
if (ints2 != (ulong)1L)
|
|
{
|
|
long[] array5 = new long[0];
|
|
}
|
|
}
|
|
}
|
|
return this;
|
|
}
|
|
|
|
// Token: 0x0600A16D RID: 41325 RVA: 0x00229110 File Offset: 0x00227310
|
|
[Token(Token = "0x600A16D")]
|
|
[Address(RVA = "0x1F56960", Offset = "0x1F55760", VA = "0x181F56960")]
|
|
public LongArray ModMultiply(LongArray other, int m, int[] ks)
|
|
{
|
|
int num = this.Degree();
|
|
if (num != 0)
|
|
{
|
|
int num2 = other.Degree();
|
|
if (num2 != 0)
|
|
{
|
|
if (num > num2)
|
|
{
|
|
num = num2;
|
|
}
|
|
int length3;
|
|
if (other != (ulong)1L)
|
|
{
|
|
int[] array = new int[16];
|
|
long[] array2 = new long[num];
|
|
array[0] = num;
|
|
long[] ints = other.m_ints;
|
|
int num3 = 0;
|
|
Array.Copy(ints, num3, array2, num, ks);
|
|
num += num;
|
|
array[0] = num;
|
|
uint num4;
|
|
if (num4 != (uint)1)
|
|
{
|
|
LongArray.Add(array2, num, array2, num, array2, num, num);
|
|
}
|
|
if ("{il2cpp array field local10->}" == (ulong)2L || "{il2cpp array field local10->}" == (ulong)0L)
|
|
{
|
|
}
|
|
int num5 = 0;
|
|
ulong num7;
|
|
long num6 = LongArray.ShiftUp(array2, num, array2, num, num, (int)num7);
|
|
num4 += (uint)1;
|
|
long[] array3 = new long[array2.Length];
|
|
int length = array2.Length;
|
|
int num8 = 0;
|
|
int num9 = 0;
|
|
ulong num11;
|
|
long num10 = LongArray.ShiftUp(array2, num9, array3, num8, length, (int)num11);
|
|
long[] ints2 = this.m_ints;
|
|
long[] array4 = new long[num9];
|
|
long num12 = ints2[num5];
|
|
int length2 = array.Length;
|
|
int num13 = array[(int)num12];
|
|
int num14 = array[(int)num12];
|
|
LongArray.AddBoth(array4, num5, array2, num13, array3, num14, num);
|
|
num5++;
|
|
length3 = array4.Length;
|
|
if (array4 != 0)
|
|
{
|
|
while (length3 != 0)
|
|
{
|
|
}
|
|
}
|
|
LongArray longArray;
|
|
return longArray;
|
|
}
|
|
if (length3 != 1)
|
|
{
|
|
long[] array5 = new long[0];
|
|
}
|
|
}
|
|
}
|
|
return this;
|
|
}
|
|
|
|
// Token: 0x0600A16E RID: 41326 RVA: 0x00229280 File Offset: 0x00227480
|
|
[Token(Token = "0x600A16E")]
|
|
[Address(RVA = "0x1F55C00", Offset = "0x1F54A00", VA = "0x181F55C00")]
|
|
public LongArray ModMultiplyAlt(LongArray other, int m, int[] ks)
|
|
{
|
|
int num = this.Degree();
|
|
if (num != 0)
|
|
{
|
|
int num2 = other.Degree();
|
|
if (num2 != 0)
|
|
{
|
|
if (num > num2)
|
|
{
|
|
}
|
|
int[] array = new int[16];
|
|
uint num3;
|
|
array[0] = (int)num3;
|
|
int length = array.Length;
|
|
num3 += this;
|
|
uint num4;
|
|
if (num4 < (uint)length)
|
|
{
|
|
num4 += (uint)1;
|
|
array[0] = (int)num3;
|
|
}
|
|
num3 += (uint)1;
|
|
long[] array2 = new long[16];
|
|
long[] ints = this.m_ints;
|
|
int num5 = 0;
|
|
int num6 = 0;
|
|
ulong num7;
|
|
LongArray.Interleave(ints, num6, array2, num5, ks, (int)num7);
|
|
long[] ints2 = other.m_ints;
|
|
int num8 = 0;
|
|
Array.Copy(ints2, num8, array2, num5, ks);
|
|
int num9 = 0;
|
|
int num10 = 0;
|
|
long num11 = array2[num10];
|
|
if (num10 != array2.Length)
|
|
{
|
|
int num12 = array[(int)num11];
|
|
int length2 = array2.Length;
|
|
}
|
|
if (1UL != (ulong)8L)
|
|
{
|
|
}
|
|
num9 += 32;
|
|
if (num9 < 64)
|
|
{
|
|
long num13;
|
|
array2[0] = num13;
|
|
}
|
|
int length3 = array.Length;
|
|
int num14 = length3 - 1;
|
|
if (num14 > 1)
|
|
{
|
|
int length4 = array.Length;
|
|
if (num14 != 1)
|
|
{
|
|
}
|
|
int length5 = array.Length;
|
|
}
|
|
int num15 = array[0];
|
|
LongArray longArray;
|
|
return longArray;
|
|
}
|
|
}
|
|
return this;
|
|
}
|
|
|
|
// Token: 0x0600A16F RID: 41327 RVA: 0x002293D8 File Offset: 0x002275D8
|
|
[Token(Token = "0x600A16F")]
|
|
[Address(RVA = "0x1F56EA0", Offset = "0x1F55CA0", VA = "0x181F56EA0")]
|
|
public LongArray ModReduce(int m, int[] ks)
|
|
{
|
|
long[] array = Arrays.Clone(this.m_ints);
|
|
int length = array.Length;
|
|
int num = 0;
|
|
int num2 = LongArray.ReduceInPlace(array, num, length, m, ks);
|
|
LongArray longArray;
|
|
if (m != array.Length)
|
|
{
|
|
long[] array2 = new long[m];
|
|
int num3 = 0;
|
|
longArray.m_ints = array2;
|
|
int num4 = 0;
|
|
Array.Copy(array, num4, array2, num3, m);
|
|
return longArray;
|
|
}
|
|
longArray.m_ints = array;
|
|
return longArray;
|
|
}
|
|
|
|
// Token: 0x0600A170 RID: 41328 RVA: 0x00229448 File Offset: 0x00227648
|
|
[Token(Token = "0x600A170")]
|
|
[Address(RVA = "0x1F57470", Offset = "0x1F56270", VA = "0x181F57470")]
|
|
public LongArray Multiply(LongArray other, int m, int[] ks)
|
|
{
|
|
int num = this.Degree();
|
|
if (num != 0)
|
|
{
|
|
int num2 = other.Degree();
|
|
if (num2 != 0)
|
|
{
|
|
if (num > num2)
|
|
{
|
|
num = num2;
|
|
}
|
|
if (other == (ulong)1L)
|
|
{
|
|
while (this == (ulong)1L)
|
|
{
|
|
}
|
|
long[] array = new long[0];
|
|
long[] array2 = new long[0];
|
|
LongArray longArray;
|
|
longArray.m_ints = array2;
|
|
longArray.m_ints = array;
|
|
return this;
|
|
}
|
|
int[] array3 = new int[16];
|
|
long[] array4 = new long[num];
|
|
array3[0] = num;
|
|
long[] ints = other.m_ints;
|
|
num += num;
|
|
array3[0] = num;
|
|
uint num3;
|
|
if (num3 != (uint)1)
|
|
{
|
|
LongArray.Add(array4, num, array4, num, array4, num, num);
|
|
}
|
|
if ("{il2cpp array field local10->}" == (ulong)2L || "{il2cpp array field local10->}" == (ulong)0L)
|
|
{
|
|
}
|
|
int num4 = 0;
|
|
ulong num6;
|
|
long num5 = LongArray.ShiftUp(array4, num, array4, num, num, (int)num6);
|
|
num3 += (uint)1;
|
|
long[] array5 = new long[array4.Length];
|
|
int length = array4.Length;
|
|
int num7 = 0;
|
|
int num8 = 0;
|
|
ulong num10;
|
|
long num9 = LongArray.ShiftUp(array4, num8, array5, num7, length, (int)num10);
|
|
long[] ints2 = this.m_ints;
|
|
long[] array6 = new long[num8];
|
|
long num11 = ints2[num4];
|
|
int length2 = array3.Length;
|
|
int num12 = array3[(int)num11];
|
|
int num13 = array3[(int)num11];
|
|
LongArray.AddBoth(array6, num4, array4, num12, array5, num13, num);
|
|
num4++;
|
|
int length3 = array6.Length;
|
|
if (array6 != 0)
|
|
{
|
|
num12 = length3;
|
|
while (length3 != 0)
|
|
{
|
|
}
|
|
}
|
|
int num14;
|
|
LongArray longArray2 = new LongArray(array6, num14, num12);
|
|
num14 = 0;
|
|
}
|
|
return other;
|
|
}
|
|
return this;
|
|
}
|
|
|
|
// Token: 0x0600A171 RID: 41329 RVA: 0x002295D0 File Offset: 0x002277D0
|
|
[Token(Token = "0x600A171")]
|
|
[Address(RVA = "0x1F58780", Offset = "0x1F57580", VA = "0x181F58780")]
|
|
public void Reduce(int m, int[] ks)
|
|
{
|
|
long[] ints = this.m_ints;
|
|
int length = ints.Length;
|
|
int num = 0;
|
|
int num2 = LongArray.ReduceInPlace(ints, num, length, m, ks);
|
|
if (num2 < ints.Length)
|
|
{
|
|
long[] array = new long[num2];
|
|
int num3 = 0;
|
|
this.m_ints = array;
|
|
int num4 = 0;
|
|
Array.Copy(ints, num4, array, num3, num2);
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600A172 RID: 41330 RVA: 0x00229630 File Offset: 0x00227830
|
|
[Token(Token = "0x600A172")]
|
|
[Address(RVA = "0x1F58220", Offset = "0x1F57020", VA = "0x181F58220")]
|
|
private static LongArray ReduceResult(long[] buf, int off, int len, int m, int[] ks)
|
|
{
|
|
return new LongArray(buf, len, m);
|
|
}
|
|
|
|
// Token: 0x0600A173 RID: 41331 RVA: 0x00229648 File Offset: 0x00227848
|
|
[Token(Token = "0x600A173")]
|
|
[Address(RVA = "0x1F57C90", Offset = "0x1F56A90", VA = "0x181F57C90")]
|
|
private static int ReduceInPlace(long[] buf, int off, int len, int m, int[] ks)
|
|
{
|
|
int num = Math.Min(len, off);
|
|
num = len;
|
|
int num2 = len - 1;
|
|
if (len > 1)
|
|
{
|
|
}
|
|
int num3 = 0;
|
|
num2 += 64;
|
|
int num4 = Math.Max(m, num2);
|
|
num2 = m - num3;
|
|
int num5 = Math.Min(m, num2);
|
|
num5 += len;
|
|
if (num5 > 1)
|
|
{
|
|
num = len - num5;
|
|
num -= m;
|
|
num += num;
|
|
LongArray.FlipVector(buf, off, buf, m, len, num);
|
|
int num6 = 0;
|
|
LongArray.FlipVector(buf, off, buf, m, len, num);
|
|
if (len > num)
|
|
{
|
|
int num7 = len - 1;
|
|
buf[0] = (long)num6;
|
|
}
|
|
}
|
|
if (num > num4)
|
|
{
|
|
num = num4;
|
|
if (len - 1 > num)
|
|
{
|
|
long num8 = buf[len];
|
|
}
|
|
long num9 = buf[m];
|
|
buf[0] = num9;
|
|
}
|
|
if (num4 <= m || LongArray.TestBit(buf, off, num4))
|
|
{
|
|
}
|
|
return len;
|
|
}
|
|
|
|
// Token: 0x0600A174 RID: 41332 RVA: 0x00229714 File Offset: 0x00227914
|
|
[Token(Token = "0x600A174")]
|
|
[Address(RVA = "0x1F57A00", Offset = "0x1F56800", VA = "0x181F57A00")]
|
|
private static void ReduceBitWise(long[] buf, int off, int BitLength, int m, int[] ks)
|
|
{
|
|
if (LongArray.TestBit(buf, off, BitLength))
|
|
{
|
|
}
|
|
while (BitLength >= m)
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600A175 RID: 41333 RVA: 0x00229734 File Offset: 0x00227934
|
|
[Token(Token = "0x600A175")]
|
|
[Address(RVA = "0x1F57AE0", Offset = "0x1F568E0", VA = "0x181F57AE0")]
|
|
private static void ReduceBit(long[] buf, int off, int bit, int m, int[] ks)
|
|
{
|
|
long num = buf[bit];
|
|
buf[0] = num;
|
|
}
|
|
|
|
// Token: 0x0600A176 RID: 41334 RVA: 0x00229758 File Offset: 0x00227958
|
|
[Token(Token = "0x600A176")]
|
|
[Address(RVA = "0x1F58430", Offset = "0x1F57230", VA = "0x181F58430")]
|
|
private static void ReduceWordWise(long[] buf, int off, int len, int toBit, int m, int[] ks)
|
|
{
|
|
if (len > toBit)
|
|
{
|
|
long num = buf[toBit];
|
|
}
|
|
long num2 = buf[off];
|
|
buf[0] = num2;
|
|
}
|
|
|
|
// Token: 0x0600A177 RID: 41335 RVA: 0x00229788 File Offset: 0x00227988
|
|
[Token(Token = "0x600A177")]
|
|
[Address(RVA = "0x1F585F0", Offset = "0x1F573F0", VA = "0x181F585F0")]
|
|
private static void ReduceWord(long[] buf, int off, int bit, long word, int m, int[] ks)
|
|
{
|
|
LongArray.FlipWord(buf, off, bit, word);
|
|
if (bit != 0)
|
|
{
|
|
int num = off + 1;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600A178 RID: 41336 RVA: 0x002297B0 File Offset: 0x002279B0
|
|
[Token(Token = "0x600A178")]
|
|
[Address(RVA = "0x1F582E0", Offset = "0x1F570E0", VA = "0x181F582E0")]
|
|
private static void ReduceVectorWise(long[] buf, int off, int len, int words, int m, int[] ks)
|
|
{
|
|
}
|
|
|
|
// Token: 0x0600A179 RID: 41337 RVA: 0x002297C4 File Offset: 0x002279C4
|
|
[Token(Token = "0x600A179")]
|
|
[Address(RVA = "0x1F53DB0", Offset = "0x1F52BB0", VA = "0x181F53DB0")]
|
|
private static void FlipVector(long[] x, int xOff, long[] y, int yOff, int yLen, int bits)
|
|
{
|
|
}
|
|
|
|
// Token: 0x0600A17A RID: 41338 RVA: 0x002297D8 File Offset: 0x002279D8
|
|
[Token(Token = "0x600A17A")]
|
|
[Address(RVA = "0x1F57140", Offset = "0x1F55F40", VA = "0x181F57140")]
|
|
public LongArray ModSquare(int m, int[] ks)
|
|
{
|
|
int num = 0;
|
|
if (this.GetUsedLength() != 0)
|
|
{
|
|
long[] array = new long[num];
|
|
int num2 = 0;
|
|
long num3 = this.m_ints[num2];
|
|
num2++;
|
|
long num4 = LongArray.Interleave2_32to64((int)num3);
|
|
array[0] = num4;
|
|
num2++;
|
|
long num5 = LongArray.Interleave2_32to64((int)num3);
|
|
array[0] = num5;
|
|
int length = array.Length;
|
|
int num6 = 0;
|
|
int num7 = LongArray.ReduceInPlace(array, num6, length, m, ks);
|
|
int num8;
|
|
LongArray longArray = new LongArray(array, num8, m);
|
|
num8 = 0;
|
|
return longArray;
|
|
}
|
|
return this;
|
|
}
|
|
|
|
// Token: 0x0600A17B RID: 41339 RVA: 0x00229864 File Offset: 0x00227A64
|
|
[Token(Token = "0x600A17B")]
|
|
[Address(RVA = "0x1F56FF0", Offset = "0x1F55DF0", VA = "0x181F56FF0")]
|
|
public LongArray ModSquareN(int n, int m, int[] ks)
|
|
{
|
|
int num = 0;
|
|
int num2 = this.GetUsedLength();
|
|
if (num2 != 0)
|
|
{
|
|
long[] array = new long[num];
|
|
long[] ints = this.m_ints;
|
|
int num3 = 0;
|
|
int num4 = 0;
|
|
Array.Copy(ints, num4, array, num3, num2);
|
|
int num5 = n - 1;
|
|
LongArray.SquareInPlace(array, num2, m, ks);
|
|
int length = array.Length;
|
|
int num6 = 0;
|
|
num2 = LongArray.ReduceInPlace(array, num6, length, m, ks);
|
|
int num7;
|
|
LongArray longArray = new LongArray(array, num7, m);
|
|
num7 = 0;
|
|
return longArray;
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600A17C RID: 41340 RVA: 0x002298E0 File Offset: 0x00227AE0
|
|
[Token(Token = "0x600A17C")]
|
|
[Address(RVA = "0x1F58B80", Offset = "0x1F57980", VA = "0x181F58B80")]
|
|
public LongArray Square(int m, int[] ks)
|
|
{
|
|
int num = 0;
|
|
if (this.GetUsedLength() != 0)
|
|
{
|
|
long[] array = new long[num];
|
|
int num2 = 0;
|
|
long num3 = this.m_ints[num2];
|
|
num2++;
|
|
long num4 = LongArray.Interleave2_32to64((int)num3);
|
|
array[0] = num4;
|
|
num2++;
|
|
long num5 = LongArray.Interleave2_32to64((int)num3);
|
|
array[0] = num5;
|
|
int num6;
|
|
int length;
|
|
LongArray longArray = new LongArray(array, num6, length);
|
|
length = array.Length;
|
|
num6 = 0;
|
|
return longArray;
|
|
}
|
|
return this;
|
|
}
|
|
|
|
// Token: 0x0600A17D RID: 41341 RVA: 0x0022995C File Offset: 0x00227B5C
|
|
[Token(Token = "0x600A17D")]
|
|
[Address(RVA = "0x1F58A80", Offset = "0x1F57880", VA = "0x181F58A80")]
|
|
private static void SquareInPlace(long[] x, int xLen, int m, int[] ks)
|
|
{
|
|
long num = x[xLen];
|
|
long num2 = LongArray.Interleave2_32to64((int)num);
|
|
x[0] = num2;
|
|
long num3 = LongArray.Interleave2_32to64((int)num);
|
|
x[0] = num3;
|
|
}
|
|
|
|
// Token: 0x0600A17E RID: 41342 RVA: 0x00229998 File Offset: 0x00227B98
|
|
[Token(Token = "0x600A17E")]
|
|
[Address(RVA = "0x1F54F60", Offset = "0x1F53D60", VA = "0x181F54F60")]
|
|
private static void Interleave(long[] x, int xOff, long[] z, int zOff, int count, int width)
|
|
{
|
|
long num2;
|
|
long num = LongArray.Interleave7(num2);
|
|
z[0] = num;
|
|
long num3 = LongArray.Interleave5(x[zOff]);
|
|
z[0] = num3;
|
|
byte[] bitLengths = LongArray.BitLengths;
|
|
byte b2;
|
|
byte b = b2 - 1;
|
|
long num5;
|
|
long num4 = LongArray.Interleave2_n(num5, (int)b);
|
|
z[0] = num4;
|
|
long num6 = LongArray.Interleave3(x[zOff]);
|
|
z[0] = num6;
|
|
}
|
|
|
|
// Token: 0x0600A17F RID: 41343 RVA: 0x00229A08 File Offset: 0x00227C08
|
|
[Token(Token = "0x600A17F")]
|
|
[Address(RVA = "0x1F548B0", Offset = "0x1F536B0", VA = "0x181F548B0")]
|
|
private static void Interleave3(long[] x, int xOff, long[] z, int zOff, int count)
|
|
{
|
|
long num2;
|
|
long num = LongArray.Interleave3(num2);
|
|
z[0] = num;
|
|
}
|
|
|
|
// Token: 0x0600A180 RID: 41344 RVA: 0x00229A2C File Offset: 0x00227C2C
|
|
[Token(Token = "0x600A180")]
|
|
[Address(RVA = "0x1F547F0", Offset = "0x1F535F0", VA = "0x181F547F0")]
|
|
private static long Interleave3(long x)
|
|
{
|
|
long num = LongArray.Interleave3_21to63((int)x);
|
|
long num2 = LongArray.Interleave3_21to63((int)x);
|
|
long num3 = LongArray.Interleave3_21to63((int)x);
|
|
num3 += num3;
|
|
return num3 + num3;
|
|
}
|
|
|
|
// Token: 0x0600A181 RID: 41345 RVA: 0x00229A58 File Offset: 0x00227C58
|
|
[Token(Token = "0x600A181")]
|
|
[Address(RVA = "0x1F54710", Offset = "0x1F53510", VA = "0x181F54710")]
|
|
private static long Interleave3_21to63(int x)
|
|
{
|
|
int[] interleave3_TABLE = LongArray.INTERLEAVE3_TABLE;
|
|
int length = interleave3_TABLE.Length;
|
|
int num = interleave3_TABLE[x];
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600A182 RID: 41346 RVA: 0x00229A80 File Offset: 0x00227C80
|
|
[Token(Token = "0x600A182")]
|
|
[Address(RVA = "0x1F54A60", Offset = "0x1F53860", VA = "0x181F54A60")]
|
|
private static void Interleave5(long[] x, int xOff, long[] z, int zOff, int count)
|
|
{
|
|
long num2;
|
|
long num = LongArray.Interleave5(num2);
|
|
z[0] = num;
|
|
}
|
|
|
|
// Token: 0x0600A183 RID: 41347 RVA: 0x00229AA4 File Offset: 0x00227CA4
|
|
[Token(Token = "0x600A183")]
|
|
[Address(RVA = "0x1F54B60", Offset = "0x1F53960", VA = "0x181F54B60")]
|
|
private static long Interleave5(long x)
|
|
{
|
|
long num = LongArray.Interleave3_13to65((int)x);
|
|
long num2 = LongArray.Interleave3_13to65((int)x);
|
|
long num3 = LongArray.Interleave3_13to65((int)x);
|
|
long num4 = LongArray.Interleave3_13to65((int)x);
|
|
long num5 = LongArray.Interleave3_13to65((int)x);
|
|
num5 += num5;
|
|
num5 += num5;
|
|
num5 += num5;
|
|
return num5 + num5;
|
|
}
|
|
|
|
// Token: 0x0600A184 RID: 41348 RVA: 0x00229AF4 File Offset: 0x00227CF4
|
|
[Token(Token = "0x600A184")]
|
|
[Address(RVA = "0x1F54660", Offset = "0x1F53460", VA = "0x181F54660")]
|
|
private static long Interleave3_13to65(int x)
|
|
{
|
|
int[] interleave5_TABLE = LongArray.INTERLEAVE5_TABLE;
|
|
int length = interleave5_TABLE.Length;
|
|
int num = interleave5_TABLE[x];
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600A185 RID: 41349 RVA: 0x00229B1C File Offset: 0x00227D1C
|
|
[Token(Token = "0x600A185")]
|
|
[Address(RVA = "0x1F54E60", Offset = "0x1F53C60", VA = "0x181F54E60")]
|
|
private static void Interleave7(long[] x, int xOff, long[] z, int zOff, int count)
|
|
{
|
|
long num2;
|
|
long num = LongArray.Interleave7(num2);
|
|
z[0] = num;
|
|
}
|
|
|
|
// Token: 0x0600A186 RID: 41350 RVA: 0x00229B40 File Offset: 0x00227D40
|
|
[Token(Token = "0x600A186")]
|
|
[Address(RVA = "0x1F54C50", Offset = "0x1F53A50", VA = "0x181F54C50")]
|
|
private static long Interleave7(long x)
|
|
{
|
|
long[] interleave7_TABLE = LongArray.INTERLEAVE7_TABLE;
|
|
int length = interleave7_TABLE.Length;
|
|
long num = interleave7_TABLE[(int)x];
|
|
num += num;
|
|
num += num;
|
|
num += num;
|
|
num += num;
|
|
num += num;
|
|
return num + num;
|
|
}
|
|
|
|
// Token: 0x0600A187 RID: 41351 RVA: 0x00229B84 File Offset: 0x00227D84
|
|
[Token(Token = "0x600A187")]
|
|
[Address(RVA = "0x1F54400", Offset = "0x1F53200", VA = "0x181F54400")]
|
|
private static void Interleave2_n(long[] x, int xOff, long[] z, int zOff, int count, int rounds)
|
|
{
|
|
long num;
|
|
z[0] = num;
|
|
}
|
|
|
|
// Token: 0x0600A188 RID: 41352 RVA: 0x00229BA0 File Offset: 0x00227DA0
|
|
[Token(Token = "0x600A188")]
|
|
[Address(RVA = "0x1F54510", Offset = "0x1F53310", VA = "0x181F54510")]
|
|
private static long Interleave2_n(long x, int rounds)
|
|
{
|
|
if (rounds > 1)
|
|
{
|
|
long num = LongArray.Interleave4_16to64((int)x);
|
|
long num2 = LongArray.Interleave4_16to64((int)x);
|
|
long num3 = LongArray.Interleave4_16to64((int)x);
|
|
long num4 = LongArray.Interleave4_16to64((int)x);
|
|
}
|
|
if (rounds > 0)
|
|
{
|
|
long num5 = LongArray.Interleave2_32to64((int)x);
|
|
long num6 = LongArray.Interleave2_32to64((int)x);
|
|
return num6 + num6;
|
|
}
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x0600A189 RID: 41353 RVA: 0x00229BF0 File Offset: 0x00227DF0
|
|
[Token(Token = "0x600A189")]
|
|
[Address(RVA = "0x1F549B0", Offset = "0x1F537B0", VA = "0x181F549B0")]
|
|
private static long Interleave4_16to64(int x)
|
|
{
|
|
int[] interleave4_TABLE = LongArray.INTERLEAVE4_TABLE;
|
|
int length = interleave4_TABLE.Length;
|
|
int num = interleave4_TABLE[x];
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600A18A RID: 41354 RVA: 0x00229C18 File Offset: 0x00227E18
|
|
[Token(Token = "0x600A18A")]
|
|
[Address(RVA = "0x1F542E0", Offset = "0x1F530E0", VA = "0x181F542E0")]
|
|
private static long Interleave2_32to64(int x)
|
|
{
|
|
ushort[] interleave2_TABLE = LongArray.INTERLEAVE2_TABLE;
|
|
int length = interleave2_TABLE.Length;
|
|
ushort num = interleave2_TABLE[x];
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600A18B RID: 41355 RVA: 0x00229C40 File Offset: 0x00227E40
|
|
[Token(Token = "0x600A18B")]
|
|
[Address(RVA = "0x1F554C0", Offset = "0x1F542C0", VA = "0x181F554C0")]
|
|
public LongArray ModInverse(int m, int[] ks)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600A18B)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.LongArray BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.LongArray::ModInverse(System.Int32,System.Int32[])
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_17B:
|
|
stloc:InvalidOperationException(var_39_180, newobj:InvalidOperationException(InvalidOperationException::.ctor))
|
|
}
|
|
|
|
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: 0x0600A18C RID: 41356 RVA: 0x00229DD0 File Offset: 0x00227FD0
|
|
[Token(Token = "0x600A18C")]
|
|
[Address(RVA = "0x1F53C10", Offset = "0x1F52A10", VA = "0x181F53C10", Slot = "0")]
|
|
public override bool Equals(object obj)
|
|
{
|
|
if (obj == 0)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600A18D RID: 41357 RVA: 0x00229DE4 File Offset: 0x00227FE4
|
|
[Token(Token = "0x600A18D")]
|
|
[Address(RVA = "0x1F53CA0", Offset = "0x1F52AA0", VA = "0x181F53CA0", Slot = "4")]
|
|
public virtual bool Equals(LongArray other)
|
|
{
|
|
if (this != other)
|
|
{
|
|
if (other != 0)
|
|
{
|
|
int usedLength = this.GetUsedLength();
|
|
if (other.GetUsedLength() == usedLength)
|
|
{
|
|
int num = 0;
|
|
if (usedLength <= 0)
|
|
{
|
|
return true;
|
|
}
|
|
long[] ints = this.m_ints;
|
|
long num2 = other.m_ints[num];
|
|
if ("{il2cpp array field local7->}" == num2)
|
|
{
|
|
num++;
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
throw new IndexOutOfRangeException();
|
|
}
|
|
return true;
|
|
}
|
|
|
|
// Token: 0x0600A18E RID: 41358 RVA: 0x00229E3C File Offset: 0x0022803C
|
|
[Token(Token = "0x600A18E")]
|
|
[Address(RVA = "0x1F54040", Offset = "0x1F52E40", VA = "0x181F54040", Slot = "2")]
|
|
public override int GetHashCode()
|
|
{
|
|
int usedLength = this.GetUsedLength();
|
|
int num = 0;
|
|
if (usedLength > 0)
|
|
{
|
|
long[] ints = this.m_ints;
|
|
num++;
|
|
long num2 = (long)(1U * (uint)31);
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600A18F RID: 41359 RVA: 0x00229E6C File Offset: 0x0022806C
|
|
[Token(Token = "0x600A18F")]
|
|
[Address(RVA = "0x1F53960", Offset = "0x1F52760", VA = "0x181F53960")]
|
|
public LongArray Copy()
|
|
{
|
|
long[] array = Arrays.Clone(this.m_ints);
|
|
LongArray longArray;
|
|
longArray.m_ints = array;
|
|
return longArray;
|
|
}
|
|
|
|
// Token: 0x0600A190 RID: 41360 RVA: 0x00229E90 File Offset: 0x00228090
|
|
[Token(Token = "0x600A190")]
|
|
[Address(RVA = "0x1F59060", Offset = "0x1F57E60", VA = "0x181F59060", Slot = "3")]
|
|
public override string ToString()
|
|
{
|
|
int num = this.GetUsedLength();
|
|
if (num != 0)
|
|
{
|
|
long[] ints = this.m_ints;
|
|
int num2 = num - 1;
|
|
num = num2;
|
|
StringBuilder stringBuilder = new StringBuilder(Convert.ToString(ints[num], 2));
|
|
int num3 = num2 - 1;
|
|
string text = Convert.ToString(this.m_ints[num3], 2);
|
|
if (text.m_stringLength < 64)
|
|
{
|
|
string text2;
|
|
StringBuilder stringBuilder2 = stringBuilder.Append(text2);
|
|
}
|
|
StringBuilder stringBuilder3 = stringBuilder.Append(text);
|
|
}
|
|
return "0";
|
|
}
|
|
|
|
// Token: 0x0600A191 RID: 41361 RVA: 0x00229F0C File Offset: 0x0022810C
|
|
// Note: this type is marked as 'beforefieldinit'.
|
|
[Token(Token = "0x600A191")]
|
|
[Address(RVA = "0x1F59230", Offset = "0x1F58030", VA = "0x181F59230")]
|
|
static LongArray()
|
|
{
|
|
ushort[] array = new ushort[256];
|
|
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.CA1986CBA4E4F0DFA3BF6A654EF8A36E6077AD99).FieldHandle);
|
|
LongArray.INTERLEAVE2_TABLE = array;
|
|
int[] array2 = new int[128];
|
|
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.239B59488F1CE7EBE225785FDC22A8E3102A2E82).FieldHandle);
|
|
LongArray.INTERLEAVE3_TABLE = array2;
|
|
int[] array3 = new int[256];
|
|
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.310EFB639F3C7677A2A82B54EEED1124ED69E9A3).FieldHandle);
|
|
LongArray.INTERLEAVE4_TABLE = array3;
|
|
int[] array4 = new int[128];
|
|
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.428007959831954B0C2DCFAF9DD641D629B00DBF).FieldHandle);
|
|
LongArray.INTERLEAVE5_TABLE = array4;
|
|
long[] array5 = new long[512];
|
|
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.FA5B1C8B2F287078ED719C15595DB729BDB85911).FieldHandle);
|
|
LongArray.INTERLEAVE7_TABLE = array5;
|
|
byte[] array6 = new byte[256];
|
|
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.C95356610D5583976B69017BED7048EB50121B90).FieldHandle);
|
|
LongArray.BitLengths = array6;
|
|
}
|
|
|
|
// Token: 0x04006A99 RID: 27289
|
|
[Token(Token = "0x4006A99")]
|
|
private static readonly ushort[] INTERLEAVE2_TABLE;
|
|
|
|
// Token: 0x04006A9A RID: 27290
|
|
[Token(Token = "0x4006A9A")]
|
|
private static readonly int[] INTERLEAVE3_TABLE;
|
|
|
|
// Token: 0x04006A9B RID: 27291
|
|
[Token(Token = "0x4006A9B")]
|
|
private static readonly int[] INTERLEAVE4_TABLE;
|
|
|
|
// Token: 0x04006A9C RID: 27292
|
|
[Token(Token = "0x4006A9C")]
|
|
private static readonly int[] INTERLEAVE5_TABLE;
|
|
|
|
// Token: 0x04006A9D RID: 27293
|
|
[Token(Token = "0x4006A9D")]
|
|
private static readonly long[] INTERLEAVE7_TABLE;
|
|
|
|
// Token: 0x04006A9E RID: 27294
|
|
[Token(Token = "0x4006A9E")]
|
|
private const string ZEROES = "0000000000000000000000000000000000000000000000000000000000000000";
|
|
|
|
// Token: 0x04006A9F RID: 27295
|
|
[Token(Token = "0x4006A9F")]
|
|
internal static readonly byte[] BitLengths;
|
|
|
|
// Token: 0x04006AA0 RID: 27296
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4006AA0")]
|
|
private long[] m_ints;
|
|
}
|
|
}
|