Function at 0x18008ef70
Capabilities:
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov qword [rax + 8], rcx
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0x1d0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
movaps xmmword [rax - 0xb8], xmm14
movaps xmmword [rax - 0xc8], xmm15
lea rbp, [rsp + 0x50]
and rbp, 0xffffffffffffffe0
mov r14, rcx
movsxd rax, dword [rdx + 0x50]
cmp eax, 0xffffffff
je 0x18008f9e4
mov r8, qword [rdx + 0x38]
cmp eax, dword [r8]
jge 0x18008f000
cmp eax, dword [rdx + 0x30]
jge 0x18008f000
mov r13, qword [r8 + rax*8 + 8]
jmp 0x18008f003
xor r13d, r13d
cmp qword [r13 + 0x18], 0
je 0x18008f9e4
cmp qword [r13 + 0x48], 0
je 0x18008f9e4
cmp qword [r13 + 0x50], 0
je 0x18008f9e4
mov rcx, qword [0x1802c75f0]
call fcn.1800910c0
test rax, rax
je 0x18008f9e4
mov rdi, qword [rax + 0x360]
test rdi, rdi
je 0x18008f9e4
mov eax, dword [0x1802c7cd0]
movabs rcx, 0x86d5e923361241cc
movabs rdx, 0x1b91bb4ac620e9a3
movabs r15, 0x74e1da2f9173aae0
movabs r12, 0x5b90fb72602d4ad6
mov esi, 0x811c9dc5
movabs r8, 0x3ad4ad17134c08b8
movabs r9, 0xe2995a48682db9d5
movabs r10, 0xcd66cc55e27c617a
movabs r11, 0x1f5c6b06455480d7
test al, 1
jne 0x18008f1d7
or eax, 1
mov dword [0x1802c7cd0], eax
mov qword [rbp], r15
mov rax, qword [rbp]
mov qword [rbp + 0xa0], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0xa8], rax
movabs rax, 0xaffb05255600d8a1
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xb0], rax
movabs rax, 0xbd07a90287190d1f
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xb8], rax
movabs rax, 0x1f5c6b064554eeb8
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xc0], rax
mov qword [rbp], rcx
mov rax, qword [rbp]
mov qword [rbp + 0xc8], rax
mov qword [rbp], rdx
mov rax, qword [rbp]
mov qword [rbp + 0x40], rax
mov qword [rbp], r8
mov rax, qword [rbp]
mov qword [rbp + 0x48], rax
mov qword [rbp], r9
mov rax, qword [rbp]
mov qword [rbp + 0x50], rax
mov qword [rbp], r10
mov rax, qword [rbp]
mov qword [rbp + 0x58], rax
mov qword [rbp], r11
mov rax, qword [rbp]
mov qword [rbp + 0x60], rax
mov qword [rbp], rcx
mov rax, qword [rbp]
mov qword [rbp + 0x68], rax
vmovdqu ymm0, ymmword [rbp + 0xa0]
vpxor ymm1, ymm0, ymmword [rbp + 0x40]
vmovdqu ymmword [rbp + 0xa0], ymm1
vmovdqa xmm0, xmmword [rbp + 0xc0]
vxorps xmm0, xmm0, xmmword [rbp + 0x60]
vmovdqa xmmword [rbp + 0xc0], xmm0
vmovd eax, xmm1
test al, al
jne 0x18008f1ae
mov eax, esi
vzeroupper
jmp 0x18008f1c8
movsx eax, al
xor eax, esi
imul edx, eax, 0x1000193
lea rcx, [rbp + 0xa1]
vzeroupper
call fcn.18001fa00
mov ecx, eax
call fcn.18001f430
mov dword [0x1802c7ccc], eax
jmp 0x18008f1dd
mov eax, dword [0x1802c7ccc]
mov eax, eax
cmp byte [rax + rdi], 0
jne 0x18008f9e4
mov rbx, qword [r13 + 0x18]
movss xmm6, dword [rbx + 0x18]
mulss xmm6, dword [0x180133ebc]
movaps xmm0, xmm6
call fcn.1800fcc40
movaps xmm9, xmm0
movaps xmm0, xmm6
call fcn.1800fc620
movaps xmm8, xmm0
movss xmm6, dword [rbx + 0x1c]
mulss xmm6, dword [0x180133ebc]
movaps xmm0, xmm6
call fcn.1800fcc40
movaps xmm7, xmm0
movaps xmm0, xmm6
call fcn.1800fc620
movaps xmm6, xmm0
mulss xmm6, xmm8
mulss xmm7, xmm8
xorps xmm9, xmmword [0x18012f0d0]
lea rdx, [rbp + 0x10]
mov rcx, qword [0x1802c75f0]
call fcn.18006aec0
mov eax, dword [0x1802c7cc8]
test al, 1
jne 0x18008f35e
or eax, 1
mov dword [0x1802c7cc8], eax
mov qword [rbp], r15
mov rax, qword [rbp]
mov qword [rbp + 0x40], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0x48], rax
movabs rax, 0x8eff05255600d8a1
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x50], rax
movabs rax, 0xcd66cc3085120028
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x58], rax
movabs rax, 0x1b91bb4ac620e9a3
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xa0], rax
movabs rax, 0x3ad4ad17134c08b8
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xa8], rax
movabs rax, 0xe2995a48682db9d5
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xb0], rax
movabs rax, 0xcd66cc55e27c617a
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xb8], rax
vmovdqu ymm0, ymmword [rbp + 0x40]
vpxor ymm1, ymm0, ymmword [rbp + 0xa0]
vmovdqu ymmword [rbp + 0x40], ymm1
vmovq rax, xmm1
test al, al
jne 0x18008f338
mov eax, esi
vzeroupper
jmp 0x18008f34f
movsx eax, al
xor eax, esi
imul edx, eax, 0x1000193
lea rcx, [rbp + 0x41]
vzeroupper
call fcn.18001fa00
mov ecx, eax
call fcn.18001f430
mov dword [0x1802c7cc4], eax
jmp 0x18008f364
mov eax, dword [0x1802c7cc4]
mov eax, eax
movss xmm8, dword [rax + rdi]
movaps xmm0, xmm8
mulss xmm0, xmm9
movaps xmm1, xmm8
mulss xmm1, xmm7
movss xmm7, dword [rbp + 0x18]
movaps xmm11, xmm7
addss xmm11, xmm0
movss dword [rbp], xmm11
movss xmm9, dword [rbp + 0x14]
movaps xmm12, xmm9
addss xmm12, xmm1
movss dword [rbp + 0x80], xmm12
mulss xmm8, xmm6
addss xmm8, dword [rbp + 0x10]
movss dword [rbp + 0x28], xmm8
call fcn.18008ede0
movaps xmm15, xmm0
mov r12d, 0xffffffff
mov dword [rbp + 0x24], r12d
movss xmm14, dword [0x18012f054]
movaps xmm0, xmm14
movss dword [rbp + 0x20], xmm0
mov rdi, qword [r14 + 8]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x18008f9e4
movss xmm6, dword [0x18012ba4c]
nop word [rax + rax]
mov rsi, qword [rbx + 0x18]
cmp byte [rsi + 0x20], 0
je 0x18008f5b0
movaps xmm13, xmm14
mov r15, qword [rsi + 0x10]
mov rsi, qword [rsi + 8]
cmp rsi, r15
je 0x18008f599
lea r14, [rsi + 0x2010]
nop word [rax + rax]
cmp byte [rsi], 0
je 0x18008f57d
comiss xmm15, dword [r14 - 0x200c]
jae 0x18008f57d
movsd xmm0, qword [r14]
movss xmm10, dword [r14 + 8]
movaps xmm4, xmm10
subss xmm4, xmm7
movaps xmm8, xmm0
shufps xmm8, xmm8, 0x55
movsd qword [rbp + 0xa0], xmm0
movaps xmm3, xmm8
subss xmm3, xmm9
subss xmm11, xmm7
subss xmm12, xmm9
movss xmm9, dword [rbp + 0x28]
subss xmm9, dword [rbp + 0x10]
movaps xmm2, xmm9
mulss xmm2, xmm9
movaps xmm0, xmm12
mulss xmm0, xmm12
addss xmm2, xmm0
movaps xmm1, xmm11
mulss xmm1, xmm11
addss xmm2, xmm1
movss xmm5, dword [rbp + 0xa0]
movaps xmm7, xmm5
subss xmm7, dword [rbp + 0x10]
mulss xmm7, xmm9
movaps xmm0, xmm12
mulss xmm0, xmm3
addss xmm7, xmm0
movaps xmm1, xmm11
mulss xmm1, xmm4
addss xmm7, xmm1
divss xmm7, xmm2
xorps xmm0, xmm0
comiss xmm0, xmm7
ja 0x18008f556
comiss xmm7, xmm6
ja 0x18008f556
mulss xmm11, xmm7
mulss xmm12, xmm7
movss xmm0, dword [rbp + 0x18]
addss xmm0, xmm11
movss xmm1, dword [rbp + 0x14]
addss xmm1, xmm12
subss xmm10, xmm0
subss xmm8, xmm1
mulss xmm9, xmm7
addss xmm9, dword [rbp + 0x10]
subss xmm5, xmm9
mulss xmm5, xmm5
mulss xmm8, xmm8
addss xmm5, xmm8
mulss xmm10, xmm10
addss xmm5, xmm10
xorps xmm0, xmm0
ucomiss xmm0, xmm5
ja 0x18008f54c
xorps xmm0, xmm0
sqrtss xmm0, xmm5
jmp 0x18008f55a
movaps xmm0, xmm5
call fcn.1800fc180
jmp 0x18008f55a
movaps xmm0, xmm14
minss xmm0, xmm13
movaps xmm13, xmm0
movss xmm7, dword [rbp + 0x18]
movss xmm9, dword [rbp + 0x14]
movss xmm12, dword [rbp + 0x80]
movss xmm11, dword [rbp]
add rsi, 0x2020
add r14, 0x2020
cmp rsi, r15
jne 0x18008f430
movss xmm0, dword [rbp + 0x20]
comiss xmm0, xmm13
jbe 0x18008f5b0
mov r12d, dword [rbx + 0x10]
mov dword [rbp + 0x24], r12d
movaps xmm0, xmm13
movss dword [rbp + 0x20], xmm0
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x18008f400
cmp r12d, 0xffffffff
je 0x18008f9e4
comiss xmm0, dword [0x18012f040]
ja 0x18008f9e4
lea r8, [rbp + 0x24]
lea rdx, [rbp + 0xa0]
mov rcx, qword [rsp + 0x200]
call fcn.18008e4f0
mov rcx, qword [rax]
movss xmm0, dword [rbp + 0x28]
unpcklps xmm0, xmm12
movsd qword [rbp], xmm0
movss dword [rbp + 8], xmm11
movss xmm0, dword [rbp + 0x10]
unpcklps xmm0, xmm9
movsd qword [rbp + 0x10], xmm0
movsd qword [rbp + 0x10], xmm0
movss dword [rbp + 0x18], xmm7
movss dword [rsp + 0x20], xmm15
lea r9, [rbp]
lea r8, [rbp + 0x10]
lea rdx, [rbp + 0x40]
mov rcx, qword [rcx + 0x18]
call fcn.18008e9e0
mov rax, qword [rbp + 0x48]
movss xmm7, dword [rax + 4]
mov rax, qword [rbp + 0x40]
movss xmm9, dword [rax + 4]
movss xmm8, dword [rbp + 0x50]
movd ecx, xmm8
btr ecx, 0x1f
cmp ecx, 0x7f800000
jae 0x18008f719
movd eax, xmm9
btr eax, 0x1f
cmp eax, 0x7f800000
jae 0x18008f719
movd eax, xmm7
btr eax, 0x1f
cmp eax, 0x7f800000
jae 0x18008f719
xorps xmm0, xmm0
comiss xmm0, xmm9
jb 0x18008f699
comiss xmm7, xmm0
jae 0x18008f6a4
comiss xmm9, xmm0
jb 0x18008f6bc
comiss xmm0, xmm7
jb 0x18008f6bc
subss xmm6, xmm8
mulss xmm6, xmm9
mulss xmm7, xmm8
addss xmm6, xmm7
jmp 0x18008f799
ucomiss xmm8, xmm6
jp 0x18008f6cc
jne 0x18008f6cc
movaps xmm6, xmm7
jmp 0x18008f799
movaps xmm1, xmm7
subss xmm1, xmm9
movaps xmm2, xmm9
movaps xmm0, xmm8
call fcn.1801002e0
xor ecx, ecx
comiss xmm7, xmm9
seta cl
xor eax, eax
comiss xmm8, xmm6
seta al
cmp eax, ecx
jne 0x18008f704
comiss xmm7, xmm0
jbe 0x18008f711
movaps xmm6, xmm7
jmp 0x18008f799
comiss xmm0, xmm7
jbe 0x18008f711
movaps xmm6, xmm7
jmp 0x18008f799
movaps xmm6, xmm0
jmp 0x18008f799
movd eax, xmm9
btr eax, 0x1f
cmp eax, 0x7f800000
ja 0x18008f78c
movd eax, xmm7
btr eax, 0x1f
cmp eax, 0x7f800000
ja 0x18008f78c
movd eax, xmm8
btr eax, 0x1f
cmp eax, 0x7f800000
jbe 0x18008f74e
movaps xmm6, xmm8
jmp 0x18008f794
cmp ecx, 0x7f800000
jae 0x18008f77d
xorps xmm0, xmm0
comiss xmm0, xmm8
jbe 0x18008f769
movaps xmm6, xmm9
subss xmm6, xmm7
jmp 0x18008f799
comiss xmm6, xmm8
jae 0x18008f6a4
movaps xmm6, xmm7
subss xmm6, xmm9
jmp 0x18008f799
movaps xmm6, xmm7
subss xmm6, xmm9
mulss xmm6, xmm8
jmp 0x18008f799
movaps xmm6, xmm9
addss xmm6, xmm7
addss xmm6, xmm8
mulss xmm6, dword [0x18012f1d0]
movaps xmm0, xmm6
call fcn.1800fc840
cvttss2si ebx, xmm0
mov edi, ebx
movd xmm1, ebx
cvtdq2ps xmm1, xmm1
subss xmm6, xmm1
dec ebx
mov dword [r13 + 0x60], edi
movss dword [r13 + 0x64], xmm6
mov rsi, qword [0x1802c7730]
mov eax, dword [0x1802c7ce0]
test al, 1
jne 0x18008f95e
or eax, 1
mov dword [0x1802c7ce0], eax
movabs rax, 0x7afdeb2fb541abe0
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xa0], rax
movabs rax, 0x48a0c378503e6dc1
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xa8], rax
movabs rax, 0x8fa7773a0d41d5ba
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xb0], rax
movabs rax, 0xac24a7368b280f25
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xb8], rax
movabs rax, 0x1f5c6b064554e5a4
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xc0], rax
movabs rcx, 0x86d5e923361241cc
mov qword [rbp], rcx
mov rax, qword [rbp]
mov qword [rbp + 0xc8], rax
movabs rax, 0x1b91bb4ac620e9a3
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x40], rax
movabs rax, 0x3ad4ad17134c08b8
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x48], rax
movabs rax, 0xe2995a48682db9d5
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x50], rax
movabs rax, 0xcd66cc55e27c617a
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x58], rax
movabs rax, 0x1f5c6b06455480d7
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x60], rax
mov qword [rbp], rcx
mov rax, qword [rbp]
mov qword [rbp + 0x68], rax
vmovdqu ymm0, ymmword [rbp + 0xa0]
vpxor ymm1, ymm0, ymmword [rbp + 0x40]
vmovdqu ymmword [rbp + 0xa0], ymm1
vmovdqa xmm0, xmmword [rbp + 0xc0]
vxorps xmm0, xmm0, xmmword [rbp + 0x60]
vmovdqa xmmword [rbp + 0xc0], xmm0
vmovd eax, xmm1
test al, al
jne 0x18008f930
vzeroupper
mov ecx, 0x811c9dc5
jmp 0x18008f951
movsx eax, al
mov ecx, 0x811c9dc5
xor eax, ecx
imul edx, eax, 0x1000193
lea rcx, [rbp + 0xa1]
vzeroupper
call fcn.18001fa00
mov ecx, eax
call fcn.18001f430
mov dword [0x1802c7cdc], eax
jmp 0x18008f964
mov eax, dword [0x1802c7cdc]
mov eax, eax
mov ecx, dword [rax + rsi]
mov dword [r13 + 0x68], ecx
movss dword [r13 + 0x6c], xmm6
mov rax, qword [r13 + 0x40]
mov dword [rax + 0x1c], ebx
mov rax, qword [r13 + 0x40]
mov dword [rax + 0x20], edi
mov rax, qword [r13 + 0x40]
movss dword [rax + 0x18], xmm6
mov rax, qword [r13 + 0x48]
mov dword [rax + 0x1c], ebx
mov rax, qword [r13 + 0x48]
mov dword [rax + 0x20], edi
mov rax, qword [r13 + 0x48]
mov dword [rax + 0x18], 0
mov rax, qword [r13 + 0x50]
mov dword [rax + 0x1c], edi
lea ecx, [rbx + 2]
mov rax, qword [r13 + 0x50]
mov dword [rax + 0x20], ecx
mov rax, qword [r13 + 0x50]
mov dword [rax + 0x18], 0
lea ecx, [rbx + 3]
mov rax, qword [r13 + 0x58]
mov dword [rax + 0x1c], ecx
lea ecx, [rbx + 4]
mov rax, qword [r13 + 0x58]
mov dword [rax + 0x20], ecx
mov rax, qword [r13 + 0x58]
movss dword [rax + 0x18], xmm6
or qword [r13 + 0x10], 0x1e0
lea r11, [rsp + 0x1d0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov rdi, qword [rcx + 8]
mov rbp, rdx
mov rsi, rcx
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x18008ff9e
nop word [rax + rax]
mov rdx, qword [0x1802c70f8]
mov rcx, qword [rbx + 0x18]
mov edx, dword [rdx + 0x5c1c]
call fcn.18008ffc0
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x18008ff80
mov rdx, rbp
mov rcx, rsi
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
jmp 0x18008ef70