Function at 0x4049d0
Capabilities:
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x100
mov eax, dword [0x41d054]
xor eax, ebp
mov dword [ebp - 4], eax
xor eax, eax
jmp 0x4049f0
movzx ecx, byte [eax + str.80_]
mov edx, ecx
sar ecx, 3
movzx ecx, byte [ecx + 0x41e1f0]
and edx, 7
test byte [edx*2 + 0x41e1f8], cl
movzx ecx, byte [eax + 0x41e269]
setne dl
mov byte [ebp + eax - 0x74], dl
mov edx, ecx
sar ecx, 3
movzx ecx, byte [ecx + 0x41e1f0]
and edx, 7
test byte [edx*2 + 0x41e1f8], cl
movzx ecx, byte [eax + 0x41e26a]
setne dl
mov byte [ebp + eax - 0x73], dl
mov edx, ecx
sar ecx, 3
movzx ecx, byte [ecx + 0x41e1f0]
and edx, 7
test byte [edx*2 + 0x41e1f8], cl
movzx ecx, byte [eax + 0x41e26b]
setne dl
mov byte [ebp + eax - 0x72], dl
mov edx, ecx
sar ecx, 3
movzx ecx, byte [ecx + 0x41e1f0]
and edx, 7
test byte [edx*2 + 0x41e1f8], cl
setne dl
mov byte [ebp + eax - 0x71], dl
add eax, 4
cmp eax, 0x38
jl 0x4049f0
push ebx
push esi
xor ecx, ecx
push edi
mov dword [ebp - 0xf8], ecx
jmp 0x404aa6
mov ecx, dword [ebp - 0xf8]
movzx ebx, byte [ecx + 0x41e2a0]
lea eax, [ecx + ecx]
lea edx, [ebp + eax*4 - 0xf0]
lea eax, [ebp + eax*4 - 0xf4]
mov dword [edx], 0
mov dword [ebp - 0x100], eax
mov dword [eax], 0
mov dword [ebp - 0xfc], edx
xor esi, esi
lea ecx, [ebx + 3]
lea eax, [ebx + 2]
mov edi, edi
lea edi, [ecx - 3]
cmp edi, 0x1c
jge 0x404aee
mov dl, byte [ebp + eax - 0x76]
jmp 0x404af5
mov dl, byte [ebp + edi - 0x90]
lea edi, [ecx - 2]
mov byte [ebp + esi - 0x3c], dl
cmp edi, 0x1c
jge 0x404b07
mov dl, byte [ebp + eax - 0x75]
jmp 0x404b0e
mov dl, byte [ebp + edi - 0x90]
mov byte [ebp + esi - 0x3b], dl
cmp eax, 0x1c
jge 0x404b1d
mov dl, byte [ebp + eax - 0x74]
jmp 0x404b24
mov dl, byte [ebp + eax - 0x90]
mov byte [ebp + esi - 0x3a], dl
cmp ecx, 0x1c
jge 0x404b33
mov dl, byte [ebp + eax - 0x73]
jmp 0x404b3a
mov dl, byte [ebp + ecx - 0x90]
mov byte [ebp + esi - 0x39], dl
add esi, 4
add eax, 4
add ecx, 4
cmp esi, 0x1c
jl 0x404ae0
mov edi, 0x1c
lea edx, [ebx + 0x1f]
lea eax, [ebx + 0x1e]
lea ecx, [edx - 3]
cmp ecx, 0x38
jge 0x404b65
mov cl, byte [ebp + eax - 0x76]
jmp 0x404b6c
mov cl, byte [ebp + ecx - 0x90]
lea esi, [edx - 2]
mov byte [ebp + edi - 0x3c], cl
cmp esi, 0x38
jge 0x404b7e
mov cl, byte [ebp + eax - 0x75]
jmp 0x404b85
mov cl, byte [ebp + esi - 0x90]
mov byte [ebp + edi - 0x3b], cl
cmp eax, 0x38
jge 0x404b94
mov cl, byte [ebp + eax - 0x74]
jmp 0x404b9b
mov cl, byte [ebp + eax - 0x90]
mov byte [ebp + edi - 0x3a], cl
cmp edx, 0x38
jge 0x404baa
mov cl, byte [ebp + eax - 0x73]
jmp 0x404bb1
mov cl, byte [ebp + edx - 0x90]
mov byte [ebp + edi - 0x39], cl
add edi, 4
add eax, 4
add edx, 4
cmp edi, 0x38
jl 0x404b57
xor eax, eax
jmp 0x404bd0
movzx edx, byte [eax + 0x41e2b0]
cmp byte [ebp + edx - 0x3c], 0
mov edx, dword [ebp - 0x100]
je 0x404bed
mov ecx, dword [eax*4 + 0x41e208]
or dword [edx], ecx
movzx ecx, byte [eax + 0x41e2c8]
cmp byte [ebp + ecx - 0x3c], 0
mov ecx, dword [ebp - 0xfc]
je 0x404c0a
mov esi, dword [eax*4 + 0x41e208]
or dword [ecx], esi
movzx esi, byte [eax + 0x41e2b1]
cmp byte [ebp + esi - 0x3c], 0
je 0x404c21
mov esi, dword [eax*4 + 0x41e20c]
or dword [edx], esi
movzx esi, byte [eax + 0x41e2c9]
cmp byte [ebp + esi - 0x3c], 0
je 0x404c38
mov esi, dword [eax*4 + 0x41e20c]
or dword [ecx], esi
movzx esi, byte [eax + 0x41e2b2]
cmp byte [ebp + esi - 0x3c], 0
je 0x404c4f
mov esi, dword [eax*4 + 0x41e210]
or dword [edx], esi
movzx esi, byte [eax + 0x41e2ca]
cmp byte [ebp + esi - 0x3c], 0
je 0x404c66
mov esi, dword [eax*4 + 0x41e210]
or dword [ecx], esi
movzx esi, byte [eax + 0x41e2b3]
cmp byte [ebp + esi - 0x3c], 0
je 0x404c7d
mov esi, dword [eax*4 + 0x41e214]
or dword [edx], esi
movzx esi, byte [eax + 0x41e2cb]
cmp byte [ebp + esi - 0x3c], 0
je 0x404c94
mov esi, dword [eax*4 + 0x41e214]
or dword [ecx], esi
movzx esi, byte [eax + 0x41e2b4]
cmp byte [ebp + esi - 0x3c], 0
je 0x404cab
mov esi, dword [eax*4 + 0x41e218]
or dword [edx], esi
movzx esi, byte [eax + 0x41e2cc]
cmp byte [ebp + esi - 0x3c], 0
je 0x404cc2
mov esi, dword [eax*4 + 0x41e218]
or dword [ecx], esi
movzx esi, byte [eax + 0x41e2b5]
cmp byte [ebp + esi - 0x3c], 0
je 0x404cd9
mov esi, dword [eax*4 + 0x41e21c]
or dword [edx], esi
movzx edx, byte [eax + 0x41e2cd]
cmp byte [ebp + edx - 0x3c], 0
je 0x404cf0
mov edx, dword [eax*4 + 0x41e21c]
or dword [ecx], edx
add eax, 6
cmp eax, 0x18
jl 0x404bd0
mov eax, dword [ebp - 0xf8]
inc eax
mov dword [ebp - 0xf8], eax
cmp eax, 0x10
jl 0x404aa0
lea ecx, [ebp - 0xf4]
call fcn.004047e0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040a942
mov esp, ebp
pop ebp
ret