Function at 0x140003750
Capabilities:
Hash data using fnv

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x20]
mov qword [rbp], 0xfffffffffffffffe
movabs rax, 0x800000000000001
cmp rdx, rax
jae 0x140003a82
mov rsi, rcx
dec rdx
or rdx, 1
lzcnt r8, rdx
mov r14, r8
neg r14
mov rbx, qword [rcx + 8]
mov rax, qword [rcx + 0x18]
mov ecx, 2
shlx r15, rcx, r14
mov rcx, qword [rsi + 0x20]
mov rdx, rcx
sub rdx, rax
mov r9, rdx
sar r9, 3
cmp r9, r15
jae 0x140003812
mov rax, r15
shr rax, 0x3d
jne 0x140003a8e
mov eax, 0x40
sub rax, r8
mov ecx, 0x10
shlx rcx, rcx, rax
cmp r15, 0x200
jb 0x140003891
movabs rax, 0x1ffffffffffffffc
cmp r15, rax
jae 0x140003a8e
add rcx, 0x27
call fcn.14002f08c
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x140003899
cmp rax, rcx
je 0x14000394c
add rdx, 0xfffffffffffffff8
cmp rdx, 0x78
jb 0x140003880
shr rdx, 3
inc rdx
mov r9, rdx
and r9, 0xfffffffffffffff0
lea r8, [r9*8]
vmovq xmm0, rbx
vpbroadcastq ymm0, xmm0
xor r10d, r10d
nop dword [rax + rax]
vmovdqu ymmword [rax + r10*8], ymm0
vmovdqu ymmword [rax + r10*8 + 0x20], ymm0
vmovdqu ymmword [rax + r10*8 + 0x40], ymm0
vmovdqu ymmword [rax + r10*8 + 0x60], ymm0
add r10, 0x10
cmp r9, r10
jne 0x140003850
cmp rdx, r9
je 0x14000394c
add rax, r8
mov qword [rax], rbx
add rax, 8
cmp rax, rcx
jne 0x140003880
jmp 0x14000394c
call fcn.14002f08c
mov rdi, rax
mov rcx, qword [rsi + 0x18]
mov rdx, qword [rsi + 0x28]
sub rdx, rcx
je 0x1400038d0
cmp rdx, 0x1000
jb 0x1400038cb
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x140003a93
add rdx, 0x27
mov rcx, rax
call fcn.14002f124
mov qword [rsi + 0x18], rdi
lea rax, [rdi + r15*8]
mov qword [rsi + 0x20], rax
mov qword [rsi + 0x28], rax
dec r15
mov cl, 0x3d
bzhi rcx, r15, rcx
cmp rcx, 0xf
jb 0x140003940
inc rcx
mov r8, rcx
and r8, 0xfffffffffffffff0
lea rdx, [r8*8]
vmovq xmm0, rbx
vpbroadcastq ymm0, xmm0
xor r9d, r9d
nop
vmovdqu ymmword [rdi + r9*8], ymm0
vmovdqu ymmword [rdi + r9*8 + 0x20], ymm0
vmovdqu ymmword [rdi + r9*8 + 0x40], ymm0
vmovdqu ymmword [rdi + r9*8 + 0x60], ymm0
add r9, 0x10
cmp r8, r9
jne 0x140003910
cmp rcx, r8
je 0x14000394c
add rdi, rdx
nop dword [rax]
mov qword [rdi], rbx
add rdi, 8
cmp rdi, rax
jne 0x140003940
mov eax, 1
shlx rax, rax, r14
lea rcx, [rax - 1]
mov qword [rsi + 0x30], rcx
mov qword [rsi + 0x38], rax
mov rax, qword [rsi + 8]
mov rax, qword [rax]
cmp rax, rbx
je 0x140003a72
movabs rcx, 0x4bf29ce484222325
movabs rdx, 0x100000001b3
jmp 0x1400039a1
mov qword [r9 + r10*8], r8
mov qword [r9 + r14*8], r8
cmp rax, rbx
je 0x140003a72
mov r8, rax
mov rax, qword [rax]
movzx r11d, byte [r8 + 0x10]
mov rdi, r11
xor rdi, rcx
imul rdi, rdx
and rdi, qword [rsi + 0x30]
mov r9, qword [rsi + 0x18]
lea r10, [rdi + rdi]
lea r14, [rdi + rdi]
inc r14
shl rdi, 4
mov rdi, qword [r9 + rdi]
cmp rdi, rbx
je 0x140003990
mov r15, qword [r9 + r14*8]
cmp r11b, byte [r15 + 0x10]
jne 0x140003a10
mov r10, qword [r15]
cmp r10, r8
je 0x140003994
mov r11, qword [r8 + 8]
mov qword [r11], rax
mov rdi, qword [rax + 8]
mov qword [rdi], r10
mov r15, qword [r10 + 8]
mov qword [r15], r8
mov qword [r10 + 8], rdi
mov qword [rax + 8], r11
mov qword [r8 + 8], r15
jmp 0x140003994
cmp rdi, r15
je 0x140003a48
mov r15, qword [r15 + 8]
cmp r11b, byte [r15 + 0x10]
jne 0x140003a10
mov r9, qword [r15]
mov r10, qword [r8 + 8]
mov qword [r10], rax
mov r11, qword [rax + 8]
mov qword [r11], r9
mov rdi, qword [r9 + 8]
mov qword [rdi], r8
mov qword [r9 + 8], r11
mov qword [rax + 8], r10
mov qword [r8 + 8], rdi
jmp 0x140003998
mov r11, qword [r8 + 8]
mov qword [r11], rax
mov r14, qword [rax + 8]
mov qword [r14], rdi
mov r15, qword [rdi + 8]
mov qword [r15], r8
mov qword [rdi + 8], r14
mov qword [rax + 8], r11
mov qword [r8 + 8], r15
mov qword [r9 + r10*8], r8
jmp 0x140003998
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
vzeroupper
ret
lea rcx, str.invalid_hash_bucket_count
call fcn.14002cf4c
call fcn.140003ac0
call fcn.140038d00
int3