LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/window/backends/xlib/windowxlib.cpp
// Function: smooth::GUI::WindowXLib::SetMaximumSize(smooth::GUI::Size const&)
S::Int S::GUI::WindowXLib::SetMaximumSize(const Size &nMaxSize)
{
	maxSize = nMaxSize;

	UpdateWMNormalHints();

	if (wnd != None)
	{
		XResizeWindow(display, wnd, Math::Round(Math::Min(size.cx, maxSize.cx) * fontSize) + sizeModifier.cx,
					    Math::Round(Math::Min(size.cy, maxSize.cy) * fontSize) + sizeModifier.cy);
		XFlush(display);
	}

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x38(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, 0x198(%rdi)
callq 0x121be0
movq -0x38(%rbp), %rax
cmpq $0x0, 0x138(%rax)
je 0x127265
movq -0x38(%rbp), %rax
movq 0x120(%rax), %rcx
movq %rcx, -0x50(%rbp)
movq 0x138(%rax), %rcx
movq %rcx, -0x48(%rbp)
movl 0x188(%rax), %edi
movl 0x198(%rax), %esi
callq 0x5ce90
movl %eax, %ecx
movq -0x38(%rbp), %rax
cvtsi2sd %ecx, %xmm0
mulsd 0x178(%rax), %xmm0
callq 0x5a970
movq %rax, %rcx
movq -0x38(%rbp), %rax
movslq 0x18(%rax), %rdx
addq %rdx, %rcx
movl %ecx, -0x3c(%rbp)
movl 0x18c(%rax), %edi
movl 0x19c(%rax), %esi
callq 0x5ce90
movl %eax, %ecx
movq -0x38(%rbp), %rax
cvtsi2sd %ecx, %xmm0
mulsd 0x178(%rax), %xmm0
callq 0x5a970
movq -0x50(%rbp), %rdi
movq -0x48(%rbp), %rsi
movl -0x3c(%rbp), %edx
movq -0x38(%rbp), %rcx
movslq 0x1c(%rcx), %rcx
addq %rcx, %rax
movl %eax, %ecx
callq 0x5d480
movq -0x38(%rbp), %rax
movq 0x120(%rax), %rdi
callq 0x5a0d0
leaq -0x20(%rbp), %rdi
movq %rdi, -0x60(%rbp)
callq 0x5ca80
movq -0x60(%rbp), %rdi
callq 0x59680
movl %eax, -0x54(%rbp)
jmp 0x127280
leaq -0x20(%rbp), %rdi
callq 0x5a410
movl -0x54(%rbp), %eax
addq $0x60, %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
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/window/backends/xlib/windowxlib.cpp
// Function: smooth::GUI::WindowXLib::Show()
S::Int S::GUI::WindowXLib::Show()
{
	if (wnd == None) return Success();

	XMapRaised(display, wnd);
	XFlush(display);

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
cmpq $0x0, 0x138(%rax)
jne 0x127314
leaq -0x20(%rbp), %rdi
movq %rdi, -0x58(%rbp)
callq 0x5ca80
movq -0x58(%rbp), %rdi
callq 0x59680
movl %eax, -0x4c(%rbp)
jmp 0x1272e9
movl -0x4c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5a410
jmp 0x12737e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5a410
jmp 0x127387
movq -0x48(%rbp), %rax
movq 0x120(%rax), %rdi
movq 0x138(%rax), %rsi
callq 0x5d0c0
movq -0x48(%rbp), %rax
movq 0x120(%rax), %rdi
callq 0x5a0d0
leaq -0x40(%rbp), %rdi
movq %rdi, -0x68(%rbp)
callq 0x5ca80
movq -0x68(%rbp), %rdi
callq 0x59680
movl %eax, -0x5c(%rbp)
jmp 0x127356
movl -0x5c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5a410
jmp 0x12737e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5a410
jmp 0x127387
movl -0x4(%rbp), %eax
addq $0x70, %rsp
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0x5b6b0
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/window/backends/xlib/windowxlib.cpp
// Function: smooth::GUI::WindowXLib::Hide()
S::Int S::GUI::WindowXLib::Hide()
{
	if (wnd == None) return Success();

	XUnmapWindow(display, wnd);
	XFlush(display);

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
cmpq $0x0, 0x138(%rax)
jne 0x1273f4
leaq -0x20(%rbp), %rdi
movq %rdi, -0x58(%rbp)
callq 0x5ca80
movq -0x58(%rbp), %rdi
callq 0x59680
movl %eax, -0x4c(%rbp)
jmp 0x1273c9
movl -0x4c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5a410
jmp 0x12745e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5a410
jmp 0x127467
movq -0x48(%rbp), %rax
movq 0x120(%rax), %rdi
movq 0x138(%rax), %rsi
callq 0x5c980
movq -0x48(%rbp), %rax
movq 0x120(%rax), %rdi
callq 0x5a0d0
leaq -0x40(%rbp), %rdi
movq %rdi, -0x68(%rbp)
callq 0x5ca80
movq -0x68(%rbp), %rdi
callq 0x59680
movl %eax, -0x5c(%rbp)
jmp 0x127436
movl -0x5c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5a410
jmp 0x12745e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5a410
jmp 0x127467
movl -0x4(%rbp), %eax
addq $0x70, %rsp
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0x5b6b0
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/window/backends/xlib/windowxlib.cpp
// Function: smooth::GUI::WindowXLib::SetMetrics(smooth::GUI::Point const&, smooth::GUI::Size const&)
S::Int S::GUI::WindowXLib::SetMetrics(const Point &nPos, const Size &nSize)
{
	if (wnd == None) return Success();

	XMoveResizeWindow(display, wnd, nPos.x, nPos.y, Math::Round(nSize.cx * fontSize) + sizeModifier.cx, Math::Round(nSize.cy * fontSize) + sizeModifier.cy);
	XFlush(display);

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x58(%rbp)
cmpq $0x0, 0x138(%rax)
jne 0x1274e2
leaq -0x30(%rbp), %rdi
movq %rdi, -0x68(%rbp)
callq 0x5ca80
movq -0x68(%rbp), %rdi
callq 0x59680
movl %eax, -0x5c(%rbp)
jmp 0x1274b4
movl -0x5c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x5a410
jmp 0x1275d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x5a410
jmp 0x1275e2
movq -0x58(%rbp), %rax
movq 0x120(%rax), %rcx
movq %rcx, -0x98(%rbp)
movq 0x138(%rax), %rcx
movq %rcx, -0x90(%rbp)
movq -0x18(%rbp), %rcx
movl (%rcx), %edx
movl %edx, -0x84(%rbp)
movl 0x4(%rcx), %ecx
movl %ecx, -0x80(%rbp)
movq -0x20(%rbp), %rcx
cvtsi2sdl (%rcx), %xmm0
movsd 0x178(%rax), %xmm1
mulsd %xmm1, %xmm0
callq 0x5a970
movq %rax, %rcx
movq -0x58(%rbp), %rax
movl 0x18(%rax), %edx
addl %edx, %ecx
movl %ecx, -0x7c(%rbp)
movq -0x20(%rbp), %rcx
cvtsi2sdl 0x4(%rcx), %xmm0
movsd 0x178(%rax), %xmm1
mulsd %xmm1, %xmm0
callq 0x5a970
movq -0x98(%rbp), %rdi
movq -0x90(%rbp), %rsi
movl -0x84(%rbp), %edx
movl -0x80(%rbp), %ecx
movl -0x7c(%rbp), %r8d
movq %rax, %r9
movq -0x58(%rbp), %rax
movl 0x1c(%rax), %eax
addl %eax, %r9d
callq 0x5b520
movq -0x58(%rbp), %rax
movq 0x120(%rax), %rdi
callq 0x5a0d0
leaq -0x50(%rbp), %rdi
movq %rdi, -0x78(%rbp)
callq 0x5ca80
movq -0x78(%rbp), %rdi
callq 0x59680
movl %eax, -0x6c(%rbp)
jmp 0x1275ae
movl -0x6c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x5a410
jmp 0x1275d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x5a410
jmp 0x1275e2
movl -0x4(%rbp), %eax
addq $0xa0, %rsp
popq %rbp
retq
movq -0x38(%rbp), %rdi
callq 0x5b6b0
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/window/backends/xlib/windowxlib.cpp
// Function: smooth::GUI::WindowXLib::Raise()
S::Int S::GUI::WindowXLib::Raise()
{
	if (wnd == None) return Success();

	/* FixMe: Are there cases where we need to do anything here?
	 */
	XFlush(display);

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
cmpq $0x0, 0x138(%rax)
jne 0x127901
leaq -0x20(%rbp), %rdi
movq %rdi, -0x58(%rbp)
callq 0x5ca80
movq -0x58(%rbp), %rdi
callq 0x59680
movl %eax, -0x4c(%rbp)
jmp 0x1278d9
movl -0x4c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5a410
jmp 0x127954
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5a410
jmp 0x12795d
movq -0x48(%rbp), %rax
movq 0x120(%rax), %rdi
callq 0x5a0d0
leaq -0x40(%rbp), %rdi
movq %rdi, -0x68(%rbp)
callq 0x5ca80
movq -0x68(%rbp), %rdi
callq 0x59680
movl %eax, -0x5c(%rbp)
jmp 0x12792c
movl -0x5c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5a410
jmp 0x127954
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5a410
jmp 0x12795d
movl -0x4(%rbp), %eax
addq $0x70, %rsp
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/window/backends/xlib/../../../../../include/smooth/templates/signals/signal.h
// Function: int smooth::Signal2<void, smooth::GUI::Cursor*, smooth::GUI::Point const&>::Disconnect<void>(void (*)(smooth::GUI::Cursor*, smooth::GUI::Point const&))
Int Disconnect(slotReturnTYPE (*proc)(SIGNALS_ARGUMENT_TYPES))
			{
				if (slotsN == NIL) return Error();

				SIGNALS_SLOT_GLOBAL_CLASS_NAME<slotReturnTYPE SIGNALS_CONDITIONAL_COMMA SIGNALS_ARGUMENT_TYPES>	 slot(proc);

				for (Int i = slotsN->Length() - 1; i >= 0; i--)
				{
					if ((*((SIGNALS_SLOT_BASE_CLASS_NAME<Void SIGNALS_CONDITIONAL_COMMA SIGNALS_ARGUMENT_TYPES> *) slotsN->GetNth(i))) == slot)
					{
						RemoveNthN(i);

						break;
					}
				}

				return Success();
			}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x68(%rbp)
cmpq $0x0, 0x10(%rax)
jne 0x12844a
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 0x128505
movq -0x18(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0x128730
movq -0x68(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x5c990
subl $0x1, %eax
movl %eax, -0x3c(%rbp)
cmpl $0x0, -0x3c(%rbp)
jl 0x1284dc
movq -0x68(%rbp), %rax
movq 0x10(%rax), %rdi
movl -0x3c(%rbp), %esi
callq 0x820b0
movq %rax, -0x70(%rbp)
jmp 0x128486
movq -0x70(%rbp), %rax
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x20(%rax), %rax
leaq -0x38(%rbp), %rsi
callq *%rax
movb %al, -0x71(%rbp)
jmp 0x12849f
movb -0x71(%rbp), %al
testb $0x1, %al
jne 0x1284a8
jmp 0x1284cf
movq -0x68(%rbp), %rdi
movl -0x3c(%rbp), %esi
callq 0xd12d0
jmp 0x1284b6
jmp 0x1284dc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x128790
jmp 0x128511
jmp 0x1284d1
movl -0x3c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x12846a
leaq -0x60(%rbp), %rdi
callq 0x5ca80
jmp 0x1284e7
leaq -0x60(%rbp), %rdi
callq 0x59680
movl %eax, -0x4(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x5a410
leaq -0x38(%rbp), %rdi
callq 0x128790
movl -0x4(%rbp), %eax
addq $0x80, %rsp
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x5b6b0
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/system/backends/xlib/eventxlib.cpp
// Function: smooth::System::EventXLib::EventXLib()
S::System::EventXLib::EventXLib()
{
	type = EVENT_XLIB;

	display	= Backends::BackendXLib::GetDisplay();

	/* Deny timer interrupts outside of any event loops
	 * to prevent interruption of sensitive code.
	 */
	if (!nested++) EventProcessor::denyTimerInterrupts.Call();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x28(%rbp)
callq 0x10b830
movq -0x28(%rbp), %rax
leaq 0xddce4(%rip), %rcx     # 0x206c08
movq %rcx, (%rax)
movw $0x2, 0x8(%rax)
callq 0x11ef70
movq %rax, -0x20(%rbp)
jmp 0x128f38
movq -0x28(%rbp), %rax
movq -0x20(%rbp), %rcx
movq %rcx, 0x10(%rax)
movl 0xebc9a(%rip), %eax     # 0x214be4
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, 0xebc8f(%rip)     # 0x214be4
cmpl $0x0, %eax
jne 0x128f81
movq 0xdfcf7(%rip), %rdi     # 0x208c58
callq 0x129240
jmp 0x128f68
jmp 0x128f81
movq -0x28(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
callq 0x10b860
jmp 0x128f87
addq $0x30, %rsp
popq %rbp
retq
movq -0x10(%rbp), %rdi
callq 0x5b6b0
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/system/backends/xlib/screenxlib.cpp
// Function: smooth::System::ScreenXLib::Initialize()
S::Int S::System::ScreenXLib::Initialize()
{
	libXrandr = dlopen("libXrandr.so", RTLD_NOW | RTLD_LOCAL);

	if (libXrandr != NIL)
	{
		XRRGetMonitors	= (xrrgetmonitors_t) dlsym(libXrandr, "XRRGetMonitors");
		XRRFreeMonitors	= (xrrfreemonitors_t) dlsym(libXrandr, "XRRFreeMonitors");
	}

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
leaq 0x7d93a(%rip), %rdi     # 0x1a6d29
movl $0x2, %esi
callq 0x5c5b0
movq %rax, 0xeb808(%rip)     # 0x214c08
cmpq $0x0, 0xeb800(%rip)     # 0x214c08
je 0x12943e
movq 0xeb7f7(%rip), %rdi     # 0x214c08
leaq 0x7d91e(%rip), %rsi     # 0x1a6d36
callq 0x59960
movq %rax, 0xeb7d4(%rip)     # 0x214bf8
movq 0xeb7dd(%rip), %rdi     # 0x214c08
leaq 0x7d913(%rip), %rsi     # 0x1a6d45
callq 0x59960
movq %rax, 0xeb7c2(%rip)     # 0x214c00
leaq -0x10(%rbp), %rdi
movq %rdi, -0x28(%rbp)
callq 0x5ca80
movq -0x28(%rbp), %rdi
callq 0x59680
movl %eax, -0x20(%rbp)
jmp 0x129459
leaq -0x10(%rbp), %rdi
callq 0x5a410
movl -0x20(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x10(%rbp), %rdi
callq 0x5a410
movq -0x18(%rbp), %rdi
callq 0x5b6b0
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/system/backends/xlib/screenxlib.cpp
// Function: smooth::System::ScreenXLib::GetActiveScreenMetrics()
S::GUI::Rect S::System::ScreenXLib::GetActiveScreenMetrics()
{
	if (display == NIL) return GUI::Rect();

	if (XRRGetMonitors != NIL)
	{
		GUI::Rect	 metrics = MonitorRectFromPoint(display, Input::Pointer::GetPosition());

		if (metrics != GUI::Rect()) return metrics;
	}

	return GUI::Rect(GUI::Point(0, 0), GUI::Size(XWidthOfScreen(XDefaultScreenOfDisplay(display)), XHeightOfScreen(XDefaultScreenOfDisplay(display))));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
cmpq $0x0, 0x10(%rax)
jne 0x1297b9
leaq -0x10(%rbp), %rdi
callq 0x5c030
jmp 0x129863
cmpq $0x0, 0xeb437(%rip)     # 0x214bf8
je 0x129808
movq -0x40(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x48(%rbp)
callq 0x59740
movq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0x129500
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5c030
leaq -0x10(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x59560
testb $0x1, %al
jne 0x129804
jmp 0x129806
jmp 0x129863
jmp 0x129808
leaq -0x30(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x5c2c0
movq -0x40(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x5b660
movq %rax, %rdi
callq 0x5a6e0
movl %eax, %ecx
movq -0x40(%rbp), %rax
movl %ecx, -0x4c(%rbp)
movq 0x10(%rax), %rdi
callq 0x5b660
movq %rax, %rdi
callq 0x5cda0
movl -0x4c(%rbp), %esi
movl %eax, %edx
leaq -0x38(%rbp), %rdi
callq 0x59260
leaq -0x10(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
callq 0x59ff0
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rdx
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/system/backends/xlib/screenxlib.cpp
// Function: smooth::System::ScreenXLib::GetActiveScreenWorkArea()
S::GUI::Rect S::System::ScreenXLib::GetActiveScreenWorkArea()
{
	if (display == NIL) return GUI::Rect();

	if (XRRGetMonitors != NIL)
	{
		GUI::Rect	 metrics = MonitorRectFromPoint(display, Input::Pointer::GetPosition());

		if (metrics != GUI::Rect()) return metrics;
	}

	return GUI::Rect(GUI::Point(0, 0), GUI::Size(XWidthOfScreen(XDefaultScreenOfDisplay(display)), XHeightOfScreen(XDefaultScreenOfDisplay(display))));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
cmpq $0x0, 0x10(%rax)
jne 0x1298a9
leaq -0x10(%rbp), %rdi
callq 0x5c030
jmp 0x129953
cmpq $0x0, 0xeb347(%rip)     # 0x214bf8
je 0x1298f8
movq -0x40(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x48(%rbp)
callq 0x59740
movq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0x129500
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5c030
leaq -0x10(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x59560
testb $0x1, %al
jne 0x1298f4
jmp 0x1298f6
jmp 0x129953
jmp 0x1298f8
leaq -0x30(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x5c2c0
movq -0x40(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x5b660
movq %rax, %rdi
callq 0x5a6e0
movl %eax, %ecx
movq -0x40(%rbp), %rax
movl %ecx, -0x4c(%rbp)
movq 0x10(%rax), %rdi
callq 0x5b660
movq %rax, %rdi
callq 0x5cda0
movl -0x4c(%rbp), %esi
movl %eax, %edx
leaq -0x38(%rbp), %rdi
callq 0x59260
leaq -0x10(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
callq 0x59ff0
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rdx
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/graphics/backends/cairo/surfacecairo.cpp
// Function: smooth::GUI::SurfaceCairo::~SurfaceCairo()
S::GUI::SurfaceCairo::~SurfaceCairo()
{
	if (window != NIL)
	{
		cairo_destroy(paintContextCairo);
		cairo_surface_destroy(paintSurfaceCairo);

		XFreePixmap(display, paintBitmap);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
leaq 0xdc29d(%rip), %rcx     # 0x206cc8
addq $0x10, %rcx
movq %rcx, (%rax)
cmpq $0x0, 0x50(%rax)
je 0x12aa72
movq -0x10(%rbp), %rax
movq 0xd0(%rax), %rdi
callq 0x5d750
jmp 0x12aa4b
movq -0x10(%rbp), %rax
movq 0xc8(%rax), %rdi
callq 0x5bd80
jmp 0x12aa5d
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rdi
movq 0x58(%rax), %rsi
callq 0x5a780
jmp 0x12aa70
jmp 0x12aa72
movq -0x10(%rbp), %rdi
addq $0x60, %rdi
callq 0x12f1c0
movq -0x10(%rbp), %rdi
callq 0x6e520
addq $0x10, %rsp
popq %rbp
retq
movq %rax, %rdi
callq 0x61c50
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/graphics/backends/cairo/surfacecairo.cpp
// Function: smooth::GUI::SurfaceCairo::PaintRect(smooth::GUI::Rect const&)
S::Int S::GUI::SurfaceCairo::PaintRect(const Rect &pRect)
{
	if (painting) return Error();

	if (window != NIL)
	{
		GC	 gc = XCreateGC(display, window, 0, NIL);

		XCopyArea(display, paintBitmap, window, gc, pRect.left, pRect.top, pRect.GetWidth(), pRect.GetHeight(), pRect.left, pRect.top);

		XFreeGC(display, gc);
	}

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0xc8, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x60(%rbp)
cmpw $0x0, 0xa(%rax)
je 0x12ae21
leaq -0x30(%rbp), %rdi
movq %rdi, -0x70(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
movq -0x70(%rbp), %rdi
callq 0x59680
movl %eax, -0x64(%rbp)
jmp 0x12adf3
movl -0x64(%rbp), %eax
movl %eax, -0xc(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x5b5b0
jmp 0x12af4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x5b5b0
jmp 0x12af58
movq -0x60(%rbp), %rax
cmpq $0x0, 0x50(%rax)
je 0x12aefc
movq -0x60(%rbp), %rax
movq 0x40(%rax), %rdi
movq 0x50(%rax), %rsi
xorl %eax, %eax
movl %eax, %ecx
movq %rcx, %rdx
callq 0x5b3b0
movq %rax, %rcx
movq -0x60(%rbp), %rax
movq %rcx, -0x48(%rbp)
movq 0x40(%rax), %rcx
movq %rcx, -0x98(%rbp)
movq 0x58(%rax), %rcx
movq %rcx, -0x90(%rbp)
movq 0x50(%rax), %rax
movq %rax, -0x88(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x20(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x78(%rbp)
movq -0x20(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x74(%rbp)
movq -0x20(%rbp), %rdi
callq 0x5a5a0
movl %eax, %ebx
movq -0x20(%rbp), %rdi
callq 0x591a0
movq -0x98(%rbp), %rdi
movq -0x90(%rbp), %rsi
movq -0x88(%rbp), %rdx
movq -0x80(%rbp), %rcx
movl -0x78(%rbp), %r8d
movl -0x74(%rbp), %r9d
movl %eax, %r11d
movq -0x20(%rbp), %rax
movl (%rax), %r10d
movq -0x20(%rbp), %rax
movl 0x4(%rax), %eax
movl %ebx, (%rsp)
movl %r11d, 0x8(%rsp)
movl %r10d, 0x10(%rsp)
movl %eax, 0x18(%rsp)
callq 0x5d9a0
movq -0x60(%rbp), %rax
movq 0x40(%rax), %rdi
movq -0x48(%rbp), %rsi
callq 0x5dd10
leaq -0x58(%rbp), %rdi
movq %rdi, -0xa8(%rbp)
callq 0x5ca80
movq -0xa8(%rbp), %rdi
callq 0x59680
movl %eax, -0x9c(%rbp)
jmp 0x12af20
movl -0x9c(%rbp), %eax
movl %eax, -0xc(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x5a410
jmp 0x12af4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x5a410
jmp 0x12af58
movl -0xc(%rbp), %eax
addq $0xc8, %rsp
popq %rbx
popq %rbp
retq
movq -0x38(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/graphics/backends/cairo/surfacecairo.cpp
// Function: smooth::GUI::SurfaceCairo::StartPaint(smooth::GUI::Rect const&)
S::Int S::GUI::SurfaceCairo::StartPaint(const Rect &iPRect)
{
	if (window == NIL) return Success();

	Rect	 pRect = Rect::OverlapRect(rightToLeft.TranslateRect(iPRect), paintRects.GetLast());

	cairo_save(paintContextCairo);
	cairo_rectangle(paintContextCairo, pRect.left, pRect.top, pRect.GetWidth(), pRect.GetHeight());
	cairo_clip(paintContextCairo);

	paintRects.Add(pRect);

	painting++;

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x70(%rbp)
cmpq $0x0, 0x50(%rax)
jne 0x12afdb
leaq -0x28(%rbp), %rdi
movq %rdi, -0x80(%rbp)
callq 0x5ca80
movq -0x80(%rbp), %rdi
callq 0x59680
movl %eax, -0x74(%rbp)
jmp 0x12afad
movl -0x74(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5a410
jmp 0x12b12c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5a410
jmp 0x12b138
movq -0x70(%rbp), %rdi
addq $0x28, %rdi
movq -0x18(%rbp), %rsi
callq 0x73390
movq -0x70(%rbp), %rdi
movq %rax, -0x54(%rbp)
movq %rdx, -0x4c(%rbp)
addq $0x60, %rdi
movq %rdi, -0xa0(%rbp)
callq 0x12f2d0
movq %rax, %rsi
leaq -0x54(%rbp), %rdi
callq 0x5d6a0
movq %rax, %rcx
movq -0x70(%rbp), %rax
movq %rcx, -0x44(%rbp)
movq %rdx, -0x3c(%rbp)
movq 0xd0(%rax), %rdi
callq 0x5b400
movq -0x70(%rbp), %rax
movq 0xd0(%rax), %rax
movq %rax, -0xc0(%rbp)
cvtsi2sdl -0x44(%rbp), %xmm0
movsd %xmm0, -0xb8(%rbp)
cvtsi2sdl -0x40(%rbp), %xmm0
movsd %xmm0, -0xb0(%rbp)
leaq -0x44(%rbp), %rdi
movq %rdi, -0x98(%rbp)
callq 0x5a5a0
movq -0x98(%rbp), %rdi
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0xa8(%rbp)
callq 0x591a0
movq -0xc0(%rbp), %rdi
movsd -0xb8(%rbp), %xmm0
movsd -0xb0(%rbp), %xmm1
movsd -0xa8(%rbp), %xmm2
cvtsi2sd %eax, %xmm3
callq 0x5aa10
movq -0x70(%rbp), %rax
movq 0xd0(%rax), %rdi
callq 0x5c3b0
movq -0xa0(%rbp), %rdi
movq -0x98(%rbp), %rsi
callq 0x12f190
movq -0x70(%rbp), %rax
movw 0xa(%rax), %cx
incw %cx
movw %cx, 0xa(%rax)
leaq -0x68(%rbp), %rdi
movq %rdi, -0x90(%rbp)
callq 0x5ca80
movq -0x90(%rbp), %rdi
callq 0x59680
movl %eax, -0x84(%rbp)
jmp 0x12b101
movl -0x84(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x5a410
jmp 0x12b12c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x5a410
jmp 0x12b138
movl -0x4(%rbp), %eax
addq $0xc0, %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/graphics/backends/cairo/surfacecairo.cpp
// Function: smooth::GUI::SurfaceCairo::EndPaint()
S::Int S::GUI::SurfaceCairo::EndPaint()
{
	if (!painting) return Error();

	painting--;

	if (painting == 0) PaintRect(paintRects.GetLast());

	paintRects.RemoveNth(paintRects.Length() - 1);

	cairo_restore(paintContextCairo);

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
cmpw $0x0, 0xa(%rax)
jne 0x12b1b9
leaq -0x20(%rbp), %rdi
movq %rdi, -0x58(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
movq -0x58(%rbp), %rdi
callq 0x59680
movl %eax, -0x4c(%rbp)
jmp 0x12b18b
movl -0x4c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5b5b0
jmp 0x12b25d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5b5b0
jmp 0x12b266
movq -0x48(%rbp), %rax
movw 0xa(%rax), %cx
addw $-0x1, %cx
movw %cx, 0xa(%rax)
movswl 0xa(%rax), %eax
cmpl $0x0, %eax
jne 0x12b1ec
movq -0x48(%rbp), %rdi
addq $0x60, %rdi
callq 0x12f2d0
movq -0x48(%rbp), %rdi
movq %rax, %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movq -0x48(%rbp), %rdi
addq $0x60, %rdi
movq %rdi, -0x70(%rbp)
callq 0x5c990
movq -0x70(%rbp), %rdi
movl %eax, %esi
decl %esi
callq 0x12f2f0
movq -0x48(%rbp), %rax
movq 0xd0(%rax), %rdi
callq 0x5c300
leaq -0x40(%rbp), %rdi
movq %rdi, -0x68(%rbp)
callq 0x5ca80
movq -0x68(%rbp), %rdi
callq 0x59680
movl %eax, -0x5c(%rbp)
jmp 0x12b235
movl -0x5c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5a410
jmp 0x12b25d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5a410
jmp 0x12b266
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/graphics/backends/cairo/surfacecairo.cpp
// Function: smooth::GUI::SurfaceCairo::CreateCairoContext()
S::Void S::GUI::SurfaceCairo::CreateCairoContext()
{
	if (context != NIL || surface != NIL) return;

	surface = cairo_xlib_surface_create(display, window, visual, size.cx, size.cy);
	context = cairo_create(surface);

	cairo_set_antialias(context, CAIRO_ANTIALIAS_NONE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, 0xc0(%rax)
jne 0x12b78c
movq -0x10(%rbp), %rax
cmpq $0x0, 0xb8(%rax)
je 0x12b78e
jmp 0x12b7e3
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rdi
movq 0x50(%rax), %rsi
movq 0x48(%rax), %rdx
movl 0xc(%rax), %ecx
movl 0x10(%rax), %r8d
callq 0x5c000
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0xb8(%rax)
movq 0xb8(%rax), %rdi
callq 0x5c9e0
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0xc0(%rax)
movq 0xc0(%rax), %rdi
movl $0x1, %esi
callq 0x5a850
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/graphics/backends/cairo/surfacecairo.cpp
// Function: smooth::GUI::SurfaceCairo::DestroyCairoContext()
S::Void S::GUI::SurfaceCairo::DestroyCairoContext()
{
	if (context == NIL || surface == NIL) return;

	cairo_destroy(context);
	cairo_surface_destroy(surface);

	context = NIL;
	surface = NIL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, 0xc0(%rax)
je 0x12b81c
movq -0x10(%rbp), %rax
cmpq $0x0, 0xb8(%rax)
jne 0x12b81e
jmp 0x12b858
movq -0x10(%rbp), %rax
movq 0xc0(%rax), %rdi
callq 0x5d750
movq -0x10(%rbp), %rax
movq 0xb8(%rax), %rdi
callq 0x5bd80
movq -0x10(%rbp), %rax
movq $0x0, 0xc0(%rax)
movq $0x0, 0xb8(%rax)
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/system/backends/posix/timerposix.cpp
// Function: smooth::System::TimerPOSIX::AllowTimerInterrupts()
S::Int S::System::TimerPOSIX::AllowTimerInterrupts()
{
	/* Unblock SIGALRM so timeouts can be processed.
	 */
	sigset_t	 ss;

	sigemptyset(&ss);
	sigaddset(&ss, SIGALRM);

	pthread_sigmask(SIG_UNBLOCK, &ss, NIL);

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
leaq -0x80(%rbp), %rdi
movq %rdi, -0xb0(%rbp)
callq 0x5c160
movq -0xb0(%rbp), %rdi
movl $0xe, %esi
callq 0x5ca30
movq -0xb0(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edx
movl $0x1, %edi
callq 0x598e0
leaq -0x90(%rbp), %rdi
movq %rdi, -0xa8(%rbp)
callq 0x5ca80
movq -0xa8(%rbp), %rdi
callq 0x59680
movl %eax, -0xa0(%rbp)
jmp 0x12ff98
leaq -0x90(%rbp), %rdi
callq 0x5a410
movl -0xa0(%rbp), %eax
addq $0xb0, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x5a410
movq -0x98(%rbp), %rdi
callq 0x5b6b0
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/system/backends/posix/timerposix.cpp
// Function: smooth::System::TimerPOSIX::DenyTimerInterrupts()
S::Int S::System::TimerPOSIX::DenyTimerInterrupts()
{
	/* Block SIGALRM again.
	 */
	sigset_t	 ss;

	sigemptyset(&ss);
	sigaddset(&ss, SIGALRM);

	pthread_sigmask(SIG_BLOCK, &ss, NIL);

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
leaq -0x80(%rbp), %rdi
movq %rdi, -0xb0(%rbp)
callq 0x5c160
movq -0xb0(%rbp), %rdi
movl $0xe, %esi
callq 0x5ca30
movq -0xb0(%rbp), %rsi
xorl %edi, %edi
movl %edi, %edx
callq 0x598e0
leaq -0x90(%rbp), %rdi
movq %rdi, -0xa8(%rbp)
callq 0x5ca80
movq -0xa8(%rbp), %rdi
callq 0x59680
movl %eax, -0xa0(%rbp)
jmp 0x130043
leaq -0x90(%rbp), %rdi
callq 0x5a410
movl -0xa0(%rbp), %eax
addq $0xb0, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x5a410
movq -0x98(%rbp), %rdi
callq 0x5b6b0
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/system/backends/posix/timerposix.cpp
// Function: smooth::System::TimerPOSIX::Stop()
S::Int S::System::TimerPOSIX::Stop()
{
	if (timer == NIL) return Error();

	timer_delete(*timer);

	delete timer;

	timer = NIL;

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
cmpq $0x0, 0x18(%rax)
jne 0x130419
leaq -0x20(%rbp), %rdi
movq %rdi, -0x58(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
movq -0x58(%rbp), %rdi
callq 0x59680
movl %eax, -0x4c(%rbp)
jmp 0x1303eb
movl -0x4c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5b5b0
jmp 0x130498
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5b5b0
jmp 0x1304a1
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rdi
callq 0x5ad50
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x60(%rbp)
cmpq $0x0, %rax
je 0x130449
movq -0x60(%rbp), %rdi
movl $0x8, %esi
callq 0x595b0
movq -0x48(%rbp), %rax
movq $0x0, 0x18(%rax)
leaq -0x40(%rbp), %rdi
movq %rdi, -0x70(%rbp)
callq 0x5ca80
movq -0x70(%rbp), %rdi
callq 0x59680
movl %eax, -0x64(%rbp)
jmp 0x130470
movl -0x64(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5a410
jmp 0x130498
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5a410
jmp 0x1304a1
movl -0x4(%rbp), %eax
addq $0x70, %rsp
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0x5b6b0
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/system/backends/posix/../../../../include/smooth/system/../templates/signals/signalr.h
// Function: smooth::SignalR0<int>::Disconnect(int (*)())
Int Disconnect(returnTYPE (*proc)(SIGNALS_ARGUMENT_TYPES))
			{
				if (slotsN == NIL) return Error();

				SIGNALS_SLOT_GLOBAL_CLASS_NAME<returnTYPE SIGNALS_CONDITIONAL_COMMA SIGNALS_ARGUMENT_TYPES>	 slot(proc);

				for (Int i = slotsN->Length() - 1; i >= 0; i--)
				{
					if ((*((SIGNALS_SLOT_BASE_CLASS_NAME<returnTYPE SIGNALS_CONDITIONAL_COMMA SIGNALS_ARGUMENT_TYPES> *) slotsN->GetNth(i))) == slot)
					{
						RemoveNthN(i);

						break;
					}
				}

				return Success();
			}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x68(%rbp)
cmpq $0x0, 0x10(%rax)
jne 0x1305aa
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 0x130665
movq -0x18(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0x130780
movq -0x68(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x5c990
subl $0x1, %eax
movl %eax, -0x3c(%rbp)
cmpl $0x0, -0x3c(%rbp)
jl 0x13063c
movq -0x68(%rbp), %rax
movq 0x10(%rax), %rdi
movl -0x3c(%rbp), %esi
callq 0x820b0
movq %rax, -0x70(%rbp)
jmp 0x1305e6
movq -0x70(%rbp), %rax
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x20(%rax), %rax
leaq -0x38(%rbp), %rsi
callq *%rax
movb %al, -0x71(%rbp)
jmp 0x1305ff
movb -0x71(%rbp), %al
testb $0x1, %al
jne 0x130608
jmp 0x13062f
movq -0x68(%rbp), %rdi
movl -0x3c(%rbp), %esi
callq 0x108e40
jmp 0x130616
jmp 0x13063c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x1307c0
jmp 0x130671
jmp 0x130631
movl -0x3c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x1305ca
leaq -0x60(%rbp), %rdi
callq 0x5ca80
jmp 0x130647
leaq -0x60(%rbp), %rdi
callq 0x59680
movl %eax, -0x4(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x5a410
leaq -0x38(%rbp), %rdi
callq 0x1307c0
movl -0x4(%rbp), %eax
addq $0x80, %rsp
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x5b6b0
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/system/backends/posix/../../../../include/smooth/system/../templates/signals/signalr.h
// Function: smooth::SignalR0<int>::Connect(int (*)())
Int Connect(returnTYPE (*proc)(SIGNALS_ARGUMENT_TYPES))
			{
				if (slotsN == NIL)
				{
					slotsN = new Array<Void *>();
					slotsN->EnableLocking();
				}

				slotsN->Add(new SIGNALS_SLOT_GLOBAL_CLASS_NAME<returnTYPE SIGNALS_CONDITIONAL_COMMA SIGNALS_ARGUMENT_TYPES>(proc));

				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, 0x10(%rax)
jne 0x1306f0
movl $0x58, %edi
callq 0x59820
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x48(%rbp)
callq 0x62ec0
jmp 0x1306ba
movq -0x40(%rbp), %rax
movq -0x48(%rbp), %rcx
movq %rcx, 0x10(%rax)
movq 0x10(%rax), %rdi
callq 0x5b830
jmp 0x1306f0
movq -0x48(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
movl $0x58, %esi
callq 0x595b0
jmp 0x130771
movq -0x40(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x58(%rbp)
movl $0x10, %edi
callq 0x59820
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x50(%rbp)
movq -0x10(%rbp), %rsi
callq 0x130780
jmp 0x13071b
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/threads/backends/posix/mutexposix.cpp
// Function: smooth::Threads::MutexPOSIX::MutexPOSIX(void*)
S::Threads::MutexPOSIX::MutexPOSIX(Void *iMutex)
{
	type = MUTEX_POSIX;

	if (iMutex != NIL)
	{
		mutex	= (pthread_mutex_t *) iMutex;
		myMutex	= False;
	}
	else
	{
		mutex	= new pthread_mutex_t;
		myMutex	= True;

		pthread_mutexattr_t	 mutexattr;

		pthread_mutexattr_init(&mutexattr);
		pthread_mutexattr_settype(&mutexattr, PTHREAD_MUTEX_RECURSIVE);

		if (pthread_mutex_init(mutex, &mutexattr) != 0)
		{
			delete mutex;

			mutex = NIL;
		}

		pthread_mutexattr_destroy(&mutexattr);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x28(%rbp)
xorl %eax, %eax
movl %eax, %esi
callq 0x10d880
movq -0x28(%rbp), %rax
leaq 0xd6584(%rip), %rcx     # 0x206f00
addq $0x10, %rcx
movq %rcx, (%rax)
movw $0x1, 0x8(%rax)
cmpq $0x0, -0x10(%rbp)
je 0x1309a5
movq -0x28(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, 0x10(%rax)
movb $0x0, 0x18(%rax)
jmp 0x130a40
movl $0x28, %edi
callq 0x59820
movq %rax, -0x30(%rbp)
jmp 0x1309b5
movq -0x28(%rbp), %rax
movq -0x30(%rbp), %rcx
movq %rcx, 0x10(%rax)
movb $0x1, 0x18(%rax)
leaq -0x20(%rbp), %rdi
callq 0x5cf70
leaq -0x20(%rbp), %rdi
movl $0x1, %esi
callq 0x5af80
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rdi
leaq -0x20(%rbp), %rsi
callq 0x5a680
cmpl $0x0, %eax
je 0x130a37
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x38(%rbp)
cmpq $0x0, %rax
je 0x130a12
movq -0x38(%rbp), %rdi
movl $0x28, %esi
callq 0x595b0
movq -0x28(%rbp), %rax
movq $0x0, 0x10(%rax)
jmp 0x130a37
movq -0x28(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
callq 0x10d8b0
jmp 0x130a46
leaq -0x20(%rbp), %rdi
callq 0x59f00
addq $0x40, %rsp
popq %rbp
retq
movq -0x18(%rbp), %rdi
callq 0x5b6b0
nop
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/threads/backends/posix/semaphoreposix.cpp
// Function: smooth::Threads::SemaphorePOSIX::~SemaphorePOSIX()
S::Threads::SemaphorePOSIX::~SemaphorePOSIX()
{
	if (mySemaphore && mutex != NIL)
	{
		pthread_mutex_destroy(mutex);
		pthread_cond_destroy(condition);

		delete mutex;
		delete condition;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
leaq 0xd60ed(%rip), %rcx     # 0x206f58
addq $0x10, %rcx
movq %rcx, (%rax)
testb $0x1, 0x28(%rax)
je 0x130edf
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x130edf
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x595d0
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x5a130
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
je 0x130ebd
movq -0x18(%rbp), %rdi
movl $0x28, %esi
callq 0x595b0
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x130edd
movq -0x20(%rbp), %rdi
movl $0x30, %esi
callq 0x595b0
jmp 0x130edf
movq -0x10(%rbp), %rdi
callq 0x10dad0
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/threads/backends/posix/semaphoreposix.cpp
// Function: smooth::Threads::SemaphorePOSIX::Wait()
S::Bool S::Threads::SemaphorePOSIX::Wait()
{
	if (mutex == NIL) return False;

	pthread_mutex_lock(mutex);

	while (count <= 0) pthread_cond_wait(condition, mutex);

	count -= 1;

	pthread_mutex_unlock(mutex);

	return True;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, 0x10(%rax)
jne 0x130f51
movb $0x0, -0x1(%rbp)
jmp 0x130f95
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x5a050
movq -0x18(%rbp), %rax
cmpl $0x0, 0x20(%rax)
jg 0x130f7b
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rdi
movq 0x10(%rax), %rsi
callq 0x5aeb0
jmp 0x130f5e
movq -0x18(%rbp), %rax
movl 0x20(%rax), %ecx
subl $0x1, %ecx
movl %ecx, 0x20(%rax)
movq 0x10(%rax), %rdi
callq 0x59e70
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/threads/backends/posix/semaphoreposix.cpp
// Function: smooth::Threads::SemaphorePOSIX::TryWait()
S::Bool S::Threads::SemaphorePOSIX::TryWait()
{
	if (mutex == NIL) return False;

	pthread_mutex_lock(mutex);

	if (count > 0)
	{
		count -= 1;

		pthread_mutex_unlock(mutex);

		return True;
	}

	pthread_mutex_unlock(mutex);

	return False;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, 0x10(%rax)
jne 0x130fc1
movb $0x0, -0x1(%rbp)
jmp 0x131005
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x5a050
movq -0x18(%rbp), %rax
cmpl $0x0, 0x20(%rax)
jle 0x130ff4
movq -0x18(%rbp), %rax
movl 0x20(%rax), %ecx
subl $0x1, %ecx
movl %ecx, 0x20(%rax)
movq 0x10(%rax), %rdi
callq 0x59e70
movb $0x1, -0x1(%rbp)
jmp 0x131005
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x59e70
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/threads/backends/posix/semaphoreposix.cpp
// Function: smooth::Threads::SemaphorePOSIX::Release()
S::Bool S::Threads::SemaphorePOSIX::Release()
{
	if (mutex == NIL) return False;

	pthread_mutex_lock(mutex);

	if (count < max)
	{
		count += 1;

		pthread_cond_signal(condition);
		pthread_mutex_unlock(mutex);

		return True;
	}

	pthread_mutex_unlock(mutex);

	return False;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, 0x10(%rax)
jne 0x131031
movb $0x0, -0x1(%rbp)
jmp 0x131084
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x5a050
movq -0x18(%rbp), %rcx
movl 0x20(%rcx), %eax
cmpl 0x24(%rcx), %eax
jge 0x131073
movq -0x18(%rbp), %rax
movl 0x20(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x20(%rax)
movq 0x18(%rax), %rdi
callq 0x5bb80
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x59e70
movb $0x1, -0x1(%rbp)
jmp 0x131084
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x59e70
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/threads/backends/posix/threadposix.cpp
// Function: smooth::Threads::ThreadPOSIX::ThreadPOSIX(void*)
S::Threads::ThreadPOSIX::ThreadPOSIX(Void *iThread)
{
	pthread_mutex_init(&mutex, NIL);

	type		 = THREAD_POSIX;

	thread		 = NIL;
	myThread	 = False;

	info.threadProc	 = NIL;
	info.threadParam = NIL;

	if (iThread != NIL) thread = (pthread_t *) iThread;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x18(%rbp)
xorl %eax, %eax
movl %eax, %esi
callq 0x10dcb0
movq -0x18(%rbp), %rdi
leaq 0xd5e94(%rip), %rax     # 0x206fb0
addq $0x10, %rax
movq %rax, (%rdi)
addq $0x20, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x5a680
movq -0x18(%rbp), %rax
movw $0x1, 0x8(%rax)
movq $0x0, 0x48(%rax)
movb $0x0, 0x50(%rax)
movq $0x0, 0x10(%rax)
movq $0x0, 0x18(%rax)
cmpq $0x0, -0x10(%rbp)
je 0x131169
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, 0x48(%rax)
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/threads/backends/posix/threadposix.cpp
// Function: smooth::Threads::ThreadPOSIX::Start(void (*)(void*), void*)
S::Int S::Threads::ThreadPOSIX::Start(Void (*threadProc)(Void *), Void *threadParam)
{
	Stop();

	info.threadProc	 = threadProc;
	info.threadParam = threadParam;

	thread	 = new pthread_t;
	myThread = True;

	pthread_create(thread, NULL, Caller, &info);

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x48(%rbp)
movq (%rdi), %rax
movq 0x18(%rax), %rax
callq *%rax
movq -0x48(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rax, %rdx
addq $0x10, %rdx
movq %rdx, -0x50(%rbp)
movq %rcx, 0x10(%rax)
movq -0x18(%rbp), %rcx
movq %rcx, 0x18(%rax)
movl $0x8, %edi
callq 0x59820
movq -0x50(%rbp), %rcx
movq %rax, %rdx
movq -0x48(%rbp), %rax
movq %rdx, 0x48(%rax)
movb $0x1, 0x50(%rax)
movq 0x48(%rax), %rdi
leaq 0x54(%rip), %rdx        # 0x1312c0
xorl %eax, %eax
movl %eax, %esi
callq 0x5d5f0
leaq -0x28(%rbp), %rdi
movq %rdi, -0x40(%rbp)
callq 0x5ca80
movq -0x40(%rbp), %rdi
callq 0x59680
movl %eax, -0x38(%rbp)
jmp 0x131290
leaq -0x28(%rbp), %rdi
callq 0x5a410
movl -0x38(%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
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/threads/backends/posix/threadposix.cpp
// Function: smooth::Threads::ThreadPOSIX::Stop()
S::Int S::Threads::ThreadPOSIX::Stop()
{
	pthread_mutex_lock(&mutex);

	if (thread == NIL || pthread_equal(pthread_self(), *thread))
	{
		pthread_mutex_unlock(&mutex);

		return Error();
	}

	pthread_t	*thread	  = this->thread;
	Bool		 myThread = this->myThread;

	this->thread = NIL;

	pthread_mutex_unlock(&mutex);

	pthread_cancel(*thread);
	pthread_detach(*thread);

	if (myThread) delete thread;

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x58(%rbp)
addq $0x20, %rdi
callq 0x5a050
movq -0x58(%rbp), %rax
cmpq $0x0, 0x48(%rax)
je 0x131338
callq 0x5ba00
movq %rax, %rdi
movq -0x58(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rsi
callq 0x5dc40
cmpl $0x0, %eax
je 0x131393
movq -0x58(%rbp), %rdi
addq $0x20, %rdi
callq 0x59e70
leaq -0x20(%rbp), %rdi
movq %rdi, -0x68(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
movq -0x68(%rbp), %rdi
callq 0x59680
movl %eax, -0x5c(%rbp)
jmp 0x131365
movl -0x5c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5b5b0
jmp 0x131437
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5b5b0
jmp 0x131443
movq -0x58(%rbp), %rdi
movq 0x48(%rdi), %rax
movq %rax, -0x38(%rbp)
movb 0x50(%rdi), %al
andb $0x1, %al
movb %al, -0x39(%rbp)
movq $0x0, 0x48(%rdi)
addq $0x20, %rdi
callq 0x59e70
movq -0x38(%rbp), %rax
movq (%rax), %rdi
callq 0x5d250
movq -0x38(%rbp), %rax
movq (%rax), %rdi
callq 0x5a140
testb $0x1, -0x39(%rbp)
je 0x1313f4
movq -0x38(%rbp), %rax
movq %rax, -0x70(%rbp)
cmpq $0x0, %rax
je 0x1313f2
movq -0x70(%rbp), %rdi
movl $0x8, %esi
callq 0x595b0
jmp 0x1313f4
leaq -0x50(%rbp), %rdi
movq %rdi, -0x80(%rbp)
callq 0x5ca80
movq -0x80(%rbp), %rdi
callq 0x59680
movl %eax, -0x74(%rbp)
jmp 0x13140f
movl -0x74(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x5a410
jmp 0x131437
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x5a410
jmp 0x131443
movl -0x4(%rbp), %eax
addq $0x80, %rsp
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0x5b6b0
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/threads/backends/posix/threadposix.cpp
// Function: smooth::Threads::ThreadPOSIX::Wait()
S::Int S::Threads::ThreadPOSIX::Wait()
{
	pthread_mutex_lock(&mutex);

	if (thread == NIL || pthread_equal(pthread_self(), *thread))
	{
		pthread_mutex_unlock(&mutex);

		return Error();
	}

	pthread_t	*thread	  = this->thread;
	Bool		 myThread = this->myThread;

	this->thread = NIL;

	pthread_mutex_unlock(&mutex);

	pthread_join(*thread, NIL);

	if (myThread) delete thread;

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x58(%rbp)
addq $0x20, %rdi
callq 0x5a050
movq -0x58(%rbp), %rax
cmpq $0x0, 0x48(%rax)
je 0x131498
callq 0x5ba00
movq %rax, %rdi
movq -0x58(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rsi
callq 0x5dc40
cmpl $0x0, %eax
je 0x1314f3
movq -0x58(%rbp), %rdi
addq $0x20, %rdi
callq 0x59e70
leaq -0x20(%rbp), %rdi
movq %rdi, -0x68(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
movq -0x68(%rbp), %rdi
callq 0x59680
movl %eax, -0x5c(%rbp)
jmp 0x1314c5
movl -0x5c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5b5b0
jmp 0x13158f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5b5b0
jmp 0x13159b
movq -0x58(%rbp), %rdi
movq 0x48(%rdi), %rax
movq %rax, -0x38(%rbp)
movb 0x50(%rdi), %al
andb $0x1, %al
movb %al, -0x39(%rbp)
movq $0x0, 0x48(%rdi)
addq $0x20, %rdi
callq 0x59e70
movq -0x38(%rbp), %rax
movq (%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x5a1e0
testb $0x1, -0x39(%rbp)
je 0x13154c
movq -0x38(%rbp), %rax
movq %rax, -0x70(%rbp)
cmpq $0x0, %rax
je 0x13154a
movq -0x70(%rbp), %rdi
movl $0x8, %esi
callq 0x595b0
jmp 0x13154c
leaq -0x50(%rbp), %rdi
movq %rdi, -0x80(%rbp)
callq 0x5ca80
movq -0x80(%rbp), %rdi
callq 0x59680
movl %eax, -0x74(%rbp)
jmp 0x131567
movl -0x74(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x5a410
jmp 0x13158f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x5a410
jmp 0x13159b
movl -0x4(%rbp), %eax
addq $0x80, %rsp
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)