Function at 0x3be9f19a0
Capabilities:
Get common file path

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x40
lea r12, [rsp + 0x37]
mov rdi, rcx
mov rbp, rdx
xor ecx, ecx
xor edx, edx
mov r8, r12
lea rbx, [rsp + 0x38]
call method.std::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___._S_construct_unsigned_long_long__wchar_t__std::allocator_wchar_t__const_
mov rsi, qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov edx, 0x400
mov qword [rsp + 0x38], rax
nop word [rax + rax]
xor r8d, r8d
mov rcx, rbx
call method.std::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___.resize_unsigned_long_long__wchar_t_
mov rax, qword [rsp + 0x38]
mov edx, dword [rax - 8]
test edx, edx
js 0x3be9f1a04
mov rcx, rbx
call method.std::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___._M_leak_hard__
mov rax, qword [rsp + 0x38]
mov ecx, dword [rax - 0x18]
mov rdx, rax
call rsi
mov rcx, qword [rsp + 0x38]
mov edx, eax
cmp qword [rcx - 0x18], rdx
jb 0x3be9f19e0
mov qword [rsp + 0x28], rdx
test eax, eax
je 0x3be9f1ab0
call method.std::_V2.system_category__
mov rdx, qword [rsp + 0x28]
xor esi, esi
mov dword [rbp], esi
xor r8d, r8d
mov rcx, rbx
mov qword [rbp + 8], rax
call method.std::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___.resize_unsigned_long_long__wchar_t_
mov rax, qword [rsp + 0x38]
mov qword [rdi], rax
mov eax, dword [rax - 8]
test eax, eax
mov rax, qword [rdi]
jg 0x3be9f1aa0
mov dword [rax - 8], 1
lea rbx, [rdi + 8]
mov rcx, rbx
call method.std::filesystem::path::_List._List__
mov rcx, rdi
call method.std::filesystem::path._M_split_cmpts__
mov rcx, qword [rsp + 0x38]
mov eax, 0xffffffff
lock xadd dword [rcx - 8], eax
test eax, eax
jle 0x3be9f1b20
mov ecx, dword [rbp]
test ecx, ecx
je 0x3be9f1ad0
mov rax, rdi
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
lock add dword [rax - 8], 1
jmp 0x3be9f1a5d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call method.std::_V2.system_category__
mov rdx, qword [rsp + 0x28]
jmp 0x3be9f1a32
mov rdx, rbp
mov rcx, rdi
call method.std::filesystem.status_std::filesystem::path_const__std::error_code_
mov edx, dword [rbp]
test edx, edx
jne 0x3be9f1b38
cmp al, 2
je 0x3be9f1a8f
mov rax, qword [rdi]
xor r9d, r9d
xor edx, edx
mov rcx, rdi
mov r8, qword [rax - 0x18]
call method.std::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___._M_mutate_unsigned_long_long__unsigned_long_long__unsigned_long_long_
mov rcx, rdi
call method.std::filesystem::path._M_split_cmpts__
call method.std::_V2.generic_category__
mov dword [rbp], 0x14
mov qword [rbp + 8], rax
mov rax, rdi
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
sub rcx, 0x18
mov rdx, r12
call method.std::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___::_Rep._M_destroy_std::allocator_wchar_t__const_
jmp 0x3be9f1a88
mov rax, qword [rdi]
xor r9d, r9d
xor edx, edx
mov rcx, rdi
mov r8, qword [rax - 0x18]
call method.std::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___._M_mutate_unsigned_long_long__unsigned_long_long__unsigned_long_long_
mov rcx, rdi
call method.std::filesystem::path._M_split_cmpts__
mov rax, rdi
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret