// File: /workspace/github_c_makefile_star2_O3/0x0203[P]schack_poc/./nuklear_xlib.h
// Function: nk_xlib_handle_event
NK_API int
nk_xlib_handle_event(Display *dpy, int screen, Window win, XEvent *evt)
{
    struct nk_context *ctx = &xlib.ctx;

    /* optional grabbing behavior */
    if (ctx->input.mouse.grab) {
        XDefineCursor(xlib.dpy, xlib.root, xlib.cursor);
        ctx->input.mouse.grab = 0;
    } else if (ctx->input.mouse.ungrab) {
        XWarpPointer(xlib.dpy, None, xlib.root, 0, 0, 0, 0,
            (int)ctx->input.mouse.prev.x, (int)ctx->input.mouse.prev.y);
        XUndefineCursor(xlib.dpy, xlib.root);
        ctx->input.mouse.ungrab = 0;
    }

    if (evt->type == KeyPress || evt->type == KeyRelease)
    {
        /* Key handler */
        int ret, down = (evt->type == KeyPress);
        KeySym *code = XGetKeyboardMapping(xlib.surf->dpy, (KeyCode)evt->xkey.keycode, 1, &ret);
        if (*code == XK_Shift_L || *code == XK_Shift_R) nk_input_key(ctx, NK_KEY_SHIFT, down);
        else if (*code == XK_Delete)    nk_input_key(ctx, NK_KEY_DEL, down);
        else if (*code == XK_Return)    nk_input_key(ctx, NK_KEY_ENTER, down);
        else if (*code == XK_Tab)       nk_input_key(ctx, NK_KEY_TAB, down);
        else if (*code == XK_Left)      nk_input_key(ctx, NK_KEY_LEFT, down);
        else if (*code == XK_Right)     nk_input_key(ctx, NK_KEY_RIGHT, down);
        else if (*code == XK_Up)        nk_input_key(ctx, NK_KEY_UP, down);
        else if (*code == XK_Down)      nk_input_key(ctx, NK_KEY_DOWN, down);
        else if (*code == XK_BackSpace) nk_input_key(ctx, NK_KEY_BACKSPACE, down);
        else if (*code == XK_Escape)    nk_input_key(ctx, NK_KEY_TEXT_RESET_MODE, down);
        else if (*code == XK_Page_Up)   nk_input_key(ctx, NK_KEY_SCROLL_UP, down);
        else if (*code == XK_Page_Down) nk_input_key(ctx, NK_KEY_SCROLL_DOWN, down);
        else if (*code == XK_Home) {
            nk_input_key(ctx, NK_KEY_TEXT_START, down);
            nk_input_key(ctx, NK_KEY_SCROLL_START, down);
        } else if (*code == XK_End) {
            nk_input_key(ctx, NK_KEY_TEXT_END, down);
            nk_input_key(ctx, NK_KEY_SCROLL_END, down);
        } else {
            if (*code == 'c' && (evt->xkey.state & ControlMask))
                nk_input_key(ctx, NK_KEY_COPY, down);
            else if (*code == 'v' && (evt->xkey.state & ControlMask))
                nk_input_key(ctx, NK_KEY_PASTE, down);
            else if (*code == 'x' && (evt->xkey.state & ControlMask))
                nk_input_key(ctx, NK_KEY_CUT, down);
            else if (*code == 'z' && (evt->xkey.state & ControlMask))
                nk_input_key(ctx, NK_KEY_TEXT_UNDO, down);
            else if (*code == 'r' && (evt->xkey.state & ControlMask))
                nk_input_key(ctx, NK_KEY_TEXT_REDO, down);
            else if (*code == XK_Left && (evt->xkey.state & ControlMask))
                nk_input_key(ctx, NK_KEY_TEXT_WORD_LEFT, down);
            else if (*code == XK_Right && (evt->xkey.state & ControlMask))
                nk_input_key(ctx, NK_KEY_TEXT_WORD_RIGHT, down);
            else if (*code == 'b' && (evt->xkey.state & ControlMask))
                nk_input_key(ctx, NK_KEY_TEXT_LINE_START, down);
            else if (*code == 'e' && (evt->xkey.state & ControlMask))
                nk_input_key(ctx, NK_KEY_TEXT_LINE_END, down);
            else {
                if (*code == 'i')
                    nk_input_key(ctx, NK_KEY_TEXT_INSERT_MODE, down);
                else if (*code == 'r')
                    nk_input_key(ctx, NK_KEY_TEXT_REPLACE_MODE, down);
                if (down) {
                    char buf[32];
                    KeySym keysym = 0;
                    if (XLookupString((XKeyEvent*)evt, buf, 32, &keysym, NULL) != NoSymbol)
                        nk_input_glyph(ctx, buf);
                }
            }
        }
        XFree(code);
        return 1;
    } else if (evt->type == ButtonPress || evt->type == ButtonRelease) {
        /* Button handler */
        int down = (evt->type == ButtonPress);
        const int x = evt->xbutton.x, y = evt->xbutton.y;
        if (evt->xbutton.button == Button1) {
            if (down) { /* Double-Click Button handler */
                long dt = nk_timestamp() - xlib.last_button_click;
                if (dt > NK_X11_DOUBLE_CLICK_LO && dt < NK_X11_DOUBLE_CLICK_HI)
                    nk_input_button(ctx, NK_BUTTON_DOUBLE, x, y, nk_true);
                xlib.last_button_click = nk_timestamp();
            } else nk_input_button(ctx, NK_BUTTON_DOUBLE, x, y, nk_false);
            nk_input_button(ctx, NK_BUTTON_LEFT, x, y, down);
        } else if (evt->xbutton.button == Button2)
            nk_input_button(ctx, NK_BUTTON_MIDDLE, x, y, down);
        else if (evt->xbutton.button == Button3)
            nk_input_button(ctx, NK_BUTTON_RIGHT, x, y, down);
        else if (evt->xbutton.button == Button4)
            nk_input_scroll(ctx, nk_vec2(0, 1.0f));
        else if (evt->xbutton.button == Button5)
            nk_input_scroll(ctx, nk_vec2(0, -1.0f));
        else return 0;
        return 1;
    } else if (evt->type == MotionNotify) {
        /* Mouse motion handler */
        const int x = evt->xmotion.x, y = evt->xmotion.y;
        nk_input_motion(ctx, x, y);
        if (ctx->input.mouse.grabbed) {
            ctx->input.mouse.pos.x = ctx->input.mouse.prev.x;
            ctx->input.mouse.pos.y = ctx->input.mouse.prev.y;
            XWarpPointer(xlib.dpy, None, xlib.surf->root, 0, 0, 0, 0, (int)ctx->input.mouse.pos.x, (int)ctx->input.mouse.pos.y);
        }
        return 1;
    } else if (evt->type == Expose || evt->type == ConfigureNotify) {
        /* Window resize handler */
        unsigned int width, height;
        XWindowAttributes attr;
        XGetWindowAttributes(dpy, win, &attr);
        width = (unsigned int)attr.width;
        height = (unsigned int)attr.height;
        nk_xsurf_resize(xlib.surf, width, height);
        return 1;
    } else if (evt->type == KeymapNotify) {
        XRefreshKeyboardMapping(&evt->xmapping);
        return 1;
    } else if (evt->type == SelectionClear) {
        free(xlib.clipboard_data);
        xlib.clipboard_data = NULL;
        xlib.clipboard_len = 0;
        return 1;
    } else if (evt->type == SelectionRequest) {
        XEvent reply;
        reply.xselection.type = SelectionNotify;
        reply.xselection.requestor = evt->xselectionrequest.requestor;
        reply.xselection.selection = evt->xselectionrequest.selection;
        reply.xselection.target = evt->xselectionrequest.target;
        reply.xselection.property = None; /* Default refuse */
        reply.xselection.time = evt->xselectionrequest.time;

        if (reply.xselection.target == xlib.xa_targets) {
            Atom target_list[4];
            target_list[0] = xlib.xa_targets;
            target_list[1] = xlib.xa_text;
            target_list[2] = xlib.xa_utf8_string;
            target_list[3] = XA_STRING;

            reply.xselection.property = evt->xselectionrequest.property;
            XChangeProperty(evt->xselection.display,evt->xselectionrequest.requestor,
                reply.xselection.property, XA_ATOM, 32, PropModeReplace,
                (unsigned char*)&target_list, 4);
        } else if (xlib.clipboard_data && (reply.xselection.target == xlib.xa_text ||
            reply.xselection.target == xlib.xa_utf8_string || reply.xselection.target == XA_STRING)) {
            reply.xselection.property = evt->xselectionrequest.property;
            XChangeProperty(evt->xselection.display,evt->xselectionrequest.requestor,
                reply.xselection.property, reply.xselection.target, 8, PropModeReplace,
                (unsigned char*)xlib.clipboard_data, xlib.clipboard_len);
        }
        XSendEvent(evt->xselection.display, evt->xselectionrequest.requestor, True, 0, &reply);
        XFlush(evt->xselection.display);
        return 1;
    } else if (evt->type == SelectionNotify && xlib.clipboard_target) {
        if ((evt->xselection.target != XA_STRING) &&
            (evt->xselection.target != xlib.xa_utf8_string) &&
            (evt->xselection.target != xlib.xa_text))
            return 1;

        {Atom actual_type;
        int actual_format;
        unsigned long pos = 0, len, remain;
        unsigned char* data = 0;
        do {
            XGetWindowProperty(dpy, win, XA_PRIMARY, (int)pos, 1024, False,
                AnyPropertyType, &actual_type, &actual_format, &len, &remain, &data);
            if (len && data)
                nk_textedit_text(xlib.clipboard_target, (char*)data, (int)len);
            if (data != 0) XFree(data);
            pos += (len * (unsigned long)actual_format) / 32;
        } while (remain != 0);}
        return 1;
    }
    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x118, %rsp            # imm = 0x118
movq %rcx, %r14
movq %rdx, %r15
movq %rdi, %r12
cmpb $0x0, 0x19f10(%rip)     # 0x39774
je 0x1f889
movq 0x1ddb3(%rip), %rdi     # 0x3d620
movq 0x1ddb4(%rip), %rsi     # 0x3d628
movq 0x1dd9d(%rip), %rdx     # 0x3d618
callq 0x3460
movb $0x0, 0x19eed(%rip)     # 0x39774
jmp 0x1f8e7
cmpb $0x0, 0x19ee6(%rip)     # 0x39776
je 0x1f8e7
movq 0x1dd87(%rip), %rdi     # 0x3d620
cvttss2si 0x19ebb(%rip), %eax # 0x3975c
movq 0x1dd80(%rip), %rdx     # 0x3d628
cvttss2si 0x19eaf(%rip), %r10d # 0x39760
subq $0x8, %rsp
xorl %esi, %esi
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
pushq %r10
pushq %rax
pushq $0x0
callq 0x33d0
addq $0x20, %rsp
movq 0x1dd4c(%rip), %rdi     # 0x3d620
movq 0x1dd4d(%rip), %rsi     # 0x3d628
callq 0x34b0
movb $0x0, 0x19e8f(%rip)     # 0x39776
movl (%r14), %r13d
cmpl $0x15, %r13d
jg 0x1f9a6
leal -0x2(%r13), %eax
cmpl $0xa, %eax
ja 0x1fc75
leaq 0x7db0(%rip), %rcx      # 0x276b8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
xorl %ebp, %ebp
cmpl $0x2, %r13d
sete %bpl
movq 0x1dcee(%rip), %rax     # 0x3d610
movq 0x8(%rax), %rdi
movzbl 0x54(%r14), %esi
leaq 0x18(%rsp), %rcx
movl $0x1, %edx
callq 0x3520
movq %rax, %rbx
movq (%rax), %rax
cmpq $0xff1a, %rax           # imm = 0xFF1A
jle 0x1fc17
cmpq $0xffe0, %rax           # imm = 0xFFE0
jg 0x1fea5
leaq -0xff50(%rax), %rcx
cmpq $0x7, %rcx
ja 0x1ff9c
leaq 0x7dcc(%rip), %rax      # 0x2773c
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
cmpl %ebp, 0x19d29(%rip)     # 0x396a8
je 0x1f987
incl 0x19d25(%rip)           # 0x396ac
movl %ebp, 0x19d1b(%rip)     # 0x396a8
cmpl %ebp, 0x19d4d(%rip)     # 0x396e0
je 0x1f99b
incl 0x19d49(%rip)           # 0x396e4
movl %ebp, 0x19d3f(%rip)     # 0x396e0
jmp 0x201cc
cmpl $0x16, %r13d
je 0x1fae9
cmpl $0x1d, %r13d
je 0x1fbf1
cmpl $0x1e, %r13d
jne 0x1fc75
movl $0x1f, 0x50(%rsp)
movdqu 0x28(%r14), %xmm0
movdqu %xmm0, 0x70(%rsp)
movq 0x38(%r14), %rcx
movq %rcx, 0x80(%rsp)
movq $0x0, 0x88(%rsp)
movq 0x48(%r14), %rax
movq %rax, 0x90(%rsp)
cmpq 0x19bf5(%rip), %rcx     # 0x395f8
jne 0x1fd62
leaq 0x30(%rsp), %rax
movq %rcx, (%rax)
movups 0x19be8(%rip), %xmm1    # 0x39600
movups %xmm1, 0x8(%rax)
movq $0x1f, 0x18(%rax)
movq 0x40(%r14), %rdx
movq %rdx, 0x88(%rsp)
movq 0x18(%r14), %rdi
movq %xmm0, %rsi
movl $0x4, %ecx
movl $0x20, %r8d
xorl %r9d, %r9d
pushq $0x4
jmp 0x1fda2
xorl %ebp, %ebp
cmpl $0x4, %r13d
sete %cl
movl 0x54(%r14), %eax
decl %eax
cmpl $0x4, %eax
ja 0x1fe9e
movb %cl, %bpl
movsd 0x40(%r14), %xmm1
leaq 0x7c6e(%rip), %rcx      # 0x276e4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
cmpl $0x4, %r13d
jne 0x1ff0c
movaps %xmm1, 0x20(%rsp)
callq 0x201ed
movq 0x1db96(%rip), %rcx     # 0x3d630
negq %rcx
addq %rcx, %rax
addq $-0xc8, %rax
cmpq $-0xb3, %rax
jb 0x1fad3
cmpl $0x1, 0x19c8f(%rip)     # 0x39744
je 0x1fad3
cvtdq2ps 0x20(%rsp), %xmm0
movlps %xmm0, 0x19c89(%rip)    # 0x3974c
movl $0x1, 0x19c77(%rip)     # 0x39744
incl 0x19c75(%rip)           # 0x39748
callq 0x201ed
movq %rax, 0x1db51(%rip)     # 0x3d630
movaps 0x20(%rsp), %xmm1
jmp 0x1ff2f
leaq 0x50(%rsp), %rdx
movq %r12, %rdi
movq %r15, %rsi
callq 0x34d0
movq 0x1db10(%rip), %r14     # 0x3d610
testq %r14, %r14
je 0x201d4
movl 0x58(%rsp), %ebx
movl 0x5c(%rsp), %ebp
cmpl %ebx, 0x28(%r14)
jne 0x1fb21
cmpl %ebp, 0x2c(%r14)
je 0x201d4
movl %ebx, 0x28(%r14)
movl %ebp, 0x2c(%r14)
movq 0x20(%r14), %rsi
testq %rsi, %rsi
je 0x1fb3b
movq 0x8(%r14), %rdi
callq 0x3510
movq 0x8(%r14), %rdi
movq 0x18(%r14), %rsi
movq 0xe8(%rdi), %rax
movslq 0x10(%r14), %rcx
shlq $0x7, %rcx
movl 0x38(%rax,%rcx), %r8d
movl %ebx, %edx
movl %ebp, %ecx
callq 0x3550
movq %rax, 0x20(%r14)
jmp 0x201d4
movsd 0x19beb(%rip), %xmm0    # 0x3975c
movsd 0x40(%r14), %xmm1
cvtdq2ps %xmm1, %xmm1
movlps %xmm1, 0x19bd3(%rip)    # 0x39754
subps %xmm0, %xmm1
movlps %xmm1, 0x19bd9(%rip)    # 0x39764
movl $0x1, %ebx
cmpb $0x0, 0x19bde(%rip)     # 0x39775
je 0x201d9
movlps %xmm0, 0x19bb0(%rip)    # 0x39754
movq 0x1da75(%rip), %rdi     # 0x3d620
movq 0x1da5e(%rip), %rax     # 0x3d610
cvttss2si %xmm0, %r10d
movq 0x18(%rax), %rdx
shufps $0x55, %xmm0, %xmm0     # xmm0 = xmm0[1,1,1,1]
cvttss2si %xmm0, %eax
subq $0x8, %rsp
xorl %esi, %esi
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
pushq %rax
pushq %r10
pushq $0x0
callq 0x33d0
addq $0x20, %rsp
jmp 0x201d9
movq %r14, %rdi
callq 0x30b0
jmp 0x201d4
movq 0x199e0(%rip), %rdi     # 0x395d8
callq 0x3200
movq $0x0, 0x199d0(%rip) # 0x395d8
movl $0x0, 0x199ce(%rip)     # 0x395e0
jmp 0x201d4
cmpq $0x71, %rax
jle 0x1fdd8
cmpq $0xff07, %rax           # imm = 0xFF07
jg 0x1fecf
addq $-0x72, %rax
cmpq $0x8, %rax
ja 0x20070
leaq 0x7ad6(%rip), %rcx      # 0x27718
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
testb $0x4, 0x50(%r14)
jne 0x201a2
leaq 0x19a2b(%rip), %rax     # 0x39688
cmpl %ebp, 0x19a25(%rip)     # 0x39688
je 0x20021
leaq 0x19a1c(%rip), %rcx     # 0x3968c
jmp 0x2001f
xorl %ebx, %ebx
cmpl $0x1f, %r13d
jne 0x201d9
cmpq $0x0, 0x1995f(%rip)     # 0x395e8
je 0x201d9
movq 0x30(%r14), %rax
movl $0x1, %ebx
cmpq $0x1f, %rax
je 0x1fcb4
cmpq 0x19963(%rip), %rax     # 0x39608
je 0x1fcb4
cmpq 0x19952(%rip), %rax     # 0x39600
jne 0x201d9
leaq 0x8(%rsp), %rax
movq $0x0, (%rax)
xorl %r13d, %r13d
leaq 0x14(%rsp), %rbp
leaq 0x50(%rsp), %r14
movslq %r13d, %rcx
movl $0x1, %edx
movl $0x400, %r8d            # imm = 0x400
movq %r12, %rdi
movq %r15, %rsi
xorl %r9d, %r9d
leaq 0x8(%rsp), %rax
pushq %rax
leaq 0x20(%rsp), %rax
pushq %rax
leaq 0x40(%rsp), %rax
pushq %rax
pushq %rbp
pushq %r14
pushq $0x0
callq 0x3160
addq $0x30, %rsp
movq 0x30(%rsp), %rdx
testq %rdx, %rdx
setne %al
movq 0x8(%rsp), %rsi
testq %rsi, %rsi
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x1fd32
movq 0x198c0(%rip), %rdi     # 0x395e8
callq 0x17a94
movq 0x8(%rsp), %rsi
testq %rsi, %rsi
je 0x1fd3f
movq %rsi, %rdi
callq 0x3040
movslq 0x14(%rsp), %rax
imulq 0x30(%rsp), %rax
shrq $0x5, %rax
addq %rax, %r13
cmpq $0x0, 0x18(%rsp)
jne 0x1fccd
jmp 0x201d9
movq 0x1986f(%rip), %rax     # 0x395d8
testq %rax, %rax
je 0x1fdac
cmpq 0x1988b(%rip), %rcx     # 0x39600
jne 0x1ff5b
movq 0x40(%r14), %rdx
movq %rdx, 0x88(%rsp)
movq 0x18(%r14), %rdi
movl 0x1984e(%rip), %r10d    # 0x395e0
movq %xmm0, %rsi
movl $0x8, %r8d
xorl %r9d, %r9d
pushq %r10
pushq %rax
callq 0x3500
addq $0x10, %rsp
movq 0x18(%r14), %rdi
movq 0x28(%r14), %rsi
movl $0x1, %ebx
leaq 0x50(%rsp), %r8
movl $0x1, %edx
xorl %ecx, %ecx
callq 0x33c0
movq 0x18(%r14), %rdi
callq 0x3390
jmp 0x201d9
addq $-0x62, %rax
cmpq $0x7, %rax
ja 0x20070
leaq 0x790b(%rip), %rcx      # 0x276f8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
testb $0x4, 0x50(%r14)
je 0x20070
cmpl %ebp, 0x19891(%rip)     # 0x39698
je 0x1fe0f
incl 0x1988d(%rip)           # 0x3969c
movl %ebp, 0x19883(%rip)     # 0x39698
jmp 0x201cc
movsd 0x1994a(%rip), %xmm0    # 0x3976c
addps 0x74a7(%rip), %xmm0     # 0x272d0
jmp 0x1fe66
movl $0x1, %ebx
cmpl %ebp, 0x198fe(%rip)     # 0x39734
je 0x201d9
cvtdq2ps %xmm1, %xmm0
movlps %xmm0, 0x198f6(%rip)    # 0x3973c
movl %ebp, 0x198e8(%rip)     # 0x39734
incl 0x198e6(%rip)           # 0x39738
jmp 0x201d9
movsd 0x1990d(%rip), %xmm0    # 0x3976c
addps 0x747a(%rip), %xmm0     # 0x272e0
movlps %xmm0, 0x198ff(%rip)    # 0x3976c
jmp 0x201d4
movl $0x1, %ebx
cmpl %ebp, 0x198a7(%rip)     # 0x39724
je 0x201d9
cvtdq2ps %xmm1, %xmm0
movlps %xmm0, 0x1989f(%rip)    # 0x3972c
movl %ebp, 0x19891(%rip)     # 0x39724
incl 0x1988f(%rip)           # 0x39728
jmp 0x201d9
xorl %ebx, %ebx
jmp 0x201d9
leaq -0xffe1(%rax), %rcx
cmpq $0x2, %rcx
jae 0x1ff77
cmpl %ebp, 0x1975c(%rip)     # 0x39618
je 0x1fec4
incl 0x19758(%rip)           # 0x3961c
movl %ebp, 0x1974e(%rip)     # 0x39618
jmp 0x201cc
cmpq $0xff08, %rax           # imm = 0xFF08
je 0x200eb
cmpq $0xff09, %rax           # imm = 0xFF09
je 0x200d2
cmpq $0xff0d, %rax           # imm = 0xFF0D
jne 0x20070
cmpl %ebp, 0x19737(%rip)     # 0x39630
je 0x1ff01
incl 0x19733(%rip)           # 0x39634
movl %ebp, 0x19729(%rip)     # 0x39630
jmp 0x201cc
cmpl $0x0, 0x19831(%rip)     # 0x39744
je 0x1ff2f
cvtdq2ps %xmm1, %xmm0
movlps %xmm0, 0x1982d(%rip)    # 0x3974c
movl $0x0, 0x1981b(%rip)     # 0x39744
incl 0x19819(%rip)           # 0x39748
movl $0x1, %ebx
cmpl %ebp, 0x197da(%rip)     # 0x39714
je 0x201d9
cvtdq2ps %xmm1, %xmm0
movlps %xmm0, 0x197d2(%rip)    # 0x3971c
movl %ebp, 0x197c4(%rip)     # 0x39714
incl 0x197c2(%rip)           # 0x39718
jmp 0x201d9
cmpq $0x1f, %rcx
je 0x1fd7b
cmpq 0x1969c(%rip), %rcx     # 0x39608
jne 0x1fdac
jmp 0x1fd7b
cmpq $0xffff, %rax           # imm = 0xFFFF
jne 0x20070
cmpl %ebp, 0x1969f(%rip)     # 0x39628
je 0x1ff91
incl 0x1969b(%rip)           # 0x3962c
movl %ebp, 0x19691(%rip)     # 0x39628
jmp 0x201cc
cmpq $0xff1b, %rax           # imm = 0xFF1B
jne 0x20070
cmpl %ebp, 0x196e2(%rip)     # 0x39690
je 0x1ffb6
incl 0x196de(%rip)           # 0x39694
movl %ebp, 0x196d4(%rip)     # 0x39690
jmp 0x201cc
testb $0x4, 0x50(%r14)
je 0x20070
cmpl %ebp, 0x19676(%rip)     # 0x39648
je 0x1ffda
incl 0x19672(%rip)           # 0x3964c
movl %ebp, 0x19668(%rip)     # 0x39648
jmp 0x201cc
testb $0x4, 0x50(%r14)
je 0x20070
cmpl %ebp, 0x196aa(%rip)     # 0x396a0
je 0x1fffe
incl 0x196a6(%rip)           # 0x396a4
movl %ebp, 0x1969c(%rip)     # 0x396a0
jmp 0x201cc
leaq 0x19670(%rip), %rax     # 0x39680
cmpl %ebp, 0x1966a(%rip)     # 0x39680
je 0x20021
leaq 0x19665(%rip), %rcx     # 0x39684
incl (%rcx)
movl %ebp, (%rax)
jmp 0x20070
testb $0x4, 0x50(%r14)
je 0x20070
cmpl %ebp, 0x19686(%rip)     # 0x396b8
je 0x2003a
incl 0x19682(%rip)           # 0x396bc
movl %ebp, 0x19678(%rip)     # 0x396b8
jmp 0x201cc
testb $0x4, 0x50(%r14)
je 0x20070
cmpl %ebp, 0x19606(%rip)     # 0x39658
je 0x2005a
incl 0x19602(%rip)           # 0x3965c
movl %ebp, 0x195f8(%rip)     # 0x39658
jmp 0x201cc
testb $0x4, 0x50(%r14)
jne 0x201b8
cmpl $0x2, %r13d
jne 0x201cc
leaq 0x30(%rsp), %rcx
movq $0x0, (%rcx)
leaq 0x50(%rsp), %rsi
movq %r14, %rdi
movl $0x20, %edx
xorl %r8d, %r8d
callq 0x30d0
testl %eax, %eax
je 0x201cc
leaq 0x19566(%rip), %rdi     # 0x39610
leaq 0x50(%rsp), %rsi
callq 0x82ca
jmp 0x201cc
cmpl %ebp, 0x195a9(%rip)     # 0x39668
je 0x200c7
incl 0x195a5(%rip)           # 0x3966c
movl %ebp, 0x1959b(%rip)     # 0x39668
jmp 0x201cc
cmpl %ebp, 0x19560(%rip)     # 0x39638
je 0x200e0
incl 0x1955c(%rip)           # 0x3963c
movl %ebp, 0x19552(%rip)     # 0x39638
jmp 0x201cc
cmpl %ebp, 0x1954f(%rip)     # 0x39640
je 0x200f9
incl 0x1954b(%rip)           # 0x39644
movl %ebp, 0x19541(%rip)     # 0x39640
jmp 0x201cc
cmpl %ebp, 0x19556(%rip)     # 0x39660
je 0x20112
incl 0x19552(%rip)           # 0x39664
movl %ebp, 0x19548(%rip)     # 0x39660
jmp 0x201cc
cmpl %ebp, 0x19555(%rip)     # 0x39678
je 0x2012b
incl 0x19551(%rip)           # 0x3967c
movl %ebp, 0x19547(%rip)     # 0x39678
jmp 0x201cc
cmpl %ebp, 0x19574(%rip)     # 0x396b0
je 0x20144
incl 0x19570(%rip)           # 0x396b4
movl %ebp, 0x19566(%rip)     # 0x396b0
cmpl %ebp, 0x19598(%rip)     # 0x396e8
je 0x20158
incl 0x19594(%rip)           # 0x396ec
movl %ebp, 0x1958a(%rip)     # 0x396e8
jmp 0x201cc
cmpl %ebp, 0x1950a(%rip)     # 0x39670
je 0x2016e
incl 0x19506(%rip)           # 0x39674
movl %ebp, 0x194fc(%rip)     # 0x39670
jmp 0x201cc
cmpl %ebp, 0x1957c(%rip)     # 0x396f8
je 0x20184
incl 0x19578(%rip)           # 0x396fc
movl %ebp, 0x1956e(%rip)     # 0x396f8
jmp 0x201cc
cmpl %ebp, 0x1955e(%rip)     # 0x396f0
je 0x2019a
incl 0x1955a(%rip)           # 0x396f4
movl %ebp, 0x19550(%rip)     # 0x396f0
jmp 0x201cc
cmpl %ebp, 0x19518(%rip)     # 0x396c0
je 0x201b0
incl 0x19514(%rip)           # 0x396c4
movl %ebp, 0x1950a(%rip)     # 0x396c0
jmp 0x201cc
cmpl %ebp, 0x19492(%rip)     # 0x39650
je 0x201c6
incl 0x1948e(%rip)           # 0x39654
movl %ebp, 0x19484(%rip)     # 0x39650
movq %rbx, %rdi
callq 0x3040
movl $0x1, %ebx
movl %ebx, %eax
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq