Function at 0x4014c4
Capabilities:
Encrypt data using des
Resolve function by parsing pe exports

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0xf8
mov eax, dword [esp + 0x10c]
mov ecx, dword [esp + 0x110]
xor edx, edx
mov ebp, eax
movzx eax, byte [edx + str.80_]
mov edi, eax
and edi, 7
sar eax, 3
movzx eax, byte [eax + ebp]
movzx edi, word [edi*2 + 0x47d180]
test edi, eax
je 0x401506
mov eax, 1
jmp 0x401508
xor eax, eax
mov byte [esp + edx + 8], al
inc edx
cmp edx, 0x38
jl 0x4014e0
xor eax, eax
mov edx, 0xf
mov dword [esp], edx
mov edx, dword [esp + 0x110]
cmp edx, 1
je 0x401bcb
lea edx, [eax + eax]
mov dword [esp + 4], edx
mov ecx, dword [esp + 4]
lea ebx, [ecx + 1]
xor edx, edx
mov dword [esp + ecx*4 + 0x7c], edx
mov dword [esp + ecx*4 + 0x78], edx
movzx edx, byte [eax + 0x47d170]
cmp edx, 0x1c
jge 0x40155b
movzx ecx, byte [esp + edx + 8]
mov byte [esp + 0x40], cl
jmp 0x401564
movzx ecx, byte [esp + edx - 0x14]
mov byte [esp + 0x40], cl
lea ecx, [edx + 1]
cmp ecx, 0x1c
jge 0x401577
movzx ecx, byte [esp + edx + 9]
mov byte [esp + 0x41], cl
jmp 0x401580
movzx ecx, byte [esp + edx - 0x13]
mov byte [esp + 0x41], cl
lea ecx, [edx + 2]
cmp ecx, 0x1c
jge 0x401593
movzx ecx, byte [esp + edx + 0xa]
mov byte [esp + 0x42], cl
jmp 0x40159c
movzx ecx, byte [esp + edx - 0x12]
mov byte [esp + 0x42], cl
lea ecx, [edx + 3]
cmp ecx, 0x1c
jge 0x4015af
movzx ecx, byte [esp + edx + 0xb]
mov byte [esp + 0x43], cl
jmp 0x4015b8
movzx ecx, byte [esp + edx - 0x11]
mov byte [esp + 0x43], cl
lea ecx, [edx + 4]
cmp ecx, 0x1c
jge 0x4015cb
movzx ecx, byte [esp + edx + 0xc]
mov byte [esp + 0x44], cl
jmp 0x4015d4
movzx ecx, byte [esp + edx - 0x10]
mov byte [esp + 0x44], cl
lea ecx, [edx + 5]
cmp ecx, 0x1c
jge 0x4015e7
movzx ecx, byte [esp + edx + 0xd]
mov byte [esp + 0x45], cl
jmp 0x4015f0
movzx ecx, byte [esp + edx - 0xf]
mov byte [esp + 0x45], cl
lea ecx, [edx + 6]
cmp ecx, 0x1c
jge 0x401603
movzx ecx, byte [esp + edx + 0xe]
mov byte [esp + 0x46], cl
jmp 0x40160c
movzx ecx, byte [esp + edx - 0xe]
mov byte [esp + 0x46], cl
lea ecx, [edx + 7]
cmp ecx, 0x1c
jge 0x40161f
movzx ecx, byte [esp + edx + 0xf]
mov byte [esp + 0x47], cl
jmp 0x401628
movzx ecx, byte [esp + edx - 0xd]
mov byte [esp + 0x47], cl
lea ecx, [edx + 8]
cmp ecx, 0x1c
jge 0x40163b
movzx ecx, byte [esp + edx + 0x10]
mov byte [esp + 0x48], cl
jmp 0x401644
movzx ecx, byte [esp + edx - 0xc]
mov byte [esp + 0x48], cl
lea ecx, [edx + 9]
cmp ecx, 0x1c
jge 0x401657
movzx ecx, byte [esp + edx + 0x11]
mov byte [esp + 0x49], cl
jmp 0x401660
movzx ecx, byte [esp + edx - 0xb]
mov byte [esp + 0x49], cl
lea ecx, [edx + 0xa]
cmp ecx, 0x1c
jge 0x401673
movzx ecx, byte [esp + edx + 0x12]
mov byte [esp + 0x4a], cl
jmp 0x40167c
movzx ecx, byte [esp + edx - 0xa]
mov byte [esp + 0x4a], cl
lea ecx, [edx + 0xb]
cmp ecx, 0x1c
jge 0x40168f
movzx ecx, byte [esp + edx + 0x13]
mov byte [esp + 0x4b], cl
jmp 0x401698
movzx ecx, byte [esp + edx - 9]
mov byte [esp + 0x4b], cl
lea ecx, [edx + 0xc]
cmp ecx, 0x1c
jge 0x4016ab
movzx ecx, byte [esp + edx + 0x14]
mov byte [esp + 0x4c], cl
jmp 0x4016b4
movzx ecx, byte [esp + edx - 8]
mov byte [esp + 0x4c], cl
lea ecx, [edx + 0xd]
cmp ecx, 0x1c
jge 0x4016c7
movzx ecx, byte [esp + edx + 0x15]
mov byte [esp + 0x4d], cl
jmp 0x4016d0
movzx ecx, byte [esp + edx - 7]
mov byte [esp + 0x4d], cl
lea ecx, [edx + 0xe]
cmp ecx, 0x1c
jge 0x4016e3
movzx ecx, byte [esp + edx + 0x16]
mov byte [esp + 0x4e], cl
jmp 0x4016ec
movzx ecx, byte [esp + edx - 6]
mov byte [esp + 0x4e], cl
lea ecx, [edx + 0xf]
cmp ecx, 0x1c
jge 0x4016ff
movzx ecx, byte [esp + edx + 0x17]
mov byte [esp + 0x4f], cl
jmp 0x401708
movzx ecx, byte [esp + edx - 5]
mov byte [esp + 0x4f], cl
lea ecx, [edx + 0x10]
cmp ecx, 0x1c
jge 0x40171b
movzx ecx, byte [esp + edx + 0x18]
mov byte [esp + 0x50], cl
jmp 0x401724
movzx ecx, byte [esp + edx - 4]
mov byte [esp + 0x50], cl
lea ecx, [edx + 0x11]
cmp ecx, 0x1c
jge 0x401737
movzx ecx, byte [esp + edx + 0x19]
mov byte [esp + 0x51], cl
jmp 0x401740
movzx ecx, byte [esp + edx - 3]
mov byte [esp + 0x51], cl
lea ecx, [edx + 0x12]
cmp ecx, 0x1c
jge 0x401753
movzx ecx, byte [esp + edx + 0x1a]
mov byte [esp + 0x52], cl
jmp 0x40175c
movzx ecx, byte [esp + edx - 2]
mov byte [esp + 0x52], cl
lea ecx, [edx + 0x13]
cmp ecx, 0x1c
jge 0x40176f
movzx ecx, byte [esp + edx + 0x1b]
mov byte [esp + 0x53], cl
jmp 0x401778
movzx ecx, byte [esp + edx - 1]
mov byte [esp + 0x53], cl
lea ecx, [edx + 0x14]
cmp ecx, 0x1c
jge 0x40178b
movzx ecx, byte [esp + edx + 0x1c]
mov byte [esp + 0x54], cl
jmp 0x401793
movzx ecx, byte [esp + edx]
mov byte [esp + 0x54], cl
lea ecx, [edx + 0x15]
cmp ecx, 0x1c
jge 0x4017a6
movzx ecx, byte [esp + edx + 0x1d]
mov byte [esp + 0x55], cl
jmp 0x4017af
movzx ecx, byte [esp + edx + 1]
mov byte [esp + 0x55], cl
lea ecx, [edx + 0x16]
cmp ecx, 0x1c
jge 0x4017c2
movzx ecx, byte [esp + edx + 0x1e]
mov byte [esp + 0x56], cl
jmp 0x4017cb
movzx ecx, byte [esp + edx + 2]
mov byte [esp + 0x56], cl
lea ecx, [edx + 0x17]
cmp ecx, 0x1c
jge 0x4017de
movzx ecx, byte [esp + edx + 0x1f]
mov byte [esp + 0x57], cl
jmp 0x4017e7
movzx ecx, byte [esp + edx + 3]
mov byte [esp + 0x57], cl
lea ecx, [edx + 0x18]
cmp ecx, 0x1c
jge 0x4017fa
movzx ecx, byte [esp + edx + 0x20]
mov byte [esp + 0x58], cl
jmp 0x401803
movzx ecx, byte [esp + edx + 4]
mov byte [esp + 0x58], cl
lea ecx, [edx + 0x19]
cmp ecx, 0x1c
jge 0x401816
movzx ecx, byte [esp + edx + 0x21]
mov byte [esp + 0x59], cl
jmp 0x40181f
movzx ecx, byte [esp + edx + 5]
mov byte [esp + 0x59], cl
lea ecx, [edx + 0x1a]
cmp ecx, 0x1c
jge 0x401832
movzx ecx, byte [esp + edx + 0x22]
mov byte [esp + 0x5a], cl
jmp 0x40183b
movzx ecx, byte [esp + edx + 6]
mov byte [esp + 0x5a], cl
lea ecx, [edx + 0x1b]
cmp ecx, 0x1c
jge 0x40184e
movzx ecx, byte [esp + edx + 0x23]
mov byte [esp + 0x5b], cl
jmp 0x401857
movzx ecx, byte [esp + edx + 7]
mov byte [esp + 0x5b], cl
lea ecx, [edx + 0x1c]
cmp ecx, 0x38
jge 0x40186a
movzx ecx, byte [esp + edx + 0x24]
mov byte [esp + 0x5c], cl
jmp 0x401873
movzx ecx, byte [esp + edx + 8]
mov byte [esp + 0x5c], cl
lea ecx, [edx + 0x1d]
cmp ecx, 0x38
jge 0x401886
movzx ecx, byte [esp + edx + 0x25]
mov byte [esp + 0x5d], cl
jmp 0x40188f
movzx ecx, byte [esp + edx + 9]
mov byte [esp + 0x5d], cl
lea ecx, [edx + 0x1e]
cmp ecx, 0x38
jge 0x4018a2
movzx ecx, byte [esp + edx + 0x26]
mov byte [esp + 0x5e], cl
jmp 0x4018ab
movzx ecx, byte [esp + edx + 0xa]
mov byte [esp + 0x5e], cl
lea ecx, [edx + 0x1f]
cmp ecx, 0x38
jge 0x4018be
movzx ecx, byte [esp + edx + 0x27]
mov byte [esp + 0x5f], cl
jmp 0x4018c7
movzx ecx, byte [esp + edx + 0xb]
mov byte [esp + 0x5f], cl
lea ecx, [edx + 0x20]
cmp ecx, 0x38
jge 0x4018da
movzx ecx, byte [esp + edx + 0x28]
mov byte [esp + 0x60], cl
jmp 0x4018e3
movzx ecx, byte [esp + edx + 0xc]
mov byte [esp + 0x60], cl
lea ecx, [edx + 0x21]
cmp ecx, 0x38
jge 0x4018f6
movzx ecx, byte [esp + edx + 0x29]
mov byte [esp + 0x61], cl
jmp 0x4018ff
movzx ecx, byte [esp + edx + 0xd]
mov byte [esp + 0x61], cl
lea ecx, [edx + 0x22]
cmp ecx, 0x38
jge 0x401912
movzx ecx, byte [esp + edx + 0x2a]
mov byte [esp + 0x62], cl
jmp 0x40191b
movzx ecx, byte [esp + edx + 0xe]
mov byte [esp + 0x62], cl
lea ecx, [edx + 0x23]
cmp ecx, 0x38
jge 0x40192e
movzx ecx, byte [esp + edx + 0x2b]
mov byte [esp + 0x63], cl
jmp 0x401937
movzx ecx, byte [esp + edx + 0xf]
mov byte [esp + 0x63], cl
lea ecx, [edx + 0x24]
cmp ecx, 0x38
jge 0x40194a
movzx ecx, byte [esp + edx + 0x2c]
mov byte [esp + 0x64], cl
jmp 0x401953
movzx ecx, byte [esp + edx + 0x10]
mov byte [esp + 0x64], cl
lea ecx, [edx + 0x25]
cmp ecx, 0x38
jge 0x401966
movzx ecx, byte [esp + edx + 0x2d]
mov byte [esp + 0x65], cl
jmp 0x40196f
movzx ecx, byte [esp + edx + 0x11]
mov byte [esp + 0x65], cl
lea ecx, [edx + 0x26]
cmp ecx, 0x38
jge 0x401982
movzx ecx, byte [esp + edx + 0x2e]
mov byte [esp + 0x66], cl
jmp 0x40198b
movzx ecx, byte [esp + edx + 0x12]
mov byte [esp + 0x66], cl
lea ecx, [edx + 0x27]
cmp ecx, 0x38
jge 0x40199e
movzx ecx, byte [esp + edx + 0x2f]
mov byte [esp + 0x67], cl
jmp 0x4019a7
movzx ecx, byte [esp + edx + 0x13]
mov byte [esp + 0x67], cl
lea ecx, [edx + 0x28]
cmp ecx, 0x38
jge 0x4019ba
movzx ecx, byte [esp + edx + 0x30]
mov byte [esp + 0x68], cl
jmp 0x4019c3
movzx ecx, byte [esp + edx + 0x14]
mov byte [esp + 0x68], cl
lea ecx, [edx + 0x29]
cmp ecx, 0x38
jge 0x4019d6
movzx ecx, byte [esp + edx + 0x31]
mov byte [esp + 0x69], cl
jmp 0x4019df
movzx ecx, byte [esp + edx + 0x15]
mov byte [esp + 0x69], cl
lea ecx, [edx + 0x2a]
cmp ecx, 0x38
jge 0x4019f2
movzx ecx, byte [esp + edx + 0x32]
mov byte [esp + 0x6a], cl
jmp 0x4019fb
movzx ecx, byte [esp + edx + 0x16]
mov byte [esp + 0x6a], cl
lea ecx, [edx + 0x2b]
cmp ecx, 0x38
jge 0x401a0e
movzx ecx, byte [esp + edx + 0x33]
mov byte [esp + 0x6b], cl
jmp 0x401a17
movzx ecx, byte [esp + edx + 0x17]
mov byte [esp + 0x6b], cl
lea ecx, [edx + 0x2c]
cmp ecx, 0x38
jge 0x401a2a
movzx ecx, byte [esp + edx + 0x34]
mov byte [esp + 0x6c], cl
jmp 0x401a33
movzx ecx, byte [esp + edx + 0x18]
mov byte [esp + 0x6c], cl
lea ecx, [edx + 0x2d]
cmp ecx, 0x38
jge 0x401a46
movzx ecx, byte [esp + edx + 0x35]
mov byte [esp + 0x6d], cl
jmp 0x401a4f
movzx ecx, byte [esp + edx + 0x19]
mov byte [esp + 0x6d], cl
lea ecx, [edx + 0x2e]
cmp ecx, 0x38
jge 0x401a62
movzx ecx, byte [esp + edx + 0x36]
mov byte [esp + 0x6e], cl
jmp 0x401a6b
movzx ecx, byte [esp + edx + 0x1a]
mov byte [esp + 0x6e], cl
lea ecx, [edx + 0x2f]
cmp ecx, 0x38
jge 0x401a7e
movzx ecx, byte [esp + edx + 0x37]
mov byte [esp + 0x6f], cl
jmp 0x401a87
movzx ecx, byte [esp + edx + 0x1b]
mov byte [esp + 0x6f], cl
lea ecx, [edx + 0x30]
cmp ecx, 0x38
jge 0x401a9a
movzx ecx, byte [esp + edx + 0x38]
mov byte [esp + 0x70], cl
jmp 0x401aa3
movzx ecx, byte [esp + edx + 0x1c]
mov byte [esp + 0x70], cl
lea ecx, [edx + 0x31]
cmp ecx, 0x38
jge 0x401ab6
movzx ecx, byte [esp + edx + 0x39]
mov byte [esp + 0x71], cl
jmp 0x401abf
movzx ecx, byte [esp + edx + 0x1d]
mov byte [esp + 0x71], cl
lea ecx, [edx + 0x32]
cmp ecx, 0x38
jge 0x401ad2
movzx ecx, byte [esp + edx + 0x3a]
mov byte [esp + 0x72], cl
jmp 0x401adb
movzx ecx, byte [esp + edx + 0x1e]
mov byte [esp + 0x72], cl
lea ecx, [edx + 0x33]
cmp ecx, 0x38
jge 0x401aee
movzx ecx, byte [esp + edx + 0x3b]
mov byte [esp + 0x73], cl
jmp 0x401af7
movzx ecx, byte [esp + edx + 0x1f]
mov byte [esp + 0x73], cl
lea ecx, [edx + 0x34]
cmp ecx, 0x38
jge 0x401b0a
movzx ecx, byte [esp + edx + 0x3c]
mov byte [esp + 0x74], cl
jmp 0x401b13
movzx ecx, byte [esp + edx + 0x20]
mov byte [esp + 0x74], cl
lea ecx, [edx + 0x35]
cmp ecx, 0x38
jge 0x401b26
movzx ecx, byte [esp + edx + 0x3d]
mov byte [esp + 0x75], cl
jmp 0x401b2f
movzx ecx, byte [esp + edx + 0x21]
mov byte [esp + 0x75], cl
lea ecx, [edx + 0x36]
cmp ecx, 0x38
jge 0x401b42
movzx ecx, byte [esp + edx + 0x3e]
mov byte [esp + 0x76], cl
jmp 0x401b4b
movzx ecx, byte [esp + edx + 0x22]
mov byte [esp + 0x76], cl
lea ecx, [edx + 0x37]
cmp ecx, 0x38
jge 0x401b5e
movzx edx, byte [esp + edx + 0x3f]
mov byte [esp + 0x77], dl
jmp 0x401b67
movzx edx, byte [esp + edx + 0x23]
mov byte [esp + 0x77], dl
xor edx, edx
mov ecx, dword [esp + 4]
movzx ebp, byte [edx + 0x47d140]
movzx esi, byte [esp + ebp + 0x40]
inc edx
test esi, esi
je 0x401b89
mov ebp, dword [edx*4 + 0x47d0dc]
or dword [esp + ecx*4 + 0x78], ebp
movzx ebp, byte [edx + 0x47d157]
movzx esi, byte [esp + ebp + 0x40]
test esi, esi
je 0x401ba4
mov ebp, dword [edx*4 + 0x47d0dc]
or dword [esp + ebx*4 + 0x78], ebp
cmp edx, 0x18
jl 0x401b6d
dec dword [esp]
inc eax
cmp eax, 0x10
jl 0x40151c
lea eax, [esp + 0x78]
push eax
call fcn.00401bdc
add esp, 0xfc
pop ebx
pop ebp
pop esi
pop edi
ret
mov edx, dword [esp]
lea ecx, [edx + edx]
mov dword [esp + 4], ecx
jmp 0x401533