Function at 0x18001bc38
Capabilities:
Check if file exists

Disassembly:
mov rax, rsp
mov word [rax + 0x20], r9w
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov qword [rbp - 8], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov r12, r8
mov rsi, rdx
mov r15, rcx
xor r13d, r13d
mov dword [rbp - 0x4c], r13d
call fcn.18000a7ac
mov rcx, rax
test rax, rax
je 0x18001c311
mov rax, qword [rax]
call qword [rax + ILCombine]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x58], rbx
test rsi, rsi
jne 0x18001bcc1
mov rcx, r12
call fcn.1800055b8
lea rdx, [rbp - 0x58]
mov rcx, r15
call fcn.1800053f4
mov dword [rbp - 0x4c], 1
lea rdx, [rbx - 0x18]
or rdi, 0xffffffffffffffff
jmp 0x18001c2d2
mov r8d, 5
lea rdx, [0x18008d108]
mov rcx, rsi
call qword [sym.imp.msvcrt.dll__wcsnicmp]
mov ecx, 0x5c
test eax, eax
jne 0x18001bcf5
add rsi, 0xa
cmp word [rsi], cx
je 0x18001bcef
cmp word [rsi], 0x2f
jne 0x18001bcf5
add rsi, 2
jmp 0x18001bce4
cmp word [rsi], r13w
jne 0x18001bd18
mov rcx, r12
call fcn.1800055b8
lea rdx, [rbp - 0x58]
mov rcx, r15
call fcn.1800053f4
mov dword [rbp - 0x4c], 1
jmp 0x18001bcb4
or rdi, 0xffffffffffffffff
mov rax, rdi
inc rax
cmp word [rsi + rax*2], r13w
jne 0x18001bd1f
mov qword [rbp - 0x10], rax
mov rdx, rsi
lea rcx, [rbp - 0x60]
call fcn.180005348
nop
lea rdx, str._r_n_t__
lea rcx, [rbp - 0x60]
call fcn.18002ff84
lea rcx, [rbp - 0x60]
call fcn.180004c44
mov rax, qword [rbp - 0x60]
mov edx, dword [rax - 0x10]
test edx, edx
jne 0x18001bd9d
mov rcx, r12
call fcn.1800055b8
lea rdx, [rbp - 0x58]
mov rcx, r15
call fcn.1800053f4
mov dword [rbp - 0x4c], 1
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x18001bd98
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x18001c2ca
add edx, 1
js 0x18001c306
mov r8d, 1
sub r8d, dword [rax - 8]
mov ecx, dword [rax - 0xc]
sub ecx, edx
or ecx, r8d
jge 0x18001bdc7
lea rcx, [rbp - 0x60]
call fcn.180005a38
mov rax, qword [rbp - 0x60]
mov r14, rax
mov qword [rbp - 0x40], r13
mov ecx, 0x22
cmp word [rax], cx
jne 0x18001be5e
lea r14, [rax + 2]
mov edx, ecx
mov rcx, r14
call qword [sym.imp.msvcrt.dll_wcschr]
test rax, rax
je 0x18001c086
xor ebx, ebx
mov word [rax], bx
lea r13, [rax + 2]
lea edx, [rbx + 0x5c]
mov rcx, r14
call qword [sym.imp.msvcrt.dll_wcschr]
test rax, rax
jne 0x18001be31
mov rdx, r14
lea rcx, [rbp - 0x30]
call fcn.18001ba14
nop
mov rdx, rax
lea rcx, [rbp - 0x58]
call fcn.18000525c
nop
mov rdx, qword [rbp - 0x30]
jmp 0x18001bfaa
test r14, r14
jne 0x18001be3a
mov eax, ebx
jmp 0x18001be47
mov rax, rdi
inc rax
cmp word [r14 + rax*2], bx
jne 0x18001be3d
mov r8d, eax
mov rdx, r14
lea rcx, [rbp - 0x58]
call fcn.180005498
xor r14d, r14d
jmp 0x18001bfc7
xor r9d, r9d
mov r8d, r9d
mov qword [rbp - 0x38], r9
movzx edx, r9w
movsxd rcx, dword [rax - 0x10]
lea rbx, [rax + rcx*2]
cmp rbx, r14
jb 0x18001bf88
movsxd rcx, dword [rax - 0x10]
lea r13, [r14 + rcx*2]
movzx ecx, word [rbp + 0x58]
cmp word [rbx], cx
jne 0x18001be9a
mov r8d, 0x5c
cmp dx, r8w
jne 0x18001bea3
cmp rbx, r13
jne 0x18001bf6c
movzx eax, word [rbx]
mov word [rbp - 0x50], ax
mov qword [rbp - 0x38], rbx
lea rax, [rbx + 2]
cmp rbx, r13
cmove rax, rbx
mov qword [rbp - 0x40], rax
je 0x18001bec3
mov word [rbx], r9w
mov rcx, r14
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
xor ecx, ecx
test eax, eax
jne 0x18001c02f
mov rdx, r14
lea rcx, [rbp - 0x48]
call fcn.180005348
nop
lea r8, [0x18008ad94]
lea rdx, [0x18008d154]
lea rcx, [rbp - 0x48]
call fcn.180004d74
xor r9d, r9d
test eax, eax
je 0x18001bf35
lea r8, [0x18008ad94]
lea rdx, [0x18008d154]
lea rcx, [rbp - 0x48]
call fcn.180004d74
test eax, eax
jne 0x18001bf01
mov r15, qword [rbp + 0x40]
mov rcx, qword [rbp - 0x48]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
xor r9d, r9d
test eax, eax
jne 0x18001bfe7
mov rdx, qword [rbp - 0x48]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x18001bf56
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor r9d, r9d
movzx edx, word [rbp - 0x50]
cmp rbx, r13
je 0x18001bf66
movzx eax, word [rbp + 0x58]
mov word [rbx], ax
mov rax, qword [rbp - 0x60]
jmp 0x18001bf73
cmp word [rbx], cx
cmovne dx, word [rbx]
sub rbx, 2
cmp rbx, r14
jae 0x18001be7d
mov r13, qword [rbp - 0x40]
mov r8, qword [rbp - 0x38]
mov word [r8], r9w
mov rdx, r14
lea rcx, [rbp - 0x28]
call fcn.18001ba14
nop
mov rdx, rax
lea rcx, [rbp - 0x58]
call fcn.18000525c
nop
mov rdx, qword [rbp - 0x28]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
xor r14d, r14d
add eax, edi
test eax, eax
jg 0x18001bfc7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rbp - 0x58]
mov eax, r14d
cmp dword [rbx - 0x10], r14d
setne al
test eax, eax
je 0x18001c089
test r13, r13
jne 0x18001c058
mov eax, r14d
jmp 0x18001c066
mov rax, rdi
inc rax
cmp word [r14 + rax*2], r9w
jne 0x18001bfea
mov r8d, eax
mov rdx, r14
lea rcx, [rbp - 0x58]
call fcn.180005498
nop
mov rdx, qword [rbp - 0x48]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
xor r14d, r14d
test eax, eax
jg 0x18001c025
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rbp - 0x58]
mov r13, qword [rbp - 0x40]
jmp 0x18001bfdd
mov rax, rdi
inc rax
cmp word [r14 + rax*2], cx
jne 0x18001c032
mov r8d, eax
mov rdx, r14
lea rcx, [rbp - 0x58]
call fcn.180005498
mov rbx, qword [rbp - 0x58]
mov r13, qword [rbp - 0x40]
xor r14d, r14d
jmp 0x18001bfdd
mov rax, rdi
inc rax
cmp word [r13 + rax*2], r14w
jne 0x18001c05b
mov r8d, eax
mov rdx, r13
mov rcx, r12
call fcn.180005498
mov rcx, r12
call fcn.180004b34
mov rcx, r12
call fcn.180004c44
jmp 0x18001c089
xor r14d, r14d
cmp dword [rbx - 0x10], r14d
jne 0x18001c271
mov rax, rdi
inc rax
cmp word [rsi + rax*2], r14w
jne 0x18001c096
mov r8d, eax
mov rdx, rsi
lea rcx, [rbp - 0x60]
call fcn.180005498
lea rdx, str._r_n_t__
lea rcx, [rbp - 0x60]
call fcn.18002ff84
lea rcx, [rbp - 0x60]
call fcn.180004c44
cmp word [rbp + 0x58], 0x20
jne 0x18001c135
mov rcx, qword [rbp - 0x60]
cmp dword [rcx - 0x10], r14d
jle 0x18001c139
mov ebx, 0x2c
mov edx, ebx
call qword [sym.imp.msvcrt.dll_wcschr]
test rax, rax
je 0x18001c135
mov rcx, qword [rbp - 0x60]
sub rax, rcx
sar rax, 1
cmp eax, edi
je 0x18001c139
mov r9d, ebx
mov r8, r12
mov rdx, rsi
mov rcx, r15
call fcn.18001bc38
mov dword [rbp - 0x4c], 1
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x18001c130
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x18001c2ca
mov rcx, qword [rbp - 0x60]
mov ebx, 0x22
cmp word [rcx], bx
jne 0x18001c192
lea rdx, [rcx + 2]
test rdx, rdx
jne 0x18001c151
mov eax, r14d
jmp 0x18001c15e
mov rax, rdi
inc rax
cmp word [rdx + rax*2], r14w
jne 0x18001c154
mov r8d, eax
lea rcx, [rbp - 0x60]
call fcn.180005498
mov rcx, qword [rbp - 0x60]
cmp dword [rcx - 0x10], r14d
jle 0x18001c192
mov edx, ebx
call qword [sym.imp.msvcrt.dll_wcschr]
mov rbx, rax
mov rcx, qword [rbp - 0x60]
test rax, rax
je 0x18001c192
sub rbx, rcx
sar rbx, 1
cmp ebx, edi
jne 0x18001c1b9
lea rdx, [0x18008d15c]
call qword [sym.imp.msvcrt.dll_wcspbrk]
test rax, rax
je 0x18001c245
sub rax, qword [rbp - 0x60]
sar rax, 1
mov ebx, eax
cmp eax, edi
je 0x18001c245
mov r8d, ebx
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x60]
call fcn.180017698
nop
mov rdx, rax
lea rcx, [rbp - 0x58]
call fcn.18000525c
nop
mov rdx, qword [rbp - 0x20]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x18001c1f5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rbp - 0x60]
mov r8d, dword [rax - 0x10]
sub r8d, ebx
dec r8d
lea rdx, [rbp - 0x18]
lea rcx, [rbp - 0x60]
call fcn.18002fed0
nop
mov rdx, rax
mov rcx, r12
call fcn.18000525c
nop
mov rdx, qword [rbp - 0x18]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x18001c23b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, r12
call fcn.180004b34
jmp 0x18001c271
lea rdx, [rbp - 0x60]
lea rcx, [rbp - 0x58]
call fcn.18000525c
lea rdx, [0x18008ad98]
mov rax, rdi
inc rax
cmp word [rdx + rax*2], r14w
jne 0x18001c25c
mov r8d, eax
mov rcx, r12
call fcn.180005498
lea rcx, [rbp - 0x58]
call fcn.180004b34
lea rcx, [rbp - 0x58]
call fcn.180004c44
mov rax, qword [r12]
mov rcx, qword [rbp - 0x10]
cmp dword [rax - 0x10], ecx
jl 0x18001c298
mov rcx, r12
call fcn.1800055b8
lea rdx, [rbp - 0x58]
mov rcx, r15
call fcn.1800053f4
mov dword [rbp - 0x4c], 1
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x18001c2ca
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x58]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x18001c2e8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, r15
mov rbx, qword [rsp + 0xc8]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80070057
call fcn.18000a540
nop
mov ecx, 0x80004005
call fcn.18000a540
int3