Function at 0x1402f9920
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push rsi
push r12
push r15
sub rsp, 0xc0
movaps xmmword [rsp + 0x20], xmm12
mov qword [rax - 0x20], rbx
mov qword [rax - 0x28], rbp
mov qword [rax - 0x30], rdi
mov qword [rax - 0x38], r13
mov qword [rax - 0x40], r14
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
movsxd rbp, edx
mov r15, rcx
mov eax, ebp
movaps xmmword [rsp + 0x40], xmm10
cdq
and edx, 3
add eax, edx
sar eax, 2
movsxd rdi, eax
mov rcx, rdi
mov dword [rsp + 0xe8], edi
shl rcx, 2
call sub.MSVCR90.dll_malloc
lea r8d, [rdi + rbp]
movsxd rcx, r8d
mov rsi, rax
mov qword [rsp + 0xf8], rax
shl rcx, 2
call sub.MSVCR90.dll_malloc
mov ebx, ebp
mov r13, rax
sar ebx, 1
movd xmm12, ebp
cvtdq2ps xmm12, xmm12
unpcklps xmm12, xmm12
cvtps2pd xmm0, xmm12
call sub.MSVCR90.dll_log
movapd xmm6, xmm0
movsd xmm0, qword [0x140339268]
call sub.MSVCR90.dll_log
movsd xmm10, qword [0x140339290]
divsd xmm6, xmm0
addsd xmm6, xmm10
movapd xmm0, xmm6
call sub.MSVCR90.dll_floor
movss xmm7, dword [0x140339260]
mov dword [r15], ebp
mov qword [r15 + 8], r13
mov qword [r15 + 0x10], rsi
movsxd rcx, ebx
cvttsd2si r14d, xmm0
mov dword [rsp + 0xf0], r14d
mov dword [r15 + 4], r14d
test edi, edi
jle 0x1402f9b1e
mov esi, dword [rsp + 0xe8]
movaps xmmword [rsp + 0x50], xmm9
lea eax, [rbp + rbp]
movd xmm0, eax
movaps xmm8, xmm7
movaps xmm9, xmm7
xor edi, edi
mov r14, r13
lea rbx, [r13 + rcx*4]
divss xmm8, xmm12
lea r15, [r13 + 4]
lea r12d, [rdi + 1]
cvtdq2ps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm11
movsd xmm11, qword [0x1403392c0]
divss xmm9, xmm0
nop word [rax + rax]
movd xmm6, edi
cvtdq2ps xmm6, xmm6
mulss xmm6, xmm8
unpcklps xmm6, xmm6
cvtps2pd xmm0, xmm6
call sub.MSVCR90.dll_cos
unpcklps xmm6, xmm6
cvtsd2ss xmm1, xmm0
cvtps2pd xmm0, xmm6
movss dword [r14], xmm1
call sub.MSVCR90.dll_sin
movd xmm6, r12d
xorpd xmm0, xmm11
cvtsd2ss xmm0, xmm0
cvtdq2ps xmm6, xmm6
movss dword [r15], xmm0
mulss xmm6, xmm9
unpcklps xmm6, xmm6
cvtps2pd xmm0, xmm6
call sub.MSVCR90.dll_cos
unpcklps xmm6, xmm6
cvtsd2ss xmm1, xmm0
cvtps2pd xmm0, xmm6
movss dword [rbx], xmm1
call sub.MSVCR90.dll_sin
add rbx, 8
add edi, 4
add r12d, 2
add r14, 8
add r15, 8
cvtsd2ss xmm1, xmm0
sub rsi, 1
movss dword [rbx - 4], xmm1
jne 0x1402f9a70
mov rsi, qword [rsp + 0xf8]
mov r14d, dword [rsp + 0xf0]
mov r15, qword [rsp + 0xe0]
movaps xmm11, xmmword [rsp + 0x30]
movaps xmm9, xmmword [rsp + 0x50]
mov eax, ebp
cdq
and edx, 7
add eax, edx
sar eax, 3
mov r12d, eax
test eax, eax
jle 0x1402f9b99
movsd xmm8, qword [0x1403392b0]
lea rbx, [r13 + rbp*4]
divss xmm7, xmm12
mov rbp, r12
mov edi, 2
nop dword [rax + rax]
movd xmm6, edi
cvtdq2ps xmm6, xmm6
mulss xmm6, xmm7
unpcklps xmm6, xmm6
cvtps2pd xmm0, xmm6
call sub.MSVCR90.dll_cos
unpcklps xmm6, xmm6
mulsd xmm0, xmm10
cvtsd2ss xmm0, xmm0
movss dword [rbx], xmm0
cvtps2pd xmm0, xmm6
call sub.MSVCR90.dll_sin
add rbx, 8
add edi, 4
sub rbp, 1
mulsd xmm0, xmm8
cvtsd2ss xmm0, xmm0
movss dword [rbx - 4], xmm0
jne 0x1402f9b50
movaps xmm10, xmmword [rsp + 0x40]
movaps xmm8, xmmword [rsp + 0x60]
movaps xmm7, xmmword [rsp + 0x70]
mov r13, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0xa8]
mov rbp, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xb8]
lea ecx, [r14 - 1]
mov r11d, 1
movaps xmm6, xmmword [rsp + 0x80]
shl r11d, cl
lea ecx, [r14 - 2]
mov r14, qword [rsp + 0x98]
mov r9d, 1
dec r11d
xor r8d, r8d
shl r9d, cl
test r12d, r12d
jle 0x1402f9c48
lea r10, [rsi + 4]
xor edx, edx
xor ecx, ecx
test r9d, r9d
je 0x1402f9c29
mov eax, r9d
nop
test r8d, eax
je 0x1402f9c1e
mov eax, 1
shl eax, cl
or edx, eax
inc ecx
mov eax, r9d
sar eax, cl
test eax, eax
jne 0x1402f9c10
mov eax, edx
inc r8d
mov dword [r10], edx
not eax
add rsi, 8
add r10, 8
and eax, r11d
dec eax
cmp r8d, r12d
mov dword [rsi - 8], eax
jl 0x1402f9c03
movss xmm0, dword [0x140339258]
divss xmm0, xmm12
movaps xmm12, xmmword [rsp + 0x20]
movss dword [r15 + 0x18], xmm0
add rsp, 0xc0
pop r15
pop r12
pop rsi
ret