// File: /workspace/github_cpp_makefile_star2_O2/BU-DiSC[P]BF-Shared-Hashing/hash/xxh3p.h
// Function: ROCKSDB_XXH3p_128bits_withSeed
XXH_PUBLIC_API XXH128_hash_t
XXH3p_128bits_withSeed(const void* input, size_t len, XXH64_hash_t seed)
{
    if (len <= 16) return XXH3p_len_0to16_128b((const xxh_u8*)input, len, kSecret, seed);
    if (len <= 128) return XXH3p_len_17to128_128b((const xxh_u8*)input, len, kSecret, sizeof(kSecret), seed);
    if (len <= XXH3p_MIDSIZE_MAX) return XXH3p_len_129to240_128b((const xxh_u8*)input, len, kSecret, sizeof(kSecret), seed);
    return XXH3p_hashLong_128b_withSeed((const xxh_u8*)input, len, seed);
}

// Assembly:
movq %rdx, %rcx
cmpq $0x10, %rsi
ja 0x203fc
cmpq $0x9, %rsi
jb 0x204ae
movabsq $-0x41b45bdcc6930148, %rax # imm = 0xBE4BA423396CFEB8
addq %rcx, %rax
xorq (%rdi), %rax
movabsq $0x1cad21f72c81017c, %r8 # imm = 0x1CAD21F72C81017C
subq %rcx, %r8
xorq -0x8(%rdi,%rsi), %r8
xorq %r8, %rax
movabsq $-0x61c8864e7a143579, %rcx # imm = 0x9E3779B185EBCA87
mulq %rcx
imulq $0x165667b1, %rsi, %rsi # imm = 0x165667B1
addq %rsi, %rax
imulq %rcx, %r8
addq %rdx, %r8
movq %r8, %rcx
shrq $0x20, %rcx
xorq %rcx, %rax
movabsq $-0x3d4d51c2d82b14b1, %rcx # imm = 0xC2B2AE3D27D4EB4F
mulq %rcx
imulq %rcx, %r8
addq %rdx, %r8
movq %rax, %rcx
shrq $0x25, %rcx
xorq %rax, %rcx
movabsq $0x165667b19e3779f9, %rdx # imm = 0x165667B19E3779F9
imulq %rdx, %rcx
movq %rcx, %rax
shrq $0x20, %rax
xorq %rcx, %rax
movq %r8, %rcx
shrq $0x25, %rcx
xorq %r8, %rcx
imulq %rdx, %rcx
jmp 0x20579
cmpq $0x80, %rsi
ja 0x20584
pushq %r14
pushq %rbx
movabsq $-0x61c8864e7a143579, %r9 # imm = 0x9E3779B185EBCA87
movq %rsi, %r10
imulq %r9, %r10
cmpq $0x21, %rsi
jb 0x2059d
cmpq $0x41, %rsi
jb 0x2064e
cmpq $0x61, %rsi
jb 0x20657
movq 0x30(%rdi), %r11
movq 0x38(%rdi), %r8
movabsq $0x3f349ce33f76faa8, %rdx # imm = 0x3F349CE33F76FAA8
addq %rcx, %rdx
xorq %r11, %rdx
movabsq $0x1d4f0bc7c7bbdcf9, %rax # imm = 0x1D4F0BC7C7BBDCF9
subq %rcx, %rax
xorq %r8, %rax
mulq %rdx
xorq %rax, %rdx
addq %rdx, %r10
movq -0x40(%rdi,%rsi), %rax
movq -0x38(%rdi,%rsi), %rdx
leaq (%rdx,%rax), %rbx
xorq %rbx, %r10
movabsq $0x3159b4cd4be0518a, %rbx # imm = 0x3159B4CD4BE0518A
addq %rcx, %rbx
xorq %rax, %rbx
movabsq $0x647378d9c97e9fc8, %rax # imm = 0x647378D9C97E9FC8
subq %rcx, %rax
xorq %rdx, %rax
mulq %rbx
addq %r11, %r8
xorq %rdx, %r8
xorq %rax, %r8
jmp 0x2065a
cmpq $0x4, %rsi
jb 0x205a5
movl (%rdi), %eax
movl -0x4(%rdi,%rsi), %edx
shlq $0x20, %rdx
orq %rax, %rdx
movabsq $-0x41b45bdcc6930148, %rax # imm = 0xBE4BA423396CFEB8
addq %rcx, %rax
xorq %rdx, %rax
bswapq %rdx
movabsq $0x1cad21f72c81017c, %rdi # imm = 0x1CAD21F72C81017C
subq %rcx, %rdi
xorq %rdx, %rdi
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
movq %rdi, %rcx
shrq $0x2f, %rcx
xorq %rdi, %rcx
movabsq $-0x61c8864e7a143579, %rdx # imm = 0x9E3779B185EBCA87
imulq %rcx, %rdx
subq %rsi, %rdx
movq %rdx, %rcx
shrq $0x2b, %rcx
xorq %rdx, %rcx
movabsq $-0x7a1435883d4d519d, %rdx # imm = 0x85EBCA77C2B2AE63
imulq %rcx, %rdx
movq %rax, %rcx
shrq $0x25, %rcx
xorq %rax, %rcx
movabsq $0x165667b19e3779f9, %rsi # imm = 0x165667B19E3779F9
imulq %rsi, %rcx
movq %rcx, %rax
shrq $0x20, %rax
xorq %rcx, %rax
movq %rdx, %rcx
shrq $0x25, %rcx
xorq %rdx, %rcx
imulq %rsi, %rcx
movq %rcx, %rdx
shrq $0x20, %rdx
xorq %rcx, %rdx
retq
cmpq $0xf0, %rsi
ja 0x20646
leaq 0x2fe8(%rip), %rdx      # 0x23580
jmp 0x1f8a0
xorl %r11d, %r11d
jmp 0x2073c
testq %rsi, %rsi
je 0x20652
movzbl (%rdi), %eax
movq %rsi, %rdx
shrq %rdx
movzbl (%rdi,%rdx), %edx
movzbl -0x1(%rdi,%rsi), %edi
shll $0x8, %edx
orl %eax, %edx
shll $0x10, %edi
orl %edx, %edi
shll $0x18, %esi
orl %edi, %esi
movl %esi, %eax
bswapl %eax
leaq 0x396cfeb8(%rcx), %rdx
xorq %rsi, %rdx
movl $0x9e3779b1, %esi       # imm = 0x9E3779B1
subq %rcx, %rsi
addq $0x20142a72, %rsi       # imm = 0x20142A72
xorq %rax, %rsi
movabsq $-0x61c8864e7a143579, %rax # imm = 0x9E3779B185EBCA87
imulq %rdx, %rax
movabsq $0x27d4eb2f165667c5, %rcx # imm = 0x27D4EB2F165667C5
imulq %rsi, %rcx
movq %rax, %rdx
shrq $0x25, %rdx
xorq %rax, %rdx
movabsq $0x165667b19e3779f9, %rsi # imm = 0x165667B19E3779F9
imulq %rsi, %rdx
movq %rdx, %rax
shrq $0x20, %rax
xorq %rdx, %rax
movq %rcx, %rdi
shrq $0x25, %rdi
xorq %rcx, %rdi
imulq %rsi, %rdi
movq %rdi, %rdx
shrq $0x20, %rdx
xorq %rdi, %rdx
retq
movq %rcx, %rdx
jmp 0x2081d
xorl %ebx, %ebx
jmp 0x206cb
xorl %edx, %edx
xorl %eax, %eax
retq
xorl %r8d, %r8d
movq 0x20(%rdi), %r11
movq 0x28(%rdi), %rbx
movabsq $-0x34ff3c6e44add7c4, %rdx # imm = 0xCB00C391BB52283C
addq %rcx, %rdx
xorq %r11, %rdx
movabsq $-0x5cd1ace4749a2f78, %rax # imm = 0xA32E531B8B65D088
subq %rcx, %rax
xorq %rbx, %rax
mulq %rdx
xorq %rax, %rdx
addq %r10, %rdx
movq -0x30(%rdi,%rsi), %rax
movq -0x28(%rdi,%rsi), %r14
leaq (%r14,%rax), %r10
xorq %rdx, %r10
movabsq $0x4ef90da297486471, %rdx # imm = 0x4EF90DA297486471
addq %rcx, %rdx
xorq %rax, %rdx
movabsq $-0x27532156b910e6c8, %rax # imm = 0xD8ACDEA946EF1938
subq %rcx, %rax
xorq %r14, %rax
mulq %rdx
xorq %rax, %rdx
addq %r8, %rdx
addq %r11, %rbx
xorq %rdx, %rbx
movq 0x10(%rdi), %r8
movq 0x18(%rdi), %r11
movabsq $0x78e5c0cc4ee679cb, %rdx # imm = 0x78E5C0CC4EE679CB
addq %rcx, %rdx
xorq %r8, %rdx
movabsq $0x2172ffcc7dd05a82, %rax # imm = 0x2172FFCC7DD05A82
subq %rcx, %rax
xorq %r11, %rax
mulq %rdx
xorq %rax, %rdx
addq %r10, %rdx
movq -0x20(%rdi,%rsi), %rax
movq -0x18(%rdi,%rsi), %r14
leaq (%r14,%rax), %r10
xorq %rdx, %r10
movabsq $-0x71dbbc088bb9f748, %rdx # imm = 0x8E2443F7744608B8
addq %rcx, %rdx
xorq %rax, %rdx
movabsq $0x4c263a81e69035e0, %rax # imm = 0x4C263A81E69035E0
subq %rcx, %rax
xorq %r14, %rax
mulq %rdx
xorq %rax, %rdx
addq %rbx, %rdx
addq %r8, %r11
xorq %rdx, %r11
movq (%rdi), %r14
movq 0x8(%rdi), %rbx
movabsq $-0x41b45bdcc6930148, %rdx # imm = 0xBE4BA423396CFEB8
addq %rcx, %rdx
xorq %r14, %rdx
movabsq $0x1cad21f72c81017c, %rax # imm = 0x1CAD21F72C81017C
subq %rcx, %rax
xorq %rbx, %rax
mulq %rdx
movq %rdx, %r8
xorq %rax, %r8
addq %r10, %r8
movq -0x10(%rdi,%rsi), %rax
movq -0x8(%rdi,%rsi), %rdx
leaq (%rdx,%rax), %rdi
movabsq $-0x24686f7c16922b22, %r10 # imm = 0xDB979083E96DD4DE
addq %rcx, %r10
xorq %rax, %r10
movabsq $0x1f67b3b7a4a44072, %rax # imm = 0x1F67B3B7A4A44072
subq %rcx, %rax
xorq %rdx, %rax
mulq %r10
xorq %r8, %rdi
xorq %rax, %rdx
addq %r11, %rdx
addq %r14, %rbx
xorq %rdx, %rbx
leaq (%rbx,%rdi), %rax
imulq %r9, %rdi
movabsq $-0x7a1435883d4d519d, %rdx # imm = 0x85EBCA77C2B2AE63
imulq %rbx, %rdx
subq %rcx, %rsi
movabsq $-0x3d4d51c2d82b14b1, %rcx # imm = 0xC2B2AE3D27D4EB4F
imulq %rsi, %rcx
addq %rdi, %rcx
addq %rdx, %rcx
movq %rax, %rdx
shrq $0x25, %rdx
xorq %rax, %rdx
movabsq $0x165667b19e3779f9, %rsi # imm = 0x165667B19E3779F9
imulq %rsi, %rdx
movq %rdx, %rax
shrq $0x20, %rax
xorq %rdx, %rax
movq %rcx, %rdi
shrq $0x25, %rdi
xorq %rcx, %rdi
imulq %rsi, %rdi
movq %rdi, %rdx
shrq $0x20, %rdx
xorq %rdi, %rdx
negq %rdx
popq %rbx
popq %r14
retq