using System; using System.Collections; using System.IO; using System.Runtime.Remoting; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Prng; using BestHTTP.SecureProtocol.Org.BouncyCastle.Security; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls { // Token: 0x02001C64 RID: 7268 [Token(Token = "0x2001C64")] public abstract class TlsProtocol { // Token: 0x0600B314 RID: 45844 RVA: 0x0026A9DC File Offset: 0x00268BDC [Token(Token = "0x600B314")] [Address(RVA = "0x49F860", Offset = "0x49E860", VA = "0x18049F860")] public TlsProtocol(Stream stream, SecureRandom secureRandom) { } // Token: 0x0600B315 RID: 45845 RVA: 0x0026A9EC File Offset: 0x00268BEC [Token(Token = "0x600B315")] [Address(RVA = "0x4AE640", Offset = "0x4AD640", VA = "0x1804AE640")] public TlsProtocol(Stream input, Stream output, SecureRandom secureRandom) { int num; ByteQueue byteQueue = new ByteQueue(num); num = 0; this.mApplicationDataQueue = byteQueue; ByteQueue byteQueue2 = new ByteQueue(2); this.mAlertQueue = byteQueue2; int num2; ByteQueue byteQueue3 = new ByteQueue(num2); num2 = 0; this.mHandshakeQueue = byteQueue3; this.mAppDataSplitEnabled = true; this.mBlocking = true; this.HandleChangeCipherSpecMessage(); RecordStream recordStream = new RecordStream(this, input, output); this.mRecordStream = recordStream; this.mSecureRandom = secureRandom; } // Token: 0x0600B316 RID: 45846 RVA: 0x0026AA58 File Offset: 0x00268C58 [Token(Token = "0x600B316")] [Address(RVA = "0x49F6F0", Offset = "0x49E6F0", VA = "0x18049F6F0")] public TlsProtocol(SecureRandom secureRandom) { int num; ByteQueue byteQueue = new ByteQueue(num); num = 0; this.mApplicationDataQueue = byteQueue; ByteQueue byteQueue2 = new ByteQueue(2); this.mAlertQueue = byteQueue2; int num2; ByteQueue byteQueue3 = new ByteQueue(num2); num2 = 0; this.mHandshakeQueue = byteQueue3; this.HandleChangeCipherSpecMessage(); ByteQueueStream byteQueueStream = new ByteQueueStream(); this.mInputBuffers = byteQueueStream; ByteQueueStream byteQueueStream2 = new ByteQueueStream(); ByteQueueStream byteQueueStream3 = this.mInputBuffers; this.mOutputBuffer = byteQueueStream2; RecordStream recordStream = new RecordStream(this, byteQueueStream3, byteQueueStream2); this.mRecordStream = recordStream; this.mSecureRandom = secureRandom; } // Token: 0x17001C56 RID: 7254 // (get) Token: 0x0600B317 RID: 45847 [Token(Token = "0x17001C56")] protected abstract TlsContext Context { [Token(Token = "0x600B317")] [Address(Slot = "4")] get; } // Token: 0x17001C57 RID: 7255 // (get) Token: 0x0600B318 RID: 45848 [Token(Token = "0x17001C57")] internal abstract AbstractTlsContext ContextAdmin { [Token(Token = "0x600B318")] [Address(Slot = "5")] get; } // Token: 0x17001C58 RID: 7256 // (get) Token: 0x0600B319 RID: 45849 [Token(Token = "0x17001C58")] protected abstract TlsPeer Peer { [Token(Token = "0x600B319")] [Address(Slot = "6")] get; } // Token: 0x0600B31A RID: 45850 RVA: 0x0026AADC File Offset: 0x00268CDC [Token(Token = "0x600B31A")] [Address(RVA = "0x4AB800", Offset = "0x4AA800", VA = "0x1804AB800", Slot = "7")] protected virtual void HandleAlertMessage(byte alertLevel, byte alertDescription) { AbstractTlsContext contextAdmin = this.ContextAdmin; int num = 0; if (num < (int)alertDescription) { num += num; num++; } TlsContext context = this.Context; } // Token: 0x0600B31B RID: 45851 RVA: 0x0026AB0C File Offset: 0x00268D0C [Token(Token = "0x600B31B")] [Address(RVA = "0x4AB950", Offset = "0x4AA950", VA = "0x1804AB950", Slot = "8")] protected virtual void HandleAlertWarningMessage(byte alertDescription) { while (!this.mAppDataReady) { } this.HandleChangeCipherSpecMessage(); } // Token: 0x0600B31C RID: 45852 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x600B31C")] [Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "9")] protected virtual void HandleChangeCipherSpecMessage() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600B31D RID: 45853 RVA: 0x0026AB28 File Offset: 0x00268D28 [Token(Token = "0x600B31D")] [Address(RVA = "0x4AB9E0", Offset = "0x4AA9E0", VA = "0x1804AB9E0", Slot = "10")] protected virtual void HandleClose(bool user_canceled) { if (!this.mClosed) { this.mClosed = true; if (!user_canceled || !this.mAppDataReady) { } this.mRecordStream.SafeClose(); if (!this.mAppDataReady) { } } } // Token: 0x0600B31E RID: 45854 RVA: 0x0026AB6C File Offset: 0x00268D6C [Token(Token = "0x600B31E")] [Address(RVA = "0x4ABAC0", Offset = "0x4AAAC0", VA = "0x1804ABAC0", Slot = "11")] protected virtual void HandleException(byte alertDescription, string message, Exception cause) { if (!this.mClosed) { } } // Token: 0x0600B31F RID: 45855 RVA: 0x0026AB84 File Offset: 0x00268D84 [Token(Token = "0x600B31F")] [Address(RVA = "0x4ABB50", Offset = "0x4AAB50", VA = "0x1804ABB50", Slot = "12")] protected virtual void HandleFailure() { this.mClosed = true; this.mFailedWithError = true; this.mRecordStream.SafeClose(); if (!this.mAppDataReady) { TlsContext context = this.Context; return; } } // Token: 0x0600B320 RID: 45856 [Token(Token = "0x600B320")] [Address(Slot = "13")] protected abstract void HandleHandshakeMessage(byte type, MemoryStream buf); // Token: 0x0600B321 RID: 45857 RVA: 0x0026ABC4 File Offset: 0x00268DC4 [Token(Token = "0x600B321")] [Address(RVA = "0x4AA5F0", Offset = "0x4A95F0", VA = "0x1804AA5F0", Slot = "14")] protected virtual void ApplyMaxFragmentLengthExtension() { short num = this.mSecurityParameters.maxFragmentLength - 1; RecordStream recordStream = this.mRecordStream; uint num2; recordStream.mPlaintextLimit = (int)num2; recordStream.mCompressedLimit = (int)num; recordStream.mCiphertextLimit = (int)num; } // Token: 0x0600B322 RID: 45858 RVA: 0x0026AC0C File Offset: 0x00268E0C [Token(Token = "0x600B322")] [Address(RVA = "0x4AA7F0", Offset = "0x4A97F0", VA = "0x1804AA7F0", Slot = "15")] protected virtual void CheckReceivedChangeCipherSpec(bool expected) { while (expected != this.mReceivedChangeCipherSpec) { } } // Token: 0x0600B323 RID: 45859 RVA: 0x0026AC24 File Offset: 0x00268E24 [Token(Token = "0x600B323")] [Address(RVA = "0x4AA860", Offset = "0x4A9860", VA = "0x1804AA860", Slot = "16")] protected virtual void CleanupHandshake() { byte[] array = this.mExpectedVerifyData; int num = 0; if (array != 0) { int num2 = 0; Arrays.Fill(array, (byte)num2); this.mExpectedVerifyData = num; } string text = this.mSecurityParameters.ToString(); this.mPeerCertificate = num; this.mOfferedCipherSuites = num; this.mOfferedCompressionMethods = num; this.mClientExtensions = num; this.mServerExtensions = num; this.mResumedSession = num != 0; this.mExpectSessionTicket = num != 0; } // Token: 0x0600B324 RID: 45860 RVA: 0x0026AC94 File Offset: 0x00268E94 [Token(Token = "0x600B324")] [Address(RVA = "0x4AA740", Offset = "0x4A9740", VA = "0x1804AA740", Slot = "17")] protected virtual void BlockForHandshake() { while (this.mBlocking && this.mClosed) { } } // Token: 0x0600B325 RID: 45861 RVA: 0x0026ACB4 File Offset: 0x00268EB4 [Token(Token = "0x600B325")] [Address(RVA = "0x4AAA80", Offset = "0x4A9A80", VA = "0x1804AAA80", Slot = "18")] protected virtual void CompleteHandshake() { int num; do { num = 0; this.mConnectionState = (short)((uint)16); this.mAlertQueue.Shrink(); this.mHandshakeQueue.Shrink(); RecordStream recordStream = this.mRecordStream; TlsCompression mPendingCompression = recordStream.mPendingCompression; if (recordStream.mReadCompression != mPendingCompression || recordStream.mWriteCompression != mPendingCompression) { goto IL_255; } TlsCipher mPendingCipher = recordStream.mPendingCipher; if (recordStream.mReadCipher != mPendingCipher || recordStream.mWriteCipher != mPendingCipher) { goto IL_255; } recordStream.mPendingCompression = num; recordStream.mPendingCipher = num; string text = this.ToString(); bool flag2; bool flag = !flag2; this.mAppDataSplitEnabled = flag; bool flag3 = this.mAppDataReady; if (!flag3) { this.mAppDataReady = true; if (this.mBlocking != flag3) { TlsStream tlsStream = new TlsStream(this); this.mTlsStream = tlsStream; } } if (this.mTlsSession != (ulong)0L) { if (this.mSessionParameters == (ulong)0L) { SessionParameters.Builder builder = new SessionParameters.Builder(); builder.mCipherSuite = (int)((uint)(-1)); builder.mCompressionAlgorithm = (short)((uint)(-1)); int entity = this.mSecurityParameters.Entity; builder.mCipherSuite = entity; int cipherSuite = this.mSecurityParameters.CipherSuite; builder.mCompressionAlgorithm = (short)cipherSuite; byte[] srpIdentity = this.mSecurityParameters.SrpIdentity; builder.mExtendedMasterSecret = srpIdentity != null; int verifyDataLength = this.mSecurityParameters.VerifyDataLength; builder.mMasterSecret = verifyDataLength; Certificate certificate = this.mPeerCertificate; builder.mPeerCertificate = certificate; byte[] sessionHash = this.mSecurityParameters.SessionHash; builder.mPskIdentity = sessionHash; byte[] pskIdentity = this.mSecurityParameters.PskIdentity; builder.mSrpIdentity = pskIdentity; IDictionary dictionary = this.mServerExtensions; if (dictionary != 0) { TlsProtocol.WriteExtensions(new MemoryStream(), dictionary); } builder.mEncodedServerExtensions = num; int mCipherSuite = builder.mCipherSuite; builder.Validate(mCipherSuite != 0, "cipherSuite"); short mCompressionAlgorithm = builder.mCompressionAlgorithm; builder.Validate(mCompressionAlgorithm != 0, "compressionAlgorithm"); builder.Validate(mCompressionAlgorithm != 0, "masterSecret"); Certificate certificate2 = builder.mPeerCertificate; SessionParameters sessionParameters; this.mSessionParameters = sessionParameters; TlsSession tlsSession = this.mTlsSession; TlsSessionImpl tlsSessionImpl; this.mTlsSession = tlsSessionImpl; } TlsContext context = this.Context; } AbstractTlsContext contextAdmin = this.ContextAdmin; } while (num != 0); return; IL_255: throw new NullReferenceException(); } // Token: 0x0600B326 RID: 45862 RVA: 0x0026AF28 File Offset: 0x00269128 [Token(Token = "0x600B326")] [Address(RVA = "0x4AC5C0", Offset = "0x4AB5C0", VA = "0x1804AC5C0")] protected internal void ProcessRecord(byte protocol, byte[] buf, int off, int len) { /* An exception occurred when decompiling this method (0600B326) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::ProcessRecord(System.Byte,System.Byte[],System.Int32,System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_C8: stloc:TlsFatalAlert(var_23_CF, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_24))) stloc:TlsFatalAlert(var_25_D8, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_26))) } 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: 0x0600B327 RID: 45863 RVA: 0x0026B010 File Offset: 0x00269210 [Token(Token = "0x600B327")] [Address(RVA = "0x4AC2E0", Offset = "0x4AB2E0", VA = "0x1804AC2E0")] private void ProcessHandshakeQueue(ByteQueue queue) { int num = 0; byte[] array = new byte[4]; int num2 = 0; queue.Read(array, num2, 4, num); int num3 = 0; byte b = TlsUtilities.ReadUint8(array, num3); int num4 = TlsUtilities.ReadUint24(array, 1); this.ApplyMaxFragmentLengthExtension(); this.ApplyMaxFragmentLengthExtension(); string text = this.ToString(); if (this.mExpectedVerifyData == num) { sbyte b2; this.mExpectedVerifyData = b2; } RecordStream recordStream = this.mRecordStream; queue.RemoveData(4); MemoryStream memoryStream = queue.ReadFrom(num4); this.HandleFailure(); } // Token: 0x0600B328 RID: 45864 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x600B328")] [Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0")] private void ProcessApplicationDataQueue() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600B329 RID: 45865 RVA: 0x0026B090 File Offset: 0x00269290 [Token(Token = "0x600B329")] [Address(RVA = "0x4ABFB0", Offset = "0x4AAFB0", VA = "0x1804ABFB0")] private void ProcessAlertQueue() { ByteQueue byteQueue = this.mAlertQueue; int num = 0; int length = byteQueue.RemoveData(2, num).Length; TlsPeer peer = this.Peer; ByteQueue byteQueue2 = this.mAlertQueue; } // Token: 0x0600B32A RID: 45866 RVA: 0x0026B0CC File Offset: 0x002692CC [Token(Token = "0x600B32A")] [Address(RVA = "0x4AC050", Offset = "0x4AB050", VA = "0x1804AC050")] private void ProcessChangeCipherSpec(byte[] buf, int off, int len) { int num; do { num = 0; if (len <= 0) { return; } byte b = TlsUtilities.ReadUint8(buf, 0); } while (this.mReceivedChangeCipherSpec); ByteQueue byteQueue = this.mAlertQueue; ByteQueue byteQueue2 = this.mHandshakeQueue; this.mRecordStream.ReceivedReadCipherSpec(); this.mReceivedChangeCipherSpec = true; num++; } // Token: 0x0600B32B RID: 45867 RVA: 0x0026B114 File Offset: 0x00269314 [Token(Token = "0x600B32B")] [Address(RVA = "0x4AA5D0", Offset = "0x4A95D0", VA = "0x1804AA5D0", Slot = "19")] protected internal virtual int ApplicationDataAvailable() { return this.mApplicationDataQueue.available; } // Token: 0x0600B32C RID: 45868 RVA: 0x0026B134 File Offset: 0x00269334 [Token(Token = "0x600B32C")] [Address(RVA = "0x4ACBC0", Offset = "0x4ABBC0", VA = "0x1804ACBC0", Slot = "20")] protected internal virtual int ReadApplicationData(byte[] buf, int offset, int len) { /* An exception occurred when decompiling this method (0600B32C) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::ReadApplicationData(System.Byte[],System.Int32,System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_3A: stloc:IOException(var_3_44, newobj:IOException(IOException::.ctor, ldstr:string("Cannot read application data on failed TLS connection"))) } 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.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: 0x0600B32D RID: 45869 RVA: 0x0026B188 File Offset: 0x00269388 [Token(Token = "0x600B32D")] [Address(RVA = "0x4AD3B0", Offset = "0x4AC3B0", VA = "0x1804AD3B0", Slot = "21")] protected virtual void SafeCheckRecordHeader(byte[] recordHeader) { this.mRecordStream.CheckRecordHeader(recordHeader); } // Token: 0x0600B32E RID: 45870 RVA: 0x0026B1B0 File Offset: 0x002693B0 [Token(Token = "0x600B32E")] [Address(RVA = "0x4AD4F0", Offset = "0x4AC4F0", VA = "0x1804AD4F0", Slot = "22")] protected virtual void SafeReadRecord() { if (this.mRecordStream.ReadRecord() || this.mAppDataReady) { return; } throw new NullReferenceException(); } // Token: 0x0600B32F RID: 45871 RVA: 0x0026B1E0 File Offset: 0x002693E0 [Token(Token = "0x600B32F")] [Address(RVA = "0x4AD6B0", Offset = "0x4AC6B0", VA = "0x1804AD6B0", Slot = "23")] protected virtual void SafeWriteRecord(byte type, byte[] buf, int offset, int len) { RecordStream recordStream = this.mRecordStream; } // Token: 0x0600B330 RID: 45872 RVA: 0x0026B200 File Offset: 0x00269400 [Token(Token = "0x600B330")] [Address(RVA = "0x4ADD20", Offset = "0x4ACD20", VA = "0x1804ADD20", Slot = "24")] protected internal virtual void WriteData(byte[] buf, int offset, int len) { /* An exception occurred when decompiling this method (0600B330) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::WriteData(System.Byte[],System.Int32,System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_57: stloc:IOException(var_4_61, newobj:IOException(IOException::.ctor, ldstr:string("Cannot write application data on closed/failed TLS connection"))) } 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: 0x0600B331 RID: 45873 RVA: 0x0026B270 File Offset: 0x00269470 [Token(Token = "0x600B331")] [Address(RVA = "0x4ADC80", Offset = "0x4ACC80", VA = "0x1804ADC80", Slot = "25")] protected virtual void SetAppDataSplitMode(int appDataSplitMode) { /* An exception occurred when decompiling this method (0600B331) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::SetAppDataSplitMode(System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_0C: stloc:ArgumentException(var_0_21, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string[exp:object]("Illegal appDataSplitMode mode: "), ldloc:int32[exp:object](appDataSplitMode)), ldstr:string("appDataSplitMode"))) } 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: 0x0600B332 RID: 45874 RVA: 0x0026B2A0 File Offset: 0x002694A0 [Token(Token = "0x600B332")] [Address(RVA = "0x4ADFC0", Offset = "0x4ACFC0", VA = "0x1804ADFC0", Slot = "26")] protected virtual void WriteHandshakeMessage(byte[] buf, int off, int len) { byte b = TlsUtilities.ReadUint8(buf, off); int num = this.mRecordStream.mHandshakeHashUpdater.ReadByte(); int num2 = 0; int num3 = this.mRecordStream.mPlaintextLimit; num3 = Math.Min(len, off); this.SafeReadRecord(); num2 += num3; } // Token: 0x17001C59 RID: 7257 // (get) Token: 0x0600B333 RID: 45875 RVA: 0x0026B2F0 File Offset: 0x002694F0 [Token(Token = "0x17001C59")] public virtual Stream Stream { [Token(Token = "0x600B333")] [Address(RVA = "0x4AE770", Offset = "0x4AD770", VA = "0x1804AE770", Slot = "27")] get { /* An exception occurred when decompiling this method (0600B333) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.IO.Stream BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::get_Stream() ---> System.Exception: Basic block has to end with unconditional control flow. { IL_10: stloc:InvalidOperationException(var_1_1A, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Cannot use Stream in non-blocking mode! Use OfferInput()/OfferOutput() instead."))) } 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: 0x0600B334 RID: 45876 RVA: 0x0026B318 File Offset: 0x00269518 [Token(Token = "0x600B334")] [Address(RVA = "0x4AA920", Offset = "0x4A9920", VA = "0x1804AA920", Slot = "28")] public virtual void CloseInput() { for (;;) { if (!this.mBlocking) { if (this.mClosed) { break; } ByteQueueStream byteQueueStream = this.mInputBuffers; if (this.mAppDataReady) { break; } } } } // Token: 0x0600B335 RID: 45877 RVA: 0x0026B350 File Offset: 0x00269550 [Token(Token = "0x600B335")] [Address(RVA = "0x4ABC90", Offset = "0x4AAC90", VA = "0x1804ABC90", Slot = "29")] public virtual void OfferInput(byte[] input) { /* An exception occurred when decompiling this method (0600B335) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::OfferInput(System.Byte[]) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_46: stloc:InvalidOperationException(var_7_50, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Cannot use OfferInput() in blocking mode! Use Stream instead."))) } 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: 0x0600B336 RID: 45878 RVA: 0x0026B3B0 File Offset: 0x002695B0 [Token(Token = "0x600B336")] [Address(RVA = "0x4AB390", Offset = "0x4AA390", VA = "0x1804AB390", Slot = "30")] public virtual int GetAvailableInputBytes() { /* An exception occurred when decompiling this method (0600B336) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::GetAvailableInputBytes() ---> System.Exception: Basic block has to end with unconditional control flow. { IL_10: stloc:InvalidOperationException(var_1_1A, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Cannot use GetAvailableInputBytes() in blocking mode! Use ApplicationDataAvailable() instead."))) } 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: 0x0600B337 RID: 45879 RVA: 0x0026B3D8 File Offset: 0x002695D8 [Token(Token = "0x600B337")] [Address(RVA = "0x4ACFA0", Offset = "0x4ABFA0", VA = "0x1804ACFA0", Slot = "31")] public virtual int ReadInput(byte[] buffer, int offset, int length) { /* An exception occurred when decompiling this method (0600B337) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::ReadInput(System.Byte[],System.Int32,System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_16: stloc:InvalidOperationException(var_2_20, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Cannot use ReadInput() in blocking mode! Use Stream instead."))) } 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: 0x0600B338 RID: 45880 RVA: 0x0026B408 File Offset: 0x00269608 [Token(Token = "0x600B338")] [Address(RVA = "0x4ABEB0", Offset = "0x4AAEB0", VA = "0x1804ABEB0", Slot = "32")] public virtual void OfferOutput(byte[] buffer, int offset, int length) { /* An exception occurred when decompiling this method (0600B338) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::OfferOutput(System.Byte[],System.Int32,System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_25: stloc:IOException(var_2_2F, newobj:IOException(IOException::.ctor, ldstr:string("Application data cannot be sent until the handshake is complete!"))) } 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: 0x0600B339 RID: 45881 RVA: 0x0026B444 File Offset: 0x00269644 [Token(Token = "0x600B339")] [Address(RVA = "0x4AB410", Offset = "0x4AA410", VA = "0x1804AB410", Slot = "33")] public virtual int GetAvailableOutputBytes() { /* An exception occurred when decompiling this method (0600B339) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::GetAvailableOutputBytes() ---> System.Exception: Basic block has to end with unconditional control flow. { IL_14: stloc:InvalidOperationException(var_0_1E, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Cannot use GetAvailableOutputBytes() in blocking mode! Use Stream instead."))) } 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: 0x0600B33A RID: 45882 RVA: 0x0026B470 File Offset: 0x00269670 [Token(Token = "0x600B33A")] [Address(RVA = "0x4AD0A0", Offset = "0x4AC0A0", VA = "0x1804AD0A0", Slot = "34")] public virtual int ReadOutput(byte[] buffer, int offset, int length) { /* An exception occurred when decompiling this method (0600B33A) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::ReadOutput(System.Byte[],System.Int32,System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_18: stloc:InvalidOperationException(var_0_22, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Cannot use ReadOutput() in blocking mode! Use Stream instead."))) } 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: 0x0600B33B RID: 45883 RVA: 0x0026B4A0 File Offset: 0x002696A0 [Token(Token = "0x600B33B")] [Address(RVA = "0x4ABBD0", Offset = "0x4AABD0", VA = "0x1804ABBD0", Slot = "35")] protected virtual void InvalidateSession() { SessionParameters sessionParameters = this.mSessionParameters; if (sessionParameters != 0) { byte[] mMasterSecret = sessionParameters.mMasterSecret; if (mMasterSecret != 0) { int num = 0; Arrays.Fill(mMasterSecret, (byte)num); } this.mSessionParameters = (ulong)0L; } if (this.mTlsSession != 0) { this.mTlsSession = (ulong)0L; } } // Token: 0x0600B33C RID: 45884 RVA: 0x0026B4E8 File Offset: 0x002696E8 [Token(Token = "0x600B33C")] [Address(RVA = "0x4AC1C0", Offset = "0x4AB1C0", VA = "0x1804AC1C0", Slot = "36")] protected virtual void ProcessFinishedMessage(MemoryStream buf) { for (;;) { byte[] array = this.mExpectedVerifyData; if (array != 0) { byte[] array2 = TlsUtilities.ReadFully(array.Length, buf); TlsProtocol.AssertEmpty(buf); if (Arrays.ConstantTimeAreEqual(this.mExpectedVerifyData, array2)) { break; } } } } // Token: 0x0600B33D RID: 45885 RVA: 0x0026B524 File Offset: 0x00269724 [Token(Token = "0x600B33D")] [Address(RVA = "0x4AC970", Offset = "0x4AB970", VA = "0x1804AC970", Slot = "37")] protected virtual void RaiseAlertFatal(byte alertDescription, string message, Exception cause) { AbstractTlsContext contextAdmin = this.ContextAdmin; byte[] array = new byte[2]; array[0] = (byte)((ulong)2L); array[0] = alertDescription; RecordStream recordStream = this.mRecordStream; } // Token: 0x0600B33E RID: 45886 RVA: 0x0026B564 File Offset: 0x00269764 [Token(Token = "0x600B33E")] [Address(RVA = "0x4ACAB0", Offset = "0x4ABAB0", VA = "0x1804ACAB0", Slot = "38")] protected virtual void RaiseAlertWarning(byte alertDescription, string message) { AbstractTlsContext contextAdmin = this.ContextAdmin; byte[] array = new byte[2]; array[0] = (byte)((ulong)1L); array[0] = alertDescription; this.SafeReadRecord(); } // Token: 0x0600B33F RID: 45887 RVA: 0x0026B5A0 File Offset: 0x002697A0 [Token(Token = "0x600B33F")] [Address(RVA = "0x4AD810", Offset = "0x4AC810", VA = "0x1804AD810", Slot = "39")] protected virtual void SendCertificateMessage(Certificate certificate) { if (certificate == 0) { Certificate emptyChain = Certificate.EmptyChain; } if (certificate.Length != 0 && this.ToString() == 0) { string text = this.ToString(); bool flag; if (flag) { int hashCode = text.GetHashCode(); TlsContext context = this.Context; return; } } TlsProtocol.HandshakeMessage handshakeMessage; handshakeMessage.WriteToRecordStream(this); } // Token: 0x0600B340 RID: 45888 RVA: 0x0026B5F4 File Offset: 0x002697F4 [Token(Token = "0x600B340")] [Address(RVA = "0x4AD9D0", Offset = "0x4AC9D0", VA = "0x1804AD9D0", Slot = "40")] protected virtual void SendChangeCipherSpecMessage() { RecordStream recordStream; TlsCompression mPendingCompression; TlsCipher mPendingCipher; for (;;) { int length = new byte[] { (byte)((ulong)1L) }.Length; this.SafeReadRecord(); recordStream = this.mRecordStream; mPendingCompression = recordStream.mPendingCompression; if (mPendingCompression != 0) { mPendingCipher = recordStream.mPendingCipher; if (mPendingCipher != 0) { break; } } } recordStream.mWriteCompression = mPendingCompression; recordStream.mWriteCipher = mPendingCipher; RecordStream.SequenceNumber sequenceNumber = new RecordStream.SequenceNumber(); recordStream.mWriteSeqNo = sequenceNumber; } // Token: 0x0600B341 RID: 45889 RVA: 0x0026B664 File Offset: 0x00269864 [Token(Token = "0x600B341")] [Address(RVA = "0x4ADB00", Offset = "0x4ACB00", VA = "0x1804ADB00", Slot = "41")] protected virtual void SendFinishedMessage() { string text = this.ToString(); TlsProtocol.HandshakeMessage handshakeMessage; int num = handshakeMessage.ReadByte(); handshakeMessage.WriteToRecordStream(this); } // Token: 0x0600B342 RID: 45890 RVA: 0x0026B68C File Offset: 0x0026988C [Token(Token = "0x600B342")] [Address(RVA = "0x4ADBF0", Offset = "0x4ACBF0", VA = "0x1804ADBF0", Slot = "42")] protected virtual void SendSupplementalDataMessage(IList supplementalData) { TlsProtocol.HandshakeMessage handshakeMessage; TlsProtocol.WriteSupplementalData(handshakeMessage, supplementalData); handshakeMessage.WriteToRecordStream(this); } // Token: 0x0600B343 RID: 45891 RVA: 0x0026B6B0 File Offset: 0x002698B0 [Token(Token = "0x600B343")] [Address(RVA = "0x4AB0F0", Offset = "0x4AA0F0", VA = "0x1804AB0F0", Slot = "43")] protected virtual byte[] CreateVerifyData(bool isServer) { string text = this.ToString(); if (isServer) { } RecordStream recordStream = this.mRecordStream; byte[] array; return array; } // Token: 0x0600B344 RID: 45892 RVA: 0x0026B6D8 File Offset: 0x002698D8 [Token(Token = "0x600B344")] [Address(RVA = "0x4AAA60", Offset = "0x4A9A60", VA = "0x1804AAA60", Slot = "44")] public virtual void Close() { TlsContext context = this.Context; } // Token: 0x0600B345 RID: 45893 RVA: 0x0026B6EC File Offset: 0x002698EC [Token(Token = "0x600B345")] [Address(RVA = "0x4AB350", Offset = "0x4AA350", VA = "0x1804AB350", Slot = "45")] protected internal virtual void Flush() { bool canRead = this.mRecordStream.mOutput.CanRead; } // Token: 0x17001C5A RID: 7258 // (get) Token: 0x0600B346 RID: 45894 RVA: 0x0026B710 File Offset: 0x00269910 [Token(Token = "0x17001C5A")] public virtual bool IsClosed { [Token(Token = "0x600B346")] [Address(RVA = "0x4AE750", Offset = "0x4AD750", VA = "0x1804AE750", Slot = "46")] get { return this.mClosed; } } // Token: 0x0600B347 RID: 45895 RVA: 0x0026B724 File Offset: 0x00269924 [Token(Token = "0x600B347")] [Address(RVA = "0x4AC500", Offset = "0x4AB500", VA = "0x1804AC500", Slot = "47")] protected virtual short ProcessMaxFragmentLengthExtension(IDictionary clientExtensions, IDictionary serverExtensions, byte alertDescription) { /* An exception occurred when decompiling this method (0600B347) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int16 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::ProcessMaxFragmentLengthExtension(System.Collections.IDictionary,System.Collections.IDictionary,System.Byte) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_21: stloc:TlsFatalAlert(var_3_27, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint8(alertDescription))) } 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.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: 0x0600B348 RID: 45896 RVA: 0x0026B758 File Offset: 0x00269958 [Token(Token = "0x600B348")] [Address(RVA = "0x4AD2F0", Offset = "0x4AC2F0", VA = "0x1804AD2F0", Slot = "48")] protected virtual void RefuseRenegotiation() { bool flag; do { string text = this.ToString(); } while (flag); TlsContext context = this.Context; } // Token: 0x0600B349 RID: 45897 RVA: 0x0026B778 File Offset: 0x00269978 [Token(Token = "0x600B349")] [Address(RVA = "0x4AA6A0", Offset = "0x4A96A0", VA = "0x1804AA6A0")] protected internal static void AssertEmpty(MemoryStream buf) { long length = buf.Length; bool canWrite = buf.CanWrite; } // Token: 0x0600B34A RID: 45898 RVA: 0x0026B794 File Offset: 0x00269994 [Token(Token = "0x600B34A")] [Address(RVA = "0x4AAFE0", Offset = "0x4A9FE0", VA = "0x1804AAFE0")] protected internal static byte[] CreateRandomBlock(bool useGmtUnixTime, IRandomGenerator randomGenerator) { byte[] array = new byte[32]; if (useGmtUnixTime) { int num = 0; TlsUtilities.WriteGmtUnixTime(array, num); } return array; } // Token: 0x0600B34B RID: 45899 RVA: 0x0026B7C0 File Offset: 0x002699C0 [Token(Token = "0x600B34B")] [Address(RVA = "0x4AB090", Offset = "0x4AA090", VA = "0x1804AB090")] protected internal static byte[] CreateRenegotiationInfo(byte[] renegotiated_connection) { return TlsUtilities.EncodeOpaque8(renegotiated_connection); } // Token: 0x0600B34C RID: 45900 RVA: 0x0026B7D4 File Offset: 0x002699D4 [Token(Token = "0x600B34C")] [Address(RVA = "0x4AB210", Offset = "0x4AA210", VA = "0x1804AB210")] protected internal static void EstablishMasterSecret(TlsContext context, TlsKeyExchange keyExchange) { while (0 != 0) { } } // Token: 0x0600B34D RID: 45901 RVA: 0x0026B7F4 File Offset: 0x002699F4 [Token(Token = "0x600B34D")] [Address(RVA = "0x4AB4A0", Offset = "0x4AA4A0", VA = "0x1804AB4A0")] protected internal static byte[] GetCurrentPrfHash(TlsContext context, TlsHandshakeHash handshakeHash, byte[] sslSender) { if (sslSender != 0 && TlsUtilities.IsSsl(context)) { int length = sslSender.Length; } return DigestUtilities.DoFinal(handshakeHash); } // Token: 0x0600B34E RID: 45902 RVA: 0x0026B824 File Offset: 0x00269A24 [Token(Token = "0x600B34E")] [Address(RVA = "0x4ACD60", Offset = "0x4ABD60", VA = "0x1804ACD60")] protected internal static IDictionary ReadExtensions(MemoryStream input) { MemoryStream memoryStream; IDictionary dictionary; do { long length = input.Length; bool canWrite = input.CanWrite; if (length >= (canWrite ? 1L : 0L)) { goto IL_5F; } byte[] array = TlsUtilities.ReadOpaque16(input); TlsProtocol.AssertEmpty(input); int num; memoryStream = new MemoryStream(array, num != 0); num = 0; dictionary = Platform.CreateHashtable(); long length2 = memoryStream.Length; bool canWrite2 = memoryStream.CanWrite; if (length2 >= (canWrite2 ? 1L : 0L)) { break; } int num2 = TlsUtilities.ReadUint16(memoryStream); } while (TlsUtilities.ReadOpaque16(memoryStream) != 0); return dictionary; IL_5F: throw new NullReferenceException(); } // Token: 0x0600B34F RID: 45903 RVA: 0x0026B898 File Offset: 0x00269A98 [Token(Token = "0x600B34F")] [Address(RVA = "0x4AD160", Offset = "0x4AC160", VA = "0x1804AD160")] protected internal static IList ReadSupplementalDataMessage(MemoryStream input) { byte[] array = TlsUtilities.ReadOpaque24(input); TlsProtocol.AssertEmpty(input); int num; MemoryStream memoryStream = new MemoryStream(array, num != 0); num = 0; IList list = Platform.CreateArrayList(); long length = memoryStream.Length; bool canWrite = memoryStream.CanWrite; if (length < (canWrite ? 1L : 0L)) { int num2 = TlsUtilities.ReadUint16(memoryStream); byte[] array2 = TlsUtilities.ReadOpaque16(memoryStream); SupplementalDataEntry supplementalDataEntry; supplementalDataEntry.mDataType = num2; supplementalDataEntry.mData = array2; } return list; } // Token: 0x0600B350 RID: 45904 RVA: 0x0026B908 File Offset: 0x00269B08 [Token(Token = "0x600B350")] [Address(RVA = "0x4ADEF0", Offset = "0x4ACEF0", VA = "0x1804ADEF0")] protected internal static void WriteExtensions(Stream output, IDictionary extensions) { MemoryStream memoryStream = new MemoryStream(); TlsProtocol.WriteSelectedExtensions(memoryStream, extensions, true); int num = 0; TlsProtocol.WriteSelectedExtensions(memoryStream, extensions, num != 0); } // Token: 0x0600B351 RID: 45905 RVA: 0x0026B934 File Offset: 0x00269B34 [Token(Token = "0x600B351")] [Address(RVA = "0x4AE130", Offset = "0x4AD130", VA = "0x1804AE130")] protected internal static void WriteSelectedExtensions(Stream output, IDictionary extensions, bool selectEmpty) { int num; do { num = 0; if (num < typeof(int).TypeHandle) { num += num; num++; } bool flag = "{il2cpp field on {'constant5' (constant value of type Cpp2IL.Core.Analysis.ResultModels.StackPointer)}, offset 0x18}" == num; } while (num != 0); } // Token: 0x0600B352 RID: 45906 RVA: 0x0026B974 File Offset: 0x00269B74 [Token(Token = "0x600B352")] [Address(RVA = "0x4AE3E0", Offset = "0x4AD3E0", VA = "0x1804AE3E0")] protected internal static void WriteSupplementalData(Stream output, IList supplementalData) { int num; do { num = 0; MemoryStream memoryStream = new MemoryStream(); if (memoryStream != 0) { if (memoryStream == 0) { goto IL_29; } string text = memoryStream.ToString(); } ObjRef objRef; if (objRef != 0) { } } while (num != 0); return; IL_29: throw new NullReferenceException(); } // Token: 0x0600B353 RID: 45907 RVA: 0x0026B9B8 File Offset: 0x00269BB8 [Token(Token = "0x600B353")] [Address(RVA = "0x4AB590", Offset = "0x4AA590", VA = "0x1804AB590")] protected internal static int GetPrfAlgorithm(TlsContext context, int ciphersuite) { /* An exception occurred when decompiling this method (0600B353) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::GetPrfAlgorithm(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsContext,System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_52: stloc:TlsFatalAlert(var_5_59, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_6))) } 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: 0x040071DF RID: 29151 [Token(Token = "0x40071DF")] protected const short CS_START = 0; // Token: 0x040071E0 RID: 29152 [Token(Token = "0x40071E0")] protected const short CS_CLIENT_HELLO = 1; // Token: 0x040071E1 RID: 29153 [Token(Token = "0x40071E1")] protected const short CS_SERVER_HELLO = 2; // Token: 0x040071E2 RID: 29154 [Token(Token = "0x40071E2")] protected const short CS_SERVER_SUPPLEMENTAL_DATA = 3; // Token: 0x040071E3 RID: 29155 [Token(Token = "0x40071E3")] protected const short CS_SERVER_CERTIFICATE = 4; // Token: 0x040071E4 RID: 29156 [Token(Token = "0x40071E4")] protected const short CS_CERTIFICATE_STATUS = 5; // Token: 0x040071E5 RID: 29157 [Token(Token = "0x40071E5")] protected const short CS_SERVER_KEY_EXCHANGE = 6; // Token: 0x040071E6 RID: 29158 [Token(Token = "0x40071E6")] protected const short CS_CERTIFICATE_REQUEST = 7; // Token: 0x040071E7 RID: 29159 [Token(Token = "0x40071E7")] protected const short CS_SERVER_HELLO_DONE = 8; // Token: 0x040071E8 RID: 29160 [Token(Token = "0x40071E8")] protected const short CS_CLIENT_SUPPLEMENTAL_DATA = 9; // Token: 0x040071E9 RID: 29161 [Token(Token = "0x40071E9")] protected const short CS_CLIENT_CERTIFICATE = 10; // Token: 0x040071EA RID: 29162 [Token(Token = "0x40071EA")] protected const short CS_CLIENT_KEY_EXCHANGE = 11; // Token: 0x040071EB RID: 29163 [Token(Token = "0x40071EB")] protected const short CS_CERTIFICATE_VERIFY = 12; // Token: 0x040071EC RID: 29164 [Token(Token = "0x40071EC")] protected const short CS_CLIENT_FINISHED = 13; // Token: 0x040071ED RID: 29165 [Token(Token = "0x40071ED")] protected const short CS_SERVER_SESSION_TICKET = 14; // Token: 0x040071EE RID: 29166 [Token(Token = "0x40071EE")] protected const short CS_SERVER_FINISHED = 15; // Token: 0x040071EF RID: 29167 [Token(Token = "0x40071EF")] protected const short CS_END = 16; // Token: 0x040071F0 RID: 29168 [Token(Token = "0x40071F0")] protected const short ADS_MODE_1_Nsub1 = 0; // Token: 0x040071F1 RID: 29169 [Token(Token = "0x40071F1")] protected const short ADS_MODE_0_N = 1; // Token: 0x040071F2 RID: 29170 [Token(Token = "0x40071F2")] protected const short ADS_MODE_0_N_FIRSTONLY = 2; // Token: 0x040071F3 RID: 29171 [FieldOffset(Offset = "0x10")] [Token(Token = "0x40071F3")] private ByteQueue mApplicationDataQueue; // Token: 0x040071F4 RID: 29172 [FieldOffset(Offset = "0x18")] [Token(Token = "0x40071F4")] private ByteQueue mAlertQueue; // Token: 0x040071F5 RID: 29173 [FieldOffset(Offset = "0x20")] [Token(Token = "0x40071F5")] private ByteQueue mHandshakeQueue; // Token: 0x040071F6 RID: 29174 [FieldOffset(Offset = "0x28")] [Token(Token = "0x40071F6")] internal RecordStream mRecordStream; // Token: 0x040071F7 RID: 29175 [FieldOffset(Offset = "0x30")] [Token(Token = "0x40071F7")] protected SecureRandom mSecureRandom; // Token: 0x040071F8 RID: 29176 [FieldOffset(Offset = "0x38")] [Token(Token = "0x40071F8")] private TlsStream mTlsStream; // Token: 0x040071F9 RID: 29177 [FieldOffset(Offset = "0x40")] [Token(Token = "0x40071F9")] private bool mClosed; // Token: 0x040071FA RID: 29178 [FieldOffset(Offset = "0x41")] [Token(Token = "0x40071FA")] private bool mFailedWithError; // Token: 0x040071FB RID: 29179 [FieldOffset(Offset = "0x42")] [Token(Token = "0x40071FB")] private bool mAppDataReady; // Token: 0x040071FC RID: 29180 [FieldOffset(Offset = "0x43")] [Token(Token = "0x40071FC")] private bool mAppDataSplitEnabled; // Token: 0x040071FD RID: 29181 [FieldOffset(Offset = "0x44")] [Token(Token = "0x40071FD")] private int mAppDataSplitMode; // Token: 0x040071FE RID: 29182 [FieldOffset(Offset = "0x48")] [Token(Token = "0x40071FE")] private byte[] mExpectedVerifyData; // Token: 0x040071FF RID: 29183 [FieldOffset(Offset = "0x50")] [Token(Token = "0x40071FF")] protected TlsSession mTlsSession; // Token: 0x04007200 RID: 29184 [FieldOffset(Offset = "0x58")] [Token(Token = "0x4007200")] protected SessionParameters mSessionParameters; // Token: 0x04007201 RID: 29185 [FieldOffset(Offset = "0x60")] [Token(Token = "0x4007201")] protected SecurityParameters mSecurityParameters; // Token: 0x04007202 RID: 29186 [FieldOffset(Offset = "0x68")] [Token(Token = "0x4007202")] protected Certificate mPeerCertificate; // Token: 0x04007203 RID: 29187 [FieldOffset(Offset = "0x70")] [Token(Token = "0x4007203")] protected int[] mOfferedCipherSuites; // Token: 0x04007204 RID: 29188 [FieldOffset(Offset = "0x78")] [Token(Token = "0x4007204")] protected byte[] mOfferedCompressionMethods; // Token: 0x04007205 RID: 29189 [FieldOffset(Offset = "0x80")] [Token(Token = "0x4007205")] protected IDictionary mClientExtensions; // Token: 0x04007206 RID: 29190 [FieldOffset(Offset = "0x88")] [Token(Token = "0x4007206")] protected IDictionary mServerExtensions; // Token: 0x04007207 RID: 29191 [FieldOffset(Offset = "0x90")] [Token(Token = "0x4007207")] protected short mConnectionState; // Token: 0x04007208 RID: 29192 [FieldOffset(Offset = "0x92")] [Token(Token = "0x4007208")] protected bool mResumedSession; // Token: 0x04007209 RID: 29193 [FieldOffset(Offset = "0x93")] [Token(Token = "0x4007209")] protected bool mReceivedChangeCipherSpec; // Token: 0x0400720A RID: 29194 [FieldOffset(Offset = "0x94")] [Token(Token = "0x400720A")] protected bool mSecureRenegotiation; // Token: 0x0400720B RID: 29195 [FieldOffset(Offset = "0x95")] [Token(Token = "0x400720B")] protected bool mAllowCertificateStatus; // Token: 0x0400720C RID: 29196 [FieldOffset(Offset = "0x96")] [Token(Token = "0x400720C")] protected bool mExpectSessionTicket; // Token: 0x0400720D RID: 29197 [FieldOffset(Offset = "0x97")] [Token(Token = "0x400720D")] protected bool mBlocking; // Token: 0x0400720E RID: 29198 [FieldOffset(Offset = "0x98")] [Token(Token = "0x400720E")] protected ByteQueueStream mInputBuffers; // Token: 0x0400720F RID: 29199 [FieldOffset(Offset = "0xA0")] [Token(Token = "0x400720F")] protected ByteQueueStream mOutputBuffer; // Token: 0x02001C65 RID: 7269 [Token(Token = "0x2001C65")] internal class HandshakeMessage : MemoryStream { // Token: 0x0600B354 RID: 45908 RVA: 0x0026BA20 File Offset: 0x00269C20 [Token(Token = "0x600B354")] [Address(RVA = "0x45CDC0", Offset = "0x45BDC0", VA = "0x18045CDC0")] internal HandshakeMessage(byte handshakeType) { } // Token: 0x0600B355 RID: 45909 RVA: 0x0026BA30 File Offset: 0x00269C30 [Token(Token = "0x600B355")] [Address(RVA = "0x45CDD0", Offset = "0x45BDD0", VA = "0x18045CDD0")] internal HandshakeMessage(byte handshakeType, int length) : base((int)handshakeType) { ((IDisposable)this).Dispose(); } // Token: 0x0600B356 RID: 45910 RVA: 0x0026BA50 File Offset: 0x00269C50 [Token(Token = "0x600B356")] [Address(RVA = "0x45CD80", Offset = "0x45BD80", VA = "0x18045CD80")] internal void Write(byte[] data) { int num = this.ReadByte(); } // Token: 0x0600B357 RID: 45911 RVA: 0x0026BA6C File Offset: 0x00269C6C [Token(Token = "0x600B357")] [Address(RVA = "0x45CBA0", Offset = "0x45BBA0", VA = "0x18045CBA0")] internal void WriteToRecordStream(TlsProtocol protocol) { bool canWrite = this.CanWrite; long position = this.Position; bool canWrite2 = this.CanWrite; } } } }