Function at 0x506df4
Capabilities:
Hide graphical window

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffc8
mov ebx, eax
mov eax, ebx
call fcn.00514b4c
test al, al
je 0x507222
mov eax, ebx
call fcn.005065c8
test al, al
jne 0x507222
mov eax, dword [ebx + 0x28c]
cmp byte [eax + 0x22b], 1
je 0x507222
mov eax, dword [ebx + 0x28c]
cmp byte [eax + 0x1a6], 0
je 0x507222
cmp dword [ebx + 0x2bc], 0
je 0x506e5d
mov eax, dword [ebx + 0x28c]
cmp dword [eax + 0x248], 0
je 0x507222
mov eax, dword [ebx + 0x28c]
cmp byte [eax + 0x22f], 1
jne 0x506e87
cmp dword [0x54fafc], 0
je 0x506e87
mov eax, dword [0x54fafc]
cmp dword [eax + 0xdc], 0
jg 0x507222
test byte [ebx + 0x2a0], 0x80
jne 0x507222
cmp dword [ebx + 0x290], 0
jne 0x506eef
push 0
mov ecx, dword [0x54d898]
mov ecx, dword [ecx]
mov dl, 1
mov eax, dword [0x506950]
call fcn.0045d550
mov esi, eax
mov dword [ebx + 0x290], esi
mov dword [esi + 0x300], ebx
test esi, esi
je 0x507222
mov eax, esi
call fcn.0044b400
mov eax, dword [ebx + 0x290]
call fcn.0044b728
test al, al
jne 0x506eef
lea eax, [ebx + 0x290]
call fcn.0040ec2c
jmp 0x507222
cmp dword [ebx + 0x2bc], 0
je 0x506f94
mov eax, ebx
call fcn.005112e8
mov esi, eax
mov eax, ebx
call fcn.00510c78
imul esi, eax
inc esi
mov eax, ebx
call fcn.00510b84
mov edi, eax
mov eax, dword [ebx + 0x28c]
add edi, dword [eax + 0x44]
sub edi, esi
lea edx, [esp + 0x28]
mov eax, ebx
call fcn.00513d4c
sub edi, dword [esp + 0x2c]
mov eax, dword [ebx + 0x2bc]
call fcn.00506354
sub edi, eax
mov ebp, dword [ebx + 0x28c]
mov eax, ebp
call fcn.0044b424
xor ecx, ecx
mov edx, dword [ebx + 0x2bc]
call fcn.00506144
add eax, dword [ebp + 0x40]
mov dword [esp + 0x10], eax
mov ebp, dword [ebx + 0x28c]
mov eax, ebp
call fcn.0044b424
xor ecx, ecx
mov edx, dword [ebx + 0x2bc]
call fcn.00506144
add eax, eax
mov edx, dword [ebp + 0x48]
sub edx, eax
mov dword [esp + 0x14], edx
test esi, esi
je 0x507136
inc esi
jmp 0x507136
mov eax, dword [ebx + 0x28c]
mov esi, dword [eax + 0x4c]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x14], eax
mov ebp, dword [ebx + 0x28c]
cmp dword [ebp + 0x30], 0
jne 0x506fc5
cmp byte [ebp + 0x22f], 1
je 0x506fc5
mov edi, dword [ebp + 0x44]
mov eax, dword [ebp + 0x40]
mov dword [esp + 0x10], eax
jmp 0x506fe3
lea eax, [esp + 0x18]
push eax
mov eax, ebp
call fcn.0044b424
push eax
call sub.user32.dll_GetWindowRect
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], eax
xor ecx, ecx
xor edx, edx
mov eax, ebx
call fcn.00507728
mov ebp, eax
mov dword [esp + 8], ebp
mov eax, dword [ebx + 0x28c]
call fcn.0044b424
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0x28c]
call fcn.0044b424
lea edx, [esp + 8]
call fcn.00506d58
mov eax, dword [ebx + 0x28c]
call fcn.0044b424
lea edx, [esp + 0x18]
call fcn.004fbf44
mov eax, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x24]
push eax
call sub.gdi32.dll_CreateRectRgn
mov dword [esp + 4], eax
push 4
mov eax, dword [esp + 8]
push eax
push ebp
push ebp
call sub.gdi32.dll_CombineRgn
mov eax, dword [esp + 4]
push eax
call sub.gdi32.dll_DeleteObject
mov eax, dword [ebx + 0x28c]
cmp dword [eax + 0x30], 0
jne 0x50707f
mov eax, dword [ebx + 0x28c]
cmp byte [eax + 0x22f], 1
jne 0x507122
mov eax, dword [ebx + 0x28c]
call fcn.0044b424
push eax
call sub.user32.dll_GetDC
mov dword [esp], eax
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 4]
push eax
call sub.gdi32.dll_GetClipBox
dec eax
jne 0x5070ca
lea eax, [ebx + 0x290]
call fcn.0040ec2c
mov eax, dword [esp]
push eax
mov eax, dword [ebx + 0x28c]
call fcn.0044b424
push eax
call sub.user32.dll_ReleaseDC
jmp 0x507222
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
cmp edx, eax
jle 0x50710d
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x24]
jge 0x50710d
mov ecx, dword [esp + 0x24]
push ecx
push edx
mov edx, dword [esp + 0x24]
push edx
push eax
call sub.gdi32.dll_CreateRectRgn
mov dword [esp + 4], eax
push 1
mov eax, dword [esp + 8]
push eax
push ebp
push ebp
call sub.gdi32.dll_CombineRgn
mov eax, dword [esp + 4]
push eax
call sub.gdi32.dll_DeleteObject
mov eax, dword [esp]
push eax
mov eax, dword [ebx + 0x28c]
call fcn.0044b424
push eax
call sub.user32.dll_ReleaseDC
push 0
push ebp
mov eax, dword [ebx + 0x290]
call fcn.0044b424
push eax
call sub.user32.dll_SetWindowRgn
mov eax, dword [esp + 0x14]
push eax
push esi
mov ecx, edi
mov edx, dword [esp + 0x18]
mov eax, dword [ebx + 0x290]
mov ebp, dword [eax]
call dword [ebp + 0x84]
mov ebp, dword [ebx + 0x28c]
cmp byte [ebp + 0x22f], 1
jne 0x507191
push 0x658
mov eax, ebx
call fcn.00511138
push eax
mov eax, dword [ebx + 0x28c]
mov eax, dword [eax + 0x48]
push eax
push edi
mov eax, dword [esp + 0x20]
push eax
push 0
mov eax, dword [ebx + 0x290]
call fcn.0044b424
push eax
call sub.user32.dll_SetWindowPos
jmp 0x5071ee
push 0xffffffffffffffec
mov eax, ebp
call fcn.0044b424
push eax
call sub.user32.dll_GetWindowLongA
test al, 8
je 0x5071ca
push 0x658
push esi
mov eax, dword [esp + 0x1c]
push eax
push edi
mov eax, dword [esp + 0x20]
push eax
push 0xffffffffffffffff
mov eax, dword [ebx + 0x290]
call fcn.0044b424
push eax
call sub.user32.dll_SetWindowPos
jmp 0x5071ee
push 0x658
push esi
mov eax, dword [esp + 0x1c]
push eax
push edi
mov eax, dword [esp + 0x20]
push eax
push 0
mov eax, dword [ebx + 0x290]
call fcn.0044b424
push eax
call sub.user32.dll_SetWindowPos
push 4
mov eax, dword [ebx + 0x290]
call fcn.0044b424
push eax
call sub.user32.dll_ShowWindow
push 0x105
push 0
push 0
mov eax, dword [ebx + 0x290]
call fcn.0044b424
push eax
call sub.user32.dll_RedrawWindow
push 0x28
call sub.kernel32.dll_Sleep_1
add esp, 0x38
pop ebp
pop edi
pop esi
pop ebx
ret