LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/application/application.cpp
// Function: smooth::GUI::Application::Loop()
S::Int S::GUI::Application::Loop()
{
	static Bool	 firstTime = True;

	if (firstTime)
	{
		firstTime = False;

		/* Show pending windows when we are called for the first time.
		 */
		for (Int i = 0; i < Window::GetNOfWindows(); i++)
		{
			Window	*window = Window::GetNthWindow(i);

			if (window != NIL && !window->IsVisibilitySet()) window->Show();
		}
	}

	/* Enter main application loop.
	 */
	System::EventProcessor	 event;

	while (GUI::Window::nOfActiveWindows > 0)
	{
		if (!event.ProcessNextEvent()) break;
	}

	return Success();
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x18, %rsp
cmpb $0x0, 0x100aa2(%rip)    # 0x164a10
je 0x63fb5
leaq 0x8(%rsp), %rdi
callq 0x58450
movq 0xfd6bf(%rip), %r14     # 0x161640
cmpw $0x0, (%r14)
jle 0x63fa1
leaq 0x8(%rsp), %rbx
movq %rbx, %rdi
callq 0x57a00
cmpw $0x0, (%r14)
setg %cl
testb %cl, %al
jne 0x63f8d
leaq 0x8(%rsp), %rdi
callq 0x56830
xorl %eax, %eax
addq $0x18, %rsp
popq %rbx
popq %r14
retq
movb $0x1, 0x100a54(%rip)    # 0x164a10
xorl %ebx, %ebx
movq 0xfd6eb(%rip), %r14     # 0x1616b0
cmpl 0x8(%r14), %ebx
jge 0x63f70
movl %ebx, %edi
callq 0x59b50
testq %rax, %rax
je 0x63fe9
cmpb $0x0, 0x5cc(%rax)
jne 0x63fe9
movq (%rax), %rcx
movq %rax, %rdi
callq *0x58(%rcx)
incl %ebx
jmp 0x63fc5
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x56830
movq %rbx, %rdi
callq 0x58260
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/application/application.cpp
// Function: smooth::GUI::Application::SetArguments(smooth::Array<smooth::String, smooth::String> const&)
foreach (const String &arg, nArgs)
	{
		/* Filter out scale factor argument.
		 */
		if (arg.StartsWith("--scale:")) { scaleFactor = arg.Tail(arg.Length() - 8).ToFloat(); continue; }

		/* Add to arguments array.
		 */
		args.Add(arg);
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
xorl %r14d, %r14d
leaq 0x7f674(%rip), %r15     # 0xe3691
movq %rsp, %r12
leal -0x1(%r14), %eax
movl 0x8(%rbx), %ecx
decl %ecx
cmpl %ecx, %eax
jge 0x640ab
movq %rbx, %rdi
movl %r14d, %esi
callq 0x64d9c
movq %rax, %rbp
movq %r12, %rdi
movq %r15, %rsi
callq 0x58c40
movq %rbp, %rdi
movq %r12, %rsi
callq 0x58a10
movl %eax, %r13d
movq %r12, %rdi
callq 0x5a588
testb %r13b, %r13b
je 0x64094
movq %rbp, %rdi
callq 0x58370
leal -0x8(%rax), %edx
movq %r12, %rdi
movq %rbp, %rsi
callq 0x59220
movq %r12, %rdi
callq 0x589f0
movq 0xfd9b2(%rip), %rax     # 0x161a38
movsd %xmm0, (%rax)
movq %r12, %rdi
callq 0x5a588
jmp 0x640a3
movq 0xfd84d(%rip), %rdi     # 0x1618e8
movq %rbp, %rsi
callq 0x64dee
incl %r14d
jmp 0x64020
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x640bc
movq %rax, %rbx
movq %rsp, %rdi
callq 0x5a588
movq %rbx, %rdi
callq 0x58260
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/application/application.cpp
// Function: smooth::GUI::Application::GetStartupDirectory()
S::String S::GUI::Application::GetStartupDirectory()
{
	if (startupDirectory != NIL) return startupDirectory;

#ifdef __WIN32__
	Buffer<wchar_t>	 buffer(32768 + 1);

	if (GetCurrentDirectory(buffer.Size(), buffer))	startupDirectory = buffer;

	if (!startupDirectory.EndsWith("\\")) startupDirectory.Append("\\");
#else
	Buffer<char>	 buffer(PATH_MAX + 1);

	if (getcwd(buffer, buffer.Size()) != NIL) startupDirectory = buffer;

	if (!startupDirectory.EndsWith("/")) startupDirectory.Append("/");
#endif

	return startupDirectory;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x30, %rsp
movq %rdi, %rbx
movq 0xfd856(%rip), %rdi     # 0x161938
xorl %esi, %esi
callq 0x57d40
testb %al, %al
je 0x64101
movq 0xfd844(%rip), %rsi     # 0x161938
movq %rbx, %rdi
callq 0x58280
jmp 0x641bb
leaq 0x18(%rsp), %r14
movq %r14, %rdi
movl $0x1001, %esi           # imm = 0x1001
callq 0x5df48
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x64121
movq (%rax), %rdi
jmp 0x64123
xorl %edi, %edi
movslq 0x28(%rsp), %rsi
callq 0x572e0
testq %rax, %rax
je 0x6414f
movq 0x20(%rsp), %rax
testq %rax, %rax
je 0x64141
movq (%rax), %rsi
jmp 0x64143
xorl %esi, %esi
movq 0xfd7ee(%rip), %rdi     # 0x161938
callq 0x57010
leaq 0x7f552(%rip), %rsi     # 0xe36a8
movq %rsp, %rdi
callq 0x58c40
movq 0xfd7d3(%rip), %rdi     # 0x161938
movq %rsp, %rsi
callq 0x59e50
movl %eax, %ebp
movq %rsp, %rdi
callq 0x5a588
testb %bpl, %bpl
jne 0x641a2
leaq 0x7f525(%rip), %rsi     # 0xe36a8
movq %rsp, %rdi
callq 0x58c40
movq 0xfd7a6(%rip), %rdi     # 0x161938
movq %rsp, %rsi
callq 0x573e0
movq %rsp, %rdi
callq 0x5a588
movq 0xfd78f(%rip), %rsi     # 0x161938
movq %rbx, %rdi
callq 0x58280
leaq 0x18(%rsp), %rdi
callq 0x5df9a
movq %rbx, %rax
addq $0x30, %rsp
popq %rbx
popq %r14
popq %rbp
retq
jmp 0x641cb
jmp 0x641da
movq %rax, %rbx
movq %rsp, %rdi
callq 0x5a588
jmp 0x641dd
jmp 0x641da
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x5df9a
movq %rbx, %rdi
callq 0x58260
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/dialogs/colordlg.cpp
// Function: smooth::GUI::Dialogs::ColorSelection::ColorDlgHueEdit()
void S::GUI::Dialogs::ColorSelection::ColorDlgHueEdit()
{
	Int	 newhue = Math::Max(0, Math::Min(255, (Int) hueedit->GetText().ToInt()));

	if (newhue != acthue)
	{
		acthue = newhue;

		updatetext = False;

		ColorDlgHueSlider();
	}
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x406e8(%rdi), %rdi
movq (%rdi), %rax
callq *0xa8(%rax)
movq %rax, %rdi
callq 0x57a10
movl $0xff, %ecx
cmpl %ecx, %eax
cmovll %eax, %ecx
xorl %eax, %eax
testl %ecx, %ecx
cmovgl %ecx, %eax
cmpl 0x614(%rbx), %eax
jne 0x67ab9
popq %rbx
retq
movl %eax, 0x614(%rbx)
movb $0x0, 0x606(%rbx)
movq %rbx, %rdi
popq %rbx
jmp 0x5a548
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/dialogs/colordlg.cpp
// Function: smooth::GUI::Dialogs::ColorSelection::ColorDlgSatEdit()
void S::GUI::Dialogs::ColorSelection::ColorDlgSatEdit()
{
	Int	 newsat = Math::Max(0, Math::Min(255, (Int) satedit->GetText().ToInt()));

	if (newsat != actsat)
	{
		actsat = newsat;

		updatetext = False;

		ColorDlgSatSlider();
	}
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x406f0(%rdi), %rdi
movq (%rdi), %rax
callq *0xa8(%rax)
movq %rax, %rdi
callq 0x57a10
movl $0xff, %ecx
cmpl %ecx, %eax
cmovll %eax, %ecx
xorl %eax, %eax
testl %ecx, %ecx
cmovgl %ecx, %eax
cmpl 0x618(%rbx), %eax
jne 0x67b07
popq %rbx
retq
movl %eax, 0x618(%rbx)
movb $0x0, 0x606(%rbx)
movq %rbx, %rdi
popq %rbx
jmp 0x5a4f8
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/dialogs/colordlg.cpp
// Function: smooth::GUI::Dialogs::ColorSelection::ColorDlgValEdit()
void S::GUI::Dialogs::ColorSelection::ColorDlgValEdit()
{
	Int	 newval = Math::Max(0, Math::Min(255, (Int) valedit->GetText().ToInt()));

	if (newval != actval)
	{
		actval = newval;

		updatetext = False;

		ColorDlgValSlider();
	}
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x406f8(%rdi), %rdi
movq (%rdi), %rax
callq *0xa8(%rax)
movq %rax, %rdi
callq 0x57a10
movl $0xff, %ecx
cmpl %ecx, %eax
cmovll %eax, %ecx
xorl %eax, %eax
testl %ecx, %ecx
cmovgl %ecx, %eax
cmpl 0x61c(%rbx), %eax
jne 0x67b55
popq %rbx
retq
movl %eax, 0x61c(%rbx)
movb $0x0, 0x606(%rbx)
movq %rbx, %rdi
popq %rbx
jmp 0x5a480
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/dialogs/colordlg.cpp
// Function: smooth::GUI::Dialogs::ColorSelection::ColorDlgRedEdit()
void S::GUI::Dialogs::ColorSelection::ColorDlgRedEdit()
{
	Int	 newred = Math::Max(0, Math::Min(255, (Int) rededit->GetText().ToInt()));

	if (newred != Color(acthue, actsat, actval, Color::HSV).ConvertTo(Color::RGB).GetRed())
	{
		actred = newred;

		updatetext = False;

		ColorDlgRedSlider();
	}
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
movq 0x40700(%rdi), %rdi
movq (%rdi), %rax
callq *0xa8(%rax)
movq %rax, %rdi
callq 0x57a10
movl $0xff, %ebp
cmpl %ebp, %eax
cmovll %eax, %ebp
xorl %eax, %eax
testl %ebp, %ebp
cmovlel %eax, %ebp
movl 0x618(%rbx), %eax
movl 0x61c(%rbx), %ecx
shll $0x10, %ecx
shll $0x8, %eax
orl 0x614(%rbx), %eax
orl %ecx, %eax
cltq
movq %rsp, %rsi
movq %rax, 0x8(%rsi)
movl $0x2, (%rsi)
leaq 0x10(%rsp), %r14
movq %r14, %rdi
xorl %edx, %edx
callq 0x58f90
movzbl 0x8(%r14), %eax
cmpl %eax, %ebp
je 0x67bf6
movl %ebp, 0x620(%rbx)
movb $0x0, 0x606(%rbx)
movq %rbx, %rdi
callq 0x5a538
addq $0x20, %rsp
popq %rbx
popq %r14
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/dialogs/colordlg.cpp
// Function: smooth::GUI::Dialogs::ColorSelection::ColorDlgGreenEdit()
void S::GUI::Dialogs::ColorSelection::ColorDlgGreenEdit()
{
	Int	 newgreen = Math::Max(0, Math::Min(255, (Int) greenedit->GetText().ToInt()));

	if (newgreen != Color(acthue, actsat, actval, Color::HSV).ConvertTo(Color::RGB).GetGreen())
	{
		actgreen = newgreen;

		updatetext = False;

		ColorDlgGreenSlider();
	}
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
movq 0x40708(%rdi), %rdi
movq (%rdi), %rax
callq *0xa8(%rax)
movq %rax, %rdi
callq 0x57a10
movl $0xff, %ebp
cmpl %ebp, %eax
cmovll %eax, %ebp
xorl %eax, %eax
testl %ebp, %ebp
cmovlel %eax, %ebp
movl 0x618(%rbx), %eax
movl 0x61c(%rbx), %ecx
shll $0x10, %ecx
shll $0x8, %eax
orl 0x614(%rbx), %eax
orl %ecx, %eax
cltq
movq %rsp, %rsi
movq %rax, 0x8(%rsi)
movl $0x2, (%rsi)
leaq 0x10(%rsp), %r14
movq %r14, %rdi
xorl %edx, %edx
callq 0x58f90
movzbl 0x9(%r14), %eax
cmpl %eax, %ebp
je 0x67c8a
movl %ebp, 0x624(%rbx)
movb $0x0, 0x606(%rbx)
movq %rbx, %rdi
callq 0x5a4c0
addq $0x20, %rsp
popq %rbx
popq %r14
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/dialogs/colordlg.cpp
// Function: smooth::GUI::Dialogs::ColorSelection::ColorDlgUpdateHexValue()
void S::GUI::Dialogs::ColorSelection::ColorDlgUpdateHexValue()
{
	hexval[0] = '#';
	hexval[1] = 48 + (actred / 16);
	hexval[2] = 48 + (actred % 16);
	hexval[3] = 48 + (actgreen / 16);
	hexval[4] = 48 + (actgreen % 16);
	hexval[5] = 48 + (actblue / 16);
	hexval[6] = 48 + (actblue % 16);

	for (Int i = 1; i < 7; i++)
	{
		if (hexval[i] > 57) hexval[i] = 'a' + (hexval[i] - 58);
	}

	hueslider->SetValue(acthue);
	satslider->SetValue(actsat);
	valslider->SetValue(actval);

	redslider->SetValue(actred);
	greenslider->SetValue(actgreen);
	blueslider->SetValue(actblue);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rdi, %rbx
leaq 0x40630(%rdi), %r14
movq %r14, %rdi
xorl %esi, %esi
callq 0x59cc0
movl $0x23, (%rax)
movl 0x620(%rbx), %eax
pushq $0x10
popq %r12
cltd
idivl %r12d
movl %eax, %r15d
addl $0x30, %r15d
pushq $0x1
popq %rbp
movq %r14, %rdi
movl %ebp, %esi
callq 0x59cc0
movl %r15d, (%rax)
movl 0x620(%rbx), %eax
cltd
idivl %r12d
movl %edx, %r15d
addl $0x30, %r15d
pushq $0x2
popq %rsi
movq %r14, %rdi
callq 0x59cc0
movl %r15d, (%rax)
movl 0x624(%rbx), %eax
cltd
idivl %r12d
movl %eax, %r15d
addl $0x30, %r15d
pushq $0x3
popq %rsi
movq %r14, %rdi
callq 0x59cc0
movl %r15d, (%rax)
movl 0x624(%rbx), %eax
cltd
idivl %r12d
movl %edx, %r15d
addl $0x30, %r15d
pushq $0x4
popq %rsi
movq %r14, %rdi
callq 0x59cc0
movl %r15d, (%rax)
movl 0x628(%rbx), %eax
cltd
idivl %r12d
movl %eax, %r15d
addl $0x30, %r15d
pushq $0x5
popq %rsi
movq %r14, %rdi
callq 0x59cc0
movl %r15d, (%rax)
movl 0x628(%rbx), %eax
cltd
idivl %r12d
movl %edx, %r15d
addl $0x30, %r15d
pushq $0x6
popq %rsi
movq %r14, %rdi
callq 0x59cc0
movl %r15d, (%rax)
cmpl $0x7, %ebp
je 0x67e40
movq %r14, %rdi
movl %ebp, %esi
callq 0x59cc0
cmpl $0x3a, (%rax)
jl 0x67e3c
movq %r14, %rdi
movl %ebp, %esi
callq 0x59cc0
movl (%rax), %r15d
addl $0x27, %r15d
movq %r14, %rdi
movl %ebp, %esi
callq 0x59cc0
movl %r15d, (%rax)
incl %ebp
jmp 0x67e0a
movq 0x40680(%rbx), %rdi
movl 0x614(%rbx), %esi
callq 0x56270
movq 0x40688(%rbx), %rdi
movl 0x618(%rbx), %esi
callq 0x56270
movq 0x40690(%rbx), %rdi
movl 0x61c(%rbx), %esi
callq 0x56270
movq 0x40698(%rbx), %rdi
movl 0x620(%rbx), %esi
callq 0x56270
movq 0x406a0(%rbx), %rdi
movl 0x624(%rbx), %esi
callq 0x56270
movq 0x406a8(%rbx), %rdi
movl 0x628(%rbx), %esi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x56270
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/dialogs/colordlg.cpp
// Function: smooth::GUI::Dialogs::ColorSelection::~ColorSelection()
S::GUI::Dialogs::ColorSelection::~ColorSelection()
{
	DeleteObject(titlebar);
	DeleteObject(divbar);
	DeleteObject(dlgwnd);
	DeleteObject(okbtn);
	DeleteObject(cancelbtn);
	DeleteObject(ncarea);
	DeleteObject(ocarea);
	DeleteObject(hueslider);
	DeleteObject(satslider);
	DeleteObject(valslider);
	DeleteObject(redslider);
	DeleteObject(greenslider);
	DeleteObject(blueslider);
	DeleteObject(huetext);
	DeleteObject(sattext);
	DeleteObject(valtext);
	DeleteObject(redtext);
	DeleteObject(greentext);
	DeleteObject(bluetext);
	DeleteObject(hueedit);
	DeleteObject(satedit);
	DeleteObject(valedit);
	DeleteObject(rededit);
	DeleteObject(greenedit);
	DeleteObject(blueedit);
	DeleteObject(hextext);
	DeleteObject(hexedit);
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0xf8be3(%rip), %rax     # 0x161a00
addq $0x10, %rax
movq %rax, (%rdi)
movq 0x40650(%rdi), %rdi
callq 0x5a010
movq 0x40658(%rbx), %rdi
callq 0x5a010
movq 0x40648(%rbx), %rdi
callq 0x5a010
movq 0x40660(%rbx), %rdi
callq 0x5a010
movq 0x40668(%rbx), %rdi
callq 0x5a010
movq 0x40670(%rbx), %rdi
callq 0x5a010
movq 0x40678(%rbx), %rdi
callq 0x5a010
movq 0x40680(%rbx), %rdi
callq 0x5a010
movq 0x40688(%rbx), %rdi
callq 0x5a010
movq 0x40690(%rbx), %rdi
callq 0x5a010
movq 0x40698(%rbx), %rdi
callq 0x5a010
movq 0x406a0(%rbx), %rdi
callq 0x5a010
movq 0x406a8(%rbx), %rdi
callq 0x5a010
movq 0x406b0(%rbx), %rdi
callq 0x5a010
movq 0x406b8(%rbx), %rdi
callq 0x5a010
movq 0x406c0(%rbx), %rdi
callq 0x5a010
movq 0x406c8(%rbx), %rdi
callq 0x5a010
movq 0x406d0(%rbx), %rdi
callq 0x5a010
movq 0x406d8(%rbx), %rdi
callq 0x5a010
movq 0x406e8(%rbx), %rdi
callq 0x5a010
movq 0x406f0(%rbx), %rdi
callq 0x5a010
movq 0x406f8(%rbx), %rdi
callq 0x5a010
movq 0x40700(%rbx), %rdi
callq 0x5a010
movq 0x40708(%rbx), %rdi
callq 0x5a010
movq 0x40710(%rbx), %rdi
callq 0x5a010
movq 0x406e0(%rbx), %rdi
callq 0x5a010
movq 0x40718(%rbx), %rdi
callq 0x5a010
leaq 0x40630(%rbx), %rdi
callq 0x5a588
movq %rbx, %rdi
popq %rbx
jmp 0x56b80
movq %rax, %rdi
callq 0x5bffa
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/dialogs/colordlg.cpp
// Function: smooth::GUI::Dialogs::ColorSelection::ShowDialog()
const Error &S::GUI::Dialogs::ColorSelection::ShowDialog()
{
	if (parentWindow != NIL) dlgwnd->SetMetrics(parentWindow->GetPosition() + Point(25, 25), Size(436, 286));
	if (caption != NIL)	 dlgwnd->SetText(caption);

	ColorDlgUpdatePickers();

	dlgwnd->WaitUntilClosed();

	return error;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
movq 0x5d0(%rdi), %rax
testq %rax, %rax
je 0x68ff7
movq 0x40648(%rbx), %rdi
movl 0xa8(%rax), %ecx
movl 0xac(%rax), %eax
addl $0x19, %ecx
addl $0x19, %eax
shlq $0x20, %rax
orq %rax, %rcx
leaq 0x8(%rsp), %rsi
movq %rcx, (%rsi)
movabsq $0x11e000001b4, %rax    # imm = 0x11E000001B4
leaq 0x10(%rsp), %rdx
movq %rax, (%rdx)
movq (%rdi), %rax
callq *0x150(%rax)
leaq 0x5b8(%rbx), %r14
movq %r14, %rdi
xorl %esi, %esi
callq 0x57d40
testb %al, %al
je 0x6901f
movq 0x40648(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0xa0(%rax)
movq %rbx, %rdi
callq 0x59640
movq 0x40648(%rbx), %rdi
callq 0x574a0
addq $0x5d8, %rbx            # imm = 0x5D8
movq %rbx, %rax
addq $0x18, %rsp
popq %rbx
popq %r14
retq
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/dialogs/colordlg.cpp
// Function: smooth::GUI::Dialogs::ColorSelection::SetColor(smooth::GUI::Color const&)
S::Int S::GUI::Dialogs::ColorSelection::SetColor(const Color &newColor)
{
	color = newColor;

	acthue = color.ConvertTo(Color::HSV).GetRed();
	actsat = color.ConvertTo(Color::HSV).GetGreen();
	actval = color.ConvertTo(Color::HSV).GetBlue();
	actred = color.GetRed();
	actgreen = color.GetGreen();
	actblue = color.GetBlue();

	ColorDlgUpdateHexValue();

	hueedit->SetText(String::FromInt(acthue));
	satedit->SetText(String::FromInt(actsat));
	valedit->SetText(String::FromInt(actval));
	rededit->SetText(String::FromInt(actred));
	greenedit->SetText(String::FromInt(actgreen));
	blueedit->SetText(String::FromInt(actblue));
	hexedit->SetText(hexval);

	return Success();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
leaq 0x5e8(%rdi), %r14
movups (%rsi), %xmm0
movups %xmm0, 0x5e8(%rdi)
movq %rsp, %r15
pushq $0x2
popq %rbp
movq %r15, %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x58f90
movzbl 0x8(%r15), %eax
movl %eax, 0x614(%rbx)
movq %rsp, %r15
movq %r15, %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x58f90
movzbl 0x9(%r15), %eax
movl %eax, 0x618(%rbx)
movq %rsp, %r15
movq %r15, %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x58f90
movzbl 0xa(%r15), %eax
movl %eax, 0x61c(%rbx)
movl 0x5f0(%rbx), %eax
movl $0xff, %ecx
movl %eax, %edx
andl %ecx, %edx
movl %edx, 0x620(%rbx)
movl %eax, %edx
shrl $0x8, %edx
andl %ecx, %edx
movl %edx, 0x624(%rbx)
shrl $0x10, %eax
andl %ecx, %eax
movl %eax, 0x628(%rbx)
movq %rbx, %rdi
callq 0x59de0
movq 0x406e8(%rbx), %r14
movslq 0x614(%rbx), %rsi
movq %rsp, %r15
movq %r15, %rdi
callq 0x57e80
movq (%r14), %rax
movq %r14, %rdi
movq %r15, %rsi
callq *0xa0(%rax)
movq %rsp, %rdi
callq 0x5a588
movq 0x406f0(%rbx), %r14
movslq 0x618(%rbx), %rsi
movq %rsp, %r15
movq %r15, %rdi
callq 0x57e80
movq (%r14), %rax
movq %r14, %rdi
movq %r15, %rsi
callq *0xa0(%rax)
movq %rsp, %rdi
callq 0x5a588
movq 0x406f8(%rbx), %r14
movslq 0x61c(%rbx), %rsi
movq %rsp, %r15
movq %r15, %rdi
callq 0x57e80
movq (%r14), %rax
movq %r14, %rdi
movq %r15, %rsi
callq *0xa0(%rax)
movq %rsp, %rdi
callq 0x5a588
movq 0x40700(%rbx), %r14
movslq 0x620(%rbx), %rsi
movq %rsp, %r15
movq %r15, %rdi
callq 0x57e80
movq (%r14), %rax
movq %r14, %rdi
movq %r15, %rsi
callq *0xa0(%rax)
movq %rsp, %rdi
callq 0x5a588
movq 0x40708(%rbx), %r14
movslq 0x624(%rbx), %rsi
movq %rsp, %r15
movq %r15, %rdi
callq 0x57e80
movq (%r14), %rax
movq %r14, %rdi
movq %r15, %rsi
callq *0xa0(%rax)
movq %rsp, %rdi
callq 0x5a588
movq 0x40710(%rbx), %r14
movslq 0x628(%rbx), %rsi
movq %rsp, %r15
movq %r15, %rdi
callq 0x57e80
movq (%r14), %rax
movq %r14, %rdi
movq %r15, %rsi
callq *0xa0(%rax)
movq %rsp, %rdi
callq 0x5a588
movq 0x40718(%rbx), %rdi
addq $0x40630, %rbx          # imm = 0x40630
movq (%rdi), %rax
movq %rbx, %rsi
callq *0xa0(%rax)
xorl %eax, %eax
addq $0x18, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x699c8
jmp 0x699c8
jmp 0x699c8
jmp 0x699c8
jmp 0x699c8
movq %rax, %rbx
movq %rsp, %rdi
callq 0x5a588
movq %rbx, %rdi
callq 0x58260
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/dialogs/messagebox.cpp
// Function: smooth::GUI::Dialogs::QuickMessage(smooth::String const&, smooth::String const&, int, smooth::GUI::Bitmap const&)
S::Int S::GUI::Dialogs::QuickMessage(const String &text, const String &title, Int buttons, const Bitmap &icon)
{
	MessageDlg	*app = new MessageDlg(text, title, buttons, icon);

	app->ShowDialog();

	Int		 rVal = app->GetButtonCode();

	Object::DeleteObject(app);

	return rVal;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
movq %rcx, %r14
movl %edx, %ebp
movq %rsi, %r15
movq %rdi, %r12
movl $0x6d8, %edi            # imm = 0x6D8
callq 0x56700
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0x5a180
andq $0x0, (%rsp)
leaq 0x8(%rsp), %r9
movq %rbx, %rdi
movq %r12, %rsi
movq %r15, %rdx
movl %ebp, %ecx
movq %r14, %r8
callq 0x58d70
leaq 0x8(%rsp), %rdi
callq 0x5a588
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x168(%rax)
movl 0x6c0(%rbx), %ebp
movq %rbx, %rdi
callq 0x5a010
movl %ebp, %eax
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x5a588
jmp 0x69f5a
movq %rax, %r14
movl $0x6d8, %esi            # imm = 0x6D8
movq %rbx, %rdi
callq 0x564c0
movq %r14, %rdi
callq 0x58260
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/dialogs/messagebox.cpp
// Function: smooth::GUI::Dialogs::QuickMessage(smooth::String const&, smooth::String const&, int, int)
S::Int S::GUI::Dialogs::QuickMessage(const String &text, const String &title, Int buttons, Int iconID)
{
	MessageDlg	*app = new MessageDlg(text, title, buttons, iconID);

	app->ShowDialog();

	Int		 rVal = app->GetButtonCode();

	Object::DeleteObject(app);

	return rVal;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
movl %ecx, %ebp
movl %edx, %r14d
movq %rsi, %r15
movq %rdi, %r12
movl $0x6d8, %edi            # imm = 0x6D8
callq 0x56700
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0x5a180
andq $0x0, (%rsp)
leaq 0x8(%rsp), %r9
movq %rbx, %rdi
movq %r12, %rsi
movq %r15, %rdx
movl %r14d, %ecx
movl %ebp, %r8d
callq 0x59010
leaq 0x8(%rsp), %rdi
callq 0x5a588
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x168(%rax)
movl 0x6c0(%rbx), %ebp
movq %rbx, %rdi
callq 0x5a010
movl %ebp, %eax
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x5a588
jmp 0x6a00a
movq %rax, %r14
movl $0x6d8, %esi            # imm = 0x6D8
movq %rbx, %rdi
callq 0x564c0
movq %r14, %rdi
callq 0x58260
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/dialogs/messagebox.cpp
// Function: smooth::GUI::Dialogs::MessageDlg::~MessageDlg()
S::GUI::Dialogs::MessageDlg::~MessageDlg()
{
	foreach (Button *button, buttonWidgets) DeleteObject(button);

	DeleteObject(layer);
	DeleteObject(icon);
	DeleteObject(titlebar);
	DeleteObject(msgbox);

	if (checkbox != NIL) DeleteObject(checkbox);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0xf6827(%rip), %rax     # 0x161d10
addq $0x10, %rax
movq %rax, (%rdi)
leaq 0x668(%rdi), %r14
xorl %r15d, %r15d
leal -0x1(%r15), %eax
movl 0x670(%rbx), %ecx
decl %ecx
cmpl %ecx, %eax
jge 0x6b522
movq %r14, %rdi
movl %r15d, %esi
callq 0x6180a
movq (%rax), %rdi
callq 0x5a010
incl %r15d
jmp 0x6b4fa
movq 0x600(%rbx), %rdi
callq 0x5a010
movq 0x608(%rbx), %rdi
callq 0x5a010
movq 0x5f8(%rbx), %rdi
callq 0x5a010
movq 0x5f0(%rbx), %rdi
callq 0x5a010
movq 0x6c8(%rbx), %rdi
testq %rdi, %rdi
je 0x6b563
callq 0x5a010
movq %r14, %rdi
callq 0x5c22c
leaq 0x610(%rbx), %rdi
callq 0x64988
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0x56b80
jmp 0x6b586
movq %rax, %rdi
callq 0x5bffa
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/dialogs/messagebox.cpp
// Function: smooth::GUI::Dialogs::MessageDlg::MessageButton(int)
S::Void S::GUI::Dialogs::MessageDlg::MessageButton(Int buttonID)
{
	if	(buttonLabels.GetNth(buttonID) == "OK")	    buttonCode = Message::Button::Ok;
	else if	(buttonLabels.GetNth(buttonID) == "Cancel") buttonCode = Message::Button::Cancel;
	else if	(buttonLabels.GetNth(buttonID) == "Yes")    buttonCode = Message::Button::Yes;
	else if	(buttonLabels.GetNth(buttonID) == "No")	    buttonCode = Message::Button::No;
	else if	(buttonLabels.GetNth(buttonID) == "Retry")  buttonCode = Message::Button::Retry;
	else if	(buttonLabels.GetNth(buttonID) == "Abort")  buttonCode = Message::Button::Abort;
	else if	(buttonLabels.GetNth(buttonID) == "Ignore") buttonCode = Message::Button::Ignore;

	msgbox->Close();
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movl %esi, %ebp
movq %rdi, %rbx
leaq 0x610(%rdi), %r14
movq %r14, %rdi
callq 0x6bb28
leaq 0xb28c9(%rip), %rsi     # 0x11deb4
movq %rax, %rdi
callq 0x59180
testb %al, %al
je 0x6b5fe
pushq $0x1
jmp 0x6b6c8
movq %r14, %rdi
movl %ebp, %esi
callq 0x6bb28
leaq 0x78211(%rip), %rsi     # 0xe3820
movq %rax, %rdi
callq 0x59180
testb %al, %al
je 0x6b622
pushq $0x2
jmp 0x6b6c8
movq %r14, %rdi
movl %ebp, %esi
callq 0x6bb28
leaq 0x783f9(%rip), %rsi     # 0xe3a2c
movq %rax, %rdi
callq 0x59180
testb %al, %al
je 0x6b646
pushq $0x6
jmp 0x6b6c8
movq %r14, %rdi
movl %ebp, %esi
callq 0x6bb28
leaq 0x783d9(%rip), %rsi     # 0xe3a30
movq %rax, %rdi
callq 0x59180
testb %al, %al
je 0x6b667
pushq $0x7
jmp 0x6b6c8
movq %r14, %rdi
movl %ebp, %esi
callq 0x6bb28
leaq 0x783bb(%rip), %rsi     # 0xe3a33
movq %rax, %rdi
callq 0x59180
testb %al, %al
je 0x6b688
pushq $0x4
jmp 0x6b6c8
movq %r14, %rdi
movl %ebp, %esi
callq 0x6bb28
leaq 0x783a0(%rip), %rsi     # 0xe3a39
movq %rax, %rdi
callq 0x59180
testb %al, %al
je 0x6b6a9
pushq $0x3
jmp 0x6b6c8
movq %r14, %rdi
movl %ebp, %esi
callq 0x6bb28
leaq 0x78385(%rip), %rsi     # 0xe3a3f
movq %rax, %rdi
callq 0x59180
testb %al, %al
je 0x6b6cf
pushq $0x5
popq %rax
movl %eax, 0x6c0(%rbx)
movq 0x5f0(%rbx), %rdi
popq %rbx
popq %r14
popq %rbp
jmp 0x59700
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/dialogs/splashscreen.cpp
// Function: smooth::GUI::Dialogs::SplashScreen::SplashPaintProc()
S::Void S::GUI::Dialogs::SplashScreen::SplashPaintProc()
{
	Surface	*surface = splashscreen->GetDrawSurface();
	Rect	 bmpRect;

	bmpRect.left	= 1;
	bmpRect.top	= 1;
	bmpRect.right	= bmpRect.left + bitmap.GetSize().cx;
	bmpRect.bottom	= bmpRect.top + bitmap.GetSize().cy;

	surface->BlitFromBitmap(bitmap, Rect(Point(0, 0), bitmap.GetSize()), bmpRect);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
movq 0x5f8(%rdi), %rdi
movq (%rdi), %rax
callq *0x40(%rax)
movq %rax, %r15
movabsq $0x100000001, %rax      # imm = 0x100000001
leaq 0x10(%rsp), %r14
movq %rax, (%r14)
addq $0x5f0, %rbx            # imm = 0x5F0
movq %rbx, %rdi
callq 0x596e0
movl (%rax), %eax
incl %eax
movl %eax, 0x8(%r14)
movq %rbx, %rdi
callq 0x596e0
movl 0x4(%rax), %eax
incl %eax
movl %eax, 0xc(%r14)
movq %rbx, %rdi
callq 0x596e0
movq %rsp, %rdx
andq $0x0, (%rdx)
movq (%rax), %rax
movq %rax, 0x8(%rdx)
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rcx
callq 0x56c20
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/dialogs/splashscreen.cpp
// Function: smooth::GUI::Dialogs::SplashScreen::ShowDialog()
const Error &S::GUI::Dialogs::SplashScreen::ShowDialog()
{
	splashscreen->Show();

	timer->Start(time);

	splashscreen->WaitUntilClosed();

	return error;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x5f8(%rdi), %rdi
movq (%rdi), %rax
callq *0x58(%rax)
movq 0x600(%rbx), %rdi
movl 0x5e8(%rbx), %esi
callq 0x56100
movq 0x5f8(%rbx), %rdi
callq 0x574a0
addq $0x5d8, %rbx            # imm = 0x5D8
movq %rbx, %rax
popq %rbx
retq
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/dialogs/tipodaydlg.cpp
// Function: smooth::GUI::Dialogs::TipOfTheDay::OnNext()
S::Void S::GUI::Dialogs::TipOfTheDay::OnNext()
{
	if (tips.Length() <= 1) return;

	String	 tip;

	switch (mode)
	{
		case TIP_ORDERED:
			tip = tips.GetNth(offset++);

			if (offset == tips.Length()) offset = 0;

			break;
		case TIP_RANDOM:
			Math::RandomSeed();

			do
			{
				tip = tips.GetNth(Math::Random() % tips.Length());
			}
			while (tip == txt_tip->GetText());

			break;
	}

	txt_tip->SetText(tip);

	OnPaint();
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
cmpl $0x2, 0x648(%rdi)
jl 0x6ca55
movq %rdi, %rbx
leaq 0x640(%rdi), %r14
leaq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0x5a180
movl 0x698(%rbx), %eax
cmpl $0x1, %eax
je 0x6c9e4
testl %eax, %eax
jne 0x6ca2e
movl 0x69c(%rbx), %esi
leal 0x1(%rsi), %eax
movl %eax, 0x69c(%rbx)
movq %r14, %rdi
callq 0x6bb28
leaq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x56630
movl 0x69c(%rbx), %eax
cmpl 0x648(%rbx), %eax
jne 0x6ca2e
andl $0x0, 0x69c(%rbx)
jmp 0x6ca2e
callq 0x568f0
leaq 0x8(%rsp), %r15
callq 0x57090
cltd
idivl 0x648(%rbx)
movq %r14, %rdi
movl %edx, %esi
callq 0x6bb28
movq %r15, %rdi
movq %rax, %rsi
callq 0x56630
movq 0x628(%rbx), %rdi
movq (%rdi), %rax
callq *0xa8(%rax)
movq %r15, %rdi
movq %rax, %rsi
callq 0x56960
testb %al, %al
jne 0x6c9ee
movq 0x628(%rbx), %rdi
movq (%rdi), %rax
leaq 0x8(%rsp), %rsi
callq *0xa0(%rax)
movq %rbx, %rdi
callq 0x5a4e8
leaq 0x8(%rsp), %rdi
callq 0x5a588
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x6ca61
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x5a588
movq %rbx, %rdi
callq 0x58260
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/dialogs/tipodaydlg.cpp
// Function: smooth::GUI::Dialogs::TipOfTheDay::~TipOfTheDay()
S::GUI::Dialogs::TipOfTheDay::~TipOfTheDay()
{
	DeleteObject(dlgwnd);

	DeleteObject(titlebar);
	DeleteObject(divbar);

	DeleteObject(btn_ok);
	DeleteObject(btn_next);
	DeleteObject(check_showtips);

	DeleteObject(img_light);
	DeleteObject(txt_didyouknow);

	DeleteObject(layer_inner);

	DeleteObject(txt_tip);
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0xf543d(%rip), %rax     # 0x161f60
addq $0x10, %rax
movq %rax, (%rdi)
movq 0x5e8(%rdi), %rdi
callq 0x5a010
movq 0x5f0(%rbx), %rdi
callq 0x5a010
movq 0x5f8(%rbx), %rdi
callq 0x5a010
movq 0x600(%rbx), %rdi
callq 0x5a010
movq 0x608(%rbx), %rdi
callq 0x5a010
movq 0x610(%rbx), %rdi
callq 0x5a010
movq 0x618(%rbx), %rdi
callq 0x5a010
movq 0x620(%rbx), %rdi
callq 0x5a010
movq 0x630(%rbx), %rdi
callq 0x5a010
movq 0x628(%rbx), %rdi
callq 0x5a010
leaq 0x640(%rbx), %rdi
callq 0x64988
movq %rbx, %rdi
popq %rbx
jmp 0x56b80
movq %rax, %rdi
callq 0x5bffa
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/layer.cpp
// Function: smooth::GUI::Layer::Layer(smooth::String const&)
S::GUI::Layer::Layer(const String &name) : Widget(Point(0, 0), Size(32768, 32768))
{
	type	    = classID;

	text	    = name;
	orientation = OR_CENTER;

	ComputeTextSize();
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x18, %rsp
movq %rsi, %r14
leaq 0x10(%rsp), %rsi
andq $0x0, (%rsi)
movq %rdi, %rbx
movabsq $0x800000008000, %rax   # imm = 0x800000008000
leaq 0x8(%rsp), %rdx
movq %rax, (%rdx)
callq 0x58c80
movq 0xf4698(%rip), %rax     # 0x161ac8
addq $0x10, %rax
movq %rax, (%rbx)
movq 0xf43c2(%rip), %rax     # 0x161800
movzwl (%rax), %eax
movw %ax, 0x20(%rbx)
leaq 0xf0(%rbx), %rdi
movq %r14, %rsi
callq 0x56630
movw $0x40, 0xd0(%rbx)
movq %rbx, %rdi
callq 0x56c30
addq $0x18, %rsp
popq %rbx
popq %r14
retq
movq %rax, %r14
movq %rbx, %rdi
callq 0x58860
movq %r14, %rdi
callq 0x58260
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/layer.cpp
// Function: smooth::GUI::Layer::Paint(int)
S::Int S::GUI::Layer::Paint(Int message)
{
	if (!IsRegistered()) return Error();
	if (!IsVisible())    return Success();

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

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

			break;
	}

	return Widget::Paint(message);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %esi, %ebx
movq %rdi, %r14
movq (%rdi), %rax
callq *0x88(%rax)
testb %al, %al
je 0x6d56f
movq (%r14), %rax
movq %r14, %rdi
callq *0x90(%rax)
movl %eax, %ecx
xorl %eax, %eax
testb %cl, %cl
je 0x6d572
testl %ebx, %ebx
jne 0x6d563
movq (%r14), %rax
movq %r14, %rdi
callq *0x148(%rax)
testb %al, %al
je 0x6d563
movq (%r14), %rax
movq %r14, %rdi
callq *0x40(%rax)
movq %rax, %r15
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 0x8(%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 *0x140(%rax)
movq 0xf4a5c(%rip), %rcx     # 0x161fa8
movl (%rcx), %ecx
movq %rsp, %r8
andq $0x0, (%r8)
movq %r15, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq 0x58b80
movq %r14, %rdi
movl %ebx, %esi
callq 0x57910
jmp 0x6d572
pushq $-0x1
popq %rax
addq $0x18, %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/widget.cpp
// Function: smooth::GUI::Widget::~Widget()
S::GUI::Widget::~Widget()
{
	/* Clean up everything in case this widget
	 * is not deleted using DeleteObject.
	 */
	DeactivateTooltip();

	CloseContextMenu();

	while (widgets.Length()) Remove(widgets.GetFirst());

	widgets.RemoveAll();

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

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0xf3b50(%rip), %rax     # 0x161a48
addq $0x10, %rax
movq %rax, (%rdi)
callq 0x5a590
movq %rbx, %rdi
callq 0x5a4a8
leaq 0x38(%rbx), %r14
cmpl $0x0, 0x40(%rbx)
je 0x6df2c
movq %r14, %rdi
callq 0x6185c
movq (%rax), %rsi
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x38(%rax)
jmp 0x6df10
movq %r14, %rdi
callq 0x5bef6
cmpb $0x1, 0xca(%rbx)
jne 0x6df52
movq 0x190(%rbx), %rdi
testq %rdi, %rdi
je 0x6df52
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x38(%rax)
leaq 0x598(%rbx), %rdi
callq 0x700e0
leaq 0x578(%rbx), %rdi
callq 0x700fa
leaq 0x558(%rbx), %rdi
callq 0x700fa
leaq 0x538(%rbx), %rdi
callq 0x700e0
leaq 0x518(%rbx), %rdi
callq 0x700e0
leaq 0x4f8(%rbx), %rdi
callq 0x700e0
leaq 0x4d8(%rbx), %rdi
callq 0x700e0
leaq 0x4b8(%rbx), %rdi
callq 0x700e0
leaq 0x498(%rbx), %rdi
callq 0x700e0
leaq 0x478(%rbx), %rdi
callq 0x700e0
leaq 0x458(%rbx), %rdi
callq 0x70114
leaq 0x438(%rbx), %rdi
callq 0x7012e
leaq 0x418(%rbx), %rdi
callq 0x7012e
leaq 0x3f8(%rbx), %rdi
callq 0x7012e
leaq 0x3d8(%rbx), %rdi
callq 0x7012e
leaq 0x3b8(%rbx), %rdi
callq 0x7012e
leaq 0x398(%rbx), %rdi
callq 0x7012e
leaq 0x378(%rbx), %rdi
callq 0x7012e
leaq 0x358(%rbx), %rdi
callq 0x7012e
leaq 0x338(%rbx), %rdi
callq 0x7012e
leaq 0x318(%rbx), %rdi
callq 0x7012e
leaq 0x2f8(%rbx), %rdi
callq 0x7012e
leaq 0x2d8(%rbx), %rdi
callq 0x700e0
leaq 0x2b8(%rbx), %rdi
callq 0x700e0
leaq 0x298(%rbx), %rdi
callq 0x70148
leaq 0x278(%rbx), %rdi
callq 0x7012e
leaq 0x258(%rbx), %rdi
callq 0x700e0
leaq 0x238(%rbx), %rdi
callq 0x700e0
leaq 0x218(%rbx), %rdi
callq 0x700e0
leaq 0x1f8(%rbx), %rdi
callq 0x700e0
leaq 0x1d0(%rbx), %rdi
callq 0x70162
leaq 0x1a8(%rbx), %rdi
callq 0x7017c
leaq 0x140(%rbx), %rdi
callq 0x57860
leaq 0x120(%rbx), %rdi
callq 0x5a588
leaq 0x108(%rbx), %rdi
callq 0x5a588
leaq 0xf0(%rbx), %rdi
callq 0x5a588
movq %r14, %rdi
callq 0x5c22c
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x56d00
jmp 0x6e11b
movq %rax, %rdi
callq 0x5bffa
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::DeactivateTooltip()
S::Void S::GUI::Widget::DeactivateTooltip()
{
	Application::Lock	 lock;

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

		DeleteObject(tipTimer);

		tipTimer = NIL;
	}

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

		tooltip->Hide();

		DeleteObject(tooltip);

		tooltip = NIL;
	}
}

// Assembly:
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
callq 0x56460
movq 0xa0(%rbx), %rdi
testq %rdi, %rdi
je 0x6e156
callq 0x5a518
movq 0xa0(%rbx), %rdi
callq 0x5a010
andq $0x0, 0xa0(%rbx)
cmpq $0x0, 0x90(%rbx)
je 0x6e199
movq 0xf3621(%rip), %rdi     # 0x161788
movq 0xf3e52(%rip), %rsi     # 0x161fc0
xorl %edx, %edx
movq %rbx, %rcx
callq 0x704e4
movq 0x90(%rbx), %rdi
movq (%rdi), %rax
callq *0x60(%rax)
movq 0x90(%rbx), %rdi
callq 0x5a010
andq $0x0, 0x90(%rbx)
leaq 0xf(%rsp), %rdi
callq 0x563d0
addq $0x10, %rsp
popq %rbx
retq
movq %rax, %rbx
leaq 0xf(%rsp), %rdi
callq 0x563d0
movq %rbx, %rdi
callq 0x58260
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::CloseContextMenu()
S::Void S::GUI::Widget::CloseContextMenu()
{
	if (contextMenu != NIL)
	{
		contextMenu->internalRequestClose.Disconnect(&Widget::CloseContextMenu, this);

		Remove(contextMenu);

		contextMenu = NIL;

		onCloseContextMenu.Emit();
	}
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x198(%rdi), %rdi
testq %rdi, %rdi
je 0x6e20e
addq $0x698, %rdi            # imm = 0x698
movq 0xf334c(%rip), %rsi     # 0x161528
xorl %edx, %edx
movq %rbx, %rcx
callq 0x7054e
movq (%rbx), %rax
movq 0x198(%rbx), %rsi
movq %rbx, %rdi
callq *0x38(%rax)
andq $0x0, 0x198(%rbx)
addq $0x4b8, %rbx            # imm = 0x4B8
movq %rbx, %rdi
popq %rbx
jmp 0x70196
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::EnableLocking(bool)
S::Int S::GUI::Widget::EnableLocking(Bool enable)
{
	if (enable) widgets.EnableLocking();
	else	    widgets.DisableLocking();

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

	return Object::EnableLocking(enable);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movl %esi, %ebp
movq %rdi, %rbx
leaq 0x38(%rdi), %r14
movq %r14, %rdi
testl %esi, %esi
je 0x6e246
callq 0x583a0
jmp 0x6e24b
callq 0x58a50
xorl %r15d, %r15d
movzbl %bpl, %ebp
leal -0x1(%r15), %eax
movl 0x40(%rbx), %ecx
decl %ecx
cmpl %ecx, %eax
jge 0x6e27a
movq %r14, %rdi
movl %r15d, %esi
callq 0x6180a
movq (%rax), %rdi
movq (%rdi), %rax
movl %ebp, %esi
callq *0x18(%rax)
incl %r15d
jmp 0x6e252
movq %rbx, %rdi
movl %ebp, %esi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x56b70
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::EnqueueForDeletion()
S::Void S::GUI::Widget::EnqueueForDeletion()
{
	onEnqueueForDeletion.Emit();

	DeactivateTooltip();

	CloseContextMenu();

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

// Assembly:
pushq %rbx
movq %rdi, %rbx
addq $0x598, %rdi            # imm = 0x598
callq 0x70196
movq %rbx, %rdi
callq 0x5a590
movq %rbx, %rdi
callq 0x5a4a8
cmpb $0x1, 0xca(%rbx)
jne 0x6e2d0
movq 0x190(%rbx), %rdi
testq %rdi, %rdi
je 0x6e2d0
movq (%rdi), %rax
movq 0x38(%rax), %rax
movq %rbx, %rsi
popq %rbx
jmpq *%rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::Add(smooth::GUI::Widget*)
S::Int S::GUI::Widget::Add(Widget *widget)
{
	if (widget == NIL) return Error();

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

		widget->EnableLocking(IsLockingEnabled());

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

		widget->onRegister.Emit(this);

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

			widget->Show();
		}

		return Success();
	}

	return Error();
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rsi, 0x8(%rsp)
pushq $-0x1
popq %rbp
testq %rsi, %rsi
je 0x6e35a
movq %rsi, %r14
movq %rdi, %rbx
movq (%rsi), %rax
movq %rsi, %rdi
callq *0x88(%rax)
testb %al, %al
jne 0x6e35a
leaq 0x38(%rbx), %rdi
movl 0x8(%r14), %edx
leaq 0x8(%rsp), %r14
movq %r14, %rsi
callq 0x70208
movq (%r14), %rdi
movzbl 0x18(%rbx), %esi
movq (%rdi), %rax
callq *0x18(%rax)
movq (%r14), %rdi
movq %rbx, 0x190(%rdi)
movb $0x1, 0xca(%rdi)
addq $0x558, %rdi            # imm = 0x558
movq %rbx, %rsi
callq 0x7021a
movq (%r14), %rdi
xorl %ebp, %ebp
cmpb $0x1, 0xcb(%rdi)
jne 0x6e35a
movb $0x0, 0xcb(%rdi)
movq (%rdi), %rax
callq *0x58(%rax)
movl %ebp, %eax
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::Remove(smooth::GUI::Widget*)
S::Int S::GUI::Widget::Remove(Widget *widget)
{
	if (widget == NIL) return Error();

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

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

			widget->visible = True;

			return Success();
		}
	}

	return Error();
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
pushq $-0x1
popq %rbp
testq %rsi, %rsi
je 0x6e3c3
movq %rsi, %rbx
movq %rdi, %r14
movq (%rsi), %rax
movq %rsi, %rdi
callq *0x88(%rax)
testb %al, %al
je 0x6e3c3
leaq 0x38(%r14), %rdi
movl 0x8(%rbx), %esi
callq 0x59f00
testb %al, %al
je 0x6e3c3
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x60(%rax)
leaq 0x578(%rbx), %rdi
movq %r14, %rsi
callq 0x7021a
movw $0x100, 0xca(%rbx)      # imm = 0x100
andq $0x0, 0x190(%rbx)
xorl %ebp, %ebp
movl %ebp, %eax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::GetContainerWindow() const
S::GUI::Window *S::GUI::Widget::GetContainerWindow() const
{
	Widget	*widget = const_cast<Widget *>(this);

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

		widget = widget->GetContainer();
	}

	return (Window *) widget;
}

// Assembly:
pushq %rbp
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0xf3451(%rip), %rax     # 0x161828
movswl (%rax), %ebp
leaq 0x20(%rbx), %rdi
movl %ebp, %esi
callq 0x5a150
testb %al, %al
je 0x6e3f7
movq 0x190(%rbx), %rbx
testq %rbx, %rbx
jne 0x6e3da
xorl %ebx, %ebx
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::GetPreviousTabstopWidget(int) const
S::GUI::Widget *S::GUI::Widget::GetPreviousTabstopWidget(Int widgetHandle) const
{
	Widget	*lastTabstopObject = NIL;

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

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

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

	if (widgetHandle == 0) return lastTabstopObject;

	return NIL;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %esi, %ebx
movq %rdi, %r14
xorl %r12d, %r12d
movl $0x0, %eax
testl %esi, %esi
je 0x6e461
cmpb $0x0, 0xca(%r14)
je 0x6e461
movq 0x190(%r14), %rdi
movl 0x8(%r14), %esi
callq 0x58f80
movq %rax, 0x8(%rsp)
leaq 0x38(%r14), %rdi
pushq $-0x1
popq %rbp
movq %rdi, 0x10(%rsp)
testl %r12d, %r12d
jne 0x6e51d
movl 0x40(%r14), %eax
decl %eax
cmpl %eax, %ebp
jge 0x6e51d
incl %ebp
movl %ebp, %esi
callq 0x70f08
movq (%rax), %r13
movb $0x1, %r15b
pushq $-0x1
popq %r12
testb $0x1, %r15b
je 0x6e4ff
cmpl %ebx, 0x8(%r13)
je 0x6e509
cmpb $0x1, 0xd2(%r13)
jne 0x6e4c3
movq (%r13), %rax
movq %r13, %rdi
callq *0x98(%rax)
testb %al, %al
jne 0x6e4f2
xorl %r15d, %r15d
movq %r13, %rdi
xorl %esi, %esi
callq 0x58f80
movl $0x0, %r12d
testq %rax, %rax
je 0x6e49c
xorl %r15d, %r15d
movq %r13, %rdi
xorl %esi, %esi
callq 0x58f80
movq %rax, 0x8(%rsp)
xorl %r12d, %r12d
jmp 0x6e49c
xorl %r15d, %r15d
movq %r13, 0x8(%rsp)
xorl %r12d, %r12d
jmp 0x6e49c
movq 0x10(%rsp), %rdi
jmp 0x6e472
movq 0x8(%rsp), %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %ecx, %ecx
testl %ebx, %ebx
movq 0x8(%rsp), %rax
cmovneq %rcx, %rax
jmp 0x6e50e
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::GetNextTabstopWidget(int) const
S::GUI::Widget *S::GUI::Widget::GetNextTabstopWidget(Int widgetHandle) const
{
	Bool	 found = False;

	if (widgetHandle == 0) found = True;

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

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

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

	return NIL;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %esi, %r13d
movq %rdi, %r15
movq $0x0, 0x8(%rsp)
movl %r13d, %r12d
movq %r15, %rbx
testl %r13d, %r13d
sete %r14b
leaq 0x38(%r15), %rax
movq %rax, 0x10(%rsp)
pushq $-0x1
popq %rbp
movl 0x40(%rbx), %eax
decl %eax
cmpl %eax, %ebp
jge 0x6e5d7
incl %ebp
movq 0x10(%rsp), %rdi
movl %ebp, %esi
callq 0x70f08
movq (%rax), %r15
movb $0x1, %al
movl %r14d, %ecx
xorb $0x1, %cl
testb $0x1, %al
je 0x6e562
movl 0x8(%r15), %eax
cmpl %r12d, %eax
sete %dl
orb %cl, %dl
testb $0x1, %dl
je 0x6e5a6
cmpl %r12d, %eax
sete %al
orb %al, %r14b
xorl %eax, %eax
jmp 0x6e57e
cmpb $0x1, 0xd2(%r15)
jne 0x6e5c0
movq (%r15), %rax
movq %r15, %rdi
callq *0x98(%rax)
testb %al, %al
jne 0x6e5f5
xorl %r13d, %r13d
movq %r15, %rdi
xorl %esi, %esi
callq 0x570b0
testq %rax, %rax
je 0x6e562
jmp 0x6e549
testl %r12d, %r12d
je 0x6e5fa
cmpb $0x0, 0xca(%rbx)
je 0x6e5fa
movq 0x190(%rbx), %r15
movl 0x8(%rbx), %r13d
jmp 0x6e549
movq %r15, 0x8(%rsp)
movq 0x8(%rsp), %rax
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/widget.cpp
// Function: smooth::GUI::Widget::ComputeTextSize()
S::Void S::GUI::Widget::ComputeTextSize()
{
	scaledTextSize.cx = font.GetScaledTextSizeX(text);
	scaledTextSize.cy = font.GetScaledTextSizeY(text);

	Float	 dpi = Surface().GetSurfaceDPI();

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

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
leaq 0x140(%rdi), %r14
leaq 0xf0(%rdi), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x57870
movl %eax, 0x188(%rbx)
movq %r14, %rdi
movq %r15, %rsi
callq 0x588a0
movl %eax, 0x18c(%rbx)
leaq 0x18(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0x8(%rsp), %r14
movq %r14, %rdi
xorl %esi, %esi
callq 0x58340
movq %r14, %rdi
callq 0x59c60
leaq 0x188(%rbx), %r14
cwtl
cvtsi2sd %eax, %xmm0
movsd %xmm0, 0x10(%rsp)
leaq 0x8(%rsp), %rdi
callq 0x58d90
movsd 0x74e72(%rip), %xmm0    # 0xe3500
addsd 0x10(%rsp), %xmm0
callq 0x566a0
movsd 0x74e67(%rip), %xmm1    # 0xe3508
ucomisd %xmm0, %xmm1
jbe 0x6e6ac
movq (%r14), %rax
jmp 0x6e6cf
movsd 0x74e5c(%rip), %xmm0    # 0xe3510
movq %r14, %rdi
callq 0x57480
leaq 0x8(%rsp), %rdi
movq %rax, (%rdi)
movsd 0x10(%rsp), %xmm0
callq 0x59050
movq %rax, 0x180(%rbx)
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x58d90
movq %rbx, %rdi
callq 0x58260
nop
// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::GetRealPosition() const
S::GUI::Point S::GUI::Widget::GetRealPosition() const
{
	if (!registered)  return pos;
	if (realPosValid) return realPos;

	Surface	*surface = GetDrawSurface();

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

	realPos	= containerPos + scaledPos;

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

	realPosValid = True;

	return realPos;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
cmpb $0x0, 0xca(%rdi)
je 0x6e764
cmpb $0x1, 0xc8(%rbx)
jne 0x6e773
addq $0xb8, %rbx
jmp 0x6e76b
addq $0xa8, %rbx
movq %rbx, %rcx
jmp 0x6e847
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x40(%rax)
movq %rax, 0x8(%rsp)
movq 0x190(%rbx), %rdi
movq (%rdi), %rax
callq *0x48(%rax)
movq %rax, %rbp
movq %rax, %r12
shrq $0x20, %r12
movq 0x190(%rbx), %rdi
movq (%rdi), %rax
callq *0x50(%rax)
movq %rax, %r14
movq %rax, %r15
shrq $0x20, %r15
leaq 0xa8(%rbx), %r13
movq 0x8(%rsp), %rdi
callq 0x59c60
cwtl
cvtsi2sd %eax, %xmm0
movq %r13, %rdi
callq 0x570c0
leaq 0x10(%rsp), %rdi
movq %rax, (%rdi)
movsd 0x74d33(%rip), %xmm0    # 0xe3510
callq 0x59600
movq %rax, %rdx
shrq $0x20, %rdx
leal (%rax,%rbp), %esi
leal (%rdx,%r12), %ecx
shlq $0x20, %rcx
orq %rcx, %rsi
leaq 0xb8(%rbx), %rcx
movq %rsi, 0xb8(%rbx)
movzwl 0xd0(%rbx), %esi
cmpl $0x18, %esi
je 0x6e833
cmpl $0x28, %esi
je 0x6e826
cmpl $0x24, %esi
jne 0x6e840
addl %ebp, %r14d
subl %eax, %r14d
movl %r14d, (%rcx)
jmp 0x6e840
addl %ebp, %r14d
subl %eax, %r14d
movl %r14d, 0xb8(%rbx)
addl %r12d, %r15d
subl %edx, %r15d
movl %r15d, 0xbc(%rbx)
movb $0x1, 0xc8(%rbx)
movq (%rcx), %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop