Function at 0x494950
Capabilities:
Check if file exists

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x358
mov r13, rcx
xor ecx, ecx
cmp qword [rdx + 8], 0
mov r12, rdx
mov r14, r8
jne 0x49497b
mov ecx, dword [0x009cc580]
lea r9, str.boost::filesystem::directory_iterator::construct
mov r8, r14
mov rdx, r12
call sym._anonymous_namespace_::error_unsigned_long__boost::filesystem::path_const__boost::system::error_code__char_const_
test al, al
je 0x4949a8
add rsp, 0x358
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [rsp + 0x90]
xor edi, edi
mov rbx, qword [r12]
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x80], rax
lea rax, [rsp + 0xa0]
mov word [rsp + 0x90], di
lea rdi, [rsp + 0xb0]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0xa0], rdi
test rbx, rbx
je 0x494cb0
mov rcx, rbx
call sym.wcslen
lea rbp, [rax + rax]
mov rdx, rbp
sar rdx, 1
mov qword [rsp + 0x100], rdx
mov rcx, rdx
cmp rdx, 7
ja 0x494dc0
mov r15, qword [rsp + 0xa0]
cmp rdx, 1
jne 0x494cc0
movzx edx, word [rbx]
xor esi, esi
lea rbx, [rsp + 0xd0]
mov word [r15], dx
mov qword [rsp + 0xa8], 1
mov word [r15 + rax*2], si
mov rsi, qword [r13]
mov qword [rsp + 0xc0], rbx
mov rax, rbp
sar rax, 1
mov qword [rsp + 0x100], rax
mov rdx, rax
cmp rax, 7
ja 0x494d50
cmp rax, 1
jne 0x494d08
movzx eax, word [r15]
xor r11d, r11d
mov qword [rsp + 0xc8], 1
mov word [rsp + 0xd0], ax
mov rax, rbx
mov word [rsp + rbp + 0xd0], r11w
movzx eax, word [rax + rdx*2 - 2]
sub eax, 0x2f
cmp ax, 0x2d
ja 0x494d27
movabs rdx, 0x200000000801
bt rdx, rax
jae 0x494d27
lea r15, [0x00886220]
mov rcx, r15
call sym.wcslen
mov r8, rax
movabs rax, 0x1fffffffffffffff
sub rax, qword [rsp + 0xc8]
cmp r8, rax
ja 0x495315
lea rax, [rsp + 0xc0]
mov rdx, r15
mov rcx, rax
mov qword [rsp + 0x50], rax
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___._M_append_wchar_t_const__unsigned_long_long_
lea rax, [rsp + 0x100]
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0x48], rax
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov qword [rsi + 0x30], rax
cmp rax, 0xffffffffffffffff
je 0x494e20
lea r15, [rsp + 0x12c]
mov rcx, r15
call sym.wcslen
mov r8, qword [rsp + 0x88]
mov r9, r15
xor edx, edx
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x80]
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___._M_replace_unsigned_long_long__unsigned_long_long__wchar_t_const__unsigned_long_long_
mov esi, dword [rsp + 0x100]
test esi, 0x400
jne 0x494d38
xor eax, eax
test sil, 0x10
mov rcx, r15
setne al
add eax, 2
mov dword [rsp + 0x5c], eax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0xe0], rax
call sym.wcslen
lea rbp, [rax + rax]
mov rdx, rbp
sar rdx, 1
mov qword [rsp + 0x78], rdx
cmp rdx, 7
ja 0x495140
mov rcx, qword [rsp + 0xe0]
cmp rdx, 1
jne 0x495130
movzx eax, word [rsp + 0x12c]
mov word [rcx], ax
xor r9d, r9d
mov qword [rsp + 0xe8], rdx
mov edx, esi
mov word [rcx + rbp], r9w
mov rcx, qword [rsp + 0x60]
call sym._anonymous_namespace_::make_permissions_boost::filesystem::path_const__unsigned_long_
mov rcx, qword [rsp + 0xe0]
mov esi, eax
cmp rcx, qword [rsp + 0x68]
je 0x494c2b
call sym.operator_delete_void_
call method.boost::system.system_category__
xor ebp, ebp
mov rcx, qword [rsp + 0xc0]
cmp rcx, rbx
je 0x494c44
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xa0]
cmp rcx, rdi
je 0x494c56
call sym.operator_delete_void_
test ebp, ebp
je 0x494e60
mov r15, qword [r13 + 8]
pxor xmm0, xmm0
movups xmmword [r13], xmm0
test r15, r15
je 0x494c7c
lock sub dword [r15 + 8], 1
je 0x4950f8
lea r9, str.boost::filesystem::directory_iterator::construct
mov r8, r14
mov rdx, r12
mov ecx, ebp
call sym._anonymous_namespace_::error_unsigned_long__boost::filesystem::path_const__boost::system::error_code__char_const_
mov rcx, qword [rsp + 0x80]
cmp rcx, qword [rsp + 0x38]
je 0x494991
call sym.operator_delete_void_
jmp 0x494991
lea rcx, [0x00885f68]
call method.std.__throw_logic_error_char_const_
nop dword [rax]
test rdx, rdx
jne 0x494df0
xor ebx, ebx
mov qword [rsp + 0xa8], rcx
mov rsi, qword [r13]
mov word [r15 + rbp], bx
lea rbx, [rsp + 0xd0]
mov qword [rsp + 0xc0], rbx
test r15, r15
jne 0x494a64
lea rcx, [0x00885f68]
call method.std.__throw_logic_error_char_const_
nop dword [rax]
test rax, rax
jne 0x49535d
mov qword [rsp + 0xc8], 0
xor eax, eax
mov word [rsp + rbp + 0xd0], ax
lea r15, [0x0088621a]
jmp 0x494add
mov dword [rsp + 0x5c], 0
mov esi, 0xffff
jmp 0x494c2b
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0xc0]
xor r8d, r8d
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___._M_create_unsigned_long_long__unsigned_long_long_
mov qword [rsp + 0xc0], rax
mov rcx, rax
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0xd0], rax
mov rdx, r15
mov r8, rbp
call sym.memcpy
mov rdx, qword [rsp + 0x100]
mov rax, qword [rsp + 0xc0]
xor r10d, r10d
mov qword [rsp + 0xc8], rdx
mov word [rax + rdx*2], r10w
test rdx, rdx
je 0x494d27
jmp 0x494ab0
mov rcx, qword [rsp + 0x40]
lea rdx, [rsp + 0x100]
xor r8d, r8d
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___._M_create_unsigned_long_long__unsigned_long_long_
mov qword [rsp + 0xa0], rax
mov r15, rax
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0xb0], rax
mov rcx, r15
mov r8, rbp
mov rdx, rbx
call sym.memcpy
mov rcx, qword [rsp + 0x100]
mov r15, qword [rsp + 0xa0]
lea rbp, [rcx + rcx]
jmp 0x494cc9
mov qword [rsi + 0x30], 0
call method.boost::system.system_category__
mov rsi, qword [sym.imp.KERNEL32.dll_GetLastError]
call rsi
cmp eax, 2
je 0x494e46
call rsi
cmp eax, 0x12
jne 0x495190
xor ebp, ebp
mov dword [rsp + 0x5c], 0
mov esi, 0xffff
jmp 0x494c32
mov rdi, qword [r13]
cmp qword [rdi + 0x30], 0
je 0x495090
mov rax, qword [rsp + 0x88]
mov r15, qword [rsp + 0x80]
mov qword [rsp + 0xc0], rbx
lea rbp, [rax + rax]
mov rax, r15
add rax, rbp
je 0x494ea8
test r15, r15
jne 0x494ea8
lea rcx, [0x00885f68]
call method.std.__throw_logic_error_char_const_
nop dword [rax]
mov rax, rbp
sar rax, 1
mov qword [rsp + 0x100], rax
mov rdx, rax
cmp rax, 7
ja 0x4951f0
cmp rax, 1
jne 0x4951a0
movzx eax, word [r15]
mov word [rsp + 0xd0], ax
mov rax, rbx
mov r15, qword [r12]
mov r12, qword [r12 + 8]
xor r8d, r8d
mov qword [rsp + 0xc8], rdx
mov word [rax + rbp], r8w
lea rbp, [rsp + 0x110]
add r12, r12
mov rax, r15
mov qword [rsp + 0x100], rbp
add rax, r12
je 0x494f19
test r15, r15
je 0x495321
mov rax, r12
sar rax, 1
mov qword [rsp + 0xe0], rax
mov rdx, rax
cmp rax, 7
ja 0x4952a8
cmp rax, 1
jne 0x4951b8
movzx eax, word [r15]
mov word [rsp + 0x110], ax
mov rax, rbp
xor ecx, ecx
mov qword [rsp + 0x108], rdx
mov rdx, qword [rsp + 0x50]
mov word [rax + r12], cx
mov rcx, qword [rsp + 0x48]
call method.boost::filesystem::path.operator__boost::filesystem::path_const_
lea rdx, [rsp + 0xf0]
mov r12, qword [rax + 8]
mov qword [rsp + 0xe0], rdx
mov r15, qword [rax]
add r12, r12
mov qword [rsp + 0x68], rdx
mov rax, r15
add rax, r12
je 0x494f9b
test r15, r15
je 0x49532d
mov rax, r12
sar rax, 1
mov qword [rsp + 0xa0], rax
mov rdx, rax
cmp rax, 7
ja 0x495248
cmp rax, 1
jne 0x4951d0
movzx eax, word [r15]
lea rcx, [rsp + 0xe0]
mov qword [rsp + 0x60], rcx
mov word [rsp + 0xf0], ax
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x100]
mov qword [rsp + 0xe8], rdx
xor edx, edx
mov word [rax + r12], dx
cmp rcx, rbp
je 0x494fff
call sym.operator_delete_void_
mov rdx, qword [rsp + 0x60]
mov rcx, rdi
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___._M_assign_std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t____const_
movd xmm0, dword [rsp + 0x5c]
movd xmm1, esi
punpckldq xmm0, xmm1
punpcklqdq xmm0, xmm0
movups xmmword [rdi + 0x20], xmm0
mov rcx, qword [rsp + 0xe0]
cmp rcx, qword [rsp + 0x68]
je 0x495036
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xc0]
cmp rcx, rbx
je 0x495048
call sym.operator_delete_void_
mov rcx, qword [rsp + 0x80]
cmp word [rcx], 0x2e
jne 0x494c98
mov rax, qword [rsp + 0x88]
cmp rax, 1
je 0x49507d
cmp word [rcx + 2], 0x2e
jne 0x494c98
cmp rax, 2
jne 0x494c98
mov rdx, r14
mov rcx, r13
call method.boost::filesystem::detail.directory_iterator_increment_boost::filesystem::directory_iterator__boost::system::error_code_
jmp 0x494c90
mov r12, qword [r13 + 8]
pxor xmm0, xmm0
movups xmmword [r13], xmm0
test r12, r12
je 0x494c90
lock sub dword [r12 + 8], 1
jne 0x494c90
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x10]
lock sub dword [r12 + 0xc], 1
jne 0x494c90
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 0x495306
call qword [rax + 8]
mov rcx, qword [rsp + 0x80]
jmp 0x494c98
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x10]
lock sub dword [r15 + 0xc], 1
jne 0x494c7c
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 0x4952ff
call qword [rax + 8]
jmp 0x494c7c
test rdx, rdx
je 0x494bf9
jmp 0x49516a
mov rcx, qword [rsp + 0x60]
lea rdx, [rsp + 0x78]
xor r8d, r8d
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___._M_create_unsigned_long_long__unsigned_long_long_
mov qword [rsp + 0xe0], rax
mov rcx, rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xf0], rax
mov r8, rbp
mov rdx, r15
call sym.memcpy
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0xe0]
lea rbp, [rdx + rdx]
jmp 0x494bf9
call rsi
mov ebp, eax
jmp 0x494e48
test rax, rax
jne 0x495355
mov rax, rbx
jmp 0x494edc
test rax, rax
jne 0x495339
mov rax, rbp
jmp 0x494f4d
test rax, rax
jne 0x49533e
lea rcx, [rsp + 0xe0]
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x60], rcx
jmp 0x494fde
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
xor r8d, r8d
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___._M_create_unsigned_long_long__unsigned_long_long_
mov qword [rsp + 0xc0], rax
mov rcx, rax
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0xd0], rax
mov r8, rbp
mov rdx, r15
call sym.memcpy
mov rdx, qword [rsp + 0x100]
mov rax, qword [rsp + 0xc0]
lea rbp, [rdx + rdx]
jmp 0x494edc
lea rax, [rsp + 0xe0]
mov rdx, qword [rsp + 0x40]
xor r8d, r8d
mov rcx, rax
mov qword [rsp + 0x60], rax
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___._M_create_unsigned_long_long__unsigned_long_long_
mov qword [rsp + 0xe0], rax
mov rcx, rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0xf0], rax
mov r8, r12
mov rdx, r15
call sym.memcpy
mov rdx, qword [rsp + 0xa0]
mov rax, qword [rsp + 0xe0]
lea r12, [rdx + rdx]
jmp 0x494fde
lea rax, [rsp + 0xe0]
mov rcx, qword [rsp + 0x48]
xor r8d, r8d
mov rdx, rax
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___._M_create_unsigned_long_long__unsigned_long_long_
mov qword [rsp + 0x100], rax
mov rcx, rax
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x110], rax
mov r8, r12
mov rdx, r15
call sym.memcpy
mov rdx, qword [rsp + 0xe0]
mov rax, qword [rsp + 0x100]
lea r12, [rdx + rdx]
jmp 0x494f4d
call rdx
jmp 0x494c7c
call rdx
mov rcx, qword [rsp + 0x80]
jmp 0x494c98
lea rcx, [0x00886259]
call method.std.__throw_length_error_char_const_
lea rcx, [0x00885f68]
call method.std.__throw_logic_error_char_const_
lea rcx, [0x00885f68]
call method.std.__throw_logic_error_char_const_
mov rcx, rbp
jmp 0x4952db
lea rax, [rsp + 0xe0]
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x60], rax
jmp 0x495280
mov rcx, rbx
jmp 0x49521d
mov rcx, rbx
jmp 0x494d83