Function at 0x10004442
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6b4
mov eax, dword [0x1002c004]
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 [0x1002c950], eax
mov edi, 0x103
push edi
lea eax, [ebp - 0x6a8]
mov dword [ebp - 0x6b4], ecx
push eax
push dword [0x1002c91c]
mov dword [ebp - 0x6ac], esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x100044ac
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.10003ff9
add esp, 0xc
mov eax, esi
jmp 0x100046f9
cmp eax, edi
jne 0x100044c1
push str.Failed_to_get_module_path____path_is_too_long.
push dword [ebp + 8]
call fcn.10003ff9
pop ecx
pop ecx
jmp 0x100044a5
push dword [0x1002c950]
mov edi, dword [ebp + 8]
push str.Extracting_embedded_UI_to_temporary_directory:__s
push edi
call fcn.10003ff9
add esp, 0xc
lea eax, [ebp - 0x6a8]
push dword [0x1002c950]
push eax
call fcn.10001800
test eax, eax
je 0x1000450a
push eax
push str.Failed_to_extract_to_temporary_directory._Cabinet_error_code__d.
push edi
call fcn.10003ff9
push str.Ensure_that_no_MsiEmbeddedUI.FileName_values_are_the_same_as_any_file_contained_in_the_embedded_UI_package.
push edi
call fcn.10003ff9
add esp, 0x14
jmp 0x100044a5
push ebx
push dword [0x1002c950]
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 [0x1002c950]
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 0x1002c954
lea eax, [ebp - 0x4a0]
push eax
push ebx
push 0
push edi
call fcn.1000127d
test al, al
je 0x100046f6
push 0x1002c958
push ebx
push dword [0x1002c950]
push str.EmbeddedUI
push dword [0x1002c954]
push edi
call section..text
test al, al
je 0x100046d7
push 0x1002c95c
push str.ProcessMessage
mov ebx, str.Microsoft.Deployment.WindowsInstaller.EmbeddedUIProxy
push ebx
push str.Microsoft.Deployment.WindowsInstaller
push dword [0x1002c958]
push edi
call fcn.10001181
test al, al
je 0x10004690
push 0x1002c960
push str.Shutdown
push ebx
push str.Microsoft.Deployment.WindowsInstaller
push dword [0x1002c958]
push edi
call fcn.10001181
test al, al
je 0x10004690
lea eax, [ebp - 0x6b0]
push eax
push str.Initialize
push ebx
push str.Microsoft.Deployment.WindowsInstaller
push dword [0x1002c958]
push edi
call fcn.10001181
test al, al
je 0x10004690
lea eax, [ebp - 0x6ac]
push eax
push dword [ebp - 0x6b4]
push str.InitializeEmbeddedUI_FullClassName
push edi
push dword [ebp - 0x6b0]
call fcn.10004279
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 0x10004690
test esi, esi
jne 0x1000466d
xor eax, eax
jmp 0x100046f8
cmp esi, 0x642
jne 0x10004690
mov eax, dword [ebp - 0x6b4]
xor esi, esi
push str.Initialization_canceled_by_user.
push edi
mov dword [eax], 2
call fcn.10003ff9
pop ecx
pop ecx
mov eax, dword [0x1002c95c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [0x1002c960]
and dword [0x1002c95c], 0
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [0x1002c954]
and dword [0x1002c960], 0
push dword [0x1002c958]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x50]
mov eax, dword [0x1002c958]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
and dword [0x1002c958], 0
mov ecx, dword [0x1002c954]
push ecx
mov edx, dword [ecx]
call dword [edx + 0x2c]
mov ecx, dword [0x1002c954]
push ecx
mov edx, dword [ecx]
call dword [edx + 8]
and dword [0x1002c954], 0
mov eax, esi
pop ebx
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.100048e3
leave
ret 0xc