Function at 0x488e40
Capabilities:
Accept command line arguments
Check if file exists
Create process on windows
Set current directory

Disassembly:
mov eax, 0x1364
call fcn.00589a80
mov eax, dword [0x63727c]
xor eax, esp
mov dword [esp + 0x1360], eax
mov edx, dword [esp + 0x1374]
mov ecx, dword [esp + 0x1370]
mov eax, dword [esp + 0x136c]
push ebx
mov ebx, dword [esp + 0x136c]
push ebp
push esi
push edx
push ecx
push eax
push ebx
mov dword [esp + 0x44], ebx
call fcn.00558a94
call fcn.005587d2
xor ebp, ebp
push ebp
mov dword [eax + 0x10], 0x5e2eec
call dword [sym.imp.ole32.dll_OleInitialize]
push 7
call sub.CrashReport.dll_Ordinal_1_1
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
cmp dword [esp + 0x30], 2
mov esi, eax
jl 0x488ed8
mov ecx, dword [esi + 4]
push str._install
push ecx
call fcn.005891c6
add esp, 8
test eax, eax
jne 0x488ed8
lea eax, [ebp + 1]
jmp 0x4895b5
cmp dword [esp + 0x30], 3
jl 0x488f0f
mov edx, dword [esi + 4]
push str._preview_wmplayer
push edx
call fcn.005891c6
add esp, 8
test eax, eax
jne 0x488f0f
mov eax, dword [esi + 8]
push 0xa
push ebp
push eax
call fcn.00589453
push eax
push ebx
call fcn.00487df0
add esp, 0x14
jmp 0x4895b5
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push 1
call dword [sym.imp.Register.dll_SetDelayDays]
push ebp
push ebp
push ebp
push 0x5d3c10
call dword [sym.imp.Register.dll_AutoCheckLogin]
add esp, 0x14
push 0xc
push 0x5e2fc8
mov ecx, 0x6391ec
call fcn.0047ec30
mov ecx, 0x6391ec
call fcn.0047e860
test eax, eax
jne 0x488f7c
mov ecx, 0x6391ec
call fcn.0047ea90
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x488f7c
mov ecx, 0x6391ec
call fcn.0047ea90
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
or eax, 0xffffffff
jmp 0x4895b5
call fcn.004813b0
push str.user32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
cmp eax, ebp
je 0x488fb6
push str.ChangeWindowMessageFilter
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
cmp esi, ebp
je 0x488fb6
mov ecx, dword [0x638f7c]
push 1
push ecx
call esi
push 1
push 0x111
call esi
push edi
push 0x1088
mov dword [esp + 0x40], ebp
call fcn.0053e4de
add esp, 4
cmp eax, ebp
je 0x488fdc
push ebp
mov ecx, eax
call fcn.00484180
mov edi, eax
mov dword [esp + 0x28], eax
jmp 0x488fe2
xor edi, edi
mov dword [esp + 0x28], edi
push 0x206
lea eax, [esp + 0x116e]
xor edx, edx
push ebp
push eax
mov word [esp + 0x1174], dx
call fcn.00585e50
add esp, 0xc
push 0x208
lea ecx, [esp + 0x116c]
push ecx
push ebp
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea edx, [esp + 0x1168]
push 0x5c
push edx
mov esi, 0x5e2e0c
call fcn.00588883
lea ecx, [eax + 2]
add esp, 8
sub ecx, esi
movzx eax, word [esi]
mov word [ecx + esi], ax
add esi, 2
cmp ax, bp
jne 0x489032
lea eax, [esp + 0x1168]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea ecx, [esp + 0x14]
push ecx
mov ecx, edi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x18], ebp
call fcn.00486dc0
lea edx, [esp + 0x24]
push edx
mov ecx, edi
call fcn.00486d00
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
push edx
call eax
push 0xe8
call fcn.0053e4de
mov esi, eax
add esp, 4
cmp esi, ebp
je 0x4890c4
mov edi, dword [esp + 0x14]
push ebp
lea ecx, [esp + 0x24]
call dword [sym.imp.soui.dll_public:_void___thiscall_SOUI::SObjectDefaultRegister::constructor_void_]
push eax
push 0x5e2df8
push ebx
push edi
mov ecx, esi
call dword [sym.imp.soui.dll_public:_void___thiscall_SOUI::SApplication::constructor_struct_SOUI::IRenderFactory___struct_HINSTANCE_____wchar_t_const___struct_SOUI::ISystemObjectRegister_const___int_]
mov edi, dword [esp + 0x28]
mov dword [esi], vtable.SOUI::SApplication.1.0
mov dword [esi + 4], vtable.SOUI::SApplication.0
jmp 0x4890c6
xor esi, esi
mov dword [0x638fc0], esi
call dword [sym.imp.soui.dll_public:_static_int___cdecl_SOUI::SSkinObjBase::GetClassType_void_]
cmp eax, 2
jne 0x4890df
lea ecx, [esi + 4]
call fcn.00486ff0
mov esi, dword [0x638fc0]
call dword [sym.imp.soui.dll_public:_static_int___cdecl_SOUI::SWindow::GetClassType_void_]
cmp eax, 1
jne 0x4890f8
lea ecx, [esi + 4]
call fcn.00487040
mov esi, dword [0x638fc0]
call dword [sym.imp.soui.dll_public:_static_int___cdecl_SOUI::SSkinObjBase::GetClassType_void_]
cmp eax, 2
jne 0x489111
lea ecx, [esi + 4]
call fcn.00487090
mov esi, dword [0x638fc0]
call dword [sym.imp.soui.dll_public:_static_int___cdecl_SOUI::SCheckBox::GetClassType_void_]
cmp eax, 1
jne 0x48912a
lea ecx, [esi + 4]
call fcn.004870e0
mov esi, dword [0x638fc0]
call dword [sym.imp.soui.dll_public:_static_int___cdecl_SOUI::SImageWnd::GetClassType_void_]
cmp eax, 1
jne 0x489143
lea ecx, [esi + 4]
call fcn.00487130
mov esi, dword [0x638fc0]
call dword [sym.imp.soui.dll_public:_static_int___cdecl_SOUI::SWindow::GetClassType_void_]
cmp eax, 1
jne 0x48915c
lea ecx, [esi + 4]
call fcn.00487180
mov esi, dword [0x638fc0]
call dword [sym.imp.soui.dll_public:_static_int___cdecl_SOUI::SMCListView::GetClassType_void_]
cmp eax, 1
jne 0x489175
lea ecx, [esi + 4]
call fcn.004871d0
mov esi, dword [0x638fc0]
call dword [sym.imp.soui.dll_public:_static_int___cdecl_SOUI::SStatic::GetClassType_void_]
cmp eax, 1
jne 0x48918e
lea ecx, [esi + 4]
call fcn.00487220
mov esi, dword [0x638fc0]
call dword [sym.imp.soui.dll_public:_static_int___cdecl_SOUI::SWindow::GetClassType_void_]
cmp eax, 1
jne 0x4891a7
lea ecx, [esi + 4]
call fcn.00487270
mov esi, dword [0x638fc0]
call dword [sym.imp.soui.dll_public:_static_int___cdecl_SOUI::SWindow::GetClassType_void_]
cmp eax, 1
jne 0x4891c0
lea ecx, [esi + 4]
call fcn.004872c0
mov esi, dword [0x638fc0]
call dword [sym.imp.soui.dll_public:_static_int___cdecl_SOUI::SActiveX::GetClassType_void_]
cmp eax, 1
jne 0x4891d9
lea ecx, [esi + 4]
call fcn.00487310
mov esi, dword [0x638fc0]
call dword [sym.imp.soui.dll_public:_static_int___cdecl_SOUI::STileView::GetClassType_void_]
cmp eax, 1
jne 0x4891f2
lea ecx, [esi + 4]
call fcn.00487360
push 8
call fcn.0053e4de
add esp, 4
cmp eax, ebp
je 0x48920b
mov ecx, eax
call fcn.0046e8e0
mov esi, eax
jmp 0x48920d
xor esi, esi
mov ecx, dword [0x638fc0]
push esi
call dword [sym.imp.soui.dll_public:_void___thiscall_SOUI::SApplication::SetRealWndHandler_struct_SOUI::IRealWndHandler__]
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, esi
call eax
push str.soui_sys_resource.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
cmp esi, ebp
je 0x48927b
lea ecx, [esp + 0x10]
push ecx
push ebp
mov dword [esp + 0x18], ebp
call dword [sym.imp.soui.dll_int___cdecl_SOUI::CreateResProvider_enum_SOUI::BUILTIN_RESTYPE__struct_IObjRef___]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
add esp, 8
push ebp
push esi
call eax
mov ecx, dword [esp + 0x10]
push ecx
mov ecx, dword [0x638fc0]
call dword [sym.imp.soui.dll_public:_unsigned_int___thiscall_SOUI::SApplication::LoadSystemNamedResource_struct_SOUI::IResProvider__]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
je 0x48927b
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x18]
push ecx
mov ecx, edi
mov dword [esp + 0x1c], ebp
call fcn.00486ee0
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x48], str.uires.zip
mov dword [esp + 0x58], ebp
mov dword [esp + 0x54], 0x5d3001
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
push ebp
lea edx, [esp + 0x44]
push edx
call eax
mov ecx, dword [0x638fc0]
push 1
push 0xb5
push 0x5dc9b0
call dword [sym.imp.soui.dll_public:_void___thiscall_SOUI::SApplication::InitXmlNamedID_struct_SOUI::TNAMEDVALUE_int__const___int__int_]
mov ecx, dword [esp + 0x18]
push str.uidef:xml_init
push ecx
mov ecx, dword [0x638fc0]
add ecx, 0x10
call dword [sym.imp.soui.dll_public:_void___thiscall_SOUI::SResProviderMgr::AddResProvider_struct_SOUI::IResProvider___wchar_t_const__]
lea ecx, [esp + 0xfe4]
mov dword [esp + 0x1c], ebp
call fcn.0042a180
lea edx, [esp + 0x1c]
push edx
mov ecx, edi
call fcn.00486e50
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x48933f
mov ecx, dword [0x638fc0]
push eax
call dword [sym.imp.soui.dll_public:_void___thiscall_SOUI::SApplication::SetTranslator_struct_SOUI::ITranslatorMgr__]
push ebp
push ebp
lea ecx, [esp + 0xfec]
call fcn.0042a220
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
lea edx, [esp + 0xfe4]
push edx
call eax
lea ecx, [esp + 0x10a0]
call dword [sym.imp.utilities.dll_public:_void___thiscall_pugi::xml_document::constructor_void_]
push str.LAYOUT
push str.XML_MESSAGE
lea ecx, [esp + 0x10a8]
push ecx
mov ecx, dword [0x638fc0]
call dword [sym.imp.soui.dll_public:_int___thiscall_SOUI::SApplication::LoadXmlDocment_class_pugi::xml_document___wchar_t_const___wchar_t_const__]
test eax, eax
je 0x489392
push ebp
push str.SOUI
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0x10ac]
call dword [sym.imp.utilities.dll_public:_class_pugi::xml_node___thiscall_pugi::xml_node::child_wchar_t_const___bool_]
mov eax, dword [eax]
push eax
call dword [sym.imp.soui.dll_int___cdecl_SOUI::SetMsgTemplate_class_pugi::xml_node_]
add esp, 4
lea ecx, [esp + 0x10a0]
call dword [sym.imp.utilities.dll_public:_void___thiscall_pugi::xml_document::destructor_void_]
push ebp
call fcn.00557498
add esp, 4
call fcn.004880f0
test eax, eax
je 0x4893c5
push ebp
push ebp
push ebp
push ebp
push ebp
push 0x488d00
call fcn.00541df3
jmp 0x489607
call fcn.0053fed4
cmp eax, ebp
jne 0x4893d8
push 0x80004005
call fcn.00401020
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
mov edi, eax
add edi, 0x10
mov dword [esp + 0x2c], edi
call fcn.0053fed4
cmp eax, ebp
jne 0x4893fd
push 0x80004005
call fcn.00401020
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
mov ebx, 0x10000
mov dword [esp + 0x10], ebx
mov edx, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
mov esi, eax
add esi, 0x10
sub edx, 0x8000
or ecx, edx
mov dword [esp + 0x30], esi
jge 0x48943f
push 0x8000
lea ecx, [esp + 0x30]
call fcn.00403200
mov edi, dword [esp + 0x2c]
mov ebp, dword [sym.imp.Config.dll_Ordinal_11]
lea eax, [esp + 0x10]
push eax
push edi
push 0
push str.UpdateFile
push 0x5d2de4
push reloc.OLEAUT32.dll_SysReAllocString
call ebp
mov dword [esp + 0x28], ebx
mov edx, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub edx, 0x8000
add esp, 0x18
or ecx, edx
mov dword [esp + 0x20], eax
jge 0x489490
push 0x8000
lea ecx, [esp + 0x34]
call fcn.00403200
mov esi, dword [esp + 0x30]
lea eax, [esp + 0x10]
push eax
push esi
push 0
push str.UpdateVer
push 0x5d2de4
push reloc.OLEAUT32.dll_SysReAllocString
call ebp
mov eax, dword [edi - 8]
push eax
push edi
call fcn.00588bcb
add esp, 0x20
test eax, eax
jl 0x4897a7
cmp eax, dword [edi - 8]
jg 0x4897a7
mov dword [edi - 0xc], eax
xor ecx, ecx
mov word [edi + eax*2], cx
mov eax, dword [esi - 8]
push eax
push esi
call fcn.00588bcb
add esp, 8
test eax, eax
jl 0x4897a7
cmp eax, dword [esi - 8]
jg 0x4897a7
xor edx, edx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], dx
cmp dword [esp + 0x20], edx
jne 0x4895cf
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4895cf
lea eax, [esp + 0x20]
push eax
call fcn.00488a20
mov eax, dword [eax]
push 0x64
push 0x24
push eax
push str.2302007
push 0
call fcn.00428100
add esp, 0x18
cmp eax, 6
lea ecx, [esp + 0x20]
sete bl
call fcn.00401400
test bl, bl
je 0x4895cf
push 1
push 0
push 0
push edi
push 0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [esp + 0x30]
call fcn.00401400
lea ecx, [esp + 0x2c]
call fcn.00401400
lea ecx, [esp + 0xfe4]
call fcn.0042a000
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x489585
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x489594
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x4895a3
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x4895b2
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
xor eax, eax
pop edi
mov ecx, dword [esp + 0x136c]
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00584267
add esp, 0x1364
ret 0x10
lea eax, [esi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4895eb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x489607
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.005587d2
mov ecx, dword [esp + 0x38]
mov dword [eax + 8], ecx
push str.LAYOUT:XML_BEGIN
lea ecx, [esp + 0xbd8]
call fcn.00406470
push 0
lea ecx, [esp + 0xbd8]
call dword [sym.imp.soui.dll_public_virtual:_int___thiscall_SOUI::SHostDialog::DoModal_struct_HWND____]
cmp eax, 1
jne 0x489718
mov ecx, 0x639200
call fcn.0042ae60
push 0
push 0x483b90
mov ecx, 0x639210
call fcn.0048d3f0
lea ecx, [esp + 0x5c]
call fcn.004514c0
push 3
lea edx, [esp + 0xf84]
push edx
lea ecx, [esp + 0x64]
call fcn.00449d40
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [esp + 0x70]
call dword [sym.imp.soui.dll_public:_struct_HWND______thiscall_SOUI::SHostWnd::Create_struct_HWND_____int__int__int__int_]
push 0
push 0
push pe_nt_image_headers32
lea ecx, [esp + 0x2a4]
call dword [sym.imp.soui.dll_public:_long_int___thiscall_SOUI::CSimpleWnd::SendMessageW_unsigned_int__unsigned_int__long_int_]
mov eax, dword [esp + 0x2a4]
push eax
lea ecx, [esp + 0x29c]
call dword [sym.imp.soui.dll_public:_int___thiscall_SOUI::CSimpleWnd::CenterWindow_struct_HWND____]
push 1
lea ecx, [esp + 0x29c]
call dword [sym.imp.soui.dll_public:_int___thiscall_SOUI::CSimpleWnd::ShowWindow_int_]
mov ecx, dword [esp + 0x2a4]
push ecx
mov ecx, 0x6391ec
call fcn.0047e9f0
mov edx, dword [esp + 0x2a4]
mov ecx, dword [0x638fc0]
push edx
call dword [sym.imp.soui.dll_public:_int___thiscall_SOUI::SApplication::Run_struct_HWND____]
mov ecx, 0x639200
mov edi, eax
call fcn.0042a4a0
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x639200
call fcn.0042aea0
lea ecx, [esp + 0x5c]
call fcn.00450310
jmp 0x48971c
mov edi, dword [esp + 0x3c]
lea ecx, [esp + 0xbd4]
call fcn.00404600
mov ecx, dword [0x638fc0]
test ecx, ecx
je 0x48973a
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
lea ecx, [esp + 0xfe4]
call fcn.0042a000
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x489755
mov eax, dword [ecx]
mov edx, dword [eax + 4]
call edx
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x489764
mov eax, dword [ecx]
mov edx, dword [eax + 4]
call edx
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x489773
mov eax, dword [ecx]
mov edx, dword [eax + 4]
call edx
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x489782
mov eax, dword [ecx]
mov edx, dword [eax + 4]
call edx
mov esi, dword [esp + 0x28]
test esi, esi
je 0x48979a
mov ecx, esi
call fcn.00484ed0
push esi
call fcn.0053e50d
add esp, 4
call dword [sym.imp.ole32.dll_OleUninitialize]
mov eax, edi
jmp 0x4895b4
push 0x80070057
call fcn.00401020
int3