LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/../../../include/smooth/templates/signals/signalr.h
// Function: smooth::SignalR0<smooth::GUI::PopupMenu*>::Connect(smooth::GUI::PopupMenu*)
Int Connect(const returnTYPE value)
			{
				if (slots0 == NIL)
				{
					slots0 = new Array<Void *>();
					slots0->EnableLocking();
				}

				slots0->Add(new SlotRValue0<returnTYPE>(value));

				return Success();
			}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x40(%rbp)
cmpq $0x0, 0x18(%rax)
jne 0x8d3b0
movl $0x58, %edi
callq 0x59820
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x48(%rbp)
callq 0x62ec0
jmp 0x8d37a
movq -0x40(%rbp), %rax
movq -0x48(%rbp), %rcx
movq %rcx, 0x18(%rax)
movq 0x18(%rax), %rdi
callq 0x5b830
jmp 0x8d3b0
movq -0x48(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
movl $0x58, %esi
callq 0x595b0
jmp 0x8d431
movq -0x40(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x58(%rbp)
movl $0x10, %edi
callq 0x59820
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x50(%rbp)
leaq -0x10(%rbp), %rsi
callq 0x8d440
jmp 0x8d3db
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rax
movq %rax, -0x28(%rbp)
leaq -0x28(%rbp), %rsi
callq 0x62f00
leaq -0x38(%rbp), %rdi
callq 0x5ca80
leaq -0x38(%rbp), %rdi
callq 0x59680
movl %eax, -0x5c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x5a410
movl -0x5c(%rbp), %eax
addq $0x60, %rsp
popq %rbp
retq
movq -0x50(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
movl $0x10, %esi
callq 0x595b0
movq -0x18(%rbp), %rdi
callq 0x5b6b0
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/../../../include/smooth/templates/signals/signalr.h
// Function: smooth::SignalR1<bool, smooth::GUI::Point const&>::Emit(smooth::GUI::Point const&) const
returnTYPE Emit(SIGNALS_ARGUMENT_PARAMETER_LIST) const
			{
				returnTYPE	 returnValue = (returnTYPE) NIL;

				if (slotsN == NIL && slots0 == NIL) return returnValue;

				ProtectParent();

				for (Int i = 0; slotsN != NIL && i < slotsN->Length(); i++) returnValue = ((SIGNALS_SLOT_BASE_CLASS_NAME<returnTYPE SIGNALS_CONDITIONAL_COMMA SIGNALS_ARGUMENT_TYPES> *) slotsN->GetNth(i))->Emit(SIGNALS_ARGUMENT_PARAMETERS);
				for (Int j = 0; slots0 != NIL && j < slots0->Length(); j++) returnValue = ((SlotRBase0<returnTYPE> *) slots0->GetNth(j))->Emit();

				UnprotectParent();

				return returnValue;
			}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
movb $0x0, -0x19(%rbp)
cmpq $0x0, 0x10(%rax)
jne 0x8d71b
movq -0x30(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x8d71b
movb -0x19(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x8d80b
movq -0x30(%rbp), %rdi
callq 0x8d5d0
movl $0x0, -0x20(%rbp)
movq -0x30(%rbp), %rcx
xorl %eax, %eax
cmpq $0x0, 0x10(%rcx)
movb %al, -0x31(%rbp)
je 0x8d75b
movq -0x30(%rbp), %rax
movl -0x20(%rbp), %ecx
movl %ecx, -0x38(%rbp)
movq 0x10(%rax), %rdi
callq 0x5c990
movl %eax, %ecx
movl -0x38(%rbp), %eax
cmpl %ecx, %eax
setl %al
movb %al, -0x31(%rbp)
movb -0x31(%rbp), %al
testb $0x1, %al
jne 0x8d764
jmp 0x8d791
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rdi
movl -0x20(%rbp), %esi
callq 0x820b0
movq (%rax), %rdi
movq -0x18(%rbp), %rsi
movq (%rdi), %rax
callq *0x18(%rax)
andb $0x1, %al
movb %al, -0x19(%rbp)
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x8d72b
movl $0x0, -0x24(%rbp)
movq -0x30(%rbp), %rcx
xorl %eax, %eax
cmpq $0x0, 0x18(%rcx)
movb %al, -0x39(%rbp)
je 0x8d7c8
movq -0x30(%rbp), %rax
movl -0x24(%rbp), %ecx
movl %ecx, -0x40(%rbp)
movq 0x18(%rax), %rdi
callq 0x5c990
movl %eax, %ecx
movl -0x40(%rbp), %eax
cmpl %ecx, %eax
setl %al
movb %al, -0x39(%rbp)
movb -0x39(%rbp), %al
testb $0x1, %al
jne 0x8d7d1
jmp 0x8d7fa
movq -0x30(%rbp), %rax
movq 0x18(%rax), %rdi
movl -0x24(%rbp), %esi
callq 0x820b0
movq (%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
andb $0x1, %al
movb %al, -0x19(%rbp)
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x8d798
movq -0x30(%rbp), %rdi
callq 0x8d600
movb -0x19(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/activearea.cpp
// Function: smooth::GUI::ActiveArea::ActiveArea(smooth::GUI::Color const&, smooth::GUI::Point const&, smooth::GUI::Size const&)
S::GUI::ActiveArea::ActiveArea(const Color &iColor, const Point &iPos, const Size &iSize) : Widget(iPos, iSize)
{
	type		= classID;
	areaColor	= iColor;

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

	hotspot	= new Hotspot(Point(1, 1), GetSize() - Size(2, 2));

	hotspot->onLeftButtonClick.Connect(&onAction);

	Add(hotspot);

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x60(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x5c220
movq -0x60(%rbp), %rdi
movq 0x17b135(%rip), %rax    # 0x208da0
addq $0x10, %rax
movq %rax, (%rdi)
addq $0x5b8, %rdi            # imm = 0x5B8
callq 0x5c250
jmp 0x8dc80
movq -0x60(%rbp), %rdi
movq 0x17ad65(%rip), %rax    # 0x2089f0
movswl (%rax), %esi
addq $0x20, %rdi
callq 0x5a2e0
jmp 0x8dc99
movq -0x60(%rbp), %rdi
movq -0x10(%rbp), %rax
movups (%rax), %xmm0
movups %xmm0, 0x5b8(%rdi)
callq 0x5a210
movl %eax, -0x64(%rbp)
jmp 0x8dcb5
movl -0x64(%rbp), %eax
cmpl $0x0, %eax
jne 0x8dce0
movq -0x60(%rbp), %rdi
movl $0x50, %esi
callq 0x5db30
jmp 0x8dccd
jmp 0x8dce0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x8de0d
movq -0x60(%rbp), %rdi
callq 0x5b860
movl %eax, -0x68(%rbp)
jmp 0x8dcee
movl -0x68(%rbp), %eax
cmpl $0x0, %eax
jne 0x8dd08
movq -0x60(%rbp), %rdi
movl $0x14, %esi
callq 0x5bed0
jmp 0x8dd06
jmp 0x8dd08
movl $0x5b8, %edi            # imm = 0x5B8
callq 0x59820
movq %rax, -0x70(%rbp)
jmp 0x8dd18
leaq -0x34(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x5c2c0
jmp 0x8dd2a
movq -0x60(%rbp), %rdi
callq 0x5bf70
movq %rax, -0x78(%rbp)
jmp 0x8dd39
leaq -0x44(%rbp), %rdi
movl $0x2, %edx
movl %edx, %esi
callq 0x59260
jmp 0x8dd4b
movq -0x78(%rbp), %rdi
leaq -0x44(%rbp), %rsi
callq 0x5db90
movq %rax, -0x80(%rbp)
jmp 0x8dd5e
movq -0x70(%rbp), %rdi
movq -0x80(%rbp), %rax
movq %rax, -0x3c(%rbp)
leaq -0x34(%rbp), %rsi
leaq -0x3c(%rbp), %rdx
callq 0x59c30
jmp 0x8dd79
movq -0x60(%rbp), %rsi
movq -0x70(%rbp), %rax
movq %rax, 0x5c8(%rsi)
movq 0x5c8(%rsi), %rdi
addq $0x338, %rdi            # imm = 0x338
addq $0x478, %rsi            # imm = 0x478
callq 0x8e210
jmp 0x8dda4
movq -0x60(%rbp), %rdi
movq 0x5c8(%rdi), %rsi
movq (%rdi), %rax
movq 0x30(%rax), %rax
callq *%rax
jmp 0x8ddba
movq -0x60(%rbp), %rcx
movq %rcx, %rdi
addq $0x298, %rdi            # imm = 0x298
movq 0x17aaa9(%rip), %rax    # 0x208878
movq %rax, -0x58(%rbp)
movq $0x0, -0x50(%rbp)
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
callq 0x8e340
jmp 0x8ddea
addq $0x80, %rsp
popq %rbp
retq
movq -0x70(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
movl $0x5b8, %esi            # imm = 0x5B8
callq 0x595b0
movq -0x60(%rbp), %rdi
callq 0x5bd90
movq -0x28(%rbp), %rdi
callq 0x5b6b0
nop
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/../../../../include/smooth/templates/signals/signal.h
// Function: int smooth::Signal1<void, smooth::GUI::Point const&>::Connect<void>(smooth::Signal0<void>*)
Int Connect(Signal0<slotReturnTYPE> *sig)
			{
				if ((Signal *) sig == (Signal *) this) return Error();

				if (slots0 == NIL)
				{
					slots0 = new Array<Void *>();
					slots0->EnableLocking();
				}

				slots0->Add(new SlotSignal0<slotReturnTYPE>(sig));

				return Success();
			}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x58(%rbp)
cmpq %rax, -0x18(%rbp)
jne 0x8e256
leaq -0x28(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
leaq -0x28(%rbp), %rdi
callq 0x59680
movl %eax, -0x4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5b5b0
jmp 0x8e32e
movq -0x58(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x8e2b2
movl $0x58, %edi
callq 0x59820
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x60(%rbp)
callq 0x62ec0
jmp 0x8e27c
movq -0x58(%rbp), %rax
movq -0x60(%rbp), %rcx
movq %rcx, 0x18(%rax)
movq 0x18(%rax), %rdi
callq 0x5b830
jmp 0x8e2b2
movq -0x60(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x58, %esi
callq 0x595b0
jmp 0x8e337
movq -0x58(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x70(%rbp)
movl $0x10, %edi
callq 0x59820
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x68(%rbp)
movq -0x18(%rbp), %rsi
callq 0x8e500
jmp 0x8e2dd
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq -0x40(%rbp), %rsi
callq 0x62f00
leaq -0x50(%rbp), %rdi
callq 0x5ca80
leaq -0x50(%rbp), %rdi
callq 0x59680
movl %eax, -0x4(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x5a410
jmp 0x8e32e
movq -0x68(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x10, %esi
callq 0x595b0
jmp 0x8e337
movl -0x4(%rbp), %eax
addq $0x70, %rsp
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x5b6b0
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/arrows.cpp
// Function: smooth::GUI::Arrows::OnMouseDownPlus()
S::Void S::GUI::Arrows::OnMouseDownPlus()
{
	if (timer == NIL)
	{
		timer = new System::Timer();

		timer->onInterval.Connect(&Arrows::OnTimer, this);
		timer->Start(0);

		timerCount	= 0;
		timerDirection	= 1;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, 0x5c0(%rax)
jne 0x8f15f
movl $0x68, %edi
callq 0x59820
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x38(%rbp)
callq 0x59db0
jmp 0x8f0dd
movq -0x30(%rbp), %rcx
movq -0x38(%rbp), %rax
movq %rax, 0x5c0(%rcx)
movq 0x5c0(%rcx), %rdi
addq $0x48, %rdi
movq 0x179e9a(%rip), %rax    # 0x208f98
movq %rax, -0x28(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x28(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x90690
movq -0x30(%rbp), %rax
movq 0x5c0(%rax), %rdi
xorl %esi, %esi
callq 0x59120
movq -0x30(%rbp), %rax
movl $0x0, 0x5c8(%rax)
movl $0x1, 0x5cc(%rax)
jmp 0x8f15f
movq -0x38(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x68, %esi
callq 0x595b0
jmp 0x8f165
addq $0x40, %rsp
popq %rbp
retq
movq -0x10(%rbp), %rdi
callq 0x5b6b0
nop
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/arrows.cpp
// Function: smooth::GUI::Arrows::OnMouseDownMinus()
S::Void S::GUI::Arrows::OnMouseDownMinus()
{
	if (timer == NIL)
	{
		timer = new System::Timer();

		timer->onInterval.Connect(&Arrows::OnTimer, this);
		timer->Start(0);

		timerCount	= 0;
		timerDirection	= -1;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, 0x5c0(%rax)
jne 0x8f22f
movl $0x68, %edi
callq 0x59820
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x38(%rbp)
callq 0x59db0
jmp 0x8f1ad
movq -0x30(%rbp), %rcx
movq -0x38(%rbp), %rax
movq %rax, 0x5c0(%rcx)
movq 0x5c0(%rcx), %rdi
addq $0x48, %rdi
movq 0x179dca(%rip), %rax    # 0x208f98
movq %rax, -0x28(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x28(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x90690
movq -0x30(%rbp), %rax
movq 0x5c0(%rax), %rdi
xorl %esi, %esi
callq 0x59120
movq -0x30(%rbp), %rax
movl $0x0, 0x5c8(%rax)
movl $0xffffffff, 0x5cc(%rax) # imm = 0xFFFFFFFF
jmp 0x8f22f
movq -0x38(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x68, %esi
callq 0x595b0
jmp 0x8f235
addq $0x40, %rsp
popq %rbp
retq
movq -0x10(%rbp), %rdi
callq 0x5b6b0
nop
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/arrows.cpp
// Function: smooth::GUI::Arrows::OnMouseRelease()
S::Void S::GUI::Arrows::OnMouseRelease()
{
	if (timer != NIL)
	{
		timer->Stop();

		DeleteObject(timer);

		timer = NIL;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, 0x5c0(%rax)
je 0x8f28d
movq -0x10(%rbp), %rax
movq 0x5c0(%rax), %rdi
callq 0x5de90
movq -0x10(%rbp), %rax
movq 0x5c0(%rax), %rdi
callq 0x5d8d0
movq -0x10(%rbp), %rax
movq $0x0, 0x5c0(%rax)
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/arrows.cpp
// Function: smooth::GUI::Arrows::~Arrows()
S::GUI::Arrows::~Arrows()
{
	if (timer != NIL)
	{
		timer->Stop();

		DeleteObject(timer);

		timer = NIL;
	}

	DeleteObject(arrow1Hotspot);
	DeleteObject(arrow2Hotspot);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
movq 0x1799bd(%rip), %rcx    # 0x208de8
addq $0x10, %rcx
movq %rcx, (%rax)
cmpq $0x0, 0x5c0(%rax)
je 0x8f46f
movq -0x10(%rbp), %rax
movq 0x5c0(%rax), %rdi
callq 0x5de90
jmp 0x8f44e
movq -0x10(%rbp), %rax
movq 0x5c0(%rax), %rdi
callq 0x5d8d0
jmp 0x8f460
movq -0x10(%rbp), %rax
movq $0x0, 0x5c0(%rax)
movq -0x10(%rbp), %rax
movq 0x5e8(%rax), %rdi
callq 0x5d8d0
jmp 0x8f481
movq -0x10(%rbp), %rax
movq 0x5f0(%rax), %rdi
callq 0x5d8d0
jmp 0x8f493
movq -0x10(%rbp), %rdi
addq $0x618, %rdi            # imm = 0x618
callq 0x90610
movq -0x10(%rbp), %rdi
addq $0x5f8, %rdi            # imm = 0x5F8
callq 0x90650
movq -0x10(%rbp), %rdi
callq 0x5bd90
addq $0x10, %rsp
popq %rbp
retq
movq %rax, %rdi
callq 0x61c50
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/arrows.cpp
// Function: smooth::GUI::Arrows::OnTimer()
S::Void S::GUI::Arrows::OnTimer()
{
	if (timerCount == 0) { timer->Stop(); timer->Start(250); }
	if (timerCount == 1) { timer->Stop(); timer->Start(100); }

	Int	 prevValue	= *variable;
	Int	 difference	= timerDirection;

	for (Int n = 1; n <= 8; n++)
	{
		if (timerCount >= 8 * n) difference = timerDirection * (Int) Math::Pow(2, n);
	}

	*variable = Math::Min(Math::Max(*variable + difference * Int(stepSize), startValue), endValue);

	if (*variable != prevValue) onValueChange.Emit(*variable);

	timerCount++;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
cmpl $0x0, 0x5c8(%rax)
jne 0x8ff72
movq -0x20(%rbp), %rax
movq 0x5c0(%rax), %rdi
callq 0x5de90
movq -0x20(%rbp), %rax
movq 0x5c0(%rax), %rdi
movl $0xfa, %esi
callq 0x59120
movq -0x20(%rbp), %rax
cmpl $0x1, 0x5c8(%rax)
jne 0x8ffa4
movq -0x20(%rbp), %rax
movq 0x5c0(%rax), %rdi
callq 0x5de90
movq -0x20(%rbp), %rax
movq 0x5c0(%rax), %rdi
movl $0x64, %esi
callq 0x59120
movq -0x20(%rbp), %rax
movq 0x5d0(%rax), %rcx
movl (%rcx), %ecx
movl %ecx, -0xc(%rbp)
movl 0x5cc(%rax), %eax
movl %eax, -0x10(%rbp)
movl $0x1, -0x14(%rbp)
cmpl $0x8, -0x14(%rbp)
jg 0x90012
movq -0x20(%rbp), %rax
movl 0x5c8(%rax), %eax
movl -0x14(%rbp), %ecx
shll $0x3, %ecx
cmpl %ecx, %eax
jl 0x90005
movq -0x20(%rbp), %rax
movl 0x5cc(%rax), %eax
movl %eax, -0x24(%rbp)
movl -0x14(%rbp), %esi
movl $0x2, %edi
callq 0x5a330
movl -0x24(%rbp), %eax
cvttsd2si %xmm0, %ecx
imull %ecx, %eax
movl %eax, -0x10(%rbp)
jmp 0x90007
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x8ffc4
movq -0x20(%rbp), %rax
movq 0x5d0(%rax), %rcx
movl (%rcx), %edi
movl -0x10(%rbp), %ecx
imull 0x5e0(%rax), %ecx
addl %ecx, %edi
movl 0x5d8(%rax), %esi
callq 0x5aae0
movl %eax, %edi
movq -0x20(%rbp), %rax
movl 0x5dc(%rax), %esi
callq 0x5ce90
movl %eax, %edx
movq -0x20(%rbp), %rax
movq 0x5d0(%rax), %rcx
movl %edx, (%rcx)
movq 0x5d0(%rax), %rax
movl (%rax), %eax
cmpl -0xc(%rbp), %eax
je 0x90080
movq -0x20(%rbp), %rax
movq %rax, %rdi
addq $0x618, %rdi            # imm = 0x618
movq 0x5d0(%rax), %rax
movl (%rax), %esi
callq 0x907d0
movq -0x20(%rbp), %rax
movl 0x5c8(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x5c8(%rax)
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/arrows.cpp
// Function: smooth::GUI::Arrows::SetRange(int, int)
S::Int S::GUI::Arrows::SetRange(Int rangeStart, Int rangeEnd)
{
	if (startValue == rangeStart && endValue == rangeEnd) return Success();

	startValue	= rangeStart;
	endValue	= rangeEnd;

	SetValue(*variable);

	onRangeChange.Emit(startValue, endValue);

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x50(%rbp)
movl 0x5d8(%rax), %eax
cmpl -0x14(%rbp), %eax
jne 0x9011d
movq -0x50(%rbp), %rax
movl 0x5dc(%rax), %eax
cmpl -0x18(%rbp), %eax
jne 0x9011d
leaq -0x28(%rbp), %rdi
movq %rdi, -0x60(%rbp)
callq 0x5ca80
movq -0x60(%rbp), %rdi
callq 0x59680
movl %eax, -0x54(%rbp)
jmp 0x900ef
movl -0x54(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5a410
jmp 0x901a3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5a410
jmp 0x901ac
movq -0x50(%rbp), %rdi
movl -0x14(%rbp), %eax
movl %eax, 0x5d8(%rdi)
movl -0x18(%rbp), %eax
movl %eax, 0x5dc(%rdi)
movq 0x5d0(%rdi), %rax
movl (%rax), %esi
callq 0x5b550
movq -0x50(%rbp), %rax
movq %rax, %rdi
addq $0x5f8, %rdi            # imm = 0x5F8
movl 0x5d8(%rax), %esi
movl 0x5dc(%rax), %edx
callq 0x908f0
leaq -0x48(%rbp), %rdi
movq %rdi, -0x70(%rbp)
callq 0x5ca80
movq -0x70(%rbp), %rdi
callq 0x59680
movl %eax, -0x64(%rbp)
jmp 0x9017b
movl -0x64(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0x901a3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0x901ac
movl -0x4(%rbp), %eax
addq $0x70, %rsp
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)
nop
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/button.cpp
// Function: smooth::GUI::Button::SetBitmap(smooth::GUI::Bitmap const&)
S::Int S::GUI::Button::SetBitmap(const Bitmap &nBitmap)
{
	Bool	 prevVisible = IsVisible();

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

	bitmap = nBitmap;

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

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x40(%rbp)
movq (%rdi), %rax
callq *0x90(%rax)
movq -0x40(%rbp), %rdi
andb $0x1, %al
movb %al, -0x11(%rbp)
movq (%rdi), %rax
callq *0x88(%rax)
testb $0x1, %al
jne 0x91729
jmp 0x91739
testb $0x1, -0x11(%rbp)
je 0x91739
movq -0x40(%rbp), %rdi
movq (%rdi), %rax
callq *0x60(%rax)
movq -0x40(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0x5b8, %rdi            # imm = 0x5B8
callq 0x5cca0
movq -0x40(%rbp), %rdi
movq (%rdi), %rax
callq *0x88(%rax)
testb $0x1, %al
jne 0x91760
jmp 0x91770
testb $0x1, -0x11(%rbp)
je 0x91770
movq -0x40(%rbp), %rdi
movq (%rdi), %rax
callq *0x58(%rax)
leaq -0x28(%rbp), %rdi
movq %rdi, -0x50(%rbp)
callq 0x5ca80
movq -0x50(%rbp), %rdi
callq 0x59680
movl %eax, -0x44(%rbp)
jmp 0x9178b
leaq -0x28(%rbp), %rdi
callq 0x5a410
movl -0x44(%rbp), %eax
addq $0x50, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5a410
movq -0x30(%rbp), %rdi
callq 0x5b6b0
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/../../../../include/smooth/basic/../graphics/color.h
// Function: smooth::GUI::Color::Average(smooth::GUI::Color const&) const
Color		 Average(const Color &color2) const			{ return Color( (GetRed()   + color2.GetRed())	 / 2	    |
														       ((GetGreen() + color2.GetGreen()) / 2) <<  8 |
														       ((GetBlue()  + color2.GetBlue())	 / 2) << 16 |
														       ((GetAlpha() + color2.GetAlpha()) / 2) << 24); }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x30(%rbp)
movq %rdi, %rax
movq %rax, -0x20(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x40(%rbp)
callq 0x59f20
movl %eax, -0x4c(%rbp)
movq -0x18(%rbp), %rdi
callq 0x59f20
movq -0x40(%rbp), %rdi
movl %eax, %ecx
movl -0x4c(%rbp), %eax
addl %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, -0x44(%rbp)
callq 0x5d920
movl %eax, -0x48(%rbp)
movq -0x18(%rbp), %rdi
callq 0x5d920
movq -0x40(%rbp), %rdi
movl %eax, %ecx
movl -0x48(%rbp), %eax
addl %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x44(%rbp), %eax
shll $0x8, %ecx
orl %ecx, %eax
movl %eax, -0x34(%rbp)
callq 0x5b650
movl %eax, -0x38(%rbp)
movq -0x18(%rbp), %rdi
callq 0x5b650
movq -0x40(%rbp), %rdi
movl %eax, %ecx
movl -0x38(%rbp), %eax
addl %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x34(%rbp), %eax
shll $0x10, %ecx
orl %ecx, %eax
movl %eax, -0x24(%rbp)
callq 0x5bac0
movl %eax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x5bac0
movq -0x30(%rbp), %rdi
movl %eax, %ecx
movl -0x28(%rbp), %eax
addl %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x24(%rbp), %eax
shll $0x18, %ecx
orl %ecx, %eax
movslq %eax, %rsi
xorl %edx, %edx
callq 0x59be0
movq -0x20(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/divider.cpp
// Function: smooth::GUI::Divider::OnMouseDrag(smooth::GUI::Point const&)
S::Void S::GUI::Divider::OnMouseDrag(const Point &mousePos)
{
	Int	 pos = startPos;

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

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movl 0x5bc(%rax), %ecx
movl %ecx, -0x14(%rbp)
movl 0x30(%rax), %edi
movl $0x2, %esi
callq 0x5ce30
testb $0x1, %al
jne 0x94e14
jmp 0x94e2e
movq -0x20(%rbp), %rax
movl 0x5c0(%rax), %ecx
movq -0x10(%rbp), %rax
subl (%rax), %ecx
movl -0x14(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x14(%rbp)
jmp 0x94e47
movq -0x20(%rbp), %rax
movl 0x5c4(%rax), %ecx
movq -0x10(%rbp), %rax
subl 0x4(%rax), %ecx
movl -0x14(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x14(%rbp)
movq -0x20(%rbp), %rdi
movl -0x14(%rbp), %eax
movl %eax, -0x24(%rbp)
callq 0x5d220
movl %eax, %ecx
movl -0x24(%rbp), %eax
cmpl %ecx, %eax
je 0x94e72
movq -0x20(%rbp), %rdi
addq $0x5d8, %rdi            # imm = 0x5D8
movl -0x14(%rbp), %esi
callq 0x907d0
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/divider.cpp
// Function: smooth::GUI::Divider::SetPos(int)
S::Int S::GUI::Divider::SetPos(Int nPosition)
{
	Bool	 prevVisible = IsVisible();

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

	position = nPosition;

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

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x38(%rbp)
movq (%rdi), %rax
callq *0x90(%rax)
movq -0x38(%rbp), %rdi
andb $0x1, %al
movb %al, -0xd(%rbp)
movq (%rdi), %rax
callq *0x88(%rax)
testb $0x1, %al
jne 0x94f98
jmp 0x94fa8
testb $0x1, -0xd(%rbp)
je 0x94fa8
movq -0x38(%rbp), %rdi
movq (%rdi), %rax
callq *0x60(%rax)
movq -0x38(%rbp), %rdi
movl -0xc(%rbp), %eax
movl %eax, 0x5c8(%rdi)
movq (%rdi), %rax
callq *0x88(%rax)
testb $0x1, %al
jne 0x94fc4
jmp 0x94fd4
testb $0x1, -0xd(%rbp)
je 0x94fd4
movq -0x38(%rbp), %rdi
movq (%rdi), %rax
callq *0x58(%rax)
leaq -0x20(%rbp), %rdi
movq %rdi, -0x48(%rbp)
callq 0x5ca80
movq -0x48(%rbp), %rdi
callq 0x59680
movl %eax, -0x3c(%rbp)
jmp 0x94fef
leaq -0x20(%rbp), %rdi
callq 0x5a410
movl -0x3c(%rbp), %eax
addq $0x50, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5a410
movq -0x28(%rbp), %rdi
callq 0x5b6b0
nop
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/editbox.cpp
// Function: smooth::GUI::EditBox::OnSelectEntry(smooth::GUI::ListEntry*)
S::Void S::GUI::EditBox::OnSelectEntry(ListEntry *entry)
{
	cursor->SetText(entry->GetText());
	cursor->MarkAll();

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movq 0x5b8(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
movq (%rdi), %rax
callq *0xa8(%rax)
movq -0x28(%rbp), %rdi
movq %rax, %rsi
movq (%rdi), %rax
callq *0xa0(%rax)
movq -0x20(%rbp), %rax
movq 0x5b8(%rax), %rdi
callq 0x5deb8
movq -0x20(%rbp), %rdi
addq $0x610, %rdi            # imm = 0x610
movq -0x10(%rbp), %rsi
callq 0x97840
movq -0x20(%rbp), %rax
movq %rax, %rcx
addq $0x5d0, %rcx            # imm = 0x5D0
movq %rcx, -0x18(%rbp)
movq 0x5b8(%rax), %rdi
movq (%rdi), %rax
callq *0xa8(%rax)
movq -0x18(%rbp), %rdi
movq %rax, %rsi
callq 0x97960
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/groupbox.cpp
// Function: smooth::GUI::GroupBox::GroupBox(smooth::String const&, smooth::GUI::Point const&, smooth::GUI::Size const&)
S::GUI::GroupBox::GroupBox(const String &iText, const Point &iPos, const Size &iSize) : Layer(iText)
{
	type	    = classID;
	orientation = OR_UPPERLEFT;

	SetMetrics(iPos, iSize);

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

	ComputeTextSize();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x38(%rbp)
movq -0x10(%rbp), %rsi
callq 0x5a3b0
movq -0x38(%rbp), %rdi
movq 0x16fe4c(%rip), %rax    # 0x2084c0
addq $0x10, %rax
movq %rax, (%rdi)
movq 0x17062e(%rip), %rax    # 0x208cb0
movswl (%rax), %esi
addq $0x20, %rdi
callq 0x5a2e0
jmp 0x98690
movq -0x38(%rbp), %rdi
movw $0x14, 0xd0(%rdi)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movq (%rdi), %rax
movq 0x150(%rax), %rax
callq *%rax
jmp 0x986b3
movq -0x38(%rbp), %rdi
callq 0x5a210
movl %eax, -0x3c(%rbp)
jmp 0x986c1
movl -0x3c(%rbp), %eax
cmpl $0x0, %eax
jne 0x986f2
movq -0x38(%rbp), %rdi
movl $0x50, %esi
callq 0x5db30
jmp 0x986d9
jmp 0x986f2
movq -0x38(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
callq 0x5b690
jmp 0x9872b
movq -0x38(%rbp), %rdi
callq 0x5b860
movl %eax, -0x40(%rbp)
jmp 0x98700
movl -0x40(%rbp), %eax
cmpl $0x0, %eax
jne 0x9871a
movq -0x38(%rbp), %rdi
movl $0x50, %esi
callq 0x5bed0
jmp 0x98718
jmp 0x9871a
movq -0x38(%rbp), %rdi
callq 0x59de0
jmp 0x98725
addq $0x40, %rsp
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/groupbox.cpp
// Function: smooth::GUI::GroupBox::Activate()
S::Int S::GUI::GroupBox::Activate()
{
	if (active) return Success();

	active = True;

	Paint(SP_PAINT);

	onActivate.Emit();

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
testb $0x1, 0xcc(%rax)
je 0x98d83
leaq -0x20(%rbp), %rdi
movq %rdi, -0x58(%rbp)
callq 0x5ca80
movq -0x58(%rbp), %rdi
callq 0x59680
movl %eax, -0x4c(%rbp)
jmp 0x98d58
movl -0x4c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5a410
jmp 0x98dec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5a410
jmp 0x98df5
movq -0x48(%rbp), %rdi
movb $0x1, 0xcc(%rdi)
movq (%rdi), %rax
movq 0x78(%rax), %rax
xorl %esi, %esi
callq *%rax
movq -0x48(%rbp), %rdi
addq $0x238, %rdi            # imm = 0x238
callq 0x8af60
leaq -0x40(%rbp), %rdi
movq %rdi, -0x68(%rbp)
callq 0x5ca80
movq -0x68(%rbp), %rdi
callq 0x59680
movl %eax, -0x5c(%rbp)
jmp 0x98dc4
movl -0x5c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5a410
jmp 0x98dec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5a410
jmp 0x98df5
movl -0x4(%rbp), %eax
addq $0x70, %rsp
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0x5b6b0
nop
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/groupbox.cpp
// Function: smooth::GUI::GroupBox::Deactivate()
S::Int S::GUI::GroupBox::Deactivate()
{
	if (!active) return Success();

	active = False;

	Paint(SP_PAINT);

	onDeactivate.Emit();

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
testb $0x1, 0xcc(%rax)
jne 0x98e63
leaq -0x20(%rbp), %rdi
movq %rdi, -0x58(%rbp)
callq 0x5ca80
movq -0x58(%rbp), %rdi
callq 0x59680
movl %eax, -0x4c(%rbp)
jmp 0x98e38
movl -0x4c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5a410
jmp 0x98ecc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5a410
jmp 0x98ed5
movq -0x48(%rbp), %rdi
movb $0x0, 0xcc(%rdi)
movq (%rdi), %rax
movq 0x78(%rax), %rax
xorl %esi, %esi
callq *%rax
movq -0x48(%rbp), %rdi
addq $0x258, %rdi            # imm = 0x258
callq 0x8af60
leaq -0x40(%rbp), %rdi
movq %rdi, -0x68(%rbp)
callq 0x5ca80
movq -0x68(%rbp), %rdi
callq 0x59680
movl %eax, -0x5c(%rbp)
jmp 0x98ea4
movl -0x5c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5a410
jmp 0x98ecc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5a410
jmp 0x98ed5
movl -0x4(%rbp), %eax
addq $0x70, %rsp
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0x5b6b0
nop
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/groupbox.cpp
// Function: smooth::GUI::GroupBox::Hide()
S::Int S::GUI::GroupBox::Hide()
{
	if (IsRegistered() && IsVisible())
	{
		Surface	*surface = GetDrawSurface();

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

	return Layer::Hide();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x80(%rbp)
movq (%rdi), %rax
callq *0x88(%rax)
testb $0x1, %al
jne 0x98f49
jmp 0x990a8
movq -0x80(%rbp), %rdi
movq (%rdi), %rax
callq *0x90(%rax)
testb $0x1, %al
jne 0x98f5f
jmp 0x990a8
movq -0x80(%rbp), %rdi
movq (%rdi), %rax
movq 0x40(%rax), %rax
callq *%rax
movq -0x80(%rbp), %rdi
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x90(%rbp)
movq (%rdi), %rax
movq 0x48(%rax), %rax
callq *%rax
movq %rax, -0x30(%rbp)
leaq -0x48(%rbp), %rdi
movq %rdi, -0xa0(%rbp)
xorl %esi, %esi
movl %esi, -0x98(%rbp)
movl $0x6, %edx
movl %edx, -0x94(%rbp)
callq 0x5c2c0
movq -0x10(%rbp), %rdi
callq 0x5d470
movq -0xa0(%rbp), %rdi
cwtl
cvtsi2sd %eax, %xmm0
callq 0x5a300
movq %rax, -0x40(%rbp)
leaq -0x40(%rbp), %rdi
movsd 0xee4e7(%rip), %xmm0    # 0x1874c0
callq 0x5cd70
movq %rax, -0x38(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x5cbd0
movq -0x80(%rbp), %rdi
movq %rax, -0x28(%rbp)
movq (%rdi), %rax
movq 0x50(%rax), %rax
callq *%rax
movl -0x98(%rbp), %esi
movl -0x94(%rbp), %edx
movq %rax, -0x58(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x59260
movq -0x10(%rbp), %rdi
callq 0x5d470
cwtl
cvtsi2sd %eax, %xmm0
leaq -0x70(%rbp), %rdi
callq 0x5a7b0
movq %rax, -0x68(%rbp)
leaq -0x68(%rbp), %rdi
movsd 0xee480(%rip), %xmm0    # 0x1874c0
callq 0x5c6b0
movq %rax, -0x60(%rbp)
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x590b0
movq %rax, -0x50(%rbp)
leaq -0x20(%rbp), %rdi
leaq -0x28(%rbp), %rsi
leaq -0x50(%rbp), %rdx
callq 0x59ff0
movq 0x16ff2e(%rip), %rax    # 0x208fa0
movl (%rax), %eax
movl %eax, -0x84(%rbp)
leaq -0x78(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x59260
movq -0x90(%rbp), %rdi
movl -0x84(%rbp), %ecx
leaq -0x20(%rbp), %rsi
movq 0x16f409(%rip), %rdx    # 0x2084a8
leaq -0x78(%rbp), %r8
callq 0x5c110
movq -0x80(%rbp), %rdi
callq 0x59770
addq $0xa0, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/hyperlink.cpp
// Function: smooth::GUI::Hyperlink::OnMouseOver()
S::Void S::GUI::Hyperlink::OnMouseOver()
{
	Input::Pointer::SetCursor(container->GetContainerWindow(), Input::Pointer::CursorHand);

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

		font.SetColor(Setup::LinkHighlightColor);

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

		Text::Paint(SP_PAINT);

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x60(%rbp)
movq 0x190(%rax), %rdi
callq 0x59bc0
movq %rax, %rdi
movl $0x2, %esi
callq 0x59fc0
movq -0x60(%rbp), %rdi
addq $0x5d8, %rdi            # imm = 0x5D8
xorl %esi, %esi
callq 0x5c730
testb $0x1, %al
jne 0x994cb
jmp 0x995e1
movq -0x60(%rbp), %rsi
addq $0x140, %rsi            # imm = 0x140
movq %rsi, -0x68(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x59da0
movq -0x68(%rbp), %rdi
movq 0x16fa42(%rip), %rsi    # 0x208f30
callq 0x5d110
jmp 0x994f5
movq 0x16fa34(%rip), %rdi    # 0x208f30
callq 0x59210
movq %rax, -0x70(%rbp)
jmp 0x99507
movq 0x16f182(%rip), %rdi    # 0x208690
callq 0x59210
movq %rax, -0x78(%rbp)
jmp 0x99519
movq -0x70(%rbp), %rax
movq -0x78(%rbp), %rcx
cmpq %rcx, %rax
jne 0x9955e
movq -0x60(%rbp), %rdi
addq $0x140, %rdi            # imm = 0x140
movq 0x16f440(%rip), %rax    # 0x208978
movswl (%rax), %esi
callq 0x596a0
jmp 0x99542
jmp 0x9955e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5abf0
jmp 0x995ea
movq -0x60(%rbp), %rdi
xorl %esi, %esi
callq 0x5c340
jmp 0x9956b
movq -0x60(%rbp), %rax
addq $0x140, %rax            # imm = 0x140
movq %rax, -0x88(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5bc50
movq %rax, -0x80(%rbp)
jmp 0x9958b
movq -0x80(%rbp), %rsi
movq -0x88(%rbp), %rdi
callq 0x5d110
jmp 0x9959d
movq -0x60(%rbp), %rax
addq $0x140, %rax            # imm = 0x140
movq %rax, -0x98(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5d370
movw %ax, -0x8a(%rbp)
jmp 0x995c0
movq -0x98(%rbp), %rdi
movw -0x8a(%rbp), %ax
movswl %ax, %esi
callq 0x596a0
jmp 0x995d8
leaq -0x48(%rbp), %rdi
callq 0x5abf0
addq $0xa0, %rsp
popq %rbp
retq
movq -0x50(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/hyperlink.cpp
// Function: smooth::GUI::Hyperlink::Paint(int)
S::Int S::GUI::Hyperlink::Paint(Int message)
{
	if (!IsRegistered()) return Error();
	if (!IsVisible())    return Success();

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

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

			break;
	}

	return Text::Paint(message);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x90(%rbp)
movq (%rdi), %rax
callq *0x88(%rax)
testb $0x1, %al
jne 0x99bb4
leaq -0x28(%rbp), %rdi
movq %rdi, -0xa0(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
movq -0xa0(%rbp), %rdi
callq 0x59680
movl %eax, -0x94(%rbp)
jmp 0x99b83
movl -0x94(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5b5b0
jmp 0x99d13
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5b5b0
jmp 0x99d1f
movq -0x90(%rbp), %rdi
movq (%rdi), %rax
callq *0x90(%rax)
testb $0x1, %al
jne 0x99c1d
leaq -0x48(%rbp), %rdi
movq %rdi, -0xb0(%rbp)
callq 0x5ca80
movq -0xb0(%rbp), %rdi
callq 0x59680
movl %eax, -0xa4(%rbp)
jmp 0x99bec
movl -0xa4(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0x99d13
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0x99d1f
movl -0x14(%rbp), %eax
testl %eax, %eax
jne 0x99d01
jmp 0x99c2a
movq -0x90(%rbp), %rdi
addq $0x5d8, %rdi            # imm = 0x5D8
xorl %esi, %esi
callq 0x5a830
testb $0x1, %al
jne 0x99c48
jmp 0x99cff
movq -0x90(%rbp), %rdi
movq (%rdi), %rax
callq *0x48(%rax)
movq -0x90(%rbp), %rdi
movq %rax, -0x60(%rbp)
movq (%rdi), %rax
callq *0x50(%rax)
movq %rax, -0x68(%rbp)
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x59ff0
movq -0x90(%rbp), %rdi
movq (%rdi), %rax
callq *0x40(%rax)
movq %rax, %rcx
movq -0x90(%rbp), %rax
movq %rcx, -0x70(%rbp)
movq -0x70(%rbp), %rcx
movq %rcx, -0xc0(%rbp)
addq $0x5d8, %rax            # imm = 0x5D8
movq %rax, -0xb8(%rbp)
leaq -0x88(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x5c2c0
movq -0x90(%rbp), %rdi
addq $0x5d8, %rdi            # imm = 0x5D8
callq 0x5ce60
movq %rax, %rdx
leaq -0x80(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x59ff0
movq -0xc0(%rbp), %rdi
movq -0xb8(%rbp), %rsi
leaq -0x80(%rbp), %rdx
leaq -0x58(%rbp), %rcx
callq 0x59dd0
jmp 0x99d01
movq -0x90(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x5c340
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xc0, %rsp
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x5b6b0
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/hyperlink.cpp
// Function: smooth::GUI::Hyperlink::SetText(smooth::String const&)
S::Int S::GUI::Hyperlink::SetText(const String &nText)
{
	if (linkBitmap != NIL) linkBitmap = NIL;

	Text::SetText(nText);

	hotspot->SetSize(GetSize());

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x38(%rbp)
addq $0x5d8, %rdi            # imm = 0x5D8
xorl %esi, %esi
callq 0x5a830
testb $0x1, %al
jne 0x99d5c
jmp 0x99d6e
movq -0x38(%rbp), %rdi
addq $0x5d8, %rdi            # imm = 0x5D8
xorl %esi, %esi
callq 0x5ac20
movq -0x38(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x5d900
movq -0x38(%rbp), %rdi
movq 0x5e0(%rdi), %rax
movq %rax, -0x50(%rbp)
callq 0x5bf70
movq -0x50(%rbp), %rdi
movq %rax, %rsi
callq 0x5de18
leaq -0x20(%rbp), %rdi
movq %rdi, -0x48(%rbp)
callq 0x5ca80
movq -0x48(%rbp), %rdi
callq 0x59680
movl %eax, -0x3c(%rbp)
jmp 0x99db6
leaq -0x20(%rbp), %rdi
callq 0x5a410
movl -0x3c(%rbp), %eax
addq $0x50, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5a410
movq -0x28(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/image.cpp
// Function: smooth::GUI::Image::SetBitmap(smooth::GUI::Bitmap const&)
S::Int S::GUI::Image::SetBitmap(const Bitmap &newBmp)
{
	if (bitmap == newBmp) return Success();

	Bool	 prevVisible = IsVisible();

	if (prevVisible) Hide();

	bitmap	     = newBmp;
	bitmapScaled = NIL;

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

	if (prevVisible) Show();

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x58(%rbp)
addq $0x5b8, %rdi            # imm = 0x5B8
movq -0x18(%rbp), %rsi
callq 0x59f80
testb $0x1, %al
jne 0x9a421
jmp 0x9a46a
leaq -0x28(%rbp), %rdi
movq %rdi, -0x68(%rbp)
callq 0x5ca80
movq -0x68(%rbp), %rdi
callq 0x59680
movl %eax, -0x5c(%rbp)
jmp 0x9a43c
movl -0x5c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5a410
jmp 0x9a54e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5a410
jmp 0x9a55a
movq -0x58(%rbp), %rdi
movq (%rdi), %rax
callq *0x90(%rax)
andb $0x1, %al
movb %al, -0x35(%rbp)
testb $0x1, -0x35(%rbp)
je 0x9a48c
movq -0x58(%rbp), %rdi
movq (%rdi), %rax
callq *0x60(%rax)
movq -0x58(%rbp), %rdi
movq -0x18(%rbp), %rsi
addq $0x5b8, %rdi            # imm = 0x5B8
callq 0x5cca0
movq -0x58(%rbp), %rdi
addq $0x5c0, %rdi            # imm = 0x5C0
xorl %esi, %esi
callq 0x5ac20
movq -0x58(%rbp), %rdi
callq 0x5bf70
movq %rax, -0x70(%rbp)
leaq -0x40(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x59260
movq -0x70(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x59830
testb $0x1, %al
jne 0x9a4df
jmp 0x9a4fb
movq -0x58(%rbp), %rdi
addq $0x5b8, %rdi            # imm = 0x5B8
callq 0x5ce60
movq -0x58(%rbp), %rdi
movq %rax, %rsi
callq 0x5de18
testb $0x1, -0x35(%rbp)
je 0x9a50b
movq -0x58(%rbp), %rdi
movq (%rdi), %rax
callq *0x58(%rax)
leaq -0x50(%rbp), %rdi
movq %rdi, -0x80(%rbp)
callq 0x5ca80
movq -0x80(%rbp), %rdi
callq 0x59680
movl %eax, -0x74(%rbp)
jmp 0x9a526
movl -0x74(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x5a410
jmp 0x9a54e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x5a410
jmp 0x9a55a
movl -0x4(%rbp), %eax
addq $0x80, %rsp
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/multiedit.cpp
// Function: smooth::GUI::MultiEdit::GetNOfLines()
S::Int S::GUI::MultiEdit::GetNOfLines()
{
	Int	 lines	= 1;
	Int	 length = text.Length();

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

	return lines;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x20(%rbp)
movl $0x1, -0xc(%rbp)
addq $0xf0, %rdi
callq 0x5b800
movl %eax, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
cmpl -0x10(%rbp), %eax
jge 0x9b9b7
movq -0x20(%rbp), %rdi
addq $0xf0, %rdi
movl -0x14(%rbp), %esi
callq 0x5d4e0
cmpl $0xa, (%rax)
jne 0x9b9aa
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x9b9ac
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x9b981
movl -0xc(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/multiedit.cpp
// Function: smooth::GUI::MultiEdit::SetText(smooth::String const&)
S::Int S::GUI::MultiEdit::SetText(const String &newText)
{
	scrollbarPos = 0;

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

	if (IsVisible()) Paint(SP_PAINT);

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x38(%rbp)
movl $0x0, 0x5c8(%rax)
movq 0x5b8(%rax), %rdi
xorl %esi, %esi
callq 0x59e20
movq -0x38(%rbp), %rax
movq 0x5b8(%rax), %rdi
movq -0x10(%rbp), %rsi
movq (%rdi), %rax
callq *0xa0(%rax)
movq -0x38(%rbp), %rax
movq 0x5b8(%rax), %rdi
movl $0x1, %esi
callq 0x59e20
movq -0x38(%rbp), %rdi
movq (%rdi), %rax
callq *0x90(%rax)
testb $0x1, %al
jne 0x9bb00
jmp 0x9bb0c
movq -0x38(%rbp), %rdi
movq (%rdi), %rax
xorl %esi, %esi
callq *0x78(%rax)
leaq -0x20(%rbp), %rdi
movq %rdi, -0x48(%rbp)
callq 0x5ca80
movq -0x48(%rbp), %rdi
callq 0x59680
movl %eax, -0x3c(%rbp)
jmp 0x9bb27
leaq -0x20(%rbp), %rdi
callq 0x5a410
movl -0x3c(%rbp), %eax
addq $0x50, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5a410
movq -0x28(%rbp), %rdi
callq 0x5b6b0
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/progressbar.cpp
// Function: smooth::GUI::Progressbar::Progressbar(smooth::GUI::Point const&, smooth::GUI::Size const&, int, int, int, int, int)
S::GUI::Progressbar::Progressbar(const Point &iPos, const Size &iSize, Int sType, Int iTextFlag, Int rangeStart, Int rangeEnd, Int iValue) : Widget(iPos, iSize)
{
	type		  = classID;
	subtype		  = sType;

	startValue	  = rangeStart;
	endValue	  = rangeEnd;

	value		  = startValue;

	gradientDirection = 0;

	SetFlags(iTextFlag);
	SetValue(iValue);

	font.SetColor(Setup::ClientTextColor);

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movl 0x18(%rbp), %eax
movl 0x10(%rbp), %eax
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl %r8d, -0x20(%rbp)
movl %r9d, -0x24(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x48(%rbp)
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x5c220
movq -0x48(%rbp), %rdi
movq 0x16abbb(%rip), %rax    # 0x208990
addq $0x10, %rax
movq %rax, (%rdi)
addq $0x5b8, %rdi            # imm = 0x5B8
movq %rdi, -0x40(%rbp)
xorl %esi, %esi
callq 0x5d4a0
jmp 0x9ddf0
movq -0x48(%rbp), %rdi
movq 0x16a9e5(%rip), %rax    # 0x2087e0
movswl (%rax), %esi
addq $0x20, %rdi
callq 0x5a2e0
jmp 0x9de09
movq -0x48(%rbp), %rdi
movw -0x1c(%rbp), %ax
movw %ax, 0x1a0(%rdi)
movl -0x24(%rbp), %eax
movl %eax, 0x5c8(%rdi)
movl 0x10(%rbp), %eax
movl %eax, 0x5cc(%rdi)
movl 0x5c8(%rdi), %eax
movl %eax, 0x5c4(%rdi)
movb $0x0, 0x5c0(%rdi)
movl -0x20(%rbp), %esi
callq 0x59730
jmp 0x9de47
movq -0x48(%rbp), %rdi
movl 0x18(%rbp), %esi
callq 0x5d2e0
jmp 0x9de55
movq -0x48(%rbp), %rdi
addq $0x140, %rdi            # imm = 0x140
movq 0x16af79(%rip), %rsi    # 0x208de0
callq 0x5d110
jmp 0x9de6e
movq -0x48(%rbp), %rdi
callq 0x5a210
movl %eax, -0x4c(%rbp)
jmp 0x9de7c
movl -0x4c(%rbp), %eax
cmpl $0x0, %eax
jne 0x9dece
movq -0x48(%rbp), %rdi
movw 0x1a0(%rdi), %ax
subw $0x2, %ax
movl $0x13, %eax
movl $0x50, %esi
cmovel %eax, %esi
callq 0x5db30
jmp 0x9dea7
jmp 0x9dece
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x9df0f
movq -0x40(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
callq 0x5de40
jmp 0x9df0f
movq -0x48(%rbp), %rdi
callq 0x5b860
movl %eax, -0x50(%rbp)
jmp 0x9dedc
movl -0x50(%rbp), %eax
cmpl $0x0, %eax
jne 0x9df09
movq -0x48(%rbp), %rdi
movw 0x1a0(%rdi), %ax
subw $0x2, %ax
movl $0x50, %eax
movl $0x13, %esi
cmovel %eax, %esi
callq 0x5bed0
jmp 0x9df07
jmp 0x9df09
addq $0x50, %rsp
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x5bd90
movq -0x30(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)