private static unsafe IntPtr VirtualMachine__RunFunctionHook(VirtualMachine *virtualMachine, string functionName, int a3, int a4, int a5, int a6) { IntPtr num = IntPtr.Zero; try { string str = functionName; if (str == "config") { PreConfig?.Invoke(); num = VirtualMachine__RunFunction(virtualMachine, functionName, a3, a4, a5, a6); PostConfig?.Invoke(); } else { if (str == "main") { PreMain?.Invoke(); num = VirtualMachine__RunFunction(virtualMachine, functionName, a3, a4, a5, a6); PostMain?.Invoke(); } else { num = VirtualMachine__RunFunction(virtualMachine, functionName, a3, a4, a5, a6); } } } catch (Exception ex) { Trace.WriteLine($"Unhandled Exception in {nameof(Script)}.{nameof(VirtualMachine__RunFunctionHook)}!"); Trace.WriteLine(ex.ToString()); } return(num); }