Function at 0x1400088b0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xd0]
sub rsp, 0x1d0
mov rax, qword [0x14008b020]
xor rax, rsp
mov qword [rbp + 0xc0], rax
mov rsi, r8
xor r12d, r12d
mov edi, r12d
mov dword [rsp + 0x34], r12d
lea ecx, [r12 + 1]
call qword [sym.imp.api_ms_win_core_winrt_l1_1_0.dll_RoInitialize]
mov ebx, eax
mov dword [rsp + 0x38], eax
test eax, eax
js 0x14000936a
xorps xmm0, xmm0
movups xmmword [rbp - 0x28], xmm0
mov qword [rbp - 0x18], r12
mov qword [rbp - 0x10], r12
mov r15, 0xffffffffffffffff
mov r8, r15
nop dword [rax + rax]
inc r8
cmp word [rsi + r8*2], 0
jne 0x140008930
mov rdx, rsi
lea rcx, [rbp - 0x28]
call fcn.140004560
nop
lea rax, [rsp + 0x58]
mov qword [rsp + 0x50], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x70], 7
mov word [rsp + 0x58], r12w
lea rax, [rsp + 0x78]
mov qword [rsp + 0x40], rax
lea rdx, [rbp - 0x28]
lea rcx, [rsp + 0x78]
call fcn.140003f50
nop
lea r8, [rsp + 0x58]
mov rdx, rax
lea rcx, [rbp + 0x60]
call fcn.140009430
nop
call fcn.14002ab30
test al, al
jne 0x140008a36
lea rdx, [rbp - 0x68]
call fcn.140029fb0
nop
lea rcx, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae rcx, qword [rbp - 0x68]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1400089d2
test al, 0x10
je 0x1400089d2
mov sil, 1
jmp 0x1400089d5
xor sil, sil
mov rdx, qword [rbp - 0x50]
cmp rdx, 8
jb 0x140008a15
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140008a10
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400093b8
call fcn.14003d1f0
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rbp - 0x58], xmm0
mov word [rbp - 0x68], r12w
test sil, sil
je 0x140008a31
call fcn.14002c230
call fcn.14002ad00
call fcn.14002af30
test al, al
jne 0x140008ad3
lea rdx, [rbp + 0x38]
call fcn.14002a100
nop
lea rcx, [rbp + 0x38]
cmp qword [rbp + 0x50], 8
cmovae rcx, qword [rbp + 0x38]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140008a6f
test al, 0x10
je 0x140008a6f
mov sil, 1
jmp 0x140008a72
xor sil, sil
mov rdx, qword [rbp + 0x50]
cmp rdx, 8
jb 0x140008ab2
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140008aad
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400093be
call fcn.14003d1f0
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rbp + 0x48], xmm0
mov word [rbp + 0x38], r12w
test sil, sil
je 0x140008ace
call fcn.14002c650
call fcn.14002b100
call fcn.14002b330
test al, al
jne 0x140008b70
lea rdx, [rbp - 8]
call fcn.14002a250
nop
lea rcx, [rbp - 8]
cmp qword [rbp + 0x10], 8
cmovae rcx, qword [rbp - 8]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140008b0c
test al, 0x10
je 0x140008b0c
mov sil, 1
jmp 0x140008b0f
xor sil, sil
mov rdx, qword [rbp + 0x10]
cmp rdx, 8
jb 0x140008b4f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140008b4a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400093c4
call fcn.14003d1f0
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rbp + 8], xmm0
mov word [rbp - 8], r12w
test sil, sil
je 0x140008b6b
call fcn.14002c890
call fcn.14002b500
call fcn.14002a730
test al, al
jne 0x140008b99
lea rdx, [rbp - 0x48]
call fcn.140029d10
nop
mov edi, 1
mov dword [rsp + 0x34], edi
cmp qword [rax + 0x10], 0
je 0x140008b99
movzx esi, dil
jmp 0x140008b9c
xor sil, sil
test dil, 1
je 0x140008bfb
and edi, 0xfffffffe
mov dword [rsp + 0x34], edi
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x140008be9
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140008be4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400093ca
call fcn.14003d1f0
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rbp - 0x38], xmm0
mov word [rbp - 0x48], r12w
lea r14, str._uninstallMsiVersion
test sil, sil
je 0x140008d05
call fcn.14002a3a0
cmp eax, 1
jne 0x140008d60
call fcn.14002d2a0
test al, al
je 0x140008c27
call fcn.14002c040
lea rdx, [rbp - 0x48]
call fcn.140029d10
nop
mov r8d, 1
mov rdx, rax
call fcn.14002bac0
nop
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x140008c80
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140008c7b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400093d0
call fcn.14003d1f0
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rbp - 0x38], xmm0
mov word [rbp - 0x48], r12w
call fcn.14002a900
call fcn.14002a560
test al, al
je 0x140008d05
lea rdx, [rbp - 8]
call fcn.14002d440
nop
mov rdx, rax
call fcn.14001eca0
nop
mov rdx, qword [rbp + 0x10]
cmp rdx, 8
jb 0x140008cf3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140008cee
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400093d6
call fcn.14003d1f0
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rbp + 8], xmm0
mov word [rbp - 8], r12w
mov r12, qword [rbp - 0x28]
mov rsi, qword [rbp - 0x18]
mov r13, qword [rbp - 0x10]
xor r15d, r15d
lea rcx, [rbp - 0x28]
cmp r13, 8
cmovae rcx, r12
cmp rsi, 0x14
jne 0x14000929c
test rsi, rsi
je 0x140008d59
sub rcx, r14
nop dword [rax]
nop word [rax + rax]
movzx eax, word [rcx + r14]
cmp ax, word [r14]
jne 0x14000929c
add r14, 2
sub rsi, 1
jne 0x140008d40
mov al, 1
jmp 0x14000929e
test eax, eax
jne 0x140008d05
call fcn.14002d2a0
mov rsi, qword [rbp - 0x18]
test al, al
je 0x140008ef8
test rsi, rsi
jne 0x140008ef8
call fcn.140001af0
mov rcx, rax
test rax, rax
je 0x1400093dc
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
lea edx, [rsi + 0x69]
lea rcx, [rsp + 0x40]
call fcn.140001ef0
call fcn.140001af0
mov rcx, rax
test rax, rax
je 0x1400093e7
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x48], rax
lea edx, [rsi + 0x68]
lea rcx, [rsp + 0x48]
call fcn.140001ef0
call fcn.140001af0
mov rcx, rax
test rax, rax
je 0x1400093f2
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x50], rax
lea rdx, [rbp + 0x18]
call fcn.140029bc0
nop
cmp qword [rax + 0x18], 8
jb 0x140008e0c
mov rax, qword [rax]
mov r8, rax
mov rdx, qword [rsp + 0x48]
lea rcx, [rsp + 0x50]
call fcn.140002570
nop
mov rdx, qword [rbp + 0x30]
cmp rdx, 8
jb 0x140008e5f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140008e5a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400093fd
call fcn.14003d1f0
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rbp + 0x28], xmm0
mov word [rbp + 0x18], r12w
mov r9d, 0x24
mov r8, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x50]
mov rdx, rdi
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x140008e97
call fcn.14002c040
nop
lea rdx, [rdi - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140008eb2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140008ed2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r15d
sub r15d, 1
jg 0x140008ef0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rsp + 0x38]
lea rdi, [rbp - 0x28]
mov r12, qword [rbp - 0x28]
mov r13, qword [rbp - 0x10]
cmp r13, 8
cmovae rdi, r12
cmp rsi, 0x14
jne 0x140008f37
mov rdx, rsi
mov rcx, r14
test rsi, rsi
je 0x140008f33
sub rdi, r14
movzx eax, word [rdi + rcx]
cmp ax, word [rcx]
jne 0x140008f37
add rcx, 2
sub rdx, 1
jne 0x140008f20
mov al, 1
jmp 0x140008f39
xor al, al
test al, al
je 0x140009019
lea rdx, [rbp + 0x18]
call fcn.140029d10
nop
xor r8d, r8d
mov rdx, rax
call fcn.14002bac0
nop
mov rdx, qword [rbp + 0x30]
cmp rdx, 8
jb 0x140008f97
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140008f92
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140009403
call fcn.14003d1f0
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rbp + 0x28], xmm0
xor r15d, r15d
mov word [rbp + 0x18], r15w
call fcn.14002a900
call fcn.14002a560
test al, al
je 0x140008d14
lea rdx, [rbp - 0x48]
call fcn.14002d440
nop
mov rdx, rax
call fcn.14001eca0
nop
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x140009223
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000921e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400093ac
jmp 0x14000921e
test rsi, rsi
jne 0x140008d11
lea rdx, [rbp + 0x18]
call fcn.140029d10
mov r15, rax
xorps xmm0, xmm0
movups xmmword [rbp - 0x68], xmm0
xor r9d, r9d
mov qword [rbp - 0x58], r9
mov qword [rbp - 0x50], r9
mov qword [rbp - 0x58], r9
mov qword [rbp - 0x50], 7
mov word [rbp - 0x68], r9w
mov edx, 0x26
mov rcx, qword [rbp - 0x58]
sub rdx, rcx
mov rdi, qword [rbp - 0x50]
mov rax, rdi
sub rax, rcx
cmp rdx, rax
ja 0x14000909b
mov qword [rbp - 0x58], 0x26
lea r8, [rbp - 0x68]
cmp rdi, 8
cmovae r8, qword [rbp - 0x68]
lea rdi, [r8 + rcx*2]
test rdx, rdx
je 0x140009094
movzx eax, r9w
mov rcx, rdx
rep stosw word [rdi], ax
mov word [r8 + 0x4c], r9w
jmp 0x1400090b3
mov word [rsp + 0x20], r9w
mov r9, rdx
movzx r8d, byte [rsp + 0x30]
lea rcx, [rbp - 0x68]
call fcn.140004690
lea r9, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae r9, qword [rbp - 0x68]
cmp qword [r15 + 0x18], 8
jb 0x1400090cb
mov r15, qword [r15]
xor r8d, r8d
xor edx, edx
mov rcx, r15
call qword [sym.imp.msi.dll_MsiSourceListClearAllW]
nop
mov rdx, qword [rbp - 0x50]
test eax, eax
jne 0x140009126
cmp rdx, 8
jb 0x14000911e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140009119
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140009409
call fcn.14003d1f0
xor r15d, r15d
mov dil, 1
jmp 0x140009168
cmp rdx, 8
jb 0x140009162
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000915d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140009409
call fcn.14003d1f0
xor r15d, r15d
xor dil, dil
mov word [rbp - 0x68], r15w
mov qword [rbp - 0x50], 7
mov qword [rbp - 0x58], r15
mov rdx, qword [rbp + 0x30]
cmp rdx, 8
jb 0x1400091b9
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400091b4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000940f
call fcn.14003d1f0
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rbp + 0x28], xmm0
mov word [rbp + 0x18], r15w
test dil, dil
je 0x14000923a
lea rdx, [rbp - 0x48]
call fcn.14002d610
nop
mov rdx, rax
call fcn.14001eca0
nop
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x140009223
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000921e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140009415
call fcn.14003d1f0
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rbp - 0x38], xmm0
mov word [rbp - 0x48], r15w
jmp 0x140008d14
call fcn.14002a900
call fcn.14002a560
test al, al
je 0x140008d14
lea rdx, [rbp - 0x48]
call fcn.14002d440
nop
mov rdx, rax
call fcn.14001eca0
nop
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x140009223
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000921e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400093b2
jmp 0x14000921e
xor al, al
test al, al
jne 0x140009317
call fcn.140002e90
mov rax, qword [rbp + 0x60]
lea rdx, [rbp - 8]
lea rcx, [rbp + 0x60]
call qword [rax + 8]
nop
lea rdx, [rbp - 8]
lea rcx, [rbp + 0x60]
call fcn.140003090
nop
mov rdx, qword [rbp + 0x10]
cmp rdx, 8
jb 0x140009305
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140009300
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000941b
call fcn.14003d1f0
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rbp + 8], xmm0
mov word [rbp - 8], r15w
lea rcx, [rbp + 0x60]
call fcn.140002dc0
nop
cmp r13, 8
jb 0x140009359
lea rdx, [r13*2 + 2]
mov rax, r12
cmp rdx, 0x1000
jb 0x140009351
add rdx, 0x27
mov r12, qword [r12 - 8]
sub rax, r12
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400093a6
mov rcx, r12
call fcn.14003d1f0
mov qword [rbp - 0x18], r15
mov qword [rbp - 0x10], 7
mov word [rbp - 0x28], r15w
test ebx, ebx
js 0x140009374
call qword [sym.imp.api_ms_win_core_winrt_l1_1_0.dll_RoUninitialize]
xor eax, eax
mov rcx, qword [rbp + 0xc0]
xor rcx, rsp
call fcn.14003d1d0
lea r11, [rsp + 0x1d0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.14004930c
nop
call fcn.14004930c
int3
call fcn.14004930c
int3
call fcn.14004930c
int3
call fcn.14004930c
int3
call fcn.14004930c
int3
call fcn.14004930c
int3
call fcn.14004930c
int3
call fcn.14004930c
int3
mov ecx, 0x80004005
call fcn.1400019c0
nop
mov ecx, 0x80004005
call fcn.1400019c0
nop
mov ecx, 0x80004005
call fcn.1400019c0
nop
call fcn.14004930c
nop
call fcn.14004930c
nop
call fcn.14004930c
nop
call fcn.14004930c
int3
call fcn.14004930c
int3
call fcn.14004930c
int3