Function at 0x401000
Capabilities:
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x104
mov dword [ebp - 0x104], 0
jmp 0x401024
mov eax, dword [ebp - 0x104]
add eax, 1
mov dword [ebp - 0x104], eax
cmp dword [ebp - 0x104], 0x38
jge 0x401081
mov ecx, dword [ebp - 0x104]
movzx edx, byte [ecx + str.80_]
mov dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0xfc]
and eax, 7
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0xfc]
sar ecx, 3
mov edx, dword [ebp + 8]
movzx eax, byte [edx + ecx]
mov ecx, dword [ebp - 0x100]
movzx edx, word [ecx*2 + section..data]
and eax, edx
neg eax
sbb eax, eax
neg eax
mov ecx, dword [ebp - 0x104]
mov byte [ebp + ecx - 0x38], al
jmp 0x401015
mov dword [ebp - 0x78], 0
jmp 0x401093
mov edx, dword [ebp - 0x78]
add edx, 1
mov dword [ebp - 0x78], edx
cmp dword [ebp - 0x78], 0x10
jge 0x40126b
cmp dword [ebp + 0xc], 1
jne 0x4010b5
mov eax, 0xf
sub eax, dword [ebp - 0x78]
shl eax, 1
mov dword [ebp - 0x100], eax
jmp 0x4010c0
mov ecx, dword [ebp - 0x78]
shl ecx, 1
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x100]
add edx, 1
mov dword [ebp - 0x74], edx
mov eax, dword [ebp - 0x74]
mov dword [ebp + eax*4 - 0xf8], 0
mov ecx, dword [ebp - 0x100]
mov dword [ebp + ecx*4 - 0xf8], 0
mov dword [ebp - 0x104], 0
jmp 0x401106
mov edx, dword [ebp - 0x104]
add edx, 1
mov dword [ebp - 0x104], edx
cmp dword [ebp - 0x104], 0x1c
jge 0x40115a
mov eax, dword [ebp - 0x78]
movzx ecx, byte [eax + 0x4050a8]
add ecx, dword [ebp - 0x104]
mov dword [ebp - 0xfc], ecx
cmp dword [ebp - 0xfc], 0x1c
jge 0x401144
mov edx, dword [ebp - 0x104]
mov eax, dword [ebp - 0xfc]
mov cl, byte [ebp + eax - 0x38]
mov byte [ebp + edx - 0x70], cl
jmp 0x401158
mov edx, dword [ebp - 0x104]
mov eax, dword [ebp - 0xfc]
mov cl, byte [ebp + eax - 0x54]
mov byte [ebp + edx - 0x70], cl
jmp 0x4010f7
mov dword [ebp - 0x104], 0x1c
jmp 0x401175
mov edx, dword [ebp - 0x104]
add edx, 1
mov dword [ebp - 0x104], edx
cmp dword [ebp - 0x104], 0x38
jge 0x4011c9
mov eax, dword [ebp - 0x78]
movzx ecx, byte [eax + 0x4050a8]
add ecx, dword [ebp - 0x104]
mov dword [ebp - 0xfc], ecx
cmp dword [ebp - 0xfc], 0x38
jge 0x4011b3
mov edx, dword [ebp - 0x104]
mov eax, dword [ebp - 0xfc]
mov cl, byte [ebp + eax - 0x38]
mov byte [ebp + edx - 0x70], cl
jmp 0x4011c7
mov edx, dword [ebp - 0x104]
mov eax, dword [ebp - 0xfc]
mov cl, byte [ebp + eax - 0x54]
mov byte [ebp + edx - 0x70], cl
jmp 0x401166
mov dword [ebp - 0x104], 0
jmp 0x4011e4
mov edx, dword [ebp - 0x104]
add edx, 1
mov dword [ebp - 0x104], edx
cmp dword [ebp - 0x104], 0x18
jge 0x401266
mov eax, dword [ebp - 0x104]
movzx ecx, byte [eax + 0x4050b8]
movzx edx, byte [ebp + ecx - 0x70]
test edx, edx
je 0x40122a
mov eax, dword [ebp - 0x100]
mov ecx, dword [ebp - 0x104]
mov edx, dword [ebp + eax*4 - 0xf8]
or edx, dword [ecx*4 + 0x405010]
mov eax, dword [ebp - 0x100]
mov dword [ebp + eax*4 - 0xf8], edx
mov ecx, dword [ebp - 0x104]
movzx edx, byte [ecx + 0x4050d0]
movzx eax, byte [ebp + edx - 0x70]
test eax, eax
je 0x401261
mov ecx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x104]
mov eax, dword [ebp + ecx*4 - 0xf8]
or eax, dword [edx*4 + 0x405010]
mov ecx, dword [ebp - 0x74]
mov dword [ebp + ecx*4 - 0xf8], eax
jmp 0x4011d5
jmp 0x40108a
lea edx, [ebp - 0xf8]
push edx
call fcn.004012c0
add esp, 4
mov esp, ebp
pop ebp
ret