To explain the above code, DetourFunction will back up all the bytes for you, so you can call the original function.
However, detours will overwrite the first 6 bytes and PB will kick you for corrupted memory.
To avoid that, we retour, (put in the original 6 bytes)
Then we can hook in another spot, where PB doesn't scan.