In 32 bits, you use EBP to find the address of the call to return the next instruction. That's right.
In 64 bit, you use the undocumented function RtlGetCallerAddress, but you get the wrong argument.
The first out pointer of this function is to return the address of the next instruction,
and the second argument is the address of the caller's caller.
You should use the first pointer instead of the second.
After the above modifications, hideleak works normally