// File: /workspace/github_c_makefile_star2_O3/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 0xb67ee(%rip), %al      # 0x176db8
testb %al, %al
je 0xc0c60
movb 0xb67f0(%rip), %al      # 0x176dc8
testb %al, %al
je 0xc0ca1
movb 0xb67f2(%rip), %al      # 0x176dd8
testb %al, %al
je 0xc0ce2
movb 0xb67f4(%rip), %al      # 0x176de8
testb %al, %al
je 0xc0d23
movb 0xb67f6(%rip), %al      # 0x176df8
testb %al, %al
je 0xc0d64
movb 0xb67f8(%rip), %al      # 0x176e08
testb %al, %al
je 0xc0da5
movb 0xb67fa(%rip), %al      # 0x176e18
testb %al, %al
je 0xc0de6
movb 0xb67fc(%rip), %al      # 0x176e28
testb %al, %al
je 0xc0e27
movb 0xb67fe(%rip), %al      # 0x176e38
testb %al, %al
je 0xc0e68
movb 0xb6800(%rip), %al      # 0x176e48
testb %al, %al
je 0xc0ea9
movl %ebp, 0x1b4(%rbx)
movq (%r12), %xmm0
movq (%r14), %xmm1
paddd %xmm0, %xmm1
punpcklqdq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0]
movdqu %xmm0, 0x1a4(%rbx)
movq 0xaae58(%rip), %rax     # 0x16b4d0
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 0xc06b0
movl $0x1, 0x68(%rsp)
movq 0x120(%rbx), %rdi
cvtdq2pd (%r14), %xmm1
movq 0xe8(%rdi), %rcx
movupd 0x178(%rbx), %xmm0
unpcklpd %xmm0, %xmm0            # xmm0 = xmm0[0,0]
mulpd %xmm1, %xmm0
xorpd %xmm1, %xmm1
movapd %xmm0, %xmm2
cmpltpd %xmm1, %xmm2
movmskpd %xmm2, %eax
movsd 0x32ca4(%rip), %xmm1    # 0xf3390
movsd 0x32ca4(%rip), %xmm2    # 0xf3398
movapd %xmm1, %xmm3
testb $0x1, %al
jne 0xc0700
movapd %xmm2, %xmm3
movq 0x10(%rcx), %rsi
movl (%r12), %edx
addsd %xmm0, %xmm3
cvttsd2si %xmm3, %r8
movl 0x4(%r12), %ecx
addl 0x18(%rbx), %r8d
testb $0x2, %al
jne 0xc0722
movapd %xmm2, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %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 0xc08f6
cmpq $0x0, 0x128(%rbx)
je 0xc07f4
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 0x138(%rbx), %rax
movq 0x120(%rbx), %rdi
movl $0x62807f, %edx         # imm = 0x62807F
movq %rax, %rsi
callq 0x58600
movq 0xb65a1(%rip), %rax     # 0x176db0
leaq 0x10(%rsp), %rdx
movq %rax, (%rdx)
movq 0xb65a2(%rip), %rax     # 0x176dc0
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 0xbedc2
movb 0x1b4(%rbx), %bpl
movl $0x8, %edi
callq 0x556b0
movq %rax, %r12
movq 0x138(%rbx), %rsi
testb $0x14, %bpl
je 0xc0900
cvtdq2pd (%r14), %xmm1
movupd 0x178(%rbx), %xmm0
unpcklpd %xmm0, %xmm0            # xmm0 = xmm0[0,0]
mulpd %xmm1, %xmm0
xorpd %xmm1, %xmm1
movapd %xmm0, %xmm2
cmpltpd %xmm1, %xmm2
movmskpd %xmm2, %ecx
movsd 0x32aed(%rip), %xmm1    # 0xf3390
movsd 0x32aed(%rip), %xmm2    # 0xf3398
movapd %xmm1, %xmm3
testb $0x1, %cl
jne 0xc08b8
movapd %xmm2, %xmm3
addsd %xmm0, %xmm3
cvttsd2si %xmm3, %rax
testb $0x2, %cl
jne 0xc08ca
movapd %xmm2, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %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 0xc0914
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
jmp 0xc0c4e
leaq 0x8(%rsp), %rdx
movq $0x0, (%rdx)
movq %r12, %rdi
callq 0x57150
movq %r12, 0x10(%rbx)
cvtdq2pd (%r14), %xmm1
movupd 0x178(%rbx), %xmm0
unpcklpd %xmm0, %xmm0            # xmm0 = xmm0[0,0]
mulpd %xmm1, %xmm0
xorpd %xmm1, %xmm1
movapd %xmm0, %xmm2
cmpltpd %xmm1, %xmm2
movmskpd %xmm2, %ecx
movsd 0x32a4a(%rip), %xmm1    # 0xf3390
movsd 0x32a4a(%rip), %xmm2    # 0xf3398
movapd %xmm1, %xmm3
testb $0x1, %cl
jne 0xc095b
movapd %xmm2, %xmm3
addsd %xmm0, %xmm3
cvttsd2si %xmm3, %rax
testb $0x2, %cl
jne 0xc096d
movapd %xmm2, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %rcx
addl 0x18(%rbx), %eax
addl 0x1c(%rbx), %ecx
shlq $0x20, %rcx
orq %rcx, %rax
leaq 0x8(%rsp), %rsi
movq %rax, (%rsi)
movq %r12, %rdi
callq 0x56020
callq 0x575e0
testl %eax, %eax
jle 0xc0a38
movq 0xab3e5(%rip), %rax     # 0x16bd90
xorl %ebp, %ebp
movswl (%rax), %r12d
movl %ebp, %edi
callq 0x58800
leaq 0x20(%rax), %rdi
movl %r12d, %esi
callq 0x57520
testb %al, %al
jne 0xc09d5
incl %ebp
callq 0x575e0
cmpl %eax, %ebp
jl 0xc09b1
jmp 0xc0a38
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 0xc0a86
movq 0x120(%rbx), %rdi
movq 0x138(%rbx), %rsi
movq 0xb636b(%rip), %rdx     # 0x176dd0
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 0xc0aa3
movq (%r14), %rax
movq %rax, 0x190(%rbx)
movq (%r14), %rax
movq %rax, 0x198(%rbx)
movq %rbx, %rdi
callq 0xbe9aa
movl 0x1b4(%rbx), %eax
movl %eax, %ecx
notl %ecx
testb $0x1a, %cl
jne 0xc0aeb
movq 0x120(%rbx), %rdi
movq 0x138(%rbx), %rsi
movq 0xb6341(%rip), %rdx     # 0x176e10
leaq 0xb636a(%rip), %rax     # 0x176e40
movl $0x4, %ecx
movl $0x20, %r8d
xorl %r9d, %r9d
pushq $0x1
jmp 0xc0bbe
testb $0x2, %al
jne 0xc0b11
movq 0x120(%rbx), %rdi
movq 0x138(%rbx), %rsi
movq 0xb630c(%rip), %rdx     # 0x176e10
testb $0x1, %al
jne 0xc0b6b
leaq 0xb6311(%rip), %rax     # 0x176e20
jmp 0xc0ad6
movq 0x120(%rbx), %rdi
movq 0x138(%rbx), %rsi
movq 0xb62ea(%rip), %rdx     # 0x176e10
movl $0x1, %r14d
leaq 0xb62fd(%rip), %rax     # 0x176e30
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 0xb627e(%rip), %rdx     # 0x176de0
leaq 0xb6287(%rip), %rax     # 0x176df0
jmp 0xc0bae
movl $0x1, %r14d
leaq 0xb62b8(%rip), %rax     # 0x176e30
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 0xb6239(%rip), %rdx     # 0x176de0
leaq 0xb6252(%rip), %rax     # 0x176e00
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 0xc0c35
callq 0x559e0
movq %rax, %r14
movq %rbx, %rdi
callq 0xc0f82
testq %r14, %r14
je 0xc0c16
movq 0x120(%rbx), %r15
movq 0x138(%rbx), %r12
movq %r14, %rdi
callq 0x55280
movq %r15, %rdi
movq %r12, %rsi
movq %rax, %rdx
jmp 0xc0c30
testq %rax, %rax
je 0xc0c35
movq 0x120(%rbx), %rdi
movq 0x138(%rbx), %rsi
movq 0x138(%rax), %rdx
callq 0x56250
cmpb $0x1, 0x171(%rbx)
jne 0xc0c4c
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 0xb6151(%rip), %rdi     # 0x176db8
callq 0x56120
testl %eax, %eax
je 0xc05d2
movq 0x120(%rbx), %rdi
leaq 0x525f9(%rip), %rsi     # 0x11327b
xorl %edx, %edx
callq 0x57ea0
movq %rax, 0xb6120(%rip)     # 0x176db0
leaq 0xb6121(%rip), %rdi     # 0x176db8
callq 0x56b80
jmp 0xc05d2
leaq 0xb6120(%rip), %rdi     # 0x176dc8
callq 0x56120
testl %eax, %eax
je 0xc05e0
movq 0x120(%rbx), %rdi
leaq 0x525c9(%rip), %rsi     # 0x11328c
xorl %edx, %edx
callq 0x57ea0
movq %rax, 0xb60ef(%rip)     # 0x176dc0
leaq 0xb60f0(%rip), %rdi     # 0x176dc8
callq 0x56b80
jmp 0xc05e0
leaq 0xb60ef(%rip), %rdi     # 0x176dd8
callq 0x56120
testl %eax, %eax
je 0xc05ee
movq 0x120(%rbx), %rdi
leaq 0x52643(%rip), %rsi     # 0x113347
xorl %edx, %edx
callq 0x57ea0
movq %rax, 0xb60be(%rip)     # 0x176dd0
leaq 0xb60bf(%rip), %rdi     # 0x176dd8
callq 0x56b80
jmp 0xc05ee
leaq 0xb60be(%rip), %rdi     # 0x176de8
callq 0x56120
testl %eax, %eax
je 0xc05fc
movq 0x120(%rbx), %rdi
leaq 0x52554(%rip), %rsi     # 0x113299
xorl %edx, %edx
callq 0x57ea0
movq %rax, 0xb608d(%rip)     # 0x176de0
leaq 0xb608e(%rip), %rdi     # 0x176de8
callq 0x56b80
jmp 0xc05fc
leaq 0xb608d(%rip), %rdi     # 0x176df8
callq 0x56120
testl %eax, %eax
je 0xc060a
movq 0x120(%rbx), %rdi
leaq 0x525ce(%rip), %rsi     # 0x113354
xorl %edx, %edx
callq 0x57ea0
movq %rax, 0xb605c(%rip)     # 0x176df0
leaq 0xb605d(%rip), %rdi     # 0x176df8
callq 0x56b80
jmp 0xc060a
leaq 0xb605c(%rip), %rdi     # 0x176e08
callq 0x56120
testl %eax, %eax
je 0xc0618
movq 0x120(%rbx), %rdi
leaq 0x525a1(%rip), %rsi     # 0x113368
xorl %edx, %edx
callq 0x57ea0
movq %rax, 0xb602b(%rip)     # 0x176e00
leaq 0xb602c(%rip), %rdi     # 0x176e08
callq 0x56b80
jmp 0xc0618
leaq 0xb602b(%rip), %rdi     # 0x176e18
callq 0x56120
testl %eax, %eax
je 0xc0626
movq 0x120(%rbx), %rdi
leaq 0x52574(%rip), %rsi     # 0x11337c
xorl %edx, %edx
callq 0x57ea0
movq %rax, 0xb5ffa(%rip)     # 0x176e10
leaq 0xb5ffb(%rip), %rdi     # 0x176e18
callq 0x56b80
jmp 0xc0626
leaq 0xb5ffa(%rip), %rdi     # 0x176e28
callq 0x56120
testl %eax, %eax
je 0xc0634
movq 0x120(%rbx), %rdi
leaq 0x52547(%rip), %rsi     # 0x113390
xorl %edx, %edx
callq 0x57ea0
movq %rax, 0xb5fc9(%rip)     # 0x176e20
leaq 0xb5fca(%rip), %rdi     # 0x176e28
callq 0x56b80
jmp 0xc0634
leaq 0xb5fc9(%rip), %rdi     # 0x176e38
callq 0x56120
testl %eax, %eax
je 0xc0642
movq 0x120(%rbx), %rdi
leaq 0x52521(%rip), %rsi     # 0x1133ab
xorl %edx, %edx
callq 0x57ea0
movq %rax, 0xb5f98(%rip)     # 0x176e30
leaq 0xb5f99(%rip), %rdi     # 0x176e38
callq 0x56b80
jmp 0xc0642
leaq 0xb5f98(%rip), %rdi     # 0x176e48
callq 0x56120
testl %eax, %eax
je 0xc0650
movq 0x120(%rbx), %rdi
leaq 0x524fb(%rip), %rsi     # 0x1133c6
xorl %edx, %edx
callq 0x57ea0
movq %rax, 0xb5f67(%rip)     # 0x176e40
leaq 0xb5f68(%rip), %rdi     # 0x176e48
callq 0x56b80
jmp 0xc0650
movq %rax, %rbx
leaq 0xb5f54(%rip), %rdi     # 0x176e48
jmp 0xc0f60
movq %rax, %rbx
leaq 0xb5f38(%rip), %rdi     # 0x176e38
jmp 0xc0f60
movq %rax, %rbx
leaq 0xb5f1c(%rip), %rdi     # 0x176e28
jmp 0xc0f60
movq %rax, %rbx
leaq 0xb5f00(%rip), %rdi     # 0x176e18
jmp 0xc0f60
movq %rax, %rbx
leaq 0xb5ee4(%rip), %rdi     # 0x176e08
jmp 0xc0f60
movq %rax, %rbx
leaq 0xb5ec8(%rip), %rdi     # 0x176df8
jmp 0xc0f60
movq %rax, %rbx
leaq 0xb5eac(%rip), %rdi     # 0x176de8
jmp 0xc0f60
movq %rax, %rbx
leaq 0xb5e90(%rip), %rdi     # 0x176dd8
jmp 0xc0f60
movq %rax, %rbx
leaq 0xb5e74(%rip), %rdi     # 0x176dc8
jmp 0xc0f60
movq %rax, %rbx
leaq 0xb5e58(%rip), %rdi     # 0x176db8
callq 0x56420
jmp 0xc0f79
jmp 0xc0f69
movq %rax, %rbx
movl $0x8, %esi
movq %r12, %rdi
callq 0x55480
movq %rbx, %rdi
callq 0x57090
nop