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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x44235b
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.00414620
cmp eax, ebx
jne 0x403655
mov eax, 0x405
cmp word [esp + 0x14], ax
jb 0x403655
mov ecx, edi
call fcn.00409c60
lea ecx, [esp + 0x1c]
call fcn.00417370
mov dword [esp + 0x2c8], ebx
mov eax, dword [esp + 0x1c]
mov esi, 8
cmp dword [esp + 0x30], esi
jae 0x4033d7
lea eax, [esp + 0x1c]
push eax
push str.Package_folder_is__s
push 0x4549c0
mov ecx, 0x4462a0
call fcn.00406580
mov eax, dword [esp + 0x28]
add esp, 0xc
cmp dword [esp + 0x30], esi
jae 0x4033fd
lea eax, [esp + 0x1c]
push eax
push 0xc
xor edx, edx
xor ecx, ecx
call fcn.004187a0
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x403452
push str.Error_extracting_packages._This_is_most_likely_caused_by_a_corrupted_installer_package
push 0x4549c0
mov ecx, 0x446820
call fcn.00406580
add esp, 8
push 0x90
push ebx
lea ecx, [esp + 0x5c]
push ecx
mov ecx, str.MSISetup.cpp
mov ebx, 0x446828
call fcn.00402e60
push 0x44d554
lea edx, [esp + 0x58]
push edx
call fcn.0042d423
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x30], esi
jae 0x403460
lea eax, [esp + 0x1c]
lea esi, [edi + 4]
push eax
mov ebx, str.IIF_PACKAGEPATH
mov ecx, esi
call fcn.00404120
push str.Package_information_
push 0x4549c0
mov ecx, 0x4462a0
call fcn.00406580
mov ebx, dword [edi + 0x114]
add esp, 8
mov dword [esp + 0x14], ebx
cmp ebx, dword [edi + 0x118]
je 0x40361d
add ebx, 0x4c
mov eax, dword [ebx + 0x74]
test eax, eax
jne 0x403556
push str.IIF_PACKAGEPATH
mov edi, esi
call fcn.00404030
push eax
lea eax, [esp + 0xb0]
push 0x104
push eax
call fcn.0042c4dd
mov edi, 8
add esp, 0xc
cmp dword [ebx - 0x1c], edi
jb 0x4034dc
mov eax, dword [ebx - 0x30]
jmp 0x4034df
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 0x40350a
mov edx, 0x446860
cmp dword [ebx - 4], 0
jne 0x403517
mov ecx, str._Not_installed_
jmp 0x403523
cmp dword [ebx], edi
jb 0x403520
mov ecx, dword [ebx - 0x14]
jmp 0x403523
lea ecx, [ebx - 0x14]
cmp dword [ebx + 0x8c], edi
jb 0x403530
mov eax, dword [ebx + 0x78]
jmp 0x403533
lea eax, [ebx + 0x78]
push edx
push ecx
push eax
push str.__Type_MSI:_ID_s__Installed_version:__s__Extracted:__s
push 0x4549c0
mov ecx, 0x4462a0
call fcn.00406580
mov edi, dword [esp + 0x2c]
add esp, 0x14
jmp 0x4035fe
cmp eax, 1
jne 0x4035fe
cmp dword [ebx + 0x50], 8
jb 0x40356a
mov eax, dword [ebx + 0x3c]
jmp 0x40356d
lea eax, [ebx + 0x3c]
push eax
push esi
lea ecx, [esp + 0x40]
call fcn.00404790
cmp dword [eax + 0x14], 8
jb 0x403580
mov eax, dword [eax]
push eax
lea eax, [esp + 0xb0]
push 0x104
push eax
call fcn.0042c4dd
add esp, 0xc
cmp dword [esp + 0x4c], 8
jb 0x4035aa
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0042b948
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 0x4035d4
mov ecx, 0x446860
cmp dword [ebx + 0x8c], 8
jb 0x4035e2
mov eax, dword [ebx + 0x78]
jmp 0x4035e5
lea eax, [ebx + 0x78]
push ecx
push eax
push str.__Type_EXE:_ID_s__Extracted:__s
push 0x4549c0
mov ecx, 0x4462a0
call fcn.00406580
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 0x4034a0
cmp dword [esp + 0x30], 8
jb 0x403631
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0042b948
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.0042b939
mov esp, ebp
pop ebp
ret
push 0x83
push 0x64d
lea edx, [esp + 0x5c]
push edx
mov ecx, str.MSISetup.cpp
mov ebx, str.MSI_4.5_needed
call fcn.00402e60
push 0x44d554
lea eax, [esp + 0x58]
push eax
call fcn.0042d423
int3