Function at 0x140029654
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov rdx, qword [rcx + 0x18]
mov edi, 1
add rdx, rdi
mov rbx, qword [rcx + 0x40]
mov r13, rcx
xorps xmm0, xmm0
js 0x14002968f
cvtsi2ss xmm0, rdx
jmp 0x1400296a4
mov rax, rdx
and rdx, rdi
shr rax, 1
or rax, rdx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
divss xmm0, dword [rcx + 8]
call fcn.14008183c
movss xmm1, dword [0x14009e568]
xor ecx, ecx
comiss xmm0, xmm1
jb 0x1400296d3
subss xmm0, xmm1
comiss xmm0, xmm1
jae 0x1400296d3
movabs rax, 0x8000000000000000
mov rcx, rax
cvttss2si rax, xmm0
add rax, rcx
mov ecx, 8
cmp rax, rcx
cmova rcx, rax
cmp rbx, rcx
jae 0x140029701
cmp rbx, 0x200
jae 0x1400296fe
shl rbx, 3
cmp rbx, rcx
jae 0x140029701
mov rbx, rcx
movabs rax, 0xfffffffffffffff
bsr rcx, rax
mov rax, rdi
shl rax, cl
cmp rbx, rax
ja 0x1400298c1
mov rbp, qword [r13 + 0x10]
lea rax, [rbx - 1]
or rax, rdi
lea r12, [r13 + 0x20]
bsr rcx, rax
mov r8, rbp
inc ecx
shl rdi, cl
mov rcx, r12
lea rdx, [rdi + rdi]
call fcn.1400286e0
mov rbx, qword [r13 + 0x10]
lea rax, [rdi - 1]
mov qword [r13 + 0x40], rdi
mov qword [r13 + 0x38], rax
mov rbx, qword [rbx]
mov rdi, rbx
cmp rbx, rbp
je 0x140029894
mov rsi, qword [rbx + 0x10]
mov r15d, 0x811c9dc5
movzx eax, word [rbx + 0x18]
mov rdi, qword [rdi]
lea r14, [rsi + rax*2]
jmp 0x140029794
movzx ecx, word [rsi]
call fcn.14005b734
imul r15, r15, 0x1000193
movzx ecx, ax
xor r15, rcx
add rsi, 2
cmp rsi, r14
jne 0x14002977b
mov r14, qword [r13 + 0x38]
and r14, r15
mov r15, qword [r12]
add r14, r14
cmp qword [r15 + r14*8], rbp
jne 0x1400297bb
mov qword [r15 + r14*8], rbx
mov qword [r15 + r14*8 + 8], rbx
jmp 0x140029888
mov rsi, qword [r15 + r14*8 + 8]
movzx eax, word [rbx + 0x18]
cmp ax, word [rsi + 0x18]
jne 0x140029809
mov rdx, qword [rsi + 0x10]
mov r8d, eax
mov rcx, qword [rbx + 0x10]
call fcn.140054068
test eax, eax
jne 0x140029809
mov r8, qword [rsi]
cmp r8, rbx
je 0x1400297b1
mov rdx, qword [rbx + 8]
mov qword [rdx], rdi
mov rcx, qword [rdi + 8]
mov qword [rcx], r8
mov rax, qword [r8 + 8]
mov qword [rax], rbx
mov qword [r8 + 8], rcx
mov qword [rdi + 8], rdx
mov qword [rbx + 8], rax
jmp 0x1400297b1
mov r12, rsi
cmp qword [r15 + r14*8], rsi
je 0x14002985d
mov rsi, qword [rsi + 8]
movzx eax, word [rbx + 0x18]
mov r12, rsi
cmp ax, word [rsi + 0x18]
jne 0x14002980c
mov rdx, qword [rsi + 0x10]
mov r8d, eax
mov rcx, qword [rbx + 0x10]
call fcn.140054068
test eax, eax
jne 0x14002980c
mov r8, qword [rsi]
mov rdx, qword [rbx + 8]
mov qword [rdx], rdi
mov rcx, qword [rdi + 8]
mov qword [rcx], r8
mov rax, qword [r8 + 8]
mov qword [rax], rbx
mov qword [r8 + 8], rcx
mov qword [rdi + 8], rdx
mov qword [rbx + 8], rax
jmp 0x140029884
mov rdx, qword [rbx + 8]
mov qword [rdx], rdi
mov rcx, qword [rdi + 8]
mov qword [rcx], r12
mov rax, qword [r12 + 8]
mov qword [rax], rbx
mov qword [r12 + 8], rcx
mov qword [rdi + 8], rdx
mov qword [rbx + 8], rax
mov qword [r15 + r14*8], rbx
lea r12, [r13 + 0x20]
mov rbx, rdi
cmp rdi, rbp
jne 0x140029764
and qword [rsp + 0x20], 0
lea rcx, [rsp + 0x20]
call fcn.1400298d0
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
lea rcx, str.invalid_hash_bucket_count
call fcn.1400454b4
int3