Function at 0x1402c0600
Capabilities:
Check if file exists

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
mov rbp, rsp
sub rsp, 0x80
mov qword [rbp - 0x50], 0xfffffffffffffffe
mov rax, qword [0x1403b8c08]
xor rax, rsp
mov qword [rbp - 8], rax
mov rsi, r8
mov rdi, rdx
mov rbx, rcx
mov qword [rbp - 0x58], rdx
mov r9, r8
mov r8d, reloc.OLEAUT32.dll_SafeArrayCopy
lea rdx, [rbp - 0x48]
call fcn.1402c16f0
nop
xor r14d, r14d
cmp qword [rbp - 0x38], r14
je 0x1402c066c
lea rcx, [rbp - 0x48]
cmp qword [rbp - 0x30], 8
cmovae rcx, qword [rbp - 0x48]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1402c06f5
mov r9, rsi
mov r8d, 1
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1402c16f0
mov rbx, rax
lea rax, [rbp - 0x48]
cmp rax, rbx
je 0x1402c06b5
lea rcx, [rbp - 0x48]
call fcn.140012f50
movups xmm0, xmmword [rbx]
movups xmmword [rbp - 0x48], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rbp - 0x38], xmm1
mov qword [rbx + 0x10], r14
mov qword [rbx + 0x18], 7
mov word [rbx], r14w
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x1402c06f5
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1402c06f0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1402c08d5
call fcn.140171af0
cmp qword [rbp - 0x38], r14
jne 0x1402c0766
mov qword [rdi + 0x10], r14
mov qword [rdi + 0x18], 7
mov word [rdi], r14w
xor r8d, r8d
lea rdx, [0x1402ec198]
mov rcx, rdi
call fcn.1400810d0
nop
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x1402c08ac
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1402c08a7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1402c08cf
jmp 0x1402c08a7
call fcn.14000b190
mov rcx, rax
test rax, rax
je 0x1402c08db
mov rax, qword [rax]
call qword [rax + SafeArrayCopy]
add rax, 0x18
mov qword [rbp - 0x58], rax
lea rbx, [rbp - 0x48]
cmp qword [rbp - 0x30], 8
cmovae rbx, qword [rbp - 0x48]
call fcn.14000b190
mov rcx, rax
test rax, rax
je 0x1402c08e6
mov rax, qword [rax]
call qword [rax + SafeArrayCopy]
add rax, 0x18
mov qword [rbp - 0x60], rax
mov rsi, 0xffffffffffffffff
test rbx, rbx
je 0x1402c07ec
cmp rbx, 0x10000
jae 0x1402c07d5
movzx edx, bx
lea rcx, [rbp - 0x60]
call fcn.14000b690
jmp 0x1402c07ff
mov rax, rsi
nop dword [rax + rax]
inc rax
cmp word [rbx + rax*2], 0
jne 0x1402c07e0
jmp 0x1402c07ef
mov eax, r14d
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp - 0x60]
call fcn.140010860
nop
lea rdx, [rbp - 0x58]
lea rcx, [rbp - 0x60]
call fcn.1400e6a90
nop
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1402c082a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov qword [rdi + 0x10], r14
mov qword [rdi + 0x18], 7
mov word [rdi], r14w
mov rbx, qword [rbp - 0x58]
mov r8, rsi
inc r8
cmp word [rbx + r8*2], 0
jne 0x1402c0841
mov rdx, rbx
mov rcx, rdi
call fcn.1400810d0
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x1402c0870
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x1402c08ac
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1402c08a7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1402c08c9
call fcn.140171af0
mov rax, rdi
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.140172190
add rsp, 0x80
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.14028c66c
int3
call fcn.14028c66c
nop
call fcn.14028c66c
nop
mov ecx, 0x80004005
call fcn.14000adf0
nop
mov ecx, 0x80004005
call fcn.14000adf0
int3