Function at 0xaeb648
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffff4
mov dword [esp + 4], ecx
mov dword [esp], edx
mov esi, eax
mov ebx, 0xb96db0
mov edi, esi
mov ecx, dword [edi]
mov eax, edi
xor edx, edx
add eax, 4
adc edx, 0
mov esi, dword [eax]
mov eax, esi
shr eax, 4
xor eax, ecx
and eax, 0xf0f0f0f
xor ecx, eax
shl eax, 4
xor esi, eax
mov eax, ecx
shr eax, 0x10
xor eax, esi
and eax, 0xffff
xor esi, eax
shl eax, 0x10
xor ecx, eax
mov eax, esi
shr eax, 2
xor eax, ecx
and eax, 0x33333333
xor ecx, eax
add eax, eax
add eax, eax
xor esi, eax
mov eax, ecx
shr eax, 8
xor eax, esi
and eax, 0xff00ff
xor esi, eax
shl eax, 8
xor ecx, eax
mov eax, esi
shr eax, 1
xor eax, ecx
and eax, 0x55555555
xor ecx, eax
add eax, eax
xor esi, eax
mov eax, ecx
shr eax, 0x1d
add ecx, ecx
add ecx, ecx
add ecx, ecx
or eax, ecx
mov ecx, eax
mov eax, esi
shr eax, 0x1d
add esi, esi
add esi, esi
add esi, esi
or eax, esi
mov esi, eax
xor eax, eax
mov dword [esp + 8], eax
cmp dword [esp + 8], 0x20
jge 0xaeb968
mov eax, dword [esp + 4]
mov edx, dword [esp + 8]
mov edx, dword [eax + edx*4]
xor edx, ecx
mov eax, dword [esp + 4]
mov edi, dword [esp + 8]
mov eax, dword [eax + edi*4 + 4]
xor eax, ecx
mov edi, eax
shr edi, 4
shl eax, 0x1c
or edi, eax
mov eax, edi
mov edi, edx
shr edi, 2
and edi, 0x3f
xor esi, dword [ebx + edi*4]
mov edi, edx
shr edi, 0xa
and edi, 0x3f
xor esi, dword [ebx + edi*4 + 0x200]
mov edi, edx
shr edi, 0x12
and edi, 0x3f
xor esi, dword [ebx + edi*4 + 0x400]
shr edx, 0x1a
and edx, 0x3f
xor esi, dword [ebx + edx*4 + 0x600]
mov edx, eax
shr edx, 2
and edx, 0x3f
xor esi, dword [ebx + edx*4 + 0x100]
mov edx, eax
shr edx, 0xa
and edx, 0x3f
xor esi, dword [ebx + edx*4 + 0x300]
mov edx, eax
shr edx, 0x12
and edx, 0x3f
xor esi, dword [ebx + edx*4 + 0x500]
shr eax, 0x1a
and eax, 0x3f
xor esi, dword [ebx + eax*4 + 0x700]
mov eax, dword [esp + 4]
mov edx, dword [esp + 8]
mov edx, dword [eax + edx*4 + 8]
xor edx, esi
mov eax, dword [esp + 4]
mov edi, dword [esp + 8]
mov eax, dword [eax + edi*4 + 0xc]
xor eax, esi
mov edi, eax
shr edi, 4
shl eax, 0x1c
or edi, eax
mov eax, edi
mov edi, edx
shr edi, 2
and edi, 0x3f
xor ecx, dword [ebx + edi*4]
mov edi, edx
shr edi, 0xa
and edi, 0x3f
xor ecx, dword [ebx + edi*4 + 0x200]
mov edi, edx
shr edi, 0x12
and edi, 0x3f
xor ecx, dword [ebx + edi*4 + 0x400]
shr edx, 0x1a
and edx, 0x3f
xor ecx, dword [ebx + edx*4 + 0x600]
mov edx, eax
shr edx, 2
and edx, 0x3f
xor ecx, dword [ebx + edx*4 + 0x100]
mov edx, eax
shr edx, 0xa
and edx, 0x3f
xor ecx, dword [ebx + edx*4 + 0x300]
mov edx, eax
shr edx, 0x12
and edx, 0x3f
xor ecx, dword [ebx + edx*4 + 0x500]
shr eax, 0x1a
and eax, 0x3f
xor ecx, dword [ebx + eax*4 + 0x700]
mov eax, dword [esp + 4]
mov edx, dword [esp + 8]
mov edx, dword [eax + edx*4 + 0x10]
xor edx, ecx
mov eax, dword [esp + 4]
mov edi, dword [esp + 8]
mov eax, dword [eax + edi*4 + 0x14]
xor eax, ecx
mov edi, eax
shr edi, 4
shl eax, 0x1c
or edi, eax
mov eax, edi
mov edi, edx
shr edi, 2
and edi, 0x3f
xor esi, dword [ebx + edi*4]
mov edi, edx
shr edi, 0xa
and edi, 0x3f
xor esi, dword [ebx + edi*4 + 0x200]
mov edi, edx
shr edi, 0x12
and edi, 0x3f
xor esi, dword [ebx + edi*4 + 0x400]
shr edx, 0x1a
and edx, 0x3f
xor esi, dword [ebx + edx*4 + 0x600]
mov edx, eax
shr edx, 2
and edx, 0x3f
xor esi, dword [ebx + edx*4 + 0x100]
mov edx, eax
shr edx, 0xa
and edx, 0x3f
xor esi, dword [ebx + edx*4 + 0x300]
mov edx, eax
shr edx, 0x12
and edx, 0x3f
xor esi, dword [ebx + edx*4 + 0x500]
shr eax, 0x1a
and eax, 0x3f
xor esi, dword [ebx + eax*4 + 0x700]
mov eax, dword [esp + 4]
mov edx, dword [esp + 8]
mov edx, dword [eax + edx*4 + 0x18]
xor edx, esi
mov eax, dword [esp + 4]
mov edi, dword [esp + 8]
mov eax, dword [eax + edi*4 + 0x1c]
xor eax, esi
mov edi, eax
shr edi, 4
shl eax, 0x1c
or edi, eax
mov eax, edi
mov edi, edx
shr edi, 2
and edi, 0x3f
xor ecx, dword [ebx + edi*4]
mov edi, edx
shr edi, 0xa
and edi, 0x3f
xor ecx, dword [ebx + edi*4 + 0x200]
mov edi, edx
shr edi, 0x12
and edi, 0x3f
xor ecx, dword [ebx + edi*4 + 0x400]
shr edx, 0x1a
and edx, 0x3f
xor ecx, dword [ebx + edx*4 + 0x600]
mov edx, eax
shr edx, 2
and edx, 0x3f
xor ecx, dword [ebx + edx*4 + 0x100]
mov edx, eax
shr edx, 0xa
and edx, 0x3f
xor ecx, dword [ebx + edx*4 + 0x300]
mov edx, eax
shr edx, 0x12
and edx, 0x3f
xor ecx, dword [ebx + edx*4 + 0x500]
shr eax, 0x1a
and eax, 0x3f
xor ecx, dword [ebx + eax*4 + 0x700]
add dword [esp + 8], 8
cmp dword [esp + 8], 0x20
jl 0xaeb6f9
mov eax, ecx
shr eax, 3
shl ecx, 0x1d
or eax, ecx
mov ecx, eax
mov eax, esi
shr eax, 3
shl esi, 0x1d
or eax, esi
mov esi, eax
mov eax, ecx
shr eax, 1
xor eax, esi
and eax, 0x55555555
xor esi, eax
add eax, eax
xor ecx, eax
mov eax, esi
shr eax, 8
xor eax, ecx
and eax, 0xff00ff
xor ecx, eax
shl eax, 8
xor esi, eax
mov eax, ecx
shr eax, 2
xor eax, esi
and eax, 0x33333333
xor esi, eax
add eax, eax
add eax, eax
xor ecx, eax
mov eax, esi
shr eax, 0x10
xor eax, ecx
and eax, 0xffff
xor ecx, eax
shl eax, 0x10
xor esi, eax
mov eax, ecx
shr eax, 4
xor eax, esi
and eax, 0xf0f0f0f
xor esi, eax
shl eax, 4
xor ecx, eax
mov eax, dword [esp]
mov dword [eax], esi
mov eax, dword [esp]
xor edx, edx
add eax, 4
adc edx, 0
mov dword [eax], ecx
add esp, 0xc
pop edi
pop esi
pop ebx
ret