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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
call fcn.004064a0
mov eax, dword [ebp - 8]
call fcn.004064a0
xor eax, eax
push ebp
push 0x588cfa
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 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 eax, ebx
add eax, eax
shr ebx, 0x1f
and ebx, 1
or eax, ebx
and eax, 0xffffffff
mov ebx, eax
mov eax, ebx
xor eax, ecx
and eax, 0xaaaaaaaa
xor ecx, eax
xor ebx, eax
mov eax, ecx
add eax, eax
shr ecx, 0x1f
and ecx, 1
or eax, ecx
and eax, 0xffffffff
mov ecx, eax
mov dword [ebp - 0x10], 8
mov eax, ebx
shl eax, 0x1c
mov edx, ebx
shr edx, 4
or eax, edx
mov edx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
xor eax, dword [edx + esi*4]
inc dword [ebp - 0xc]
mov edx, eax
and edx, 0x3f
mov edx, dword [edx*4 + 0x63e2dc]
mov esi, eax
shr esi, 8
and esi, 0x3f
or edx, dword [esi*4 + 0x63e0dc]
mov esi, eax
shr esi, 0x10
and esi, 0x3f
or edx, dword [esi*4 + 0x63dedc]
shr eax, 0x18
and eax, 0x3f
or edx, dword [eax*4 + 0x63dcdc]
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov eax, dword [eax + esi*4]
xor eax, ebx
inc dword [ebp - 0xc]
mov esi, eax
and esi, 0x3f
or edx, dword [esi*4 + 0x63e3dc]
mov esi, eax
shr esi, 8
and esi, 0x3f
or edx, dword [esi*4 + 0x63e1dc]
mov esi, eax
shr esi, 0x10
and esi, 0x3f
or edx, dword [esi*4 + 0x63dfdc]
shr eax, 0x18
and eax, 0x3f
or edx, dword [eax*4 + 0x63dddc]
xor ecx, edx
mov eax, ecx
shl eax, 0x1c
mov edx, ecx
shr edx, 4
or eax, edx
mov edx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
xor eax, dword [edx + esi*4]
inc dword [ebp - 0xc]
mov edx, eax
and edx, 0x3f
mov edx, dword [edx*4 + 0x63e2dc]
mov esi, eax
shr esi, 8
and esi, 0x3f
or edx, dword [esi*4 + 0x63e0dc]
mov esi, eax
shr esi, 0x10
and esi, 0x3f
or edx, dword [esi*4 + 0x63dedc]
shr eax, 0x18
and eax, 0x3f
or edx, dword [eax*4 + 0x63dcdc]
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov eax, dword [eax + esi*4]
xor eax, ecx
inc dword [ebp - 0xc]
mov esi, eax
and esi, 0x3f
or edx, dword [esi*4 + 0x63e3dc]
mov esi, eax
shr esi, 8
and esi, 0x3f
or edx, dword [esi*4 + 0x63e1dc]
mov esi, eax
shr esi, 0x10
and esi, 0x3f
or edx, dword [esi*4 + 0x63dfdc]
shr eax, 0x18
and eax, 0x3f
or edx, dword [eax*4 + 0x63dddc]
xor ebx, edx
dec dword [ebp - 0x10]
jne 0x588b2a
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 eax, ecx
shl eax, 0x1f
shr ecx, 1
or eax, ecx
mov ecx, eax
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 eax, dword [ebp - 4]
mov dword [eax], ebx
mov eax, dword [ebp - 4]
mov dword [eax + 4], ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x588d01
lea eax, [ebp - 8]
mov edx, dword [0x584bac]
mov ecx, 2
call fcn.00405840
ret