Function at 0x1400a3e50
Capabilities:
Get common file path

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov ebx, 0x400
xor r8d, r8d
mov rbp, qword [sym.imp.KERNEL32.dll_GetTempPathW]
lea rdi, [rsp + 0x20]
mov rsi, rcx
lea r13, [rsp + 0x30]
mov r12, rdx
mov rcx, rdi
mov edx, ebx
mov qword [rsp + 0x20], r13
mov qword [rsp + 0x28], 0
mov word [rsp + 0x30], r8w
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___.reserve_unsigned_long_long_
nop dword [rax]
mov rdx, qword [rsp + 0x20]
mov ecx, ebx
call rbp
cmp ebx, eax
jae 0x1400a3ed0
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 0x1400a3ea0
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 0x1400a3f80
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 0x1400a3fb0
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 0x1400a3f61
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 0x1400a3ff8
mov rax, rsi
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
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 0x1400a3f0d
lea rdx, [rbx + rbx + 2]
cmp edx, 8
jae 0x1400a4078
test dl, 4
jne 0x1400a40c7
test edx, edx
je 0x1400a3f19
movzx ecx, byte [r13]
mov byte [rsi + 0x10], cl
test dl, 2
je 0x1400a3f19
mov edx, edx
movzx ecx, word [r13 + rdx - 2]
mov word [rax + rdx - 2], cx
jmp 0x1400a3f19
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 0x1400a4050
cmp al, 2
je 0x1400a3f6e
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
mov rax, rsi
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
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__
mov rax, rsi
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
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 0x1400a3f19
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 0x1400a40b0
jmp 0x1400a3f19
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 0x1400a3f19