LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/divider.cpp
// Function: smooth::GUI::Divider::OnMouseDrag(smooth::GUI::Point const&)
S::Void S::GUI::Divider::OnMouseDrag(const Point &mousePos)
{
	Int	 pos = startPos;

	if (Binary::IsFlagSet(flags, OR_VERT))	pos -= (startMousePos.x - mousePos.x);
	else					pos -= (startMousePos.y - mousePos.y);

	if (pos != GetPos()) onDrag.Emit(pos);
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
movl 0x5bc(%rdi), %ebp
movl 0x30(%rdi), %edi
pushq $0x2
popq %rsi
callq 0x596b0
leaq 0x5c4(%rbx), %rcx
leaq 0x5c0(%rbx), %rdx
movl %eax, %esi
xorb $0x1, %sil
testb %al, %al
cmovneq %rdx, %rcx
movzbl %sil, %eax
movl (%r14,%rax,4), %esi
subl (%rcx), %esi
addl %ebp, %esi
cmpl 0x5c8(%rbx), %esi
jne 0x746cc
popq %rbx
popq %r14
popq %rbp
retq
addq $0x5d8, %rbx            # imm = 0x5D8
movq %rbx, %rdi
popq %rbx
popq %r14
popq %rbp
jmp 0x72596
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/divider.cpp
// Function: smooth::GUI::Divider::SetPos(int)
S::Int S::GUI::Divider::SetPos(Int nPosition)
{
	Bool	 prevVisible = IsVisible();

	if (IsRegistered() && prevVisible) Hide();

	position = nPosition;

	if (IsRegistered() && prevVisible) Show();

	return Success();
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movl %esi, %r14d
movq %rdi, %rbx
movq (%rdi), %rax
callq *0x90(%rax)
movl %eax, %ebp
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x88(%rax)
testb %bpl, %bpl
je 0x74797
testb %al, %al
je 0x74797
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x60(%rax)
movl %r14d, 0x5c8(%rbx)
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x88(%rax)
andb %al, %bpl
cmpb $0x1, %bpl
jne 0x747bc
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x58(%rax)
xorl %eax, %eax
popq %rbx
popq %r14
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/divider.cpp
// Function: smooth::GUI::Divider::Paint(int)
S::Int S::GUI::Divider::Paint(Int message)
{
	if (!IsRegistered()) return Error();
	if (!IsVisible())    return Success();

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

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

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

			break;
	}

	return Success();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %esi, %ebp
movq %rdi, %r12
movq (%rdi), %rax
callq *0x88(%rax)
testb %al, %al
je 0x7486e
movq (%r12), %rax
movq %r12, %rdi
callq *0x90(%rax)
xorl %ebx, %ebx
testl %ebp, %ebp
jne 0x7489b
testb %al, %al
je 0x7489b
movq %r12, %rdi
callq 0x56150
movq (%r12), %rax
movq %r12, %rdi
callq *0x40(%rax)
movq %rax, %r14
movq (%r12), %rax
movq %r12, %rdi
callq *0x48(%rax)
movq %rax, %r15
movq (%r12), %rax
movq %r12, %rdi
callq *0x50(%rax)
movq %rax, %r13
movl 0x30(%r12), %edi
pushq $0x2
popq %rsi
callq 0x596b0
testb %al, %al
je 0x74873
shrq $0x20, %r13
movq %r15, %rax
shrq $0x20, %rax
leaq 0x8(%rsp), %rsi
movq %r15, (%rsi)
addl %r13d, %eax
decl %eax
leaq 0x10(%rsp), %rdx
movl %r15d, (%rdx)
movl %eax, 0x4(%rdx)
pushq $0x2
jmp 0x74892
pushq $-0x1
popq %rbx
jmp 0x7489b
leaq 0x8(%rsp), %rsi
movq %r15, (%rsi)
leal (%r15,%r13), %eax
decl %eax
shrq $0x20, %r15
leaq 0x10(%rsp), %rdx
movl %eax, (%rdx)
movl %r15d, 0x4(%rdx)
pushq $0x1
popq %rcx
movq %r14, %rdi
callq 0x5a330
movl %ebx, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/editbox.cpp
// Function: smooth::GUI::EditBox::Paint(int)
S::Int S::GUI::EditBox::Paint(Int message)
{
	if (!IsRegistered()) return Error();
	if (!IsVisible())    return Success();

	switch (message)
	{
		case SP_PAINT:
		{
			Surface	*surface	 = GetDrawSurface();
			Rect	 frame		 = Rect(GetRealPosition(), GetRealSize());
			Color	 backgroundColor = IsActive() ? Setup::ClientColor : Setup::BackgroundColor;

			surface->StartPaint(GetVisibleArea());

			cursor->SetBackgroundColor(backgroundColor);

			surface->Box(frame, backgroundColor, Rect::Filled);
			surface->Frame(frame, FRAME_DOWN);

			Widget::Paint(message);

			surface->EndPaint();

			return Success();
		}
	}

	return Widget::Paint(message);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movl %esi, %ebp
movq %rdi, %rbx
movq (%rdi), %rax
callq *0x88(%rax)
testb %al, %al
je 0x75575
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x90(%rax)
xorl %r15d, %r15d
testb %al, %al
je 0x75579
testl %ebp, %ebp
je 0x7558b
movq %rbx, %rdi
movl %ebp, %esi
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x57910
pushq $-0x1
popq %r15
movl %r15d, %eax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x40(%rax)
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x48(%rax)
movq %rax, %r12
movq %rax, %r13
shrq $0x20, %r13
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x50(%rax)
leal (%rax,%r12), %ecx
shrq $0x20, %rax
leaq 0x28(%rsp), %r15
movl %r12d, (%r15)
movl %r13d, 0x4(%r15)
movl %ecx, 0x8(%r15)
addl %r13d, %eax
movl %eax, 0xc(%r15)
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x98(%rax)
movq 0xec08b(%rip), %rcx     # 0x161670
leaq 0x8(%rcx), %rdx
movq 0xebee0(%rip), %rsi     # 0x1614d0
leaq 0x8(%rsi), %rdi
testb %al, %al
cmovneq %rdx, %rdi
movq (%rdi), %rax
leaq 0x18(%rsp), %r12
cmovneq %rcx, %rsi
movq %rax, 0x8(%r12)
movl (%rsi), %eax
movl %eax, (%r12)
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x130(%rax)
leaq 0x8(%rsp), %r13
movq %rax, (%r13)
movq %rdx, 0x8(%r13)
movq %r14, %rdi
movq %r13, %rsi
callq 0x56160
movq 0x5b8(%rbx), %rdi
movq (%rdi), %rax
movq %r12, %rsi
callq *0x138(%rax)
movq 0xec959(%rip), %rax     # 0x161fa8
movl (%rax), %ecx
andq $0x0, (%r13)
leaq 0x8(%rsp), %r8
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x58b80
pushq $0x1
popq %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x58ad0
xorl %r15d, %r15d
movq %rbx, %rdi
xorl %esi, %esi
callq 0x57910
movq %r14, %rdi
callq 0x59a80
jmp 0x75579
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/editbox.cpp
// Function: smooth::GUI::EditBox::SetDropDownList(smooth::GUI::List*)
S::Int S::GUI::EditBox::SetDropDownList(List *nDropDownList)
{
	Surface	*surface = GetDrawSurface();

	surface->StartPaint(GetVisibleArea());

	if (comboBox != NIL) DeleteObject(comboBox);

	dropDownList = nDropDownList;

	if (dropDownList != NIL)
	{
		comboBox = new ComboBox(Point(), Size());
		comboBox->SetFlags(CB_HOTSPOTONLY);
		comboBox->onSelectEntry.Connect(&EditBox::OnSelectEntry, this);

		for (Int i = 0; i < dropDownList->Length(); i++)
		{
			if (dropDownList->GetNthEntry(i)->GetObjectType() == ListEntrySeparator::classID) comboBox->AddSeparator();
			else										  comboBox->AddEntry(dropDownList->GetNthEntry(i)->GetText());
		}

		Add(comboBox);

		OnChangeSize(GetSize());
	}

	Paint(SP_PAINT);

	surface->EndPaint();

	return Success();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
movq %rsi, %r15
movq %rdi, %rbx
movq (%rdi), %rax
callq *0x40(%rax)
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x130(%rax)
leaq 0x8(%rsp), %rsi
movq %rax, (%rsi)
movq %rdx, 0x8(%rsi)
movq %r14, %rdi
callq 0x56160
movq 0x5c8(%rbx), %rdi
testq %rdi, %rdi
je 0x756de
callq 0x5a010
movq %r15, 0x5c0(%rbx)
testq %r15, %r15
je 0x757e5
movl $0x6f8, %edi            # imm = 0x6F8
callq 0x56700
movq %rax, %r12
leaq 0x8(%rsp), %rsi
andq $0x0, (%rsi)
leaq 0x18(%rsp), %rdx
andq $0x0, (%rdx)
movq %rax, %rdi
callq 0x56690
movq %r12, 0x5c8(%rbx)
movl $0x1, 0x30(%r12)
addq $0x688, %r12            # imm = 0x688
movq 0xebc9d(%rip), %rsi     # 0x1613d0
xorl %r15d, %r15d
movq %r12, %rdi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x75a7c
movq 0xec46e(%rip), %rax     # 0x161bb8
movswl (%rax), %ebp
movq 0x5c0(%rbx), %rdi
movq (%rdi), %rax
callq *0x178(%rax)
cmpl %eax, %r15d
jge 0x757c6
movq 0x5c0(%rbx), %rdi
movq (%rdi), %rax
movl %r15d, %esi
callq *0x180(%rax)
leaq 0x20(%rax), %rdi
movl %ebp, %esi
callq 0x58720
movq 0x5c8(%rbx), %r12
testb %al, %al
je 0x75795
movq %r12, %rdi
callq 0x58540
jmp 0x757c1
movq 0x5c0(%rbx), %rdi
movq (%rdi), %rax
movl %r15d, %esi
callq *0x180(%rax)
movq (%rax), %rcx
movq %rax, %rdi
callq *0xa8(%rcx)
movq %r12, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0x5a300
incl %r15d
jmp 0x7574d
movq 0x5c8(%rbx), %rsi
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x30(%rax)
leaq 0xb0(%rbx), %rsi
movq %rbx, %rdi
callq 0x5a520
movq (%rbx), %rax
movq %rbx, %rdi
xorl %esi, %esi
callq *0x78(%rax)
movq %r14, %rdi
callq 0x59a80
xorl %eax, %eax
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movl $0x6f8, %esi            # imm = 0x6F8
movq %r12, %rdi
callq 0x564c0
movq %rbx, %rdi
callq 0x58260
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/editbox.cpp
// Function: smooth::GUI::EditBox::OnSelectEntry(smooth::GUI::ListEntry*)
S::Void S::GUI::EditBox::OnSelectEntry(ListEntry *entry)
{
	cursor->SetText(entry->GetText());
	cursor->MarkAll();

	onSelectEntry.Emit(entry);
	onInput.Emit(cursor->GetText());
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
movq 0x5b8(%rdi), %r15
movq (%rsi), %rax
movq %rsi, %rdi
callq *0xa8(%rax)
movq (%r15), %rcx
movq %r15, %rdi
movq %rax, %rsi
callq *0xa0(%rcx)
movq 0x5b8(%rbx), %rdi
callq 0x5a540
leaq 0x610(%rbx), %rdi
movq %r14, %rsi
callq 0x75b18
movq 0x5b8(%rbx), %rdi
addq $0x5d0, %rbx            # imm = 0x5D0
movq (%rdi), %rax
callq *0xa8(%rax)
movq %rbx, %rdi
movq %rax, %rsi
popq %rbx
popq %r14
popq %r15
jmp 0x75b8e
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/groupbox.cpp
// Function: smooth::GUI::GroupBox::GroupBox(smooth::String const&, smooth::GUI::Point const&, smooth::GUI::Size const&)
S::GUI::GroupBox::GroupBox(const String &iText, const Point &iPos, const Size &iSize) : Layer(iText)
{
	type	    = classID;
	orientation = OR_UPPERLEFT;

	SetMetrics(iPos, iSize);

	if (GetWidth()	== 0) SetWidth(80);
	if (GetHeight() == 0) SetHeight(80);

	ComputeTextSize();
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rcx, %r14
movq %rdx, %r15
movq %rdi, %rbx
callq 0x57140
movq 0xeb54e(%rip), %rax     # 0x1614e8
addq $0x10, %rax
movq %rax, (%rbx)
movq 0xebd18(%rip), %rax     # 0x161cc0
movzwl (%rax), %eax
movw %ax, 0x20(%rbx)
movw $0x14, 0xd0(%rbx)
movq %rbx, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x58c60
cmpl $0x0, 0xb0(%rbx)
jne 0x75fda
pushq $0x50
popq %rsi
movq %rbx, %rdi
callq 0x5a1f0
cmpl $0x0, 0xb4(%rbx)
jne 0x75fee
pushq $0x50
popq %rsi
movq %rbx, %rdi
callq 0x58980
movq %rbx, %rdi
callq 0x56c30
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %r14
movq %rbx, %rdi
callq 0x58240
movq %r14, %rdi
callq 0x58260
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/groupbox.cpp
// Function: smooth::GUI::GroupBox::Activate()
S::Int S::GUI::GroupBox::Activate()
{
	if (active) return Success();

	active = True;

	Paint(SP_PAINT);

	onActivate.Emit();

	return Success();
}

// Assembly:
cmpb $0x0, 0xcc(%rdi)
jne 0x7634a
pushq %rbx
movq %rdi, %rbx
movb $0x1, 0xcc(%rdi)
movq (%rdi), %rax
xorl %esi, %esi
callq *0x78(%rax)
addq $0x238, %rbx            # imm = 0x238
movq %rbx, %rdi
callq 0x70196
popq %rbx
xorl %eax, %eax
retq
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/groupbox.cpp
// Function: smooth::GUI::GroupBox::Deactivate()
S::Int S::GUI::GroupBox::Deactivate()
{
	if (!active) return Success();

	active = False;

	Paint(SP_PAINT);

	onDeactivate.Emit();

	return Success();
}

// Assembly:
cmpb $0x1, 0xcc(%rdi)
jne 0x7637a
pushq %rbx
movq %rdi, %rbx
movb $0x0, 0xcc(%rdi)
movq (%rdi), %rax
xorl %esi, %esi
callq *0x78(%rax)
addq $0x258, %rbx            # imm = 0x258
movq %rbx, %rdi
callq 0x70196
popq %rbx
xorl %eax, %eax
retq
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/groupbox.cpp
// Function: smooth::GUI::GroupBox::Hide()
S::Int S::GUI::GroupBox::Hide()
{
	if (IsRegistered() && IsVisible())
	{
		Surface	*surface = GetDrawSurface();

		surface->Box(Rect(GetRealPosition() - Point(0, 6) * surface->GetSurfaceDPI() / 96.0, GetRealSize() + Size(0, 6) * surface->GetSurfaceDPI() / 96.0), Setup::BackgroundColor, Rect::Filled);
	}

	return Layer::Hide();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rdi, %rbx
movq (%rdi), %rax
callq *0x88(%rax)
testb %al, %al
je 0x764d8
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x90(%rax)
testb %al, %al
je 0x764d8
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x40(%rax)
movq %rax, %r14
movq %rax, 0x8(%rsp)
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x48(%rax)
movq %rax, %r15
movq %rax, %rbp
shrq $0x20, %rbp
movabsq $0x600000000, %rax      # imm = 0x600000000
leaq 0x30(%rsp), %r12
movq %rax, (%r12)
movq %r14, %rdi
callq 0x59c60
cwtl
cvtsi2sd %eax, %xmm0
movq %r12, %rdi
callq 0x570c0
leaq 0x18(%rsp), %rdi
movq %rax, (%rdi)
movsd 0x6d0de(%rip), %xmm0    # 0xe3510
callq 0x59600
subl %eax, %r15d
shrq $0x20, %rax
subl %eax, %ebp
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x50(%rax)
movq %rax, %r14
movq %rax, %r12
shrq $0x20, %r12
leaq 0x28(%rsp), %r13
movabsq $0x600000000, %rax      # imm = 0x600000000
movq %rax, (%r13)
movq 0x8(%rsp), %rdi
callq 0x59c60
cwtl
cvtsi2sd %eax, %xmm0
movq %r13, %rdi
callq 0x57480
leaq 0x10(%rsp), %rdi
movq %rax, (%rdi)
movsd 0x6d083(%rip), %xmm0    # 0xe3510
callq 0x59050
movq %rax, %rcx
shrq $0x20, %rcx
addl %r14d, %eax
leaq 0x38(%rsp), %rsi
movl %r15d, (%rsi)
movl %ebp, 0x4(%rsi)
addl %r15d, %eax
movl %eax, 0x8(%rsi)
addl %r12d, %ecx
addl %ebp, %ecx
movl %ecx, 0xc(%rsi)
movq 0xebaec(%rip), %rax     # 0x161fa8
movl (%rax), %ecx
leaq 0x20(%rsp), %r8
andq $0x0, (%r8)
movq 0xeb002(%rip), %rdx     # 0x1614d0
movq 0x8(%rsp), %rdi
callq 0x58b80
movq %rbx, %rdi
callq 0x56640
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/hyperlink.cpp
// Function: smooth::GUI::Hyperlink::Hyperlink(smooth::String const&, smooth::String const&, smooth::GUI::Point const&)
S::GUI::Hyperlink::Hyperlink(const String &iText, const String &iLink, const Point &iPos) : Text(iText, iPos, Size())
{
	type	= classID;
	linkURL	= iLink;

	font.SetColor(Setup::LinkColor);

	ComputeTextSize();

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

	hotspot	= new Hotspot(Point(0, 0), GetSize());

	hotspot->onMouseOver.Connect(&Hyperlink::OnMouseOver, this);
	hotspot->onMouseOut.Connect(&Hyperlink::OnMouseOut, this);
	hotspot->onLeftButtonClick.Connect(&Hyperlink::OnClickLink, this);

	Add(hotspot);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x20, %rsp
movq %rdx, %r12
movq %rdi, %rbx
leaq 0x8(%rsp), %rax
andq $0x0, (%rax)
movq %rcx, %rdx
movq %rax, %rcx
callq 0x57330
movq 0xeb20a(%rip), %rax     # 0x161728
addq $0x10, %rax
movq %rax, (%rbx)
leaq 0x5c0(%rbx), %r14
movq %r14, %rdi
xorl %esi, %esi
callq 0x5a180
leaq 0x5d8(%rbx), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x59c80
movq 0xeb10a(%rip), %rax     # 0x161658
movzwl (%rax), %eax
movw %ax, 0x20(%rbx)
movq %r14, %rdi
movq %r12, %rsi
callq 0x56630
leaq 0x140(%rbx), %rdi
movq 0xeb14a(%rip), %rsi     # 0x1616b8
callq 0x59940
movq %rbx, %rdi
callq 0x56c30
leaq 0x188(%rbx), %rdi
movsd 0x6cf86(%rip), %xmm0    # 0xe3510
callq 0x57480
movq %rax, 0x10(%rsp)
leaq 0x18(%rsp), %rdx
andq $0x0, (%rdx)
movq %rsp, %rdi
xorl %esi, %esi
callq 0x58340
movq %rsp, %rdi
callq 0x59c60
cwtl
cvtsi2sd %eax, %xmm0
leaq 0x10(%rsp), %rdi
callq 0x59050
movabsq $0x200000000, %rcx      # imm = 0x200000000
addq %rcx, %rax
leaq 0x8(%rsp), %rdx
movq %rax, (%rdx)
leaq 0xa8(%rbx), %rsi
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x150(%rax)
movq %rsp, %rdi
callq 0x58d90
movl $0x5b8, %edi            # imm = 0x5B8
callq 0x56700
movq %rax, %r13
leaq 0x8(%rsp), %rsi
andq $0x0, (%rsi)
leaq 0xb0(%rbx), %rdx
movq %rax, %rdi
callq 0x56aa0
movq %r13, 0x5e0(%rbx)
addq $0x2b8, %r13            # imm = 0x2B8
movq 0xeae50(%rip), %rsi     # 0x161478
movq %r13, %rdi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x76bcc
movl $0x2d8, %edi            # imm = 0x2D8
addq 0x5e0(%rbx), %rdi
movq 0xeb730(%rip), %rsi     # 0x161d78
xorl %edx, %edx
movq %rbx, %rcx
callq 0x76bcc
movl $0x338, %edi            # imm = 0x338
addq 0x5e0(%rbx), %rdi
movq 0xeb36b(%rip), %rsi     # 0x1619d0
xorl %edx, %edx
movq %rbx, %rcx
callq 0x76c68
movq 0x5e0(%rbx), %rsi
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x30(%rax)
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %r12
movl $0x5b8, %esi            # imm = 0x5B8
movq %r13, %rdi
callq 0x564c0
jmp 0x766bf
jmp 0x766af
jmp 0x766bc
jmp 0x766bc
movq %rax, %r12
jmp 0x766c7
movq %rax, %r12
jmp 0x766cf
movq %rax, %r12
movq %rsp, %rdi
callq 0x58d90
jmp 0x766bf
movq %rax, %r12
movq %r15, %rdi
callq 0x5a4c8
movq %r14, %rdi
callq 0x5a588
movq %rbx, %rdi
callq 0x56f50
movq %r12, %rdi
callq 0x58260
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/hyperlink.cpp
// Function: smooth::GUI::Hyperlink::OnMouseOver()
S::Void S::GUI::Hyperlink::OnMouseOver()
{
	Input::Pointer::SetCursor(container->GetContainerWindow(), Input::Pointer::CursorHand);

	if (linkBitmap == NIL)
	{
		Font	 originalFont = font;

		font.SetColor(Setup::LinkHighlightColor);

		if (Setup::LinkHighlightColor == Setup::LinkColor) font.SetStyle(Font::Underline);

		Text::Paint(SP_PAINT);

		font.SetColor(originalFont.GetColor());
		font.SetStyle(originalFont.GetStyle());
	}
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rdi, %r14
movq 0x190(%rdi), %rdi
callq 0x56a50
pushq $0x2
popq %rsi
movq %rax, %rdi
callq 0x56de0
leaq 0x5d8(%r14), %rdi
xorl %esi, %esi
callq 0x590c0
testb %al, %al
je 0x76794
leaq 0x140(%r14), %rbx
movq %rsp, %rdi
movq %rbx, %rsi
callq 0x56bf0
movq 0xeb80a(%rip), %r15     # 0x161f38
movq %rbx, %rdi
movq %r15, %rsi
callq 0x59940
movq 0x8(%r15), %rax
movq 0xeaf74(%rip), %rcx     # 0x1616b8
cmpq 0x8(%rcx), %rax
jne 0x7675c
movq 0xeb247(%rip), %rax     # 0x161998
movswl (%rax), %esi
movq %rbx, %rdi
callq 0x56580
movq %r14, %rdi
xorl %esi, %esi
callq 0x58d50
movq %rsp, %rdi
callq 0x58750
movq %rbx, %rdi
movq %rax, %rsi
callq 0x59940
movq %rsp, %rdi
callq 0x59b70
movswl %ax, %esi
movq %rbx, %rdi
callq 0x56580
movq %rsp, %rdi
callq 0x57860
addq $0x40, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq %rsp, %rdi
callq 0x57860
movq %rbx, %rdi
callq 0x58260
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/hyperlink.cpp
// Function: smooth::GUI::Hyperlink::Hyperlink(smooth::GUI::Bitmap const&, smooth::String const&, smooth::GUI::Point const&, smooth::GUI::Size const&)
S::GUI::Hyperlink::Hyperlink(const Bitmap &iBitmap, const String &iLink, const Point &iPos, const Size &iSize) : Text(NIL, iPos, Size())
{
	type	= classID;
	linkURL	= iLink;

	SetSize(iSize);
	SetBitmap(iBitmap);

	if (GetSize() == Size(0, 0)) SetSize(linkBitmap.GetSize());

	hotspot	= new Hotspot(Point(0, 0), GetSize());

	hotspot->onMouseOver.Connect(&Hyperlink::OnMouseOver, this);
	hotspot->onMouseOut.Connect(&Hyperlink::OnMouseOut, this);
	hotspot->onLeftButtonClick.Connect(&Hyperlink::OnClickLink, this);

	Add(hotspot);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %r8, %r13
movq %rcx, %r14
movq %rdx, %rbp
movq %rsi, %r12
movq %rdi, %rbx
leaq 0x8(%rsp), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x5a180
leaq 0x20(%rsp), %rcx
andq $0x0, (%rcx)
movq %rbx, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x57330
leaq 0x8(%rsp), %rdi
callq 0x5a588
movq 0xeaec8(%rip), %rax     # 0x161728
addq $0x10, %rax
movq %rax, (%rbx)
leaq 0x5c0(%rbx), %r14
movq %r14, %rdi
xorl %esi, %esi
callq 0x5a180
leaq 0x5d8(%rbx), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x59c80
movq 0xeadc8(%rip), %rax     # 0x161658
movzwl (%rax), %eax
movw %ax, 0x20(%rbx)
movq %r14, %rdi
movq %rbp, %rsi
callq 0x56630
leaq 0xa8(%rbx), %rbp
movq (%rbx), %rax
movq %rbx, %rdi
movq %rbp, %rsi
movq %r13, %rdx
callq *0x150(%rax)
movq %rbx, %rdi
movq %r12, %rsi
callq 0x57760
movl 0xb4(%rbx), %eax
orl 0xb0(%rbx), %eax
jne 0x768ee
movq %r15, %rdi
callq 0x596e0
movq (%rbx), %rcx
movq %rbx, %rdi
movq %rbp, %rsi
movq %rax, %rdx
callq *0x150(%rcx)
movl $0x5b8, %edi            # imm = 0x5B8
callq 0x56700
movq %rax, %r13
leaq 0xb0(%rbx), %rdx
leaq 0x8(%rsp), %rsi
andq $0x0, (%rsi)
movq %rax, %rdi
callq 0x56aa0
movq %r13, 0x5e0(%rbx)
addq $0x2b8, %r13            # imm = 0x2B8
movq 0xeab50(%rip), %rsi     # 0x161478
movq %r13, %rdi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x76bcc
movl $0x2d8, %edi            # imm = 0x2D8
addq 0x5e0(%rbx), %rdi
movq 0xeb430(%rip), %rsi     # 0x161d78
xorl %edx, %edx
movq %rbx, %rcx
callq 0x76bcc
movl $0x338, %edi            # imm = 0x338
addq 0x5e0(%rbx), %rdi
movq 0xeb06b(%rip), %rsi     # 0x1619d0
xorl %edx, %edx
movq %rbx, %rcx
callq 0x76c68
movq 0x5e0(%rbx), %rsi
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x30(%rax)
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r12
movl $0x5b8, %esi            # imm = 0x5B8
movq %r13, %rdi
callq 0x564c0
jmp 0x769bc
movq %rax, %r12
jmp 0x769c4
movq %rax, %r12
jmp 0x769cc
movq %rax, %r12
leaq 0x8(%rsp), %rdi
callq 0x5a588
jmp 0x769d4
movq %rax, %r12
movq %r15, %rdi
callq 0x5a4c8
movq %r14, %rdi
callq 0x5a588
movq %rbx, %rdi
callq 0x56f50
movq %r12, %rdi
callq 0x58260
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/hyperlink.cpp
// Function: smooth::GUI::Hyperlink::Paint(int)
S::Int S::GUI::Hyperlink::Paint(Int message)
{
	if (!IsRegistered()) return Error();
	if (!IsVisible())    return Success();

	switch (message)
	{
		case SP_PAINT:
			if (linkBitmap != NIL)
			{
				Rect	 rect	 = Rect(GetRealPosition(), GetRealSize());
				Surface	*surface = GetDrawSurface();

				surface->BlitFromBitmap(linkBitmap, Rect(Point(0, 0), linkBitmap.GetSize()), rect);
			}

			break;
	}

	return Text::Paint(message);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movl %esi, %ebx
movq %rdi, %r14
movq (%rdi), %rax
callq *0x88(%rax)
testb %al, %al
je 0x76b2e
movq (%r14), %rax
movq %r14, %rdi
callq *0x90(%rax)
movl %eax, %ecx
xorl %eax, %eax
testb %cl, %cl
je 0x76b31
testl %ebx, %ebx
jne 0x76b22
leaq 0x5d8(%r14), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x574f0
testb %al, %al
je 0x76b22
movq (%r14), %rax
movq %r14, %rdi
callq *0x48(%rax)
movq %rax, %r12
movq %rax, %rbp
shrq $0x20, %rbp
movq (%r14), %rax
movq %r14, %rdi
callq *0x50(%rax)
leal (%rax,%r12), %ecx
shrq $0x20, %rax
leaq 0x18(%rsp), %r13
movl %r12d, (%r13)
movl %ebp, 0x4(%r13)
movl %ecx, 0x8(%r13)
addl %ebp, %eax
movl %eax, 0xc(%r13)
movq (%r14), %rax
movq %r14, %rdi
callq *0x40(%rax)
movq %rax, %r12
movq %r15, %rdi
callq 0x596e0
leaq 0x8(%rsp), %rdx
andq $0x0, (%rdx)
movq (%rax), %rax
movq %rax, 0x8(%rdx)
movq %r12, %rdi
movq %r15, %rsi
movq %r13, %rcx
callq 0x56c20
movq %r14, %rdi
movl %ebx, %esi
callq 0x58d50
jmp 0x76b31
pushq $-0x1
popq %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/hyperlink.cpp
// Function: smooth::GUI::Hyperlink::SetText(smooth::String const&)
S::Int S::GUI::Hyperlink::SetText(const String &nText)
{
	if (linkBitmap != NIL) linkBitmap = NIL;

	Text::SetText(nText);

	hotspot->SetSize(GetSize());

	return Success();
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x5d8(%rdi), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x574f0
testb %al, %al
je 0x76b6a
movq %r15, %rdi
xorl %esi, %esi
callq 0x57880
movq %rbx, %rdi
movq %r14, %rsi
callq 0x5a040
movq 0x5e0(%rbx), %rdi
addq $0xb0, %rbx
leaq 0xa8(%rdi), %rsi
movq (%rdi), %rax
movq %rbx, %rdx
callq *0x150(%rax)
xorl %eax, %eax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/image.cpp
// Function: smooth::GUI::Image::SetBitmap(smooth::GUI::Bitmap const&)
S::Int S::GUI::Image::SetBitmap(const Bitmap &newBmp)
{
	if (bitmap == newBmp) return Success();

	Bool	 prevVisible = IsVisible();

	if (prevVisible) Hide();

	bitmap	     = newBmp;
	bitmapScaled = NIL;

	if (GetSize() == Size(0, 0)) SetSize(bitmap.GetSize());

	if (prevVisible) Show();

	return Success();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r15
movq %rdi, %rbx
leaq 0x5b8(%rdi), %r14
movq %r14, %rdi
callq 0x56db0
testb %al, %al
jne 0x76e96
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x90(%rax)
movl %eax, %ebp
testb %al, %al
je 0x76e43
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x60(%rax)
movq %r14, %rdi
movq %r15, %rsi
callq 0x59570
leaq 0x5c0(%rbx), %rdi
xorl %esi, %esi
callq 0x57880
movl 0xb4(%rbx), %eax
orl 0xb0(%rbx), %eax
jne 0x76e88
movq %r14, %rdi
callq 0x596e0
leaq 0xa8(%rbx), %rsi
movq (%rbx), %rcx
movq %rbx, %rdi
movq %rax, %rdx
callq *0x150(%rcx)
testb %bpl, %bpl
je 0x76e96
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x58(%rax)
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/multiedit.cpp
// Function: smooth::GUI::MultiEdit::OnCursorScroll(int, int)
S::Void S::GUI::MultiEdit::OnCursorScroll(Int scrollPos, Int maxScrollPos)
{
	if (maxScrollPos == 0 && scrollbar != NIL)
	{
		DeleteObject(scrollbar);

		scrollbar = NIL;

		cursor->SetWidth(cursor->GetWidth() + 17);

		Paint(SP_PAINT);
	}
	else if (scrollbar == NIL)
	{
		cursor->SetWidth(cursor->GetWidth() - 17);

		scrollbar = new Scrollbar(Point(18, 1), Size(0, GetHeight() - 2), OR_VERT, &scrollbarPos, 0, maxScrollPos);
		scrollbar->onValueChange.Connect(&MultiEdit::OnScroll, this);
		scrollbar->SetOrientation(OR_UPPERRIGHT);
		scrollbar->SetAlwaysActive(True);

		Add(scrollbar);

		Paint(SP_PAINT);
	}
	else
	{
		scrollbar->SetRange(0, maxScrollPos);
		scrollbar->SetValue(scrollPos);
	}
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x20, %rsp
movl %edx, %ebp
movq %rdi, %rbx
movq 0x5c0(%rdi), %rdi
testl %edx, %edx
je 0x77422
testq %rdi, %rdi
je 0x7745f
movl %esi, %r14d
xorl %esi, %esi
movl %ebp, %edx
callq 0x56840
movq 0x5c0(%rbx), %rdi
movl %r14d, %esi
addq $0x20, %rsp
popq %rbx
popq %r14
popq %rbp
jmp 0x58130
testq %rdi, %rdi
je 0x7745f
callq 0x5a010
andq $0x0, 0x5c0(%rbx)
movq 0x5b8(%rbx), %rdi
movl 0xb0(%rdi), %esi
addl $0x11, %esi
callq 0x5a1f0
movq (%rbx), %rax
movq 0x78(%rax), %rax
movq %rbx, %rdi
xorl %esi, %esi
addq $0x20, %rsp
popq %rbx
popq %r14
popq %rbp
jmpq *%rax
movq 0x5b8(%rbx), %rdi
movl 0xb0(%rdi), %esi
addl $-0x11, %esi
callq 0x5a1f0
movl $0x668, %edi            # imm = 0x668
callq 0x56700
movabsq $0x100000012, %rcx      # imm = 0x100000012
leaq 0x18(%rsp), %rsi
movq %rcx, (%rsi)
movl 0xb4(%rbx), %ecx
leaq 0x10(%rsp), %rdx
andl $0x0, (%rdx)
movq %rax, %r14
addl $-0x2, %ecx
movl %ecx, 0x4(%rdx)
leaq 0x5c8(%rbx), %r8
movl %ebp, (%rsp)
pushq $0x2
popq %rcx
movq %rax, %rdi
xorl %r9d, %r9d
callq 0x579c0
movq %r14, 0x5c0(%rbx)
addq $0x618, %r14            # imm = 0x618
movq 0xea43c(%rip), %rsi     # 0x161910
movq %r14, %rdi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x77c90
movq 0x5c0(%rbx), %rdi
movq (%rdi), %rax
pushq $0x24
popq %rsi
callq *0x120(%rax)
movq 0x5c0(%rbx), %rsi
movb $0x1, 0xce(%rsi)
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x30(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
xorl %esi, %esi
callq *0x78(%rax)
addq $0x20, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %rbx
movl $0x668, %esi            # imm = 0x668
movq %r14, %rdi
callq 0x564c0
movq %rbx, %rdi
callq 0x58260
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/multiedit.cpp
// Function: smooth::GUI::MultiEdit::GetNOfLines()
S::Int S::GUI::MultiEdit::GetNOfLines()
{
	Int	 lines	= 1;
	Int	 length = text.Length();

	for (Int i = 0; i < length; i++)
	{
		if (text[i] == '\n') lines++;
	}

	return lines;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
addq $0xf0, %rbx
movq %rbx, %rdi
callq 0x58370
movl %eax, %ebp
xorl %r14d, %r14d
testl %eax, %eax
cmovlel %r14d, %ebp
pushq $0x1
popq %r15
cmpl %r14d, %ebp
je 0x77a54
movq %rbx, %rdi
movl %r14d, %esi
callq 0x59cc0
xorl %ecx, %ecx
cmpl $0xa, (%rax)
sete %cl
addl %ecx, %r15d
incl %r14d
jmp 0x77a34
movl %r15d, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/multiedit.cpp
// Function: smooth::GUI::MultiEdit::SetText(smooth::String const&)
S::Int S::GUI::MultiEdit::SetText(const String &newText)
{
	scrollbarPos = 0;

	cursor->SetVisibleDirect(False);
	cursor->SetText(newText);
	cursor->SetVisibleDirect(True);

	if (IsVisible()) Paint(SP_PAINT);

	return Success();
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
andl $0x0, 0x5c8(%rdi)
movq 0x5b8(%rdi), %rdi
movb $0x0, 0xcb(%rdi)
movq (%rdi), %rax
callq *0xa0(%rax)
movq 0x5b8(%rbx), %rax
movb $0x1, 0xcb(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x90(%rax)
testb %al, %al
je 0x77b3d
movq (%rbx), %rax
movq %rbx, %rdi
xorl %esi, %esi
callq *0x78(%rax)
xorl %eax, %eax
popq %rbx
retq
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/optionbox.cpp
// Function: smooth::GUI::OptionBox::OptionBox(smooth::String const&, smooth::GUI::Point const&, smooth::GUI::Size const&, int*, int)
S::GUI::OptionBox::OptionBox(const String &iText, const Point &iPos, const Size &iSize, Int *var, Int iCode) : Widget(iPos, iSize)
{
	type		= classID;
	text		= iText;
	variable	= var;
	code		= iCode;

	if (*variable == code)	state = True;
	else			state = False;

	if (GetWidth() == 0) SetWidth(80);
	if (GetHeight() == 0) SetHeight(17);

	ComputeTextSize();

	internalCheckValues.Connect(&OptionBox::InternalCheckValues, this);

	hotspot	= new HotspotSimpleButton(Point(0, 0), GetSize());
	hotspot->onLeftButtonClick.Connect(&OptionBox::OnLeftButtonClick, this);
	hotspot->onLeftButtonClick.Connect(&onAction);

	onChangeSize.Connect(&HotspotSimpleButton::SetSize, hotspot);

	Add(hotspot);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movl %r9d, %ebp
movq %r8, %r14
movq %rsi, %r15
movq %rdi, %rbx
movq %rdx, %rsi
movq %rcx, %rdx
callq 0x58c80
movq 0xea0bb(%rip), %rax     # 0x161f50
addq $0x10, %rax
movq %rax, (%rbx)
movq 0xe98f5(%rip), %rax     # 0x161798
movzwl (%rax), %eax
movw %ax, 0x20(%rbx)
leaq 0xf0(%rbx), %rdi
movq %r15, %rsi
callq 0x56630
movq %r14, 0x5b8(%rbx)
movl %ebp, 0x5c0(%rbx)
cmpl %ebp, (%r14)
sete 0x5c4(%rbx)
cmpl $0x0, 0xb0(%rbx)
jne 0x77ee4
pushq $0x50
popq %rsi
movq %rbx, %rdi
callq 0x5a1f0
cmpl $0x0, 0xb4(%rbx)
jne 0x77ef8
pushq $0x11
popq %rsi
movq %rbx, %rdi
callq 0x58980
movq %rbx, %rdi
callq 0x56c30
movq 0xe9b69(%rip), %rdi     # 0x161a70
movq 0xe945a(%rip), %rsi     # 0x161368
xorl %edx, %edx
movq %rbx, %rcx
callq 0x787e2
movl $0x5b8, %edi            # imm = 0x5B8
callq 0x56700
movq %rax, %r14
leaq 0xb0(%rbx), %rdx
movq %rsp, %rsi
andq $0x0, (%rsi)
movq %rax, %rdi
callq 0x56ad0
movq %r14, 0x5c8(%rbx)
addq $0x338, %r14            # imm = 0x338
movq 0xe9920(%rip), %rsi     # 0x161870
movq %r14, %rdi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x7887e
movl $0x338, %edi            # imm = 0x338
addq 0x5c8(%rbx), %rdi
leaq 0x478(%rbx), %rsi
callq 0x71412
leaq 0x298(%rbx), %rdi
movq 0x5c8(%rbx), %rcx
movq 0xe958e(%rip), %rsi     # 0x161518
xorl %edx, %edx
callq 0x73d76
movq 0x5c8(%rbx), %rsi
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x30(%rax)
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r15
movl $0x5b8, %esi            # imm = 0x5B8
movq %r14, %rdi
callq 0x564c0
jmp 0x77fc1
movq %rax, %r15
movq %rbx, %rdi
callq 0x58860
movq %r15, %rdi
callq 0x58260
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/progressbar.cpp
// Function: smooth::GUI::Progressbar::Progressbar(smooth::GUI::Point const&, smooth::GUI::Size const&, int, int, int, int, int)
S::GUI::Progressbar::Progressbar(const Point &iPos, const Size &iSize, Int sType, Int iTextFlag, Int rangeStart, Int rangeEnd, Int iValue) : Widget(iPos, iSize)
{
	type		  = classID;
	subtype		  = sType;

	startValue	  = rangeStart;
	endValue	  = rangeEnd;

	value		  = startValue;

	gradientDirection = 0;

	SetFlags(iTextFlag);
	SetValue(iValue);

	font.SetColor(Setup::ClientTextColor);

	if (GetWidth() == 0) SetWidth(subtype == OR_VERT ? 19 : 80);
	if (GetHeight() == 0) SetHeight(subtype == OR_VERT ? 80 : 19);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movl %r9d, %r15d
movl %r8d, %ebp
movl %ecx, %r12d
movq %rdi, %rbx
callq 0x58c80
movq 0xe8fa4(%rip), %rax     # 0x1619b0
addq $0x10, %rax
movq %rax, (%rbx)
leaq 0x5b8(%rbx), %r14
movq %r14, %rdi
xorl %esi, %esi
callq 0x59c80
movl 0x38(%rsp), %esi
movl 0x30(%rsp), %eax
movq 0xe8dd5(%rip), %rcx     # 0x161808
movzwl (%rcx), %ecx
movw %cx, 0x20(%rbx)
movw %r12w, 0x1a0(%rbx)
movl %r15d, 0x5c8(%rbx)
movl %eax, 0x5cc(%rbx)
movl %r15d, 0x5c4(%rbx)
movb $0x0, 0x5c0(%rbx)
movl %ebp, 0x30(%rbx)
movq %rbx, %rdi
callq 0x59af0
leaq 0x140(%rbx), %rdi
movq 0xe937a(%rip), %rsi     # 0x161df0
callq 0x59940
cmpl $0x0, 0xb0(%rbx)
pushq $0x13
popq %rbp
pushq $0x50
popq %r15
jne 0x78aa1
cmpw $0x2, 0x1a0(%rbx)
movl %r15d, %esi
cmovel %ebp, %esi
movq %rbx, %rdi
callq 0x5a1f0
cmpl $0x0, 0xb4(%rbx)
jne 0x78ac0
cmpw $0x2, 0x1a0(%rbx)
cmovel %r15d, %ebp
movq %rbx, %rdi
movl %ebp, %esi
callq 0x58980
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r15
jmp 0x78ad9
movq %rax, %r15
movq %r14, %rdi
callq 0x5a4c8
movq %rbx, %rdi
callq 0x58860
movq %r15, %rdi
callq 0x58260
nop
// File: /workspace/github_c_makefile_star2_O2/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
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x660(%rdi), %rdi
cmpb $0x0, 0xd4(%rdi)
jne 0x798a8
cmpw $0x1, 0x1a0(%rbx)
jne 0x7982c
movl (%rsi), %r14d
movq (%rdi), %rax
callq *0x48(%rax)
jmp 0x7983a
movl 0x4(%rsi), %r14d
movq (%rdi), %rax
callq *0x48(%rax)
shrq $0x20, %rax
movl 0x654(%rbx), %ecx
movl %ecx, %ebp
negl %ebp
cmpl %eax, %r14d
cmovgel %ecx, %ebp
movq 0x648(%rbx), %rdi
callq 0x59df0
testw %ax, %ax
je 0x79863
movl 0x650(%rbx), %ecx
jmp 0x79888
movq 0x648(%rbx), %rdi
movl $0xfa, %esi
callq 0x56100
xorl %eax, %eax
testl %ebp, %ebp
setg %al
leal -0x1(,%rax,2), %ecx
movl %ecx, 0x650(%rbx)
movl %ebp, %eax
cltd
idivl %ecx
testl %eax, %eax
js 0x798a8
movq 0x5d0(%rbx), %rax
addl (%rax), %ebp
movq %rbx, %rdi
movl %ebp, %esi
popq %rbx
popq %r14
popq %rbp
jmp 0x58130
popq %rbx
popq %r14
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/scrollbar.cpp
// Function: smooth::GUI::Scrollbar::OnMouseDrag(smooth::GUI::Point const&)
S::Void S::GUI::Scrollbar::OnMouseDrag(const Point &mousePos)
{
	Point	 realPos  = GetRealPosition();
	Size	 realSize = GetRealSize();

	Int	 value = 0;

	Surface	*surface	= GetDrawSurface();

	Bool	 smallHotspots	= (subtype == OR_HORZ && (GetWidth() <= 55)) || (subtype == OR_VERT && (GetHeight() <= 55));
	Int	 hotspotSize	= Math::Round((smallHotspots ? 10 : (subtype == OR_HORZ ? GetHeight() : GetWidth())) * surface->GetSurfaceDPI() / 96.0) - 4;

	if (subtype == OR_HORZ)	value = Math::Round((((Float) (endValue - startValue)) / ((Float) realSize.cx - 3 * (hotspotSize + 4))) * ((Float) (mousePos.x - clickOffset - (realPos.x + hotspotSize + 4))));
	else			value = Math::Round((((Float) (endValue - startValue)) / ((Float) realSize.cy - 3 * (hotspotSize + 4))) * ((Float) (mousePos.y - clickOffset - (realPos.y + hotspotSize + 4))));

	SetValue(startValue + value);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movq (%rdi), %rax
callq *0x48(%rax)
movq %rax, %r15
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x50(%rax)
movq %rax, %r12
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x40(%rax)
movzwl 0x1a0(%rbx), %ecx
cmpl $0x2, %ecx
movq %r14, (%rsp)
je 0x79950
cmpl $0x1, %ecx
jne 0x7995f
cmpl $0x38, 0xb0(%rbx)
jl 0x79959
movl 0xb4(%rbx), %r14d
jmp 0x79966
cmpl $0x38, 0xb4(%rbx)
jge 0x7995f
pushq $0xa
popq %r14
jmp 0x79966
movl 0xb0(%rbx), %r14d
movq %r12, %rbp
shrq $0x20, %rbp
movq %r15, %r13
shrq $0x20, %r13
movq %rax, %rdi
callq 0x59c60
movl 0x5dc(%rbx), %edx
movl 0x5d8(%rbx), %ecx
subl %ecx, %edx
movswl %ax, %esi
imull %r14d, %esi
xorl %eax, %eax
cmpw $0x1, 0x1a0(%rbx)
cvtsi2sd %edx, %xmm1
cvtsi2sd %esi, %xmm4
divsd 0x69b65(%rip), %xmm4    # 0xe3510
xorpd %xmm2, %xmm2
movapd %xmm4, %xmm5
cmpltsd %xmm2, %xmm5
movsd 0x699b8(%rip), %xmm0    # 0xe3378
movapd %xmm5, %xmm6
andpd %xmm0, %xmm6
movsd 0x699b0(%rip), %xmm3    # 0xe3380
andnpd %xmm3, %xmm5
orpd %xmm6, %xmm5
addsd %xmm4, %xmm5
cvttsd2si %xmm5, %rdx
setne %al
leal (%rdx,%rdx,2), %esi
cvtsi2sd %esi, %xmm4
cmovel %r12d, %ebp
cvtsi2sd %ebp, %xmm5
subsd %xmm4, %xmm5
divsd %xmm5, %xmm1
cmovel %r15d, %r13d
movq (%rsp), %rsi
movl (%rsi,%rax,4), %eax
addl %edx, %r13d
addl 0x63c(%rbx), %r13d
subl %r13d, %eax
cvtsi2sd %eax, %xmm4
mulsd %xmm1, %xmm4
movapd %xmm4, %xmm1
cmpltsd %xmm2, %xmm1
andpd %xmm1, %xmm0
andnpd %xmm3, %xmm1
orpd %xmm0, %xmm1
addsd %xmm4, %xmm1
cvttsd2si %xmm1, %rsi
addl %ecx, %esi
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x58130
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/basic/scrollbar.cpp
// Function: smooth::GUI::Scrollbar::OnMouseWheel(double)
S::Void S::GUI::Scrollbar::OnMouseWheel(Float value)
{
	if (subtype != OR_VERT) return;

	Window	*window	= container->GetContainerWindow();

	if (IsMouseOver() || window->IsMouseOn(Rect(container->GetRealPosition(), container->GetRealSize())))
	{
		Surface	*surface = GetDrawSurface();

		surface->StartPaint(container->GetVisibleArea());

		/* Reset spill value upon scroll direction change.
		 */
		if (Math::Sign(value) != Math::Sign(scrollSpill)) scrollSpill = 0;

		/* Update scroll position value.
		 */
		Int	 amount = (value + scrollSpill) * stepSize;

		SetValue(*variable - amount);

		scrollSpill += value - (Float(amount) / stepSize);

		/* Send an event to update widget under cursor if necessary.
		 */
		container->Process(SM_MOUSEMOVE, 0, 0);

		surface->EndPaint();
	}
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x38, %rsp
movapd %xmm0, (%rsp)
cmpw $0x2, 0x1a0(%rdi)
jne 0x79bf4
movq %rdi, %rbx
movq 0x190(%rdi), %rdi
callq 0x56a50
cmpb $0x0, 0xd4(%rbx)
jne 0x79ae8
movq %rax, %r14
movq 0x190(%rbx), %rdi
movq (%rdi), %rax
callq *0x48(%rax)
movq %rax, %r15
movq %rax, %r12
shrq $0x20, %r12
movq 0x190(%rbx), %rdi
movq (%rdi), %rax
callq *0x50(%rax)
leal (%rax,%r15), %ecx
shrq $0x20, %rax
leaq 0x28(%rsp), %rsi
movl %r15d, (%rsi)
movl %r12d, 0x4(%rsi)
movl %ecx, 0x8(%rsi)
addl %r12d, %eax
movl %eax, 0xc(%rsi)
movq %r14, %rdi
callq 0x58ae0
testb %al, %al
je 0x79bf4
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x40(%rax)
movq %rax, %r14
movq 0x190(%rbx), %rdi
movq (%rdi), %rax
callq *0x130(%rax)
leaq 0x28(%rsp), %rsi
movq %rax, (%rsi)
movq %rdx, 0x8(%rsi)
movq %r14, %rdi
callq 0x56160
movsd 0x640(%rbx), %xmm0
movapd (%rsp), %xmm1
unpcklpd %xmm0, %xmm1            # xmm1 = xmm1[0],xmm0[0]
xorpd %xmm2, %xmm2
movapd %xmm1, %xmm3
cmpltpd %xmm2, %xmm3
movapd %xmm3, %xmm4
andnpd 0x6c51e(%rip), %xmm4    # 0xe6060
andpd 0x69966(%rip), %xmm3    # 0xe34b0
orpd %xmm4, %xmm3
cmpneqpd %xmm2, %xmm1
andpd %xmm3, %xmm1
pshufd $0xee, %xmm1, %xmm2     # xmm2 = xmm1[2,3,2,3]
ucomisd %xmm2, %xmm1
jne 0x79b64
jnp 0x79b70
andq $0x0, 0x640(%rbx)
xorpd %xmm0, %xmm0
movl 0x5e0(%rbx), %eax
cvtsi2sd %rax, %xmm1
addsd (%rsp), %xmm0
mulsd %xmm0, %xmm1
movapd %xmm1, 0x10(%rsp)
cvttsd2si %xmm1, %eax
movq 0x5d0(%rbx), %rcx
movl (%rcx), %esi
subl %eax, %esi
movq %rbx, %rdi
callq 0x58130
cvttpd2dq 0x10(%rsp), %xmm0
cvtdq2pd %xmm0, %xmm0
movl 0x5e0(%rbx), %eax
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
movapd (%rsp), %xmm1
subsd %xmm0, %xmm1
addsd 0x640(%rbx), %xmm1
movsd %xmm1, 0x640(%rbx)
movq 0x190(%rbx), %rdi
movq (%rdi), %rax
movl $0x7800, %esi           # imm = 0x7800
xorl %edx, %edx
xorl %ecx, %ecx
callq *0x80(%rax)
movq %r14, %rdi
callq 0x59a80
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/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 %r15
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
movq (%rdi), %rax
callq *0x48(%rax)
movq %rax, %r15
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x50(%rax)
cmpw $0x1, 0x1a0(%rbx)
movb 0x5c4(%rbx), %cl
jne 0x7afef
testb %cl, %cl
jne 0x7aff3
movl 0x5dc(%rbx), %edx
movl 0x5c8(%rbx), %ecx
movl 0x5d8(%rbx), %edi
subl %edi, %edx
cvtsi2sd %edx, %xmm0
cvtsi2sd %eax, %xmm1
cvtsi2sd %ecx, %xmm2
subsd %xmm2, %xmm1
pushq $-0x2
popq %rsi
movl %ecx, %eax
cltd
idivl %esi
subl %r15d, %eax
addl (%r14), %eax
cvtsi2sd %eax, %xmm2
divsd %xmm2, %xmm1
divsd %xmm1, %xmm0
xorpd %xmm1, %xmm1
xorl %eax, %eax
ucomisd %xmm0, %xmm1
seta %al
leaq 0x6898f(%rip), %rcx     # 0xe3970
addsd (%rcx,%rax,8), %xmm0
cvttsd2si %xmm0, %rsi
addl %edi, %esi
jmp 0x7b060
testb %cl, %cl
je 0x7aff9
popq %rbx
popq %r14
popq %r15
retq
movl 0x5dc(%rbx), %esi
movl %esi, %edx
subl 0x5d8(%rbx), %edx
movl 0x5c8(%rbx), %ecx
cvtsi2sd %edx, %xmm0
shrq $0x20, %rax
cvtsi2sd %eax, %xmm1
cvtsi2sd %ecx, %xmm2
subsd %xmm2, %xmm1
pushq $-0x2
popq %rdi
movl %ecx, %eax
cltd
idivl %edi
shrq $0x20, %r15
subl %r15d, %eax
addl 0x4(%r14), %eax
cvtsi2sd %eax, %xmm2
divsd %xmm2, %xmm1
divsd %xmm1, %xmm0
xorpd %xmm1, %xmm1
xorl %eax, %eax
ucomisd %xmm0, %xmm1
seta %al
leaq 0x6891c(%rip), %rcx     # 0xe3970
addsd (%rcx,%rax,8), %xmm0
cvttsd2si %xmm0, %rax
subl %eax, %esi
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0x56270
nop
// File: /workspace/github_c_makefile_star2_O2/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 %r15
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
movq (%rdi), %rax
callq *0x48(%rax)
movq %rax, %r15
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x50(%rax)
movq %rax, %rcx
cmpw $0x1, 0x1a0(%rbx)
jne 0x7b0e3
movl 0x5c8(%rbx), %eax
subl %eax, %ecx
cvtsi2sd %ecx, %xmm0
movl 0x5dc(%rbx), %ecx
movl 0x5d8(%rbx), %edx
subl %edx, %ecx
cvtsi2sd %ecx, %xmm1
divsd %xmm1, %xmm0
movq 0x5d0(%rbx), %rcx
movl (%rcx), %ecx
subl %edx, %ecx
cvtsi2sd %ecx, %xmm1
mulsd %xmm0, %xmm1
cvttsd2si %xmm1, %esi
pushq $0x2
popq %rcx
cltd
idivl %ecx
movl %eax, %ecx
addl %r15d, %ecx
subl (%r14), %ecx
addl %esi, %ecx
jmp 0x7b135
shrq $0x20, %rcx
movl 0x5c8(%rbx), %eax
subl %eax, %ecx
cvtsi2sd %ecx, %xmm0
movl 0x5dc(%rbx), %edx
movl 0x5d8(%rbx), %esi
subl %esi, %edx
cvtsi2sd %edx, %xmm1
shrq $0x20, %r15
divsd %xmm1, %xmm0
movq 0x5d0(%rbx), %rdx
movl (%rdx), %edx
subl %esi, %edx
cvtsi2sd %edx, %xmm1
mulsd %xmm0, %xmm1
cvttsd2si %xmm1, %esi
pushq $0x2
popq %rdi
cltd
idivl %edi
addl %r15d, %ecx
addl %eax, %ecx
addl 0x4(%r14), %esi
subl %esi, %ecx
movl %ecx, 0x5c0(%rbx)
movb $0x1, 0x5c4(%rbx)
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/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 %r15
pushq %r14
pushq %rbx
movq %rsi, %r15
movq %rdi, %rbx
movq (%rdi), %rax
callq *0x48(%rax)
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x50(%rax)
cmpw $0x1, 0x1a0(%rbx)
jne 0x7b1dc
movl 0x5dc(%rbx), %edx
movl 0x5d8(%rbx), %ecx
subl %ecx, %edx
cvtsi2sd %edx, %xmm0
cvtsi2sd %eax, %xmm1
movl 0x5c8(%rbx), %eax
cvtsi2sd %eax, %xmm2
subsd %xmm2, %xmm1
movl (%r15), %esi
pushq $-0x2
popq %rdi
cltd
idivl %edi
subl %r14d, %esi
addl %eax, %esi
addl 0x5c0(%rbx), %esi
cvtsi2sd %esi, %xmm2
divsd %xmm2, %xmm1
divsd %xmm1, %xmm0
xorpd %xmm1, %xmm1
xorl %eax, %eax
ucomisd %xmm0, %xmm1
seta %al
leaq 0x687a9(%rip), %rdx     # 0xe3970
addsd (%rdx,%rax,8), %xmm0
cvttsd2si %xmm0, %rsi
movb $0x0, 0x5c4(%rbx)
addl %ecx, %esi
jmp 0x7b250
shrq $0x20, %rax
shrq $0x20, %r14
movl 0x5dc(%rbx), %esi
movl %esi, %ecx
subl 0x5d8(%rbx), %ecx
cvtsi2sd %ecx, %xmm0
cvtsi2sd %eax, %xmm1
movl 0x5c8(%rbx), %eax
cvtsi2sd %eax, %xmm2
subsd %xmm2, %xmm1
movl 0x4(%r15), %ecx
pushq $-0x2
popq %rdi
cltd
idivl %edi
subl %r14d, %ecx
addl %eax, %ecx
addl 0x5c0(%rbx), %ecx
cvtsi2sd %ecx, %xmm2
divsd %xmm2, %xmm1
divsd %xmm1, %xmm0
xorpd %xmm1, %xmm1
xorl %eax, %eax
ucomisd %xmm0, %xmm1
seta %al
leaq 0x68733(%rip), %rcx     # 0xe3970
addsd (%rcx,%rax,8), %xmm0
cvttsd2si %xmm0, %rax
movb $0x0, 0x5c4(%rbx)
subl %eax, %esi
movq %rbx, %rdi
callq 0x56270
movb $0x1, 0x5c4(%rbx)
popq %rbx
popq %r14
popq %r15
retq
nop