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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x442a4b
mov eax, dword fs:[0]
push eax
sub esp, 0x2b0
mov eax, dword [0x4533e4]
xor eax, esp
mov dword [esp + 0x2a8], eax
push ebx
push esi
push edi
mov eax, dword [0x4533e4]
xor eax, esp
push eax
lea eax, [esp + 0x2c0]
mov dword fs:[0], eax
mov edi, ecx
xor ebx, ebx
lea esi, [esp + 0x14]
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], ebx
call fcn.00414b80
cmp eax, ebx
jne 0x403605
mov eax, 0x405
cmp word [esp + 0x14], ax
jb 0x403605
mov ecx, edi
call fcn.00409980
lea ecx, [esp + 0x1c]
call fcn.004179b0
mov dword [esp + 0x2c8], ebx
mov eax, dword [esp + 0x1c]
mov esi, 8
cmp dword [esp + 0x30], esi
jae 0x403387
lea eax, [esp + 0x1c]
push eax
push str.Package_folder_is__s
push 0x4549c8
mov ecx, 0x4462a0
call fcn.00406230
mov eax, dword [esp + 0x28]
add esp, 0xc
cmp dword [esp + 0x30], esi
jae 0x4033ad
lea eax, [esp + 0x1c]
push eax
push 0xc
xor edx, edx
xor ecx, ecx
call fcn.00419030
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x403402
push str.Error_extracting_packages._This_is_most_likely_caused_by_a_corrupted_installer_package
push 0x4549c8
mov ecx, 0x446820
call fcn.00406230
add esp, 8
push 0xa9
push ebx
lea ecx, [esp + 0x5c]
push ecx
mov ecx, str.MSISetup.cpp
mov ebx, 0x446828
call fcn.00402e10
push 0x44d9ac
lea edx, [esp + 0x58]
push edx
call fcn.0042db23
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x30], esi
jae 0x403410
lea eax, [esp + 0x1c]
lea esi, [edi + 4]
push eax
mov ebx, str.IIF_PACKAGEPATH
mov ecx, esi
call fcn.004040d0
push str.Package_information_
push 0x4549c8
mov ecx, 0x4462a0
call fcn.00406230
mov ebx, dword [edi + 0x114]
add esp, 8
mov dword [esp + 0x14], ebx
cmp ebx, dword [edi + 0x118]
je 0x4035cd
add ebx, 0x4c
mov eax, dword [ebx + 0x74]
test eax, eax
jne 0x403506
push str.IIF_PACKAGEPATH
mov edi, esi
call fcn.00403fe0
push eax
lea eax, [esp + 0xb0]
push 0x104
push eax
call fcn.0042cbdd
mov edi, 8
add esp, 0xc
cmp dword [ebx - 0x1c], edi
jb 0x40348c
mov eax, dword [ebx - 0x30]
jmp 0x40348f
lea eax, [ebx - 0x30]
push eax
lea ecx, [esp + 0xb0]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea edx, [esp + 0xac]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov edx, 0x446858
test eax, eax
jne 0x4034ba
mov edx, 0x446860
cmp dword [ebx - 4], 0
jne 0x4034c7
mov ecx, str._Not_installed_
jmp 0x4034d3
cmp dword [ebx], edi
jb 0x4034d0
mov ecx, dword [ebx - 0x14]
jmp 0x4034d3
lea ecx, [ebx - 0x14]
cmp dword [ebx + 0x8c], edi
jb 0x4034e0
mov eax, dword [ebx + 0x78]
jmp 0x4034e3
lea eax, [ebx + 0x78]
push edx
push ecx
push eax
push str.__Type_MSI:_ID_s__Installed_version:__s__Extracted:__s
push 0x4549c8
mov ecx, 0x4462a0
call fcn.00406230
mov edi, dword [esp + 0x2c]
add esp, 0x14
jmp 0x4035ae
cmp eax, 1
jne 0x4035ae
cmp dword [ebx + 0x50], 8
jb 0x40351a
mov eax, dword [ebx + 0x3c]
jmp 0x40351d
lea eax, [ebx + 0x3c]
push eax
push esi
lea ecx, [esp + 0x40]
call fcn.00404550
cmp dword [eax + 0x14], 8
jb 0x403530
mov eax, dword [eax]
push eax
lea eax, [esp + 0xb0]
push 0x104
push eax
call fcn.0042cbdd
add esp, 0xc
cmp dword [esp + 0x4c], 8
jb 0x40355a
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0042c048
add esp, 4
lea edx, [esp + 0xac]
push edx
call dword [sym.imp.SHLWAPI.dll_PathRemoveArgsW]
lea eax, [esp + 0xac]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov ecx, 0x446858
test eax, eax
jne 0x403584
mov ecx, 0x446860
cmp dword [ebx + 0x8c], 8
jb 0x403592
mov eax, dword [ebx + 0x78]
jmp 0x403595
lea eax, [ebx + 0x78]
push ecx
push eax
push str.__Type_EXE:_ID_s__Extracted:__s
push 0x4549c8
mov ecx, 0x4462a0
call fcn.00406230
add esp, 0x10
mov eax, dword [esp + 0x14]
add eax, 0x124
add ebx, 0x124
mov dword [esp + 0x14], eax
cmp eax, dword [edi + 0x118]
jne 0x403450
cmp dword [esp + 0x30], 8
jb 0x4035e1
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0042c048
add esp, 4
mov ecx, dword [esp + 0x2c0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2a8]
xor ecx, esp
call fcn.0042c039
mov esp, ebp
pop ebp
ret
push 0x9c
push 0x64d
lea edx, [esp + 0x5c]
push edx
mov ecx, str.MSISetup.cpp
mov ebx, str.MSI_4.5_needed
call fcn.00402e10
push 0x44d9ac
lea eax, [esp + 0x58]
push eax
call fcn.0042db23
int3