Function at 0x508afc
Capabilities:
Hide graphical window

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffbc
mov byte [esp + 1], cl
mov byte [esp], dl
mov ebp, eax
cmp dword [ebp + 0x10], 0
je 0x508f94
mov eax, dword [0x639cd4]
mov eax, dword [eax]
cmp byte [eax + 0xa4], 0
jne 0x508f94
cmp byte [ebp + 0x20], 0
jne 0x508f94
mov eax, ebp
call fcn.00509024
test eax, eax
je 0x508f94
lea eax, [esp + 0x24]
push eax
mov eax, ebp
call fcn.00509024
push eax
call sub.user32.dll_GetWindowRect
test eax, eax
je 0x508f94
mov eax, dword [ebp + 4]
mov edx, dword [0x4f41e4]
call fcn.00404838
test al, al
je 0x508bf6
mov eax, dword [ebp + 4]
call fcn.004f4eb0
test al, al
jne 0x508f94
mov eax, dword [ebp + 8]
cmp byte [eax + 0x10], 0
jne 0x508f94
mov eax, dword [ebp + 4]
cmp byte [eax + 0x78], 0
je 0x508f94
mov eax, dword [ebp + 4]
test byte [eax + 0x1c], 8
jne 0x508bb2
mov edx, dword [eax + 0x1dc]
test byte [edx + 0x1c], 8
je 0x508bbe
xor edx, edx
call fcn.005051f8
jmp 0x508f94
mov eax, dword [ebp + 4]
mov eax, dword [eax + 0x1dc]
cmp byte [eax + 0x57], 0
je 0x508be1
mov eax, dword [0x639cd4]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_IsIconic
test eax, eax
je 0x508c0b
push 0
mov eax, dword [ebp + 0x10]
call fcn.0045e79c
push eax
call sub.user32.dll_ShowWindow
jmp 0x508f94
mov eax, ebp
call fcn.00509024
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x508f94
mov byte [ebp + 0x20], 1
mov eax, dword [ebp + 8]
cmp byte [eax + 0x2d], 0
je 0x508c23
mov eax, ebp
call fcn.00509150
mov byte [esp], 1
mov ebx, dword [ebp + 4]
mov eax, ebx
mov esi, dword [0x4f41e4]
mov edx, esi
call fcn.00404838
test al, al
je 0x508c74
cmp byte [ebx + 0x1b0], 0
je 0x508c74
mov eax, ebp
call fcn.00509024
xor ecx, ecx
mov edx, ebp
call fcn.004f4b8c
mov ebx, eax
lea edx, [esp + 0x34]
mov eax, ebp
call fcn.00509068
mov edi, dword [esp + 0x38]
mov eax, ebp
call fcn.004f4c34
add edi, eax
add ebx, edi
mov dword [esp + 4], ebx
jmp 0x508c7f
mov eax, ebp
call fcn.00508fdc
mov dword [esp + 4], eax
mov eax, ebp
call fcn.00509024
xor ecx, ecx
mov edx, ebp
call fcn.004f4b8c
push eax
mov eax, ebp
call fcn.004f4c14
mov ebx, eax
pop eax
sub ebx, eax
lea edx, [esp + 0x34]
mov eax, ebp
call fcn.00509068
add ebx, dword [esp + 0x34]
mov dword [esp + 8], ebx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x38]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edi, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x38]
mov edx, dword [eax]
call dword [edx + 0x20]
mov ebx, eax
mov eax, ebp
call fcn.00509024
mov dword [esp + 0x20], eax
push 0xffffffffffffffec
mov eax, ebp
call fcn.00509024
push eax
call sub.user32.dll_GetWindowLongA
and eax, 8
cmp eax, 8
jne 0x508cf7
mov dl, 3
mov eax, dword [ebp + 0x10]
call fcn.0046e7e4
jmp 0x508d46
mov eax, dword [ebp + 4]
mov edx, esi
call fcn.00404838
test al, al
jne 0x508d46
push 0xfffffffffffffff0
mov eax, ebp
call fcn.00509024
push eax
call sub.user32.dll_GetWindowLongA
and eax, 0x80000000
cmp eax, 0x80000000
jne 0x508d46
push 0xfffffffffffffff0
mov eax, dword [ebp + 0x10]
call fcn.0045e79c
push eax
call sub.user32.dll_GetWindowLongA
or eax, 0x80000000
push eax
push 0xfffffffffffffff0
mov eax, dword [ebp + 0x10]
call fcn.0045e79c
push eax
call sub.user32.dll_SetWindowLongA
mov esi, 0x610
cmp byte [esp], 0
jne 0x508d61
mov eax, dword [ebp + 0x10]
cmp edi, dword [eax + 0x48]
jne 0x508d61
mov eax, dword [ebp + 0x10]
cmp ebx, dword [eax + 0x4c]
je 0x508d68
mov byte [esp + 0x1c], 1
jmp 0x508d70
or esi, 1
mov byte [esp + 0x1c], 0
cmp byte [esp], 0
jne 0x508d79
or esi, 8
mov edx, dword [esp + 0x24]
sub edx, dword [esp + 8]
mov eax, dword [ebp + 0x10]
call fcn.004728e0
mov edx, dword [esp + 0x28]
sub edx, dword [esp + 4]
mov eax, dword [ebp + 0x10]
call fcn.0047291c
mov edx, edi
mov eax, dword [ebp + 0x10]
call fcn.00455d9c
mov edx, ebx
mov eax, dword [ebp + 0x10]
call fcn.00455dd0
call fcn.005334b4
and al, byte [esp + 0x1c]
je 0x508f6e
cmp byte [ebp + 0xc], 0
jne 0x508f6e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x38]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x38]
mov edx, dword [eax]
call dword [edx + 0x20]
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x14]
xor edx, edx
xor eax, eax
call fcn.0041b7b4
mov ebx, dword [ebp + 4]
mov eax, ebx
mov edx, dword [0x4f41e4]
call fcn.00404838
test al, al
je 0x508e2c
mov eax, dword [ebx + 0x1dc]
cmp byte [eax + 0x328], 0
je 0x508e2c
mov eax, dword [ebx + 0x1dc]
movzx eax, byte [eax + 0x329]
mov edx, dword [0x6397d4]
mov byte [edx + 2], al
jmp 0x508e39
mov eax, dword [0x6397d4]
movzx edx, byte [esp + 1]
mov byte [eax + 2], dl
mov eax, dword [0x6397d4]
mov byte [eax], 0
mov eax, dword [0x6397d4]
mov byte [eax + 1], 0
mov eax, dword [0x6397d4]
mov byte [eax + 3], 1
push 0xffffffffffffffec
mov eax, dword [ebp + 0x10]
call fcn.0045e79c
push eax
call sub.user32.dll_GetWindowLongA
or eax, 0x80000
or eax, 0x8000000
push eax
push 0xffffffffffffffec
mov eax, dword [ebp + 0x10]
call fcn.0045e79c
push eax
call sub.user32.dll_SetWindowLongA
or esi, 1
or esi, 2
push esi
push 0
push 0
push 0
push 0
mov eax, dword [esp + 0x34]
push eax
mov eax, dword [ebp + 0x10]
call fcn.0045e79c
push eax
call sub.user32.dll_SetWindowPos
push 0
mov eax, ebp
call fcn.0050917c
push eax
mov eax, dword [ebp + 0x10]
call fcn.0045e79c
push eax
call sub.user32.dll_SetWindowRgn
push 0
call sub.user32.dll_GetDC
mov ebx, eax
push 2
mov eax, dword [0x6397d4]
push eax
push 0x1fffffff
lea eax, [esp + 0x20]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x38]
call fcn.00434af4
call fcn.0042fee8
push eax
lea eax, [esp + 0x20]
push eax
push 0
push ebx
mov eax, dword [ebp + 0x10]
call fcn.0045e79c
push eax
mov eax, dword [0x639788]
mov eax, dword [eax]
call eax
cmp byte [esp + 1], 0
jne 0x508f29
push 0xfffffffffffffff0
mov eax, ebp
call fcn.00509024
push eax
call sub.user32.dll_GetWindowLongA
and eax, 0xefffffff
push eax
push 0xfffffffffffffff0
mov eax, ebp
call fcn.00509024
push eax
call sub.user32.dll_SetWindowLongA
push 4
mov eax, dword [ebp + 0x10]
call fcn.0045e79c
push eax
call sub.user32.dll_ShowWindow
cmp byte [esp + 1], 0
jne 0x508f64
push 0xfffffffffffffff0
mov eax, ebp
call fcn.00509024
push eax
call sub.user32.dll_GetWindowLongA
or eax, 0x10000000
push eax
push 0xfffffffffffffff0
mov eax, ebp
call fcn.00509024
push eax
call sub.user32.dll_SetWindowLongA
push 0
push ebx
call sub.user32.dll_ReleaseDC
jmp 0x508f90
or esi, 1
or esi, 2
push esi
push 0
push 0
push 0
push 0
mov eax, dword [esp + 0x34]
push eax
mov eax, dword [ebp + 0x10]
call fcn.0045e79c
push eax
call sub.user32.dll_SetWindowPos
mov byte [ebp + 0x20], 0
add esp, 0x44
pop ebp
pop edi
pop esi
pop ebx
ret