Function at 0x1800099c0
Capabilities:
Hash data with crc32

Disassembly:
mov r11, rsp
push rbp
push rsi
push rdi
push r13
push r15
lea rbp, [r11 - 0x68]
sub rsp, 0x140
mov rax, qword [0x180044040]
xor rax, rsp
mov qword [rbp - 0x78], rax
test byte [rcx + 0xc], 0x42
mov r15d, r9d
mov rax, qword [rbp + 0x90]
mov r13, r8
mov rdi, qword [0x180044d20]
mov rsi, rcx
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x50], r9d
mov qword [rsp + 0x68], r8
mov qword [rsp + 0x60], rdx
jne 0x18000a475
cmp byte [rcx + 0x9c], 0
jg 0x18000a475
cmp byte [rcx + 0x9d], 0
jg 0x18000a475
cmp byte [rcx + 0x87], 0
je 0x18000a475
movss xmm1, dword [rdi + 0x1980]
movss xmm0, dword [rsi + 0x40]
movaps xmm2, xmm1
movzx ecx, byte [rdi + 0xcb]
mulss xmm1, dword [0x18003b77c]
movzx eax, cl
neg al
mov qword [r11 + 0x20], rbx
mulss xmm2, dword [0x18003b7d0]
mov qword [r11 - 0x30], r12
sbb r12d, r12d
mov qword [r11 - 0x38], r14
and r12d, 4
movaps xmmword [r11 - 0x48], xmm6
movaps xmmword [r11 - 0x68], xmm8
movss xmm8, dword [0x18003b7c8]
movaps xmmword [r11 - 0x78], xmm9
addss xmm0, xmm8
movaps xmmword [r11 - 0x88], xmm10
movaps xmmword [r11 - 0x98], xmm11
movaps xmmword [r11 - 0xa8], xmm12
movaps xmmword [r11 - 0xb8], xmm13
xorps xmm13, xmm13
movaps xmmword [r11 - 0xc8], xmm14
addss xmm0, xmm1
movaps xmmword [r11 - 0xd8], xmm15
movaps xmmword [r11 - 0x58], xmm7
mov byte [rsp + 0x32], 0
mov dword [rsp + 0x38], r12d
maxss xmm2, xmm0
cvttss2si eax, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x18003b7b0]
cvttss2si eax, xmm0
movd xmm9, eax
cvtdq2ps xmm9, xmm9
movss dword [rsp + 0x34], xmm9
test cl, cl
je 0x180009b1b
movss xmm7, dword [0x18003b800]
jmp 0x180009b1e
xorps xmm7, xmm7
movss xmm11, dword [0x18003b870]
lea r9, [0x180036849]
mov dword [rsi + 0x144], 1
lea rbx, [0x180036af0]
mov r11, qword [rdi + 0x1ae0]
movaps xmm14, xmm11
movss dword [rsp + 0x3c], xmm7
movaps xmm15, xmm11
movaps xmm12, xmm11
movaps xmm6, xmm11
movsxd rcx, dword [r11 + 0xc8]
mov rax, qword [r11 + 0xd0]
mov r10d, dword [rax + rcx*4 - 4]
mov cl, 0x23
not r10d
mov r8d, r10d
cmp cl, 0x23
jne 0x180009b89
cmp byte [r9], cl
jne 0x180009b89
cmp byte [r9 + 1], cl
cmove r8d, r10d
movzx edx, r8b
movzx eax, cl
movzx ecx, byte [r9]
xor rdx, rax
shr r8d, 8
inc r9
xor r8d, dword [rbx + rdx*4]
test cl, cl
jne 0x180009b77
not r8d
lea rdx, [rsp + 0x40]
lea rcx, [r11 + 0xc8]
mov dword [rsp + 0x40], r8d
call fcn.180014630
mov r14, qword [rbp + 0x98]
xor ebx, ebx
movss xmm10, dword [0x18003b88c]
test r15d, r15d
jle 0x180009f9b
mov rax, qword [rsp + 0x58]
lea r15, [0x1800440b8]
mov qword [rsp + 0x40], rax
nop dword [rax + rax]
movss xmm0, dword [rsi + 0x10]
movss xmm1, dword [rsi + 0x14]
movaps xmm3, xmm0
addss xmm3, dword [rsi + 0x18]
movaps xmm2, xmm1
addss xmm2, dword [rsi + 0x1c]
subss xmm3, xmm0
subss xmm2, xmm1
mulss xmm3, dword [r15 - 8]
mulss xmm2, dword [r15 - 4]
addss xmm3, xmm0
movss xmm0, dword [r15]
movaps xmm5, xmm0
mulss xmm0, xmm7
addss xmm2, xmm1
mulss xmm5, xmm9
movss xmm1, dword [r15 + 4]
movaps xmm4, xmm1
mulss xmm1, xmm7
addss xmm5, xmm3
mulss xmm4, xmm9
subss xmm3, xmm0
addss xmm4, xmm2
subss xmm2, xmm1
movss dword [rbp - 0x80], xmm5
comiss xmm3, xmm5
movss dword [rsp + 0x78], xmm3
movss dword [rsp + 0x7c], xmm2
movss dword [rbp - 0x7c], xmm4
jbe 0x180009c7f
movss dword [rsp + 0x78], xmm5
movss dword [rbp - 0x80], xmm3
comiss xmm2, xmm4
jbe 0x180009c8f
movss dword [rsp + 0x7c], xmm4
movss dword [rbp - 0x7c], xmm2
mov edx, ebx
mov rcx, rsi
call fcn.180004dd0
mov edx, eax
mov dword [rsp + 0x20], 0x40800
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x31]
lea rcx, [rsp + 0x78]
call fcn.180028490
movzx r13d, byte [rsp + 0x31]
movzx r12d, byte [rsp + 0x30]
test r13b, r13b
jne 0x180009cd1
test r12b, r12b
je 0x180009f4a
mov eax, ebx
not eax
and eax, 1
add eax, 5
mov dword [rdi + 0x1ff0], eax
test r12b, r12b
je 0x180009f4a
cmp byte [rdi + 0x425], 0
je 0x180009d90
test ebx, ebx
jne 0x180009d90
mov rax, qword [rsp + 0x60]
lea rcx, [rsp + 0x70]
mov rdx, rsi
mov r8, qword [rax]
call fcn.180009250
mov rdx, qword [0x180044d20]
mov byte [rsp + 0x32], 1
movss xmm12, dword [rax]
movss xmm6, dword [rax + 4]
mov ecx, dword [rdx + 0x1b30]
test ecx, ecx
setne al
mov byte [rdx + 0x1b3c], al
xor eax, eax
test ecx, ecx
je 0x180009d4e
mov dword [rdx + 0x1b38], eax
mov word [rdx + 0x1b3f], ax
mov dword [rdx + 0x1b30], eax
mov word [rdx + 0x1b3d], 0
mov qword [rdx + 0x1b60], rax
mov byte [rdx + 0x1b41], 0
mov qword [rdx + 0x1b44], 0
mov qword [rdx + 0x1b50], rax
test r12b, r12b
je 0x180009f60
mov ecx, 0x20
jmp 0x180009f6b
movss xmm0, dword [r15]
movaps xmm4, xmm9
xorps xmm4, xmmword [0x18003b940]
movaps xmm1, xmm0
movss xmm2, dword [r15 + 4]
movaps xmm5, xmm4
movss xmm9, dword [r15 - 4]
movaps xmm3, xmm2
movss xmm8, dword [r15 - 8]
mulss xmm5, xmm0
movss xmm0, dword [rdi + 0x128]
subss xmm0, dword [rdi + 0x1b58]
mulss xmm1, xmm7
mulss xmm4, xmm2
subss xmm5, xmm1
mulss xmm3, xmm7
subss xmm4, xmm3
mulss xmm5, xmm8
addss xmm5, xmm1
mulss xmm4, xmm9
movss xmm1, dword [rdi + 0x12c]
subss xmm1, dword [rdi + 0x1b5c]
addss xmm4, xmm3
addss xmm5, xmm0
movss xmm0, dword [0x18003b7c8]
ucomiss xmm9, xmm0
addss xmm1, xmm4
jp 0x180009e25
jne 0x180009e25
movss xmm7, dword [r14 + 4]
jmp 0x180009e29
movaps xmm7, xmm10
ucomiss xmm8, xmm0
jp 0x180009e38
jne 0x180009e38
movss xmm6, dword [r14]
jmp 0x180009e3c
movaps xmm6, xmm10
ucomiss xmm9, xmm13
jp 0x180009e4c
jne 0x180009e4c
movss xmm2, dword [r14 + 0xc]
jmp 0x180009e50
movaps xmm2, xmm11
ucomiss xmm8, xmm13
jp 0x180009e60
jne 0x180009e60
movss xmm0, dword [r14 + 8]
jmp 0x180009e64
movaps xmm0, xmm11
comiss xmm7, xmm1
ja 0x180009e70
movaps xmm7, xmm2
minss xmm7, xmm1
comiss xmm6, xmm5
ja 0x180009e7c
movaps xmm6, xmm0
minss xmm6, xmm5
movss xmm0, dword [rsi + 0x10]
lea rcx, [rsp + 0x48]
movss xmm1, dword [rsi + 0x14]
movaps xmm14, xmm0
addss xmm0, dword [rsi + 0x18]
subss xmm14, xmm6
movaps xmm15, xmm1
addss xmm1, dword [rsi + 0x1c]
subss xmm15, xmm7
mov rdx, rsi
mulss xmm14, xmm8
mulss xmm15, xmm9
addss xmm14, xmm6
subss xmm6, xmm0
addss xmm15, xmm7
subss xmm7, xmm1
mulss xmm6, xmm8
mulss xmm7, xmm9
addss xmm6, xmm0
addss xmm7, xmm1
subss xmm6, xmm14
subss xmm7, xmm15
movaps xmm0, xmm6
unpcklps xmm0, xmm7
movq r8, xmm0
call fcn.180009250
movss xmm0, dword [r15 - 8]
ucomiss xmm0, xmm13
movss xmm12, dword [rsp + 0x48]
jp 0x180009f14
jne 0x180009f14
movaps xmm0, xmm12
subss xmm0, xmm6
subss xmm14, xmm0
movss xmm0, dword [r15 - 4]
ucomiss xmm0, xmm13
movss xmm6, dword [rsp + 0x4c]
jp 0x180009f34
jne 0x180009f34
movaps xmm0, xmm6
subss xmm0, xmm7
subss xmm15, xmm0
movss xmm8, dword [0x18003b7c8]
movss xmm7, dword [rsp + 0x3c]
movss xmm9, dword [rsp + 0x34]
test ebx, ebx
je 0x180009d7d
test r12b, r12b
jne 0x180009d86
test r13b, r13b
je 0x180009f7b
xor ecx, ecx
test r13b, r13b
setne cl
add ecx, 0x1e
movaps xmm1, xmm8
call fcn.180002eb0
mov rcx, qword [rsp + 0x40]
mov dword [rcx], eax
add qword [rsp + 0x40], 4
inc ebx
add r15, 0x18
cmp ebx, dword [rsp + 0x50]
jl 0x180009bf0
mov r12d, dword [rsp + 0x38]
mov r13, qword [rsp + 0x68]
xor ebx, ebx
test r12d, r12d
je 0x18000a159
movss xmm7, dword [0x18003b800]
nop
movaps xmm3, xmm9
movss dword [rsp + 0x20], xmm7
mov r8d, ebx
lea rcx, [rsp + 0x78]
mov rdx, rsi
call fcn.180009880
lea edx, [rbx + 4]
mov rcx, rsi
call fcn.180004dd0
mov edx, eax
mov dword [rsp + 0x20], 0x800
lea r9, [rsp + 0x31]
lea r8, [rsp + 0x30]
lea rcx, [rsp + 0x78]
call fcn.180028490
cmp byte [rsp + 0x30], 0
movzx ecx, byte [rsp + 0x31]
je 0x18000a010
movss xmm0, dword [rdi + 0x1b28]
comiss xmm0, dword [0x18003b76c]
ja 0x18000a018
test cl, cl
je 0x18000a145
mov eax, ebx
and eax, 1
add eax, 3
mov dword [rdi + 0x1ff0], eax
test cl, cl
je 0x18000a145
mov dword [r13], ebx
movss xmm1, dword [rsi + 0x10]
movss xmm0, dword [rsi + 0x14]
test ebx, ebx
jne 0x18000a1cd
movss xmm0, dword [rdi + 0x12c]
subss xmm0, dword [rdi + 0x1b5c]
movss xmm2, dword [r14 + 0xc]
addss xmm0, xmm7
movaps xmm9, xmm13
movaps xmm6, xmm10
movaps xmm7, xmm10
movaps xmm8, xmm13
movaps xmm3, xmm11
comiss xmm7, xmm0
ja 0x18000a07e
movaps xmm7, xmm2
minss xmm7, xmm0
comiss xmm6, xmm1
ja 0x18000a08a
movaps xmm6, xmm3
minss xmm6, xmm1
movss xmm0, dword [rsi + 0x10]
lea rcx, [rsp + 0x48]
movss xmm1, dword [rsi + 0x14]
movaps xmm14, xmm0
addss xmm0, dword [rsi + 0x18]
subss xmm14, xmm6
movaps xmm15, xmm1
addss xmm1, dword [rsi + 0x1c]
subss xmm15, xmm7
mov rdx, rsi
mulss xmm14, xmm9
mulss xmm15, xmm8
addss xmm14, xmm6
subss xmm6, xmm0
addss xmm15, xmm7
subss xmm7, xmm1
mulss xmm6, xmm9
mulss xmm7, xmm8
addss xmm6, xmm0
addss xmm7, xmm1
subss xmm6, xmm14
subss xmm7, xmm15
movaps xmm0, xmm6
unpcklps xmm0, xmm7
movq r8, xmm0
call fcn.180009250
ucomiss xmm9, xmm13
movss xmm12, dword [rsp + 0x48]
jp 0x18000a11c
jne 0x18000a11c
movaps xmm0, xmm12
subss xmm0, xmm6
subss xmm14, xmm0
ucomiss xmm8, xmm13
movss xmm6, dword [rsp + 0x4c]
jp 0x18000a136
jne 0x18000a136
movaps xmm0, xmm6
subss xmm0, xmm7
subss xmm15, xmm0
movss xmm7, dword [0x18003b800]
movss xmm9, dword [rsp + 0x34]
movss xmm8, dword [0x18003b7c8]
inc ebx
cmp ebx, r12d
jl 0x180009fb0
mov rax, qword [0x180044d20]
mov r12, qword [rsp + 0x138]
mov rbx, qword [rsp + 0x188]
mov rcx, qword [rax + 0x1ae0]
dec dword [rcx + 0xc8]
mov dword [rsi + 0x144], 0
mov rax, qword [rdi + 0x1dc0]
test rax, rax
je 0x18000a381
cmp qword [rax + 0x380], rsi
jne 0x18000a381
mov eax, dword [rdi + 0x1cc4]
cmp eax, 3
jne 0x18000a25c
cmp byte [rdi + 0x141], 0
je 0x18000a381
lea edx, [rax - 2]
lea rcx, [rsp + 0x68]
jmp 0x18000a26d
movaps xmm2, xmm11
cmp ebx, 1
jne 0x18000a1f8
movss xmm1, dword [rdi + 0x128]
movaps xmm9, xmm8
subss xmm1, dword [rdi + 0x1b58]
movss xmm6, dword [r14]
addss xmm1, xmm7
jmp 0x18000a066
cmp ebx, 2
jne 0x18000a224
movss xmm0, dword [rdi + 0x12c]
movaps xmm9, xmm13
subss xmm0, dword [rdi + 0x1b5c]
movaps xmm6, xmm10
addss xmm0, xmm7
movss xmm7, dword [r14 + 4]
jmp 0x18000a06e
cmp ebx, 3
jne 0x18000a05e
movss xmm1, dword [rdi + 0x128]
movaps xmm9, xmm13
subss xmm1, dword [rdi + 0x1b58]
movss xmm3, dword [r14 + 8]
movaps xmm8, xmm13
movaps xmm6, xmm10
addss xmm1, xmm7
movaps xmm7, xmm10
jmp 0x18000a072
cmp eax, 4
jne 0x18000a381
lea edx, [rax - 2]
lea rcx, [rsp + 0x60]
movaps xmm3, xmm13
movss dword [rsp + 0x20], xmm13
call fcn.18000fd20
movss xmm1, dword [rax]
ucomiss xmm1, xmm13
movss xmm0, dword [rax + 4]
movss dword [rsp + 0x34], xmm0
movss dword [rsp + 0x38], xmm1
jp 0x18000a2a6
jne 0x18000a2a6
ucomiss xmm0, xmm13
jp 0x18000a2a6
je 0x18000a381
movss xmm2, dword [rdi + 0xc0]
mov ecx, 0x20
movss xmm0, dword [rdi + 0x18]
minss xmm2, dword [rdi + 0xc4]
mulss xmm0, dword [0x18003b854]
movss xmm8, dword [r14]
movss xmm7, dword [rsi + 0x10]
movss xmm12, dword [r14 + 4]
movss xmm9, dword [rsi + 0x14]
movss xmm10, dword [rsi + 0x1c]
movss xmm6, dword [rsi + 0x18]
movss xmm1, dword [0x18003b7c8]
mulss xmm2, xmm0
mov byte [rdi + 0x1de0], 0
mov byte [rdi + 0x1ce7], 1
cvttss2si eax, xmm2
movd xmm11, eax
cvtdq2ps xmm11, xmm11
call fcn.180002eb0
mov rcx, qword [rsp + 0x58]
mov rdx, rsi
movss xmm1, dword [rsp + 0x34]
subss xmm8, xmm7
mov dword [rcx], eax
subss xmm12, xmm9
movaps xmm0, xmm11
mulss xmm1, xmm11
lea rcx, [rsp + 0x58]
mulss xmm0, dword [rsp + 0x38]
subss xmm8, xmm6
subss xmm12, xmm10
maxss xmm0, xmm8
maxss xmm1, xmm12
addss xmm0, dword [rsi + 0x20]
addss xmm1, dword [rsi + 0x24]
unpcklps xmm0, xmm1
movq r8, xmm0
call fcn.180009250
movss xmm11, dword [0x18003b870]
movss xmm12, dword [rax]
movss xmm6, dword [rax + 4]
ucomiss xmm12, xmm11
mov r14, qword [rsp + 0x130]
movaps xmm10, xmmword [rsp + 0xe0]
movaps xmm9, xmmword [rsp + 0xf0]
movaps xmm8, xmmword [rsp + 0x100]
movaps xmm7, xmmword [rsp + 0x110]
jp 0x18000a3b4
je 0x18000a3e2
test dword [rsi + 0xc], 0x100
mov rcx, qword [0x180044d20]
movss dword [rsi + 0x20], xmm12
movss dword [rsi + 0x24], xmm6
jne 0x18000a3e2
comiss xmm13, dword [rcx + 0x30d4]
jb 0x18000a3e2
mov eax, dword [rcx + 0x1c]
mov dword [rcx + 0x30d4], eax
movaps xmm12, xmmword [rsp + 0xc0]
movaps xmm6, xmmword [rsp + 0x120]
ucomiss xmm14, xmm11
movaps xmm11, xmmword [rsp + 0xd0]
jp 0x18000a404
je 0x18000a449
test dword [rsi + 0xc], 0x100
mov rdx, qword [0x180044d20]
cvttss2si eax, xmm14
movd xmm1, eax
cvttss2si eax, xmm15
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rsi + 0x10], xmm1
movss dword [rsi + 0x14], xmm0
jne 0x18000a449
comiss xmm13, dword [rdx + 0x30d4]
jb 0x18000a449
mov ecx, dword [rdx + 0x1c]
mov dword [rdx + 0x30d4], ecx
movsd xmm0, qword [rsi + 0x20]
movzx eax, byte [rsp + 0x32]
movaps xmm15, xmmword [rsp + 0x90]
movaps xmm14, xmmword [rsp + 0xa0]
movaps xmm13, xmmword [rsp + 0xb0]
movsd qword [rsi + 0x18], xmm0
jmp 0x18000a477
xor al, al
mov rcx, qword [rbp - 0x78]
xor rcx, rsp
call fcn.1800342d0
add rsp, 0x140
pop r15
pop r13
pop rdi
pop rsi
pop rbp
ret