Function at 0x401680
Capabilities:
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x44b004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
xor eax, eax
mov dword [ebp - 0x2c], 0x2020101
push esi
push edi
mov ebx, ecx
mov dword [ebp - 0x28], 0x2020202
mov dword [ebp - 0x24], 0x2020201
xor edi, edi
mov dword [ebp - 0x20], 0x1020202
mov dword [ebp - 0xc], eax
mov word [ebp - 8], ax
mov byte [ebp - 6], al
nop
movzx edx, byte [edi + str.80_]
mov ecx, 7
mov eax, edx
shr edx, 3
and eax, 7
sub ecx, eax
mov eax, 1
shl eax, cl
test byte [edx + ebx], al
je 0x401700
mov eax, edi
lea esi, [ebp - 0xc]
sar eax, 3
mov ecx, edi
add esi, eax
and ecx, 7
mov eax, 7
sub eax, ecx
movzx edx, byte [esi]
bts edx, eax
mov byte [esi], dl
inc edi
cmp edi, 0x38
jl 0x4016c0
mov cl, byte [ebp - 0xb]
mov edi, 0x44cf88
mov al, byte [ebp - 0xc]
mov dl, cl
mov dh, byte [ebp - 8]
mov bl, al
mov ah, byte [ebp - 7]
mov bh, byte [ebp - 6]
shr dl, 4
shl al, 4
or dl, al
shl cl, 4
mov al, byte [ebp - 0xa]
mov byte [ebp - 0x15], dl
mov dl, al
shr dl, 4
or dl, cl
shl al, 4
mov byte [ebp - 0x16], dl
mov dl, byte [ebp - 9]
mov cl, dl
shr bl, 4
shr cl, 4
and dl, 0xf
or cl, al
mov byte [ebp - 0x1b], bl
mov byte [ebp - 0x17], cl
xor ecx, ecx
mov byte [ebp - 0x1a], dl
mov byte [ebp - 0x18], dh
mov byte [ebp - 0x1c], ah
mov byte [ebp - 0x19], bh
mov dword [ebp - 0x30], ecx
movzx ecx, byte [ebp + ecx - 0x2c]
mov dword [ebp - 0xc], ecx
test ecx, ecx
je 0x4017fd
mov bh, byte [ebp - 0x15]
mov esi, ecx
mov dh, byte [ebp - 0x16]
mov cl, byte [ebp - 0x17]
nop
mov al, bh
add bl, bl
shr al, 7
add bh, bh
or bl, al
mov al, dh
shr al, 7
add dh, dh
or bh, al
mov al, cl
shr al, 7
add cl, cl
or dh, al
mov al, bl
shr al, 4
and bl, 0xf
and al, 1
or cl, al
sub esi, 1
jne 0x401780
mov byte [ebp - 0x17], cl
mov ecx, dword [ebp - 0xc]
mov byte [ebp - 0x16], dh
mov dh, byte [ebp - 0x18]
mov byte [ebp - 0x15], bh
mov bh, byte [ebp - 0x19]
mov byte [ebp - 0x1b], bl
mov al, dh
add dl, dl
shr al, 7
add dh, dh
or dl, al
mov al, ah
shr al, 7
add ah, ah
or dh, al
mov al, bh
shr al, 7
add bh, bh
or ah, al
mov al, dl
shr al, 4
and dl, 0xf
and al, 1
or bh, al
sub ecx, 1
jne 0x4017c3
mov byte [ebp - 0x19], bh
mov byte [ebp - 0x18], dh
mov byte [ebp - 0x1c], ah
mov byte [ebp - 0x1a], dl
mov al, byte [ebp - 0x15]
mov cl, bl
mov bl, byte [ebp - 0x17]
shr al, 4
shl cl, 4
or cl, al
mov byte [ebp - 0xf], ah
mov al, byte [ebp - 0x15]
mov byte [ebp - 0x14], cl
mov cl, byte [ebp - 0x16]
shl al, 4
shr cl, 4
or cl, al
mov byte [ebp - 0x10], dh
mov al, byte [ebp - 0x16]
mov byte [ebp - 0x13], cl
mov cl, bl
shl al, 4
shr cl, 4
or cl, al
mov byte [ebp - 0xe], bh
mov al, bl
mov byte [ebp - 0x12], cl
shl al, 4
or al, dl
mov byte [ebp - 0x11], al
xor eax, eax
mov dword [edi], eax
mov word [edi + 4], ax
nop dword [eax]
movzx esi, byte [eax + 0x44575c]
mov ecx, 7
mov edx, esi
shr esi, 3
and edx, 7
sub ecx, edx
mov edx, 1
shl edx, cl
test byte [ebp + esi - 0x14], dl
je 0x40188e
mov esi, eax
mov edx, eax
sar esi, 3
and edx, 7
mov ecx, 7
sub ecx, edx
movzx ebx, byte [esi + edi]
bts ebx, ecx
mov byte [esi + edi], bl
inc eax
cmp eax, 0x30
jl 0x401850
mov ecx, dword [ebp - 0x30]
add edi, 6
mov dl, byte [ebp - 0x1a]
inc ecx
mov bl, byte [ebp - 0x1b]
mov ah, byte [ebp - 0x1c]
mov dh, byte [ebp - 0x18]
mov bh, byte [ebp - 0x19]
mov dword [ebp - 0x30], ecx
cmp edi, 0x44cfe8
jl 0x401763
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041525a
mov esp, ebp
pop ebp
ret