Function at 0x40fb30
Capabilities:
Check if file exists
Resolve function by parsing pe exports

Disassembly:
push esi
push 0xffffffffffffffff
mov esi, ecx
push 0
push 0x4de1c8
lea ecx, [esi + 0x1c]
call fcn.00403360
mov eax, dword [esi + 0x50]
mov ecx, dword [eax + 4]
add esi, 0x38
push ecx
mov ecx, esi
call fcn.0040c460
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 0x4b423e
mov eax, dword fs:[0]
push eax
sub esp, 0x10c
mov eax, dword [0x4e0490]
xor eax, esp
mov dword [esp + 0x108], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4e0490]
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.0040df80
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.00403360
lea ecx, [esp + 0x9c]
call fcn.0040f580
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 0x4de1c8
mov byte [esp + 0x150], 1
mov byte [ecx + 4], bl
call fcn.00403360
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x7c], esp
push 3
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], ebx
push 0x4baacc
mov byte [esp + 0x168], 2
mov byte [ecx + 4], bl
call fcn.00403910
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.00403910
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0xd8]
mov byte [esp + 0x180], 1
call fcn.0040da50
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esi + 0x1c]
mov byte [esp + 0x134], 4
call fcn.00403360
cmp dword [esp + 0x60], 0x10
jb 0x40f771
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.0042f06b
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.00403910
lea edx, [esp + 0x44]
push edx
lea ecx, [esp + 0xa0]
call fcn.0040e3e0
mov esi, dword [esp + 0x34]
mov byte [esp + 0x128], 6
cmp esi, dword [esp + 0x38]
jbe 0x40f7d3
call fcn.0044b41a
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 0x40f7ef
call fcn.0044b41a
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x40f7fd
cmp eax, dword [esp + 0x28]
je 0x40f802
call fcn.0044b41a
cmp edi, esi
je 0x40fa5d
mov eax, dword [esp + 0x14]
cmp eax, ebx
jne 0x40fa3d
call fcn.0044b41a
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x40f827
call fcn.0044b41a
cmp dword [edi + 0x14], ebx
je 0x40fa1c
mov eax, dword [esp + 0x14]
cmp eax, ebx
jne 0x40fa44
call fcn.0044b41a
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x40f84d
call fcn.0044b41a
cmp dword [edi + 0x14], 2
jb 0x40fa1c
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.00403360
mov eax, dword [esp + 0x4c]
mov byte [esp + 0x160], 7
cmp eax, ebx
jne 0x40fa4b
call fcn.0044b41a
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x40f8a7
call fcn.0044b41a
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.00403360
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.00403910
push esi
lea ecx, [esp + 0xf4]
mov byte [esp + 0x19c], 6
call fcn.0040da50
mov eax, dword [esp + 0x30]
mov byte [esp + 0x144], 9
cmp eax, ebx
jne 0x40fa52
call fcn.0044b41a
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x40f924
call fcn.0044b41a
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.00403360
lea eax, [esp + 0xd8]
push eax
mov byte [esp + 0x164], 6
call fcn.0040c040
add esp, 0x3c
push eax
lea ecx, [esp + 0x4c]
mov byte [esp + 0x12c], 0xa
call fcn.0042a6a0
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.0040cc30
mov esi, 0x10
cmp dword [esp + 0x7c], esi
jb 0x40f9a2
mov eax, dword [esp + 0x68]
push eax
call fcn.0042f06b
add esp, 4
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x78], ebx
mov byte [esp + 0x68], bl
cmp dword [esp + 0x60], esi
jb 0x40f9c1
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.0042f06b
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 0x40f9ee
mov edx, dword [esp + 0xc0]
push edx
call fcn.0042f06b
add esp, 4
mov dword [esp + 0xd4], ebp
mov dword [esp + 0xd0], ebx
mov byte [esp + 0xc0], bl
cmp dword [esp + 0xb8], esi
jb 0x40fa1c
mov eax, dword [esp + 0xa4]
push eax
call fcn.0042f06b
add esp, 4
mov eax, dword [esp + 0x14]
cmp eax, ebx
jne 0x40fa59
call fcn.0044b41a
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x40fa35
call fcn.0044b41a
add edi, 0x1c
jmp 0x40f7e0
mov eax, dword [eax]
jmp 0x40f81d
mov eax, dword [eax]
jmp 0x40f843
mov eax, dword [eax]
jmp 0x40f89d
mov eax, dword [eax]
jmp 0x40f91a
mov eax, dword [eax]
jmp 0x40fa2b
mov eax, dword [esp + 0x34]
cmp eax, ebx
je 0x40fa87
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x34]
push edx
push ecx
push eax
call fcn.00409840
mov edx, dword [esp + 0x44]
push edx
call fcn.0042f06b
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.0042f06b
mov esi, 0x10
add esp, 4
cmp dword [esp + 0xfc], esi
jb 0x40fabe
mov ecx, dword [esp + 0xe8]
push ecx
call fcn.0042f06b
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.0040f4f0
cmp dword [esp + 0x118], esi
jb 0x40faff
mov edx, dword [esp + 0x104]
push edx
call fcn.0042f06b
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.0044bc4c
add esp, 0x118
ret
push esi
mov esi, ecx
call fcn.0040bbf0
mov ecx, esi
call fcn.0040acc0
test al, al
je 0x40fb56
mov ecx, esi
call fcn.0040e0b0
test al, al
je 0x40fb56
mov ecx, esi
pop esi
jmp 0x40f630
cmp dword [esi + 0x18], 0x10
jb 0x40fb61
mov eax, dword [esi + 4]
jmp 0x40fb64
lea eax, [esi + 4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
mov ecx, esi
pop esi
test eax, eax
je 0x40fb77
jmp 0x40f630
jmp 0x40cbf0