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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x300]
sub rsp, 0x400
mov rax, qword [0x1400e00c0]
xor rax, rsp
mov qword [rbp + 0x2f0], rax
mov r12, rdx
mov r13, rcx
mov qword [rsp + 0x60], rcx
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
xor edi, edi
mov eax, dword [rdx + rcx]
cmp dword [0x1400e55e0], eax
jle 0x1400123cf
lea rcx, [0x1400e55e0]
call fcn.1400702b8
cmp dword [0x1400e55e0], 0xffffffff
jne 0x1400123cf
mov qword [0x1400e55c0], rdi
mov qword [0x1400e55d0], rdi
mov qword [0x1400e55d8], 7
lea rcx, [0x1400a8bf0]
call fcn.14007063c
lea rcx, [0x1400e55e0]
call fcn.140070258
lea rcx, [0x1400e55c0]
call fcn.140010680
mov ecx, 0x14
lea rbx, str.C:Program_FilesAMD
test al, al
jne 0x1400123fd
mov r8d, ecx
mov rdx, rbx
lea rcx, [0x1400e55c0]
call fcn.1400027d0
mov byte [0x1400e5608], dil
mov qword [rbp - 0x38], rdi
mov qword [rbp - 0x28], rdi
mov qword [rbp - 0x20], 7
mov word [rbp - 0x38], di
mov r8d, 0x1a
lea rdx, str.C:Program_Files__x86_AMD
lea rcx, [rbp - 0x38]
call fcn.1400027d0
nop
lea rcx, [0x1400e55c0]
mov r14, qword [0x1400e55c0]
mov r15, qword [0x1400e55d8]
cmp r15, 8
cmovae rcx, r14
mov qword [rsp + 0x20], 3
lea r9, [0x1400bd550]
xor r8d, r8d
mov rsi, qword [0x1400e55d0]
mov rdx, rsi
call fcn.1400176b0
mov r8d, 0x100
cmp rax, 0xffffffffffffffff
je 0x14001260d
lea rdi, [0x1400e55c0]
cmp r15, 8
cmovae rdi, r14
test rsi, rsi
je 0x140012561
xor edx, edx
lea rcx, [rbp - 0x10]
call fcn.140072740
lea rcx, [0x1400bc204]
lea rdx, [0x1400bc206]
mov r8d, 0x100
movzx eax, word [rcx]
cmp ax, r8w
jae 0x140012500
movzx eax, al
mov byte [rbp + rax - 0x10], 1
add rcx, 2
cmp rcx, rdx
jne 0x1400124b5
lea rcx, [rsi - 1]
mov rax, 0xffffffffffffffff
cmp rcx, rax
cmovb rax, rcx
lea rdx, [rdi + rax*2]
movzx eax, word [rdx]
cmp ax, r8w
jae 0x1400124f5
cmp byte [rbp + rax - 0x10], 0
jne 0x140012559
cmp rdx, rdi
je 0x140012561
sub rdx, 2
jmp 0x1400124e5
lea rcx, [rsi - 1]
mov rax, 0xffffffffffffffff
cmp rcx, rax
cmovb rax, rcx
lea rdx, [rdi + rax*2]
mov r9d, 0x5c
nop dword [rax]
mov ecx, 1
movzx r8d, word [rdx]
lea rax, [0x1400bc204]
cmp r9w, r8w
je 0x140012559
cmp rcx, 1
je 0x14001254e
dec rcx
add rax, 2
cmp word [rax], r8w
jne 0x140012536
test rax, rax
jne 0x140012559
cmp rdx, rdi
je 0x140012561
sub rdx, 2
jmp 0x140012520
sub rdx, rdi
sar rdx, 1
jmp 0x140012568
mov rdx, 0xffffffffffffffff
xor eax, eax
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], 7
movsxd r8, edx
cmp rsi, r8
cmovb r8, rsi
lea rdx, [0x1400e55c0]
cmp r15, 8
cmovae rdx, r14
lea rcx, [rbp - 0x58]
call fcn.1400027d0
mov rdx, qword [0x1400e55d8]
cmp rdx, 8
jb 0x1400125e2
lea rdx, [rdx*2 + 2]
mov rcx, qword [0x1400e55c0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400125dd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140012f9e
call fcn.140070654
movups xmm0, xmmword [rbp - 0x58]
movups xmmword [0x1400e55c0], xmm0
movups xmm1, xmmword [rbp - 0x48]
movups xmmword [0x1400e55d0], xmm1
mov r15, qword [0x1400e55d8]
mov rsi, qword [0x1400e55d0]
mov r14, qword [0x1400e55c0]
lea r8, [0x1400e55c0]
cmp r15, 8
cmovae r8, r14
mov rax, rsi
cmp rsi, 0x14
mov ecx, 0x14
cmova rax, rcx
test rax, rax
je 0x140012674
movzx ecx, word [r8]
mov edx, MsiGetPropertyW
cmp cx, dx
jb 0x140012661
sub r8, rbx
cmp cx, dx
ja 0x14001266d
cmp rax, 1
je 0x140012674
dec rax
add rbx, 2
movzx ecx, word [r8 + rbx]
movzx edx, word [rbx]
cmp cx, dx
jae 0x140012645
mov eax, 0xffffffff
cmp eax, 0xffffffff
je 0x140012681
jmp 0x14001267a
mov eax, 1
jmp 0x140012666
cmp rsi, 0x14
jb 0x140012681
mov byte [0x1400e5608], 1
xor r14d, r14d
mov r15d, r14d
mov rdx, qword [r13 + 8]
mov r8, qword [r13]
mov rax, rdx
sub rax, r8
sar rax, 5
test rax, rax
je 0x140012f0d
mov ecx, r14d
nop word [rax + rax]
sub rdx, r8
sar rdx, 5
cmp rdx, rcx
jbe 0x140012f8c
shl rcx, 5
lea rdx, [r8 + rcx]
lea rcx, [rsp + 0x68]
call fcn.1400025c0
nop
mov rbx, qword [rsp + 0x78]
test rbx, rbx
je 0x140012dce
lea rcx, [rsp + 0x68]
mov rdi, qword [rsp + 0x68]
mov rsi, qword [rbp - 0x80]
cmp rsi, 8
cmovae rcx, rdi
mov qword [rsp + 0x20], 1
lea r9, [0x1400bd39c]
xor r8d, r8d
mov rdx, rbx
call fcn.1400176b0
test rax, rax
jne 0x140012989
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x40]
call fcn.1400025c0
mov rdx, rax
lea rcx, [rbp - 0x58]
call fcn.140010340
nop
lea rbx, [rsp + 0x68]
mov rsi, qword [rsp + 0x68]
mov r14, qword [rbp - 0x80]
cmp r14, 8
cmovae rbx, rsi
mov rdi, qword [rsp + 0x78]
test rdi, rdi
je 0x140012831
xor edx, edx
mov r8d, 0x100
lea rcx, [rbp - 0x10]
call fcn.140072740
lea rcx, [0x1400bd39c]
mov r8d, 0x100
nop dword [rax]
movzx eax, word [rcx]
cmp ax, r8w
jae 0x1400127d2
movzx eax, al
mov byte [rbp + rax - 0x10], 1
add rcx, 2
lea rax, [0x1400bd39e]
cmp rcx, rax
jne 0x140012780
lea rcx, [rdi - 1]
mov rax, 0xffffffffffffffff
cmp rcx, rax
cmovb rax, rcx
lea rdx, [rbx + rax*2]
movzx eax, word [rdx]
cmp ax, r8w
jae 0x1400127c7
cmp byte [rbp + rax - 0x10], 0
jne 0x140012829
cmp rdx, rbx
je 0x140012831
sub rdx, 2
jmp 0x1400127b7
lea rcx, [rdi - 1]
mov rax, 0xffffffffffffffff
cmp rcx, rax
cmovb rax, rcx
lea rdx, [rbx + rax*2]
mov r9d, 0x25
nop
mov ecx, 1
movzx r8d, word [rdx]
lea rax, [0x1400bd39c]
cmp r9w, r8w
je 0x140012829
cmp rcx, 1
je 0x14001281e
dec rcx
add rax, 2
cmp word [rax], r8w
jne 0x140012806
test rax, rax
jne 0x140012829
cmp rdx, rbx
je 0x140012831
sub rdx, 2
jmp 0x1400127f0
sub rdx, rbx
sar rdx, 1
jmp 0x140012838
mov rdx, 0xffffffffffffffff
inc rdx
xor eax, eax
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x60], 7
mov word [rbp - 0x78], ax
cmp rdi, rdx
jb 0x140012fb0
sub rdi, rdx
mov r8, 0xffffffffffffffff
cmp rdi, r8
cmovb r8, rdi
lea rax, [rsp + 0x68]
cmp r14, 8
cmovae rax, rsi
lea rdx, [rax + rdx*2]
lea rcx, [rbp - 0x78]
call fcn.1400027d0
nop
lea rax, [rbp - 0x78]
cmp qword [rbp - 0x60], 8
cmovae rax, qword [rbp - 0x78]
lea r9, [rbp - 0x58]
cmp qword [rbp - 0x40], 8
cmovae r9, qword [rbp - 0x58]
mov qword [rsp + 0x20], rax
lea r8, str._s_s
mov edx, 0x100
lea rcx, [rbp + 0xf0]
call fcn.140002b10
lea rax, [rbp + 0xf0]
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x1400128d0
lea rdx, [rbp + 0xf0]
lea rcx, [rsp + 0x68]
call fcn.1400027d0
nop
mov rdx, qword [rbp - 0x60]
cmp rdx, 8
jb 0x14001292d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140012928
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140012faa
call fcn.140070654
xor r14d, r14d
mov qword [rbp - 0x68], r14
mov qword [rbp - 0x60], 7
mov word [rbp - 0x78], r14w
mov rdx, qword [rbp - 0x40]
cmp rdx, 8
jb 0x140012dce
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140012dc9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140012f92
jmp 0x140012dc9
lea rcx, [rsp + 0x68]
cmp rsi, 8
cmovae rcx, rdi
mov qword [rsp + 0x20], 0xb
lea r9, str.INSTALL_DIR
xor r8d, r8d
mov rdx, rbx
call fcn.1400176b0
test rax, rax
jne 0x140012cd5
mov qword [rbp - 0x78], r14
mov qword [rbp - 0x68], r14
mov qword [rbp - 0x60], 7
mov word [rbp - 0x78], r14w
xor r8d, r8d
lea rdx, [0x1400bc2c0]
lea rcx, [rbp - 0x78]
call fcn.1400027d0
nop
lea rcx, [rsp + 0x68]
mov rdi, qword [rsp + 0x68]
mov rsi, qword [rbp - 0x80]
cmp rsi, 8
cmovae rcx, rdi
mov qword [rsp + 0x20], 1
lea r9, [0x1400bc204]
mov rbx, qword [rsp + 0x78]
mov rdx, rbx
call fcn.140017560
cmp eax, 0xffffffff
je 0x140012b45
inc eax
movsxd rcx, eax
mov qword [rbp - 0x58], r14
mov qword [rbp - 0x48], r14
mov qword [rbp - 0x40], 7
mov word [rbp - 0x58], r14w
cmp rbx, rcx
jb 0x140012fc2
sub rbx, rcx
mov r8, 0xffffffffffffffff
cmp rbx, r8
cmovb r8, rbx
lea rax, [rsp + 0x68]
cmp rsi, 8
cmovae rax, rdi
lea rdx, [rax + rcx*2]
lea rcx, [rbp - 0x58]
call fcn.1400027d0
nop
mov r9d, 1
lea r8, [0x1400bc204]
lea rcx, [rbp - 0x58]
call fcn.140018900
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x30], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x40], xmm1
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], 7
mov word [rax], r14w
mov rdx, qword [rbp - 0x60]
cmp rdx, 8
jb 0x140012aef
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140012ae0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140012fb6
call fcn.140070654
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmmword [rbp - 0x78], xmm0
movups xmmword [rbp - 0x68], xmm1
mov rdx, qword [rbp - 0x40]
cmp rdx, 8
jb 0x140012b37
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140012b32
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140012fbc
call fcn.140070654
mov rdi, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x78]
mov rsi, qword [rbp - 0x80]
lea rcx, [rsp + 0x68]
cmp rsi, 8
cmovae rcx, rdi
mov qword [rsp + 0x20], 0xd
lea r9, str.INSTALL_DIR32
xor r8d, r8d
mov rdx, rbx
call fcn.1400176b0
lea r8, str._s_s
mov edx, 0x100
lea rcx, [rbp + 0xf0]
test rax, rax
lea rax, [rbp - 0x78]
jne 0x140012c2d
cmp byte [0x1400e5608], 0
je 0x140012be0
cmp qword [rbp - 0x60], 8
cmovae rax, qword [rbp - 0x78]
lea r9, [rbp - 0x38]
cmp qword [rbp - 0x20], 8
cmovae r9, qword [rbp - 0x38]
mov qword [rsp + 0x20], rax
call fcn.140002b10
lea rax, [rbp + 0xf0]
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x140012bd0
jmp 0x140012c7b
cmp qword [rbp - 0x60], 8
cmovae rax, qword [rbp - 0x78]
lea r9, [0x1400e55c0]
cmp qword [0x1400e55d8], 8
cmovae r9, qword [0x1400e55c0]
mov qword [rsp + 0x20], rax
call fcn.140002b10
lea rax, [rbp + 0xf0]
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x140012c20
jmp 0x140012c7b
cmp qword [rbp - 0x60], 8
cmovae rax, qword [rbp - 0x78]
lea r9, [0x1400e55c0]
cmp qword [0x1400e55d8], 8
cmovae r9, qword [0x1400e55c0]
mov qword [rsp + 0x20], rax
call fcn.140002b10
lea rax, [rbp + 0xf0]
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x140012c70
lea rdx, [rbp + 0xf0]
lea rcx, [rsp + 0x68]
call fcn.1400027d0
nop
mov rdx, qword [rbp - 0x60]
cmp rdx, 8
jb 0x140012dce
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140012dc9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140012f98
jmp 0x140012dc9
lea rcx, [rsp + 0x68]
cmp rsi, 8
cmovae rcx, rdi
call qword [sym.imp.SHLWAPI.dll_PathGetDriveNumberW]
cmp eax, 0xffffffff
jne 0x140012dce
lea rcx, [rbp - 0x58]
call fcn.140010780
nop
lea rdx, [rsp + 0x68]
cmp qword [rbp - 0x80], 8
cmovae rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x78]
mov rcx, rax
call fcn.140014b80
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x30], xmm1
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], 7
mov word [rax], r14w
mov rdx, qword [rbp - 0x80]
cmp rdx, 8
jb 0x140012d84
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140012d75
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140012fc8
call fcn.140070654
movups xmm0, xmmword [rsp + 0x40]
movups xmm1, xmmword [rsp + 0x30]
movups xmmword [rsp + 0x68], xmm0
movups xmmword [rsp + 0x78], xmm1
mov rdx, qword [rbp - 0x40]
cmp rdx, 8
jb 0x140012dce
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140012dc9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140012fce
call fcn.140070654
lea rcx, [rsp + 0x68]
cmp qword [rbp - 0x80], 8
cmovae rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140012ea8
test al, 0x10
je 0x140012ea8
mov rbx, qword [r12 + 8]
mov r10, qword [r12]
cmp r10, rbx
je 0x140012e7c
mov rdi, qword [rbp - 0x80]
mov rsi, qword [rsp + 0x78]
mov r11, qword [rsp + 0x68]
lea rax, [rsp + 0x68]
cmp rdi, 8
cmovae rax, r11
mov rcx, qword [r10 + 0x10]
mov r9, r10
cmp qword [r10 + 0x18], 8
jb 0x140012e2f
mov r9, qword [r10]
cmp rcx, rsi
jne 0x140012e6c
test rcx, rcx
je 0x140012e77
movzx edx, word [r9]
movzx r8d, word [rax]
cmp dx, r8w
jb 0x140012e6c
sub r9, rax
cmp dx, r8w
ja 0x140012e6c
cmp rcx, 1
je 0x140012e77
dec rcx
add rax, 2
movzx edx, word [rax + r9]
movzx r8d, word [rax]
cmp dx, r8w
jae 0x140012e4e
add r10, 0x20
cmp r10, rbx
je 0x140012e7c
jmp 0x140012e11
cmp r10, rbx
jne 0x140012eb1
cmp rbx, qword [r12 + 0x10]
je 0x140012e98
lea rdx, [rsp + 0x68]
mov rcx, rbx
call fcn.1400025c0
add qword [r12 + 8], 0x20
jmp 0x140012ea8
lea r8, [rsp + 0x68]
mov rdx, rbx
mov rcx, r12
call fcn.140017190
mov rdi, qword [rbp - 0x80]
mov r11, qword [rsp + 0x68]
cmp rdi, 8
jb 0x140012eec
lea rdx, [rdi*2 + 2]
mov rax, r11
cmp rdx, 0x1000
jb 0x140012ee4
add rdx, 0x27
mov r11, qword [r11 - 8]
sub rax, r11
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140012fd4
mov rcx, r11
call fcn.140070654
inc r15d
mov rdx, qword [r13 + 8]
mov r8, qword [r13]
mov rax, rdx
sub rax, r8
sar rax, 5
movsxd rcx, r15d
cmp rcx, rax
jb 0x1400126b0
mov rdx, qword [rbp - 0x20]
cmp rdx, 8
jb 0x140012f49
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140012f44
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140012fa4
call fcn.140070654
mov qword [rbp - 0x28], r14
mov qword [rbp - 0x20], 7
mov word [rbp - 0x38], r14w
mov rcx, r13
call fcn.1400026d0
mov rcx, qword [rbp + 0x2f0]
xor rcx, rsp
call fcn.140070140
mov rbx, qword [rsp + 0x450]
add rsp, 0x400
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140015430
nop
call fcn.14007d0fc
int3
call fcn.14007d0fc
nop
call fcn.14007d0fc
nop
call fcn.14007d0fc
nop
call fcn.14007d0fc
int3
call fcn.140015b70
nop
call fcn.14007d0fc
nop
call fcn.14007d0fc
int3
call fcn.140015b70
nop
call fcn.14007d0fc
nop
call fcn.14007d0fc
nop
call fcn.14007d0fc
int3