Function at 0x405510
Capabilities:
Hide graphical window

Disassembly:
sub esp, 0x44
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4058bb
mov ecx, dword [esi + 4]
lea eax, [esp + 0x24]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esi + 0x10]
lea edx, [esp + 0x14]
push edx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
neg ecx
neg edx
push ecx
lea eax, [esp + 0x28]
push edx
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov ecx, dword [esi + 4]
mov edi, dword [sym.imp.USER32.dll_GetWindowLongA]
push 0xfffffffffffffff0
push ecx
call edi
mov edx, dword [esi + 4]
push 0xffffffffffffffec
push edx
mov dword [esp + 0x18], eax
call edi
mov ebx, dword [sym.imp.USER32.dll_GetSystemMetrics]
test ah, 2
je 0x405588
push 0x2d
call ebx
mov edi, eax
jmp 0x40558a
xor edi, edi
push 0x15
call ebx
mov ebx, eax
mov ecx, esi
mov ebp, ebx
call fcn.00404ff0
test eax, eax
je 0x4055ad
mov al, byte [esp + 0x10]
mov ebp, dword [esp + 0x2c]
test al, 1
jne 0x4055ad
mov ebp, dword [esp + 0x30]
mov eax, dword [esi + 4]
mov dword [esp + 0x10], 0x203
push eax
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x4055cb
mov dword [esp + 0x10], 0x243
mov eax, dword [esp + 0x58]
cmp eax, 3
jne 0x40570c
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ebp, dword [sym.imp.USER32.dll_SetRect]
push eax
sub ecx, ebx
sub eax, ebx
push ecx
push eax
lea eax, [esp + 0x40]
push edx
push eax
call ebp
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push ecx
push eax
sub eax, ebx
push edx
push eax
lea eax, [esp + 0x54]
push eax
call ebp
mov ebx, dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
lea ecx, [esp + 0x34]
push ecx
call ebx
lea edx, [esp + 0x44]
mov ebp, eax
push edx
call ebx
push 2
push eax
push ebp
push ebp
mov dword [esp + 0x68], eax
call dword [sym.imp.GDI32.dll_CombineRgn]
test eax, eax
je 0x405648
mov eax, dword [esi + 0x10]
push 1
push ebp
push eax
call dword [sym.imp.USER32.dll_SetWindowRgn]
mov eax, dword [esp + 0x58]
test eax, eax
je 0x405657
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ebp, dword [sym.imp.USER32.dll_OffsetRect]
push edi
lea ecx, [esp + 0x38]
push edi
push ecx
call ebp
push edi
lea edx, [esp + 0x48]
push edi
push edx
call ebp
lea eax, [esp + 0x34]
push eax
call ebx
lea ecx, [esp + 0x44]
mov edi, eax
push ecx
call ebx
mov ebp, eax
push 2
push ebp
push edi
push edi
call dword [sym.imp.GDI32.dll_CombineRgn]
test eax, eax
je 0x4056c3
lea edx, [esp + 0x24]
push edx
call ebx
mov ebx, eax
push 4
push edi
push ebx
push ebx
call dword [sym.imp.GDI32.dll_CombineRgn]
test eax, eax
je 0x4056c3
mov eax, dword [esi + 4]
push 1
push ebx
push eax
call dword [sym.imp.USER32.dll_SetWindowRgn]
mov ecx, dword [esi + 4]
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
test edi, edi
je 0x4056ce
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
test ebp, ebp
je 0x4056d9
push ebp
call dword [sym.imp.GDI32.dll_DeleteObject]
mov edx, dword [esi + 0x10]
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x10]
push eax
push 0
push 0
push 0
push 0
push ecx
push edx
call dword [sym.imp.USER32.dll_SetWindowPos]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 4
test eax, eax
jne 0x4057d0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
push eax
sub eax, ebp
push ecx
push eax
lea eax, [esp + 0x40]
push edx
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov ebx, dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
lea ecx, [esp + 0x34]
push ecx
call ebx
mov edx, dword [esi + 0x10]
mov ebp, dword [sym.imp.USER32.dll_SetWindowRgn]
push 1
push eax
push edx
call ebp
push edi
lea eax, [esp + 0x38]
push edi
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
lea ecx, [esp + 0x24]
push ecx
call ebx
lea edx, [esp + 0x34]
mov edi, eax
push edx
call ebx
mov ebx, eax
push 4
push ebx
push edi
push edi
call dword [sym.imp.GDI32.dll_CombineRgn]
test eax, eax
je 0x405792
mov eax, dword [esi + 4]
push 1
push edi
push eax
call ebp
mov ecx, dword [esi + 4]
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
test ebx, ebx
je 0x40579d
push ebx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov edx, dword [esi + 0x10]
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x10]
push eax
push 0
push 0
push 0
push 0
push ecx
push edx
call dword [sym.imp.USER32.dll_SetWindowPos]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 4
cmp eax, 1
jne 0x405895
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x20]
push eax
sub eax, ebp
push ecx
lea edx, [esp + 0x50]
push eax
push edx
call dword [sym.imp.USER32.dll_SetRect]
mov ebx, dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
lea eax, [esp + 0x44]
push eax
call ebx
mov ecx, dword [esi + 0x10]
mov ebp, dword [sym.imp.USER32.dll_SetWindowRgn]
push 1
push eax
push ecx
call ebp
push edi
lea edx, [esp + 0x48]
push edi
push edx
call dword [sym.imp.USER32.dll_OffsetRect]
lea eax, [esp + 0x24]
push eax
call ebx
lea ecx, [esp + 0x44]
mov edi, eax
push ecx
call ebx
mov ebx, eax
push 4
push ebx
push edi
push edi
call dword [sym.imp.GDI32.dll_CombineRgn]
test eax, eax
je 0x405857
mov edx, dword [esi + 4]
push 1
push edi
push edx
call ebp
mov eax, dword [esi + 4]
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
test ebx, ebx
je 0x405862
push ebx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [esi + 0x10]
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x10]
push edx
push 0
push 0
push 0
push 0
push eax
push ecx
call dword [sym.imp.USER32.dll_SetWindowPos]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 4
mov edx, dword [esi + 4]
mov edi, dword [sym.imp.USER32.dll_SetWindowRgn]
push 1
push 0
push edx
call edi
mov eax, dword [esi + 0x10]
push 1
push 0
push eax
call edi
mov ecx, dword [esi + 0x10]
push 0
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 4