Function at 0x40c7cc
Capabilities:
Accept command line arguments
Check mutex on windows
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x568
mov eax, dword [0x480450]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
or dword [ebp - 0x464], 0xffffffff
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [ebp - 0x454], eax
push edi
lea eax, [ebp - 0x464]
xor ebx, ebx
push eax
mov dword [ebp - 0x458], ebx
call esi
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
xor edi, edi
inc edi
cmp dword [ebp - 0x464], edi
jle 0x40c844
push str._createprotocol
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x40c844
push dword [ebp - 0x454]
call fcn.00404ce1
mov ecx, eax
call fcn.0040de4f
jmp 0x40ccd1
lea eax, [ebp - 0x460]
push eax
call fcn.00429d50
pop ecx
call esi
push eax
lea ecx, [ebp - 0x47c]
call fcn.00406420
mov ecx, dword [ebp - 0x460]
mov eax, dword [ecx]
lea edx, [ebp - 0x47c]
push edx
call dword [eax + 0x10]
mov esi, vtable.CefStringBase_struct_CefStringTraitsUTF16_.0
lea ecx, [ebp - 0x47c]
mov dword [ebp - 0x47c], esi
call fcn.004046c0
push dword [ebp - 0x454]
lea ecx, [ebp - 0x488]
call fcn.0040c3b5
push str.type
lea ecx, [ebp - 0x47c]
mov dword [ebp - 0x45c], ebx
call fcn.004063d2
mov ecx, dword [ebp - 0x460]
lea eax, [ebp - 0x434]
push eax
mov eax, dword [ecx]
lea edx, [ebp - 0x47c]
push edx
lea edx, [ebp - 0x470]
push edx
call dword [eax + 0x30]
mov ecx, eax
call fcn.0040931d
lea ecx, [ebp - 0x470]
mov dword [ebp - 0x470], esi
call fcn.004046c0
lea ecx, [ebp - 0x47c]
mov dword [ebp - 0x47c], esi
call fcn.004046c0
push str.renderer
call fcn.00446130
pop ecx
push eax
push str.renderer
push dword [ebp - 0x424]
lea ecx, [ebp - 0x434]
push ebx
call fcn.004045c8
test eax, eax
jne 0x40c934
push 0x20
call fcn.0044691a
pop ecx
cmp eax, ebx
je 0x40c94a
push edi
mov ecx, eax
call fcn.004077c5
jmp 0x40c94c
push 0x1c
call fcn.0044691a
pop ecx
cmp eax, ebx
je 0x40c94a
push edi
mov ecx, eax
call fcn.0040c0f7
jmp 0x40c94c
xor eax, eax
push eax
lea ecx, [ebp - 0x45c]
call fcn.0040ab78
push ebx
push ecx
mov ecx, esp
mov dword [ebp - 0x458], esp
push dword [ebp - 0x45c]
call fcn.0040259c
lea eax, [ebp - 0x488]
push eax
call fcn.004234d0
add esp, 0xc
mov dword [ebp - 0x458], eax
cmp eax, ebx
jl 0x40c9da
push ebx
push edi
lea ecx, [ebp - 0x434]
call fcn.0040118d
mov eax, dword [ebp - 0x45c]
cmp eax, ebx
je 0x40c9ac
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + 4]
lea ecx, [ecx + eax + 4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x460]
mov dword [ebp - method.CefStructBase_struct_CefMainArgsTraits_.virtual_0], vtable.CefStructBase_struct_CefMainArgsTraits_.0
cmp eax, ebx
je 0x40c9cf
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + 4]
lea ecx, [ecx + eax + 4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x458]
jmp 0x40ccd3
push str.kszx_appinstance
push ebx
lea eax, [ebp - 0x494]
push eax
mov dword [ebp - 0x48c], edi
mov dword [ebp - 0x494], 0xc
mov dword [ebp - 0x490], ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebp - 0x458], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x40ca4c
push dword [ebp - 0x458]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
push edi
lea ecx, [ebp - 0x434]
call fcn.0040118d
mov eax, dword [ebp - 0x45c]
cmp eax, ebx
je 0x40ccae
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + 4]
lea ecx, [ecx + eax + 4]
jmp 0x40cca9
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
push ebx
test eax, eax
js 0x40ca23
call dword [sym.imp.ole32.dll_OleInitialize]
push dword [ebp - 0x454]
call dword [sym.imp.DuiLib.dll_public:_static_void___cdecl_DuiLib::CPaintManagerUI::SetInstance_struct_HINSTANCE____]
pop ecx
call fcn.0040beee
lea ecx, [ebp - 0x568]
mov dword [ebp - method.CefStructBase_struct_CefSettingsTraits_.virtual_0], vtable.CefStructBase_struct_CefSettingsTraits_.0
mov dword [ebp - 0x498], ebx
call fcn.0040c055
xor eax, eax
push 0x206
mov word [ebp - 0x418], ax
lea eax, [ebp - 0x416]
push ebx
push eax
call fcn.004468a0
add esp, 0xc
lea eax, [ebp - 0x418]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp - 0x418]
push eax
lea ecx, [ebp - 0x450]
call fcn.00401bc2
push str.caches
call fcn.00446eee
pop ecx
push eax
push str.caches
lea ecx, [ebp - 0x450]
call fcn.0040c5c0
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x534]
push eax
lea ecx, [ebp - 0x470]
call fcn.0040c1f0
mov ecx, eax
call fcn.00404fd0
lea ecx, [ebp - 0x470]
mov dword [ebp - 0x470], esi
call fcn.004046c0
push str.zh_CN
lea eax, [ebp - 0x4fc]
push eax
lea ecx, [ebp - 0x470]
mov dword [ebp - 0x544], edi
mov dword [ebp - 0x4b0], edi
mov dword [ebp - 0x538], edi
mov dword [ebp - 0x560], edi
call fcn.0040c1f0
mov ecx, eax
call fcn.0040c220
lea ecx, [ebp - 0x470]
mov dword [ebp - 0x470], esi
call fcn.004046c0
mov esi, dword [ebp - 0x45c]
push ebx
push ecx
mov ecx, esp
mov dword [ebp - 0x458], esp
push esi
call fcn.0040259c
lea eax, [ebp - 0x568]
push eax
lea eax, [ebp - 0x488]
push eax
call fcn.004235f0
xor eax, eax
push 0x208
mov word [ebp - 0x210], ax
lea eax, [ebp - 0x20e]
push ebx
push eax
call fcn.004468a0
add esp, 0x1c
push 0x104
lea eax, [ebp - 0x210]
push eax
push dword [ebp - 0x454]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push ecx
mov ecx, esp
mov dword [ebp - 0x458], esp
push str._createprotocol
call fcn.0040c78b
push ecx
lea eax, [ebp - 0x210]
mov ecx, esp
mov dword [ebp - 0x458], esp
push eax
call fcn.0040c78b
call fcn.0040c47e
push 0x77c
call fcn.0044691a
add esp, 0xc
cmp eax, ebx
je 0x40cc0d
mov ecx, eax
call fcn.00416645
mov dword [ebp - 0x454], eax
jmp 0x40cc13
mov dword [ebp - 0x454], ebx
mov ecx, dword [ebp - 0x454]
push ebx
cmp ecx, ebx
je 0x40cc77
push 0x23c
push 0x320
push ebx
push ebx
push ebx
push 0x10cf0000
push str.CEFBrowser
push ebx
call dword [sym.imp.DuiLib.dll_public:_struct_HWND______thiscall_DuiLib::CWindowWnd::Create_struct_HWND_____wchar_t_const___unsigned_long_int__unsigned_long_int__int__int__int__int__struct_HMENU____]
mov ecx, dword [ebp - 0x454]
call dword [sym.imp.DuiLib.dll_public:_void___thiscall_DuiLib::CWindowWnd::CenterWindow_void_]
mov ecx, dword [ebp - 0x454]
push 3
call dword [sym.imp.DuiLib.dll_public:_struct_HWND______thiscall_DuiLib::CWindowWnd::operator_struct_HWND____void_const]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
call dword [sym.imp.DuiLib.dll_public:_static_void___cdecl_DuiLib::CPaintManagerUI::MessageLoop_void_]
call fcn.004230e0
call dword [sym.imp.DuiLib.dll_public:_static_class_DuiLib::CResourceManager____cdecl_DuiLib::CResourceManager::GetInstance_void_]
mov ecx, eax
call dword [sym.imp.DuiLib.dll_public:_void___thiscall_DuiLib::CResourceManager::Release_void_]
push ebx
push edi
lea ecx, [ebp - 0x450]
call fcn.004017bc
lea ecx, [ebp - 0x568]
call fcn.0040c273
push ebx
push edi
lea ecx, [ebp - 0x434]
call fcn.0040118d
cmp esi, ebx
je 0x40ccae
mov eax, dword [esi + 4]
mov eax, dword [eax + 4]
lea ecx, [eax + esi + 4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x460]
mov dword [ebp - method.CefStructBase_struct_CefMainArgsTraits_.virtual_0], vtable.CefStructBase_struct_CefMainArgsTraits_.0
cmp eax, ebx
je 0x40ccd1
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + 4]
lea ecx, [ecx + eax + 4]
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00446dca
leave
ret 0x10