Function at 0x40f840
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe0
mov eax, dword [0x463070]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0xc]
cmp edi, 9
ja 0x40fa34
mov ecx, dword [0x4728ac]
push edi
call fcn.00408ad0
mov ecx, dword [0x4728ac]
mov esi, eax
push edi
mov dword [ebp - 0xe0], esi
call fcn.00408ab0
push 1
mov dword [ebp - 0xdc], eax
mov dword [ebp - 8], eax
lea eax, [ebp - 0x14]
push 0x10ca0000
push eax
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], esi
call dword [sym.imp.USER32.dll_AdjustWindowRect]
mov eax, dword [0x4728bc]
mov ecx, dword [ebp - 0xc]
sub eax, ecx
add eax, dword [ebp - 0x14]
mov esi, dword [ebp - 8]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0xd4], eax
mov eax, dword [0x4728c0]
sub eax, esi
add eax, dword [ebp - 0x10]
cdq
sub eax, edx
mov edx, 0
sar eax, 1
cmovs eax, edx
mov dword [ebp - 0xd8], eax
cmp byte [0x4728b6], dl
je 0x40f93e
push edx
push edx
call dword [sym.imp.USER32.dll_ChangeDisplaySettingsA]
push dword [0x46304c]
push 0xfffffffffffffff0
push ebx
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x10]
push 0x40
push eax
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x14]
push eax
push dword [ebp - 0xd8]
push dword [ebp - 0xd4]
push 0
push ebx
call dword [sym.imp.USER32.dll_SetWindowPos]
push ebx
mov byte [0x4728b6], 0
call fcn.0040fbe0
add esp, 4
jmp 0x40f958
sub esi, dword [ebp - 0x10]
sub ecx, dword [ebp - 0x14]
push 4
push esi
push ecx
push eax
push dword [ebp - 0xd4]
push 0
push ebx
call dword [sym.imp.USER32.dll_SetWindowPos]
cmp byte [0x46e983], 0
je 0x40f977
push ebx
call fcn.0040fc20
mov eax, dword [0x4728b8]
add esp, 4
mov cl, byte [0x4728b5]
jmp 0x40f996
mov eax, dword [0x4728b8]
test eax, eax
je 0x40f98e
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [0x4728b8]
xor cl, cl
mov byte [0x4728b5], cl
test eax, eax
je 0x40f9b1
test cl, cl
je 0x40f9b1
lea ecx, [ebp - 0x24]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov esi, dword [ebp - 0x18]
sub esi, dword [ebp - 0x20]
jmp 0x40f9b3
xor esi, esi
lea eax, [ebp - 0x34]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0x28]
lea eax, [esi + ecx]
cmp edx, eax
je 0x40fa1a
mov eax, dword [0x4728c0]
sub esi, edx
add esi, ecx
mov ecx, dword [ebp - 0xc]
sub ecx, dword [ebp - 0x14]
mov dword [ebp - 0xd8], esi
mov esi, dword [ebp - 8]
add esi, dword [ebp - 0xd8]
sub eax, esi
mov dword [ebp - 8], esi
add eax, dword [ebp - 0x10]
sub esi, dword [ebp - 0x10]
push 4
push esi
cdq
push ecx
sub eax, edx
xor ecx, ecx
sar eax, 1
cmovs eax, ecx
push eax
push dword [ebp - 0xd4]
push ecx
push ebx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, dword [ebp - 0xdc]
push 1
push ecx
push dword [ebp - 0xe0]
mov dword [0x4728c8], edi
mov dword [0x46e74c], edi
jmp 0x40fbc3
cmp byte [0x4728b6], 0
jne 0x40fbce
cmp edi, 0xffffffff
jne 0x40fa53
mov esi, dword [0x4728bc]
mov eax, dword [0x4728c0]
jmp 0x40fa61
mov esi, dword [edi*4 + 0x4728a8]
mov eax, dword [edi*4 + 0x472970]
push 0x9c
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0xd0]
push 0
push eax
call fcn.0042bfd0
mov eax, 0x9c
mov dword [ebp - 0xa8], 0x1c0000
mov word [ebp - 0xac], ax
add esp, 0xc
mov eax, dword [0x4728c4]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0xd0]
push 2
push eax
mov dword [ebp - 0x64], esi
call dword [sym.imp.USER32.dll_ChangeDisplaySettingsA]
test eax, eax
jne 0x40fbce
push 4
lea eax, [ebp - 0xd0]
push eax
call dword [sym.imp.USER32.dll_ChangeDisplaySettingsA]
push 0xfffffffffffffff0
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongA]
push 0x10000000
push 0xfffffffffffffff0
push ebx
mov dword [0x46304c], eax
call dword [sym.imp.USER32.dll_SetWindowLongA]
push 0x40
push dword [ebp - 0xd4]
push esi
push 0
push 0
push 0
push ebx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [ebp - 0xd4]
cdq
sub eax, edx
sar eax, 1
push eax
mov eax, esi
cdq
sub eax, edx
sar eax, 1
push eax
call dword [sym.imp.USER32.dll_SetCursorPos]
mov byte [0x4728b6], 1
cmp edi, 0xffffffff
jne 0x40fb68
mov ecx, dword [0x4728cc]
xor eax, eax
test ecx, ecx
jle 0x40fb68
mov edx, dword [0x4728c0]
jmp 0x40fb40
mov ecx, dword [0x4728bc]
cmp dword [eax*4 + 0x4728d0], ecx
mov ecx, dword [0x4728cc]
jne 0x40fb5e
cmp dword [eax*4 + 0x472998], edx
je 0x40fb65
inc eax
cmp eax, ecx
jl 0x40fb40
jmp 0x40fb68
lea edi, [eax + 0xa]
mov eax, dword [0x4728b0]
mov dword [0x46e74c], edi
test eax, eax
je 0x40fba1
push eax
call dword [sym.imp.USER32.dll_IsMenu]
test eax, eax
je 0x40fba1
push 0
push ebx
call dword [sym.imp.USER32.dll_SetMenu]
push dword [0x4728b0]
call dword [sym.imp.USER32.dll_DestroyMenu]
mov dword [0x4728b0], 0
mov eax, dword [0x4728b8]
test eax, eax
je 0x40fbb3
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0
push dword [ebp - 0xd4]
mov byte [0x4728b5], 0
push esi
mov ecx, dword [0x4728ac]
call fcn.004095e0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0042b2a2
mov esp, ebp
pop ebp
ret