Function at 0x140099b64
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 [0x14030f948]
xor rax, rsp
mov qword [rsp + 0x2b0], rax
lea r14, [rsp + 0x30]
mov rcx, r14
call fcn.1400659c6
lea rdx, str.SOFTWAREPolicies_
lea rsi, [rsp + 0xa0]
mov rcx, rsi
call fcn.1400036d8
mov rcx, r13
xor edx, edx
mov r8, rsi
call fcn.1400978c9
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], 0
cmp byte [rsi + 0x17], 0
jns 0x140099be5
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.1400e298d
test al, al
jne 0x140099c41
cmp byte [rsp + 0xb7], 0
jns 0x140099c1d
mov r8, qword [rsp + 0xa0]
jmp 0x140099c25
lea r8, [rsp + 0xa0]
mov qword [rsp + 0x20], rbx
lea r9, str.UserDataDir
mov ecx, 2
xor edx, edx
call fcn.1400e298d
test al, al
je 0x140099ca6
lea rcx, [rsp + 0x48]
lea rdx, [rsp + 0x60]
call fcn.1400e2c08
cmp byte [rsp + 0x47], 0
js 0x140099c65
mov word [rsp + 0x30], 0
mov byte [rsp + 0x47], 0
jmp 0x140099c92
mov rax, qword [rsp + 0x30]
mov word [rax], 0
mov qword [rsp + 0x38], 0
cmp byte [rsp + 0x47], 0
jns 0x140099c92
mov rcx, qword [rsp + 0x30]
call fcn.140183668
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 0x140099cb7
mov rcx, qword [rsp + 0x60]
call fcn.140183668
cmp byte [rsp + 0xb7], 0
jns 0x140099cce
mov rcx, qword [rsp + 0xa0]
call fcn.140183668
movzx ebp, byte [rsp + 0x47]
test bpl, bpl
mov rax, qword [rsp + 0x38]
mov rcx, rbp
cmovs rcx, rax
test rcx, rcx
je 0x140099d7f
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 0x140099d1b
cmp di, 0x2f
jne 0x140099d68
test cl, 1
je 0x140099d33
lea rcx, [rax - 1]
mov qword [rsp + 0x38], rcx
lea rax, [rbx + rax*2]
add rax, 0xfffffffffffffffe
jmp 0x140099d43
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 0x140099cf0
jmp 0x140099d7f
test rdx, rdx
je 0x140099d7f
lea rcx, [rsp + 0x30]
call fcn.140098ab3
test al, al
jne 0x140099e6c
mov rdi, r13
lea r13, [rsp + 0x30]
mov rcx, r15
mov rdx, r13
call fcn.140065b6e
lea rdx, str.LOCALAPPDATA
lea rsi, [rsp + 0xa0]
mov rcx, rsi
call fcn.140097e0b
movzx eax, byte [rsi + 0x17]
test al, al
jns 0x140099db9
mov rax, qword [rsp + 0xa8]
test rax, rax
je 0x140099eb5
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 0x140099e20
lea rcx, [rsp + 0x30]
mov dx, 0x5c
call fcn.14006622a
mov r15b, 1
lea rsi, [rsp + 0x30]
mov rcx, rdi
mov dl, 1
mov r8, rsi
call fcn.1400978c9
mov rcx, rsi
mov dx, 0x5c
call fcn.14006622a
lea rdx, str.User_Data
mov rcx, rsi
call fcn.1400660ea
cmp byte [rsp + 0xb7], 0
jns 0x140099e67
mov rcx, qword [rsp + 0xa0]
call fcn.140183668
test r15b, r15b
je 0x140099eae
cmp byte [rsp + 0x47], 0
jns 0x140099e78
mov r14, qword [rsp + 0x30]
lea rcx, [rsp + 0xa0]
mov r8d, 0x104
mov rdx, r14
call fcn.14019d094
test rax, rax
je 0x140099f34
lea rcx, [rsp + 0x60]
lea rdx, [rsp + 0xa0]
call fcn.1400036d8
jmp 0x140099f45
xor esi, esi
jmp 0x140099f9f
xor r15d, r15d
xor ecx, ecx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x140099e50
mov ebx, eax
inc ebx
xor r15d, r15d
mov rcx, rsi
mov rdx, rbx
xor r8d, r8d
call fcn.140065c34
cmp byte [rsp + 0xb7], 0
jns 0x140099eed
mov rsi, qword [rsp + 0xa0]
mov ecx, ebx
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x140099e50
mov edx, eax
movzx eax, byte [rsp + 0xb7]
test al, al
jns 0x140099f16
mov rax, qword [rsp + 0xa8]
cmp rax, rdx
jbe 0x140099fd6
lea rcx, [rsp + 0xa0]
xor r8d, r8d
call fcn.140065c34
jmp 0x140099dc2
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], 0
cmp byte [r12 + 0x17], 0
js 0x140099f5c
mov word [r12], 0
mov byte [r12 + 0x17], 0
jmp 0x140099f88
mov rax, qword [r12]
mov word [rax], 0
mov qword [r12 + 8], 0
cmp byte [r12 + 0x17], 0
jns 0x140099f88
mov rcx, qword [r12]
call fcn.140183668
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 0x140099fb0
mov rcx, qword [rsp + 0x30]
call fcn.140183668
mov rcx, qword [rsp + 0x2b0]
xor rcx, rsp
call fcn.140183a80
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 0x140099e50