// File: /workspace/github_c_makefile_star2_O1/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 0x121ad(%rip), %rdi     # 0x20bc8
callq 0x64d0
movl %eax, 0x122c2(%rip)     # 0x20ce8
cmpl $0xff, 0xeb74(%rip)     # 0x1d5a4
je 0xea41
movl $0x20, %ecx
cmpq $0x0, 0x122c1(%rip)     # 0x20d00
je 0xea51
movq 0x12180(%rip), %rdi     # 0x20bc8
movl %eax, %esi
callq 0x6880
movl %eax, %ecx
movl %ecx, 0x12299(%rip)     # 0x20cf0
cmpl $0xff, 0xeb43(%rip)     # 0x1d5a4
je 0xeb07
cmpq $0x0, 0x12291(%rip)     # 0x20d00
jne 0xeb07
xorps %xmm0, %xmm0
leaq 0x30(%rsp), %rdx
movaps %xmm0, 0x10(%rdx)
movaps %xmm0, 0x30(%rdx)
movaps %xmm0, 0x20(%rdx)
movaps %xmm0, (%rdx)
movl 0x12256(%rip), %eax     # 0x20ce8
movl %eax, 0x10(%rdx)
movabsq $0x400000020, %rax      # imm = 0x400000020
movq %rax, 0x14(%rdx)
movq 0x1211e(%rip), %rdi     # 0x20bc8
leaq 0x10(%rsp), %r12
movl $0xe, %esi
movq %r12, %rcx
callq 0x6850
movq %rax, %r15
movq $0x0, 0x121a6(%rip) # 0x20c70
cmpl $0x0, (%r12)
jle 0xeb2d
xorl %r12d, %r12d
movq %r15, %r13
movq 0x120ea(%rip), %rdi     # 0x20bc8
movq (%r13), %rsi
callq 0x6050
cmpl $0x1, 0x8(%rax)
jne 0xeaf4
cmpw $0x0, 0x1e(%rax)
jne 0xeb22
incq %r12
movslq 0x10(%rsp), %rax
addq $0x40, %r13
cmpq %rax, %r12
jl 0xead7
jmp 0xeb2d
movq 0x120ba(%rip), %rdi     # 0x20bc8
movl 0x121d4(%rip), %esi     # 0x20ce8
callq 0x62d0
movq %rax, 0x12150(%rip)     # 0x20c70
jmp 0xeb43
movq (%r13), %rax
movq %rax, 0x12143(%rip)     # 0x20c70
movq %r15, %rdi
callq 0x60a0
cmpq $0x0, 0x12133(%rip)     # 0x20c70
je 0xf24e
callq 0x6a00
testl %eax, %eax
jne 0xeb5a
leaq 0x8735(%rip), %rdi      # 0x17288
xorl %eax, %eax
callq 0x714f
movq 0x12257(%rip), %rdi     # 0x20db8
testq %rdi, %rdi
jne 0xeb6d
movq 0xea53(%rip), %rdi      # 0x1d5c0
movq %rdi, 0x12234(%rip)     # 0x20da8
xorps %xmm0, %xmm0
callq 0xdc16
callq 0xf45b
cmpl $0xff, 0xea19(%rip)     # 0x1d5a4
movq 0x12036(%rip), %r15     # 0x20bc8
movl 0x12150(%rip), %esi     # 0x20ce8
je 0xebc2
cmpq $0x0, 0x1215e(%rip)     # 0x20d00
jne 0xebc2
movq %r15, %rdi
callq 0x62e0
movq 0x120bd(%rip), %rdx     # 0x20c70
movq %r15, %rdi
movq %rax, %rsi
xorl %ecx, %ecx
callq 0x6290
jmp 0xebca
movq %r15, %rdi
callq 0x65f0
movq %rax, 0x11fff(%rip)     # 0x20bd0
callq 0xbdcf
cmpb $0x0, 0x121e3(%rip)     # 0x20dc0
je 0xebe8
movl %r14d, 0x12132(%rip)    # 0x20d18
jmp 0xec10
movl 0x12136(%rip), %eax     # 0x20d24
imull 0x12136(%rip), %r14d    # 0x20d2c
leal (%r14,%rax,2), %eax
movl %eax, 0x12118(%rip)     # 0x20d18
movl 0x1211a(%rip), %eax     # 0x20d20
imull 0x1211b(%rip), %ebx     # 0x20d28
leal (%rbx,%rax,2), %ebx
movl %ebx, 0x12106(%rip)     # 0x20d1c
movl 0x120e0(%rip), %eax     # 0x20cfc
testb $0x10, %al
je 0xec54
movq 0x11fa1(%rip), %rcx     # 0x20bc8
movq 0xe8(%rcx), %rcx
movslq 0x120b3(%rip), %rdx     # 0x20ce8
shlq $0x7, %rdx
movl 0x18(%rcx,%rdx), %ecx
movl 0x120b1(%rip), %edx     # 0x20cf4
subl 0x120cf(%rip), %ecx     # 0x20d18
addl %edx, %ecx
addl $-0x2, %ecx
movl %ecx, 0x120a0(%rip)     # 0x20cf4
testb $0x20, %al
je 0xec88
movq 0x11f69(%rip), %rax     # 0x20bc8
movq 0xe8(%rax), %rax
movslq 0x1207b(%rip), %rcx     # 0x20ce8
shlq $0x7, %rcx
movl 0x1c(%rax,%rcx), %eax
movl 0x1207d(%rip), %ecx     # 0x20cf8
subl %ebx, %eax
addl %ecx, %eax
addl $-0x2, %eax
movl %eax, 0x12070(%rip)     # 0x20cf8
movq 0x11e41(%rip), %rax     # 0x20ad0
movl 0xe917(%rip), %ecx      # 0x1d5ac
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq %rax, 0x11fdc(%rip)     # 0x20c80
movq %rax, 0x11fe5(%rip)     # 0x20c90
movl $0x1, 0x11fe3(%rip)     # 0x20c98
movq $0x23a00f, 0x12000(%rip) # imm = 0x23A00F
movq 0x11f09(%rip), %rax     # 0x20bd0
movq %rax, 0x1200a(%rip)     # 0x20cd8
movq 0x11ef3(%rip), %rdi     # 0x20bc8
movl 0x1200d(%rip), %esi     # 0x20ce8
callq 0x62e0
movq %rax, %r14
movq 0x12016(%rip), %rdi     # 0x20d00
testq %rdi, %rdi
je 0xed00
xorl %esi, %esi
xorl %edx, %edx
callq 0x6510
movq %rax, %rbx
testq %rax, %rax
jne 0xed03
movq %r14, %rbx
movq 0x11ebe(%rip), %rdi     # 0x20bc8
movl 0x11fe4(%rip), %edx     # 0x20cf4
movl 0x11fe2(%rip), %ecx     # 0x20cf8
movl 0x11ffb(%rip), %r8d     # 0x20d18
movl 0x11ff8(%rip), %r9d     # 0x20d1c
movl 0x11fc6(%rip), %eax     # 0x20cf0
leaq 0x11f47(%rip), %r10     # 0x20c78
movq %r14, %rsi
pushq %r10
pushq $0x281a                 # imm = 0x281A
pushq 0x11f2f(%rip)           # 0x20c70
pushq $0x1
pushq %rax
pushq $0x0
callq 0x6270
addq $0x30, %rsp
movq %rax, 0x11e82(%rip)     # 0x20bd8
cmpq %r14, %rbx
je 0xed7a
movq 0x11e66(%rip), %rdi     # 0x20bc8
movl 0x11f8c(%rip), %ecx     # 0x20cf4
movl 0x11f89(%rip), %r8d     # 0x20cf8
movq %rax, %rsi
movq %rbx, %rdx
callq 0x6940
movq 0x11e57(%rip), %rcx     # 0x20bd8
leaq 0x120c8(%rip), %rdi     # 0x20e50
leaq 0x8515(%rip), %rdx      # 0x172a4
movl $0x40, %esi
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 0x11df7(%rip), %rdi     # 0x20bc8
movq 0x11e00(%rip), %rsi     # 0x20bd8
movl 0x11f3a(%rip), %edx     # 0x20d18
movl 0x11f38(%rip), %ecx     # 0x20d1c
movl 0x11f05(%rip), %r8d     # 0x20cf0
callq 0x6960
movq %rax, 0x11de9(%rip)     # 0x20be0
movq 0x11dca(%rip), %rdi     # 0x20bc8
cmpq $0x0, 0x11efa(%rip)     # 0x20d00
cmovneq %rbx, %rax
cmpl $0xff, 0xe790(%rip)     # 0x1d5a4
cmovneq %rax, %rbx
movl $0x10000, %edx          # imm = 0x10000
movq %rbx, %rsi
movq %r14, %rcx
callq 0x65b0
movq %rax, 0x11d91(%rip)     # 0x20bc0
movq 0x11d92(%rip), %rdi     # 0x20bc8
movq 0x11c93(%rip), %rcx     # 0x20ad0
movl 0xe769(%rip), %edx      # 0x1d5ac
shlq $0x4, %rdx
movq (%rcx,%rdx), %rdx
movq %rax, %rsi
callq 0x63f0
movq 0x11d6e(%rip), %rdi     # 0x20bc8
movq 0x11d7f(%rip), %rsi     # 0x20be0
movq 0x11d58(%rip), %rdx     # 0x20bc0
movl 0x11ea9(%rip), %r9d     # 0x20d18
movl 0x11ea7(%rip), %eax     # 0x20d1c
subq $0x8, %rsp
xorl %ecx, %ecx
xorl %r8d, %r8d
pushq %rax
callq 0x6400
addq $0x10, %rsp
movl 0xef76(%rip), %edi      # 0x1de04
shlq $0x4, %rdi
callq 0x7125
movq %rax, 0x11d4a(%rip)     # 0x20be8
movq 0x11d23(%rip), %rdi     # 0x20bc8
movq 0x11d34(%rip), %rsi     # 0x20be0
movq 0x11dbd(%rip), %rdx     # 0x20c70
movq 0x11d16(%rip), %rcx     # 0x20bd0
callq 0x6980
movq %rax, 0x11da2(%rip)     # 0x20c68
callq 0xf70c
testl %eax, %eax
jne 0xeeeb
movq 0x11cf2(%rip), %rdi     # 0x20bc8
leaq 0x923(%rip), %r8        # 0xf800
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r9d, %r9d
callq 0x6350
movq 0x11cd6(%rip), %rdi     # 0x20bc8
movl $0x98, %esi
callq 0x6090
movq %rax, %rbx
movq 0x11cc2(%rip), %rdi     # 0x20bc8
movq 0x11ccb(%rip), %rsi     # 0x20bd8
movq %rax, %rdx
callq 0x67d0
movq 0x11cac(%rip), %rdi     # 0x20bc8
movq 0x11cad(%rip), %rsi     # 0x20bd0
movq 0xe6de(%rip), %rdx      # 0x1d608
leaq 0x10(%rsp), %rcx
callq 0x6780
testl %eax, %eax
jne 0xef47
movl $0xffffffff, 0x18(%rsp) # imm = 0xFFFFFFFF
movw $0xffff, 0x1c(%rsp)     # imm = 0xFFFF
movq 0x11c7a(%rip), %rdi     # 0x20bc8
movq 0x11c7b(%rip), %rsi     # 0x20bd0
movq 0xe674(%rip), %rdx      # 0x1d5d0
leaq 0x20(%rsp), %rcx
callq 0x6780
testl %eax, %eax
jne 0xef79
movl $0x0, 0x28(%rsp)
movw $0x0, 0x2c(%rsp)
movq 0x11c48(%rip), %rdi     # 0x20bc8
leaq 0x10(%rsp), %rdx
leaq 0x20(%rsp), %rcx
movq %rbx, %rsi
callq 0x6300
movq 0x11c2f(%rip), %rdi     # 0x20bc8
leaq 0x8308(%rip), %rsi      # 0x172a8
xorl %edx, %edx
callq 0x6800
movq %rax, 0x11c42(%rip)     # 0x20bf0
movq 0x11c13(%rip), %rdi     # 0x20bc8
leaq 0x82f4(%rip), %rsi      # 0x172b0
xorl %edx, %edx
callq 0x6800
movq %rax, 0x11c2e(%rip)     # 0x20bf8
leaq 0x11c27(%rip), %rbx     # 0x20bf8
movq 0x11bf0(%rip), %rdi     # 0x20bc8
leaq 0x82e2(%rip), %rsi      # 0x172c1
xorl %edx, %edx
callq 0x6800
movq %rax, 0x11c13(%rip)     # 0x20c00
movq 0x11bd4(%rip), %rdi     # 0x20bc8
leaq 0x82d1(%rip), %rsi      # 0x172cc
xorl %edx, %edx
callq 0x6800
movq %rax, 0x11bff(%rip)     # 0x20c08
movq 0x11bb8(%rip), %rdi     # 0x20bc8
movq 0x11bc1(%rip), %rsi     # 0x20bd8
movq %rbx, %rdx
movl $0x1, %ecx
callq 0x6470
movq 0x11b9d(%rip), %rdi     # 0x20bc8
leaq 0x82ad(%rip), %rsi      # 0x172df
xorl %edx, %edx
callq 0x6800
movq %rax, 0x11bd0(%rip)     # 0x20c10
movq 0x11b81(%rip), %rdi     # 0x20bc8
leaq 0x829d(%rip), %rsi      # 0x172eb
xorl %edx, %edx
callq 0x6800
movq %rax, 0x11bc4(%rip)     # 0x20c20
movq 0x11b65(%rip), %rdi     # 0x20bc8
leaq 0x828f(%rip), %rsi      # 0x172f9
xorl %edx, %edx
callq 0x6800
movq %rax, 0x11ba0(%rip)     # 0x20c18
movq 0x11b49(%rip), %rdi     # 0x20bc8
movq 0x11b52(%rip), %rsi     # 0x20bd8
movq 0x11b83(%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, 0x11c7e(%rip) # imm = 0x20000
callq 0x920c
callq 0xf829
cmpl $0x0, 0x119f1(%rip)     # 0x20ab8
je 0xf1a7
movq 0x11af4(%rip), %rdi     # 0x20bc8
leaq 0x834f(%rip), %rsi      # 0x1742a
xorl %edx, %edx
callq 0x6800
movq %rax, 0x11b4f(%rip)     # 0x20c38
movq 0x11ad8(%rip), %rdi     # 0x20bc8
leaq 0x8340(%rip), %rsi      # 0x17437
xorl %edx, %edx
callq 0x6800
movq %rax, %rbx
movq %rax, 0x11b38(%rip)     # 0x20c40
movq 0x11ab9(%rip), %r14     # 0x20bc8
movq 0x11ac2(%rip), %r15     # 0x20bd8
movq 0x11b1b(%rip), %r12     # 0x20c38
movl $0x8010, %edi           # imm = 0x8010
callq 0x6220
movq %rax, %r13
movl $0x8010, %edx           # imm = 0x8010
movq %rax, %rdi
xorl %esi, %esi
callq 0x60c0
movl $0x40, %eax
movq %rax, (%r13)
movq %rax, 0x8(%r13)
leaq 0x82f3(%rip), %rdi      # 0x17440
movl $0x40, %esi
movl $0x40, %edx
movl $0x20, %ecx
xorl %eax, %eax
callq 0x60b0
movl $0x3, %eax
leaq 0x3ac1(%rip), %rcx      # 0x12c30
movl (%rcx,%rax,4), %edx
movq %rdx, -0x8(%r13,%rax,8)
incq %rax
cmpq $0x1003, %rax           # imm = 0x1003
jne 0xf16f
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 0x11a1a(%rip), %rdi     # 0x20bc8
movq 0x11a23(%rip), %rsi     # 0x20bd8
callq 0x6530
movq 0x11a07(%rip), %rdi     # 0x20bc8
xorl %esi, %esi
callq 0x6690
leaq 0x11c31(%rip), %rsi     # 0x20e00
movl $0x1, %edi
callq 0x6150
leaq 0x11c30(%rip), %rsi     # 0x20e10
movl $0x1, %edi
callq 0x6150
xorps %xmm0, %xmm0
movups %xmm0, 0x11bfc(%rip)    # 0x20df0
movq 0x119cd(%rip), %rdi     # 0x20bc8
leaq 0x8110(%rip), %rsi      # 0x17312
xorl %edx, %edx
callq 0x6800
testq %rax, %rax
movl $0x1f, %ecx
cmovneq %rax, %rcx
movq %rcx, 0x11bcc(%rip)     # 0x20de8
movq 0x119a5(%rip), %rdi     # 0x20bc8
movq 0x119a6(%rip), %rsi     # 0x20bd0
movq 0x11a37(%rip), %rdx     # 0x20c68
movq 0x11a38(%rip), %rcx     # 0x20c70
callq 0x10820
addq $0xb0, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
callq 0x6ebf