Function at 0x140024380
Capabilities:
Check if file exists
Get file attributes
Query environment variable

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rsp - 0xa0]
sub rsp, 0x1a0
mov rax, qword [0x14008b020]
xor rax, rsp
mov qword [rbp + 0x90], rax
mov rbx, rcx
mov qword [rsp + 0x28], rcx
xor r15d, r15d
mov edi, r15d
mov dword [rsp + 0x20], r15d
lea rcx, [rbp + 0x10]
call fcn.140024f60
nop
mov r8, rax
lea rdx, str.SoftwareCaphyonAdvanced_Installer_
lea rcx, [rbp - 0x50]
call fcn.140030c40
nop
mov rdx, qword [rbp + 0x28]
cmp rdx, 8
jb 0x140024425
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140024420
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140024cf4
call fcn.14003d1f0
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rbp + 0x20], xmm0
mov word [rbp + 0x10], r15w
xorps xmm0, xmm0
movups xmmword [rbp - 0x10], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp], xmm1
mov r8d, 0x13
lea rdx, str.WorkingDirectorySys
lea rcx, [rbp - 0x10]
call fcn.140004560
nop
lea r9, [rbp - 0x10]
lea r8, [rbp - 0x50]
mov rdx, 0xffffffff80000001
lea rcx, [rbp + 0x30]
call fcn.14002ed80
nop
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.1400038b0
nop
mov rdx, qword [rbp + 0x48]
cmp rdx, 8
jb 0x1400244c4
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400244bf
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140024cfa
call fcn.14003d1f0
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rbp + 0x40], xmm0
mov word [rbp + 0x30], r15w
mov rdx, qword [rbp + 8]
cmp rdx, 8
jb 0x140024516
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140024511
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140024d00
call fcn.14003d1f0
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rbp], xmm0
mov word [rbp - 0x10], r15w
cmp qword [rsp + 0x40], 0
jne 0x140024742
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x60], xmm1
mov r8d, 0x13
lea rdx, str.WorkingDirectorySys
lea rcx, [rbp - 0x70]
call fcn.140004560
nop
lea r9, [rbp - 0x70]
lea r8, [rbp - 0x50]
mov rdx, 0xffffffff80000002
lea rcx, [rbp - 0x30]
call fcn.14002ed80
mov rsi, rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x60], xmm1
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rsp + 0x60], xmm0
mov word [rsp + 0x50], r15w
mov edi, 4
mov dword [rsp + 0x20], edi
mov rcx, rax
cmp qword [rax + 0x18], 8
jb 0x1400245b0
mov rcx, qword [rax]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
movsxd r14, eax
test eax, eax
je 0x14002460d
xor r8d, r8d
mov rdx, r14
lea rcx, [rsp + 0x50]
call fcn.140003d80
lea rdx, [rsp + 0x50]
cmp qword [rsp + 0x68], 8
cmovae rdx, qword [rsp + 0x50]
cmp qword [rsi + 0x18], 8
jb 0x1400245ed
mov rsi, qword [rsi]
mov r8d, r14d
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
xor r8d, r8d
lea eax, [r14 - 1]
movsxd rdx, eax
lea rcx, [rsp + 0x50]
call fcn.140003d80
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x14002464f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002464a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140024d06
call fcn.14003d1f0
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], 7
mov word [rsp + 0x30], r15w
movups xmm0, xmmword [rsp + 0x50]
movups xmmword [rsp + 0x30], xmm0
movups xmm1, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x40], xmm1
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rsp + 0x60], xmm0
mov word [rsp + 0x50], r15w
and edi, 0xfffffffb
mov dword [rsp + 0x20], edi
movdqu xmmword [rsp + 0x60], xmm0
mov word [rsp + 0x50], r15w
mov rdx, qword [rbp - 0x18]
cmp rdx, 8
jb 0x1400246de
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400246d9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140024d0c
call fcn.14003d1f0
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rbp - 0x20], xmm0
mov word [rbp - 0x30], r15w
mov rdx, qword [rbp - 0x58]
cmp rdx, 8
jb 0x140024730
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002472b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140024d12
call fcn.14003d1f0
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rbp - 0x60], xmm0
mov word [rbp - 0x70], r15w
lea rcx, [rsp + 0x30]
cmp qword [rsp + 0x48], 8
cmovae rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14002482b
test al, 0x10
je 0x14002482b
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rsp + 0x40]
movups xmmword [rbx + 0x10], xmm1
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], 7
mov word [rsp + 0x30], r15w
or edi, 1
mov dword [rsp + 0x20], edi
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], 7
mov word [rsp + 0x30], r15w
mov rdx, qword [rbp - 0x38]
cmp rdx, 8
jb 0x1400247ea
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400247e5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140024cee
call fcn.14003d1f0
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rbp - 0x40], xmm0
mov word [rbp - 0x50], r15w
mov rax, rbx
mov rcx, qword [rbp + 0x90]
xor rcx, rsp
call fcn.14003d1d0
lea r11, [rsp + 0x1a0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x60], xmm1
mov r8d, 0x13
lea rdx, str.WorkingDirectoryUwp
lea rcx, [rbp - 0x70]
call fcn.140004560
nop
lea r9, [rbp - 0x70]
lea r8, [rbp - 0x50]
mov rdx, 0xffffffff80000001
lea rcx, [rbp + 0x50]
call fcn.14002ed80
nop
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.1400038b0
nop
mov rdx, qword [rbp + 0x68]
cmp rdx, 8
jb 0x1400248b8
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400248b3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140024d18
call fcn.14003d1f0
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rbp + 0x60], xmm0
mov word [rbp + 0x50], r15w
mov rdx, qword [rbp - 0x58]
cmp rdx, 8
jb 0x14002490a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140024905
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140024d1e
call fcn.14003d1f0
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rbp - 0x60], xmm0
mov word [rbp - 0x70], r15w
cmp qword [rbp - 0x80], 0
jne 0x140024b35
xorps xmm0, xmm0
movups xmmword [rbp - 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x20], xmm1
mov r8d, 0x13
lea rdx, str.WorkingDirectoryUwp
lea rcx, [rbp - 0x30]
call fcn.140004560
nop
lea r9, [rbp - 0x30]
lea r8, [rbp - 0x50]
mov rdx, 0xffffffff80000002
lea rcx, [rbp + 0x70]
call fcn.14002ed80
mov rsi, rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x60], xmm1
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rsp + 0x60], xmm0
mov word [rsp + 0x50], r15w
or edi, 0x10
mov dword [rsp + 0x20], edi
mov rcx, rax
cmp qword [rax + 0x18], 8
jb 0x1400249a1
mov rcx, qword [rax]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
movsxd r14, eax
test eax, eax
je 0x1400249fe
xor r8d, r8d
mov rdx, r14
lea rcx, [rsp + 0x50]
call fcn.140003d80
lea rdx, [rsp + 0x50]
cmp qword [rsp + 0x68], 8
cmovae rdx, qword [rsp + 0x50]
cmp qword [rsi + 0x18], 8
jb 0x1400249de
mov rsi, qword [rsi]
mov r8d, r14d
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
xor r8d, r8d
lea eax, [r14 - 1]
movsxd rdx, eax
lea rcx, [rsp + 0x50]
call fcn.140003d80
mov rdx, qword [rbp - 0x78]
cmp rdx, 8
jb 0x140024a3f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140024a3a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140024d24
call fcn.14003d1f0
mov qword [rbp - 0x80], r15
mov qword [rbp - 0x78], 7
mov word [rsp + 0x70], r15w
movups xmm0, xmmword [rsp + 0x50]
movups xmmword [rsp + 0x70], xmm0
movups xmm1, xmmword [rsp + 0x60]
movups xmmword [rbp - 0x80], xmm1
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rsp + 0x60], xmm0
mov word [rsp + 0x50], r15w
and edi, 0xffffffef
mov dword [rsp + 0x20], edi
movdqu xmmword [rsp + 0x60], xmm0
mov word [rsp + 0x50], r15w
mov rdx, qword [rbp + 0x88]
cmp rdx, 8
jb 0x140024ace
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140024ac9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140024d2a
call fcn.14003d1f0
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rbp + 0x80], xmm0
mov word [rbp + 0x70], r15w
mov rdx, qword [rbp - 0x18]
cmp rdx, 8
jb 0x140024b23
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140024b1e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140024d30
call fcn.14003d1f0
movdqa xmm0, xmmword [0x14007dc60]
movdqu xmmword [rbp - 0x20], xmm0
mov word [rbp - 0x30], r15w
lea rcx, [rsp + 0x70]
cmp qword [rbp - 0x78], 8
cmovae rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140024be2
test al, 0x10
je 0x140024be2
movups xmm0, xmmword [rsp + 0x70]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rbp - 0x80]
movups xmmword [rbx + 0x10], xmm1
mov qword [rbp - 0x80], r15
mov qword [rbp - 0x78], 7
mov word [rsp + 0x70], r15w
or edi, 1
mov dword [rsp + 0x20], edi
mov qword [rbp - 0x80], r15
mov qword [rbp - 0x78], 7
mov word [rsp + 0x70], r15w
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x140024796
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140024bd8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140024ce8
call fcn.14003d1f0
jmp 0x140024796
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], r15
mov qword [rbx + 0x18], 7
mov word [rbx], r15w
or edi, 1
mov dword [rsp + 0x20], edi
mov rdx, qword [rbp - 0x78]
cmp rdx, 8
jb 0x140024c40
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140024c3b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140024d36
call fcn.14003d1f0
mov qword [rbp - 0x80], r15
mov qword [rbp - 0x78], 7
mov word [rsp + 0x70], r15w
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x140024c90
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140024c8b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140024ce8
call fcn.14003d1f0
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], 7
mov word [rsp + 0x30], r15w
mov rdx, qword [rbp - 0x38]
cmp rdx, 8
jb 0x1400247ea
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400247e5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140024cee
jmp 0x1400247e5
call fcn.14004930c
nop
call fcn.14004930c
nop
call fcn.14004930c
nop
call fcn.14004930c
nop
call fcn.14004930c
nop
call fcn.14004930c
nop
call fcn.14004930c
nop
call fcn.14004930c
nop
call fcn.14004930c
nop
call fcn.14004930c
nop
call fcn.14004930c
nop
call fcn.14004930c
nop
call fcn.14004930c
nop
call fcn.14004930c
int3