Function at 0x18000ea90
Capabilities:
Hash data using fnv

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x18000e36d
mov rax, qword [rbx + 0x38]
mov rdx, qword [rbx + 8]
shr rax, 3
cmp rax, rcx
jbe 0x18000e336
mov r8, rdx
mov rcx, rbx
mov rdx, qword [rdx]
add rsp, 0x20
pop rbx
jmp 0x18000ea90
call fcn.1800117b0
mov rax, qword [rbx + 8]
lea r8, [rsp + 0x30]
mov qword [rax], rax
mov rax, qword [rbx + 8]
mov qword [rax + 8], rax
mov qword [rbx + 0x10], 0
mov rax, qword [rbx + 8]
mov rdx, qword [rbx + 0x20]
mov rcx, qword [rbx + 0x18]
mov qword [rsp + 0x30], rax
call fcn.180010fc0
add rsp, 0x20
pop rbx
ret
mov r11, rsp
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rbp
mov qword [r11 + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x90
mov r12, r8
mov r13, rdx
mov rdx, rcx
mov qword [rsp + 0x48], rcx
cmp r13, r8
je 0x18000ed01
lea r14, [rcx + 8]
mov rax, qword [r14]
mov qword [rsp + 0x30], rax
mov r8, qword [rcx + 0x18]
mov qword [rsp + 0x50], r8
mov qword [r11 - 0x40], r14
mov rax, qword [r13 + 8]
mov qword [r11 - 0x60], rax
mov qword [r11 - 0x38], rax
mov rdi, r13
mov qword [r11 - 0x30], r13
mov rax, qword [r13 + 8]
mov qword [rsp + 0x40], rax
movzx ecx, byte [r13 + 0x10]
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movabs r9, 0x100000001b3
imul rcx, r9
movzx eax, byte [r13 + 0x11]
xor rcx, rax
imul rcx, r9
movzx eax, byte [r13 + 0x12]
xor rcx, rax
imul rcx, r9
movzx eax, byte [r13 + 0x13]
xor rcx, rax
imul rcx, r9
mov rax, qword [rdx + 0x30]
and rax, rcx
shl rax, 4
add rax, r8
mov qword [rsp + 0x28], rax
mov rcx, qword [rax]
mov qword [rsp + 0x20], rcx
mov rax, qword [rax + 8]
mov qword [rsp + 0x38], rax
nop dword [rax]
nop word [rax + rax]
cmp rdi, rax
sete r15b
mov rbp, rdi
mov rsi, qword [rdi]
mov rdi, rsi
mov qword [rsp + 0x88], rsi
lea rax, [rbp + 0x10]
mov qword [rsp + 0x60], rax
lea rbx, [rax + 8]
mov qword [rsp + 0x68], rbx
cmp byte [rbx + 0x40], 0
je 0x18000ebc2
mov qword [rsp + 0x70], rbx
mov rcx, qword [rbx + 0x38]
test rcx, rcx
je 0x18000ebc2
mov rax, qword [rcx]
cmp rcx, rbx
setne dl
call qword [rax + 0x20]
mov qword [rbx + 0x38], 0
mov edx, 0x60
mov rcx, rbp
call fcn.18009d5c8
dec qword [r14 + 8]
test r15b, r15b
jne 0x18000ebf7
cmp rsi, r12
mov rax, qword [rsp + 0x38]
jne 0x18000eb70
cmp qword [rsp + 0x20], r13
jne 0x18000ecf5
mov rax, qword [rsp + 0x28]
jmp 0x18000ecf2
mov rax, qword [rsp + 0x28]
cmp qword [rsp + 0x20], r13
jne 0x18000ec0d
mov rcx, qword [rsp + 0x30]
mov qword [rax], rcx
jmp 0x18000ec12
mov rcx, qword [rsp + 0x40]
mov qword [rax + 8], rcx
cmp rsi, r12
je 0x18000ecf5
movzx ecx, byte [rdi + 0x10]
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movabs rdx, 0x100000001b3
imul rcx, rdx
movzx eax, byte [rdi + 0x11]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rdi + 0x12]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rdi + 0x13]
xor rcx, rax
imul rcx, rdx
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0x30]
and rax, rcx
shl rax, 4
add rax, qword [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r13, qword [rax + 8]
nop dword [rax]
cmp rdi, r13
sete r15b
mov rbp, rdi
mov rsi, qword [rdi]
mov rdi, rsi
mov qword [rsp + 0x88], rsi
lea rax, [rbp + 0x10]
mov qword [rsp + 0x70], rax
lea rbx, [rax + 8]
mov qword [rsp + 0x68], rbx
cmp byte [rbx + 0x40], 0
je 0x18000ecd2
mov qword [rsp + 0x60], rbx
mov rcx, qword [rbx + 0x38]
test rcx, rcx
je 0x18000ecd2
mov rax, qword [rcx]
cmp rcx, rbx
setne dl
call qword [rax + 0x20]
mov qword [rbx + 0x38], 0
mov edx, 0x60
mov rcx, rbp
call fcn.18009d5c8
dec qword [r14 + 8]
test r15b, r15b
jne 0x18000ed25
cmp rsi, r12
jne 0x18000ec80
mov rax, qword [rsp + 0x20]
mov qword [rax], rsi
mov rax, qword [rsp + 0x58]
mov qword [rax], rdi
mov qword [rdi + 8], rax
mov rax, r12
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov rax, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x30]
mov qword [rax], rdx
mov qword [rax + 8], rdx
jmp 0x18000ec16