Function at 0x101c9a50
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x1c
movss xmm2, dword [esp + 0x2c]
movsd xmm4, qword [0x10386870]
movss xmm5, dword [0x10386cc8]
movss xmm3, dword [esp + 0x30]
mulss xmm2, xmm2
push esi
mov esi, dword [esp + 0x28]
mulss xmm3, xmm3
push edi
addss xmm2, xmm2
addss xmm3, xmm3
cvtps2pd xmm0, xmm2
cvtps2pd xmm1, xmm3
andps xmm0, xmm4
cvtpd2ps xmm0, xmm0
comiss xmm5, xmm0
setae al
mov byte [esp + 0x37], al
test al, al
jne 0x101c9cc8
movaps xmm0, xmm1
andps xmm0, xmm4
cvtpd2ps xmm0, xmm0
comiss xmm5, xmm0
jae 0x101c9cc8
movss xmm1, dword [0x10386834]
xorps xmm0, xmm0
movss dword [esp + 0x34], xmm0
movaps xmm4, xmm1
divss xmm4, xmm2
movaps xmm2, xmm1
movss dword [esp + 8], xmm4
divss xmm2, xmm3
movss dword [esp + 0x20], xmm2
test esi, esi
jle 0x101c9bda
mov ecx, dword [esp + 0x28]
mov eax, esi
cdq
mov edi, esi
sub eax, edx
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x30]
sar eax, 1
neg eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], eax
nop dword [eax]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm1
mulss xmm1, xmm4
movss dword [esp + 0xc], xmm1
test edx, edx
jle 0x101c9bb9
mov eax, edx
cdq
sub eax, edx
mov edx, dword [esp + 0x30]
sar eax, 1
mov edi, eax
mov dword [esp + 0x38], edx
lea eax, [esi*4]
neg edi
mov dword [esp + 0x10], eax
mov esi, ecx
nop dword [eax]
xorps xmm0, xmm0
cvtsi2ss xmm0, edi
mulss xmm0, xmm0
mulss xmm0, xmm2
addss xmm0, xmm1
xorps xmm0, xmmword [0x10386880]
cvtss2sd xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_exp_precise
movss xmm1, dword [esp + 0xc]
inc edi
movss xmm2, dword [esp + 0x20]
cvtsd2ss xmm0, xmm0
movss dword [esi], xmm0
addss xmm0, dword [esp + 0x34]
add esi, dword [esp + 0x10]
sub dword [esp + 0x38], 1
movss dword [esp + 0x34], xmm0
jne 0x101c9b50
movss xmm4, dword [esp + 8]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x14]
inc eax
add ecx, 4
sub edi, 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edi
jne 0x101c9b10
movss xmm1, dword [0x10386834]
imul esi, dword [esp + 0x30]
xor ecx, ecx
divss xmm1, xmm0
movss dword [esp + 0x34], xmm1
movaps xmm2, xmm1
shufps xmm2, xmm2, 0
test esi, esi
jle 0x101c9d31
cmp esi, 0x10
jb 0x101c9c61
mov eax, esi
and eax, 0x8000000f
jns 0x101c9c0d
dec eax
or eax, 0xfffffff0
inc eax
mov edi, dword [esp + 0x28]
mov edx, esi
sub edx, eax
lea eax, [edi + 0x20]
nop dword [eax + eax]
movups xmm0, xmmword [eax - 0x20]
lea eax, [eax + 0x40]
add ecx, 0x10
movaps xmm1, xmm2
mulps xmm0, xmm2
movups xmmword [eax - 0x60], xmm0
movups xmm0, xmmword [eax - 0x50]
mulps xmm1, xmm0
movups xmmword [eax - 0x50], xmm1
movups xmm0, xmmword [eax - 0x40]
mulps xmm0, xmm2
movups xmmword [eax - 0x40], xmm0
movups xmm0, xmmword [eax - 0x30]
mulps xmm0, xmm2
movups xmmword [eax - 0x30], xmm0
cmp ecx, edx
jl 0x101c9c20
movss xmm1, dword [esp + 0x34]
jmp 0x101c9c65
mov edi, dword [esp + 0x28]
shufps xmm1, xmm1, 0
cmp ecx, esi
jge 0x101c9d31
mov eax, esi
sub eax, ecx
cmp eax, 4
jl 0x101c9ca3
mov edx, esi
lea eax, [ecx + 2]
sub edx, ecx
lea eax, [edi + eax*4]
sub edx, 4
shr edx, 2
inc edx
lea ecx, [ecx + edx*4]
nop
lea eax, [eax + 0x10]
movups xmm0, xmmword [eax - 0x18]
mulps xmm0, xmm1
movups xmmword [eax - 0x18], xmm0
sub edx, 1
jne 0x101c9c90
cmp ecx, esi
jge 0x101c9d31
nop dword [eax + eax]
movaps xmm0, xmm1
mulss xmm0, dword [edi + ecx*4]
movss dword [edi + ecx*4], xmm0
inc ecx
cmp ecx, esi
jl 0x101c9cb0
pop edi
pop esi
add esp, 0x1c
ret
mov edx, dword [esp + 0x30]
mov ecx, esi
imul ecx, edx
test ecx, ecx
jle 0x101c9ce1
mov edi, dword [esp + 0x28]
xor eax, eax
rep stosd dword es:[edi], eax
mov al, byte [esp + 0x37]
test al, al
mov eax, dword [esp + 0x28]
je 0x101c9d1c
andps xmm1, xmm4
cvtpd2ps xmm0, xmm1
comiss xmm5, xmm0
jb 0x101c9d02
pop edi
mov dword [eax + 0x10], 0x3f800000
pop esi
add esp, 0x1c
ret
push ecx
movss dword [esp], xmm3
add eax, 4
push esi
push edx
push eax
call fcn.101c98d0
add esp, 0x10
pop edi
pop esi
add esp, 0x1c
ret
push ecx
movss dword [esp], xmm2
lea eax, [eax + esi*4]
push 1
push esi
push eax
call fcn.101c98d0
add esp, 0x10
pop edi
pop esi
add esp, 0x1c
ret