Function at 0x51998c
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff68
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov esi, edx
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0x270], 0
je 0x51a2cb
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2cc]
call fcn.0044b9d0
push eax
call sub.user32.dll_IsIconic
test eax, eax
jne 0x51a2cb
mov byte [0x585f34], 1
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2e0]
test eax, eax
je 0x519a25
cmp dword [eax + 0x2c], 0
jne 0x5199eb
call fcn.004c9448
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2e0]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x78], eax
push 0
push 0
mov eax, dword [ebp - 0x78]
call fcn.0044b9d0
push eax
call sub.user32.dll_SetWindowRgn
test eax, eax
jne 0x519a15
call fcn.0051dc5c
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2e0]
call fcn.004c8d08
jmp 0x519a46
mov eax, dword [ebp - 0x5c]
call fcn.004b1698
push 0
mov ecx, dword [0x586b7c]
mov ecx, dword [ecx]
mov dl, 1
mov eax, dword [0x552fa0]
call fcn.0045da40
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x270]
mov ebx, dword [eax + 0x5c]
test ebx, ebx
je 0x51a2cb
mov eax, ebx
call fcn.0052acdc
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0x2e0], 0
jne 0x519a79
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0x3c], 0
jne 0x519a85
mov eax, dword [ebp - 0x5c]
call fcn.004b4d98
test al, al
je 0x519aa5
push 0
lea edx, [ebp - 0x98]
mov eax, dword [ebp - 0x2c]
call fcn.00533e9c
lea edx, [ebp - 0x98]
xor ecx, ecx
mov eax, dword [ebp - 0x2c]
call fcn.00506cc8
mov eax, dword [ebp - 0x2c]
call fcn.00428ccc
call fcn.00424318
push 0
mov eax, dword [ebp - 0x5c]
push eax
push 0
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0x2cc]
xor ecx, ecx
mov eax, dword [ebp - 0x2c]
call fcn.00518808
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0x2e0], 0
jne 0x519b14
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 0x3c], 0
je 0x519aef
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x5c]
call fcn.004b4114
jmp 0x519b14
push 0x1fffffff
push 0
lea edx, [ebp - 0x98]
mov eax, dword [ebp - 0x2c]
call fcn.00533e9c
lea edx, [ebp - 0x98]
mov cl, 0xff
mov eax, dword [ebp - 0x2c]
call fcn.00506f78
cmp dword [ebp - 0x2c], 0
je 0x51a2cb
mov eax, dword [ebp - 0x2c]
call fcn.00428ccc
call fcn.004246f8
lea edx, [ebp - 0x70]
mov eax, dword [ebp - 0x2c]
call fcn.00533f5c
movzx eax, si
mov ecx, 0xc
xor edx, edx
div ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x68], 0x718
cmp dword [ebp - 0x10], 0
jle 0x519b5e
lea eax, [ebp - 0x60]
xor edx, edx
call fcn.005347cc
jmp 0x519b69
mov dl, byte [ebp - 0xc]
lea eax, [ebp - 0x60]
call fcn.005347cc
xor esi, esi
xor eax, eax
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0x2e0], 0
je 0x519c7f
lea edx, [ebp - 0x88]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2cc]
call fcn.00444b70
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2cc]
call fcn.0044b9d0
push eax
call sub.user32.dll_IsZoomed
test eax, eax
je 0x519bc9
mov dl, 1
mov eax, dword [ebp - 0x5c]
call fcn.004ab768
mov ebx, eax
xor edx, edx
mov eax, dword [ebp - 0x5c]
call fcn.004a89e0
add eax, 4
cmp ebx, eax
jl 0x519bcd
xor ebx, ebx
jmp 0x519bcf
mov bl, 1
mov eax, dword [ebp - 0x5c]
mov byte [eax + 0xe4], bl
test bl, bl
je 0x519c24
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2cc]
call fcn.0044b9d0
mov edx, dword [ebp - 0x5c]
mov edx, dword [edx + 0x2e0]
xor ecx, ecx
call fcn.004a88c0
mov esi, eax
lea edx, [ebp - 0x98]
mov eax, dword [ebp - 0x5c]
call fcn.004b73c4
mov ebx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2e0]
call fcn.004a8af8
add ebx, eax
add esi, ebx
jmp 0x519c34
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2e0]
call fcn.004c8ad0
mov esi, eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2cc]
call fcn.0044b9d0
mov edx, dword [ebp - 0x5c]
mov edx, dword [edx + 0x2e0]
xor ecx, ecx
call fcn.004a88c0
push eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2e0]
call fcn.004a8ad4
mov ebx, eax
pop eax
sub ebx, eax
lea edx, [ebp - 0x98]
mov eax, dword [ebp - 0x5c]
call fcn.004b73c4
add ebx, dword [ebp - 0x98]
mov dword [ebp - 0x74], ebx
jmp 0x519cb3
lea eax, [ebp - 0x88]
push eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2cc]
call fcn.0044b9d0
push eax
call sub.user32.dll_GetWindowRect
mov eax, dword [ebp - 0x5c]
call fcn.004a9a10
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x248]
mov edx, dword [ebp - 0x2c]
call fcn.00519058
push 0xffffffffffffffec
mov eax, dword [ebp - 0x78]
call fcn.0044b9d0
push eax
call sub.user32.dll_GetWindowLongA
or eax, 0x8000000
push eax
push 0xffffffffffffffec
mov eax, dword [ebp - 0x78]
call fcn.0044b9d0
push eax
call sub.user32.dll_SetWindowLongA
test eax, eax
jne 0x519ce2
call fcn.0051dc5c
push 0xffffffffffffffec
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2cc]
call fcn.0044b9d0
push eax
call sub.user32.dll_GetWindowLongA
test al, 8
je 0x519d4e
mov dl, 3
mov eax, dword [ebp - 0x78]
call fcn.0045f34c
xor edx, edx
mov eax, dword [ebp - 0x78]
call fcn.0044498c
xor edx, edx
mov eax, dword [ebp - 0x78]
call fcn.004449b0
push 0xffffffffffffffec
mov eax, dword [ebp - 0x78]
call fcn.0044b9d0
push eax
call sub.user32.dll_GetWindowLongA
or eax, 0x80000
push eax
push 0xffffffffffffffec
mov eax, dword [ebp - 0x78]
call fcn.0044b9d0
push eax
call sub.user32.dll_SetWindowLongA
test eax, eax
jne 0x519d49
call fcn.0051dc5c
or ebx, 0xffffffff
jmp 0x519d7a
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2cc]
test byte [eax + 0x2f4], 8
je 0x519d6a
mov dl, 3
mov eax, dword [ebp - 0x78]
call fcn.0045f34c
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2cc]
call fcn.0044b9d0
mov ebx, eax
push 0xffffffffffffffec
mov eax, dword [ebp - 0x78]
call fcn.0044b9d0
push eax
call sub.user32.dll_GetWindowLongA
test eax, 0x80000
jne 0x519dc0
push 0xffffffffffffffec
mov eax, dword [ebp - 0x78]
call fcn.0044b9d0
push eax
call sub.user32.dll_GetWindowLongA
or eax, 0x80000
push eax
push 0xffffffffffffffec
mov eax, dword [ebp - 0x78]
call fcn.0044b9d0
push eax
call sub.user32.dll_SetWindowLongA
test eax, eax
jne 0x519dc0
call fcn.0051dc5c
lea eax, [ebp - 0x60]
push eax
push 0
mov eax, dword [ebp - 0x78]
call fcn.0044b9d0
lea ecx, [ebp - 0x70]
mov edx, dword [ebp - 0x2c]
call fcn.0051f414
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
mov ecx, dword [ebp - 0x84]
sub ecx, esi
mov edx, dword [ebp - 0x88]
sub edx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x78]
mov edi, dword [eax]
call dword [edi + 0x84]
push 0x65b
push 0
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 0x78]
call fcn.0044b9d0
push eax
call sub.user32.dll_SetWindowPos
test eax, eax
jne 0x519e2d
call fcn.0051dc5c
push 4
mov eax, dword [ebp - 0x78]
call fcn.0044b9d0
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x70]
push eax
mov eax, dword [ebp - 0x78]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [ebp - 0x78]
mov eax, dword [eax + 0x40]
push eax
push ebx
mov eax, dword [ebp - 0x78]
call fcn.0044b9d0
push eax
call sub.user32.dll_SetWindowPos
test eax, eax
jne 0x519e6f
call fcn.0051dc5c
lea eax, [ebp - 0x70]
call fcn.0052acd0
mov dword [ebp - 0x64], eax
push 0
lea edx, [ebp - 0x98]
mov eax, dword [ebp - 0x64]
call fcn.00533e9c
lea eax, [ebp - 0x98]
push eax
mov eax, dword [ebp - 0x64]
call fcn.00428ccc
call fcn.00424800
xor ecx, ecx
pop edx
call fcn.00524110
push 3
mov eax, dword [ebp - 0x64]
call fcn.00428ccc
call fcn.00424800
push eax
call sub.gdi32.dll_SetStretchBltMode
cmp dword [ebp - 0x10], 0
jle 0x519f1f
push ebp
call fcn.00519264
pop ecx
xor ebx, ebx
cmp ebx, dword [ebp - 0x10]
jg 0x519f19
push ebp
call fcn.005194ec
pop ecx
call sub.kernel32.dll_GetTickCount
mov edi, eax
lea eax, [ebp - 0x60]
push eax
push 0
mov eax, dword [ebp - 0x78]
call fcn.0044b9d0
lea ecx, [ebp - 0x70]
mov edx, dword [ebp - 0x64]
call fcn.0051f414
push ebp
call fcn.005197c4
pop ecx
test al, al
je 0x519f19
inc ebx
cmp dword [ebp - 0x10], 0
jle 0x519f14
mov edx, 0xc
mov eax, edi
call fcn.00534780
cmp ebx, dword [ebp - 0x10]
jle 0x519ecf
mov al, byte [ebp - 0xc]
mov byte [ebp - 0x5e], al
mov eax, dword [ebp - 0x68]
or eax, 4
push eax
mov eax, dword [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x70]
push eax
mov eax, dword [ebp - 0x84]
sub eax, esi
push eax
mov eax, dword [ebp - 0x88]
sub eax, dword [ebp - 0x74]
push eax
push 0
mov eax, dword [ebp - 0x78]
call fcn.0044b9d0
push eax
call sub.user32.dll_SetWindowPos
test eax, eax
jne 0x519f5a
call fcn.0051dc5c
lea eax, [ebp - 0x60]
push eax
push 0
mov eax, dword [ebp - 0x78]
call fcn.0044b9d0
lea ecx, [ebp - 0x70]
mov edx, dword [ebp - 0x2c]
call fcn.0051f414
lea eax, [ebp - 0x64]
call fcn.0040f0a8
cmp dword [ebp - 0x5c], 0
je 0x51a2cb
mov eax, dword [ebp - 0x5c]
mov byte [eax + 0x2ca], 0
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2cc]
call fcn.0044b9d0
xor ecx, ecx
mov dl, 1
call fcn.0051acdc
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2cc]
movzx eax, byte [eax + 0x22b]
mov eax, dword [eax*4 + 0x585f44]
push eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2cc]
call fcn.0044b9d0
push eax
call sub.user32.dll_ShowWindow
push 0x61b
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 0x78]
call fcn.0044b9d0
push eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2cc]
call fcn.0044b9d0
push eax
call sub.user32.dll_SetWindowPos
test eax, eax
jne 0x51a005
call fcn.0051dc5c
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0x2e0], 0
je 0x51a01d
mov cl, 1
mov dl, 1
mov eax, dword [ebp - 0x5c]
call fcn.004a9d54
mov eax, dword [0x586c68]
cmp byte [eax], 0
je 0x51a059
call fcn.004cd1c4
test al, al
jne 0x51a059
call fcn.0053360c
test al, al
je 0x51a059
cmp dword [0x587ebc], 0
je 0x51a059
push 0
mov eax, dword [ebp - 0x78]
call fcn.0044b9d0
xor ecx, ecx
xor edx, edx
call fcn.004a6fc8
mov ebx, eax
jmp 0x51a05b
xor ebx, ebx
push ebp
call fcn.005198d8
pop ecx
mov byte [0x585f34], 0
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2e0]
test eax, eax
je 0x51a07a
mov byte [eax + 0x26], 1
mov eax, dword [0x586c68]
cmp byte [eax], 0
je 0x51a0a2
call fcn.004cd1c4
test al, al
je 0x51a0a2
push 0
mov eax, dword [ebp - 0x78]
call fcn.0044b9d0
xor ecx, ecx
xor edx, edx
call fcn.004a6fc8
mov ebx, eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2cc]
call fcn.0044b9d0
mov edx, eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x270]
call fcn.0051908c
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x270]
cmp byte [eax + 0x35], 0
jne 0x51a0dd
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2cc]
call fcn.0051bfb0
mov eax, dword [0x586918]
cmp dword [eax], 6
jne 0x51a12c
mov eax, dword [0x586bf4]
cmp dword [eax], 0
jne 0x51a12c
push 0xfffffffffffffff0
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2cc]
call fcn.0044b9d0
push eax
call sub.user32.dll_GetWindowLongA
or eax, 0x10000000
push eax
push 0xfffffffffffffff0
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2cc]
call fcn.0044b9d0
push eax
call sub.user32.dll_SetWindowLongA
test eax, eax
jne 0x51a12c
call fcn.0051dc5c
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0x2e0], 0
je 0x51a144
mov cl, 1
mov dl, 1
mov eax, dword [ebp - 0x5c]
call fcn.004a9d54
push 0x585
push 0
push 0
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2cc]
call fcn.0044b9d0
push eax
call sub.user32.dll_RedrawWindow
test eax, eax
jne 0x51a16a
call fcn.0051dc5c
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2e0]
test eax, eax
je 0x51a1a7
mov byte [eax + 0x26], 0
push 0
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2e0]
xor ecx, ecx
xor edx, edx
call fcn.004c9210
push eax
mov eax, dword [ebp - 0x78]
call fcn.0044b9d0
push eax
call sub.user32.dll_SetWindowRgn
test eax, eax
jne 0x51a1a7
call fcn.0051dc5c
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x94]
cmp byte [eax + 8], 0
je 0x51a1cb
mov ecx, 0x519224
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2cc]
xor edx, edx
call fcn.005182c4
lea eax, [ebp - 0x2c]
call fcn.0040f0a8
push 0x61b
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2cc]
call fcn.0044b9d0
push eax
mov eax, dword [ebp - 0x78]
call fcn.0044b9d0
push eax
call sub.user32.dll_SetWindowPos
test eax, eax
jne 0x51a206
call fcn.0051dc5c
test ebx, ebx
je 0x51a218
push 0x14
call sub.kernel32.dll_Sleep
mov eax, ebx
call fcn.00403d64
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0x2e0], 0
jne 0x51a22e
lea eax, [ebp - 0x78]
call fcn.0040f0a8
jmp 0x51a2ad
push ebp
call fcn.005198d8
pop ecx
push 0
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2e0]
xor ecx, ecx
xor edx, edx
call fcn.004c9210
push eax
mov eax, dword [ebp - 0x78]
call fcn.0044b9d0
push eax
call sub.user32.dll_SetWindowRgn
test eax, eax
jne 0x51a261
call fcn.0051dc5c
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x270]
call fcn.00557b64
cmp byte [eax + 0xa189], 0
je 0x51a2ad
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x270]
call fcn.00557b64
mov eax, dword [eax + 0x80]
cmp byte [eax + 6], 0
je 0x51a2ad
call fcn.004a8c2c
test al, al
je 0x51a2ad
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x2e0]
mov cl, 0xff
mov dl, 1
call fcn.004c7e38
mov eax, dword [ebp - 0x5c]
cmp word [eax + 0xc2], 0
je 0x51a2cb
mov ebx, dword [ebp - 0x5c]
xor edx, edx
mov eax, dword [ebx + 0xc4]
call dword [ebx + 0xc0]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4