Function at 0x14009a2a0
Capabilities:
Get common file path

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x50
mov r14, qword [0x140108460]
mov ebx, 0x400
xor r8d, r8d
mov rbp, qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov r13, qword [r14]
mov qword [rsp + 0x48], r13
lea r13, [rsp + 0x30]
lea rdi, [rsp + 0x20]
mov rsi, rcx
mov r12, rdx
mov rcx, rdi
mov edx, ebx
mov word [rsp + 0x30], r8w
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], r13
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___.reserve_unsigned_long_long_
nop word [rax + rax]
mov rdx, qword [rsp + 0x20]
mov ecx, ebx
call rbp
cmp ebx, eax
jae 0x14009a330
mov rdx, qword [rsp + 0x20]
xor ecx, ecx
mov ebx, eax
mov qword [rsp + 0x28], 0
mov word [rdx], cx
mov edx, ebx
mov rcx, rdi
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___.reserve_unsigned_long_long_
jmp 0x14009a300
mov rbp, qword [rsp + 0x20]
mov ebx, eax
xor edx, edx
mov qword [rsp + 0x28], rbx
mov word [rbp + rbx*2], dx
test eax, eax
je 0x14009a3f0
call method.std::_V2.system_category__
mov dword [r12], 0
mov qword [r12 + 8], rax
lea rax, [rsi + 0x10]
mov qword [rsi], rax
cmp rbp, r13
je 0x14009a420
mov rax, qword [rsp + 0x30]
mov qword [rsi], rbp
mov qword [rsi + 0x10], rax
mov qword [rsi + 8], rbx
lea rbx, [rsi + 0x20]
xor r10d, r10d
mov rcx, rbx
mov qword [rsp + 0x20], r13
mov qword [rsp + 0x28], 0
mov word [rsp + 0x30], r10w
call method.std::filesystem::__cxx11::path::_List._List__
mov rcx, rsi
call method.std::filesystem::__cxx11::path._M_split_cmpts__
mov rcx, qword [rsp + 0x20]
cmp rcx, r13
je 0x14009a3c1
mov rax, qword [rsp + 0x30]
lea rdx, [rax + rax + 2]
call sym.operator_delete_void__unsigned_long_long_
mov r9d, dword [r12]
test r9d, r9d
je 0x14009a468
mov rax, qword [rsp + 0x48]
sub rax, qword [r14]
jne 0x14009a560
mov rax, rsi
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call method.std::_V2.system_category__
mov rbp, qword [rsp + 0x20]
mov dword [r12], ebx
mov qword [r12 + 8], rax
lea rax, [rsi + 0x10]
mov rbx, qword [rsp + 0x28]
mov qword [rsi], rax
cmp rbp, r13
jne 0x14009a36d
lea rdx, [rbx + rbx + 2]
cmp edx, 8
jae 0x14009a4d5
test dl, 4
jne 0x14009a524
test edx, edx
je 0x14009a379
movzx ecx, byte [r13]
mov byte [rsi + 0x10], cl
test dl, 2
je 0x14009a379
mov edx, edx
movzx ecx, word [r13 + rdx - 2]
mov word [rax + rdx - 2], cx
jmp 0x14009a379
mov rdx, r12
mov rcx, rsi
call method.std::filesystem.status_std::filesystem::__cxx11::path_const__std::error_code_
mov r8d, dword [r12]
test r8d, r8d
jne 0x14009a4b8
cmp al, 2
je 0x14009a3ce
mov rax, qword [rsi]
xor edx, edx
mov qword [rsi + 8], 0
mov rcx, rsi
mov word [rax], dx
call method.std::filesystem::__cxx11::path._M_split_cmpts__
call method.std::_V2.generic_category__
mov dword [r12], 0x14
mov qword [r12 + 8], rax
jmp 0x14009a3ce
mov rax, qword [rsi]
xor ecx, ecx
mov qword [rsi + 8], 0
mov word [rax], cx
mov rcx, rsi
call method.std::filesystem::__cxx11::path._M_split_cmpts__
jmp 0x14009a3ce
mov rcx, qword [r13]
mov r9, r13
mov qword [rsi + 0x10], rcx
mov ecx, edx
mov r8, qword [r13 + rcx - 8]
mov qword [rax + rcx - 8], r8
lea rcx, [rsi + 0x18]
and rcx, 0xfffffffffffffff8
sub rax, rcx
add edx, eax
sub r9, rax
and edx, 0xfffffff8
cmp edx, 8
jb 0x14009a379
and edx, 0xfffffff8
xor eax, eax
mov r8d, eax
add eax, 8
mov r10, qword [r9 + r8]
mov qword [rcx + r8], r10
cmp eax, edx
jb 0x14009a50d
jmp 0x14009a379
mov ecx, dword [r13]
mov edx, edx
mov dword [rsi + 0x10], ecx
mov ecx, dword [r13 + rdx - 4]
mov dword [rax + rdx - 4], ecx
jmp 0x14009a379
mov rcx, rsi
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___._M_dispose__
mov rcx, rdi
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___._M_dispose__
mov rax, qword [rsp + 0x48]
sub rax, qword [r14]
je 0x14009a59e
call dbg.__stack_chk_fail
mov rbp, rax
jmp 0x14009a546
mov rcx, rbp
call sym._Unwind_Resume
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop