Function at 0x1400a0160
Capabilities:
Get common file path

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x50
xor r11d, r11d
mov rdi, qword [sym.imp.KERNEL32.dll_GetTempPathW]
lea r12, [rsp + 0x40]
mov rbp, rdx
mov rbx, rcx
mov edx, 0x400
mov qword [rsp + 0x30], r12
lea rsi, [rsp + 0x30]
mov qword [rsp + 0x38], 0
mov word [rsp + 0x40], r11w
nop dword [rax]
xor r8d, r8d
mov rcx, rsi
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___.resize_unsigned_long_long__wchar_t_
mov rdx, qword [rsp + 0x30]
mov ecx, dword [rsp + 0x38]
call rdi
mov edx, eax
cmp qword [rsp + 0x38], rdx
jb 0x1400a01a0
mov qword [rsp + 0x28], rdx
test eax, eax
je 0x1400a0270
call method.std::_V2.system_category__
mov rdx, qword [rsp + 0x28]
xor edi, edi
mov dword [rbp], edi
xor r8d, r8d
mov rcx, rsi
mov qword [rbp + 8], rax
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___.resize_unsigned_long_long__wchar_t_
mov rax, qword [rsp + 0x30]
lea rdx, [rbx + 0x10]
mov rcx, qword [rsp + 0x38]
mov qword [rbx], rdx
cmp rax, r12
je 0x1400a02e0
mov qword [rbx], rax
mov rax, qword [rsp + 0x40]
mov qword [rbx + 0x10], rax
mov qword [rbx + 8], rcx
lea rdi, [rbx + 0x20]
xor r10d, r10d
mov rcx, rdi
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], 0
mov word [rsp + 0x40], r10w
call method.std::filesystem::__cxx11::path::_List._List__
mov rcx, rbx
call method.std::filesystem::__cxx11::path._M_split_cmpts__
mov rcx, qword [rsp + 0x30]
cmp rcx, r12
je 0x1400a0258
mov rax, qword [rsp + 0x40]
lea rdx, [rax + rax + 2]
call sym.operator_delete_void__unsigned_long_long_
mov r9d, dword [rbp]
test r9d, r9d
je 0x1400a0290
mov rax, rbx
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call method.std::_V2.system_category__
mov rdx, qword [rsp + 0x28]
jmp 0x1400a01d8
mov rdx, rbp
mov rcx, rbx
call method.std::filesystem.status_std::filesystem::__cxx11::path_const__std::error_code_
mov r8d, dword [rbp]
test r8d, r8d
jne 0x1400a0320
cmp al, 2
je 0x1400a0261
mov rax, qword [rbx]
xor edx, edx
mov qword [rbx + 8], 0
mov rcx, rbx
mov word [rax], dx
call method.std::filesystem::__cxx11::path._M_split_cmpts__
call method.std::_V2.generic_category__
mov dword [rbp], 0x14
mov qword [rbp + 8], rax
mov rax, rbx
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
lea rax, [rcx + rcx + 2]
cmp eax, 8
jae 0x1400a0346
test al, 4
jne 0x1400a0396
test eax, eax
je 0x1400a0210
movzx r8d, byte [r12]
mov byte [rbx + 0x10], r8b
test al, 2
je 0x1400a0210
mov eax, eax
movzx r8d, word [r12 + rax - 2]
mov word [rdx + rax - 2], r8w
jmp 0x1400a0210
mov rax, qword [rbx]
xor ecx, ecx
mov qword [rbx + 8], 0
mov word [rax], cx
mov rcx, rbx
call method.std::filesystem::__cxx11::path._M_split_cmpts__
mov rax, rbx
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov r8, qword [r12]
mov r11, r12
mov qword [rbx + 0x10], r8
mov r8d, eax
mov r9, qword [r12 + r8 - 8]
mov qword [rdx + r8 - 8], r9
lea r9, [rbx + 0x18]
and r9, 0xfffffffffffffff8
sub rdx, r9
add eax, edx
sub r11, rdx
and eax, 0xfffffff8
cmp eax, 8
jb 0x1400a0210
and eax, 0xfffffff8
xor edx, edx
mov r8d, edx
add edx, 8
mov r10, qword [r11 + r8]
mov qword [r9 + r8], r10
cmp edx, eax
jb 0x1400a037f
jmp 0x1400a0210
mov r8d, dword [r12]
mov eax, eax
mov dword [rbx + 0x10], r8d
mov r8d, dword [r12 + rax - 4]
mov dword [rdx + rax - 4], r8d
jmp 0x1400a0210