Function at 0x1400ca360
Capabilities:
Hash data using fnv

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x248
mov qword [rcx], rdx
lea rax, [rcx + 0x78]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x30], rcx
mov qword [rcx + 0x80], 0
movzx eax, word [0x140120b24]
lea r13, [rax + rdx]
mov r8, qword [0x140120500]
lea r15, [rax + rdx + 4]
mov rsi, qword [0x1401204b8]
mov ecx, dword [0x1401204c0]
mov rax, qword [0x1401204d0]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x48], rcx
lea rax, [rcx*8]
lea rbx, [rax + rax*2]
lea rax, [rsp + 0x6c]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x1c8]
lea rcx, [0x140120428]
lea r9, [rsp + 0xc0]
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x20], rax
mov r14, rcx
mov rdx, r8
mov r8, r13
mov r12, r9
call fcn.14000c5d0
test al, al
je 0x1400caea4
mov rdi, qword [rsp + 0x1c8]
cmp rdi, r15
mov rbp, r15
cmovb rbp, rdi
sub rbp, r13
mov rdx, qword [rsp + 0xc0]
mov rax, rbp
add rax, rdx
jb 0x1400caea4
cmp dword [rsp + 0x48], 0
je 0x1400caea4
xor ecx, ecx
jmp 0x1400ca46d
add rcx, 0x18
cmp rbx, rcx
je 0x1400caea4
cmp qword [rsi + rcx], rdx
ja 0x1400ca460
cmp rax, qword [rsi + rcx + 8]
ja 0x1400ca460
add rdx, qword [rsp + 0x78]
mov r13, qword [rsp + 0x40]
mov rcx, r13
mov r8, rbp
call fcn.14001fd00
cmp r15, rdi
jbe 0x1400ca4b7
add r13, rbp
mov qword [rsp + 0x40], r13
mov r13, rdi
mov r8, qword [rsp + 0x38]
lea rax, [rsp + 0x1c8]
mov rcx, r14
mov r9, r12
jmp 0x1400ca3fe
mov eax, dword [rsp + 0x6c]
mov ecx, eax
shr ecx, 0x10
mov edx, eax
shr edx, 0x18
movzx r8d, al
movabs r9, 0xcbf29ce484222325
xor r9, r8
movabs r10, 0x100000001b3
imul r9, r10
movzx edi, ah
xor rdi, r9
imul rdi, r10
movzx r8d, cl
xor r8, rdi
imul r8, r10
xor r8, rdx
imul r8, r10
and r8, qword [0x1401221a0]
mov r9, qword [0x140122188]
mov rcx, r8
shl rcx, 4
mov rcx, qword [r9 + rcx + 8]
mov rdx, qword [0x140122178]
cmp rcx, rdx
je 0x1400caea4
cmp dword [rcx + 0x10], eax
je 0x1400ca548
add r8, r8
mov r8, qword [r9 + r8*8]
cmp rcx, r8
je 0x1400caea4
mov rcx, qword [rcx + 8]
cmp dword [rcx + 0x10], eax
jne 0x1400ca536
cmp rcx, rdx
je 0x1400caea4
mov rax, qword [rcx + 0x18]
mov rcx, qword [rsp + 0x30]
mov qword [rcx + 0x68], rax
movzx ecx, word [0x140120b48]
lea r13, [rax + rcx]
lea r15, [rax + rcx + 0x80]
lea rax, [rsp + 0x50]
lea r12, [0x140120428]
lea r9, [rsp + 0xc0]
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x20], rax
mov rcx, r12
mov r8, r13
call fcn.14000c5d0
test al, al
je 0x1400caea4
mov rdi, qword [rsp + 0x50]
cmp rdi, r15
mov rbp, r15
cmovb rbp, rdi
sub rbp, r13
mov rdx, qword [rsp + 0xc0]
mov rax, rbp
add rax, rdx
jb 0x1400caea4
xor ecx, ecx
jmp 0x1400ca5d9
add rcx, 0x18
cmp rbx, rcx
je 0x1400caea4
cmp qword [rsi + rcx], rdx
ja 0x1400ca5cc
cmp rax, qword [rsi + rcx + 8]
ja 0x1400ca5cc
add rdx, qword [rsp + 0x78]
mov r14, qword [rsp + 0x70]
mov rcx, r14
mov r8, rbp
call fcn.14001fd00
cmp r15, rdi
jbe 0x1400ca622
add r14, rbp
mov qword [rsp + 0x70], r14
mov r13, rdi
mov rdx, qword [rsp + 0x38]
lea rax, [rsp + 0x50]
lea r9, [rsp + 0xc0]
jmp 0x1400ca58a
vxorps xmm0, xmm0, xmm0
vmovups ymmword [rsp + 0x1a0], ymm0
vmovups ymmword [rsp + 0x180], ymm0
vmovups ymmword [rsp + 0x160], ymm0
vmovups ymmword [rsp + 0x140], ymm0
vmovups ymmword [rsp + 0x120], ymm0
vmovups ymmword [rsp + 0x100], ymm0
vmovups ymmword [rsp + 0xe0], ymm0
vmovups ymmword [rsp + 0xc0], ymm0
mov byte [rsp + 0x1c0], 0
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x50], rax
lea rdx, [rsp + 0x248]
lea rcx, [rsp + 0x1c8]
lea r8, [rsp + 0x50]
vzeroupper
call fcn.1400caec0
vmovups ymm0, ymmword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x30]
vmovups ymmword [rcx + 0x1f8], ymm0
vmovups ymm0, ymmword [rsp + 0x180]
vmovups ymmword [rcx + 0x1d8], ymm0
vmovups ymm0, ymmword [rsp + 0x160]
vmovups ymmword [rcx + 0x1b8], ymm0
vmovups ymm0, ymmword [rsp + 0x140]
vmovups ymmword [rcx + 0x198], ymm0
vmovups ymm0, ymmword [rsp + 0xc0]
vmovups ymm1, ymmword [rsp + 0xe0]
vmovups ymm2, ymmword [rsp + 0x100]
vmovups ymm3, ymmword [rsp + 0x120]
vmovups ymmword [rcx + 0x178], ymm3
vmovups ymmword [rcx + 0x158], ymm2
vmovups ymmword [rcx + 0x138], ymm1
vmovups ymmword [rcx + 0x118], ymm0
movzx eax, byte [rsp + 0x1c0]
mov byte [rcx + 0x218], al
lea rax, [rcx + 8]
mov qword [rsp + 0x48], rax
mov rax, qword [rcx]
movzx ecx, word [0x140120afe]
lea r15, [rax + rcx]
lea rsi, [rax + rcx + 4]
mov r13, qword [0x1401204b8]
mov ecx, dword [0x1401204c0]
mov rax, qword [0x1401204d0]
mov qword [rsp + 0x40], rax
mov r14, rcx
lea rax, [rcx*8]
lea rbx, [rax + rax*2]
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
lea rcx, [0x140120428]
mov rdx, qword [rsp + 0x38]
mov r8, r15
lea r9, [rsp + 0xc0]
vzeroupper
call fcn.14000c5d0
test al, al
je 0x1400caea4
mov rdi, qword [rsp + 0x50]
cmp rdi, rsi
mov rbp, rsi
cmovb rbp, rdi
sub rbp, r15
mov rdx, qword [rsp + 0xc0]
mov rax, rbp
add rax, rdx
jb 0x1400caea4
test r14d, r14d
je 0x1400caea4
xor ecx, ecx
jmp 0x1400ca7f0
add rcx, 0x18
cmp rbx, rcx
je 0x1400caea4
cmp qword [r13 + rcx], rdx
ja 0x1400ca7e3
cmp rax, qword [r13 + rcx + 8]
ja 0x1400ca7e3
add rdx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
mov r8, rbp
call fcn.14001fd00
cmp rsi, rdi
jbe 0x1400ca822
add qword [rsp + 0x48], rbp
mov r15, rdi
jmp 0x1400ca77f
mov rax, qword [rsp + 0x30]
lea r15, [rax + 0xc]
mov rax, qword [rax]
movzx ecx, word [0x140120b00]
lea rdi, [rax + rcx]
lea rsi, [rax + rcx]
add rsi, 4
lea r12, [0x140120428]
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov rcx, r12
mov rdx, qword [rsp + 0x38]
mov r8, rdi
lea r9, [rsp + 0xc0]
call fcn.14000c5d0
test al, al
je 0x1400caea4
mov r14, qword [rsp + 0x50]
cmp r14, rsi
mov rbp, rsi
cmovb rbp, r14
sub rbp, rdi
mov rdx, qword [rsp + 0xc0]
mov rax, rbp
add rax, rdx
jb 0x1400caea4
xor ecx, ecx
jmp 0x1400ca8a9
add rcx, 0x18
cmp rbx, rcx
je 0x1400caea4
cmp qword [r13 + rcx], rdx
ja 0x1400ca89c
cmp rax, qword [r13 + rcx + 8]
ja 0x1400ca89c
add rdx, qword [rsp + 0x40]
mov rcx, r15
mov r8, rbp
call fcn.14001fd00
cmp rsi, r14
jbe 0x1400ca8d7
add r15, rbp
mov rdi, r14
jmp 0x1400ca848
mov rax, qword [rsp + 0x30]
lea r15, [rax + 0x14]
mov rax, qword [rax]
movzx ecx, word [0x140120b02]
lea rdi, [rax + rcx]
lea rsi, [rax + rcx]
add rsi, 4
lea r12, [0x140120428]
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov rcx, r12
mov rdx, qword [rsp + 0x38]
mov r8, rdi
lea r9, [rsp + 0xc0]
call fcn.14000c5d0
test al, al
je 0x1400caea4
mov r14, qword [rsp + 0x50]
cmp r14, rsi
mov rbp, rsi
cmovb rbp, r14
sub rbp, rdi
mov rdx, qword [rsp + 0xc0]
mov rax, rbp
add rax, rdx
jb 0x1400caea4
xor ecx, ecx
jmp 0x1400ca95e
add rcx, 0x18
cmp rbx, rcx
je 0x1400caea4
cmp qword [r13 + rcx], rdx
ja 0x1400ca951
cmp rax, qword [r13 + rcx + 8]
ja 0x1400ca951
add rdx, qword [rsp + 0x40]
mov rcx, r15
mov r8, rbp
call fcn.14001fd00
cmp rsi, r14
jbe 0x1400ca98c
add r15, rbp
mov rdi, r14
jmp 0x1400ca8fd
mov rax, qword [rsp + 0x30]
lea rdx, [rax + 0x18]
movzx ecx, word [0x140120b04]
add rcx, qword [rax]
call fcn.1400cb020
test al, al
je 0x1400caea4
mov rax, qword [rsp + 0x30]
lea rdx, [rax + 0x19]
movzx ecx, word [0x140120b06]
add rcx, qword [rax]
call fcn.1400cb020
test al, al
je 0x1400caea4
mov rax, qword [rsp + 0x30]
lea rbx, [rax + 0x1c]
movzx ecx, word [0x140120b08]
add rcx, qword [rax]
mov rdx, rbx
call fcn.1400cb0b0
test al, al
je 0x1400caea4
mov eax, 0x7fffffff
mov ecx, dword [rbx]
and ecx, eax
cmp ecx, 0x7f7fffff
jg 0x1400caea4
mov rcx, qword [rsp + 0x30]
and eax, dword [rcx + 0x20]
cmp eax, 0x7f7fffff
jg 0x1400caea4
mov eax, 0x7fffffff
mov rcx, qword [rsp + 0x30]
and eax, dword [rcx + 0x24]
cmp eax, 0x7f7fffff
jg 0x1400caea4
mov rax, qword [rsp + 0x30]
lea rdx, [rax + 0x94]
movzx ecx, word [0x140120b0a]
add rcx, qword [rax]
call fcn.1400cb020
test al, al
je 0x1400caea4
mov rax, qword [rsp + 0x30]
lea rdx, [rax + 0x60]
movzx ecx, word [0x140120b0e]
add rcx, qword [rax]
call fcn.14001fa90
test al, al
je 0x1400caea4
mov rax, qword [rsp + 0x30]
lea rdi, [rax + 0x28]
movzx ecx, word [0x140120b10]
add rcx, qword [rax + 0x60]
mov rdx, rdi
call fcn.1400cb0b0
test al, al
je 0x1400caea4
mov eax, 0x7fffffff
mov ecx, dword [rdi]
and ecx, eax
cmp ecx, 0x7f7fffff
jg 0x1400caea4
mov rcx, qword [rsp + 0x30]
and eax, dword [rcx + 0x2c]
cmp eax, 0x7f7fffff
jg 0x1400caea4
mov eax, 0x7fffffff
mov rcx, qword [rsp + 0x30]
and eax, dword [rcx + 0x30]
cmp eax, 0x7f7fffff
jg 0x1400caea4
mov rax, qword [rsp + 0x30]
lea rdx, [rax + 0x97]
movzx ecx, word [0x140120b14]
add rcx, qword [rax + 0x60]
call fcn.1400cb020
mov ecx, eax
xor eax, eax
test cl, cl
je 0x1400caea6
mov rcx, qword [rsp + 0x30]
cmp byte [rcx + 0x97], 1
ja 0x1400caea6
mov rax, qword [rsp + 0x30]
lea rdx, [rax + 0x96]
movzx ecx, word [0x140120b16]
add rcx, qword [rax]
call fcn.1400cb020
mov ecx, eax
xor eax, eax
test cl, cl
je 0x1400caea6
mov rcx, qword [rsp + 0x30]
cmp byte [rcx + 0x96], 1
ja 0x1400caea6
mov rax, qword [rsp + 0x30]
lea rdx, [rax + 0x38]
movzx ecx, word [0x140120b18]
add rcx, qword [rax]
call fcn.14001f990
test al, al
je 0x1400caea4
mov rax, qword [rsp + 0x30]
lea rdx, [rax + 0x90]
movzx ecx, word [0x140120b1a]
add rcx, qword [rax]
call fcn.14001f990
test al, al
je 0x1400caea4
mov rax, qword [rsp + 0x30]
lea rdx, [rax + 0x3c]
movzx ecx, word [0x140120b1c]
add rcx, qword [rax]
call fcn.14001f990
test al, al
je 0x1400caea4
mov rax, qword [rsp + 0x30]
lea rdx, [rax + 0x10]
movzx ecx, word [0x140120b1e]
add rcx, qword [rax]
call fcn.14001f990
test al, al
je 0x1400caea4
mov rax, qword [rsp + 0x30]
lea rdx, [rax + 0x34]
movzx ecx, word [0x140120b20]
add rcx, qword [rax]
call fcn.14001f990
test al, al
je 0x1400caea4
mov rax, qword [rsp + 0x30]
lea rdx, [rax + 0x98]
movzx ecx, word [0x140120b22]
add rcx, qword [rax]
call fcn.1400cb020
mov ecx, eax
xor eax, eax
test cl, cl
je 0x1400caea6
mov rcx, qword [rsp + 0x30]
cmp byte [rcx + 0x98], 1
ja 0x1400caea6
mov rax, qword [rsp + 0x30]
lea rdi, [rax + 0x50]
movzx ecx, word [0x140120b26]
add rcx, qword [rax]
mov rdx, rdi
call fcn.14001fa90
test al, al
je 0x1400caea4
mov rax, qword [rsp + 0x30]
lea rdx, [rax + 0x58]
movzx ecx, word [0x140120b28]
add rcx, qword [rax]
call fcn.14001fa90
test al, al
je 0x1400caea4
movzx ecx, word [0x140120b2c]
add rcx, qword [rdi]
lea rdx, [rsp + 0x68]
call fcn.14001f990
test al, al
je 0x1400caea4
mov rax, qword [rsp + 0x30]
lea rdi, [rax + 0x70]
movzx ecx, word [0x140120b30]
add rcx, qword [rax + 0x50]
mov rdx, rdi
call fcn.14001f990
test al, al
je 0x1400caea4
mov eax, 0x7fffffff
and eax, dword [rdi]
cmp eax, 0x7f7fffff
jg 0x1400caea4
mov edx, dword [rsp + 0x68]
lea rcx, [rsp + 0xb0]
call fcn.1400cb1b0
cmp byte [rsp + 0xb8], 0
je 0x1400cad08
mov rdx, qword [rsp + 0x30]
lea rcx, [rdx + 0xa0]
movzx eax, byte [rdx + 0x14]
cmp byte [rdx + 0x96], 0
setne r9b
mov rdx, qword [rsp + 0xb0]
and al, 1
mov byte [rsp + 0x20], al
mov r8, rbx
call fcn.1400cb260
jmp 0x1400cad0a
xor eax, eax
mov rdx, qword [rsp + 0x30]
mov byte [rdx + 0x95], al
movzx ecx, word [0x140120b2e]
add rcx, qword [rdx + 0x50]
lea rdx, [rsp + 0x8c]
call fcn.1400cb9b0
test al, al
je 0x1400caea4
mov r9d, dword [rsp + 0x8c]
xor eax, eax
cmp r9, 0x64
ja 0x1400caea6
cmp r9d, dword [rsp + 0x9c]
ja 0x1400caea6
test r9d, r9d
je 0x1400cae1e
mov r8, qword [rsp + 0x94]
mov rdx, qword [0x140120500]
lea rcx, [rsp + 0x50]
call fcn.1400cbab0
movzx esi, byte [rsp + 0x60]
cmp sil, 2
je 0x1400caea4
mov rbx, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
test rdi, rdi
je 0x1400cae0c
shl rdi, 2
xor r12d, r12d
lea r14, [rsp + 0xa0]
lea r15, [rsp + 0xc0]
jmp 0x1400cadb9
add r12, 4
cmp rdi, r12
je 0x1400cae0c
mov edx, dword [rbx + r12]
mov rcx, r14
call fcn.1400cb1b0
cmp byte [rsp + 0xa8], 0
je 0x1400cadb0
mov qword [rsp + 0xc0], 0
mov dword [rsp + 0xcc], 0
mov rdx, qword [rsp + 0xa0]
mov rcx, r15
call fcn.1400cbcd0
test al, al
je 0x1400cadb0
mov rcx, qword [rsp + 0x80]
mov rdx, r15
call fcn.1400cc220
jmp 0x1400cadb0
cmp sil, 1
jne 0x1400cae1e
add rbx, 0xfffffffffffffff0
mov rcx, rbx
call fcn.140009440
mov rax, qword [rsp + 0x30]
lea rdx, [rax + 0x1b]
movzx ecx, word [0x140120b32]
add rcx, qword [rax]
call fcn.1400cb020
mov ecx, eax
xor eax, eax
test cl, cl
je 0x1400caea6
mov rcx, qword [rsp + 0x30]
cmp byte [rcx + 0x1b], 1
ja 0x1400caea6
mov rax, qword [rsp + 0x30]
lea rdx, [rax + 0x1a]
movzx ecx, word [0x140120b38]
add rcx, qword [rax]
call fcn.1400cb020
mov ecx, eax
xor eax, eax
test cl, cl
je 0x1400caea6
mov rcx, qword [rsp + 0x30]
cmp byte [rcx + 0x1a], 1
ja 0x1400caea6
movzx ecx, word [0x140120b34]
mov rdx, qword [rsp + 0x30]
add rcx, qword [rdx]
add rdx, 0x74
mov rsi, rdx
call fcn.14001f990
test al, al
je 0x1400caea4
mov eax, 0x7fffffff
and eax, dword [rsi]
cmp eax, 0x7f800000
setl al
jmp 0x1400caea6
xor eax, eax
add rsp, 0x248
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret