Function at 0x14003af50
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x2b0
mov r15, r9
mov r12, r8
mov r14, rdx
mov rdx, rcx
mov rax, qword [0x1400e45d8]
xor rax, rsp
mov qword [rsp + 0x2a8], rax
lea r13, [rsp + 0x30]
mov rcx, r13
call fcn.140028270
lea rdx, str.SOFTWAREPolicies_
lea rbx, [rsp + 0xa0]
mov rcx, rbx
call fcn.140024700
mov rcx, r14
xor edx, edx
mov r8, rbx
call fcn.140038dd0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], 0
cmp byte [rbx + 0x17], 0
jns 0x14003afd0
mov rbx, qword [rsp + 0xa0]
lea rsi, [rsp + 0x60]
mov qword [rsp + 0x20], rsi
lea r9, str.UserDataDir
mov ecx, 1
xor edx, edx
mov r8, rbx
call fcn.1400560b0
test al, al
jne 0x14003b02c
cmp byte [rsp + 0xb7], 0
jns 0x14003b008
mov r8, qword [rsp + 0xa0]
jmp 0x14003b010
lea r8, [rsp + 0xa0]
mov qword [rsp + 0x20], rsi
lea r9, str.UserDataDir
mov ecx, 2
xor edx, edx
call fcn.1400560b0
test al, al
je 0x14003b091
lea rcx, [rsp + 0x48]
lea rdx, [rsp + 0x60]
call fcn.1400564b0
cmp byte [rsp + 0x47], 0
js 0x14003b050
mov word [rsp + 0x30], 0
mov byte [rsp + 0x47], 0
jmp 0x14003b07d
mov rax, qword [rsp + 0x30]
mov word [rax], 0
mov qword [rsp + 0x38], 0
cmp byte [rsp + 0x47], 0
jns 0x14003b07d
mov rcx, qword [rsp + 0x30]
call fcn.14008d81c
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 0x14003b0a2
mov rcx, qword [rsp + 0x60]
call fcn.14008d81c
cmp byte [rsp + 0xb7], 0
jns 0x14003b0b9
mov rcx, qword [rsp + 0xa0]
call fcn.14008d81c
movzx ebx, byte [rsp + 0x47]
test bl, bl
mov rcx, qword [rsp + 0x38]
mov rax, rbx
cmovs rax, rcx
test rax, rax
je 0x14003b156
mov edx, ebx
shr dl, 7
mov rsi, qword [rsp + 0x30]
test dl, 1
mov rdi, r13
cmovne rdi, rsi
movzx eax, word [rdi + rax*2 - 2]
cmp ax, 0x5c
je 0x14003b0fa
cmp ax, 0x2f
jne 0x14003b146
test dl, 1
je 0x14003b112
lea rax, [rcx - 1]
mov qword [rsp + 0x38], rax
lea rax, [rsi + rcx*2]
add rax, 0xfffffffffffffffe
jmp 0x14003b122
lea rax, [rbx - 1]
mov byte [rsp + 0x47], al
lea rax, [rsp + rbx*2]
add rax, 0x2e
mov word [rax], 0
movzx ebx, byte [rsp + 0x47]
mov edx, ebx
shr dl, 7
test bl, bl
mov rcx, qword [rsp + 0x38]
mov rax, rbx
cmovs rax, rcx
test rax, rax
jne 0x14003b0da
jmp 0x14003b156
mov rcx, r13
call fcn.140039e40
test al, al
jne 0x14003b242
lea r13, [rsp + 0x30]
mov rcx, r15
mov rdx, r13
call fcn.140028430
lea rdx, str.LOCALAPPDATA
lea rbx, [rsp + 0xa0]
mov rcx, rbx
call fcn.1400395a0
movzx eax, byte [rbx + 0x17]
test al, al
jns 0x14003b18d
mov rax, qword [rsp + 0xa8]
test rax, rax
je 0x14003b2a3
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
movaps xmmword [rsp + 0xa0], xmm0
mov qword [rsp + 0xb0], rax
movzx eax, byte [rsp + 0x47]
test al, al
cmovs rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
cmovns rcx, r13
cmp word [rcx + rax*2 - 2], 0x5c
je 0x14003b1f6
lea rcx, [rsp + 0x30]
mov dx, 0x5c
call fcn.140028db0
mov r15b, 1
lea rsi, [rsp + 0x30]
mov rcx, r14
mov dl, 1
mov r8, rsi
call fcn.140038dd0
mov rcx, rsi
mov dx, 0x5c
call fcn.140028db0
lea rdx, str.User_Data
mov rcx, rsi
call fcn.140028bc0
cmp byte [rsp + 0xb7], 0
jns 0x14003b23d
mov rcx, qword [rsp + 0xa0]
call fcn.14008d81c
test r15b, r15b
je 0x14003b29c
cmp byte [rsp + 0x47], 0
jns 0x14003b24e
mov r13, qword [rsp + 0x30]
lea rcx, [rsp + 0xa0]
mov r8d, 0x104
mov rdx, r13
call fcn.1400a2178
test rax, rax
jne 0x14003b3a7
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], 0
cmp byte [r12 + 0x17], 0
js 0x14003b326
mov word [r12], 0
mov byte [r12 + 0x17], 0
jmp 0x14003b352
xor esi, esi
jmp 0x14003b369
xor r15d, r15d
xor ecx, ecx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x14003b226
mov esi, eax
inc esi
xor r15d, r15d
mov rcx, rbx
mov rdx, rsi
xor r8d, r8d
call fcn.1400285a0
cmp byte [rsp + 0xb7], 0
jns 0x14003b2df
mov rbx, qword [rsp + 0xa0]
mov ecx, esi
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x14003b226
mov edx, eax
movzx eax, byte [rsp + 0xb7]
test al, al
jns 0x14003b308
mov rax, qword [rsp + 0xa8]
cmp rax, rdx
jbe 0x14003b39f
lea rcx, [rsp + 0xa0]
xor r8d, r8d
call fcn.1400285a0
jmp 0x14003b196
mov rax, qword [r12]
mov word [rax], 0
mov qword [r12 + 8], 0
cmp byte [r12 + 0x17], 0
jns 0x14003b352
mov rcx, qword [r12]
call fcn.14008d81c
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 0x14003b37a
mov rcx, qword [rsp + 0x30]
call fcn.14008d81c
mov rcx, qword [rsp + 0x2a8]
xor rcx, rsp
call fcn.14008db90
mov eax, esi
add rsp, 0x2b0
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor r15d, r15d
jmp 0x14003b226
lea rcx, [rsp + 0x60]
lea rdx, [rsp + 0xa0]
call fcn.140024700
jmp 0x14003b27e