Function at 0x180004b88
Capabilities:
Check if file exists

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x600]
sub rsp, 0x700
mov rax, qword [0x180031008]
xor rax, rsp
mov qword [rbp + 0x5f0], rax
mov rsi, r8
mov qword [0x180031b50], rdx
mov edi, ecx
lea rdx, [rbp + 0x3e0]
mov rcx, qword [0x180031ae8]
mov r14d, 0x103
mov ebx, 3
mov r8d, r14d
mov dword [rsp + 0x30], ebx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x180004c06
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.Failed_to_get_module_path._Error_code__d.
mov ecx, edi
mov r8d, eax
call fcn.18000465c
jmp 0x180004eb2
mov ecx, edi
cmp eax, r14d
jne 0x180004c1e
lea rdx, str.Failed_to_get_module_path____path_is_too_long.
call fcn.18000465c
jmp 0x180004eb2
mov r8, qword [0x180031b50]
lea rdx, str.Extracting_embedded_UI_to_temporary_directory:__s
call fcn.18000465c
mov rdx, qword [0x180031b50]
lea rcx, [rbp + 0x3e0]
call fcn.1800019fc
test eax, eax
je 0x180004c64
mov r8d, eax
lea rdx, str.Failed_to_extract_to_temporary_directory._Cabinet_error_code__d.
mov ecx, edi
call fcn.18000465c
lea rdx, str.Ensure_that_no_MsiEmbeddedUI.FileName_values_are_the_same_as_any_file_contained_in_the_embedded_UI_package.
mov ecx, edi
jmp 0x180004c14
mov r8, qword [0x180031b50]
lea rcx, [rsp + 0x40]
mov r14d, 0x118
mov edx, r14d
call fcn.18000164c
lea r8, str.EmbeddedUI.config
mov edx, r14d
lea rcx, [rsp + 0x40]
call fcn.18000157c
lea rcx, [rsp + 0x40]
lea r15, [rsp + 0x40]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov r8, qword [0x180031b50]
lea rcx, [rbp + 0x170]
neg eax
sbb r14, r14
and r14, r15
mov r15d, 0x136
mov edx, r15d
call fcn.18000164c
lea r8, str.Microsoft.Deployment.WindowsInstaller.dll
mov edx, r15d
lea rcx, [rbp + 0x170]
call fcn.18000157c
lea rax, [0x180031b58]
mov r8, r14
lea r9, [rbp + 0x170]
mov qword [rsp + 0x20], rax
xor edx, edx
mov ecx, edi
call fcn.180001378
test al, al
je 0x180004eb2
mov r9, qword [0x180031b50]
lea rax, [0x180031b60]
mov rdx, qword [0x180031b58]
lea r8, str.EmbeddedUI
mov qword [rsp + 0x28], rax
mov ecx, edi
mov qword [rsp + 0x20], r14
call section..text
test al, al
je 0x180004e90
mov rdx, qword [0x180031b60]
lea rax, [0x180031b68]
mov qword [rsp + 0x28], rax
lea r14, str.Microsoft.Deployment.WindowsInstaller.EmbeddedUIProxy
lea rax, str.ProcessMessage
mov r9, r14
lea r15, str.Microsoft.Deployment.WindowsInstaller
mov qword [rsp + 0x20], rax
mov r8, r15
mov ecx, edi
call fcn.180001210
test al, al
je 0x180004e3a
mov rdx, qword [0x180031b60]
lea rax, [0x180031b70]
mov qword [rsp + 0x28], rax
mov r9, r14
lea rax, str.Shutdown
mov r8, r15
mov ecx, edi
mov qword [rsp + 0x20], rax
call fcn.180001210
test al, al
je 0x180004e3a
mov rdx, qword [0x180031b60]
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
mov r9, r14
lea rax, str.Initialize
mov r8, r15
mov ecx, edi
mov qword [rsp + 0x20], rax
call fcn.180001210
test al, al
je 0x180004e3a
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x30]
mov r9, rsi
mov qword [rsp + 0x20], rax
lea r8, str.InitializeEmbeddedUI_FullClassName
mov edx, edi
call fcn.180004910
mov rcx, qword [rsp + 0x38]
mov bl, al
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
test bl, bl
mov ebx, dword [rsp + 0x30]
je 0x180004e3a
test ebx, ebx
jne 0x180004e1c
xor eax, eax
jmp 0x180004eb4
cmp ebx, 0x642
jne 0x180004e3a
xor ebx, ebx
mov dword [rsi], 2
lea rdx, str.Initialization_canceled_by_user.
mov ecx, edi
call fcn.18000465c
mov rcx, qword [0x180031b68]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rcx, qword [0x180031b70]
and qword [0x180031b68], 0
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rcx, qword [0x180031b58]
and qword [0x180031b70], 0
mov rdx, qword [0x180031b60]
mov rax, qword [rcx]
call qword [rax + reloc.msi.dll_MsiDatabaseIsTablePersistentA]
mov rcx, qword [0x180031b60]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
and qword [0x180031b60], 0
mov rcx, qword [0x180031b58]
mov rdx, qword [rcx]
call qword [rdx + 0x58]
mov rcx, qword [0x180031b58]
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
and qword [0x180031b58], 0
mov eax, ebx
mov rcx, qword [rbp + 0x5f0]
xor rcx, rsp
call fcn.1800051e0
mov rbx, qword [rsp + 0x748]
add rsp, 0x700
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret