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

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x150
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x1400a3010]
xor rax, rsp
mov qword [rsp + reloc.mfc120u.dll_Ordinal_320], rax
mov r13, rcx
mov qword [rsp + 0x38], rcx
lea rcx, [rsp + 0x30]
call qword [sym.imp.treestor3.dll_public:_static_class_itl::intrusive_ptr_class_isl::ITreeStorage____cdecl_isl::ITreeStorage::factory_void_]
mov rbx, rax
mov rdi, qword [rax]
mov rcx, qword [r13 + 0x20]
test rcx, rcx
je 0x14002940e
mov rdx, qword [rcx]
call qword [rdx + 8]
mov qword [r13 + 0x20], rdi
xor r15d, r15d
mov qword [rbx], r15
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x140029428
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, qword [r13 + 0x20]
mov qword [r13 + 0x30], rax
mov rdi, r15
mov qword [rsp + 0x40], r15
mov byte [rsp + 0x20], 0
xor r14b, r14b
lea rdx, [r13 + 0x70]
lea rcx, [rsp + 0x30]
call fcn.140012eb0
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
sete bl
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc120u.dll_Ordinal_1030]
test bl, bl
je 0x1400295e9
lea rdx, [r13 + 0x50]
lea rcx, [rsp + 0x30]
call fcn.140012eb0
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
sete bl
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc120u.dll_Ordinal_1030]
test bl, bl
je 0x140029550
mov rcx, qword [r13 + 8]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov r8, qword [rax]
xor edx, edx
mov rcx, rax
call qword [r8 + 0x10]
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc120u.dll_Ordinal_296]
nop
lea rdx, [r13 + 0x70]
lea rcx, [rsp + 0x28]
call fcn.140012eb0
mov rbx, rax
mov edx, 0xae
lea rcx, [rsp + 0x30]
call fcn.1400406f0
nop
mov r8, qword [rbx]
mov rdx, qword [rax]
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc120u.dll_Ordinal_4612]
nop
lea rcx, [rsp + 0x30]
call qword [sym.imp.mfc120u.dll_Ordinal_1030]
nop
lea rcx, [rsp + 0x28]
call qword [sym.imp.mfc120u.dll_Ordinal_1030]
mov edx, 0xe000
lea rcx, [rsp + 0x28]
call fcn.1400406f0
mov r9d, 0x30
mov r8, qword [rax]
mov rdx, qword [rsp + 0x38]
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
lea rcx, [rsp + 0x28]
call qword [sym.imp.mfc120u.dll_Ordinal_1030]
nop
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc120u.dll_Ordinal_1030]
nop
xor al, al
jmp 0x140029ef0
mov r14b, 1
mov byte [rsp + 0x20], r14b
lea r8, [r13 + 0x70]
lea rdx, str.Local_config_file:
lea rcx, [rsp + 0x60]
call fcn.140023df0
nop
lea r8, str._not_found
mov rdx, rax
lea rcx, [rsp + 0x80]
call fcn.140023ee0
mov rbx, rax
mov rcx, qword [r13 + 8]
mov rdx, qword [rcx]
call qword [rdx + 0x18]
mov r8, qword [rax]
mov rdx, rbx
mov rcx, rax
call qword [r8 + 0x18]
nop
cmp qword [rsp + 0x98], 8
jb 0x1400295b9
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov qword [rsp + 0x98], 7
mov qword [rsp + 0x90], r15
mov word [rsp + 0x80], r15w
cmp qword [rsp + 0x78], 8
jb 0x1400295e9
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
lea rdx, [r13 + 0x70]
lea rcx, [rsp + 0x120]
call qword [sym.imp.isl3.dll_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_isl::extract_dir_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const____ptr64_]
nop
mov r8, rax
lea rdx, str.rtemp.cfg
lea rcx, [rsp + 0x100]
call fcn.14002e960
nop
cmp qword [rsp + 0x138], 8
jb 0x14002962d
mov rcx, qword [rsp + 0x120]
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov qword [rsp + 0x138], 7
mov qword [rsp + 0x130], r15
mov word [rsp + 0x120], r15w
test r14b, r14b
jne 0x1400296fc
mov r8b, 1
lea rdx, [rsp + 0x100]
lea rcx, [r13 + 0x70]
call qword [sym.imp.isl3.dll_bool___cdecl_isl::file_copy_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const____ptr64__class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const____ptr64__bool_]
test al, al
je 0x1400296b2
mov r8d, 3
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0x28]
call qword [sym.imp.treestor3.dll_class_itl::intrusive_ptr_class_isl::ITreeStorage____cdecl_isl::loadTreeFile_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const____ptr64__enum_isl::tree_stor_serialization_e_]
mov rdi, qword [rax]
mov qword [rsp + 0x40], rdi
mov qword [rax], r15
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x1400296a1
mov rax, qword [rcx]
call qword [rax + 8]
nop
jmp 0x1400296fc
lea r8, [r13 + 0x70]
lea rdx, str.Cant_copy_local_config_file:
lea rcx, [rsp + 0x60]
call fcn.140023df0
mov rbx, rax
mov rcx, qword [r13 + 8]
mov rdx, qword [rcx]
call qword [rdx + 0x18]
mov r8, qword [rax]
mov rdx, rbx
mov rcx, rax
call qword [r8 + 0x18]
nop
cmp qword [rsp + 0x78], 8
jb 0x1400296f5
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov byte [rsp + 0x20], 1
jmp 0x140029707
cmp byte [rsp + 0x20], 0
je 0x140029e71
mov qword [rsp + 0xf8], 7
mov qword [rsp + 0xf0], r15
mov word [rsp + 0xe0], r15w
mov r8d, 4
lea rdx, str..bak
lea rcx, [rsp + 0xe0]
call fcn.1400113d0
nop
lea r8, [rsp + 0xe0]
lea rdx, [r13 + 0x70]
lea rcx, [rsp + 0xc0]
call fcn.14002eac0
nop
cmp qword [rsp + 0xf8], 8
jb 0x140029772
mov rcx, qword [rsp + 0xe0]
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov qword [rsp + 0xf8], 7
mov qword [rsp + 0xf0], r15
mov word [rsp + 0xe0], r15w
lea rdx, [r13 + 0x70]
lea rcx, [rsp + 0x28]
call fcn.140012eb0
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
sete bl
lea rcx, [rsp + 0x28]
call qword [sym.imp.mfc120u.dll_Ordinal_1030]
test bl, bl
je 0x1400297f4
lea r8, [rsp + 0xc0]
lea rdx, str.Not_found_backup_file:
lea rcx, [rsp + 0x60]
call fcn.140023df0
mov rbx, rax
mov rcx, qword [r13 + 8]
mov rdx, qword [rcx]
call qword [rdx + 0x18]
mov r8, qword [rax]
mov rdx, rbx
mov rcx, rax
call qword [r8 + 0x18]
nop
jmp 0x140029944
mov r8b, 1
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0xc0]
call qword [sym.imp.isl3.dll_bool___cdecl_isl::file_copy_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const____ptr64__class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const____ptr64__bool_]
test al, al
je 0x140029910
mov r8d, 3
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0x28]
call qword [sym.imp.treestor3.dll_class_itl::intrusive_ptr_class_isl::ITreeStorage____cdecl_isl::loadTreeFile_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const____ptr64__enum_isl::tree_stor_serialization_e_]
mov rsi, rax
mov rbx, qword [rax]
test rdi, rdi
je 0x140029842
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx + 8]
mov rdi, rbx
mov qword [rsp + 0x40], rbx
mov qword [rsi], r15
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x14002985d
mov rax, qword [rcx]
call qword [rax + 8]
test rbx, rbx
je 0x1400298ff
lea r8, [rsp + 0xc0]
lea rdx, str.Local_config_file:
lea rcx, [rsp + 0x60]
call fcn.140023df0
nop
lea r8, str._backup_loaded
mov rdx, rax
lea rcx, [rsp + 0x80]
call fcn.140023ee0
mov rbx, rax
mov rcx, qword [r13 + 8]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov rcx, rax
mov rax, qword [rax]
mov rdx, rbx
call qword [rax + 0x18]
nop
cmp qword [rsp + 0x98], 8
jb 0x1400298ca
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov qword [rsp + 0x98], 7
mov qword [rsp + 0x90], r15
mov word [rsp + 0x80], r15w
cmp qword [rsp + 0x78], 8
jb 0x1400298fa
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov byte [rsp + 0x20], 0
jmp 0x140029958
lea r8, [rsp + 0xc0]
lea rdx, str.Cant_copy_backup_file:
lea rcx, [rsp + 0x60]
call fcn.140023df0
mov rbx, rax
mov rcx, qword [r13 + 8]
mov rdx, qword [rcx]
call qword [rdx + 0x18]
mov r8, qword [rax]
mov rdx, rbx
mov rcx, rax
call qword [r8 + 0x18]
nop
cmp qword [rsp + 0x78], 8
jb 0x140029958
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
nop
cmp qword [rsp + 0xd8], 8
jb 0x140029971
mov rcx, qword [rsp + 0xc0]
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
cmp byte [rsp + 0x20], 0
je 0x140029e71
xorps xmm0, xmm0
movdqu xmmword [rsp + 0xe0], xmm0
mov qword [rsp + 0xf0], r15
lea rdx, [r13 + 0x70]
lea rcx, [rsp + 0xc0]
call qword [sym.imp.isl3.dll_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_isl::extract_dir_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const____ptr64_]
nop
mov qword [rsp + 0xb8], 7
mov qword [rsp + 0xb0], r15
mov word [rsp + 0xa0], r15w
mov r8d, 0xa
lea rdx, str.athloc.cfg
lea rcx, [rsp + 0xa0]
call fcn.1400113d0
nop
lea r8, [rsp + 0xe0]
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0xc0]
call fcn.1400291a0
nop
cmp qword [rsp + 0xb8], 8
jb 0x140029a12
mov rcx, qword [rsp + 0xa0]
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov qword [rsp + 0x98], 7
mov qword [rsp + 0x90], r15
mov word [rsp + 0x80], r15w
mov r8d, 4
lea rdx, str..bak
lea rcx, [rsp + 0x80]
call fcn.1400113d0
nop
mov qword [rsp + 0xb8], 7
mov qword [rsp + 0xb0], r15
mov word [rsp + 0xa0], r15w
mov r8d, 0xa
lea rdx, str.athloc.cfg
lea rcx, [rsp + 0xa0]
call fcn.1400113d0
nop
lea r8, [rsp + 0x80]
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0x60]
call fcn.14002eac0
nop
lea r8, [rsp + 0xe0]
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.1400291a0
nop
cmp qword [rsp + 0x78], 8
jb 0x140029ac9
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov qword [rsp + 0x78], 7
mov qword [rsp + 0x70], r15
mov word [rsp + 0x60], r15w
cmp qword [rsp + 0xb8], 8
jb 0x140029af6
mov rcx, qword [rsp + 0xa0]
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov qword [rsp + 0xb8], 7
mov qword [rsp + 0xb0], r15
mov word [rsp + 0xa0], r15w
cmp qword [rsp + 0x98], 8
jb 0x140029b2c
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov r14, qword [rsp + 0xe8]
mov r8, r14
mov r12, qword [rsp + 0xe0]
sub r8, r12
sar r8, 5
movzx r9d, byte [rsp + 0x20]
mov rdx, r14
mov rcx, r12
call fcn.14002c670
mov rbx, r12
mov rsi, r14
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x30], rbx
cmp rbx, rsi
je 0x140029d1f
cmp qword [rbx + 0x18], 8
jb 0x140029b7c
mov rcx, qword [rbx]
jmp 0x140029b7f
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x140029bbe
mov r8, rbx
lea rdx, str.Not_found_backup_file:
lea rcx, [rsp + 0x60]
call fcn.140023df0
mov r14, rax
mov rcx, qword [r13 + 8]
mov rdx, qword [rcx]
call qword [rdx + 0x18]
mov r8, qword [rax]
mov rdx, r14
mov rcx, rax
call qword [r8 + 0x18]
nop
jmp 0x140029d03
mov r8b, 1
lea rdx, [rsp + 0x100]
mov rcx, rbx
call qword [sym.imp.isl3.dll_bool___cdecl_isl::file_copy_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const____ptr64__class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const____ptr64__bool_]
test al, al
je 0x140029cd4
mov r8d, 3
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0x28]
call qword [sym.imp.treestor3.dll_class_itl::intrusive_ptr_class_isl::ITreeStorage____cdecl_isl::loadTreeFile_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const____ptr64__enum_isl::tree_stor_serialization_e_]
mov r12, rax
mov r14, qword [rax]
test rdi, rdi
je 0x140029c07
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx + 8]
mov rdi, r14
mov qword [rsp + 0x40], r14
mov qword [r12], r15
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x140029c23
mov rax, qword [rcx]
call qword [rax + 8]
test r14, r14
je 0x140029cb9
mov r8, rbx
lea rdx, str.Local_config_file:
lea rcx, [rsp + 0x80]
call fcn.140023df0
nop
lea r8, str._backup_loaded
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140023ee0
mov rbx, rax
mov rcx, qword [r13 + 8]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov rcx, rax
mov rax, qword [rax]
mov rdx, rbx
call qword [rax + 0x18]
nop
cmp qword [rsp + 0x78], 8
jb 0x140029c85
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov qword [rsp + 0x78], 7
mov qword [rsp + 0x70], r15
mov word [rsp + 0x60], r15w
cmp qword [rsp + 0x98], 8
jb 0x140029cb2
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov byte [rsp + 0x20], 0
jmp 0x140029d1f
jmp 0x140029d16
mov r8, rbx
lea rdx, str.Cant_copy_backup_file:
lea rcx, [rsp + 0x60]
call fcn.140023df0
mov r14, rax
mov rcx, qword [r13 + 8]
mov rdx, qword [rcx]
call qword [rdx + 0x18]
mov r8, qword [rax]
mov rdx, r14
mov rcx, rax
call qword [r8 + 0x18]
nop
cmp qword [rsp + 0x78], 8
jb 0x140029d16
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
add rbx, 0x20
jmp 0x140029b62
cmp qword [rsp + 0xd8], 8
jb 0x140029d38
mov rcx, qword [rsp + 0xc0]
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov qword [rsp + 0xd8], 7
mov qword [rsp + 0xd0], r15
mov word [rsp + 0xc0], r15w
mov r12, qword [rsp + 0xe0]
test r12, r12
je 0x140029da4
mov rbx, r12
mov r14, qword [rsp + 0xe8]
cmp r12, r14
je 0x140029d9b
cmp qword [rbx + 0x18], 8
jb 0x140029d82
mov rcx, qword [rbx]
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov qword [rbx + 0x18], 7
mov qword [rbx + 0x10], r15
mov word [rbx], r15w
add rbx, 0x20
cmp rbx, r14
jne 0x140029d72
mov rcx, r12
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
cmp byte [rsp + 0x20], 0
je 0x140029e71
lea rcx, [rsp + 0x48]
call qword [sym.imp.treestor3.dll_public:_static_class_itl::intrusive_ptr_class_isl::ITreeStorage____cdecl_isl::ITreeStorage::factory_void_]
mov rbx, rax
mov rsi, qword [rax]
test rdi, rdi
je 0x140029dce
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx + 8]
mov rdi, rsi
mov qword [rsp + 0x40], rsi
mov qword [rbx], r15
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x140029de9
mov rax, qword [rcx]
call qword [rax + 8]
lea r8, [r13 + 0x70]
lea rdx, str.Local_config_file:
lea rcx, [rsp + 0x80]
call fcn.140023df0
nop
lea r8, str._loading_fail__empty_created
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140023ee0
mov rbx, rax
mov rcx, qword [r13 + 8]
mov rdx, qword [rcx]
call qword [rdx + 0x18]
mov r8, qword [rax]
mov rdx, rbx
mov rcx, rax
call qword [r8 + 0x18]
nop
cmp qword [rsp + 0x78], 8
jb 0x140029e44
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov qword [rsp + 0x78], 7
mov qword [rsp + 0x70], r15
mov word [rsp + 0x60], r15w
cmp qword [rsp + 0x98], 8
jb 0x140029e71
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
lea rcx, [rsp + 0x100]
call qword [sym.imp.isl3.dll_bool___cdecl_isl::file_delete_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const____ptr64_]
test rdi, rdi
je 0x140029e8c
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
mov rcx, qword [r13 + 0x10]
test rcx, rcx
je 0x140029e9b
mov rax, qword [rcx]
call qword [rax + 8]
mov qword [r13 + 0x10], rdi
mov rax, rdi
mov qword [r13 + 0x28], rax
mov qword [r13 + 0x38], r15
cmp qword [rsp + reloc.mfc120u.dll_Ordinal_280], 8
jb 0x140029ec3
mov rcx, qword [rsp + 0x100]
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov qword [rsp + reloc.mfc120u.dll_Ordinal_280], 7
mov qword [rsp + 0x110], r15
mov word [rsp + 0x100], r15w
test rdi, rdi
je 0x140029eee
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 8]
mov al, 1
mov rcx, qword [rsp + reloc.mfc120u.dll_Ordinal_320]
xor rcx, rsp
call fcn.140065260
lea r11, [rsp + 0x150]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret