Function at 0x40b860
Capabilities:
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
mov ecx, dword [ebp + 8]
mov eax, ecx
and eax, 0x1f80000
mov edx, ecx
mov ebx, ecx
and edx, 0xfffff800
shr ebx, 2
and ebx, 0x7e000
shl edx, 2
or ebx, eax
mov eax, ecx
and eax, 0x1f800000
shr ebx, 2
or ebx, eax
mov eax, ecx
and eax, 0xf8000001
shr ebx, 2
or ebx, eax
mov eax, ecx
shl eax, 0x1f
shr ebx, 1
or ebx, eax
mov eax, ecx
and eax, 0x1f80
or edx, eax
mov eax, ecx
and eax, 0x1f8
shl edx, 2
or edx, eax
mov eax, ecx
and eax, 0x1f
shl edx, 2
or edx, eax
shr ecx, 0x17
and ecx, 0x100
shl edx, 9
or edx, ecx
mov eax, ebx
mov ecx, dword [ebp + 0xc]
shr eax, 0x10
movzx edi, al
mov esi, ebx
movzx eax, byte [ecx + 1]
xor edi, eax
shr esi, 0x18
movzx eax, byte [ecx]
xor esi, eax
shr ebx, 8
movzx eax, byte [ecx + 2]
movzx ebx, bl
xor ebx, eax
mov eax, edx
shr eax, 0x18
mov dword [ebp + 8], eax
movzx eax, byte [ecx + 3]
xor dword [ebp + 8], eax
mov eax, edx
shr eax, 0x10
movzx eax, al
mov dword [ebp + 0xc], eax
movzx eax, byte [ecx + 4]
xor dword [ebp + 0xc], eax
movzx eax, byte [ecx + 5]
mov ecx, edi
shr edx, 8
movzx edx, dl
xor edx, eax
shr ecx, 4
mov eax, esi
mov dword [ebp - 8], edx
shl eax, 4
or ecx, eax
mov eax, esi
and eax, 1
and ecx, 0x20
shl eax, 3
or ecx, eax
mov eax, edi
shr eax, 5
or ecx, eax
mov eax, edi
and eax, 0x10
or ecx, eax
mov eax, esi
and eax, 0x80
movzx edx, byte [ecx + 0x583e58]
mov ecx, esi
shr ecx, 1
and esi, 4
and ecx, 0x3c
shl esi, 2
or ecx, eax
shr ecx, 2
or ecx, esi
movzx eax, byte [ecx + 0x583e18]
mov ecx, ebx
shl eax, 4
or edx, eax
shr ecx, 6
shl edx, 4
mov eax, ebx
shr eax, 5
mov dword [ebp - 4], edx
mov edx, ebx
and edx, 0x40
or edx, eax
lea eax, [edi*4]
or ecx, eax
shr edx, 2
and ecx, 0x20
and edi, 7
or edx, ecx
add edi, edi
or edx, edi
mov ecx, ebx
mov edi, dword [ebp - 4]
shr ecx, 1
and ecx, 0xf
movzx eax, byte [edx + 0x583e98]
mov edx, dword [ebp + 8]
or edi, eax
mov eax, ebx
shl edi, 4
and eax, 1
and ebx, 0x20
shl eax, 4
or ecx, eax
or ecx, ebx
mov ebx, dword [ebp + 0xc]
movzx eax, byte [ecx + 0x583ed8]
mov ecx, edx
or edi, eax
shr ecx, 1
and ecx, 0x3c
shl edi, 4
mov eax, edx
and eax, 0x80
or ecx, eax
mov eax, edx
and eax, 4
shr ecx, 2
shl eax, 2
or ecx, eax
movzx eax, byte [ecx + 0x583f18]
mov ecx, ebx
or edi, eax
shr ecx, 4
mov eax, edx
shl edi, 4
shl eax, 4
and edx, 1
or ecx, eax
shl edx, 3
mov eax, ebx
and ecx, 0x20
shr eax, 5
or ecx, eax
mov eax, ebx
or ecx, edx
and eax, 0x10
mov esi, dword [ebp - 8]
or ecx, eax
mov edx, esi
and edx, 0x40
movzx eax, byte [ecx + 0x583f58]
mov ecx, esi
or edi, eax
shr ecx, 6
mov eax, esi
shl edi, 4
shr eax, 5
or edx, eax
lea eax, [ebx*4]
or ecx, eax
shr edx, 2
and ecx, 0x20
and ebx, 7
or edx, ecx
add ebx, ebx
mov ecx, esi
or edx, ebx
shr ecx, 1
and ecx, 0xf
movzx eax, byte [edx + 0x583f98]
or edi, eax
mov eax, esi
and eax, 1
shl edi, 4
shl eax, 4
and esi, 0x20
or ecx, eax
or ecx, esi
movzx eax, byte [ecx + 0x583fd8]
or edi, eax
mov esi, edi
mov eax, edi
and esi, 8
and eax, 0x10
shl esi, 3
or esi, eax
mov eax, edi
and eax, 0x1800
shl esi, 4
or esi, eax
mov eax, edi
and eax, 2
add esi, esi
or esi, eax
mov eax, edi
and eax, 0xffff0000
add esi, esi
or esi, eax
mov eax, edi
and eax, 0x40
add esi, esi
or esi, eax
mov eax, edi
and eax, 0x200
shl esi, 2
or esi, eax
mov eax, edi
and eax, 1
add esi, esi
or esi, eax
mov eax, edi
and eax, 0x8000
shl esi, 2
or esi, eax
mov eax, edi
and eax, 0x100000
shl esi, 3
or esi, eax
mov eax, edi
and eax, 0x2020120
add esi, esi
or esi, eax
mov eax, edi
add esi, esi
and eax, 0x4000
or esi, eax
mov eax, edi
add esi, esi
and eax, 4
mov edx, edi
or esi, eax
shr edx, 5
and edx, 0x800000
shl esi, 3
mov eax, edi
mov ecx, edi
and eax, 0x4000000
and ecx, 0x480
or edx, eax
mov eax, edi
and eax, 0x20000000
shr edx, 2
or edx, eax
mov eax, edi
and eax, 0x200000
shr edx, 1
or edx, eax
mov eax, edi
and eax, 0x40800000
shr edx, 4
or edx, eax
mov eax, edi
and eax, 0x80000
shr edx, 2
or edx, eax
mov eax, edi
and eax, 0x1000000
shr edx, 3
or edx, eax
mov eax, edi
and eax, 0x880000ff
shr edx, 2
or eax, edx
and edi, 0x442000
shr eax, 1
or eax, ecx
shr eax, 1
or eax, edi
shr eax, 6
pop edi
or eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret