LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/scrollbar.cpp
// Function: smooth::GUI::Scrollbar::OnMouseClick(smooth::GUI::Point const&)
S::Void S::GUI::Scrollbar::OnMouseClick(const Point &mousePos)
{
	if (dragHotspot->IsMouseOver()) return;

	Int	 value = 0;

	if (subtype == OR_HORZ)	value = (mousePos.x < dragHotspot->GetRealPosition().x) ? -pageSize : pageSize;
	else			value = (mousePos.y < dragHotspot->GetRealPosition().y) ? -pageSize : pageSize;

	if (clickTimer->GetStatus() == System::TIMER_STOPPED)
	{
		clickTimer->Start(250);
		clickTimerDirection = (value > 0 ? 1 : -1);
	}

	if (value / clickTimerDirection >= 0) SetValue(*variable + value);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
movq 0x660(%rax), %rdi
callq 0x5d390
testb $0x1, %al
jne 0x9f7aa
jmp 0x9f7af
jmp 0x9f8d3
movq -0x30(%rbp), %rax
movl $0x0, -0x14(%rbp)
movswl 0x1a0(%rax), %eax
cmpl $0x1, %eax
jne 0x9f815
movq -0x30(%rbp), %rax
movq -0x10(%rbp), %rcx
movl (%rcx), %ecx
movl %ecx, -0x34(%rbp)
movq 0x660(%rax), %rdi
movq (%rdi), %rax
callq *0x48(%rax)
movq %rax, %rcx
movl -0x34(%rbp), %eax
movq %rcx, -0x1c(%rbp)
cmpl -0x1c(%rbp), %eax
jge 0x9f800
movq -0x30(%rbp), %rcx
xorl %eax, %eax
subl 0x654(%rcx), %eax
movl %eax, -0x38(%rbp)
jmp 0x9f80d
movq -0x30(%rbp), %rax
movl 0x654(%rax), %eax
movl %eax, -0x38(%rbp)
movl -0x38(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x9f863
movq -0x30(%rbp), %rax
movq -0x10(%rbp), %rcx
movl 0x4(%rcx), %ecx
movl %ecx, -0x3c(%rbp)
movq 0x660(%rax), %rdi
movq (%rdi), %rax
callq *0x48(%rax)
movq %rax, %rcx
movl -0x3c(%rbp), %eax
movq %rcx, -0x24(%rbp)
cmpl -0x20(%rbp), %eax
jge 0x9f850
movq -0x30(%rbp), %rcx
xorl %eax, %eax
subl 0x654(%rcx), %eax
movl %eax, -0x40(%rbp)
jmp 0x9f85d
movq -0x30(%rbp), %rax
movl 0x654(%rax), %eax
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x30(%rbp), %rax
movq 0x648(%rax), %rdi
callq 0x5d660
cwtl
cmpl $0x0, %eax
jne 0x9f8ab
movq -0x30(%rbp), %rax
movq 0x648(%rax), %rdi
movl $0xfa, %esi
callq 0x59120
movq -0x30(%rbp), %rax
movl -0x14(%rbp), %esi
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movl $0x1, %edx
cmpl $0x0, %esi
cmovgl %edx, %ecx
movl %ecx, 0x650(%rax)
movq -0x30(%rbp), %rcx
movl -0x14(%rbp), %eax
cltd
idivl 0x650(%rcx)
cmpl $0x0, %eax
jl 0x9f8d3
movq -0x30(%rbp), %rdi
movq 0x5d0(%rdi), %rax
movl (%rax), %esi
addl -0x14(%rbp), %esi
callq 0x5b550
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/slider.cpp
// Function: smooth::GUI::Slider::OnMouseClick(smooth::GUI::Point const&)
S::Void S::GUI::Slider::OnMouseClick(const Point &mousePos)
{
	Int	 value	  = 0;

	Point	 realPos  = GetRealPosition();
	Size	 realSize = GetRealSize();

	if (subtype == OR_HORZ)	value = Math::Round(((Float) (endValue - startValue)) / (((Float) realSize.cx - gripSize) / ((Float) (mousePos.x - (realPos.x + gripSize / 2)))));
	else			value = Math::Round(((Float) (endValue - startValue)) / (((Float) realSize.cy - gripSize) / ((Float) (mousePos.y - (realPos.y + gripSize / 2)))));

	if (!dragging)
	{
		if (subtype == OR_HORZ)	SetValue(startValue + value);
		else			SetValue(endValue - value);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x30(%rbp)
movl $0x0, -0x14(%rbp)
movq (%rdi), %rax
callq *0x48(%rax)
movq -0x30(%rbp), %rdi
movq %rax, -0x1c(%rbp)
movq (%rdi), %rax
callq *0x50(%rax)
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq %rcx, -0x24(%rbp)
movswl 0x1a0(%rax), %eax
cmpl $0x1, %eax
jne 0xa2928
movq -0x30(%rbp), %rax
movl 0x5dc(%rax), %ecx
subl 0x5d8(%rax), %ecx
cvtsi2sd %ecx, %xmm0
cvtsi2sdl -0x24(%rbp), %xmm1
cvtsi2sdl 0x5c8(%rax), %xmm2
subsd %xmm2, %xmm1
movq -0x10(%rbp), %rcx
movl (%rcx), %ecx
movl %ecx, -0x34(%rbp)
movl -0x1c(%rbp), %ecx
movl 0x5c8(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0x34(%rbp), %eax
addl %edx, %ecx
subl %ecx, %eax
cvtsi2sd %eax, %xmm2
divsd %xmm2, %xmm1
divsd %xmm1, %xmm0
callq 0x5a970
movl %eax, -0x14(%rbp)
jmp 0xa2985
movq -0x30(%rbp), %rax
movl 0x5dc(%rax), %ecx
subl 0x5d8(%rax), %ecx
cvtsi2sd %ecx, %xmm0
cvtsi2sdl -0x20(%rbp), %xmm1
cvtsi2sdl 0x5c8(%rax), %xmm2
subsd %xmm2, %xmm1
movq -0x10(%rbp), %rcx
movl 0x4(%rcx), %ecx
movl %ecx, -0x38(%rbp)
movl -0x18(%rbp), %ecx
movl 0x5c8(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0x38(%rbp), %eax
addl %edx, %ecx
subl %ecx, %eax
cvtsi2sd %eax, %xmm2
divsd %xmm2, %xmm1
divsd %xmm1, %xmm0
callq 0x5a970
movl %eax, -0x14(%rbp)
movq -0x30(%rbp), %rax
testb $0x1, 0x5c4(%rax)
jne 0xa29ca
movq -0x30(%rbp), %rax
movswl 0x1a0(%rax), %eax
cmpl $0x1, %eax
jne 0xa29b6
movq -0x30(%rbp), %rdi
movl 0x5d8(%rdi), %esi
addl -0x14(%rbp), %esi
callq 0x59310
jmp 0xa29c8
movq -0x30(%rbp), %rdi
movl 0x5dc(%rdi), %esi
subl -0x14(%rbp), %esi
callq 0x59310
jmp 0xa29ca
addq $0x40, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/slider.cpp
// Function: smooth::GUI::Slider::OnMouseDragStart(smooth::GUI::Point const&)
S::Void S::GUI::Slider::OnMouseDragStart(const Point &mousePos)
{
	Point	 realPos  = GetRealPosition();
	Size	 realSize = GetRealSize();

	if (subtype == OR_HORZ)	mouseBias = (realPos.x + (Int) (((Float) (realSize.cx - gripSize)) / ((Float) (endValue - startValue)) * ((Float) (*variable - startValue))) + gripSize / 2) - mousePos.x;
	else			mouseBias = (realPos.y + (realSize.cy - gripSize) - (Int) (((Float) (realSize.cy - gripSize)) / ((Float) (endValue - startValue)) * ((Float) (*variable - startValue))) + gripSize / 2) - mousePos.y;

	dragging = True;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x28(%rbp)
movq (%rdi), %rax
callq *0x48(%rax)
movq -0x28(%rbp), %rdi
movq %rax, -0x18(%rbp)
movq (%rdi), %rax
callq *0x50(%rax)
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, -0x20(%rbp)
movswl 0x1a0(%rax), %eax
cmpl $0x1, %eax
jne 0xa2a7c
movq -0x28(%rbp), %rax
movl -0x18(%rbp), %ecx
movl -0x20(%rbp), %edx
subl 0x5c8(%rax), %edx
cvtsi2sd %edx, %xmm0
movl 0x5dc(%rax), %edx
subl 0x5d8(%rax), %edx
cvtsi2sd %edx, %xmm1
divsd %xmm1, %xmm0
movq 0x5d0(%rax), %rdx
movl (%rdx), %edx
subl 0x5d8(%rax), %edx
cvtsi2sd %edx, %xmm1
mulsd %xmm1, %xmm0
cvttsd2si %xmm0, %edx
addl %edx, %ecx
movl 0x5c8(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movq -0x28(%rbp), %rax
addl %edx, %ecx
movq -0x10(%rbp), %rdx
subl (%rdx), %ecx
movl %ecx, 0x5c0(%rax)
jmp 0xa2aef
movq -0x28(%rbp), %rax
movl -0x14(%rbp), %ecx
movl -0x1c(%rbp), %edx
subl 0x5c8(%rax), %edx
addl %edx, %ecx
movl -0x1c(%rbp), %edx
subl 0x5c8(%rax), %edx
cvtsi2sd %edx, %xmm0
movl 0x5dc(%rax), %edx
subl 0x5d8(%rax), %edx
cvtsi2sd %edx, %xmm1
divsd %xmm1, %xmm0
movq 0x5d0(%rax), %rdx
movl (%rdx), %edx
subl 0x5d8(%rax), %edx
cvtsi2sd %edx, %xmm1
mulsd %xmm1, %xmm0
cvttsd2si %xmm0, %edx
subl %edx, %ecx
movl 0x5c8(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movq -0x28(%rbp), %rax
addl %edx, %ecx
movq -0x10(%rbp), %rdx
subl 0x4(%rdx), %ecx
movl %ecx, 0x5c0(%rax)
movq -0x28(%rbp), %rax
movb $0x1, 0x5c4(%rax)
addq $0x30, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/slider.cpp
// Function: smooth::GUI::Slider::OnMouseDrag(smooth::GUI::Point const&)
S::Void S::GUI::Slider::OnMouseDrag(const Point &mousePos)
{
	Point	 realPos  = GetRealPosition();
	Size	 realSize = GetRealSize();

	Int	 value = 0;

	if (subtype == OR_HORZ)	value = Math::Round(((Float) (endValue - startValue)) / (((Float) realSize.cx - gripSize) / ((Float) (mousePos.x + mouseBias - (realPos.x + gripSize / 2)))));
	else			value = Math::Round(((Float) (endValue - startValue)) / (((Float) realSize.cy - gripSize) / ((Float) (mousePos.y + mouseBias - (realPos.y + gripSize / 2)))));

	dragging = False;

	if (subtype == OR_HORZ)	SetValue(startValue + value);
	else			SetValue(endValue - value);

	dragging = True;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x30(%rbp)
movq (%rdi), %rax
callq *0x48(%rax)
movq -0x30(%rbp), %rdi
movq %rax, -0x18(%rbp)
movq (%rdi), %rax
callq *0x50(%rax)
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq %rcx, -0x20(%rbp)
movl $0x0, -0x24(%rbp)
movswl 0x1a0(%rax), %eax
cmpl $0x1, %eax
jne 0xa2bae
movq -0x30(%rbp), %rax
movl 0x5dc(%rax), %ecx
subl 0x5d8(%rax), %ecx
cvtsi2sd %ecx, %xmm0
cvtsi2sdl -0x20(%rbp), %xmm1
cvtsi2sdl 0x5c8(%rax), %xmm2
subsd %xmm2, %xmm1
movq -0x10(%rbp), %rcx
movl (%rcx), %ecx
addl 0x5c0(%rax), %ecx
movl %ecx, -0x34(%rbp)
movl -0x18(%rbp), %ecx
movl 0x5c8(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0x34(%rbp), %eax
addl %edx, %ecx
subl %ecx, %eax
cvtsi2sd %eax, %xmm2
divsd %xmm2, %xmm1
divsd %xmm1, %xmm0
callq 0x5a970
movl %eax, -0x24(%rbp)
jmp 0xa2c11
movq -0x30(%rbp), %rax
movl 0x5dc(%rax), %ecx
subl 0x5d8(%rax), %ecx
cvtsi2sd %ecx, %xmm0
cvtsi2sdl -0x1c(%rbp), %xmm1
cvtsi2sdl 0x5c8(%rax), %xmm2
subsd %xmm2, %xmm1
movq -0x10(%rbp), %rcx
movl 0x4(%rcx), %ecx
addl 0x5c0(%rax), %ecx
movl %ecx, -0x38(%rbp)
movl -0x14(%rbp), %ecx
movl 0x5c8(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
movl %eax, %edx
movl -0x38(%rbp), %eax
addl %edx, %ecx
subl %ecx, %eax
cvtsi2sd %eax, %xmm2
divsd %xmm2, %xmm1
divsd %xmm1, %xmm0
callq 0x5a970
movl %eax, -0x24(%rbp)
movq -0x30(%rbp), %rax
movb $0x0, 0x5c4(%rax)
movswl 0x1a0(%rax), %eax
cmpl $0x1, %eax
jne 0xa2c3c
movq -0x30(%rbp), %rdi
movl 0x5d8(%rdi), %esi
addl -0x24(%rbp), %esi
callq 0x59310
jmp 0xa2c4e
movq -0x30(%rbp), %rdi
movl 0x5dc(%rdi), %esi
subl -0x24(%rbp), %esi
callq 0x59310
movq -0x30(%rbp), %rax
movb $0x1, 0x5c4(%rax)
addq $0x40, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/slider.cpp
// Function: smooth::GUI::Slider::SetValue(int)
S::Void S::GUI::Slider::SetValue(Int newValue)
{
	Int	 previousVariable = *variable;

	*variable = Math::Min(Math::Max(newValue, startValue), endValue);

	if (*variable != previousValue)
	{
		if (!dragging)
		{
			Point	 prevPosition = dragHotspot->GetPosition();

			UpdateHotspotPositions();

			if (dragHotspot->GetPosition() != prevPosition) Paint(SP_PAINT);
		}

		previousValue = *variable;

		if (*variable != previousVariable) onValueChange.Emit(*variable);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movq 0x5d0(%rax), %rcx
movl (%rcx), %ecx
movl %ecx, -0x10(%rbp)
movl -0xc(%rbp), %edi
movl 0x5d8(%rax), %esi
callq 0x5aae0
movl %eax, %edi
movq -0x20(%rbp), %rax
movl 0x5dc(%rax), %esi
callq 0x5ce90
movq -0x20(%rbp), %rcx
movl %eax, %edx
movq 0x5d0(%rcx), %rax
movl %edx, (%rax)
movq 0x5d0(%rcx), %rax
movl (%rax), %eax
cmpl 0x5bc(%rcx), %eax
je 0xa2f62
movq -0x20(%rbp), %rax
testb $0x1, 0x5c4(%rax)
jne 0xa2f23
movq -0x20(%rbp), %rax
movq 0x5e8(%rax), %rdi
callq 0x5d740
movq -0x20(%rbp), %rdi
movq (%rax), %rax
movq %rax, -0x18(%rbp)
callq 0x5def8
movq -0x20(%rbp), %rax
movq 0x5e8(%rax), %rdi
callq 0x5d740
movq %rax, %rdi
leaq -0x18(%rbp), %rsi
callq 0x5d770
testb $0x1, %al
jne 0xa2f15
jmp 0xa2f21
movq -0x20(%rbp), %rdi
movq (%rdi), %rax
xorl %esi, %esi
callq *0x78(%rax)
jmp 0xa2f23
movq -0x20(%rbp), %rax
movq 0x5d0(%rax), %rcx
movl (%rcx), %ecx
movl %ecx, 0x5bc(%rax)
movq 0x5d0(%rax), %rax
movl (%rax), %eax
cmpl -0x10(%rbp), %eax
je 0xa2f60
movq -0x20(%rbp), %rax
movq %rax, %rdi
addq $0x5f0, %rdi            # imm = 0x5F0
movq 0x5d0(%rax), %rax
movl (%rax), %esi
callq 0x907d0
jmp 0xa2f62
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/slider.cpp
// Function: smooth::GUI::Slider::SetRange(int, int)
S::Int S::GUI::Slider::SetRange(Int rangeStart, Int rangeEnd)
{
	if (startValue == rangeStart &&
	    endValue   == rangeEnd) return Success();

	startValue	= rangeStart;
	endValue	= rangeEnd;

	*variable  = Math::Min(Math::Max(*variable, startValue), endValue);

	Paint(SP_PAINT);

	UpdateHotspotPositions();

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x50(%rbp)
movl 0x5d8(%rax), %eax
cmpl -0x14(%rbp), %eax
jne 0xa37fd
movq -0x50(%rbp), %rax
movl 0x5dc(%rax), %eax
cmpl -0x18(%rbp), %eax
jne 0xa37fd
leaq -0x28(%rbp), %rdi
movq %rdi, -0x60(%rbp)
callq 0x5ca80
movq -0x60(%rbp), %rdi
callq 0x59680
movl %eax, -0x54(%rbp)
jmp 0xa37cf
movl -0x54(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5a410
jmp 0xa389e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5a410
jmp 0xa38a7
movq -0x50(%rbp), %rax
movl -0x14(%rbp), %ecx
movl %ecx, 0x5d8(%rax)
movl -0x18(%rbp), %ecx
movl %ecx, 0x5dc(%rax)
movq 0x5d0(%rax), %rcx
movl (%rcx), %edi
movl 0x5d8(%rax), %esi
callq 0x5aae0
movl %eax, %edi
movq -0x50(%rbp), %rax
movl 0x5dc(%rax), %esi
callq 0x5ce90
movq -0x50(%rbp), %rdi
movl %eax, %ecx
movq 0x5d0(%rdi), %rax
movl %ecx, (%rax)
movq (%rdi), %rax
movq 0x78(%rax), %rax
xorl %esi, %esi
callq *%rax
movq -0x50(%rbp), %rdi
callq 0x5def8
leaq -0x48(%rbp), %rdi
movq %rdi, -0x70(%rbp)
callq 0x5ca80
movq -0x70(%rbp), %rdi
callq 0x59680
movl %eax, -0x64(%rbp)
jmp 0xa3876
movl -0x64(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0xa389e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0xa38a7
movl -0x4(%rbp), %eax
addq $0x70, %rsp
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x5b6b0
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/slider.cpp
// Function: smooth::GUI::Slider::SetGripSize(int)
S::Int S::GUI::Slider::SetGripSize(Int newGripSize)
{
	gripSize = newGripSize;

	Paint(SP_PAINT);

	UpdateHotspotPositions();

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x40(%rbp)
movl -0xc(%rbp), %eax
movl %eax, 0x5c8(%rdi)
movq (%rdi), %rax
movq 0x78(%rax), %rax
xorl %esi, %esi
callq *%rax
movq -0x40(%rbp), %rdi
callq 0x5def8
leaq -0x20(%rbp), %rdi
movq %rdi, -0x38(%rbp)
callq 0x5ca80
movq -0x38(%rbp), %rdi
callq 0x59680
movl %eax, -0x30(%rbp)
jmp 0xa38ff
leaq -0x20(%rbp), %rdi
callq 0x5a410
movl -0x30(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5a410
movq -0x28(%rbp), %rdi
callq 0x5b6b0
nop
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/statusbar.cpp
// Function: smooth::GUI::Statusbar::SetText(smooth::String const&)
S::Int S::GUI::Statusbar::SetText(const String &newStatus)
{
	if (text == newStatus) return Success();

	text = newStatus;

	Paint(SP_PAINT);

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x50(%rbp)
addq $0xf0, %rdi
movq -0x18(%rbp), %rsi
callq 0x59ac0
testb $0x1, %al
jne 0xa464e
jmp 0xa4691
leaq -0x28(%rbp), %rdi
movq %rdi, -0x60(%rbp)
callq 0x5ca80
movq -0x60(%rbp), %rdi
callq 0x59680
movl %eax, -0x54(%rbp)
jmp 0xa4669
movl -0x54(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5a410
jmp 0xa46f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5a410
jmp 0xa4700
movq -0x50(%rbp), %rdi
movq -0x18(%rbp), %rsi
addq $0xf0, %rdi
callq 0x59760
movq -0x50(%rbp), %rdi
movq (%rdi), %rax
movq 0x78(%rax), %rax
xorl %esi, %esi
callq *%rax
leaq -0x48(%rbp), %rdi
movq %rdi, -0x70(%rbp)
callq 0x5ca80
movq -0x70(%rbp), %rdi
callq 0x59680
movl %eax, -0x64(%rbp)
jmp 0xa46cf
movl -0x64(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0xa46f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0xa4700
movl -0x4(%rbp), %eax
addq $0x70, %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/basic/tabwidget.cpp
// Function: smooth::GUI::TabWidget::TabWidget(smooth::GUI::Point const&, smooth::GUI::Size const&)
S::GUI::TabWidget::TabWidget(const Point &iPos, const Size &iSize) : Widget(iPos, iSize)
{
	type	= classID;

	if (GetWidth()	== 0) SetWidth(120);
	if (GetHeight()	== 0) SetHeight(100);

	selectedTab = NIL;

	onSelectTab.SetParentObject(this);

	onChangeSize.Connect(&TabWidget::OnChangeSize, this);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x48(%rbp)
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x5c220
movq -0x48(%rbp), %rdi
movq 0x163f8c(%rip), %rax    # 0x2086d0
addq $0x10, %rax
movq %rax, (%rdi)
addq $0x5c0, %rdi            # imm = 0x5C0
movq %rdi, -0x40(%rbp)
callq 0xa6190
jmp 0xa475d
movq -0x48(%rbp), %rdi
addq $0x618, %rdi            # imm = 0x618
movq %rdi, -0x50(%rbp)
callq 0xa61d0
jmp 0xa4773
movq -0x48(%rbp), %rdi
movq 0x163e8a(%rip), %rax    # 0x208608
movswl (%rax), %esi
addq $0x20, %rdi
callq 0x5a2e0
jmp 0xa478c
movq -0x48(%rbp), %rdi
callq 0x5a210
movl %eax, -0x54(%rbp)
jmp 0xa479a
movl -0x54(%rbp), %eax
cmpl $0x0, %eax
jne 0xa47ed
movq -0x48(%rbp), %rdi
movl $0x78, %esi
callq 0x5db30
jmp 0xa47b2
jmp 0xa47ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0xa4874
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0xa486b
movq -0x50(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
callq 0xa6360
jmp 0xa486b
movq -0x48(%rbp), %rdi
callq 0x5b860
movl %eax, -0x58(%rbp)
jmp 0xa47fb
movl -0x58(%rbp), %eax
cmpl $0x0, %eax
jne 0xa4815
movq -0x48(%rbp), %rdi
movl $0x64, %esi
callq 0x5bed0
jmp 0xa4813
jmp 0xa4815
movq -0x48(%rbp), %rsi
movq $0x0, 0x5b8(%rsi)
movq %rsi, %rdi
addq $0x618, %rdi            # imm = 0x618
callq 0x8ad00
jmp 0xa4835
movq -0x48(%rbp), %rcx
movq %rcx, %rdi
addq $0x298, %rdi            # imm = 0x298
movq 0x163c6e(%rip), %rax    # 0x2084b8
movq %rax, -0x38(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
callq 0xa6220
jmp 0xa4865
addq $0x60, %rsp
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0xa63a0
movq -0x48(%rbp), %rdi
callq 0x5bd90
movq -0x20(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/tabwidget.cpp
// Function: smooth::GUI::TabWidget::SelectTab(smooth::GUI::Widget const*)
S::Int S::GUI::TabWidget::SelectTab(const Widget *tabWidget)
{
	for (Int i = 0; i < GetNOfObjects(); i++)
	{
		Widget	*widget = GetNthObject(i);

		if (widget != tabWidget) continue;

		Surface	*surface = GetDrawSurface();

		surface->StartPaint(GetVisibleArea());

		for (Int j = 0; j < GetNOfObjects(); j++)
		{
			if (j == i) continue;

			GetNthObject(j)->Hide();
		}

		widget->Show();

		Paint(SP_PAINT);

		surface->EndPaint();

		selectedTab = widget;

		onSelectTab.Emit(widget);

		return Success();
	}

	return Error();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x80(%rbp)
movl $0x0, -0x1c(%rbp)
movq -0x80(%rbp), %rdi
movl -0x1c(%rbp), %eax
movl %eax, -0x84(%rbp)
callq 0x5b470
movl %eax, %ecx
movl -0x84(%rbp), %eax
cmpl %ecx, %eax
jge 0xa5be1
movq -0x80(%rbp), %rdi
movl -0x1c(%rbp), %esi
callq 0x5c230
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
cmpq -0x18(%rbp), %rax
je 0xa5ab3
jmp 0xa5bd3
movq -0x80(%rbp), %rdi
movq (%rdi), %rax
callq *0x40(%rax)
movq -0x80(%rbp), %rdi
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x90(%rbp)
movq (%rdi), %rax
callq *0x130(%rax)
movq -0x90(%rbp), %rdi
movq %rax, -0x40(%rbp)
movq %rdx, -0x38(%rbp)
leaq -0x40(%rbp), %rsi
callq 0x591b0
movl $0x0, -0x44(%rbp)
movq -0x80(%rbp), %rdi
movl -0x44(%rbp), %eax
movl %eax, -0x94(%rbp)
callq 0x5b470
movl %eax, %ecx
movl -0x94(%rbp), %eax
cmpl %ecx, %eax
jge 0xa5b40
movl -0x44(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jne 0xa5b20
jmp 0xa5b35
movq -0x80(%rbp), %rdi
movl -0x44(%rbp), %esi
callq 0x5c230
movq %rax, %rdi
movq (%rdi), %rax
callq *0x60(%rax)
movl -0x44(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x44(%rbp)
jmp 0xa5af8
movq -0x28(%rbp), %rdi
movq (%rdi), %rax
movq 0x58(%rax), %rax
callq *%rax
movq -0x80(%rbp), %rdi
movq (%rdi), %rax
movq 0x78(%rax), %rax
xorl %esi, %esi
callq *%rax
movq -0x30(%rbp), %rdi
callq 0x5d270
movq -0x80(%rbp), %rdi
movq -0x28(%rbp), %rax
movq %rax, 0x5b8(%rdi)
addq $0x618, %rdi            # imm = 0x618
movq -0x28(%rbp), %rsi
callq 0xa6470
leaq -0x58(%rbp), %rdi
movq %rdi, -0xa0(%rbp)
callq 0x5ca80
movq -0xa0(%rbp), %rdi
callq 0x59680
movl %eax, -0x98(%rbp)
jmp 0xa5ba8
movl -0x98(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x5a410
jmp 0xa5c35
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x5a410
jmp 0xa5c41
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0xa5a72
leaq -0x78(%rbp), %rdi
movq %rdi, -0xb0(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
movq -0xb0(%rbp), %rdi
callq 0x59680
movl %eax, -0xa4(%rbp)
jmp 0xa5c0a
movl -0xa4(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x5b5b0
jmp 0xa5c35
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x5b5b0
jmp 0xa5c41
movl -0x4(%rbp), %eax
addq $0xb0, %rsp
popq %rbp
retq
movq -0x60(%rbp), %rdi
callq 0x5b6b0
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/tabwidget.cpp
// Function: smooth::GUI::TabWidget::Remove(smooth::GUI::Widget*)
S::Int S::GUI::TabWidget::Remove(Widget *widget)
{
	if (widget == NIL) return Error();

	Bool	 wasVisible = widget->IsVisible();

	if (Widget::Remove(widget) == Success())
	{
		bitmaps.Remove(widget->GetHandle());

		if (wasVisible)
		{
			if (GetNOfObjects() > 0) SelectTab(GetNthObject(0));
			else			 selectedTab = NIL;
		}

		return Success();
	}

	return Error();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x70(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0xa5ff0
leaq -0x28(%rbp), %rdi
movq %rdi, -0x80(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
movq -0x80(%rbp), %rdi
callq 0x59680
movl %eax, -0x74(%rbp)
jmp 0xa5fc2
movl -0x74(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5b5b0
jmp 0xa617a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5b5b0
jmp 0xa6186
movq -0x18(%rbp), %rdi
movq (%rdi), %rax
movq 0x90(%rax), %rax
callq *%rax
movq -0x70(%rbp), %rdi
movb %al, -0x35(%rbp)
movq -0x18(%rbp), %rsi
callq 0x5b3a0
movl %eax, -0x94(%rbp)
leaq -0x48(%rbp), %rdi
movq %rdi, -0x90(%rbp)
callq 0x5ca80
movq -0x90(%rbp), %rdi
callq 0x59680
movl %eax, -0x84(%rbp)
jmp 0xa603a
leaq -0x48(%rbp), %rdi
callq 0x5a410
movl -0x84(%rbp), %ecx
movl -0x94(%rbp), %eax
cmpl %ecx, %eax
jne 0xa6126
movq -0x70(%rbp), %rax
addq $0x5c0, %rax            # imm = 0x5C0
movq %rax, -0xa0(%rbp)
movq -0x18(%rbp), %rdi
callq 0x5d050
movq -0xa0(%rbp), %rdi
movl %eax, %esi
callq 0x5d7a0
testb $0x1, -0x35(%rbp)
je 0xa60d7
movq -0x70(%rbp), %rdi
callq 0x5b470
cmpl $0x0, %eax
jle 0xa60c6
movq -0x70(%rbp), %rdi
xorl %esi, %esi
callq 0x5c230
movq -0x70(%rbp), %rdi
movq %rax, %rsi
callq 0x5a890
jmp 0xa60d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0xa6186
movq -0x70(%rbp), %rax
movq $0x0, 0x5b8(%rax)
jmp 0xa60d7
leaq -0x58(%rbp), %rdi
movq %rdi, -0xb0(%rbp)
callq 0x5ca80
movq -0xb0(%rbp), %rdi
callq 0x59680
movl %eax, -0xa4(%rbp)
jmp 0xa60fb
movl -0xa4(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x5a410
jmp 0xa617a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x5a410
jmp 0xa6186
leaq -0x68(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
movq -0xc0(%rbp), %rdi
callq 0x59680
movl %eax, -0xb4(%rbp)
jmp 0xa614f
movl -0xb4(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x5b5b0
jmp 0xa617a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x5b5b0
jmp 0xa6186
movl -0x4(%rbp), %eax
addq $0xc0, %rsp
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x5b6b0
nop
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/text.cpp
// Function: smooth::GUI::Text::Text(smooth::String const&, smooth::GUI::Point const&, smooth::GUI::Size const&)
S::GUI::Text::Text(const String &iText, const Point &iPos, const Size &iAlign) : Widget(iPos, Size())
{
	type	= classID;
	text	= iText;
	align	= iAlign;

	ComputeTextSize();

	SetSize(scaledTextSize * 96.0 / Surface().GetSurfaceDPI() + Size(0, 2));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x80(%rbp)
leaq -0x28(%rbp), %rdi
movq %rdi, -0x78(%rbp)
callq 0x59230
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
movq -0x70(%rbp), %rdi
callq 0x5c220
movq -0x70(%rbp), %rdi
movq 0x1618fc(%rip), %rax    # 0x208e20
addq $0x10, %rax
movq %rax, (%rdi)
addq $0x5b8, %rdi            # imm = 0x5B8
callq 0x59230
jmp 0xa7539
movq -0x70(%rbp), %rdi
movq 0x1617b4(%rip), %rax    # 0x208cf8
movswl (%rax), %esi
addq $0x20, %rdi
callq 0x5a2e0
jmp 0xa7552
movq -0x70(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0xf0, %rdi
callq 0x59760
jmp 0xa7568
movq -0x70(%rbp), %rdi
movq -0x20(%rbp), %rax
movq (%rax), %rax
movq %rax, 0x5b8(%rdi)
callq 0x59de0
jmp 0xa7581
movq -0x70(%rbp), %rdi
addq $0x188, %rdi            # imm = 0x188
movsd 0xdff2c(%rip), %xmm0    # 0x1874c0
callq 0x5a7b0
movq %rax, -0x88(%rbp)
jmp 0xa75a2
movq -0x88(%rbp), %rax
movq %rax, -0x4c(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x59230
jmp 0xa75b8
xorl %eax, %eax
movl %eax, %esi
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rdx
callq 0x5b7d0
jmp 0xa75cb
leaq -0x58(%rbp), %rdi
callq 0x5d470
movw %ax, -0x8a(%rbp)
jmp 0xa75dd
movw -0x8a(%rbp), %ax
cwtl
cvtsi2sd %eax, %xmm0
leaq -0x4c(%rbp), %rdi
callq 0x5c6b0
movq %rax, -0x98(%rbp)
jmp 0xa75fb
movq -0x98(%rbp), %rax
movq %rax, -0x44(%rbp)
leaq -0x68(%rbp), %rdi
xorl %esi, %esi
movl $0x2, %edx
callq 0x59260
jmp 0xa7618
leaq -0x44(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x590b0
movq %rax, -0xa0(%rbp)
jmp 0xa762e
movq -0x70(%rbp), %rdi
movq -0xa0(%rbp), %rax
movq %rax, -0x3c(%rbp)
leaq -0x3c(%rbp), %rsi
callq 0x5de18
jmp 0xa7648
leaq -0x58(%rbp), %rdi
callq 0x5c380
addq $0xa0, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0xa767d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x5c380
movq -0x70(%rbp), %rdi
callq 0x5bd90
movq -0x30(%rbp), %rdi
callq 0x5b6b0
nop
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/hotspot/hotspot.cpp
// Function: smooth::GUI::Hotspot::Show()
S::Int S::GUI::Hotspot::Show()
{
	if (visible) return Success();

	visible = True;

	Process(SM_MOUSEMOVE, 0, 0);

	onShow.Emit();

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
testb $0x1, 0xcb(%rax)
je 0xa91e3
leaq -0x20(%rbp), %rdi
movq %rdi, -0x58(%rbp)
callq 0x5ca80
movq -0x58(%rbp), %rdi
callq 0x59680
movl %eax, -0x4c(%rbp)
jmp 0xa91b8
movl -0x4c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5a410
jmp 0xa9256
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5a410
jmp 0xa925f
movq -0x48(%rbp), %rdi
movb $0x1, 0xcb(%rdi)
movq (%rdi), %rax
movq 0x80(%rax), %rax
movl $0x7800, %esi           # imm = 0x7800
xorl %ecx, %ecx
movl %ecx, %edx
callq *%rax
movq -0x48(%rbp), %rdi
addq $0x1f8, %rdi            # imm = 0x1F8
callq 0x8af60
leaq -0x40(%rbp), %rdi
movq %rdi, -0x68(%rbp)
callq 0x5ca80
movq -0x68(%rbp), %rdi
callq 0x59680
movl %eax, -0x5c(%rbp)
jmp 0xa922e
movl -0x5c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5a410
jmp 0xa9256
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5a410
jmp 0xa925f
movl -0x4(%rbp), %eax
addq $0x70, %rsp
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0x5b6b0
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/hotspot/hotspot.cpp
// Function: smooth::GUI::Hotspot::Hide()
S::Int S::GUI::Hotspot::Hide()
{
	if (!visible) return Success();

	visible = False;

	mouseOver	= False;

	leftButtonDown	= False;
	rightButtonDown	= False;

	onHide.Emit();

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
testb $0x1, 0xcb(%rax)
jne 0xa92d3
leaq -0x20(%rbp), %rdi
movq %rdi, -0x58(%rbp)
callq 0x5ca80
movq -0x58(%rbp), %rdi
callq 0x59680
movl %eax, -0x4c(%rbp)
jmp 0xa92a8
movl -0x4c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5a410
jmp 0xa9342
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5a410
jmp 0xa934b
movq -0x48(%rbp), %rdi
movb $0x0, 0xcb(%rdi)
movb $0x0, 0xd4(%rdi)
movb $0x0, 0xd5(%rdi)
movb $0x0, 0xd6(%rdi)
addq $0x218, %rdi            # imm = 0x218
callq 0x8af60
leaq -0x40(%rbp), %rdi
movq %rdi, -0x68(%rbp)
callq 0x5ca80
movq -0x68(%rbp), %rdi
callq 0x59680
movl %eax, -0x5c(%rbp)
jmp 0xa931a
movl -0x5c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5a410
jmp 0xa9342
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5a410
jmp 0xa934b
movl -0x4(%rbp), %eax
addq $0x70, %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/hotspot/hotspot.cpp
// Function: smooth::GUI::Hotspot::Activate()
S::Int S::GUI::Hotspot::Activate()
{
	active = True;

	Paint(SP_MOUSEOUT);
	Process(SM_MOUSEMOVE, 0, 0);

	onActivate.Emit();

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x38(%rbp)
movb $0x1, 0xcc(%rdi)
movq (%rdi), %rax
movq 0x78(%rax), %rax
movl $0x3, %esi
callq *%rax
movq -0x38(%rbp), %rdi
movq (%rdi), %rax
movq 0x80(%rax), %rax
movl $0x7800, %esi           # imm = 0x7800
xorl %ecx, %ecx
movl %ecx, %edx
callq *%rax
movq -0x38(%rbp), %rdi
addq $0x238, %rdi            # imm = 0x238
callq 0x8af60
leaq -0x18(%rbp), %rdi
movq %rdi, -0x30(%rbp)
callq 0x5ca80
movq -0x30(%rbp), %rdi
callq 0x59680
movl %eax, -0x28(%rbp)
jmp 0xa93cd
leaq -0x18(%rbp), %rdi
callq 0x5a410
movl -0x28(%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
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/hotspot/hotspot.cpp
// Function: smooth::GUI::Hotspot::Deactivate()
S::Int S::GUI::Hotspot::Deactivate()
{
	active = False;

	mouseOver	= False;

	leftButtonDown	= False;
	rightButtonDown	= False;

	mouseDragging	= False;

	onDeactivate.Emit();

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movb $0x0, 0xcc(%rdi)
movb $0x0, 0xd4(%rdi)
movb $0x0, 0xd5(%rdi)
movb $0x0, 0xd6(%rdi)
movb $0x0, 0xd7(%rdi)
addq $0x258, %rdi            # imm = 0x258
callq 0x8af60
leaq -0x18(%rbp), %rdi
movq %rdi, -0x30(%rbp)
callq 0x5ca80
movq -0x30(%rbp), %rdi
callq 0x59680
movl %eax, -0x28(%rbp)
jmp 0xa945a
leaq -0x18(%rbp), %rdi
callq 0x5a410
movl -0x28(%rbp), %eax
addq $0x30, %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 (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/multi/generic/container.cpp
// Function: smooth::GUI::Container::EnableLocking(bool)
S::Int S::GUI::Container::EnableLocking(Bool enable)
{
	if (enable)
	{
		createdEntry.EnableLocking();
		elementOrder.EnableLocking();
	}
	else
	{
		createdEntry.DisableLocking();
		elementOrder.DisableLocking();
	}

	return Widget::EnableLocking(enable);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
andb $0x1, %al
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
testb $0x1, -0x9(%rbp)
je 0xa99f4
movq -0x18(%rbp), %rdi
addq $0x5b8, %rdi            # imm = 0x5B8
callq 0x5b830
movq -0x18(%rbp), %rdi
addq $0x610, %rdi            # imm = 0x610
callq 0x5b830
jmp 0xa9a14
movq -0x18(%rbp), %rdi
addq $0x5b8, %rdi            # imm = 0x5B8
callq 0x5bfb0
movq -0x18(%rbp), %rdi
addq $0x610, %rdi            # imm = 0x610
callq 0x5bfb0
movq -0x18(%rbp), %rdi
movb -0x9(%rbp), %al
andb $0x1, %al
movzbl %al, %esi
callq 0x5db50
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/multi/generic/container.cpp
// Function: smooth::GUI::Container::RemoveAllEntries()
S::Int S::GUI::Container::RemoveAllEntries()
{
	Surface	*surface = GetDrawSurface();
	Bool	 visible = IsVisible();

	if (visible)
	{
		Rect	 frame = Rect(GetRealPosition(), GetRealSize());

		surface->StartPaint(frame);

		Hide();
	}

	while (Length() > 0) Remove(GetNthEntry(Length() - 1));

	if (visible)
	{
		Show();

		surface->EndPaint();
	}

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x60(%rbp)
movq (%rdi), %rax
callq *0x40(%rax)
movq -0x60(%rbp), %rdi
movq %rax, -0x10(%rbp)
movq (%rdi), %rax
callq *0x90(%rax)
andb $0x1, %al
movb %al, -0x11(%rbp)
testb $0x1, -0x11(%rbp)
je 0xa9fea
movq -0x60(%rbp), %rdi
movq (%rdi), %rax
callq *0x48(%rax)
movq -0x60(%rbp), %rdi
movq %rax, -0x2c(%rbp)
movq (%rdi), %rax
callq *0x50(%rax)
movq %rax, -0x34(%rbp)
leaq -0x24(%rbp), %rdi
leaq -0x2c(%rbp), %rsi
leaq -0x34(%rbp), %rdx
callq 0x59ff0
movq -0x10(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x591b0
movq -0x60(%rbp), %rdi
movq (%rdi), %rax
callq *0x60(%rax)
jmp 0xa9fec
movq -0x60(%rbp), %rdi
movq (%rdi), %rax
callq *0x178(%rax)
cmpl $0x0, %eax
jle 0xaa02c
movq -0x60(%rbp), %rdi
movq (%rdi), %rax
callq *0x178(%rax)
movq -0x60(%rbp), %rdi
movl %eax, %esi
subl $0x1, %esi
movq (%rdi), %rax
callq *0x180(%rax)
movq -0x60(%rbp), %rdi
movq %rax, %rsi
movq (%rdi), %rax
callq *0x38(%rax)
jmp 0xa9fec
testb $0x1, -0x11(%rbp)
je 0xaa045
movq -0x60(%rbp), %rdi
movq (%rdi), %rax
callq *0x58(%rax)
movq -0x10(%rbp), %rdi
callq 0x5d270
leaq -0x48(%rbp), %rdi
movq %rdi, -0x70(%rbp)
callq 0x5ca80
movq -0x70(%rbp), %rdi
callq 0x59680
movl %eax, -0x64(%rbp)
jmp 0xaa060
leaq -0x48(%rbp), %rdi
callq 0x5a410
movl -0x64(%rbp), %eax
addq $0x70, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
movq -0x50(%rbp), %rdi
callq 0x5b6b0
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/multi/generic/container.cpp
// Function: smooth::GUI::Container::MoveEntry(int, int)
S::Int S::GUI::Container::MoveEntry(Int n, Int m)
{
	if (n == m)			    return Success();
	if (n >= Length() || m >= Length()) return Error();
	if (n <  0	  || m <  0	  ) return Error();

	elementOrder.MoveNth(n, m);

	onChangeEntryOrder.Emit();

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x70(%rbp)
movl -0x14(%rbp), %eax
cmpl -0x18(%rbp), %eax
jne 0xaa0fe
leaq -0x28(%rbp), %rdi
movq %rdi, -0x80(%rbp)
callq 0x5ca80
movq -0x80(%rbp), %rdi
callq 0x59680
movl %eax, -0x74(%rbp)
jmp 0xaa0d0
movl -0x74(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5a410
jmp 0xaa277
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5a410
jmp 0xaa283
movq -0x70(%rbp), %rdi
movl -0x14(%rbp), %eax
movl %eax, -0x84(%rbp)
movq (%rdi), %rax
callq *0x178(%rax)
movl %eax, %ecx
movl -0x84(%rbp), %eax
cmpl %ecx, %eax
jge 0xaa142
movq -0x70(%rbp), %rdi
movl -0x18(%rbp), %eax
movl %eax, -0x88(%rbp)
movq (%rdi), %rax
callq *0x178(%rax)
movl %eax, %ecx
movl -0x88(%rbp), %eax
cmpl %ecx, %eax
jl 0xaa19c
leaq -0x48(%rbp), %rdi
movq %rdi, -0x98(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
movq -0x98(%rbp), %rdi
callq 0x59680
movl %eax, -0x8c(%rbp)
jmp 0xaa16b
movl -0x8c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5b5b0
jmp 0xaa277
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5b5b0
jmp 0xaa283
cmpl $0x0, -0x14(%rbp)
jl 0xaa1a8
cmpl $0x0, -0x18(%rbp)
jge 0xaa202
leaq -0x58(%rbp), %rdi
movq %rdi, -0xa8(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
movq -0xa8(%rbp), %rdi
callq 0x59680
movl %eax, -0x9c(%rbp)
jmp 0xaa1d1
movl -0x9c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x5b5b0
jmp 0xaa277
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x5b5b0
jmp 0xaa283
movq -0x70(%rbp), %rdi
addq $0x610, %rdi            # imm = 0x610
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
callq 0x61680
movq -0x70(%rbp), %rdi
addq $0x668, %rdi            # imm = 0x668
callq 0x8af60
leaq -0x68(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
callq 0x5ca80
movq -0xb8(%rbp), %rdi
callq 0x59680
movl %eax, -0xac(%rbp)
jmp 0xaa24c
movl -0xac(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x5a410
jmp 0xaa277
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x5a410
jmp 0xaa283
movl -0x4(%rbp), %eax
addq $0xc0, %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/multi/image/imagebox.cpp
// Function: smooth::GUI::ImageBox::OnChangeSize(smooth::GUI::Size const&)
S::Void S::GUI::ImageBox::OnChangeSize(const Size &nSize)
{
	if (scrollbar->IsVisible())
	{
		scrollbar->SetWidth(nSize.cx - 2);
		scrollbar->SetRange(0, GetEntriesWidth() - (GetWidth() - 4));

		scrollbar->SetPageSize(GetWidth() - 4);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
movq 0x6c8(%rax), %rdi
movq (%rdi), %rax
callq *0x90(%rax)
testb $0x1, %al
jne 0xab2fe
jmp 0xab36c
movq -0x18(%rbp), %rax
movq 0x6c8(%rax), %rdi
movq -0x10(%rbp), %rax
movl (%rax), %esi
subl $0x2, %esi
callq 0x5db30
movq -0x18(%rbp), %rdi
movq 0x6c8(%rdi), %rax
movq %rax, -0x28(%rbp)
callq 0x5b200
movq -0x18(%rbp), %rdi
movl %eax, -0x2c(%rbp)
callq 0x5a210
movl -0x2c(%rbp), %edx
movq -0x28(%rbp), %rdi
subl $0x4, %eax
subl %eax, %edx
xorl %esi, %esi
callq 0x599a0
movq -0x18(%rbp), %rdi
movq 0x6c8(%rdi), %rax
movq %rax, -0x20(%rbp)
callq 0x5a210
movq -0x20(%rbp), %rdi
movl %eax, %esi
subl $0x4, %esi
callq 0x5b600
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/multi/image/imagebox.cpp
// Function: smooth::GUI::ImageBox::GetEntriesWidth() const
S::Int S::GUI::ImageBox::GetEntriesWidth() const
{
	Int	 entriesWidth	= 0;

	for (Int i = 0; i < GetNOfObjects(); i++)
	{
		if (GetNthObject(i)->GetObjectType() != ListEntry::classID) continue;

		entriesWidth += GetNthObject(i)->GetWidth();
	}

	return entriesWidth;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
movl $0x0, -0xc(%rbp)
movl $0x0, -0x10(%rbp)
movq -0x18(%rbp), %rdi
movl -0x10(%rbp), %eax
movl %eax, -0x1c(%rbp)
callq 0x5b470
movl %eax, %ecx
movl -0x1c(%rbp), %eax
cmpl %ecx, %eax
jge 0xac12d
movq -0x18(%rbp), %rdi
movl -0x10(%rbp), %esi
callq 0x5c230
movq %rax, %rdi
callq 0x5bb10
movq %rax, %rdi
movq 0x15c4d0(%rip), %rax    # 0x2085c8
movswl (%rax), %esi
callq 0x5da50
testb $0x1, %al
jne 0xac106
jmp 0xac108
jmp 0xac122
movq -0x18(%rbp), %rdi
movl -0x10(%rbp), %esi
callq 0x5c230
movq %rax, %rdi
callq 0x5a210
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0xac0c2
movl -0xc(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/multi/image/imageentry.cpp
// Function: smooth::GUI::ImageEntry::ImageEntry(smooth::GUI::Bitmap const&, smooth::GUI::Size const&)
S::GUI::ImageEntry::ImageEntry(const Bitmap &iBitmap, const Size &iSize) : ListEntry(NIL)
{
	type	= classID;

	SetSize(iSize);

	image	= new Image(iBitmap, Point(2, 2), iSize - Size(4, 4));

	Add(image);

	onChangeSize.Connect(&ImageEntry::OnChangeSize, this);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x78(%rbp)
leaq -0x30(%rbp), %rdi
movq %rdi, -0x70(%rbp)
xorl %esi, %esi
callq 0x5da90
movq -0x78(%rbp), %rdi
movq -0x70(%rbp), %rsi
callq 0x59350
jmp 0xac93d
leaq -0x30(%rbp), %rdi
callq 0x5df00
movq -0x78(%rbp), %rdi
movq 0x15c4b7(%rip), %rax    # 0x208e08
addq $0x10, %rax
movq %rax, (%rdi)
movq 0x15bc91(%rip), %rax    # 0x2085f0
movswl (%rax), %esi
addq $0x20, %rdi
callq 0x5a2e0
jmp 0xac96d
movq -0x78(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x5de18
jmp 0xac97c
movl $0x5c8, %edi            # imm = 0x5C8
callq 0x59820
movq %rax, -0x80(%rbp)
jmp 0xac98c
movq -0x10(%rbp), %rax
movq %rax, -0x88(%rbp)
leaq -0x44(%rbp), %rdi
movl $0x2, %edx
movl %edx, %esi
callq 0x5c2c0
jmp 0xac9a9
movq -0x18(%rbp), %rax
movq %rax, -0x90(%rbp)
leaq -0x54(%rbp), %rdi
movl $0x4, %edx
movl %edx, %esi
callq 0x59260
jmp 0xac9c6
movq -0x90(%rbp), %rdi
leaq -0x54(%rbp), %rsi
callq 0x5db90
movq %rax, -0x98(%rbp)
jmp 0xac9df
movq -0x88(%rbp), %rsi
movq -0x80(%rbp), %rdi
movq -0x98(%rbp), %rax
movq %rax, -0x4c(%rbp)
leaq -0x44(%rbp), %rdx
leaq -0x4c(%rbp), %rcx
callq 0x59b40
jmp 0xaca04
movq -0x78(%rbp), %rdi
movq -0x80(%rbp), %rax
movq %rax, 0x630(%rdi)
movq 0x630(%rdi), %rsi
movq (%rdi), %rax
movq 0x30(%rax), %rax
callq *%rax
jmp 0xaca25
movq -0x78(%rbp), %rcx
movq %rcx, %rdi
addq $0x298, %rdi            # imm = 0x298
movq 0x15ba0e(%rip), %rax    # 0x208448
movq %rax, -0x68(%rbp)
movq $0x0, -0x60(%rbp)
movq -0x68(%rbp), %rsi
movq -0x60(%rbp), %rdx
callq 0xad3d0
jmp 0xaca55
addq $0xa0, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x5df00
jmp 0xacaa6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xaca9d
movq -0x80(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl $0x5c8, %esi            # imm = 0x5C8
callq 0x595b0
movq -0x78(%rbp), %rdi
callq 0x5dba0
movq -0x38(%rbp), %rdi
callq 0x5b6b0
nop
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/multi/list/combobox.cpp
// Function: smooth::GUI::ComboBox::OnSelectEntry(smooth::GUI::ListEntry*)
S::Void S::GUI::ComboBox::OnSelectEntry(ListEntry *entry)
{
	if (listBox != NIL) CloseListBox();

	if (prevSelectedEntry != entry->GetHandle())
	{
		Paint(SP_PAINT);

		if (flags & CB_HOTSPOTONLY) entry->Deselect();

		prevSelectedEntry = entry->GetHandle();
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, 0x6d0(%rax)
je 0xae36b
movq -0x18(%rbp), %rdi
callq 0x5dee8
movq -0x18(%rbp), %rax
movl 0x6e0(%rax), %eax
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rdi
callq 0x5d050
movl %eax, %ecx
movl -0x1c(%rbp), %eax
cmpl %ecx, %eax
je 0xae3c3
movq -0x18(%rbp), %rdi
movq (%rdi), %rax
xorl %esi, %esi
callq *0x78(%rax)
movq -0x18(%rbp), %rax
movl 0x30(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0xae3ae
movq -0x10(%rbp), %rdi
callq 0x5a9a0
movq -0x10(%rbp), %rdi
callq 0x5d050
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x6e0(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/multi/list/list.cpp
// Function: smooth::GUI::List::AddEntry(smooth::String const&, bool)
S::GUI::ListEntry *S::GUI::List::AddEntry(const String &text, Bool marked)
{
	ListEntry	*newEntry = new ListEntry(text);

	newEntry->SetMark(marked);

	if (Add(newEntry) == Success())
	{
		createdEntry.Set(newEntry->GetHandle(), True);

		return newEntry;
	}

	DeleteObject(newEntry);

	return NIL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movb %dl, %al
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
andb $0x1, %al
movb %al, -0x19(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x58(%rbp)
movl $0x630, %edi            # imm = 0x630
callq 0x59820
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rsi
callq 0x5c3a0
jmp 0xb0771
movq -0x50(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
movzbl -0x19(%rbp), %esi
andl $0x1, %esi
callq 0x5dd40
movq -0x58(%rbp), %rdi
movq -0x28(%rbp), %rsi
movq (%rdi), %rax
movq 0x30(%rax), %rax
callq *%rax
movl %eax, -0x6c(%rbp)
leaq -0x48(%rbp), %rdi
movq %rdi, -0x68(%rbp)
callq 0x5ca80
movq -0x68(%rbp), %rdi
callq 0x59680
movl %eax, -0x5c(%rbp)
jmp 0xb07b8
leaq -0x48(%rbp), %rdi
callq 0x5a410
movl -0x5c(%rbp), %ecx
movl -0x6c(%rbp), %eax
cmpl %ecx, %eax
jne 0xb0831
movq -0x58(%rbp), %rax
addq $0x5b8, %rax            # imm = 0x5B8
movq %rax, -0x78(%rbp)
movq -0x28(%rbp), %rdi
callq 0x5d050
movq -0x78(%rbp), %rdi
movl %eax, %esi
leaq 0xd9cbf(%rip), %rdx     # 0x18a4ae
callq 0xb0fa0
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xb0842
movq -0x50(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x630, %esi            # imm = 0x630
callq 0x595b0
jmp 0xb084f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0xb084f
movq -0x28(%rbp), %rdi
callq 0x5d8d0
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x80, %rsp
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x5b6b0
nopl (%rax,%rax)