Function at 0x180004340
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x9c0]
sub rsp, 0xac0
mov rax, qword [0x180115a80]
xor rax, rsp
mov qword [rbp + 0x9b0], rax
mov r14, rdx
mov rdi, rcx
cmp qword [rcx], 0
jne 0x1800047a3
mov eax, dword [rcx + 0x604]
test eax, eax
je 0x1800047a3
cmp eax, 5
jne 0x180004649
xorps xmm0, xmm0
movups xmmword [rbp + 0x990], xmm0
movdqa xmm1, xmmword [0x1800edbe0]
movdqu xmmword [rbp + 0x9a0], xmm1
mov word [rbp + 0x990], 0x3a
lea rdx, [rcx + 0x608]
movups xmmword [rbp + 0x970], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x980], xmm1
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rdx + r8], 0
jne 0x1800043d6
lea rcx, [rbp + 0x970]
call fcn.180002d40
nop
lea r8, [rbp + 0x990]
lea rdx, [rbp + 0x970]
lea rcx, [rsp + 0x30]
call fcn.180093630
nop
mov rdx, qword [rbp + 0x988]
cmp rdx, 0xf
jbe 0x180004447
inc rdx
mov rcx, qword [rbp + 0x970]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180004442
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800047d4
call fcn.1800babcc
movdqa xmm0, xmmword [0x1800edbd0]
movdqu xmmword [rbp + 0x980], xmm0
mov byte [rbp + 0x970], 0
mov rdx, qword [rbp + 0x9a8]
cmp rdx, 0xf
jbe 0x18000449f
inc rdx
mov rcx, qword [rbp + 0x990]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000449a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800047da
call fcn.1800babcc
movdqa xmm0, xmmword [0x1800edbd0]
movdqu xmmword [rbp + 0x9a0], xmm0
mov byte [rbp + 0x990], 0
mov rax, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
sub rax, rbx
sar rax, 5
xor esi, esi
cmp rax, 5
je 0x1800044e3
lea rcx, str.invalid
call fcn.180004050
xor r14b, r14b
jmp 0x180004592
sub rbx, 0xffffffffffffff80
call fcn.1800ca45c
mov r15, rax
cmp qword [rbx + 0x18], 0xf
jbe 0x1800044f9
mov rbx, qword [rbx]
mov dword [rax], esi
mov r8d, 0xa
lea rdx, [rsp + 0x48]
mov rcx, rbx
call fcn.1800cb860
cmp rbx, qword [rsp + 0x48]
je 0x1800047e0
cmp dword [r15], 0x22
je 0x1800047ed
mov rcx, qword [rsp + 0x30]
lea r9, [rcx + 0x60]
cmp qword [r9 + 0x18], 0xf
jbe 0x180004536
mov r9, qword [r9]
lea r8, [rcx + 0x40]
cmp qword [r8 + 0x18], 0xf
jbe 0x180004544
mov r8, qword [r8]
lea rdx, [rcx + 0x20]
cmp qword [rdx + 0x18], 0xf
jbe 0x180004552
mov rdx, qword [rdx]
cmp qword [rcx + 0x18], 0xf
jbe 0x18000455c
mov rcx, qword [rcx]
mov byte [rsp + 0x28], sil
mov dword [rsp + 0x20], eax
call fcn.180099c20
mov qword [rdi], rax
test rax, rax
jne 0x180004583
lea rcx, str.not_find
call fcn.180004050
xor r14b, r14b
jmp 0x180004592
mov rdx, r14
mov rcx, rdi
call fcn.180004800
movzx r14d, al
mov rbx, qword [rsp + 0x30]
test rbx, rbx
je 0x180004640
mov rdi, qword [rsp + 0x38]
cmp rbx, rdi
je 0x180004607
nop word [rax + rax]
mov rdx, qword [rbx + 0x18]
cmp rdx, 0xf
jbe 0x1800045ea
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x1800045e5
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1800047ce
mov rcx, r8
call fcn.1800babcc
mov qword [rbx + 0x10], rsi
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
add rbx, 0x20
cmp rbx, rdi
jne 0x1800045b0
mov rbx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x40]
sub rdx, rbx
and rdx, 0xffffffffffffffe0
mov rax, rbx
cmp rdx, 0x1000
jb 0x180004638
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800047ce
mov rcx, rbx
call fcn.1800babcc
movzx eax, r14b
jmp 0x1800047a8
lea rbx, [rcx + 0x5f8]
movzx ecx, byte [rbx]
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movabs rdx, 0x100000001b3
imul rcx, rdx
movzx eax, byte [rbx + 1]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbx + 2]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbx + 3]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbx + 4]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbx + 5]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbx + 6]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbx + 7]
xor rcx, rax
imul rdx, rcx
and rdx, qword [0x180117da0]
add rdx, rdx
mov rax, qword [0x180117d88]
mov rcx, qword [rax + rdx*8 + 8]
mov r8, qword [0x180117d78]
xor esi, esi
cmp rcx, r8
je 0x180004701
mov rdx, qword [rax + rdx*8]
mov rax, qword [rbx]
cmp rax, qword [rcx + 0x10]
je 0x180004704
nop dword [rax]
cmp rcx, rdx
je 0x180004701
mov rcx, qword [rcx + 8]
cmp rax, qword [rcx + 0x10]
jne 0x1800046f0
jmp 0x180004704
mov rcx, rsi
mov rax, r8
test rcx, rcx
cmovne rax, rcx
cmp rax, r8
jne 0x180004749
mov rdx, r14
lea rcx, [rbp + 0x970]
call fcn.1800038d0
mov rbx, rax
lea rcx, [rsp + 0x60]
mov rdx, rdi
mov r8d, 0xa08
call fcn.1800e3e70
mov rdx, rbx
lea rcx, [rsp + 0x60]
call fcn.180006a60
mov al, 1
jmp 0x1800047a8
mov byte [rdi + 0x108], sil
mov word [rdi + 0x18], si
and qword [rdi + 0x180], 0xffffffffffffdfff
mov r8, rbx
lea rdx, [rsp + 0x48]
lea rcx, [0x180117d70]
call fcn.1800033f0
mov rdx, qword [rax]
mov rax, qword [rdx + 0x20]
mov qword [rdi], rax
mov r8, rbx
lea rdx, [rsp + 0x48]
lea rcx, [0x180117d70]
call fcn.1800033f0
mov rcx, qword [rax]
mov eax, dword [rcx + 0x18]
mov dword [rdi + 0x604], eax
mov rdx, r14
mov rcx, rdi
call fcn.180004800
mov rcx, qword [rbp + 0x9b0]
xor rcx, rsp
call fcn.1800bb0c0
mov rbx, qword [rsp + 0xb00]
add rsp, 0xac0
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
call fcn.1800ca310
nop
call fcn.1800ca310
nop
call fcn.1800ca310
int3
lea rcx, str.invalid_stoi_argument
call fcn.1800b82a4
int3
lea rcx, str.stoi_argument_out_of_range
call fcn.1800b82ec
int3