Function at 0x14005a2d0
Capabilities:
Hash data using fnv

Disassembly:
push rsi
push r15
sub rsp, 0x28
movabs rax, 0xfffffffffffffff
mov rsi, rcx
bsr rcx, rax
mov r15d, 1
mov eax, r15d
shl rax, cl
cmp rdx, rax
ja 0x14005a5d7
mov qword [rsp + 0x40], rbx
lea rax, [rdx - 1]
mov rdx, qword [rsi + 0x20]
or rax, r15
mov rbx, qword [rsi + 8]
bsr rcx, rax
mov rax, rdx
mov qword [rsp + 0x58], rdi
inc ecx
mov qword [rsp + 0x20], r14
shl r15, cl
mov rcx, qword [rsi + 0x18]
sub rax, rcx
mov qword [rsp + 0x48], rbx
sar rax, 3
lea r14, [r15 + r15]
cmp rax, r14
jae 0x14005a415
movabs rax, 0x1fffffffffffffff
cmp r14, rax
ja 0x14005a5d1
lea r14, [r14*8]
cmp r14, 0x1000
jb 0x14005a392
lea rcx, [r14 + 0x27]
cmp rcx, r14
jbe 0x14005a5d1
call fcn.1400be430
test rax, rax
je 0x14005a40e
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x14005a3a6
test r14, r14
je 0x14005a3a4
mov rcx, r14
call fcn.1400be430
mov rdi, rax
jmp 0x14005a3a6
xor edi, edi
mov rcx, qword [rsi + 0x18]
mov rax, qword [rsi + 0x28]
sub rax, rcx
sar rax, 3
test rax, rax
je 0x14005a3e8
lea rdx, [rax*8]
cmp rdx, 0x1000
jb 0x14005a3e3
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14005a40e
mov rcx, r8
call fcn.1400be46c
lea rax, [r14 + rdi]
mov qword [rsi + 0x18], rdi
mov qword [rsi + 0x20], rax
mov qword [rsi + 0x28], rax
cmp rdi, rax
je 0x14005a41f
nop dword [rax]
mov qword [rdi], rbx
add rdi, 8
cmp rdi, rax
jne 0x14005a400
jmp 0x14005a41f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
lea r8, [rsp + 0x48]
call fcn.140034060
lea rax, [r15 - 1]
mov qword [rsi + 0x38], r15
mov qword [rsi + 0x30], rax
mov rax, qword [rsi + 8]
mov rax, qword [rax]
mov rcx, rax
cmp rax, rbx
je 0x14005a594
mov qword [rsp + 0x50], rbp
movabs rdi, 0x100000001b3
movabs rbp, 0xcbf29ce484222325
nop word [rax + rax]
mov r10, qword [rax + 0x10]
mov r11, qword [rsi + 0x30]
mov rdx, r10
mov rcx, qword [rcx]
shr rdx, 8
movzx r9d, dl
movzx edx, r10b
xor rdx, rbp
imul rdx, rdi
xor r9, rdx
mov rdx, r10
imul r9, rdi
shr rdx, 0x10
movzx r8d, dl
mov rdx, r10
xor r9, r8
shr rdx, 0x18
imul r9, rdi
movzx r8d, dl
mov rdx, r10
xor r9, r8
shr rdx, 0x20
imul r9, rdi
movzx r8d, dl
mov rdx, r10
xor r9, r8
shr rdx, 0x28
imul r9, rdi
movzx r8d, dl
mov rdx, r10
xor r9, r8
shr rdx, 0x30
imul r9, rdi
movzx r8d, dl
mov rdx, r10
xor r9, r8
shr rdx, 0x38
imul r9, rdi
xor r9, rdx
imul r9, rdi
and r11, r9
shl r11, 4
add r11, qword [rsi + 0x18]
mov r8, qword [r11]
cmp r8, rbx
jne 0x14005a50c
mov qword [r11], rax
mov qword [r11 + 8], rax
jmp 0x14005a583
mov rdx, qword [r11 + 8]
cmp r10, qword [rdx + 0x10]
jne 0x14005a545
mov r10, qword [rdx]
cmp r10, rax
je 0x14005a53f
mov r9, qword [rax + 8]
mov qword [r9], rcx
mov r8, qword [rcx + 8]
mov qword [r8], r10
mov rdx, qword [r10 + 8]
mov qword [rdx], rax
mov qword [r10 + 8], r8
mov qword [rcx + 8], r9
mov qword [rax + 8], rdx
mov qword [r11 + 8], rax
jmp 0x14005a583
cmp r8, rdx
je 0x14005a55f
nop word [rax + rax]
mov rdx, qword [rdx + 8]
cmp r10, qword [rdx + 0x10]
je 0x14005a5ab
cmp r8, rdx
jne 0x14005a550
mov r10, qword [rax + 8]
mov qword [r10], rcx
mov r9, qword [rcx + 8]
mov qword [r9], rdx
mov r8, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r9
mov qword [rcx + 8], r10
mov qword [rax + 8], r8
mov qword [r11], rax
mov rax, rcx
cmp rcx, rbx
jne 0x14005a460
mov rbp, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x40]
mov r14, qword [rsp + 0x20]
add rsp, 0x28
pop r15
pop rsi
ret
mov r10, qword [rdx]
mov r9, qword [rax + 8]
mov qword [r9], rcx
mov r8, qword [rcx + 8]
mov qword [r8], r10
mov rdx, qword [r10 + 8]
mov qword [rdx], rax
mov qword [r10 + 8], r8
mov qword [rcx + 8], r9
mov qword [rax + 8], rdx
jmp 0x14005a583
call fcn.140004c10
int3
lea rcx, str.invalid_hash_bucket_count
call sub.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_
int3