Function at 0x1401b16e0
Capabilities:
Check if file exists

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xf0
mov qword [rbp - 9], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
movaps xmmword [rax - 0x38], xmm6
mov r13, r9
mov r14, r8
mov rdi, rdx
mov r12, rcx
xor esi, esi
mov dword [rsp + 0x20], esi
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x69], rax
mov rax, qword [rdi]
mov rdi, qword [rdi + 8]
or r15d, 0xffffffff
mov qword [rbp - 0x29], rax
cmp rax, rdi
je 0x1401b168a
mov rdx, rax
lea rcx, [rbp - 0x69]
call fcn.14000c244
mov rbx, qword [rbp - 0x69]
mov rdx, rbx
lea rcx, [rbp - 0x79]
call fcn.14000cb18
nop
lea rdx, str.pluginreg.dat
lea rcx, [rbp - 0x79]
call fcn.14000f884
mov rcx, qword [rbp - 0x79]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1401b162e
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x10]
test al, al
jne 0x1401b162e
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x39], rax
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x31], rax
lea r8, [rbp - 0x31]
lea rdx, [rbp - 0x39]
mov rcx, rbx
call fcn.14022d344
mov rdx, rbx
lea rcx, [rbp - 0x41]
call fcn.14022cff4
nop
mov qword [r12 + 0x28], r14
mov qword [r12 + 0x30], r13
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x10]
test al, al
jne 0x1401b15cc
mov ecx, 0x60
call fcn.1400be454
mov qword [rbp - 0x19], rax
test rax, rax
je 0x1401b11c0
lea rdx, [rbp - 0x79]
mov rcx, rax
call fcn.1401b0ec0
mov rsi, rax
mov qword [rbp - 0x51], rsi
and qword [rbp - 0x49], 0
mov rdx, rsi
lea rcx, [rbp - 0x21]
call fcn.1400919b8
mov rdx, qword [rbp - 0x49]
mov rcx, qword [rax]
mov qword [rbp - 0x49], rcx
mov qword [rax], rdx
mov rbx, qword [rbp - 0x21]
test rbx, rbx
je 0x1401b1218
mov eax, r15d
lock xadd dword [rbx + 8], eax
add eax, r15d
jne 0x1401b1218
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
add eax, r15d
jne 0x1401b1218
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
mov r8, rsi
mov rdx, rsi
lea rcx, [rbp - 0x51]
call fcn.1400020a0
nop
mov rax, qword [rbp - 0x51]
xor esi, esi
test rax, rax
je 0x1401b1596
movsd xmm6, qword [rax + 0x28]
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x38], rax
mov qword [rbp - 0x61], rsi
mov qword [rbp - 0x59], rsi
comisd xmm6, xmmword [0x140336e18]
jb 0x1401b1287
lea rdx, [rbp - 0x69]
lea rcx, [rsp + 0x38]
call fcn.14000c244
lea rdx, [0x140367840]
lea rcx, [rsp + 0x38]
call fcn.14000f884
mov rcx, qword [rbp - 0x51]
mov rax, qword [rcx + 0x30]
mov qword [rcx + 0x58], rax
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], rsi
lea r8, [rbp + 0xf]
lea rdx, [rbp - 1]
mov rcx, qword [rbp - 0x51]
call fcn.1401b0ac0
nop
or dword [rsp + 0x20], 1
mov rdx, qword [rax]
mov qword [rbp + 0x17], rdx
mov rcx, qword [rax + 8]
mov qword [rax + 8], rsi
mov qword [rax], rsi
mov qword [rsp + 0x28], rdx
mov rbx, qword [rsp + 0x30]
mov qword [rsp + 0x30], rcx
test rbx, rbx
je 0x1401b1306
mov eax, r15d
lock xadd dword [rbx + 8], eax
add eax, r15d
jne 0x1401b1306
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
add eax, r15d
jne 0x1401b1306
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
cmp qword [rsp + 0x28], rsi
setne sil
test byte [rsp + 0x20], 1
je 0x1401b1350
and dword [rsp + 0x20], 0xfffffffe
mov rbx, qword [rbp + 7]
test rbx, rbx
je 0x1401b1350
mov eax, r15d
lock xadd dword [rbx + 8], eax
add eax, r15d
jne 0x1401b1350
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
add eax, r15d
jne 0x1401b1350
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
test sil, sil
je 0x1401b1500
mov rcx, qword [rsp + 0x28]
xor esi, esi
cmp byte [rcx + 0x32], sil
jne 0x1401b14ec
add rcx, 0x68
lea rdx, [rbp - 0x39]
call fcn.14000c244
mov rcx, qword [rsp + 0x28]
add rcx, 0x70
lea rdx, [rbp - 0x31]
call fcn.14000c244
mov r11, qword [rbp - 0x41]
cmp dword [r11 - 0x10], esi
je 0x1401b13a5
mov rcx, qword [rsp + 0x28]
add rcx, 0x48
lea rdx, [rbp - 0x41]
call fcn.14000c244
comisd xmm6, xmmword [0x140336e18]
jb 0x1401b14dc
cmp qword [rbp - 0x61], rsi
jne 0x1401b13f4
mov ecx, 0x30
call fcn.1400be454
mov qword [rbp - 0x19], rax
test rax, rax
je 0x1401b13db
lea rdx, [rsp + 0x38]
mov rcx, rax
call fcn.14022d1b4
jmp 0x1401b13de
mov rax, rsi
mov rdx, rax
lea rcx, [rbp - 0x61]
call fcn.1400918c8
cmp qword [rbp - 0x61], rsi
je 0x1401b14dc
mov rcx, qword [rsp + 0x28]
add rcx, 0x98
lea rdx, [rsp + 0x38]
call fcn.14000c244
mov rdx, qword [rsp + 0x28]
lea r8, [rdx + 0x78]
add rdx, 0x38
lea rcx, [rbp - 0x11]
call fcn.1401b06c0
nop
mov rcx, qword [rsp + 0x28]
add rcx, 0xa0
mov rdx, rax
call fcn.14000c244
nop
mov rdx, qword [rbp - 0x11]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1401b1456
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rsp + 0x28]
lea r9, str._NF_
mov r8, qword [rax + 0xa0]
lea rdx, [rbp - 0x71]
mov rcx, qword [rbp - 0x61]
call fcn.14022c894
nop
lea rdx, str._NF_
mov rcx, qword [rbp - 0x71]
call fcn.1400bedf4
test eax, eax
jne 0x1401b149f
lea r8d, [rax + 1]
lea rdx, [0x140357eac]
lea rcx, [rbp - 0x71]
call fcn.14000c9f8
lea rdx, [0x14034e610]
mov rcx, qword [rbp - 0x71]
call fcn.1400bedf4
test eax, eax
setne cl
mov rax, qword [rsp + 0x28]
mov byte [rax + 0x30], cl
mov rdx, qword [rbp - 0x71]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1401b14dc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rcx, [r12 + 0x20]
mov rax, qword [rcx]
lea rdx, [rsp + 0x28]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x10]
test al, al
je 0x1401b129d
jmp 0x1401b1502
xor esi, esi
mov rbx, qword [rsp + 0x30]
test rbx, rbx
je 0x1401b1539
mov eax, r15d
lock xadd dword [rbx + 8], eax
add eax, r15d
jne 0x1401b1539
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
add eax, r15d
jne 0x1401b1539
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
nop
mov rcx, qword [rbp - 0x59]
test rcx, rcx
je 0x1401b1574
mov eax, r15d
lock xadd dword [rcx + 8], eax
add eax, r15d
jne 0x1401b1574
mov rbx, qword [rbp - 0x59]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
add eax, r15d
jne 0x1401b1574
mov rcx, qword [rbp - 0x59]
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1401b1596
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rbx, qword [rbp - 0x49]
test rbx, rbx
je 0x1401b15cc
mov eax, r15d
lock xadd dword [rbx + 8], eax
add eax, r15d
jne 0x1401b15cc
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
add eax, r15d
jne 0x1401b15cc
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
nop
mov rdx, qword [rbp - 0x41]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1401b15ed
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x31]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1401b160e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x39]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1401b162e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x10]
test al, al
jne 0x1401b1669
mov rdx, qword [rbp - 0x79]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1401b165c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rbp - 0x29]
add rax, 8
jmp 0x1401b10d5
mov rdx, qword [rbp - 0x79]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1401b168a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x69]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1401b16aa
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov r9, r8
add rcx, 0xffffffffffffffe8
xor r8d, r8d
jmp 0x1401b1070