Function at 0x10004462
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6b4
mov eax, dword [0x1002f004]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
push esi
push edi
push 3
pop esi
mov dword [0x1002f980], eax
mov edi, 0x103
push edi
lea eax, [ebp - 0x6a8]
mov dword [ebp - 0x6b4], ecx
push eax
push dword [0x1002f94c]
mov dword [ebp - 0x6ac], esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x100044cc
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_get_module_path._Error_code__d.
push dword [ebp + 8]
call fcn.1000400a
add esp, 0xc
mov eax, esi
jmp 0x10004719
cmp eax, edi
jne 0x100044e1
push str.Failed_to_get_module_path____path_is_too_long.
push dword [ebp + 8]
call fcn.1000400a
pop ecx
pop ecx
jmp 0x100044c5
push dword [0x1002f980]
mov edi, dword [ebp + 8]
push str.Extracting_embedded_UI_to_temporary_directory:__s
push edi
call fcn.1000400a
add esp, 0xc
lea eax, [ebp - 0x6a8]
push dword [0x1002f980]
push eax
call fcn.10001811
test eax, eax
je 0x1000452a
push eax
push str.Failed_to_extract_to_temporary_directory._Cabinet_error_code__d.
push edi
call fcn.1000400a
push str.Ensure_that_no_MsiEmbeddedUI.FileName_values_are_the_same_as_any_file_contained_in_the_embedded_UI_package.
push edi
call fcn.1000400a
add esp, 0x14
jmp 0x100044c5
push ebx
push dword [0x1002f980]
mov ebx, pe_nt_image_headers32
lea eax, [ebp - 0x234]
push ebx
push eax
call fcn.100014ae
push str.EmbeddedUI.config
push ebx
lea eax, [ebp - 0x234]
push eax
call fcn.10001430
lea eax, [ebp - 0x234]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push dword [0x1002f980]
neg eax
push 0x136
sbb ebx, ebx
lea eax, [ebp - 0x234]
and ebx, eax
lea eax, [ebp - 0x4a0]
push eax
call fcn.100014ae
push str.Microsoft.Deployment.WindowsInstaller.dll
push 0x136
lea eax, [ebp - 0x4a0]
push eax
call fcn.10001430
push 0x1002f984
lea eax, [ebp - 0x4a0]
push eax
push ebx
push 0
push edi
call fcn.1000127d
test al, al
je 0x10004716
push 0x1002f988
push ebx
push dword [0x1002f980]
push str.EmbeddedUI
push dword [0x1002f984]
push edi
call section..text
test al, al
je 0x100046f7
push 0x1002f98c
push str.ProcessMessage
mov ebx, str.Microsoft.Deployment.WindowsInstaller.EmbeddedUIProxy
push ebx
push str.Microsoft.Deployment.WindowsInstaller
push dword [0x1002f988]
push edi
call fcn.10001181
test al, al
je 0x100046b0
push 0x1002f990
push str.Shutdown
push ebx
push str.Microsoft.Deployment.WindowsInstaller
push dword [0x1002f988]
push edi
call fcn.10001181
test al, al
je 0x100046b0
lea eax, [ebp - 0x6b0]
push eax
push str.Initialize
push ebx
push str.Microsoft.Deployment.WindowsInstaller
push dword [0x1002f988]
push edi
call fcn.10001181
test al, al
je 0x100046b0
lea eax, [ebp - 0x6ac]
push eax
push dword [ebp - 0x6b4]
push str.InitializeEmbeddedUI_FullClassName
push edi
push dword [ebp - 0x6b0]
call fcn.10004299
mov bl, al
mov eax, dword [ebp - 0x6b0]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov esi, dword [ebp - 0x6ac]
test bl, bl
je 0x100046b0
test esi, esi
jne 0x1000468d
xor eax, eax
jmp 0x10004718
cmp esi, 0x642
jne 0x100046b0
mov eax, dword [ebp - 0x6b4]
xor esi, esi
push str.Initialization_canceled_by_user.
push edi
mov dword [eax], 2
call fcn.1000400a
pop ecx
pop ecx
mov eax, dword [0x1002f98c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [0x1002f990]
and dword [0x1002f98c], 0
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [0x1002f984]
and dword [0x1002f990], 0
push dword [0x1002f988]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x50]
mov eax, dword [0x1002f988]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
and dword [0x1002f988], 0
mov ecx, dword [0x1002f984]
push ecx
mov edx, dword [ecx]
call dword [edx + 0x2c]
mov ecx, dword [0x1002f984]
push ecx
mov edx, dword [ecx]
call dword [edx + 8]
and dword [0x1002f984], 0
mov eax, esi
pop ebx
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.10004903
leave
ret 0xc