Function at 0x14005d610
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2e8
movaps xmmword [rsp + 0x2d0], xmm6
mov r14, r9
mov rbp, r8
mov rbx, rdx
mov r15, rcx
mov rax, qword [0x140155cc0]
xor rax, rsp
mov qword [rsp + 0x2c8], rax
movabs r13, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x80], r13
movaps xmm6, xmmword [section..rdata]
movaps xmmword [rsp + 0x70], xmm6
lea rcx, str.user_data_dir
mov qword [rsp + 0x60], rcx
call fcn.1400ffa68
mov qword [rsp + 0x68], rax
lea rdi, [rsp + 0x70]
lea r8, [rsp + 0x60]
mov rcx, rdi
mov rdx, r15
call fcn.14005f110
mov qword [rsp + 0xd0], r13
movaps xmmword [rsp + 0xc0], xmm6
lea rdx, str.SOFTWAREPolicies_
lea r12, [rsp + 0xc0]
mov rcx, r12
call fcn.140001850
mov rcx, rbx
xor edx, edx
mov r8, r12
call fcn.14005eca0
xorps xmm0, xmm0
movaps xmmword [rsp + 0xa0], xmm0
mov qword [rsp + 0xb0], 0
cmp byte [rsp + 0xd7], 0
jns 0x14005d6ef
mov r12, qword [rsp + 0xc0]
lea rsi, [rsp + 0xa0]
mov qword [rsp + 0x20], rsi
lea r9, str.UserDataDir
mov ecx, 1
xor edx, edx
mov r8, r12
call fcn.140085770
test al, al
jne 0x14005d74e
cmp byte [rsp + 0xd7], 0
jns 0x14005d72a
mov r8, qword [rsp + 0xc0]
jmp 0x14005d732
lea r8, [rsp + 0xc0]
mov qword [rsp + 0x20], rsi
lea r9, str.UserDataDir
mov ecx, 2
xor edx, edx
call fcn.140085770
test al, al
je 0x14005d7c4
lea rcx, [rsp + 0x88]
lea rdx, [rsp + 0xa0]
call fcn.140085c10
cmp byte [rsp + 0x87], 0
jns 0x14005d777
mov rcx, qword [rsp + 0x70]
call fcn.1400dffa0
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x80], rax
movups xmm0, xmmword [rsp + 0x88]
movaps xmmword [rsp + 0x70], xmm0
cmp byte [rsp + 0xb7], 0
jns 0x14005d7ce
mov rcx, qword [rsp + 0xa0]
call fcn.1400dffa0
cmp byte [rsp + 0xd7], 0
jns 0x14005d7d8
mov rcx, qword [rsp + 0xc0]
call fcn.1400dffa0
jmp 0x14005d7d8
cmp byte [rsp + 0xb7], 0
js 0x14005d79e
cmp byte [rsp + 0xd7], 0
js 0x14005d7b5
mov byte [0x140164a0c], 0
movsx rax, byte [rsp + 0x87]
test rax, rax
jns 0x14005d7fd
mov rax, qword [rsp + 0x78]
test rax, rax
jne 0x14005d960
jmp 0x14005d806
test rax, rax
jne 0x14005d960
movaps xmmword [rsp + 0xd0], xmm6
movaps xmmword [rsp + 0xc0], xmm6
lea rax, [0x14011f148]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], 8
lea r12, [rsp + 0xc0]
lea r8, [rsp + 0xa0]
mov rcx, r12
mov rdx, r15
call fcn.14005fda0
cmp byte [rsp + 0xd8], 0
je 0x14005d960
movzx eax, byte [rsp + 0xd7]
test al, al
js 0x14005d86c
cmp al, 3
je 0x14005d87f
jmp 0x14005d8d2
mov r12, qword [rsp + 0xc0]
cmp qword [rsp + 0xc8], 3
jne 0x14005d8b2
cmp word [r12], 0x6f
setne sil
jne 0x14005d8a3
cmp word [r12 + 2], 0x6c
setne sil
jne 0x14005d8a3
cmp word [r12 + 4], 0x64
setne sil
test al, al
js 0x14005d8bc
test sil, sil
je 0x14005d960
jmp 0x14005d8d2
mov rcx, r12
call fcn.1400dffa0
jmp 0x14005d8d2
mov rcx, qword [rsp + 0xc0]
call fcn.1400dffa0
test sil, sil
je 0x14005d960
lea rax, str.Headless
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 8
lea rcx, [rsp + 0xc0]
lea rdx, [rsp + 0x50]
call fcn.140060320
cmp byte [rsp + 0x87], 0
jns 0x14005d90d
mov rcx, qword [rsp + 0x70]
call fcn.1400dffa0
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x80], rax
movups xmm0, xmmword [rsp + 0xc0]
movaps xmmword [rsp + 0x70], xmm0
movsx rax, byte [rsp + 0x87]
test rax, rax
jns 0x14005d93d
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x14005d960
mov byte [0x140164a0c], 1
jmp 0x14005d960
test al, al
js 0x14005d9ae
nop
dec rax
mov byte [rsp + 0x87], al
mov word [rdi + rax*2], 0
movsx rax, byte [rsp + 0x87]
test rax, rax
js 0x14005d990
test al, al
je 0x14005d9da
movzx ecx, word [rsp + rax*2 + 0x6e]
cmp ecx, 0x2f
je 0x14005d950
cmp ecx, 0x5c
je 0x14005d950
jmp 0x14005d9da
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x14005d9d5
mov rdx, qword [rsp + 0x70]
movzx ecx, word [rdx + rcx*2 - 2]
cmp ecx, 0x2f
je 0x14005d94b
cmp ecx, 0x5c
jne 0x14005d9d1
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x14005e000
dec rax
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x78], rax
mov word [rcx + rax*2], 0
jmp 0x14005d960
test al, al
jns 0x14005d9da
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x14005d9f1
lea rcx, [rsp + 0x70]
call fcn.1400600b0
test al, al
jne 0x14005dec1
mov qword [rsp + 0x48], rbp
lea rbp, [rsp + 0x70]
cmp r14, rbp
je 0x14005da5a
cmp byte [r14 + 0x17], 0
movzx r8d, byte [rsp + 0x87]
js 0x14005da2c
test r8b, r8b
js 0x14005da48
mov rax, qword [rsp + 0x80]
mov qword [r14 + 0x10], rax
movaps xmm0, xmmword [rsp + 0x70]
movups xmmword [r14], xmm0
jmp 0x14005da5a
test r8b, r8b
cmovs r8, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x70]
cmovns rdx, rbp
mov rcx, r14
call fcn.140043ee0
jmp 0x14005da5a
mov rdx, qword [rsp + 0x70]
mov r8, qword [rsp + 0x78]
mov rcx, r14
call fcn.140043fb0
mov qword [rsp + 0xd0], r13
movaps xmmword [rsp + 0xc0], xmm6
lea rdx, str.LOCALAPPDATA
lea r14, [rsp + 0xc0]
mov rcx, r14
call fcn.14005f450
movsx rax, byte [rsp + 0xd7]
test rax, rax
jns 0x14005da97
mov rax, qword [rsp + 0xc8]
test rax, rax
je 0x14005db33
mov rax, qword [rsp + 0x70]
movups xmm0, xmmword [rsp + 0x78]
mov rcx, qword [rsp + 0xd0]
mov qword [rsp + 0x80], rcx
movaps xmm1, xmmword [rsp + 0xc0]
movaps xmmword [rsp + 0x70], xmm1
mov qword [rsp + 0xc0], rax
movups xmmword [rsp + 0xc8], xmm0
movsx rax, byte [rsp + 0x87]
test rax, rax
mov r14, qword [rsp + 0x78]
mov rdx, rax
cmovs rdx, r14
test rdx, rdx
je 0x14005e013
test al, al
mov rcx, qword [rsp + 0x70]
mov r8, rbp
cmovs r8, rcx
cmp word [r8 + rdx*2 - 2], 0x5c
je 0x14005dbce
test al, al
js 0x14005db75
mov r14d, 0xa
cmp al, 0xa
je 0x14005db8f
lea ecx, [rax + 1]
and cl, 0x7f
mov byte [rsp + 0x87], cl
jmp 0x14005dbc6
xor esi, esi
xor ecx, ecx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x14005de98
mov r15d, eax
inc r15d
movsx r12, byte [rsp + 0xd7]
test r12, r12
js 0x14005dd72
cmp r15, r12
jbe 0x14005ddf1
mov edx, 0xa
mov eax, r12d
jmp 0x14005dd9f
movabs rax, 0x7fffffffffffffff
and rax, qword [rsp + 0x80]
dec rax
cmp r14, rax
jne 0x14005dbb7
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x20], r14
lea rcx, [rsp + 0x70]
mov r8d, 1
mov rdx, r14
mov r9, r14
call fcn.1400113e0
mov rcx, qword [rsp + 0x70]
lea rax, [r14 + 1]
mov qword [rsp + 0x78], rax
mov rax, r14
mov rbp, rcx
mov dword [rbp + rax*2], 0x5c
lea r14, [rsp + 0x70]
mov rcx, rbx
mov dl, 1
mov r8, r14
call fcn.14005eca0
movsx rax, byte [rsp + 0x87]
test rax, rax
js 0x14005dc0b
mov ebx, 0xa
cmp al, 0xa
mov rbp, qword [rsp + 0x48]
je 0x14005dc2f
lea ecx, [rax + 1]
and cl, 0x7f
mov byte [rsp + 0x87], cl
jmp 0x14005dc63
movabs rbx, 0x7fffffffffffffff
and rbx, qword [rsp + 0x80]
dec rbx
mov rax, qword [rsp + 0x78]
cmp rax, rbx
mov rbp, qword [rsp + 0x48]
jne 0x14005dc55
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x20], rbx
lea rcx, [rsp + 0x70]
mov r8d, 1
mov rdx, rbx
mov r9, rbx
call fcn.1400113e0
mov rax, rbx
mov r14, qword [rsp + 0x70]
lea rcx, [rax + 1]
mov qword [rsp + 0x78], rcx
mov dword [r14 + rax*2], 0x5c
movsx r9, byte [rsp + 0x87]
test r9, r9
js 0x14005dc8f
lea rax, [r9 - 2]
mov edx, 0xa
cmp rax, 9
jb 0x14005dcb5
lea rax, [rsp + 0x70]
jmp 0x14005dcf3
movabs rdx, 0x7fffffffffffffff
and rdx, qword [rsp + 0x80]
dec rdx
mov r9, qword [rsp + 0x78]
mov rax, rdx
sub rax, r9
cmp rax, 9
jae 0x14005dcee
mov r8, r9
sub r8, rdx
add r8, 9
lea rax, str.User_Data
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x30], 9
mov qword [rsp + 0x28], 0
lea rcx, [rsp + 0x70]
call fcn.140043610
jmp 0x14005dd53
mov rax, qword [rsp + 0x70]
lea rcx, [rax + r9*2]
lea rdx, [rax + r9*2]
add rdx, 0x12
lea r8, str.User_Data
cmp rcx, r8
seta r10b
cmp rdx, r8
setbe dl
or dl, r10b
je 0x14005e026
movups xmm0, xmmword [str.User_Data]
movups xmmword [rcx], xmm0
mov word [rcx + 0x10], 0x61
lea rcx, [r9 + 9]
cmp byte [rsp + 0x87], 0
js 0x14005dd46
and cl, 0x7f
mov byte [rsp + 0x87], cl
jmp 0x14005dd4b
mov qword [rsp + 0x78], rcx
mov word [rax + r9*2 + 0x12], 0
mov sil, 1
cmp byte [rsp + 0xd7], 0
js 0x14005deab
test sil, sil
jne 0x14005dec1
jmp 0x14005df4d
mov r12, qword [rsp + 0xc8]
cmp r12, r15
jae 0x14005de2f
mov rax, qword [rsp + 0xd0]
movabs rdx, 0x7fffffffffffffff
and rdx, rax
dec rdx
shr rax, 0x38
mov r13, r15
sub r13, r12
mov rcx, rdx
sub rcx, r12
cmp rcx, r13
jae 0x14005dde3
mov r8, r15
sub r8, rdx
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x20], r12
lea rcx, [rsp + 0xc0]
mov r9, r12
call fcn.1400113e0
mov qword [rsp + 0xc8], r12
movzx eax, byte [rsp + 0xd7]
test al, al
jns 0x14005ddfe
mov rsi, qword [rsp + 0xc0]
jmp 0x14005de06
mov byte [rsp + 0xd7], r15b
mov rsi, r14
jmp 0x14005de3f
lea rsi, [rsp + 0xc0]
lea rcx, [rsi + r12*2]
add r13, r13
xor edx, edx
mov r8, r13
call fcn.140114c60
cmp byte [rsp + 0xd7], 0
js 0x14005de37
mov eax, r15d
and al, 0x7f
mov byte [rsp + 0xd7], al
jmp 0x14005de3f
mov rsi, qword [rsp + 0xc0]
mov qword [rsp + 0xc8], r15
mov word [rsi + r15*2], 0
cmp byte [rsp + 0xd7], 0
jns 0x14005de58
mov r14, qword [rsp + 0xc0]
mov ecx, r15d
mov rdx, r14
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x14005de96
mov edx, eax
movsx ecx, byte [rsp + 0xd7]
test ecx, ecx
js 0x14005dfc1
cmp eax, ecx
jae 0x14005df4d
mov byte [rsp + 0xd7], al
lea rcx, [rsp + 0xc0]
jmp 0x14005dfdb
xor esi, esi
mov rbp, qword [rsp + 0x48]
cmp byte [rsp + 0xd7], 0
jns 0x14005dd64
mov rcx, qword [rsp + 0xc0]
call fcn.1400dffa0
test sil, sil
je 0x14005df4d
lea rbx, [rsp + 0xc0]
mov r8d, 0x208
mov rcx, rbx
mov dl, 0xaa
call fcn.140114c60
cmp byte [rsp + 0x87], 0
jns 0x14005dee8
mov rdi, qword [rsp + 0x70]
mov r8d, 0x104
mov rcx, rbx
mov rdx, rdi
call fcn.1400f8bac
test rax, rax
je 0x14005df9b
lea rcx, [rsp + 0xa0]
lea rdx, [rsp + 0xc0]
call fcn.140001850
cmp byte [rbp + 0x17], 0
jns 0x14005df26
mov rcx, qword [rbp]
call fcn.1400dffa0
mov rax, qword [rsp + 0xb0]
mov qword [rbp + 0x10], rax
movaps xmm0, xmmword [rsp + 0xa0]
movups xmmword [rbp], xmm0
mov sil, 1
cmp byte [rsp + 0x87], 0
jns 0x14005df63
jmp 0x14005df59
xor esi, esi
cmp byte [rsp + 0x87], 0
jns 0x14005df63
mov rcx, qword [rsp + 0x70]
call fcn.1400dffa0
mov rcx, qword [rsp + 0x2c8]
xor rcx, rsp
cmp rcx, qword [0x140155cc0]
jne 0x14005df95
mov eax, esi
movaps xmm6, xmmword [rsp + 0x2d0]
add rsp, 0x2e8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.1400e0180
int3
xorps xmm0, xmm0
movaps xmmword [rsp + 0xa0], xmm0
mov qword [rsp + 0xb0], 0
cmp byte [rbp + 0x17], 0
jns 0x14005df26
jmp 0x14005df1d
mov rcx, qword [rsp + 0xc0]
cmp qword [rsp + 0xc8], rdx
jbe 0x14005dfe6
mov qword [rsp + 0xc8], rdx
mov word [rcx + rdx*2], 0
jmp 0x14005daa0
call fcn.1400dffa0
xor esi, esi
cmp byte [rsp + 0x87], 0
jns 0x14005df63
jmp 0x14005df59
lea rcx, [0x140117223]
lea rdx, str....._third_partylibc_srcinclude_string:3293:_assertion__empty___failed:_string::pop_back__:_string_is_already_empty_n
call fcn.140044b40
lea rcx, [0x140117223]
lea rdx, str....._third_partylibc_srcinclude_string:1339:_assertion___pos___size___failed:_string_index_out_of_bounds_n
call fcn.140044b40
lea rcx, [0x140117223]
lea rdx, str....._third_partylibc_srcinclude__stringchar_traits.h:208:_assertion__std::__is_pointer_in_range___dest____dest____n____src__failed:_char_traits::copy:_source_and_destination_ranges_overlap_n
call fcn.140044b40
int3