using System; using System.Diagnostics; using System.Runtime.InteropServices; using Cpp2IlInjected; using EasyAntiCheat.Client; using EasyAntiCheat.Client.ClientAuth; using EasyAntiCheat.Client.Hydra; using Photon.Pun; using Photon.Pun.RecRoomCustom; using UnityEngine; namespace RecRoom.AntiCheat { // Token: 0x02001FE9 RID: 8169 [Token(Token = "0x2001FE9")] [StructLayout(3)] public class EACManager : MonoBehaviour, IEACHandler { // Token: 0x0600E261 RID: 57953 RVA: 0x0035DAE4 File Offset: 0x0035BCE4 [Token(Token = "0x600E261")] [Address(RVA = "0x12A1CF0", Offset = "0x12A06F0", VA = "0x1812A1CF0")] public static string GenerateChallengeResponse(string DHBEAPFFAMK) { /* An exception occurred when decompiling this method (0600E261) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.String RecRoom.AntiCheat.EACManager::GenerateChallengeResponse(System.String) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_21: call:void(Debug::LogError, ldstr:string[exp:object]("Client auth is not ready to generate a challenge response")) } 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: 0x0600E262 RID: 57954 RVA: 0x0035DB20 File Offset: 0x0035BD20 [Token(Token = "0x600E262")] [Address(RVA = "0x12A1DF0", Offset = "0x12A07F0", VA = "0x1812A1DF0")] private static void MANCCEICLJE(RecRoomPluginCustomTypes.EACMessage AJNGCKJHBMO) { if (Runtime.IsActive()) { byte[] message = AJNGCKJHBMO.message; int length = message.Length; Runtime.PushNetworkMessage(message, length); return; } global::UnityEngine.Debug.LogError("EAC runtime inactive"); } // Token: 0x0600E263 RID: 57955 RVA: 0x0035DB60 File Offset: 0x0035BD60 [Token(Token = "0x600E263")] [Address(RVA = "0x12A1AA0", Offset = "0x12A04A0", VA = "0x1812A1AA0")] private static void GKFGPKDENIF() { if (Runtime.IsActive()) { global::UnityEngine.Debug.Log("[EAC] Initializing EAC, runtime is active"); int num; EventHandler eventHandler = new EventHandler(num.MPNJCGHLGKD); num = 0; int num2; EventHandler eventHandler2 = new EventHandler(num2.NKGFIJFCCEP); num2 = 0; int num3; EventHandler eventHandler3 = new EventHandler(num3.OBCKDFPPIFL); num3 = 0; Runtime.Initialize(eventHandler, eventHandler2, eventHandler3); Runtime.ConnectionReset(); ClientAuth clientAuth = new ClientAuth(); return; } global::UnityEngine.Debug.Log("EAC runtime inactive"); } // Token: 0x0600E264 RID: 57956 RVA: 0x0035DBE4 File Offset: 0x0035BDE4 [Token(Token = "0x600E264")] [Address(RVA = "0x12A2410", Offset = "0x12A0E10", VA = "0x1812A2410")] private static void PBIJEPGHKIB() { global::UnityEngine.Debug.Log("[EAC] Tearing down and releasing runtime"); Runtime.Release(); } // Token: 0x0600E265 RID: 57957 RVA: 0x0035DC04 File Offset: 0x0035BE04 [Token(Token = "0x600E265")] [Address(RVA = "0x12A21E0", Offset = "0x12A0BE0", VA = "0x1812A21E0")] private static void OBCKDFPPIFL(object KHLHONFFPMH, LoadProgressEventArgs JCBEOPOJKBD) { object[] array = new object[1]; int k__BackingField = JCBEOPOJKBD.k__BackingField; if (array != 0) { } array[0] = array; global::UnityEngine.Debug.LogFormat("[EAC] OnLoadProgress() :: {0}%", array); } // Token: 0x0600E266 RID: 57958 RVA: 0x0035DC3C File Offset: 0x0035BE3C [Token(Token = "0x600E266")] [Address(RVA = "0x12A2040", Offset = "0x12A0A40", VA = "0x1812A2040")] private static void NKGFIJFCCEP(object KHLHONFFPMH, LoadCompletedEventArgs JCBEOPOJKBD) { if (JCBEOPOJKBD.k__BackingField <= LoadResult.InitCancelRequested) { object[] array = new object[1]; string k__BackingField = JCBEOPOJKBD.k__BackingField; throw new ArrayTypeMismatchException(); } object[] array2 = new object[1]; string k__BackingField2 = JCBEOPOJKBD.k__BackingField; if (k__BackingField2 != 0) { } array2[0] = k__BackingField2; global::UnityEngine.Debug.LogFormat("[EAC] OnLoadCompleted() :: ERROR: {0}", array2); } // Token: 0x0600E267 RID: 57959 RVA: 0x0035DCAC File Offset: 0x0035BEAC [Token(Token = "0x600E267")] [Address(RVA = "0x12A1EC0", Offset = "0x12A08C0", VA = "0x1812A1EC0")] private static void MPNJCGHLGKD(object KHLHONFFPMH, StateChangedEventArgs JCBEOPOJKBD) { if (JCBEOPOJKBD.k__BackingField != StateChangeType.Integrity) { object[] array = new object[2]; StateChangeType k__BackingField = JCBEOPOJKBD.k__BackingField; if (array != 0) { } array[0] = array; string k__BackingField = JCBEOPOJKBD.k__BackingField; if (k__BackingField != 0) { } array[1] = k__BackingField; global::UnityEngine.Debug.LogFormat("[EAC] Unhandled game callback :: {0} {1}", array); return; } Process.GetCurrentProcess().Kill(); } // Token: 0x0600E268 RID: 57960 RVA: 0x0035DD10 File Offset: 0x0035BF10 [Token(Token = "0x600E268")] [Address(RVA = "0x12A2560", Offset = "0x12A0F60", VA = "0x1812A2560")] protected void Start() { EACManager.GKFGPKDENIF(); ActionEvent onLeftRoom = PhotonNetwork.OnLeftRoom; Action action = new Action(this.GCAIMGAHPFD); PhotonNetwork.OnLeftRoom = onLeftRoom + action; PhotonNetwork.ExternalEACHandler = this; } // Token: 0x0600E269 RID: 57961 RVA: 0x0035DD4C File Offset: 0x0035BF4C [Token(Token = "0x600E269")] [Address(RVA = "0x12A2640", Offset = "0x12A1040", VA = "0x1812A2640")] protected void Update() { int num = 0; if (Runtime.IsActive()) { if (Runtime.PopNetworkMessage(num, num)) { byte[] array = new byte[num]; Array.Copy(num, array, num); PhotonNetwork.RespondToEACMessage(array); } Runtime.PollStatus(); } } // Token: 0x0600E26A RID: 57962 RVA: 0x0035DD8C File Offset: 0x0035BF8C [Token(Token = "0x600E26A")] [Address(RVA = "0x12A22D0", Offset = "0x12A0CD0", VA = "0x1812A22D0")] protected void OnApplicationQuit() { ActionEvent onLeftRoom = PhotonNetwork.OnLeftRoom; Action action = new Action(this.GCAIMGAHPFD); PhotonNetwork.OnLeftRoom = onLeftRoom - action; global::UnityEngine.Debug.Log("[EAC] Tearing down and releasing runtime"); Runtime.Release(); } // Token: 0x0600E26B RID: 57963 RVA: 0x0035DDCC File Offset: 0x0035BFCC [Token(Token = "0x600E26B")] [Address(RVA = "0x12A1A50", Offset = "0x12A0450", VA = "0x1812A1A50")] private void GCAIMGAHPFD() { Runtime.ConnectionReset(); } // Token: 0x0600E26C RID: 57964 RVA: 0x0035DDE0 File Offset: 0x0035BFE0 [Token(Token = "0x600E26C")] [Address(RVA = "0x12A2490", Offset = "0x12A0E90", VA = "0x1812A2490", Slot = "4")] public void PushNetworkMessage(RecRoomPluginCustomTypes.EACMessage AJNGCKJHBMO) { if (Runtime.IsActive()) { byte[] message = AJNGCKJHBMO.message; int length = message.Length; Runtime.PushNetworkMessage(message, length); return; } global::UnityEngine.Debug.LogError("EAC runtime inactive"); } // Token: 0x0600E26D RID: 57965 RVA: 0x0035DE20 File Offset: 0x0035C020 [Token(Token = "0x600E26D")] [Address(RVA = "0x3C1210", Offset = "0x3BFC10", VA = "0x1803C1210")] public EACManager() { } // Token: 0x04009467 RID: 37991 [Token(Token = "0x4009467")] private static ClientAuth PALLBAHEKAP; } }