using System; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests { // Token: 0x02001DCB RID: 7627 [Token(Token = "0x2001DCB")] public class MD4Digest : GeneralDigest { // Token: 0x0600BE8F RID: 48783 RVA: 0x002AB56C File Offset: 0x002A976C [Token(Token = "0x600BE8F")] [Address(RVA = "0x28FF250", Offset = "0x28FE250", VA = "0x1828FF250")] public MD4Digest() { int[] array = new int[16]; this.X = array; base..ctor(); IMemoable memoable = ((IMemoable)this).Copy(); } // Token: 0x0600BE90 RID: 48784 RVA: 0x002AB598 File Offset: 0x002A9798 [Token(Token = "0x600BE90")] [Address(RVA = "0x28FF1E0", Offset = "0x28FE1E0", VA = "0x1828FF1E0")] public MD4Digest(MD4Digest t) { int[] array = new int[16]; this.X = array; base..ctor(t); this.CopyIn(t); } // Token: 0x0600BE91 RID: 48785 RVA: 0x002AB5C4 File Offset: 0x002A97C4 [Token(Token = "0x600BE91")] [Address(RVA = "0x28FE130", Offset = "0x28FD130", VA = "0x1828FE130")] private void CopyIn(MD4Digest t) { base.CopyIn(t); 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 length = x.Length; int num = 0; int[] x2 = this.X; int num2 = 0; Array.Copy(x, num2, x2, num, length); int num3 = t.xOff; this.xOff = num3; } // Token: 0x17001DB0 RID: 7600 // (get) Token: 0x0600BE92 RID: 48786 RVA: 0x002AB654 File Offset: 0x002A9854 [Token(Token = "0x17001DB0")] public override string AlgorithmName { [Token(Token = "0x600BE92")] [Address(RVA = "0x28FF2B0", Offset = "0x28FE2B0", VA = "0x1828FF2B0", Slot = "17")] get { return "MD4"; } } // Token: 0x0600BE93 RID: 48787 RVA: 0x002AB668 File Offset: 0x002A9868 [Token(Token = "0x600BE93")] [Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "18")] public override int GetDigestSize() { return 16; } // Token: 0x0600BE94 RID: 48788 RVA: 0x002AB678 File Offset: 0x002A9878 [Token(Token = "0x600BE94")] [Address(RVA = "0x28FEEF0", Offset = "0x28FDEF0", VA = "0x1828FEEF0", 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: 0x0600BE95 RID: 48789 RVA: 0x002AB6C4 File Offset: 0x002A98C4 [Token(Token = "0x600BE95")] [Address(RVA = "0x28FEE70", Offset = "0x28FDE70", VA = "0x1828FEE70", Slot = "15")] internal override void ProcessLength(long bitLength) { if (this.xOff > 14) { } this.X[7] = (int)bitLength; this.X[7] = (int)bitLength; } // Token: 0x0600BE96 RID: 48790 RVA: 0x002AB6FC File Offset: 0x002A98FC [Token(Token = "0x600BE96")] [Address(RVA = "0x28FF140", Offset = "0x28FE140", VA = "0x1828FF140")] private void UnpackWord(int word, byte[] outBytes, int outOff) { int num = outOff + 1; } // Token: 0x0600BE97 RID: 48791 RVA: 0x002AB714 File Offset: 0x002A9914 [Token(Token = "0x600BE97")] [Address(RVA = "0x28FE250", Offset = "0x28FD250", VA = "0x1828FE250", 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: 0x0600BE98 RID: 48792 RVA: 0x002AB78C File Offset: 0x002A998C [Token(Token = "0x600BE98")] [Address(RVA = "0x28FF010", Offset = "0x28FE010", VA = "0x1828FF010", Slot = "13")] public override void Reset() { base.Reset(); int[] x = this.X; int num = 0; 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: 0x0600BE99 RID: 48793 RVA: 0x002AB80C File Offset: 0x002A9A0C [Token(Token = "0x600BE99")] [Address(RVA = "0x272B5B0", Offset = "0x272A5B0", VA = "0x18272B5B0")] private int RotateLeft(int x, int n) { return x; } // Token: 0x0600BE9A RID: 48794 RVA: 0x002AB81C File Offset: 0x002A9A1C [Token(Token = "0x600BE9A")] [Address(RVA = "0xE4CF50", Offset = "0xE4BF50", VA = "0x180E4CF50")] private int F(int u, int v, int w) { return u; } // Token: 0x0600BE9B RID: 48795 RVA: 0x002AB82C File Offset: 0x002A9A2C [Token(Token = "0x600BE9B")] [Address(RVA = "0xE4CFB0", Offset = "0xE4BFB0", VA = "0x180E4CFB0")] private int G(int u, int v, int w) { return v; } // Token: 0x0600BE9C RID: 48796 RVA: 0x002AB83C File Offset: 0x002A9A3C [Token(Token = "0x600BE9C")] [Address(RVA = "0xE4D010", Offset = "0xE4C010", VA = "0x180E4D010")] private int H(int u, int v, int w) { return u; } // Token: 0x0600BE9D RID: 48797 RVA: 0x002AB84C File Offset: 0x002A9A4C [Token(Token = "0x600BE9D")] [Address(RVA = "0x28FE490", Offset = "0x28FD490", VA = "0x1828FE490", 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: 0x0600BE9E RID: 48798 RVA: 0x002ABA8C File Offset: 0x002A9C8C [Token(Token = "0x600BE9E")] [Address(RVA = "0x28FE1B0", Offset = "0x28FD1B0", VA = "0x1828FE1B0", Slot = "20")] public override IMemoable Copy() { /* An exception occurred when decompiling this method (0600BE9E) 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: 0x0600BE9F RID: 48799 RVA: 0x002ABAB8 File Offset: 0x002A9CB8 [Token(Token = "0x600BE9F")] [Address(RVA = "0x28FF0A0", Offset = "0x28FE0A0", VA = "0x1828FF0A0", Slot = "21")] public override void Reset(IMemoable other) { do { if (other == 0) { } } while (other == 0); } // Token: 0x04007871 RID: 30833 [Token(Token = "0x4007871")] private const int DigestLength = 16; // Token: 0x04007872 RID: 30834 [FieldOffset(Offset = "0x28")] [Token(Token = "0x4007872")] private int H1; // Token: 0x04007873 RID: 30835 [FieldOffset(Offset = "0x2C")] [Token(Token = "0x4007873")] private int H2; // Token: 0x04007874 RID: 30836 [FieldOffset(Offset = "0x30")] [Token(Token = "0x4007874")] private int H3; // Token: 0x04007875 RID: 30837 [FieldOffset(Offset = "0x34")] [Token(Token = "0x4007875")] private int H4; // Token: 0x04007876 RID: 30838 [FieldOffset(Offset = "0x38")] [Token(Token = "0x4007876")] private int[] X; // Token: 0x04007877 RID: 30839 [FieldOffset(Offset = "0x40")] [Token(Token = "0x4007877")] private int xOff; // Token: 0x04007878 RID: 30840 [Token(Token = "0x4007878")] private const int S11 = 3; // Token: 0x04007879 RID: 30841 [Token(Token = "0x4007879")] private const int S12 = 7; // Token: 0x0400787A RID: 30842 [Token(Token = "0x400787A")] private const int S13 = 11; // Token: 0x0400787B RID: 30843 [Token(Token = "0x400787B")] private const int S14 = 19; // Token: 0x0400787C RID: 30844 [Token(Token = "0x400787C")] private const int S21 = 3; // Token: 0x0400787D RID: 30845 [Token(Token = "0x400787D")] private const int S22 = 5; // Token: 0x0400787E RID: 30846 [Token(Token = "0x400787E")] private const int S23 = 9; // Token: 0x0400787F RID: 30847 [Token(Token = "0x400787F")] private const int S24 = 13; // Token: 0x04007880 RID: 30848 [Token(Token = "0x4007880")] private const int S31 = 3; // Token: 0x04007881 RID: 30849 [Token(Token = "0x4007881")] private const int S32 = 9; // Token: 0x04007882 RID: 30850 [Token(Token = "0x4007882")] private const int S33 = 11; // Token: 0x04007883 RID: 30851 [Token(Token = "0x4007883")] private const int S34 = 15; } }