Function at 0x50cad8
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 0x50d110
test edi, edi
je 0x50d110
mov eax, edi
call fcn.00499a80
test al, al
je 0x50d110
mov eax, esi
call fcn.00499a80
test al, al
je 0x50d110
mov eax, ebx
call fcn.0050caa8
test al, al
je 0x50cb72
mov eax, esi
call fcn.004996cc
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x50cb49
push 0
mov eax, esi
call fcn.004996cc
push eax
call sub.user32.dll_ShowWindow
mov eax, edi
call fcn.004996cc
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x50d110
push 0
mov eax, edi
call fcn.004996cc
push eax
call sub.user32.dll_ShowWindow
jmp 0x50d110
mov byte [esp + 0x18], 0
lea edx, [esp + 0x24]
mov eax, ebx
call fcn.0050d498
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.0050d7f0
call fcn.004ff844
dec eax
test eax, eax
jl 0x50ccb0
inc eax
mov dword [esp + 0x1c], eax
xor ebp, ebp
mov eax, ebx
call fcn.0050d7f0
mov edx, ebp
call fcn.004ff890
cmp byte [eax + 0x61], 0
je 0x50cca5
mov eax, ebx
call fcn.0050d7f0
mov edx, ebp
call fcn.004ff890
call fcn.004996cc
cmp eax, dword [ebx + 0x3c]
je 0x50cca5
mov eax, ebx
call fcn.0050d7f0
mov dword [esp + 0x20], eax
lea eax, [esp + 0x34]
push eax
mov edx, ebp
mov eax, dword [esp + 0x24]
call fcn.004ff890
call fcn.004996cc
push eax
call sub.user32.dll_GetWindowRect
lea eax, [esp + 0x44]
push eax
mov eax, dword [ebx + 8]
mov eax, dword [eax + 0x384]
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.0040d398
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 4]
jge 0x50cc4f
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 8]
jge 0x50cc5d
mov dword [esp + 8], eax
lea eax, [esp + 0x34]
call fcn.0040d0f8
add eax, dword [esp + 0x34]
cmp eax, dword [esp + 0xc]
jle 0x50cc81
lea eax, [esp + 0x34]
call fcn.0040d0f8
add eax, dword [esp + 0x34]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x34]
call fcn.0040d100
add eax, dword [esp + 0x38]
cmp eax, dword [esp + 0x10]
jle 0x50cca5
lea eax, [esp + 0x34]
call fcn.0040d100
add eax, dword [esp + 0x38]
mov dword [esp + 0x10], eax
inc ebp
dec dword [esp + 0x1c]
jne 0x50cbbe
cmp dword [esp + 4], 0
jl 0x50ccca
lea eax, [esp + 0x24]
call fcn.0040d0f8
cmp eax, dword [esp + 0xc]
jl 0x50ccca
xor eax, eax
jmp 0x50cccc
mov al, 1
mov byte [esp + 0x19], al
cmp dword [esp + 8], 0
jl 0x50ccea
lea eax, [esp + 0x24]
call fcn.0040d100
cmp eax, dword [esp + 0x10]
jl 0x50ccea
xor eax, eax
jmp 0x50ccec
mov al, 1
mov byte [esp + 0x1a], al
cmp byte [esp + 0x1a], 0
je 0x50cd21
cmp byte [esp + 0x19], 0
jne 0x50cd21
cmp dword [esp + 4], 0
jl 0x50cd1b
lea eax, [esp + 0x24]
call fcn.0040d0f8
sub eax, dword [edi + 0x50]
cmp eax, dword [esp + 0xc]
jl 0x50cd1b
xor eax, eax
jmp 0x50cd1d
mov al, 1
mov byte [esp + 0x19], al
cmp byte [esp + 0x19], 0
je 0x50cd52
cmp byte [esp + 0x1a], 0
jne 0x50cd52
cmp dword [esp + 8], 0
jl 0x50cd4c
lea eax, [esp + 0x24]
call fcn.0040d100
sub eax, dword [esi + 0x54]
cmp eax, dword [esp + 0x10]
jl 0x50cd4c
xor eax, eax
jmp 0x50cd4e
mov al, 1
mov byte [esp + 0x1a], al
cmp byte [esp + 0x19], 0
je 0x50cdac
mov eax, esi
call fcn.004996cc
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x50cdac
push 0x40
mov eax, dword [esi + 0x54]
push eax
lea eax, [esp + 0x2c]
call fcn.0040d0f8
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.004996cc
push eax
call sub.user32.dll_SetWindowPos
push 5
mov eax, esi
call fcn.004996cc
push eax
call sub.user32.dll_ShowWindow
mov byte [esp + 0x18], 1
jmp 0x50cdd8
cmp byte [esp + 0x19], 0
jne 0x50cdd8
mov eax, esi
call fcn.004996cc
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x50cdd8
push 0
mov eax, esi
call fcn.004996cc
push eax
call sub.user32.dll_ShowWindow
mov byte [esp + 0x18], 1
cmp byte [esp + 0x1a], 0
je 0x50ce6c
mov eax, edi
call fcn.004996cc
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x50ce6c
cmp byte [esp + 0x19], 0
je 0x50ce2b
push 0x40
lea eax, [esp + 0x28]
call fcn.0040d100
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.004996cc
push eax
call sub.user32.dll_SetWindowPos
jmp 0x50ce56
push 0x40
lea eax, [esp + 0x28]
call fcn.0040d100
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.004996cc
push eax
call sub.user32.dll_SetWindowPos
push 5
mov eax, edi
call fcn.004996cc
push eax
call sub.user32.dll_ShowWindow
mov byte [esp + 0x18], 1
jmp 0x50ce98
cmp byte [esp + 0x1a], 0
jne 0x50ce98
mov eax, edi
call fcn.004996cc
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x50ce98
push 0
mov eax, edi
call fcn.004996cc
push eax
call sub.user32.dll_ShowWindow
mov byte [esp + 0x18], 1
lea eax, [esp + 0x24]
call fcn.0040d0f8
mov ebp, eax
lea eax, [esp + 0x24]
call fcn.0040d100
mov dword [esp + 0x14], eax
mov eax, ebx
call fcn.0050d278
mov eax, esi
call fcn.004996cc
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x50cf64
cmp dword [esp + 4], 0
jle 0x50ced9
xor eax, eax
mov dword [esp + 4], eax
lea eax, [esp + 0x24]
call fcn.0040d0f8
cmp eax, dword [esp + 0xc]
jle 0x50cef5
lea eax, [esp + 0x24]
call fcn.0040d0f8
mov dword [esp + 0xc], eax
cmp byte [esp], 0
je 0x50cf56
mov byte [ebx + 0x98], 1
mov eax, edi
call fcn.004996cc
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x50cf21
mov edx, ebp
sub edx, dword [edi + 0x50]
mov eax, esi
call fcn.004a9af0
jmp 0x50cf2a
mov edx, ebp
mov eax, esi
call fcn.004a9af0
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.004a991c
mov eax, dword [esi + 0x27c]
mov dword [ebx + 0xb8], eax
mov byte [ebx + 0x98], 0
movzx eax, word [esi + 0x288]
mov word [esi + 0x292], ax
mov eax, edi
call fcn.004996cc
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x50d015
cmp dword [esp + 8], 0
jle 0x50cf86
xor eax, eax
mov dword [esp + 8], eax
lea eax, [esp + 0x24]
call fcn.0040d100
cmp eax, dword [esp + 0x10]
jle 0x50cfa2
lea eax, [esp + 0x24]
call fcn.0040d100
mov dword [esp + 0x10], eax
cmp byte [esp], 0
je 0x50d007
mov byte [ebx + 0x99], 1
mov eax, esi
call fcn.004996cc
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x50cfd0
mov edx, dword [esp + 0x14]
sub edx, dword [esi + 0x54]
mov eax, edi
call fcn.004a9af0
jmp 0x50cfdb
mov edx, dword [esp + 0x14]
mov eax, edi
call fcn.004a9af0
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.004a991c
mov eax, dword [edi + 0x27c]
mov dword [ebx + 0xbc], eax
mov byte [ebx + 0x99], 0
movzx eax, word [edi + 0x288]
mov word [edi + 0x292], ax
mov eax, esi
call fcn.004996cc
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x50d03c
mov eax, edi
call fcn.004996cc
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x50d03c
mov byte [esp + 0x18], 0
mov eax, esi
call fcn.004996cc
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x50d0b4
mov eax, edi
call fcn.004996cc
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x50d0b4
mov eax, dword [ebx + 0x94]
call fcn.004996cc
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x50d0b4
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.004996cc
push eax
call sub.user32.dll_SetWindowPos
push 5
mov eax, dword [ebx + 0x94]
call fcn.004996cc
push eax
call sub.user32.dll_ShowWindow
jmp 0x50d0fe
mov eax, esi
call fcn.004996cc
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x50d0eb
mov eax, edi
call fcn.004996cc
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x50d0fe
mov eax, dword [ebx + 0x94]
call fcn.004996cc
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x50d0fe
push 0
mov eax, dword [ebx + 0x94]
call fcn.004996cc
push eax
call sub.user32.dll_ShowWindow
cmp byte [esp + 0x18], 0
je 0x50d110
movzx edx, byte [esp]
mov eax, ebx
call fcn.0050cad8
add esp, 0x54
pop ebp
pop edi
pop esi
pop ebx
ret