Function at 0x101de3c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x50
mov esi, esp
mov eax, dword [0x1026f864]
mov ebx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
xor eax, ebp
lea ecx, [ebx*4 + 0xc]
mov dword [esi + 0x48], eax
mov eax, ecx
call fcn.101e0a30
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0xc], eax
mov esp, eax
mov eax, ecx
call fcn.101e0a30
mov edi, esp
and edi, 0xfffffff0
mov esp, edi
mov eax, ecx
call fcn.101e0a30
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 4], eax
mov esp, eax
lea eax, [ebx*4]
push eax
push edx
push edi
call fcn.101e35e0
mov edx, ebx
add esp, 0xc
xor ebx, ebx
test edx, edx
mov dword [edi + edx*4 + 8], ebx
mov dword [edi + edx*4 + 4], ebx
mov dword [edi + edx*4], ebx
jle 0x101de49b
lea eax, [edx*4 - 4]
and eax, 0xfffffff0
add eax, 0x10
mov dword [esi + 0x10], eax
push eax
push ebx
push dword [esi + 0xc]
call fcn.101e40e0
add esp, 0xc
push dword [esi + 0x10]
push ebx
push dword [ebp + 0xc]
call fcn.101e40e0
mov edx, dword [ebp + 0x14]
add esp, 0xc
movaps xmm2, xmmword [0x10238e40]
mov ecx, dword [esi + 4]
xorps xmm1, xmm1
xorps xmm0, xmm0
movaps xmm3, xmmword [edi + ebx*4]
movaps xmm4, xmm3
andps xmm3, xmm2
cmpltps xmm4, xmm1
movaps xmmword [edi + ebx*4], xmm3
addps xmm0, xmm3
movaps xmmword [ecx + ebx*4], xmm4
add ebx, 4
cmp ebx, edx
jl 0x101de479
jmp 0x101de4a1
mov ecx, dword [esi + 4]
xorps xmm0, xmm0
mov ebx, dword [ebp + 0x10]
lea eax, [edx + 3]
xorps xmm3, xmm3
mov dword [esi + 0x10], eax
mov eax, edx
sar eax, 1
cmp eax, ebx
mov eax, ebx
jge 0x101de58c
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x4e
addps xmm1, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xb1
addps xmm0, xmm1
ucomiss xmm0, dword [0x10254920]
jbe 0x101de4e5
movss xmm1, dword [0x1023e25c]
ucomiss xmm1, xmm0
ja 0x101de51d
cmp edx, 1
mov eax, 2
lea ecx, [edi + 4]
mov dword [edi], 0x3f800000
cmovg eax, edx
lea eax, [eax*4 - 4]
push eax
push 0
push ecx
mov ebx, edx
call fcn.101e40e0
mov eax, dword [ebp + 0x10]
mov ecx, dword [esi + 4]
mov edx, ebx
add esp, 0xc
movaps xmm0, xmmword [0x1021b750]
test edx, edx
jle 0x101de594
xorps xmm1, xmm1
cvtsi2sd xmm1, eax
rcpps xmm0, xmm0
xorps xmm2, xmm2
xor eax, eax
addsd xmm1, qword [0x10256390]
xorps xmm3, xmm3
cvtsd2ss xmm3, xmm1
xorpd xmm1, xmm1
shufps xmm3, xmm3, 0
mulps xmm3, xmm0
xorps xmm0, xmm0
movaps xmm4, xmmword [edi + eax*4]
mov ebx, dword [ebp + 0xc]
movaps xmm5, xmm3
mulps xmm5, xmm4
cvttps2dq xmm5, xmm5
movdqu xmmword [ebx + eax*4], xmm5
paddd xmm2, xmm5
cvtdq2ps xmm5, xmm5
mov ebx, dword [esi + 0xc]
mulps xmm4, xmm5
addps xmm1, xmm4
movaps xmm4, xmm5
mulps xmm4, xmm5
addps xmm5, xmm5
movaps xmmword [ebx + eax*4], xmm5
add eax, 4
addps xmm0, xmm4
cmp eax, edx
jl 0x101de54d
jmp 0x101de59d
xorps xmm2, xmm2
mov dword [esi + 8], eax
jmp 0x101de5e5
xorps xmm2, xmm2
xorps xmm1, xmm1
xorps xmm0, xmm0
pshufd xmm3, xmm2, 0x4e
mov ebx, dword [ebp + 0x10]
paddd xmm3, xmm2
pshufd xmm2, xmm3, 0xe5
paddd xmm2, xmm3
movd eax, xmm2
movaps xmm2, xmm1
unpckhpd xmm2, xmm1
sub ebx, eax
addps xmm2, xmm1
movaps xmm1, xmm0
mov dword [esi + 8], ebx
movaps xmm3, xmm2
unpckhpd xmm1, xmm0
shufps xmm3, xmm2, 0xe5
addps xmm1, xmm0
addss xmm3, xmm2
movaps xmm2, xmm1
shufps xmm2, xmm1, 0xe5
addss xmm2, xmm1
mov ebx, dword [esi + 0xc]
mov eax, 0xc2c80000
mov dword [edi + edx*4 + 8], eax
mov dword [edi + edx*4 + 4], eax
mov dword [edi + edx*4], eax
mov eax, 0x42c80000
mov dword [ebx + edx*4 + 8], eax
mov dword [ebx + edx*4 + 4], eax
mov dword [ebx + edx*4], eax
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x10]
jle 0x101de634
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
mov edi, dword [ebp + 0xc]
movaps xmm1, xmm0
mulss xmm1, xmm0
mulss xmm0, dword [ebx]
addss xmm2, xmm1
add dword [edi], eax
addss xmm2, xmm0
jmp 0x101de721
test eax, eax
jle 0x101de721
movdqa xmm4, xmmword [0x10238e90]
xor eax, eax
addss xmm2, dword [0x10210930]
test edx, edx
mov dword [esi + 0x10], eax
jle 0x101de6b5
movaps xmm5, xmmword [0x1021b720]
movaps xmm1, xmm3
movaps xmm0, xmm2
xorps xmm7, xmm7
pxor xmm6, xmm6
xor ecx, ecx
movaps xmmword [esi + 0x20], xmm3
movaps xmmword [esi + 0x30], xmm2
shufps xmm1, xmm3, 0
shufps xmm0, xmm2, 0
movaps xmm2, xmmword [ebx + ecx*4]
movaps xmm3, xmmword [edi + ecx*4]
add ecx, 4
cmp ecx, edx
addps xmm2, xmm0
addps xmm3, xmm1
rsqrtps xmm2, xmm2
mulps xmm2, xmm3
movaps xmm3, xmm7
cmpltps xmm3, xmm2
maxps xmm7, xmm2
andps xmm3, xmm5
paddd xmm5, xmm4
pmaxsw xmm6, xmm3
jl 0x101de67b
movaps xmm2, xmmword [esi + 0x30]
movaps xmm3, xmmword [esi + 0x20]
jmp 0x101de6bc
pxor xmm6, xmm6
xorps xmm7, xmm7
movaps xmm0, xmm7
movaps xmm1, xmm7
mov eax, dword [ebp + 0xc]
shufps xmm0, xmm7, 0x4e
maxps xmm1, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xb1
maxps xmm1, xmm0
cmpeqps xmm1, xmm7
andps xmm1, xmm6
pshufd xmm0, xmm1, 0xee
pmaxsw xmm0, xmm1
pshufd xmm1, xmm0, 0xe1
pmaxsw xmm1, xmm0
movd ecx, xmm1
movss xmm0, dword [ebx + ecx*4]
addss xmm3, dword [edi + ecx*4]
addss xmm2, xmm0
addss xmm0, dword [0x10224d04]
movss dword [ebx + ecx*4], xmm0
inc dword [eax + ecx*4]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 4]
inc eax
cmp eax, dword [esi + 8]
jne 0x101de646
mov edi, dword [ebp + 0xc]
test edx, edx
jle 0x101de748
xor eax, eax
movdqu xmm0, xmmword [edi + eax*4]
movdqa xmm1, xmmword [ecx + eax*4]
paddd xmm0, xmm1
pxor xmm0, xmm1
movdqu xmmword [edi + eax*4], xmm0
add eax, 4
cmp eax, edx
jl 0x101de72a
movss dword [esi + 0x1c], xmm2
fld dword [esi + 0x1c]
fstp xword [esi + 0x10]
mov ecx, dword [esi + 0x48]
xor ecx, ebp
call fcn.101e05ab
fld xword [esi + 0x10]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret