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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, edx
mov esi, 0xf0f0f0f
shr eax, 4
mov edi, ecx
and eax, esi
and edi, esi
mov dword [ebp - 4], 8
xor eax, edi
xor ecx, eax
shl eax, 4
xor edx, eax
mov esi, ecx
mov eax, edx
and esi, 0xffff
shr eax, 0x10
xor eax, esi
mov esi, 0x33333333
xor ecx, eax
shl eax, 0x10
xor edx, eax
mov eax, ecx
shr eax, 2
mov edi, edx
and eax, esi
and edi, esi
mov esi, 0xff00ff
xor eax, edi
xor edx, eax
shl eax, 2
xor ecx, eax
mov edi, edx
mov eax, ecx
and edi, esi
shr eax, 8
and eax, esi
xor eax, edi
xor edx, eax
shl eax, 8
xor ecx, eax
mov eax, ecx
add ecx, ecx
shr eax, 0x1f
or eax, ecx
mov ecx, eax
xor ecx, edx
and ecx, 0xaaaaaaaa
xor edx, ecx
xor eax, ecx
mov ecx, edx
add edx, edx
shr ecx, 0x1f
or ecx, edx
mov edi, dword [ebp + 0xc]
mov esi, eax
mov edx, eax
shl esi, 0x1c
shr edx, 4
or esi, edx
xor esi, dword [edi]
add edi, 4
mov edx, esi
mov ebx, esi
shr edx, 0x18
and edx, 0x3f
shr ebx, 0x10
mov edx, dword [edx*4 + 0x41359c]
and ebx, 0x3f
or edx, dword [ebx*4 + 0x41379c]
mov ebx, esi
shr ebx, 8
and ebx, 0x3f
and esi, 0x3f
or edx, dword [ebx*4 + 0x41399c]
or edx, dword [esi*4 + 0x413b9c]
mov esi, dword [edi]
add edi, 4
xor esi, eax
mov dword [ebp + 0xc], edi
mov edi, esi
shr edi, 0x18
mov ebx, esi
and edi, 0x3f
shr ebx, 0x10
mov edi, dword [edi*4 + 0x41369c]
and ebx, 0x3f
or edi, dword [ebx*4 + 0x41389c]
mov ebx, esi
shr ebx, 8
and ebx, 0x3f
and esi, 0x3f
or edi, dword [ebx*4 + 0x413a9c]
or edi, dword [esi*4 + 0x413c9c]
or edi, edx
xor ecx, edi
mov edi, dword [ebp + 0xc]
mov esi, ecx
mov edx, ecx
shl esi, 0x1c
shr edx, 4
or esi, edx
xor esi, dword [edi]
add edi, 4
mov edx, esi
mov ebx, esi
shr edx, 0x18
and edx, 0x3f
shr ebx, 0x10
mov edx, dword [edx*4 + 0x41359c]
and ebx, 0x3f
or edx, dword [ebx*4 + 0x41379c]
mov ebx, esi
shr ebx, 8
and ebx, 0x3f
and esi, 0x3f
or edx, dword [ebx*4 + 0x41399c]
or edx, dword [esi*4 + 0x413b9c]
mov esi, dword [edi]
add edi, 4
xor esi, ecx
mov dword [ebp + 0xc], edi
mov edi, esi
shr edi, 0x18
mov ebx, esi
and edi, 0x3f
shr ebx, 0x10
mov edi, dword [edi*4 + 0x41369c]
and ebx, 0x3f
or edi, dword [ebx*4 + 0x41389c]
mov ebx, esi
shr ebx, 8
and ebx, 0x3f
or edi, dword [ebx*4 + 0x413a9c]
and esi, 0x3f
or edi, dword [esi*4 + 0x413c9c]
or edi, edx
xor eax, edi
dec dword [ebp - 4]
jne 0x403a38
mov edx, eax
shl edx, 0x1f
shr eax, 1
or edx, eax
mov eax, edx
xor eax, ecx
and eax, 0xaaaaaaaa
xor ecx, eax
xor edx, eax
mov esi, ecx
mov edi, edx
shl esi, 0x1f
shr ecx, 1
or esi, ecx
mov ecx, 0xff00ff
mov eax, esi
and edi, ecx
shr eax, 8
and eax, ecx
mov ecx, 0x33333333
xor eax, edi
xor edx, eax
shl eax, 8
xor esi, eax
mov edi, edx
mov eax, esi
and edi, ecx
shr eax, 2
and eax, ecx
xor eax, edi
xor edx, eax
shl eax, 2
xor esi, eax
mov eax, edx
mov ecx, esi
shr eax, 0x10
and ecx, 0xffff
xor eax, ecx
mov ecx, 0xf0f0f0f
xor esi, eax
shl eax, 0x10
xor edx, eax
mov edi, esi
mov eax, edx
and edi, ecx
shr eax, 4
and eax, ecx
mov ecx, dword [ebp + 8]
xor eax, edi
mov edi, eax
xor eax, esi
shl edi, 4
xor edi, edx
mov dword [ecx], edi
pop edi
mov dword [ecx + 4], eax
pop esi
xor eax, eax
pop ebx
leave
ret