Function at 0x402110
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x47aef0
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
mov eax, dword [0x4a3140]
xor eax, esp
mov dword [esp + 0x14], eax
push ebx
push edi
mov eax, dword [0x4a3140]
xor eax, esp
push eax
lea eax, [esp + 0x28]
mov dword fs:[0], eax
cmp dword [esi], 0
mov ebx, dword [sym.imp.DuiLib_u.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____]
jne 0x4021fd
push 0x278
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
mov edi, eax
add esp, 4
mov dword [esp + 0xc], edi
mov dword [esp + 0x30], 0
test edi, edi
je 0x4021ab
mov ecx, edi
call dword [sym.imp.DuiLib_u.dll_public:_void___thiscall_DuiLib::WindowImplBase::constructor_void_]
mov dword [edi], vtable.WinMainFrame.0
mov dword [edi + 0x10], vtable.WinMainFrame.1.0
mov dword [edi + 0x20], vtable.WinMainFrame.2.0
mov dword [edi + 0x24], vtable.WinMainFrame.3.0
mov dword [edi + 0x28], vtable.WinMainFrame.4.0
mov dword [edi + 0x274], 0
jmp 0x4021ad
xor edi, edi
push 0
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push 0
push 0x10cf0000
push 0x483674
mov dword [esp + 0x50], 0xffffffff
push 0
mov ecx, edi
mov dword [esi], edi
call ebx
mov ecx, dword [esi]
push 0x65
call dword [sym.imp.DuiLib_u.dll_public:_void___thiscall_DuiLib::CWindowWnd::SetIcon_unsigned_int_]
mov ecx, dword [esi]
call dword [sym.imp.DuiLib_u.dll_public:_void___thiscall_DuiLib::CWindowWnd::CenterWindow_void_]
mov ecx, dword [esi]
push 1
push 1
call dword [sym.imp.DuiLib_u.dll_public:_void___thiscall_DuiLib::CWindowWnd::ShowWindow_bool__bool_]
cmp dword [esi + 4], 0
mov edi, dword [sym.imp.DuiLib_u.dll_public:_struct_HWND______thiscall_DuiLib::CWindowWnd::GetHWND_void_const]
jne 0x4022a9
push 0x274
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x30], 1
test eax, eax
je 0x40225b
mov ecx, eax
call dword [sym.imp.DuiLib_u.dll_public:_void___thiscall_DuiLib::WindowImplBase::constructor_void_]
mov eax, dword [esp + 0xc]
mov dword [eax], vtable.WinMessageBox.0
mov dword [eax + 0x10], vtable.WinMessageBox.1.0
mov dword [eax + 0x20], vtable.WinMessageBox.2.0
mov dword [eax + 0x24], vtable.WinMessageBox.3.0
mov dword [eax + 0x28], vtable.WinMessageBox.4.0
jmp 0x40225d
xor eax, eax
push 0
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push 0x81
mov dword [esp + 0x48], 0xffffffff
mov ecx, dword [esi]
push 0x96c80000
push str.WinMessageBox
mov dword [esi + 4], eax
call edi
mov ecx, dword [esi + 4]
push eax
call ebx
mov ecx, dword [esi + 4]
push 0
call dword [sym.imp.DuiLib_u.dll_public:_struct_HWND______thiscall_DuiLib::CWindowWnd::operator_struct_HWND____void_const]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
cmp dword [esi + 8], 0
jne 0x40237b
push 0x278
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x30], 2
test eax, eax
je 0x402301
mov ecx, eax
call dword [sym.imp.DuiLib_u.dll_public:_void___thiscall_DuiLib::WindowImplBase::constructor_void_]
mov eax, dword [esp + 0xc]
mov dword [eax], vtable.CFrmTrayMenu.0
mov dword [eax + 0x10], vtable.CFrmTrayMenu.1.0
mov dword [eax + 0x20], vtable.CFrmTrayMenu.2.0
mov dword [eax + 0x24], vtable.CFrmTrayMenu.3.0
mov dword [eax + 0x28], vtable.CFrmTrayMenu.4.0
jmp 0x402303
xor eax, eax
push 0
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push 0x81
mov dword [esp + 0x48], 0xffffffff
mov ecx, dword [esi]
push 0x96c80000
push str.FrmTrayMenu
mov dword [esi + 8], eax
call edi
mov ecx, dword [esi + 8]
push eax
call ebx
mov ecx, dword [esi]
call edi
mov ecx, dword [esi + 8]
push 0x40
push 0x3e
push 0x64
push 0
push 0
mov dword [ecx + 0x274], eax
mov ecx, dword [esi + 8]
push 0xffffffffffffffff
call edi
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, dword [esi + 8]
call edi
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov ecx, dword [esi + 8]
push 1
push 0
call dword [sym.imp.DuiLib_u.dll_public:_void___thiscall_DuiLib::CWindowWnd::ShowWindow_bool__bool_]
cmp dword [esi + 0xc], 0
jne 0x402434
mov ecx, dword [esi]
lea eax, [esp + 0x10]
push eax
call edi
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
push 0x2a8
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x30], 3
test eax, eax
je 0x4023bb
push eax
call fcn.004094f0
jmp 0x4023bd
xor eax, eax
push 0
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push 0x81
mov dword [esp + 0x48], 0xffffffff
mov ecx, dword [esi]
push 0x96c80000
push str.FrmTrayWebAD
mov dword [esi + 0xc], eax
call edi
mov ecx, dword [esi + 0xc]
push eax
call ebx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push 0x40
push 0xfa
push 0x12c
add ecx, 0xffffec78
push ecx
mov ecx, dword [esi + 0xc]
add edx, 0xffffec78
push edx
push 0xffffffffffffffff
call edi
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, dword [esi + 0xc]
push 1
push 1
call dword [sym.imp.DuiLib_u.dll_public:_void___thiscall_DuiLib::CWindowWnd::ShowWindow_bool__bool_]
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebx
mov ecx, dword [esp + 0x14]
xor ecx, esp
call fcn.00456bde
mov esp, ebp
pop ebp
ret