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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff8
mov edi, edx
mov dword [esp], eax
mov ebx, dword [0x502db0]
mov ebx, dword [ebx]
mov eax, dword [esp]
mov eax, dword [eax]
call ebx
mov ebx, eax
mov esi, dword [0x502db0]
mov esi, dword [esi]
mov eax, dword [esp]
mov eax, dword [eax + 4]
call esi
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 dword [esp + 4], 8
mov eax, esi
shl eax, 0x1c
mov edx, esi
shr edx, 4
or eax, edx
xor eax, dword [edi]
add edi, 4
mov edx, dword [edi]
xor edx, esi
add edi, 4
mov ecx, eax
and ecx, 0x3f
mov ecx, dword [ecx*4 + 0x4fe078]
mov ebp, eax
shr ebp, 8
and ebp, 0x3f
or ecx, dword [ebp*4 + 0x4fe178]
mov ebp, eax
shr ebp, 0x10
and ebp, 0x3f
or ecx, dword [ebp*4 + 0x4fe278]
shr eax, 0x18
and eax, 0x3f
or ecx, dword [eax*4 + 0x4fe378]
mov eax, edx
and eax, 0x3f
or ecx, dword [eax*4 + 0x4fe478]
mov eax, edx
shr eax, 8
and eax, 0x3f
or ecx, dword [eax*4 + 0x4fe578]
mov eax, edx
shr eax, 0x10
and eax, 0x3f
or ecx, dword [eax*4 + 0x4fe678]
shr edx, 0x18
and edx, 0x3f
or ecx, dword [edx*4 + 0x4fe778]
xor ebx, ecx
mov eax, ebx
shl eax, 0x1c
mov edx, ebx
shr edx, 4
or eax, edx
xor eax, dword [edi]
add edi, 4
mov edx, dword [edi]
xor edx, ebx
add edi, 4
mov ecx, eax
and ecx, 0x3f
mov ecx, dword [ecx*4 + 0x4fe078]
mov ebp, eax
shr ebp, 8
and ebp, 0x3f
or ecx, dword [ebp*4 + 0x4fe178]
mov ebp, eax
shr ebp, 0x10
and ebp, 0x3f
or ecx, dword [ebp*4 + 0x4fe278]
shr eax, 0x18
and eax, 0x3f
or ecx, dword [eax*4 + 0x4fe378]
mov eax, edx
and eax, 0x3f
or ecx, dword [eax*4 + 0x4fe478]
mov eax, edx
shr eax, 8
and eax, 0x3f
or ecx, dword [eax*4 + 0x4fe578]
mov eax, edx
shr eax, 0x10
and eax, 0x3f
or ecx, dword [eax*4 + 0x4fe678]
shr edx, 0x18
and edx, 0x3f
or ecx, dword [edx*4 + 0x4fe778]
xor esi, ecx
dec dword [esp + 4]
jne 0x497176
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 edi, dword [0x502db0]
mov edi, dword [edi]
mov eax, esi
call edi
mov edx, dword [esp]
mov dword [edx], eax
mov esi, dword [0x502db0]
mov esi, dword [esi]
mov eax, ebx
call esi
mov edx, dword [esp]
mov dword [edx + 4], eax
pop ecx
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret