Function at 0x100f2fb0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push esi
push edi
mov edi, dword [ebp + 0xc]
mov eax, edi
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [ebp - 8], eax
lea ecx, [eax*4]
push ecx
call fcn.1013474c
mov ecx, dword [ebp - 8]
mov esi, eax
mov dword [ebp - 0x18], esi
lea ecx, [ecx + edi]
shl ecx, 2
push ecx
call fcn.1013474c
mov edi, eax
add esp, 8
mov eax, dword [ebp + 0xc]
mov ecx, eax
sar ecx, 1
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x1c], ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x10], xmm0
cvtps2pd xmm0, xmm0
call fcn.10139e2e
movsd xmm3, qword [0x101c3cc0]
movaps xmm5, xmm0
mulsd xmm5, qword [0x10162390]
mov ecx, dword [ebp + 8]
movsd xmm2, qword [0x10162380]
movsd xmm4, qword [0x101c3950]
addsd xmm5, qword [0x101c3908]
mov dword [ecx + 0xc], esi
xor esi, esi
mov dword [ecx + 8], edi
andps xmm3, xmm5
movaps xmm0, xmm5
xorps xmm0, xmm3
movaps xmm1, xmm5
cmpltsd xmm0, xmm2
andps xmm2, xmm0
orps xmm2, xmm3
addsd xmm1, xmm2
subsd xmm1, xmm2
movaps xmm0, xmm1
subsd xmm0, xmm5
cmpnlesd xmm0, xmm3
andps xmm0, xmm4
subsd xmm1, xmm0
cvttsd2si eax, xmm1
movss xmm1, dword [0x101c3a48]
mov dword [ebp - 0x28], eax
mov dword [ecx + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [ecx], eax
cmp dword [ebp - 8], esi
jle 0x100f315a
add eax, eax
mov ecx, dword [ebp - 0x1c]
movaps xmm2, xmm1
mov dword [ebp - 4], 1
divss xmm2, dword [ebp - 0x10]
lea edi, [edi + ecx*4]
movd xmm0, eax
xor eax, eax
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x14], eax
movss dword [ebp - 0x24], xmm2
divss xmm1, xmm0
movss dword [ebp - 0x20], xmm1
nop dword [eax]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
movss dword [ebp - 0x1c], xmm0
call fcn.1013b01d
mov ecx, dword [ebp - 0xc]
movss dword [ecx + esi*8], xmm0
movss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
call fcn.1013b16a
movd xmm1, dword [ebp - 4]
xorps xmm0, xmmword [0x101c3e20]
mov eax, dword [ebp - 0xc]
cvtdq2ps xmm1, xmm1
cvtsd2ss xmm0, xmm0
mulss xmm1, dword [ebp - 0x20]
movss dword [eax + esi*8 + 4], xmm0
movaps xmm0, xmm1
call fcn.10117c10
mov eax, dword [ebp - 0x14]
lea edi, [edi + 8]
add dword [ebp - 4], 2
movaps xmm1, xmm0
movss xmm2, dword [ebp - 0x24]
inc esi
shufps xmm1, xmm0, 1
add eax, 4
movss dword [edi - 8], xmm1
movss dword [edi - 4], xmm0
mov dword [ebp - 0x14], eax
cmp esi, dword [ebp - 8]
jl 0x100f30d0
movss xmm1, dword [0x101c3a48]
mov eax, dword [ebp + 0xc]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [ebp - 0x20], eax
test eax, eax
jle 0x100f325b
divss xmm1, dword [ebp - 0x10]
mov edx, dword [ebp + 0xc]
mov edi, 2
mov ecx, dword [ebp - 0xc]
mov dword [ebp + 0xc], eax
lea esi, [ecx + edx*4]
movss dword [ebp - 0x24], xmm1
nop dword [eax]
xorps xmm0, xmm0
cvtsi2ss xmm0, edi
mulss xmm0, xmm1
cvtps2pd xmm0, xmm0
call fcn.10117ba0
movaps xmm1, xmm0
lea esi, [esi + 8]
shufpd xmm1, xmm0, 1
add edi, 4
sub dword [ebp + 0xc], 1
mulsd xmm1, qword [0x101c3908]
mulsd xmm0, qword [0x10167fb8]
cvtsd2ss xmm1, xmm1
cvtsd2ss xmm0, xmm0
movss dword [esi - 8], xmm1
movss xmm1, dword [ebp - 0x24]
movss dword [esi - 4], xmm0
jne 0x100f3190
mov edx, dword [ebp - 0x28]
mov edi, 1
mov eax, edi
mov dword [ebp - 0xc], 0
lea ecx, [edx - 2]
shl eax, cl
lea ecx, [edx - 1]
shl edi, cl
mov esi, eax
mov dword [ebp + 0xc], eax
dec edi
mov dword [ebp - 8], esi
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x14], ecx
test eax, eax
je 0x100f3236
mov eax, esi
nop
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 0xc], ecx
mov ecx, dword [ebp - 0x14]
test dword [ebp - 0xc], eax
je 0x100f3221
bts edx, ecx
inc ecx
mov eax, esi
sar eax, cl
mov dword [ebp - 0x14], ecx
test eax, eax
jne 0x100f3210
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0xc], eax
mov dword [ebp - 8], esi
mov ecx, dword [ebp - 0xc]
mov eax, edx
mov esi, dword [ebp - 0x18]
not eax
and eax, edi
dec eax
mov dword [esi + ecx*8], eax
mov eax, esi
mov esi, dword [ebp - 8]
mov dword [eax + ecx*8 + 4], edx
inc ecx
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xc], ecx
cmp ecx, dword [ebp - 0x20]
jl 0x100f3202
movss xmm0, dword [0x101c3ab0]
divss xmm0, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
pop edi
pop esi
movss dword [eax + 0x10], xmm0
mov esp, ebp
pop ebp
ret