Function at 0x140054cb0
Capabilities:
Accept command line arguments
Check if file exists
Create process on windows
Link many functions at runtime
Set current directory

Disassembly:
push rbx
push rsi
push r12
mov eax, 0x1f00
call fcn.140114540
sub rsp, rax
mov rax, qword [0x14017c030]
xor rax, rsp
mov qword [rsp + 0x1ee0], rax
mov r12, rcx
call sub.mfc90u.dll_AfxSetIndexInfo
call sub.mfc90u.dll_AfxFailMaxChars
lea rcx, [0x14013da78]
mov qword [rax + 0x20], rcx
xor ecx, ecx
call qword [sym.imp.ole32.dll_OleInitialize]
mov ecx, 7
call sub.CrashReport.dll_Ordinal_1_1
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea rdx, [rsp + 0x60]
mov rcx, rax
call qword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov rbx, rax
mov eax, dword [rsp + 0x60]
cmp eax, 2
jl 0x140054dc3
mov rcx, qword [rbx + 8]
lea rdx, str._install
call qword [sym.imp.MSVCR90.dll__wcsicmp]
test eax, eax
jne 0x140054dbf
lea r8, [rsp + 0x48]
lea rdx, str.SoftwareGlarysoftFileRecoveryRegisterInfo
xor esi, esi
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x48], rsi
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x140054d71
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
jmp 0x140055bb8
lea r8, [rsp + 0x48]
lea rdx, str.SoftwareGlarysoftFileRecovery
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
jne 0x140054db5
mov r8, qword [rsp + 0x48]
lea rdx, str.SoftwareWow6432NodeGlarysoftFileRecovery
xor r9d, r9d
mov rcx, 0xffffffff80000002
call qword [sym.imp.SHLWAPI.dll_SHCopyKeyW]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
jmp 0x140055bb8
mov eax, dword [rsp + 0x60]
cmp eax, 3
jl 0x140054dfd
mov rcx, qword [rbx + 8]
lea rdx, str._preview_wmplayer
call qword [sym.imp.MSVCR90.dll__wcsicmp]
test eax, eax
jne 0x140054dfd
mov rcx, qword [rbx + 0x10]
lea r8d, [rax + 0xa]
xor edx, edx
call qword [sym.imp.MSVCR90.dll_wcstol]
mov rcx, r12
movsxd rdx, eax
call fcn.140054a80
jmp 0x140055bb8
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov ecx, 1
call qword [sym.imp.Register.dll_SetDelayDays]
lea rcx, str.Glarysoft_File_Recovery_Pro
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call qword [sym.imp.Register.dll_AutoCheckLogin]
lea rdx, [0x14013dbd0]
lea rcx, [0x14018bc08]
mov r8d, reloc.WS2_32.dll_recv
call fcn.1400507d0
mov rcx, qword [0x14018bc20]
test rcx, rcx
je 0x140054e6b
mov rax, qword [rcx]
or edx, 0xffffffff
call qword [rax + 0x28]
mov rcx, qword [0x14018bc20]
mov ebx, dword [0x14018bc14]
mov rax, qword [rcx]
call qword [rax + 0x38]
test ebx, ebx
jne 0x140054ea1
lea rcx, [0x14018bc08]
call fcn.140050b80
mov rcx, rax
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x140054ea1
lea rcx, [0x14018bc08]
call fcn.140050b80
mov rcx, rax
call qword [sym.imp.USER32.dll_SetForegroundWindow]
or eax, 0xffffffff
jmp 0x140055bb8
lea rcx, str.TaskbarButtonCreated
mov qword [rsp + 0x1ef8], rbp
mov qword [rsp + 0x1ef0], rdi
call qword [sym.imp.USER32.dll_RegisterWindowMessageW]
lea rcx, str.user32.dll
mov dword [0x14018acc4], eax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140054f07
lea rdx, str.ChangeWindowMessageFilter
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
test rax, rax
je 0x140054f07
mov ecx, dword [0x14018acc4]
mov edx, 1
call rbx
mov edx, 1
mov ecx, 0x111
call rbx
mov ecx, 0x10d0
xor esi, esi
call sub.mfc90u.dll_CSplitterWnd::CSplitterWnd
test rax, rax
je 0x140054f27
xor edx, edx
mov rcx, rax
call fcn.140057630
mov rdi, rax
jmp 0x140054f2a
mov rdi, rsi
lea rcx, [rsp + 0x1cd2]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x1cd0], si
call sub.MSVCR90.dll_memset
lea rdx, [rsp + 0x1cd0]
mov r8d, 0x208
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rcx, [rsp + 0x1cd0]
mov edx, 0x5c
lea rbx, [0x14014b148]
call qword [sym.imp.MSVCR90.dll_wcsrchr]
lea rcx, [rax + 2]
sub rcx, rbx
nop
movzx eax, word [rbx]
add rbx, 2
mov word [rcx + rbx - 2], ax
test ax, ax
jne 0x140054f80
lea rcx, [rsp + 0x1cd0]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea r8, str.render_gdi.dll
lea rdx, [rdi + 0x10c8]
lea rcx, [rsp + 0xe8]
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x40], rsi
call fcn.14003bcd0
mov rbx, qword [rax]
cmp qword [rdi + 0x220], rsi
jne 0x140055031
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rdi + 0x218], rax
test rax, rax
je 0x14005503c
lea rdx, str.SCreateInstance
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rdi + 0x220], rax
test rax, rax
jne 0x140055010
mov rcx, qword [rdi + 0x218]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x14005503c
lea rcx, [rdi + 0x228]
sub rcx, rbx
nop word [rax + rax]
movzx eax, word [rbx]
add rbx, 2
mov word [rbx + rcx - 2], ax
test ax, ax
jne 0x140055020
lea rcx, [rsp + 0x40]
call qword [rdi + 0x220]
lea rcx, [rsp + 0xe8]
call qword [sym.imp.utilities.dll_public:_void___cdecl_SOUI::TStringT_wchar_t__struct_SOUI::wchar_traits_::destructor_void____ptr64]
lea rdx, [rdi + 0x10c0]
lea r8, str..dll
lea rcx, [rsp + 0x90]
call fcn.14003bcd0
lea r8, [rsp + 0x90]
lea rdx, [rdi + 0x10c8]
lea rcx, [rsp + 0xf8]
call fcn.14003bc60
mov rbx, qword [rax]
cmp qword [rdi + 8], rsi
jne 0x1400550e1
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rdi], rax
test rax, rax
je 0x1400550e9
lea rdx, str.SCreateInstance
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rdi + 8], rax
test rax, rax
jne 0x1400550bf
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x1400550e9
lea rcx, [rdi + 0x10]
sub rcx, rbx
nop word [rax + rax]
movzx eax, word [rbx]
add rbx, 2
mov word [rbx + rcx - 2], ax
test ax, ax
jne 0x1400550d0
lea rcx, [rsp + 0x78]
call qword [rdi + reloc.Languages.dll_Ordinal_8]
lea rcx, [rsp + 0xf8]
call qword [sym.imp.utilities.dll_public:_void___cdecl_SOUI::TStringT_wchar_t__struct_SOUI::wchar_traits_::destructor_void____ptr64]
lea rcx, [rsp + 0x90]
call qword [sym.imp.utilities.dll_public:_void___cdecl_SOUI::TStringT_wchar_t__struct_SOUI::wchar_traits_::destructor_void____ptr64]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x78]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov ecx, 0x1b0
call sub.mfc90u.dll_CSplitterWnd::CSplitterWnd
mov rbx, rax
test rax, rax
je 0x140055176
mov rcx, qword [sym.imp.soui.dll_const_SOUI::SObjectDefaultRegister::vftable]
mov rdx, qword [rsp + 0x40]
lea rax, [rsp + 0x108]
mov qword [rsp + 0x108], rcx
lea r9, str.SOUIHOST
mov r8, r12
mov rcx, rbx
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rax
call qword [sym.imp.soui.dll_public:_void___cdecl_SOUI::SApplication::constructor_struct_SOUI::IRenderFactory____ptr64__struct_HINSTANCE______ptr64__wchar_t_const____ptr64__struct_SOUI::ISystemObjectRegister_const____ptr64__int____ptr64]
lea r11, vtable.SOUI::SApplication.0
lea rax, vtable.SOUI::SApplication.1.0
mov qword [rbx], r11
mov qword [rbx + 8], rax
jmp 0x140055179
mov rbx, rsi
lea rax, vtable.SOUI::TplSObjectFactory_class_SSkinSystemIconList_.0
lea rcx, [rbx + 8]
lea rdx, [rsp + 0xb8]
xor r8d, r8d
mov qword [0x14018ada0], rbx
mov qword [rsp + 0xb8], rax
call qword [sym.imp.soui.dll_public:_bool___cdecl_SOUI::SObjectFactoryMgr::RegisterFactory_class_SOUI::SObjectFactory____ptr64__bool____ptr64]
mov rcx, qword [0x14018ada0]
lea rax, vtable.SOUI::TplSObjectFactory_class_SOUI::SGifPlayer_.0
lea rbx, vtable.SOUI::SObjectFactory.0
lea rdx, [rsp + 0x98]
add rcx, 8
xor r8d, r8d
mov qword [rsp + 0x98], rax
mov qword [rsp + 0xb8], rbx
call qword [sym.imp.soui.dll_public:_bool___cdecl_SOUI::SObjectFactoryMgr::RegisterFactory_class_SOUI::SObjectFactory____ptr64__bool____ptr64]
mov rcx, qword [0x14018ada0]
lea rax, vtable.SOUI::TplSObjectFactory_class_SOUI::SSkinGif_.0
lea rdx, [rsp + 0xd8]
add rcx, 8
xor r8d, r8d
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0xd8], rax
call qword [sym.imp.soui.dll_public:_bool___cdecl_SOUI::SObjectFactoryMgr::RegisterFactory_class_SOUI::SObjectFactory____ptr64__bool____ptr64]
mov rcx, qword [0x14018ada0]
lea rax, vtable.SOUI::TplSObjectFactory_class_SOUI::SCheckBoxEx_.0
lea rdx, [rsp + 0xa8]
xor r8d, r8d
add rcx, 8
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0xa8], rax
call qword [sym.imp.soui.dll_public:_bool___cdecl_SOUI::SObjectFactoryMgr::RegisterFactory_class_SOUI::SObjectFactory____ptr64__bool____ptr64]
mov rcx, qword [0x14018ada0]
lea rax, vtable.SOUI::TplSObjectFactory_class_SOUI::SImageWndEx_.0
lea rdx, [rsp + 0xc8]
add rcx, 8
xor r8d, r8d
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0xc8], rax
call qword [sym.imp.soui.dll_public:_bool___cdecl_SOUI::SObjectFactoryMgr::RegisterFactory_class_SOUI::SObjectFactory____ptr64__bool____ptr64]
mov rcx, qword [0x14018ada0]
lea rax, vtable.SOUI::TplSObjectFactory_class_SOUI::SCalendar2_.0
lea rdx, [rsp + 0x88]
add rcx, 8
xor r8d, r8d
mov qword [rsp + 0xc8], rbx
mov qword [rsp + 0x88], rax
call qword [sym.imp.soui.dll_public:_bool___cdecl_SOUI::SObjectFactoryMgr::RegisterFactory_class_SOUI::SObjectFactory____ptr64__bool____ptr64]
mov rcx, qword [0x14018ada0]
lea rax, vtable.SOUI::TplSObjectFactory_class_CMCListView2_.0
lea rdx, [rsp + 0x80]
xor r8d, r8d
add rcx, 8
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x80], rax
call qword [sym.imp.soui.dll_public:_bool___cdecl_SOUI::SObjectFactoryMgr::RegisterFactory_class_SOUI::SObjectFactory____ptr64__bool____ptr64]
mov rcx, qword [0x14018ada0]
lea rax, vtable.SOUI::TplSObjectFactory_class_SOUI::SStatic2_.0
lea rdx, [rsp + 0xa0]
add rcx, 8
xor r8d, r8d
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0xa0], rax
call qword [sym.imp.soui.dll_public:_bool___cdecl_SOUI::SObjectFactoryMgr::RegisterFactory_class_SOUI::SObjectFactory____ptr64__bool____ptr64]
mov rcx, qword [0x14018ada0]
lea rax, vtable.SOUI::TplSObjectFactory_class_SOUI::CDateTimePicker_.0
lea rdx, [rsp + 0xb0]
add rcx, 8
xor r8d, r8d
mov qword [rsp + 0xa0], rbx
mov qword [rsp + 0xb0], rax
call qword [sym.imp.soui.dll_public:_bool___cdecl_SOUI::SObjectFactoryMgr::RegisterFactory_class_SOUI::SObjectFactory____ptr64__bool____ptr64]
mov rcx, qword [0x14018ada0]
lea rax, vtable.SOUI::TplSObjectFactory_class_SOUI::CCalendarEx_.0
lea rdx, [rsp + 0xc0]
xor r8d, r8d
add rcx, 8
mov qword [rsp + 0xb0], rbx
mov qword [rsp + 0xc0], rax
call qword [sym.imp.soui.dll_public:_bool___cdecl_SOUI::SObjectFactoryMgr::RegisterFactory_class_SOUI::SObjectFactory____ptr64__bool____ptr64]
mov qword [rsp + 0xc0], rbx
mov rcx, qword [0x14018ada0]
lea rax, vtable.SOUI::TplSObjectFactory_class_SOUI::CWMPCtrl_.0
lea rdx, [rsp + 0xd0]
xor r8d, r8d
add rcx, 8
mov qword [rsp + 0xd0], rax
call qword [sym.imp.soui.dll_public:_bool___cdecl_SOUI::SObjectFactoryMgr::RegisterFactory_class_SOUI::SObjectFactory____ptr64__bool____ptr64]
mov rcx, qword [0x14018ada0]
lea rax, vtable.SOUI::TplSObjectFactory_class_CTileView2_.0
lea rdx, [rsp + 0xe0]
add rcx, 8
xor r8d, r8d
mov qword [rsp + 0xd0], rbx
mov qword [rsp + 0xe0], rax
call qword [sym.imp.soui.dll_public:_bool___cdecl_SOUI::SObjectFactoryMgr::RegisterFactory_class_SOUI::SObjectFactory____ptr64__bool____ptr64]
mov ecx, reloc.WS2_32.dll_recv
mov qword [rsp + 0xe0], rbx
call sub.mfc90u.dll_CSplitterWnd::CSplitterWnd
mov rbx, rax
test rax, rax
je 0x140055413
lea rax, vtable.SOUI::TObjRefImpl_struct_SOUI::IRealWndHandler_.0
mov qword [rbx], rax
lea rax, vtable.SOUI::CRealWndHandler.0
mov dword [rbx + 8], 1
mov qword [rbx], rax
jmp 0x140055416
mov rbx, rsi
mov rcx, qword [0x14018ada0]
mov rdx, rbx
call qword [sym.imp.soui.dll_public:_void___cdecl_SOUI::SApplication::SetRealWndHandler_struct_SOUI::IRealWndHandler____ptr64____ptr64]
mov r11, qword [rbx]
mov rcx, rbx
call qword [r11 + reloc.Languages.dll_Ordinal_8]
lea rcx, str.soui_sys_resource.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rbx, rax
test rax, rax
je 0x140055494
lea rdx, [rsp + 0x68]
xor ecx, ecx
mov qword [rsp + 0x68], rsi
call qword [sym.imp.soui.dll_int___cdecl_SOUI::CreateResProvider_enum_SOUI::BUILTIN_RESTYPE__struct_IObjRef____ptr64____ptr64_]
mov rcx, qword [rsp + 0x68]
xor r8d, r8d
mov r9, qword [rcx]
mov rdx, rbx
call qword [r9 + 0x18]
mov rdx, qword [rsp + 0x68]
mov rcx, qword [0x14018ada0]
call qword [sym.imp.soui.dll_public:_unsigned_int___cdecl_SOUI::SApplication::LoadSystemNamedResource_struct_SOUI::IResProvider____ptr64____ptr64]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x140055494
mov rax, qword [rcx]
call qword [rax + reloc.Languages.dll_Ordinal_8]
lea r8, str.resprovider_zip.dll
lea rdx, [rdi + 0x10c8]
lea rcx, [rsp + 0xf0]
mov qword [rsp + 0x50], rsi
call fcn.14003bcd0
mov rbx, qword [rax]
cmp qword [rdi + 0x868], rsi
jne 0x140055521
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rdi + 0x860], rax
test rax, rax
je 0x14005552c
lea rdx, str.SCreateInstance
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rdi + 0x868], rax
test rax, rax
jne 0x140055500
mov rcx, qword [rdi + 0x860]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x14005552c
lea rcx, [rdi + 0x870]
sub rcx, rbx
nop word [rax + rax]
movzx eax, word [rbx]
add rbx, 2
mov word [rcx + rbx - 2], ax
test ax, ax
jne 0x140055510
lea rcx, [rsp + 0x50]
call qword [rdi + 0x868]
lea rcx, [rsp + 0xf0]
call qword [sym.imp.utilities.dll_public:_void___cdecl_SOUI::TStringT_wchar_t__struct_SOUI::wchar_traits_::destructor_void____ptr64]
mov rcx, qword [rsp + 0x50]
lea rax, str.uires.zip
mov qword [rsp + 0x130], rax
mov rax, qword [rsp + 0x40]
mov dword [rsp + 0x120], esi
mov qword [rsp + reloc.mfc90u.dll_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_____], rax
lea rax, [0x140127e70]
mov qword [rsp + 0x150], rsi
mov qword [rsp + 0x148], rax
mov rax, qword [rcx]
lea rdx, [rsp + 0x120]
xor r8d, r8d
call qword [rax + 0x18]
mov rcx, qword [0x14018ada0]
lea rdx, [0x1401336c0]
mov r9d, 1
mov r8d, 0xb4
call qword [sym.imp.soui.dll_public:_void___cdecl_SOUI::SApplication::InitXmlNamedID_struct_SOUI::TNAMEDVALUE_int__const____ptr64__int__int____ptr64]
mov rcx, qword [0x14018ada0]
mov rdx, qword [rsp + 0x50]
lea r8, str.uidef:xml_init
add rcx, 0x20
call qword [sym.imp.soui.dll_public:_void___cdecl_SOUI::SResProviderMgr::AddResProvider_struct_SOUI::IResProvider____ptr64__wchar_t_const____ptr64____ptr64]
lea rcx, [rsp + 0x1b10]
mov qword [rsp + 0x58], rsi
call fcn.14001b7a0
lea r8, str.translator.dll
lea rdx, [rdi + 0x10c8]
lea rcx, [rsp + 0x100]
call fcn.14003bcd0
mov rbp, qword [rsp + 0x1ef8]
mov rbx, qword [rax]
cmp qword [rdi + 0x438], rsi
jne 0x140055671
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rdi + 0x430], rax
test rax, rax
je 0x14005567c
lea rdx, str.SCreateInstance
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rdi + 0x438], rax
test rax, rax
jne 0x140055648
mov rcx, qword [rdi + 0x430]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x14005567c
lea rcx, [rdi + 0x440]
sub rcx, rbx
nop word [rax + rax]
movzx eax, word [rbx]
add rbx, 2
mov word [rcx + rbx - 2], ax
test ax, ax
jne 0x140055660
lea rcx, [rsp + 0x58]
call qword [rdi + 0x438]
lea rcx, [rsp + 0x100]
call qword [sym.imp.utilities.dll_public:_void___cdecl_SOUI::TStringT_wchar_t__struct_SOUI::wchar_traits_::destructor_void____ptr64]
mov rdx, qword [rsp + 0x58]
test rdx, rdx
je 0x1400556c6
mov rcx, qword [0x14018ada0]
call qword [sym.imp.soui.dll_public:_void___cdecl_SOUI::SApplication::SetTranslator_struct_SOUI::ITranslatorMgr____ptr64____ptr64]
lea rcx, [rsp + 0x1b10]
xor r8d, r8d
xor edx, edx
call fcn.14001b8f0
mov rcx, qword [rsp + 0x58]
lea rdx, [rsp + 0x1b10]
mov rax, qword [rcx]
call qword [rax + 0x30]
lea rcx, [rsp + 0x1c00]
call qword [sym.imp.utilities.dll_public:_void___cdecl_pugi::xml_document::constructor_void____ptr64]
mov rcx, qword [0x14018ada0]
lea r9, str.LAYOUT
lea r8, str.XML_MESSAGE
lea rdx, [rsp + 0x1c00]
call qword [sym.imp.soui.dll_public:_int___cdecl_SOUI::SApplication::LoadXmlDocment_class_pugi::xml_document____ptr64__wchar_t_const____ptr64__wchar_t_const____ptr64____ptr64]
test eax, eax
je 0x140055724
lea r8, str.SOUI
lea rdx, [rsp + 0x118]
lea rcx, [rsp + 0x1c00]
xor r9d, r9d
call qword [sym.imp.utilities.dll_public:_class_pugi::xml_node___cdecl_pugi::xml_node::child_wchar_t_const____ptr64__bool____ptr64]
mov rcx, qword [rax]
call qword [sym.imp.soui.dll_int___cdecl_SOUI::SetMsgTemplate_class_pugi::xml_node_]
lea rcx, [rsp + 0x1c00]
call qword [sym.imp.utilities.dll_public:_void___cdecl_pugi::xml_document::destructor_void____ptr64]
xor ecx, ecx
call sub.mfc90u.dll_AfxComparePath
call fcn.140056650
test eax, eax
je 0x140055764
lea rcx, [0x140054ba0]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], esi
call sub.mfc90u.dll_CPtrList::AddTail
jmp 0x140055941
lea rcx, [rsp + 0x38]
call qword [0x140122ef8]
lea rcx, [rsp + 0x70]
call qword [0x140122ef8]
lea rcx, [rsp + 0x38]
mov edx, 0x8000
mov dword [rsp + 0x30], 0x10000
call qword [sym.imp.mfc90u.dll_CStdioFile::Flush]
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x28], rcx
lea r8, str.UpdateFile
lea rdx, [0x140127cc0]
mov rcx, 0xffffffff80000002
xor r9d, r9d
mov qword [rsp + 0x20], rax
call qword [sym.imp.Config.dll_Ordinal_11]
lea rcx, [rsp + 0x70]
mov edx, 0x8000
mov ebx, eax
mov dword [rsp + 0x30], 0x10000
call qword [sym.imp.mfc90u.dll_CStdioFile::Flush]
lea rcx, [rsp + 0x30]
lea r8, str.UpdateVer
lea rdx, [0x140127cc0]
mov qword [rsp + 0x28], rcx
mov rcx, 0xffffffff80000002
xor r9d, r9d
mov qword [rsp + 0x20], rax
call qword [sym.imp.Config.dll_Ordinal_11]
lea rcx, [rsp + 0x38]
or edx, 0xffffffff
call qword [sym.imp.mfc90u.dll_CDataPathProperty::Open]
lea rcx, [rsp + 0x70]
or edx, 0xffffffff
call qword [sym.imp.mfc90u.dll_CDataPathProperty::Open]
test ebx, ebx
jne 0x14005592b
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14005592b
lea rcx, [rsp + 0x110]
call fcn.140056030
lea r9d, [rbx + 0x24]
lea rdx, str.2302007
mov r8, qword [rax]
xor ecx, ecx
mov dword [rsp + 0x20], 0x64
call fcn.14001b6b0
lea rcx, [rsp + 0x110]
cmp rax, 6
sete bl
call qword [sym.imp.mfc90u.dll_CView::CView]
test bl, bl
je 0x14005592b
mov r8, qword [rsp + 0x38]
xor r9d, r9d
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], rsi
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
lea rcx, [rsp + 0x70]
call qword [sym.imp.mfc90u.dll_CView::CView]
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc90u.dll_CView::CView]
lea r11, vtable.CGUTranslator.0
lea rcx, [rsp + 0x1bb8]
mov qword [rsp + 0x1b10], r11
call fcn.14001c2e0
mov rcx, qword [rsp + 0x58]
lea r11, vtable.SOUI::TObjRefImpl_struct_SOUI::ITranslator_.0
mov qword [rsp + 0x1b10], r11
test rcx, rcx
je 0x1400558f4
mov rax, qword [rcx]
call qword [rax + reloc.Languages.dll_Ordinal_8]
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x140055904
mov rax, qword [rcx]
call qword [rax + reloc.Languages.dll_Ordinal_8]
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x140055914
mov rax, qword [rcx]
call qword [rax + reloc.Languages.dll_Ordinal_8]
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140055924
mov rax, qword [rcx]
call qword [rax + reloc.Languages.dll_Ordinal_8]
xor eax, eax
jmp 0x140055bb0
lea rcx, [rsp + 0x70]
call qword [sym.imp.mfc90u.dll_CView::CView]
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc90u.dll_CView::CView]
call sub.mfc90u.dll_AfxFailMaxChars
lea rdx, str.LAYOUT:XML_BEGIN
lea rcx, [rsp + 0x1490]
mov qword [rax + 0x10], r12
call fcn.140001b90
lea rcx, [rsp + 0x1490]
xor edx, edx
call qword [sym.imp.soui.dll_public_virtual:_long_long___int64____cdecl_SOUI::SHostDialog::DoModal_struct_HWND______ptr64____ptr64]
cmp rax, 1
jne 0x140055b0a
lea rcx, [0x14018afd0]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r11d, dword [0x14018aff8]
test r11d, r11d
jne 0x1400559a4
lea rcx, [0x14018afd0]
call fcn.14001d7d0
mov r11d, dword [0x14018aff8]
inc r11d
lea rcx, [0x14018afd0]
mov dword [0x14018aff8], r11d
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea rdx, [0x140054090]
lea rcx, [0x14018bc30]
xor r8d, r8d
call fcn.14005a090
lea rcx, [rsp + 0x160]
call fcn.1400222c0
lea rdx, [rsp + 0x1a78]
lea rcx, [rsp + 0x8b0]
call fcn.14000f350
call qword [sym.imp.USER32.dll_GetActiveWindow]
lea rcx, [rsp + 0x160]
mov rdx, rax
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], esi
call qword [sym.imp.soui.dll_public:_struct_HWND______ptr64___cdecl_SOUI::SHostWnd::Create_struct_HWND______ptr64__int__int__int__int____ptr64]
mov rcx, qword [rsp + 0x508]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x110
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, qword [rsp + 0x508]
lea rcx, [rsp + 0x4f0]
call qword [sym.imp.soui.dll_public:_int___cdecl_SOUI::CSimpleWnd::CenterWindow_struct_HWND______ptr64____ptr64]
mov rcx, qword [rsp + 0x508]
mov edx, 1
call qword [sym.imp.USER32.dll_ShowWindow]
mov rdx, qword [rsp + 0x508]
lea rcx, [0x14018bc08]
call fcn.140050a40
mov rdx, qword [rsp + 0x508]
mov rcx, qword [0x14018ada0]
call qword [sym.imp.soui.dll_public:_int___cdecl_SOUI::SApplication::Run_struct_HWND______ptr64____ptr64]
mov rcx, qword [0x140181558]
mov dword [0x140181560], 1
mov esi, eax
call qword [sym.imp.WS2_32.dll_closesocket]
mov ecx, 0x7d0
call qword [sym.imp.KERNEL32.dll_Sleep]
lea rcx, [0x14018afd0]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
sub dword [0x14018aff8], 1
jne 0x140055af0
lea rcx, [0x14018afd0]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x14018affc], 0
je 0x140055ad9
call qword [sym.imp.WS2_32.dll_WSACleanup]
lea rcx, [0x14018afd0]
mov dword [0x14018affc], 0xffffffff
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea rcx, [0x14018afd0]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea rcx, [rsp + 0x160]
call fcn.140022830
lea rcx, [rsp + 0x1490]
call fcn.140001cc0
mov rcx, qword [0x14018ada0]
test rcx, rcx
je 0x140055b2d
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
lea r11, vtable.CGUTranslator.0
lea rcx, [rsp + 0x1bb8]
mov qword [rsp + 0x1b10], r11
call fcn.14001c2e0
mov rcx, qword [rsp + 0x58]
lea r11, vtable.SOUI::TObjRefImpl_struct_SOUI::ITranslator_.0
mov qword [rsp + 0x1b10], r11
test rcx, rcx
je 0x140055b68
mov rax, qword [rcx]
call qword [rax + reloc.Languages.dll_Ordinal_8]
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x140055b78
mov rax, qword [rcx]
call qword [rax + reloc.Languages.dll_Ordinal_8]
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x140055b88
mov rax, qword [rcx]
call qword [rax + reloc.Languages.dll_Ordinal_8]
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140055b98
mov rax, qword [rcx]
call qword [rax + reloc.Languages.dll_Ordinal_8]
mov rcx, rdi
call fcn.1400549b0
mov rcx, rdi
call sub.mfc90u.dll_CStatusBar::CStatusBar
call qword [sym.imp.ole32.dll_OleUninitialize]
mov eax, esi
mov rdi, qword [rsp + 0x1ef0]
mov rcx, qword [rsp + 0x1ee0]
xor rcx, rsp
call fcn.140113b50
add rsp, 0x1f00
pop r12
pop rsi
pop rbx
ret