Function at 0x529110
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 0x529748
test edi, edi
je 0x529748
mov eax, edi
call fcn.004a4960
test al, al
je 0x529748
mov eax, esi
call fcn.004a4960
test al, al
je 0x529748
mov eax, ebx
call fcn.005290e0
test al, al
je 0x5291aa
mov eax, esi
call fcn.004a45ac
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x529181
push 0
mov eax, esi
call fcn.004a45ac
push eax
call sub.user32.dll_ShowWindow
mov eax, edi
call fcn.004a45ac
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x529748
push 0
mov eax, edi
call fcn.004a45ac
push eax
call sub.user32.dll_ShowWindow
jmp 0x529748
mov byte [esp + 0x18], 0
lea edx, [esp + 0x24]
mov eax, ebx
call fcn.00529ad0
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.00529e28
call fcn.0051b524
dec eax
test eax, eax
jl 0x5292e8
inc eax
mov dword [esp + 0x1c], eax
xor ebp, ebp
mov eax, ebx
call fcn.00529e28
mov edx, ebp
call fcn.0051b570
cmp byte [eax + 0x61], 0
je 0x5292dd
mov eax, ebx
call fcn.00529e28
mov edx, ebp
call fcn.0051b570
call fcn.004a45ac
cmp eax, dword [ebx + 0x3c]
je 0x5292dd
mov eax, ebx
call fcn.00529e28
mov dword [esp + 0x20], eax
lea eax, [esp + 0x34]
push eax
mov edx, ebp
mov eax, dword [esp + 0x24]
call fcn.0051b570
call fcn.004a45ac
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.0040cd58
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 4]
jge 0x529287
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 8]
jge 0x529295
mov dword [esp + 8], eax
lea eax, [esp + 0x34]
call fcn.0040c66c
add eax, dword [esp + 0x34]
cmp eax, dword [esp + 0xc]
jle 0x5292b9
lea eax, [esp + 0x34]
call fcn.0040c66c
add eax, dword [esp + 0x34]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x34]
call fcn.0040c674
add eax, dword [esp + 0x38]
cmp eax, dword [esp + 0x10]
jle 0x5292dd
lea eax, [esp + 0x34]
call fcn.0040c674
add eax, dword [esp + 0x38]
mov dword [esp + 0x10], eax
inc ebp
dec dword [esp + 0x1c]
jne 0x5291f6
cmp dword [esp + 4], 0
jl 0x529302
lea eax, [esp + 0x24]
call fcn.0040c66c
cmp eax, dword [esp + 0xc]
jl 0x529302
xor eax, eax
jmp 0x529304
mov al, 1
mov byte [esp + 0x19], al
cmp dword [esp + 8], 0
jl 0x529322
lea eax, [esp + 0x24]
call fcn.0040c674
cmp eax, dword [esp + 0x10]
jl 0x529322
xor eax, eax
jmp 0x529324
mov al, 1
mov byte [esp + 0x1a], al
cmp byte [esp + 0x1a], 0
je 0x529359
cmp byte [esp + 0x19], 0
jne 0x529359
cmp dword [esp + 4], 0
jl 0x529353
lea eax, [esp + 0x24]
call fcn.0040c66c
sub eax, dword [edi + 0x50]
cmp eax, dword [esp + 0xc]
jl 0x529353
xor eax, eax
jmp 0x529355
mov al, 1
mov byte [esp + 0x19], al
cmp byte [esp + 0x19], 0
je 0x52938a
cmp byte [esp + 0x1a], 0
jne 0x52938a
cmp dword [esp + 8], 0
jl 0x529384
lea eax, [esp + 0x24]
call fcn.0040c674
sub eax, dword [esi + 0x54]
cmp eax, dword [esp + 0x10]
jl 0x529384
xor eax, eax
jmp 0x529386
mov al, 1
mov byte [esp + 0x1a], al
cmp byte [esp + 0x19], 0
je 0x5293e4
mov eax, esi
call fcn.004a45ac
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x5293e4
push 0x40
mov eax, dword [esi + 0x54]
push eax
lea eax, [esp + 0x2c]
call fcn.0040c66c
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.004a45ac
push eax
call sub.user32.dll_SetWindowPos
push 5
mov eax, esi
call fcn.004a45ac
push eax
call sub.user32.dll_ShowWindow
mov byte [esp + 0x18], 1
jmp 0x529410
cmp byte [esp + 0x19], 0
jne 0x529410
mov eax, esi
call fcn.004a45ac
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x529410
push 0
mov eax, esi
call fcn.004a45ac
push eax
call sub.user32.dll_ShowWindow
mov byte [esp + 0x18], 1
cmp byte [esp + 0x1a], 0
je 0x5294a4
mov eax, edi
call fcn.004a45ac
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x5294a4
cmp byte [esp + 0x19], 0
je 0x529463
push 0x40
lea eax, [esp + 0x28]
call fcn.0040c674
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.004a45ac
push eax
call sub.user32.dll_SetWindowPos
jmp 0x52948e
push 0x40
lea eax, [esp + 0x28]
call fcn.0040c674
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.004a45ac
push eax
call sub.user32.dll_SetWindowPos
push 5
mov eax, edi
call fcn.004a45ac
push eax
call sub.user32.dll_ShowWindow
mov byte [esp + 0x18], 1
jmp 0x5294d0
cmp byte [esp + 0x1a], 0
jne 0x5294d0
mov eax, edi
call fcn.004a45ac
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x5294d0
push 0
mov eax, edi
call fcn.004a45ac
push eax
call sub.user32.dll_ShowWindow
mov byte [esp + 0x18], 1
lea eax, [esp + 0x24]
call fcn.0040c66c
mov ebp, eax
lea eax, [esp + 0x24]
call fcn.0040c674
mov dword [esp + 0x14], eax
mov eax, ebx
call fcn.005298b0
mov eax, esi
call fcn.004a45ac
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x52959c
cmp dword [esp + 4], 0
jle 0x529511
xor eax, eax
mov dword [esp + 4], eax
lea eax, [esp + 0x24]
call fcn.0040c66c
cmp eax, dword [esp + 0xc]
jle 0x52952d
lea eax, [esp + 0x24]
call fcn.0040c66c
mov dword [esp + 0xc], eax
cmp byte [esp], 0
je 0x52958e
mov byte [ebx + 0x98], 1
mov eax, edi
call fcn.004a45ac
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x529559
mov edx, ebp
sub edx, dword [edi + 0x50]
mov eax, esi
call fcn.004b4ca0
jmp 0x529562
mov edx, ebp
mov eax, esi
call fcn.004b4ca0
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.004b4acc
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.004a45ac
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x52964d
cmp dword [esp + 8], 0
jle 0x5295be
xor eax, eax
mov dword [esp + 8], eax
lea eax, [esp + 0x24]
call fcn.0040c674
cmp eax, dword [esp + 0x10]
jle 0x5295da
lea eax, [esp + 0x24]
call fcn.0040c674
mov dword [esp + 0x10], eax
cmp byte [esp], 0
je 0x52963f
mov byte [ebx + 0x99], 1
mov eax, esi
call fcn.004a45ac
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x529608
mov edx, dword [esp + 0x14]
sub edx, dword [esi + 0x54]
mov eax, edi
call fcn.004b4ca0
jmp 0x529613
mov edx, dword [esp + 0x14]
mov eax, edi
call fcn.004b4ca0
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.004b4acc
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.004a45ac
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x529674
mov eax, edi
call fcn.004a45ac
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x529674
mov byte [esp + 0x18], 0
mov eax, esi
call fcn.004a45ac
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x5296ec
mov eax, edi
call fcn.004a45ac
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x5296ec
mov eax, dword [ebx + 0x94]
call fcn.004a45ac
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x5296ec
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.004a45ac
push eax
call sub.user32.dll_SetWindowPos
push 5
mov eax, dword [ebx + 0x94]
call fcn.004a45ac
push eax
call sub.user32.dll_ShowWindow
jmp 0x529736
mov eax, esi
call fcn.004a45ac
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x529723
mov eax, edi
call fcn.004a45ac
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x529736
mov eax, dword [ebx + 0x94]
call fcn.004a45ac
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x529736
push 0
mov eax, dword [ebx + 0x94]
call fcn.004a45ac
push eax
call sub.user32.dll_ShowWindow
cmp byte [esp + 0x18], 0
je 0x529748
movzx edx, byte [esp]
mov eax, ebx
call fcn.00529110
add esp, 0x54
pop ebp
pop edi
pop esi
pop ebx
ret