Function at 0x14009a5b0
Capabilities:
Get common file path

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
mov r13, qword [0x140108460]
mov ebx, 0x400
mov rax, qword [r13]
mov qword [rsp + 0x68], rax
xor eax, eax
lea rdi, [rsp + 0x40]
mov rsi, rcx
lea r12, [rsp + 0x50]
call method.std::_V2.system_category__
xor r10d, r10d
mov edx, ebx
mov rcx, rdi
mov qword [rsp + 0x38], rax
mov rbp, qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x48], 0
mov word [rsp + 0x50], r10w
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___.reserve_unsigned_long_long_
nop word cs:[rax + rax]
nop dword [rax]
mov rdx, qword [rsp + 0x40]
mov ecx, ebx
call rbp
cmp ebx, eax
jae 0x14009a650
mov rdx, qword [rsp + 0x40]
xor r9d, r9d
mov ebx, eax
mov rcx, rdi
mov qword [rsp + 0x48], 0
mov word [rdx], r9w
mov edx, ebx
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___.reserve_unsigned_long_long_
jmp 0x14009a620
mov rcx, qword [rsp + 0x40]
mov edx, eax
xor r8d, r8d
mov qword [rsp + 0x48], rdx
mov word [rcx + rdx*2], r8w
test eax, eax
je 0x14009a750
lea rax, [rsi + 0x10]
xor ebx, ebx
mov qword [rsi], rax
cmp rcx, r12
je 0x14009a776
mov rax, qword [rsp + 0x50]
mov qword [rsi], rcx
mov qword [rsi + 0x10], rax
mov qword [rsi + 8], rdx
lea rbp, [rsi + 0x20]
xor eax, eax
mov rcx, rbp
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x48], 0
mov word [rsp + 0x50], ax
call method.std::filesystem::__cxx11::path::_List._List__
mov rcx, rsi
call method.std::filesystem::__cxx11::path._M_split_cmpts__
mov rcx, qword [rsp + 0x40]
cmp rcx, r12
je 0x14009a6d0
mov rax, qword [rsp + 0x50]
lea rdx, [rax + rax + 2]
call sym.operator_delete_void__unsigned_long_long_
test ebx, ebx
je 0x14009a7c0
cmp qword [rsi + 8], 0
mov ecx, 0x30
jne 0x14009a902
call sym.__cxa_allocate_exception
lea rdx, str.temp_directory_path
mov rcx, rdi
mov r12, rax
call fcn.1400d8090
mov dword [rsp + 0x30], ebx
movdqu xmm0, xmmword [rsp + 0x30]
mov rdx, rdi
mov rcx, r12
lea r8, [rsp + 0x20]
movups xmmword [rsp + 0x20], xmm0
call method.std::filesystem::__cxx11::filesystem_error.filesystem_error_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::error_code_
mov rcx, rdi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov rax, qword [rsp + 0x68]
sub rax, qword [r13]
jne 0x14009a8a7
lea r8, [method.std::filesystem::__cxx11::filesystem_error.filesystem_error__]
lea rdx, [0x140109880]
mov rcx, r12
call sym.__cxa_throw
nop dword [rax + rax]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
mov dword [rsp + 0x30], eax
mov ebx, eax
lea rax, [rsi + 0x10]
mov qword [rsi], rax
cmp rcx, r12
jne 0x14009a67e
lea rcx, [rdx + rdx + 2]
cmp ecx, 8
jae 0x14009a818
test cl, 4
jne 0x14009a868
test ecx, ecx
je 0x14009a68a
movzx r8d, byte [rsp + 0x50]
mov byte [rax], r8b
test cl, 2
je 0x14009a68a
mov ecx, ecx
movzx r8d, word [r12 + rcx - 2]
mov word [rax + rcx - 2], r8w
jmp 0x14009a68a
lea rdx, [rsp + 0x30]
mov rcx, rsi
mov dword [rsp + 0x30], 0
call method.std::filesystem.status_std::filesystem::__cxx11::path_const__std::error_code_
mov ebx, dword [rsp + 0x30]
test ebx, ebx
jne 0x14009a6d8
cmp al, 2
je 0x14009a7f9
call method.std::_V2.generic_category__
mov ebx, 0x14
mov qword [rsp + 0x38], rax
jmp 0x14009a6d8
mov rax, qword [rsp + 0x68]
sub rax, qword [r13]
jne 0x14009a8a7
mov rax, rsi
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov r8, qword [rsp + 0x50]
mov r10, r12
mov qword [rax], r8
mov r8d, ecx
mov r9, qword [r12 + r8 - 8]
mov qword [rax + r8 - 8], r9
lea r8, [rax + 8]
and r8, 0xfffffffffffffff8
sub rax, r8
add ecx, eax
sub r10, rax
and ecx, 0xfffffff8
cmp ecx, 8
jb 0x14009a68a
and ecx, 0xfffffff8
xor eax, eax
mov r9d, eax
add eax, 8
mov r11, qword [r10 + r9]
mov qword [r8 + r9], r11
cmp eax, ecx
jb 0x14009a851
jmp 0x14009a68a
mov r8d, dword [rsp + 0x50]
mov ecx, ecx
mov dword [rax], r8d
mov r8d, dword [r12 + rcx - 4]
mov dword [rax + rcx - 4], r8d
jmp 0x14009a68a
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 + 0x68]
sub rax, qword [r13]
je 0x14009a8f0
call dbg.__stack_chk_fail
mov rdx, qword [rsp + 0x40]
xor ecx, ecx
mov rbx, rax
mov qword [rsp + 0x48], rcx
mov word [rdx], 0
jmp 0x14009a894
mov rcx, rbp
call method.std::unique_ptr_std::filesystem::__cxx11::path::_List::_Impl__std::filesystem::__cxx11::path::_List::_Impl_deleter_.unique_ptr__
mov rcx, rsi
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___._M_dispose__
mov rax, qword [rsp + 0x68]
sub rax, qword [r13]
jne 0x14009a8a7
mov rcx, rbx
call sym._Unwind_Resume
mov rbx, rax
jmp 0x14009a88c
call sym.__cxa_allocate_exception
lea rdx, str.temp_directory_path
mov rcx, rdi
mov r12, rax
call fcn.1400d8090
mov dword [rsp + 0x30], ebx
movdqu xmm1, xmmword [rsp + 0x30]
mov r8, rsi
mov rdx, rdi
lea r9, [rsp + 0x20]
mov rcx, r12
movups xmmword [rsp + 0x20], xmm1
call method.std::filesystem::__cxx11::filesystem_error.filesystem_error_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::filesystem::__cxx11::path_const__std::error_code_
mov rcx, rdi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov rax, qword [rsp + 0x68]
sub rax, qword [r13]
jne 0x14009a8a7
lea r8, [method.std::filesystem::__cxx11::filesystem_error.filesystem_error__]
lea rdx, [0x140109880]
mov rcx, r12
call sym.__cxa_throw
mov rbx, rax
jmp 0x14009a8d5