uint64_t f(uint64_t input) { uint64_t rax, rbx, rcx, rdx, r8; rax=input; rax*=0x5D7E0D1F2E0F1F84; rax=_lrotr(rax, rax&0xF); // rotate right rax^=0x388D76AEE8CB1500; rax=_lrotl(rax, rax&0xF); // rotate left r8=rax+0xD2E9EE7E83C4285B; rcx=r8-(r8/60)*60; rax=r8 rax=_lrotl (rax, rcx&0xFF); // rotate left return rax; };