// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/activearea.cpp
// Function: smooth::GUI::ActiveArea::Paint(int)
S::Int S::GUI::ActiveArea::Paint(Int message)
{
	if (!IsRegistered()) return Error();
	if (!IsVisible())    return Success();

	switch (message)
	{
		case SP_PAINT:
			{
				Surface	*surface = GetDrawSurface();
				Rect	 frame	 = Rect(GetRealPosition(), GetRealSize());

				surface->Box(frame + Point(1, 1) - Size(2, 2), areaColor, Rect::Filled);
				surface->Frame(frame, FRAME_DOWN);
			}

			break;
	}

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
movq (%rdi), %rax
callq *0x88(%rax)
testb $0x1, %al
jne 0x8df84
leaq -0x28(%rbp), %rdi
movq %rdi, -0xd0(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
movq -0xd0(%rbp), %rdi
callq 0x59680
movl %eax, -0xc4(%rbp)
jmp 0x8df53
movl -0xc4(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5b5b0
jmp 0x8e16c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5b5b0
jmp 0x8e178
movq -0xc0(%rbp), %rdi
movq (%rdi), %rax
callq *0x90(%rax)
testb $0x1, %al
jne 0x8dfed
leaq -0x48(%rbp), %rdi
movq %rdi, -0xe0(%rbp)
callq 0x5ca80
movq -0xe0(%rbp), %rdi
callq 0x59680
movl %eax, -0xd4(%rbp)
jmp 0x8dfbc
movl -0xd4(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0x8e16c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0x8e178
movl -0x14(%rbp), %eax
testl %eax, %eax
jne 0x8e114
jmp 0x8dffa
movq -0xc0(%rbp), %rdi
movq (%rdi), %rax
callq *0x40(%rax)
movq -0xc0(%rbp), %rdi
movq %rax, -0x50(%rbp)
movq (%rdi), %rax
callq *0x48(%rax)
movq -0xc0(%rbp), %rdi
movq %rax, -0x68(%rbp)
movq (%rdi), %rax
callq *0x50(%rax)
movq %rax, -0x70(%rbp)
leaq -0x60(%rbp), %rdi
leaq -0x68(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x59ff0
movq -0x50(%rbp), %rax
movq %rax, -0xf8(%rbp)
leaq -0x98(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x5c2c0
leaq -0x60(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x5be80
movq %rax, -0x90(%rbp)
movq %rdx, -0x88(%rbp)
leaq -0xa0(%rbp), %rdi
movl $0x2, %edx
movl %edx, %esi
callq 0x59260
leaq -0x90(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x5c040
movq %rax, %rcx
movq -0xc0(%rbp), %rax
movq %rcx, -0x80(%rbp)
movq %rdx, -0x78(%rbp)
addq $0x5b8, %rax            # imm = 0x5B8
movq %rax, -0xf0(%rbp)
movq 0x17aeda(%rip), %rax    # 0x208fa0
movl (%rax), %eax
movl %eax, -0xe4(%rbp)
leaq -0xa8(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x59260
movq -0xf8(%rbp), %rdi
movq -0xf0(%rbp), %rdx
movl -0xe4(%rbp), %ecx
leaq -0x80(%rbp), %rsi
leaq -0xa8(%rbp), %r8
callq 0x5c110
movq -0x50(%rbp), %rdi
leaq -0x60(%rbp), %rsi
movl $0x1, %edx
callq 0x5c050
leaq -0xb8(%rbp), %rdi
movq %rdi, -0x108(%rbp)
callq 0x5ca80
movq -0x108(%rbp), %rdi
callq 0x59680
movl %eax, -0xfc(%rbp)
jmp 0x8e13b
movl -0xfc(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x5a410
jmp 0x8e16c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x5a410
jmp 0x8e178
movl -0x4(%rbp), %eax
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)