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

Disassembly:
mov eax, dword [esp + 4]
push ebx
mov ebx, dword [eax]
mov edx, dword [eax + 4]
mov eax, ebx
push esi
shr eax, 4
push edi
xor eax, edx
push ebp
and eax, 0xf0f0f0f
mov ecx, dword [esp + 0x18]
mov ebp, eax
xor edx, eax
shl ebp, 4
xor ebx, ebp
mov eax, ebx
shr eax, 0x10
xor eax, edx
and eax, 0xffff
mov esi, eax
xor edx, eax
mov eax, edx
shl esi, 0x10
shr eax, 2
xor ebx, esi
xor eax, ebx
and eax, 0x33333333
mov edi, eax
xor ebx, eax
shl edi, 2
xor edx, edi
mov eax, edx
shr eax, 8
xor eax, ebx
and eax, 0xff00ff
mov ebp, eax
xor ebx, eax
shl ebp, 8
xor edx, ebp
mov esi, edx
mov eax, edx
shr esi, 0x1f
shl eax, 1
and esi, 1
or esi, eax
mov eax, ebx
mov edx, esi
xor eax, edx
and eax, 0xaaaaaaaa
xor ebx, eax
xor edx, eax
mov edi, ebx
mov eax, ebx
shr edi, 0x1f
shl eax, 1
and edi, 1
or edi, eax
xor ebp, ebp
mov ebx, edi
mov eax, edx
mov esi, edx
shl eax, 0x1c
shr esi, 4
or esi, eax
mov eax, dword [ecx]
xor esi, eax
add ecx, 4
mov edi, esi
inc ebp
and edi, 0x3f
mov eax, dword [edi*4 + 0x427880]
mov edi, esi
shr edi, 8
and edi, 0x3f
mov edi, dword [edi*4 + 0x427680]
or eax, edi
mov edi, esi
shr edi, 0x10
and edi, 0x3f
mov edi, dword [edi*4 + 0x427480]
or eax, edi
mov edi, esi
shr edi, 0x18
mov esi, edx
and edi, 0x3f
xor esi, dword [ecx]
mov edi, dword [edi*4 + 0x427280]
add ecx, 4
or eax, edi
mov edi, esi
and edi, 0x3f
mov edi, dword [edi*4 + 0x427980]
or eax, edi
mov edi, esi
shr edi, 8
and edi, 0x3f
mov edi, dword [edi*4 + 0x427780]
or eax, edi
mov edi, esi
shr edi, 0x10
and edi, 0x3f
mov edi, dword [edi*4 + 0x427580]
or eax, edi
mov edi, esi
shr edi, 0x18
and edi, 0x3f
mov edi, dword [edi*4 + 0x427380]
or eax, edi
xor ebx, eax
mov eax, ebx
mov esi, ebx
shl eax, 0x1c
shr esi, 4
or esi, eax
mov eax, dword [ecx]
xor esi, eax
add ecx, 4
mov edi, esi
mov eax, esi
shr edi, 8
and eax, 0x3f
and edi, 0x3f
mov eax, dword [eax*4 + 0x427880]
mov edi, dword [edi*4 + 0x427680]
or eax, edi
mov edi, esi
shr edi, 0x10
and edi, 0x3f
mov edi, dword [edi*4 + 0x427480]
or eax, edi
mov edi, esi
shr edi, 0x18
mov esi, ebx
and edi, 0x3f
xor esi, dword [ecx]
mov edi, dword [edi*4 + 0x427280]
add ecx, 4
or eax, edi
mov edi, esi
and edi, 0x3f
mov edi, dword [edi*4 + 0x427980]
or eax, edi
mov edi, esi
shr edi, 8
and edi, 0x3f
mov edi, dword [edi*4 + 0x427780]
or eax, edi
mov edi, esi
shr edi, 0x10
and edi, 0x3f
mov edi, dword [edi*4 + 0x427580]
or eax, edi
mov edi, esi
shr edi, 0x18
and edi, 0x3f
mov edi, dword [edi*4 + 0x427380]
or eax, edi
xor edx, eax
cmp ebp, 8
jl 0x401507
mov eax, edx
mov esi, edx
shl eax, 0x1f
shr esi, 1
or esi, eax
mov ecx, ebx
mov edx, esi
pop ebp
xor ecx, edx
pop edi
and ecx, 0xaaaaaaaa
pop esi
xor ebx, ecx
xor edx, ecx
mov eax, ebx
mov ecx, ebx
shl eax, 0x1f
shr ecx, 1
or ecx, eax
mov ebx, ecx
shr ecx, 8
xor ecx, edx
and ecx, 0xff00ff
mov eax, ecx
xor edx, ecx
shl eax, 8
xor ebx, eax
mov ecx, ebx
shr ecx, 2
xor ecx, edx
and ecx, 0x33333333
mov eax, ecx
xor edx, ecx
mov ecx, edx
shl eax, 2
shr ecx, 0x10
xor ebx, eax
xor ecx, ebx
and ecx, 0xffff
mov eax, ecx
xor ebx, ecx
shl eax, 0x10
xor edx, eax
mov ecx, edx
shr ecx, 4
xor ecx, ebx
and ecx, 0xf0f0f0f
mov eax, ecx
xor ebx, ecx
shl eax, 4
xor edx, eax
mov eax, dword [esp + 8]
mov dword [eax], edx
add dword [esp + 8], 4
mov eax, dword [esp + 8]
mov dword [eax], ebx
pop ebx
ret