Function at 0x404070
Capabilities:
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
mov esi, eax
mov eax, edx
shr eax, 2
and eax, 0x7e000
mov ecx, edx
and ecx, 0x1f80000
or eax, ecx
shr eax, 2
mov ecx, edx
and ecx, 0x1f800000
or eax, ecx
shr eax, 2
mov ecx, edx
and ecx, 0xf8000001
or eax, ecx
shr eax, 1
mov ecx, edx
shl ecx, 0x1f
or eax, ecx
push edi
mov ecx, edx
and ecx, 0xfffff800
add ecx, ecx
add ecx, ecx
mov edi, edx
and edi, 0x1f80
or ecx, edi
add ecx, ecx
add ecx, ecx
mov edi, edx
and edi, 0x1f8
or ecx, edi
add ecx, ecx
add ecx, ecx
mov edi, edx
and edi, 0x1f
or ecx, edi
shl ecx, 9
shr edx, 0x17
mov ebx, eax
and edx, 0x100
or ecx, edx
mov edx, eax
shr eax, 8
mov byte [ebp - 0xe], al
mov eax, ecx
shr eax, 0x18
mov byte [ebp - 0xd], al
mov eax, ecx
shr eax, 0x10
mov byte [ebp - 0xc], al
movzx eax, byte [esi + 2]
xor byte [ebp - 0xe], al
movzx eax, byte [esi + 3]
xor byte [ebp - 0xd], al
movzx eax, byte [esi + 4]
movzx edi, byte [ebp - 0xd]
xor byte [ebp - 0xc], al
shr ecx, 8
xor cl, byte [esi + 5]
shr edx, 0x18
xor dl, byte [esi]
shr ebx, 0x10
xor bl, byte [esi + 1]
movzx esi, byte [ebp - 0xe]
mov dword [ebp - 4], edi
movzx edi, byte [ebp - 0xc]
movzx ecx, cl
movzx edx, dl
movzx eax, bl
mov dword [ebp - 0x10], ecx
mov dword [ebp - 8], edi
mov ecx, eax
mov edi, edx
shl edi, 4
shr ecx, 4
or ecx, edi
and ecx, 0x20
mov edi, edx
and edi, 1
add edi, edi
add edi, edi
add edi, edi
or ecx, edi
mov ebx, edx
mov edi, eax
sar edi, 5
and edi, 0xf
or ecx, edi
mov edi, eax
and edi, 0x10
or ecx, edi
mov edi, edx
movzx ecx, byte [ecx + 0x630360]
and edx, 4
add edx, edx
add edx, edx
shr edi, 1
and edi, 0x3c
and ebx, 0x80
or edi, ebx
shr edi, 2
or edi, edx
movzx edx, byte [edi + 0x630320]
shl edx, 4
or ecx, edx
mov edx, esi
shr edx, 6
lea edi, [eax*4]
or edx, edi
and edx, 0x20
mov edi, esi
shr edi, 2
and edi, 0x10
or edx, edi
mov edi, esi
and eax, 7
sar edi, 7
add eax, eax
and edi, 0xf
or edx, edi
or edx, eax
movzx eax, byte [edx + 0x6303a0]
mov edx, esi
shr edx, 1
shl ecx, 4
or ecx, eax
mov eax, esi
and edx, 0xf
and esi, 0x20
and eax, 1
shl eax, 4
or edx, eax
mov eax, dword [ebp - 4]
or edx, esi
movzx edx, byte [edx + 0x6303e0]
shl ecx, 4
or ecx, edx
mov edx, eax
shr edx, 1
and edx, 0x3c
mov esi, eax
and esi, 0x80
or edx, esi
mov esi, eax
and esi, 4
add esi, esi
shr edx, 2
add esi, esi
or edx, esi
movzx edx, byte [edx + 0x630420]
shl ecx, 4
or ecx, edx
mov edx, dword [ebp - 8]
mov esi, edx
mov edi, eax
shr esi, 4
shl edi, 4
shl ecx, 4
or esi, edi
and eax, 1
add eax, eax
add eax, eax
add eax, eax
and esi, 0x20
or esi, eax
mov eax, edx
sar eax, 5
and eax, 0xf
or esi, eax
mov eax, edx
and eax, 0x10
or esi, eax
movzx eax, byte [esi + 0x630460]
or ecx, eax
mov eax, dword [ebp - 0x10]
mov esi, eax
lea edi, [edx*4]
shr esi, 6
or esi, edi
mov edi, eax
and edx, 7
add edx, edx
and esi, 0x20
shr edi, 2
and edi, 0x10
or esi, edi
mov edi, eax
sar edi, 7
and edi, 0xf
or esi, edi
or esi, edx
movzx edx, byte [esi + 0x6304a0]
mov esi, eax
shl ecx, 4
or ecx, edx
mov edx, eax
shr edx, 1
and eax, 0x20
and edx, 0xf
and esi, 1
shl esi, 4
or edx, esi
or edx, eax
movzx eax, byte [edx + 0x6304e0]
shl ecx, 4
or ecx, eax
mov eax, ecx
and eax, 8
add eax, eax
add eax, eax
add eax, eax
mov edx, ecx
and edx, 0x10
or eax, edx
shl eax, 4
mov edx, ecx
and edx, 0x1800
or eax, edx
add eax, eax
mov edx, ecx
and edx, 2
or eax, edx
add eax, eax
mov edx, ecx
and edx, 0xffff0000
or eax, edx
add eax, eax
mov edx, ecx
and edx, 0x40
or eax, edx
add eax, eax
add eax, eax
mov edx, ecx
and edx, 0x200
or eax, edx
mov edx, ecx
add eax, eax
and edx, 1
or eax, edx
add eax, eax
add eax, eax
mov edx, ecx
and edx, 0x8000
or eax, edx
add eax, eax
add eax, eax
add eax, eax
mov edx, ecx
and edx, 0x100000
or eax, edx
add eax, eax
mov edx, ecx
and edx, 0x2020120
or eax, edx
add eax, eax
mov edx, ecx
and edx, 0x4000
or eax, edx
add eax, eax
mov edx, ecx
and edx, 4
or eax, edx
mov edx, ecx
shr edx, 5
and edx, 0x800000
mov esi, ecx
and esi, 0x4000000
or edx, esi
shr edx, 2
mov esi, ecx
and esi, 0x20000000
or edx, esi
shr edx, 1
mov esi, ecx
and esi, 0x200000
or edx, esi
shr edx, 4
mov esi, ecx
and esi, 0x40800000
or edx, esi
shr edx, 2
mov esi, ecx
and esi, 0x80000
or edx, esi
shr edx, 3
mov esi, ecx
and esi, 0x1000000
or edx, esi
shr edx, 2
mov esi, ecx
and esi, 0x880000ff
or edx, esi
shr edx, 1
mov esi, ecx
and esi, 0x480
or edx, esi
add eax, eax
shr edx, 1
and ecx, 0x442000
add eax, eax
or edx, ecx
pop edi
add eax, eax
shr edx, 6
pop esi
or eax, edx
pop ebx
mov esp, ebp
pop ebp
ret