Function at 0x1400c1688
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x598
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
lea r14, [rsp + 0xa8]
mov rcx, r14
call sym.std::path::Path::components::ha946a6043a905a25
lea r15, [rsp + 0xe8]
mov rcx, r15
mov rdx, r14
call sym.__std::path::Components_as_core::iter::traits::iterator::Iterator_::next::h9cbd82e1ba22db7b
mov al, byte [r15]
cmp al, 0xa
je 0x1400c17a1
lea ecx, [rax - 6]
add al, 0xfb
xor edx, edx
cmp cl, 4
movzx eax, al
cmovae eax, edx
cmp al, 1
je 0x1400c17a1
movzx eax, al
cmp eax, 4
jne 0x1400c1742
mov rdx, qword [rsp + 0xf0]
mov r8, qword [rsp + 0xf8]
lea r14, [rsp + 0x190]
mov rcx, r14
call dbg.from_utf8
cmp qword [r14], 0
jne 0x1400c1b4b
mov rcx, qword [rsp + 0x198]
mov rdx, qword [rsp + 0x1a0]
lea r8, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_percent_encoding_2.3.1_src_lib.rs_00_01_02_03_04_05_06_07_08_09_0A_0B_0C_0D_0E_0F_10_11_12_13_14_15_16_17_18_19_1A_1B_1C_1D_1E_1F_20_21_22_23_24_25_26_27_28_29_2A_2B_2C_2D_2E_2F_30_31_32_33_34_35_36_37_38_39_3A_3B_3C_3D_3E_3F_40_41_42_43_44_45_46_47_48_49_4A_4B_4C_4D_4E_4F_50_51_52_53_54_55_56_57_58_59_5A_5B_5C_5D_5E_5F_60_61_62_63_64_65_66_67_68_69_6A_6B_6C_6D_6E_6F_70_71_72_73_74_75_76_77_78_79_7A_7B_7C_7D_7E_7F_80_81_82_83_84_85_86_87_88_89_8A_8B_8C_8D_8E_8F_90_91_92_93_94_95_96_97_98_99_9A_9B_9C_9D_9E_9F_A0_A1_A2_A3_A4_A5_A6_A7_A8_A9_AA_AB_AC_AD_AE_AF_B0_B1_B2_B3_B4_B5_B6_B7_B8_B9_BA_BB_BC_BD_BE_BF_C0_C1_C2_C3_C4_C5_C6_C7_C8_C9_CA_CB_CC_CD_CE_CF_D0_D1_D2_D3_D4_D5_D6_D7_D8_D9_DA_DB_DC_DD_DE_DF_E0_E1_E2_E3_E4_E5_E6_E7_E8_E9_EA_EB_EC_ED_EE_EF_F0_F1_F2_F3_F4_F5_F6_F7_F8_F9_FA_FB_FC_FD_FE_FF
mov r9d, 1
call sym.core::cmp::impls::__impl_core::cmp::PartialEq_B__for_A_::eq::h03a8b44b0b0187f5
test al, al
je 0x1400c17a1
movabs r12, 0x8000000000000000
and qword [rsp + 0x60], 0
mov qword [rsp + 0x68], 1
and qword [rsp + 0x70], 0
mov byte [rsp + 0x78], 1
lea rdx, str.HOMEUSERPROFILE.pipe__rust_anonymous_pipe1__.
lea rdi, [rsp + 0x190]
mov r8d, 4
mov rcx, rdi
call dbg._var_os
cmp qword [rdi], r12
jne 0x1400c17b4
lea rdx, [0x14032c26c]
lea rcx, [rsp + 0x40]
mov r8d, 0xb
call dbg._var_os
jmp 0x1400c17ce
mov rcx, rsi
mov rdx, rbx
mov r8, rdi
call sym._ZN15path_absolutize7windows85__LT_impl_u20_path_absolutize..absolutize..Absolutize_u20_for_u20_std..path..Path_GT_10absolutiz
jmp 0x1400c1ab6
movups xmm0, xmmword [rsp + 0x190]
movups xmm1, xmmword [rsp + 0x1a0]
movaps xmmword [rsp + 0x50], xmm1
movaps xmmword [rsp + 0x40], xmm0
mov rbx, qword [rsp + 0x40]
cmp rbx, r12
jne 0x1400c1964
mov qword [rsp + 0xa0], rsi
lea rax, [rsp + 0x28]
and qword [rax], 0
mov qword [rax + 8], 2
and qword [rax + 0x10], 0
mov r8d, 0x200
mov esi, 2
xor edi, edi
mov ebp, 0xffffffff
xor ebx, ebx
xor r12d, r12d
cmp r8, 0x201
jae 0x1400c182d
mov r14d, 0x200
lea r13, [rsp + 0x190]
mov r15, r8
jmp 0x1400c186d
sub r8, r12
sub rbx, r12
cmp rbx, r8
jae 0x1400c184f
lea rcx, [rsp + 0x28]
mov rdx, r12
call dbg.do_reserve_and_handle<core::mem::maybe_uninit::MaybeUninit<u16>, alloc::alloc::Global>
mov rdi, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
cmp rdi, rbp
mov r12d, 0xffffffff
cmovb r12, rdi
mov qword [rsp + 0x38], r12
mov rbx, rdi
mov r14, r12
mov r13, rsi
mov r15, r12
xor ecx, ecx
call sub.KERNEL32.dll_SetLastError
mov dword [rsp + 0x40], r15d
mov rcx, 0xfffffffffffffffc
mov rdx, r13
lea r8, [rsp + 0x40]
call sub.userenv.dll_GetUserProfileDirectoryW
test eax, eax
je 0x1400c1899
mov ecx, dword [rsp + 0x40]
dec ecx
jmp 0x1400c18a7
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x7a
jne 0x1400c18ab
mov ecx, dword [rsp + 0x40]
test ecx, ecx
jne 0x1400c18ba
call sub.KERNEL32.dll_GetLastError
xor ecx, ecx
test eax, eax
jne 0x1400c1ae8
mov r8d, ecx
cmp r15, r8
jne 0x1400c18e2
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x7a
jne 0x1400c1acb
add r15, r15
cmp r15, rbp
cmovae r15, rbp
mov r8, r15
jmp 0x1400c1811
jb 0x1400c1811
cmp r14, r8
jb 0x1400c1b57
lea rcx, [rsp + 0x40]
mov rdx, r13
call dbg.from_wide
mov rsi, qword [rsp + 0xa0]
movabs r12, 0x8000000000000000
movups xmm0, xmmword [rsp + 0x40]
movups xmm1, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x90], xmm1
movaps xmmword [rsp + 0x80], xmm0
cmp qword [rsp + 0x28], 0
je 0x1400c1941
mov rcx, qword [rsp + 0x30]
mov edx, 2
call sym.__rust_dealloc
mov rbx, qword [rsp + 0x80]
cmp rbx, r12
je 0x1400c1b26
mov rdi, qword [rsp + 0x88]
mov r14, qword [rsp + 0x90]
jmp 0x1400c196e
mov rdi, qword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
lea r15, [rsp + 0x190]
mov rcx, r15
mov rdx, rdi
mov r8, r14
call dbg.from_utf8
cmp qword [r15], 0
jne 0x1400c1b3f
mov rcx, qword [rsp + 0x198]
mov rdx, qword [rsp + 0x1a0]
lea r8, str.Malformed_XML.
xor r9d, r9d
call sym.core::cmp::impls::__impl_core::cmp::PartialEq_B__for_A_::eq::h03a8b44b0b0187f5
test al, al
je 0x1400c19c8
mov rcx, rbx
mov rdx, rdi
call sym.core::ptr::drop_in_place_alloc::vec::Vec_u8__::h5553fb8f67b8839f
movabs rdi, 0x1400000003
jmp 0x1400c19d2
lea rax, [r12 + 1]
cmp rbx, rax
jne 0x1400c19eb
mov qword [rsi + 8], rdi
inc r12
mov qword [rsi], r12
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
jmp 0x1400c1ab1
lea r15, [rsp + 0x190]
mov rcx, r15
mov rdx, rdi
mov r8, r14
call sym.std::path::Path::components::ha946a6043a905a25
lea r14, [rsp + 0x120]
lea r12, [rsp + 0x60]
mov rcx, r14
mov rdx, r15
call sym.__std::path::Components_as_core::iter::traits::iterator::Iterator_::next::h9cbd82e1ba22db7b
cmp byte [rsp + 0x120], 0xa
je 0x1400c1a30
mov rcx, r12
mov rdx, r14
call sym.std::path::PathBuf::push::h4474fb8f0d61729d
jmp 0x1400c1a0e
movups xmm0, xmmword [rsp + 0xa8]
movups xmm1, xmmword [rsp + 0xb8]
movups xmm2, xmmword [rsp + 0xc8]
movups xmm3, xmmword [rsp + 0xd8]
lea r14, [rsp + 0x190]
movaps xmmword [r14 + 0x30], xmm3
movaps xmmword [r14 + 0x20], xmm2
movaps xmmword [r14 + 0x10], xmm1
movaps xmmword [r14], xmm0
lea r15, [rsp + 0x158]
lea r12, [rsp + 0x60]
mov rcx, r15
mov rdx, r14
call sym.__std::path::Components_as_core::iter::traits::iterator::Iterator_::next::h9cbd82e1ba22db7b
cmp byte [rsp + 0x158], 0xa
je 0x1400c1a9a
mov rcx, r12
mov rdx, r15
call sym.std::path::PathBuf::push::h4474fb8f0d61729d
jmp 0x1400c1a78
movups xmm0, xmmword [rsp + 0x60]
movups xmm1, xmmword [rsp + 0x70]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
mov rcx, rbx
mov rdx, rdi
call sym.core::ptr::drop_in_place_alloc::vec::Vec_u8__::h5553fb8f67b8839f
nop
add rsp, 0x598
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, str.internal_error:_entered_unreachable_code__
lea r8, str.library_std_src_syspalwindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov edx, 0x28
call dbg.panic
jmp 0x1400c1b6c
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rsp + 0x88], rax
movabs rax, 0x8000000000000000
mov qword [rsp + 0x80], rax
cmp qword [rsp + 0x28], 0
je 0x1400c1b26
mov rcx, qword [rsp + 0x30]
mov edx, 2
call sym.__rust_dealloc
lea rcx, [rsp + 0x88]
call dbg.drop_in_place<std::io::error::Error>
lea rcx, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_path_calculate_0.1.3_src_calculate.rs
call dbg.unwrap_failed
lea rcx, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_path_calculate_0.1.3_src_calculate.rs
call dbg.unwrap_failed
lea rcx, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_path_calculate_0.1.3_src_calculate.rs
call dbg.unwrap_failed
lea rax, str.library_std_src_syspalwindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov rcx, r8
mov rdx, r14
mov r8, rax
call dbg.slice_end_index_len_fail
ud2