Function at 0x10004472
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6b4
mov eax, dword [section..data]
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 0x100044dc
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.10004023
add esp, 0xc
mov eax, esi
jmp 0x10004729
cmp eax, edi
jne 0x100044f1
push str.Failed_to_get_module_path____path_is_too_long.
push dword [ebp + 8]
call fcn.10004023
pop ecx
pop ecx
jmp 0x100044d5
push dword [0x1002c950]
mov edi, dword [ebp + 8]
push str.Extracting_embedded_UI_to_temporary_directory:__s
push edi
call fcn.10004023
add esp, 0xc
lea eax, [ebp - 0x6a8]
push dword [0x1002c950]
push eax
call fcn.100017f7
test eax, eax
je 0x1000453a
push eax
push str.Failed_to_extract_to_temporary_directory._Cabinet_error_code__d.
push edi
call fcn.10004023
push str.Ensure_that_no_MsiEmbeddedUI.FileName_values_are_the_same_as_any_file_contained_in_the_embedded_UI_package.
push edi
call fcn.10004023
add esp, 0x14
jmp 0x100044d5
push ebx
push dword [0x1002c950]
mov ebx, 0x118
lea eax, [ebp - 0x234]
push ebx
push eax
call fcn.100014b4
push str.EmbeddedUI.config
push ebx
lea eax, [ebp - 0x234]
push eax
call fcn.10001436
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.100014b4
push str.Microsoft.Deployment.WindowsInstaller.dll
push 0x136
lea eax, [ebp - 0x4a0]
push eax
call fcn.10001436
push 0x1002c954
lea eax, [ebp - 0x4a0]
push eax
push ebx
push 0
push edi
call fcn.10001281
test al, al
je 0x10004726
push 0x1002c958
push ebx
push dword [0x1002c950]
push str.EmbeddedUI
push dword [0x1002c954]
push edi
call section..text
test al, al
je 0x10004707
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.10001183
test al, al
je 0x100046c0
push 0x1002c960
push str.Shutdown
push ebx
push str.Microsoft.Deployment.WindowsInstaller
push dword [0x1002c958]
push edi
call fcn.10001183
test al, al
je 0x100046c0
lea eax, [ebp - 0x6b0]
push eax
push str.Initialize
push ebx
push str.Microsoft.Deployment.WindowsInstaller
push dword [0x1002c958]
push edi
call fcn.10001183
test al, al
je 0x100046c0
lea eax, [ebp - 0x6ac]
push eax
push dword [ebp - 0x6b4]
push str.InitializeEmbeddedUI_FullClassName
push edi
push dword [ebp - 0x6b0]
call fcn.100042a5
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 0x100046c0
test esi, esi
jne 0x1000469d
xor eax, eax
jmp 0x10004728
cmp esi, 0x642
jne 0x100046c0
mov eax, dword [ebp - 0x6b4]
xor esi, esi
push str.Initialization_canceled_by_user.
push edi
mov dword [eax], 2
call fcn.10004023
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.10004917
mov esp, ebp
pop ebp
ret 0xc