// File: /workspace/github_cpp_makefile_star2_O3/BU-DiSC[P]BF-Shared-Hashing/hash/xxh3p.h
// Function: ROCKSDB_XXH3p_64bits
XXH_PUBLIC_API XXH64_hash_t XXH3p_64bits(const void* input, size_t len)
{
    if (len <= 16) return XXH3p_len_0to16_64b((const xxh_u8*)input, len, kSecret, 0);
    if (len <= 128) return XXH3p_len_17to128_64b((const xxh_u8*)input, len, kSecret, sizeof(kSecret), 0);
    if (len <= XXH3p_MIDSIZE_MAX) return XXH3p_len_129to240_64b((const xxh_u8*)input, len, kSecret, sizeof(kSecret), 0);
    return XXH3p_hashLong_64b_defaultSecret((const xxh_u8*)input, len);
}

// Assembly:
cmpq $0x10, %rsi
ja 0x247f8
cmpq $0x9, %rsi
jb 0x24991
movabsq $-0x41b45bdcc6930148, %r8 # imm = 0xBE4BA423396CFEB8
xorq (%rdi), %r8
movabsq $0x1cad21f72c81017c, %rcx # imm = 0x1CAD21F72C81017C
xorq -0x8(%rdi,%rsi), %rcx
movq %rcx, %rax
mulq %r8
xorq %rax, %rdx
addq %rsi, %r8
addq %rcx, %r8
addq %rdx, %r8
movq %r8, %rax
shrq $0x25, %rax
xorq %r8, %rax
jmp 0x24978
cmpq $0x80, %rsi
ja 0x249e1
movabsq $-0x61c8864e7a143579, %rcx # imm = 0x9E3779B185EBCA87
imulq %rsi, %rcx
cmpq $0x21, %rsi
jb 0x2491d
cmpq $0x41, %rsi
jb 0x248cb
cmpq $0x61, %rsi
jb 0x24879
movabsq $0x3f349ce33f76faa8, %rdx # imm = 0x3F349CE33F76FAA8
xorq 0x30(%rdi), %rdx
movabsq $0x1d4f0bc7c7bbdcf9, %rax # imm = 0x1D4F0BC7C7BBDCF9
xorq 0x38(%rdi), %rax
mulq %rdx
movabsq $0x3159b4cd4be0518a, %r8 # imm = 0x3159B4CD4BE0518A
xorq -0x40(%rdi,%rsi), %r8
xorq %rax, %rdx
movabsq $0x647378d9c97e9fc8, %rax # imm = 0x647378D9C97E9FC8
xorq -0x38(%rdi,%rsi), %rax
addq %rdx, %rcx
mulq %r8
xorq %rax, %rdx
addq %rdx, %rcx
movabsq $-0x34ff3c6e44add7c4, %rdx # imm = 0xCB00C391BB52283C
xorq 0x20(%rdi), %rdx
movabsq $-0x5cd1ace4749a2f78, %rax # imm = 0xA32E531B8B65D088
xorq 0x28(%rdi), %rax
mulq %rdx
movq %rdx, %r8
movabsq $0x4ef90da297486471, %rdx # imm = 0x4EF90DA297486471
xorq -0x30(%rdi,%rsi), %rdx
xorq %rax, %r8
movabsq $-0x27532156b910e6c8, %rax # imm = 0xD8ACDEA946EF1938
xorq -0x28(%rdi,%rsi), %rax
addq %rcx, %r8
mulq %rdx
movq %rdx, %rcx
xorq %rax, %rcx
addq %r8, %rcx
movabsq $0x78e5c0cc4ee679cb, %rdx # imm = 0x78E5C0CC4EE679CB
xorq 0x10(%rdi), %rdx
movabsq $0x2172ffcc7dd05a82, %rax # imm = 0x2172FFCC7DD05A82
xorq 0x18(%rdi), %rax
mulq %rdx
movq %rdx, %r8
movabsq $-0x71dbbc088bb9f748, %rdx # imm = 0x8E2443F7744608B8
xorq -0x20(%rdi,%rsi), %rdx
xorq %rax, %r8
movabsq $0x4c263a81e69035e0, %rax # imm = 0x4C263A81E69035E0
xorq -0x18(%rdi,%rsi), %rax
addq %rcx, %r8
mulq %rdx
movq %rdx, %rcx
xorq %rax, %rcx
addq %r8, %rcx
movabsq $-0x41b45bdcc6930148, %rdx # imm = 0xBE4BA423396CFEB8
xorq (%rdi), %rdx
movabsq $-0x24686f7c16922b22, %r9 # imm = 0xDB979083E96DD4DE
xorq -0x10(%rdi,%rsi), %r9
movabsq $0x1f67b3b7a4a44072, %r8 # imm = 0x1F67B3B7A4A44072
xorq -0x8(%rdi,%rsi), %r8
movabsq $0x1cad21f72c81017c, %rax # imm = 0x1CAD21F72C81017C
xorq 0x8(%rdi), %rax
mulq %rdx
movq %rdx, %rsi
xorq %rax, %rsi
addq %rcx, %rsi
movq %r8, %rax
mulq %r9
xorq %rax, %rdx
addq %rsi, %rdx
movq %rdx, %rax
shrq $0x25, %rax
xorq %rdx, %rax
movabsq $0x165667b19e3779f9, %rcx # imm = 0x165667B19E3779F9
imulq %rax, %rcx
movq %rcx, %rax
shrq $0x20, %rax
xorq %rcx, %rax
retq
cmpq $0x4, %rsi
jb 0x249f5
movl (%rdi), %eax
movl -0x4(%rdi,%rsi), %ecx
shlq $0x20, %rcx
orq %rax, %rcx
movabsq $-0x41b45bdcc6930148, %rax # imm = 0xBE4BA423396CFEB8
xorq %rcx, %rax
movq %rax, %rcx
shrq $0x33, %rcx
xorq %rax, %rcx
movl $0x9e3779b1, %eax       # imm = 0x9E3779B1
imulq %rcx, %rax
addq %rsi, %rax
movq %rax, %rcx
shrq $0x2f, %rcx
xorq %rax, %rcx
movabsq $-0x3d4d51c2d82b14b1, %rax # imm = 0xC2B2AE3D27D4EB4F
imulq %rcx, %rax
jmp 0x24a34
cmpq $0xf0, %rsi
ja 0x24a57
leaq 0x5bcf(%rip), %rdx      # 0x2a5c0
xorl %ecx, %ecx
jmp 0x24a67
testq %rsi, %rsi
je 0x24a5c
movzbl (%rdi), %eax
movq %rsi, %rcx
shrq %rcx
movzbl (%rdi,%rcx), %ecx
movzbl -0x1(%rdi,%rsi), %edx
shll $0x8, %ecx
orq %rax, %rcx
shll $0x10, %edx
orq %rcx, %rdx
shlq $0x18, %rsi
orq %rdx, %rsi
xorq $0x396cfeb8, %rsi       # imm = 0x396CFEB8
movabsq $-0x61c8864e7a143579, %rax # imm = 0x9E3779B185EBCA87
imulq %rsi, %rax
movq %rax, %rcx
shrq $0x25, %rcx
xorq %rax, %rcx
movabsq $0x165667b19e3779f9, %rdx # imm = 0x165667B19E3779F9
imulq %rcx, %rdx
movq %rdx, %rax
shrq $0x20, %rax
xorq %rdx, %rax
retq
jmp 0x24be2
movabsq $0x5342c3010fe1dd04, %rax # imm = 0x5342C3010FE1DD04
retq