Function at 0x416bd0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x444e23
mov eax, dword fs:[0]
push eax
sub esp, 0x478
mov eax, dword [0x467060]
xor eax, esp
mov dword [esp + 0x470], eax
push ebx
push esi
push edi
mov eax, dword [0x467060]
xor eax, esp
push eax
lea eax, [esp + 0x488]
mov dword fs:[0], eax
mov edi, ecx
push 0
push 0x467898
push 0x4671a4
push 0
push str.IDC_INSTALL_PLUGIN_CHK
call dword [sym.imp.ouilibx.dll_public:_class_OUI::COVWnd____thiscall_OUI::COVDialog::GetDlgItem_wchar_t_const__]
push eax
call sub.MSVCR110.dll___RTDynamicCast
add esp, 0x14
test eax, eax
je 0x416c58
mov ecx, eax
call dword [sym.imp.ouilibx.dll_public:_int___thiscall_OUI::COVCheckBox::GetCheck_void_const]
test eax, eax
jne 0x416c58
push 0x10
push str.IDS_INSTALL_CONTINUE_TIP
mov ecx, edi
call dword [sym.imp.ouilibx.dll_public:_int___thiscall_OUI::COVDialog::MessageBoxW_wchar_t_const___unsigned_int_]
jmp 0x41720c
mov eax, dword [0x469f34]
test eax, eax
jne 0x416c9d
push 0xe4
call dword [sym.imp.MSVCR110.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
mov dword [esp + 0x34], eax
mov dword [esp + 0x490], 0
test eax, eax
je 0x416c8b
mov ecx, eax
call fcn.0040dc50
jmp 0x416c8d
xor eax, eax
mov dword [esp + 0x490], 0xffffffff
mov dword [0x469f34], eax
cmp byte [eax + 0xad], 0
mov esi, dword [sym.imp.ouilibx.dll_public:_void___thiscall_OUI::COString::destructor_void_]
mov ebx, dword [sym.imp.isafepxy.dll_ISAFE_WriteProgramLogNoMask]
jne 0x416ea5
push str.IDC_PATH_COMBO
lea eax, [esp + 0x3c]
push eax
mov ecx, edi
call dword [sym.imp.ouilibx.dll_public:_class_OUI::COString___thiscall_OUI::COVDialog::GetDlgItemTextW_wchar_t_const__]
lea ecx, [esp + 0x38]
mov dword [esp + 0x490], 1
call dword [sym.imp.ouilibx.dll_public:_int___thiscall_OUI::COString::IsEmpty_void_const]
test eax, eax
je 0x416cfc
call fcn.0040dde0
add eax, 0x78
cmp dword [eax + 0x14], 8
jb 0x416cf1
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x3c]
call dword [sym.imp.ouilibx.dll_public:_class_OUI::COString____thiscall_OUI::COString::operator_wchar_t_const__]
lea ecx, [esp + 0x38]
call dword [sym.imp.ouilibx.dll_public:_wchar_t_const____thiscall_OUI::COString::operator_wchar_t_const__void_const]
mov ecx, eax
call fcn.0040a770
test al, al
jne 0x416d70
lea eax, [esp + 0x34]
push str.IDS_INSTALL_DIR_INVALID
push eax
call dword [sym.imp.ouilibx.dll_public:_static_class_OUI::OSTRING_TABLE____cdecl_OUI::OSTRING_TABLE::GetStringTable_void_]
mov ecx, eax
call dword [sym.imp.ouilibx.dll_public:_class_OUI::COString___thiscall_OUI::OSTRING_TABLE::LoadStringW_wchar_t_const__]
push 0x10
push 0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x498], 2
call dword [sym.imp.ouilibx.dll_public:_wchar_t_const____thiscall_OUI::COString::operator_wchar_t_const__void_const]
push eax
mov ecx, edi
call dword [sym.imp.ouilibx.dll_public:_int___thiscall_OUI::COVDialog::MessageBoxW_wchar_t_const___wchar_t_const___unsigned_int_]
lea ecx, [esp + 0x34]
mov byte [esp + 0x490], 1
call esi
lea ecx, [esp + 0x38]
mov bl, 1
mov dword [esp + 0x490], 0xffffffff
call esi
mov al, bl
jmp 0x41720e
push 0
push 0x4678d4
push 0x4671a4
push 0
push str.IDC_MAIN_INST_VS
mov ecx, edi
call dword [sym.imp.ouilibx.dll_public:_class_OUI::COVWnd____thiscall_OUI::COVContainer::GetChildWnd_wchar_t_const__]
push eax
call sub.MSVCR110.dll___RTDynamicCast
add esp, 0x14
mov dword [esp + 0x34], eax
test eax, eax
jne 0x416db6
lea ecx, [esp + 0x38]
xor bl, bl
mov dword [esp + 0x490], 0xffffffff
call esi
mov al, bl
jmp 0x41720e
lea ecx, [esp + 0x38]
call dword [sym.imp.ouilibx.dll_public:_wchar_t_const____thiscall_OUI::COString::operator_wchar_t_const__void_const]
push eax
call fcn.0040dde0
lea ecx, [eax + 0x78]
call fcn.00403d40
push 2
push 0x168
push 0x280
push 0
push 0
mov ecx, edi
call dword [sym.imp.ouilibx.dll_public:_void___thiscall_OUI::COVWnd::SetWindowPos_int__int__int__int__unsigned_int_]
mov ecx, dword [esp + 0x34]
push 1
push str.IDC_INST_SECOND_VIEW
call dword [sym.imp.ouilibx.dll_public:_void___thiscall_OUI::COVViewStack::ShowViewByID_wchar_t_const___bool_]
push str.IDB_EU_INST_BK2
call dword [sym.imp.ouilibx.dll_public:_static_class_OUI::COIDManager____cdecl_OUI::COIDManager::GetIDManager_void_]
mov ecx, eax
call dword [sym.imp.ouilibx.dll_public:_unsigned_long_int___thiscall_OUI::COIDManager::GetResID_wchar_t_const__]
mov ecx, edi
mov dword [esp + 0x34], eax
call dword [sym.imp.ouilibx.dll_public:_struct_OUI::IControl____thiscall_OUI::COVWnd::GetControl_void_]
mov esi, eax
mov dword [esp + 0x18], esi
test esi, esi
je 0x416e26
mov ecx, dword [esi]
push esi
call dword [ecx + 4]
mov byte [esp + 0x490], 3
test esi, esi
je 0x416e40
mov eax, dword [esi]
push dword [esp + 0x34]
mov ecx, esi
call dword [eax + 0x8c]
push 0
push 0x4678b8
push 0x4671a4
push 0
push str.IDC_LOGO_ANIM
mov ecx, edi
call dword [sym.imp.ouilibx.dll_public:_class_OUI::COVWnd____thiscall_OUI::COVDialog::GetDlgItem_wchar_t_const__]
push eax
call sub.MSVCR110.dll___RTDynamicCast
add esp, 0x14
test eax, eax
je 0x416e74
mov edx, dword [eax]
push 0x50
mov ecx, eax
call dword [edx + 0x1d8]
push str.CInstMainDlg::OnClickInstBtn__ShowView:_IDC_INST_SECOND_VIEW_
call ebx
add esp, 4
mov byte [esp + 0x490], 1
test esi, esi
je 0x416e90
mov eax, dword [esi]
push esi
call dword [eax + 8]
lea ecx, [esp + 0x38]
mov dword [esp + 0x490], 0xffffffff
call dword [sym.imp.ouilibx.dll_public:_void___thiscall_OUI::COString::destructor_void_]
call fcn.00408df0
test al, al
je 0x417107
call fcn.004090d0
mov byte [esp + 0x17], al
xor eax, eax
push 0x206
push eax
mov word [esp + 0x74], ax
lea eax, [esp + 0x76]
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
lea ecx, [esp + 0x6c]
call fcn.0040a8b0
call fcn.0040dde0
cmp word [esp + 0x6c], 0
lea esi, [eax + 0x78]
jne 0x416ef2
xor ecx, ecx
jmp 0x416f0f
lea ecx, [esp + 0x6c]
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x416f00
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [esp + 0x70]
push eax
mov ecx, esi
call fcn.00405570
call fcn.0040dde0
cmp byte [eax + 0xb2], 0
jne 0x417000
cmp byte [esp + 0x17], 0
jne 0x417000
push str.UninstallMaster
lea ecx, [esp + 0x20]
call fcn.00405670
push str..exe
mov edx, eax
lea ecx, [esp + 0x58]
mov dword [esp + 0x494], 5
call fcn.00404870
add esp, 4
lea ecx, [esp + 0x1c]
mov byte [esp + 0x490], 7
call fcn.00401270
cmp dword [esp + 0x50], 8
lea eax, [esp + 0x3c]
cmovae eax, dword [esp + 0x3c]
push eax
call fcn.0040dde0
lea edx, [eax + 0x78]
lea ecx, [esp + 0x40]
call fcn.0041fa60
add esp, 4
mov byte [esp + 0x490], 8
cmp dword [esp + 0x50], 8
lea esi, [esp + 0x3c]
cmovae esi, dword [esp + 0x3c]
call fcn.00403f70
push ecx
push 1
push 0
push 0x44acac
push esi
call fcn.00432ee0
cmp dword [esp + 0x68], 8
lea eax, [esp + 0x54]
cmovae eax, dword [esp + 0x54]
push eax
push str.CInstMainDlg::OnClickInstBtn__call__s:_end_
call ebx
mov eax, dword [edi]
add esp, 8
mov ecx, edi
push 0
call dword [eax + 0x24c]
lea ecx, [esp + 0x3c]
call fcn.00401270
lea ecx, [esp + 0x54]
call fcn.00401270
jmp 0x41720c
xor eax, eax
push 0x206
push eax
mov word [esp + 0x27c], ax
lea eax, [esp + 0x27e]
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
lea eax, [esp + 0x6c]
push 0x44b974
push eax
lea eax, [esp + 0x27c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [esp + 0x274]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x417107
push str.CInstMainDlg::OnClickInstBtn__BackUpIgnoreFiles:_begin_
call ebx
add esp, 4
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x58]
call fcn.00405670
lea eax, [esp + 0x54]
push eax
mov dword [esp + 0x494], 4
call fcn.0040de60
mov dword [esp + 0x490], 0xffffffff
cmp dword [esp + 0x68], 8
jb 0x41709a
push dword [esp + 0x54]
call dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void__]
add esp, 4
push str.CInstMainDlg::OnClickInstBtn__BackUpIgnoreFiles:_end_
call ebx
mov eax, dword [edi]
add esp, 4
mov ecx, edi
push 0
call dword [eax + 0x40]
push str.CInstMainDlg::OnClickInstBtn__call_uninstall.exe__popup:_begin_
call ebx
mov eax, dword [0x469f0c]
add esp, 4
test al, 1
jne 0x4170d5
or eax, 1
push 0x4486e0
mov dword [0x469f0c], eax
call fcn.00441527
add esp, 4
push ecx
push 0
push 1
push str._popup
lea eax, [esp + 0x284]
push eax
call fcn.00432ee0
push str.CInstMainDlg::OnClickInstBtn__call_uninstall.exe__popup:_end_
call ebx
mov eax, dword [edi]
add esp, 4
mov ecx, edi
push 1
call dword [eax + 0x40]
mov ecx, edi
call dword [sym.imp.ouilibx.dll_public:_void___thiscall_OUI::COVDialog::BringToFront_void_]
sub esp, 0x20
mov ecx, esp
mov dword [esp + 0x38], esp
sub esp, 0x14
mov eax, esp
mov dword [esp + 0x70], fcn.00415cb0
mov dword [esp + 0x74], 0
movq xmm0, qword [esp + 0x70]
movq qword [eax], xmm0
mov dword [esp + 0x78], edi
movq xmm0, qword [esp + 0x78]
movq qword [eax + 8], xmm0
call fcn.00417e30
mov dword [esp + 0x4b0], 9
mov eax, dword [0x46a91c]
test al, 1
jne 0x417195
or eax, 1
mov dword [0x46a91c], eax
mov byte [esp + 0x4b0], 0xa
mov dword [0x46a908], 0
mov dword [0x46a910], 0
call fcn.00436eb0
push 0x448720
call fcn.00441527
add esp, 4
mov byte [esp + 0x4b0], 9
mov ecx, 0x46a8f0
mov dword [esp + 0x4b0], 0xffffffff
call fcn.00436f80
push str.CInstMainDlg::OnClickInstBtn__AddTask:_Install_
call ebx
add esp, 4
lea ecx, [esp + 0x34]
push str.IDC_CLOSE_BUTTON
call dword [sym.imp.ouilibx.dll_public:_void___thiscall_OUI::COString::constructor_wchar_t_const__]
lea ecx, [esp + 0x34]
mov dword [esp + 0x490], 0xb
call dword [sym.imp.ouilibx.dll_public:_wchar_t_const____thiscall_OUI::COString::operator_wchar_t_const__void_const]
push eax
mov ecx, edi
call dword [sym.imp.ouilibx.dll_public:_class_OUI::COVWnd____thiscall_OUI::COVDialog::GetDlgItem_wchar_t_const__]
mov esi, eax
test esi, esi
je 0x4171f7
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x3c]
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x58]
lea ecx, [esp + 0x34]
mov dword [esp + 0x490], 0xffffffff
call dword [sym.imp.ouilibx.dll_public:_void___thiscall_OUI::COString::destructor_void_]
mov al, 1
mov ecx, dword [esp + 0x488]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x470]
xor ecx, esp
call fcn.004413e6
mov esp, ebp
pop ebp
ret 4