Function at 0x40cd80
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push esi
push 0xffffffffffffffff
mov esi, ecx
push 0
push 0x4d64a0
lea ecx, [esi + 0x1c]
call fcn.004029e0
mov eax, dword [esi + 0x50]
mov ecx, dword [eax + 4]
add esi, 0x38
push ecx
mov ecx, esi
call fcn.004096b0
mov eax, dword [esi + 0x18]
mov dword [eax + 4], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x1c], 0
mov dword [eax], eax
mov esi, dword [esi + 0x18]
mov dword [esi + 8], esi
pop esi
ret
push 0xffffffffffffffff
push 0x4aeffe
mov eax, dword fs:[0]
push eax
sub esp, 0x10c
mov eax, dword [0x4d87a0]
xor eax, esp
mov dword [esp + 0x108], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4d87a0]
xor eax, esp
push eax
lea eax, [esp + 0x120]
mov dword fs:[0], eax
lea eax, [esp + 0x100]
mov esi, ecx
push eax
mov dword [esp + 0x44], esi
call fcn.0040b6d0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
xor ebx, ebx
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x124]
mov ebp, 0xf
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], ebx
push edx
mov dword [esp + 0x150], ebx
mov byte [ecx + 4], bl
call fcn.004029e0
lea ecx, [esp + 0x9c]
call fcn.0040ccc0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0xffffffffffffffff
push ebx
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], ebx
push 0x4d64a0
mov byte [esp + 0x150], 1
mov byte [ecx + 4], bl
call fcn.004029e0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x7c], esp
push 3
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], ebx
push 0x4b5aac
mov byte [esp + 0x168], 2
mov byte [ecx + 4], bl
call fcn.00402fc0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x78], esp
push 6
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], ebx
push str.config
mov byte [esp + 0x184], 3
mov byte [ecx + 4], bl
call fcn.00402fc0
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0xd8]
mov byte [esp + 0x180], 1
call fcn.0040b1a0
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esi + 0x1c]
mov byte [esp + 0x134], 4
call fcn.004029e0
cmp dword [esp + 0x60], 0x10
jb 0x40cec1
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.0042df46
add esp, 4
mov dword [esp + 0xfc], ebp
mov dword [esp + 0xf8], ebx
mov byte [esp + 0xe8], bl
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x40], esp
push ebp
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], ebx
push str.DefaultOpenSoft
mov byte [esp + 0x14c], 5
mov byte [ecx + 4], bl
call fcn.00402fc0
lea edx, [esp + 0x44]
push edx
lea ecx, [esp + 0xa0]
call fcn.0040bb30
mov esi, dword [esp + 0x34]
mov byte [esp + 0x128], 6
cmp esi, dword [esp + 0x38]
jbe 0x40cf23
call fcn.0044a32a
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], eax
mov edi, esi
lea ecx, [ecx]
mov esi, dword [esp + 0x38]
cmp dword [esp + 0x34], esi
jbe 0x40cf3f
call fcn.0044a32a
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x40cf4d
cmp eax, dword [esp + 0x28]
je 0x40cf52
call fcn.0044a32a
cmp edi, esi
je 0x40d1ad
mov eax, dword [esp + 0x14]
cmp eax, ebx
jne 0x40d18d
call fcn.0044a32a
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x40cf77
call fcn.0044a32a
cmp dword [edi + 0x14], ebx
je 0x40d16c
mov eax, dword [esp + 0x14]
cmp eax, ebx
jne 0x40d194
call fcn.0044a32a
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x40cf9d
call fcn.0044a32a
cmp dword [edi + 0x14], 2
jb 0x40d16c
sub esp, 0x1c
mov esi, esp
mov dword [esp + 0x40], esp
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x7c], esp
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x124]
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], ebx
push edx
mov byte [ecx + 4], bl
call fcn.004029e0
mov eax, dword [esp + 0x4c]
mov byte [esp + 0x160], 7
cmp eax, ebx
jne 0x40d19b
call fcn.0044a32a
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x40cff7
call fcn.0044a32a
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x74], esp
push 0xffffffffffffffff
push ebx
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], ebx
push edi
mov byte [ecx + 4], bl
call fcn.004029e0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x8c], esp
push ebp
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], ebx
push str.DefaultOpenSoft
mov byte [esp + 0x1a0], 8
mov byte [ecx + 4], bl
call fcn.00402fc0
push esi
lea ecx, [esp + 0xf4]
mov byte [esp + 0x19c], 6
call fcn.0040b1a0
mov eax, dword [esp + 0x30]
mov byte [esp + 0x144], 9
cmp eax, ebx
jne 0x40d1a2
call fcn.0044a32a
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x40d074
call fcn.0044a32a
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x54], esp
push 0xffffffffffffffff
push ebx
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], ebx
push edi
mov byte [ecx + 4], bl
call fcn.004029e0
lea eax, [esp + 0xd8]
push eax
mov byte [esp + 0x164], 6
call fcn.00408e90
add esp, 0x3c
push eax
lea ecx, [esp + 0x4c]
mov byte [esp + 0x12c], 0xa
call fcn.00408430
lea ecx, [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0xdc]
push edx
add ecx, 0x38
mov byte [esp + 0x130], 0xb
call fcn.0040a150
mov esi, 0x10
cmp dword [esp + 0x7c], esi
jb 0x40d0f2
mov eax, dword [esp + 0x68]
push eax
call fcn.0042df46
add esp, 4
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x78], ebx
mov byte [esp + 0x68], bl
cmp dword [esp + 0x60], esi
jb 0x40d111
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.0042df46
add esp, 4
mov dword [esp + 0x60], ebp
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x4c], bl
mov byte [esp + 0x128], 6
cmp dword [esp + 0xd4], esi
jb 0x40d13e
mov edx, dword [esp + 0xc0]
push edx
call fcn.0042df46
add esp, 4
mov dword [esp + 0xd4], ebp
mov dword [esp + 0xd0], ebx
mov byte [esp + 0xc0], bl
cmp dword [esp + 0xb8], esi
jb 0x40d16c
mov eax, dword [esp + 0xa4]
push eax
call fcn.0042df46
add esp, 4
mov eax, dword [esp + 0x14]
cmp eax, ebx
jne 0x40d1a9
call fcn.0044a32a
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x40d185
call fcn.0044a32a
add edi, 0x1c
jmp 0x40cf30
mov eax, dword [eax]
jmp 0x40cf6d
mov eax, dword [eax]
jmp 0x40cf93
mov eax, dword [eax]
jmp 0x40cfed
mov eax, dword [eax]
jmp 0x40d06a
mov eax, dword [eax]
jmp 0x40d17b
mov eax, dword [esp + 0x34]
cmp eax, ebx
je 0x40d1d7
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x34]
push edx
push ecx
push eax
call fcn.004047c0
mov edx, dword [esp + 0x44]
push edx
call fcn.0042df46
add esp, 0x14
mov eax, dword [esp + 0x28]
push eax
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
call fcn.0042df46
mov esi, 0x10
add esp, 4
cmp dword [esp + 0xfc], esi
jb 0x40d20e
mov ecx, dword [esp + 0xe8]
push ecx
call fcn.0042df46
add esp, 4
lea ecx, [esp + 0x80]
mov dword [esp + 0xfc], ebp
mov dword [esp + 0xf8], ebx
mov byte [esp + 0xe8], bl
mov byte [esp + 0x128], bl
call fcn.0040cc40
cmp dword [esp + 0x118], esi
jb 0x40d24f
mov edx, dword [esp + 0x104]
push edx
call fcn.0042df46
add esp, 4
mov ecx, dword [esp + 0x120]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x108]
xor ecx, esp
call fcn.0044ab5c
add esp, 0x118
ret
push esi
mov esi, ecx
call fcn.00408880
mov ecx, esi
call fcn.00406370
test al, al
je 0x40d2a6
mov ecx, esi
call fcn.0040b800
test al, al
je 0x40d2a6
mov ecx, esi
pop esi
jmp 0x40cd80
cmp dword [esi + 0x18], 0x10
jb 0x40d2b1
mov eax, dword [esi + 4]
jmp 0x40d2b4
lea eax, [esi + 4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
mov ecx, esi
pop esi
test eax, eax
je 0x40d2c7
jmp 0x40cd80
jmp 0x40a110