using System; using System.IO; using System.Net; using System.Text; using BestHTTP.Authentication; using BestHTTP.Extensions; using BestHTTP.Logger; using Cpp2IlInjected; namespace BestHTTP { // Token: 0x0200198C RID: 6540 [Token(Token = "0x200198C")] public sealed class SOCKSProxy : Proxy { // Token: 0x06009865 RID: 39013 RVA: 0x001F152C File Offset: 0x001EF72C [Token(Token = "0x6009865")] [Address(RVA = "0x417DD0", Offset = "0x416DD0", VA = "0x180417DD0")] public SOCKSProxy(Uri address, Credentials credentials) { this.
k__BackingField = address; this.k__BackingField = credentials; } // Token: 0x06009866 RID: 39014 RVA: 0x001F1550 File Offset: 0x001EF750 [Token(Token = "0x6009866")] [Address(RVA = "0x22A3D80", Offset = "0x22A2D80", VA = "0x1822A3D80", Slot = "5")] internal override string GetRequestPath(Uri uri) { return uri.GetRequestPathAndQueryURL(); } // Token: 0x06009867 RID: 39015 RVA: 0x001F1564 File Offset: 0x001EF764 [Token(Token = "0x6009867")] [Address(RVA = "0x22A2C60", Offset = "0x22A1C60", VA = "0x1822A2C60", Slot = "4")] internal override void Connect(Stream stream, HTTPRequest request) { byte[] array; for (;;) { array = new byte[1024]; array[0] = (byte)((ulong)5L); if (HTTPManager.Logger == 0) { int num = 0; ILogger logger = HTTPManager.Logger; string text = num.ToString(); string text3; string text2 = string.Format("Sending method negotiation - count: {0} buffer: {1} ", text, text3); } int num2 = stream.ReadByte(); if (HTTPManager.Logger == 0) { int num3 = 0; ILogger logger2 = HTTPManager.Logger; string text4 = num3.ToString(); string text6; string text5 = string.Format("Negotiation response - count: {0} buffer: {1} ", text4, text6); } int length = array.Length; byte b = array[0]; byte b2 = array[0]; ILogger logger3 = HTTPManager.Logger; if (typeof(ILogger).TypeHandle == 0) { goto IL_186; } if (typeof(ILogger).TypeHandle != 0 && (typeof(ILogger).TypeHandle == (ulong)1L || typeof(ILogger).TypeHandle != (ulong)255L)) { Credentials k__BackingField = this.k__BackingField; string k__BackingField = k__BackingField.k__BackingField; string k__BackingField = k__BackingField.k__BackingField; ILogger logger4 = HTTPManager.Logger; array[0] = (byte)((ulong)1L); Credentials k__BackingField2 = this.k__BackingField; int num4 = 0; Credentials k__BackingField3 = this.k__BackingField; if (HTTPManager.Logger == 0) { int num5 = 0; ILogger logger5 = HTTPManager.Logger; string text7 = num5.ToString(); string text9; string text8 = string.Format("Sending username and password sub-negotiation - count: {0} buffer: {1} ", text7, text9); } int num6 = stream.ReadByte(); if (HTTPManager.Logger == 0) { int num7 = 0; ILogger logger6 = HTTPManager.Logger; string text10 = num7.ToString(); string text12; string text11 = string.Format("Username and password sub-negotiation response - count: {0} buffer: {1} ", text10, text12); } if ("{il2cpp array field local5->}" == num4) { break; } } } ILogger logger7 = HTTPManager.Logger; IL_186: array[0] = (byte)((ulong)5L); Uri currentUri = request.CurrentUri; if (!currentUri.IsHostIsAnIPAddress()) { currentUri.m_Syntax = (ulong)3L; string host = request.CurrentUri.Host; } string host2 = request.CurrentUri.Host; bool flag = Extensions.IsIpV4AddressValid(host2); int length2 = IPAddress.Parse(request.CurrentUri.Host).GetAddressBytes().Length; int port = request.CurrentUri.Port; int port2 = request.CurrentUri.Port; if (HTTPManager.Logger == 0) { int num8 = 0; ILogger logger8 = HTTPManager.Logger; string text13 = num8.ToString(); string text15; string text14 = string.Format("Sending connect request - count: {0} buffer: {1} ", text13, text15); } int num9 = stream.ReadByte(); if (HTTPManager.Logger == 0) { int num10 = 0; ILogger logger9 = HTTPManager.Logger; string text16 = num10.ToString(); string text18; string text17 = string.Format("Connect response - count: {0} buffer: {1} ", text16, text18); } int length3 = array.Length; byte b3 = array[0]; ILogger logger10 = HTTPManager.Logger; } // Token: 0x06009868 RID: 39016 RVA: 0x001F1804 File Offset: 0x001EFA04 [Token(Token = "0x6009868")] [Address(RVA = "0x22A3E30", Offset = "0x22A2E30", VA = "0x1822A3E30")] private void WriteString(byte[] buffer, ref int count, string str) { Encoding utf = Encoding.UTF8; count.m_value = utf; } // Token: 0x06009869 RID: 39017 RVA: 0x001F1828 File Offset: 0x001EFA28 [Token(Token = "0x6009869")] [Address(RVA = "0x22A3DE0", Offset = "0x22A2DE0", VA = "0x1822A3DE0")] private void WriteBytes(byte[] buffer, ref int count, byte[] bytes) { int length = bytes.Length; int length2 = bytes.Length; } // Token: 0x0600986A RID: 39018 RVA: 0x001F184C File Offset: 0x001EFA4C [Token(Token = "0x600986A")] [Address(RVA = "0x22A2B70", Offset = "0x22A1B70", VA = "0x1822A2B70")] private string BufferToHexStr(byte[] buffer, int count) { int num = 0; if (count > 0) { StringBuilder stringBuilder2; string text; StringBuilder stringBuilder = stringBuilder2.AppendFormat("0x{0} ", text); num++; } throw new NullReferenceException(); } } }