Function at 0x1400a0160
Capabilities:
Check if file exists

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x20]
sub rsp, 0x120
mov qword [rbp - 0x58], 0xfffffffffffffffe
mov qword [rsp + 0x160], rbx
mov r14, rdx
mov r12, rcx
xor r13d, r13d
mov ebx, r13d
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x1400a027b
lea rdx, [0x1400db530]
lea rcx, [rbp - 0x80]
call fcn.14008f000
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov r15, rax
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
or rdi, 0xffffffffffffffff
mov ecx, edi
lock xadd dword [rdx + 0x10], ecx
lea rsi, [0x1400de840]
sub ecx, 1
jg 0x1400a0206
mov r8, qword [rdx]
mov rcx, qword [r8]
mov rax, qword [rcx + 8]
cmp rcx, rsi
jne 0x1400a0201
mov rcx, qword [r8 + 8]
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1400a0206
mov rcx, r8
call rax
test r15, r15
je 0x1400a027b
lea rdx, [0x1400db550]
lea rcx, [rbp - 0x78]
call fcn.14008f000
mov rdx, qword [rax]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400f1cd8], rax
mov rdx, qword [rbp - 0x78]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400a0269
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x1400a0266
mov rcx, qword [rcx + 8]
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1400a0269
call r8
cmp qword [0x1400f1cd8], rbx
jne 0x1400a0282
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
jmp 0x1400a0566
call fcn.14009d000
mov dword [rbp - 0x50], r13d
xor edx, edx
lea r8d, [rdx + 0x60]
lea rcx, [rbp - 0x48]
call fcn.1400572a0
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x70], r13
mov dword [rbp + 0x70], r13d
mov qword [rsp + 0x78], r13
mov qword [rbp - 0x70], r13
xor eax, eax
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x60], rax
call fcn.14009a000
lea rdx, [rsp + 0x60]
mov ecx, eax
call qword [sym.imp.WTSAPI32.dll_WTSQueryUserToken]
test eax, eax
je 0x1400a055b
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x1400a055b
mov qword [rsp + 0x68], r13
lea rax, [rbp + 0x70]
mov qword [rsp + 0x20], rax
mov r9d, 8
lea r8, [rsp + 0x70]
lea edx, [r9 + 0xb]
call qword [sym.imp.ADVAPI32.dll_GetTokenInformation]
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x70]
test rax, rax
cmovne rcx, rax
lea rax, [rsp + 0x68]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 1
mov r9d, 2
xor r8d, r8d
mov edx, 0x2000000
call qword [sym.imp.ADVAPI32.dll_DuplicateTokenEx]
test eax, eax
je 0x1400a0546
xor r8d, r8d
mov rdx, qword [rsp + 0x70]
lea rcx, [rsp + 0x78]
call qword [0x1400f1cd8]
test eax, eax
je 0x1400a0521
mov esi, r13d
mov rax, rdi
inc rax
cmp byte [r14 + rax], bl
jne 0x1400a0366
test rax, rax
je 0x1400a04e6
mov dword [rbp - 0x50], 0x68
mov dword [rbp - 0x14], 1
mov word [rbp - 0x10], r13w
nop dword [rax + rax]
mov rdx, r14
lea rcx, [rbp + 0x78]
call fcn.14000bac0
nop
mov r8, qword [rbp + 0x78]
mov ecx, 1
sub ecx, dword [r8 - 8]
mov eax, dword [r8 - 0xc]
sub eax, 0x104
or eax, ecx
jge 0x1400a03c9
mov edx, 0x104
lea rcx, [rbp + 0x78]
call fcn.14000bef0
mov r8, qword [rbp + 0x78]
lea rax, [rbp - 0x70]
mov qword [rsp + 0x50], rax
lea rax, [rbp - 0x50]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], r13
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], 0x480
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r13
xor r9d, r9d
mov rdx, r12
mov rcx, qword [rsp + 0x68]
call qword [0x1400f1d08]
mov esi, eax
mov rcx, qword [rbp + 0x78]
movsxd rdx, dword [rcx - 0xc]
call fcn.14005a4dc
mov rcx, rax
test eax, eax
js 0x1400a04db
mov rax, qword [rbp + 0x78]
cmp ecx, dword [rax - 0xc]
jg 0x1400a04db
mov dword [rax - 0x10], ecx
movsxd rcx, ecx
mov rax, qword [rbp + 0x78]
mov byte [rcx + rax], 0
mov ecx, reloc.WLDAP32.dll_Ordinal_200
call qword [sym.imp.KERNEL32.dll_Sleep]
nop
mov rdx, qword [rbp + 0x78]
add rdx, 0xffffffffffffffe8
test esi, esi
jne 0x1400a04a1
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400a0494
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea r9, [0x1400de840]
cmp rax, r9
jne 0x1400a0491
mov rcx, qword [rcx + 8]
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1400a0494
call r8
inc ebx
cmp ebx, 0x32
jl 0x1400a0390
jmp 0x1400a04e6
lock xadd dword [rdx + 0x10], edi
sub edi, 1
jg 0x1400a04e6
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea r9, [0x1400de840]
cmp rax, r9
jne 0x1400a04d6
mov rcx, qword [rcx + 8]
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1400a04e6
call r8
jmp 0x1400a04e6
mov ecx, 0x80070057
call fcn.14000c2c0
nop
mov ebx, r13d
test esi, esi
setne bl
mov rcx, qword [rbp - 0x70]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x1400a0502
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbp - 0x68]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x1400a0516
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, 0x7d0
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x1400a0531
call qword [sym.imp.USERENV.dll_DestroyEnvironmentBlock]
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x1400a0546
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rsp + 0x68], r13
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x1400a055b
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rsp + 0x60], r13
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, ebx
mov rbx, qword [rsp + 0x160]
add rsp, 0x120
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret