Function at 0x585730
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 0x585d90
test edi, edi
je 0x585d90
mov eax, edi
call fcn.004f19c0
test al, al
je 0x585d90
mov eax, esi
call fcn.004f19c0
test al, al
je 0x585d90
mov eax, ebx
call fcn.00585700
test al, al
je 0x5857f2
mov eax, esi
call fcn.004f15ec
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x5857a1
push 0
mov eax, esi
call fcn.004f15ec
push eax
call sub.user32.dll_ShowWindow
mov eax, edi
call fcn.004f15ec
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x5857c1
push 0
mov eax, edi
call fcn.004f15ec
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [ebx + 0x94]
call fcn.004f15ec
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x585d90
push 0
mov eax, dword [ebx + 0x94]
call fcn.004f15ec
push eax
call sub.user32.dll_ShowWindow
jmp 0x585d90
mov byte [esp + 0x18], 0
lea edx, [esp + 0x24]
mov eax, ebx
call fcn.00586124
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.0058647c
call fcn.005754d4
dec eax
test eax, eax
jl 0x585930
inc eax
mov dword [esp + 0x1c], eax
xor ebp, ebp
mov eax, ebx
call fcn.0058647c
mov edx, ebp
call fcn.00575520
cmp byte [eax + 0x69], 0
je 0x585925
mov eax, ebx
call fcn.0058647c
mov edx, ebp
call fcn.00575520
call fcn.004f15ec
cmp eax, dword [ebx + 0x3c]
je 0x585925
mov eax, ebx
call fcn.0058647c
mov dword [esp + 0x20], eax
lea eax, [esp + 0x34]
push eax
mov edx, ebp
mov eax, dword [esp + 0x24]
call fcn.00575520
call fcn.004f15ec
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.0040efa4
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 4]
jge 0x5858cf
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 8]
jge 0x5858dd
mov dword [esp + 8], eax
lea eax, [esp + 0x34]
call fcn.0040ecbc
add eax, dword [esp + 0x34]
cmp eax, dword [esp + 0xc]
jle 0x585901
lea eax, [esp + 0x34]
call fcn.0040ecbc
add eax, dword [esp + 0x34]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x34]
call fcn.0040ecc4
add eax, dword [esp + 0x38]
cmp eax, dword [esp + 0x10]
jle 0x585925
lea eax, [esp + 0x34]
call fcn.0040ecc4
add eax, dword [esp + 0x38]
mov dword [esp + 0x10], eax
inc ebp
dec dword [esp + 0x1c]
jne 0x58583e
cmp dword [esp + 4], 0
jl 0x58594a
lea eax, [esp + 0x24]
call fcn.0040ecbc
cmp eax, dword [esp + 0xc]
jl 0x58594a
xor eax, eax
jmp 0x58594c
mov al, 1
mov byte [esp + 0x19], al
cmp dword [esp + 8], 0
jl 0x58596a
lea eax, [esp + 0x24]
call fcn.0040ecc4
cmp eax, dword [esp + 0x10]
jl 0x58596a
xor eax, eax
jmp 0x58596c
mov al, 1
mov byte [esp + 0x1a], al
cmp byte [esp + 0x1a], 0
je 0x5859a1
cmp byte [esp + 0x19], 0
jne 0x5859a1
cmp dword [esp + 4], 0
jl 0x58599b
lea eax, [esp + 0x24]
call fcn.0040ecbc
sub eax, dword [edi + 0x58]
cmp eax, dword [esp + 0xc]
jl 0x58599b
xor eax, eax
jmp 0x58599d
mov al, 1
mov byte [esp + 0x19], al
cmp byte [esp + 0x19], 0
je 0x5859d2
cmp byte [esp + 0x1a], 0
jne 0x5859d2
cmp dword [esp + 8], 0
jl 0x5859cc
lea eax, [esp + 0x24]
call fcn.0040ecc4
sub eax, dword [esi + 0x5c]
cmp eax, dword [esp + 0x10]
jl 0x5859cc
xor eax, eax
jmp 0x5859ce
mov al, 1
mov byte [esp + 0x1a], al
cmp byte [esp + 0x19], 0
je 0x585a2c
mov eax, esi
call fcn.004f15ec
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x585a2c
push 0x40
mov eax, dword [esi + 0x5c]
push eax
lea eax, [esp + 0x2c]
call fcn.0040ecbc
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.004f15ec
push eax
call sub.user32.dll_SetWindowPos
push 5
mov eax, esi
call fcn.004f15ec
push eax
call sub.user32.dll_ShowWindow
mov byte [esp + 0x18], 1
jmp 0x585a58
cmp byte [esp + 0x19], 0
jne 0x585a58
mov eax, esi
call fcn.004f15ec
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x585a58
push 0
mov eax, esi
call fcn.004f15ec
push eax
call sub.user32.dll_ShowWindow
mov byte [esp + 0x18], 1
cmp byte [esp + 0x1a], 0
je 0x585aec
mov eax, edi
call fcn.004f15ec
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x585aec
cmp byte [esp + 0x19], 0
je 0x585aab
push 0x40
lea eax, [esp + 0x28]
call fcn.0040ecc4
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.004f15ec
push eax
call sub.user32.dll_SetWindowPos
jmp 0x585ad6
push 0x40
lea eax, [esp + 0x28]
call fcn.0040ecc4
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.004f15ec
push eax
call sub.user32.dll_SetWindowPos
push 5
mov eax, edi
call fcn.004f15ec
push eax
call sub.user32.dll_ShowWindow
mov byte [esp + 0x18], 1
jmp 0x585b18
cmp byte [esp + 0x1a], 0
jne 0x585b18
mov eax, edi
call fcn.004f15ec
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x585b18
push 0
mov eax, edi
call fcn.004f15ec
push eax
call sub.user32.dll_ShowWindow
mov byte [esp + 0x18], 1
lea eax, [esp + 0x24]
call fcn.0040ecbc
mov ebp, eax
lea eax, [esp + 0x24]
call fcn.0040ecc4
mov dword [esp + 0x14], eax
mov eax, ebx
call fcn.00585f04
mov eax, esi
call fcn.004f15ec
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x585be4
cmp dword [esp + 4], 0
jle 0x585b59
xor eax, eax
mov dword [esp + 4], eax
lea eax, [esp + 0x24]
call fcn.0040ecbc
cmp eax, dword [esp + 0xc]
jle 0x585b75
lea eax, [esp + 0x24]
call fcn.0040ecbc
mov dword [esp + 0xc], eax
cmp byte [esp], 0
je 0x585bd6
mov byte [ebx + 0x98], 1
mov eax, edi
call fcn.004f15ec
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x585ba1
mov edx, ebp
sub edx, dword [edi + 0x58]
mov eax, esi
call fcn.00509704
jmp 0x585baa
mov edx, ebp
mov eax, esi
call fcn.00509704
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.00509530
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.004f15ec
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x585c95
cmp dword [esp + 8], 0
jle 0x585c06
xor eax, eax
mov dword [esp + 8], eax
lea eax, [esp + 0x24]
call fcn.0040ecc4
cmp eax, dword [esp + 0x10]
jle 0x585c22
lea eax, [esp + 0x24]
call fcn.0040ecc4
mov dword [esp + 0x10], eax
cmp byte [esp], 0
je 0x585c87
mov byte [ebx + 0x99], 1
mov eax, esi
call fcn.004f15ec
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x585c50
mov edx, dword [esp + 0x14]
sub edx, dword [esi + 0x5c]
mov eax, edi
call fcn.00509704
jmp 0x585c5b
mov edx, dword [esp + 0x14]
mov eax, edi
call fcn.00509704
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.00509530
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.004f15ec
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x585cbc
mov eax, edi
call fcn.004f15ec
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x585cbc
mov byte [esp + 0x18], 0
mov eax, esi
call fcn.004f15ec
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x585d34
mov eax, edi
call fcn.004f15ec
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x585d34
mov eax, dword [ebx + 0x94]
call fcn.004f15ec
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x585d34
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.004f15ec
push eax
call sub.user32.dll_SetWindowPos
push 5
mov eax, dword [ebx + 0x94]
call fcn.004f15ec
push eax
call sub.user32.dll_ShowWindow
jmp 0x585d7e
mov eax, esi
call fcn.004f15ec
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x585d6b
mov eax, edi
call fcn.004f15ec
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x585d7e
mov eax, dword [ebx + 0x94]
call fcn.004f15ec
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x585d7e
push 0
mov eax, dword [ebx + 0x94]
call fcn.004f15ec
push eax
call sub.user32.dll_ShowWindow
cmp byte [esp + 0x18], 0
je 0x585d90
movzx edx, byte [esp]
mov eax, ebx
call fcn.00585730
add esp, 0x54
pop ebp
pop edi
pop esi
pop ebx
ret