Function at 0x4c47dc
Capabilities:
Encode data using xor
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
mov dword [ebp - 4], edx
mov eax, ecx
shl eax, 2
add dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.004c1e9c
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
call fcn.004c1e9c
mov esi, eax
mov eax, ebx
shr eax, 4
xor eax, esi
and eax, 0xf0f0f0f
xor esi, eax
shl eax, 4
xor ebx, eax
mov eax, ebx
shr eax, 0x10
xor eax, esi
and eax, 0xffff
xor esi, eax
shl eax, 0x10
xor ebx, eax
mov eax, esi
shr eax, 2
xor eax, ebx
and eax, 0x33333333
xor ebx, eax
shl eax, 2
xor esi, eax
mov eax, esi
shr eax, 8
xor eax, ebx
and eax, 0xff00ff
xor ebx, eax
shl eax, 8
xor esi, eax
mov eax, esi
add eax, eax
shr esi, 0x1f
or eax, esi
mov esi, eax
mov eax, esi
xor eax, ebx
and eax, 0xaaaaaaaa
xor esi, eax
xor ebx, eax
mov eax, ebx
add eax, eax
shr ebx, 0x1f
or eax, ebx
mov ebx, eax
mov eax, dword [ebp + 8]
shl eax, 2
add dword [ebp + 0xc], eax
mov dword [ebp - 8], 8
mov eax, esi
shl eax, 0x1c
mov edx, esi
shr edx, 4
or eax, edx
mov edx, dword [ebp + 0xc]
xor eax, dword [edx]
add dword [ebp + 0xc], 4
mov edx, dword [ebp + 0xc]
mov edx, dword [edx]
xor edx, esi
add dword [ebp + 0xc], 4
mov ecx, eax
and ecx, 0x3f
mov ecx, dword [ecx*4 + 0x58f2b4]
mov edi, eax
shr edi, 8
and edi, 0x3f
or ecx, dword [edi*4 + 0x58f3b4]
mov edi, eax
shr edi, 0x10
and edi, 0x3f
or ecx, dword [edi*4 + 0x58f4b4]
shr eax, 0x18
and eax, 0x3f
or ecx, dword [eax*4 + 0x58f5b4]
mov eax, edx
and eax, 0x3f
or ecx, dword [eax*4 + 0x58f6b4]
mov eax, edx
shr eax, 8
and eax, 0x3f
or ecx, dword [eax*4 + 0x58f7b4]
mov eax, edx
shr eax, 0x10
and eax, 0x3f
or ecx, dword [eax*4 + 0x58f8b4]
shr edx, 0x18
and edx, 0x3f
or ecx, dword [edx*4 + 0x58f9b4]
xor ebx, ecx
mov eax, ebx
shl eax, 0x1c
mov edx, ebx
shr edx, 4
or eax, edx
mov edx, dword [ebp + 0xc]
xor eax, dword [edx]
add dword [ebp + 0xc], 4
mov edx, dword [ebp + 0xc]
mov edx, dword [edx]
xor edx, ebx
add dword [ebp + 0xc], 4
mov ecx, eax
and ecx, 0x3f
mov ecx, dword [ecx*4 + 0x58f2b4]
mov edi, eax
shr edi, 8
and edi, 0x3f
or ecx, dword [edi*4 + 0x58f3b4]
mov edi, eax
shr edi, 0x10
and edi, 0x3f
or ecx, dword [edi*4 + 0x58f4b4]
shr eax, 0x18
and eax, 0x3f
or ecx, dword [eax*4 + 0x58f5b4]
mov eax, edx
and eax, 0x3f
or ecx, dword [eax*4 + 0x58f6b4]
mov eax, edx
shr eax, 8
and eax, 0x3f
or ecx, dword [eax*4 + 0x58f7b4]
mov eax, edx
shr eax, 0x10
and eax, 0x3f
or ecx, dword [eax*4 + 0x58f8b4]
shr edx, 0x18
and edx, 0x3f
or ecx, dword [edx*4 + 0x58f9b4]
xor esi, ecx
dec dword [ebp - 8]
jne 0x4c4888
mov eax, esi
shl eax, 0x1f
shr esi, 1
or eax, esi
mov esi, eax
mov eax, esi
xor eax, ebx
and eax, 0xaaaaaaaa
xor esi, eax
xor ebx, eax
mov eax, ebx
shl eax, 0x1f
shr ebx, 1
or eax, ebx
mov ebx, eax
mov eax, ebx
shr eax, 8
xor eax, esi
and eax, 0xff00ff
xor esi, eax
shl eax, 8
xor ebx, eax
mov eax, ebx
shr eax, 2
xor eax, esi
and eax, 0x33333333
xor esi, eax
shl eax, 2
xor ebx, eax
mov eax, esi
shr eax, 0x10
xor eax, ebx
and eax, 0xffff
xor ebx, eax
shl eax, 0x10
xor esi, eax
mov eax, esi
shr eax, 4
xor eax, ebx
and eax, 0xf0f0f0f
xor ebx, eax
shl eax, 4
xor esi, eax
mov eax, esi
call fcn.004c1e9c
mov edx, dword [ebp - 4]
mov dword [edx], eax
mov eax, ebx
call fcn.004c1e9c
mov edx, dword [ebp - 4]
mov dword [edx + 4], eax
pop edi
pop esi
pop ebx
pop ecx
pop ecx
pop ebp
ret 8