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

	switch (message)
	{
		case SP_PAINT:
			{
				UpdateMetrics();

				Surface	*surface = GetDrawSurface();
				Rect	 rect	 = Rect(GetRealPosition(), GetRealSize());

				if (Binary::IsFlagSet(flags, OR_VERT))	surface->Bar(rect.GetPosition(), Point(rect.left,      rect.bottom - 1), OR_VERT);
				else					surface->Bar(rect.GetPosition(), Point(rect.right - 1, rect.top       ), OR_HORZ);
			}

			break;
	}

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0xa8(%rbp)
movq (%rdi), %rax
callq *0x88(%rax)
testb $0x1, %al
jne 0x950a4
leaq -0x28(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
movq -0xb8(%rbp), %rdi
callq 0x59680
movl %eax, -0xac(%rbp)
jmp 0x95073
movl -0xac(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5b5b0
jmp 0x95272
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5b5b0
jmp 0x9527e
movq -0xa8(%rbp), %rdi
movq (%rdi), %rax
callq *0x90(%rax)
testb $0x1, %al
jne 0x9510d
leaq -0x48(%rbp), %rdi
movq %rdi, -0xc8(%rbp)
callq 0x5ca80
movq -0xc8(%rbp), %rdi
callq 0x59680
movl %eax, -0xbc(%rbp)
jmp 0x950dc
movl -0xbc(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0x95272
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0x9527e
movl -0x14(%rbp), %eax
testl %eax, %eax
jne 0x9521a
jmp 0x9511a
movq -0xa8(%rbp), %rdi
callq 0x59180
movq -0xa8(%rbp), %rdi
movq (%rdi), %rax
callq *0x40(%rax)
movq -0xa8(%rbp), %rdi
movq %rax, -0x50(%rbp)
movq (%rdi), %rax
callq *0x48(%rax)
movq -0xa8(%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 -0xa8(%rbp), %rax
movl 0x30(%rax), %edi
movl $0x2, %esi
callq 0x5ce30
testb $0x1, %al
jne 0x95184
jmp 0x951c9
movq -0x50(%rbp), %rax
movq %rax, -0xd0(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x5d510
movq %rax, -0x78(%rbp)
movl -0x60(%rbp), %esi
movl -0x54(%rbp), %edx
subl $0x1, %edx
leaq -0x80(%rbp), %rdi
callq 0x5c2c0
movq -0xd0(%rbp), %rdi
leaq -0x78(%rbp), %rsi
leaq -0x80(%rbp), %rdx
movl $0x2, %ecx
callq 0x5dc90
jmp 0x95218
movq -0x50(%rbp), %rax
movq %rax, -0xd8(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x5d510
movq %rax, -0x88(%rbp)
movl -0x58(%rbp), %esi
subl $0x1, %esi
movl -0x5c(%rbp), %edx
leaq -0x90(%rbp), %rdi
callq 0x5c2c0
movq -0xd8(%rbp), %rdi
leaq -0x88(%rbp), %rsi
leaq -0x90(%rbp), %rdx
movl $0x1, %ecx
callq 0x5dc90
jmp 0x9521a
leaq -0xa0(%rbp), %rdi
movq %rdi, -0xe8(%rbp)
callq 0x5ca80
movq -0xe8(%rbp), %rdi
callq 0x59680
movl %eax, -0xdc(%rbp)
jmp 0x95241
movl -0xdc(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x5a410
jmp 0x95272
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x5a410
jmp 0x9527e
movl -0x4(%rbp), %eax
addq $0xf0, %rsp
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x5b6b0
nopw (%rax,%rax)