Function at 0x180007ea0
Capabilities:
Check if file exists

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x80], rbx
call fcn.180002c40
mov rcx, rax
test rax, rax
je 0x18000854f
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x70], rax
xor edx, edx
lea rcx, [rsp + 0x78]
call fcn.180006790
nop
mov rdx, qword [rax]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x70]
call fcn.180001600
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov r13, 0xffffffffffffffff
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x180007f26
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
lea rdi, str.ApTest
mov rax, r13
inc rax
cmp word [rdi + rax*2], 0
jne 0x180007f30
mov rbp, rdi
mov rbx, qword [rsp + 0x70]
sub rbp, rbx
sar rbp, 1
mov r15d, dword [rbx - 0x10]
test eax, eax
js 0x18000855a
movsxd rdx, eax
mov rcx, rdi
call fcn.18000e100
mov r14, rax
mov ecx, 0x7fffffff
sub ecx, eax
cmp ecx, r15d
jl 0x180008565
lea esi, [r15 + rax]
test esi, esi
js 0x180008570
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, ecx
jge 0x180007fa0
mov edx, esi
lea rcx, [rsp + 0x70]
call fcn.180004d30
mov rbx, qword [rsp + 0x70]
cmp rbp, r15
ja 0x180007fa9
lea rdi, [rbx + rbp*2]
movsxd rdx, r14d
lea rcx, [rbx + r15*2]
mov r9d, r14d
mov r8, rdi
call fcn.180006410
cmp esi, dword [rbx - 0xc]
jg 0x180008544
mov dword [rbx - 0x10], esi
movsxd rax, esi
xor ecx, ecx
mov word [rbx + rax*2], cx
lea rdi, [0x180021a58]
mov rax, r13
nop word [rax + rax]
inc rax
cmp word [rdi + rax*2], cx
jne 0x180007fe0
mov r12, rdi
mov rbp, rdi
sub rbp, rbx
sar rbp, 1
mov r15d, dword [rbx - 0x10]
test eax, eax
js 0x18000857b
movsxd rdx, eax
mov rcx, rdi
call fcn.18000e100
mov r14, rax
mov ecx, 0x7fffffff
sub ecx, eax
cmp ecx, r15d
jl 0x180008586
lea esi, [r15 + rax]
test esi, esi
js 0x180008591
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, ecx
jge 0x18000804d
mov edx, esi
lea rcx, [rsp + 0x70]
call fcn.180004d30
mov rbx, qword [rsp + 0x70]
cmp rbp, r15
ja 0x180008056
lea r12, [rbx + rbp*2]
movsxd rdx, r14d
lea rcx, [rbx + r15*2]
mov r9d, r14d
mov r8, r12
call fcn.180006410
cmp esi, dword [rbx - 0xc]
jg 0x180008539
mov dword [rbx - 0x10], esi
movsxd rax, esi
xor ecx, ecx
mov word [rbx + rax*2], cx
mov rax, r13
inc rax
cmp word [rdi + rax*2], cx
jne 0x180008080
mov rbp, rdi
sub rbp, rbx
sar rbp, 1
mov r15d, dword [rbx - 0x10]
test eax, eax
js 0x18000859c
movsxd rdx, eax
mov rcx, rdi
call fcn.18000e100
mov r14, rax
mov ecx, 0x7fffffff
sub ecx, eax
cmp ecx, r15d
jl 0x1800085a7
lea esi, [r15 + rax]
test esi, esi
js 0x1800085b2
mov r12d, 1
mov ecx, r12d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, ecx
jge 0x1800080ee
mov edx, esi
lea rcx, [rsp + 0x70]
call fcn.180004d30
mov rbx, qword [rsp + 0x70]
cmp rbp, r15
ja 0x1800080f7
lea rdi, [rbx + rbp*2]
movsxd rdx, r14d
lea rcx, [rbx + r15*2]
mov r9d, r14d
mov r8, rdi
call fcn.180006410
cmp esi, dword [rbx - 0xc]
jg 0x1800086c5
mov dword [rbx - 0x10], esi
movsxd rax, esi
xor ecx, ecx
mov word [rbx + rax*2], cx
lea rdi, [0x180021a5c]
mov rax, r13
nop dword [rax + rax]
inc rax
cmp word [rdi + rax*2], cx
jne 0x180008130
mov rbp, rdi
sub rbp, rbx
sar rbp, 1
mov r15d, dword [rbx - 0x10]
test eax, eax
js 0x1800085bd
movsxd rdx, eax
mov rcx, rdi
call fcn.18000e100
mov r14, rax
mov ecx, 0x7fffffff
sub ecx, eax
cmp ecx, r15d
jl 0x1800085c8
lea esi, [rax + r15]
test esi, esi
js 0x1800085d3
mov ecx, r12d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, ecx
jge 0x180008198
mov edx, esi
lea rcx, [rsp + 0x70]
call fcn.180004d30
mov rbx, qword [rsp + 0x70]
cmp rbp, r15
ja 0x1800081a1
lea rdi, [rbx + rbp*2]
movsxd rdx, r14d
lea rcx, [rbx + r15*2]
mov r9d, r14d
mov r8, rdi
call fcn.180006410
cmp esi, dword [rbx - 0xc]
jg 0x1800086ba
mov dword [rbx - 0x10], esi
movsxd rax, esi
xor ecx, ecx
mov word [rbx + rax*2], cx
lea rdi, [0x180021a60]
mov rax, r13
inc rax
cmp word [rdi + rax*2], cx
jne 0x1800081d2
mov rbp, rdi
sub rbp, rbx
sar rbp, 1
mov r15d, dword [rbx - 0x10]
test eax, eax
js 0x1800085de
movsxd rdx, eax
mov rcx, rdi
call fcn.18000e100
mov r14, rax
mov ecx, 0x7fffffff
sub ecx, eax
cmp ecx, r15d
jl 0x1800085e9
lea esi, [rax + r15]
test esi, esi
js 0x1800085f4
mov ecx, r12d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, ecx
jge 0x18000823a
mov edx, esi
lea rcx, [rsp + 0x70]
call fcn.180004d30
mov rbx, qword [rsp + 0x70]
cmp rbp, r15
ja 0x180008243
lea rdi, [rbx + rbp*2]
movsxd rdx, r14d
lea rcx, [rbx + r15*2]
mov r9d, r14d
mov r8, rdi
call fcn.180006410
cmp esi, dword [rbx - 0xc]
jg 0x1800086af
mov dword [rbx - 0x10], esi
movsxd rax, esi
xor ecx, ecx
mov word [rbx + rax*2], cx
lea rdi, [0x180021a64]
mov rax, r13
inc rax
cmp word [rdi + rax*2], cx
jne 0x180008274
mov rbp, rdi
sub rbp, rbx
sar rbp, 1
mov r15d, dword [rbx - 0x10]
test eax, eax
js 0x1800085ff
movsxd rdx, eax
mov rcx, rdi
call fcn.18000e100
mov r14, rax
mov ecx, 0x7fffffff
sub ecx, eax
cmp ecx, r15d
jl 0x18000860a
lea esi, [rax + r15]
test esi, esi
js 0x180008615
mov ecx, r12d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, ecx
jge 0x1800082dc
mov edx, esi
lea rcx, [rsp + 0x70]
call fcn.180004d30
mov rbx, qword [rsp + 0x70]
cmp rbp, r15
ja 0x1800082e5
lea rdi, [rbx + rbp*2]
movsxd rdx, r14d
lea rcx, [rbx + r15*2]
mov r9d, r14d
mov r8, rdi
call fcn.180006410
cmp esi, dword [rbx - 0xc]
jg 0x1800086a4
mov dword [rbx - 0x10], esi
movsxd rax, esi
xor ecx, ecx
mov word [rbx + rax*2], cx
lea rdi, [0x180021a68]
mov rax, r13
inc rax
cmp word [rdi + rax*2], cx
jne 0x180008316
mov rbp, rdi
sub rbp, rbx
sar rbp, 1
mov r15d, dword [rbx - 0x10]
test eax, eax
js 0x180008620
movsxd rdx, eax
mov rcx, rdi
call fcn.18000e100
mov r14, rax
mov ecx, 0x7fffffff
sub ecx, eax
cmp ecx, r15d
jl 0x18000862b
lea esi, [rax + r15]
test esi, esi
js 0x180008636
mov ecx, r12d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, ecx
jge 0x18000837e
mov edx, esi
lea rcx, [rsp + 0x70]
call fcn.180004d30
mov rbx, qword [rsp + 0x70]
cmp rbp, r15
ja 0x180008387
lea rdi, [rbx + rbp*2]
movsxd rdx, r14d
lea rcx, [rbx + r15*2]
mov r9d, r14d
mov r8, rdi
call fcn.180006410
cmp esi, dword [rbx - 0xc]
jg 0x180008699
mov dword [rbx - 0x10], esi
movsxd rax, esi
xor ecx, ecx
mov word [rbx + rax*2], cx
lea rdi, [0x180021a6c]
mov rax, r13
nop dword [rax + rax]
inc rax
cmp word [rdi + rax*2], cx
jne 0x1800083c0
mov rbp, rdi
sub rbp, rbx
sar rbp, 1
mov r15d, dword [rbx - 0x10]
test eax, eax
js 0x180008641
movsxd rdx, eax
mov rcx, rdi
call fcn.18000e100
mov r14, rax
mov ecx, 0x7fffffff
sub ecx, eax
cmp ecx, r15d
jl 0x18000864c
lea esi, [rax + r15]
test esi, esi
js 0x180008657
mov ecx, r12d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, ecx
jge 0x180008428
mov edx, esi
lea rcx, [rsp + 0x70]
call fcn.180004d30
mov rbx, qword [rsp + 0x70]
cmp rbp, r15
ja 0x180008431
lea rdi, [rbx + rbp*2]
movsxd rdx, r14d
lea rcx, [rbx + r15*2]
mov r9d, r14d
mov r8, rdi
call fcn.180006410
cmp esi, dword [rbx - 0xc]
jg 0x18000868e
mov dword [rbx - 0x10], esi
movsxd rax, esi
xor ecx, ecx
mov word [rbx + rax*2], cx
lea rdi, [0x180021a74]
mov rax, r13
inc rax
cmp word [rdi + rax*2], cx
jne 0x180008462
mov rbp, rdi
sub rbp, rbx
sar rbp, 1
mov r15d, dword [rbx - 0x10]
test eax, eax
js 0x180008662
movsxd rdx, eax
mov rcx, rdi
call fcn.18000e100
mov r14, rax
mov eax, 0x7fffffff
sub eax, r14d
cmp eax, r15d
jl 0x18000866d
lea esi, [r14 + r15]
test esi, esi
js 0x180008678
sub r12d, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, r12d
jge 0x1800084ca
mov edx, esi
lea rcx, [rsp + 0x70]
call fcn.180004d30
mov rbx, qword [rsp + 0x70]
cmp rbp, r15
ja 0x1800084d3
lea rdi, [rbx + rbp*2]
movsxd rdx, r14d
lea rcx, [rbx + r15*2]
mov r9d, r14d
mov r8, rdi
call fcn.180006410
cmp esi, dword [rbx - 0xc]
jg 0x180008683
mov dword [rbx - 0x10], esi
movsxd rax, esi
xor ecx, ecx
mov word [rbx + rax*2], cx
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov edi, eax
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r13d
sub r13d, 1
jg 0x18000851f
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [r8 + 8]
mov eax, edi
mov rbx, qword [rsp + 0x80]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
nop
mov ecx, 0x80004005
call fcn.1800016f0
nop
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3
mov ecx, 0x80070057
call fcn.1800016f0
int3