Function at 0x14001fdc0
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x648
movdqa xmmword [rsp + 0x630], xmm6
mov qword [rsp + 0x50], rdx
movzx eax, byte [rcx]
mov byte [rsp + 0x44], al
mov byte [rsp + 0x43], al
mov qword [rsp + 0x88], 2
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x90], xmm0
mov r8d, 0x200
mov eax, 2
mov qword [rsp + 0x58], rax
xor ebx, ebx
mov edi, 0xffffffff
xor esi, esi
xor r14d, r14d
cmp r8, 0x201
jae 0x14001fe60
jmp 0x14001fe3f
jae 0x14001ff11
cmp r8, 0x201
jae 0x14001fe60
mov r15d, 0x200
lea r12, [rsp + 0x160]
mov r13, r8
jmp 0x14001feb3
sub r8, r14
sub rsi, r14
cmp rsi, r8
jae 0x14001fe90
lea rcx, [rsp + 0x88]
mov rdx, r14
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::h472c0a9b36bab741
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x58], rax
mov rbx, qword [rsp + 0x90]
cmp rbx, rdi
mov r14d, 0xffffffff
cmovb r14, rbx
mov qword [rsp + 0x98], r14
mov rsi, rbx
mov r15, r14
mov r12, qword [rsp + 0x58]
mov r13, r14
xor ecx, ecx
call sub.KERNEL32.dll_SetLastError
mov ecx, r13d
mov rdx, r12
call sub.KERNEL32.dll_GetCurrentDirectoryW
mov ebp, eax
test eax, eax
jne 0x14001fed8
call sub.KERNEL32.dll_GetLastError
test eax, eax
jne 0x14001ff67
mov r8d, ebp
cmp r13, r8
jne 0x14001fe30
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x7a
jne 0x14002038a
add r13, r13
cmp r13, rdi
cmovae r13, rdi
mov r8, r13
cmp r8, 0x201
jb 0x14001fe3f
jmp 0x14001fe60
cmp r15, r8
jb 0x1400203a4
lea rcx, [rsp + 0x100]
mov rdx, r12
call sym.std::sys_common::wtf8::Wtf8Buf::from_wide::h2650bf38899dc036
mov r14, qword [rsp + 0x100]
movdqu xmm0, xmmword [rsp + 0x108]
movdqa xmmword [rsp + 0x60], xmm0
movzx esi, byte [rsp + 0x118]
mov eax, dword [rsp + 0x119]
mov dword [rsp + 0xc8], eax
mov eax, dword [rsp + 0x11c]
mov dword [rsp + 0xcb], eax
jmp 0x14001ff7a
call sub.KERNEL32.dll_GetLastError
mov r14d, eax
shl r14, 0x20
or r14, 2
mov sil, 2
mov rdi, qword [rsp + 0x50]
movzx ebp, byte [rsp + 0x44]
test rbx, rbx
je 0x14001ff98
mov edx, 2
mov rcx, qword [rsp + 0x58]
call sym.__rust_dealloc
cmp sil, 2
jne 0x14001ffa8
mov rcx, r14
call sym._ZN4core3ptr42drop_in_place_LT_std..io..error..Error_GT_17h5ca44348856e2937E.llvm.15837262642225002792
jmp 0x14001ffcd
movdqa xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x150], xmm0
mov eax, dword [rsp + 0xc8]
mov ecx, dword [rsp + 0xcb]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x4b], ecx
mov byte [rsp + 0x80], bpl
mov qword [rsp + 0x60], r14
movdqa xmm0, xmmword [rsp + 0x150]
movdqu xmmword [rsp + 0x68], xmm0
mov byte [rsp + 0x78], sil
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x4b]
mov dword [rsp + 0x79], eax
mov dword [rsp + 0x7c], ecx
lea rax, [0x140094b70]
mov qword [rsp + 0x160], rax
mov qword [rsp + 0x168], 1
lea rax, str.combase.dll
mov qword [rsp + 0x170], rax
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x178], xmm0
mov rcx, qword [rdi + 0x20]
mov rdx, qword [rdi + 0x28]
lea r8, [rsp + 0x160]
call sym.core::fmt::Formatter::write_fmt::h4f651fee45661934
test al, al
jne 0x1400202ca
mov qword [rsp + 0x88], rdi
mov qword [rsp + 0xa0], 0
mov byte [rsp + 0xa8], bpl
lea rax, [rsp + 0x60]
mov qword [rsp + 0x90], rax
lea rax, sym.core::ptr::drop_in_place_std::sys_common::backtrace::_print_fmt::_u7b__u7b_closure_u7d__u7d__::hfd8f1c8e69d35d3a
mov qword [rsp + 0x98], rax
mov byte [rsp + 0x42], 0
mov qword [rsp + 0xe0], 0
mov byte [rsp + 0x47], 1
test bpl, bpl
setne byte [rsp + 0x45]
lea rbx, [rsp + 0x160]
mov r8d, 0x4d0
mov rcx, rbx
xor edx, edx
call sub.msvcrt.dll_memset
mov rcx, rbx
call sub.ntdll.dll_RtlCaptureContext
mov rcx, qword [rsp + 0x258]
test rcx, rcx
je 0x1400202be
lea rax, [rsp + 0x47]
movq xmm0, rax
lea rax, [rsp + 0xe0]
movq xmm6, rax
punpcklqdq xmm6, xmm0
xor edi, edi
lea r14, [rsp + 0xb0]
lea rsi, [rsp + 0x42]
lea r15, [rsp + 0xe8]
lea r12, [rsp + 0x100]
lea r13, [rsp + 0xc8]
nop dword [rax + rax]
mov qword [rsp + 0xb0], 0
mov rdx, r14
xor r8d, r8d
call sub.ntdll.dll_RtlLookupFunctionEntry
test rax, rax
je 0x1400202be
mov rbp, rax
mov rax, qword [rsp + 0x1f8]
mov rcx, qword [rsp + 0x258]
mov qword [rsp + 0xe8], rbp
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xf8], rax
cmp byte [rsp + 0x43], 0
jne 0x14002017c
cmp rdi, 0x64
ja 0x1400202be
mov byte [rsp + 0x46], 0
lea rax, [rsp + 0x46]
mov qword [rsp + 0x100], rax
lea rax, [rsp + 0x43]
mov qword [rsp + 0x108], rax
lea rax, [rsp + 0x45]
mov qword [rsp + 0x110], rax
movdqu xmmword [rsp + 0x118], xmm6
lea rax, [rsp + 0x88]
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x130], rsi
mov qword [rsp + 0x138], r15
mov rcx, r15
mov rdx, r12
call sym.std::backtrace_rs::symbolize::gimli::resolve::h281d8dc7f191a4ad
cmp byte [rsp + 0x46], 0
jne 0x140020259
cmp byte [rsp + 0x45], 0
je 0x140020259
lea rax, [rsp + 0x88]
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], 0
mov rdx, qword [rsp + 0xf0]
mov qword [rsp + 0x100], 3
mov qword [rsp + 0xc8], 2
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x20], 0
lea rcx, [rsp + 0xb8]
mov r8, r12
mov r9, r13
call sym.std::backtrace_rs::print::BacktraceFrameFmt::print_raw_with_column::h54600d87a6f5d31f
mov byte [rsp + 0x42], al
mov rax, qword [rsp + 0xb8]
inc qword [rax + 0x18]
cmp byte [rsp + 0x42], 0
jne 0x1400202be
inc rdi
mov qword [rsp + 0xc8], 0
mov qword [rsp + 0x100], 0
mov rdx, qword [rsp + 0xb0]
mov r8, qword [rsp + 0x258]
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x38], 0
xor ecx, ecx
mov r9, rbp
call sub.ntdll.dll_RtlVirtualUnwind
mov rcx, qword [rsp + 0x258]
test rcx, rcx
jne 0x140020120
cmp byte [rsp + 0x42], 0
je 0x140020305
movzx esi, byte [rsp + 0x78]
cmp sil, 2
je 0x1400202e7
cmp qword [rsp + 0x68], 0
je 0x1400202e7
mov rcx, qword [rsp + 0x60]
mov edx, 1
call sym.__rust_dealloc
mov al, 1
movaps xmm6, xmmword [rsp + 0x630]
add rsp, 0x648
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [rsp + 0x43], 0
jne 0x140020365
lea rax, str.note:_Some_details_are_omitted__run_with__RUST_BACKTRACEfull__for_a_verbose_backtrace._n
mov qword [rsp + 0x160], rax
mov qword [rsp + 0x168], 1
lea rax, str.combase.dll
mov qword [rsp + 0x170], rax
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x178], xmm0
mov rax, qword [rsp + 0x50]
mov rcx, qword [rax + 0x20]
mov rdx, qword [rax + 0x28]
lea r8, [rsp + 0x160]
call sym.core::fmt::Formatter::write_fmt::h4f651fee45661934
test al, al
jne 0x1400202c5
cmp byte [rsp + 0x78], 2
je 0x140020383
cmp qword [rsp + 0x68], 0
je 0x140020383
mov rcx, qword [rsp + 0x60]
mov edx, 1
call sym.__rust_dealloc
xor eax, eax
jmp 0x1400202e9
lea rcx, str.internal_error:_entered_unreachable_codeassertion_failed:_injected___worker_thread.is_null__cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction
lea r8, str.j_t_
mov edx, 0x28
call sym.core::panicking::panic::h7eca2dca7d5f1519
jmp 0x1400203b9
lea rax, str.library_std_src_syswindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov rcx, r8
mov rdx, r15
mov r8, rax
call sym.core::slice::index::slice_end_index_len_fail::hb9e1ad6ed19e23ce
ud2