Function at 0x18000aee0
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x18], r8
push rbx
push rbp
push rdi
mov eax, 0x30
call fcn.18002da40
sub rsp, rax
cmp byte [rdx + 0x32], 0
mov rbx, rdx
mov r10, rcx
je 0x18000af07
mov r9, qword [rdx + 8]
jmp 0x18000af0a
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 0x18000b026
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 0x18000afe1
nop dword [rax]
cmp qword [rax + 8], r9
je 0x18000afe1
mov rdx, rax
mov rax, qword [rax]
test rax, rax
jne 0x18000afd0
test rdx, rdx
je 0x18000b026
mov rax, qword [rdx]
test rax, rax
je 0x18000b026
mov rax, qword [rax + 0x10]
cmp byte [rax], 0
je 0x18000b013
cmp byte [rbx + 0x20], 0
je 0x18000b013
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.180009630
test rax, rax
jne 0x18000b04a
xor edi, edi
jmp 0x18000b04d
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 [0x1800af310]
cmp eax, 0x1f4
je 0x18000b211
test eax, eax
je 0x18000b089
mov ecx, eax
call fcn.1800028d0
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 0x18000b0a5
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.18000bdb0
test rax, rax
je 0x18000b220
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.18000a8e0
mov r8d, dword [rdi + 0x28]
test r8d, r8d
jne 0x18000b111
lea edx, [r8 + 1]
lea rcx, [rdi + 0x28]
call fcn.180008c70
mov r8d, dword [rdi + 0x28]
test r8d, r8d
je 0x18000b220
mov r9, qword [rdi + 0x38]
test r8d, r8d
jne 0x18000b125
mov ebp, dword [rsp + 0x50]
xor ebx, ebx
jmp 0x18000b1d5
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 0x18000b1d5
cmp qword [rax + 8], rsi
je 0x18000b1d5
mov rbx, rax
mov rax, qword [rax]
test rax, rax
jne 0x18000b1c4
cmp qword [rbx], 0
jne 0x18000b211
mov ecx, 0x18
call fcn.18000bdb0
test rax, rax
je 0x18000b1f8
mov qword [rax], 0
mov qword [rax + 8], rsi
mov dword [rax + 0x10], ebp
mov qword [rbx], rax
test rax, rax
je 0x18000b220
inc qword [rdi + 0x30]
mov rdx, qword [rdi + 0x30]
lea rcx, [rdi + 0x28]
call fcn.180008c70
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