Function at 0x100ec7a0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0xc
xorps xmm0, xmm0
push esi
xor esi, esi
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
cmp dword [esp + 0x1c], esi
jbe 0x100ec9ad
lea ecx, [eax + 0x10]
mov eax, dword [esp + 0x1c]
push ebx
push ebp
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
push edi
movups xmm1, xmmword [ecx]
movd edx, xmm1
movaps xmm0, xmm1
psrldq xmm0, 4
mov ecx, edx
shr ecx, 6
xor ecx, edx
and ecx, 0xcc00cc
mov esi, ecx
shl esi, 6
xor esi, ecx
xor esi, edx
mov ecx, esi
shr ecx, 0xc
xor ecx, esi
and ecx, 0xf0f0
mov edx, ecx
shl edx, 0xc
xor edx, ecx
xor edx, esi
mov dword [esp + 0x10], edx
movd edx, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
psrldq xmm1, 0xc
mov ecx, edx
shr ecx, 6
xor ecx, edx
and ecx, 0xcc00cc
mov esi, ecx
shl esi, 6
xor esi, ecx
xor esi, edx
mov ecx, esi
shr ecx, 0xc
xor ecx, esi
and ecx, 0xf0f0
mov edx, ecx
shl edx, 0xc
xor edx, ecx
movd ecx, xmm0
xor edx, esi
mov dword [esp + 0x28], edx
mov edx, ecx
shr edx, 6
xor edx, ecx
and edx, 0xcc00cc
mov esi, edx
shl esi, 6
xor esi, ecx
xor esi, edx
mov ecx, esi
shr ecx, 0xc
xor ecx, esi
and ecx, 0xf0f0
mov edx, ecx
shl edx, 0xc
xor edx, ecx
movd ecx, xmm1
xor edx, esi
mov dword [esp + 0x14], edx
mov edx, ecx
shr edx, 6
xor edx, ecx
and edx, 0xcc00cc
mov esi, edx
shl esi, 6
xor esi, ecx
xor esi, edx
mov edx, dword [esp + 0x14]
mov ecx, esi
shr ecx, 0xc
xor ecx, esi
and ecx, 0xf0f0
mov ebx, ecx
shl ebx, 0xc
xor ebx, ecx
movzx ecx, dl
xor ebx, esi
movzx edi, bl
shl edi, 8
or edi, ecx
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
movzx ecx, cl
shl edi, 8
or edi, ecx
shr ebp, 8
mov ecx, dword [esp + 0x10]
movzx ecx, cl
shl edi, 8
or edi, ecx
mov ecx, ebx
shr ecx, 8
movzx esi, cl
mov ecx, edx
shr ecx, 8
movzx ecx, cl
shl esi, 8
or esi, ecx
mov ecx, dword [esp + 0x28]
shr ecx, 8
movzx ecx, cl
shl esi, 8
or esi, ecx
mov ecx, dword [esp + 0x10]
shr ecx, 8
movzx ecx, cl
shl esi, 8
or esi, ecx
mov ecx, ebx
shr ecx, 0x10
and ebx, 0xff000000
movzx edx, cl
mov ecx, dword [esp + 0x14]
shr ecx, 0x10
movzx ecx, cl
shl edx, 8
or edx, ecx
mov ecx, dword [esp + 0x28]
shr ecx, 0x10
movzx ecx, cl
shl edx, 8
or edx, ecx
mov ecx, dword [esp + 0x10]
shr ecx, 0x10
movzx ecx, cl
shl edx, 8
or edx, ecx
mov ecx, dword [esp + 0x28]
and ecx, 0xff00ffff
or ecx, ebp
shr ecx, 8
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x14]
and ecx, 0xff0000ff
or dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x28]
shr ecx, 8
or ecx, ebx
mov ebx, dword [esp + 0x18]
mov dword [ebx + 8], ecx
mov ecx, dword [esp + 0x24]
mov dword [ebx - 0x10], edi
add ecx, 0x10
mov dword [ebx - 8], esi
mov dword [ebx], edx
add ebx, 4
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], ebx
sub eax, 1
jne 0x100ec7d0
mov eax, dword [esp + 0x20]
pop edi
pop ebp
pop ebx
mov esi, dword [eax]
mov edx, esi
shr edx, 1
xor edx, dword [eax + 4]
and edx, 0x55555555
lea ecx, [edx + edx]
xor ecx, esi
mov dword [eax], ecx
xor dword [eax + 4], edx
mov esi, dword [eax + 8]
shr esi, 1
xor esi, dword [eax + 0xc]
and esi, 0x55555555
lea ecx, [esi + esi]
xor dword [eax + 8], ecx
xor dword [eax + 0xc], esi
mov esi, dword [eax + 0x10]
shr esi, 1
xor esi, dword [eax + 0x14]
and esi, 0x55555555
lea ecx, [esi + esi]
xor dword [eax + 0x10], ecx
xor dword [eax + 0x14], esi
mov esi, dword [eax + 0x18]
shr esi, 1
xor esi, dword [eax + 0x1c]
and esi, 0x55555555
lea ecx, [esi + esi]
xor dword [eax + 0x18], ecx
xor dword [eax + 0x1c], esi
pop esi
add esp, 0xc
ret