Function at 0x18000a930
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x18], r8
push rbx
push rbp
push rdi
mov eax, 0x30
call fcn.180050e60
sub rsp, rax
cmp byte [rdx + 0x32], 0
mov rbx, rdx
mov r10, rcx
je 0x18000a957
mov r9, qword [rdx + 8]
jmp 0x18000a95a
mov r9, qword [rdx]
mov r11d, dword [rcx + 0x18]
mov rdi, qword [rcx + 0x28]
lea rbp, [rcx + 0x18]
mov qword [rsp + 0x58], rsi
test r11d, r11d
je 0x18000aa76
movzx ecx, r9b
mov r8, r9
xor ecx, 0x811c9dc5
shr r8, 8
movzx eax, r8b
shr r8, 8
imul ecx, ecx, 0x1000193
xor eax, ecx
movzx ecx, r8b
shr r8, 8
imul eax, eax, 0x1000193
xor ecx, eax
movzx eax, r8b
shr r8, 8
imul ecx, ecx, 0x1000193
xor eax, ecx
movzx ecx, r8b
shr r8, 8
imul eax, eax, 0x1000193
xor ecx, eax
movzx eax, r8b
shr r8, 8
imul ecx, ecx, 0x1000193
xor eax, ecx
movzx ecx, r8b
shr r8, 8
movzx edx, r8b
shr r8, 8
imul eax, eax, 0x1000193
xor ecx, eax
movzx eax, r8b
imul ecx, ecx, 0x1000193
xor edx, ecx
imul edx, edx, 0x1000193
xor eax, edx
xor edx, edx
imul eax, eax, 0x1000193
div r11d
mov rax, qword [rdi + rdx*8]
lea rdx, [rdi + rdx*8]
test rax, rax
je 0x18000aa31
nop dword [rax]
cmp qword [rax + 8], r9
je 0x18000aa31
mov rdx, rax
mov rax, qword [rax]
test rax, rax
jne 0x18000aa20
test rdx, rdx
je 0x18000aa76
mov rax, qword [rdx]
test rax, rax
je 0x18000aa76
mov rax, qword [rax + 0x10]
cmp byte [rax], 0
je 0x18000aa63
cmp byte [rbx + 0x20], 0
je 0x18000aa63
mov edx, 1
mov byte [rax], dl
xor eax, eax
mov rsi, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
pop rbp
pop rbx
ret
xor edx, edx
mov byte [rax], dl
xor eax, eax
mov rsi, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
pop rbp
pop rbx
ret
mov edx, dword [r10 + 0xb8]
mov rcx, qword [r10 + 0xc8]
lea r8, [rsp + 0x60]
xor r9d, r9d
call fcn.180009080
test rax, rax
jne 0x18000aa9a
xor edi, edi
jmp 0x18000aa9d
mov rdi, qword [rax]
mov rdi, qword [rdi + 0x10]
mov r9, qword [rbx + 0x10]
lea rcx, [rsp + 0x50]
mov r8, qword [rdi + 8]
xor edx, edx
call qword [0x180074300]
cmp eax, 0x1f4
je 0x18000ac61
test eax, eax
je 0x18000aad9
mov ecx, eax
call fcn.180002560
mov rsi, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
pop rbp
pop rbx
ret
cmp byte [rbx + 0x32], 0
mov rsi, qword [rbx]
je 0x18000aaf5
mov rax, qword [rsp + 0x50]
mov rcx, qword [rbx + 8]
mov qword [rcx], rax
mov rax, qword [rbx + 8]
mov rsi, qword [rax]
mov ecx, 0x20
call fcn.18000b800
test rax, rax
je 0x18000ac70
movzx edx, byte [rbx + 0x20]
mov r10, qword [rbx + 0x18]
mov r9, qword [rdi + 8]
mov r8, qword [rsp + 0x50]
mov byte [rax], dl
lea rdx, [rsp + 0x20]
mov rcx, rbp
mov qword [rax + 0x10], r9
mov qword [rax + 0x18], r10
mov qword [rax + 8], r8
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x28], rax
call fcn.18000a330
mov r8d, dword [rdi + 0x28]
test r8d, r8d
jne 0x18000ab61
lea edx, [r8 + 1]
lea rcx, [rdi + 0x28]
call fcn.1800086c0
mov r8d, dword [rdi + 0x28]
test r8d, r8d
je 0x18000ac70
mov r9, qword [rdi + 0x38]
test r8d, r8d
jne 0x18000ab75
mov ebp, dword [rsp + 0x50]
xor ebx, ebx
jmp 0x18000ac25
movzx ecx, sil
mov rdx, rsi
xor ecx, 0x811c9dc5
shr rdx, 8
movzx eax, dl
shr rdx, 8
imul ecx, ecx, 0x1000193
xor eax, ecx
movzx ecx, dl
shr rdx, 8
imul eax, eax, 0x1000193
xor ecx, eax
movzx eax, dl
shr rdx, 8
imul ecx, ecx, 0x1000193
xor eax, ecx
movzx ecx, dl
shr rdx, 8
imul eax, eax, 0x1000193
xor ecx, eax
movzx eax, dl
shr rdx, 8
imul ecx, ecx, 0x1000193
xor eax, ecx
movzx ecx, dl
shr rdx, 8
imul eax, eax, 0x1000193
xor ecx, eax
movzx eax, dl
shr rdx, 8
movzx ebp, dl
xor edx, edx
imul ecx, ecx, 0x1000193
xor eax, ecx
imul eax, eax, 0x1000193
xor ebp, eax
imul ebp, ebp, 0x1000193
mov eax, ebp
div r8d
mov rax, qword [r9 + rdx*8]
lea rbx, [r9 + rdx*8]
test rax, rax
je 0x18000ac25
cmp qword [rax + 8], rsi
je 0x18000ac25
mov rbx, rax
mov rax, qword [rax]
test rax, rax
jne 0x18000ac14
cmp qword [rbx], 0
jne 0x18000ac61
mov ecx, 0x18
call fcn.18000b800
test rax, rax
je 0x18000ac48
mov qword [rax], 0
mov qword [rax + 8], rsi
mov dword [rax + 0x10], ebp
mov qword [rbx], rax
test rax, rax
je 0x18000ac70
inc qword [rdi + 0x30]
mov rdx, qword [rdi + 0x30]
lea rcx, [rdi + 0x28]
call fcn.1800086c0
xor eax, eax
mov rsi, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
pop rbp
pop rbx
ret
mov eax, 2
mov rsi, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
pop rbp
pop rbx
ret