Function at 0x14002d4dc
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2b8
mov r15, r9
mov r12, r8
mov r13, rdx
mov rdx, rcx
mov rax, qword [0x1400c95d8]
xor rax, rsp
mov qword [rsp + 0x2b0], rax
lea r14, [rsp + 0x30]
mov rcx, r14
call fcn.14001ccc0
lea rdx, str.SOFTWAREPolicies_
lea rsi, [rsp + 0xa0]
mov rcx, rsi
call fcn.140019bf0
mov rcx, r13
xor edx, edx
mov r8, rsi
call fcn.14002b4ed
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], 0
cmp byte [rsi + 0x17], 0
jns 0x14002d55d
mov rsi, qword [rsp + 0xa0]
lea rbx, [rsp + 0x60]
mov qword [rsp + 0x20], rbx
lea r9, str.UserDataDir
mov ecx, 1
xor edx, edx
mov r8, rsi
call fcn.140046bde
test al, al
jne 0x14002d5b9
cmp byte [rsp + 0xb7], 0
jns 0x14002d595
mov r8, qword [rsp + 0xa0]
jmp 0x14002d59d
lea r8, [rsp + 0xa0]
mov qword [rsp + 0x20], rbx
lea r9, str.UserDataDir
mov ecx, 2
xor edx, edx
call fcn.140046bde
test al, al
je 0x14002d61e
lea rcx, [rsp + 0x48]
lea rdx, [rsp + 0x60]
call fcn.140046f90
cmp byte [rsp + 0x47], 0
js 0x14002d5dd
mov word [rsp + 0x30], 0
mov byte [rsp + 0x47], 0
jmp 0x14002d60a
mov rax, qword [rsp + 0x30]
mov word [rax], 0
mov qword [rsp + 0x38], 0
cmp byte [rsp + 0x47], 0
jns 0x14002d60a
mov rcx, qword [rsp + 0x30]
call fcn.1400795d8
mov qword [rsp + 0x40], 0
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 0x14002d62f
mov rcx, qword [rsp + 0x60]
call fcn.1400795d8
cmp byte [rsp + 0xb7], 0
jns 0x14002d646
mov rcx, qword [rsp + 0xa0]
call fcn.1400795d8
movzx ebp, byte [rsp + 0x47]
test bpl, bpl
mov rax, qword [rsp + 0x38]
mov rcx, rbp
cmovs rcx, rax
test rcx, rcx
je 0x14002d6f7
mov ecx, ebp
shr cl, 7
mov rbx, qword [rsp + 0x30]
movzx esi, bpl
test cl, 1
mov rbp, r14
cmovne rbp, rbx
mov rdx, rsi
cmovne rdx, rax
movzx edi, word [rbp + rdx*2 - 2]
cmp di, 0x5c
je 0x14002d693
cmp di, 0x2f
jne 0x14002d6e0
test cl, 1
je 0x14002d6ab
lea rcx, [rax - 1]
mov qword [rsp + 0x38], rcx
lea rax, [rbx + rax*2]
add rax, 0xfffffffffffffffe
jmp 0x14002d6bb
lea rax, [rsi - 1]
mov byte [rsp + 0x47], al
lea rax, [rsp + rsi*2]
add rax, 0x2e
mov word [rax], 0
movzx ebp, byte [rsp + 0x47]
mov ecx, ebp
shr cl, 7
test bpl, bpl
mov rax, qword [rsp + 0x38]
mov rdx, rbp
cmovs rdx, rax
test rdx, rdx
jne 0x14002d668
jmp 0x14002d6f7
test rdx, rdx
je 0x14002d6f7
lea rcx, [rsp + 0x30]
call fcn.14002c330
test al, al
jne 0x14002d7e4
mov rdi, r13
lea r13, [rsp + 0x30]
mov rcx, r15
mov rdx, r13
call fcn.14001ce6e
lea rdx, str.LOCALAPPDATA
lea rsi, [rsp + 0xa0]
mov rcx, rsi
call fcn.14002bbf8
movzx eax, byte [rsi + 0x17]
test al, al
jns 0x14002d731
mov rax, qword [rsp + 0xa8]
test rax, rax
je 0x14002d82d
mov rax, qword [rsp + 0x40]
movaps xmm0, xmmword [rsp + 0x30]
movaps xmm1, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x30], xmm1
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0x40], rcx
movzx ecx, byte [rsp + 0x47]
test cl, cl
cmovs rcx, qword [rsp + 0x38]
cmovs r13, qword [rsp + 0x30]
movaps xmmword [rsp + 0xa0], xmm0
mov qword [rsp + 0xb0], rax
cmp word [r13 + rcx*2 - 2], 0x5c
je 0x14002d798
lea rcx, [rsp + 0x30]
mov dx, 0x5c
call fcn.14001d536
mov r15b, 1
lea rsi, [rsp + 0x30]
mov rcx, rdi
mov dl, 1
mov r8, rsi
call fcn.14002b4ed
mov rcx, rsi
mov dx, 0x5c
call fcn.14001d536
lea rdx, str.User_Data
mov rcx, rsi
call fcn.14001d3f0
cmp byte [rsp + 0xb7], 0
jns 0x14002d7df
mov rcx, qword [rsp + 0xa0]
call fcn.1400795d8
test r15b, r15b
je 0x14002d826
cmp byte [rsp + 0x47], 0
jns 0x14002d7f0
mov r14, qword [rsp + 0x30]
lea rcx, [rsp + 0xa0]
mov r8d, 0x104
mov rdx, r14
call fcn.14008c0ac
test rax, rax
je 0x14002d8ac
lea rcx, [rsp + 0x60]
lea rdx, [rsp + 0xa0]
call fcn.140019bf0
jmp 0x14002d8bd
xor esi, esi
jmp 0x14002d917
xor r15d, r15d
xor ecx, ecx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x14002d7c8
mov ebx, eax
inc ebx
xor r15d, r15d
mov rcx, rsi
mov rdx, rbx
xor r8d, r8d
call fcn.14001cf34
cmp byte [rsp + 0xb7], 0
jns 0x14002d865
mov rsi, qword [rsp + 0xa0]
mov ecx, ebx
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x14002d7c8
mov edx, eax
movzx eax, byte [rsp + 0xb7]
test al, al
jns 0x14002d88e
mov rax, qword [rsp + 0xa8]
cmp rax, rdx
jbe 0x14002d94e
lea rcx, [rsp + 0xa0]
xor r8d, r8d
call fcn.14001cf34
jmp 0x14002d73a
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], 0
cmp byte [r12 + 0x17], 0
js 0x14002d8d4
mov word [r12], 0
mov byte [r12 + 0x17], 0
jmp 0x14002d900
mov rax, qword [r12]
mov word [rax], 0
mov qword [r12 + 8], 0
cmp byte [r12 + 0x17], 0
jns 0x14002d900
mov rcx, qword [r12]
call fcn.1400795d8
mov qword [r12 + 0x10], 0
mov rax, qword [rsp + 0x70]
mov qword [r12 + 0x10], rax
movaps xmm0, xmmword [rsp + 0x60]
movups xmmword [r12], xmm0
mov sil, 1
cmp byte [rsp + 0x47], 0
jns 0x14002d928
mov rcx, qword [rsp + 0x30]
call fcn.1400795d8
mov rcx, qword [rsp + 0x2b0]
xor rcx, rsp
call fcn.140079940
mov eax, esi
add rsp, 0x2b8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor r15d, r15d
jmp 0x14002d7c8