Function at 0x1400010a0
Capabilities:
Get common file path

Disassembly:
mov r11, rsp
push rsi
push rdi
push r14
sub rsp, 0x270
mov rax, qword [0x1400344c8]
xor rax, rsp
mov qword [rsp + 0x240], rax
xor edi, edi
mov qword [r11 + 0x18], rbx
mov qword [r11 - 0x20], rbp
mov r14, rdx
mov rsi, rcx
mov qword [rsp + 0x20], rdi
mov ecx, edi
mov qword [r11 - 0x28], r12
lea rdx, str.desktop
movzx eax, byte [r14 + rcx]
inc rcx
cmp al, byte [rdx + rcx - 1]
jne 0x140001108
cmp rcx, 8
jne 0x1400010e2
mov ebp, dword [0x1400344b8]
lea r12, [0x1400344b8]
lea ebx, [rcx + 0x11]
jmp 0x140001138
mov r8d, 8
lea rdx, str.Programs
mov rcx, r14
call fcn.140010170
test eax, eax
jne 0x14000132b
mov ebp, dword [0x1400344bc]
lea r12, [0x1400344bc]
lea ebx, [rax + 0x17]
lea edi, [rax + 2]
mov qword [rsp + 0x258], r13
lea rcx, [rsp + 0x28]
test ebp, ebp
mov qword [rsp + 0x250], r15
mov r13d, 0xffffffff
cmovns edi, r13d
call qword [sym.imp.SHELL32.dll_SHGetMalloc]
test eax, eax
jne 0x1400012a9
test ebp, ebp
cmovs ebp, ebx
nop dword [rax]
lea r8, [rsp + 0x20]
mov edx, ebp
xor ecx, ecx
call sub.SHELL32.dll_SHGetSpecialFolderLocation
test eax, eax
je 0x1400011a5
test edi, edi
js 0x1400012b8
lea r8, [rsp + 0x20]
mov edx, edi
xor ecx, ecx
call sub.SHELL32.dll_SHGetSpecialFolderLocation
test eax, eax
jne 0x1400012b8
mov ebp, edi
mov edi, r13d
mov rcx, qword [rsp + 0x20]
mov rdx, rsi
mov r15d, edi
call qword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
mov rcx, qword [rsp + 0x28]
mov ebx, eax
mov rdx, qword [rsp + 0x20]
mov r8, qword [rcx]
call qword [r8 + 0x28]
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rcx]
call qword [rdx + 0x10]
test ebx, ebx
jne 0x140001235
test edi, edi
jns 0x140001290
mov rdx, r14
lea rcx, str._nERROR_translating_ITEMIDLIST_for_shell_folder_name:___s__n_n
call fcn.1400019e0
xor eax, eax
mov r13, qword [rsp + 0x258]
mov r15, qword [rsp + 0x250]
mov r12, qword [rsp + 0x260]
mov rbp, qword [rsp + 0x268]
mov rbx, qword [rsp + 0x2a0]
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.1400028a0
add rsp, 0x270
pop r14
pop rdi
pop rsi
ret
test edi, edi
js 0x1400012d9
lea rdx, [rsp + 0x30]
mov rax, rsi
sub rdx, rsi
nop dword [rax + rax]
movzx ecx, byte [rax]
mov byte [rdx + rax], cl
lea rax, [rax + 1]
test cl, cl
jne 0x140001250
lea rax, [rsp + 0x30]
dec rax
cmp byte [rax + 1], 0
lea rax, [rax + 1]
jne 0x140001266
movups xmm0, xmmword [str._vim_write_test]
lea rdx, [0x1400267d0]
lea rcx, [rsp + 0x30]
movups xmmword [rax], xmm0
call fcn.14000715c
test rax, rax
jne 0x1400012c7
lea rcx, [rsp + 0x28]
mov edi, r13d
mov ebp, r15d
call qword [sym.imp.SHELL32.dll_SHGetMalloc]
test eax, eax
je 0x140001170
mov rdx, r14
lea rcx, str._nERROR_getting_interface_for_shell_folder_name:___s__n_n
jmp 0x1400011ea
mov rdx, r14
lea rcx, str._nERROR_getting_ITEMIDLIST_for_shell_folder_name:___s__n_n
jmp 0x1400011ea
mov rcx, rax
call fcn.140006a9c
lea rcx, [rsp + 0x30]
call fcn.1400074f8
cmp dword [r12], 0
jge 0x1400012e4
mov dword [r12], ebp
mov r8d, 9
lea rdx, str.Programs_
mov rcx, r14
call fcn.140010170
test eax, eax
jne 0x140001321
dec rsi
cmp byte [rsi + 1], 0
lea rsi, [rsi + 1]
jne 0x140001300
xor ecx, ecx
nop dword [rax]
movzx eax, byte [r14 + rcx + 8]
mov byte [rsi + rcx], al
lea rcx, [rcx + 1]
test al, al
jne 0x140001310
mov eax, 1
jmp 0x1400011f1
mov rdx, r14
lea rcx, str._nERROR__internal__unrecognised_shell_folder_name:___s__n_n
call fcn.1400019e0
xor eax, eax
jmp 0x140001201