Function at 0x14001c6e0
Capabilities:
Check if file exists

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xd0
mov r14, rcx
xor r12d, r12d
mov dword [rbp + 0x67], r12d
cmp qword [rcx + 0x10], r12
je 0x14001c73f
xor r8d, r8d
mov ebx, 0x8000ffff
mov edx, ebx
lea rcx, str.PkgDefManagement_already_initialized
call fcn.140043d74
mov eax, ebx
mov rbx, qword [rsp + 0x118]
add rsp, 0xd0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea r15, [rcx + 0x58]
or edi, 0xffffffff
test rdx, rdx
je 0x14001c7f3
lea rcx, [rbp - 0x79]
call fcn.140002cec
nop
lea rdx, [rbp - 0x79]
mov rcx, r15
call fcn.140006324
nop
mov rdx, qword [rbp - 0x79]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14001c784
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [r15]
sub rcx, 0x18
call fcn.1400028e4
add rax, 0x18
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x28]
call fcn.14002a05c
mov esi, eax
test eax, eax
jns 0x14001c985
call fcn.1400027c4
test rax, rax
je 0x14001d04d
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rbp - 0x49], rax
mov rcx, qword [r15]
test rcx, rcx
je 0x14001c8f1
add rcx, 0xffffffffffffffe8
call fcn.1400028e4
lea r8, [rax + 0x18]
mov qword [rbp - 0x51], r8
mov ebx, 4
jmp 0x14001c90b
mov rcx, r15
call fcn.140013a24
mov esi, eax
test eax, eax
jns 0x14001c784
call fcn.1400027c4
mov rcx, rax
test rax, rax
je 0x14001d06b
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x61], rax
mov rcx, qword [r15]
test rcx, rcx
je 0x14001c840
add rcx, 0xffffffffffffffe8
call fcn.1400028e4
lea r8, [rax + 0x18]
mov qword [rbp - 0x69], r8
mov ebx, 1
jmp 0x14001c859
lea rdx, str.NULL
lea rcx, [rbp - 0x71]
call fcn.140002cec
mov ebx, 2
mov r8, qword [rbp - 0x71]
mov dword [rbp + 0x67], ebx
lea rdx, str.DiscoverHostingAppPath_failed_for_executable_path:__s
lea rcx, [rbp - 0x61]
call fcn.14001d078
or edi, 0xffffffff
test bl, 2
je 0x14001c89b
and ebx, 0xfffffffd
mov dword [rbp + 0x67], ebx
mov rdx, qword [rbp - 0x71]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14001c898
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov ebx, dword [rbp + 0x67]
test bl, 1
je 0x14001c8be
mov rdx, qword [rbp - 0x69]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14001c8be
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor r8d, r8d
mov edx, esi
mov rbx, qword [rbp - 0x61]
mov rcx, rbx
call fcn.140043d74
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14001c8ea
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, esi
jmp 0x14001c724
lea rdx, str.NULL
lea rcx, [rbp - 0x59]
call fcn.140002cec
nop
mov ebx, 8
mov r8, qword [rbp - 0x59]
mov dword [rbp + 0x67], ebx
lea rdx, str.GetCanonicalName_failed_for_application_executable_path__s
lea rcx, [rbp - 0x49]
call fcn.14001d078
nop
test bl, 8
je 0x14001c94b
and ebx, 0xfffffff7
mov dword [rbp + 0x67], ebx
mov rdx, qword [rbp - 0x59]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14001c948
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov ebx, dword [rbp + 0x67]
test bl, 4
je 0x14001c96e
mov rdx, qword [rbp - 0x51]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14001c96e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor r8d, r8d
mov edx, esi
mov rbx, qword [rbp - 0x49]
mov rcx, rbx
call fcn.140043d74
nop
jmp 0x14001ccb4
mov rdx, qword [rsp + 0x28]
lea rcx, [rbp - 0x41]
call fcn.140002cec
nop
lea rdx, [rbp - 0x41]
mov rcx, r15
call fcn.140006324
nop
mov rdx, qword [rbp - 0x41]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14001c9bf
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [r15]
call qword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
lea r13, [r14 + 0x190]
mov rsi, qword [r15]
test eax, eax
je 0x14001ccd7
test rsi, rsi
jne 0x14001c9e9
mov esi, 0x80070057
jmp 0x14001cbe8
lea rdx, [0x1400631a8]
lea rcx, [rbp - 0x39]
call fcn.140002cec
nop
lea rdx, [rbp - 0x39]
mov rcx, r13
call fcn.140006324
nop
mov rdx, qword [rbp - 0x39]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14001ca25
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, rsi
lea rcx, [rbp + 0x77]
call fcn.140002cec
nop
mov rcx, qword [rbp + 0x77]
call qword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x14001ca54
mov r8, rsi
mov esi, 0x80070057
lea rcx, str.AppId_path_is_not_a_directory
jmp 0x14001cbc2
lea rdx, str.master.pkgdef
lea rcx, [rbp + 0x77]
call fcn.140009ab0
mov rcx, qword [rbp + 0x77]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14001ca88
lea rdx, [rbp + 0x77]
mov rcx, r13
call fcn.140006324
nop
mov rdx, qword [rbp + 0x77]
jmp 0x14001cfbd
mov rdx, rsi
lea rcx, [rbp - 0x31]
call fcn.140002cec
lea rdx, [rbp - 0x31]
lea rcx, [rbp + 0x77]
call fcn.140006324
mov rdx, qword [rbp - 0x31]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14001cabf
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, str.devenv.pkgdef
lea rcx, [rbp + 0x77]
call fcn.140009ab0
mov rcx, qword [rbp + 0x77]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x14001ca72
mov rdx, rsi
lea rcx, [rbp - 0x29]
call fcn.140002cec
nop
lea rdx, [rbp - 0x29]
lea rcx, [rbp + 0x77]
call fcn.140006324
nop
mov rdx, qword [rbp - 0x29]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14001cb16
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [0x1400769b0]
lea rcx, [rbp + 0x77]
call fcn.140009ab0
lea rdx, str.master.pkgdef
lea rcx, [rbp + 0x77]
call fcn.140009ab0
mov rcx, qword [rbp + 0x77]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x14001ca72
mov rdx, rsi
lea rcx, [rbp - 0x21]
call fcn.140002cec
nop
lea rdx, [rbp - 0x21]
lea rcx, [rbp + 0x77]
call fcn.140006324
nop
mov rdx, qword [rbp - 0x21]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14001cb81
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [0x1400769b0]
lea rcx, [rbp + 0x77]
call fcn.140009ab0
lea rdx, str.devenv.pkgdef
lea rcx, [rbp + 0x77]
call fcn.140009ab0
mov rcx, qword [rbp + 0x77]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x14001ca72
mov r8, rsi
mov esi, 0x80030002
lea rcx, str.Could_not_locate_master_pkgdef_file_in_directory
mov edx, esi
call fcn.140043d74
nop
mov rdx, qword [rbp + 0x77]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14001cbe8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
call fcn.1400027c4
mov rcx, rax
test rax, rax
je 0x14001d04d
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 9], rax
mov rcx, qword [r15]
test rcx, rcx
je 0x14001cc27
add rcx, 0xffffffffffffffe8
call fcn.1400028e4
lea r8, [rax + 0x18]
mov qword [rbp - 0x11], r8
mov ebx, reloc.OLEAUT32.dll_SafeArrayGetDim
jmp 0x14001cc40
lea rdx, str.NULL
lea rcx, [rbp - 0x19]
call fcn.140002cec
mov ebx, SafeArrayAllocDescriptor
mov r8, qword [rbp - 0x19]
mov dword [rbp + 0x67], ebx
lea rdx, str.LocateMasterPkgDefInDirectory_failed_for_app_executable_path__s
lea rcx, [rbp - 9]
call fcn.14001d078
test bl, 0x20
je 0x14001cc7f
and ebx, 0xffffffdf
mov dword [rbp + 0x67], ebx
mov rdx, qword [rbp - 0x19]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14001cc7c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov ebx, dword [rbp + 0x67]
test bl, 0x10
je 0x14001cca2
mov rdx, qword [rbp - 0x11]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14001cca2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor r8d, r8d
mov edx, esi
mov rbx, qword [rbp - 9]
mov rcx, rbx
call fcn.140043d74
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14001d03f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14001d03f
test rsi, rsi
jne 0x14001cce6
mov esi, 0x80070057
jmp 0x14001cec0
mov rdx, rsi
lea rcx, [rbp + 0x7f]
call fcn.140002cec
nop
lea rdx, [0x1400631a8]
lea rcx, [rbp - 1]
call fcn.140002cec
nop
lea rdx, [rbp - 1]
mov rcx, r13
call fcn.140006324
nop
mov rdx, qword [rbp - 1]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14001cd2f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rbp + 0x7f]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x14001cd59
mov esi, 0x80030002
lea rcx, str.Could_not_locate_executable
mov edx, esi
mov r8, qword [rbp + 0x7f]
call fcn.140043d74
jmp 0x14001cea2
lea rdx, [rbp + 0x1f]
lea rcx, [rbp + 0x7f]
call fcn.140013170
mov r12, rax
mov rax, qword [rax]
movsxd rbx, dword [rax - 0x10]
test ebx, ebx
js 0x14001d05d
mov edx, 1
sub edx, dword [rax - 8]
mov ecx, dword [rax - 0xc]
sub ecx, ebx
or ecx, edx
jge 0x14001cd93
mov edx, ebx
mov rcx, r12
call fcn.140002b54
lea eax, [rbx + 1]
movsxd rdx, eax
mov rcx, qword [r12]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsupr_s]
mov rax, qword [r12]
cmp ebx, dword [rax - 0xc]
jg 0x14001d05d
mov dword [rax - 0x10], ebx
mov rax, qword [r12]
xor edx, edx
mov word [rax + rbx*2], dx
lea rdx, str..EXE
mov rcx, qword [r12]
call sub.api_ms_win_crt_string_l1_1_0.dll_wcscmp
mov ebx, eax
mov rdx, qword [rbp + 0x1f]
add rdx, 0xffffffffffffffe8
mov ecx, edi
lock xadd dword [rdx + 0x10], ecx
add ecx, edi
xor r12d, r12d
test ecx, ecx
jg 0x14001cdf1
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
test ebx, ebx
je 0x14001ce06
mov esi, 0x80070057
lea rcx, str.Executable_is_not_.EXE
jmp 0x14001cd49
mov rcx, qword [rbp + 0x7f]
add rcx, 0xffffffffffffffe8
call fcn.1400028e4
add rax, 0x18
mov qword [rsp + 0x20], rax
lea rdx, str..PkgDef
lea rcx, [rsp + 0x20]
call fcn.140029ad0
mov rbx, qword [rsp + 0x20]
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x14001ce5f
lea rcx, [rsp + 0x20]
call fcn.140021cac
lea rdx, str.master.pkgdef
lea rcx, [rsp + 0x20]
call fcn.140009ab0
mov rbx, qword [rsp + 0x20]
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x14001cf91
mov r8, rsi
mov esi, 0x80030002
mov edx, esi
lea rcx, str.Could_not_locate_master_pkgdef_file_for_AppId
call fcn.140043d74
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14001cea2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x7f]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14001cec0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
call fcn.1400027c4
mov rcx, rax
test rax, rax
je 0x14001d04d
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x17], rax
mov rcx, qword [r15]
test rcx, rcx
je 0x14001ceff
add rcx, 0xffffffffffffffe8
call fcn.1400028e4
lea r8, [rax + 0x18]
mov qword [rbp + 0xf], r8
mov ebx, 0x40
jmp 0x14001cf18
lea rdx, str.NULL
lea rcx, [rbp + 7]
call fcn.140002cec
mov ebx, 0x80
mov r8, qword [rbp + 7]
mov dword [rbp + 0x67], ebx
lea rdx, str.LocateMasterPkgDefFromExe_failed_for_app_executable_path__s
lea rcx, [rbp + 0x17]
call fcn.14001d078
test bl, bl
jns 0x14001cf57
btr ebx, 7
mov dword [rbp + 0x67], ebx
mov rdx, qword [rbp + 7]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14001cf54
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov ebx, dword [rbp + 0x67]
test bl, 0x40
je 0x14001cf7a
mov rdx, qword [rbp + 0xf]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14001cf7a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor r8d, r8d
mov edx, esi
mov rbx, qword [rbp + 0x17]
mov rcx, rbx
call fcn.140043d74
nop
jmp 0x14001ccb4
lea rdx, [rsp + 0x20]
mov rcx, r13
call fcn.140006324
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14001cfb9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x7f]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14001cfd7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov esi, r12d
mov rdx, r13
lea rcx, [r14 + 0x50]
call fcn.140006324
lea rcx, [r14 + 0x50]
call fcn.140021cac
test byte [r14 + 0x3c], 0x20
jne 0x14001d010
test dword [r14 + 0x3c], 0x2000
jne 0x14001d010
cmp dword [r14 + 0x44], edi
je 0x14001d010
mov rax, qword [r14 + 0x78]
cmp dword [rax - 0x10], r12d
je 0x14001d03f
mov rcx, r14
call fcn.140016e7c
mov esi, eax
test eax, eax
jns 0x14001d031
xor r8d, r8d
mov edx, eax
lea rcx, str.ScanMasterPkgDefForInitializationFields_failed
call fcn.140043d74
jmp 0x14001d03f
cmp dword [r14 + 0x44], edi
jne 0x14001d03f
mov dword [r14 + 0x44], 1
mov rdx, qword [rsp + 0x28]
add rdx, 0xffffffffffffffe8
jmp 0x14001c8d4
mov ecx, 0x80004005
call fcn.1400312f0
nop
jmp 0x14001d05c
nop
mov ecx, 0x80070057
call fcn.1400312f0
nop
jmp 0x14001d06a
nop
mov ecx, 0x80004005
call fcn.1400312f0
int3