Function at 0x1401ce500
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
push rsi
push rdi
push r12
sub rsp, 0x440
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
mov rdi, rcx
mov ecx, dword [rcx + 0xac]
movaps xmmword [rax - 0x58], xmm9
movaps xmmword [rax - 0x68], xmm10
movaps xmmword [rax - 0x78], xmm11
movaps xmmword [rax - 0x88], xmm12
movaps xmmword [rax - 0x98], xmm13
movaps xmmword [rax - 0xa8], xmm14
movaps xmmword [rax - 0xb8], xmm15
movaps xmm14, xmm3
movaps xmm11, xmm2
movaps xmm12, xmm1
test ecx, ecx
je 0x1401cfdf2
sub ecx, 1
je 0x1401cf7f1
sub ecx, 1
je 0x1401cf362
sub ecx, 1
je 0x1401cea18
cmp ecx, 1
jne 0x1401cfa97
lea rcx, [rax - 0x278]
call fcn.14024ee30
lea rcx, [rsp + 0x110]
call fcn.14024ee30
lea rcx, [rsp + 0x110]
movss xmm1, dword [0x14030da6c]
call fcn.14024f560
lea rcx, [rsp + 0x110]
movss xmm1, dword [rdi + 0x54]
movss xmm2, dword [rdi + 0x58]
movss xmm3, dword [rdi + 0x5c]
subss xmm1, dword [rdi + 0x48]
subss xmm2, dword [rdi + 0x4c]
subss xmm3, dword [rdi + 0x50]
mulss xmm1, xmm12
mulss xmm2, xmm12
mulss xmm3, xmm12
addss xmm1, dword [rdi + 0x48]
addss xmm2, dword [rdi + 0x4c]
addss xmm3, dword [rdi + 0x50]
movss dword [rsp + 0x60], xmm1
movss dword [rsp + 0x64], xmm2
movss dword [rsp + 0x68], xmm3
call fcn.14024f800
lea r8, [rsp + 0x110]
lea rdx, [rsp + 0x1e0]
lea rcx, [rsp + 0x110]
call fcn.14024ee80
lea rcx, [rsp + 0x160]
call fcn.14024ee30
lea rcx, [rsp + 0x160]
movss xmm6, dword [0x1403392e0]
movss xmm3, dword [rdi + 0x6c]
movss xmm2, dword [rdi + 0x68]
xorps xmm3, xmm6
xorps xmm2, xmm6
movss xmm1, dword [rdi + 0x64]
xorps xmm1, xmm6
call fcn.14024f800
lea r8, [rsp + 0x160]
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x160]
call fcn.14024ee80
lea rax, [rsp + 0xc0]
xor ebp, ebp
movaps xmm1, xmm14
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x150]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x360]
lea r9, [rsp + 0x160]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x270]
lea r8, [rsp + 0x1e0]
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.1401ce060
lea rdx, [rsp + 0x160]
lea rcx, [rsp + 0x320]
call fcn.14024f1f0
lea r8, [rsp + 0x150]
lea rdx, [rsp + 0x320]
lea rcx, [rsp + 0x90]
call fcn.14024f820
lea r8, [rdi + 0xc8]
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x90]
call fcn.140250750
movss xmm1, dword [rsp + 0x98]
movd xmm0, dword [rsp + 0x94]
xorps xmm1, xmm6
unpcklps xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
call sub.MSVCR90.dll_atan2
movsd xmm7, qword [0x140339bb0]
lea rdx, [rdi + 0xe8]
lea rcx, [rsp + 0x460]
mulsd xmm0, xmm7
cvtsd2ss xmm8, xmm0
call fcn.140250620
movss xmm0, dword [rdi + 0xc0]
addss xmm11, dword [rdi + 0xf8]
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x30], rax
movss xmm3, dword [rdi + 0xc4]
movss xmm2, dword [rsp + 0x460]
movss xmm1, dword [rdi + 0xcc]
movss dword [rsp + 0x28], xmm11
movss dword [rsp + 0x20], xmm0
movss xmm0, dword [rdi + 0xd0]
call fcn.14024ec10
test eax, eax
je 0x1401cfa97
movss xmm0, dword [rsp + 0x90]
movss xmm1, dword [rsp + 0xb0]
lea r8, [rdi + 0xc8]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x50]
movss dword [rsp + 0x50], xmm0
movss xmm0, dword [rsp + 0xb4]
movss dword [rsp + 0x58], xmm1
movss dword [rsp + 0x54], xmm0
call fcn.140250750
movss xmm1, dword [rsp + 0x58]
movd xmm0, dword [rsp + 0x54]
cvtps2pd xmm0, xmm0
xorps xmm1, xmm6
unpcklps xmm1, xmm1
cvtps2pd xmm1, xmm1
call sub.MSVCR90.dll_atan2
unpcklps xmm8, xmm8
lea rcx, [rsp + 0x270]
cvtps2pd xmm1, xmm8
mulsd xmm0, xmm7
subsd xmm0, xmm1
cvtsd2ss xmm1, xmm0
xorps xmm1, xmm6
call fcn.14024f2c0
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x220]
call fcn.14024f1f0
lea rcx, [rsp + 0x70]
xorps xmm1, xmm1
movss xmm3, dword [rdi + 0xd4]
movaps xmm2, xmm1
call fcn.140250780
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x270]
lea rcx, [rsp + 0x70]
call fcn.14024f820
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x220]
lea rcx, [rsp + 0xd0]
call fcn.14024f820
movss xmm1, dword [rsp + 0xd8]
movd xmm0, dword [rsp + 0xd4]
xorps xmm1, xmm6
unpcklps xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
call sub.MSVCR90.dll_atan2
movss xmm3, dword [rsp + 0x68]
movss xmm2, dword [rsp + 0x64]
lea rcx, [rsp + 0xa0]
movss xmm1, dword [rsp + 0x70]
mulsd xmm0, xmm7
cvtsd2ss xmm8, xmm0
call fcn.140250780
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0xe0]
call fcn.140250870
lea rax, [rsp + 0xb0]
movss xmm0, dword [rsp + 0xe0]
movss xmm1, dword [rsp + 0xa4]
addss xmm14, dword [rdi + 0xe4]
mov qword [rsp + 0x30], rax
movaps xmm2, xmm14
movss xmm3, dword [rsp + 0xa8]
movss dword [rsp + 0x28], xmm0
movss xmm0, dword [rdi + 0xe0]
movss dword [rsp + 0x20], xmm1
movss xmm1, dword [rdi + 0xdc]
call fcn.14024ec10
test eax, eax
je 0x1401cfa97
movss xmm0, dword [rsp + 0x70]
movss dword [rsp + 0x80], xmm0
cmp eax, 1
jne 0x1401ce9a3
movss xmm0, dword [rsp + 0xb4]
movss xmm1, dword [rsp + 0xb0]
jmp 0x1401ce9b5
movss xmm0, dword [rsp + 0xbc]
movss xmm1, dword [rsp + 0xb8]
lea r8, [rsp + 0x80]
lea rdx, [rsp + 0x220]
lea rcx, [rsp + 0xe8]
movss dword [rsp + 0x88], xmm1
movss dword [rsp + 0x84], xmm0
call fcn.14024f820
movss xmm1, dword [rsp + 0xf0]
movd xmm0, dword [rsp + 0xec]
xorps xmm1, xmm6
unpcklps xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
call sub.MSVCR90.dll_atan2
unpcklps xmm8, xmm8
cvtps2pd xmm1, xmm8
mulsd xmm0, xmm7
jmp 0x1401cfdd9
lea rcx, [rsp + 0x1e0]
call fcn.14024ee30
lea rcx, [rsp + 0x110]
call fcn.14024ee30
lea rcx, [rsp + 0x110]
movss xmm1, dword [0x14030da6c]
call fcn.14024f560
lea rcx, [rsp + 0x110]
movss xmm1, dword [rdi + 0x54]
movss xmm2, dword [rdi + 0x58]
movss xmm3, dword [rdi + 0x5c]
subss xmm1, dword [rdi + 0x48]
subss xmm2, dword [rdi + 0x4c]
subss xmm3, dword [rdi + 0x50]
mulss xmm1, xmm12
mulss xmm2, xmm12
mulss xmm3, xmm12
addss xmm1, dword [rdi + 0x48]
addss xmm2, dword [rdi + 0x4c]
addss xmm3, dword [rdi + 0x50]
movss dword [rsp + 0x60], xmm1
movss dword [rsp + 0x64], xmm2
movss dword [rsp + 0x68], xmm3
call fcn.14024f800
lea r8, [rsp + 0x110]
lea rdx, [rsp + 0x1e0]
lea rcx, [rsp + 0x110]
call fcn.14024ee80
lea rcx, [rsp + 0x160]
call fcn.14024ee30
lea rcx, [rsp + 0x160]
movss xmm9, dword [0x1403392e0]
movss xmm3, dword [rdi + 0x6c]
movss xmm2, dword [rdi + 0x68]
xorps xmm3, xmm9
xorps xmm2, xmm9
movss xmm1, dword [rdi + 0x64]
xorps xmm1, xmm9
call fcn.14024f800
lea r8, [rsp + 0x160]
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x160]
call fcn.14024ee80
lea rax, [rsp + 0x90]
xor ebp, ebp
movaps xmm1, xmm14
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x360]
lea r9, [rsp + 0x160]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x270]
lea r8, [rsp + 0x1e0]
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.1401ce060
lea r8, [rsp + 0x90]
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x460]
call fcn.140250870
lea rdx, [rsp + 0x270]
lea rcx, [rsp + 0x320]
call fcn.14024f1f0
lea r8, [rsp + 0x80]
lea rdx, [rsp + 0x320]
lea rcx, [rsp + 0x1a0]
call fcn.14024f820
movss xmm1, dword [rsp + 0x1a8]
movd xmm0, dword [rsp + 0x1a4]
xorps xmm1, xmm9
unpcklps xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
call sub.MSVCR90.dll_atan2
movsd xmm10, qword [0x140339bb0]
lea rdx, [rsp + 0x110]
mulsd xmm0, xmm10
cvtsd2ss xmm7, xmm0
movss dword [rsp + 0xe0], xmm7
lea rcx, [rsp + 0x220]
call fcn.14024f1f0
lea r8, [rdi + 0xd8]
lea rdx, [rsp + 0x160]
lea rcx, [rsp + 0xd0]
call fcn.14024f820
lea r8, [rsp + 0xd0]
lea rdx, [rsp + 0x220]
lea rcx, [rsp + 0x1c8]
call fcn.14024f820
movss xmm1, dword [rsp + 0x1d0]
movd xmm0, dword [rsp + 0x1cc]
xorps xmm1, xmm9
unpcklps xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
call sub.MSVCR90.dll_atan2
lea r8, [rsp + 0x90]
lea rdx, [rsp + 0x220]
lea rcx, [rsp + 0x310]
mulsd xmm0, xmm10
cvtsd2ss xmm15, xmm0
call fcn.14024f820
lea esi, [rbp + 1]
movss xmm0, dword [rsp + 0x460]
xorps xmm6, xmm6
addss xmm11, dword [rdi + 0xf8]
movsd xmm13, qword [0x14030c3a0]
movss dword [rsp + 0x2b0], xmm0
movss dword [rsp + 0x2b4], xmm6
nop dword [rax + rax]
lea r8, [rsp + 0x90]
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x100]
call fcn.140250750
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0x100]
call fcn.1402506a0
cmp esi, 2
jge 0x1401cf02b
lea r8, [rsp + 0x100]
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0xc0]
movaps xmm3, xmm11
call fcn.1402507c0
lea r8, [rsp + 0xc0]
lea rdx, [rsp + 0x320]
lea rcx, [rsp + 0x1b0]
call fcn.14024f820
movss xmm1, dword [rsp + 0x1b8]
movd xmm0, dword [rsp + 0x1b4]
xorps xmm1, xmm9
unpcklps xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
call sub.MSVCR90.dll_atan2
unpcklps xmm7, xmm7
lea rcx, [rsp + 0x270]
cvtps2pd xmm1, xmm7
mulsd xmm0, xmm10
subsd xmm0, xmm1
cvtsd2ss xmm1, xmm0
xorps xmm1, xmm9
call fcn.14024f2c0
movss xmm3, dword [rdi + 0xd4]
lea rcx, [rsp + 0xa0]
movaps xmm2, xmm6
movaps xmm1, xmm6
call fcn.140250780
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x270]
lea rcx, [rsp + 0xa0]
call fcn.14024f820
lea rcx, [rsp + 0xe8]
movss xmm3, dword [rsp + 0x68]
movss xmm2, dword [rsp + 0x64]
movss xmm1, dword [rdi + 0xd8]
call fcn.140250780
lea r8, [rsp + 0xd0]
lea rdx, [rsp + 0xe8]
lea rcx, [rsp + 0xf8]
call fcn.140250870
lea rax, [rsp + 0xb0]
movss xmm0, dword [rsp + 0xf8]
movss xmm1, dword [rsp + 0xec]
movss xmm3, dword [rsp + 0xf0]
mov qword [rsp + 0x30], rax
movaps xmm2, xmm14
addss xmm2, dword [rdi + 0xe4]
movss dword [rsp + 0x28], xmm0
movss xmm0, dword [rsp + 0xa8]
movss dword [rsp + 0x20], xmm1
movss xmm1, dword [rsp + 0xa4]
call fcn.14024ec10
test eax, eax
je 0x1401cfa97
movss xmm0, dword [rsp + 0xd0]
movss xmm1, dword [rsp + 0xb0]
movss dword [rsp + 0x70], xmm0
cmp eax, 1
jne 0x1401cee91
movss xmm0, dword [rsp + 0xb4]
jmp 0x1401cefc7
movss dword [rsp + 0x50], xmm0
movss xmm0, dword [rsp + 0xb4]
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x220]
lea rcx, [rsp + 0x50]
movss dword [rsp + 0x54], xmm0
movss dword [rsp + 0x58], xmm1
call fcn.14024f820
movss xmm1, dword [rsp + 0x58]
movd xmm0, dword [rsp + 0x54]
cvtps2pd xmm0, xmm0
xorps xmm1, xmm9
unpcklps xmm1, xmm1
cvtps2pd xmm1, xmm1
call sub.MSVCR90.dll_atan2
movss xmm1, dword [rsp + 0xbc]
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x220]
lea rcx, [rsp + 0x50]
movss dword [rsp + 0x54], xmm1
mulsd xmm0, xmm10
cvtsd2ss xmm8, xmm0
movss xmm0, dword [rsp + 0x70]
movss dword [rsp + 0x50], xmm0
movss xmm0, dword [rsp + 0xb8]
movss dword [rsp + 0x58], xmm0
call fcn.14024f820
movss xmm1, dword [rsp + 0x58]
movd xmm0, dword [rsp + 0x54]
cvtps2pd xmm0, xmm0
xorps xmm1, xmm9
unpcklps xmm1, xmm1
cvtps2pd xmm1, xmm1
call sub.MSVCR90.dll_atan2
unpcklps xmm15, xmm15
unpcklps xmm8, xmm8
mulsd xmm0, xmm10
cvtps2pd xmm7, xmm15
movapd xmm1, xmm7
cvtsd2ss xmm6, xmm0
cvtps2pd xmm0, xmm8
call fcn.140250900
unpcklps xmm6, xmm6
movapd xmm8, xmm0
cvtps2pd xmm0, xmm6
movapd xmm1, xmm7
andpd xmm8, xmmword [0x140339230]
call fcn.140250900
movss xmm7, dword [rsp + 0xe0]
andpd xmm0, xmmword [0x140339230]
comisd xmm0, xmm8
jbe 0x1401cefb5
movss xmm0, dword [rsp + 0xb4]
movss xmm1, dword [rsp + 0xb0]
jmp 0x1401cefc7
movss xmm0, dword [rsp + 0xbc]
movss xmm1, dword [rsp + 0xb8]
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x220]
lea rcx, [rsp + 0x150]
movss dword [rsp + 0x74], xmm0
movss dword [rsp + 0x78], xmm1
call fcn.14024f820
movss xmm1, dword [rsp + 0x158]
movd xmm0, dword [rsp + 0x154]
xorps xmm1, xmm9
unpcklps xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
call sub.MSVCR90.dll_atan2
unpcklps xmm15, xmm15
cvtps2pd xmm1, xmm15
mulsd xmm0, xmm10
subsd xmm0, xmm1
cvtsd2ss xmm6, xmm0
jmp 0x1401cf105
lea r8d, [rsi - 1]
mov edx, ebp
mov rcx, rbp
cmp r8d, 4
jl 0x1401cf09f
nop word [rax + rax]
movss xmm0, dword [rsp + rcx*8 + 0x2b8]
comiss xmm0, xmm11
ja 0x1401cf0bd
movss xmm0, dword [rsp + rcx*8 + 0x2c0]
inc rcx
comiss xmm0, xmm11
ja 0x1401cf35b
movss xmm0, dword [rsp + rcx*8 + 0x2c0]
inc rcx
comiss xmm0, xmm11
ja 0x1401cf353
movss xmm0, dword [rsp + rcx*8 + 0x2c0]
inc rcx
comiss xmm0, xmm11
ja 0x1401cf34b
lea eax, [r8 - 3]
add edx, 4
inc rcx
cmp edx, eax
jl 0x1401cf040
cmp edx, r8d
jge 0x1401cf0c0
movss xmm0, dword [rsp + rcx*8 + 0x2b8]
comiss xmm0, xmm11
ja 0x1401cf0bd
inc edx
inc rcx
cmp edx, r8d
jl 0x1401cf0a4
cmp edx, r8d
jne 0x1401cf0c5
dec rcx
movss xmm1, dword [rsp + rcx*8 + 0x2b0]
movss xmm2, dword [rsp + rcx*8 + 0x2b4]
movss xmm0, dword [rsp + rcx*8 + 0x2b8]
movaps xmm6, xmm11
subss xmm6, xmm1
subss xmm0, xmm1
movss xmm1, dword [rsp + rcx*8 + 0x2bc]
divss xmm6, xmm0
subss xmm1, xmm2
mulss xmm6, xmm1
addss xmm6, xmm2
lea rcx, [rsp + 0x110]
call fcn.14024ee30
lea rcx, [rsp + 0x110]
movaps xmm1, xmm6
xorps xmm1, xmm9
call fcn.14024f560
lea rcx, [rsp + 0x110]
movss xmm1, dword [rdi + 0x54]
movss xmm2, dword [rdi + 0x58]
movss xmm3, dword [rdi + 0x5c]
subss xmm1, dword [rdi + 0x48]
subss xmm2, dword [rdi + 0x4c]
subss xmm3, dword [rdi + 0x50]
mulss xmm1, xmm12
mulss xmm2, xmm12
mulss xmm3, xmm12
addss xmm1, dword [rdi + 0x48]
addss xmm2, dword [rdi + 0x4c]
addss xmm3, dword [rdi + 0x50]
movss dword [rsp + 0x60], xmm1
movss dword [rsp + 0x64], xmm2
movss dword [rsp + 0x68], xmm3
call fcn.14024f800
lea r8, [rsp + 0x110]
lea rdx, [rsp + 0x1e0]
lea rcx, [rsp + 0x110]
call fcn.14024ee80
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x220]
call fcn.14024f1f0
lea rcx, [rsp + 0x160]
call fcn.14024ee30
lea rcx, [rsp + 0x160]
movss xmm3, dword [rdi + 0x6c]
movss xmm2, dword [rdi + 0x68]
movss xmm1, dword [rdi + 0x64]
xorps xmm3, xmm9
xorps xmm2, xmm9
xorps xmm1, xmm9
call fcn.14024f800
lea r8, [rsp + 0x160]
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x160]
call fcn.14024ee80
mov qword [rsp + 0x40], rbp
lea rax, [rsp + 0x90]
movaps xmm1, xmm14
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x80]
lea r9, [rsp + 0x160]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x360]
lea r8, [rsp + 0x1e0]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x270]
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.1401ce060
lea r8, [rsp + 0x90]
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x460]
call fcn.140250870
mov r11d, ebp
mov rbx, rbp
movss xmm1, dword [rsp + 0x460]
movsxd rax, esi
comiss xmm1, dword [rsp + 0x2b0]
jbe 0x1401cf2ca
inc rbx
inc r11d
cmp rbx, rax
je 0x1401cf2a8
comiss xmm1, dword [rsp + rbx*8 + 0x2b0]
ja 0x1401cf293
test r11d, r11d
je 0x1401cf2ca
movaps xmm0, xmm1
subss xmm0, dword [rsp + rbx*8 + 0x2a8]
unpcklps xmm0, xmm0
cvtps2pd xmm0, xmm0
comisd xmm0, xmm13
jbe 0x1401cf7e0
cmp r11d, esi
jge 0x1401cf2ed
movss xmm0, dword [rsp + rbx*8 + 0x2b0]
subss xmm0, xmm1
unpcklps xmm0, xmm0
cvtps2pd xmm0, xmm0
comisd xmm0, xmm13
jbe 0x1401cf7e0
mov eax, esi
sub eax, r11d
add eax, eax
movsxd r8, eax
movsxd rax, r11d
lea rdx, [rsp + rax*8 + 0x2b0]
lea eax, [r11 + 1]
shl r8, 2
movsxd rcx, eax
lea rcx, [rsp + rcx*8 + 0x2b0]
call sub.MSVCR90.dll_memmove
inc esi
lea eax, [rsi - 1]
movss xmm0, dword [rsp + 0x460]
movss dword [rsp + rbx*8 + 0x2b4], xmm6
cmp eax, 0xa
movss dword [rsp + rbx*8 + 0x2b0], xmm0
jge 0x1401cf7e0
xorps xmm6, xmm6
jmp 0x1401cecd0
add edx, 3
jmp 0x1401cf0bd
add edx, 2
jmp 0x1401cf0bd
inc edx
jmp 0x1401cf0bd
xorps xmm8, xmm8
lea rcx, [rsp + 0x1e0]
movaps xmm6, xmm8
call fcn.14024ee30
lea rcx, [rsp + 0x110]
call fcn.14024ee30
lea rcx, [rsp + 0x110]
movss xmm1, dword [0x14030da6c]
call fcn.14024f560
lea rcx, [rsp + 0x110]
movss xmm1, dword [rdi + 0x54]
movss xmm2, dword [rdi + 0x58]
movss xmm3, dword [rdi + 0x5c]
subss xmm1, dword [rdi + 0x48]
subss xmm2, dword [rdi + 0x4c]
subss xmm3, dword [rdi + 0x50]
mulss xmm1, xmm12
mulss xmm2, xmm12
mulss xmm3, xmm12
addss xmm1, dword [rdi + 0x48]
addss xmm2, dword [rdi + 0x4c]
addss xmm3, dword [rdi + 0x50]
movss dword [rsp + 0x60], xmm1
movss dword [rsp + 0x64], xmm2
movss dword [rsp + 0x68], xmm3
call fcn.14024f800
lea r8, [rsp + 0x110]
lea rdx, [rsp + 0x1e0]
lea rcx, [rsp + 0x110]
call fcn.14024ee80
lea rcx, [rsp + 0x160]
call fcn.14024ee30
lea rcx, [rsp + 0x160]
movss xmm7, dword [0x1403392e0]
movss xmm3, dword [rdi + 0x6c]
movss xmm2, dword [rdi + 0x68]
xorps xmm3, xmm7
xorps xmm2, xmm7
movss xmm1, dword [rdi + 0x64]
xorps xmm1, xmm7
call fcn.14024f800
lea r8, [rsp + 0x160]
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x160]
call fcn.14024ee80
lea rax, [rsp + 0x100]
xor ebp, ebp
movaps xmm1, xmm14
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x360]
lea r9, [rsp + 0x160]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x220]
lea r8, [rsp + 0x1e0]
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.1401ce060
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x270]
call fcn.14024f1f0
lea r8, [rdi + 0xc8]
lea rdx, [rsp + 0x160]
lea rcx, [rsp + 0x80]
call fcn.14024f820
lea r8, [rsp + 0x80]
lea rdx, [rsp + 0x270]
lea rcx, [rsp + 0x90]
call fcn.14024f820
movss xmm1, dword [rsp + 0x98]
movd xmm0, dword [rsp + 0x94]
xorps xmm1, xmm7
unpcklps xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
call sub.MSVCR90.dll_atan2
lea ebx, [rbp + 0xa]
mulsd xmm0, qword [0x140339bb0]
cvtsd2ss xmm9, xmm0
movsd xmm10, qword [0x140339538]
nop dword [rax]
lea r8, [rsp + 0x100]
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0xd0]
call fcn.140250750
lea rdx, [rsp + 0xd0]
lea rcx, [rsp + 0xd0]
call fcn.1402506a0
lea r8, [rsp + 0xd0]
lea rdx, [rsp + 0x100]
movaps xmm3, xmm11
addss xmm3, dword [rdi + 0xf8]
lea rcx, [rsp + 0xc0]
call fcn.1402507c0
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0xc0]
lea rcx, [rsp + 0xe8]
call fcn.140250750
lea rcx, [rsp + 0x220]
movss xmm3, dword [rsp + 0xf0]
movss xmm2, dword [rsp + 0xec]
movss xmm1, dword [rsp + 0xe8]
call fcn.14024f800
lea rcx, [rsp + 0x80]
movaps xmm3, xmm8
movaps xmm2, xmm8
movaps xmm1, xmm8
call fcn.140250780
lea r8, [rsp + 0x80]
lea rdx, [rsp + 0x220]
lea rcx, [rsp + 0x80]
call fcn.14024f820
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x270]
call fcn.14024f1f0
lea r8, [rsp + 0x80]
lea rdx, [rsp + 0x270]
lea rcx, [rsp + 0x90]
call fcn.14024f820
movss xmm1, dword [rsp + 0x98]
movd xmm0, dword [rsp + 0x94]
unpcklps xmm6, xmm6
xorps xmm1, xmm7
cvtps2pd xmm6, xmm6
unpcklps xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
call sub.MSVCR90.dll_atan2
unpcklps xmm9, xmm9
lea rcx, [rsp + 0x110]
cvtps2pd xmm1, xmm9
mulsd xmm0, xmm10
addsd xmm0, xmm1
subsd xmm6, xmm0
cvtsd2ss xmm6, xmm6
call fcn.14024ee30
movaps xmm1, xmm6
lea rcx, [rsp + 0x110]
xorps xmm1, xmm7
call fcn.14024f560
lea rcx, [rsp + 0x110]
movss xmm1, dword [rdi + 0x54]
movss xmm2, dword [rdi + 0x58]
movss xmm3, dword [rdi + 0x5c]
subss xmm1, dword [rdi + 0x48]
subss xmm2, dword [rdi + 0x4c]
subss xmm3, dword [rdi + 0x50]
mulss xmm1, xmm12
mulss xmm2, xmm12
mulss xmm3, xmm12
addss xmm1, dword [rdi + 0x48]
addss xmm2, dword [rdi + 0x4c]
addss xmm3, dword [rdi + 0x50]
movss dword [rsp + 0x60], xmm1
movss dword [rsp + 0x64], xmm2
movss dword [rsp + 0x68], xmm3
call fcn.14024f800
lea r8, [rsp + 0x110]
lea rdx, [rsp + 0x1e0]
lea rcx, [rsp + 0x110]
call fcn.14024ee80
lea rcx, [rsp + 0x160]
call fcn.14024ee30
movss xmm3, dword [rdi + 0x6c]
movss xmm2, dword [rdi + 0x68]
lea rcx, [rsp + 0x160]
movss xmm1, dword [rdi + 0x64]
xorps xmm3, xmm7
xorps xmm2, xmm7
xorps xmm1, xmm7
call fcn.14024f800
lea r8, [rsp + 0x160]
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x160]
call fcn.14024ee80
mov qword [rsp + 0x40], rbp
lea rax, [rsp + 0x100]
movaps xmm1, xmm14
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0xa0]
lea r9, [rsp + 0x160]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x360]
lea r8, [rsp + 0x1e0]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x220]
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.1401ce060
sub rbx, 1
jne 0x1401cf550
mov rax, qword [rsp + 0x480]
movss dword [rax], xmm6
jmp 0x1401cffcc
lea rcx, [rsp + 0x320]
call fcn.14024ee30
lea rcx, [rsp + 0x110]
call fcn.14024ee30
lea rcx, [rsp + 0x110]
movss xmm1, dword [0x14030da6c]
call fcn.14024f560
lea rcx, [rsp + 0x110]
movss xmm1, dword [rdi + 0x54]
movss xmm2, dword [rdi + 0x58]
movss xmm3, dword [rdi + 0x5c]
subss xmm1, dword [rdi + 0x48]
subss xmm2, dword [rdi + 0x4c]
subss xmm3, dword [rdi + 0x50]
mulss xmm1, xmm12
mulss xmm2, xmm12
mulss xmm3, xmm12
addss xmm1, dword [rdi + 0x48]
addss xmm2, dword [rdi + 0x4c]
addss xmm3, dword [rdi + 0x50]
movss dword [rsp + 0x60], xmm1
movss dword [rsp + 0x64], xmm2
movss dword [rsp + 0x68], xmm3
call fcn.14024f800
lea r8, [rsp + 0x110]
lea rdx, [rsp + 0x320]
lea rcx, [rsp + 0x110]
call fcn.14024ee80
lea rcx, [rsp + 0x160]
call fcn.14024ee30
lea rcx, [rsp + 0x160]
movss xmm10, dword [0x1403392e0]
movss xmm3, dword [rdi + 0x6c]
movss xmm2, dword [rdi + 0x68]
xorps xmm3, xmm10
xorps xmm2, xmm10
movss xmm1, dword [rdi + 0x64]
xorps xmm1, xmm10
call fcn.14024f800
lea r8, [rsp + 0x160]
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x160]
call fcn.14024ee80
lea rax, [rsp + 0x310]
xor ebp, ebp
movaps xmm1, xmm14
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x1c8]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x360]
lea r9, [rsp + 0x160]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x270]
lea r8, [rsp + 0x320]
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.1401ce060
lea rdx, [rsp + 0x270]
lea rcx, [rsp + 0x220]
call fcn.14024f1f0
lea r8, [rsp + 0x1c8]
lea rdx, [rsp + 0x220]
lea rcx, [rsp + 0x150]
call fcn.14024f820
movss xmm1, dword [rsp + 0x158]
movd xmm0, dword [rsp + 0x154]
xorps xmm1, xmm10
unpcklps xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
call sub.MSVCR90.dll_atan2
movsd xmm12, qword [0x140339bb0]
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x1e0]
mulsd xmm0, xmm12
cvtsd2ss xmm6, xmm0
call fcn.14024f1f0
lea r8, [rdi + 0xd8]
lea rdx, [rsp + 0x160]
lea rcx, [rsp + 0xe8]
call fcn.14024f820
lea r8, [rsp + 0xe8]
lea rdx, [rsp + 0x1e0]
lea rcx, [rsp + 0x1b0]
call fcn.14024f820
movss xmm1, dword [rsp + 0x1b8]
movd xmm0, dword [rsp + 0x1b4]
xorps xmm1, xmm10
unpcklps xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
call sub.MSVCR90.dll_atan2
lea rdx, [rdi + 0xe8]
lea rcx, [rsp + 0x460]
mulsd xmm0, xmm12
cvtsd2ss xmm13, xmm0
call fcn.140250620
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x30], rax
movss xmm0, dword [rdi + 0xb4]
addss xmm11, dword [rdi + 0xf8]
movss xmm3, dword [rdi + 0xb8]
movss xmm2, dword [rsp + 0x460]
movss xmm1, dword [rdi + 0xcc]
movss dword [rsp + 0x28], xmm11
movss dword [rsp + 0x20], xmm0
movss xmm0, dword [rdi + 0xd0]
call fcn.14024ec10
test eax, eax
jne 0x1401cfaa1
mov eax, 1
jmp 0x1401cffce
movss xmm0, dword [rsp + 0x1c8]
movss dword [rsp + 0x80], xmm0
cmp eax, 1
jne 0x1401cfacc
movss xmm0, dword [rsp + 0xc4]
movss xmm1, dword [rsp + 0xc0]
jmp 0x1401cfade
movss xmm0, dword [rsp + 0xcc]
movss xmm1, dword [rsp + 0xc8]
lea r8, [rsp + 0x80]
lea rdx, [rsp + 0x220]
lea rcx, [rsp + 0x1a0]
movss dword [rsp + 0x88], xmm1
movss dword [rsp + 0x84], xmm0
call fcn.14024f820
movss xmm1, dword [rsp + 0x1a8]
movd xmm0, dword [rsp + 0x1a4]
xorps xmm1, xmm10
unpcklps xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
call sub.MSVCR90.dll_atan2
unpcklps xmm6, xmm6
lea rcx, [rsp + 0x270]
cvtps2pd xmm1, xmm6
mulsd xmm0, xmm12
subsd xmm0, xmm1
cvtsd2ss xmm1, xmm0
xorps xmm1, xmm10
call fcn.14024f2c0
xorps xmm1, xmm1
movss xmm3, dword [rdi + 0xd4]
lea rcx, [rsp + 0xa0]
movaps xmm2, xmm1
call fcn.140250780
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x270]
lea rcx, [rsp + 0xa0]
call fcn.14024f820
lea rcx, [rsp + 0xd0]
movss xmm3, dword [rsp + 0x68]
movss xmm2, dword [rsp + 0x64]
movss xmm1, dword [rdi + 0xd8]
call fcn.140250780
lea r8, [rsp + 0xe8]
lea rdx, [rsp + 0xd0]
lea rcx, [rsp + 0xf8]
call fcn.140250870
lea rax, [rsp + 0xc0]
movss xmm0, dword [rsp + 0xf8]
movss xmm1, dword [rsp + 0xd4]
addss xmm14, dword [rdi + 0xe4]
mov qword [rsp + 0x30], rax
movaps xmm2, xmm14
movss xmm3, dword [rsp + 0xd8]
movss dword [rsp + 0x28], xmm0
movss xmm0, dword [rsp + 0xa8]
movss dword [rsp + 0x20], xmm1
movss xmm1, dword [rsp + 0xa4]
call fcn.14024ec10
test eax, eax
je 0x1401cfa97
movss xmm0, dword [rsp + 0xe8]
movss xmm1, dword [rsp + 0xc0]
movss dword [rsp + 0x70], xmm0
cmp eax, 1
jne 0x1401cfc56
movss xmm0, dword [rsp + 0xc4]
jmp 0x1401cfd82
movss dword [rsp + 0x50], xmm0
movss xmm0, dword [rsp + 0xc4]
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x1e0]
lea rcx, [rsp + 0x50]
movss dword [rsp + 0x54], xmm0
movss dword [rsp + 0x58], xmm1
call fcn.14024f820
movss xmm1, dword [rsp + 0x58]
movd xmm0, dword [rsp + 0x54]
cvtps2pd xmm0, xmm0
xorps xmm1, xmm10
unpcklps xmm1, xmm1
cvtps2pd xmm1, xmm1
call sub.MSVCR90.dll_atan2
movss xmm1, dword [rsp + 0xcc]
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x1e0]
lea rcx, [rsp + 0x50]
movss dword [rsp + 0x54], xmm1
mulsd xmm0, xmm12
cvtsd2ss xmm6, xmm0
movss xmm0, dword [rsp + 0x70]
movss dword [rsp + 0x50], xmm0
movss xmm0, dword [rsp + 0xc8]
movss dword [rsp + 0x58], xmm0
call fcn.14024f820
movss xmm1, dword [rsp + 0x58]
movd xmm0, dword [rsp + 0x54]
cvtps2pd xmm0, xmm0
xorps xmm1, xmm10
unpcklps xmm1, xmm1
cvtps2pd xmm1, xmm1
call sub.MSVCR90.dll_atan2
unpcklps xmm13, xmm13
unpcklps xmm6, xmm6
mulsd xmm0, xmm12
cvtps2pd xmm8, xmm13
movapd xmm1, xmm8
cvtsd2ss xmm7, xmm0
cvtps2pd xmm0, xmm6
call fcn.140250900
unpcklps xmm7, xmm7
movsd xmm6, qword [0x140339230]
movapd xmm9, xmm0
cvtps2pd xmm0, xmm7
andpd xmm9, xmm6
movapd xmm1, xmm8
call fcn.140250900
andpd xmm0, xmm6
comisd xmm0, xmm9
jbe 0x1401cfd70
movss xmm0, dword [rsp + 0xc4]
movss xmm1, dword [rsp + 0xc0]
jmp 0x1401cfd82
movss xmm0, dword [rsp + 0xcc]
movss xmm1, dword [rsp + 0xc8]
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x1e0]
lea rcx, [rsp + 0x100]
movss dword [rsp + 0x74], xmm0
movss dword [rsp + 0x78], xmm1
call fcn.14024f820
movss xmm1, dword [rsp + 0x108]
movd xmm0, dword [rsp + 0x104]
xorps xmm1, xmm10
unpcklps xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
call sub.MSVCR90.dll_atan2
unpcklps xmm13, xmm13
cvtps2pd xmm1, xmm13
mulsd xmm0, xmm12
mov rax, qword [rsp + 0x480]
subsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [rax], xmm0
jmp 0x1401cffcc
lea rcx, [rsp + 0x110]
call fcn.14024ee30
lea rcx, [rsp + 0x110]
movss xmm1, dword [rdi + 0x54]
movss xmm2, dword [rdi + 0x58]
movss xmm3, dword [rdi + 0x5c]
subss xmm1, dword [rdi + 0x48]
subss xmm2, dword [rdi + 0x4c]
subss xmm3, dword [rdi + 0x50]
mulss xmm1, xmm12
mulss xmm2, xmm12
mulss xmm3, xmm12
addss xmm1, dword [rdi + 0x48]
addss xmm2, dword [rdi + 0x4c]
addss xmm3, dword [rdi + 0x50]
movss dword [rsp + 0x60], xmm1
movss dword [rsp + 0x64], xmm2
movss dword [rsp + 0x68], xmm3
call fcn.14024f800
lea rcx, [rsp + 0x160]
call fcn.14024ee30
lea rcx, [rsp + 0x160]
movss xmm0, dword [0x1403392e0]
movss xmm3, dword [rdi + 0x6c]
movss xmm2, dword [rdi + 0x68]
xorps xmm3, xmm0
xorps xmm2, xmm0
movss xmm1, dword [rdi + 0x64]
xorps xmm1, xmm0
call fcn.14024f800
lea r8, [rsp + 0x160]
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x160]
call fcn.14024ee80
lea r8, [rdi + 0xbc]
lea rdx, [rsp + 0x160]
lea rcx, [rsp + 0x260]
call fcn.14024f820
lea r8, [rdi + 0xb0]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x1c4]
call fcn.140250870
lea r8, [rsp + 0x260]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x1c0]
call fcn.140250870
lea r8, [rsp + 0x260]
lea rdx, [rdi + 0xb0]
lea rcx, [rsp + 0x1d8]
call fcn.140250870
movss xmm0, dword [rsp + 0x1c0]
movss xmm9, dword [rsp + 0x1c4]
addss xmm11, dword [rdi + 0xf8]
movaps xmm10, xmm9
movaps xmm8, xmm0
mulss xmm10, xmm9
mulss xmm9, dword [0x14033925c]
mulss xmm11, xmm11
mulss xmm9, xmm0
mulss xmm8, xmm0
movaps xmm0, xmm10
subss xmm0, xmm11
addss xmm0, xmm8
divss xmm0, xmm9
unpcklps xmm0, xmm0
cvtps2pd xmm0, xmm0
call sub.MSVCR90.dll_acos
movss xmm1, dword [rsp + 0x1d8]
movsd xmm6, qword [0x140339538]
mulss xmm1, xmm1
mulsd xmm0, xmm6
subss xmm10, xmm1
addss xmm10, xmm8
cvtsd2ss xmm7, xmm0
divss xmm10, xmm9
unpcklps xmm10, xmm10
cvtps2pd xmm0, xmm10
call sub.MSVCR90.dll_acos
mulsd xmm0, xmm6
cvtsd2ss xmm0, xmm0
subss xmm7, xmm0
mov rax, qword [rsp + 0x480]
movss dword [rax], xmm7
xor eax, eax
lea r11, [rsp + 0x440]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
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 r12
pop rdi
pop rsi
ret