// File: /workspace/github_c_makefile_star2_O1/enzo1982[P]smooth/classes/gui/window/backends/xlib/windowxlib.cpp
// Function: smooth::GUI::WindowXLib::Open(smooth::String const&, smooth::GUI::Point const&, smooth::GUI::Size const&, int)
S::Int S::GUI::WindowXLib::Open(const String &title, const Point &pos, const Size &size, Int iFlags)
{
	static Atom	 wmDeleteWindowAtom    = XInternAtom(display, "WM_DELETE_WINDOW", False);

	static Atom	 wmPingAtom	       = XInternAtom(display, "_NET_WM_PING", False);
	static Atom	 wmIconAtom	       = XInternAtom(display, "_NET_WM_ICON", False);

	static Atom	 windowStateAtom       = XInternAtom(display, "_NET_WM_STATE", False);
	static Atom	 windowStateAboveAtom  = XInternAtom(display, "_NET_WM_STATE_ABOVE", False);
	static Atom	 windowStateModalAtom  = XInternAtom(display, "_NET_WM_STATE_MODAL", False);

	static Atom	 windowTypeAtom	       = XInternAtom(display, "_NET_WM_WINDOW_TYPE", False);
	static Atom	 windowTypeNormalAtom  = XInternAtom(display, "_NET_WM_WINDOW_TYPE_NORMAL", False);
	static Atom	 windowTypeDialogAtom  = XInternAtom(display, "_NET_WM_WINDOW_TYPE_DIALOG", False);
	static Atom	 windowTypeUtilityAtom = XInternAtom(display, "_NET_WM_WINDOW_TYPE_UTILITY", False);

	flags	     = iFlags;
	restoredRect = Rect(pos, size);

	XSetWindowAttributes	 attributes;

	attributes.background_pixel  = Setup::BackgroundColor;
	attributes.bit_gravity	     = NorthWestGravity;
	attributes.save_under	     = False;
	attributes.override_redirect = False;

	if (flags & WF_NOTITLE	   ) attributes.override_redirect = True;
	if (flags & WF_TOPMOST	    &&
	    flags & WF_NOTASKBUTTON &&
	    flags & WF_THINBORDER  ) attributes.save_under = True;

	wnd = XCreateWindow(display, RootWindow(display, 0), pos.x, pos.y, Math::Round(size.cx * fontSize) + sizeModifier.cx, Math::Round(size.cy * fontSize) + sizeModifier.cy, 0, CopyFromParent, InputOutput, CopyFromParent, CWBackPixel | CWBitGravity | CWSaveUnder | CWOverrideRedirect, &attributes);

	if (wnd != None)
	{
		/* Create input window.
		 */
		if (im != NIL)
		{
			XLockDisplay(display);

			iwnd = XCreateWindow(display, wnd, 0, 0, 1, 1, 0, CopyFromParent, InputOnly, CopyFromParent, 0, NIL);

			XMapWindow(display, iwnd);

			XUnlockDisplay(display);
		}

		/* Select event types we want to receive.
		 */
		XSelectInput(display, wnd, ExposureMask | FocusChangeMask | KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask | EnterWindowMask | LeaveWindowMask | StructureNotifyMask | PropertyChangeMask);

		/* Opt in to the WM_DELETE_WINDOW and _NET_WM_PING protocols.
		 */
		Atom	 protocols[2] = { wmDeleteWindowAtom, wmPingAtom };

		XSetWMProtocols(display, wnd, protocols, 2);

		/* Process the CreateNotify event again, as GetWindowBackend
		 * cannot find the correct backend until wnd is set.
		 */
		XEvent	 e;

		e.type = CreateNotify;

		ProcessSystemMessages(&e);

		/* Create drawing surface.
		 */
		if ((flags & WF_THINBORDER) || (flags & WF_NORESIZE)) drawSurface = new Surface((Void *) wnd, size * fontSize + sizeModifier);
		else						      drawSurface = new Surface((Void *) wnd);

		drawSurface->SetSize(size * fontSize + sizeModifier);

		/* Set application name.
		 */
		for (Int i = 0; i < Object::GetNOfObjects(); i++)
		{
			if (Object::GetNthObject(i)->GetObjectType() != Application::classID) continue;

			Application	*application = (Application *) Object::GetNthObject(i);
			XClassHint	*classHint   = XAllocClassHint();

			classHint->res_name  = application->GetText();
			classHint->res_class = application->GetText();

			XSetClassHint(display, wnd, classHint);
			XFree(classHint);

			break;
		}

		/* Set window title.
		 */
		SetTitle(title);

		/* Set icon.
		 */
		if (sysIcon != NIL)
		{
			XChangeProperty(display, wnd, wmIconAtom, XA_CARDINAL, 32, PropModeReplace, (unsigned char *) sysIcon, sysIconSize);
		}

		/* Set minimum and maximum size.
		 */
		if (flags & WF_NORESIZE)
		{
			minSize = size;
			maxSize = size;
		}

		UpdateWMNormalHints();

		/* Configure window type.
		 */
		if ((flags & WF_TOPMOST) && (flags & WF_NOTASKBUTTON) && (flags & WF_THINBORDER))
		{
			XChangeProperty(display, wnd, windowTypeAtom, XA_ATOM, 32, PropModeReplace, (unsigned char *) &windowTypeUtilityAtom, 1);
		}
		else if (flags & WF_TOPMOST)
		{
			XChangeProperty(display, wnd, windowTypeAtom, XA_ATOM, 32, PropModeReplace, (unsigned char *) &windowTypeDialogAtom, 1);
			XChangeProperty(display, wnd, windowStateAtom, XA_ATOM, 32, PropModeReplace, (unsigned char *) &windowStateAboveAtom, 1);
		}
		else if (flags & WF_MODAL)
		{
			XChangeProperty(display, wnd, windowTypeAtom, XA_ATOM, 32, PropModeReplace, (unsigned char *) &windowTypeDialogAtom, 1);
			XChangeProperty(display, wnd, windowStateAtom, XA_ATOM, 32, PropModeReplace, (unsigned char *) &windowStateModalAtom, 1);
		}
		else
		{
			XChangeProperty(display, wnd, windowTypeAtom, XA_ATOM, 32, PropModeReplace, (unsigned char *) &windowTypeNormalAtom, 1);
		}

		/* Set transient hint.
		 */
		Widget	*container = Window::GetWindow((Void *) wnd)->GetContainer();

		if (container != NIL)
		{
			Window		*parent = container->GetContainerWindow();
			WindowXLib	*leader = FindLeaderWindow();

			if	(parent != NIL) XSetTransientForHint(display, wnd, (X11::Window) parent->GetSystemWindow());
			else if (leader != NIL) XSetTransientForHint(display, wnd, leader->wnd);
		}

		/* Enable dropping files if requested.
		 */
		if (enableDropFiles) EnableDropFiles(True);

		return Success();
	}

	return Error();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x158, %rsp            # imm = 0x158
movl %r8d, %ebp
movq %rcx, %r14
movq %rdx, %r12
movq %rsi, %r15
movq %rdi, %rbx
movb 0xb671e(%rip), %al      # 0x177db8
testb %al, %al
je 0xc1d7b
movb 0xb6720(%rip), %al      # 0x177dc8
testb %al, %al
je 0xc1dbc
movb 0xb6722(%rip), %al      # 0x177dd8
testb %al, %al
je 0xc1dfd
movb 0xb6724(%rip), %al      # 0x177de8
testb %al, %al
je 0xc1e3e
movb 0xb6726(%rip), %al      # 0x177df8
testb %al, %al
je 0xc1e7f
movb 0xb6728(%rip), %al      # 0x177e08
testb %al, %al
je 0xc1ec0
movb 0xb672a(%rip), %al      # 0x177e18
testb %al, %al
je 0xc1f01
movb 0xb672c(%rip), %al      # 0x177e28
testb %al, %al
je 0xc1f42
movb 0xb672e(%rip), %al      # 0x177e38
testb %al, %al
je 0xc1f83
movb 0xb6730(%rip), %al      # 0x177e48
testb %al, %al
je 0xc1fc4
movl %ebp, 0x1b4(%rbx)
movl (%r12), %eax
movl 0x4(%r12), %ecx
movl (%r14), %edx
addl %eax, %edx
movl 0x4(%r14), %esi
addl %ecx, %esi
movl %eax, 0x1a4(%rbx)
movl %ecx, 0x1a8(%rbx)
movl %edx, 0x1ac(%rbx)
movl %esi, 0x1b0(%rbx)
movq 0xaad77(%rip), %rax     # 0x16c4d0
movq 0x8(%rax), %rax
movq %rax, 0x30(%rsp)
movl $0x1, 0x48(%rsp)
movl $0x0, 0x68(%rsp)
movl %ebp, %eax
shrl $0xe, %eax
andl $0x1, %eax
movl %eax, 0x80(%rsp)
notl %ebp
testb $0x1a, %bpl
jne 0xc1791
movl $0x1, 0x68(%rsp)
movq 0x120(%rbx), %rdi
movq 0xe8(%rdi), %rax
movq 0x10(%rax), %rsi
movl (%r12), %edx
movl 0x4(%r12), %ecx
cvtsi2sdl (%r14), %xmm0
movsd 0x178(%rbx), %xmm1
mulsd %xmm1, %xmm0
xorpd %xmm2, %xmm2
movapd %xmm0, %xmm3
cmpltsd %xmm2, %xmm3
movsd 0x32bbe(%rip), %xmm5    # 0xf4390
movapd %xmm3, %xmm4
andpd %xmm5, %xmm4
movsd 0x32bb6(%rip), %xmm6    # 0xf4398
andnpd %xmm6, %xmm3
orpd %xmm4, %xmm3
addsd %xmm0, %xmm3
cvttsd2si %xmm3, %r8
addl 0x18(%rbx), %r8d
xorps %xmm0, %xmm0
cvtsi2sdl 0x4(%r14), %xmm0
mulsd %xmm1, %xmm0
movapd %xmm0, %xmm1
cmpltsd %xmm2, %xmm1
movapd %xmm1, %xmm2
andpd %xmm5, %xmm2
andnpd %xmm6, %xmm1
orpd %xmm2, %xmm1
addsd %xmm0, %xmm1
cvttsd2si %xmm1, %r9
addl 0x1c(%rbx), %r9d
leaq 0x28(%rsp), %rax
xorl %r10d, %r10d
pushq %rax
pushq $0x612                  # imm = 0x612
pushq $0x0
pushq $0x1
pushq %r10
pushq %r10
callq 0x55840
addq $0x30, %rsp
movq %rax, 0x138(%rbx)
testq %rax, %rax
je 0xc19fd
cmpq $0x0, 0x128(%rbx)
je 0xc18e0
movq 0x120(%rbx), %rdi
callq 0x58ec0
movq 0x120(%rbx), %rdi
movq 0x138(%rbx), %rsi
subq $0x30, %rsp
xorpd %xmm0, %xmm0
movupd %xmm0, 0x18(%rsp)
xorl %eax, %eax
movl %eax, 0x8(%rsp)
movl %eax, (%rsp)
movq $0x0, 0x28(%rsp)
movl $0x2, 0x10(%rsp)
xorl %edx, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
movl $0x1, %r9d
callq 0x55840
addq $0x30, %rsp
movq %rax, 0x150(%rbx)
movq 0x120(%rbx), %rdi
movq %rax, %rsi
callq 0x57560
movq 0x120(%rbx), %rdi
callq 0x56760
movq 0x120(%rbx), %rdi
movq 0x138(%rbx), %rsi
movl $0x62807f, %edx         # imm = 0x62807F
callq 0x58600
movq 0xb64b1(%rip), %rax     # 0x177db0
leaq 0x10(%rsp), %rdx
movq %rax, (%rdx)
movq 0xb64b2(%rip), %rax     # 0x177dc0
movq %rax, 0x8(%rdx)
movq 0x120(%rbx), %rdi
movq 0x138(%rbx), %rsi
movl $0x2, %ecx
callq 0x584e0
leaq 0x98(%rsp), %rsi
movl $0x10, (%rsi)
movq %rbx, %rdi
callq 0xbfdd8
movb 0x1b4(%rbx), %bpl
movl $0x8, %edi
callq 0x556b0
movq %rax, %r12
movq 0x138(%rbx), %rsi
testb $0x14, %bpl
je 0xc1a07
xorps %xmm0, %xmm0
cvtsi2sdl (%r14), %xmm0
movsd 0x178(%rbx), %xmm1
mulsd %xmm1, %xmm0
xorpd %xmm2, %xmm2
movapd %xmm0, %xmm3
cmpltsd %xmm2, %xmm3
movapd %xmm3, %xmm4
movsd 0x329fe(%rip), %xmm5    # 0xf4390
andpd %xmm5, %xmm4
movsd 0x329fa(%rip), %xmm6    # 0xf4398
andnpd %xmm6, %xmm3
orpd %xmm4, %xmm3
addsd %xmm0, %xmm3
cvttsd2si %xmm3, %rax
xorps %xmm0, %xmm0
cvtsi2sdl 0x4(%r14), %xmm0
mulsd %xmm1, %xmm0
movapd %xmm0, %xmm1
cmpltsd %xmm2, %xmm1
movapd %xmm1, %xmm2
andpd %xmm5, %xmm2
andnpd %xmm6, %xmm1
orpd %xmm2, %xmm1
addsd %xmm0, %xmm1
cvttsd2si %xmm1, %rcx
addl 0x18(%rbx), %eax
addl 0x1c(%rbx), %ecx
shlq $0x20, %rcx
orq %rcx, %rax
leaq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %r12, %rdi
callq 0x57150
jmp 0xc1a1b
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
jmp 0xc1d69
leaq 0x8(%rsp), %rdx
movq $0x0, (%rdx)
movq %r12, %rdi
callq 0x57150
movq %r12, 0x10(%rbx)
xorps %xmm0, %xmm0
cvtsi2sdl (%r14), %xmm0
movsd 0x178(%rbx), %xmm1
mulsd %xmm1, %xmm0
xorpd %xmm2, %xmm2
movapd %xmm0, %xmm3
cmpltsd %xmm2, %xmm3
movapd %xmm3, %xmm4
movsd 0x32944(%rip), %xmm5    # 0xf4390
andpd %xmm5, %xmm4
movsd 0x32940(%rip), %xmm6    # 0xf4398
andnpd %xmm6, %xmm3
orpd %xmm4, %xmm3
addsd %xmm0, %xmm3
cvttsd2si %xmm3, %rax
movq 0x10(%rbx), %rdi
xorps %xmm0, %xmm0
cvtsi2sdl 0x4(%r14), %xmm0
mulsd %xmm1, %xmm0
movapd %xmm0, %xmm1
cmpltsd %xmm2, %xmm1
andpd %xmm1, %xmm5
andnpd %xmm6, %xmm1
orpd %xmm5, %xmm1
addsd %xmm0, %xmm1
cvttsd2si %xmm1, %rcx
addl 0x18(%rbx), %eax
addl 0x1c(%rbx), %ecx
shlq $0x20, %rcx
orq %rcx, %rax
leaq 0x8(%rsp), %rsi
movq %rax, (%rsi)
callq 0x56020
callq 0x575e0
testl %eax, %eax
jle 0xc1b53
movq 0xab2ca(%rip), %rax     # 0x16cd90
xorl %ebp, %ebp
movswl (%rax), %r12d
movl %ebp, %edi
callq 0x58800
leaq 0x20(%rax), %rdi
movl %r12d, %esi
callq 0x57520
testb %al, %al
jne 0xc1af0
incl %ebp
callq 0x575e0
cmpl %eax, %ebp
jl 0xc1acc
jmp 0xc1b53
movl %ebp, %edi
callq 0x58800
movq %rax, %r13
callq 0x58430
movq %rax, %r12
movq (%r13), %rax
movq %r13, %rdi
callq *0xa8(%rax)
movq %rax, %rdi
callq 0x585e0
movq %rax, (%r12)
movq (%r13), %rax
movq %r13, %rdi
callq *0xa8(%rax)
movq %rax, %rdi
callq 0x585e0
movq %rax, 0x8(%r12)
movq 0x120(%rbx), %rdi
movq 0x138(%rbx), %rsi
movq %r12, %rdx
callq 0x56970
movq %r12, %rdi
callq 0x57e80
movq (%rbx), %rax
movq %rbx, %rdi
movq %r15, %rsi
callq *0x38(%rax)
movq 0x158(%rbx), %rax
testq %rax, %rax
je 0xc1ba1
movq 0x120(%rbx), %rdi
movq 0x138(%rbx), %rsi
movq 0xb6250(%rip), %rdx     # 0x177dd0
movl 0x160(%rbx), %r10d
movl $0x6, %ecx
movl $0x20, %r8d
xorl %r9d, %r9d
pushq %r10
pushq %rax
callq 0x57730
addq $0x10, %rsp
testb $0x4, 0x1b4(%rbx)
je 0xc1bbe
movq (%r14), %rax
movq %rax, 0x190(%rbx)
movq (%r14), %rax
movq %rax, 0x198(%rbx)
movq %rbx, %rdi
callq 0xbf94e
movl 0x1b4(%rbx), %eax
movl %eax, %ecx
notl %ecx
testb $0x1a, %cl
jne 0xc1c06
movq 0x120(%rbx), %rdi
movq 0x138(%rbx), %rsi
movq 0xb6226(%rip), %rdx     # 0x177e10
leaq 0xb624f(%rip), %rax     # 0x177e40
movl $0x4, %ecx
movl $0x20, %r8d
xorl %r9d, %r9d
pushq $0x1
jmp 0xc1cd9
testb $0x2, %al
jne 0xc1c2c
movq 0x120(%rbx), %rdi
movq 0x138(%rbx), %rsi
movq 0xb61f1(%rip), %rdx     # 0x177e10
testb $0x1, %al
jne 0xc1c86
leaq 0xb61f6(%rip), %rax     # 0x177e20
jmp 0xc1bf1
movq 0x120(%rbx), %rdi
movq 0x138(%rbx), %rsi
movq 0xb61cf(%rip), %rdx     # 0x177e10
movl $0x1, %r14d
leaq 0xb61e2(%rip), %rax     # 0x177e30
movl $0x4, %ecx
movl $0x20, %r8d
xorl %r9d, %r9d
pushq %r14
pushq %rax
callq 0x57730
addq $0x10, %rsp
movq 0x120(%rbx), %rdi
movq 0x138(%rbx), %rsi
movq 0xb6163(%rip), %rdx     # 0x177de0
leaq 0xb616c(%rip), %rax     # 0x177df0
jmp 0xc1cc9
movl $0x1, %r14d
leaq 0xb619d(%rip), %rax     # 0x177e30
movl $0x4, %ecx
movl $0x20, %r8d
xorl %r9d, %r9d
pushq %r14
pushq %rax
callq 0x57730
addq $0x10, %rsp
movq 0x120(%rbx), %rdi
movq 0x138(%rbx), %rsi
movq 0xb611e(%rip), %rdx     # 0x177de0
leaq 0xb6137(%rip), %rax     # 0x177e00
movl $0x4, %ecx
movl $0x20, %r8d
xorl %r9d, %r9d
pushq %r14
pushq %rax
callq 0x57730
addq $0x10, %rsp
movq 0x138(%rbx), %rdi
callq 0x56ca0
movq 0x190(%rax), %rdi
testq %rdi, %rdi
je 0xc1d50
callq 0x559e0
movq %rax, %r14
movq %rbx, %rdi
callq 0xc209c
testq %r14, %r14
je 0xc1d31
movq 0x120(%rbx), %r15
movq 0x138(%rbx), %r12
movq %r14, %rdi
callq 0x55280
movq %r15, %rdi
movq %r12, %rsi
movq %rax, %rdx
jmp 0xc1d4b
testq %rax, %rax
je 0xc1d50
movq 0x120(%rbx), %rdi
movq 0x138(%rbx), %rsi
movq 0x138(%rax), %rdx
callq 0x56250
cmpb $0x1, 0x171(%rbx)
jne 0xc1d67
movq (%rbx), %rax
movq %rbx, %rdi
movl $0x1, %esi
callq *0x58(%rax)
xorl %eax, %eax
addq $0x158, %rsp            # imm = 0x158
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xb6036(%rip), %rdi     # 0x177db8
callq 0x56120
testl %eax, %eax
je 0xc16a2
movq 0x120(%rbx), %rdi
leaq 0x522d2(%rip), %rsi     # 0x11406f
xorl %edx, %edx
callq 0x57ea0
movq %rax, 0xb6005(%rip)     # 0x177db0
leaq 0xb6006(%rip), %rdi     # 0x177db8
callq 0x56b80
jmp 0xc16a2
leaq 0xb6005(%rip), %rdi     # 0x177dc8
callq 0x56120
testl %eax, %eax
je 0xc16b0
movq 0x120(%rbx), %rdi
leaq 0x522a2(%rip), %rsi     # 0x114080
xorl %edx, %edx
callq 0x57ea0
movq %rax, 0xb5fd4(%rip)     # 0x177dc0
leaq 0xb5fd5(%rip), %rdi     # 0x177dc8
callq 0x56b80
jmp 0xc16b0
leaq 0xb5fd4(%rip), %rdi     # 0x177dd8
callq 0x56120
testl %eax, %eax
je 0xc16be
movq 0x120(%rbx), %rdi
leaq 0x5231c(%rip), %rsi     # 0x11413b
xorl %edx, %edx
callq 0x57ea0
movq %rax, 0xb5fa3(%rip)     # 0x177dd0
leaq 0xb5fa4(%rip), %rdi     # 0x177dd8
callq 0x56b80
jmp 0xc16be
leaq 0xb5fa3(%rip), %rdi     # 0x177de8
callq 0x56120
testl %eax, %eax
je 0xc16cc
movq 0x120(%rbx), %rdi
leaq 0x5222d(%rip), %rsi     # 0x11408d
xorl %edx, %edx
callq 0x57ea0
movq %rax, 0xb5f72(%rip)     # 0x177de0
leaq 0xb5f73(%rip), %rdi     # 0x177de8
callq 0x56b80
jmp 0xc16cc
leaq 0xb5f72(%rip), %rdi     # 0x177df8
callq 0x56120
testl %eax, %eax
je 0xc16da
movq 0x120(%rbx), %rdi
leaq 0x522a7(%rip), %rsi     # 0x114148
xorl %edx, %edx
callq 0x57ea0
movq %rax, 0xb5f41(%rip)     # 0x177df0
leaq 0xb5f42(%rip), %rdi     # 0x177df8
callq 0x56b80
jmp 0xc16da
leaq 0xb5f41(%rip), %rdi     # 0x177e08
callq 0x56120
testl %eax, %eax
je 0xc16e8
movq 0x120(%rbx), %rdi
leaq 0x5227a(%rip), %rsi     # 0x11415c
xorl %edx, %edx
callq 0x57ea0
movq %rax, 0xb5f10(%rip)     # 0x177e00
leaq 0xb5f11(%rip), %rdi     # 0x177e08
callq 0x56b80
jmp 0xc16e8
leaq 0xb5f10(%rip), %rdi     # 0x177e18
callq 0x56120
testl %eax, %eax
je 0xc16f6
movq 0x120(%rbx), %rdi
leaq 0x5224d(%rip), %rsi     # 0x114170
xorl %edx, %edx
callq 0x57ea0
movq %rax, 0xb5edf(%rip)     # 0x177e10
leaq 0xb5ee0(%rip), %rdi     # 0x177e18
callq 0x56b80
jmp 0xc16f6
leaq 0xb5edf(%rip), %rdi     # 0x177e28
callq 0x56120
testl %eax, %eax
je 0xc1704
movq 0x120(%rbx), %rdi
leaq 0x52220(%rip), %rsi     # 0x114184
xorl %edx, %edx
callq 0x57ea0
movq %rax, 0xb5eae(%rip)     # 0x177e20
leaq 0xb5eaf(%rip), %rdi     # 0x177e28
callq 0x56b80
jmp 0xc1704
leaq 0xb5eae(%rip), %rdi     # 0x177e38
callq 0x56120
testl %eax, %eax
je 0xc1712
movq 0x120(%rbx), %rdi
leaq 0x521fa(%rip), %rsi     # 0x11419f
xorl %edx, %edx
callq 0x57ea0
movq %rax, 0xb5e7d(%rip)     # 0x177e30
leaq 0xb5e7e(%rip), %rdi     # 0x177e38
callq 0x56b80
jmp 0xc1712
leaq 0xb5e7d(%rip), %rdi     # 0x177e48
callq 0x56120
testl %eax, %eax
je 0xc1720
movq 0x120(%rbx), %rdi
leaq 0x521d4(%rip), %rsi     # 0x1141ba
xorl %edx, %edx
callq 0x57ea0
movq %rax, 0xb5e4c(%rip)     # 0x177e40
leaq 0xb5e4d(%rip), %rdi     # 0x177e48
callq 0x56b80
jmp 0xc1720
movq %rax, %rbx
leaq 0xb5e39(%rip), %rdi     # 0x177e48
jmp 0xc207b
movq %rax, %rbx
leaq 0xb5e1d(%rip), %rdi     # 0x177e38
jmp 0xc207b
movq %rax, %rbx
leaq 0xb5e01(%rip), %rdi     # 0x177e28
jmp 0xc207b
movq %rax, %rbx
leaq 0xb5de5(%rip), %rdi     # 0x177e18
jmp 0xc207b
movq %rax, %rbx
leaq 0xb5dc9(%rip), %rdi     # 0x177e08
jmp 0xc207b
movq %rax, %rbx
leaq 0xb5dad(%rip), %rdi     # 0x177df8
jmp 0xc207b
movq %rax, %rbx
leaq 0xb5d91(%rip), %rdi     # 0x177de8
jmp 0xc207b
movq %rax, %rbx
leaq 0xb5d75(%rip), %rdi     # 0x177dd8
jmp 0xc207b
movq %rax, %rbx
leaq 0xb5d59(%rip), %rdi     # 0x177dc8
jmp 0xc207b
movq %rax, %rbx
leaq 0xb5d3d(%rip), %rdi     # 0x177db8
callq 0x56420
jmp 0xc2094
jmp 0xc2084
movq %rax, %rbx
movl $0x8, %esi
movq %r12, %rdi
callq 0x55480
movq %rbx, %rdi
callq 0x57090