Function at 0x10015580
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x64
mov ecx, dword [eax]
push ebx
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx + 0x484]
push esi
mov esi, dword [ebp + 8]
add eax, eax
push edi
add eax, eax
mov dword [esp + 0x14], ecx
call fcn.10024f40
cmp dword [ebx + 0x484], 0
mov dword [esp + 0x4c], eax
mov dword [esp + 0x1c], 0
jle 0x10015979
mov edi, eax
lea eax, [ebx + 0x888]
mov dword [esp + 0x18], eax
jmp 0x100155d4
mov eax, dword [esp + 0x18]
mov edx, dword [eax - 0x400]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x10]
mov ebx, dword [ecx + edx*4]
mov ecx, dword [ecx + eax*4]
mov eax, dword [esp + 0x14]
mov esi, dword [ebp + 8]
add eax, eax
add eax, eax
mov dword [esp + 0x20], ecx
call fcn.10024f40
cmp dword [esp + 0x14], 0
mov dword [edi], eax
jle 0x10015955
mov edx, dword [esp + 0x20]
lea eax, [edx + 0x10]
mov esi, ebx
sub esi, edx
neg edx
mov dword [esp + 0x20], esi
lea esi, [edx + 0x10]
mov dword [esp + 0x44], esi
lea esi, [edx + 0x20]
add edx, 0xfffffff0
mov dword [esp + 0x3c], edx
mov edx, 0xffffffe0
sub edx, ebx
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x14]
dec edx
shr edx, 4
lea ecx, [ebx + 0x30]
mov dword [esp + 0x48], esi
inc edx
movaps xmm6, xmmword [0x10027150]
movaps xmm0, xmmword [ecx - 0x30]
movaps xmm2, xmmword [eax - 0x10]
movaps xmm5, xmmword [0x10027140]
mov esi, dword [esp + 0x20]
movaps xmm3, xmm2
mulps xmm3, xmm0
cmpltps xmm3, xmmword [0x10027170]
movaps xmm1, xmm6
andps xmm1, xmm0
movaps xmm4, xmm6
andps xmm4, xmm2
cmpleps xmm1, xmm4
andps xmm1, xmm3
movaps xmm4, xmm1
andps xmm4, xmm5
andps xmm5, xmm0
xorps xmm4, xmm5
movaps xmm5, xmm3
mulps xmm0, xmm0
movaps xmm7, xmm0
movaps xmm0, xmmword [0x1002fd80]
andnps xmm5, xmm0
movaps xmm0, xmmword [0x1002fd90]
andps xmm0, xmm3
orps xmm5, xmm0
movaps xmm0, xmm1
mulps xmm2, xmm2
movaps xmm3, xmm1
andps xmm0, xmm2
movaps xmmword [esp + 0x50], xmm2
movaps xmm2, xmm1
andnps xmm1, xmmword [esp + 0x50]
andps xmm2, xmm7
orps xmm1, xmm2
mulps xmm1, xmm5
movaps xmm5, xmmword [0x1002fdb0]
movaps xmmword [esp + 0x60], xmm7
andnps xmm3, xmmword [esp + 0x60]
orps xmm3, xmm0
movaps xmm0, xmmword [esi + eax]
mov esi, dword [edi]
add esi, dword [esp + 0x3c]
addps xmm1, xmm3
rsqrtps xmm2, xmm1
movaps xmm7, xmm2
mulps xmm5, xmm7
movaps xmm7, xmmword [0x1002fda0]
movaps xmm3, xmm2
mulps xmm3, xmm1
mulps xmm3, xmm2
mulps xmm3, xmm2
movaps xmm2, xmmword [eax]
mulps xmm7, xmm3
addps xmm5, xmm7
mulps xmm5, xmm1
orps xmm4, xmm5
movaps xmm1, xmm6
movaps xmmword [esi + eax], xmm4
movaps xmm4, xmmword [0x10027140]
andps xmm1, xmm0
movaps xmm5, xmm2
andps xmm5, xmm6
movaps xmm6, xmmword [0x1002fd80]
cmpleps xmm1, xmm5
movaps xmm3, xmm2
mulps xmm3, xmm0
cmpltps xmm3, xmmword [0x10027170]
add esi, eax
andps xmm1, xmm3
movaps xmm5, xmm1
andps xmm5, xmm4
andps xmm4, xmm0
xorps xmm4, xmm5
movaps xmm5, xmm3
andnps xmm5, xmm6
movaps xmm6, xmmword [0x1002fd90]
andps xmm6, xmm3
mulps xmm0, xmm0
mulps xmm2, xmm2
orps xmm5, xmm6
movaps xmm7, xmmword [0x1002fdb0]
mov esi, dword [edi]
add esi, dword [esp + 0x40]
movaps xmm6, xmm0
movaps xmm3, xmm1
andps xmm3, xmm0
movaps xmm0, xmm1
andnps xmm0, xmm2
orps xmm0, xmm3
mulps xmm0, xmm5
movaps xmm5, xmmword [0x10027150]
andps xmm2, xmm1
andnps xmm1, xmm6
orps xmm2, xmm1
movaps xmm1, xmmword [ecx - 0x10]
addps xmm0, xmm2
rsqrtps xmm2, xmm0
movaps xmm6, xmm2
mulps xmm7, xmm6
movaps xmm6, xmmword [0x1002fda0]
movaps xmm3, xmm2
mulps xmm3, xmm0
mulps xmm3, xmm2
mulps xmm3, xmm2
movaps xmm2, xmmword [eax + 0x10]
mulps xmm6, xmm3
addps xmm7, xmm6
mulps xmm7, xmm0
orps xmm7, xmm4
movaps xmmword [esi + ecx], xmm7
movaps xmm6, xmmword [0x10027140]
movaps xmm7, xmmword [0x1002fdb0]
movaps xmm3, xmm5
andps xmm3, xmm1
movaps xmm4, xmm2
andps xmm4, xmm5
cmpleps xmm3, xmm4
movaps xmm0, xmm2
mulps xmm0, xmm1
cmpltps xmm0, xmmword [0x10027170]
andps xmm3, xmm0
add esi, ecx
mov esi, dword [edi]
add esi, dword [esp + 0x44]
movaps xmm5, xmm6
andps xmm5, xmm1
movaps xmm4, xmm3
andps xmm4, xmm6
movaps xmm6, xmmword [0x1002fd80]
xorps xmm4, xmm5
movaps xmm5, xmmword [0x1002fd90]
andps xmm5, xmm0
andnps xmm0, xmm6
orps xmm0, xmm5
movaps xmm5, xmm3
movaps xmm6, xmm3
mulps xmm2, xmm2
andnps xmm3, xmm2
mulps xmm1, xmm1
andps xmm6, xmm1
orps xmm3, xmm6
mulps xmm3, xmm0
andps xmm2, xmm5
andnps xmm5, xmm1
movaps xmm1, xmmword [ecx]
orps xmm2, xmm5
movaps xmm5, xmmword [0x10027150]
addps xmm2, xmm3
rsqrtps xmm3, xmm2
movaps xmm6, xmm3
mulps xmm7, xmm6
movaps xmm6, xmmword [0x1002fda0]
movaps xmm0, xmm2
mulps xmm0, xmm3
mulps xmm0, xmm3
mulps xmm0, xmm3
movaps xmm3, xmmword [eax + 0x20]
mulps xmm6, xmm0
addps xmm7, xmm6
add esi, eax
mulps xmm7, xmm2
orps xmm7, xmm4
movaps xmmword [esi], xmm7
movaps xmm4, xmmword [0x10027140]
movaps xmm7, xmmword [0x1002fd80]
mov esi, dword [edi]
add esi, dword [esp + 0x48]
movaps xmm2, xmm3
mulps xmm2, xmm1
cmpltps xmm2, xmmword [0x10027170]
movaps xmm0, xmm5
andps xmm0, xmm1
andps xmm5, xmm3
cmpleps xmm0, xmm5
andps xmm0, xmm2
movaps xmm5, xmm0
andps xmm5, xmm4
andps xmm4, xmm1
xorps xmm5, xmm4
movaps xmm4, xmm2
mulps xmm3, xmm3
andnps xmm4, xmm7
movaps xmm7, xmmword [0x1002fd90]
andps xmm7, xmm2
mulps xmm1, xmm1
movaps xmm6, xmm3
movaps xmm2, xmm0
andps xmm2, xmm3
movaps xmm3, xmm0
andps xmm3, xmm1
orps xmm4, xmm7
movaps xmm7, xmm1
movaps xmm1, xmm0
andnps xmm1, xmm6
orps xmm1, xmm3
movaps xmm3, xmmword [0x1002fda0]
andnps xmm0, xmm7
orps xmm0, xmm2
mulps xmm1, xmm4
addps xmm1, xmm0
rsqrtps xmm0, xmm1
movaps xmm2, xmm0
mulps xmm2, xmm1
mulps xmm2, xmm0
mulps xmm2, xmm0
mulps xmm2, xmm3
movaps xmm3, xmmword [0x1002fdb0]
add esi, eax
mulps xmm3, xmm0
addps xmm2, xmm3
mulps xmm2, xmm1
add eax, 0x40
add ecx, 0x40
sub edx, 1
orps xmm2, xmm5
movaps xmmword [esi], xmm2
jne 0x10015643
mov eax, dword [esp + 0x1c]
mov edx, dword [ebp + 0xc]
add dword [esp + 0x18], 4
inc eax
add edi, 4
cmp eax, dword [edx + 0x484]
mov dword [esp + 0x1c], eax
jl 0x100155d0
mov eax, dword [esp + 0x4c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret