Function at 0x408580
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x443522
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3c0
push ebx
push ebp
push esi
mov esi, ecx
lea eax, [esp + 0x24]
push edi
mov ecx, dword [esi + 0x20]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x28]
sub eax, ebp
mov ebx, dword [sym.imp.USER32.dll_ClientToScreen]
cdq
sub eax, edx
mov edx, dword [esp + 0x2c]
sar eax, 1
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
sub eax, edx
cdq
sub eax, edx
lea edx, [esp + 0x10]
sar eax, 1
add eax, 0x28
push edx
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x20]
push eax
call ebx
mov edx, dword [esi + 0x20]
mov ebp, dword [sym.imp.USER32.dll_GetWindowRect]
lea ecx, [esp + 0x18]
push ecx
push edx
call ebp
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push eax
push ecx
call dword [sym.imp.USER32.dll_WindowFromPoint]
mov edi, eax
test edi, edi
je 0x4087f9
lea edx, [esp + 0x10]
push edx
push edi
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push 0
push eax
push ecx
push edi
call dword [sym.imp.USER32.dll_ChildWindowFromPointEx]
lea edx, [esp + 0x10]
push edx
push edi
call ebx
lea eax, [esp + 0x18]
push eax
push edi
call ebp
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
xor edi, edi
cmp eax, edi
jne 0x408799
cmp ecx, edi
jne 0x408799
push 4
push 0x456b94
push 0x456b34
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
jne 0x4087f9
push 1
push 0xff00ff
mov ecx, esi
call fcn.004063c0
push 5
lea ecx, [esi + 0x430c]
call sub.MFC42.DLL_CWnd::ShowWindow
cmp dword [esi + 0x1a2c], edi
je 0x4086c5
push 9
mov ecx, esi
call sub.MFC42.DLL_CWnd::ShowWindow
push 5
lea ecx, [esi + 0xa50]
mov dword [esi + 0x1a2c], edi
call sub.MFC42.DLL_CWnd::ShowWindow
push edi
lea ecx, [esi + 0xbb4]
call sub.MFC42.DLL_CWnd::ShowWindow
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
sub ecx, eax
add ecx, 0x90
push 1
push ecx
mov ecx, dword [esp + 0x20]
sub edx, ecx
add eax, 0xffffff87
add edx, 8
add ecx, 0xfffffffc
push edx
push eax
push ecx
mov ecx, esi
call sub.MFC42.DLL_CWnd::MoveWindow
push edi
lea ecx, [esp + 0x40]
call fcn.00413510
lea ecx, [esp + 0x3c]
mov dword [esp + 0x3d8], edi
call sub.MFC42.DLL_CDialog::DoModal
lea ecx, [esp + 0x36c]
mov dword [esp + 0x3d8], 4
call fcn.0042f180
lea ecx, [esp + 0x208]
mov byte [esp + 0x3d8], 3
call fcn.0042dc90
lea ecx, [esp + 0xa4]
mov byte [esp + 0x3d8], 2
call fcn.0042dc90
lea eax, [esp + 0x9c]
mov dword [esp + 0x9c], 0x448b98
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x9c]
mov byte [esp + 0x3d8], 5
call sub.MFC42.DLL_CGdiObject::DeleteObject
lea ecx, [esp + 0x3c]
mov dword [esp + 0x9c], 0x448bc0
mov dword [esp + 0x3d8], 0xffffffff
call fcn.004412fa
jmp 0x4087f9
cmp dword [esi + 0x1a2c], edi
je 0x4087d1
push 9
mov ecx, esi
call sub.MFC42.DLL_CWnd::ShowWindow
push 5
lea ecx, [esi + 0xa50]
mov dword [esi + 0x1a2c], edi
call sub.MFC42.DLL_CWnd::ShowWindow
push edi
lea ecx, [esi + 0xbb4]
call sub.MFC42.DLL_CWnd::ShowWindow
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
push 1
sub edx, ecx
add ecx, 0xffffff87
add edx, 0x90
push edx
mov edx, dword [esp + 0x28]
sub edx, eax
add eax, 0xfffffffc
add edx, 8
push edx
push ecx
push eax
mov ecx, esi
call sub.MFC42.DLL_CWnd::MoveWindow
mov ecx, dword [esp + 0x3d0]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x3cc
ret