using System; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests { // Token: 0x02001CEB RID: 7403 [Token(Token = "0x2001CEB")] public class MD4Digest : GeneralDigest { // Token: 0x0600BAC1 RID: 47809 RVA: 0x002A2BC4 File Offset: 0x002A0DC4 [Token(Token = "0x600BAC1")] [Address(RVA = "0x1B446E0", Offset = "0x1B434E0", VA = "0x181B446E0")] public MD4Digest() { int[] array = new int[16]; this.X = array; base..ctor(); byte[] array2 = new byte[4]; this.xBuf = array2; IMemoable memoable = ((IMemoable)this).Copy(); } // Token: 0x0600BAC2 RID: 47810 RVA: 0x002A2BFC File Offset: 0x002A0DFC [Token(Token = "0x600BAC2")] [Address(RVA = "0x1B44670", Offset = "0x1B43470", VA = "0x181B44670")] public MD4Digest(MD4Digest t) { int[] array = new int[16]; this.X = array; base..ctor(t); this.CopyIn(t); } // Token: 0x0600BAC3 RID: 47811 RVA: 0x002A2C28 File Offset: 0x002A0E28 [Token(Token = "0x600BAC3")] [Address(RVA = "0x1B43550", Offset = "0x1B42350", VA = "0x181B43550")] private void CopyIn(MD4Digest t) { byte[] xBuf = t.xBuf; int length = xBuf.Length; int num = 0; byte[] xBuf2 = this.xBuf; int num2 = 0; Array.Copy(xBuf, num2, xBuf2, num, length); int xBufOff = t.xBufOff; this.xBufOff = xBufOff; long byteCount = t.byteCount; this.byteCount = byteCount; int h = t.H1; this.H1 = h; int h2 = t.H2; this.H2 = h2; int h3 = t.H3; this.H3 = h3; int h4 = t.H4; this.H4 = h4; int[] x = t.X; int length2 = x.Length; int num3 = 0; int[] x2 = this.X; int num4 = 0; Array.Copy(x, num4, x2, num3, length2); int num5 = t.xOff; this.xOff = num5; } // Token: 0x17001D13 RID: 7443 // (get) Token: 0x0600BAC4 RID: 47812 RVA: 0x002A2D00 File Offset: 0x002A0F00 [Token(Token = "0x17001D13")] public override string AlgorithmName { [Token(Token = "0x600BAC4")] [Address(RVA = "0x1B44770", Offset = "0x1B43570", VA = "0x181B44770", Slot = "17")] get { return "MD4"; } } // Token: 0x0600BAC5 RID: 47813 RVA: 0x002A2D14 File Offset: 0x002A0F14 [Token(Token = "0x600BAC5")] [Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "18")] public override int GetDigestSize() { return 16; } // Token: 0x0600BAC6 RID: 47814 RVA: 0x002A2D24 File Offset: 0x002A0F24 [Token(Token = "0x600BAC6")] [Address(RVA = "0x1B44340", Offset = "0x1B43140", VA = "0x181B44340", Slot = "14")] internal override void ProcessWord(byte[] input, int inOff) { int num = this.xOff; int[] x = this.X; int num2 = num + 1; this.xOff = num2; int length = input.Length; int num3 = inOff + 1; byte b; x[0] = (int)b; if (this.xOff == 16) { } } // Token: 0x0600BAC7 RID: 47815 RVA: 0x002A2D70 File Offset: 0x002A0F70 [Token(Token = "0x600BAC7")] [Address(RVA = "0x1B442C0", Offset = "0x1B430C0", VA = "0x181B442C0", Slot = "15")] internal override void ProcessLength(long bitLength) { if (this.xOff > 14) { } this.X[7] = (int)bitLength; this.X[7] = (int)bitLength; } // Token: 0x0600BAC8 RID: 47816 RVA: 0x002A2DA8 File Offset: 0x002A0FA8 [Token(Token = "0x600BAC8")] [Address(RVA = "0x1B445D0", Offset = "0x1B433D0", VA = "0x181B445D0")] private void UnpackWord(int word, byte[] outBytes, int outOff) { int num = outOff + 1; } // Token: 0x0600BAC9 RID: 47817 RVA: 0x002A2DC0 File Offset: 0x002A0FC0 [Token(Token = "0x600BAC9")] [Address(RVA = "0x1B436A0", Offset = "0x1B424A0", VA = "0x181B436A0", Slot = "19")] public override int DoFinal(byte[] output, int outOff) { base.Finish(); int h = this.H1; this.UnpackWord(h, output, outOff); int num = this.H2; output[0] = (byte)num; output[0] = (byte)num; int h2 = this.H3; num = h2; output[0] = (byte)num; num = h2; output[0] = (byte)num; int h3 = this.H4; num = h3; output[0] = (byte)num; num = h3; output[0] = (byte)num; throw new NullReferenceException(); } // Token: 0x0600BACA RID: 47818 RVA: 0x002A2E38 File Offset: 0x002A1038 [Token(Token = "0x600BACA")] [Address(RVA = "0x1B44460", Offset = "0x1B43260", VA = "0x181B44460", Slot = "13")] public override void Reset() { int num = 0; this.byteCount = (long)num; this.xBufOff = num; byte[] xBuf = this.xBuf; int length = xBuf.Length; int num2 = 0; Array.Clear(xBuf, num2, length); int[] x = this.X; this.H1 = (int)((ulong)1732584193L); this.H2 = (int)((ulong)4023233417L); this.H3 = (int)((ulong)2562383102L); this.H4 = (int)((ulong)271733878L); this.xOff = num; if (num != x.Length) { num++; x[0] = num; int[] x2 = this.X; } } // Token: 0x0600BACB RID: 47819 RVA: 0x002A2EDC File Offset: 0x002A10DC [Token(Token = "0x600BACB")] [Address(RVA = "0x1B445B0", Offset = "0x1B433B0", VA = "0x181B445B0")] private int RotateLeft(int x, int n) { return x; } // Token: 0x0600BACC RID: 47820 RVA: 0x002A2EEC File Offset: 0x002A10EC [Token(Token = "0x600BACC")] [Address(RVA = "0x63B3A0", Offset = "0x63A1A0", VA = "0x18063B3A0")] private int F(int u, int v, int w) { return u; } // Token: 0x0600BACD RID: 47821 RVA: 0x002A2EFC File Offset: 0x002A10FC [Token(Token = "0x600BACD")] [Address(RVA = "0x63B400", Offset = "0x63A200", VA = "0x18063B400")] private int G(int u, int v, int w) { return v; } // Token: 0x0600BACE RID: 47822 RVA: 0x002A2F0C File Offset: 0x002A110C [Token(Token = "0x600BACE")] [Address(RVA = "0x63B460", Offset = "0x63A260", VA = "0x18063B460")] private int H(int u, int v, int w) { return u; } // Token: 0x0600BACF RID: 47823 RVA: 0x002A2F1C File Offset: 0x002A111C [Token(Token = "0x600BACF")] [Address(RVA = "0x1B438E0", Offset = "0x1B426E0", VA = "0x181B438E0", Slot = "16")] internal override void ProcessBlock() { int[] x = this.X; int num = this.H2; int num2 = this.H3; int h = this.H4; int h2 = this.H1; int num3 = x.Length; num += h2; num += h; num2 = num; num += num2; num += num; num += num; num += num; num += num; num += num; num += num; num += num; num += num; num += num; int num4 = x[6]; num += num4; num += num; num += num; num += num; num += num; num2 = num; num2 += num; num2 = num; num2 += num; num = num2; num2 = num; num2 += num; num = num2; num2 = num; num2 += 1518500249; num2 += num4; num2 += num; num = num2; num2 = num; num2 += num; num2 = num; num2 += num; num = num2; num2 = num; num2 += num; num = num2; num2 = num; num2 += num; num = num2; num2 = num; num2 += num; num2 = num; num2 += 1518500249; num2 += num; num = num2; num2 = num; num2 += 1518500249; num2 += num; num4 = num2; num2 = num; num2 += num; num = num2; num2 = num4; num2 += num; num = num2; num2 = num; num2 += num; num = num2; num2 = num; num2 += 1518500249; num2 += num4; num3 = num2; num2 = num; num += 1859775393; num2 += num; num = num2; num2 = num; num2 += num; num = num2; num2 = num3; num += num2; num2 = num; num3 = num; num += num2; num2 = num3; num += num2; num2 += num3; num = num2; num2 = num; num += num2; num2 = num; num3 = num; num += num2; num2 = num3; num += num2; num2 += num3; num = num2; num2 = num; num += num2; num4 = num; num2 = num4; num3 = num4; num += num2; num = num3; num += 1859775393; num += num; num2 += num3; num = num2; num += 1859775393; num += num4; num2 = num; num += num2; num += 1859775393; this.H1 = num2; num += num; num2 = num; num2 += num; this.H2 = num2; this.H3 = num2; int num5 = 0; this.H4 = num2; this.xOff = num5; if (num5 != x.Length) { num5++; x[0] = num5; int[] x2 = this.X; } } // Token: 0x0600BAD0 RID: 47824 RVA: 0x002A315C File Offset: 0x002A135C [Token(Token = "0x600BAD0")] [Address(RVA = "0x1B43600", Offset = "0x1B42400", VA = "0x181B43600", Slot = "20")] public override IMemoable Copy() { /* An exception occurred when decompiling this method (0600BAD0) ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.MD4Digest::Copy() ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:MD4Digest(var_0_06, newobj:MD4Digest(MD4Digest::.ctor, ldloc:MD4Digest(this))) stloc:int32[](var_1_0E, newarr:int32[]([mscorlib]System.Int32, ldc.i4:int32(16))) stfld:int32[](MD4Digest::X, ldloc:MD4Digest(var_0_06), ldloc:int32[](var_1_0E)) call:void(MD4Digest::CopyIn, ldloc:MD4Digest(var_0_06), ldloc:MD4Digest(this)) } 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: 0x0600BAD1 RID: 47825 RVA: 0x002A3188 File Offset: 0x002A1388 [Token(Token = "0x600BAD1")] [Address(RVA = "0x1B44510", Offset = "0x1B43310", VA = "0x181B44510", Slot = "21")] public override void Reset(IMemoable other) { do { if (other == 0) { } } while (other == 0); } // Token: 0x040076B8 RID: 30392 [Token(Token = "0x40076B8")] private const int DigestLength = 16; // Token: 0x040076B9 RID: 30393 [FieldOffset(Offset = "0x28")] [Token(Token = "0x40076B9")] private int H1; // Token: 0x040076BA RID: 30394 [FieldOffset(Offset = "0x2C")] [Token(Token = "0x40076BA")] private int H2; // Token: 0x040076BB RID: 30395 [FieldOffset(Offset = "0x30")] [Token(Token = "0x40076BB")] private int H3; // Token: 0x040076BC RID: 30396 [FieldOffset(Offset = "0x34")] [Token(Token = "0x40076BC")] private int H4; // Token: 0x040076BD RID: 30397 [FieldOffset(Offset = "0x38")] [Token(Token = "0x40076BD")] private int[] X; // Token: 0x040076BE RID: 30398 [FieldOffset(Offset = "0x40")] [Token(Token = "0x40076BE")] private int xOff; // Token: 0x040076BF RID: 30399 [Token(Token = "0x40076BF")] private const int S11 = 3; // Token: 0x040076C0 RID: 30400 [Token(Token = "0x40076C0")] private const int S12 = 7; // Token: 0x040076C1 RID: 30401 [Token(Token = "0x40076C1")] private const int S13 = 11; // Token: 0x040076C2 RID: 30402 [Token(Token = "0x40076C2")] private const int S14 = 19; // Token: 0x040076C3 RID: 30403 [Token(Token = "0x40076C3")] private const int S21 = 3; // Token: 0x040076C4 RID: 30404 [Token(Token = "0x40076C4")] private const int S22 = 5; // Token: 0x040076C5 RID: 30405 [Token(Token = "0x40076C5")] private const int S23 = 9; // Token: 0x040076C6 RID: 30406 [Token(Token = "0x40076C6")] private const int S24 = 13; // Token: 0x040076C7 RID: 30407 [Token(Token = "0x40076C7")] private const int S31 = 3; // Token: 0x040076C8 RID: 30408 [Token(Token = "0x40076C8")] private const int S32 = 9; // Token: 0x040076C9 RID: 30409 [Token(Token = "0x40076C9")] private const int S33 = 11; // Token: 0x040076CA RID: 30410 [Token(Token = "0x40076CA")] private const int S34 = 15; } }