using System; using System.Collections.Generic; using System.IO; using System.Runtime.InteropServices; using System.Security.Cryptography; using System.Text; using System.Text.RegularExpressions; using Cpp2IlInjected; namespace BestHTTP.Extensions { // Token: 0x0200206F RID: 8303 [Token(Token = "0x200206F")] public static class Extensions { // Token: 0x0600D07C RID: 53372 RVA: 0x002F5E44 File Offset: 0x002F4044 [Token(Token = "0x600D07C")] [Address(RVA = "0x2A6E460", Offset = "0x2A6D460", VA = "0x182A6E460")] public static string AsciiToString(this byte[] bytes) { int length; StringBuilder stringBuilder = new StringBuilder(length); length = bytes.Length; int num = 0; int length2 = bytes.Length; if (num < length2) { byte b; StringBuilder stringBuilder2 = stringBuilder.Append((char)b); num++; } throw new NullReferenceException(); } // Token: 0x0600D07D RID: 53373 RVA: 0x002F5E80 File Offset: 0x002F4080 [Token(Token = "0x600D07D")] [Address(RVA = "0x2A6E910", Offset = "0x2A6D910", VA = "0x182A6E910")] public static byte[] GetASCIIBytes(this string str) { int stringLength = str.m_stringLength; int num = 0; byte[] array = VariableSizedBufferPool.Get((long)stringLength, num != 0); int num2 = 0; if (num2 < str.m_stringLength) { char c = str[num2]; num2++; } return array; } // Token: 0x0600D07E RID: 53374 RVA: 0x002F5EC0 File Offset: 0x002F40C0 [Token(Token = "0x600D07E")] [Address(RVA = "0x2A6F780", Offset = "0x2A6E780", VA = "0x182A6F780")] public static void SendAsASCII(this BinaryWriter stream, string str) { int num = 0; if (num < str.m_stringLength) { char c = str[num]; stream.Write(c != '\0'); num++; } } // Token: 0x0600D07F RID: 53375 RVA: 0x002F5EF4 File Offset: 0x002F40F4 [Token(Token = "0x600D07F")] [Address(RVA = "0x2A6FCD0", Offset = "0x2A6ECD0", VA = "0x182A6FCD0")] public static void WriteLine(this Stream fs) { int num = fs.ReadByte(); } // Token: 0x0600D080 RID: 53376 RVA: 0x002F5F10 File Offset: 0x002F4110 [Token(Token = "0x600D080")] [Address(RVA = "0x2A6FE50", Offset = "0x2A6EE50", VA = "0x182A6FE50")] public static void WriteLine(this Stream fs, string line) { byte[] asciibytes = line.GetASCIIBytes(); int num = fs.ReadByte(); fs.WriteLine(); VariableSizedBufferPool.Release(asciibytes); } // Token: 0x0600D081 RID: 53377 RVA: 0x002F5F40 File Offset: 0x002F4140 [Token(Token = "0x600D081")] [Address(RVA = "0x2A6FD60", Offset = "0x2A6ED60", VA = "0x182A6FD60")] public static void WriteLine(this Stream fs, string format, params object[] values) { byte[] asciibytes = string.Format(format, values).GetASCIIBytes(); int num = fs.ReadByte(); fs.WriteLine(); VariableSizedBufferPool.Release(asciibytes); } // Token: 0x0600D082 RID: 53378 RVA: 0x002F5F74 File Offset: 0x002F4174 [Token(Token = "0x600D082")] [Address(RVA = "0x2A6E9F0", Offset = "0x2A6D9F0", VA = "0x182A6E9F0")] public static string GetRequestPathAndQueryURL(this Uri uri) { string parts = uri.GetParts(UriComponents.PathAndQuery, UriFormat.UriEscaped); return "/"; } // Token: 0x0600D083 RID: 53379 RVA: 0x002F5F98 File Offset: 0x002F4198 [Token(Token = "0x600D083")] [Address(RVA = "0x2A6E770", Offset = "0x2A6D770", VA = "0x182A6E770")] public static string[] FindOption(this string str, string option) { string text = str.ToLower(); (new char[1])[0] = (char)((uint)44); string text2 = option.ToLower(); int num = 0; string[] array; int length = array.Length; if (num < length) { string text3 = array[num]; int num2 = 0; if (!text3.Contains(text2)) { num++; } string text4 = array[num]; return text4.Split(new char[] { (char)((uint)61) }, (StringSplitOptions)num2); } throw new NullReferenceException(); } // Token: 0x0600D084 RID: 53380 RVA: 0x002F601C File Offset: 0x002F421C [Token(Token = "0x600D084")] [Address(RVA = "0x1156660", Offset = "0x1155660", VA = "0x181156660")] public static void WriteArray(this Stream stream, byte[] array) { int num = stream.ReadByte(); } // Token: 0x0600D085 RID: 53381 RVA: 0x002F6038 File Offset: 0x002F4238 [Token(Token = "0x600D085")] [Address(RVA = "0x2A6EA60", Offset = "0x2A6DA60", VA = "0x182A6EA60")] public static bool IsHostIsAnIPAddress(this Uri uri) { int num = 0; if (!(uri == num)) { string host = uri.Host; if (!string.IsNullOrEmpty(host)) { string text = host.Trim(); bool flag; if (flag) { return true; } } bool flag2; if (!string.IsNullOrEmpty(uri.Host) && flag2) { bool flag3; return flag3; } } throw new NullReferenceException(); } // Token: 0x0600D086 RID: 53382 RVA: 0x002F6090 File Offset: 0x002F4290 [Token(Token = "0x600D086")] [Address(RVA = "0x2A6EC70", Offset = "0x2A6DC70", VA = "0x182A6EC70")] public static bool IsIpV4AddressValid(string address) { if (string.IsNullOrEmpty(address)) { } string text = address.Trim(); bool flag; return flag; } // Token: 0x0600D087 RID: 53383 RVA: 0x002F60B8 File Offset: 0x002F42B8 [Token(Token = "0x600D087")] [Address(RVA = "0x2A6ED20", Offset = "0x2A6DD20", VA = "0x182A6ED20")] public static bool IsIpV6AddressValid(string address) { bool flag; if (!string.IsNullOrEmpty(address) && flag) { bool flag2; return flag2; } throw new NullReferenceException(); } // Token: 0x0600D088 RID: 53384 RVA: 0x002F60DC File Offset: 0x002F42DC [Token(Token = "0x600D088")] [Address(RVA = "0x2A6F960", Offset = "0x2A6E960", VA = "0x182A6F960")] public static int ToInt32(this string str, int defaultValue = 0) { if (str != 0) { return int.Parse(str); } return defaultValue; } // Token: 0x0600D089 RID: 53385 RVA: 0x002F60F8 File Offset: 0x002F42F8 [Token(Token = "0x600D089")] [Address(RVA = "0x2A6F9E0", Offset = "0x2A6E9E0", VA = "0x182A6F9E0")] public static long ToInt64(this string str, long defaultValue = 0L) { if (str != 0) { return long.Parse(str); } return defaultValue; } // Token: 0x0600D08A RID: 53386 RVA: 0x002F6114 File Offset: 0x002F4314 [Token(Token = "0x600D08A")] [Address(RVA = "0x2A6F8B0", Offset = "0x2A6E8B0", VA = "0x182A6F8B0")] public static DateTime ToDateTime(this string str, [Optional] DateTime defaultValue) { if (str != 0) { bool flag = DateTime.TryParse(str, defaultValue); DateTime dateTime; return dateTime; } return defaultValue; } // Token: 0x0600D08B RID: 53387 RVA: 0x002F6130 File Offset: 0x002F4330 [Token(Token = "0x600D08B")] [Address(RVA = "0x2A6FA60", Offset = "0x2A6EA60", VA = "0x182A6FA60")] public static string ToStrOrEmpty(this string str) { if (str != 0) { return str; } return string.Empty; } // Token: 0x0600D08C RID: 53388 RVA: 0x002F6148 File Offset: 0x002F4348 [Token(Token = "0x600D08C")] [Address(RVA = "0x2A6E6D0", Offset = "0x2A6D6D0", VA = "0x182A6E6D0")] public static string CalculateMD5Hash(this string input) { byte[] asciibytes = input.GetASCIIBytes(); string text = asciibytes.CalculateMD5Hash(); VariableSizedBufferPool.Release(asciibytes); return text; } // Token: 0x0600D08D RID: 53389 RVA: 0x002F616C File Offset: 0x002F436C [Token(Token = "0x600D08D")] [Address(RVA = "0x2A6E530", Offset = "0x2A6D530", VA = "0x182A6E530")] public static string CalculateMD5Hash(this byte[] input) { int num; do { num = 0; MD5 md = MD5.Create(); byte[] array = md.ComputeHash(input); int length; StringBuilder stringBuilder = new StringBuilder(length); length = array.Length; if (num < array.Length) { num += 32; num += array; string text; StringBuilder stringBuilder2 = stringBuilder.Append(text); num++; } VariableSizedBufferPool.Release(array); int hashCode = stringBuilder.GetHashCode(); if (md != 0) { } } while (num != 0); throw new IndexOutOfRangeException(); } // Token: 0x0600D08E RID: 53390 RVA: 0x002F61F4 File Offset: 0x002F43F4 [Token(Token = "0x600D08E")] [Address(RVA = "0x2A6F690", Offset = "0x2A6E690", VA = "0x182A6F690")] internal static string Read(this string str, ref int pos, char block, bool needResult = true) { Func func = (char ch) => ch != block; return Extensions.Read(str, ref pos, func, needResult); } // Token: 0x0600D08F RID: 53391 RVA: 0x002F622C File Offset: 0x002F442C [Token(Token = "0x600D08F")] [Address(RVA = "0x2A6F580", Offset = "0x2A6E580", VA = "0x182A6F580")] internal static string Read(this string str, ref int pos, Func block, bool needResult = true) { int stringLength = str.m_stringLength; str.SkipWhiteSpace(ref pos); char c; if (block(c) != 0) { } if (needResult) { } throw new NullReferenceException(); } // Token: 0x0600D090 RID: 53392 RVA: 0x002F625C File Offset: 0x002F445C [Token(Token = "0x600D090")] [Address(RVA = "0x2A6F3C0", Offset = "0x2A6E3C0", VA = "0x182A6F3C0")] internal static string ReadPossibleQuotedText(this string str, ref int pos) { string empty = string.Empty; if (str != 0) { Func <>9__21_ = Extensions.<>c.<>9__21_0; if (<>9__21_ == 0) { Extensions.<>c.<>9__21_0 = delegate(char ch) { bool flag; return flag; }; } string text = Extensions.Read(str, ref pos, <>9__21_, true); } return empty; } // Token: 0x0600D091 RID: 53393 RVA: 0x002F62AC File Offset: 0x002F44AC [Token(Token = "0x600D091")] [Address(RVA = "0x2A6F810", Offset = "0x2A6E810", VA = "0x182A6F810")] internal static void SkipWhiteSpace(this string str, ref int pos) { char c; if (char.IsWhiteSpace(c)) { } } // Token: 0x0600D092 RID: 53394 RVA: 0x002F62C8 File Offset: 0x002F44C8 [Token(Token = "0x600D092")] [Address(RVA = "0x2A6FAB0", Offset = "0x2A6EAB0", VA = "0x182A6FAB0")] internal static string TrimAndLower(this string str) { if (str != 0) { char[] array = new char[str.m_stringLength]; int num = 0; int num2 = 0; if (0 < str.m_stringLength) { char c = str[num2]; if (!char.IsWhiteSpace(c) && !char.IsControl(c)) { num++; char c2 = char.ToLowerInvariant(c); array[0] = c2; } num2++; } string text; return text; } throw new IndexOutOfRangeException(); } // Token: 0x0600D093 RID: 53395 RVA: 0x002F6338 File Offset: 0x002F4538 [Token(Token = "0x600D093")] [Address(RVA = "0x2A6F1E0", Offset = "0x2A6E1E0", VA = "0x182A6F1E0")] internal static char? Peek(this string str, int pos) { if (pos < str.m_stringLength) { char c = str[pos]; } throw new NullReferenceException(); } // Token: 0x0600D094 RID: 53396 RVA: 0x002F6360 File Offset: 0x002F4560 [Token(Token = "0x600D094")] [Address(RVA = "0x2A6EDC0", Offset = "0x2A6DDC0", VA = "0x182A6EDC0")] internal static List ParseOptionalHeader(this string str) { List list = new List(); if (str != 0) { int num = 0; if (num < str.m_stringLength) { Func <>9__25_ = Extensions.<>c.<>9__25_0; if (<>9__25_ == 0) { Extensions.<>c.<>9__25_0 = delegate(char ch) { bool flag; return flag; }; } string text = Extensions.Read(str, num, <>9__25_, true).TrimAndLower(); HeaderValue headerValue = new HeaderValue(); headerValue.k__BackingField = text; char c = str[-1]; string text2 = str.ReadPossibleQuotedText(num); headerValue.k__BackingField = text2; list.Add(headerValue); } } return list; } // Token: 0x0600D095 RID: 53397 RVA: 0x002F63EC File Offset: 0x002F45EC [Token(Token = "0x600D095")] [Address(RVA = "0x2A6EFC0", Offset = "0x2A6DFC0", VA = "0x182A6EFC0")] internal static List ParseQualityParams(this string str) { List list = new List(); if (str != 0) { int num = 0; if (num < str.m_stringLength) { Func <>9__26_ = Extensions.<>c.<>9__26_0; if (<>9__26_ == 0) { Extensions.<>c.<>9__26_0 = delegate(char ch) { bool flag; return flag; }; } string text = Extensions.Read(str, num, <>9__26_, true).TrimAndLower(); HeaderValue headerValue = new HeaderValue(); headerValue.k__BackingField = text; char c = str[-1]; string text2; headerValue.k__BackingField = text2; list.Add(headerValue); } } return list; } // Token: 0x0600D096 RID: 53398 RVA: 0x002F6470 File Offset: 0x002F4670 [Token(Token = "0x600D096")] [Address(RVA = "0x2A6F270", Offset = "0x2A6E270", VA = "0x182A6F270")] public static void ReadBuffer(this Stream stream, byte[] buffer) { int num = 0; int num2 = buffer.Length; num2 -= num; } // Token: 0x0600D097 RID: 53399 RVA: 0x002F6490 File Offset: 0x002F4690 [Token(Token = "0x600D097")] [Address(RVA = "0x2A6F310", Offset = "0x2A6E310", VA = "0x182A6F310")] public static void ReadBuffer(this Stream stream, byte[] buffer, int length) { } // Token: 0x0600D098 RID: 53400 RVA: 0x002F64A8 File Offset: 0x002F46A8 [Token(Token = "0x600D098")] [Address(RVA = "0x2A700E0", Offset = "0x2A6F0E0", VA = "0x182A700E0")] public static void WriteString(this BufferPoolMemoryStream ms, string str) { object obj = Encoding.UTF8.Clone(); byte[] bytes = Encoding.UTF8.GetBytes(str); int num = ms.ReadByte(); byte[] array; VariableSizedBufferPool.Release(array); } // Token: 0x0600D099 RID: 53401 RVA: 0x002F64E8 File Offset: 0x002F46E8 [Token(Token = "0x600D099")] [Address(RVA = "0x2A6FC40", Offset = "0x2A6EC40", VA = "0x182A6FC40")] public static void WriteLine(this BufferPoolMemoryStream ms) { byte[] eol = HTTPRequest.EOL; int num = ms.ReadByte(); } // Token: 0x0600D09A RID: 53402 RVA: 0x002F6508 File Offset: 0x002F4708 [Token(Token = "0x600D09A")] [Address(RVA = "0x2A6FF20", Offset = "0x2A6EF20", VA = "0x182A6FF20")] public static void WriteLine(this BufferPoolMemoryStream ms, string str) { object obj = Encoding.UTF8.Clone(); byte[] bytes = Encoding.UTF8.GetBytes(str); int num = ms.ReadByte(); byte[] array; VariableSizedBufferPool.Release(array); byte[] eol = HTTPRequest.EOL; int num2 = ms.ReadByte(); } // Token: 0x0600D09B RID: 53403 RVA: 0x002F6554 File Offset: 0x002F4754 // Note: this type is marked as 'beforefieldinit'. [Token(Token = "0x600D09B")] [Address(RVA = "0x2A70200", Offset = "0x2A6F200", VA = "0x182A70200")] static Extensions() { Regex regex = new Regex("\\b(?:\\d{1,3}\\.){3}\\d{1,3}\\b", RegexOptions.IgnoreCase); } // Token: 0x04008418 RID: 33816 [Token(Token = "0x4008418")] private static readonly Regex validIpV4AddressRegex; } }