// File: /workspace/github_c_makefile_star2_O3/mcaimi[P]st/x.c
// Function: xinit
void
xinit(int w, int h)
{
  XGCValues gcvalues;
  Cursor cursor;
  Window parent, root;
  pid_t thispid = getpid();
  XColor xmousefg, xmousebg;

  xw.scr = XDefaultScreen(xw.dpy);
  xw.depth = (USE_ARGB) ? 32: XDefaultDepth(xw.dpy, xw.scr);
  if (!USE_ARGB)
    xw.vis = XDefaultVisual(xw.dpy, xw.scr);
  else {
    XVisualInfo *vis;
    XRenderPictFormat *fmt;
    int nvi;
    int i;

    XVisualInfo tpl = {
      .screen = xw.scr,
      .depth = 32,
      .class = TrueColor
    };

    vis = XGetVisualInfo(xw.dpy,
        VisualScreenMask | VisualDepthMask | VisualClassMask,
        &tpl, &nvi);
    xw.vis = NULL;
    for (i = 0; i < nvi; i++) {
      fmt = XRenderFindVisualFormat(xw.dpy, vis[i].visual);
      if (fmt->type == PictTypeDirect && fmt->direct.alphaMask) {
        xw.vis = vis[i].visual;
        break;
      }
    }

    XFree(vis);

    if (!xw.vis) {
      fprintf(stderr, "Couldn't find ARGB visual.\n");
      exit(1);
    }
  }

  /* font */
  if (!FcInit())
    die("could not init fontconfig.\n");

  usedfont = (opt_font == NULL)? font : opt_font;
  xloadfonts(usedfont, 0);
  xloadsparefonts();

  /* colors */
  if (!USE_ARGB)
    xw.cmap = XDefaultColormap(xw.dpy, xw.scr);
  else
    xw.cmap = XCreateColormap(xw.dpy, XRootWindow(xw.dpy, xw.scr),
        xw.vis, None);
  xloadcols();

  /* adjust fixed window geometry */
  switch (geometryMode) {
    case CellGeometry:
      win.w = 2 * win.dynborder_w + w * win.cw;
      win.h = 2 * win.dynborder_h + h * win.ch;
      break;
    case PixelGeometry:
      win.w = w;
      win.h = h;
      break;
  }

  if (xw.gm & XNegative)
    xw.l += DisplayWidth(xw.dpy, xw.scr) - win.w - 2;
  if (xw.gm & YNegative)
    xw.t += DisplayHeight(xw.dpy, xw.scr) - win.h - 2;

  /* Events */
  xw.attrs.background_pixel = dc.col[defaultbg].pixel;
  xw.attrs.border_pixel = dc.col[defaultbg].pixel;
  xw.attrs.bit_gravity = NorthWestGravity;
  xw.attrs.event_mask = FocusChangeMask | KeyPressMask | KeyReleaseMask
    | ExposureMask | VisibilityChangeMask | StructureNotifyMask
    | ButtonMotionMask | ButtonPressMask | ButtonReleaseMask;
  xw.attrs.colormap = xw.cmap;

  root = XRootWindow(xw.dpy, xw.scr);
  if (!(opt_embed && (parent = strtol(opt_embed, NULL, 0)))) 
    parent = root;
  xw.win = XCreateWindow(xw.dpy, root, xw.l, xw.t,
      win.w, win.h, 0, xw.depth, InputOutput,
      xw.vis, CWBackPixel | CWBorderPixel | CWBitGravity
      | CWEventMask | CWColormap, &xw.attrs);

  if (parent != root)
    XReparentWindow(xw.dpy, xw.win, parent, xw.l, xw.t);

  snprintf(winid, LEN(winid), "%lu", (unsigned long)xw.win);

  memset(&gcvalues, 0, sizeof(gcvalues));
  gcvalues.graphics_exposures = False;
  xw.buf = XCreatePixmap(xw.dpy, xw.win, win.w, win.h, xw.depth);
  dc.gc = XCreateGC(xw.dpy, (USE_ARGB) ? xw.buf: parent,
      GCGraphicsExposures, &gcvalues);
  XSetForeground(xw.dpy, dc.gc, dc.col[defaultbg].pixel);
  XFillRectangle(xw.dpy, xw.buf, dc.gc, 0, 0, win.w, win.h);

  /* font spec buffer */
  xw.specbuf = xmalloc(cols * sizeof(GlyphFontSpec));

  /* Xft rendering context */
  xw.draw = XftDrawCreate(xw.dpy, xw.buf, xw.vis, xw.cmap);

  /* input methods */
  if (!ximopen(xw.dpy)) {
    XRegisterIMInstantiateCallback(xw.dpy, NULL, NULL, NULL, ximinstantiate, NULL);
  }

  /* white cursor, black outline */
  cursor = XCreateFontCursor(xw.dpy, mouseshape);
  XDefineCursor(xw.dpy, xw.win, cursor);

  if (XParseColor(xw.dpy, xw.cmap, colorname[mousefg], &xmousefg) == 0) {
    xmousefg.red   = 0xffff;
    xmousefg.green = 0xffff;
    xmousefg.blue  = 0xffff;
  }

  if (XParseColor(xw.dpy, xw.cmap, colorname[mousebg], &xmousebg) == 0) {
    xmousebg.red   = 0x0000;
    xmousebg.green = 0x0000;
    xmousebg.blue  = 0x0000;
  }

  XRecolorCursor(xw.dpy, cursor, &xmousefg, &xmousebg);

  xw.xembed = XInternAtom(xw.dpy, "_XEMBED", False);
  xw.wmdeletewin = XInternAtom(xw.dpy, "WM_DELETE_WINDOW", False);
  xw.netwmname = XInternAtom(xw.dpy, "XA_WM_NAME", False);
  xw.netwmiconname = XInternAtom(xw.dpy, "_NET__WM_ICON_NAME", False);
  XSetWMProtocols(xw.dpy, xw.win, &xw.wmdeletewin, 1);

  xw.netwmpid = XInternAtom(xw.dpy, "_NET_WM_PID", False);
  // get window properties status
  xw.window_state = XInternAtom(xw.dpy, "_NET_WM_STATE", False);
  // get window fullscreen status
  xw.window_fullscreen = XInternAtom(xw.dpy, "_NET_WM_STATE_FULLSCREEN", False);

  XChangeProperty(xw.dpy, xw.win, xw.netwmpid, XA_CARDINAL, 32,
      PropModeReplace, (uchar *)&thispid, 1);

  win.mode = MODE_NUMLOCK;
  resettitle();
  xhints();

  /* load icon */
  if (taskbaricon != 0)
    load_icon();

  XMapWindow(xw.dpy, xw.win);
  XSync(xw.dpy, False);

  clock_gettime(CLOCK_MONOTONIC, &xsel.tclick1);
  clock_gettime(CLOCK_MONOTONIC, &xsel.tclick2);
  xsel.primary = NULL;
  xsel.clipboard = NULL;
  xsel.xtarget = XInternAtom(xw.dpy, "UTF8_STRING", 0);
  if (xsel.xtarget == None)
    xsel.xtarget = XA_STRING;

  boxdraw_xinit(xw.dpy, xw.cmap, xw.draw, xw.vis);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb0, %rsp
movl %esi, %ebx
movl %edi, %r14d
callq 0x62b0
movl %eax, 0xc(%rsp)
movq 0x11b89(%rip), %rdi     # 0x20bc8
callq 0x64d0
movl %eax, 0x11c9e(%rip)     # 0x20ce8
cmpl $0xff, 0xe550(%rip)     # 0x1d5a4
je 0xf06c
cmpq $0x0, 0x11ca2(%rip)     # 0x20d00
jne 0xf06c
movl $0x20, 0x11c86(%rip)    # 0x20cf0
jmp 0xf0a0
movq 0x11b55(%rip), %rdi     # 0x20bc8
movl %eax, %esi
callq 0x6880
movq 0x11c7f(%rip), %rcx     # 0x20d00
cmpl $0xff, 0xe519(%rip)     # 0x1d5a4
movl %eax, 0x11c5f(%rip)     # 0x20cf0
je 0xf132
testq %rcx, %rcx
jne 0xf132
xorps %xmm0, %xmm0
leaq 0x30(%rsp), %rdx
movaps %xmm0, 0x10(%rdx)
movaps %xmm0, 0x30(%rdx)
movaps %xmm0, 0x20(%rdx)
movaps %xmm0, (%rdx)
movl 0x11c2b(%rip), %eax     # 0x20ce8
movl %eax, 0x10(%rdx)
movabsq $0x400000020, %rax      # imm = 0x400000020
movq %rax, 0x14(%rdx)
movq 0x11af3(%rip), %rdi     # 0x20bc8
leaq 0x10(%rsp), %r12
movl $0xe, %esi
movq %r12, %rcx
callq 0x6850
movq %rax, %r15
movq $0x0, 0x11b7b(%rip) # 0x20c70
cmpl $0x0, (%r12)
jle 0xf158
xorl %r12d, %r12d
movq %r15, %r13
movq 0x11abf(%rip), %rdi     # 0x20bc8
movq (%r13), %rsi
callq 0x6050
cmpl $0x1, 0x8(%rax)
jne 0xf11f
cmpw $0x0, 0x1e(%rax)
jne 0xf14d
incq %r12
movslq 0x10(%rsp), %rax
addq $0x40, %r13
cmpq %rax, %r12
jl 0xf102
jmp 0xf158
movq 0x11a8f(%rip), %rdi     # 0x20bc8
movl 0x11ba9(%rip), %esi     # 0x20ce8
callq 0x62d0
movq %rax, 0x11b25(%rip)     # 0x20c70
jmp 0xf16e
movq (%r13), %rax
movq %rax, 0x11b18(%rip)     # 0x20c70
movq %r15, %rdi
callq 0x60a0
cmpq $0x0, 0x11b08(%rip)     # 0x20c70
je 0xf85c
callq 0x6a00
testl %eax, %eax
jne 0xf185
leaq 0x812a(%rip), %rdi      # 0x172a8
xorl %eax, %eax
callq 0x714f
movq 0x11c2c(%rip), %rdi     # 0x20db8
testq %rdi, %rdi
jne 0xf198
movq 0xe428(%rip), %rdi      # 0x1d5c0
movq %rdi, 0x11c09(%rip)     # 0x20da8
xorps %xmm0, %xmm0
callq 0xe1fe
callq 0xfa69
cmpl $0xff, 0xe3ee(%rip)     # 0x1d5a4
movq 0x11a0b(%rip), %r15     # 0x20bc8
movl 0x11b25(%rip), %esi     # 0x20ce8
je 0xf1ed
cmpq $0x0, 0x11b33(%rip)     # 0x20d00
jne 0xf1ed
movq %r15, %rdi
callq 0x62e0
movq 0x11a92(%rip), %rdx     # 0x20c70
movq %r15, %rdi
movq %rax, %rsi
xorl %ecx, %ecx
callq 0x6290
jmp 0xf1f5
movq %r15, %rdi
callq 0x65f0
movq %rax, 0x119d4(%rip)     # 0x20bd0
callq 0xc403
cmpb $0x0, 0x11bb8(%rip)     # 0x20dc0
jne 0xf22c
movl 0x11b14(%rip), %eax     # 0x20d24
imull 0x11b14(%rip), %r14d    # 0x20d2c
leal (%r14,%rax,2), %r14d
movl 0x11afe(%rip), %eax     # 0x20d20
imull 0x11aff(%rip), %ebx     # 0x20d28
leal (%rbx,%rax,2), %ebx
movl %r14d, 0x11ae5(%rip)    # 0x20d18
movl %ebx, 0x11ae3(%rip)     # 0x20d1c
movl 0x11abd(%rip), %eax     # 0x20cfc
movq 0x11982(%rip), %rdi     # 0x20bc8
movslq 0x11a9b(%rip), %rsi     # 0x20ce8
testb $0x10, %al
je 0xf277
movq 0xe8(%rdi), %rcx
movq %rsi, %rdx
shlq $0x7, %rdx
movl 0x18(%rcx,%rdx), %ecx
movl 0x11a8b(%rip), %edx     # 0x20cf4
subl %r14d, %ecx
addl %edx, %ecx
addl $-0x2, %ecx
movl %ecx, 0x11a7d(%rip)     # 0x20cf4
testb $0x20, %al
je 0xf2a0
movq 0xe8(%rdi), %rax
movq %rsi, %rcx
shlq $0x7, %rcx
movl 0x1c(%rax,%rcx), %eax
movl 0x11a65(%rip), %ecx     # 0x20cf8
subl %ebx, %eax
addl %ecx, %eax
addl $-0x2, %eax
movl %eax, 0x11a58(%rip)     # 0x20cf8
movq 0x11829(%rip), %rax     # 0x20ad0
movl 0xe2ff(%rip), %ecx      # 0x1d5ac
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq %rax, 0x119c4(%rip)     # 0x20c80
movq %rax, 0x119cd(%rip)     # 0x20c90
movl $0x1, 0x119cb(%rip)     # 0x20c98
movq $0x23a00f, 0x119e8(%rip) # imm = 0x23A00F
movq 0x118f1(%rip), %rax     # 0x20bd0
movq %rax, 0x119f2(%rip)     # 0x20cd8
callq 0x62e0
movq %rax, %r14
movq 0x11a0b(%rip), %rdi     # 0x20d00
testq %rdi, %rdi
je 0xf30b
xorl %esi, %esi
xorl %edx, %edx
callq 0x6510
movq %rax, %rbx
testq %rax, %rax
jne 0xf30e
movq %r14, %rbx
movq 0x118b3(%rip), %rdi     # 0x20bc8
movl 0x119d9(%rip), %edx     # 0x20cf4
movl 0x119d7(%rip), %ecx     # 0x20cf8
movl 0x119f0(%rip), %r8d     # 0x20d18
movl 0x119ed(%rip), %r9d     # 0x20d1c
movl 0x119bb(%rip), %eax     # 0x20cf0
leaq 0x1193c(%rip), %r10     # 0x20c78
movq %r14, %rsi
pushq %r10
pushq $0x281a                 # imm = 0x281A
pushq 0x11924(%rip)           # 0x20c70
pushq $0x1
pushq %rax
pushq $0x0
callq 0x6270
addq $0x30, %rsp
movq %rax, 0x11877(%rip)     # 0x20bd8
cmpq %r14, %rbx
je 0xf38c
movq 0x1185b(%rip), %rdi     # 0x20bc8
movl 0x11981(%rip), %ecx     # 0x20cf4
movl 0x1197e(%rip), %r8d     # 0x20cf8
movq %rax, %rsi
movq %rbx, %rdx
callq 0x6940
movq 0x1184c(%rip), %rax     # 0x20bd8
leaq 0x11abd(%rip), %rdi     # 0x20e50
leaq 0x7f2a(%rip), %rdx      # 0x172c4
movl $0x40, %esi
movq %rax, %rcx
xorl %eax, %eax
callq 0x60d0
xorps %xmm0, %xmm0
leaq 0x30(%rsp), %r14
movaps %xmm0, (%r14)
movaps %xmm0, 0x10(%r14)
movaps %xmm0, 0x20(%r14)
movaps %xmm0, 0x30(%r14)
movaps %xmm0, 0x40(%r14)
movaps %xmm0, 0x50(%r14)
movaps %xmm0, 0x60(%r14)
movaps %xmm0, 0x70(%r14)
movq 0x117e9(%rip), %rdi     # 0x20bc8
movq 0x117f2(%rip), %rsi     # 0x20bd8
movl 0x1192c(%rip), %edx     # 0x20d18
movl 0x1192a(%rip), %ecx     # 0x20d1c
movl 0x118f7(%rip), %r8d     # 0x20cf0
callq 0x6960
movq %rax, 0x117db(%rip)     # 0x20be0
movq 0x117bc(%rip), %rdi     # 0x20bc8
cmpq $0x0, 0x118ec(%rip)     # 0x20d00
cmovneq %rbx, %rax
cmpl $0xff, 0xe182(%rip)     # 0x1d5a4
cmovneq %rax, %rbx
movl $0x10000, %edx          # imm = 0x10000
movq %rbx, %rsi
movq %r14, %rcx
callq 0x65b0
movq %rax, 0x11783(%rip)     # 0x20bc0
movq 0x11784(%rip), %rdi     # 0x20bc8
movq 0x11685(%rip), %rcx     # 0x20ad0
movl 0xe15b(%rip), %edx      # 0x1d5ac
shlq $0x4, %rdx
movq (%rcx,%rdx), %rdx
movq %rax, %rsi
callq 0x63f0
movq 0x11760(%rip), %rdi     # 0x20bc8
movq 0x11771(%rip), %rsi     # 0x20be0
movq 0x1174a(%rip), %rdx     # 0x20bc0
movl 0x1189b(%rip), %r9d     # 0x20d18
movl 0x11899(%rip), %eax     # 0x20d1c
subq $0x8, %rsp
xorl %ecx, %ecx
xorl %r8d, %r8d
pushq %rax
callq 0x6400
addq $0x10, %rsp
movl 0xe968(%rip), %edi      # 0x1de04
shlq $0x4, %rdi
callq 0x7125
movq %rax, 0x1173c(%rip)     # 0x20be8
movq 0x11715(%rip), %rdi     # 0x20bc8
movq 0x11726(%rip), %rsi     # 0x20be0
movq 0x117af(%rip), %rdx     # 0x20c70
movq 0x11708(%rip), %rcx     # 0x20bd0
callq 0x6980
movq %rax, 0x11794(%rip)     # 0x20c68
callq 0xfd25
testl %eax, %eax
jne 0xf4f9
movq 0x116e4(%rip), %rdi     # 0x20bc8
leaq 0x925(%rip), %r8        # 0xfe10
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r9d, %r9d
callq 0x6350
movq 0x116c8(%rip), %rdi     # 0x20bc8
movl $0x98, %esi
callq 0x6090
movq %rax, %rbx
movq 0x116b4(%rip), %rdi     # 0x20bc8
movq 0x116bd(%rip), %rsi     # 0x20bd8
movq %rax, %rdx
callq 0x67c0
movq 0x1169e(%rip), %rdi     # 0x20bc8
movq 0x1169f(%rip), %rsi     # 0x20bd0
movq 0xe0d0(%rip), %rdx      # 0x1d608
leaq 0x10(%rsp), %rcx
callq 0x6770
testl %eax, %eax
jne 0xf555
movl $0xffffffff, 0x18(%rsp) # imm = 0xFFFFFFFF
movw $0xffff, 0x1c(%rsp)     # imm = 0xFFFF
movq 0x1166c(%rip), %rdi     # 0x20bc8
movq 0x1166d(%rip), %rsi     # 0x20bd0
movq 0xe066(%rip), %rdx      # 0x1d5d0
leaq 0x20(%rsp), %rcx
callq 0x6770
testl %eax, %eax
jne 0xf587
movl $0x0, 0x28(%rsp)
movw $0x0, 0x2c(%rsp)
movq 0x1163a(%rip), %rdi     # 0x20bc8
leaq 0x10(%rsp), %rdx
leaq 0x20(%rsp), %rcx
movq %rbx, %rsi
callq 0x6300
movq 0x11621(%rip), %rdi     # 0x20bc8
leaq 0x7d1a(%rip), %rsi      # 0x172c8
xorl %edx, %edx
callq 0x6800
movq %rax, 0x11634(%rip)     # 0x20bf0
movq 0x11605(%rip), %rdi     # 0x20bc8
leaq 0x7d06(%rip), %rsi      # 0x172d0
xorl %edx, %edx
callq 0x6800
movq %rax, 0x11620(%rip)     # 0x20bf8
leaq 0x11619(%rip), %rbx     # 0x20bf8
movq 0x115e2(%rip), %rdi     # 0x20bc8
leaq 0x7cf4(%rip), %rsi      # 0x172e1
xorl %edx, %edx
callq 0x6800
movq %rax, 0x11605(%rip)     # 0x20c00
movq 0x115c6(%rip), %rdi     # 0x20bc8
leaq 0x7ce3(%rip), %rsi      # 0x172ec
xorl %edx, %edx
callq 0x6800
movq %rax, 0x115f1(%rip)     # 0x20c08
movq 0x115aa(%rip), %rdi     # 0x20bc8
movq 0x115b3(%rip), %rsi     # 0x20bd8
movq %rbx, %rdx
movl $0x1, %ecx
callq 0x6470
movq 0x1158f(%rip), %rdi     # 0x20bc8
leaq 0x7cbf(%rip), %rsi      # 0x172ff
xorl %edx, %edx
callq 0x6800
movq %rax, 0x115c2(%rip)     # 0x20c10
movq 0x11573(%rip), %rdi     # 0x20bc8
leaq 0x7caf(%rip), %rsi      # 0x1730b
xorl %edx, %edx
callq 0x6800
movq %rax, 0x115b6(%rip)     # 0x20c20
movq 0x11557(%rip), %rdi     # 0x20bc8
leaq 0x7ca1(%rip), %rsi      # 0x17319
xorl %edx, %edx
callq 0x6800
movq %rax, 0x11592(%rip)     # 0x20c18
movq 0x1153b(%rip), %rdi     # 0x20bc8
movq 0x11544(%rip), %rsi     # 0x20bd8
movq 0x11575(%rip), %rdx     # 0x20c10
leaq 0xc(%rsp), %rax
movl $0x6, %ecx
movl $0x20, %r8d
xorl %r9d, %r9d
pushq $0x1
pushq %rax
callq 0x68a0
addq $0x10, %rsp
movl $0x20000, 0x11670(%rip) # imm = 0x20000
callq 0x95aa
callq 0xfe39
cmpl $0x0, 0x113e3(%rip)     # 0x20ab8
je 0xf7b5
movq 0x114e6(%rip), %rdi     # 0x20bc8
leaq 0x7d61(%rip), %rsi      # 0x1744a
xorl %edx, %edx
callq 0x6800
movq %rax, 0x11541(%rip)     # 0x20c38
movq 0x114ca(%rip), %rdi     # 0x20bc8
leaq 0x7d52(%rip), %rsi      # 0x17457
xorl %edx, %edx
callq 0x6800
movq %rax, %rbx
movq %rax, 0x1152a(%rip)     # 0x20c40
movq 0x114ab(%rip), %r14     # 0x20bc8
movq 0x114b4(%rip), %r15     # 0x20bd8
movq 0x1150d(%rip), %r12     # 0x20c38
movl $0x1, %edi
movl $0x8010, %esi           # imm = 0x8010
callq 0x67e0
movq %rax, %r13
movl $0x40, %eax
movq %rax, (%r13)
movq %rax, 0x8(%r13)
leaq 0x7d0f(%rip), %rdi      # 0x17460
movl $0x40, %esi
movl $0x40, %edx
movl $0x20, %ecx
xorl %eax, %eax
callq 0x60b0
movl $0x3, %eax
leaq 0x34e1(%rip), %rcx      # 0x12c54
xorps %xmm0, %xmm0
movsd (%rcx,%rax,4), %xmm1
unpcklps %xmm0, %xmm1            # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
movups %xmm1, -0x8(%r13,%rax,8)
addq $0x2, %rax
cmpq $0x1003, %rax           # imm = 0x1003
jne 0xf776
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rbx, %rcx
movl $0x20, %r8d
xorl %r9d, %r9d
pushq $0x1002                 # imm = 0x1002
pushq %r13
callq 0x68a0
addq $0x10, %rsp
movq 0x1140c(%rip), %rdi     # 0x20bc8
movq 0x11415(%rip), %rsi     # 0x20bd8
callq 0x6530
movq 0x113f9(%rip), %rdi     # 0x20bc8
xorl %esi, %esi
callq 0x6690
leaq 0x11623(%rip), %rsi     # 0x20e00
movl $0x1, %edi
callq 0x6150
leaq 0x11622(%rip), %rsi     # 0x20e10
movl $0x1, %edi
callq 0x6150
xorps %xmm0, %xmm0
movups %xmm0, 0x115ee(%rip)    # 0x20df0
movq 0x113bf(%rip), %rdi     # 0x20bc8
leaq 0x7b22(%rip), %rsi      # 0x17332
xorl %edx, %edx
callq 0x6800
testq %rax, %rax
movl $0x1f, %ecx
cmovneq %rax, %rcx
movq %rcx, 0x115be(%rip)     # 0x20de8
movq 0x11397(%rip), %rdi     # 0x20bc8
movq 0x11398(%rip), %rsi     # 0x20bd0
movq 0x11429(%rip), %rdx     # 0x20c68
movq 0x1142a(%rip), %rcx     # 0x20c70
callq 0x10e18
addq $0xb0, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
callq 0x6ebf