Function at 0x140096e00
Capabilities:
Check if file exists

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xc0
mov qword [rbp + 0x1f], 0xfffffffffffffffe
mov qword [rsp + 0x108], rbx
mov r13, rcx
xor eax, eax
mov dword [rbp + 0x67], eax
mov rcx, qword [rcx + 0x610]
test rcx, rcx
je 0x140097652
test edx, edx
jne 0x1400970d2
cmp byte [0x1403d5360], al
jne 0x140097652
call fcn.1400666d0
mov rcx, rax
lea rdx, [rbp - 0x41]
call fcn.140079710
nop
cmp qword [r13 + 0x480], 0
je 0x140096e94
mov rcx, qword [rbp - 0x41]
cmp dword [rcx - 0x10], 0
je 0x140096e94
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x140096e94
mov rdx, qword [rbp - 0x41]
mov rcx, qword [r13 + 0x480]
call fcn.140103380
call fcn.1400666d0
mov rcx, rax
lea rdx, [rbp - 0x49]
call fcn.140079f90
nop
call fcn.1400666d0
mov rcx, rax
lea rdx, [rbp - 0x51]
call fcn.140079b50
nop
mov rsi, 0xffffffffffffffff
cmp qword [r13 + 0x488], 0
je 0x14009708d
mov rax, qword [rbp - 0x49]
cmp dword [rax - 0x10], 0
je 0x14009708d
mov rcx, qword [rbp - 0x51]
cmp dword [rcx - 0x10], 0
je 0x14009708d
mov rcx, qword [rax - 0x18]
test rcx, rcx
je 0x140096f00
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
test rax, rax
jne 0x140096f11
call fcn.14000b190
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
mov rcx, rax
test rcx, rcx
je 0x140097678
mov rax, qword [rcx]
call qword [rax + SafeArrayCopy]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x29], rbx
mov eax, 1
mov dword [rbp + 0x67], eax
lea r15, [0x1402fcc38]
mov r14, rsi
nop word [rax + rax]
inc r14
cmp word [r15 + r14*2], 0
jne 0x140096f40
mov rcx, qword [rbp - 0x49]
mov qword [rbp - 0x59], rcx
movsxd rdi, dword [rcx - 0x10]
lea r12d, [rdi + r14]
test r12d, r12d
js 0x140097683
mov ecx, eax
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, r12d
or eax, ecx
jge 0x140096f83
mov edx, r12d
lea rcx, [rbp - 0x29]
call fcn.14000bdf0
mov rbx, qword [rbp - 0x29]
add rdi, rdi
mov r9, rdi
mov r8, qword [rbp - 0x59]
mov rdx, rdi
mov rcx, rbx
call fcn.140015050
lea rcx, [rdi + rbx]
movsxd r8, r14d
add r8, r8
je 0x140096fc3
test rcx, rcx
jne 0x140096fbb
call fcn.14028c79c
mov dword [rax], reloc.WS2_32.dll_shutdown
call fcn.14028c64c
jmp 0x140096fc3
mov rdx, r15
call fcn.140289020
cmp r12d, dword [rbx - 0xc]
jg 0x140097699
mov dword [rbx - 0x10], r12d
movsxd rax, r12d
xor ecx, ecx
mov word [rbx + rax*2], cx
lea rdi, [rbx - 0x18]
mov rcx, qword [rdi]
test rcx, rcx
je 0x140096ff4
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
test rax, rax
jne 0x140097005
call fcn.14000b190
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
mov rcx, rax
test rcx, rcx
je 0x14009768e
mov rax, qword [rcx]
call qword [rax + SafeArrayCopy]
add rax, 0x18
mov qword [rbp - 0x21], rax
mov dword [rbp + 0x67], 3
mov r9, qword [rbp - 0x51]
mov eax, dword [r9 - 0x10]
mov dword [rsp + 0x20], eax
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
lea rcx, [rbp - 0x21]
call fcn.140087820
mov rcx, qword [r13 + 0x488]
mov rax, qword [rcx]
mov rbx, qword [rbp - 0x21]
mov rdx, rbx
call qword [rax + 0x60]
mov dword [rbp + 0x67], 1
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140097074
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov eax, esi
lock xadd dword [rdi + 0x10], eax
sub eax, 1
jg 0x14009708d
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x51]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400970ab
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x49]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400970c9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x41]
jmp 0x14009763b
lea rdx, [rbp - 0x31]
call fcn.1400d4b20
nop
mov rcx, qword [rbp - 0x31]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov rsi, 0xffffffffffffffff
test eax, eax
je 0x140097157
mov byte [0x1403d5360], 1
mov rcx, qword [rbp - 0x31]
add rcx, 0xffffffffffffffe8
call fcn.14000ae30
add rax, 0x18
mov qword [rbp - 0x19], rax
lea r9, [rbp - 0x19]
mov r8, qword [r13 + 0x480]
lea rdx, [rbp - 0x11]
mov rcx, r13
call fcn.140098190
nop
mov rbx, qword [rbp - 0x11]
call fcn.1400666d0
mov rcx, rax
mov rdx, rbx
call fcn.14007c190
nop
mov rdx, qword [rbp - 0x11]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140097157
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rbp - 0x61]
mov rcx, qword [r13 + 0x610]
call fcn.1400d5730
nop
lea rdx, [rbp - 0x39]
mov rcx, qword [r13 + 0x610]
call fcn.1400d5670
nop
cmp qword [r13 + 0x488], 0
je 0x14009732f
mov rax, qword [rbp - 0x61]
mov rcx, qword [rax - 0x18]
test rcx, rcx
je 0x1400971a2
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
test rax, rax
jne 0x1400971b3
call fcn.14000b190
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
mov rcx, rax
test rcx, rcx
je 0x1400976a4
mov rax, qword [rcx]
call qword [rax + SafeArrayCopy]
lea rbx, [rax + 0x18]
mov qword [rbp - 9], rbx
mov dword [rbp + 0x67], 4
lea r15, [0x1402fcc38]
mov r14, rsi
nop dword [rax + rax]
inc r14
cmp word [r15 + r14*2], 0
jne 0x1400971e0
mov rax, qword [rbp - 0x61]
mov qword [rbp + 7], rax
movsxd rdi, dword [rax - 0x10]
lea r12d, [rdi + r14]
test r12d, r12d
js 0x1400976af
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, r12d
or eax, ecx
jge 0x140097226
mov edx, r12d
lea rcx, [rbp - 9]
call fcn.14000bdf0
mov rbx, qword [rbp - 9]
add rdi, rdi
mov r9, rdi
mov r8, qword [rbp + 7]
mov rdx, rdi
mov rcx, rbx
call fcn.140015050
lea rcx, [rdi + rbx]
movsxd r8, r14d
add r8, r8
je 0x140097266
test rcx, rcx
jne 0x14009725e
call fcn.14028c79c
mov dword [rax], reloc.WS2_32.dll_shutdown
call fcn.14028c64c
jmp 0x140097266
mov rdx, r15
call fcn.140289020
cmp r12d, dword [rbx - 0xc]
jg 0x14009766d
mov dword [rbx - 0x10], r12d
movsxd rax, r12d
xor ecx, ecx
mov word [rbx + rax*2], cx
lea rdi, [rbx - 0x18]
mov rcx, qword [rdi]
test rcx, rcx
je 0x140097297
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
test rax, rax
jne 0x1400972a8
call fcn.14000b190
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
mov rcx, rax
test rcx, rcx
je 0x1400976ba
mov rax, qword [rcx]
call qword [rax + SafeArrayCopy]
add rax, 0x18
mov qword [rbp - 0x59], rax
mov dword [rbp + 0x67], listen
mov r9, qword [rbp - 0x39]
mov eax, dword [r9 - 0x10]
mov dword [rsp + 0x20], eax
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
lea rcx, [rbp - 0x59]
call fcn.140087820
mov rcx, qword [r13 + 0x488]
mov rax, qword [rcx]
mov rbx, qword [rbp - 0x59]
mov rdx, rbx
call qword [rax + 0x60]
mov dword [rbp + 0x67], 4
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140097317
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov eax, esi
lock xadd dword [rdi + 0x10], eax
sub eax, 1
jg 0x14009732f
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rbp - 0x61]
call fcn.1400666d0
mov rcx, rax
mov rdx, rbx
call fcn.14007c290
mov rbx, qword [rbp - 0x39]
call fcn.1400666d0
mov rcx, rax
mov rdx, rbx
call fcn.14007c210
call fcn.1400666d0
mov rcx, rax
lea rdx, [rbp - 0x69]
call fcn.140078ea0
nop
call fcn.1400666d0
mov rcx, rax
lea rdx, [rbp + 0x7f]
call fcn.140078930
nop
call fcn.1400666d0
mov rcx, rax
lea rdx, [rbp + 0x77]
call fcn.140079580
nop
mov rax, qword [rbp - 0x69]
cmp dword [rax - 0x10], 0
je 0x1400973af
mov rax, qword [rbp + 0x7f]
cmp dword [rax - 0x10], 0
je 0x1400973af
mov rax, qword [rbp + 0x77]
cmp dword [rax - 0x10], 0
jne 0x1400975a1
lea rdx, [rbp + 0xf]
mov rcx, qword [r13 + 0x610]
call fcn.1400d5640
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rbp - 0x69]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14009741b
cmp dword [rbx + 0x10], 0
jl 0x14009740d
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14009740d
call fcn.14000ae30
mov rdi, rax
mov ecx, esi
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x140097403
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rdi + 0x18]
mov qword [rbp - 0x69], rax
jmp 0x14009741b
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x69]
call fcn.140010860
nop
mov rdx, qword [rbp + 0xf]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140097438
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rbp + 0x17]
mov rcx, qword [r13 + 0x610]
call fcn.14009d1f0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rbp + 0x7f]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x1400974a4
cmp dword [rbx + 0x10], 0
jl 0x140097496
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x140097496
call fcn.14000ae30
mov rdi, rax
mov ecx, esi
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14009748c
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rdi + 0x18]
mov qword [rbp + 0x7f], rax
jmp 0x1400974a4
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp + 0x7f]
call fcn.140010860
nop
mov rdx, qword [rbp + 0x17]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400974c1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rbp - 1]
mov rcx, qword [r13 + 0x610]
call fcn.14000b2a0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rbp + 0x77]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14009752d
cmp dword [rbx + 0x10], 0
jl 0x14009751f
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14009751f
call fcn.14000ae30
mov rdi, rax
mov ecx, esi
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x140097515
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rdi + 0x18]
mov qword [rbp + 0x77], rax
jmp 0x14009752d
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp + 0x77]
call fcn.140010860
nop
mov rdx, qword [rbp - 1]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14009754a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rbp - 0x69]
cmp dword [rbx - 0x10], 0
je 0x1400975a1
mov rax, qword [rbp + 0x7f]
cmp dword [rax - 0x10], 0
je 0x1400975a1
mov rax, qword [rbp + 0x77]
cmp dword [rax - 0x10], 0
je 0x1400975a1
call fcn.1400666d0
mov rcx, rax
mov rdx, rbx
call fcn.14007b410
mov rbx, qword [rbp + 0x7f]
call fcn.1400666d0
mov rcx, rax
mov rdx, rbx
call fcn.14007a790
mov rbx, qword [rbp + 0x77]
call fcn.1400666d0
mov rcx, rax
mov rdx, rbx
call fcn.14007be50
nop
mov rdx, qword [rbp + 0x77]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400975bf
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x7f]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400975dd
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, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400975fb
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, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140097619
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x61]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140097637
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x31]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x140097652
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rsp + 0x108]
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80070057
call fcn.14000adf0
nop
mov ecx, 0x80004005
call fcn.14000adf0
int3
mov ecx, 0x80070057
call fcn.14000adf0
nop
mov ecx, 0x80004005
call fcn.14000adf0
nop
mov ecx, 0x80070057
call fcn.14000adf0
nop
mov ecx, 0x80004005
call fcn.14000adf0
int3
mov ecx, 0x80070057
call fcn.14000adf0
nop
mov ecx, 0x80004005
call fcn.14000adf0
int3