Function at 0x10001bd90
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov rbp, r9
mov rsi, r8
mov r12, rdx
mov r13d, ecx
mov rcx, r9
call fcn.10001fe6c
mov r15d, 1
mov ebx, r15d
cmp r13d, r15d
jle 0x10001c7c6
lea r14, [r15 - 2]
movsxd rax, ebx
mov rdi, qword [r12 + rax*8]
cmp word [rdi], 0x2f
je 0x10001bdeb
cmp word [rdi], 0x2d
jne 0x10001c58d
add rdi, 2
mov dword [rsp + 0x28], r14d
lea rax, [0x1000040c8]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x10001bea8
cmp dword [rsi], 0
je 0x10001be53
cmp dword [rsi], 4
jne 0x10001be2f
add ebx, r15d
jmp 0x10001c57c
movsxd r9, dword [rsi]
lea rax, [0x100082790]
mov r9, qword [rax + r9*8]
mov r8, qword [0x1000827a0]
lea rdx, [0x1000040d0]
mov rcx, rbp
call fcn.10001fd30
add ebx, r15d
cmp ebx, r13d
je 0x10001c5c4
mov dword [rsi], 2
movsxd rax, ebx
mov rdx, qword [r12 + rax*8]
test rdx, rdx
jne 0x10001be75
xor ecx, ecx
jmp 0x10001be86
xor eax, eax
mov rcx, r14
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
sub rcx, r15
mov r8d, ecx
lea rcx, [rsi + 8]
call fcn.10001fae8
lea rcx, [rsi + 8]
call fcn.100032ac0
test al, al
je 0x10001c5aa
jmp 0x10001c57c
mov dword [rsp + 0x28], r14d
lea rax, [0x100004204]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x10001bf61
cmp dword [rsi], 0
je 0x10001bf0c
cmp dword [rsi], 4
jne 0x10001bee8
add ebx, r15d
jmp 0x10001c57c
movsxd r9, dword [rsi]
lea rax, [0x100082790]
mov r9, qword [rax + r9*8]
mov r8, qword [0x1000827a8]
lea rdx, [0x1000040d0]
mov rcx, rbp
call fcn.10001fd30
add ebx, r15d
cmp ebx, r13d
je 0x10001c608
mov dword [rsi], 3
movsxd rax, ebx
mov rdx, qword [r12 + rax*8]
test rdx, rdx
jne 0x10001bf2e
xor ecx, ecx
jmp 0x10001bf3f
xor eax, eax
mov rcx, r14
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
sub rcx, r15
mov r8d, ecx
lea rcx, [rsi + 8]
call fcn.10001fae8
lea rcx, [rsi + 8]
call fcn.100032ac0
test al, al
je 0x10001c5ee
jmp 0x10001c57c
mov dword [rsp + 0x28], r14d
lea rax, [0x100004278]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x10001bf94
mov dword [rsi + 0x20], r15d
jmp 0x10001c57c
mov dword [rsp + 0x28], r14d
lea rax, [0x100004280]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
je 0x10001c578
mov dword [rsp + 0x28], r14d
lea rax, [0x100004284]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
je 0x10001c578
mov dword [rsp + 0x28], r14d
lea rax, [0x100004288]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x10001c023
mov dword [rsi + 0x14], r15d
jmp 0x10001c57c
mov dword [rsp + 0x28], r14d
lea rax, [0x100004290]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x10001c056
mov dword [rsi + 0x1c], r15d
jmp 0x10001c57c
mov dword [rsp + 0x28], r14d
lea rax, [0x100004298]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x10001c089
mov dword [rsi + 0x24], r15d
jmp 0x10001c57c
mov dword [rsp + 0x28], r14d
lea rax, [0x10000429c]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x10001c0bc
mov dword [rsi + 0x28], r15d
jmp 0x10001c57c
mov dword [rsp + 0x28], r14d
lea rax, [0x1000042a0]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x10001c1e7
add ebx, r15d
cmp ebx, r13d
je 0x10001c6f3
movsxd rax, ebx
mov rdx, qword [r12 + rax*8]
test rdx, rdx
jne 0x10001c106
xor ecx, ecx
jmp 0x10001c117
xor eax, eax
mov rcx, r14
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
sub rcx, r15
mov r8d, ecx
lea rcx, [rsi + 0x30]
call fcn.10001fae8
lea rcx, [0x100082100]
mov rax, qword [0x100082100]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
lea rcx, [0x100082100]
mov rax, qword [0x100082100]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x38], rax
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x30]
lea rcx, [rsi + 0x30]
call fcn.1000325f8
lea rcx, [rsi + 0x30]
call fcn.100032ac0
test al, al
jne 0x10001c695
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x10001c632
shr eax, 4
and al, r15b
je 0x10001c632
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x10001c1bd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x10001c57c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x10001c57c
mov dword [rsp + 0x28], r14d
lea rax, [0x1000043e4]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x10001c21a
mov dword [rsi + 0x38], r15d
jmp 0x10001c57c
mov dword [rsp + 0x28], r14d
lea rax, [0x1000043ec]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x10001c24d
mov dword [rsi + 0x3c], r15d
jmp 0x10001c57c
mov dword [rsp + 0x28], r14d
lea rax, [0x1000043f4]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
je 0x10001c572
mov dword [rsp + 0x28], r14d
lea rax, [0x1000043f8]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
je 0x10001c572
mov dword [rsp + 0x28], r14d
lea rax, [0x100004400]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x10001c330
add ebx, r15d
cmp ebx, r13d
je 0x10001c737
movsxd rax, ebx
mov rdx, qword [r12 + rax*8]
test rdx, rdx
jne 0x10001c2ef
xor ecx, ecx
jmp 0x10001c300
xor eax, eax
mov rcx, r14
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
sub rcx, r15
mov r8d, ecx
lea rcx, [rsi + 0x48]
call fcn.10001fae8
mov rcx, qword [rsi + 0x48]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x10001c71d
shr eax, 4
and al, r15b
je 0x10001c71d
jmp 0x10001c57c
mov dword [rsp + 0x28], r14d
lea rax, [0x100004484]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x10001c37b
add ebx, r15d
cmp ebx, r13d
je 0x10001c75e
movsxd rcx, ebx
mov rcx, qword [r12 + rcx*8]
call fcn.1000324f4
mov word [rsi + 0x10], ax
jmp 0x10001c57c
mov dword [rsp + 0x28], r14d
lea rax, [0x1000044ec]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x10001c3b1
mov dword [rsi + 0x54], 0
jmp 0x10001c57c
mov dword [rsp + 0x28], r14d
lea rax, [0x1000044f0]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x10001c3e4
mov dword [rsi + 0x50], r15d
jmp 0x10001c57c
mov dword [rsp + 0x28], r14d
lea rax, [0x1000044f8]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x10001c417
mov dword [rsi + 0x58], r15d
jmp 0x10001c57c
mov dword [rsp + 0x28], r14d
lea rax, [0x1000044fc]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x10001c44a
mov dword [rsi + 0x5c], r15d
jmp 0x10001c57c
mov dword [rsp + 0x28], r14d
lea rax, [0x100004500]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x10001c4b5
add ebx, r15d
cmp ebx, r13d
je 0x10001c785
movsxd rax, ebx
mov rdx, qword [r12 + rax*8]
test rdx, rdx
jne 0x10001c490
xor eax, eax
jmp 0x10001c4a4
xor eax, eax
mov rcx, r14
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
sub rcx, r15
mov rax, rcx
lea rcx, [rsi + 0x60]
mov r8d, eax
call fcn.10001fae8
jmp 0x10001c57c
mov dword [rsp + 0x28], r14d
lea rax, [0x100004538]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x10001c4e8
mov dword [rsi + 0x68], r15d
jmp 0x10001c57c
mov dword [rsp + 0x28], r14d
lea rax, [0x100004540]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
je 0x10001c56a
mov dword [rsp + 0x28], r14d
lea rax, [0x100004544]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
je 0x10001c56a
mov dword [rsp + 0x28], r14d
lea rax, [0x100004548]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rdi
mov edx, r15d
mov ecx, 0x409
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x10001c7ac
mov dword [rsi], 4
jmp 0x10001c57c
mov dword [rsi + 0x40], r15d
jmp 0x10001c57c
mov dword [rsi + 0x18], r15d
add ebx, r15d
cmp ebx, r13d
jge 0x10001c7c6
jmp 0x10001bdd4
movsxd r8, ebx
mov r8, qword [r12 + r8*8]
lea rdx, [0x100004560]
mov rcx, rbp
call fcn.10001fd30
xor eax, eax
jmp 0x10001c7c9
mov r8, qword [rsi + 8]
lea rdx, [0x1000041d8]
mov rcx, rbp
call fcn.10001fd30
xor eax, eax
jmp 0x10001c7c9
xor eax, eax
mov rcx, r14
lea rdx, [0x100004170]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
sub rcx, r15
mov r8d, ecx
mov rcx, rbp
call fcn.10001fae8
xor eax, eax
jmp 0x10001c7c9
mov r8, qword [rsi + 8]
lea rdx, [0x100003a90]
mov rcx, rbp
call fcn.10001fd30
xor eax, eax
jmp 0x10001c7c9
xor eax, eax
mov rcx, r14
lea rdx, [0x100004210]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
sub rcx, r15
mov r8d, ecx
mov rcx, rbp
call fcn.10001fae8
xor eax, eax
jmp 0x10001c7c9
mov r9, qword [rsi + 0x30]
mov r8, qword [rsp + 0x30]
lea rdx, [0x1000043a0]
mov rcx, rbp
call fcn.10001fd30
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x10001c66d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x10001c68e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x10001c7c9
mov r8, qword [rsi + 0x30]
lea rdx, [0x100004300]
mov rcx, rbp
call fcn.10001fd30
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x10001c6cb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x10001c6ec
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x10001c7c9
xor eax, eax
mov rcx, r14
lea rdx, [0x1000042b0]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
sub rcx, r15
mov r8d, ecx
mov rcx, rbp
call fcn.10001fae8
xor eax, eax
jmp 0x10001c7c9
mov r8, qword [rsi + 0x48]
lea rdx, [0x100004458]
mov rcx, rbp
call fcn.10001fd30
xor eax, eax
jmp 0x10001c7c9
xor eax, eax
mov rcx, r14
lea rdx, [0x100004410]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
sub rcx, r15
mov r8d, ecx
mov rcx, rbp
call fcn.10001fae8
xor eax, eax
jmp 0x10001c7c9
xor eax, eax
mov rcx, r14
lea rdx, [0x100004490]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
sub rcx, r15
mov r8d, ecx
mov rcx, rbp
call fcn.10001fae8
xor eax, eax
jmp 0x10001c7c9
xor eax, eax
mov rcx, r14
lea rdx, [0x100004518]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
sub rcx, r15
mov r8d, ecx
mov rcx, rbp
call fcn.10001fae8
xor eax, eax
jmp 0x10001c7c9
movsxd r8, ebx
mov r8, qword [r12 + r8*8]
lea rdx, [0x100004560]
mov rcx, rbp
call fcn.10001fd30
xor eax, eax
jmp 0x10001c7c9
mov eax, r15d
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret