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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov qword [rsp + 0x48], 0
mov rbx, rcx
mov rdi, r8
mov ebp, r9d
test byte [rcx + 0x58], 4
jne 0x1400a4d10
mov qword [rcx + 0xe8], rdx
mov rcx, r8
call fcn.14009f8c0
mov qword [rbx + 0x60], rax
test rax, rax
je 0x1400a4cd5
mov eax, dword [rbx + 0x58]
test al, 4
je 0x1400a4a28
mov r9d, 0xffffffff
mov r8, rdi
xor edx, edx
mov ecx, 0xfde9
mov dword [rsp + 0x28], 0
mov r13, qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov qword [rsp + 0x20], 0
call r13
lea esi, [rax + rax]
movsxd rsi, esi
mov rcx, rsi
call fcn.14009f970
mov r12, rax
test rax, rax
je 0x1400a4cd5
shr rsi, 1
xor edx, edx
mov qword [rsp + 0x20], rax
mov r9d, 0xffffffff
mov dword [rsp + 0x28], esi
mov r8, rdi
mov ecx, 0xfde9
call r13
test eax, eax
je 0x1400a4b00
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1400a4ca0
shr eax, 4
xor r8d, r8d
xor edx, edx
mov rcx, r12
and eax, 1
mov esi, eax
je 0x1400a4a48
mov r14, qword [sym.imp.KERNEL32.dll_GetLongPathNameW]
mov r13, r12
call r14
mov edi, eax
test eax, eax
jne 0x1400a4c50
mov rcx, r12
xor r9d, r9d
mov r8d, 7
xor r14d, r14d
mov qword [rsp + 0x30], 0
mov edx, 1
mov dword [rsp + 0x28], 0x42000000
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rbx + 0xd8], rax
mov rcx, rax
cmp rcx, 0xffffffffffffffff
je 0x1400a4c90
mov rax, qword [rbx + 8]
xor r9d, r9d
mov r8, rbx
mov rdx, qword [rax + 0x38]
call qword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
test rax, rax
je 0x1400a4c90
mov rdx, qword [rbx + 0x108]
test rdx, rdx
je 0x1400a4cb8
mov r9d, ebp
lea rax, [rbx + 0xa8]
mov qword [rbx + 0xa8], 0
mov rcx, qword [rbx + 0xd8]
shr r9d, 2
mov qword [rsp + 0x30], rax
mov r8d, 0x1000
and r9d, 1
mov qword [rbx + 0xb0], 0
mov qword [rbx + 0xb8], 0
mov qword [rbx + 0xc0], 0
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x17f
call qword [sym.imp.KERNEL32.dll_ReadDirectoryChangesW]
test eax, eax
je 0x1400a4c90
test esi, esi
jne 0x1400a4b20
test r13, r13
je 0x1400a4a01
mov r8d, 0x14a
lea rdx, str.src_win_fs_event.c
lea rcx, str.is_path_dir___pathw___NULL_:_pathw__NULL
call qword [sym.imp.msvcrt.dll__assert]
mov qword [rbx + 0x100], r13
xor eax, eax
mov dword [rbx + 0xe0], 1
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, eax
or edx, 4
mov dword [rbx + 0x58], edx
test al, 8
je 0x1400a4843
mov rax, qword [rbx + 8]
add dword [rax + 8], 1
jmp 0x1400a4843
mov r13, qword [sym.imp.KERNEL32.dll_GetShortPathNameW]
lea r15, [rbx + 0xf0]
call r13
mov edi, eax
test eax, eax
jne 0x1400a4b30
lea rdx, [rsp + 0x48]
mov r8, r15
mov rcx, r12
xor r14d, r14d
call fcn.1400a4600
test eax, eax
jne 0x1400a4b87
mov qword [rbx + 0xf8], 0
xor r14d, r14d
mov r13, qword [rsp + 0x48]
mov rcx, r12
call fcn.14009f990
mov dword [rsp + 0x28], 0x42000000
xor r9d, r9d
mov r8d, 7
mov rcx, r13
mov dword [rsp + 0x20], 3
mov edx, 1
mov qword [rsp + 0x30], 0
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rbx + 0xd8], rax
mov rcx, rax
test r13, r13
je 0x1400a492b
mov rcx, r13
xor r13d, r13d
call fcn.14009f990
mov rcx, qword [rbx + 0xd8]
mov qword [rsp + 0x48], 0
jmp 0x1400a492b
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.1400a4200
test r13, r13
jne 0x1400a4a01
jmp 0x1400a49e7
mov ecx, eax
add rcx, rcx
call fcn.14009f970
mov r14, rax
test rax, rax
je 0x1400a4a63
mov r8d, edi
mov rdx, rax
mov rcx, r12
call r13
test eax, eax
je 0x1400a4d00
lea rdx, [rsp + 0x48]
mov r8, r15
mov rcx, r12
call fcn.1400a4600
test eax, eax
jne 0x1400a4b87
xor edx, edx
lea r8, [rbx + 0xf8]
mov rcx, r14
call fcn.1400a4600
test eax, eax
je 0x1400a4a8c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r13, r12
mov r15d, eax
mov rcx, qword [rbx + 0x60]
test rcx, rcx
je 0x1400a4ba9
call fcn.14009f990
mov qword [rbx + 0x60], 0
mov rcx, qword [rbx + 0xf0]
test rcx, rcx
je 0x1400a4bc5
call fcn.14009f990
mov qword [rbx + 0xf0], 0
mov rcx, qword [rbx + 0xf8]
test rcx, rcx
je 0x1400a4be1
call fcn.14009f990
mov qword [rbx + 0xf8], 0
mov rcx, r13
call fcn.14009f990
mov rcx, qword [rbx + 0xd8]
cmp rcx, 0xffffffffffffffff
je 0x1400a4c07
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx + 0xd8], 0xffffffffffffffff
mov rcx, qword [rbx + 0x108]
test rcx, rcx
je 0x1400a4c23
call fcn.14009f990
mov qword [rbx + 0x108], 0
mov eax, dword [rbx + 0x58]
test al, 4
je 0x1400a4c3e
mov edx, eax
and edx, 0xfffffffb
mov dword [rbx + 0x58], edx
test al, 8
je 0x1400a4c3e
mov rax, qword [rbx + 8]
sub dword [rax + 8], 1
mov rcx, r14
call fcn.14009f990
mov ecx, r15d
jmp 0x1400a4b08
movsxd rcx, eax
add rcx, rcx
call fcn.14009f970
mov r13, rax
test rax, rax
je 0x1400a4cd5
mov r8d, edi
mov rdx, rax
mov rcx, r12
call r14
test eax, eax
je 0x1400a4cf0
cdqe
xor edx, edx
mov rcx, r12
mov r12, r13
mov word [r13 + rax*2], dx
call fcn.14009f990
jmp 0x1400a48ee
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r15d, eax
jmp 0x1400a4b93
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r13, r12
xor r14d, r14d
mov r15d, eax
jmp 0x1400a4b93
mov ecx, 0x1000
call fcn.14009f970
mov qword [rbx + 0x108], rax
mov rdx, rax
test rax, rax
jne 0x1400a4962
lea rdx, [0x14029d520]
mov ecx, 0xe
call fcn.1400a4140
nop word cs:[rax + rax]
mov rcx, r13
mov r13, r12
call fcn.14009f990
jmp 0x1400a48ee
mov rcx, r14
call fcn.14009f990
jmp 0x1400a4a63
mov eax, 0xfffff019
jmp 0x1400a4a14