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: 0x02001F8F RID: 8079 [Token(Token = "0x2001F8F")] public static class Extensions { // Token: 0x0600CCAE RID: 52398 RVA: 0x002ED6EC File Offset: 0x002EB8EC [Token(Token = "0x600CCAE")] [Address(RVA = "0x1712840", Offset = "0x1711640", VA = "0x181712840")] 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: 0x0600CCAF RID: 52399 RVA: 0x002ED728 File Offset: 0x002EB928 [Token(Token = "0x600CCAF")] [Address(RVA = "0x1712CF0", Offset = "0x1711AF0", VA = "0x181712CF0")] 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: 0x0600CCB0 RID: 52400 RVA: 0x002ED768 File Offset: 0x002EB968 [Token(Token = "0x600CCB0")] [Address(RVA = "0x1713B60", Offset = "0x1712960", VA = "0x181713B60")] 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: 0x0600CCB1 RID: 52401 RVA: 0x002ED79C File Offset: 0x002EB99C [Token(Token = "0x600CCB1")] [Address(RVA = "0x17140B0", Offset = "0x1712EB0", VA = "0x1817140B0")] public static void WriteLine(this Stream fs) { int num = fs.ReadByte(); } // Token: 0x0600CCB2 RID: 52402 RVA: 0x002ED7B8 File Offset: 0x002EB9B8 [Token(Token = "0x600CCB2")] [Address(RVA = "0x1714230", Offset = "0x1713030", VA = "0x181714230")] public static void WriteLine(this Stream fs, string line) { byte[] asciibytes = line.GetASCIIBytes(); int num = fs.ReadByte(); fs.WriteLine(); VariableSizedBufferPool.Release(asciibytes); } // Token: 0x0600CCB3 RID: 52403 RVA: 0x002ED7E8 File Offset: 0x002EB9E8 [Token(Token = "0x600CCB3")] [Address(RVA = "0x1714140", Offset = "0x1712F40", VA = "0x181714140")] 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: 0x0600CCB4 RID: 52404 RVA: 0x002ED81C File Offset: 0x002EBA1C [Token(Token = "0x600CCB4")] [Address(RVA = "0x1712DD0", Offset = "0x1711BD0", VA = "0x181712DD0")] public static string GetRequestPathAndQueryURL(this Uri uri) { string parts = uri.GetParts(UriComponents.PathAndQuery, UriFormat.UriEscaped); return "/"; } // Token: 0x0600CCB5 RID: 52405 RVA: 0x002ED840 File Offset: 0x002EBA40 [Token(Token = "0x600CCB5")] [Address(RVA = "0x1712B50", Offset = "0x1711950", VA = "0x181712B50")] 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: 0x0600CCB6 RID: 52406 RVA: 0x002ED8C4 File Offset: 0x002EBAC4 [Token(Token = "0x600CCB6")] [Address(RVA = "0x6D84B0", Offset = "0x6D72B0", VA = "0x1806D84B0")] public static void WriteArray(this Stream stream, byte[] array) { int num = stream.ReadByte(); } // Token: 0x0600CCB7 RID: 52407 RVA: 0x002ED8E0 File Offset: 0x002EBAE0 [Token(Token = "0x600CCB7")] [Address(RVA = "0x1712E40", Offset = "0x1711C40", VA = "0x181712E40")] 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: 0x0600CCB8 RID: 52408 RVA: 0x002ED938 File Offset: 0x002EBB38 [Token(Token = "0x600CCB8")] [Address(RVA = "0x1713050", Offset = "0x1711E50", VA = "0x181713050")] public static bool IsIpV4AddressValid(string address) { if (string.IsNullOrEmpty(address)) { } string text = address.Trim(); bool flag; return flag; } // Token: 0x0600CCB9 RID: 52409 RVA: 0x002ED960 File Offset: 0x002EBB60 [Token(Token = "0x600CCB9")] [Address(RVA = "0x1713100", Offset = "0x1711F00", VA = "0x181713100")] public static bool IsIpV6AddressValid(string address) { bool flag; if (!string.IsNullOrEmpty(address) && flag) { bool flag2; return flag2; } throw new NullReferenceException(); } // Token: 0x0600CCBA RID: 52410 RVA: 0x002ED984 File Offset: 0x002EBB84 [Token(Token = "0x600CCBA")] [Address(RVA = "0x1713D40", Offset = "0x1712B40", VA = "0x181713D40")] public static int ToInt32(this string str, int defaultValue = 0) { if (str != 0) { return int.Parse(str); } return defaultValue; } // Token: 0x0600CCBB RID: 52411 RVA: 0x002ED9A0 File Offset: 0x002EBBA0 [Token(Token = "0x600CCBB")] [Address(RVA = "0x1713DC0", Offset = "0x1712BC0", VA = "0x181713DC0")] public static long ToInt64(this string str, long defaultValue = 0L) { if (str != 0) { return long.Parse(str); } return defaultValue; } // Token: 0x0600CCBC RID: 52412 RVA: 0x002ED9BC File Offset: 0x002EBBBC [Token(Token = "0x600CCBC")] [Address(RVA = "0x1713C90", Offset = "0x1712A90", VA = "0x181713C90")] 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: 0x0600CCBD RID: 52413 RVA: 0x002ED9D8 File Offset: 0x002EBBD8 [Token(Token = "0x600CCBD")] [Address(RVA = "0x1713E40", Offset = "0x1712C40", VA = "0x181713E40")] public static string ToStrOrEmpty(this string str) { if (str != 0) { return str; } return string.Empty; } // Token: 0x0600CCBE RID: 52414 RVA: 0x002ED9F0 File Offset: 0x002EBBF0 [Token(Token = "0x600CCBE")] [Address(RVA = "0x1712AB0", Offset = "0x17118B0", VA = "0x181712AB0")] public static string CalculateMD5Hash(this string input) { byte[] asciibytes = input.GetASCIIBytes(); string text = asciibytes.CalculateMD5Hash(); VariableSizedBufferPool.Release(asciibytes); return text; } // Token: 0x0600CCBF RID: 52415 RVA: 0x002EDA14 File Offset: 0x002EBC14 [Token(Token = "0x600CCBF")] [Address(RVA = "0x1712910", Offset = "0x1711710", VA = "0x181712910")] 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: 0x0600CCC0 RID: 52416 RVA: 0x002EDA9C File Offset: 0x002EBC9C [Token(Token = "0x600CCC0")] [Address(RVA = "0x1713A70", Offset = "0x1712870", VA = "0x181713A70")] 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: 0x0600CCC1 RID: 52417 RVA: 0x002EDAD4 File Offset: 0x002EBCD4 [Token(Token = "0x600CCC1")] [Address(RVA = "0x1713960", Offset = "0x1712760", VA = "0x181713960")] 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: 0x0600CCC2 RID: 52418 RVA: 0x002EDB04 File Offset: 0x002EBD04 [Token(Token = "0x600CCC2")] [Address(RVA = "0x17137A0", Offset = "0x17125A0", VA = "0x1817137A0")] 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: 0x0600CCC3 RID: 52419 RVA: 0x002EDB54 File Offset: 0x002EBD54 [Token(Token = "0x600CCC3")] [Address(RVA = "0x1713BF0", Offset = "0x17129F0", VA = "0x181713BF0")] internal static void SkipWhiteSpace(this string str, ref int pos) { char c; if (char.IsWhiteSpace(c)) { } } // Token: 0x0600CCC4 RID: 52420 RVA: 0x002EDB70 File Offset: 0x002EBD70 [Token(Token = "0x600CCC4")] [Address(RVA = "0x1713E90", Offset = "0x1712C90", VA = "0x181713E90")] 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: 0x0600CCC5 RID: 52421 RVA: 0x002EDBE0 File Offset: 0x002EBDE0 [Token(Token = "0x600CCC5")] [Address(RVA = "0x17135C0", Offset = "0x17123C0", VA = "0x1817135C0")] internal static char? Peek(this string str, int pos) { if (pos < str.m_stringLength) { char c = str[pos]; } throw new NullReferenceException(); } // Token: 0x0600CCC6 RID: 52422 RVA: 0x002EDC08 File Offset: 0x002EBE08 [Token(Token = "0x600CCC6")] [Address(RVA = "0x17131A0", Offset = "0x1711FA0", VA = "0x1817131A0")] 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: 0x0600CCC7 RID: 52423 RVA: 0x002EDC94 File Offset: 0x002EBE94 [Token(Token = "0x600CCC7")] [Address(RVA = "0x17133A0", Offset = "0x17121A0", VA = "0x1817133A0")] 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: 0x0600CCC8 RID: 52424 RVA: 0x002EDD18 File Offset: 0x002EBF18 [Token(Token = "0x600CCC8")] [Address(RVA = "0x1713650", Offset = "0x1712450", VA = "0x181713650")] public static void ReadBuffer(this Stream stream, byte[] buffer) { int num = 0; int num2 = buffer.Length; num2 -= num; } // Token: 0x0600CCC9 RID: 52425 RVA: 0x002EDD38 File Offset: 0x002EBF38 [Token(Token = "0x600CCC9")] [Address(RVA = "0x17136F0", Offset = "0x17124F0", VA = "0x1817136F0")] public static void ReadBuffer(this Stream stream, byte[] buffer, int length) { } // Token: 0x0600CCCA RID: 52426 RVA: 0x002EDD50 File Offset: 0x002EBF50 [Token(Token = "0x600CCCA")] [Address(RVA = "0x17144C0", Offset = "0x17132C0", VA = "0x1817144C0")] 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: 0x0600CCCB RID: 52427 RVA: 0x002EDD90 File Offset: 0x002EBF90 [Token(Token = "0x600CCCB")] [Address(RVA = "0x1714020", Offset = "0x1712E20", VA = "0x181714020")] public static void WriteLine(this BufferPoolMemoryStream ms) { byte[] eol = HTTPRequest.EOL; int num = ms.ReadByte(); } // Token: 0x0600CCCC RID: 52428 RVA: 0x002EDDB0 File Offset: 0x002EBFB0 [Token(Token = "0x600CCCC")] [Address(RVA = "0x1714300", Offset = "0x1713100", VA = "0x181714300")] 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: 0x0600CCCD RID: 52429 RVA: 0x002EDDFC File Offset: 0x002EBFFC // Note: this type is marked as 'beforefieldinit'. [Token(Token = "0x600CCCD")] [Address(RVA = "0x17145E0", Offset = "0x17133E0", VA = "0x1817145E0")] static Extensions() { Regex regex = new Regex("\\b(?:\\d{1,3}\\.){3}\\d{1,3}\\b", RegexOptions.IgnoreCase); } // Token: 0x0400825F RID: 33375 [Token(Token = "0x400825F")] private static readonly Regex validIpV4AddressRegex; } }