First off you'll want to find the location that is writing the the localplayer punch angles. I have this done and you can use this pattern to get it:
Code:
"\x89\x01\x8B\x42\x0C\x89\x41\x04\x8B\x42\x10\x89\x41\x08", "xxxxxxxxxxxxxx"
It's kind of long, so once you know where it is, create your own.
Now you need to remove protection. I simply remove a small chunk:
Code:
DWORD oldp;
VirtualProtect(reinterpret_cast<void*>(addy), 5, PAGE_EXECUTE_READWRITE, &oldp);
Now we want to NOP some instructions. You could be more accurate but here is just what you need:
Code:
memset(reinterpret_cast<void*>(SiggScannedAddy), 0x90, 2);
memset(reinterpret_cast<void*>(SigScannedAddy + 0x5), 0x90, 9);
Now make sure you put the old protection back:
Code:
VirtualProtect(reinterpret_cast<void*>(addy), 5, old, NULL);