For FindTargetHook() It could be something like this:
I know, it looks longer. But the main part is written in C. And there's no pain in the ass about stack, registers, the offsets, and the argument order while calling. Just save the necessary registers into stack on the function start, like...