Function at 0x48c050
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 0x48c07b
mov ecx, dword [0x00a2f460]
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 0x48c0a8
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 0x48c3b0
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 0x48c4c0
mov r15, qword [rsp + 0xa0]
cmp rdx, 1
jne 0x48c3c0
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 0x48c450
cmp rax, 1
jne 0x48c408
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 0x48c427
movabs rdx, 0x200000000801
bt rdx, rax
jae 0x48c427
lea r15, [0x0087e820]
mov rcx, r15
call sym.wcslen
mov r8, rax
movabs rax, 0x1fffffffffffffff
sub rax, qword [rsp + 0xc8]
cmp r8, rax
ja 0x48ca15
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 0x48c520
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 0x48c438
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 0x48c840
mov rcx, qword [rsp + 0xe0]
cmp rdx, 1
jne 0x48c830
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 0x48c32b
call sym.operator_delete_void_
call method.boost::system.system_category__
xor ebp, ebp
mov rcx, qword [rsp + 0xc0]
cmp rcx, rbx
je 0x48c344
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xa0]
cmp rcx, rdi
je 0x48c356
call sym.operator_delete_void_
test ebp, ebp
je 0x48c560
mov r15, qword [r13 + 8]
pxor xmm0, xmm0
movups xmmword [r13], xmm0
test r15, r15
je 0x48c37c
lock sub dword [r15 + 8], 1
je 0x48c7f8
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 0x48c091
call sym.operator_delete_void_
jmp 0x48c091
lea rcx, [0x0087e568]
call method.std.__throw_logic_error_char_const_
nop dword [rax]
test rdx, rdx
jne 0x48c4f0
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 0x48c164
lea rcx, [0x0087e568]
call method.std.__throw_logic_error_char_const_
nop dword [rax]
test rax, rax
jne 0x48ca5d
mov qword [rsp + 0xc8], 0
xor eax, eax
mov word [rsp + rbp + 0xd0], ax
lea r15, [0x0087e81a]
jmp 0x48c1dd
mov dword [rsp + 0x5c], 0
mov esi, 0xffff
jmp 0x48c32b
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 0x48c427
jmp 0x48c1b0
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 0x48c3c9
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 0x48c546
call rsi
cmp eax, 0x12
jne 0x48c890
xor ebp, ebp
mov dword [rsp + 0x5c], 0
mov esi, 0xffff
jmp 0x48c332
mov rdi, qword [r13]
cmp qword [rdi + 0x30], 0
je 0x48c790
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 0x48c5a8
test r15, r15
jne 0x48c5a8
lea rcx, [0x0087e568]
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 0x48c8f0
cmp rax, 1
jne 0x48c8a0
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 0x48c619
test r15, r15
je 0x48ca21
mov rax, r12
sar rax, 1
mov qword [rsp + 0xe0], rax
mov rdx, rax
cmp rax, 7
ja 0x48c9a8
cmp rax, 1
jne 0x48c8b8
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 0x48c69b
test r15, r15
je 0x48ca2d
mov rax, r12
sar rax, 1
mov qword [rsp + 0xa0], rax
mov rdx, rax
cmp rax, 7
ja 0x48c948
cmp rax, 1
jne 0x48c8d0
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 0x48c6ff
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 0x48c736
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xc0]
cmp rcx, rbx
je 0x48c748
call sym.operator_delete_void_
mov rcx, qword [rsp + 0x80]
cmp word [rcx], 0x2e
jne 0x48c398
mov rax, qword [rsp + 0x88]
cmp rax, 1
je 0x48c77d
cmp word [rcx + 2], 0x2e
jne 0x48c398
cmp rax, 2
jne 0x48c398
mov rdx, r14
mov rcx, r13
call method.boost::filesystem::detail.directory_iterator_increment_boost::filesystem::directory_iterator__boost::system::error_code_
jmp 0x48c390
mov r12, qword [r13 + 8]
pxor xmm0, xmm0
movups xmmword [r13], xmm0
test r12, r12
je 0x48c390
lock sub dword [r12 + 8], 1
jne 0x48c390
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x10]
lock sub dword [r12 + 0xc], 1
jne 0x48c390
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 0x48ca06
call qword [rax + 8]
mov rcx, qword [rsp + 0x80]
jmp 0x48c398
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x10]
lock sub dword [r15 + 0xc], 1
jne 0x48c37c
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 0x48c9ff
call qword [rax + 8]
jmp 0x48c37c
test rdx, rdx
je 0x48c2f9
jmp 0x48c86a
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 0x48c2f9
call rsi
mov ebp, eax
jmp 0x48c548
test rax, rax
jne 0x48ca55
mov rax, rbx
jmp 0x48c5dc
test rax, rax
jne 0x48ca39
mov rax, rbp
jmp 0x48c64d
test rax, rax
jne 0x48ca3e
lea rcx, [rsp + 0xe0]
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x60], rcx
jmp 0x48c6de
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 0x48c5dc
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 0x48c6de
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 0x48c64d
call rdx
jmp 0x48c37c
call rdx
mov rcx, qword [rsp + 0x80]
jmp 0x48c398
lea rcx, [0x0087e859]
call method.std.__throw_length_error_char_const_
lea rcx, [0x0087e568]
call method.std.__throw_logic_error_char_const_
lea rcx, [0x0087e568]
call method.std.__throw_logic_error_char_const_
mov rcx, rbp
jmp 0x48c9db
lea rax, [rsp + 0xe0]
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x60], rax
jmp 0x48c980
mov rcx, rbx
jmp 0x48c91d
mov rcx, rbx
jmp 0x48c483