Function at 0x1400be616
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x568
movdqa xmmword [rsp + 0x550], xmm6
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
lea r14, [rsp + 0xd8]
mov rcx, r14
call fcn.1401a5a50
lea r15, [rsp + 0x118]
mov rcx, r15
mov rdx, r14
call fcn.140182ac0
mov al, byte [r15]
cmp al, 0xa
je 0x1400be742
add al, 0xfa
movzx ecx, al
lea rdx, [rcx + 1]
xor eax, eax
cmp cl, 4
cmovb rax, rdx
cmp rax, 1
je 0x1400be742
cmp eax, 4
jne 0x1400be6e5
mov rdx, qword [rsp + 0x120]
mov r8, qword [rsp + 0x128]
lea r14, [rsp + 0x150]
mov rcx, r14
call fcn.140080510
cmp qword [r14], 0
mov rdx, qword [r14 + 0x10]
jne 0x1400be6be
mov rcx, qword [rsp + 0x158]
jmp 0x1400be6c0
xor ecx, ecx
lea r8, str._usr_local_cargo_registry_src_index.crates.io_6f17d22bba15001f_path_calculate_0.1.3_src_calculate.rs
call fcn.1400907be
lea r8, str._usr_local_cargo_registry_src_index.crates.io_6f17d22bba15001f_percent_encoding_2.3.1_src_lib.rs
mov r9d, 1
mov rcx, rax
call fcn.14000cacc
test al, al
je 0x1400be742
mov qword [rsp + 0xb8], 1
pxor xmm0, xmm0
movdqu xmmword [rsp + 0xc0], xmm0
mov byte [rsp + 0xd0], 1
lea rdx, str.HOMEUSERPROFILE_library_std_src_syswindowspath.rs
lea rdi, [rsp + 0x150]
mov r8d, 4
mov rcx, rdi
call fcn.14019f060
cmp byte [rdi + 0x18], 2
jne 0x1400be755
lea rdx, [0x14033eb1c]
lea rcx, [rsp + 0x30]
mov r8d, 0xb
call fcn.14019f060
jmp 0x1400be771
mov rcx, rsi
mov rdx, rbx
mov r8, rdi
call fcn.1400beb67
jmp 0x1400beac6
movdqu xmm0, xmmword [rsp + 0x150]
movups xmm1, xmmword [rsp + 0x160]
movaps xmmword [rsp + 0x40], xmm1
movdqa xmmword [rsp + 0x30], xmm0
cmp byte [rsp + 0x48], 2
jne 0x1400be8e8
mov qword [rsp + 0xa8], rsi
call sub.KERNEL32.dll_GetCurrentProcess
lea r8, [rsp + 0xb0]
and qword [r8], 0
mov rcx, rax
mov edx, 0x20008
call sub.ADVAPI32.dll_OpenProcessToken
test eax, eax
je 0x1400beafc
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x68]
mov qword [rax], 2
pxor xmm0, xmm0
movdqu xmmword [rax + 8], xmm0
mov r8d, 0x200
mov r14d, 2
xor r12d, r12d
mov r15d, 0xffffffff
xor esi, esi
xor ebp, ebp
cmp r8, 0x201
jae 0x1400be800
mov edi, 0x200
lea rbx, [rsp + 0x150]
mov r13, r8
jmp 0x1400be83f
sub r8, rbp
sub rsi, rbp
cmp rsi, r8
jae 0x1400be822
lea rcx, [rsp + 0x68]
mov rdx, rbp
call fcn.140180510
mov r14, qword [rsp + 0x68]
mov r12, qword [rsp + 0x70]
cmp r12, r15
mov ebp, 0xffffffff
cmovb rbp, r12
mov qword [rsp + 0x78], rbp
mov rsi, r12
mov rdi, rbp
mov rbx, r14
mov r13, rbp
xor ecx, ecx
call sub.KERNEL32.dll_SetLastError
mov dword [rsp + 0x30], r13d
mov rcx, qword [rsp + 0x28]
mov rdx, rbx
lea r8, [rsp + 0x30]
call sub.userenv.dll_GetUserProfileDirectoryW
test eax, eax
je 0x1400be869
mov ecx, dword [rsp + 0x30]
dec ecx
jmp 0x1400be877
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x7a
jne 0x1400be87b
mov ecx, dword [rsp + 0x30]
test ecx, ecx
jne 0x1400be886
call sub.KERNEL32.dll_GetLastError
xor ecx, ecx
test eax, eax
jne 0x1400be8f5
mov r8d, ecx
cmp r13, r8
jne 0x1400be8ae
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x7a
jne 0x1400beae2
add r13, r13
cmp r13, r15
cmovae r13, r15
mov r8, r13
jmp 0x1400be7e5
jb 0x1400be7e5
cmp rdi, r8
jb 0x1400beb16
lea rcx, [rsp + 0x30]
mov rdx, rbx
call fcn.1401820c0
movdqu xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x90], xmm1
movdqa xmmword [rsp + 0x80], xmm0
jmp 0x1400be912
mov rbx, qword [rsp + 0x30]
movdqu xmm6, xmmword [rsp + 0x38]
jmp 0x1400be971
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rsp + 0x80], rax
mov byte [rsp + 0x98], 2
test r12, r12
je 0x1400be924
mov edx, 2
mov rcx, r14
call fcn.140030e40
mov sil, byte [rsp + 0x98]
cmp sil, 2
jne 0x1400be944
lea rcx, [rsp + 0x80]
call fcn.14017d930
mov sil, 2
jmp 0x1400be955
mov rbx, qword [rsp + 0x80]
movdqu xmm6, xmmword [rsp + 0x88]
mov rcx, qword [rsp + 0x28]
call fcn.1401d11a4
cmp sil, 2
mov rsi, qword [rsp + 0xa8]
je 0x1400beafc
pshufd xmm0, xmm6, 0xee
movq r14, xmm0
lea rdi, [rsp + 0x150]
mov rcx, rdi
mov rdx, rbx
mov r8, r14
call fcn.140080510
cmp qword [rdi], 0
mov rdx, qword [rdi + 0x10]
mov ecx, 0
jne 0x1400be9a8
mov rcx, qword [rsp + 0x158]
movq rdi, xmm6
lea r8, str._usr_local_cargo_registry_src_index.crates.io_6f17d22bba15001f_path_calculate_0.1.3_src_calculate.rs
call fcn.1400907be
lea r8, str.Malformed_XML.
mov rcx, rax
xor r9d, r9d
call fcn.14000cacc
test al, al
je 0x1400be9f7
mov rcx, rbx
mov rdx, rdi
call fcn.1401b5091
movabs rax, 0x1400000003
mov qword [rsi], rax
mov byte [rsi + 0x18], 3
mov ecx, 1
xor edx, edx
jmp 0x1400beac1
lea r15, [rsp + 0x150]
mov rcx, r15
mov rdx, rbx
mov r8, r14
call fcn.1401a5a50
lea r14, [rsp + 0x30]
lea r12, [rsp + 0xb8]
mov rcx, r14
mov rdx, r15
call fcn.140182ac0
cmp byte [rsp + 0x30], 0xa
je 0x1400bea39
mov rcx, r12
mov rdx, r14
call fcn.1400be5f3
jmp 0x1400bea1a
movdqu xmm0, xmmword [rsp + 0xd8]
movups xmm1, xmmword [rsp + 0xe8]
movups xmm2, xmmword [rsp + 0xf8]
movups xmm3, xmmword [rsp + 0x108]
lea r14, [rsp + 0x150]
movaps xmmword [r14 + 0x30], xmm3
movaps xmmword [r14 + 0x20], xmm2
movaps xmmword [r14 + 0x10], xmm1
movdqa xmmword [r14], xmm0
lea r15, [rsp + 0x30]
lea r12, [rsp + 0xb8]
mov rcx, r15
mov rdx, r14
call fcn.140182ac0
cmp byte [rsp + 0x30], 0xa
je 0x1400beaa2
mov rcx, r12
mov rdx, r15
call fcn.1400be5f3
jmp 0x1400bea83
movdqu xmm0, xmmword [rsp + 0xb8]
movups xmm1, xmmword [rsp + 0xc8]
movups xmmword [rsi + 0x10], xmm1
movdqu xmmword [rsi], xmm0
mov rcx, rbx
mov rdx, rdi
call fcn.1401b5091
movaps xmm6, xmmword [rsp + 0x550]
add rsp, 0x568
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, str.internal_error:_entered_unreachable_codeQ
lea r8, str.library_std_src_syswindowsmod.rs
mov edx, 0x28
call fcn.14007f700
invalid
jmp 0x1400beb2b
lea rcx, [0x140368231]
lea r8, str._usr_local_cargo_registry_src_index.crates.io_6f17d22bba15001f_path_calculate_0.1.3_src_calculate.rs
mov edx, 0x2b
call fcn.14007f700
ud2
lea rax, str.library_std_src_syswindowsmod.rs
mov rcx, r8
mov rdx, rdi
mov r8, rax
call fcn.14007f360
ud2