LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/layer.cpp
// Function: smooth::GUI::Layer::Paint(int)
S::Int S::GUI::Layer::Paint(Int message)
{
	if (!IsRegistered()) return Error();
	if (!IsVisible())    return Success();

	switch (message)
	{
		case SP_PAINT:
			if (IsBackgroundColorSet())
			{
				Surface	*surface = GetDrawSurface();

				surface->Box(Rect(GetRealPosition(), GetRealSize()), GetBackgroundColor(), Rect::Filled);
			}

			break;
	}

	return Widget::Paint(message);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x80(%rbp)
movq (%rdi), %rax
callq *0x88(%rax)
testb $0x1, %al
jne 0x85a51
leaq -0x28(%rbp), %rdi
movq %rdi, -0x90(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
movq -0x90(%rbp), %rdi
callq 0x59680
movl %eax, -0x84(%rbp)
jmp 0x85a20
movl -0x84(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5b5b0
jmp 0x85b82
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5b5b0
jmp 0x85b8e
movq -0x80(%rbp), %rdi
movq (%rdi), %rax
callq *0x90(%rax)
testb $0x1, %al
jne 0x85ab7
leaq -0x48(%rbp), %rdi
movq %rdi, -0xa0(%rbp)
callq 0x5ca80
movq -0xa0(%rbp), %rdi
callq 0x59680
movl %eax, -0x94(%rbp)
jmp 0x85a86
movl -0x94(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0x85b82
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0x85b8e
movl -0x14(%rbp), %eax
testl %eax, %eax
jne 0x85b73
jmp 0x85ac4
movq -0x80(%rbp), %rdi
movq (%rdi), %rax
callq *0x148(%rax)
testb $0x1, %al
jne 0x85ada
jmp 0x85b71
movq -0x80(%rbp), %rdi
movq (%rdi), %rax
callq *0x40(%rax)
movq -0x80(%rbp), %rdi
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq (%rdi), %rax
callq *0x48(%rax)
movq -0x80(%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 -0x80(%rbp), %rdi
movq (%rdi), %rax
callq *0x140(%rax)
movq %rax, -0xb0(%rbp)
movq 0x183465(%rip), %rax    # 0x208fa0
movl (%rax), %eax
movl %eax, -0xa4(%rbp)
leaq -0x78(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x59260
movq -0xb8(%rbp), %rdi
movq -0xb0(%rbp), %rdx
movl -0xa4(%rbp), %ecx
leaq -0x60(%rbp), %rsi
leaq -0x78(%rbp), %r8
callq 0x5c110
jmp 0x85b73
movq -0x80(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x5acb0
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xc0, %rsp
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x5b6b0
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::DeactivateTooltip()
S::Void S::GUI::Widget::DeactivateTooltip()
{
	Application::Lock	 lock;

	if (tipTimer != NIL)
	{
		tipTimer->Stop();

		DeleteObject(tipTimer);

		tipTimer = NIL;
	}

	if (tooltip != NIL)
	{
		PopupMenu::internalOnOpenPopupMenu.Disconnect(&Widget::DeactivateTooltip, this);

		tooltip->Hide();

		DeleteObject(tooltip);

		tooltip = NIL;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x38(%rbp)
leaq -0x9(%rbp), %rdi
callq 0x5c490
movq -0x38(%rbp), %rax
cmpq $0x0, 0xa0(%rax)
je 0x86cda
movq -0x38(%rbp), %rax
movq 0xa0(%rax), %rdi
callq 0x5de90
jmp 0x86c9d
movq -0x38(%rbp), %rax
movq 0xa0(%rax), %rdi
callq 0x5d8d0
jmp 0x86caf
movq -0x38(%rbp), %rax
movq $0x0, 0xa0(%rax)
jmp 0x86cda
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x9(%rbp), %rdi
callq 0x59490
jmp 0x86d5b
movq -0x38(%rbp), %rax
cmpq $0x0, 0x90(%rax)
je 0x86d4c
movq -0x38(%rbp), %rcx
movq 0x1822cd(%rip), %rax    # 0x208fc0
movq %rax, -0x30(%rbp)
movq $0x0, -0x28(%rbp)
movq -0x30(%rbp), %rsi
movq -0x28(%rbp), %rdx
movq 0x181a52(%rip), %rdi    # 0x208760
callq 0x8b980
jmp 0x86d15
movq -0x38(%rbp), %rax
movq 0x90(%rax), %rdi
movq (%rdi), %rax
movq 0x60(%rax), %rax
callq *%rax
jmp 0x86d2b
movq -0x38(%rbp), %rax
movq 0x90(%rax), %rdi
callq 0x5d8d0
jmp 0x86d3d
movq -0x38(%rbp), %rax
movq $0x0, 0x90(%rax)
leaq -0x9(%rbp), %rdi
callq 0x59490
addq $0x40, %rsp
popq %rbp
retq
movq -0x18(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::CloseContextMenu()
S::Void S::GUI::Widget::CloseContextMenu()
{
	if (contextMenu != NIL)
	{
		contextMenu->internalRequestClose.Disconnect(&Widget::CloseContextMenu, this);

		Remove(contextMenu);

		contextMenu = NIL;

		onCloseContextMenu.Emit();
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, 0x198(%rax)
je 0x86dec
movq -0x20(%rbp), %rcx
movq 0x198(%rcx), %rdi
addq $0x698, %rdi            # imm = 0x698
movq 0x181759(%rip), %rax    # 0x208500
movq %rax, -0x18(%rbp)
movq $0x0, -0x10(%rbp)
movq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rdx
callq 0x8bb70
movq -0x20(%rbp), %rdi
movq 0x198(%rdi), %rsi
movq (%rdi), %rax
callq *0x38(%rax)
movq -0x20(%rbp), %rdi
movq $0x0, 0x198(%rdi)
addq $0x4b8, %rdi            # imm = 0x4B8
callq 0x8af60
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::EnableLocking(bool)
S::Int S::GUI::Widget::EnableLocking(Bool enable)
{
	if (enable) widgets.EnableLocking();
	else	    widgets.DisableLocking();

	foreach (Widget *widget, widgets) widget->EnableLocking(enable);

	return Object::EnableLocking(enable);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
andb $0x1, %al
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x28(%rbp)
testb $0x1, -0x9(%rbp)
je 0x86e61
movq -0x28(%rbp), %rdi
addq $0x38, %rdi
callq 0x5b830
jmp 0x86e6e
movq -0x28(%rbp), %rdi
addq $0x38, %rdi
callq 0x5bfb0
movl $0x0, -0x10(%rbp)
movl $0xffffffff, -0x14(%rbp) # imm = 0xFFFFFFFF
xorl %eax, %eax
cmpl $0x0, -0x10(%rbp)
movb %al, -0x29(%rbp)
jne 0x86eaa
movq -0x28(%rbp), %rdi
movl -0x14(%rbp), %eax
movl %eax, -0x30(%rbp)
addq $0x38, %rdi
callq 0x5c990
movl %eax, %ecx
movl -0x30(%rbp), %eax
subl $0x1, %ecx
cmpl %ecx, %eax
setl %al
movb %al, -0x29(%rbp)
movb -0x29(%rbp), %al
testb $0x1, %al
jne 0x86eb3
jmp 0x86f0d
movq -0x28(%rbp), %rdi
addq $0x38, %rdi
movl -0x14(%rbp), %esi
addl $0x1, %esi
movl %esi, -0x14(%rbp)
callq 0x8af30
movq (%rax), %rax
movq %rax, -0x20(%rbp)
cmpl $0x0, -0x10(%rbp)
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x86edf
jmp 0x86efd
movq -0x20(%rbp), %rdi
movb -0x9(%rbp), %cl
movq (%rdi), %rax
andb $0x1, %cl
movzbl %cl, %esi
callq *0x18(%rax)
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x86ed0
jmp 0x86eff
movl -0x10(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x86e7c
movq -0x28(%rbp), %rdi
movb -0x9(%rbp), %al
andb $0x1, %al
movzbl %al, %esi
callq 0x59d00
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::EnqueueForDeletion()
S::Void S::GUI::Widget::EnqueueForDeletion()
{
	onEnqueueForDeletion.Emit();

	DeactivateTooltip();

	CloseContextMenu();

	if (registered && container != NIL) container->Remove(this);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x10(%rbp)
addq $0x598, %rdi            # imm = 0x598
callq 0x8af60
movq -0x10(%rbp), %rdi
callq 0x5df08
movq -0x10(%rbp), %rdi
callq 0x5de20
movq -0x10(%rbp), %rax
testb $0x1, 0xca(%rax)
je 0x86f8e
movq -0x10(%rbp), %rax
cmpq $0x0, 0x190(%rax)
je 0x86f8e
movq -0x10(%rbp), %rsi
movq 0x190(%rsi), %rdi
movq (%rdi), %rax
callq *0x38(%rax)
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::Add(smooth::GUI::Widget*)
S::Int S::GUI::Widget::Add(Widget *widget)
{
	if (widget == NIL) return Error();

	if (!widget->IsRegistered())
	{
		widgets.Add(widget, widget->GetHandle());

		widget->EnableLocking(IsLockingEnabled());

		widget->SetContainer(this);
		widget->SetRegisteredFlag(True);

		widget->onRegister.Emit(this);

		if (widget->visible)
		{
			widget->visible = False;

			widget->Show();
		}

		return Success();
	}

	return Error();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x87010
leaq -0x28(%rbp), %rdi
movq %rdi, -0x70(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
movq -0x70(%rbp), %rdi
callq 0x59680
movl %eax, -0x64(%rbp)
jmp 0x86fe2
movl -0x64(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5b5b0
jmp 0x87163
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5b5b0
jmp 0x8716f
movq -0x18(%rbp), %rdi
movq (%rdi), %rax
callq *0x88(%rax)
testb $0x1, %al
jne 0x8710f
movq -0x60(%rbp), %rax
addq $0x38, %rax
movq %rax, -0x80(%rbp)
movq -0x18(%rbp), %rdi
callq 0x5d050
movq -0x80(%rbp), %rdi
movl %eax, %edx
leaq -0x18(%rbp), %rsi
callq 0x8b070
movq -0x60(%rbp), %rdi
movq -0x18(%rbp), %rax
movq %rax, -0x78(%rbp)
callq 0x5c2e0
movq -0x78(%rbp), %rdi
movb %al, %cl
movq (%rdi), %rax
movq 0x18(%rax), %rax
movzbl %cl, %esi
andl $0x1, %esi
callq *%rax
movq -0x60(%rbp), %rsi
movq -0x18(%rbp), %rdi
callq 0x598b0
movq -0x18(%rbp), %rdi
movl $0x1, %esi
callq 0x5ba80
movq -0x60(%rbp), %rsi
movq -0x18(%rbp), %rdi
addq $0x558, %rdi            # imm = 0x558
callq 0x8b140
movq -0x18(%rbp), %rax
testb $0x1, 0xcb(%rax)
je 0x870c0
movq -0x18(%rbp), %rax
movb $0x0, 0xcb(%rax)
movq -0x18(%rbp), %rdi
movq (%rdi), %rax
callq *0x58(%rax)
leaq -0x48(%rbp), %rdi
movq %rdi, -0x90(%rbp)
callq 0x5ca80
movq -0x90(%rbp), %rdi
callq 0x59680
movl %eax, -0x84(%rbp)
jmp 0x870e4
movl -0x84(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0x87163
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0x8716f
leaq -0x58(%rbp), %rdi
movq %rdi, -0xa0(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
movq -0xa0(%rbp), %rdi
callq 0x59680
movl %eax, -0x94(%rbp)
jmp 0x87138
movl -0x94(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x5b5b0
jmp 0x87163
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x5b5b0
jmp 0x8716f
movl -0x4(%rbp), %eax
addq $0xa0, %rsp
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x5b6b0
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::Remove(smooth::GUI::Widget*)
S::Int S::GUI::Widget::Remove(Widget *widget)
{
	if (widget == NIL) return Error();

	if (widget->IsRegistered())
	{
		if (widgets.Remove(widget->GetHandle()) == True)
		{
			widget->Hide();
			widget->onUnregister.Emit(this);

			widget->SetRegisteredFlag(False);
			widget->SetContainer(NIL);

			widget->visible = True;

			return Success();
		}
	}

	return Error();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x871f0
leaq -0x28(%rbp), %rdi
movq %rdi, -0x70(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
movq -0x70(%rbp), %rdi
callq 0x59680
movl %eax, -0x64(%rbp)
jmp 0x871c2
movl -0x64(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5b5b0
jmp 0x87321
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5b5b0
jmp 0x8732d
movq -0x18(%rbp), %rdi
movq (%rdi), %rax
callq *0x88(%rax)
testb $0x1, %al
jne 0x87206
jmp 0x872cd
movq -0x60(%rbp), %rax
addq $0x38, %rax
movq %rax, -0x78(%rbp)
movq -0x18(%rbp), %rdi
callq 0x5d050
movq -0x78(%rbp), %rdi
movl %eax, %esi
callq 0x5d7a0
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x872cb
movq -0x18(%rbp), %rdi
movq (%rdi), %rax
movq 0x60(%rax), %rax
callq *%rax
movq -0x60(%rbp), %rsi
movq -0x18(%rbp), %rdi
addq $0x578, %rdi            # imm = 0x578
callq 0x8b140
movq -0x18(%rbp), %rdi
xorl %esi, %esi
movl %esi, -0x8c(%rbp)
callq 0x5ba80
movl -0x8c(%rbp), %eax
movq -0x18(%rbp), %rdi
movl %eax, %esi
callq 0x598b0
movq -0x18(%rbp), %rax
movb $0x1, 0xcb(%rax)
leaq -0x48(%rbp), %rdi
movq %rdi, -0x88(%rbp)
callq 0x5ca80
movq -0x88(%rbp), %rdi
callq 0x59680
movl %eax, -0x7c(%rbp)
jmp 0x872a3
movl -0x7c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0x87321
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0x8732d
jmp 0x872cd
leaq -0x58(%rbp), %rdi
movq %rdi, -0x98(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
movq -0x98(%rbp), %rdi
callq 0x59680
movl %eax, -0x90(%rbp)
jmp 0x872f6
movl -0x90(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x5b5b0
jmp 0x87321
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x5b5b0
jmp 0x8732d
movl -0x4(%rbp), %eax
addq $0xa0, %rsp
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::GetContainerWindow() const
S::GUI::Window *S::GUI::Widget::GetContainerWindow() const
{
	Widget	*widget = const_cast<Widget *>(this);

	while (widget->GetObjectType() != Window::classID)
	{
		if (widget->GetContainer() == NIL) return NIL;

		widget = widget->GetContainer();
	}

	return (Window *) widget;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x5bb10
movq %rax, %rdi
movq 0x181499(%rip), %rax    # 0x208800
movswl (%rax), %esi
callq 0x5da50
testb $0x1, %al
jne 0x87375
jmp 0x8739d
movq -0x18(%rbp), %rdi
callq 0x5c9c0
cmpq $0x0, %rax
jne 0x8738e
movq $0x0, -0x8(%rbp)
jmp 0x873a5
movq -0x18(%rbp), %rdi
callq 0x5c9c0
movq %rax, -0x18(%rbp)
jmp 0x87354
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::GetPreviousTabstopWidget(int) const
S::GUI::Widget *S::GUI::Widget::GetPreviousTabstopWidget(Int widgetHandle) const
{
	Widget	*lastTabstopObject = NIL;

	if (registered && widgetHandle != 0) lastTabstopObject = container->GetPreviousTabstopWidget(GetHandle());

	foreach (Widget *widget, widgets)
	{
		if (widget->GetHandle() == widgetHandle) return lastTabstopObject;

		if	(widget->IsTabstopCapable() && widget->IsActive()) lastTabstopObject = widget;
		else if (widget->GetPreviousTabstopWidget(0) != NIL)	   lastTabstopObject = widget->GetPreviousTabstopWidget(0);
	}

	if (widgetHandle == 0) return lastTabstopObject;

	return NIL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movq $0x0, -0x20(%rbp)
testb $0x1, 0xca(%rax)
je 0x87451
cmpl $0x0, -0x14(%rbp)
je 0x87451
movq -0x38(%rbp), %rdi
movq 0x190(%rdi), %rax
movq %rax, -0x40(%rbp)
callq 0x5d050
movq -0x40(%rbp), %rdi
movl %eax, %esi
callq 0x5c5c0
movq %rax, -0x20(%rbp)
movl $0x0, -0x24(%rbp)
movl $0xffffffff, -0x28(%rbp) # imm = 0xFFFFFFFF
xorl %eax, %eax
cmpl $0x0, -0x24(%rbp)
movb %al, -0x41(%rbp)
jne 0x8748d
movq -0x38(%rbp), %rdi
movl -0x28(%rbp), %eax
movl %eax, -0x48(%rbp)
addq $0x38, %rdi
callq 0x5c990
movl %eax, %ecx
movl -0x48(%rbp), %eax
subl $0x1, %ecx
cmpl %ecx, %eax
setl %al
movb %al, -0x41(%rbp)
movb -0x41(%rbp), %al
testb $0x1, %al
jne 0x87499
jmp 0x8754e
movq -0x38(%rbp), %rdi
addq $0x38, %rdi
movl -0x28(%rbp), %esi
addl $0x1, %esi
movl %esi, -0x28(%rbp)
callq 0x8b2b0
movq (%rax), %rax
movq %rax, -0x30(%rbp)
cmpl $0x0, -0x24(%rbp)
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x874c5
jmp 0x8753e
movq -0x30(%rbp), %rdi
callq 0x5d050
cmpl -0x14(%rbp), %eax
jne 0x874e0
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x87566
movq -0x30(%rbp), %rdi
callq 0x5a480
testb $0x1, %al
jne 0x874ef
jmp 0x8750c
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
callq *0x98(%rax)
testb $0x1, %al
jne 0x87502
jmp 0x8750c
movq -0x30(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x8752e
movq -0x30(%rbp), %rdi
xorl %esi, %esi
callq 0x5c5c0
cmpq $0x0, %rax
je 0x8752c
movq -0x30(%rbp), %rdi
xorl %esi, %esi
callq 0x5c5c0
movq %rax, -0x20(%rbp)
jmp 0x8752e
jmp 0x87530
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x874b6
jmp 0x87540
movl -0x24(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x8745f
cmpl $0x0, -0x14(%rbp)
jne 0x8755e
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x87566
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::GetNextTabstopWidget(int) const
S::GUI::Widget *S::GUI::Widget::GetNextTabstopWidget(Int widgetHandle) const
{
	Bool	 found = False;

	if (widgetHandle == 0) found = True;

	foreach (Widget *widget, widgets)
	{
		if (widget->GetHandle() == widgetHandle)
		{
			found = True;
			continue;
		}

		if	(found && widget->IsTabstopCapable() && widget->IsActive()) return widget;
		else if (found && widget->GetNextTabstopWidget(0) != NIL)	    return widget->GetNextTabstopWidget(0);
	}

	if (registered && widgetHandle != 0) return container->GetNextTabstopWidget(GetHandle());

	return NIL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
movb $0x0, -0x15(%rbp)
cmpl $0x0, -0x14(%rbp)
jne 0x87595
movb $0x1, -0x15(%rbp)
movl $0x0, -0x1c(%rbp)
movl $0xffffffff, -0x20(%rbp) # imm = 0xFFFFFFFF
xorl %eax, %eax
cmpl $0x0, -0x1c(%rbp)
movb %al, -0x31(%rbp)
jne 0x875d1
movq -0x30(%rbp), %rdi
movl -0x20(%rbp), %eax
movl %eax, -0x38(%rbp)
addq $0x38, %rdi
callq 0x5c990
movl %eax, %ecx
movl -0x38(%rbp), %eax
subl $0x1, %ecx
cmpl %ecx, %eax
setl %al
movb %al, -0x31(%rbp)
movb -0x31(%rbp), %al
testb $0x1, %al
jne 0x875dd
jmp 0x8769f
movq -0x30(%rbp), %rdi
addq $0x38, %rdi
movl -0x20(%rbp), %esi
addl $0x1, %esi
movl %esi, -0x20(%rbp)
callq 0x8b2b0
movq (%rax), %rax
movq %rax, -0x28(%rbp)
cmpl $0x0, -0x1c(%rbp)
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x8760c
jmp 0x8768f
movq -0x28(%rbp), %rdi
callq 0x5d050
cmpl -0x14(%rbp), %eax
jne 0x87620
movb $0x1, -0x15(%rbp)
jmp 0x87681
testb $0x1, -0x15(%rbp)
je 0x87655
movq -0x28(%rbp), %rdi
callq 0x5a480
testb $0x1, %al
jne 0x87635
jmp 0x87655
movq -0x28(%rbp), %rdi
movq (%rdi), %rax
callq *0x98(%rax)
testb $0x1, %al
jne 0x87648
jmp 0x87655
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x876df
testb $0x1, -0x15(%rbp)
je 0x8767d
movq -0x28(%rbp), %rdi
xorl %esi, %esi
callq 0x5a2f0
cmpq $0x0, %rax
je 0x8767d
movq -0x28(%rbp), %rdi
xorl %esi, %esi
callq 0x5a2f0
movq %rax, -0x8(%rbp)
jmp 0x876df
jmp 0x8767f
jmp 0x87681
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x875fa
jmp 0x87691
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x875a3
movq -0x30(%rbp), %rax
testb $0x1, 0xca(%rax)
je 0x876d7
cmpl $0x0, -0x14(%rbp)
je 0x876d7
movq -0x30(%rbp), %rdi
movq 0x190(%rdi), %rax
movq %rax, -0x40(%rbp)
callq 0x5d050
movq -0x40(%rbp), %rdi
movl %eax, %esi
callq 0x5a2f0
movq %rax, -0x8(%rbp)
jmp 0x876df
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::ComputeTextSize()
S::Void S::GUI::Widget::ComputeTextSize()
{
	scaledTextSize.cx = font.GetScaledTextSizeX(text);
	scaledTextSize.cy = font.GetScaledTextSizeY(text);

	Float	 dpi = Surface().GetSurfaceDPI();

	if (Math::Abs(dpi - 96.0) < 0.1) unscaledTextSize = scaledTextSize;
	else				 unscaledTextSize = scaledTextSize * 96.0 / dpi;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rsi
movq %rsi, -0x58(%rbp)
movq %rsi, %rdi
addq $0x140, %rdi            # imm = 0x140
movq %rdi, -0x68(%rbp)
addq $0xf0, %rsi
movq %rsi, -0x60(%rbp)
callq 0x5ac00
movq -0x68(%rbp), %rdi
movq -0x60(%rbp), %rsi
movl %eax, %ecx
movq -0x58(%rbp), %rax
movl %ecx, 0x188(%rax)
callq 0x5bde0
movl %eax, %ecx
movq -0x58(%rbp), %rax
movl %ecx, 0x18c(%rax)
leaq -0x20(%rbp), %rdi
movq %rdi, -0x50(%rbp)
callq 0x59230
movq -0x50(%rbp), %rdx
xorl %eax, %eax
movl %eax, %esi
leaq -0x18(%rbp), %rdi
movq %rdi, -0x48(%rbp)
callq 0x5b7d0
movq -0x48(%rbp), %rdi
callq 0x5d470
movw %ax, -0x3e(%rbp)
jmp 0x87778
movw -0x3e(%rbp), %ax
cwtl
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x70(%rbp)
leaq -0x18(%rbp), %rdi
callq 0x5c380
movsd -0x70(%rbp), %xmm0
movsd %xmm0, -0x10(%rbp)
movsd -0x10(%rbp), %xmm0
movsd 0xffd1a(%rip), %xmm1    # 0x1874c0
subsd %xmm1, %xmm0
callq 0x597d0
movaps %xmm0, %xmm1
movsd 0xffcfe(%rip), %xmm0    # 0x1874b8
ucomisd %xmm1, %xmm0
jbe 0x877eb
movq -0x58(%rbp), %rax
movq 0x188(%rax), %rcx
movq %rcx, 0x180(%rax)
jmp 0x8782b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x18(%rbp), %rdi
callq 0x5c380
jmp 0x87831
movq -0x58(%rbp), %rdi
addq $0x188, %rdi            # imm = 0x188
movsd 0xffcc2(%rip), %xmm0    # 0x1874c0
callq 0x5a7b0
movq %rax, -0x3c(%rbp)
movsd -0x10(%rbp), %xmm0
leaq -0x3c(%rbp), %rdi
callq 0x5c6b0
movq %rax, %rcx
movq -0x58(%rbp), %rax
movq %rcx, -0x34(%rbp)
movq -0x34(%rbp), %rcx
movq %rcx, 0x180(%rax)
addq $0x70, %rsp
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0x5b6b0
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::GetRealPosition() const
S::GUI::Point S::GUI::Widget::GetRealPosition() const
{
	if (!registered)  return pos;
	if (realPosValid) return realPos;

	Surface	*surface = GetDrawSurface();

	Point	 containerPos  = container->GetRealPosition();
	Size	 containerSize = container->GetRealSize();
	Point	 scaledPos     = pos * surface->GetSurfaceDPI() / 96.0;

	realPos	= containerPos + scaledPos;

	if (orientation == OR_UPPERRIGHT)
	{
		realPos.x = containerPos.x + containerSize.cx - scaledPos.x;
	}
	else if (orientation == OR_LOWERLEFT)
	{
		realPos.y = containerPos.y + containerSize.cy - scaledPos.y;
	}
	else if (orientation == OR_LOWERRIGHT)
	{
		realPos.x = containerPos.x + containerSize.cx - scaledPos.x;
		realPos.y = containerPos.y + containerSize.cy - scaledPos.y;
	}

	realPosValid = True;

	return realPos;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
testb $0x1, 0xca(%rax)
jne 0x87931
movq -0x48(%rbp), %rax
movq 0xa8(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x87a8f
movq -0x48(%rbp), %rax
testb $0x1, 0xc8(%rax)
je 0x87952
movq -0x48(%rbp), %rax
movq 0xb8(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x87a8f
movq -0x48(%rbp), %rdi
movq (%rdi), %rax
movq 0x40(%rax), %rax
callq *%rax
movq %rax, %rcx
movq -0x48(%rbp), %rax
movq %rcx, -0x18(%rbp)
movq 0x190(%rax), %rdi
movq (%rdi), %rax
movq 0x48(%rax), %rax
callq *%rax
movq %rax, %rcx
movq -0x48(%rbp), %rax
movq %rcx, -0x20(%rbp)
movq 0x190(%rax), %rdi
movq (%rdi), %rax
movq 0x50(%rax), %rax
callq *%rax
movq %rax, %rcx
movq -0x48(%rbp), %rax
movq %rcx, -0x28(%rbp)
addq $0xa8, %rax
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rdi
callq 0x5d470
movq -0x50(%rbp), %rdi
cwtl
cvtsi2sd %eax, %xmm0
callq 0x5a300
movq %rax, -0x38(%rbp)
leaq -0x38(%rbp), %rdi
movsd 0xffaef(%rip), %xmm0    # 0x1874c0
callq 0x5cd70
movq %rax, -0x30(%rbp)
leaq -0x20(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x5ca20
movq %rax, %rcx
movq -0x48(%rbp), %rax
movq %rcx, -0x40(%rbp)
movq -0x40(%rbp), %rcx
movq %rcx, 0xb8(%rax)
movswl 0xd0(%rax), %eax
cmpl $0x24, %eax
jne 0x87a1e
movq -0x48(%rbp), %rax
movl -0x20(%rbp), %ecx
addl -0x28(%rbp), %ecx
subl -0x30(%rbp), %ecx
movl %ecx, 0xb8(%rax)
jmp 0x87a79
movq -0x48(%rbp), %rax
movswl 0xd0(%rax), %eax
cmpl $0x18, %eax
jne 0x87a43
movq -0x48(%rbp), %rax
movl -0x1c(%rbp), %ecx
addl -0x24(%rbp), %ecx
subl -0x2c(%rbp), %ecx
movl %ecx, 0xbc(%rax)
jmp 0x87a77
movq -0x48(%rbp), %rax
movswl 0xd0(%rax), %eax
cmpl $0x28, %eax
jne 0x87a75
movq -0x48(%rbp), %rax
movl -0x20(%rbp), %ecx
addl -0x28(%rbp), %ecx
subl -0x30(%rbp), %ecx
movl %ecx, 0xb8(%rax)
movl -0x1c(%rbp), %ecx
addl -0x24(%rbp), %ecx
subl -0x2c(%rbp), %ecx
movl %ecx, 0xbc(%rax)
jmp 0x87a77
jmp 0x87a79
movq -0x48(%rbp), %rax
movb $0x1, 0xc8(%rax)
movq 0xb8(%rax), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::GetRealSize() const
S::GUI::Size S::GUI::Widget::GetRealSize() const
{
	if (!registered)   return size;
	if (realSizeValid) return realSize;

	Surface	*surface = GetDrawSurface();

	realSize      = size * surface->GetSurfaceDPI() / 96.0;
	realSizeValid = True;

	return realSize;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
testb $0x1, 0xca(%rax)
jne 0x87ad1
movq -0x30(%rbp), %rax
movq 0xb0(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x87b65
movq -0x30(%rbp), %rax
testb $0x1, 0xc9(%rax)
je 0x87aef
movq -0x30(%rbp), %rax
movq 0xc0(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x87b65
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movq 0x40(%rax), %rax
callq *%rax
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq %rcx, -0x18(%rbp)
addq $0xb0, %rax
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rdi
callq 0x5d470
movq -0x38(%rbp), %rdi
cwtl
cvtsi2sd %eax, %xmm0
callq 0x5a7b0
movq %rax, -0x28(%rbp)
leaq -0x28(%rbp), %rdi
movsd 0xff988(%rip), %xmm0    # 0x1874c0
callq 0x5c6b0
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq %rcx, -0x20(%rbp)
movq -0x20(%rbp), %rcx
movq %rcx, 0xc0(%rax)
movb $0x1, 0xc9(%rax)
movq 0xc0(%rax), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::SetBackgroundColor(smooth::GUI::Color const&)
S::Int S::GUI::Widget::SetBackgroundColor(const Color &nColor)
{
	if (backgroundColorSet && backgroundColor == nColor) return Success();

	backgroundColor	   = nColor;
	backgroundColorSet = True;

	Paint(SP_PAINT);

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x50(%rbp)
testb $0x1, 0xd8(%rax)
je 0x87c00
movq -0x50(%rbp), %rdi
addq $0xe0, %rdi
callq 0x59210
movq %rax, -0x58(%rbp)
movq -0x18(%rbp), %rdi
callq 0x59210
movq %rax, %rcx
movq -0x58(%rbp), %rax
cmpq %rcx, %rax
jne 0x87c00
leaq -0x28(%rbp), %rdi
movq %rdi, -0x68(%rbp)
callq 0x5ca80
movq -0x68(%rbp), %rdi
callq 0x59680
movl %eax, -0x5c(%rbp)
jmp 0x87bd8
movl -0x5c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5a410
jmp 0x87c67
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5a410
jmp 0x87c73
movq -0x50(%rbp), %rdi
movq -0x18(%rbp), %rax
movups (%rax), %xmm0
movups %xmm0, 0xe0(%rdi)
movb $0x1, 0xd8(%rdi)
movq (%rdi), %rax
movq 0x78(%rax), %rax
xorl %esi, %esi
callq *%rax
leaq -0x48(%rbp), %rdi
movq %rdi, -0x78(%rbp)
callq 0x5ca80
movq -0x78(%rbp), %rdi
callq 0x59680
movl %eax, -0x6c(%rbp)
jmp 0x87c3f
movl -0x6c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0x87c67
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0x87c73
movl -0x4(%rbp), %eax
addq $0x80, %rsp
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x5b6b0
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::Show()
S::Int S::GUI::Widget::Show()
{
	if (visible) return Success();

	/* Show ourself.
	 */
	visible = True;

	if (!registered) return Success();

	if (IsVisible()) Paint(SP_PAINT);

	/* Show child widgets.
	 */
	for (Int i = 0; i < GetNOfObjects(); i++)
	{
		Widget	*object = GetNthObject(i);

		if (object == NIL || !object->IsVisible()) continue;

		visible = False;
		object->Hide();

		visible = True;
		object->Show();
	}

	/* Notify listeners.
	 */
	onShow.Emit();

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x68(%rbp)
testb $0x1, 0xcb(%rax)
je 0x87db9
leaq -0x20(%rbp), %rdi
movq %rdi, -0x78(%rbp)
callq 0x5ca80
movq -0x78(%rbp), %rdi
callq 0x59680
movl %eax, -0x6c(%rbp)
jmp 0x87d8b
movl -0x6c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5a410
jmp 0x87f1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5a410
jmp 0x87f2a
movq -0x68(%rbp), %rax
movb $0x1, 0xcb(%rax)
testb $0x1, 0xca(%rax)
jne 0x87e1c
leaq -0x40(%rbp), %rdi
movq %rdi, -0x88(%rbp)
callq 0x5ca80
movq -0x88(%rbp), %rdi
callq 0x59680
movl %eax, -0x7c(%rbp)
jmp 0x87dee
movl -0x7c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5a410
jmp 0x87f1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5a410
jmp 0x87f2a
movq -0x68(%rbp), %rdi
movq (%rdi), %rax
callq *0x90(%rax)
testb $0x1, %al
jne 0x87e2f
jmp 0x87e3b
movq -0x68(%rbp), %rdi
movq (%rdi), %rax
xorl %esi, %esi
callq *0x78(%rax)
movl $0x0, -0x44(%rbp)
movq -0x68(%rbp), %rdi
movl -0x44(%rbp), %eax
movl %eax, -0x8c(%rbp)
callq 0x5b470
movl %eax, %ecx
movl -0x8c(%rbp), %eax
cmpl %ecx, %eax
jge 0x87ebf
movq -0x68(%rbp), %rdi
movl -0x44(%rbp), %esi
callq 0x5c230
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x50(%rbp)
je 0x87e88
movq -0x50(%rbp), %rdi
movq (%rdi), %rax
callq *0x90(%rax)
testb $0x1, %al
jne 0x87e8a
jmp 0x87eb4
movq -0x68(%rbp), %rax
movb $0x0, 0xcb(%rax)
movq -0x50(%rbp), %rdi
movq (%rdi), %rax
callq *0x60(%rax)
movq -0x68(%rbp), %rax
movb $0x1, 0xcb(%rax)
movq -0x50(%rbp), %rdi
movq (%rdi), %rax
callq *0x58(%rax)
movl -0x44(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x44(%rbp)
jmp 0x87e42
movq -0x68(%rbp), %rdi
addq $0x1f8, %rdi            # imm = 0x1F8
callq 0x8af60
leaq -0x60(%rbp), %rdi
movq %rdi, -0x98(%rbp)
callq 0x5ca80
movq -0x98(%rbp), %rdi
callq 0x59680
movl %eax, -0x90(%rbp)
jmp 0x87ef3
movl -0x90(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x5a410
jmp 0x87f1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x5a410
jmp 0x87f2a
movl -0x4(%rbp), %eax
addq $0xa0, %rsp
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::Activate()
S::Int S::GUI::Widget::Activate()
{
	if (active) return Success();

	Surface	*surface = (IsVisible() ? GetDrawSurface() : NIL);

	if (surface) { surface->StartPaint(GetVisibleArea()); Hide(); }

	active = True;

	if (surface) { Show(); Process(SM_MOUSEMOVE, 0, 0); surface->EndPaint(); }

	onActivate.Emit();

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x60(%rbp)
testb $0x1, 0xcc(%rax)
je 0x88299
leaq -0x20(%rbp), %rdi
movq %rdi, -0x70(%rbp)
callq 0x5ca80
movq -0x70(%rbp), %rdi
callq 0x59680
movl %eax, -0x64(%rbp)
jmp 0x8826b
movl -0x64(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5a410
jmp 0x883a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5a410
jmp 0x883ad
movq -0x60(%rbp), %rdi
movq (%rdi), %rax
callq *0x90(%rax)
testb $0x1, %al
jne 0x882ac
jmp 0x882bc
movq -0x60(%rbp), %rdi
movq (%rdi), %rax
callq *0x40(%rax)
movq %rax, -0x78(%rbp)
jmp 0x882c4
xorl %eax, %eax
movq %rax, -0x78(%rbp)
jmp 0x882c4
movq -0x78(%rbp), %rax
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
je 0x88307
movq -0x60(%rbp), %rdi
movq -0x38(%rbp), %rax
movq %rax, -0x80(%rbp)
movq (%rdi), %rax
callq *0x130(%rax)
movq -0x80(%rbp), %rdi
movq %rax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
leaq -0x48(%rbp), %rsi
callq 0x591b0
movq -0x60(%rbp), %rdi
movq (%rdi), %rax
callq *0x60(%rax)
movq -0x60(%rbp), %rax
movb $0x1, 0xcc(%rax)
cmpq $0x0, -0x38(%rbp)
je 0x88342
movq -0x60(%rbp), %rdi
movq (%rdi), %rax
callq *0x58(%rax)
movq -0x60(%rbp), %rdi
movq (%rdi), %rax
movl $0x7800, %esi           # imm = 0x7800
xorl %ecx, %ecx
movl %ecx, %edx
callq *0x80(%rax)
movq -0x38(%rbp), %rdi
callq 0x5d270
movq -0x60(%rbp), %rdi
addq $0x238, %rdi            # imm = 0x238
callq 0x8af60
leaq -0x58(%rbp), %rdi
movq %rdi, -0x90(%rbp)
callq 0x5ca80
movq -0x90(%rbp), %rdi
callq 0x59680
movl %eax, -0x84(%rbp)
jmp 0x88376
movl -0x84(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x5a410
jmp 0x883a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x5a410
jmp 0x883ad
movl -0x4(%rbp), %eax
addq $0x90, %rsp
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::SetFocusByKeyboard()
S::Void S::GUI::Widget::SetFocusByKeyboard()
{
	if (!focussed)
	{
		focussed = True;

		onGetFocus.Emit();
		onGetFocusByKeyboard.Emit();
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
testb $0x1, 0xcd(%rax)
jne 0x89dd4
movq -0x10(%rbp), %rdi
movb $0x1, 0xcd(%rdi)
addq $0x4d8, %rdi            # imm = 0x4D8
callq 0x8af60
movq -0x10(%rbp), %rdi
addq $0x4f8, %rdi            # imm = 0x4F8
callq 0x8af60
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::IsDropTarget() const
S::Bool S::GUI::Widget::IsDropTarget() const
{
	if (dropTarget) return True;

	foreach (Widget *widget, widgets)
	{
		if (widget->IsDropTarget()) return True;
	}

	return False;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
testb $0x1, 0xd3(%rax)
je 0x89e06
movb $0x1, -0x1(%rbp)
jmp 0x89ead
movl $0x0, -0x14(%rbp)
movl $0xffffffff, -0x18(%rbp) # imm = 0xFFFFFFFF
xorl %eax, %eax
cmpl $0x0, -0x14(%rbp)
movb %al, -0x29(%rbp)
jne 0x89e42
movq -0x28(%rbp), %rdi
movl -0x18(%rbp), %eax
movl %eax, -0x30(%rbp)
addq $0x38, %rdi
callq 0x5c990
movl %eax, %ecx
movl -0x30(%rbp), %eax
subl $0x1, %ecx
cmpl %ecx, %eax
setl %al
movb %al, -0x29(%rbp)
movb -0x29(%rbp), %al
testb $0x1, %al
jne 0x89e4b
jmp 0x89ea9
movq -0x28(%rbp), %rdi
addq $0x38, %rdi
movl -0x18(%rbp), %esi
addl $0x1, %esi
movl %esi, -0x18(%rbp)
callq 0x8b2b0
movq (%rax), %rax
movq %rax, -0x20(%rbp)
cmpl $0x0, -0x14(%rbp)
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x89e77
jmp 0x89e99
movq -0x20(%rbp), %rdi
callq 0x5c6f0
testb $0x1, %al
jne 0x89e86
jmp 0x89e8c
movb $0x1, -0x1(%rbp)
jmp 0x89ead
jmp 0x89e8e
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x89e68
jmp 0x89e9b
movl -0x14(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x89e14
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::SetFocus()
S::Int S::GUI::Widget::SetFocus()
{
	if (!focussed)
	{
		focussed = True;

		onGetFocus.Emit();

		if (GetNOfObjects() > 0) GetNthObject(0)->SetFocus();
	}

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
testb $0x1, 0xcd(%rax)
jne 0x89f17
movq -0x30(%rbp), %rdi
movb $0x1, 0xcd(%rdi)
addq $0x4d8, %rdi            # imm = 0x4D8
callq 0x8af60
movq -0x30(%rbp), %rdi
callq 0x5b470
cmpl $0x0, %eax
jle 0x89f15
movq -0x30(%rbp), %rdi
xorl %esi, %esi
callq 0x5c230
movq %rax, %rdi
callq 0x5bd00
jmp 0x89f17
leaq -0x18(%rbp), %rdi
movq %rdi, -0x40(%rbp)
callq 0x5ca80
movq -0x40(%rbp), %rdi
callq 0x59680
movl %eax, -0x34(%rbp)
jmp 0x89f32
leaq -0x18(%rbp), %rdi
callq 0x5a410
movl -0x34(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x18(%rbp), %rdi
callq 0x5a410
movq -0x20(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::SetText(smooth::String const&)
S::Int S::GUI::Widget::SetText(const String &nText)
{
	if (text == nText) return Success();

	Surface	*surface      = GetDrawSurface();

	Bool	 prevVisible  = IsVisible();
	Bool	 prevFocussed = focussed;

	if (registered && prevFocussed) { focussed = False; }
	if (registered && prevVisible)	{ surface->StartPaint(GetVisibleArea()); Hide(); }

	text = nText;

	ComputeTextSize();

	if (registered && prevVisible)  { Show(); Process(SM_MOUSEMOVE, 0, 0); surface->EndPaint(); }
	if (registered && prevFocussed) { focussed = True; }

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x70(%rbp)
addq $0xf0, %rdi
movq -0x18(%rbp), %rsi
callq 0x59ac0
testb $0x1, %al
jne 0x89fa1
jmp 0x89fea
leaq -0x28(%rbp), %rdi
movq %rdi, -0x80(%rbp)
callq 0x5ca80
movq -0x80(%rbp), %rdi
callq 0x59680
movl %eax, -0x74(%rbp)
jmp 0x89fbc
movl -0x74(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5a410
jmp 0x8a14a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5a410
jmp 0x8a156
movq -0x70(%rbp), %rdi
movq (%rdi), %rax
callq *0x40(%rax)
movq -0x70(%rbp), %rdi
movq %rax, -0x40(%rbp)
movq (%rdi), %rax
callq *0x90(%rax)
movb %al, %cl
movq -0x70(%rbp), %rax
andb $0x1, %cl
movb %cl, -0x41(%rbp)
movb 0xcd(%rax), %cl
andb $0x1, %cl
movb %cl, -0x42(%rbp)
testb $0x1, 0xca(%rax)
je 0x8a037
testb $0x1, -0x42(%rbp)
je 0x8a037
movq -0x70(%rbp), %rax
movb $0x0, 0xcd(%rax)
movq -0x70(%rbp), %rax
testb $0x1, 0xca(%rax)
je 0x8a084
testb $0x1, -0x41(%rbp)
je 0x8a084
movq -0x70(%rbp), %rdi
movq -0x40(%rbp), %rax
movq %rax, -0x88(%rbp)
movq (%rdi), %rax
callq *0x130(%rax)
movq -0x88(%rbp), %rdi
movq %rax, -0x54(%rbp)
movq %rdx, -0x4c(%rbp)
leaq -0x54(%rbp), %rsi
callq 0x591b0
movq -0x70(%rbp), %rdi
movq (%rdi), %rax
callq *0x60(%rax)
movq -0x70(%rbp), %rdi
movq -0x18(%rbp), %rsi
addq $0xf0, %rdi
callq 0x59760
movq -0x70(%rbp), %rdi
callq 0x59de0
movq -0x70(%rbp), %rax
testb $0x1, 0xca(%rax)
je 0x8a0dd
testb $0x1, -0x41(%rbp)
je 0x8a0dd
movq -0x70(%rbp), %rdi
movq (%rdi), %rax
callq *0x58(%rax)
movq -0x70(%rbp), %rdi
movq (%rdi), %rax
movl $0x7800, %esi           # imm = 0x7800
xorl %ecx, %ecx
movl %ecx, %edx
callq *0x80(%rax)
movq -0x40(%rbp), %rdi
callq 0x5d270
movq -0x70(%rbp), %rax
testb $0x1, 0xca(%rax)
je 0x8a0fb
testb $0x1, -0x42(%rbp)
je 0x8a0fb
movq -0x70(%rbp), %rax
movb $0x1, 0xcd(%rax)
leaq -0x68(%rbp), %rdi
movq %rdi, -0x98(%rbp)
callq 0x5ca80
movq -0x98(%rbp), %rdi
callq 0x59680
movl %eax, -0x8c(%rbp)
jmp 0x8a11f
movl -0x8c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x5a410
jmp 0x8a14a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x5a410
jmp 0x8a156
movl -0x4(%rbp), %eax
addq $0xa0, %rsp
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x5b6b0
nop
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::SetFont(smooth::GUI::Font const&)
S::Int S::GUI::Widget::SetFont(const Font &nFont)
{
	if (font == nFont) return Success();

	Surface	*surface      = GetDrawSurface();

	Bool	 prevVisible  = IsVisible();
	Bool	 prevFocussed = focussed;

	if (registered && prevFocussed) { focussed = False; }
	if (registered && prevVisible)	{ surface->StartPaint(GetVisibleArea()); Hide(); }

	font = nFont;

	ComputeTextSize();

	if (registered && prevVisible)  { Show(); Process(SM_MOUSEMOVE, 0, 0); surface->EndPaint(); }
	if (registered && prevFocussed) { focussed = True; }

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x70(%rbp)
addq $0x140, %rdi            # imm = 0x140
movq -0x18(%rbp), %rsi
callq 0x5da10
testb $0x1, %al
jne 0x8a2a1
jmp 0x8a2ea
leaq -0x28(%rbp), %rdi
movq %rdi, -0x80(%rbp)
callq 0x5ca80
movq -0x80(%rbp), %rdi
callq 0x59680
movl %eax, -0x74(%rbp)
jmp 0x8a2bc
movl -0x74(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5a410
jmp 0x8a44a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5a410
jmp 0x8a456
movq -0x70(%rbp), %rdi
movq (%rdi), %rax
callq *0x40(%rax)
movq -0x70(%rbp), %rdi
movq %rax, -0x40(%rbp)
movq (%rdi), %rax
callq *0x90(%rax)
movb %al, %cl
movq -0x70(%rbp), %rax
andb $0x1, %cl
movb %cl, -0x41(%rbp)
movb 0xcd(%rax), %cl
andb $0x1, %cl
movb %cl, -0x42(%rbp)
testb $0x1, 0xca(%rax)
je 0x8a337
testb $0x1, -0x42(%rbp)
je 0x8a337
movq -0x70(%rbp), %rax
movb $0x0, 0xcd(%rax)
movq -0x70(%rbp), %rax
testb $0x1, 0xca(%rax)
je 0x8a384
testb $0x1, -0x41(%rbp)
je 0x8a384
movq -0x70(%rbp), %rdi
movq -0x40(%rbp), %rax
movq %rax, -0x88(%rbp)
movq (%rdi), %rax
callq *0x130(%rax)
movq -0x88(%rbp), %rdi
movq %rax, -0x54(%rbp)
movq %rdx, -0x4c(%rbp)
leaq -0x54(%rbp), %rsi
callq 0x591b0
movq -0x70(%rbp), %rdi
movq (%rdi), %rax
callq *0x60(%rax)
movq -0x70(%rbp), %rdi
movq -0x18(%rbp), %rsi
addq $0x140, %rdi            # imm = 0x140
callq 0x5d830
movq -0x70(%rbp), %rdi
callq 0x59de0
movq -0x70(%rbp), %rax
testb $0x1, 0xca(%rax)
je 0x8a3dd
testb $0x1, -0x41(%rbp)
je 0x8a3dd
movq -0x70(%rbp), %rdi
movq (%rdi), %rax
callq *0x58(%rax)
movq -0x70(%rbp), %rdi
movq (%rdi), %rax
movl $0x7800, %esi           # imm = 0x7800
xorl %ecx, %ecx
movl %ecx, %edx
callq *0x80(%rax)
movq -0x40(%rbp), %rdi
callq 0x5d270
movq -0x70(%rbp), %rax
testb $0x1, 0xca(%rax)
je 0x8a3fb
testb $0x1, -0x42(%rbp)
je 0x8a3fb
movq -0x70(%rbp), %rax
movb $0x1, 0xcd(%rax)
leaq -0x68(%rbp), %rdi
movq %rdi, -0x98(%rbp)
callq 0x5ca80
movq -0x98(%rbp), %rdi
callq 0x59680
movl %eax, -0x8c(%rbp)
jmp 0x8a41f
movl -0x8c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x5a410
jmp 0x8a44a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x5a410
jmp 0x8a456
movl -0x4(%rbp), %eax
addq $0xa0, %rsp
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x5b6b0
nop
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::SetOrientation(int)
S::Int S::GUI::Widget::SetOrientation(Int nOrientation)
{
	if (orientation == nOrientation) return Success();

	Bool	 prevVisible = IsVisible();

	if (registered && prevVisible) Hide();

	orientation = nOrientation;

	if (registered && prevVisible) Show();

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x50(%rbp)
movswl 0xd0(%rax), %eax
cmpl -0x14(%rbp), %eax
jne 0x8a4cc
leaq -0x28(%rbp), %rdi
movq %rdi, -0x60(%rbp)
callq 0x5ca80
movq -0x60(%rbp), %rdi
callq 0x59680
movl %eax, -0x54(%rbp)
jmp 0x8a49e
movl -0x54(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5a410
jmp 0x8a568
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5a410
jmp 0x8a571
movq -0x50(%rbp), %rdi
movq (%rdi), %rax
callq *0x90(%rax)
movb %al, %cl
movq -0x50(%rbp), %rax
andb $0x1, %cl
movb %cl, -0x35(%rbp)
testb $0x1, 0xca(%rax)
je 0x8a4fe
testb $0x1, -0x35(%rbp)
je 0x8a4fe
movq -0x50(%rbp), %rdi
movq (%rdi), %rax
callq *0x60(%rax)
movq -0x50(%rbp), %rax
movl -0x14(%rbp), %ecx
movw %cx, 0xd0(%rax)
testb $0x1, 0xca(%rax)
je 0x8a525
testb $0x1, -0x35(%rbp)
je 0x8a525
movq -0x50(%rbp), %rdi
movq (%rdi), %rax
callq *0x58(%rax)
leaq -0x48(%rbp), %rdi
movq %rdi, -0x70(%rbp)
callq 0x5ca80
movq -0x70(%rbp), %rdi
callq 0x59680
movl %eax, -0x64(%rbp)
jmp 0x8a540
movl -0x64(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0x8a568
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0x8a571
movl -0x4(%rbp), %eax
addq $0x70, %rsp
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x5b6b0
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::IsRightToLeft() const
S::Bool S::GUI::Widget::IsRightToLeft() const
{
	if (IsRegistered())
	{
		Window	*containerWindow = container->GetContainerWindow();

		if (containerWindow != NIL) return containerWindow->IsRightToLeft();
	}

	return Setup::rightToLeft;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x20(%rbp)
movq (%rdi), %rax
callq *0x88(%rax)
testb $0x1, %al
jne 0x8a933
jmp 0x8a964
movq -0x20(%rbp), %rax
movq 0x190(%rax), %rdi
callq 0x59bc0
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x8a962
movq -0x18(%rbp), %rdi
movq (%rdi), %rax
callq *0x160(%rax)
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x8a972
jmp 0x8a964
movq 0x17e15d(%rip), %rax    # 0x208ac8
movb (%rax), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/../../../include/smooth/templates/signals/signal.h
// Function: int smooth::Signal1<void, int>::Disconnect<smooth::GUI::Widget, smooth::GUI::Widget, void>(void (smooth::GUI::Widget::*)(), smooth::GUI::Widget*)
Int Disconnect(slotReturnTYPE (classTYPE::*proc)(), oClassTYPE *inst)
			{
				if (slots0 == NIL) return Error();

				SlotClass0<classTYPE, slotReturnTYPE>	 slot(proc, inst);

				for (Int i = slots0->Length() - 1; i >= 0; i--)
				{
					if ((*((SlotBase0<Void> *) slots0->GetNth(i))) == slot)
					{
						RemoveNth0(i);

						break;
					}
				}

				return Success();
			}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rsi, -0x18(%rbp)
movq %rdx, -0x10(%rbp)
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rdx
movq %rdi, -0x20(%rbp)
movq %rdx, -0x28(%rbp)
movq %rax, -0x30(%rbp)
movq %rcx, -0x38(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0xa8(%rbp)
cmpq $0x0, 0x18(%rax)
jne 0x8b9e5
leaq -0x48(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
leaq -0x48(%rbp), %rdi
callq 0x59680
movl %eax, -0x4(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5b5b0
jmp 0x8bae3
movq -0x30(%rbp), %rax
movq -0x28(%rbp), %rdx
movq -0x38(%rbp), %rcx
movq %rdx, -0x70(%rbp)
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rsi
movq -0x70(%rbp), %rdx
leaq -0x68(%rbp), %rdi
callq 0x8d820
movq -0xa8(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x5c990
subl $0x1, %eax
movl %eax, -0x7c(%rbp)
cmpl $0x0, -0x7c(%rbp)
jl 0x8bab1
movq -0xa8(%rbp), %rax
movq 0x18(%rax), %rdi
movl -0x7c(%rbp), %esi
callq 0x820b0
movq %rax, -0xb0(%rbp)
jmp 0x8ba46
movq -0xb0(%rbp), %rax
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x20(%rax), %rax
leaq -0x68(%rbp), %rsi
callq *%rax
movb %al, -0xb1(%rbp)
jmp 0x8ba65
movb -0xb1(%rbp), %al
testb $0x1, %al
jne 0x8ba71
jmp 0x8baa1
movq -0xa8(%rbp), %rdi
movl -0x7c(%rbp), %esi
callq 0x8da50
jmp 0x8ba82
jmp 0x8bab1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x8d890
jmp 0x8baef
jmp 0x8baa3
movl -0x7c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x7c(%rbp)
jmp 0x8ba20
leaq -0xa0(%rbp), %rdi
callq 0x5ca80
jmp 0x8babf
leaq -0xa0(%rbp), %rdi
callq 0x59680
movl %eax, -0x4(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x5a410
leaq -0x68(%rbp), %rdi
callq 0x8d890
movl -0x4(%rbp), %eax
addq $0xc0, %rsp
popq %rbp
retq
movq -0x88(%rbp), %rdi
callq 0x5b6b0
nopl (%rax,%rax)