Function at 0x1014e6b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
cmp byte [0x101fd7c8], 0
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, dword [esi]
mov esi, dword [esi + 4]
mov dword [ebp - 4], esi
jne 0x1014e813
movsd xmm0, qword [0x101ab718]
movsd qword [ebp - 0x24], xmm0
movsd qword [ebp - 0x1c], xmm0
movsd xmm0, qword [0x101ab758]
call sub.MSVCR120.dll___libm_sse2_exp
movsd xmm1, qword [0x101ab708]
divsd xmm1, xmm0
movsd qword [ebp - 0xc], xmm0
movsd xmm0, qword [0x101ab718]
divsd xmm0, xmm1
movsd qword [ebp - 0x14], xmm1
mulsd xmm0, qword [0x101ab748]
call fcn.10176a51
movsd xmm0, qword [ebp - 0x14]
xor esi, esi
mulsd xmm0, qword [0x101ab700]
mov dword [0x101fd1c8], eax
movsd xmm2, qword [ebp - 0xc]
mov dword [0x101fd1cc], 0
mov dword [0x101fd5c4], 0x30dc53e2
cvtpd2ps xmm0, xmm0
mov dword [0x101fd5c8], 0x3f800000
movss dword [0x101fd3c8], xmm0
cvtpd2ps xmm0, xmm2
movss dword [0x101fd7c4], xmm0
lea ecx, [ecx]
movsd xmm0, qword [0x101ab708]
divsd xmm0, qword [ebp - 0x24]
addsd xmm0, xmm2
call sub.MSVCR120.dll___libm_sse2_log
mulsd xmm0, qword [0x101a60d8]
sqrtsd xmm0, xmm0
movsd qword [ebp - 0x24], xmm0
divsd xmm0, qword [ebp - 0x1c]
mulsd xmm0, qword [0x101ab748]
call fcn.10176a51
movsd xmm1, qword [ebp - 0x24]
movapd xmm0, xmm1
mov dword [esi + 0x101fd3c4], eax
mulsd xmm0, qword [0x101a60d0]
movsd qword [ebp - 0x1c], xmm1
mulsd xmm0, xmm1
call sub.MSVCR120.dll___libm_sse2_exp
xorps xmm1, xmm1
movapd xmm2, xmm0
cvtsd2ss xmm1, xmm2
movss dword [esi + 0x101fd7c0], xmm1
movsd xmm1, qword [ebp - 0x24]
mulsd xmm1, qword [0x101ab700]
cvtpd2ps xmm1, xmm1
movss dword [esi + 0x101fd5c0], xmm1
sub esi, 4
cmp esi, 0xfffffe0c
jge 0x1014e770
mov esi, dword [ebp - 4]
mov byte [0x101fd7c8], 1
cmp dword [ebp + 0xc], 0
mov dword [ebp - 0x18], 0
jle 0x1014e966
movss xmm4, dword [0x101a8b1c]
mov ecx, 0xf83f630a
mov eax, edi
mov esi, edi
mul ecx
movd xmm3, esi
cvtdq2ps xmm3, xmm3
mov ecx, esi
mov dword [ebp - 0x10], esi
mov edi, eax
mov eax, esi
add edi, dword [ebp - 4]
adc edx, 0
and ecx, 0x7f
mov dword [ebp - 4], edx
cdq
xor eax, edx
mulss xmm3, dword [ecx*4 + 0x101fd3c8]
sub eax, edx
movss dword [ebp - 8], xmm3
cmp eax, dword [ecx*4 + 0x101fd1c8]
jb 0x1014e946
test ecx, ecx
je 0x1014e974
movss xmm1, dword [ecx*4 + 0x101fd5c8]
mov eax, edi
movd xmm0, edi
mov edx, 0xf83f630a
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1019ac40]
mov eax, edi
mul edx
cvtpd2ps xmm2, xmm0
mov edi, eax
add edi, dword [ebp - 4]
movss xmm0, dword [ecx*4 + 0x101fd5c4]
adc edx, 0
subss xmm0, xmm1
mulss xmm2, xmm4
mov esi, edx
mov dword [ebp - 4], esi
mulss xmm0, xmm2
addss xmm0, xmm1
cvtps2pd xmm1, xmm3
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x24], xmm0
cvtps2pd xmm0, xmm3
mulsd xmm0, qword [0x101a60d0]
mulsd xmm0, xmm1
call sub.MSVCR120.dll___libm_sse2_exp
comisd xmm0, xmmword [ebp - 0x24]
movss xmm4, dword [0x101a8b1c]
ja 0x1014ea6c
mov eax, edi
mov dword [ebp - 0x10], edi
mov ecx, 0xf83f630a
mov esi, edi
mul ecx
movd xmm3, esi
cvtdq2ps xmm3, xmm3
mov ecx, esi
mov edi, eax
mov eax, esi
add edi, dword [ebp - 4]
adc edx, 0
and ecx, 0x7f
mov dword [ebp - 4], edx
cdq
xor eax, edx
mulss xmm3, dword [ecx*4 + 0x101fd3c8]
sub eax, edx
movss dword [ebp - 8], xmm3
cmp eax, dword [ecx*4 + 0x101fd1c8]
jae 0x1014e873
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + 8]
movss dword [ecx + eax*4], xmm3
inc eax
mov ecx, 0xf83f630a
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp + 0xc]
jl 0x1014e831
mov eax, dword [ebp + 0x10]
mov dword [eax], edi
pop edi
mov dword [eax + 4], esi
pop esi
mov esp, ebp
pop ebp
ret
movd xmm0, edi
mov eax, edi
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1019ac40]
mov eax, edi
mov edi, 0xf83f630a
mul edi
cvtpd2ps xmm1, xmm0
add eax, dword [ebp - 4]
mov esi, edx
mov ecx, eax
adc esi, 0
shr ecx, 0x1f
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mul edi
addsd xmm0, qword [ecx*8 + 0x1019ac40]
mulss xmm1, xmm4
addss xmm1, dword [0x101ab6e8]
cvtpd2ps xmm0, xmm0
mov edi, eax
mov eax, edx
add edi, esi
adc eax, 0
mov dword [ebp - 4], eax
mulss xmm0, xmm4
movss dword [ebp - 0x20], xmm0
movaps xmm0, xmm1
call sub.MSVCR120.dll___libm_sse2_logf
xorps xmm0, xmmword [0x101a2400]
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
mulsd xmm1, qword [0x101ab710]
cvtpd2ps xmm0, xmm1
movss dword [ebp - 8], xmm0
movss xmm0, dword [ebp - 0x20]
addss xmm0, dword [0x101ab6e8]
call sub.MSVCR120.dll___libm_sse2_logf
movss xmm3, dword [ebp - 8]
xorps xmm0, xmmword [0x101a2400]
movaps xmm1, xmm3
mulss xmm0, dword [0x101a2398]
movss xmm4, dword [0x101a8b1c]
mulss xmm1, xmm3
comiss xmm1, xmm0
ja 0x1014e974
mov esi, dword [ebp - 0x10]
test esi, esi
mov esi, dword [ebp - 4]
jle 0x1014ea58
addss xmm3, dword [0x101ab720]
jmp 0x1014e949
movss xmm0, dword [0x101ab760]
subss xmm0, xmm3
movaps xmm3, xmm0
jmp 0x1014e949
movss xmm3, dword [ebp - 8]
jmp 0x1014e949