Function at 0x489a60
Capabilities:
Resume thread

Disassembly:
push ebx
push esi
push edi
add esp, 0xffffffdc
mov byte [esp], cl
mov ebx, edx
mov esi, eax
xor eax, eax
call fcn.004899f4
xor eax, eax
mov dword [esp + 1], eax
xor eax, eax
mov dword [esp + 5], eax
call fcn.00407074
inc dword [eax + 0x8c]
call fcn.00407074
lea eax, [eax + 0x3c]
xor ecx, ecx
mov edx, 0x50
call fcn.00403664
call fcn.00407074
lea edi, [eax + 0x3c]
call fcn.00407074
mov eax, dword [eax + 0x8c]
mov dword [edi], eax
mov dword [edi + 4], esi
test bl, bl
je 0x489aca
cmp dword [0x54d114], 0
jne 0x489ace
xor eax, eax
jmp 0x489ad0
mov al, 1
mov byte [edi + 0xc], al
movzx eax, byte [esp]
mov byte [edi + 0x40], al
lea eax, [edi + 0x38]
push eax
call sub.user32.dll_GetCursorPos
lea eax, [edi + 0x20]
push eax
mov eax, dword [edi + 4]
push eax
call sub.user32.dll_GetClientRect
push 2
lea eax, [edi + 0x20]
push eax
push 0
mov eax, dword [edi + 4]
push eax
call sub.user32.dll_MapWindowPoints
lea eax, [esp + 0x14]
push eax
mov eax, dword [edi + 4]
push eax
call sub.user32.dll_GetWindowRect
push 3
push 0
mov eax, dword [edi + 4]
push eax
call sub.user32.dll_GetDCEx
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x14]
mov dword [edi + 0x30], eax
mov esi, dword [esp + 0x20]
sub esi, dword [esp + 0x18]
mov dword [edi + 0x34], esi
push esi
mov eax, dword [edi + 0x30]
push eax
mov eax, dword [edi + 0x14]
push eax
call sub.gdi32.dll_CreateCompatibleBitmap
mov dword [edi + 0x1c], eax
mov eax, dword [edi + 0x14]
push eax
call sub.gdi32.dll_CreateCompatibleDC
mov esi, eax
mov dword [edi + 0x18], esi
mov eax, dword [edi + 0x1c]
push eax
push esi
call sub.gdi32.dll_SelectObject
push 0x1e
mov eax, dword [edi + 0x18]
push eax
push 0x317
mov eax, dword [edi + 4]
push eax
call sub.user32.dll_SendMessageA
cmp byte [edi + 0xc], 0
je 0x489bdb
push 0xffffffffffffffec
mov ebx, dword [edi + 4]
push ebx
call sub.user32.dll_GetWindowLongA
or eax, 0x80000
push eax
push 0xffffffffffffffec
push ebx
call sub.user32.dll_SetWindowLongA
mov dword [edi + 8], 0xaf
mov dword [edi + 0x10], 0x28
xor eax, eax
mov dword [esp + 0x10], eax
mov byte [esp + 0x10], 0
movzx eax, byte [edi + 0x10]
mov byte [esp + 0x12], al
push 2
lea eax, [esp + 0x14]
push eax
push 0
lea eax, [esp + 0xd]
push eax
mov eax, dword [edi + 0x18]
push eax
lea eax, [edi + 0x30]
push eax
lea eax, [esp + 0x2c]
push eax
push 0
mov eax, dword [edi + 4]
push eax
call dword [0x54d114]
jmp 0x489c0c
mov dword [edi + 8], 0x96
xor eax, eax
mov dword [edi + 0x10], eax
push 0
push 0
push 0
push 0
call sub.gdi32.dll_CreateRectRgn
mov ebx, eax
push 0
push ebx
mov eax, dword [edi + 4]
push eax
call sub.user32.dll_SetWindowRgn
test eax, eax
jne 0x489c0c
push ebx
call sub.gdi32.dll_DeleteObject
push 0x425f
push 0
push 0
push 0
push 0
push 0
mov eax, dword [edi + 4]
push eax
call sub.user32.dll_SetWindowPos
call fcn.00407074
lea eax, [eax + 0x3c]
push eax
push 4
lea eax, [esp + 0x14]
push eax
mov ecx, 0x489830
xor edx, edx
xor eax, eax
call fcn.00404c10
mov ebx, eax
call fcn.00407074
mov dword [eax + 0x38], ebx
call fcn.00407074
cmp dword [eax + 0x38], 0
jne 0x489c67
call fcn.00489960
jmp 0x489c78
call fcn.00407074
mov eax, dword [eax + 0x38]
push eax
call sub.kernel32.dll_ResumeThread
add esp, 0x24
pop edi
pop esi
pop ebx
ret