LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O1/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)
movzwl 0x1a0(%rbx), %ecx
cmpw $0x1, %cx
jne 0x7cc0e
movl 0x5dc(%rbx), %esi
subl 0x5d8(%rbx), %esi
cvtsi2sd %eax, %xmm0
movl 0x5c8(%rbx), %edx
cvtsi2sd %edx, %xmm1
subsd %xmm1, %xmm0
jmp 0x7cc38
shrq $0x20, %rax
shrq $0x20, %r14
movl 0x5c8(%rbx), %edx
movl 0x5dc(%rbx), %esi
subl 0x5d8(%rbx), %esi
cvtsi2sd %eax, %xmm0
cvtsi2sd %edx, %xmm1
subsd %xmm1, %xmm0
addq $0x4, %r15
xorps %xmm1, %xmm1
cvtsi2sd %esi, %xmm1
movl (%r15), %eax
movl %edx, %esi
shrl $0x1f, %esi
addl %edx, %esi
sarl %esi
subl %r14d, %eax
subl %esi, %eax
addl 0x5c0(%rbx), %eax
cvtsi2sd %eax, %xmm2
divsd %xmm2, %xmm0
divsd %xmm0, %xmm1
xorpd %xmm0, %xmm0
xorl %eax, %eax
ucomisd %xmm1, %xmm0
seta %al
leaq 0x77b1a(%rip), %rdx     # 0xf4790
addsd (%rdx,%rax,8), %xmm1
cvttsd2si %xmm1, %rsi
movl 0x5dc(%rbx), %eax
subl %esi, %eax
addl 0x5d8(%rbx), %esi
cmpw $0x1, %cx
movb $0x0, 0x5c4(%rbx)
cmovnel %eax, %esi
movq %rbx, %rdi
callq 0x55250
movb $0x1, 0x5c4(%rbx)
popq %rbx
popq %r14
popq %r15
retq
nop
// File: /workspace/github_c_makefile_star2_O1/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
pushq %r14
pushq %rbx
movq 0x5d0(%rdi), %rax
movl 0x5d8(%rdi), %ecx
cmpl %ecx, %esi
cmovgl %esi, %ecx
movl 0x5dc(%rdi), %edx
cmpl %edx, %ecx
cmovgel %edx, %ecx
movl (%rax), %ebp
movl %ecx, (%rax)
cmpl 0x5bc(%rdi), %ecx
je 0x7ce96
movq %rdi, %rbx
cmpb $0x0, 0x5c4(%rdi)
jne 0x7ce81
movq 0x5e8(%rbx), %rax
movq 0xa8(%rax), %r14
movq %rbx, %rdi
callq 0x591f8
movq 0x5e8(%rbx), %rax
cmpl %r14d, 0xa8(%rax)
jne 0x7ce76
shrq $0x20, %r14
cmpl %r14d, 0xac(%rax)
je 0x7ce81
movq (%rbx), %rax
movq %rbx, %rdi
xorl %esi, %esi
callq *0x78(%rax)
movq 0x5d0(%rbx), %rax
movl (%rax), %ecx
movl %ecx, 0x5bc(%rbx)
movl (%rax), %esi
cmpl %ebp, %esi
jne 0x7ce9b
popq %rbx
popq %r14
popq %rbp
retq
addq $0x5f0, %rbx            # imm = 0x5F0
movq %rbx, %rdi
popq %rbx
popq %r14
popq %rbp
jmp 0x72dc0
// File: /workspace/github_c_makefile_star2_O1/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 %rbx
movq %rdi, %rbx
cmpl %esi, 0x5d8(%rdi)
jne 0x7d464
cmpl %edx, 0x5dc(%rbx)
je 0x7d498
movl %esi, 0x5d8(%rbx)
movl %edx, 0x5dc(%rbx)
movq 0x5d0(%rbx), %rax
movl (%rax), %ecx
cmpl %esi, %ecx
cmovgl %ecx, %esi
cmpl %edx, %esi
cmovgel %edx, %esi
movl %esi, (%rax)
movq (%rbx), %rax
movq %rbx, %rdi
xorl %esi, %esi
callq *0x78(%rax)
movq %rbx, %rdi
callq 0x591f8
xorl %eax, %eax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/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 %rbx
movq %rdi, %rbx
movl %esi, 0x5c8(%rdi)
movq (%rdi), %rax
xorl %esi, %esi
callq *0x78(%rax)
movq %rbx, %rdi
callq 0x591f8
xorl %eax, %eax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/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 %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
callq 0x57a30
movq 0xeeb69(%rip), %rax     # 0x16c6f8
addq $0x10, %rax
movq %rax, (%rbx)
leaq 0x5c0(%rbx), %r14
movq %r14, %rdi
callq 0x55d90
leaq 0xe716c(%rip), %rax     # 0x164d18
movq %rax, 0x600(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x608(%rbx)
leaq 0xe70b4(%rip), %rax     # 0x164c78
movq %rax, 0x5c0(%rbx)
leaq 0x618(%rbx), %r15
movq $0x0, 0x620(%rbx)
leaq 0xe7164(%rip), %rax     # 0x164d48
movq %rax, 0x618(%rbx)
movups %xmm0, 0x628(%rbx)
movq 0xeea37(%rip), %rax     # 0x16c630
movzwl (%rax), %eax
movw %ax, 0x20(%rbx)
cmpl $0x0, 0xb0(%rbx)
jne 0x7dc2e
leaq 0xa8(%rbx), %rsi
movl 0xb4(%rbx), %eax
movq %rsp, %rdx
movl $0x78, (%rdx)
movl %eax, 0x4(%rdx)
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x150(%rax)
cmpl $0x0, 0xb4(%rbx)
jne 0x7dc5c
leaq 0xa8(%rbx), %rsi
movl 0xb0(%rbx), %eax
movq %rsp, %rdx
movl %eax, (%rdx)
movl $0x64, 0x4(%rdx)
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x150(%rax)
movq $0x0, 0x5b8(%rbx)
movq %rbx, 0x620(%rbx)
leaq 0x298(%rbx), %rdi
movq 0xee864(%rip), %rsi     # 0x16c4e0
xorl %edx, %edx
movq %rbx, %rcx
callq 0x7ebf2
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %r12
jmp 0x7dcaa
movq %rax, %r12
movq %r15, %rdi
callq 0x7ecb0
movq %r14, %rdi
callq 0x7ecca
movq %rbx, %rdi
callq 0x57640
movq %r12, %rdi
callq 0x57090
// File: /workspace/github_c_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
cmpl $0x0, 0x40(%rdi)
jle 0x7ea3b
movq %rsi, %r12
movq %rdi, %r14
leaq 0x38(%rdi), %r15
leaq 0x618(%rdi), %rax
movq %rax, 0x8(%rsp)
xorl %ebp, %ebp
movq %rsi, 0x10(%rsp)
movq %r15, %rdi
movl %ebp, %esi
callq 0x5b0a4
movq (%rax), %r13
cmpq %r12, %r13
jne 0x7ea2f
movq (%r14), %rax
movq %r14, %rdi
callq *0x40(%rax)
movq %rax, %r12
movq (%r14), %rax
movq %r14, %rdi
callq *0x130(%rax)
movq %rax, 0x18(%rsp)
movq %rdx, 0x20(%rsp)
movq %r12, %rdi
leaq 0x18(%rsp), %rsi
callq 0x55160
cmpl $0x0, 0x40(%r14)
jle 0x7e9f2
xorl %ebx, %ebx
cmpl %ebx, %ebp
je 0x7e9ea
movq %r15, %rdi
movl %ebx, %esi
callq 0x5b0a4
movq (%rax), %rdi
movq (%rdi), %rax
callq *0x60(%rax)
incl %ebx
cmpl 0x40(%r14), %ebx
jl 0x7e9d3
movq (%r13), %rax
movq %r13, %rdi
callq *0x58(%rax)
movq (%r14), %rax
xorl %ebx, %ebx
movq %r14, %rdi
xorl %esi, %esi
callq *0x78(%rax)
movq %r12, %rdi
callq 0x58780
movq %r13, 0x5b8(%r14)
movq 0x8(%rsp), %rdi
movq %r13, %rsi
callq 0x7ed02
movq 0x10(%rsp), %r12
cmpq %r12, %r13
je 0x7ea40
incl %ebp
cmpl 0x40(%r14), %ebp
jl 0x7e985
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
movl %ebx, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O1/enzo1982[P]smooth/classes/gui/widgets/basic/tabwidget.cpp
// Function: smooth::GUI::TabWidget::Add(smooth::GUI::Widget*, smooth::GUI::Bitmap const&)
S::Int S::GUI::TabWidget::Add(Widget *widget, const Bitmap &bitmap)
{
	if (widget == NIL) return Error();

	if (!widget->IsRegistered())
	{
		widget->Hide();

		if (Widget::Add(widget) == Success())
		{
			bitmaps.Add(bitmap, widget->GetHandle());

			widget->SetMetrics(Point(2, 21), GetSize() - Size(3, 22));

			if (GetNOfObjects() == 1) SelectTab(widget);

			return Success();
		}
	}

	return Error();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x18, %rsp
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testq %rsi, %rsi
je 0x7eb60
movq %rdx, %r15
movq %rsi, %rbx
movq %rdi, %r14
movq (%rsi), %rax
movq %rsi, %rdi
callq *0x88(%rax)
testb %al, %al
jne 0x7eb60
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x60(%rax)
movq %r14, %rdi
movq %rbx, %rsi
callq 0x57c50
testl %eax, %eax
jne 0x7eb60
leaq 0x5c0(%r14), %rdi
movl 0x8(%rbx), %edx
movq %r15, %rsi
callq 0x7f2e4
movabsq $0x1500000002, %rax     # imm = 0x1500000002
leaq 0x10(%rsp), %rsi
movq %rax, (%rsi)
movl 0xb0(%r14), %eax
movl 0xb4(%r14), %ecx
addl $-0x3, %eax
addl $-0x16, %ecx
shlq $0x20, %rcx
orq %rcx, %rax
leaq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x150(%rax)
xorl %ebp, %ebp
cmpl $0x1, 0x40(%r14)
jne 0x7eb60
movq %r14, %rdi
movq %rbx, %rsi
callq 0x56450
movl %ebp, %eax
addq $0x18, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
testq %rsi, %rsi
je 0x7ebe5
movq %rsi, %r15
movq %rdi, %r14
movq (%rsi), %rax
movq %rsi, %rdi
callq *0x90(%rax)
movl %eax, %ebp
movq %r14, %rdi
movq %r15, %rsi
callq 0x56df0
testl %eax, %eax
jne 0x7ebe5
leaq 0x5c0(%r14), %rdi
movl 0x8(%r15), %esi
callq 0x58bb0
xorl %ebx, %ebx
testb %bpl, %bpl
je 0x7ebe5
cmpl $0x0, 0x40(%r14)
jle 0x7ebda
leaq 0x38(%r14), %rdi
xorl %ebx, %ebx
xorl %esi, %esi
callq 0x5b0a4
movq (%rax), %rsi
movq %r14, %rdi
callq 0x56450
jmp 0x7ebe5
movq $0x0, 0x5b8(%r14)
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/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 %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rcx, %r14
movq %rsi, %r15
movq %rdi, %rbx
xorl %r12d, %r12d
leaq 0x18(%rsp), %rax
movq %r12, (%rax)
movq %rdx, %rsi
movq %rax, %rdx
callq 0x57a30
movq 0xed9c3(%rip), %rax     # 0x16ce30
addq $0x10, %rax
movq %rax, (%rbx)
movq %r12, 0x5b8(%rbx)
movq 0xed886(%rip), %rax     # 0x16cd08
movzwl (%rax), %eax
movw %ax, 0x20(%rbx)
leaq 0xf0(%rbx), %rdi
movq %r15, %rsi
callq 0x555f0
movq (%r14), %rax
movq %rax, 0x5b8(%rbx)
movq %rbx, %rdi
callq 0x55bb0
cvtsi2sdl 0x188(%rbx), %xmm0
movsd %xmm0, 0x8(%rsp)
xorps %xmm0, %xmm0
cvtsi2sdl 0x18c(%rbx), %xmm0
movsd %xmm0, 0x10(%rsp)
leaq 0x20(%rsp), %rdx
movq $0x0, (%rdx)
movq %rsp, %rdi
xorl %esi, %esi
callq 0x57150
movq %rsp, %rdi
callq 0x58930
movsd 0x75001(%rip), %xmm2    # 0xf44f0
movsd 0x8(%rsp), %xmm6
mulsd %xmm2, %xmm6
xorpd %xmm3, %xmm3
movapd %xmm6, %xmm4
cmpltsd %xmm3, %xmm4
movsd 0x74e82(%rip), %xmm0    # 0xf4390
movapd %xmm4, %xmm5
andpd %xmm0, %xmm5
movsd 0x74e7a(%rip), %xmm1    # 0xf4398
andnpd %xmm1, %xmm4
orpd %xmm5, %xmm4
addsd %xmm6, %xmm4
cvttsd2si %xmm4, %rcx
movsd 0x10(%rsp), %xmm4
mulsd %xmm2, %xmm4
movapd %xmm4, %xmm2
cmpltsd %xmm3, %xmm2
movapd %xmm2, %xmm3
andpd %xmm0, %xmm3
andnpd %xmm1, %xmm2
orpd %xmm3, %xmm2
addsd %xmm4, %xmm2
cvttsd2si %xmm2, %rdx
cwtl
xorps %xmm2, %xmm2
cvtsi2sd %eax, %xmm2
xorps %xmm3, %xmm3
cvtsi2sd %ecx, %xmm3
divsd %xmm2, %xmm3
xorpd %xmm4, %xmm4
movapd %xmm3, %xmm5
cmpltsd %xmm4, %xmm5
movapd %xmm5, %xmm6
andpd %xmm0, %xmm6
andnpd %xmm1, %xmm5
orpd %xmm6, %xmm5
addsd %xmm3, %xmm5
cvttsd2si %xmm5, %rax
xorps %xmm3, %xmm3
cvtsi2sd %edx, %xmm3
divsd %xmm2, %xmm3
movapd %xmm3, %xmm2
cmpltsd %xmm4, %xmm2
andpd %xmm2, %xmm0
andnpd %xmm1, %xmm2
orpd %xmm0, %xmm2
addsd %xmm3, %xmm2
cvttsd2si %xmm2, %rcx
shlq $0x20, %rcx
movl %eax, %eax
orq %rcx, %rax
movabsq $0x200000000, %rcx      # imm = 0x200000000
addq %rax, %rcx
leaq 0x18(%rsp), %rdx
movq %rcx, (%rdx)
leaq 0xa8(%rbx), %rsi
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x150(%rax)
movq %rsp, %rdi
callq 0x57b20
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
jmp 0x7f604
movq %rax, %r14
movq %rsp, %rdi
callq 0x57b20
jmp 0x7f616
jmp 0x7f613
movq %rax, %r14
movq %rbx, %rdi
callq 0x57640
movq %r14, %rdi
callq 0x57090
// File: /workspace/github_c_makefile_star2_O1/enzo1982[P]smooth/classes/gui/widgets/basic/titlebar.cpp
// Function: smooth::GUI::Titlebar::Process(int, int, int)
S::Int S::GUI::Titlebar::Process(Int message, Int wParam, Int lParam)
{
	if (!IsRegistered())		 return Error();
	if (!IsActive() || !IsVisible()) return Success();

#ifdef __WIN32__
	Window	*window = container->GetContainerWindow();
#endif

	Bool	 prevPaintActive = paintActive;

	switch (message)
	{
		case SM_GETFOCUS:
		case SM_LOSEFOCUS:
		case SM_WINDOWTITLECHANGED:
#ifdef __WIN32__
			if (GetActiveWindow() == (HWND) window->GetSystemWindow() && (!paintActive || message == SM_WINDOWTITLECHANGED))
			{
				paintActive = True;
			}
			else if (GetActiveWindow() != (HWND) window->GetSystemWindow())
			{
				paintActive = False;

				Widget	*remoteParent = Window::GetWindow(GetActiveWindow());

				if (remoteParent != NIL)
				{
					if (remoteParent->GetObjectType() == ToolWindow::classID)
					{
						do
						{
							remoteParent = remoteParent->GetContainer();

							if (remoteParent == window) { paintActive = True; break; }
						}
						while (remoteParent != NIL);
					}
				}
			}
#endif
			if (message == SM_WINDOWTITLECHANGED || paintActive != prevPaintActive) Paint(SP_PAINT);

			break;
	}

	return Widget::Process(message, wParam, lParam);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movl %ecx, %ebx
movl %edx, %ebp
movl %esi, %r14d
movq %rdi, %r15
movq (%rdi), %rax
callq *0x88(%rax)
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
testb %al, %al
je 0x7fff5
movq (%r15), %rax
movq %r15, %rdi
callq *0x98(%rax)
xorl %r12d, %r12d
testb %al, %al
je 0x7fff5
movq (%r15), %rax
movq %r15, %rdi
callq *0x90(%rax)
testb %al, %al
je 0x7fff5
cmpl $0x780a, %r14d          # imm = 0x780A
jne 0x7ffde
movq (%r15), %rax
movq %r15, %rdi
xorl %esi, %esi
callq *0x78(%rax)
movq %r15, %rdi
movl %r14d, %esi
movl %ebp, %edx
movl %ebx, %ecx
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x58220
movl %r12d, %eax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O1/enzo1982[P]smooth/classes/gui/widgets/basic/titlebar.cpp
// Function: smooth::GUI::Titlebar::OnMouseDrag(smooth::GUI::Point const&)
S::Void S::GUI::Titlebar::OnMouseDrag(const Point &mousePos)
{
	Window	*window	= container->GetContainerWindow();

	if (window->IsMaximized() && mousePos != startMousePos)
	{
		Rect	 nonMaxRect = window->GetRestoredWindowRect();
		Rect	 workArea   = System::Screen::GetActiveScreenWorkArea();

		window->Restore();
		window->SetPosition(Point(workArea.left + Math::Max(0, Math::Min(mousePos.x - nonMaxRect.GetWidth() / 2, workArea.GetWidth() - nonMaxRect.GetWidth())), workArea.top + mousePos.y - startMousePos.y));

		startMousePos.x -= window->GetX();
	}

	if (!window->IsMaximized()) window->SetPosition(window->GetPosition() - (Point((IsRightToLeft() ? window->GetWidth() - startMousePos.x : startMousePos.x), startMousePos.y) - Point((IsRightToLeft() ? window->GetWidth() - mousePos.x : mousePos.x), mousePos.y)));
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rsi, %r14
movq %rdi, %r15
movq 0x190(%rdi), %rdi
callq 0x559e0
movq %rax, %rbx
cmpb $0x1, 0x5c8(%rax)
jne 0x800e3
movl (%r14), %eax
cmpl 0x5bc(%r15), %eax
jne 0x8005b
movl 0x5c0(%r15), %eax
cmpl %eax, 0x4(%r14)
je 0x800e3
movq %rbx, %rdi
callq 0x576e0
movq %rax, 0x8(%rsp)
movq %rdx, %rbp
callq 0x57e90
movq %rax, %r12
movq %rdx, %r13
movq %rbx, %rdi
callq 0x573f0
movl (%r14), %eax
subl 0x8(%rsp), %ebp
movl %ebp, %ecx
shrl $0x1f, %ecx
addl %ebp, %ecx
sarl %ecx
subl %ecx, %eax
addl %r12d, %ebp
subl %ebp, %r13d
cmpl %r13d, %eax
cmovll %eax, %r13d
xorl %eax, %eax
testl %r13d, %r13d
cmovgl %r13d, %eax
addl %r12d, %eax
shrq $0x20, %r12
addl 0x4(%r14), %r12d
subl 0x5c0(%r15), %r12d
leaq 0x10(%rsp), %rsi
movl %eax, (%rsi)
movl %r12d, 0x4(%rsi)
leaq 0xb0(%rbx), %rdx
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x150(%rax)
movl 0xa8(%rbx), %eax
subl %eax, 0x5bc(%r15)
cmpb $0x0, 0x5c8(%rbx)
jne 0x80175
movq (%r15), %rax
movq %r15, %rdi
callq *0x160(%rax)
testb %al, %al
je 0x8010f
movl 0xb0(%rbx), %ebp
subl 0x5bc(%r15), %ebp
jmp 0x80116
movl 0x5bc(%r15), %ebp
movl 0x5c0(%r15), %r12d
movq (%r15), %rax
movq %r15, %rdi
callq *0x160(%rax)
testb %al, %al
je 0x80138
movl 0xb0(%rbx), %eax
subl (%r14), %eax
jmp 0x8013b
movl (%r14), %eax
subl %ebp, %eax
movl 0x4(%r14), %ecx
subl %r12d, %ecx
addl 0xa8(%rbx), %eax
addl 0xac(%rbx), %ecx
shlq $0x20, %rcx
orq %rcx, %rax
leaq 0x10(%rsp), %rsi
movq %rax, (%rsi)
movq %rbx, %rdx
addq $0xb0, %rdx
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x150(%rax)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/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:
cmpb $0x0, 0xcb(%rdi)
jne 0x804f0
pushq %rbx
movq %rdi, %rbx
movb $0x1, 0xcb(%rdi)
movq (%rdi), %rax
movl $0x7800, %esi           # imm = 0x7800
xorl %edx, %edx
xorl %ecx, %ecx
callq *0x80(%rax)
addq $0x1f8, %rbx            # imm = 0x1F8
movq %rbx, %rdi
callq 0x70488
popq %rbx
xorl %eax, %eax
retq
nop
// File: /workspace/github_c_makefile_star2_O1/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 %rbx
movq %rdi, %rbx
movb $0x1, 0xcc(%rdi)
movq (%rdi), %rax
movl $0x3, %esi
callq *0x78(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
movl $0x7800, %esi           # imm = 0x7800
xorl %edx, %edx
xorl %ecx, %ecx
callq *0x80(%rax)
addq $0x238, %rbx            # imm = 0x238
movq %rbx, %rdi
callq 0x70488
xorl %eax, %eax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/enzo1982[P]smooth/classes/gui/widgets/hotspot/simplebutton.cpp
// Function: smooth::GUI::HotspotSimpleButton::Paint(int)
S::Int S::GUI::HotspotSimpleButton::Paint(Int message)
{
	if (!IsRegistered())	return Error();
	if (!IsVisible())	return Success();

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

	switch (message)
	{
		case SP_MOUSEIN:
		case SP_MOUSEUP:
			surface->Frame(frame, FRAME_UP);

			break;
		case SP_MOUSEDOWN:
			surface->Frame(frame, FRAME_DOWN);

			break;
		case SP_MOUSEOUT:
			surface->Box(frame, GetBackgroundColor(), Rect::Outlined);

			break;
	}

	return Success();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %esi, %r15d
movq %rdi, %r14
movq (%rdi), %rax
callq *0x88(%rax)
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
testb %al, %al
je 0x806b5
movq (%r14), %rax
movq %r14, %rdi
callq *0x90(%rax)
xorl %ebx, %ebx
testb %al, %al
je 0x806b5
movq (%r14), %rax
movq %r14, %rdi
callq *0x40(%rax)
movq %rax, %r12
movq (%r14), %rax
movq %r14, %rdi
callq *0x48(%rax)
movq %rax, %r13
movq %rax, %rbp
shrq $0x20, %rbp
movq (%r14), %rax
movq %r14, %rdi
callq *0x50(%rax)
leal (%rax,%r13), %ecx
shrq $0x20, %rax
movl %r13d, (%rsp)
movl %ebp, 0x4(%rsp)
movl %ecx, 0x8(%rsp)
addl %ebp, %eax
movl %eax, 0xc(%rsp)
addl $-0x2, %r15d
cmpl $0x3, %r15d
ja 0x806b5
leaq 0x76c4f(%rip), %rax     # 0xf72b0
movslq (%rax,%r15,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq %rsp, %rsi
movq %r12, %rdi
xorl %edx, %edx
jmp 0x806b0
movq (%r14), %rax
movq %r14, %rdi
callq *0x140(%rax)
movq 0xec199(%rip), %rcx     # 0x16c820
movl (%rcx), %ecx
leaq 0x10(%rsp), %r8
movq $0x0, (%r8)
movq %rsp, %rsi
movq %r12, %rdi
movq %rax, %rdx
callq 0x57930
jmp 0x806b5
movq %rsp, %rsi
movq %r12, %rdi
movl $0x1, %edx
callq 0x57890
movl %ebx, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O1/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
pushq %r14
pushq %rbx
movl %esi, %ebp
movq %rdi, %rbx
addq $0x5b8, %rdi            # imm = 0x5B8
leaq 0x610(%rbx), %r14
testl %esi, %esi
je 0x80874
callq 0x571b0
movq %r14, %rdi
callq 0x571b0
jmp 0x80881
callq 0x57810
movq %r14, %rdi
callq 0x57810
movzbl %bpl, %esi
movq %rbx, %rdi
popq %rbx
popq %r14
popq %rbp
jmp 0x58ea0
nop
// File: /workspace/github_c_makefile_star2_O1/enzo1982[P]smooth/classes/gui/widgets/multi/generic/container.cpp
// Function: smooth::GUI::Container::Add(smooth::GUI::Widget*)
S::Int S::GUI::Container::Add(Widget *widget)
{
	if (widget == NIL) return Error();

	if (!widget->IsRegistered())
	{
		if (Widget::Add(widget) == Success() && widget->GetObjectType() == Entry::classID)
		{
			elementOrder.Add((Entry *) widget, widget->GetHandle());
			createdEntry.Add(False, widget->GetHandle());

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

			onChangeEntryOrder.Emit();

			return Success();
		}
	}

	return Error();
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testq %rsi, %rsi
je 0x8094b
movq %rsi, %r14
movq %rdi, %rbx
movq (%rsi), %rax
movq %rsi, %rdi
callq *0x88(%rax)
testb %al, %al
jne 0x8094b
movq %rbx, %rdi
movq %r14, %rsi
callq 0x57c50
testl %eax, %eax
jne 0x8094b
leaq 0x20(%r14), %rdi
movq 0xebae4(%rip), %rax     # 0x16c3c0
movswl (%rax), %esi
callq 0x57520
testb %al, %al
je 0x8094b
leaq 0x610(%rbx), %rdi
movl 0x8(%r14), %edx
leaq 0x8(%rsp), %rsi
movq %r14, (%rsi)
callq 0x5af72
leaq 0x5b8(%rbx), %rdi
movl 0x8(%r14), %edx
leaq 0x769d1(%rip), %rsi     # 0xf72e3
callq 0x80e96
movq (%rbx), %rax
movq %rbx, %rdi
movl $0x1, %esi
callq *0x78(%rax)
movq (%rbx), %rax
xorl %ebp, %ebp
movq %rbx, %rdi
movl $0x7800, %esi           # imm = 0x7800
xorl %edx, %edx
xorl %ecx, %ecx
callq *0x80(%rax)
addq $0x668, %rbx            # imm = 0x668
movq %rbx, %rdi
callq 0x70488
movl %ebp, %eax
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/enzo1982[P]smooth/classes/gui/widgets/multi/generic/container.cpp
// Function: smooth::GUI::Container::Remove(smooth::GUI::Widget*)
S::Int S::GUI::Container::Remove(Widget *widget)
{
	if (widget == NIL) return Error();

	if (Widget::Remove(widget) == Success() && widget->GetObjectType() == Entry::classID)
	{
		Int	 entryHandle = widget->GetHandle();

		if (createdEntry.Get(entryHandle)) DeleteObject(widget);

		elementOrder.Remove(entryHandle);
		createdEntry.Remove(entryHandle);

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

		onChangeEntryOrder.Emit();

		return Success();
	}

	return Error();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testq %rsi, %rsi
je 0x80a03
movq %rsi, %r14
movq %rdi, %rbx
callq 0x56df0
testl %eax, %eax
jne 0x80a03
leaq 0x20(%r14), %rdi
movq 0xeba37(%rip), %rax     # 0x16c3c0
movswl (%rax), %esi
callq 0x57520
testb %al, %al
je 0x80a03
movl 0x8(%r14), %ebp
leaq 0x5b8(%rbx), %r15
movq %r15, %rdi
movl %ebp, %esi
callq 0x80fc6
cmpb $0x1, (%rax)
jne 0x809b7
movq %r14, %rdi
callq 0x58cc0
leaq 0x610(%rbx), %rdi
movl %ebp, %esi
callq 0x58bb0
movq %r15, %rdi
movl %ebp, %esi
callq 0x58bb0
movq (%rbx), %rax
movq %rbx, %rdi
movl $0x1, %esi
callq *0x78(%rax)
movq (%rbx), %rax
xorl %ebp, %ebp
movq %rbx, %rdi
movl $0x7800, %esi           # imm = 0x7800
xorl %edx, %edx
xorl %ecx, %ecx
callq *0x80(%rax)
addq $0x668, %rbx            # imm = 0x668
movq %rbx, %rdi
callq 0x70488
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
movq (%rdi), %rax
callq *0x40(%rax)
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x90(%rax)
movl %eax, %ebp
testb %al, %al
je 0x80aab
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x48(%rax)
movq %rax, %r15
movq %rax, %r12
shrq $0x20, %r12
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x50(%rax)
leal (%rax,%r15), %ecx
shrq $0x20, %rax
movq %rsp, %rsi
movl %r15d, (%rsi)
movl %r12d, 0x4(%rsi)
movl %ecx, 0x8(%rsi)
addl %r12d, %eax
movl %eax, 0xc(%rsi)
movq %r14, %rdi
callq 0x55160
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x60(%rax)
jmp 0x80aab
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x178(%rax)
leal -0x1(%rax), %esi
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x180(%rax)
movq (%rbx), %rcx
movq %rbx, %rdi
movq %rax, %rsi
callq *0x38(%rcx)
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x178(%rax)
testl %eax, %eax
jg 0x80a84
testb %bpl, %bpl
je 0x80ad1
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x58(%rax)
movq %r14, %rdi
callq 0x58780
xorl %eax, %eax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
xorl %r15d, %r15d
cmpl %edx, %esi
je 0x80b44
movl %edx, %ebp
movl %esi, %r14d
movq %rdi, %rbx
movq (%rdi), %rax
callq *0x178(%rax)
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
cmpl %r14d, %eax
jle 0x80b44
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x178(%rax)
movl %ebp, %ecx
orl %r14d, %ecx
js 0x80b44
cmpl %ebp, %eax
jle 0x80b44
leaq 0x610(%rbx), %rdi
movl %r14d, %esi
movl %ebp, %edx
callq 0x5ac1c
addq $0x668, %rbx            # imm = 0x668
movq %rbx, %rdi
callq 0x70488
xorl %r15d, %r15d
movl %r15d, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/enzo1982[P]smooth/classes/gui/widgets/multi/image/imagebox.cpp
// Function: smooth::GUI::ImageBox::ImageBox(smooth::GUI::Point const&, smooth::GUI::Size const&)
S::GUI::ImageBox::ImageBox(const Point &iPos, const Size &iSize)
{
	type	     = classID;

	scrollbar    = NIL;
	scrollbarPos = 0;

	SetBackgroundColor(Setup::ClientColor);
	SetMetrics(iPos, iSize);

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

	onChangeSize.Connect(&ImageBox::OnChangeSize, this);

	scrollbar = new Scrollbar(Point(), Size(), OR_HORZ, &scrollbarPos, 0, 1);
	scrollbar->SetOrientation(OR_LOWERLEFT);
	scrollbar->SetStepSize(15);
	scrollbar->onValueChange.Connect(&ImageBox::OnScrollbarValueChange, this);
	scrollbar->Hide();

	Add(scrollbar);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %rbx
callq 0x56da0
movq 0xebd6c(%rip), %rax     # 0x16ce68
addq $0x10, %rax
movq %rax, (%rbx)
leaq 0x6d8(%rbx), %r14
movq %r14, %rdi
xorl %esi, %esi
callq 0x58e20
movq 0xeb79d(%rip), %rax     # 0x16c8b8
movzwl (%rax), %eax
movw %ax, 0x20(%rbx)
movq $0x0, 0x6c8(%rbx)
movl $0x0, 0x6d0(%rbx)
movq (%rbx), %rax
movq 0xeb52f(%rip), %rsi     # 0x16c670
movq %rbx, %rdi
callq *0x138(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq *0x150(%rax)
cmpl $0x0, 0xb0(%rbx)
jne 0x8118c
leaq 0xa8(%rbx), %rsi
movl 0xb4(%rbx), %eax
leaq 0x8(%rsp), %rdx
movl $0x78, (%rdx)
movl %eax, 0x4(%rdx)
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x150(%rax)
cmpl $0x0, 0xb4(%rbx)
jne 0x811bc
leaq 0xa8(%rbx), %rsi
movl 0xb0(%rbx), %eax
leaq 0x8(%rsp), %rdx
movl %eax, (%rdx)
movl $0x50, 0x4(%rdx)
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x150(%rax)
leaq 0x298(%rbx), %rdi
movq 0xeb546(%rip), %rsi     # 0x16c710
xorl %edx, %edx
movq %rbx, %rcx
callq 0x81944
movl $0x668, %edi            # imm = 0x668
callq 0x556b0
movq %rax, %r15
leaq 0x6d0(%rbx), %r8
xorl %eax, %eax
leaq 0x8(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x10(%rsp), %rdx
movq %rax, (%rdx)
movl $0x1, (%rsp)
movq %r15, %rdi
movl $0x1, %ecx
xorl %r9d, %r9d
callq 0x56880
movq %r15, 0x6c8(%rbx)
movq (%r15), %rax
movq %r15, %rdi
movl $0x18, %esi
callq *0x120(%rax)
movq 0x6c8(%rbx), %rdi
movl $0xf, 0x5e0(%rdi)
addq $0x618, %rdi            # imm = 0x618
movq 0xeb588(%rip), %rsi     # 0x16c7d0
xorl %edx, %edx
movq %rbx, %rcx
callq 0x81a02
movq 0x6c8(%rbx), %rdi
movq (%rdi), %rax
callq *0x60(%rax)
movq 0x6c8(%rbx), %rsi
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x30(%rax)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %r12
movl $0x668, %esi            # imm = 0x668
movq %r15, %rdi
callq 0x55480
jmp 0x81295
movq %rax, %r12
jmp 0x8129d
movq %rax, %r12
movq %r14, %rdi
callq 0x59200
movq %rbx, %rdi
callq 0x58c00
movq %r12, %rdi
callq 0x57090
nop
// File: /workspace/github_c_makefile_star2_O1/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 %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movq 0x6c8(%rdi), %rdi
movq (%rdi), %rax
callq *0x90(%rax)
testb %al, %al
je 0x8132f
movq 0x6c8(%rbx), %rdi
movl (%r14), %eax
addl $-0x2, %eax
leaq 0xa8(%rdi), %rsi
movl 0xb4(%rdi), %ecx
movq %rsp, %rdx
movl %eax, (%rdx)
movl %ecx, 0x4(%rdx)
movq (%rdi), %rax
callq *0x150(%rax)
movq 0x6c8(%rbx), %r14
movq %rbx, %rdi
callq 0x56c70
subl 0xb0(%rbx), %eax
leal 0x4(%rax), %edx
movq %r14, %rdi
xorl %esi, %esi
callq 0x557e0
movq 0x6c8(%rbx), %rax
movl 0xb0(%rbx), %ecx
addl $-0x4, %ecx
movl %ecx, 0x654(%rax)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
nop
// File: /workspace/github_c_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
cmpl $0x0, 0x40(%rdi)
jle 0x818ee
movq %rdi, %rbx
leaq 0x38(%rdi), %r14
movq 0xead48(%rip), %rax     # 0x16c5f0
xorl %r15d, %r15d
movswl (%rax), %r12d
xorl %ebp, %ebp
movq %r14, %rdi
movl %r15d, %esi
callq 0x5b0a4
movq (%rax), %rdi
addq $0x20, %rdi
movl %r12d, %esi
callq 0x57520
testb %al, %al
je 0x818e3
movq %r14, %rdi
movl %r15d, %esi
callq 0x5b0a4
movq (%rax), %rax
addl 0xb0(%rax), %ebp
incl %r15d
cmpl 0x40(%rbx), %r15d
jl 0x818b1
jmp 0x818f0
xorl %ebp, %ebp
movl %ebp, %eax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O1/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 %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x8(%rsp), %r12
movq %r12, %rdi
xorl %esi, %esi
callq 0x58e20
movq %rbx, %rdi
movq %r12, %rsi
callq 0x55290
leaq 0x8(%rsp), %rdi
callq 0x59200
movq 0xeb1f1(%rip), %rax     # 0x16ce18
addq $0x10, %rax
movq %rax, (%rbx)
movq 0xea9e3(%rip), %rax     # 0x16c618
movzwl (%rax), %eax
movw %ax, 0x20(%rbx)
leaq 0xa8(%rbx), %rsi
movq %rbx, %rdi
movq %r15, %rdx
callq 0x57080
movl $0x5c8, %edi            # imm = 0x5C8
callq 0x556b0
movq %rax, %r12
movabsq $0x200000002, %rax      # imm = 0x200000002
leaq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movl (%r15), %eax
movl 0x4(%r15), %ecx
addl $-0x4, %eax
addl $-0x4, %ecx
shlq $0x20, %rcx
orq %rcx, %rax
leaq 0x20(%rsp), %rcx
movq %rax, (%rcx)
movq %r12, %rdi
movq %r14, %rsi
callq 0x55980
movq %r12, 0x630(%rbx)
movq (%rbx), %rax
movq %rbx, %rdi
movq %r12, %rsi
callq *0x30(%rax)
leaq 0x298(%rbx), %rdi
movq 0xea7bb(%rip), %rsi     # 0x16c470
xorl %edx, %edx
movq %rbx, %rcx
callq 0x821ce
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %r14
movl $0x5c8, %esi            # imm = 0x5C8
movq %r12, %rdi
callq 0x55480
jmp 0x81cef
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x59200
jmp 0x81cf7
movq %rax, %r14
movq %rbx, %rdi
callq 0x58ed0
movq %r14, %rdi
callq 0x57090
nop
// File: /workspace/github_c_makefile_star2_O1/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 %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
cmpq $0x0, 0x6d0(%rdi)
je 0x82a9c
movq %rbx, %rdi
callq 0x591e8
movl 0x6e0(%rbx), %eax
cmpl 0x8(%r14), %eax
je 0x82acb
movq (%rbx), %rax
movq %rbx, %rdi
xorl %esi, %esi
callq *0x78(%rax)
testb $0x1, 0x30(%rbx)
je 0x82ac1
movq %r14, %rdi
callq 0x56540
movl 0x8(%r14), %eax
movl %eax, 0x6e0(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
nop
// File: /workspace/github_c_makefile_star2_O1/enzo1982[P]smooth/classes/gui/widgets/multi/list/combobox.cpp
// Function: smooth::GUI::ComboBox::CloseListBox()
S::Void S::GUI::ComboBox::CloseListBox()
{
	if (listBox == NIL) return;

	Window	*window = container->GetContainerWindow();

	toolWindow->onLoseFocus.Disconnect(&ComboBox::CloseListBox, this);
	toolWindow->Close();

	window->onChangePosition.Disconnect(&ComboBox::CloseListBox, this);
	window->onChangeSize.Disconnect(&ComboBox::CloseListBox, this);

	listBox->RemoveAllEntries();

	for (Int i = 0; i < Length(); i++)
	{
		ListEntry	*entry = GetNthEntry(i);

		entry->SetTooltipText(NIL);

		entry->Hide();
		entry->Deactivate();

		entry->SetRegisteredFlag(True);
		entry->SetContainer(this);
	}

	toolWindow->Remove(listBox);

	Remove(toolWindow);

	DeleteObject(listBox);
	DeleteObject(toolWindow);

	listBox	   = NIL;
	toolWindow = NIL;

	listBoxClosed = S::System::System::Clock();
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x18, %rsp
cmpq $0x0, 0x6d0(%rdi)
je 0x82c3f
movq %rdi, %rbx
movq 0x190(%rdi), %rdi
callq 0x559e0
movq %rax, %r15
movl $0x518, %edi            # imm = 0x518
addq 0x6c8(%rbx), %rdi
movq 0xea39e(%rip), %r12     # 0x16ceb0
xorl %r14d, %r14d
movq %r12, %rsi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x83642
movq 0x6c8(%rbx), %rdi
callq 0x58420
leaq 0x278(%r15), %rdi
movq %r12, %rsi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x836ae
addq $0x298, %r15            # imm = 0x298
movq %r15, %rdi
movq %r12, %rsi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x8371a
movq 0x6d0(%rbx), %rdi
movq (%rdi), %rax
callq *0x168(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x178(%rax)
testl %eax, %eax
jle 0x82be9
movq %rsp, %r15
movq (%rbx), %rax
movq %rbx, %rdi
movl %r14d, %esi
callq *0x180(%rax)
movq %rax, %r12
movq %r15, %rdi
xorl %esi, %esi
callq 0x58e20
movq (%r12), %rax
movq %r12, %rdi
movq %r15, %rsi
callq *0xb0(%rax)
movq %r15, %rdi
callq 0x59200
movq (%r12), %rax
movq %r12, %rdi
callq *0x60(%rax)
movq (%r12), %rax
movq %r12, %rdi
callq *0x70(%rax)
movb $0x1, 0xca(%r12)
movq %rbx, 0x190(%r12)
incl %r14d
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x178(%rax)
cmpl %eax, %r14d
jl 0x82b7c
leaq 0x6c8(%rbx), %r14
movq 0x6c8(%rbx), %rdi
movq 0x6d0(%rbx), %rsi
movq (%rdi), %rax
callq *0x38(%rax)
movq 0x6c8(%rbx), %rsi
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x38(%rax)
movq 0x6d0(%rbx), %rdi
callq 0x58cc0
movq 0x6c8(%rbx), %rdi
callq 0x58cc0
xorps %xmm0, %xmm0
movups %xmm0, (%r14)
callq 0x570e0
movq %rax, 0x6d8(%rbx)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %rbx
movq %rsp, %rdi
callq 0x59200
movq %rbx, %rdi
callq 0x57090
// File: /workspace/github_c_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movl %edx, %ebp
movq %rsi, %r15
movq %rdi, %r14
movl $0x630, %edi            # imm = 0x630
callq 0x556b0
movq %rax, %rbx
movq %rax, %rdi
movq %r15, %rsi
callq 0x57b40
movzbl %bpl, %esi
movq %rbx, %rdi
callq 0x59060
movq (%r14), %rax
movq %r14, %rdi
movq %rbx, %rsi
callq *0x30(%rax)
testl %eax, %eax
je 0x83a8f
movq %rbx, %rdi
callq 0x58cc0
xorl %ebx, %ebx
jmp 0x83aa8
addq $0x5b8, %r14            # imm = 0x5B8
movl 0x8(%rbx), %esi
leaq 0x73ab6(%rip), %rdx     # 0xf7556
movq %r14, %rdi
callq 0x83dd8
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
movl $0x630, %esi            # imm = 0x630
movq %rbx, %rdi
callq 0x55480
movq %r14, %rdi
callq 0x57090
// File: /workspace/github_c_makefile_star2_O1/enzo1982[P]smooth/classes/gui/widgets/multi/list/list.cpp
// Function: smooth::GUI::List::AddSeparator()
S::GUI::ListEntry *S::GUI::List::AddSeparator()
{
	ListEntrySeparator	*newEntry = new ListEntrySeparator();

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

		return newEntry;
	}

	DeleteObject(newEntry);

	return NIL;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %r14
movl $0x630, %edi            # imm = 0x630
callq 0x556b0
movq %rax, %rbx
movq %rax, %rdi
callq 0x56c00
movq (%r14), %rax
movq %r14, %rdi
movq %rbx, %rsi
callq *0x30(%rax)
testl %eax, %eax
je 0x83b06
movq %rbx, %rdi
callq 0x58cc0
xorl %ebx, %ebx
jmp 0x83b1f
addq $0x5b8, %r14            # imm = 0x5B8
movl 0x8(%rbx), %esi
leaq 0x73a3f(%rip), %rdx     # 0xf7556
movq %r14, %rdi
callq 0x83dd8
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq %rax, %r14
movl $0x630, %esi            # imm = 0x630
movq %rbx, %rdi
callq 0x55480
movq %r14, %rdi
callq 0x57090
// File: /workspace/github_c_makefile_star2_O1/enzo1982[P]smooth/classes/gui/widgets/multi/list/list.cpp
// Function: smooth::GUI::List::Add(smooth::GUI::Widget*)
S::Int S::GUI::List::Add(Widget *widget)
{
	if (widget == NIL) return Error();

	if (!widget->IsRegistered())
	{
		if (widget->GetObjectType() == ListEntry::classID) widget->Hide();

		return Container::Add(widget);
	}

	return Error();
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
testq %rsi, %rsi
je 0x83b61
movq %rsi, %rbx
movq %rdi, %r14
movq (%rsi), %rax
movq %rsi, %rdi
callq *0x88(%rax)
testb %al, %al
je 0x83b6e
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
addq $0x8, %rsp
popq %rbx
popq %r14
retq
leaq 0x20(%rbx), %rdi
movq 0xe8a77(%rip), %rax     # 0x16c5f0
movswl (%rax), %esi
callq 0x57520
testb %al, %al
je 0x83b8e
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x60(%rax)
movq %r14, %rdi
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x56d70
// File: /workspace/github_c_makefile_star2_O1/enzo1982[P]smooth/classes/gui/widgets/multi/list/list.cpp
// Function: smooth::GUI::List::SelectEntry(smooth::GUI::ListEntry const*)
S::Int S::GUI::List::SelectEntry(const ListEntry *entryToSelect)
{
	foreach (Entry *entry, elementOrder)
	{
		if (entry != entryToSelect) continue;

		((ListEntry *) entry)->Select();

		return Success();
	}

	return Error();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x610(%rdi), %r15
xorl %r12d, %r12d
xorl %eax, %eax
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testl %eax, %eax
jne 0x83c07
leal -0x1(%r12), %eax
movl 0x618(%r14), %ecx
decl %ecx
cmpl %ecx, %eax
jge 0x83c07
movq %r15, %rdi
movl %r12d, %esi
callq 0x60a40
movq (%rax), %r13
xorl %ebp, %ebp
movl $0x0, %eax
cmpq %rbx, %r13
jne 0x83bff
movq %r13, %rdi
callq 0x57fb0
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
incl %r12d
cmpq %rbx, %r13
jne 0x83bbd
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/enzo1982[P]smooth/classes/gui/widgets/multi/list/list.cpp
// Function: smooth::GUI::List::SelectNthEntry(int)
S::Int S::GUI::List::SelectNthEntry(Int n)
{
	if (n < 0 || n >= Length()) return Error();

	ListEntry	*entry = GetNthEntry(n);

	if (!entry->IsSelected()) entry->Select();

	return Success();
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
testl %esi, %esi
js 0x83cbe
movl %esi, %ebp
movq %rdi, %r14
movq (%rdi), %rax
callq *0x178(%rax)
cmpl %ebp, %eax
jle 0x83cbe
movq (%r14), %rax
movq %r14, %rdi
movl %ebp, %esi
callq *0x180(%rax)
xorl %ebx, %ebx
cmpb $0x0, 0x5b9(%rax)
jne 0x83cbe
movq %rax, %rdi
callq 0x57fb0
movl %ebx, %eax
popq %rbx
popq %r14
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O1/enzo1982[P]smooth/classes/gui/widgets/multi/list/list.cpp
// Function: smooth::GUI::List::GetSelectedEntryNumber() const
S::Int S::GUI::List::GetSelectedEntryNumber() const
{
	for (Int i = 0; i < elementOrder.Length(); i++)
	{
		ListEntry	*entry = (ListEntry *) elementOrder.GetNth(i);

		if (entry->IsSelected()) return i;
	}

	return -1;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
cmpl $0x0, 0x618(%rdi)
jle 0x83d15
movq %rdi, %r14
leaq 0x610(%rdi), %r15
xorl %ebp, %ebp
movq %r15, %rdi
movl %ebp, %esi
callq 0x5b0a4
movq (%rax), %rax
movb 0x5b9(%rax), %al
testb %al, %al
cmovnel %ebp, %r12d
cmpb $0x1, %al
je 0x83d12
incl %ebp
cmpl 0x618(%r14), %ebp
jl 0x83ce8
jmp 0x83d15
movl %r12d, %ebx
movl %ebx, %eax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/enzo1982[P]smooth/classes/gui/widgets/multi/list/list.cpp
// Function: smooth::GUI::List::GetEntryNumber(smooth::String const&) const
S::Int S::GUI::List::GetEntryNumber(const String &entryText) const
{
	for (Int i = 0; i < elementOrder.Length(); i++)
	{
		ListEntry	*entry = (ListEntry *) elementOrder.GetNth(i);

		if (entry->GetText() == entryText) return i;
	}

	return -1;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
cmpl $0x0, 0x618(%rdi)
jle 0x83d81
movq %rsi, %r14
movq %rdi, %r15
leaq 0x610(%rdi), %r12
xorl %ebp, %ebp
movq %r12, %rdi
movl %ebp, %esi
callq 0x5b0a4
movq (%rax), %rdi
movq (%rdi), %rax
callq *0xa8(%rax)
movq %rax, %rdi
movq %r14, %rsi
callq 0x55900
testb %al, %al
cmovnel %ebp, %r13d
jne 0x83d7e
incl %ebp
cmpl 0x618(%r15), %ebp
jl 0x83d48
jmp 0x83d81
movl %r13d, %ebx
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/enzo1982[P]smooth/classes/gui/widgets/multi/list/../../../../../include/smooth/templates/array/arraybackend.h
// Function: smooth::ArrayBackend<bool>::SetNth(int, bool const&)
Bool SetNth(Int n, const s &value)
			{
				WriteLock	 lock(*this);

				if (nOfEntries > n && n >= 0)
				{
					entries[n]->value = value;

					lastAccessedEntry = n;

					return True;
				}

				return False;
			}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdx, %r15
movl %esi, %ebx
movq %rdi, %r14
movq %rdi, (%rsp)
cmpb $0x1, 0x30(%rdi)
jne 0x83e62
movq 0x38(%r14), %rdi
callq 0x551d0
cmpl %ebx, 0x8(%r14)
setg %al
testl %ebx, %ebx
setns %bpl
andb %al, %bpl
cmpb $0x1, %bpl
jne 0x83e8e
movb (%r15), %al
movq 0x48(%r14), %rcx
movq (%rcx), %rcx
movl %ebx, %edx
movq (%rcx,%rdx,8), %rcx
movb %al, (%rcx)
movl %ebx, 0x14(%r14)
movq %rsp, %rdi
callq 0x56310
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O1/enzo1982[P]smooth/classes/gui/widgets/multi/list/listbox.cpp
// Function: smooth::GUI::ListBox::OnChangeSize(smooth::GUI::Size const&)
S::Void S::GUI::ListBox::OnChangeSize(const Size &nSize)
{
	if (scrollbar->IsVisible())
	{
		Int	 headerHeight = (header->IsVisible() ? header->GetHeight() : 0);

		scrollbar->SetHeight(nSize.cy - 2 - headerHeight);
		scrollbar->SetRange(0, GetEntriesHeight() - (GetHeight() - 4 - headerHeight));

		scrollbar->SetPageSize(GetHeight() - 4 - headerHeight);
	}

	header->SetWidth(nSize.cx - 2);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
movq 0x6c8(%rdi), %rdi
movq (%rdi), %rax
callq *0x90(%rax)
testb %al, %al
je 0x84242
movq 0x6d8(%r14), %rdi
movq (%rdi), %rax
callq *0x90(%rax)
xorl %r12d, %r12d
testb %al, %al
je 0x841d3
movq 0x6d8(%r14), %rax
movl 0xb4(%rax), %r12d
movq 0x6c8(%r14), %rdi
movl 0x4(%rbx), %eax
subl %r12d, %eax
addl $-0x2, %eax
leaq 0xa8(%rdi), %rsi
movl 0xb0(%rdi), %ecx
movq %rsp, %rdx
movl %ecx, (%rdx)
movl %eax, 0x4(%rdx)
movq (%rdi), %rax
callq *0x150(%rax)
movq 0x6c8(%r14), %r15
movq %r14, %rdi
callq 0x58e60
leal (%rax,%r12), %edx
subl 0xb4(%r14), %edx
addl $0x4, %edx
movq %r15, %rdi
xorl %esi, %esi
callq 0x557e0
movq 0x6c8(%r14), %rax
movl 0xb4(%r14), %ecx
subl %r12d, %ecx
addl $-0x4, %ecx
movl %ecx, 0x654(%rax)
movq 0x6d8(%r14), %rdi
movl (%rbx), %eax
addl $-0x2, %eax
leaq 0xa8(%rdi), %rsi
movl 0xb4(%rdi), %ecx
movq %rsp, %rdx
movl %eax, (%rdx)
movl %ecx, 0x4(%rdx)
movq (%rdi), %rax
callq *0x150(%rax)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq