Function at 0x18000ac40
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x30
mov ebp, r8d
mov rbx, rdx
mov r14, rcx
xor esi, esi
mov edi, esi
mov qword [rsp + 0x68], rsi
test rdx, rdx
je 0x18000ac9e
mov rax, qword [rdx]
lea r8, [rsp + 0x68]
lea rdx, [0x180166e48]
mov rcx, rbx
call qword [rax]
test eax, eax
je 0x18000ac99
mov rax, qword [rbx]
lea r8, [rsp + 0x68]
lea rdx, [0x180166f50]
mov rcx, rbx
call qword [rax]
mov rdi, qword [rsp + 0x68]
mov qword [rsp + 0x78], rdi
test rdi, rdi
jne 0x18000acb2
mov esi, 1
jmp 0x18000aef2
lea rbx, [r14 + 0x10]
mov qword [rsp + 0x20], rbx
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
nop
mov r14, qword [r14 + 0x40]
mov rax, rdi
shr rax, 0xc
movzx r8d, al
shl r8, 6
movzx edx, dil
movabs rax, 0xcbf29ce484222325
xor rdx, rax
movabs r9, 0x100000001b3
imul rdx, r9
mov rax, rdi
sar rax, 8
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov rax, rdi
sar rax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov rax, rdi
sar rax, 0x18
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov rax, rdi
sar rax, 0x20
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov rax, rdi
sar rax, 0x28
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov rax, rdi
sar rax, 0x30
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov rax, rdi
sar rax, 0x38
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov rcx, qword [r8 + r14 + 0x30]
and rcx, rdx
shl rcx, 4
add rcx, qword [r8 + r14 + 0x18]
mov rax, qword [rcx + 8]
mov rdx, qword [r8 + r14 + 8]
cmp rax, rdx
je 0x18000ada7
mov rcx, qword [rcx]
cmp rdi, qword [rax + 0x10]
je 0x18000adaa
cmp rax, rcx
je 0x18000ada7
mov rax, qword [rax + 8]
cmp rdi, qword [rax + 0x10]
jne 0x18000ad96
jmp 0x18000adaa
mov rax, rsi
test rax, rax
je 0x18000ae99
cmp rax, rdx
je 0x18000ae99
add r14, 0x4000
mov rdx, qword [r14 + 0x18]
mov r8, qword [r14]
mov r10, qword [r14 + 0x20]
lea r9, [r10 + rdx]
cmp rdx, r9
je 0x18000ae28
test r8, r8
je 0x18000ade1
mov rax, qword [r8]
jmp 0x18000ade4
mov rax, rsi
mov rcx, qword [rax + 0x10]
dec rcx
and rcx, rdx
mov rax, qword [rax + 8]
mov rcx, qword [rax + rcx*8]
cmp qword [rcx], rdi
jne 0x18000ae23
test r8, r8
je 0x18000ae05
mov rax, qword [r8]
jmp 0x18000ae08
mov rax, rsi
mov rcx, qword [rax + 0x10]
dec rcx
and rcx, rdx
mov rax, qword [rax + 8]
mov rcx, qword [rax + rcx*8]
cmp dword [rcx + 8], ebp
je 0x18000aee8
inc rdx
jmp 0x18000add2
lea rax, [r10 + 1]
cmp qword [r14 + 0x10], rax
ja 0x18000ae3a
mov rcx, r14
call fcn.18000c580
mov rdx, qword [r14 + 0x10]
dec rdx
mov rcx, rdx
and rcx, qword [r14 + 0x18]
mov qword [r14 + 0x18], rcx
mov r12, qword [r14 + 0x20]
add r12, rcx
and rdx, r12
lea r15, [rdx*8]
mov rax, qword [r14 + 8]
cmp qword [r15 + rax], 0
jne 0x18000ae7b
mov ecx, 0x10
call fcn.1800b63f4
mov rcx, qword [r14 + 8]
mov qword [r15 + rcx], rax
mov rcx, qword [r14 + 0x10]
dec rcx
and rcx, r12
mov rax, qword [r14 + 8]
mov rcx, qword [rax + rcx*8]
mov qword [rcx], rdi
mov dword [rcx + 8], ebp
inc qword [r14 + 0x20]
jmp 0x18000aee8
cmp ebp, 2
je 0x18000aee8
mov qword [rsp + 0x68], rsi
mov rax, qword [rdi]
lea r8, [rsp + 0x68]
lea rdx, [0x180166e48]
mov rcx, rdi
call qword [rax]
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x18000aee8
mov rax, qword [rcx]
call qword [rax + 0x10]
test eax, eax
jne 0x18000aed5
mov rcx, rsi
mov qword [rsp + 0x68], rcx
jmp 0x18000aeda
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x18000aee8
mov rax, qword [rcx]
mov edx, ebp
call qword [rax + 0x60]
nop
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + 0x10]
nop
test rdi, rdi
je 0x18000af01
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx + 0x10]
nop
mov eax, esi
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret