Function at 0x1008b511
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xac
mov edx, dword [esp + 0xb8]
push esi
mov esi, dword [esp + 0xc0]
add edx, 0x108
push edi
mov edi, dword [esp + 0xbc]
mov ecx, edi
imul ecx, esi
movss xmm0, dword [edx + ecx*8]
movss dword [esp + 0x90], xmm0
movss xmm0, dword [edx + ecx*8 + 4]
add ecx, ecx
movss dword [esp + 0xa4], xmm0
mov eax, dword [edx + ecx*8]
mov ecx, dword [edx + ecx*8 + 4]
mov dword [esp + 0xac], eax
imul eax, esi, 0x18
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0xb8]
add ecx, eax
mov dword [esp + 0xc0], ecx
test esi, esi
jle 0x1008b986
mov ecx, edi
mov dword [esp + 0x98], edx
shl ecx, 5
mov dword [esp + 0x70], ecx
imul ecx, edi, 0x18
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], edx
mov dword [esp + 0x74], ecx
mov ecx, edi
shl ecx, 4
mov dword [esp + 0x78], ecx
mov ecx, edi
shl ecx, 3
mov edi, esi
mov dword [esp + 0x7c], ecx
mov ecx, esi
shl ecx, 3
sub ecx, eax
shl edi, 5
mov dword [esp + 0x94], ecx
sub edi, eax
mov ecx, esi
shl ecx, 4
sub ecx, eax
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x94]
movss xmm3, dword [edx]
movss xmm6, dword [eax]
movss xmm1, dword [eax + 4]
movaps xmm2, xmm6
mov eax, dword [esp + 0xc0]
movaps xmm0, xmm1
mulss xmm0, dword [ecx + eax + 4]
mulss xmm2, dword [ecx + eax]
mulss xmm1, dword [ecx + eax]
mulss xmm6, dword [ecx + eax + 4]
subss xmm2, xmm0
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xc0]
addss xmm6, xmm1
movss xmm1, dword [eax + 4]
movss dword [esp + 0xbc], xmm2
movaps xmm0, xmm1
movss xmm2, dword [eax]
mov eax, dword [esp + 0x88]
movaps xmm7, xmm2
mulss xmm0, dword [eax + ecx + 4]
mulss xmm1, dword [eax + ecx]
mulss xmm2, dword [eax + ecx + 4]
mulss xmm7, dword [eax + ecx]
mov eax, dword [esp + 0x98]
addss xmm2, xmm1
subss xmm7, xmm0
movss xmm1, dword [eax]
movss xmm5, dword [eax + 4]
movaps xmm4, xmm1
mov eax, ecx
movss dword [esp + 0xa8], xmm2
movaps xmm0, xmm5
movaps xmm2, xmm3
movss dword [esp + 0xc4], xmm7
mulss xmm0, dword [eax + 4]
mulss xmm1, dword [eax + 4]
mulss xmm5, dword [eax]
mulss xmm4, dword [eax]
mulss xmm3, dword [edi + eax + 4]
addss xmm5, xmm1
movss xmm1, dword [edx + 4]
subss xmm4, xmm0
mulss xmm2, dword [edi + eax]
movaps xmm0, xmm1
mulss xmm0, dword [edi + eax + 4]
mulss xmm1, dword [edi + eax]
mov eax, dword [esp + 0xb8]
subss xmm2, xmm0
addss xmm3, xmm1
movaps xmm1, xmm2
addss xmm1, dword [esp + 0xbc]
movaps xmm0, xmm3
addss xmm0, xmm6
subss xmm6, xmm3
movss dword [esp + 0x80], xmm1
movss dword [esp + 0x84], xmm0
movss xmm0, dword [esp + 0xbc]
subss xmm0, xmm2
movss dword [esp + 0x8c], xmm6
movss xmm2, dword [esp + 0xa8]
movaps xmm6, xmm4
addss xmm6, xmm7
movaps xmm7, xmm5
addss xmm7, xmm2
subss xmm2, xmm5
movss dword [esp + 0xbc], xmm0
movss xmm0, dword [esp + 0xc4]
subss xmm0, xmm4
movss dword [esp + 0xa8], xmm2
movss dword [esp + 0xc4], xmm0
movaps xmm0, xmm6
addss xmm0, xmm1
addss xmm0, dword [eax]
movss dword [eax], xmm0
movss xmm5, dword [esp + 0x84]
movaps xmm4, xmm1
mulss xmm4, dword [esp + 0x90]
movaps xmm0, xmm5
mov ecx, dword [esp + 0x94]
addss xmm0, xmm7
mulss xmm2, dword [esp + 0xb0]
movss xmm1, dword [esp + 0xbc]
movaps xmm3, xmm5
mulss xmm3, dword [esp + 0x90]
addss xmm0, dword [eax + 4]
addss xmm4, dword [esp + 8]
addss xmm3, dword [esp + 0xc]
mulss xmm1, dword [esp + 0xa4]
movss dword [eax + 4], xmm0
movaps xmm0, xmm6
mulss xmm0, dword [esp + 0xac]
mov eax, dword [esp + 0xc0]
xorps xmm1, xmmword [0x100adb80]
mulss xmm6, dword [esp + 0x90]
addss xmm4, xmm0
mulss xmm5, dword [esp + 0xac]
movaps xmm0, xmm7
mulss xmm7, dword [esp + 0x90]
mulss xmm0, dword [esp + 0xac]
addss xmm5, dword [esp + 0xc]
addss xmm3, xmm0
movss xmm0, dword [esp + 0x8c]
mulss xmm0, dword [esp + 0xa4]
addss xmm5, xmm7
addss xmm2, xmm0
movss xmm0, dword [esp + 0xc4]
mulss xmm0, dword [esp + 0xb0]
subss xmm1, xmm0
movaps xmm0, xmm4
subss xmm0, xmm2
addss xmm2, xmm4
movss dword [ecx + eax], xmm0
movaps xmm0, xmm3
subss xmm0, xmm1
addss xmm1, xmm3
movss xmm3, dword [esp + 0xbc]
mulss xmm3, dword [esp + 0xb0]
movss dword [ecx + eax + 4], xmm0
mov ecx, eax
movss xmm0, dword [esp + 0x8c]
mulss xmm0, dword [esp + 0xb0]
mov eax, dword [esp + 0x88]
movss dword [edi + ecx + 4], xmm1
movss xmm1, dword [esp + 0x80]
mulss xmm1, dword [esp + 0xac]
movss dword [edi + ecx], xmm2
movss xmm2, dword [esp + 0xa8]
mulss xmm2, dword [esp + 0xa4]
addss xmm1, dword [esp + 8]
subss xmm2, xmm0
movss xmm0, dword [esp + 0xc4]
mulss xmm0, dword [esp + 0xa4]
addss xmm1, xmm6
subss xmm3, xmm0
movaps xmm0, xmm2
addss xmm0, xmm1
subss xmm1, xmm2
movss dword [eax + ecx], xmm0
movaps xmm0, xmm3
addss xmm0, xmm5
subss xmm5, xmm3
movss dword [eax + ecx + 4], xmm0
mov eax, dword [esp + 0x7c]
add dword [esp + 0xa0], eax
mov eax, dword [esp + 0x9c]
movss dword [ecx], xmm1
movss dword [ecx + 4], xmm5
add ecx, 8
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0xb8]
add ecx, 8
add eax, dword [esp + 0x78]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xb8], ecx
add dword [esp + 0x98], eax
add edx, dword [esp + 0x70]
sub esi, 1
jne 0x1008b5e9
pop edi
pop esi
add esp, 0xac
ret