Function at 0x140090cd0
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
mov r12, rdx
mov qword [rsp + 0x28], 0
lea r13, [rsp + 0x30]
mov edx, ebx
mov rcx, rdi
mov word [rsp + 0x30], r8w
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 dword [rax]
mov rdx, qword [rsp + 0x20]
mov ecx, ebx
call rbp
cmp ebx, eax
jae 0x140090d50
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 0x140090d20
mov rbp, qword [rsp + 0x20]
mov ebx, eax
xor edx, edx
test eax, eax
mov qword [rsp + 0x28], rbx
mov word [rbp + rbx*2], dx
je 0x140090e00
call method.std::_V2.system_category__
cmp rbp, r13
mov dword [r12], 0
mov qword [r12 + 8], rax
lea rax, [rsi + 0x10]
mov qword [rsi], rax
je 0x140090e30
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 0x140090de1
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 0x140090e78
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 0x140090d8d
lea rdx, [rbx + rbx + 2]
cmp edx, 8
jae 0x140090ef8
test dl, 4
jne 0x140090f2d
test edx, edx
je 0x140090d99
movzx ecx, byte [r13]
test dl, 2
mov byte [rsi + 0x10], cl
je 0x140090d99
mov edx, edx
movzx ecx, word [r13 + rdx - 2]
mov word [rax + rdx - 2], cx
jmp 0x140090d99
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 0x140090ed0
cmp al, 2
je 0x140090dee
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 ecx, edx
sub edx, 1
mov r8, qword [rbp + rcx - 8]
cmp edx, 8
mov qword [rax + rcx - 8], r8
jb 0x140090d99
and edx, 0xfffffff8
xor ecx, ecx
mov r8d, ecx
add ecx, 8
mov r9, qword [rbp + r8]
cmp ecx, edx
mov qword [rax + r8], r9
jb 0x140090f15
jmp 0x140090d99
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 0x140090d99