Function at 0x140027c5c
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x168
mov qword [rsp + 0x118], rcx
movabs rdi, 0x8000000000000000
mov r12, qword [r8 + 8]
mov qword [rsp + 0x110], r8
imul r14, qword [r8 + 0x10], 0x48
add r14, r12
lea r15, [rsp + 0x50]
lea r13, [0x14032c2ec]
lea rbp, [0x1402a7b80]
mov qword [rsp + 0x120], r14
mov rsi, r12
cmp r12, r14
je 0x140028202
lea r12, [rsi + 0x48]
mov rcx, rsi
call fcn.140169420
test rax, rax
je 0x140027cb0
mov r8, rdx
mov rcx, r15
mov rdx, rax
call fcn.14000c583
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x60]
cmp rax, 2
mov qword [rsp + 0x28], rax
jb 0x140027d05
mov cl, 0x7e
mov rdx, rbx
mov r8, rax
cmp rax, 0x10
jae 0x140027d25
call fcn.14000ef39
jmp 0x140027d2a
mov edx, 1
lea rcx, 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 r8, rbx
mov r9, rax
call fcn.14016bbc7
test al, al
jne 0x140027d34
jmp 0x140027df3
call fcn.140086800
cmp rax, 1
jne 0x140027df3
mov r8d, 0xb
lea rcx, [rsp + 0xa0]
mov rdx, r13
call fcn.14018dae0
mov rcx, qword [rsp + 0xa0]
cmp rcx, rdi
mov qword [rsp + 0x40], rsi
je 0x140027d8e
mov rax, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0xb0]
test rdx, rdx
je 0x140027d86
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x90], r12
jmp 0x140027e1d
mov rdx, rax
call fcn.1400b5a3c
and qword [rsp + 0x70], 0
mov rcx, rbp
mov edx, 0x4000
xor r8d, r8d
lea r9, [rsp + 0x70]
call sub.shell32.dll_SHGetKnownFolderPath
mov rsi, qword [rsp + 0x70]
test eax, eax
je 0x140027dbc
mov rcx, rsi
call sub.ole32.dll_CoTaskMemFree
jmp 0x140027dee
mov rcx, rsi
call sub.msvcrt.dll_wcslen
lea rcx, [rsp + 0xa0]
mov rdx, rsi
mov r8, rax
call fcn.140170950
mov rcx, qword [rsp + 0x70]
call sub.ole32.dll_CoTaskMemFree
mov rax, qword [rsp + 0xa0]
cmp rax, rdi
jne 0x140027dfd
mov rsi, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x28]
jmp 0x1400281e3
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], r12
mov rax, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0xb0]
mov qword [rsp + 0x128], rax
mov rcx, rax
call fcn.1400094b1
mov r14, rdx
test rax, rax
cmove r14, rax
mov r12, rax
lea rax, str.Malformed_XML.
cmove r12, rax
and qword [rsp + 0x70], 0
mov eax, 1
mov qword [rsp + 0x78], rax
and qword [rsp + 0x80], 0
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0xa0]
mov qword [rsp + 0x98], rbx
mov rdx, rbx
mov r8, qword [rsp + 0x28]
lea r9, 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
call fcn.140086ce0
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x150], rax
mov rbp, qword [rsp + 0xa8]
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0x158], rcx
mov rsi, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xd8]
mov qword [rsp + 0x30], rcx
mov rbx, qword [rsp + 0xe8]
mov r13, qword [rsp + 0xf0]
mov rdi, qword [rsp + 0xf8]
mov r15, qword [rsp + 0x100]
lea rcx, [r15 - 1]
mov qword [rsp + 0x160], rcx
mov rcx, rax
and rcx, 0xffffffffffffff00
mov qword [rsp + 0x138], rcx
mov qword [rsp + 0x140], r12
add r14, r12
mov qword [rsp + 0x148], r14
mov qword [rsp + 0x130], rax
mov r14d, eax
xor eax, eax
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x150], 0
je 0x14002805a
movzx r8d, r14b
or r8, qword [rsp + 0x138]
mov rax, r15
sub rax, r8
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x30]
mov r9, rax
cmp rbp, r9
mov rcx, r9
cmova rcx, rbp
cmp rax, 0xffffffffffffffff
cmove rcx, rbp
mov r11d, 0
cmovne r11, r9
mov rax, qword [rsp + 0x160]
add rax, rsi
cmp rax, r13
jae 0x14002812a
movzx eax, byte [rbx + rax]
mov rdx, qword [rsp + 0x158]
bt rdx, rax
jae 0x140027fd3
lea rdx, [rbx + rsi]
mov r12, rcx
cmp r12, r15
jae 0x140027fe3
mov rax, r12
add r12, rsi
cmp r12, r13
jae 0x140028278
lea r12, [rax + 1]
mov r10b, byte [rdi + rax]
cmp r10b, byte [rdx + rax]
je 0x140027fa6
sub rsi, rbp
add rsi, rax
inc rsi
jmp 0x140027fd6
add rsi, r15
mov rax, qword [rsp + 0x30]
cmp rax, 0xffffffffffffffff
je 0x140027f79
jmp 0x14002802a
mov rax, rbp
cmp r11, rax
jae 0x140028032
dec rax
cmp rax, r15
jae 0x14002828b
lea rdx, [rax + rsi]
cmp rdx, r13
jae 0x14002829d
mov r12b, byte [rdi + rax]
cmp r12b, byte [rbx + rdx]
je 0x140027fe6
add rsi, r8
mov rax, qword [rsp + 0x30]
cmp rax, 0xffffffffffffffff
je 0x140027f79
mov r9, qword [rsp + 0x38]
jmp 0x140027f5d
xor r9d, r9d
jmp 0x140027f5d
cmp qword [rsp + 0x30], 0xffffffffffffffff
mov eax, 0
cmovne r9, rax
lea rax, [rsi + r15]
mov r8, rsi
mov qword [rsp + 0x38], rax
mov rsi, rax
mov qword [rsp + 0x30], r9
jmp 0x1400280e8
test dword [rsp + 0x130], 0xff0000
jne 0x14002812a
mov rcx, rbp
mov rdx, rbx
mov r8, r13
call fcn.14000ea97
test rax, rax
je 0x1400282af
add rdx, rax
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], rdx
lea rcx, [rsp + 0xa0]
call fcn.140016629
test r14b, r14b
jne 0x1400280dc
cmp eax, 0x110000
je 0x14002812a
mov ecx, 1
cmp eax, 0x80
jb 0x1400280d4
mov ecx, 2
cmp eax, 0x800
jb 0x1400280d4
cmp eax, 0x10000
mov ecx, 4
sbb rcx, 0
add rbp, rcx
mov r14b, 1
jmp 0x14002806b
xor r14b, 1
mov qword [rsp + 0x38], rbp
mov r8, rbp
mov rax, qword [rsp + 0x98]
mov rdx, qword [rsp + 0x48]
add rdx, rax
add r8, rax
lea r12, [rsp + 0x70]
mov rcx, r12
call fcn.1401b754a
mov rcx, r12
mov rdx, qword [rsp + 0x140]
mov r8, qword [rsp + 0x148]
call fcn.1401b754a
mov rax, qword [rsp + 0x38]
jmp 0x140027f2a
mov rax, qword [rsp + 0x98]
mov rdx, qword [rsp + 0x48]
add rdx, rax
mov r8, qword [rsp + 0x28]
add r8, rax
lea rcx, [rsp + 0x70]
call fcn.1401b754a
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0xb0], rax
movups xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0xa0], xmm0
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
call fcn.1400b5a3c
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x60], rax
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x50], xmm0
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x128]
call fcn.1400b5a3c
mov rbx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
movabs rdi, 0x8000000000000000
mov r14, qword [rsp + 0x120]
lea r15, [rsp + 0x50]
mov r12, qword [rsp + 0x90]
lea r13, [0x14032c2ec]
lea rbp, [0x1402a7b80]
mov rsi, qword [rsp + 0x40]
mov rcx, rbx
call fcn.1400094e2
mov rdx, rbx
mov ebx, eax
mov rcx, qword [rsp + 0x50]
call fcn.1400b5a3c
test bl, bl
jne 0x140027cb0
xor eax, eax
cmp rsi, r14
sete al
inc rdi
mov rsi, qword [rsp + 0x118]
mov qword [rsi + 8], rdi
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [rsp + 0xa0]
movups xmm1, xmmword [rsp + 0xb0]
movups xmm2, xmmword [rsp + 0xc0]
movups xmmword [rsi + 0x18], xmm0
movups xmmword [rsi + 0x28], xmm1
movups xmmword [rsi + 0x38], xmm2
mov rax, qword [rsp + 0xd0]
mov qword [rsi + 0x48], rax
mov qword [rsi], 0x15
mov rcx, qword [rsp + 0x110]
call fcn.14000df49
mov rax, rsi
add rsp, 0x168
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
add rcx, rsi
cmp r13, rcx
cmova rcx, r13
lea r8, str._rustc_9b00956e56009bab2aa15d7bff10916599e3d6d6librarycore_src_strpattern.rs
jmp 0x1400282a7
lea r8, str._rustc_9b00956e56009bab2aa15d7bff10916599e3d6d6librarycore_src_strpattern.rs
mov rcx, rax
mov rdx, r15
call fcn.14007ffe0
lea r8, str._rustc_9b00956e56009bab2aa15d7bff10916599e3d6d6librarycore_src_strpattern.rs
mov rcx, rdx
mov rdx, r13
call fcn.14007ffe0
lea rax, str._rustc_9b00956e56009bab2aa15d7bff10916599e3d6d6librarycore_src_strpattern.rs
mov qword [rsp + 0x20], rax
mov rcx, rbx
mov rdx, r13
mov r8, rbp
mov r9, r13
call fcn.140085c60
int3