Function at 0x14009f100
Capabilities:
Hash data using fnv

Disassembly:
push rsi
push r12
sub rsp, 0x78
mov r12d, dword [rcx + 4]
mov rsi, rcx
mov rcx, qword [rcx + 0x18]
mov dword [rsp + 0xa8], r12d
cmp r12d, 1
jne 0x14009f172
mov dword [rsi + 0xc], 8
mov dword [rsi + 4], 8
test rcx, rcx
jne 0x14009f140
lea ecx, [r12 + 0x3f]
call fcn.14010e8d0
jmp 0x14009f14a
mov edx, 0x40
call fcn.140032990
xorps xmm0, xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm0
mov qword [rsi + 0x10], rax
mov rax, rsi
shr rax, 4
mov dword [rsi + 8], eax
add rsp, 0x78
pop r12
pop rsi
ret
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x60], r13
mov r13, qword [rsi + 0x10]
mov eax, edx
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x58], r14
mov dword [rsi + 4], edx
lea rbx, [rax*8]
test rcx, rcx
jne 0x14009f1ae
mov rcx, rbx
call fcn.14010e8d0
jmp 0x14009f1b6
mov rdx, rbx
call fcn.140032990
mov r8, rbx
xor edx, edx
mov rcx, rax
mov rdi, rax
call fcn.14013b100
mov r14d, dword [rsi + 0xc]
mov eax, dword [rsi + 4]
mov qword [rsi + 0x10], rdi
mov dword [rsp + 0xa0], r14d
mov dword [rsi + 0xc], eax
cmp r14d, r12d
jae 0x14009f3fb
mov qword [rsp + 0x70], rbp
mov qword [rsp + 0x50], r15
lea r15, [r14*8]
add r15, r13
movabs r13, 0x100000001b3
mov qword [rsp + 0x20], r15
nop dword [rax]
mov rdi, qword [r15]
test rdi, rdi
je 0x14009f3b6
movzx eax, dil
not al
test al, 1
je 0x14009f3b6
movabs r12, 0x9e3779b97f4a7c15
movabs r14, 0x9ddfea08eb382d69
movabs r15, 0xffffffff00000000
nop dword [rax + rax]
mov rbp, qword [rdi]
lea r8, [rdi + 8]
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x90]
call fcn.14009e6b0
mov rbx, rax
mov r8, qword [rax]
test r8, r8
jne 0x14009f2d8
movzx edx, byte [rax + 8]
movabs rax, 0xcbf29ce484222325
movzx ecx, byte [rbx + 9]
xor rdx, rax
movzx eax, byte [rbx + 0xa]
imul rdx, r13
xor rdx, rcx
imul rdx, r13
xor rdx, rax
movzx eax, byte [rbx + 0xb]
imul rdx, r13
xor rdx, rax
movzx eax, byte [rbx + 0xc]
imul rdx, r13
xor rdx, rax
movzx eax, byte [rbx + 0xd]
imul rdx, r13
xor rdx, rax
movzx eax, byte [rbx + 0xe]
imul rdx, r13
xor rdx, rax
movzx eax, byte [rbx + 0xf]
imul rdx, r13
xor rdx, rax
imul rdx, r13
jmp 0x14009f309
mov rbx, qword [rax + 8]
lea rdx, [0x140142a70]
mov r9, rbx
lea rcx, [rsp + 0x28]
call fcn.1400180f0
mov eax, ebx
mov rcx, rbx
and rcx, r15
or rcx, rax
mov rax, r14
add rcx, qword [rsp + 0x28]
mul rcx
xor rdx, rax
mov eax, dword [rsi + 4]
mov ecx, dword [rsi + 8]
dec eax
xor rcx, rdx
imul rcx, r12
shr rcx, 0x20
and ecx, eax
mov rax, qword [rsi + 0x10]
mov r10d, ecx
lea r8, [rcx*8]
mov rdx, qword [r8 + rax]
test rdx, rdx
jne 0x14009f350
mov qword [rdi], rdx
mov rax, qword [rsi + 0x10]
mov qword [r8 + rax], rdi
mov eax, dword [rsi + 0xc]
cmp r10d, eax
cmovb eax, r10d
mov dword [rsi + 0xc], eax
jmp 0x14009f393
movzx eax, dl
not al
test al, 1
je 0x14009f37e
mov rax, rdx
xor ecx, ecx
nop
mov rax, qword [rax]
inc rcx
test rax, rax
jne 0x14009f360
cmp rcx, 8
jae 0x14009f37e
mov qword [rdi], rdx
mov rax, qword [rsi + 0x10]
mov qword [r8 + rax], rdi
jmp 0x14009f393
mov r9, rdi
lea r8, [0x14009f060]
mov edx, r10d
mov rcx, rsi
call fcn.1400a6240
mov rdi, rbp
test rbp, rbp
jne 0x14009f250
mov r14d, dword [rsp + 0xa0]
mov r15, qword [rsp + 0x20]
mov r12d, dword [rsp + 0xa8]
jmp 0x14009f3cf
test dil, 1
je 0x14009f3cf
lea rdx, [rdi - 1]
mov rcx, rsi
lea r8, [0x14009f060]
call fcn.1400a6400
inc r14d
add r15, 8
mov dword [rsp + 0xa0], r14d
mov qword [rsp + 0x20], r15
cmp r14d, r12d
jb 0x14009f210
mov r15, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x70]
mov r13, qword [rsp + 0x30]
cmp qword [rsi + 0x18], 0
mov r14, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x98]
jne 0x14009f423
mov edx, r12d
mov rcx, r13
shl rdx, 3
call fcn.14010e90c
mov r13, qword [rsp + 0x60]
add rsp, 0x78
pop r12
pop rsi
ret