// File: BU-DiSC[P]BF-Shared-Hashing/hash/xxh3p.h
// Function: XXH3p_mergeAccs(unsigned long const*, unsigned char const*, unsigned long)
static XXH64_hash_t
XXH3p_mergeAccs(const xxh_u64* XXH_RESTRICT acc, const xxh_u8* XXH_RESTRICT secret, xxh_u64 start)
{
    xxh_u64 result64 = start;

    result64 += XXH3p_mix2Accs(acc+0, secret +  0);
    result64 += XXH3p_mix2Accs(acc+2, secret + 16);
    result64 += XXH3p_mix2Accs(acc+4, secret + 32);
    result64 += XXH3p_mix2Accs(acc+6, secret + 48);

    return XXH3p_avalanche(result64);
}

// Assembly:
subq $0x108, %rsp            # imm = 0x108
movq %rdi, 0x80(%rsp)
movq %rsi, 0x78(%rsp)
movq %rdx, 0x70(%rsp)
movq 0x70(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x80(%rsp), %rcx
movq 0x78(%rsp), %rax
movq %rcx, 0xf0(%rsp)
movq %rax, 0xe8(%rsp)
movq 0xf0(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x8(%rsp)
movq 0xe8(%rsp), %rax
movq %rax, 0x100(%rsp)
movq 0x100(%rsp), %rdi
callq 0x5fae0
movq %rax, %rcx
movq 0x8(%rsp), %rax
xorq %rcx, %rax
movq %rax, 0x18(%rsp)
movq 0xf0(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0xe8(%rsp), %rax
addq $0x8, %rax
movq %rax, 0xf8(%rsp)
movq 0xf8(%rsp), %rdi
callq 0x5fae0
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdi
xorq %rax, %rsi
callq 0x5fb70
addq 0x68(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x80(%rsp), %rcx
addq $0x10, %rcx
movq 0x78(%rsp), %rax
addq $0x10, %rax
movq %rcx, 0xd0(%rsp)
movq %rax, 0xc8(%rsp)
movq 0xd0(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x20(%rsp)
movq 0xc8(%rsp), %rax
movq %rax, 0xe0(%rsp)
movq 0xe0(%rsp), %rdi
callq 0x5fae0
movq %rax, %rcx
movq 0x20(%rsp), %rax
xorq %rcx, %rax
movq %rax, 0x30(%rsp)
movq 0xd0(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x28(%rsp)
movq 0xc8(%rsp), %rax
addq $0x8, %rax
movq %rax, 0xd8(%rsp)
movq 0xd8(%rsp), %rdi
callq 0x5fae0
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdi
xorq %rax, %rsi
callq 0x5fb70
addq 0x68(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x80(%rsp), %rcx
addq $0x20, %rcx
movq 0x78(%rsp), %rax
addq $0x20, %rax
movq %rcx, 0xb0(%rsp)
movq %rax, 0xa8(%rsp)
movq 0xb0(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x38(%rsp)
movq 0xa8(%rsp), %rax
movq %rax, 0xc0(%rsp)
movq 0xc0(%rsp), %rdi
callq 0x5fae0
movq %rax, %rcx
movq 0x38(%rsp), %rax
xorq %rcx, %rax
movq %rax, 0x48(%rsp)
movq 0xb0(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x40(%rsp)
movq 0xa8(%rsp), %rax
addq $0x8, %rax
movq %rax, 0xb8(%rsp)
movq 0xb8(%rsp), %rdi
callq 0x5fae0
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdi
xorq %rax, %rsi
callq 0x5fb70
addq 0x68(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x80(%rsp), %rcx
addq $0x30, %rcx
movq 0x78(%rsp), %rax
addq $0x30, %rax
movq %rcx, 0x90(%rsp)
movq %rax, 0x88(%rsp)
movq 0x90(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x50(%rsp)
movq 0x88(%rsp), %rax
movq %rax, 0xa0(%rsp)
movq 0xa0(%rsp), %rdi
callq 0x5fae0
movq %rax, %rcx
movq 0x50(%rsp), %rax
xorq %rcx, %rax
movq %rax, 0x60(%rsp)
movq 0x90(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x58(%rsp)
movq 0x88(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x98(%rsp)
movq 0x98(%rsp), %rdi
callq 0x5fae0
movq 0x58(%rsp), %rsi
movq 0x60(%rsp), %rdi
xorq %rax, %rsi
callq 0x5fb70
addq 0x68(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rdi
callq 0x5fbb0
addq $0x108, %rsp            # imm = 0x108
retq
nopl (%rax)