Function at 0x14002f8a0
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, reloc.SHELL32.dll_IsUserAnAdmin
movaps xmmword [rsp + 0x290], xmm6
mov rbx, r9
mov rsi, r8
mov rdi, rdx
mov rax, qword [0x140129038]
xor rax, rsp
mov qword [rsp + 0x288], rax
movabs r15, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x40], r15
movaps xmm6, xmmword [0x14010cb00]
movaps xmmword [rsp + 0x30], xmm6
cmp byte [rcx + 0x17], 0
jns 0x14002f907
mov rdx, qword [rcx]
mov r8, qword [rcx + 8]
lea rcx, [rsp + 0x30]
call fcn.1400261e0
jmp 0x14002f918
mov rax, qword [rcx + 0x10]
mov qword [rsp + 0x40], rax
movups xmm0, xmmword [rcx]
movaps xmmword [rsp + 0x30], xmm0
lea r14, [rsp + 0x80]
mov qword [r14 + 0x10], r15
movaps xmmword [r14], xmm6
lea rdx, str.SOFTWAREPolicies_
mov rcx, r14
call fcn.1400c2010
mov rcx, rdi
xor edx, edx
mov r8, r14
call fcn.140030980
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], 0
cmp byte [r14 + 0x17], 0
jns 0x14002f964
mov r14, qword [rsp + 0x80]
lea r12, [rsp + 0x60]
mov qword [rsp + 0x20], r12
lea r9, str.UserDataDir
mov ecx, 1
xor edx, edx
mov r8, r14
call fcn.140045890
test al, al
jne 0x14002f9c0
cmp byte [rsp + 0x97], 0
jns 0x14002f99c
mov r8, qword [rsp + 0x80]
jmp 0x14002f9a4
lea r8, [rsp + 0x80]
mov qword [rsp + 0x20], r12
lea r9, str.UserDataDir
mov ecx, 2
xor edx, edx
call fcn.140045890
test al, al
je 0x14002f9f4
lea rcx, [rsp + 0x48]
lea rdx, [rsp + 0x60]
call fcn.140045990
cmp byte [rsp + 0x47], 0
jns 0x14002f9e0
mov rcx, qword [rsp + 0x30]
call fcn.14008dd88
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x40], rax
movups xmm0, xmmword [rsp + 0x48]
movaps xmmword [rsp + 0x30], xmm0
cmp byte [rsp + 0x77], 0
jns 0x14002fa05
mov rcx, qword [rsp + 0x60]
call fcn.14008dd88
cmp byte [rsp + 0x97], 0
jns 0x14002fa1c
mov rcx, qword [rsp + 0x80]
call fcn.14008dd88
movzx edx, byte [rsp + 0x47]
test dl, dl
mov r9, qword [rsp + 0x38]
mov rax, rdx
cmovs rax, r9
test rax, rax
je 0x14002faed
mov r8d, edx
shr r8b, 7
lea rcx, [rsp + 0x30]
test r8b, 1
je 0x14002fa82
test r9, r9
je 0x14002fdf5
mov rdx, qword [rsp + 0x30]
movzx edx, word [rdx + r9*2 - 2]
cmp edx, 0x2f
je 0x14002fa6d
cmp edx, 0x5c
jne 0x14002fadb
dec rax
jmp 0x14002fa76
dec rax
test r8b, 1
je 0x14002fa9f
mov rdx, qword [rsp + 0x30]
mov qword [rsp + 0x38], rax
jmp 0x14002fab0
test dl, dl
je 0x14002fdf5
movzx edx, dl
movzx edx, word [rsp + rdx*2 + 0x2e]
cmp edx, 0x2f
je 0x14002fa9c
cmp edx, 0x5c
jne 0x14002fadb
dec rax
cmp rax, 0xb
jae 0x14002fd9d
mov byte [rsp + 0x47], al
mov rdx, rcx
mov word [rdx + rax*2], 0
movzx edx, byte [rsp + 0x47]
mov r8d, edx
shr r8b, 7
test dl, dl
mov r9, qword [rsp + 0x38]
mov rax, rdx
cmovs rax, r9
test rax, rax
jne 0x14002fa44
jmp 0x14002faed
lea rcx, [rsp + 0x30]
call fcn.140031920
test al, al
jne 0x14002fb99
lea r12, [rsp + 0x30]
cmp r12, rbx
je 0x14002fb31
cmp byte [rbx + 0x17], 0
movzx r8d, byte [rsp + 0x47]
js 0x14002fcc5
test r8b, r8b
jns 0x14002fb20
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
mov rcx, rbx
call fcn.140026b90
jmp 0x14002fb31
mov rax, qword [rsp + 0x40]
mov qword [rbx + 0x10], rax
movaps xmm0, xmmword [rsp + 0x30]
movups xmmword [rbx], xmm0
lea rbx, [rsp + 0x80]
mov qword [rbx + 0x10], r15
movaps xmmword [rbx], xmm6
lea rdx, str.LOCALAPPDATA
mov rcx, rbx
call fcn.140031220
movzx eax, byte [rbx + 0x17]
test al, al
jns 0x14002fb5f
mov rax, qword [rsp + 0x88]
test rax, rax
jne 0x14002fcf4
xor r15d, r15d
xor ecx, ecx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x14002fc4e
cmp byte [rsp + 0x97], 0
jns 0x14002fb94
mov rcx, qword [rsp + 0x80]
call fcn.14008dd88
test r15b, r15b
je 0x14002fbbf
lea rdi, [rsp + 0x80]
mov r8d, 0x208
mov rcx, rdi
mov dl, 0xaa
call fcn.140091340
cmp byte [rsp + 0x47], 0
jns 0x14002fbc3
mov rdx, qword [rsp + 0x30]
jmp 0x14002fbc8
xor esi, esi
jmp 0x14002fc12
lea rdx, [rsp + 0x30]
mov r8d, 0x104
mov rcx, rdi
call fcn.1400a9390
test rax, rax
jne 0x14002fcae
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], 0
cmp byte [rsi + 0x17], 0
jns 0x14002fbfe
mov rcx, qword [rsi]
call fcn.14008dd88
mov rax, qword [rsp + 0x70]
mov qword [rsi + 0x10], rax
movaps xmm0, xmmword [rsp + 0x60]
movups xmmword [rsi], xmm0
mov sil, 1
cmp byte [rsp + 0x47], 0
jns 0x14002fc23
mov rcx, qword [rsp + 0x30]
call fcn.14008dd88
mov rcx, qword [rsp + 0x288]
xor rcx, rsp
call fcn.14008f1f0
mov eax, esi
movaps xmm6, xmmword [rsp + 0x290]
add rsp, reloc.SHELL32.dll_IsUserAnAdmin
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov r14d, eax
inc r14d
xor r15d, r15d
mov rcx, rbx
mov rdx, r14
xor r8d, r8d
call fcn.1400653b0
cmp byte [rsp + 0x97], 0
jns 0x14002fc77
mov rbx, qword [rsp + 0x80]
mov ecx, r14d
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x14002fb7d
mov edx, eax
movzx eax, byte [rsp + 0x97]
test al, al
jns 0x14002fca1
mov rax, qword [rsp + 0x88]
cmp rax, rdx
ja 0x14002fce4
xor r15d, r15d
jmp 0x14002fb7d
lea rcx, [rsp + 0x60]
lea rdx, [rsp + 0x80]
call fcn.1400c2010
jmp 0x14002fbf0
test r8b, r8b
cmovs r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
cmovns rdx, r12
mov rcx, rbx
call fcn.140026aa0
jmp 0x14002fb31
lea rcx, [rsp + 0x80]
xor r8d, r8d
call fcn.1400653b0
movaps xmm0, xmmword [rsp + 0x30]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x90]
mov qword [rsp + 0x40], rcx
movaps xmm1, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0x30], xmm1
movaps xmmword [rsp + 0x80], xmm0
mov qword [rsp + 0x90], rax
movzx ecx, byte [rsp + 0x47]
mov rax, rcx
test cl, cl
jns 0x14002fd39
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x14002fdc9
test cl, cl
jns 0x14002fd4b
mov r12, qword [rsp + 0x30]
cmp word [r12 + rax*2 - 2], 0x5c
je 0x14002fd62
lea rcx, [rsp + 0x30]
mov dx, 0x5c
call fcn.140065190
mov r15b, 1
lea rbx, [rsp + 0x30]
mov rcx, rdi
mov dl, 1
mov r8, rbx
call fcn.140030980
mov rcx, rbx
mov dx, 0x5c
call fcn.140065190
lea rdx, str.User_Data
mov r8d, 9
mov rcx, rbx
call fcn.1400267b0
jmp 0x14002fb7d
lea rax, str.__s_should_never_be_greater_than_or_equal_to_the_short_string_capacity
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_string
lea r9, str.__s_____min_cap
mov r8d, 0x6c7
call fcn.1400c29f0
lea rax, str.string_index_out_of_bounds
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_string
lea r9, str.__pos___size__
mov r8d, 0x4a1
call fcn.1400c29f0
lea rax, str.string::back__:_string_is_empty
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_string
lea r9, str._empty__
mov r8d, 0x502
call fcn.1400c29f0
int3