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

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov ecx, dword [eax]
mov ebx, dword [edx + 4]
mov eax, ecx
shr eax, 4
xor eax, ebx
and eax, 0xf0f0f0f
xor ebx, eax
shl eax, 4
xor ecx, eax
mov eax, ecx
shr eax, 0x10
xor eax, ebx
and eax, 0xffff
xor ebx, eax
shl eax, 0x10
xor ecx, eax
mov eax, ebx
shr eax, 2
xor eax, ecx
and eax, 0x33333333
xor ecx, eax
shl eax, 2
xor ebx, eax
mov eax, ebx
shr eax, 8
xor eax, ecx
and eax, 0xff00ff
xor ecx, eax
shl eax, 8
xor ebx, eax
mov edx, ebx
shr ebx, 0x1f
add edx, edx
and ebx, 1
or edx, ebx
and edx, 0xffffffff
mov ebx, edx
mov eax, ebx
xor eax, ecx
and eax, 0xaaaaaaaa
xor ecx, eax
xor ebx, eax
mov edx, ecx
shr ecx, 0x1f
add edx, edx
and ecx, 1
or edx, ecx
and edx, 0xffffffff
xor eax, eax
mov dword [ebp - 4], eax
mov ecx, edx
mov eax, ebx
mov edx, ebx
shr edx, 4
shl eax, 0x1c
or eax, edx
mov edx, dword [ebp + 0xc]
xor eax, dword [edx]
add dword [ebp + 0xc], 4
mov esi, eax
mov edx, eax
shr esi, 8
and edx, 0x3f
and esi, 0x3f
mov edx, dword [edx*4 + 0x468768]
or edx, dword [esi*4 + 0x468568]
mov esi, eax
shr esi, 0x10
and esi, 0x3f
shr eax, 0x18
and eax, 0x3f
or edx, dword [esi*4 + 0x468368]
or edx, dword [eax*4 + 0x468168]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
add dword [ebp + 0xc], 4
xor eax, ebx
mov esi, eax
and esi, 0x3f
or edx, dword [esi*4 + 0x468868]
mov esi, eax
shr esi, 8
and esi, 0x3f
or edx, dword [esi*4 + 0x468668]
mov esi, eax
shr esi, 0x10
and esi, 0x3f
shr eax, 0x18
and eax, 0x3f
or edx, dword [esi*4 + 0x468468]
or edx, dword [eax*4 + 0x468268]
xor ecx, edx
mov eax, ecx
mov edx, ecx
shr edx, 4
shl eax, 0x1c
or eax, edx
mov edx, dword [ebp + 0xc]
xor eax, dword [edx]
add dword [ebp + 0xc], 4
mov esi, eax
mov edx, eax
shr esi, 8
and edx, 0x3f
and esi, 0x3f
mov edx, dword [edx*4 + 0x468768]
or edx, dword [esi*4 + 0x468568]
mov esi, eax
shr esi, 0x10
and esi, 0x3f
shr eax, 0x18
and eax, 0x3f
or edx, dword [esi*4 + 0x468368]
or edx, dword [eax*4 + 0x468168]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
add dword [ebp + 0xc], 4
xor eax, ecx
mov esi, eax
and esi, 0x3f
or edx, dword [esi*4 + 0x468868]
mov esi, eax
shr esi, 8
and esi, 0x3f
or edx, dword [esi*4 + 0x468668]
mov esi, eax
shr esi, 0x10
and esi, 0x3f
shr eax, 0x18
and eax, 0x3f
or edx, dword [esi*4 + 0x468468]
or edx, dword [eax*4 + 0x468268]
inc dword [ebp - 4]
xor ebx, edx
cmp dword [ebp - 4], 8
jl 0x45d9e9
mov eax, ebx
shl eax, 0x1f
shr ebx, 1
or eax, ebx
mov ebx, eax
mov eax, ebx
xor eax, ecx
and eax, 0xaaaaaaaa
xor ecx, eax
xor ebx, eax
mov edx, ecx
shr ecx, 1
shl edx, 0x1f
or edx, ecx
mov ecx, edx
mov edx, dword [ebp + 8]
mov eax, ecx
shr eax, 8
xor eax, ebx
and eax, 0xff00ff
xor ebx, eax
shl eax, 8
xor ecx, eax
mov eax, ecx
shr eax, 2
xor eax, ebx
and eax, 0x33333333
xor ebx, eax
shl eax, 2
xor ecx, eax
mov eax, ebx
shr eax, 0x10
xor eax, ecx
and eax, 0xffff
xor ecx, eax
shl eax, 0x10
xor ebx, eax
mov eax, ebx
shr eax, 4
xor eax, ecx
and eax, 0xf0f0f0f
xor ecx, eax
shl eax, 4
xor ebx, eax
mov dword [edx], ebx
add dword [ebp + 8], 4
mov eax, dword [ebp + 8]
mov dword [eax], ecx
pop esi
pop ebx
pop ecx
pop ebp
ret