using System;
using System.IO;
using System.Net;
using System.Runtime.InteropServices;
using System.Text;
using BestHTTP.Authentication;
using BestHTTP.Extensions;
using BestHTTP.Logger;
using Cpp2IlInjected;
namespace BestHTTP
{
// Token: 0x020012BB RID: 4795
[Token(Token = "0x20012BB")]
[StructLayout(3)]
public sealed class SOCKSProxy : Proxy
{
// Token: 0x06007817 RID: 30743 RVA: 0x0018E518 File Offset: 0x0018C718
[Token(Token = "0x6007817")]
[Address(RVA = "0x3C39C0", Offset = "0x3C23C0", VA = "0x1803C39C0")]
public SOCKSProxy(Uri address, Credentials credentials)
{
this.
k__BackingField = address;
this.k__BackingField = credentials;
}
// Token: 0x06007818 RID: 30744 RVA: 0x0018E53C File Offset: 0x0018C73C
[Token(Token = "0x6007818")]
[Address(RVA = "0x268A500", Offset = "0x2688F00", VA = "0x18268A500", Slot = "5")]
internal override string GetRequestPath(Uri uri)
{
return uri.GetRequestPathAndQueryURL();
}
// Token: 0x06007819 RID: 30745 RVA: 0x0018E550 File Offset: 0x0018C750
[Token(Token = "0x6007819")]
[Address(RVA = "0x26893E0", Offset = "0x2687DE0", VA = "0x1826893E0", 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)
{
ILogger logger = HTTPManager.Logger;
}
int num = stream.ReadByte();
if (HTTPManager.Logger == 0)
{
ILogger logger2 = HTTPManager.Logger;
}
int length = array.Length;
byte b = array[0];
byte b2 = array[0];
ILogger logger3 = HTTPManager.Logger;
if (typeof(ILogger).TypeHandle == 0)
{
goto IL_120;
}
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 num2 = 0;
Credentials k__BackingField3 = this.k__BackingField;
if (HTTPManager.Logger == 0)
{
ILogger logger5 = HTTPManager.Logger;
}
int num3 = stream.ReadByte();
if (HTTPManager.Logger == 0)
{
ILogger logger6 = HTTPManager.Logger;
}
if ("{il2cpp array field local5->}" == num2)
{
break;
}
}
}
ILogger logger7 = HTTPManager.Logger;
IL_120:
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)
{
ILogger logger8 = HTTPManager.Logger;
}
int num4 = stream.ReadByte();
if (HTTPManager.Logger == 0)
{
ILogger logger9 = HTTPManager.Logger;
}
int length3 = array.Length;
byte b3 = array[0];
ILogger logger10 = HTTPManager.Logger;
}
// Token: 0x0600781A RID: 30746 RVA: 0x0018E758 File Offset: 0x0018C958
[Token(Token = "0x600781A")]
[Address(RVA = "0x268A5B0", Offset = "0x2688FB0", VA = "0x18268A5B0")]
private void WriteString(byte[] buffer, ref int count, string str)
{
Encoding utf = Encoding.UTF8;
count.m_value = utf;
}
// Token: 0x0600781B RID: 30747 RVA: 0x0018E77C File Offset: 0x0018C97C
[Token(Token = "0x600781B")]
[Address(RVA = "0x268A560", Offset = "0x2688F60", VA = "0x18268A560")]
private void WriteBytes(byte[] buffer, ref int count, byte[] bytes)
{
int length = bytes.Length;
int length2 = bytes.Length;
}
// Token: 0x0600781C RID: 30748 RVA: 0x0018E7A0 File Offset: 0x0018C9A0
[Token(Token = "0x600781C")]
[Address(RVA = "0x26892F0", Offset = "0x2687CF0", VA = "0x1826892F0")]
private string BufferToHexStr(byte[] buffer, int count)
{
int num = 0;
if (count > 0)
{
StringBuilder stringBuilder2;
StringBuilder stringBuilder = stringBuilder2.AppendFormat("0x{0} ", num);
num++;
}
throw new NullReferenceException();
}
}
}