Function at 0x18000a8c0
Capabilities:
Hash data using fnv

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
mov eax, 0x40
call fcn.18004f270
sub rsp, rax
cmp byte [rdx + 0x33], 0
mov rbx, rdx
mov rdi, rcx
mov qword [rsp + 0x20], r8
jne 0x18000a945
cmp byte [rdx + 0x32], 0
je 0x18000a8f1
mov rax, qword [rdx + 8]
jmp 0x18000a8f4
mov rax, qword [rdx]
mov edx, dword [rcx + 0x18]
lea r14, [rcx + 0x18]
lea r8, [rsp + 0x28]
mov rcx, qword [r14 + 0x10]
xor r9d, r9d
mov qword [rsp + 0x28], rax
call fcn.1800047f0
test rax, rax
je 0x18000a952
mov rax, qword [rax]
test rax, rax
je 0x18000a952
mov rax, qword [rax + 0x10]
cmp byte [rax], 0
je 0x18000a941
cmp byte [rbx + 0x20], 0
je 0x18000a941
mov edx, 1
mov byte [rax], dl
xor eax, eax
add rsp, 0x40
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
xor edx, edx
mov byte [rax], dl
xor eax, eax
add rsp, 0x40
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov edx, dword [rdi + 0xe8]
mov rcx, qword [rdi + 0xf8]
lea r8, [rsp + 0x20]
xor r9d, r9d
call fcn.1800047f0
test rax, rax
jne 0x18000a975
xor esi, esi
jmp 0x18000a978
mov rsi, qword [rax]
mov rsi, qword [rsi + 0x10]
mov r9, qword [rbx + 0x10]
lea rcx, [rsp + 0x28]
mov r8, qword [rsi + 8]
xor edx, edx
call qword [0x1800e7050]
cmp eax, 0x1f4
je 0x18000a945
test eax, eax
je 0x18000a9ae
mov ecx, eax
call fcn.180004400
add rsp, 0x40
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
cmp byte [rbx + 0x32], 0
mov rdi, qword [rbx]
mov qword [rsp + 0x20], rdi
je 0x18000a9d4
mov rax, qword [rsp + 0x28]
mov rcx, qword [rbx + 8]
mov qword [rcx], rax
mov rax, qword [rbx + 8]
mov rdi, qword [rax]
mov qword [rsp + 0x20], rdi
mov ecx, 0x20
call fcn.18000cd00
test rax, rax
je 0x18000ab2e
movzx edx, byte [rbx + 0x20]
mov r10, qword [rbx + 0x18]
mov r9, qword [rsi + 8]
mov r8, qword [rsp + 0x28]
mov byte [rax], dl
lea rdx, [rsp + 0x30]
mov rcx, r14
mov qword [rax + 0x10], r9
mov qword [rax + 0x18], r10
mov qword [rax + 8], r8
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], rax
call fcn.18000b040
mov ecx, dword [rsi + 0x30]
test ecx, ecx
jne 0x18000aa3b
lea edx, [rcx + 1]
lea rcx, [rsi + 0x30]
call fcn.18000ba20
mov ecx, dword [rsi + 0x30]
test ecx, ecx
je 0x18000ab2e
mov r8, qword [rsi + 0x40]
test ecx, ecx
jne 0x18000aa4e
mov ebp, dword [rsp + 0x20]
xor ebx, ebx
jmp 0x18000aae1
movzx eax, byte [rsp + 0x21]
movzx ebp, dil
xor edx, edx
xor ebp, 0x811c9dc5
imul ebp, ebp, 0x1000193
xor ebp, eax
movzx eax, byte [rsp + 0x22]
imul ebp, ebp, 0x1000193
xor ebp, eax
movzx eax, byte [rsp + 0x23]
imul ebp, ebp, 0x1000193
xor ebp, eax
movzx eax, byte [rsp + 0x24]
imul ebp, ebp, 0x1000193
xor ebp, eax
movzx eax, byte [rsp + 0x25]
imul ebp, ebp, 0x1000193
xor ebp, eax
movzx eax, byte [rsp + 0x26]
imul ebp, ebp, 0x1000193
xor ebp, eax
movzx eax, byte [rsp + 0x27]
imul ebp, ebp, 0x1000193
xor ebp, eax
imul ebp, ebp, 0x1000193
mov eax, ebp
div ecx
mov rax, qword [r8 + rdx*8]
lea rbx, [r8 + rdx*8]
test rax, rax
je 0x18000aae1
nop dword [rax]
cmp qword [rax + 8], rdi
je 0x18000aae1
mov rbx, rax
mov rax, qword [rax]
test rax, rax
jne 0x18000aad0
cmp qword [rbx], 0
jne 0x18000a945
mov ecx, 0x18
call fcn.18000cd00
test rax, rax
je 0x18000ab08
mov qword [rax], 0
mov qword [rax + 8], rdi
mov dword [rax + 0x10], ebp
mov qword [rbx], rax
test rax, rax
je 0x18000ab2e
inc qword [rsi + 0x38]
mov rdx, qword [rsi + 0x38]
lea rcx, [rsi + 0x30]
call fcn.18000ba20
xor eax, eax
add rsp, 0x40
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov eax, 2
add rsp, 0x40
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret