Function at 0x140032650
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x2b0
movaps xmmword [rsp + 0x2a0], xmm6
mov rbx, r9
mov rsi, r8
mov rdi, rdx
mov rax, qword [0x140141038]
xor rax, rsp
mov qword [rsp + 0x298], rax
movabs r13, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x50], r13
movaps xmm6, xmmword [0x14011c230]
movaps xmmword [rsp + 0x40], xmm6
cmp byte [rcx + 0x17], 0
js 0x1400326b9
mov rax, qword [rcx + 0x10]
mov qword [rsp + 0x50], rax
movups xmm0, xmmword [rcx]
movaps xmmword [rsp + 0x40], xmm0
jmp 0x1400326ca
mov rdx, qword [rcx]
mov r8, qword [rcx + 8]
lea rcx, [rsp + 0x40]
call fcn.140027d30
lea r14, [rsp + 0x90]
mov qword [r14 + 0x10], r13
movaps xmmword [r14], xmm6
lea rdx, str.SOFTWAREPolicies_
mov rcx, r14
call fcn.1400d4c10
mov rcx, rdi
xor edx, edx
mov r8, r14
call fcn.140033b00
xorps xmm0, xmm0
movaps xmmword [rsp + 0x70], xmm0
mov qword [rsp + 0x80], 0
cmp byte [r14 + 0x17], 0
jns 0x140032719
mov r14, qword [rsp + 0x90]
lea r15, [rsp + 0x70]
mov qword [rsp + 0x20], r15
lea r9, str.UserDataDir
mov ecx, 1
xor edx, edx
mov r8, r14
call fcn.140045310
test al, al
jne 0x140032775
cmp byte [rsp + 0xa7], 0
js 0x140032751
lea r8, [rsp + 0x90]
jmp 0x140032759
mov r8, qword [rsp + 0x90]
mov qword [rsp + 0x20], r15
lea r9, str.UserDataDir
mov ecx, 2
xor edx, edx
call fcn.140045310
test al, al
je 0x1400327a9
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0x70]
call fcn.1400453a0
cmp byte [rsp + 0x57], 0
jns 0x140032795
mov rcx, qword [rsp + 0x40]
call fcn.14009e6a4
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x50], rax
movups xmm0, xmmword [rsp + 0x58]
movaps xmmword [rsp + 0x40], xmm0
cmp byte [rsp + 0x87], 0
jns 0x1400327bd
mov rcx, qword [rsp + 0x70]
call fcn.14009e6a4
cmp byte [rsp + 0xa7], 0
jns 0x1400327d4
mov rcx, qword [rsp + 0x90]
call fcn.14009e6a4
movzx r8d, byte [rsp + 0x57]
mov edx, r8d
and edx, 0x7f
test r8b, r8b
mov r10, qword [rsp + 0x48]
mov rcx, rdx
cmovs rcx, r10
test rcx, rcx
je 0x1400328d4
mov r9d, r8d
shr r9b, 7
lea rax, [rsp + 0x40]
jmp 0x14003284d
cmp edx, 0x5c
jne 0x1400328c2
dec rcx
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0x48], rcx
mov word [rdx + rcx*2], 0
movzx r8d, byte [rsp + 0x57]
mov r9d, r8d
shr r9b, 7
mov edx, r8d
and edx, 0x7f
test r8b, r8b
mov r10, qword [rsp + 0x48]
mov rcx, rdx
cmovs rcx, r10
test rcx, rcx
je 0x1400328d4
test r9b, 1
je 0x140032888
test r10, r10
je 0x140032e9f
mov rdx, qword [rsp + 0x40]
movzx edx, word [rdx + r10*2 - 2]
cmp edx, 0x2f
jne 0x140032806
dec rcx
test r9b, 1
jne 0x140032812
mov edx, ecx
and dl, 0x7f
mov byte [rsp + 0x57], dl
mov rdx, rax
jmp 0x14003281c
dec rcx
jmp 0x140032875
test r8b, r8b
je 0x140032e9f
movzx r8d, r8b
movzx r8d, word [rsp + r8*2 + 0x3e]
cmp r8d, 0x2f
je 0x140032883
cmp r8d, 0x5c
jne 0x1400328c2
dec rdx
mov rcx, rdx
jmp 0x140032875
mov rax, qword [rsp + 0x50]
mov qword [rbx + 0x10], rax
movaps xmm0, xmmword [rsp + 0x40]
movups xmmword [rbx], xmm0
jmp 0x140032903
lea rcx, [rsp + 0x40]
call fcn.140034de0
test al, al
jne 0x140032a29
lea r12, [rsp + 0x40]
cmp r12, rbx
je 0x140032903
cmp byte [rbx + 0x17], 0
movzx eax, byte [rsp + 0x57]
js 0x140032de5
test al, al
jns 0x1400328af
mov rdx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
mov rcx, rbx
call fcn.140028430
lea r15, [rsp + 0x90]
mov qword [r15 + 0x10], r13
movaps xmmword [r15], xmm6
lea rdx, str.LOCALAPPDATA
mov rcx, r15
call fcn.140034320
movzx eax, byte [r15 + 0x17]
test al, al
js 0x140032930
and eax, 0x7f
jmp 0x140032938
mov rax, qword [rsp + 0x98]
test rax, rax
jne 0x140032b1f
xor r14d, r14d
xor ecx, ecx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov cl, byte [rsp + 0xa7]
test eax, eax
je 0x140032a0f
mov ebx, eax
inc ebx
test cl, cl
jns 0x1400329a7
mov r14, qword [rsp + 0x98]
mov r13, rbx
sub r13, r14
ja 0x140032c36
mov r15, qword [rsp + 0x90]
mov qword [rsp + 0x98], rbx
lea rax, [r15 + rbx*2]
mov word [rax], 0
mov cl, byte [rsp + 0xa7]
test cl, cl
jns 0x1400329cc
mov rdx, qword [rsp + 0x90]
jmp 0x1400329d4
movzx r14d, cl
mov r13, rbx
sub r13, r14
ja 0x1400329c0
mov eax, ebx
and al, 0x7f
mov byte [rsp + 0xa7], al
jmp 0x140032989
je 0x140032999
mov edx, 0xa
jmp 0x140032c53
lea rdx, [rsp + 0x90]
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov cl, byte [rsp + 0xa7]
test eax, eax
je 0x140032a0c
movzx r8d, cl
mov edx, eax
mov r9d, r8d
and r9d, 0x7f
test r8b, r8b
mov rbx, qword [rsp + 0x98]
cmovs r9, rbx
cmp r9, rdx
ja 0x140032af2
xor r14d, r14d
test cl, cl
jns 0x140032a20
mov rcx, qword [rsp + 0x90]
call fcn.14009e6a4
test r14b, r14b
jne 0x140032a29
xor esi, esi
jmp 0x140032aa0
lea rdi, [rsp + 0x90]
mov r8d, 0x208
mov rcx, rdi
mov dl, 0xaa
call fcn.1400a1ce0
cmp byte [rsp + 0x57], 0
js 0x140032a4f
lea rdx, [rsp + 0x40]
jmp 0x140032a54
mov rdx, qword [rsp + 0x40]
mov r8d, 0x104
mov rcx, rdi
call fcn.1400b9de0
test rax, rax
jne 0x140032ade
xorps xmm0, xmm0
movaps xmmword [rsp + 0x70], xmm0
mov qword [rsp + 0x80], 0
cmp byte [rsi + 0x17], 0
jns 0x140032a89
mov rcx, qword [rsi]
call fcn.14009e6a4
mov rax, qword [rsp + 0x80]
mov qword [rsi + 0x10], rax
movaps xmm0, xmmword [rsp + 0x70]
movups xmmword [rsi], xmm0
mov sil, 1
cmp byte [rsp + 0x57], 0
jns 0x140032ab1
mov rcx, qword [rsp + 0x40]
call fcn.14009e6a4
mov rcx, qword [rsp + 0x298]
xor rcx, rsp
call fcn.14009fb90
mov eax, esi
movaps xmm6, xmmword [rsp + 0x2a0]
add rsp, 0x2b0
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [rsp + 0x70]
lea rdx, [rsp + 0x90]
call fcn.1400d4c10
jmp 0x140032a7b
mov r15, rdx
test cl, cl
jns 0x140032d1e
sub r15, rbx
ja 0x140032d45
mov rcx, qword [rsp + 0x90]
mov qword [rsp + 0x98], rdx
lea rax, [rcx + rdx*2]
mov word [rax], 0
movaps xmm0, xmmword [rsp + 0x40]
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0xa0]
mov qword [rsp + 0x50], rcx
movaps xmm1, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x40], xmm1
movaps xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0xa0], rax
movzx eax, byte [rsp + 0x57]
mov edx, eax
and edx, 0x7f
test al, al
mov r14, qword [rsp + 0x48]
cmovs rdx, r14
test rdx, rdx
je 0x140032e63
test al, al
movabs rbx, 0x7fffffffffffffff
mov rcx, qword [rsp + 0x40]
mov r8, r12
cmovs r8, rcx
cmp word [r8 + rdx*2 - 2], 0x5c
je 0x140032bc5
test al, al
jns 0x140032e0a
mov rax, qword [rsp + 0x50]
and rax, rbx
dec rax
cmp r14, rax
je 0x140032e24
lea rax, [r14 + 1]
mov qword [rsp + 0x48], rax
mov rax, r14
mov r12, rcx
mov dword [r12 + rax*2], 0x5c
lea r14, [rsp + 0x40]
mov rcx, rdi
mov dl, 1
mov r8, r14
call fcn.140033b00
movzx eax, byte [r14 + 0x17]
test al, al
jns 0x140032cda
and rbx, qword [rsp + 0x50]
dec rbx
mov rax, qword [rsp + 0x48]
cmp rax, rbx
je 0x140032cf3
mov r14, qword [rsp + 0x40]
lea rcx, [rax + 1]
mov qword [rsp + 0x48], rcx
mov dword [r14 + rax*2], 0x5c
lea rdx, str.User_Data
lea rcx, [rsp + 0x40]
mov r8d, 9
call fcn.140028080
mov r14b, 1
mov cl, byte [rsp + 0xa7]
jmp 0x140032a0f
je 0x140032999
mov rcx, qword [rsp + 0xa0]
mov rdx, rcx
btr rdx, 0x3f
dec rdx
shr rcx, 0x38
mov rax, rdx
sub rax, r14
cmp rax, r13
jae 0x140032c8f
mov r8, r13
sub r8, rdx
add r8, r14
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x20], r14
lea r15, [rsp + 0x90]
mov rcx, r15
mov r9, r14
call fcn.1400631f0
mov qword [r15 + 8], r14
mov cl, byte [r15 + 0x17]
test cl, cl
js 0x140032c9d
lea r15, [rsp + 0x90]
jmp 0x140032ca5
mov r15, qword [rsp + 0x90]
lea rcx, [r15 + r14*2]
lea r8, [r13*2]
xor edx, edx
call fcn.1400a1ce0
add r14, r13
cmp byte [rsp + 0xa7], 0
jns 0x140032e52
mov qword [rsp + 0x98], r14
lea rax, [r15 + r14*2]
jmp 0x14003298d
cmp eax, 0xa
je 0x140032cee
lea ecx, [rax + 1]
and cl, 0x7f
mov byte [rsp + 0x57], cl
jmp 0x140032c08
mov ebx, 0xa
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x20], rbx
lea rcx, [rsp + 0x40]
mov r8d, 1
mov rdx, rbx
mov r9, rbx
call fcn.1400631f0
mov rax, rbx
jmp 0x140032bfa
sub r15, r8
ja 0x140032d35
and al, 0x7f
lea rcx, [rsp + 0x90]
mov byte [rcx + 0x17], al
jmp 0x140032b16
je 0x140032b1f
mov edx, 0xa
mov rbx, r8
jmp 0x140032d62
je 0x140032b1f
mov rcx, qword [rsp + 0xa0]
mov rdx, rcx
btr rdx, 0x3f
dec rdx
shr rcx, 0x38
mov rax, rdx
sub rax, rbx
cmp rax, r15
jae 0x140032d9e
mov r8, r15
sub r8, rdx
add r8, rbx
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x20], rbx
lea r14, [rsp + 0x90]
mov rcx, r14
mov r9, rbx
call fcn.1400631f0
mov qword [r14 + 8], rbx
mov cl, byte [r14 + 0x17]
test cl, cl
js 0x140032dac
lea r14, [rsp + 0x90]
jmp 0x140032db4
mov r14, qword [rsp + 0x90]
lea rcx, [r14 + rbx*2]
lea r8, [r15 + r15]
xor edx, edx
call fcn.1400a1ce0
add rbx, r15
cmp byte [rsp + 0xa7], 0
jns 0x140032e8f
mov qword [rsp + 0x98], rbx
lea rax, [r14 + rbx*2]
jmp 0x140032b1a
mov r8d, eax
and r8d, 0x7f
test al, al
cmovs r8, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
cmovns rdx, r12
mov rcx, rbx
call fcn.140028340
jmp 0x140032903
cmp eax, 0xa
je 0x140032e1e
lea ecx, [rax + 1]
and cl, 0x7f
mov byte [rsp + 0x57], cl
jmp 0x140032bbd
mov r14d, 0xa
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x20], r14
lea r15, [rsp + 0x40]
mov r8d, 1
mov rcx, r15
mov rdx, r14
mov r9, r14
call fcn.1400631f0
mov rcx, qword [r15]
jmp 0x140032bae
mov eax, r14d
and al, 0x7f
mov byte [rsp + 0xa7], al
jmp 0x140032cd1
lea rax, str.string_index_out_of_bounds
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude_string
lea r9, [0x14011c95b]
mov r8d, 0x4b8
call fcn.1400d5940
mov eax, ebx
and al, 0x7f
mov byte [rsp + 0xa7], al
jmp 0x140032ddc
lea rax, str.string::back__:_string_is_empty
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude_string
lea r9, str._empty__
mov r8d, 0x525
call fcn.1400d5940
int3