Function at 0x408b50
Capabilities:
Encode data using xor

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
push edi
xor esi, esi
xor edi, edi
mov dword [esp + 0x14], 0x19
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], 8
lea ebx, [eax + 8]
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
mov ecx, edi
shr ecx, 0x10
xor ecx, edi
mov edx, ecx
and ecx, ebp
and edx, eax
mov eax, dword [ebx - 8]
mov ebp, edx
shl ebp, 0x10
xor eax, ebp
mov ebp, ecx
xor eax, edx
mov edx, dword [ebx - 4]
shl ebp, 0x10
xor edx, ebp
xor eax, edi
xor edx, ecx
xor edx, edi
mov ecx, edx
shl ecx, 0x1c
shr edx, 4
or ecx, edx
mov edx, ecx
mov ebp, ecx
shr edx, 0x18
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x4700fc]
and ebp, 0x3f
or edx, dword [ebp*4 + 0x46fefc]
mov ebp, eax
shr ebp, 0x18
and ebp, 0x3f
or edx, dword [ebp*4 + 0x46fffc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
or edx, dword [ebp*4 + 0x46fcfc]
mov ebp, eax
shr ebp, 0x10
and ebp, 0x3f
or edx, dword [ebp*4 + 0x46fdfc]
mov ebp, eax
shr ebp, 8
and ebp, 0x3f
and eax, 0x3f
or edx, dword [ebp*4 + 0x46fbfc]
mov ebp, dword [ecx*4 + 0x46fafc]
mov ecx, dword [eax*4 + 0x46f9fc]
mov eax, dword [esp + 0x2c]
or edx, ebp
mov ebp, dword [esp + 0x28]
or edx, ecx
xor esi, edx
mov ecx, esi
shr ecx, 0x10
xor ecx, esi
mov edx, ecx
and ecx, eax
and edx, ebp
mov ebp, dword [ebx]
mov eax, edx
shl eax, 0x10
xor eax, ebp
mov ebp, ecx
xor eax, edx
mov edx, dword [ebx + 4]
shl ebp, 0x10
xor edx, ebp
xor eax, esi
xor edx, ecx
xor edx, esi
mov ecx, edx
shl ecx, 0x1c
shr edx, 4
or ecx, edx
mov edx, ecx
shr edx, 0x18
mov ebp, ecx
and edx, 0x3f
shr ebp, 0x10
mov edx, dword [edx*4 + 0x4700fc]
and ebp, 0x3f
add ebx, 0x10
or edx, dword [ebp*4 + 0x46fefc]
mov ebp, eax
shr ebp, 0x18
and ebp, 0x3f
or edx, dword [ebp*4 + 0x46fffc]
mov ebp, ecx
shr ebp, 8
and ebp, 0x3f
and ecx, 0x3f
or edx, dword [ebp*4 + 0x46fcfc]
mov ebp, eax
shr ebp, 0x10
and ebp, 0x3f
or edx, dword [ebp*4 + 0x46fdfc]
mov ebp, eax
shr ebp, 8
and ebp, 0x3f
and eax, 0x3f
or edx, dword [ebp*4 + 0x46fbfc]
mov ebp, dword [ecx*4 + 0x46fafc]
mov ecx, dword [eax*4 + 0x46f9fc]
mov eax, dword [esp + 0x10]
or edx, ebp
or edx, ecx
xor edi, edx
dec eax
mov dword [esp + 0x10], eax
jne 0x408b72
mov eax, dword [esp + 0x14]
mov edx, esi
dec eax
mov esi, edi
mov edi, edx
mov dword [esp + 0x14], eax
jne 0x408b63
mov eax, esi
mov ecx, edx
shl eax, 0x1f
shr esi, 1
shl ecx, 0x1f
shr edx, 1
or eax, esi
or ecx, edx
mov edx, eax
mov esi, ecx
shr edx, 1
and edx, 0x55555555
and esi, 0x55555555
xor edx, esi
pop edi
xor ecx, edx
add edx, edx
xor eax, edx
mov edx, ecx
shr edx, 8
mov esi, eax
and edx, 0xff00ff
and esi, 0xff00ff
xor edx, esi
xor eax, edx
shl edx, 8
xor ecx, edx
mov edx, eax
shr edx, 2
mov esi, ecx
and edx, 0x33333333
and esi, 0x33333333
xor edx, esi
xor ecx, edx
shl edx, 2
xor eax, edx
mov edx, ecx
mov esi, eax
shr edx, 0x10
and esi, 0xffff
xor edx, esi
xor eax, edx
shl edx, 0x10
xor ecx, edx
mov edx, eax
shr edx, 4
mov esi, ecx
and edx, 0xf0f0f0f
and esi, 0xf0f0f0f
xor edx, esi
mov esi, edx
xor esi, ecx
mov ecx, dword [esp + 0x18]
shl edx, 4
xor edx, eax
mov eax, dword [esp + 0x1c]
mov dword [ecx], esi
pop esi
mov dword [eax], edx
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret