Function at 0x1400120a0
Capabilities:
Check if file exists

Disassembly:
mov rax, rsp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0xa0
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rbp
mov rax, qword [0x140054030]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov rsi, rdx
mov rbx, rcx
lea rdx, [rcx + 0x530]
mov rax, qword [rdx]
cmp dword [rax - 0x10], 0
jne 0x1400120f2
lea rdx, [rcx + 0x528]
add rcx, 0x1100
call qword [sym.imp.mfc90u.dll_CToolBarCtrl::CToolBarCtrl]
lea rcx, str.IDS_SAVE_DEFAULT_SUFFIX
call qword [sym.imp.PECtrl.dll_wchar_t_const____ptr64___cdecl_PECTRL::GetDictItem_wchar_t_const____ptr64_]
mov rdx, rax
lea rcx, [rbx + 0x1150]
call qword [sym.imp.mfc90u.dll_CTreeCtrl::CTreeCtrl]
xor r14d, r14d
mov dword [rbx + 0x490c], r14d
mov dword [rbx + 0x479c], 1
mov dword [rbx + 0x47a0], 1
mov dword [rbx + 0x47a4], 1
mov dword [rbx + 0x47a8], 1
mov dword [rbx + 0x47ac], 0x78
mov dword [rbx + 0x47b0], 0x127
test rsi, rsi
jne 0x14001216e
xor eax, eax
jmp 0x1400129fc
lea rcx, [rsp + 0x68]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void____ptr64]
nop
lea rcx, [rsp + 0x40]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void____ptr64]
nop
lea rdx, str.last_open_path
mov rcx, rsi
call fcn.140023520
mov rdi, rax
lea rcx, [rsp + 0x68]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::clear_void____ptr64]
test rdi, rdi
je 0x14001221b
mov rcx, qword [rdi + 0x28]
test rcx, rcx
je 0x1400121cf
mov rax, qword [rcx]
call qword [rax + 0x60]
test rax, rax
je 0x1400121cf
cmp qword [rax + 0x58], 0x10
jb 0x1400121c9
mov rcx, qword [rax + 0x40]
jmp 0x1400121d2
lea rcx, [rax + 0x40]
jmp 0x1400121d2
mov rcx, r14
lea rdx, [rsp + 0x68]
call fcn.140029b30
lea rcx, [rsp + 0x70]
cmp qword [rsp + 0x88], 8
cmovae rcx, qword [rsp + 0x70]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14001221b
lea rdx, [rsp + 0x70]
cmp qword [rsp + 0x88], 8
cmovae rdx, qword [rsp + 0x70]
lea rcx, [rbx + 0x1100]
call qword [sym.imp.mfc90u.dll_CTreeCtrl::CTreeCtrl]
lea rdx, str.save_format
mov rcx, rsi
call fcn.140023520
mov rdi, rax
lea rcx, [rsp + 0x40]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::clear_void____ptr64]
test rdi, rdi
je 0x1400123c6
mov rdx, rdi
lea rcx, [rsp + 0x40]
call fcn.140025460
test al, al
je 0x1400123c6
lea rcx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0x10
cmovae rcx, qword [rsp + 0x48]
lea rdx, str.jpeg
call qword [sym.imp.MSVCR90.dll__stricmp]
test eax, eax
jne 0x1400122b4
lea rcx, [0x140000000]
mov eax, dword [rcx + 0x32b80]
mov dword [rbx + 0x1118], eax
mov eax, dword [rcx + 0x32b84]
mov dword [rbx + 0x111c], eax
mov eax, dword [rcx + 0x32b88]
mov dword [rbx + 0x1120], eax
mov eax, dword [rcx + 0x32b8c]
mov dword [rbx + COleServerDoc::XOleObject::IsUpToDate], eax
jmp 0x1400123c6
lea rcx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0x10
cmovae rcx, qword [rsp + 0x48]
lea rdx, str.tiff
call qword [sym.imp.MSVCR90.dll__stricmp]
test eax, eax
jne 0x140012312
lea rcx, [0x140000000]
mov eax, dword [rcx + 0x32b90]
mov dword [rbx + 0x1118], eax
mov eax, dword [rcx + 0x32b94]
mov dword [rbx + 0x111c], eax
mov eax, dword [rcx + 0x32b98]
mov dword [rbx + 0x1120], eax
mov eax, dword [rcx + 0x32b9c]
mov dword [rbx + COleServerDoc::XOleObject::IsUpToDate], eax
jmp 0x1400123c6
lea rcx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0x10
cmovae rcx, qword [rsp + 0x48]
lea rdx, [0x140037e94]
call qword [sym.imp.MSVCR90.dll__stricmp]
test eax, eax
jne 0x14001236d
lea rcx, [0x140000000]
mov eax, dword [rcx + 0x32b70]
mov dword [rbx + 0x1118], eax
mov eax, dword [rcx + 0x32b74]
mov dword [rbx + 0x111c], eax
mov eax, dword [rcx + 0x32b78]
mov dword [rbx + 0x1120], eax
mov eax, dword [rcx + 0x32b7c]
mov dword [rbx + COleServerDoc::XOleObject::IsUpToDate], eax
jmp 0x1400123c6
lea rcx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0x10
cmovae rcx, qword [rsp + 0x48]
lea rdx, [0x140037e98]
call qword [sym.imp.MSVCR90.dll__stricmp]
test eax, eax
jne 0x1400123c6
lea rcx, [0x140000000]
mov eax, dword [rcx + 0x32b60]
mov dword [rbx + 0x1118], eax
mov eax, dword [rcx + 0x32b64]
mov dword [rbx + 0x111c], eax
mov eax, dword [rcx + 0x32b68]
mov dword [rbx + 0x1120], eax
mov eax, dword [rcx + 0x32b6c]
mov dword [rbx + COleServerDoc::XOleObject::IsUpToDate], eax
lea rdx, str.save_quality
mov rcx, rsi
call fcn.140023520
mov edx, 0x64
mov r9d, edx
lea r8d, [rdx - 0x63]
mov rcx, rax
call fcn.140025520
mov dword [rbx + 0x112c], eax
lea rdx, str.save_color_space
mov rcx, rsi
call fcn.140023520
mov rdi, rax
lea rcx, [rbx + 0x1168]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::clear_void____ptr64]
test rdi, rdi
je 0x140012422
mov rdx, rdi
lea rcx, [rbx + 0x1168]
call fcn.140025460
lea rdx, str.save_bit_depth
mov rcx, rsi
call fcn.140023520
mov edx, 8
lea r9d, [rdx + 8]
mov r8d, edx
mov rcx, rax
call fcn.140025520
cmp eax, 0x10
sete al
mov byte [rbx + COleServerDoc::XOleObject::IsUpToDate], al
lea rdx, str.save_filename_suffix
mov rcx, rsi
call fcn.140023520
mov rdi, rax
lea rcx, [rsp + 0x68]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::clear_void____ptr64]
test rdi, rdi
je 0x1400124c8
mov rcx, qword [rdi + 0x28]
test rcx, rcx
je 0x14001249a
mov rax, qword [rcx]
call qword [rax + 0x60]
test rax, rax
je 0x14001249a
cmp qword [rax + 0x58], 0x10
jb 0x140012494
mov rcx, qword [rax + 0x40]
jmp 0x14001249d
lea rcx, [rax + 0x40]
jmp 0x14001249d
mov rcx, r14
lea rdx, [rsp + 0x68]
call fcn.140029b30
lea rdx, [rsp + 0x70]
cmp qword [rsp + 0x88], 8
cmovae rdx, qword [rsp + 0x70]
lea rcx, [rbx + 0x1150]
call qword [sym.imp.mfc90u.dll_CTreeCtrl::CTreeCtrl]
lea rdx, str.save_remove_metadata
mov rcx, rsi
call fcn.140023520
mov rcx, rax
test rax, rax
je 0x140012500
mov rax, qword [sym.imp.if.dll_unsigned_int_const_ImageFile::METADATA_CATEGORY_NONE]
mov edx, dword [rax]
mov rax, qword [sym.imp.if.dll_unsigned_int_const_ImageFile::METADATA_CATEGORY_ALL]
mov r9d, dword [rax]
mov r8d, edx
call fcn.140025520
mov dword [rbx + 0x113c], eax
lea rdx, str.save_dont_ask_overwrite
mov rcx, rsi
call fcn.140023520
cmp dword [rbx + 0x1194], 1
sete dl
mov rcx, rax
call fcn.1400255d0
movzx r11d, al
mov dword [rbx + 0x1194], r11d
lea rdx, str.display_mode
mov rcx, rsi
call fcn.140023520
mov rdi, rax
lea rcx, [rsp + 0x68]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::clear_void____ptr64]
test rdi, rdi
je 0x1400125c3
mov rcx, qword [rdi + 0x28]
test rcx, rcx
je 0x140012575
mov rax, qword [rcx]
call qword [rax + 0x60]
test rax, rax
je 0x140012575
cmp qword [rax + 0x58], 0x10
jb 0x14001256f
mov rcx, qword [rax + 0x40]
jmp 0x140012578
lea rcx, [rax + 0x40]
jmp 0x140012578
mov rcx, r14
lea rdx, [rsp + 0x68]
call fcn.140029b30
lea rdx, [0x140037f30]
lea rcx, [rsp + 0x68]
call qword [sym.imp.MSVCP90.dll_bool___cdecl_std::operator_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const____ptr64__wchar_t_const____ptr64_]
test al, al
je 0x1400125a4
mov dword [rbx + 0x490c], 1
jmp 0x1400125c3
lea rdx, [0x140037f40]
lea rcx, [rsp + 0x68]
call qword [sym.imp.MSVCP90.dll_bool___cdecl_std::operator_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const____ptr64__wchar_t_const____ptr64_]
neg al
sbb ecx, ecx
and ecx, 2
mov dword [rbx + 0x490c], ecx
lea rdx, str.top_panel_dock
mov rcx, rsi
call fcn.140023520
cmp dword [rbx + 0x479c], 1
sete dl
mov rcx, rax
call fcn.1400255d0
mov ecx, r14d
test al, al
setne cl
mov dword [rbx + 0x479c], ecx
lea rdx, str.bottom_panel_dock
mov rcx, rsi
call fcn.140023520
cmp dword [rbx + 0x47a0], 1
sete dl
mov rcx, rax
call fcn.1400255d0
mov ecx, r14d
test al, al
setne cl
mov dword [rbx + 0x47a0], ecx
lea rdx, str.left_panel_dock
mov rcx, rsi
call fcn.140023520
cmp dword [rbx + 0x47a4], 1
sete dl
mov rcx, rax
call fcn.1400255d0
mov ecx, r14d
test al, al
setne cl
mov dword [rbx + 0x47a4], ecx
lea rdx, str.right_panel_dock
mov rcx, rsi
call fcn.140023520
cmp dword [rbx + 0x47a8], 1
sete dl
mov rcx, rax
call fcn.1400255d0
mov ecx, r14d
test al, al
setne cl
mov dword [rbx + 0x47a8], ecx
lea rdx, str.bottom_panel_height
mov rcx, rsi
call fcn.140023520
mov edx, 0x78
lea r9d, [rdx + 0x50]
mov r8d, edx
mov rcx, rax
call fcn.140025520
mov dword [rbx + 0x47ac], eax
lea rdx, str.right_panel_width
mov rcx, rsi
call fcn.140023520
mov edx, ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsCRT<wchar_t> > >::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsCRT<wchar_t> > >
lea r9d, [rdx + 0x55]
mov r8d, edx
mov rcx, rax
call fcn.140025520
mov dword [rbx + 0x47b0], eax
lea rdx, str.subpanel_expanded
mov rcx, rsi
call fcn.140023520
mov rdi, rax
test rax, rax
je 0x1400127a8
lea rdx, str.navigator
mov rcx, rax
call fcn.140023520
cmp dword [rbx + 0x47b8], 1
sete dl
mov rcx, rax
call fcn.1400255d0
mov ecx, r14d
test al, al
setne cl
mov dword [rbx + 0x47b8], ecx
lea rdx, str.skin_mask
mov rcx, rdi
call fcn.140023520
cmp dword [rbx + 0x47bc], 1
sete dl
mov rcx, rax
call fcn.1400255d0
mov ecx, r14d
test al, al
setne cl
mov dword [rbx + 0x47bc], ecx
lea rdx, str.skin_details
mov rcx, rdi
call fcn.140023520
cmp dword [rbx + 0x47c0], 1
sete dl
mov rcx, rax
call fcn.1400255d0
mov ecx, r14d
test al, al
setne cl
mov dword [rbx + 0x47c0], ecx
lea rdx, str.skin_tone
mov rcx, rdi
call fcn.140023520
cmp dword [rbx + 0x47c4], 1
sete dl
mov rcx, rax
call fcn.1400255d0
mov ecx, r14d
test al, al
setne cl
mov dword [rbx + 0x47c4], ecx
lea rdx, str.browser_folders
mov rcx, rsi
call fcn.140023520
test rax, rax
je 0x14001284e
lea rdx, str.folder
mov rcx, rax
call fcn.140023520
mov rdi, rax
lea rcx, [rsp + 0x68]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::clear_void____ptr64]
test rdi, rdi
je 0x14001284e
mov rcx, qword [rdi + 0x28]
test rcx, rcx
je 0x140012809
mov rax, qword [rcx]
call qword [rax + 0x60]
test rax, rax
je 0x140012809
cmp qword [rax + 0x58], 0x10
jb 0x140012803
mov rcx, qword [rax + 0x40]
jmp 0x14001280c
lea rcx, [rax + 0x40]
jmp 0x14001280c
mov rcx, r14
lea rdx, [rsp + 0x68]
call fcn.140029b30
lea r8, [rsp + 0x70]
cmp qword [rsp + 0x88], 8
cmovae r8, qword [rsp + 0x70]
lea rcx, [rbx + 0x1198]
mov rdx, qword [rcx + 0x10]
call sub.mfc90u.dll_COleDispatchImpl::Release
lea rdx, str.folder
mov rcx, rdi
call fcn.140023620
mov rdi, rax
jmp 0x1400127d2
cmp qword [rbx + 0x11a8], 0
jne 0x14001286f
lea rcx, [rbx + 0x1198]
lea r8, [rbx + 0x1100]
mov rdx, qword [rcx + 0x10]
call sub.mfc90u.dll_COleDataObject::Release
lea rdx, str.navi_preview_mask
mov rcx, rsi
call fcn.140023520
cmp dword [rbx + 0x4790], 1
sete dl
mov rcx, rax
call fcn.1400255d0
mov ecx, r14d
test al, al
setne cl
mov dword [rbx + 0x4790], ecx
lea rdx, str.show_mask
mov rcx, rsi
call fcn.140023520
cmp dword [rbx + 0x4794], 1
sete dl
mov rcx, rax
call fcn.1400255d0
mov ecx, r14d
test al, al
setne cl
mov dword [rbx + 0x4794], ecx
lea rdx, str.mask_color
mov rcx, rsi
call fcn.140023520
mov rdi, rax
lea rcx, [rsp + 0x40]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::clear_void____ptr64]
test rdi, rdi
je 0x140012990
mov rdx, rdi
lea rcx, [rsp + 0x40]
call fcn.140025460
test al, al
je 0x140012990
lea rcx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0x10
cmovae rcx, qword [rsp + 0x48]
lea rdx, str.white
call qword [sym.imp.MSVCR90.dll__stricmp]
test eax, eax
jne 0x140012936
mov dword [rbx + 0x4798], 1
jmp 0x140012990
lea rcx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0x10
cmovae rcx, qword [rsp + 0x48]
lea rdx, str.green
call qword [sym.imp.MSVCR90.dll__stricmp]
test eax, eax
jne 0x140012964
mov dword [rbx + 0x4798], 2
jmp 0x140012990
lea rcx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0x10
cmovae rcx, qword [rsp + 0x48]
lea rdx, str.blue
call qword [sym.imp.MSVCR90.dll__stricmp]
test eax, eax
jne 0x140012990
mov dword [rbx + 0x4798], 3
lea rcx, [rbx + 0xee0]
mov rdx, rsi
call qword [sym.imp.PECtrl.dll_protected:_void___cdecl_CAdjustmentPresetsManager::FromXml_class_TiXmlElement_const____ptr64____ptr64]
mov dword [rsp + 0x30], r14d
mov dword [rsp + 0x2c], r14d
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x24], r14d
lea rdx, [rbx + 0x1550]
mov r8, qword [rbx + 0x1548]
lea rcx, [rsp + 0x20]
call qword [sym.imp.PECtrl.dll_void___cdecl_PECTRL::ReadBatchSettingsFromFile_struct_PECTRL::POPUP_WND_INFO____ptr64__struct_PECTRL::BATCH_PARAMS____ptr64__wchar_t_const____ptr64_]
lea rcx, [rbx + 0x16d0]
lea rdx, [rsp + 0x20]
call qword [sym.imp.PECtrl.dll_public:_void___cdecl_PECTRL::CBaseDialog::SetPopupInfo_struct_PECTRL::POPUP_WND_INFO_const____ptr64____ptr64]
nop
lea rcx, [rsp + 0x40]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x68]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
mov eax, 1
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.14002ab10
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x40]
mov rbp, qword [r11 + 0x48]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret