using System; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Threading; using Cpp2IlInjected; using UnityEngine; namespace Steamworks { // Token: 0x02001788 RID: 6024 [Token(Token = "0x2001788")] public static class CallbackDispatcher { // Token: 0x06008A7F RID: 35455 RVA: 0x001D49B0 File Offset: 0x001D2BB0 [Token(Token = "0x6008A7F")] [Address(RVA = "0x210FA70", Offset = "0x210EA70", VA = "0x18210FA70")] public static void ExceptionHandler(Exception e) { Debug.LogException(e); } // Token: 0x17001763 RID: 5987 // (get) Token: 0x06008A80 RID: 35456 RVA: 0x001D49C4 File Offset: 0x001D2BC4 [Token(Token = "0x17001763")] public static bool IsInitialized { [Token(Token = "0x6008A80")] [Address(RVA = "0x2111850", Offset = "0x2110850", VA = "0x182111850")] get { return "{il2cpp field on {'constant10' (constant value of type Cpp2IL.Core.Analysis.ResultModels.StaticFieldsPtr)}, offset 0x28}" > (ulong)0L; } } // Token: 0x06008A81 RID: 35457 RVA: 0x001D49DC File Offset: 0x001D2BDC [Token(Token = "0x6008A81")] [Address(RVA = "0x210FAD0", Offset = "0x210EAD0", VA = "0x18210FAD0")] internal static void Initialize() { int num; do { num = 0; object sync = CallbackDispatcher.m_sync; NativeMethods.SteamAPI_ManualDispatch_Init(); CallbackDispatcher.m_pCallbackMsg = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(CallbackMsg_t))); Monitor.Exit(sync); } while (num != 0); } // Token: 0x06008A82 RID: 35458 RVA: 0x001D4A1C File Offset: 0x001D2C1C [Token(Token = "0x6008A82")] [Address(RVA = "0x2110AB0", Offset = "0x210FAB0", VA = "0x182110AB0")] internal static void Shutdown() { int num; do { num = 0; object sync = CallbackDispatcher.m_sync; CallbackDispatcher.UnregisterAll(); Marshal.FreeHGlobal(CallbackDispatcher.m_pCallbackMsg); CallbackDispatcher.m_pCallbackMsg = (IntPtr)num; Monitor.Exit(sync); } while (num != 0); } // Token: 0x06008A83 RID: 35459 RVA: 0x001D4A54 File Offset: 0x001D2C54 [Token(Token = "0x6008A83")] [Address(RVA = "0x210FCA0", Offset = "0x210ECA0", VA = "0x18210FCA0")] internal static void Register(Callback cb) { for (;;) { int num = 0; bool isGameServer = cb.IsGameServer; if (cb.ToString() != 0) { } Dictionary> registeredCallbacks = CallbackDispatcher.m_registeredCallbacks; object sync = CallbackDispatcher.m_sync; int num2 = 0; int num3; if (!registeredCallbacks.TryGetValue(num3, num2)) { break; } Monitor.Exit(sync); if (num == 0) { return; } } List list = new List(); throw new NullReferenceException(); } // Token: 0x06008A84 RID: 35460 RVA: 0x001D4AB4 File Offset: 0x001D2CB4 [Token(Token = "0x6008A84")] [Address(RVA = "0x210FEA0", Offset = "0x210EEA0", VA = "0x18210FEA0")] internal static void Register(SteamAPICall_t asyncCall, CallResult cr) { for (;;) { int num = 0; object sync = CallbackDispatcher.m_sync; Dictionary> registeredCallResults = CallbackDispatcher.m_registeredCallResults; bool flag; if (!flag) { break; } Monitor.Exit(sync); if (num == 0) { return; } } List list = new List(); Dictionary> registeredCallResults2 = CallbackDispatcher.m_registeredCallResults; throw new NullReferenceException(); } // Token: 0x06008A85 RID: 35461 RVA: 0x001D4B04 File Offset: 0x001D2D04 [Token(Token = "0x6008A85")] [Address(RVA = "0x2111580", Offset = "0x2110580", VA = "0x182111580")] internal static void Unregister(Callback cb) { int num; do { num = 0; bool isGameServer = cb.IsGameServer; if (cb.ToString() != 0) { } Dictionary> registeredCallbacks = CallbackDispatcher.m_registeredCallbacks; object sync = CallbackDispatcher.m_sync; int num2 = 0; int num3; if (registeredCallbacks.TryGetValue(num3, num2)) { bool flag = registeredCallbacks.Remove(num3); } Monitor.Exit(sync); } while (num != 0); } // Token: 0x06008A86 RID: 35462 RVA: 0x001D4B68 File Offset: 0x001D2D68 [Token(Token = "0x6008A86")] [Address(RVA = "0x2111370", Offset = "0x2110370", VA = "0x182111370")] internal static void Unregister(SteamAPICall_t asyncCall, CallResult cr) { int num; do { num = 0; object sync = CallbackDispatcher.m_sync; Dictionary> registeredCallResults = CallbackDispatcher.m_registeredCallResults; bool flag; if (flag) { Dictionary> registeredCallResults2 = CallbackDispatcher.m_registeredCallResults; } Monitor.Exit(sync); } while (num != 0); } // Token: 0x06008A87 RID: 35463 RVA: 0x001D4BB0 File Offset: 0x001D2DB0 [Token(Token = "0x6008A87")] [Address(RVA = "0x2110C30", Offset = "0x210FC30", VA = "0x182110C30")] private static void UnregisterAll() { int num; do { num = 0; List list = new List(); List list2 = new List(); object sync = CallbackDispatcher.m_sync; Dictionary> registeredCallbacks = CallbackDispatcher.m_registeredCallbacks; bool flag; if (flag) { } if (num != 0) { goto IL_C0; } if (num != -1) { } CallbackDispatcher.m_registeredCallbacks.Clear(); Dictionary> registeredGameServerCallbacks = CallbackDispatcher.m_registeredGameServerCallbacks; bool flag2; if (flag2) { } num++; if (num != 0) { goto IL_C6; } if (num != -1) { } CallbackDispatcher.m_registeredGameServerCallbacks.Clear(); Dictionary> registeredCallResults = CallbackDispatcher.m_registeredCallResults; bool flag3; if (flag3) { } num++; if (num != 0) { goto IL_CC; } if (num != -1) { } Dictionary> registeredCallResults2 = CallbackDispatcher.m_registeredCallResults; registeredCallResults2.Clear(); bool flag4; if (flag4) { ICollection collection = registeredCallResults2.System.Collections.Generic.IDictionary.get_Keys(); } num++; if (num != 0) { goto IL_D2; } if (num != -1) { } bool flag5; if (flag5) { } num++; if (num != 0) { goto IL_D8; } if (num != -1) { } Monitor.Exit(registeredCallResults2); } while (num != 0); return; IL_C0: throw new NullReferenceException(); IL_C6: throw new NullReferenceException(); IL_CC: throw new NullReferenceException(); IL_D2: throw new NullReferenceException(); IL_D8: throw new NullReferenceException(); } // Token: 0x06008A88 RID: 35464 RVA: 0x001D4CC4 File Offset: 0x001D2EC4 [Token(Token = "0x6008A88")] [Address(RVA = "0x21100C0", Offset = "0x210F0C0", VA = "0x1821100C0")] internal static void RunFrame(bool isGameServer) { int num; uint num4; do { num = 0; if (isGameServer) { int num2 = NativeMethods.SteamGameServer_GetHSteamPipe(); } int num3 = NativeMethods.SteamAPI_GetHSteamPipe(); if (isGameServer) { } bool flag; if (!flag) { return; } IntPtr pCallbackMsg = CallbackDispatcher.m_pCallbackMsg; Type typeFromHandle = typeof(CallbackMsg_t); object obj = Marshal.PtrToStructure(pCallbackMsg, typeFromHandle); bool flag2; if (flag2) { object sync = CallbackDispatcher.m_sync; num4 += (uint)1; Monitor.Exit(sync); if (num != 0) { goto IL_101; } if (num4 != (uint)(-1)) { } bool flag3; if (flag3) { } num4 += (uint)1; if (num != 0) { goto IL_107; } if (num4 != (uint)(-1)) { Type typeFromHandle2 = typeof(SteamAPICallCompleted_t); object obj2 = Marshal.PtrToStructure(typeof(Marshal).TypeHandle, typeFromHandle2); bool flag4; if (flag4) { object sync2 = CallbackDispatcher.m_sync; Dictionary> registeredCallResults = CallbackDispatcher.m_registeredCallResults; bool flag5; if (flag5) { Dictionary> registeredCallResults2 = CallbackDispatcher.m_registeredCallResults; bool flag6; if (flag6) { } num4 += (uint)1; if (num != 0) { goto IL_119; } if (num4 != (uint)(-1)) { } } num4 += (uint)1; Monitor.Exit(sync2); if (num != 0) { goto IL_12B; } if (num4 != (uint)(-1)) { } } IntPtr intPtr; Marshal.FreeHGlobal(intPtr); } } num4 += (uint)1; num4 += (uint)1; } while (num != 0); if (num4 != (uint)(-1)) { } return; IL_101: throw new NullReferenceException(); IL_107: throw new NullReferenceException(); IL_119: throw new NullReferenceException(); IL_12B: throw new NullReferenceException(); } // Token: 0x04005AFE RID: 23294 [Token(Token = "0x4005AFE")] private static Dictionary> m_registeredCallbacks = new Dictionary(); // Token: 0x04005AFF RID: 23295 [Token(Token = "0x4005AFF")] private static Dictionary> m_registeredGameServerCallbacks = new Dictionary(); // Token: 0x04005B00 RID: 23296 [Token(Token = "0x4005B00")] private static Dictionary> m_registeredCallResults = new Dictionary(); // Token: 0x04005B01 RID: 23297 [Token(Token = "0x4005B01")] private static object m_sync = new object(); // Token: 0x04005B02 RID: 23298 [Token(Token = "0x4005B02")] private static IntPtr m_pCallbackMsg; // Token: 0x04005B03 RID: 23299 [Token(Token = "0x4005B03")] private static int m_initCount; } }