// File: /workspace/github_c_makefile_star2_O0/Cyan4973[P]FiniteStateEntropy/programs/xxhash.c
// Function: XXH64_digest
XXH_PUBLIC_API unsigned long long XXH64_digest (const XXH64_state_t* state_in)
{
    XXH_endianess endian_detected = (XXH_endianess)XXH_CPU_LITTLE_ENDIAN;

    if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT)
        return XXH64_digest_endian(state_in, XXH_littleEndian);
    else
        return XXH64_digest_endian(state_in, XXH_bigEndian);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x180, %rsp            # imm = 0x180
movq %rdi, -0x140(%rbp)
movsbl 0x1b0b3(%rip), %eax     # 0x25eec
movl %eax, -0x144(%rbp)
cmpl $0x1, -0x144(%rbp)
jne 0xb361
movq -0x140(%rbp), %rax
movq %rax, -0x98(%rbp)
movl $0x1, -0x9c(%rbp)
movq -0x98(%rbp), %rax
addq $0x30, %rax
movq %rax, -0xa8(%rbp)
movq -0x98(%rbp), %rax
addq $0x30, %rax
movq -0x98(%rbp), %rcx
movl 0x50(%rcx), %ecx
addq %rcx, %rax
movq %rax, -0xb0(%rbp)
movq -0x98(%rbp), %rax
cmpq $0x20, (%rax)
jb 0xafcb
movq -0x98(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0xc0(%rbp)
movq -0x98(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0xc8(%rbp)
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0xd0(%rbp)
movq -0x98(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0xd8(%rbp)
movq -0xc0(%rbp), %rax
shlq %rax
movq -0xc0(%rbp), %rcx
shrq $0x3f, %rcx
orq %rcx, %rax
movq -0xc8(%rbp), %rcx
shlq $0x7, %rcx
movq -0xc8(%rbp), %rdx
shrq $0x39, %rdx
orq %rdx, %rcx
addq %rcx, %rax
movq -0xd0(%rbp), %rcx
shlq $0xc, %rcx
movq -0xd0(%rbp), %rdx
shrq $0x34, %rdx
orq %rdx, %rcx
addq %rcx, %rax
movq -0xd8(%rbp), %rcx
shlq $0x12, %rcx
movq -0xd8(%rbp), %rdx
shrq $0x2e, %rdx
orq %rdx, %rcx
addq %rcx, %rax
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rdi
movq -0xc0(%rbp), %rsi
callq 0xbba0
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rdi
movq -0xc8(%rbp), %rsi
callq 0xbba0
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rdi
movq -0xd0(%rbp), %rsi
callq 0xbba0
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rdi
movq -0xd8(%rbp), %rsi
callq 0xbba0
movq %rax, -0xb8(%rbp)
jmp 0xafe7
movq -0x98(%rbp), %rcx
movabsq $0x27d4eb2f165667c5, %rax # imm = 0x27D4EB2F165667C5
addq 0x8(%rcx), %rax
movq %rax, -0xb8(%rbp)
movq -0x98(%rbp), %rax
movq (%rax), %rax
addq -0xb8(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0xa8(%rbp), %rax
addq $0x8, %rax
cmpq -0xb0(%rbp), %rax
ja 0xb132
movq -0xa8(%rbp), %rcx
movl -0x9c(%rbp), %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
movq -0x48(%rbp), %rcx
movl -0x4c(%rbp), %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl $0x1, -0x40(%rbp)
cmpl $0x1, -0x40(%rbp)
jne 0xb083
cmpl $0x1, -0x3c(%rbp)
jne 0xb05e
movq -0x38(%rbp), %rdi
callq 0xbc00
movq %rax, -0x150(%rbp)
jmp 0xb076
movq -0x38(%rbp), %rdi
callq 0xbc00
movq %rax, %rdi
callq 0xb940
movq %rax, -0x150(%rbp)
movq -0x150(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0xb0b7
cmpl $0x1, -0x3c(%rbp)
jne 0xb099
movq -0x38(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x158(%rbp)
jmp 0xb0ac
movq -0x38(%rbp), %rax
movq (%rax), %rdi
callq 0xb940
movq %rax, -0x158(%rbp)
movq -0x158(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edi
callq 0xbb40
movq %rax, -0xe0(%rbp)
movq -0xe0(%rbp), %rax
xorq -0xb8(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rax
shlq $0x1b, %rax
movq -0xb8(%rbp), %rcx
shrq $0x25, %rcx
orq %rcx, %rax
movabsq $-0x61c8864e7a143579, %rcx # imm = 0x9E3779B185EBCA87
imulq %rcx, %rax
movabsq $-0x7a1435883d4d519d, %rcx # imm = 0x85EBCA77C2B2AE63
addq %rcx, %rax
movq %rax, -0xb8(%rbp)
movq -0xa8(%rbp), %rax
addq $0x8, %rax
movq %rax, -0xa8(%rbp)
jmp 0xafff
movq -0xa8(%rbp), %rax
addq $0x4, %rax
cmpq -0xb0(%rbp), %rax
ja 0xb257
movq -0xa8(%rbp), %rcx
movl -0x9c(%rbp), %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
movq -0x88(%rbp), %rcx
movl -0x8c(%rbp), %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
movl $0x1, -0x80(%rbp)
cmpl $0x1, -0x80(%rbp)
jne 0xb1bd
cmpl $0x1, -0x7c(%rbp)
jne 0xb19c
movq -0x78(%rbp), %rdi
callq 0xbb20
movl %eax, -0x15c(%rbp)
jmp 0xb1b2
movq -0x78(%rbp), %rdi
callq 0xbb20
movl %eax, %edi
callq 0xb8c0
movl %eax, -0x15c(%rbp)
movl -0x15c(%rbp), %eax
movl %eax, -0x70(%rbp)
jmp 0xb1eb
cmpl $0x1, -0x7c(%rbp)
jne 0xb1d1
movq -0x78(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x160(%rbp)
jmp 0xb1e2
movq -0x78(%rbp), %rax
movl (%rax), %edi
callq 0xb8c0
movl %eax, -0x160(%rbp)
movl -0x160(%rbp), %eax
movl %eax, -0x70(%rbp)
movl -0x70(%rbp), %eax
movabsq $-0x61c8864e7a143579, %rcx # imm = 0x9E3779B185EBCA87
imulq %rcx, %rax
xorq -0xb8(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rax
shlq $0x17, %rax
movq -0xb8(%rbp), %rcx
shrq $0x29, %rcx
orq %rcx, %rax
movabsq $-0x3d4d51c2d82b14b1, %rcx # imm = 0xC2B2AE3D27D4EB4F
imulq %rcx, %rax
movabsq $0x165667b19e3779f9, %rcx # imm = 0x165667B19E3779F9
addq %rcx, %rax
movq %rax, -0xb8(%rbp)
movq -0xa8(%rbp), %rax
addq $0x4, %rax
movq %rax, -0xa8(%rbp)
jmp 0xb259
movq -0xa8(%rbp), %rax
cmpq -0xb0(%rbp), %rax
jae 0xb2d1
movq -0xa8(%rbp), %rax
movzbl (%rax), %eax
movabsq $0x27d4eb2f165667c5, %rcx # imm = 0x27D4EB2F165667C5
imulq %rcx, %rax
xorq -0xb8(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rax
shlq $0xb, %rax
movq -0xb8(%rbp), %rcx
shrq $0x35, %rcx
orq %rcx, %rax
movabsq $-0x61c8864e7a143579, %rcx # imm = 0x9E3779B185EBCA87
imulq %rcx, %rax
movq %rax, -0xb8(%rbp)
movq -0xa8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xa8(%rbp)
jmp 0xb259
movq -0xb8(%rbp), %rax
shrq $0x21, %rax
xorq -0xb8(%rbp), %rax
movq %rax, -0xb8(%rbp)
movabsq $-0x3d4d51c2d82b14b1, %rax # imm = 0xC2B2AE3D27D4EB4F
imulq -0xb8(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rax
shrq $0x1d, %rax
xorq -0xb8(%rbp), %rax
movq %rax, -0xb8(%rbp)
movabsq $0x165667b19e3779f9, %rax # imm = 0x165667B19E3779F9
imulq -0xb8(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rax
shrq $0x20, %rax
xorq -0xb8(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rax
movq %rax, -0x138(%rbp)
jmp 0xb865
movq -0x140(%rbp), %rax
movq %rax, -0xe8(%rbp)
movl $0x0, -0xec(%rbp)
movq -0xe8(%rbp), %rax
addq $0x30, %rax
movq %rax, -0xf8(%rbp)
movq -0xe8(%rbp), %rax
addq $0x30, %rax
movq -0xe8(%rbp), %rcx
movl 0x50(%rcx), %ecx
addq %rcx, %rax
movq %rax, -0x100(%rbp)
movq -0xe8(%rbp), %rax
cmpq $0x20, (%rax)
jb 0xb4e0
movq -0xe8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x110(%rbp)
movq -0xe8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x118(%rbp)
movq -0xe8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x120(%rbp)
movq -0xe8(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x128(%rbp)
movq -0x110(%rbp), %rax
shlq %rax
movq -0x110(%rbp), %rcx
shrq $0x3f, %rcx
orq %rcx, %rax
movq -0x118(%rbp), %rcx
shlq $0x7, %rcx
movq -0x118(%rbp), %rdx
shrq $0x39, %rdx
orq %rdx, %rcx
addq %rcx, %rax
movq -0x120(%rbp), %rcx
shlq $0xc, %rcx
movq -0x120(%rbp), %rdx
shrq $0x34, %rdx
orq %rdx, %rcx
addq %rcx, %rax
movq -0x128(%rbp), %rcx
shlq $0x12, %rcx
movq -0x128(%rbp), %rdx
shrq $0x2e, %rdx
orq %rdx, %rcx
addq %rcx, %rax
movq %rax, -0x108(%rbp)
movq -0x108(%rbp), %rdi
movq -0x110(%rbp), %rsi
callq 0xbba0
movq %rax, -0x108(%rbp)
movq -0x108(%rbp), %rdi
movq -0x118(%rbp), %rsi
callq 0xbba0
movq %rax, -0x108(%rbp)
movq -0x108(%rbp), %rdi
movq -0x120(%rbp), %rsi
callq 0xbba0
movq %rax, -0x108(%rbp)
movq -0x108(%rbp), %rdi
movq -0x128(%rbp), %rsi
callq 0xbba0
movq %rax, -0x108(%rbp)
jmp 0xb4fc
movq -0xe8(%rbp), %rcx
movabsq $0x27d4eb2f165667c5, %rax # imm = 0x27D4EB2F165667C5
addq 0x8(%rcx), %rax
movq %rax, -0x108(%rbp)
movq -0xe8(%rbp), %rax
movq (%rax), %rax
addq -0x108(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0xf8(%rbp), %rax
addq $0x8, %rax
cmpq -0x100(%rbp), %rax
ja 0xb647
movq -0xf8(%rbp), %rcx
movl -0xec(%rbp), %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movq -0x20(%rbp), %rcx
movl -0x24(%rbp), %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x1, -0x18(%rbp)
cmpl $0x1, -0x18(%rbp)
jne 0xb598
cmpl $0x1, -0x14(%rbp)
jne 0xb573
movq -0x10(%rbp), %rdi
callq 0xbc00
movq %rax, -0x168(%rbp)
jmp 0xb58b
movq -0x10(%rbp), %rdi
callq 0xbc00
movq %rax, %rdi
callq 0xb940
movq %rax, -0x168(%rbp)
movq -0x168(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xb5cc
cmpl $0x1, -0x14(%rbp)
jne 0xb5ae
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x170(%rbp)
jmp 0xb5c1
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0xb940
movq %rax, -0x170(%rbp)
movq -0x170(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edi
callq 0xbb40
movq %rax, -0x130(%rbp)
movq -0x130(%rbp), %rax
xorq -0x108(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0x108(%rbp), %rax
shlq $0x1b, %rax
movq -0x108(%rbp), %rcx
shrq $0x25, %rcx
orq %rcx, %rax
movabsq $-0x61c8864e7a143579, %rcx # imm = 0x9E3779B185EBCA87
imulq %rcx, %rax
movabsq $-0x7a1435883d4d519d, %rcx # imm = 0x85EBCA77C2B2AE63
addq %rcx, %rax
movq %rax, -0x108(%rbp)
movq -0xf8(%rbp), %rax
addq $0x8, %rax
movq %rax, -0xf8(%rbp)
jmp 0xb514
movq -0xf8(%rbp), %rax
addq $0x4, %rax
cmpq -0x100(%rbp), %rax
ja 0xb760
movq -0xf8(%rbp), %rcx
movl -0xec(%rbp), %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
movq -0x68(%rbp), %rcx
movl -0x6c(%rbp), %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
movl $0x1, -0x60(%rbp)
cmpl $0x1, -0x60(%rbp)
jne 0xb6c6
cmpl $0x1, -0x5c(%rbp)
jne 0xb6a5
movq -0x58(%rbp), %rdi
callq 0xbb20
movl %eax, -0x174(%rbp)
jmp 0xb6bb
movq -0x58(%rbp), %rdi
callq 0xbb20
movl %eax, %edi
callq 0xb8c0
movl %eax, -0x174(%rbp)
movl -0x174(%rbp), %eax
movl %eax, -0x50(%rbp)
jmp 0xb6f4
cmpl $0x1, -0x5c(%rbp)
jne 0xb6da
movq -0x58(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x178(%rbp)
jmp 0xb6eb
movq -0x58(%rbp), %rax
movl (%rax), %edi
callq 0xb8c0
movl %eax, -0x178(%rbp)
movl -0x178(%rbp), %eax
movl %eax, -0x50(%rbp)
movl -0x50(%rbp), %eax
movabsq $-0x61c8864e7a143579, %rcx # imm = 0x9E3779B185EBCA87
imulq %rcx, %rax
xorq -0x108(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0x108(%rbp), %rax
shlq $0x17, %rax
movq -0x108(%rbp), %rcx
shrq $0x29, %rcx
orq %rcx, %rax
movabsq $-0x3d4d51c2d82b14b1, %rcx # imm = 0xC2B2AE3D27D4EB4F
imulq %rcx, %rax
movabsq $0x165667b19e3779f9, %rcx # imm = 0x165667B19E3779F9
addq %rcx, %rax
movq %rax, -0x108(%rbp)
movq -0xf8(%rbp), %rax
addq $0x4, %rax
movq %rax, -0xf8(%rbp)
jmp 0xb762
movq -0xf8(%rbp), %rax
cmpq -0x100(%rbp), %rax
jae 0xb7da
movq -0xf8(%rbp), %rax
movzbl (%rax), %eax
movabsq $0x27d4eb2f165667c5, %rcx # imm = 0x27D4EB2F165667C5
imulq %rcx, %rax
xorq -0x108(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0x108(%rbp), %rax
shlq $0xb, %rax
movq -0x108(%rbp), %rcx
shrq $0x35, %rcx
orq %rcx, %rax
movabsq $-0x61c8864e7a143579, %rcx # imm = 0x9E3779B185EBCA87
imulq %rcx, %rax
movq %rax, -0x108(%rbp)
movq -0xf8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xf8(%rbp)
jmp 0xb762
movq -0x108(%rbp), %rax
shrq $0x21, %rax
xorq -0x108(%rbp), %rax
movq %rax, -0x108(%rbp)
movabsq $-0x3d4d51c2d82b14b1, %rax # imm = 0xC2B2AE3D27D4EB4F
imulq -0x108(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0x108(%rbp), %rax
shrq $0x1d, %rax
xorq -0x108(%rbp), %rax
movq %rax, -0x108(%rbp)
movabsq $0x165667b19e3779f9, %rax # imm = 0x165667B19E3779F9
imulq -0x108(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0x108(%rbp), %rax
shrq $0x20, %rax
xorq -0x108(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0x108(%rbp), %rax
movq %rax, -0x138(%rbp)
movq -0x138(%rbp), %rax
addq $0x180, %rsp            # imm = 0x180
popq %rbp
retq
nopw %cs:(%rax,%rax)