Function at 0x449780
Capabilities:
Link many functions at runtime

Disassembly:
sub esp, 0x24
push ebx
push ebp
push esi
mov esi, dword [esp + 0x38]
test esi, esi
push edi
jne 0x44979c
mov eax, dword [esp + 0x38]
push eax
call dword [sym.imp.USER32.dll_GetParent]
mov esi, eax
push esi
call dword [sym.imp.USER32.dll_IsWindow]
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
test eax, eax
jne 0x4497b1
call edi
mov esi, eax
push esi
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x4497c0
call edi
mov esi, eax
lea ecx, [esp + 0x24]
push ecx
push esi
mov esi, dword [sym.imp.USER32.dll_GetWindowRect]
call esi
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x14]
push edx
push eax
call esi
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
sub esi, eax
mov edi, dword [esp + 0x20]
lea eax, [edx + ecx]
inc esi
cdq
sub eax, edx
mov ecx, dword [esp + 0x28]
mov ebp, eax
mov eax, esi
cdq
sub eax, edx
mov ebx, dword [esp + 0x18]
sar ebp, 1
sar eax, 1
sub ebp, eax
mov eax, dword [esp + 0x30]
add eax, ecx
sub edi, ebx
cdq
sub eax, edx
inc edi
mov ebx, eax
mov eax, edi
cdq
sub eax, edx
sar ebx, 1
sar eax, 1
sub ebx, eax
mov eax, dword [0x4eba10]
test eax, eax
je 0x449850
mov ecx, dword [0x4eba08]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x449943
push 0x4e
call dword [0x4eb9f8]
jmp 0x44994b
push str.USER32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
xor ecx, ecx
mov dword [esp + 0x3c], eax
cmp eax, ecx
je 0x449915
push str.GetSystemMetrics
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [0x4eb9f8], eax
je 0x449913
mov edx, dword [esp + 0x3c]
push str.MonitorFromWindow
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [0x4eb9fc], eax
je 0x449913
mov eax, dword [esp + 0x3c]
push str.MonitorFromRect
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [0x4eba00], eax
je 0x449913
mov ecx, dword [esp + 0x3c]
push str.MonitorFromPoint
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [0x4eba04], eax
je 0x449913
mov edx, dword [esp + 0x3c]
push str.EnumDisplayMonitors
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [0x4eba0c], eax
je 0x449913
mov eax, dword [esp + 0x3c]
push str.GetMonitorInfoA
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [0x4eba08], eax
je 0x449913
push 0x4e
mov dword [0x4eba10], 1
call dword [0x4eb9f8]
jmp 0x44994b
xor ecx, ecx
mov dword [0x4eb9f8], ecx
mov dword [0x4eb9fc], ecx
mov dword [0x4eba00], ecx
mov dword [0x4eba04], ecx
mov dword [0x4eba08], ecx
mov dword [0x4eba0c], ecx
mov dword [0x4eba10], 1
push 0
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [esp + 0x10], eax
mov eax, dword [0x4eba10]
test eax, eax
je 0x44997a
mov ecx, dword [0x4eba08]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x449a6d
push 0x4f
call dword [0x4eb9f8]
jmp 0x449a75
push str.USER32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
xor ecx, ecx
mov dword [esp + 0x3c], eax
cmp eax, ecx
je 0x449a3f
push str.GetSystemMetrics
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [0x4eb9f8], eax
je 0x449a3d
mov ecx, dword [esp + 0x3c]
push str.MonitorFromWindow
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [0x4eb9fc], eax
je 0x449a3d
mov edx, dword [esp + 0x3c]
push str.MonitorFromRect
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [0x4eba00], eax
je 0x449a3d
mov eax, dword [esp + 0x3c]
push str.MonitorFromPoint
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [0x4eba04], eax
je 0x449a3d
mov ecx, dword [esp + 0x3c]
push str.EnumDisplayMonitors
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [0x4eba0c], eax
je 0x449a3d
mov edx, dword [esp + 0x3c]
push str.GetMonitorInfoA
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [0x4eba08], eax
je 0x449a3d
push 0x4f
mov dword [0x4eba10], 1
call dword [0x4eb9f8]
jmp 0x449a75
xor ecx, ecx
mov dword [0x4eb9f8], ecx
mov dword [0x4eb9fc], ecx
mov dword [0x4eba00], ecx
mov dword [0x4eba04], ecx
mov dword [0x4eba08], ecx
mov dword [0x4eba0c], ecx
mov dword [0x4eba10], 1
push 1
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, dword [esp + 0x10]
mov edx, ebp
sub ecx, esi
cmp ebp, ecx
jl 0x449a83
mov edx, ecx
test edx, edx
jge 0x449a8b
xor ebp, ebp
jmp 0x449a91
cmp ebp, ecx
jl 0x449a91
mov ebp, ecx
sub eax, edi
mov ecx, ebx
cmp ebx, eax
jl 0x449a9b
mov ecx, eax
test ecx, ecx
jge 0x449aa3
xor ebx, ebx
jmp 0x449aa9
cmp ebx, eax
jl 0x449aa9
mov ebx, eax
mov eax, dword [esp + 0x38]
push 0x15
push 0
push 0
push ebx
push ebp
push 0
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret