Function at 0x5089c0
Capabilities:
Hide graphical window

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffac
mov byte [esp], dl
mov ebx, eax
mov esi, dword [ebx + 0x8c]
mov edi, dword [ebx + 0x9c]
test esi, esi
je 0x509020
test edi, edi
je 0x509020
mov eax, edi
call fcn.004a3d6c
test al, al
je 0x509020
mov eax, esi
call fcn.004a3d6c
test al, al
je 0x509020
mov eax, ebx
call fcn.00508990
test al, al
je 0x508a82
mov eax, esi
call fcn.004a3994
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x508a31
push 0
mov eax, esi
call fcn.004a3994
push eax
call sub.user32.dll_ShowWindow
mov eax, edi
call fcn.004a3994
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x508a51
push 0
mov eax, edi
call fcn.004a3994
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [ebx + 0x94]
call fcn.004a3994
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x509020
push 0
mov eax, dword [ebx + 0x94]
call fcn.004a3994
push eax
call sub.user32.dll_ShowWindow
jmp 0x509020
mov byte [esp + 0x18], 0
lea edx, [esp + 0x24]
mov eax, ebx
call fcn.005093d4
mov dword [esp + 4], 0x7fffffff
mov dword [esp + 8], 0x7fffffff
mov dword [esp + 0xc], 0x80000001
mov dword [esp + 0x10], 0x80000001
mov eax, ebx
call fcn.0050977c
call fcn.004f856c
dec eax
test eax, eax
jl 0x508bc0
inc eax
mov dword [esp + 0x1c], eax
xor ebp, ebp
mov eax, ebx
call fcn.0050977c
mov edx, ebp
call fcn.004f85b8
cmp byte [eax + 0x69], 0
je 0x508bb5
mov eax, ebx
call fcn.0050977c
mov edx, ebp
call fcn.004f85b8
call fcn.004a3994
cmp eax, dword [ebx + 0x3c]
je 0x508bb5
mov eax, ebx
call fcn.0050977c
mov dword [esp + 0x20], eax
lea eax, [esp + 0x34]
push eax
mov edx, ebp
mov eax, dword [esp + 0x24]
call fcn.004f85b8
call fcn.004a3994
push eax
call sub.user32.dll_GetWindowRect
lea eax, [esp + 0x44]
push eax
mov eax, dword [ebx + 8]
mov eax, dword [eax + 0x3c4]
push eax
call sub.user32.dll_GetWindowRect
mov ecx, dword [esp + 0x48]
neg ecx
mov edx, dword [esp + 0x44]
neg edx
lea eax, [esp + 0x34]
call fcn.00410dec
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 4]
jge 0x508b5f
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 8]
jge 0x508b6d
mov dword [esp + 8], eax
lea eax, [esp + 0x34]
call fcn.00410a84
add eax, dword [esp + 0x34]
cmp eax, dword [esp + 0xc]
jle 0x508b91
lea eax, [esp + 0x34]
call fcn.00410a84
add eax, dword [esp + 0x34]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x34]
call fcn.00410a8c
add eax, dword [esp + 0x38]
cmp eax, dword [esp + 0x10]
jle 0x508bb5
lea eax, [esp + 0x34]
call fcn.00410a8c
add eax, dword [esp + 0x38]
mov dword [esp + 0x10], eax
inc ebp
dec dword [esp + 0x1c]
jne 0x508ace
cmp dword [esp + 4], 0
jl 0x508bda
lea eax, [esp + 0x24]
call fcn.00410a84
cmp eax, dword [esp + 0xc]
jl 0x508bda
xor eax, eax
jmp 0x508bdc
mov al, 1
mov byte [esp + 0x19], al
cmp dword [esp + 8], 0
jl 0x508bfa
lea eax, [esp + 0x24]
call fcn.00410a8c
cmp eax, dword [esp + 0x10]
jl 0x508bfa
xor eax, eax
jmp 0x508bfc
mov al, 1
mov byte [esp + 0x1a], al
cmp byte [esp + 0x1a], 0
je 0x508c31
cmp byte [esp + 0x19], 0
jne 0x508c31
cmp dword [esp + 4], 0
jl 0x508c2b
lea eax, [esp + 0x24]
call fcn.00410a84
sub eax, dword [edi + 0x58]
cmp eax, dword [esp + 0xc]
jl 0x508c2b
xor eax, eax
jmp 0x508c2d
mov al, 1
mov byte [esp + 0x19], al
cmp byte [esp + 0x19], 0
je 0x508c62
cmp byte [esp + 0x1a], 0
jne 0x508c62
cmp dword [esp + 8], 0
jl 0x508c5c
lea eax, [esp + 0x24]
call fcn.00410a8c
sub eax, dword [esi + 0x5c]
cmp eax, dword [esp + 0x10]
jl 0x508c5c
xor eax, eax
jmp 0x508c5e
mov al, 1
mov byte [esp + 0x1a], al
cmp byte [esp + 0x19], 0
je 0x508cbc
mov eax, esi
call fcn.004a3994
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x508cbc
push 0x40
mov eax, dword [esi + 0x5c]
push eax
lea eax, [esp + 0x2c]
call fcn.00410a84
push eax
mov eax, dword [esp + 0x3c]
sub eax, dword [esi + 0x5c]
push eax
mov eax, dword [esp + 0x34]
push eax
push 0
mov eax, esi
call fcn.004a3994
push eax
call sub.user32.dll_SetWindowPos
push 5
mov eax, esi
call fcn.004a3994
push eax
call sub.user32.dll_ShowWindow
mov byte [esp + 0x18], 1
jmp 0x508ce8
cmp byte [esp + 0x19], 0
jne 0x508ce8
mov eax, esi
call fcn.004a3994
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x508ce8
push 0
mov eax, esi
call fcn.004a3994
push eax
call sub.user32.dll_ShowWindow
mov byte [esp + 0x18], 1
cmp byte [esp + 0x1a], 0
je 0x508d7c
mov eax, edi
call fcn.004a3994
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x508d7c
cmp byte [esp + 0x19], 0
je 0x508d3b
push 0x40
lea eax, [esp + 0x28]
call fcn.00410a8c
sub eax, dword [esi + 0x5c]
push eax
mov ebp, dword [edi + 0x58]
push ebp
mov eax, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x3c]
sub eax, ebp
push eax
push 0
mov eax, edi
call fcn.004a3994
push eax
call sub.user32.dll_SetWindowPos
jmp 0x508d66
push 0x40
lea eax, [esp + 0x28]
call fcn.00410a8c
push eax
mov ebp, dword [edi + 0x58]
push ebp
mov eax, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x3c]
sub eax, ebp
push eax
push 0
mov eax, edi
call fcn.004a3994
push eax
call sub.user32.dll_SetWindowPos
push 5
mov eax, edi
call fcn.004a3994
push eax
call sub.user32.dll_ShowWindow
mov byte [esp + 0x18], 1
jmp 0x508da8
cmp byte [esp + 0x1a], 0
jne 0x508da8
mov eax, edi
call fcn.004a3994
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x508da8
push 0
mov eax, edi
call fcn.004a3994
push eax
call sub.user32.dll_ShowWindow
mov byte [esp + 0x18], 1
lea eax, [esp + 0x24]
call fcn.00410a84
mov ebp, eax
lea eax, [esp + 0x24]
call fcn.00410a8c
mov dword [esp + 0x14], eax
mov eax, ebx
call fcn.005091b4
mov eax, esi
call fcn.004a3994
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x508e74
cmp dword [esp + 4], 0
jle 0x508de9
xor eax, eax
mov dword [esp + 4], eax
lea eax, [esp + 0x24]
call fcn.00410a84
cmp eax, dword [esp + 0xc]
jle 0x508e05
lea eax, [esp + 0x24]
call fcn.00410a84
mov dword [esp + 0xc], eax
cmp byte [esp], 0
je 0x508e66
mov byte [ebx + 0x98], 1
mov eax, edi
call fcn.004a3994
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x508e31
mov edx, ebp
sub edx, dword [edi + 0x58]
mov eax, esi
call fcn.004bdfd4
jmp 0x508e3a
mov edx, ebp
mov eax, esi
call fcn.004bdfd4
mov eax, dword [esp + 0xc]
sub eax, dword [esp + 4]
dec eax
push eax
mov edx, dword [esp + 8]
neg edx
xor ecx, ecx
mov eax, esi
call fcn.004bde00
mov eax, dword [esi + 0x2a4]
mov dword [ebx + 0xb8], eax
mov byte [ebx + 0x98], 0
movzx eax, word [esi + 0x2b0]
mov word [esi + 0x2ba], ax
mov eax, edi
call fcn.004a3994
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x508f25
cmp dword [esp + 8], 0
jle 0x508e96
xor eax, eax
mov dword [esp + 8], eax
lea eax, [esp + 0x24]
call fcn.00410a8c
cmp eax, dword [esp + 0x10]
jle 0x508eb2
lea eax, [esp + 0x24]
call fcn.00410a8c
mov dword [esp + 0x10], eax
cmp byte [esp], 0
je 0x508f17
mov byte [ebx + 0x99], 1
mov eax, esi
call fcn.004a3994
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x508ee0
mov edx, dword [esp + 0x14]
sub edx, dword [esi + 0x5c]
mov eax, edi
call fcn.004bdfd4
jmp 0x508eeb
mov edx, dword [esp + 0x14]
mov eax, edi
call fcn.004bdfd4
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 8]
dec eax
push eax
mov edx, dword [esp + 0xc]
neg edx
xor ecx, ecx
mov eax, edi
call fcn.004bde00
mov eax, dword [edi + 0x2a4]
mov dword [ebx + 0xbc], eax
mov byte [ebx + 0x99], 0
movzx eax, word [edi + 0x2b0]
mov word [edi + 0x2ba], ax
mov eax, esi
call fcn.004a3994
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x508f4c
mov eax, edi
call fcn.004a3994
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x508f4c
mov byte [esp + 0x18], 0
mov eax, esi
call fcn.004a3994
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x508fc4
mov eax, edi
call fcn.004a3994
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x508fc4
mov eax, dword [ebx + 0x94]
call fcn.004a3994
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x508fc4
push 0x40
mov eax, dword [esi + 0x5c]
push eax
mov ebp, dword [edi + 0x58]
push ebp
mov eax, dword [esp + 0x3c]
sub eax, dword [esi + 0x5c]
push eax
mov eax, dword [esp + 0x3c]
sub eax, ebp
push eax
push 0
mov eax, dword [ebx + 0x94]
call fcn.004a3994
push eax
call sub.user32.dll_SetWindowPos
push 5
mov eax, dword [ebx + 0x94]
call fcn.004a3994
push eax
call sub.user32.dll_ShowWindow
jmp 0x50900e
mov eax, esi
call fcn.004a3994
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x508ffb
mov eax, edi
call fcn.004a3994
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x50900e
mov eax, dword [ebx + 0x94]
call fcn.004a3994
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x50900e
push 0
mov eax, dword [ebx + 0x94]
call fcn.004a3994
push eax
call sub.user32.dll_ShowWindow
cmp byte [esp + 0x18], 0
je 0x509020
movzx edx, byte [esp]
mov eax, ebx
call fcn.005089c0
add esp, 0x54
pop ebp
pop edi
pop esi
pop ebx
ret