Function at 0x495410
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 r13, rcx
mov r12d, edx
mov rbx, r8
cmp edx, 3
jne 0x4955b0
pxor xmm0, xmm0
mov ecx, 0x38
movups xmmword [rsp + 0x30], xmm0
test r8, r8
je 0x4955d0
call sym.operator_new_unsigned_long_long_
xor r10d, r10d
mov ecx, 0x18
movdqu xmm0, xmmword [0x00886470]
mov qword [rsp + 0x48], 0
mov r14, rax
lea rax, [rax + 0x10]
mov qword [r14], rax
mov qword [r14 + 8], 0
mov word [r14 + 0x10], r10w
mov qword [r14 + 0x30], 0
movups xmmword [r14 + 0x20], xmm0
mov qword [rsp + 0x40], r14
call sym.operator_new_unsigned_long_long_
mov qword [rax + 0x10], r14
mov r14, qword [rsp + 0x48]
movabs rdi, 0x100000001
lea rsi, method.boost::detail::sp_counted_impl_p_boost::filesystem::detail::dir_itr_imp_.sp_counted_impl_p__
mov qword [rax + 8], rdi
mov qword [rax], rsi
mov qword [rsp + 0x48], rax
test r14, r14
je 0x4954e0
lock sub dword [r14 + 8], 1
jne 0x4954e0
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x10]
lock sub dword [r14 + 0xc], 1
je 0x495868
nop dword [rax]
lea rsi, [rsp + 0x40]
mov r8, rbx
mov rdx, r13
mov rcx, rsi
call method.boost::filesystem::detail.directory_iterator_construct_boost::filesystem::directory_iterator__boost::filesystem::path_const__boost::system::error_code_
mov rax, qword [rsp + 0x48]
movq xmm0, qword [rsp + 0x40]
test rax, rax
je 0x495508
lock add dword [rax + 8], 1
mov r14, qword [rsp + 0x38]
movq xmm1, rax
punpcklqdq xmm0, xmm1
movups xmmword [rsp + 0x30], xmm0
test r14, r14
je 0x495540
lock sub dword [r14 + 8], 1
jne 0x495540
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x10]
lock sub dword [r14 + 0xc], 1
je 0x495890
nop dword [rax]
mov r14, qword [rsp + 0x48]
test r14, r14
je 0x495570
lock sub dword [r14 + 8], 1
jne 0x495570
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x10]
lock sub dword [r14 + 0xc], 1
je 0x4958b8
nop word [rax + rax]
mov r9d, dword [rbx]
mov r14d, 1
test r9d, r9d
je 0x4956e0
mov r12, qword [rsp + 0x38]
test r12, r12
je 0x495599
lock sub dword [r12 + 8], 1
je 0x4957c0
mov rax, r14
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r14d, 1
mov r8, rbx
mov edx, r12d
mov rcx, r13
call sym._anonymous_namespace_::remove_file_or_directory_boost::filesystem::path_const__boost::filesystem::file_type__boost::system::error_code_
jmp 0x495599
call sym.operator_new_unsigned_long_long_
mov r14, rax
xor r8d, r8d
lea rax, [rax + 0x10]
movdqu xmm0, xmmword [0x00886470]
mov qword [r14], rax
mov ecx, 0x18
mov qword [r14 + 8], 0
mov word [r14 + 0x10], r8w
mov qword [r14 + 0x30], 0
movups xmmword [r14 + 0x20], xmm0
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x48], 0
call sym.operator_new_unsigned_long_long_
movabs rdi, 0x100000001
mov qword [rax + 0x10], r14
mov r14, qword [rsp + 0x48]
mov qword [rax + 8], rdi
lea rdi, method.boost::detail::sp_counted_impl_p_boost::filesystem::detail::dir_itr_imp_.sp_counted_impl_p__
mov qword [rax], rdi
mov qword [rsp + 0x48], rax
test r14, r14
je 0x495653
lock sub dword [r14 + 8], 1
je 0x495978
lea rsi, [rsp + 0x40]
xor r8d, r8d
mov rdx, r13
mov rcx, rsi
call method.boost::filesystem::detail.directory_iterator_construct_boost::filesystem::directory_iterator__boost::filesystem::path_const__boost::system::error_code_
mov rax, qword [rsp + 0x48]
movq xmm0, qword [rsp + 0x40]
test rax, rax
je 0x49567b
lock add dword [rax + 8], 1
mov r14, qword [rsp + 0x38]
movq xmm2, rax
punpcklqdq xmm0, xmm2
movups xmmword [rsp + 0x30], xmm0
test r14, r14
je 0x49569f
lock sub dword [r14 + 8], 1
je 0x495940
mov r14, qword [rsp + 0x48]
test r14, r14
je 0x4956e0
lock sub dword [r14 + 8], 1
jne 0x4956e0
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x10]
lock sub dword [r14 + 0xc], 1
jne 0x4956e0
mov rax, qword [r14]
lea rcx, [method.boost::detail::sp_counted_base.destroy__]
mov rdx, qword [rax + 0x18]
cmp rdx, rcx
mov rcx, r14
jne 0x4959d5
call qword [rax + 8]
nop
lea rax, [rsp + 0x30]
mov r14d, 1
lea rbp, [0x009cc5f0]
mov qword [rsp + 0x28], rax
mov r15, qword [rsp + 0x30]
mov rax, qword [rbp]
cmp r15, rax
je 0x495810
test rax, rax
je 0x4957a8
test r15, r15
je 0x495910
test rax, rax
je 0x495800
mov rcx, qword [r15]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov edi, eax
cmp eax, 0xffffffff
je 0x495920
test rbx, rbx
je 0x49574c
mov dword [rbx], 0
call method.boost::system.system_category__
mov qword [rbx + 8], rax
test edi, 0x400
jne 0x4958e0
xor edx, edx
and edi, 0x10
setne dl
add edx, 2
test rbx, rbx
je 0x495772
mov ecx, dword [rbx]
test ecx, ecx
jne 0x495582
mov rcx, qword [rsp + 0x30]
mov r8, rbx
call sym._anonymous_namespace_::remove_all_aux_boost::filesystem::path_const__boost::filesystem::file_type__boost::system::error_code_
add r14, rax
test rbx, rbx
je 0x495791
mov eax, dword [rbx]
test eax, eax
jne 0x495582
mov rcx, qword [rsp + 0x28]
xor edx, edx
call method.boost::filesystem::detail.directory_iterator_increment_boost::filesystem::directory_iterator__boost::system::error_code_
jmp 0x4956f7
test r15, r15
je 0x495724
jmp 0x49571b
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x10]
lock sub dword [r12 + 0xc], 1
jne 0x495599
mov rax, qword [r12]
lea rcx, [method.boost::detail::sp_counted_base.destroy__]
mov rdx, qword [rax + 0x18]
cmp rdx, rcx
mov rcx, r12
jne 0x4959ab
call qword [rax + 8]
jmp 0x495599
cmp qword [r15 + 0x30], 0
jne 0x495724
nop dword [rax + rax]
mov r15, qword [rsp + 0x38]
test r15, r15
je 0x4955b6
lock sub dword [r15 + 8], 1
jne 0x4955b6
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x10]
lock sub dword [r15 + 0xc], 1
jne 0x4955b6
mov rax, qword [r15]
lea rcx, [method.boost::detail::sp_counted_base.destroy__]
mov rdx, qword [rax + 0x18]
cmp rdx, rcx
mov rcx, r15
jne 0x4959dc
call qword [rax + 8]
jmp 0x4955b6
mov rax, qword [r14]
lea rcx, [method.boost::detail::sp_counted_base.destroy__]
mov rdx, qword [rax + 0x18]
cmp rdx, rcx
mov rcx, r14
jne 0x4959b9
call qword [rax + 8]
jmp 0x4954e0
mov rax, qword [r14]
lea rcx, [method.boost::detail::sp_counted_base.destroy__]
mov rdx, qword [rax + 0x18]
cmp rdx, rcx
mov rcx, r14
jne 0x4959c0
call qword [rax + 8]
jmp 0x495540
mov rax, qword [r14]
lea rcx, [method.boost::detail::sp_counted_base.destroy__]
mov rdx, qword [rax + 0x18]
cmp rdx, rcx
mov rcx, r14
jne 0x4959b2
call qword [rax + 8]
jmp 0x495570
mov rcx, r15
call sym._anonymous_namespace_::is_reparse_point_a_symlink_boost::filesystem::path_const_
mov edx, 9
test al, al
je 0x495763
and edi, 0x10
cmp edi, 1
sbb edx, edx
and edx, 0xfffffff9
add edx, 0xb
jmp 0x495763
cmp qword [rax + 0x30], 0
jne 0x495724
jmp 0x495810
mov r8, rbx
mov rdx, r15
mov rcx, rsi
call sym._anonymous_namespace_::process_status_failure_boost::filesystem::path_const__boost::system::error_code_
mov edx, dword [rsp + 0x40]
jmp 0x495763
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x10]
lock sub dword [r14 + 0xc], 1
jne 0x49569f
mov rax, qword [r14]
lea rcx, [method.boost::detail::sp_counted_base.destroy__]
mov rdx, qword [rax + 0x18]
cmp rdx, rcx
mov rcx, r14
jne 0x4959c7
call qword [rax + 8]
jmp 0x49569f
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x10]
lock sub dword [r14 + 0xc], 1
jne 0x495653
mov rax, qword [r14]
lea rcx, [method.boost::detail::sp_counted_base.destroy__]
mov rdx, qword [rax + 0x18]
cmp rdx, rcx
mov rcx, r14
jne 0x4959ce
call qword [rax + 8]
jmp 0x495653
call rdx
jmp 0x495599
call rdx
jmp 0x495570
call rdx
jmp 0x4954e0
call rdx
jmp 0x495540
call rdx
jmp 0x49569f
call rdx
jmp 0x495653
call rdx
jmp 0x4956e0
call rdx
jmp 0x4955b6