public static uint ClientSend(IntPtr ptr, ref CDataStore dataStore, int args) { var ds = dataStore.Clone(); var pkt = new Packet(ds); PacketLog.Write(pkt, "ClientMessage"); Memory.Write(originalFunction, originalInstruction); var ret = (uint)originalDelegate.DynamicInvoke(new object[] { ptr, dataStore, args }); Memory.Write(originalFunction, hookInstruction); return((uint)ret); }