Function at 0x180145e40
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x60]
sub rsp, 0x160
mov r13, qword [r9 + 0x10]
mov r15, rdx
mov r9d, dword [r8 + 0x3c]
mov r11, rcx
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movsd xmm4, qword [r15 + 0x20]
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movss xmm9, dword [0x18023b6e0]
movaps xmmword [rax - 0x78], xmm10
movss xmm10, dword [rbp + 0xb0]
movaps xmmword [rax - 0x88], xmm11
movss xmm11, dword [0x18023af20]
movaps xmmword [rax - 0x98], xmm12
movss xmm12, dword [0x18023ae14]
movaps xmmword [rax - 0xa8], xmm13
movaps xmmword [rax - 0xb8], xmm14
movss xmm14, dword [0x18023af04]
movaps xmmword [rax - 0xc8], xmm15
mov rax, qword [rbp + 0xb8]
mov qword [rbp - 0x78], r8
mov qword [rsp + 0x48], rcx
mov ecx, dword [rax + 0xc]
mov r10d, dword [rax + 4]
mov esi, dword [rax]
mov r14d, dword [rax + 8]
mov dword [rsp + 0x28], ecx
mov rcx, qword [r8 + 0x10]
mov r8d, r9d
imul r8d, r10d
lea eax, [rsi*4]
movsxd rdx, eax
lea eax, [r10 + 1]
mov dword [rsp + 0x50], eax
imul eax, r9d
mov qword [rbp - 0x70], rdx
add r8, rcx
add r8, rdx
add rax, rcx
add rax, rdx
movzx edx, byte [r8 + 3]
movzx r9d, byte [r8 + 7]
add r8, 8
mov qword [rsp + 0x68], r8
movzx r8d, byte [rax + 3]
movzx ecx, byte [rax + 7]
add rax, 8
mov qword [rsp + 0x78], rax
mov eax, dword [r15 + 0x28]
mov dword [rsp + 0x40], eax
mov eax, r9d
sub eax, edx
mov dword [rsp + 0x2c], edx
add eax, eax
mov dword [rsp + 0x20], r9d
sub eax, r8d
mov dword [rsp + 0x24], r8d
add eax, ecx
mov dword [rsp + 0x30], ecx
movd xmm5, eax
mov eax, r8d
cvtdq2ps xmm5, xmm5
sub eax, edx
add eax, eax
sub eax, r9d
add eax, ecx
mulss xmm5, xmm14
movd xmm3, eax
cvtdq2ps xmm3, xmm3
xorps xmm5, xmm9
mulss xmm3, xmm14
mulss xmm5, xmm10
xorps xmm3, xmm9
mulss xmm3, xmm10
movaps xmm1, xmm5
mulss xmm1, xmm5
movaps xmm0, xmm3
mulss xmm0, xmm3
addss xmm1, xmm0
addss xmm1, xmm11
movss xmm8, dword [0x18023aef0]
addss xmm1, xmm12
xorps xmm2, xmm2
movsd qword [rsp + 0x38], xmm4
movaps xmm0, xmm4
xorps xmm13, xmm13
shufps xmm0, xmm0, 0x55
movss xmm2, xmm1
rsqrtss xmm2, xmm2
mulss xmm5, xmm2
mulss xmm3, xmm2
mulss xmm2, dword [rsp + 0x40]
mulss xmm5, xmm4
mulss xmm3, xmm0
addss xmm5, xmm3
addss xmm5, xmm2
mulss xmm5, dword [r11]
minss xmm5, xmm11
maxss xmm5, xmm13
movaps xmm7, xmm5
movaps xmm6, xmm5
mulss xmm5, dword [r15 + 0x18]
mulss xmm7, dword [r15 + 0x10]
mulss xmm6, dword [r15 + 0x14]
addss xmm5, xmm8
movaps xmm0, xmm5
call fcn.1801f62d0
cvttss2si eax, xmm0
xor r12d, r12d
mov edi, r12d
addss xmm6, xmm8
test eax, eax
cmovns edi, eax
mov eax, 0xff
cmp edi, eax
movaps xmm0, xmm6
cmovg edi, eax
call fcn.1801f62d0
cvttss2si eax, xmm0
mov ebx, r12d
addss xmm7, xmm8
test eax, eax
cmovns ebx, eax
mov eax, 0xff
cmp ebx, eax
movaps xmm0, xmm7
cmovg ebx, eax
call fcn.1801f62d0
movss xmm15, dword [0x18023aeb0]
mov ecx, r12d
cvttss2si eax, xmm0
test eax, eax
cmovns ecx, eax
mov eax, 0xff
cmp ecx, eax
cmovg ecx, eax
lea eax, [r14 - 1]
mov r14d, dword [rsp + 0x2c]
or ecx, 0xffffff00
shl ecx, 8
or ecx, ebx
mov dword [rsp + 0x70], eax
shl ecx, 8
or ecx, edi
mov dword [r13], ecx
lea ecx, [rsi + 1]
mov esi, dword [rsp + 0x30]
add r13, 4
mov dword [rsp + 0x74], ecx
cmp ecx, eax
jge 0x18014629a
sub eax, ecx
mov ecx, eax
mov qword [rbp - 0x80], rcx
nop dword [rax]
nop word [rax + rax]
mov edx, dword [rsp + 0x24]
mov ecx, r14d
mov rax, qword [rsp + 0x68]
mov r8d, esi
mov r14d, dword [rsp + 0x20]
xorps xmm2, xmm2
movsd xmm5, qword [r15 + 0x20]
mov dword [rsp + 0x24], esi
movzx r9d, byte [rax + 3]
add rax, 4
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x78]
mov dword [rsp + 0x20], r9d
movsd qword [rsp + 0x38], xmm5
movzx esi, byte [rax + 3]
add rax, 4
mov qword [rsp + 0x78], rax
mov eax, dword [r15 + 0x28]
mov dword [rsp + 0x40], eax
mov eax, r9d
sub eax, ecx
add eax, eax
sub eax, edx
add eax, esi
movd xmm3, eax
mov eax, r8d
sub eax, r14d
cvtdq2ps xmm3, xmm3
add eax, eax
sub eax, r9d
sub eax, ecx
add eax, esi
add eax, edx
mulss xmm3, xmm15
movd xmm4, eax
mov rax, qword [rsp + 0x48]
xorps xmm3, xmm9
cvtdq2ps xmm4, xmm4
mulss xmm3, xmm10
mulss xmm4, xmm8
movaps xmm1, xmm3
mulss xmm1, xmm3
xorps xmm4, xmm9
mulss xmm4, xmm10
movaps xmm0, xmm4
mulss xmm0, xmm4
addss xmm1, xmm0
movaps xmm0, xmm5
shufps xmm0, xmm0, 0x55
addss xmm1, xmm11
addss xmm1, xmm12
movss xmm2, xmm1
rsqrtss xmm2, xmm2
mulss xmm4, xmm2
mulss xmm3, xmm2
mulss xmm2, dword [rsp + 0x40]
mulss xmm4, xmm0
mulss xmm3, xmm5
addss xmm4, xmm3
addss xmm4, xmm2
mulss xmm4, dword [rax]
minss xmm4, xmm11
maxss xmm4, xmm13
movaps xmm7, xmm4
movaps xmm6, xmm4
mulss xmm4, dword [r15 + 0x18]
mulss xmm7, dword [r15 + 0x10]
mulss xmm6, dword [r15 + 0x14]
addss xmm4, xmm8
movaps xmm0, xmm4
call fcn.1801f62d0
cvttss2si eax, xmm0
mov edi, r12d
addss xmm6, xmm8
test eax, eax
cmovns edi, eax
mov eax, 0xff
cmp edi, eax
movaps xmm0, xmm6
cmovg edi, eax
call fcn.1801f62d0
cvttss2si eax, xmm0
mov ebx, r12d
addss xmm7, xmm8
test eax, eax
cmovns ebx, eax
mov eax, 0xff
cmp ebx, eax
movaps xmm0, xmm7
cmovg ebx, eax
call fcn.1801f62d0
cvttss2si eax, xmm0
mov ecx, r12d
test eax, eax
cmovns ecx, eax
mov eax, 0xff
cmp ecx, eax
cmovg ecx, eax
or ecx, 0xffffff00
shl ecx, 8
or ecx, ebx
shl ecx, 8
or ecx, edi
mov dword [r13], ecx
add r13, 4
sub qword [rbp - 0x80], 1
jne 0x180146100
mov eax, dword [r15 + 0x28]
xorps xmm2, xmm2
mov ecx, dword [rsp + 0x24]
movsd xmm5, qword [r15 + 0x20]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x20]
sub eax, r14d
movsd qword [rsp + 0x38], xmm5
add eax, eax
sub eax, ecx
add eax, esi
sub esi, dword [rsp + 0x20]
add esi, esi
sub esi, r14d
add esi, ecx
movd xmm3, eax
mov rax, qword [rsp + 0x48]
cvtdq2ps xmm3, xmm3
movd xmm4, esi
cvtdq2ps xmm4, xmm4
mulss xmm3, xmm14
mulss xmm4, xmm14
xorps xmm3, xmm9
mulss xmm3, xmm10
xorps xmm4, xmm9
mulss xmm4, xmm10
movaps xmm0, xmm3
mulss xmm0, xmm3
movaps xmm1, xmm4
mulss xmm1, xmm4
addss xmm1, xmm0
movaps xmm0, xmm5
shufps xmm0, xmm0, 0x55
addss xmm1, xmm11
addss xmm1, xmm12
movss xmm2, xmm1
rsqrtss xmm2, xmm2
mulss xmm4, xmm2
mulss xmm3, xmm2
mulss xmm2, dword [rsp + 0x40]
mulss xmm4, xmm0
mulss xmm3, xmm5
addss xmm4, xmm3
addss xmm4, xmm2
mulss xmm4, dword [rax]
minss xmm4, xmm11
maxss xmm4, xmm13
movaps xmm7, xmm4
movaps xmm6, xmm4
mulss xmm4, dword [r15 + 0x18]
mulss xmm7, dword [r15 + 0x10]
mulss xmm6, dword [r15 + 0x14]
addss xmm4, xmm8
movaps xmm0, xmm4
call fcn.1801f62d0
cvttss2si eax, xmm0
mov esi, 0xff
mov edi, r12d
addss xmm6, xmm8
test eax, eax
cmovns edi, eax
cmp edi, esi
movaps xmm0, xmm6
cmovg edi, esi
call fcn.1801f62d0
cvttss2si eax, xmm0
mov ebx, r12d
addss xmm7, xmm8
test eax, eax
cmovns ebx, eax
cmp ebx, esi
movaps xmm0, xmm7
cmovg ebx, esi
call fcn.1801f62d0
cvttss2si eax, xmm0
mov ecx, r12d
test eax, eax
cmovns ecx, eax
cmp ecx, esi
cmovg ecx, esi
or ecx, 0xffffff00
mov r10d, dword [rsp + 0x28]
mov r9d, dword [rsp + 0x50]
shl ecx, 8
or ecx, ebx
shl ecx, 8
lea eax, [r10 - 1]
or ecx, edi
mov dword [r13], ecx
add r13, 4
cmp r9d, eax
jge 0x18014692f
movss xmm14, dword [0x18023ae98]
lea r10d, [r9 + 1]
mov dword [rsp + 0x68], r10d
nop dword [rax + rax]
mov rax, qword [rbp - 0x78]
lea r8d, [r9 - 1]
mov r11, qword [rbp - 0x70]
xorps xmm2, xmm2
movsd xmm4, qword [r15 + 0x20]
mov ecx, dword [rax + 0x3c]
mov rdx, qword [rax + 0x10]
mov eax, r10d
imul eax, ecx
imul r8d, ecx
imul r9d, ecx
add rax, rdx
add rax, r11
add r8, rdx
add r8, r11
add r9, rdx
add r9, r11
movzx edx, byte [rax + 3]
movzx r14d, byte [rax + 7]
add rax, 8
movzx ecx, byte [r8 + 3]
movzx r10d, byte [r8 + 7]
add r8, 8
movzx esi, byte [r9 + 7]
mov qword [rbp - 0x68], rax
mov eax, dword [r15 + 0x28]
mov dword [rbp - 0x58], eax
mov eax, esi
mov qword [rbp - 0x80], r8
movzx r8d, byte [r9 + 3]
add r9, 8
sub eax, r8d
mov dword [rsp + 0x24], ecx
add eax, eax
mov dword [rsp + 0x30], r10d
sub eax, edx
mov dword [rsp + 0x2c], r8d
sub eax, ecx
mov qword [rsp + 0x78], r9
add eax, r14d
mov dword [rsp + 0x20], edx
add eax, r10d
movd xmm5, eax
mov eax, edx
cvtdq2ps xmm5, xmm5
sub eax, ecx
add eax, eax
sub eax, r10d
add eax, r14d
mulss xmm5, xmm8
movd xmm3, eax
mov rax, qword [rsp + 0x48]
xorps xmm5, xmm9
mulss xmm5, xmm10
cvtdq2ps xmm3, xmm3
movaps xmm0, xmm5
mulss xmm0, xmm5
mulss xmm3, xmm15
xorps xmm3, xmm9
mulss xmm3, xmm10
movaps xmm1, xmm3
mulss xmm1, xmm3
addss xmm1, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm0, 0x55
addss xmm1, xmm11
addss xmm1, xmm12
movss xmm2, xmm1
rsqrtss xmm2, xmm2
mulss xmm5, xmm2
mulss xmm3, xmm2
mulss xmm2, dword [rbp - 0x58]
mulss xmm5, xmm4
mulss xmm3, xmm0
addss xmm5, xmm3
addss xmm5, xmm2
mulss xmm5, dword [rax]
minss xmm5, xmm11
maxss xmm5, xmm13
movaps xmm7, xmm5
mulss xmm7, dword [r15 + 0x10]
movaps xmm6, xmm5
mulss xmm5, dword [r15 + 0x18]
mulss xmm6, dword [r15 + 0x14]
addss xmm5, xmm8
movaps xmm0, xmm5
call fcn.1801f62d0
cvttss2si eax, xmm0
mov edi, r12d
addss xmm6, xmm8
test eax, eax
cmovns edi, eax
mov eax, 0xff
cmp edi, eax
movaps xmm0, xmm6
cmovg edi, eax
call fcn.1801f62d0
cvttss2si eax, xmm0
mov ebx, r12d
addss xmm7, xmm8
test eax, eax
cmovns ebx, eax
mov eax, 0xff
cmp ebx, eax
movaps xmm0, xmm7
cmovg ebx, eax
call fcn.1801f62d0
cvttss2si eax, xmm0
mov ecx, r12d
test eax, eax
cmovns ecx, eax
mov eax, 0xff
cmp ecx, eax
cmovg ecx, eax
mov eax, dword [rsp + 0x70]
or ecx, 0xffffff00
shl ecx, 8
or ecx, ebx
shl ecx, 8
or ecx, edi
mov dword [r13], ecx
add r13, 4
mov ecx, dword [rsp + 0x74]
cmp ecx, eax
jge 0x1801467aa
sub eax, ecx
mov ecx, eax
mov qword [rsp + 0x38], rcx
nop
mov r8d, dword [rsp + 0x20]
mov r10d, r14d
mov rax, qword [rbp - 0x80]
xorps xmm2, xmm2
mov edx, dword [rsp + 0x24]
mov ecx, dword [rsp + 0x2c]
mov r9d, dword [rsp + 0x30]
movzx r11d, byte [rax + 3]
add rax, 4
movsd xmm5, qword [r15 + 0x20]
mov qword [rbp - 0x80], rax
mov rax, qword [rsp + 0x78]
mov dword [rsp + 0x2c], esi
mov dword [rsp + 0x20], r14d
mov dword [rsp + 0x24], r9d
movzx esi, byte [rax + 3]
add rax, 4
mov qword [rsp + 0x78], rax
mov rax, qword [rbp - 0x68]
mov dword [rsp + 0x30], r11d
movzx r14d, byte [rax + 3]
add rax, 4
mov qword [rbp - 0x68], rax
mov eax, dword [r15 + 0x28]
mov dword [rbp - 0x48], eax
mov eax, esi
sub eax, ecx
add eax, eax
sub eax, r8d
sub eax, edx
add eax, r14d
add eax, r11d
movd xmm3, eax
mov eax, r10d
sub eax, r9d
cvtdq2ps xmm3, xmm3
add eax, eax
sub eax, edx
sub eax, r11d
add eax, r8d
add eax, r14d
mulss xmm3, xmm14
movd xmm4, eax
mov rax, qword [rsp + 0x48]
xorps xmm3, xmm9
cvtdq2ps xmm4, xmm4
mulss xmm3, xmm10
mulss xmm4, xmm14
movaps xmm0, xmm3
mulss xmm0, xmm3
xorps xmm4, xmm9
mulss xmm4, xmm10
movaps xmm1, xmm4
mulss xmm1, xmm4
addss xmm1, xmm0
movaps xmm0, xmm5
shufps xmm0, xmm0, 0x55
addss xmm1, xmm11
addss xmm1, xmm12
movss xmm2, xmm1
rsqrtss xmm2, xmm2
mulss xmm4, xmm2
mulss xmm3, xmm2
mulss xmm2, dword [rbp - 0x48]
mulss xmm4, xmm0
mulss xmm3, xmm5
addss xmm4, xmm3
addss xmm4, xmm2
mulss xmm4, dword [rax]
minss xmm4, xmm11
maxss xmm4, xmm13
movaps xmm7, xmm4
movaps xmm6, xmm4
mulss xmm4, dword [r15 + 0x18]
mulss xmm7, dword [r15 + 0x10]
mulss xmm6, dword [r15 + 0x14]
addss xmm4, xmm8
movaps xmm0, xmm4
call fcn.1801f62d0
cvttss2si eax, xmm0
mov edi, r12d
test eax, eax
addss xmm6, xmm8
cmovns edi, eax
mov eax, 0xff
cmp edi, eax
movaps xmm0, xmm6
cmovg edi, eax
call fcn.1801f62d0
cvttss2si eax, xmm0
mov ebx, r12d
addss xmm7, xmm8
test eax, eax
cmovns ebx, eax
mov eax, 0xff
cmp ebx, eax
movaps xmm0, xmm7
cmovg ebx, eax
call fcn.1801f62d0
cvttss2si eax, xmm0
mov ecx, r12d
test eax, eax
cmovns ecx, eax
mov eax, 0xff
cmp ecx, eax
cmovg ecx, eax
or ecx, 0xffffff00
shl ecx, 8
or ecx, ebx
shl ecx, 8
or ecx, edi
mov dword [r13], ecx
add r13, 4
sub qword [rsp + 0x38], 1
jne 0x1801465f0
sub esi, dword [rsp + 0x2c]
xorps xmm2, xmm2
mov edx, dword [rsp + 0x20]
add esi, esi
mov ecx, dword [rsp + 0x24]
sub esi, edx
movsd xmm5, qword [r15 + 0x20]
sub esi, ecx
mov eax, dword [r15 + 0x28]
add esi, r14d
sub r14d, dword [rsp + 0x30]
add esi, dword [rsp + 0x30]
add r14d, r14d
sub r14d, ecx
mov dword [rsp + 0x60], eax
mov rax, qword [rsp + 0x48]
add r14d, edx
movd xmm3, esi
cvtdq2ps xmm3, xmm3
movd xmm4, r14d
cvtdq2ps xmm4, xmm4
mulss xmm3, xmm8
mulss xmm4, xmm15
xorps xmm3, xmm9
mulss xmm3, xmm10
xorps xmm4, xmm9
mulss xmm4, xmm10
movaps xmm0, xmm3
mulss xmm0, xmm3
movaps xmm1, xmm4
mulss xmm1, xmm4
addss xmm1, xmm0
movaps xmm0, xmm5
shufps xmm0, xmm0, 0x55
addss xmm1, xmm11
addss xmm1, xmm12
movss xmm2, xmm1
rsqrtss xmm2, xmm2
mulss xmm4, xmm2
mulss xmm3, xmm2
mulss xmm2, dword [rsp + 0x60]
mulss xmm4, xmm0
mulss xmm3, xmm5
addss xmm4, xmm3
addss xmm4, xmm2
mulss xmm4, dword [rax]
minss xmm4, xmm11
maxss xmm4, xmm13
movaps xmm7, xmm4
movaps xmm6, xmm4
mulss xmm4, dword [r15 + 0x18]
mulss xmm7, dword [r15 + 0x10]
mulss xmm6, dword [r15 + 0x14]
addss xmm4, xmm8
movaps xmm0, xmm4
call fcn.1801f62d0
cvttss2si eax, xmm0
mov esi, 0xff
mov edi, r12d
addss xmm6, xmm8
test eax, eax
cmovns edi, eax
cmp edi, esi
movaps xmm0, xmm6
cmovg edi, esi
call fcn.1801f62d0
cvttss2si eax, xmm0
mov ebx, r12d
addss xmm7, xmm8
test eax, eax
cmovns ebx, eax
cmp ebx, esi
movaps xmm0, xmm7
cmovg ebx, esi
call fcn.1801f62d0
cvttss2si eax, xmm0
mov ecx, r12d
test eax, eax
cmovns ecx, eax
cmp ecx, esi
cmovg ecx, esi
mov r9d, dword [rsp + 0x50]
or ecx, 0xffffff00
mov r10d, dword [rsp + 0x68]
inc r9d
mov eax, dword [rsp + 0x28]
inc r10d
shl ecx, 8
dec eax
or ecx, ebx
mov dword [rsp + 0x50], r9d
shl ecx, 8
or ecx, edi
mov dword [rsp + 0x68], r10d
mov dword [r13], ecx
add r13, 4
cmp r9d, eax
jl 0x180146410
movss xmm14, dword [0x18023af04]
mov r10d, dword [rsp + 0x28]
mov rdx, qword [rbp - 0x78]
lea eax, [r10 - 1]
movsd xmm6, qword [r15 + 0x20]
lea r8d, [r10 - 2]
xorps xmm3, xmm3
mov ecx, dword [rdx + 0x3c]
mov rdx, qword [rdx + 0x10]
imul eax, ecx
imul r8d, ecx
add rax, rdx
add rax, qword [rbp - 0x70]
add r8, rdx
add r8, qword [rbp - 0x70]
movzx ecx, byte [rax + 3]
movzx esi, byte [rax + 7]
add rax, 8
movzx edx, byte [r8 + 7]
movzx r14d, byte [r8 + 3]
add r8, 8
mov qword [rbp - 0x78], rax
mov eax, dword [r15 + 0x28]
mov dword [rsp + 0x60], eax
mov eax, esi
sub eax, ecx
mov dword [rsp + 0x28], edx
add eax, eax
mov qword [rbp - 0x70], r8
sub eax, r14d
mov dword [rsp + 0x20], ecx
add eax, edx
movd xmm4, eax
mov eax, ecx
sub eax, r14d
cvtdq2ps xmm4, xmm4
add eax, eax
sub eax, edx
add eax, esi
mulss xmm4, xmm14
movd xmm2, eax
mov rax, qword [rsp + 0x48]
cvtdq2ps xmm2, xmm2
xorps xmm4, xmm9
mulss xmm2, xmm14
mulss xmm4, xmm10
xorps xmm2, xmm9
mulss xmm2, xmm10
movaps xmm0, xmm4
mulss xmm0, xmm4
movaps xmm1, xmm2
mulss xmm1, xmm2
addss xmm1, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm0, 0x55
addss xmm1, xmm11
addss xmm1, xmm12
movss xmm3, xmm1
rsqrtss xmm3, xmm3
movaps xmm5, xmm3
movaps xmm1, xmm3
mulss xmm3, dword [rsp + 0x60]
mulss xmm5, xmm4
mulss xmm1, xmm2
mulss xmm5, xmm6
mulss xmm1, xmm0
addss xmm5, xmm1
addss xmm5, xmm3
mulss xmm5, dword [rax]
minss xmm5, xmm11
maxss xmm5, xmm13
movaps xmm7, xmm5
movaps xmm6, xmm5
mulss xmm5, dword [r15 + 0x18]
mulss xmm7, dword [r15 + 0x10]
mulss xmm6, dword [r15 + 0x14]
addss xmm5, xmm8
movaps xmm0, xmm5
call fcn.1801f62d0
cvttss2si eax, xmm0
mov edi, r12d
test eax, eax
cmovns edi, eax
mov eax, 0xff
addss xmm6, xmm8
cmp edi, eax
cmovg edi, eax
movaps xmm0, xmm6
call fcn.1801f62d0
cvttss2si eax, xmm0
mov ebx, r12d
addss xmm7, xmm8
test eax, eax
cmovns ebx, eax
mov eax, 0xff
cmp ebx, eax
movaps xmm0, xmm7
cmovg ebx, eax
call fcn.1801f62d0
cvttss2si eax, xmm0
mov ecx, r12d
test eax, eax
cmovns ecx, eax
mov eax, 0xff
cmp ecx, eax
cmovg ecx, eax
mov eax, dword [rsp + 0x70]
or ecx, 0xffffff00
shl ecx, 8
or ecx, ebx
shl ecx, 8
or ecx, edi
mov dword [r13], ecx
add r13, 4
mov ecx, dword [rsp + 0x74]
cmp ecx, eax
jge 0x180146c87
sub eax, ecx
mov ecx, eax
mov qword [rsp + 0x38], rcx
nop word [rax + rax]
mov edx, dword [rsp + 0x20]
mov ecx, r14d
mov rax, qword [rbp - 0x70]
mov r8d, esi
mov r14d, dword [rsp + 0x28]
xorps xmm3, xmm3
movsd xmm5, qword [r15 + 0x20]
mov dword [rsp + 0x20], esi
movzx r9d, byte [rax + 3]
add rax, 4
mov qword [rbp - 0x70], rax
mov rax, qword [rbp - 0x78]
mov dword [rsp + 0x28], r9d
movzx esi, byte [rax + 3]
add rax, 4
mov qword [rbp - 0x78], rax
mov eax, dword [r15 + 0x28]
mov dword [rsp + 0x60], eax
mov eax, esi
sub eax, edx
add eax, eax
sub eax, ecx
add eax, r9d
movd xmm4, eax
mov eax, r8d
cvtdq2ps xmm4, xmm4
sub eax, r14d
add eax, eax
sub eax, ecx
sub eax, r9d
add eax, edx
mulss xmm4, xmm15
add eax, esi
xorps xmm4, xmm9
movd xmm2, eax
mov rax, qword [rsp + 0x48]
mulss xmm4, xmm10
cvtdq2ps xmm2, xmm2
movaps xmm0, xmm4
mulss xmm0, xmm4
mulss xmm2, xmm8
xorps xmm2, xmm9
mulss xmm2, xmm10
movaps xmm1, xmm2
mulss xmm1, xmm2
addss xmm1, xmm0
movaps xmm0, xmm5
shufps xmm0, xmm0, 0x55
addss xmm1, xmm11
addss xmm1, xmm12
movss xmm3, xmm1
rsqrtss xmm3, xmm3
movaps xmm1, xmm3
mulss xmm1, xmm4
movaps xmm4, xmm3
mulss xmm3, dword [rsp + 0x60]
mulss xmm4, xmm2
mulss xmm1, xmm5
mulss xmm4, xmm0
addss xmm4, xmm1
addss xmm4, xmm3
mulss xmm4, dword [rax]
minss xmm4, xmm11
maxss xmm4, xmm13
movaps xmm7, xmm4
movaps xmm6, xmm4
mulss xmm4, dword [r15 + 0x18]
mulss xmm7, dword [r15 + 0x10]
mulss xmm6, dword [r15 + 0x14]
addss xmm4, xmm8
movaps xmm0, xmm4
call fcn.1801f62d0
cvttss2si eax, xmm0
mov edi, r12d
addss xmm6, xmm8
test eax, eax
cmovns edi, eax
mov eax, 0xff
cmp edi, eax
movaps xmm0, xmm6
cmovg edi, eax
call fcn.1801f62d0
cvttss2si eax, xmm0
mov ebx, r12d
addss xmm7, xmm8
test eax, eax
cmovns ebx, eax
mov eax, 0xff
cmp ebx, eax
movaps xmm0, xmm7
cmovg ebx, eax
call fcn.1801f62d0
cvttss2si eax, xmm0
mov ecx, r12d
test eax, eax
cmovns ecx, eax
mov eax, 0xff
cmp ecx, eax
cmovg ecx, eax
or ecx, 0xffffff00
shl ecx, 8
or ecx, ebx
shl ecx, 8
or ecx, edi
mov dword [r13], ecx
add r13, 4
sub qword [rsp + 0x38], 1
jne 0x180146af0
mov eax, dword [r15 + 0x28]
xorps xmm2, xmm2
mov ecx, dword [rsp + 0x20]
movsd xmm5, qword [r15 + 0x20]
mov dword [rsp + 0x60], eax
mov eax, esi
sub esi, dword [rsp + 0x28]
sub eax, ecx
add eax, eax
add esi, esi
sub eax, r14d
sub esi, r14d
add eax, dword [rsp + 0x28]
add esi, ecx
movd xmm3, eax
mov rax, qword [rsp + 0x48]
cvtdq2ps xmm3, xmm3
movd xmm4, esi
cvtdq2ps xmm4, xmm4
mulss xmm3, xmm14
mulss xmm4, xmm14
xorps xmm3, xmm9
mulss xmm3, xmm10
xorps xmm4, xmm9
mulss xmm4, xmm10
movaps xmm0, xmm3
mulss xmm0, xmm3
movaps xmm1, xmm4
mulss xmm1, xmm4
addss xmm1, xmm0
movaps xmm0, xmm5
shufps xmm0, xmm0, 0x55
addss xmm1, xmm11
addss xmm1, xmm12
movss xmm2, xmm1
rsqrtss xmm2, xmm2
mulss xmm4, xmm2
mulss xmm3, xmm2
mulss xmm2, dword [rsp + 0x60]
mulss xmm4, xmm0
mulss xmm3, xmm5
addss xmm4, xmm3
addss xmm4, xmm2
mulss xmm4, dword [rax]
minss xmm4, xmm11
maxss xmm4, xmm13
movaps xmm7, xmm4
movaps xmm6, xmm4
mulss xmm4, dword [r15 + 0x18]
mulss xmm7, dword [r15 + 0x10]
mulss xmm6, dword [r15 + 0x14]
addss xmm4, xmm8
movaps xmm0, xmm4
call fcn.1801f62d0
cvttss2si eax, xmm0
mov esi, 0xff
mov edi, r12d
addss xmm6, xmm8
test eax, eax
cmovns edi, eax
cmp edi, esi
movaps xmm0, xmm6
cmovg edi, esi
call fcn.1801f62d0
cvttss2si eax, xmm0
mov ebx, r12d
addss xmm7, xmm8
test eax, eax
cmovns ebx, eax
cmp ebx, esi
movaps xmm0, xmm7
cmovg ebx, esi
call fcn.1801f62d0
cvttss2si eax, xmm0
test eax, eax
cmovns r12d, eax
cmp r12d, esi
cmovg r12d, esi
or r12d, 0xffffff00
shl r12d, 8
or r12d, ebx
lea r11, [rsp + 0x160]
shl r12d, 8
mov rbx, qword [r11 + 0x30]
or r12d, edi
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
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 dword [r13], r12d
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret