Function at 0x56aa04
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 0x56b03c
test edi, edi
je 0x56b03c
mov eax, edi
call fcn.004ef1ec
test al, al
je 0x56b03c
mov eax, esi
call fcn.004ef1ec
test al, al
je 0x56b03c
mov eax, ebx
call fcn.0056a9d4
test al, al
je 0x56aa9e
mov eax, esi
call fcn.004eee38
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x56aa75
push 0
mov eax, esi
call fcn.004eee38
push eax
call sub.user32.dll_ShowWindow
mov eax, edi
call fcn.004eee38
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x56b03c
push 0
mov eax, edi
call fcn.004eee38
push eax
call sub.user32.dll_ShowWindow
jmp 0x56b03c
mov byte [esp + 0x18], 0
lea edx, [esp + 0x24]
mov eax, ebx
call fcn.0056b3c4
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.0056b71c
call fcn.0055b2a4
dec eax
test eax, eax
jl 0x56abdc
inc eax
mov dword [esp + 0x1c], eax
xor ebp, ebp
mov eax, ebx
call fcn.0056b71c
mov edx, ebp
call fcn.0055b2f0
cmp byte [eax + 0x61], 0
je 0x56abd1
mov eax, ebx
call fcn.0056b71c
mov edx, ebp
call fcn.0055b2f0
call fcn.004eee38
cmp eax, dword [ebx + 0x3c]
je 0x56abd1
mov eax, ebx
call fcn.0056b71c
mov dword [esp + 0x20], eax
lea eax, [esp + 0x34]
push eax
mov edx, ebp
mov eax, dword [esp + 0x24]
call fcn.0055b2f0
call fcn.004eee38
push eax
call sub.user32.dll_GetWindowRect
lea eax, [esp + 0x44]
push eax
mov eax, dword [ebx + 8]
mov eax, dword [eax + 0x394]
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.0040c740
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 4]
jge 0x56ab7b
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 8]
jge 0x56ab89
mov dword [esp + 8], eax
lea eax, [esp + 0x34]
call fcn.0040c44c
add eax, dword [esp + 0x34]
cmp eax, dword [esp + 0xc]
jle 0x56abad
lea eax, [esp + 0x34]
call fcn.0040c44c
add eax, dword [esp + 0x34]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x34]
call fcn.0040c454
add eax, dword [esp + 0x38]
cmp eax, dword [esp + 0x10]
jle 0x56abd1
lea eax, [esp + 0x34]
call fcn.0040c454
add eax, dword [esp + 0x38]
mov dword [esp + 0x10], eax
inc ebp
dec dword [esp + 0x1c]
jne 0x56aaea
cmp dword [esp + 4], 0
jl 0x56abf6
lea eax, [esp + 0x24]
call fcn.0040c44c
cmp eax, dword [esp + 0xc]
jl 0x56abf6
xor eax, eax
jmp 0x56abf8
mov al, 1
mov byte [esp + 0x19], al
cmp dword [esp + 8], 0
jl 0x56ac16
lea eax, [esp + 0x24]
call fcn.0040c454
cmp eax, dword [esp + 0x10]
jl 0x56ac16
xor eax, eax
jmp 0x56ac18
mov al, 1
mov byte [esp + 0x1a], al
cmp byte [esp + 0x1a], 0
je 0x56ac4d
cmp byte [esp + 0x19], 0
jne 0x56ac4d
cmp dword [esp + 4], 0
jl 0x56ac47
lea eax, [esp + 0x24]
call fcn.0040c44c
sub eax, dword [edi + 0x50]
cmp eax, dword [esp + 0xc]
jl 0x56ac47
xor eax, eax
jmp 0x56ac49
mov al, 1
mov byte [esp + 0x19], al
cmp byte [esp + 0x19], 0
je 0x56ac7e
cmp byte [esp + 0x1a], 0
jne 0x56ac7e
cmp dword [esp + 8], 0
jl 0x56ac78
lea eax, [esp + 0x24]
call fcn.0040c454
sub eax, dword [esi + 0x54]
cmp eax, dword [esp + 0x10]
jl 0x56ac78
xor eax, eax
jmp 0x56ac7a
mov al, 1
mov byte [esp + 0x1a], al
cmp byte [esp + 0x19], 0
je 0x56acd8
mov eax, esi
call fcn.004eee38
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x56acd8
push 0x40
mov eax, dword [esi + 0x54]
push eax
lea eax, [esp + 0x2c]
call fcn.0040c44c
push eax
mov eax, dword [esp + 0x3c]
sub eax, dword [esi + 0x54]
push eax
mov eax, dword [esp + 0x34]
push eax
push 0
mov eax, esi
call fcn.004eee38
push eax
call sub.user32.dll_SetWindowPos
push 5
mov eax, esi
call fcn.004eee38
push eax
call sub.user32.dll_ShowWindow
mov byte [esp + 0x18], 1
jmp 0x56ad04
cmp byte [esp + 0x19], 0
jne 0x56ad04
mov eax, esi
call fcn.004eee38
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x56ad04
push 0
mov eax, esi
call fcn.004eee38
push eax
call sub.user32.dll_ShowWindow
mov byte [esp + 0x18], 1
cmp byte [esp + 0x1a], 0
je 0x56ad98
mov eax, edi
call fcn.004eee38
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x56ad98
cmp byte [esp + 0x19], 0
je 0x56ad57
push 0x40
lea eax, [esp + 0x28]
call fcn.0040c454
sub eax, dword [esi + 0x54]
push eax
mov ebp, dword [edi + 0x50]
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.004eee38
push eax
call sub.user32.dll_SetWindowPos
jmp 0x56ad82
push 0x40
lea eax, [esp + 0x28]
call fcn.0040c454
push eax
mov ebp, dword [edi + 0x50]
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.004eee38
push eax
call sub.user32.dll_SetWindowPos
push 5
mov eax, edi
call fcn.004eee38
push eax
call sub.user32.dll_ShowWindow
mov byte [esp + 0x18], 1
jmp 0x56adc4
cmp byte [esp + 0x1a], 0
jne 0x56adc4
mov eax, edi
call fcn.004eee38
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x56adc4
push 0
mov eax, edi
call fcn.004eee38
push eax
call sub.user32.dll_ShowWindow
mov byte [esp + 0x18], 1
lea eax, [esp + 0x24]
call fcn.0040c44c
mov ebp, eax
lea eax, [esp + 0x24]
call fcn.0040c454
mov dword [esp + 0x14], eax
mov eax, ebx
call fcn.0056b1a4
mov eax, esi
call fcn.004eee38
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x56ae90
cmp dword [esp + 4], 0
jle 0x56ae05
xor eax, eax
mov dword [esp + 4], eax
lea eax, [esp + 0x24]
call fcn.0040c44c
cmp eax, dword [esp + 0xc]
jle 0x56ae21
lea eax, [esp + 0x24]
call fcn.0040c44c
mov dword [esp + 0xc], eax
cmp byte [esp], 0
je 0x56ae82
mov byte [ebx + 0x98], 1
mov eax, edi
call fcn.004eee38
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x56ae4d
mov edx, ebp
sub edx, dword [edi + 0x50]
mov eax, esi
call fcn.00501244
jmp 0x56ae56
mov edx, ebp
mov eax, esi
call fcn.00501244
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.00501070
mov eax, dword [esi + 0x28c]
mov dword [ebx + 0xb8], eax
mov byte [ebx + 0x98], 0
movzx eax, word [esi + 0x298]
mov word [esi + 0x2a2], ax
mov eax, edi
call fcn.004eee38
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x56af41
cmp dword [esp + 8], 0
jle 0x56aeb2
xor eax, eax
mov dword [esp + 8], eax
lea eax, [esp + 0x24]
call fcn.0040c454
cmp eax, dword [esp + 0x10]
jle 0x56aece
lea eax, [esp + 0x24]
call fcn.0040c454
mov dword [esp + 0x10], eax
cmp byte [esp], 0
je 0x56af33
mov byte [ebx + 0x99], 1
mov eax, esi
call fcn.004eee38
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x56aefc
mov edx, dword [esp + 0x14]
sub edx, dword [esi + 0x54]
mov eax, edi
call fcn.00501244
jmp 0x56af07
mov edx, dword [esp + 0x14]
mov eax, edi
call fcn.00501244
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.00501070
mov eax, dword [edi + 0x28c]
mov dword [ebx + 0xbc], eax
mov byte [ebx + 0x99], 0
movzx eax, word [edi + 0x298]
mov word [edi + 0x2a2], ax
mov eax, esi
call fcn.004eee38
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x56af68
mov eax, edi
call fcn.004eee38
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x56af68
mov byte [esp + 0x18], 0
mov eax, esi
call fcn.004eee38
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x56afe0
mov eax, edi
call fcn.004eee38
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x56afe0
mov eax, dword [ebx + 0x94]
call fcn.004eee38
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x56afe0
push 0x40
mov eax, dword [esi + 0x54]
push eax
mov ebp, dword [edi + 0x50]
push ebp
mov eax, dword [esp + 0x3c]
sub eax, dword [esi + 0x54]
push eax
mov eax, dword [esp + 0x3c]
sub eax, ebp
push eax
push 0
mov eax, dword [ebx + 0x94]
call fcn.004eee38
push eax
call sub.user32.dll_SetWindowPos
push 5
mov eax, dword [ebx + 0x94]
call fcn.004eee38
push eax
call sub.user32.dll_ShowWindow
jmp 0x56b02a
mov eax, esi
call fcn.004eee38
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x56b017
mov eax, edi
call fcn.004eee38
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x56b02a
mov eax, dword [ebx + 0x94]
call fcn.004eee38
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x56b02a
push 0
mov eax, dword [ebx + 0x94]
call fcn.004eee38
push eax
call sub.user32.dll_ShowWindow
cmp byte [esp + 0x18], 0
je 0x56b03c
movzx edx, byte [esp]
mov eax, ebx
call fcn.0056aa04
add esp, 0x54
pop ebp
pop edi
pop esi
pop ebx
ret