Function at 0x1400644e8
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0x5e0]
sub rsp, 0x6e0
mov rax, qword [0x140096008]
xor rax, rsp
mov qword [rbp + 0x5d0], rax
mov edx, 0x64
lea r9, [rsp + 0x58]
mov rdi, rcx
mov ecx, dword [0x140096280]
lea r8d, [rdx + 0xc]
call fcn.14004564c
test eax, eax
jne 0x1400648cf
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov r14d, 0x106
mov rsi, rax
mov r13d, 1
test rdi, rdi
je 0x140064601
xor ebx, ebx
xor r14d, r14d
test ebx, ebx
jne 0x1400645fb
movsxd rax, r14d
mov rdx, rdi
imul rcx, rax, 0x106
add rcx, 0x11a
add rcx, rsi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
test eax, eax
cmove ebx, r13d
add r14d, r13d
cmp r14d, 4
jl 0x140064566
test ebx, ebx
jne 0x1400645fb
mov eax, dword [rsi + 0x10]
sub eax, r13d
mov dword [rsi + 0x10], eax
jns 0x1400645af
lea eax, [rbx + 3]
mov dword [rsi + 0x10], eax
cdqe
lea rdx, [rsi + 0x11a]
imul rcx, rax, 0x106
mov r14d, 0x106
add rdx, rcx
mov ecx, r14d
sub rdi, rdx
lea rax, [rcx + 0x7ffffef8]
test rax, rax
je 0x1400645eb
mov al, byte [rdi + rdx]
test al, al
je 0x1400645eb
mov byte [rdx], al
add rdx, r13
sub rcx, r13
jne 0x1400645ce
test rcx, rcx
lea rax, [rdx - 1]
cmovne rax, rdx
mov byte [rax], 0
jmp 0x140064601
mov r14d, 0x106
mov rcx, qword [0x140096f90]
call qword [sym.imp.USER32.dll_GetMenuItemCount]
mov r15d, 0x71
cmp eax, 9
jne 0x140064633
mov rcx, qword [0x140096f90]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x800
call qword [sym.imp.USER32.dll_AppendMenuA]
jmp 0x140064650
mov ebx, r15d
mov rcx, qword [0x140096f90]
xor r8d, r8d
mov edx, ebx
call qword [sym.imp.USER32.dll_DeleteMenu]
add ebx, r13d
cmp ebx, 0x74
jle 0x140064636
lea rdx, [rbp + 0x190]
mov ecx, 0x105
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea r8, [0x14008e1f8]
mov rdx, r14
lea rcx, [rbp + 0x190]
call fcn.1400205fc
lea rcx, [rbp + 0x190]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
movsxd rdx, dword [rsi + 0x10]
movsxd rdi, eax
mov r13, rdx
mov qword [rsp + 0x60], rdi
mov dword [rsp + 0x50], edx
imul rax, r13, 0x106
lea rbx, [rsi + 0x11a]
add rbx, rax
cmp byte [rbx], 0
je 0x14006488e
mov r8, rdi
lea rdx, [rbp + 0x190]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strnicmp]
xor ecx, ecx
lea rdx, [rsp + 0x70]
test eax, eax
mov r8, r14
lea rax, [rsp + 0x70]
cmove rcx, rdi
sub rcx, rax
lea r9, [rcx + rbx]
lea rax, [r8 + 0x7ffffef8]
test rax, rax
je 0x140064700
mov al, byte [r9 + rdx]
test al, al
je 0x140064700
mov byte [rdx], al
inc rdx
sub r8, 1
jne 0x1400646e1
test r8, r8
lea rax, [rdx - 1]
lea rcx, [rsp + 0x70]
cmovne rax, rdx
mov byte [rax], 0
call qword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 0x28
jle 0x1400647f1
mov qword [rsp + 0x40], r14
lea rax, [rbp + 0x80]
mov qword [rsp + 0x38], rax
lea r9, [rbp + 0x3b0]
lea rax, [rbp + 0x2a0]
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], rax
lea rdx, [rbp + 0x4c0]
mov r8, r14
mov qword [rsp + 0x20], r14
lea rcx, [rsp + 0x70]
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__splitpath_s]
lea r8, [0x14008e224]
mov rdx, r14
lea rcx, [rsp + 0x70]
call fcn.14004c714
lea r8, [rbp + 0x2a0]
mov rdx, r14
lea rcx, [rsp + 0x70]
call fcn.1400205fc
lea rcx, [rbp + 0x80]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
lea rcx, [rsp + 0x70]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, ebx
cmp eax, 0x28
jl 0x1400647dd
mov eax, 0x26
cmp ebx, eax
jle 0x1400647c0
mov ebx, eax
mov byte [rbp + 0xa6], 0
sub eax, ebx
lea r8, [0x14008e228]
cdqe
lea rcx, [rsp + 0x70]
mov rdx, r14
mov byte [rsp + rax + 0x70], 0
call fcn.1400205fc
lea r8, [rbp + 0x80]
mov rdx, r14
lea rcx, [rsp + 0x70]
call fcn.1400205fc
lea rcx, [rsp + 0x70]
xor edi, edi
xor ebx, ebx
xor r14d, r14d
call qword [sym.imp.KERNEL32.dll_lstrlenA]
movsxd rcx, eax
test eax, eax
jle 0x14006484c
cmp edi, 0x104
jae 0x14006483b
mov al, byte [rsp + r14 + 0x70]
mov byte [rbp + rbx + 0x80], al
cmp al, 0x26
jne 0x14006482e
inc edi
mov byte [rbp + rbx + 0x81], al
inc rbx
inc edi
inc rbx
inc r14
cmp r14, rcx
jl 0x14006480a
mov r14d, 0x106
cmp rbx, r14
jae 0x1400648fa
jmp 0x140064852
mov r14d, 0x106
lea r8, [rbp + 0x80]
mov byte [rbp + rbx + 0x80], 0
mov rdx, r14
lea rcx, [rsp + 0x70]
call fcn.14004c714
mov rcx, qword [0x140096f90]
lea r9, [rsp + 0x70]
movsxd r8, r15d
xor edx, edx
call qword [sym.imp.USER32.dll_AppendMenuA]
mov edx, dword [rsp + 0x50]
mov rdi, qword [rsp + 0x60]
lea rcx, [r13 + 1]
inc r15d
lea eax, [rdx + 1]
xor edx, edx
cmp rcx, 4
cmovl edx, eax
xor r13d, r13d
cmp rcx, 4
mov dword [rsp + 0x50], edx
cmovl r13, rcx
cmp r15d, 0x74
jle 0x140064698
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, qword [rsp + 0x58]
call fcn.14004708c
mov rcx, qword [rbp + 0x5d0]
xor rcx, rsp
call fcn.14008a940
lea r11, [rsp + 0x6e0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop rdi
pop rbp
ret
call fcn.14008aa78
int3