using System; using System.Collections.Generic; using System.IO; using System.Threading; using BestHTTP.Logger; using BestHTTP.PlatformSupport.FileSystem; using Cpp2IlInjected; namespace BestHTTP.Caching { // Token: 0x02001FC5 RID: 8133 [Token(Token = "0x2001FC5")] public static class HTTPCacheService { // Token: 0x170020E1 RID: 8417 // (get) Token: 0x0600CE75 RID: 52853 RVA: 0x002F8328 File Offset: 0x002F6528 [Token(Token = "0x170020E1")] public static bool IsSupported { [Token(Token = "0x600CE75")] [Address(RVA = "0xAA91B0", Offset = "0xAA7FB0", VA = "0x180AA91B0")] get { int num; do { num = 0; IIOService ioservice = HTTPManager.IOService; string rootCacheFolder = HTTPManager.GetRootCacheFolder(); ILogger logger = HTTPManager.Logger; } while (num != 0); return HTTPCacheService.isSupported; } } // Token: 0x170020E2 RID: 8418 // (get) Token: 0x0600CE76 RID: 52854 RVA: 0x002F836C File Offset: 0x002F656C [Token(Token = "0x170020E2")] private static Dictionary Library { [Token(Token = "0x600CE76")] [Address(RVA = "0xAA9500", Offset = "0xAA8300", VA = "0x180AA9500")] get { HTTPCacheService.LoadLibrary(); return HTTPCacheService.library; } } // Token: 0x170020E3 RID: 8419 // (get) Token: 0x0600CE77 RID: 52855 RVA: 0x002F8388 File Offset: 0x002F6588 // (set) Token: 0x0600CE78 RID: 52856 RVA: 0x002F839C File Offset: 0x002F659C [Token(Token = "0x170020E3")] internal static string CacheFolder { [Token(Token = "0x600CE77")] [Address(RVA = "0xAA90F0", Offset = "0xAA7EF0", VA = "0x180AA90F0")] get; [Token(Token = "0x600CE78")] [Address(RVA = "0xAA9560", Offset = "0xAA8360", VA = "0x180AA9560")] private set; } // Token: 0x170020E4 RID: 8420 // (get) Token: 0x0600CE79 RID: 52857 RVA: 0x002F83B0 File Offset: 0x002F65B0 // (set) Token: 0x0600CE7A RID: 52858 RVA: 0x002F83C4 File Offset: 0x002F65C4 [Token(Token = "0x170020E4")] private static string LibraryPath { [Token(Token = "0x600CE79")] [Address(RVA = "0xAA9440", Offset = "0xAA8240", VA = "0x180AA9440")] get; [Token(Token = "0x600CE7A")] [Address(RVA = "0xAA95C0", Offset = "0xAA83C0", VA = "0x180AA95C0")] set; } // Token: 0x0600CE7C RID: 52860 RVA: 0x002F83F0 File Offset: 0x002F65F0 [Token(Token = "0x600CE7C")] [Address(RVA = "0xAA5460", Offset = "0xAA4260", VA = "0x180AA5460")] internal static void CheckSetup() { if (HTTPCacheService.IsSupported) { HTTPCacheService.SetupCacheFolder(); HTTPCacheService.LoadLibrary(); } } // Token: 0x0600CE7D RID: 52861 RVA: 0x002F8418 File Offset: 0x002F6618 [Token(Token = "0x600CE7D")] [Address(RVA = "0xAA8830", Offset = "0xAA7630", VA = "0x180AA8830")] internal static void SetupCacheFolder() { if (HTTPCacheService.IsSupported) { bool flag = string.IsNullOrEmpty(HTTPCacheService.k__BackingField); if (flag || flag) { HTTPCacheService.k__BackingField = Path.Combine(HTTPManager.GetRootCacheFolder(), "HTTPCache"); IIOService ioservice = HTTPManager.IOService; IIOService ioservice2 = HTTPManager.IOService; HTTPCacheService.k__BackingField = Path.Combine(HTTPManager.GetRootCacheFolder(), "Library"); } ILogger logger = HTTPManager.Logger; } } // Token: 0x0600CE7E RID: 52862 RVA: 0x002F8498 File Offset: 0x002F6698 [Token(Token = "0x600CE7E")] [Address(RVA = "0xAA68A0", Offset = "0xAA56A0", VA = "0x180AA68A0")] internal static ulong GetNameIdx() { HTTPCacheService.LoadLibrary(); Dictionary dictionary = HTTPCacheService.library; ulong nextNameIDX = HTTPCacheService.NextNameIDX; ulong num = HTTPCacheService.NextNameIDX; num += (ulong)1L; HTTPCacheService.NextNameIDX = num; HTTPCacheService.NextNameIDX = 0UL; Dictionary usedIndexes = HTTPCacheService.UsedIndexes; throw new NullReferenceException(); } // Token: 0x0600CE7F RID: 52863 RVA: 0x002F84FC File Offset: 0x002F66FC [Token(Token = "0x600CE7F")] [Address(RVA = "0xAA6A90", Offset = "0xAA5890", VA = "0x180AA6A90")] internal static bool HasEntity(Uri uri) { if (HTTPCacheService.IsSupported) { HTTPCacheService.LoadLibrary(); Dictionary dictionary = HTTPCacheService.library; HTTPCacheService.LoadLibrary(); Dictionary dictionary2 = HTTPCacheService.library; throw new NullReferenceException(); } throw new NullReferenceException(); } // Token: 0x0600CE80 RID: 52864 RVA: 0x002F854C File Offset: 0x002F674C [Token(Token = "0x600CE80")] [Address(RVA = "0xAA57D0", Offset = "0xAA45D0", VA = "0x180AA57D0")] public static bool DeleteEntity(Uri uri, bool removeFromLibrary = true) { for (;;) { int num = 0; if (!HTTPCacheService.IsSupported) { break; } int num2 = 0; object obj = HTTPCacheFileLock.Acquire(uri); Monitor.Enter(obj, num2); HTTPCacheService.LoadLibrary(); Dictionary dictionary = HTTPCacheService.library; int num3 = 0; Monitor.Enter(dictionary, num2); HTTPCacheService.LoadLibrary(); bool flag = HTTPCacheService.library.TryGetValue(uri, num3); if (flag) { } if (removeFromLibrary != flag) { bool flag2 = HTTPCacheService.Library.Remove(uri); Dictionary usedIndexes = HTTPCacheService.UsedIndexes; } Monitor.Exit(dictionary); if (num == 0) { if (num != -1) { } Monitor.Exit(obj); if (num == 0) { break; } } } throw new NullReferenceException(); } // Token: 0x0600CE81 RID: 52865 RVA: 0x002F8608 File Offset: 0x002F6808 [Token(Token = "0x600CE81")] [Address(RVA = "0xAA6EE0", Offset = "0xAA5CE0", VA = "0x180AA6EE0")] internal static bool IsCachedEntityExpiresInTheFuture(HTTPRequest request) { int num; do { num = 0; if (!HTTPCacheService.IsSupported) { goto IL_BB; } HTTPCacheService.LoadLibrary(); Dictionary dictionary = HTTPCacheService.library; int num2 = 0; HTTPCacheService.LoadLibrary(); Dictionary dictionary2 = HTTPCacheService.library; Uri currentUri = request.CurrentUri; if (!dictionary2.TryGetValue(currentUri, num2)) { } bool flag; if (flag && request.OnUpgraded == (ulong)0L) { if (request.k__BackingField == (ulong)(-1L)) { OnUploadProgressDelegate onUploadProgress = request.OnUploadProgress; DateTime utcNow = DateTime.UtcNow; } bool k__BackingField = request.k__BackingField; int num3 = 0; long num4 = Math.Max(0L, (long)num3); int k__BackingField = request.k__BackingField; long num5 = Math.Max(num4, (long)k__BackingField); DateTime utcNow2 = DateTime.UtcNow; TimeSpan timeSpan; timeSpan += num5; } Monitor.Exit(dictionary); } while (num != 0); if (num != -1) { } IL_BB: throw new NullReferenceException(); } // Token: 0x0600CE82 RID: 52866 RVA: 0x002F86E4 File Offset: 0x002F68E4 [Token(Token = "0x600CE82")] [Address(RVA = "0xAA8570", Offset = "0xAA7370", VA = "0x180AA8570")] internal static void SetHeaders(HTTPRequest request) { int num; do { num = 0; if (!HTTPCacheService.IsSupported) { break; } bool flag = request.RemoveHeader("If-None-Match"); bool flag2 = request.RemoveHeader("If-Modified-Since"); HTTPCacheService.LoadLibrary(); Dictionary dictionary = HTTPCacheService.library; int num2 = 0; HTTPCacheService.LoadLibrary(); Dictionary dictionary2 = HTTPCacheService.library; Uri currentUri = request.CurrentUri; bool flag3; if (dictionary2.TryGetValue(currentUri, num2) && flag3) { int freeList = dictionary2.freeList; if (!flag3) { } IEqualityComparer comparer = dictionary2.comparer; if (!flag3) { } } Monitor.Exit(dictionary); } while (num != 0); } // Token: 0x0600CE83 RID: 52867 RVA: 0x002F878C File Offset: 0x002F698C [Token(Token = "0x600CE83")] [Address(RVA = "0xAA6410", Offset = "0xAA5210", VA = "0x180AA6410")] internal static HTTPCacheFileInfo GetEntity(Uri uri) { int num; do { num = 0; if (!HTTPCacheService.IsSupported) { break; } HTTPCacheService.LoadLibrary(); Dictionary dictionary = HTTPCacheService.library; int num2 = 0; HTTPCacheService.LoadLibrary(); bool flag = HTTPCacheService.library.TryGetValue(uri, num2); Monitor.Exit(dictionary); } while (num != 0); throw new NullReferenceException(); } // Token: 0x0600CE84 RID: 52868 RVA: 0x002F87E0 File Offset: 0x002F69E0 [Token(Token = "0x600CE84")] [Address(RVA = "0xAA6610", Offset = "0xAA5410", VA = "0x180AA6610")] internal static HTTPResponse GetFullResponse(HTTPRequest request) { int num; do { num = 0; if (!HTTPCacheService.IsSupported) { goto IL_4F; } HTTPCacheService.LoadLibrary(); Dictionary dictionary = HTTPCacheService.library; int num2 = 0; HTTPCacheService.LoadLibrary(); Dictionary dictionary2 = HTTPCacheService.library; Uri currentUri = request.CurrentUri; if (!dictionary2.TryGetValue(currentUri, num2)) { } Monitor.Exit(dictionary); } while (num != 0); if (num != -1) { } IL_4F: throw new NullReferenceException(); } // Token: 0x0600CE85 RID: 52869 RVA: 0x002F8850 File Offset: 0x002F6A50 [Token(Token = "0x600CE85")] [Address(RVA = "0xAA6C90", Offset = "0xAA5A90", VA = "0x180AA6C90")] internal static bool IsCacheble(Uri uri, HTTPMethods method, HTTPResponse response) { if (!HTTPCacheService.IsSupported || response == 0 || response.k__BackingField > 199) { return; } List headerValues = response.GetHeaderValues("cache-control"); if (headerValues != 0) { Predicate <>9__30_ = HTTPCacheService.<>c.<>9__30_0; if (<>9__30_ == 0) { HTTPCacheService.<>c.<>9__30_0 = delegate(string headerValue) { string text = headerValue.ToLower(); return text.Contains("no-store") || text.Contains("no-cache"); }; } if (headerValues.Exists(<>9__30_)) { return; } } List headerValues2 = response.GetHeaderValues("pragma"); if (headerValues2 != 0) { Predicate predicate; if (HTTPCacheService.<>c.<>9__30_1 == 0) { predicate = delegate(string headerValue) { string text2 = headerValue.ToLower(); return text2.Contains("no-store") || text2.Contains("no-cache"); }; HTTPCacheService.<>c.<>9__30_1 = predicate; } if (headerValues2.Exists(predicate)) { return; } } if (response.GetHeaderValues("content-range") == 0) { return; } } // Token: 0x0600CE86 RID: 52870 RVA: 0x002F8908 File Offset: 0x002F6B08 [Token(Token = "0x600CE86")] [Address(RVA = "0xAA8CA0", Offset = "0xAA7AA0", VA = "0x180AA8CA0")] internal static HTTPCacheFileInfo Store(Uri uri, HTTPMethods method, HTTPResponse response) { int num; do { num = 0; if (response == 0) { break; } byte[] k__BackingField = response.k__BackingField; if (k__BackingField == 0 || k__BackingField.Length == num || !HTTPCacheService.IsSupported) { break; } Dictionary dictionary = HTTPCacheService.Library; int num2 = 0; if (!HTTPCacheService.Library.TryGetValue(uri, num2)) { Dictionary dictionary2 = HTTPCacheService.Library; HTTPCacheFileInfo httpcacheFileInfo = new HTTPCacheFileInfo(uri); dictionary2.Add(uri, httpcacheFileInfo); Dictionary usedIndexes = HTTPCacheService.UsedIndexes; ulong k__BackingField = httpcacheFileInfo.k__BackingField; usedIndexes.Add(k__BackingField, httpcacheFileInfo); } int num3 = 0; ILogger logger = HTTPManager.Logger; if (num < num3) { num += num; num++; } if (num == 0) { ILogger logger2 = HTTPManager.Logger; int hashCode = uri.GetHashCode(); string text = string.Format("{0} - Saved to cache", hashCode); } Monitor.Exit(dictionary); } while (num != 0); throw new NullReferenceException(); } // Token: 0x0600CE87 RID: 52871 RVA: 0x002F8A1C File Offset: 0x002F6C1C [Token(Token = "0x600CE87")] [Address(RVA = "0xAA7A30", Offset = "0xAA6830", VA = "0x180AA7A30")] internal static Stream PrepareStreamed(Uri uri, HTTPResponse response) { int num; do { num = 0; if (!HTTPCacheService.IsSupported) { break; } HTTPCacheService.LoadLibrary(); Dictionary dictionary = HTTPCacheService.library; int num2 = 0; HTTPCacheService.LoadLibrary(); if (!HTTPCacheService.library.TryGetValue(uri, num2)) { Dictionary dictionary2 = HTTPCacheService.Library; HTTPCacheFileInfo httpcacheFileInfo = new HTTPCacheFileInfo(uri); dictionary2.Add(uri, httpcacheFileInfo); Dictionary usedIndexes = HTTPCacheService.UsedIndexes; ulong k__BackingField = httpcacheFileInfo.k__BackingField; usedIndexes.Add(k__BackingField, httpcacheFileInfo); } Monitor.Exit(dictionary); } while (num != 0); throw new NullReferenceException(); } // Token: 0x0600CE88 RID: 52872 RVA: 0x002F8AC0 File Offset: 0x002F6CC0 [Token(Token = "0x600CE88")] [Address(RVA = "0xAA5190", Offset = "0xAA3F90", VA = "0x180AA5190")] public static void BeginClear() { if (HTTPCacheService.IsSupported) { HTTPCacheService.SetupCacheFolder(); WaitCallback <>9__33_ = HTTPCacheService.<>c.<>9__33_0; if (<>9__33_ == 0) { HTTPCacheService.<>c.<>9__33_0 = delegate(object param) { HTTPCacheService.ClearImpl(param); }; } bool flag = ThreadPool.QueueUserWorkItem(<>9__33_); return; } } // Token: 0x0600CE89 RID: 52873 RVA: 0x002F8B08 File Offset: 0x002F6D08 [Token(Token = "0x600CE89")] [Address(RVA = "0xAA5500", Offset = "0xAA4300", VA = "0x180AA5500")] private static void ClearImpl(object param) { int num = 0; if (HTTPCacheService.IsSupported) { IIOService ioservice = HTTPManager.IOService; IIOService ioservice2 = HTTPManager.IOService; num++; num++; HTTPCacheService.UsedIndexes.Clear(); HTTPCacheService.library.Clear(); HTTPCacheService.SaveLibrary(); } } // Token: 0x0600CE8A RID: 52874 RVA: 0x002F8B6C File Offset: 0x002F6D6C [Token(Token = "0x600CE8A")] [Address(RVA = "0xAA5300", Offset = "0xAA4100", VA = "0x180AA5300")] public static void BeginMaintainence(HTTPCacheMaintananceParams maintananceParam) { /* An exception occurred when decompiling this method (0600CE8A) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.Caching.HTTPCacheService::BeginMaintainence(BestHTTP.Caching.HTTPCacheMaintananceParams) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_3B: stloc:ArgumentNullException(var_4_45, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("maintananceParams == null"))) } 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: 0x0600CE8B RID: 52875 RVA: 0x002F8BC0 File Offset: 0x002F6DC0 [Token(Token = "0x600CE8B")] [Address(RVA = "0xAA5F50", Offset = "0xAA4D50", VA = "0x180AA5F50")] public static int GetCacheEntityCount() { int num; int count; do { num = 0; if (!HTTPCacheService.IsSupported) { return 0; } HTTPCacheService.CheckSetup(); HTTPCacheService.LoadLibrary(); Dictionary dictionary = HTTPCacheService.library; HTTPCacheService.LoadLibrary(); count = HTTPCacheService.library.Count; Monitor.Exit(dictionary); } while (num != 0); return count; } // Token: 0x0600CE8C RID: 52876 RVA: 0x002F8C18 File Offset: 0x002F6E18 [Token(Token = "0x600CE8C")] [Address(RVA = "0xAA6130", Offset = "0xAA4F30", VA = "0x180AA6130")] public static ulong GetCacheSize() { int num; do { num = 0; if (!HTTPCacheService.IsSupported) { break; } HTTPCacheService.CheckSetup(); HTTPCacheService.LoadLibrary(); Dictionary dictionary = HTTPCacheService.library; HTTPCacheService.LoadLibrary(); Dictionary dictionary2 = HTTPCacheService.library; bool flag; if (flag) { } if (num != 0) { goto IL_51; } if (num != -1) { } Monitor.Exit(dictionary); } while (num != 0); throw new NullReferenceException(); IL_51: throw new NullReferenceException(); } // Token: 0x0600CE8D RID: 52877 RVA: 0x002F8C7C File Offset: 0x002F6E7C [Token(Token = "0x600CE8D")] [Address(RVA = "0xAA72C0", Offset = "0xAA60C0", VA = "0x180AA72C0")] private static void LoadLibrary() { int num; do { num = 0; if (!HTTPCacheService.IsSupported) { return; } HTTPCacheService.library = new Dictionary(new UriComparer()); IIOService ioservice = HTTPManager.IOService; Dictionary dictionary = HTTPCacheService.library; IIOService ioservice2 = HTTPManager.IOService; BinaryReader binaryReader; ushort num2 = binaryReader.ReadUInt16(); HTTPCacheService.NextNameIDX = (ulong)binaryReader.ReadInt64(); ushort num3 = binaryReader.ReadUInt16(); Uri uri; if (num < (int)num3) { decimal num4 = binaryReader.ReadDecimal(); HTTPCacheFileInfo httpcacheFileInfo = new HTTPCacheFileInfo(uri, binaryReader, (int)num2); if (httpcacheFileInfo.IsExists()) { HTTPCacheService.library.Add(uri, httpcacheFileInfo); Dictionary usedIndexes = HTTPCacheService.UsedIndexes; ulong k__BackingField = httpcacheFileInfo.k__BackingField; usedIndexes.Add(k__BackingField, httpcacheFileInfo); } num++; } if (binaryReader != 0) { } if (num != 0) { goto IL_142; } if (num != -1) { } num++; int num5; if (uri != 0) { num5 = 0; } if (num != 0) { goto IL_142; } if (num != -1) { } Monitor.Exit(num5); } while (num != 0); HTTPCacheService.DeleteUnusedFiles(); if (HTTPCacheService.IsSupported) { HTTPCacheService.SetupCacheFolder(); WaitCallback waitCallback; if (HTTPCacheService.<>c.<>9__33_0 == 0) { waitCallback = delegate(object param) { HTTPCacheService.ClearImpl(param); }; HTTPCacheService.<>c.<>9__33_0 = waitCallback; } bool flag = ThreadPool.QueueUserWorkItem(waitCallback); } return; IL_142: throw new NullReferenceException(); } // Token: 0x0600CE8E RID: 52878 RVA: 0x002F8DD0 File Offset: 0x002F6FD0 [Token(Token = "0x600CE8E")] [Address(RVA = "0xAA7D60", Offset = "0xAA6B60", VA = "0x180AA7D60")] internal static void SaveLibrary() { int num; do { num = 0; if (!HTTPCacheService.IsSupported) { break; } HTTPCacheService.LoadLibrary(); Dictionary dictionary = HTTPCacheService.library; IIOService ioservice = HTTPManager.IOService; BinaryWriter binaryWriter; binaryWriter.Write(2); ulong nextNameIDX = HTTPCacheService.NextNameIDX; binaryWriter.Write((long)nextNameIDX); int count = HTTPCacheService.Library.Count; binaryWriter.Write((ushort)count); int num2 = 0; Dictionary dictionary2 = HTTPCacheService.Library; bool flag; if (flag) { int hashCode = num2.GetHashCode(); } if (num != 0) { goto IL_AE; } if (num != -1) { } num++; if (binaryWriter != 0) { } if (num != 0) { goto IL_C0; } if (num != -1) { } num++; int num3 = 0; if (num != 0) { goto IL_C0; } if (num != -1) { } Monitor.Exit(num3); } while (num != 0); return; IL_AE: throw new NullReferenceException(); IL_C0: throw new NullReferenceException(); } // Token: 0x0600CE8F RID: 52879 RVA: 0x002F8EA4 File Offset: 0x002F70A4 [Token(Token = "0x600CE8F")] [Address(RVA = "0xAA8270", Offset = "0xAA7070", VA = "0x180AA8270")] internal static void SetBodyLength(Uri uri, int bodyLength) { int num; do { num = 0; if (!HTTPCacheService.IsSupported) { break; } HTTPCacheService.LoadLibrary(); Dictionary dictionary = HTTPCacheService.library; int num2 = 0; HTTPCacheService.LoadLibrary(); if (!HTTPCacheService.library.TryGetValue(uri, num2)) { Dictionary dictionary2 = HTTPCacheService.Library; DateTime utcNow = DateTime.UtcNow; HTTPCacheFileInfo httpcacheFileInfo; dictionary2.Add(uri, httpcacheFileInfo); Dictionary usedIndexes = HTTPCacheService.UsedIndexes; ulong k__BackingField = httpcacheFileInfo.k__BackingField; usedIndexes.Add(k__BackingField, httpcacheFileInfo); } Monitor.Exit(dictionary); } while (num != 0); } // Token: 0x0600CE90 RID: 52880 RVA: 0x002F8F48 File Offset: 0x002F7148 [Token(Token = "0x600CE90")] [Address(RVA = "0xAA5B40", Offset = "0xAA4940", VA = "0x180AA5B40")] private static void DeleteUnusedFiles() { int num = 0; if (HTTPCacheService.IsSupported) { HTTPCacheService.CheckSetup(); IIOService ioservice = HTTPManager.IOService; int num2 = 0; string fileName = Path.GetFileName(num); bool flag; if (flag) { Dictionary dictionary = HTTPCacheService.Library; Dictionary usedIndexes = HTTPCacheService.UsedIndexes; throw new NullReferenceException(); } IIOService ioservice2 = HTTPManager.IOService; num2++; } } // Token: 0x04008402 RID: 33794 [Token(Token = "0x4008402")] private const int LibraryVersion = 2; // Token: 0x04008403 RID: 33795 [Token(Token = "0x4008403")] private static bool isSupported; // Token: 0x04008404 RID: 33796 [Token(Token = "0x4008404")] private static bool IsSupportCheckDone; // Token: 0x04008405 RID: 33797 [Token(Token = "0x4008405")] private static Dictionary library; // Token: 0x04008406 RID: 33798 [Token(Token = "0x4008406")] private static Dictionary UsedIndexes = new Dictionary(); // Token: 0x04008409 RID: 33801 [Token(Token = "0x4008409")] private static bool InClearThread; // Token: 0x0400840A RID: 33802 [Token(Token = "0x400840A")] private static bool InMaintainenceThread; // Token: 0x0400840B RID: 33803 [Token(Token = "0x400840B")] private static ulong NextNameIDX; } }