Function at 0x1400859c0
Capabilities:
Check if file exists

Disassembly:
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x70], rbp
mov qword [rsp + 0x78], rsi
mov rsi, rcx
mov rax, qword [rcx + 0x8d0]
mov r14, qword [rax + 0x40]
movzx r12d, byte [r14 + 0x48]
movzx r13d, r12b
lea r15, [r14 + 0xb0]
mov rcx, r15
cmp qword [r15 + 0x18], 8
jb 0x140085a11
mov rcx, qword [r15]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
setne byte [rsp + 0x60]
xor ebx, ebx
test r12b, r12b
jne 0x140085b43
mov edi, ebx
mov edx, 4
mov ecx, dword [0x1402c12d8]
mov rax, qword gs:[0x58]
mov rbp, qword [rax + rcx*8]
add rbp, rdx
nop word [rax + rax]
mov eax, dword [0x1402bec00]
cmp eax, dword [rbp]
jle 0x140085abc
lea rcx, [0x1402bec00]
call fcn.1401818fc
mov eax, dword [0x1402bec00]
cmp eax, 0xffffffff
jne 0x140085abc
xorps xmm0, xmm0
movdqa xmmword [0x1402bebc0], xmm0
mov qword [0x1402bebd8], rbx
xorps xmm1, xmm1
movdqa xmmword [0x1402bebe0], xmm1
mov qword [0x1402bebf0], rbx
mov qword [0x1402bebf8], rbx
lea rcx, [0x1401e17e0]
call fcn.1401816cc
nop
lea rcx, [0x1402bec00]
call fcn.14018189c
mov eax, dword [0x1402bec00]
cmp rdi, qword [0x1402bebf8]
jae 0x140085b43
cmp eax, dword [rbp]
jle 0x140085b23
lea rcx, [0x1402bec00]
call fcn.1401818fc
cmp dword [0x1402bec00], 0xffffffff
jne 0x140085b23
xorps xmm0, xmm0
movdqa xmmword [0x1402bebc0], xmm0
mov qword [0x1402bebd8], rbx
xorps xmm1, xmm1
movdqa xmmword [0x1402bebe0], xmm1
mov qword [0x1402bebf0], rbx
mov qword [0x1402bebf8], rbx
lea rcx, [0x1401e17e0]
call fcn.1401816cc
nop
lea rcx, [0x1402bec00]
call fcn.14018189c
mov rdx, rdi
lea rcx, [0x1402bebc0]
call fcn.14001ef00
cmp byte [rax + 0x48], 0
jne 0x140085b40
inc rdi
jmp 0x140085a50
mov r13b, 1
mov edi, dword [r14 + 0xa0]
mov ebp, 3
mov r8d, ebp
test r12b, r12b
cmovne r8d, ebx
mov edx, 0xa02e
mov rcx, qword [rsi + 0x979d0]
call qword [sym.imp.USER32.dll_EnableMenuItem]
movzx r9d, r12b
mov edx, 0x401
mov r8d, 0xa02e
mov rcx, qword [rsi + 0xa30]
call qword [sym.imp.USER32.dll_SendMessageW]
mov r8d, ebp
test r13b, r13b
cmovne r8d, ebx
mov edx, 0xa02f
mov rcx, qword [rsi + 0x979d0]
call qword [sym.imp.USER32.dll_EnableMenuItem]
movzx r9d, r13b
mov edx, 0x401
mov r8d, 0xa02f
mov rcx, qword [rsi + 0xa30]
call qword [sym.imp.USER32.dll_SendMessageW]
test r12b, r12b
jne 0x140085bcd
cmp edi, 2
je 0x140085bcd
mov al, 1
jmp 0x140085bcf
xor al, al
mov r8d, ebp
test al, al
cmovne r8d, ebx
mov edx, 0x2713
mov rcx, qword [rsi + 0x979d0]
call qword [sym.imp.USER32.dll_EnableMenuItem]
test r12b, r12b
jne 0x140085bf8
cmp edi, 2
je 0x140085bf8
mov al, 1
jmp 0x140085bfa
xor al, al
mov r8d, ebp
test al, al
cmovne r8d, ebx
mov edx, 0x2714
mov rcx, qword [rsi + 0x979d0]
call qword [sym.imp.USER32.dll_EnableMenuItem]
movzx edi, byte [r14 + 0xac]
mov r8d, ebp
test dil, dil
cmovne r8d, ebx
mov edx, 0xa431
mov rcx, qword [rsi + 0x979d0]
call qword [sym.imp.USER32.dll_EnableMenuItem]
cmp byte [r14 + 0x110], 0
jne 0x140085c4c
test dil, dil
jne 0x140085c4c
mov al, 1
jmp 0x140085c4e
xor al, al
mov r8d, ebp
test al, al
cmovne r8d, ebx
mov edx, 0xa42c
mov rcx, qword [rsi + 0x979d0]
call qword [sym.imp.USER32.dll_EnableMenuItem]
movzx eax, byte [r14 + 0x54]
neg al
sbb r8d, r8d
and r8d, 8
mov edx, 0xa42c
mov rcx, qword [rsi + 0x979d0]
call qword [sym.imp.USER32.dll_CheckMenuItem]
mov edi, ebp
cmp byte [rsp + 0x60], 0
cmovne edi, ebx
mov r8d, edi
mov edx, 0xa038
mov rcx, qword [rsi + 0x979d0]
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, edi
mov edx, 0xa03c
mov rcx, qword [rsi + 0x979d0]
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, edi
mov edx, 0xa03b
mov rcx, qword [rsi + 0x979d0]
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, edi
mov edx, 0xa036
mov rcx, qword [rsi + 0x979d0]
call qword [sym.imp.USER32.dll_EnableMenuItem]
cmp qword [r15 + 0x18], 8
jb 0x140085cf1
mov r15, qword [r15]
mov rcx, r15
call fcn.14002a3e0
mov r8d, ebp
test al, al
cmovne r8d, ebx
mov edx, 0xa03f
mov rcx, qword [rsi + 0x979d0]
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, edi
mov edx, 0xac44
mov rcx, qword [rsi + 0x979d0]
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, edi
mov edx, 0xac45
mov rcx, qword [rsi + 0x979d0]
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, edi
mov edx, 0xac47
mov rcx, qword [rsi + 0x979d0]
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, edi
mov edx, 0xac46
mov rcx, qword [rsi + 0x979d0]
call qword [sym.imp.USER32.dll_EnableMenuItem]
movzx edx, byte [r14 + 0x49]
mov rcx, rsi
call fcn.14008a9d0
mov rcx, rsi
call fcn.140086510
mov edx, 0xffffffff
mov rcx, rsi
call fcn.140085e40
mov rcx, qword [rsi + 0x983a8]
test rcx, rcx
je 0x140085d9b
call fcn.140010580
mov edi, dword [r14 + 0xa0]
cmp edi, 2
cmovne ebp, ebx
mov r8d, ebp
mov edx, 0xac41
mov rcx, qword [rsi + 0x979d0]
call qword [sym.imp.USER32.dll_EnableMenuItem]
cmp edi, 2
setne bl
mov r9, rbx
mov edx, 0x401
mov r8d, 0xac41
mov rcx, qword [rsi + 0xa30]
call qword [sym.imp.USER32.dll_SendMessageW]
movzx eax, byte [r14 + 0x110]
neg al
sbb r8d, r8d
and r8d, 8
mov edx, 0xac41
mov rcx, qword [rsi + 0x979d0]
call qword [sym.imp.USER32.dll_CheckMenuItem]
movzx r9d, byte [r14 + 0x110]
mov edx, 0x402
mov r8d, 0xac41
mov rcx, qword [rsi + 0xa30]
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
jmp qword [sym.imp.USER32.dll_SendMessageW]