Function at 0x1401cc480
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbp
push rdi
push r15
sub rsp, 0xd0
movaps xmmword [rax - 0x38], xmm6
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], r12
mov qword [rax - 0x20], r13
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
mov qword [rax - 0x28], r14
mov rbx, r8
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movsd xmm8, qword [0x1402dbd20]
movaps xmmword [rax - 0x68], xmm9
mulsd xmm0, xmm8
movaps xmmword [rax - 0x78], xmm10
andps xmm0, xmmword [0x1402dfb00]
movaps xmmword [rsp + 0x60], xmm11
movaps xmmword [rsp + 0x50], xmm12
cvtpd2ps xmm12, xmm0
addss xmm12, dword [0x140337ac0]
movaps xmm9, xmm12
mulss xmm9, dword [0x140338158]
cvtps2pd xmm0, xmm9
subsd xmm0, xmm8
call sub.MSVCR120.dll_ceil
mov rcx, 0xffffffffffffffff
mov r12d, 1
mov eax, 4
mulsd xmm0, qword [0x140303c28]
addsd xmm0, qword [0x1402dbd28]
cvttsd2si r15d, xmm0
test r15d, r15d
cmovle r15d, r12d
movsxd rbp, r15d
mul rbp
cmovo rax, rcx
mov rcx, rax
call sub.mfc120u.dll_Ordinal_1484
mov rdi, rax
mov qword [rbx], rax
mov eax, r15d
movsd xmm11, qword [0x1402dbe20]
movsd xmm10, qword [0x140338128]
xorps xmm6, xmm6
cdq
sub eax, edx
sar eax, 1
movsxd r13, eax
lea esi, [r13 + 1]
cmp esi, r15d
jge 0x1401cc672
movaps xmmword [rsp + 0x40], xmm13
movd xmm0, r13d
movaps xmmword [rsp + 0x30], xmm14
movsxd rbx, esi
cvtdq2ps xmm0, xmm0
movaps xmmword [rsp + 0x20], xmm15
call sub.MSVCR120.dll_floorf
movss xmm15, dword [0x140335678]
movss xmm13, dword [0x140338184]
lea r14, [rdi + rbx*4]
movaps xmm14, xmm0
nop dword [rax]
movd xmm8, esi
movaps xmm7, xmm6
mov ebx, r12d
cvtdq2ps xmm8, xmm8
subss xmm8, xmm14
subss xmm8, xmm15
nop dword [rax]
movd xmm3, ebx
xorps xmm0, xmm0
xorps xmm1, xmm1
cvtss2sd xmm0, xmm8
cvtss2sd xmm1, xmm9
cvtdq2pd xmm3, xmm3
mulsd xmm3, xmm10
addsd xmm3, xmm0
comisd xmm1, xmm3
jb 0x1401cc636
mulsd xmm3, xmm3
movaps xmm1, xmm9
xorps xmm2, xmm2
mulss xmm1, xmm12
cvtss2sd xmm2, xmm1
divsd xmm3, xmm2
xorps xmm3, xmm11
movaps xmm0, xmm3
call sub.MSVCR120.dll_exp
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
addss xmm7, xmm1
inc ebx
cmp ebx, 0x32
jle 0x1401cc5e0
divss xmm7, xmm13
inc esi
add r14, 4
movss dword [r14 - 4], xmm7
cmp esi, r15d
jl 0x1401cc5c0
movsd xmm8, qword [0x1402dbd20]
movaps xmm15, xmmword [rsp + 0x20]
movaps xmm14, xmmword [rsp + 0x30]
movaps xmm13, xmmword [rsp + 0x40]
mov r12, qword [rsp + 0x100]
mov r14, r13
mov r13, qword [rsp + 0xc8]
xor ebx, ebx
mov r8d, ebx
test r14, r14
js 0x1401cc70a
lea rax, [r14 + 1]
cmp rax, 4
jl 0x1401cc6e5
lea r9, [r14 + 1]
lea rdx, [rbp - 2]
lea rcx, [rdi + 8]
shr r9, 2
lea rdx, [rdi + rdx*4]
lea r8, [r9*4]
nop word [rax + rax]
mov eax, dword [rdx + 4]
lea rcx, [rcx + 0x10]
lea rdx, [rdx - 0x10]
mov dword [rcx - 0x18], eax
mov eax, dword [rdx + 0x10]
mov dword [rcx - 0x14], eax
mov eax, dword [rdx + 0xc]
mov dword [rcx - 0x10], eax
mov eax, dword [rdx + 8]
mov dword [rcx - 0xc], eax
dec r9
jne 0x1401cc6c0
cmp r8, r14
jg 0x1401cc70a
mov rcx, rbp
sub rcx, r8
dec rcx
lea rcx, [rdi + rcx*4]
mov eax, dword [rcx]
inc r8
lea rcx, [rcx - 4]
mov dword [rdi + r8*4 - 4], eax
cmp r8, r14
jle 0x1401cc6f7
mulss xmm9, xmm12
movaps xmm12, xmmword [rsp + 0x50]
movaps xmm7, xmm6
mov esi, ebx
nop word [rax + rax]
xorps xmm1, xmm1
movd xmm0, esi
cvtss2sd xmm1, xmm9
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm10
addsd xmm0, xmm8
mulsd xmm0, xmm0
divsd xmm0, xmm1
xorps xmm0, xmm11
call sub.MSVCR120.dll_exp
xorps xmm1, xmm1
inc esi
cvtsd2ss xmm1, xmm0
addss xmm7, xmm1
cmp esi, 0x32
jle 0x1401cc720
divss xmm7, dword [0x140338188]
movaps xmm11, xmmword [rsp + 0x60]
movaps xmm10, xmmword [rsp + 0x70]
mov rsi, qword [rsp + 0xf8]
mov rcx, rbx
movaps xmm9, xmmword [rsp + 0x80]
movaps xmm8, xmmword [rsp + 0x90]
movss dword [rdi + r14*4], xmm7
movaps xmm7, xmmword [rsp + 0xa0]
mov r14, qword [rsp + 0xc0]
cmp rbp, 4
jl 0x1401cc7de
lea rdx, [rbp - 4]
lea rax, [rdi + 8]
shr rdx, 2
inc rdx
lea rcx, [rdx*4]
addss xmm6, dword [rax - 8]
add rax, 0x10
addss xmm6, dword [rax - 0x14]
addss xmm6, dword [rax - 0x10]
addss xmm6, dword [rax - 0xc]
dec rdx
jne 0x1401cc7c1
cmp rcx, rbp
jge 0x1401cc7f0
addss xmm6, dword [rdi + rcx*4]
inc rcx
cmp rcx, rbp
jl 0x1401cc7e3
shufps xmm6, xmm6, 0
movss xmm1, xmm6
shufps xmm1, xmm1, 0
test r15d, r15d
jle 0x1401cc846
cmp r15d, 8
jb 0x1401cc846
mov eax, r15d
and eax, 0x80000007
jge 0x1401cc818
dec eax
or eax, 0xfffffff8
inc eax
mov edx, r15d
sub edx, eax
nop dword [rax]
movsxd rax, ebx
movups xmm0, xmmword [rdi + rax*4]
divps xmm0, xmm1
movups xmmword [rdi + rax*4], xmm0
lea eax, [rbx + 4]
add ebx, 8
movsxd rcx, eax
movups xmm0, xmmword [rdi + rcx*4]
divps xmm0, xmm1
movups xmmword [rdi + rcx*4], xmm0
cmp ebx, edx
jl 0x1401cc820
movsxd rcx, ebx
mov rbx, qword [rsp + 0xf0]
cmp rcx, rbp
jge 0x1401cc8b0
mov rax, rbp
sub rax, rcx
cmp rax, 4
jl 0x1401cc894
mov rdx, rbp
lea rax, [rdi + 8]
sub rdx, rcx
lea rax, [rax + rcx*4]
sub rdx, 4
shr rdx, 2
inc rdx
lea rcx, [rcx + rdx*4]
nop
movups xmm0, xmmword [rax - 8]
lea rax, [rax + 0x10]
divps xmm0, xmm6
movups xmmword [rax - 0x18], xmm0
dec rdx
jne 0x1401cc880
cmp rcx, rbp
jge 0x1401cc8b0
movss xmm0, dword [rdi + rcx*4]
inc rcx
divss xmm0, xmm6
movss dword [rdi + rcx*4 - 4], xmm0
cmp rcx, rbp
jl 0x1401cc899
mov eax, r15d
movaps xmm6, xmmword [rsp + 0xb0]
add rsp, 0xd0
pop r15
pop rdi
pop rbp
ret