// File: /workspace/github_c_makefile_star2_O1/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 $0x108, %rsp            # imm = 0x108
movq %rcx, %r14
movq %rdx, %r15
movq %rdi, %r12
cmpb $0x0, 0x1914d(%rip)     # 0x39774
je 0x2064c
movq 0x1cff0(%rip), %rdi     # 0x3d620
movq 0x1cff1(%rip), %rsi     # 0x3d628
movq 0x1cfda(%rip), %rdx     # 0x3d618
callq 0x3460
movb $0x0, 0x1912a(%rip)     # 0x39774
jmp 0x206aa
cmpb $0x0, 0x19123(%rip)     # 0x39776
je 0x206aa
movq 0x1cfc4(%rip), %rdi     # 0x3d620
cvttss2si 0x190f8(%rip), %eax # 0x3975c
movq 0x1cfbd(%rip), %rdx     # 0x3d628
cvttss2si 0x190ec(%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 0x1cf89(%rip), %rdi     # 0x3d620
movq 0x1cf8a(%rip), %rsi     # 0x3d628
callq 0x34b0
movb $0x0, 0x190cc(%rip)     # 0x39776
movl (%r14), %r13d
cmpl $0x15, %r13d
jg 0x20769
leal -0x2(%r13), %eax
cmpl $0xa, %eax
ja 0x20a78
leaq 0x7e09(%rip), %rcx      # 0x284d4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
xorl %ebp, %ebp
cmpl $0x2, %r13d
sete %bpl
movq 0x1cf2b(%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 0x20a08
cmpq $0xffe0, %rax           # imm = 0xFFE0
jg 0x20d29
leaq -0xff50(%rax), %rcx
cmpq $0x7, %rcx
ja 0x20e49
leaq 0x7e25(%rip), %rax      # 0x28558
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
cmpl %ebp, 0x18f66(%rip)     # 0x396a8
je 0x2074a
incl 0x18f62(%rip)           # 0x396ac
movl %ebp, 0x18f58(%rip)     # 0x396a8
cmpl %ebp, 0x18f8a(%rip)     # 0x396e0
je 0x2075e
incl 0x18f86(%rip)           # 0x396e4
movl %ebp, 0x18f7c(%rip)     # 0x396e0
jmp 0x21186
cmpl $0x16, %r13d
je 0x208b3
cmpl $0x1d, %r13d
je 0x209e2
cmpl $0x1e, %r13d
jne 0x20a78
movl $0x1f, 0x40(%rsp)
movq 0x28(%r14), %rsi
movq %rsi, 0x60(%rsp)
movq 0x30(%r14), %rax
movq %rax, 0x68(%rsp)
movq 0x38(%r14), %rcx
movq %rcx, 0x70(%rsp)
movq $0x0, 0x78(%rsp)
movq 0x48(%r14), %rax
movq %rax, 0x80(%rsp)
movq 0x18e32(%rip), %rax     # 0x395f8
cmpq %rax, %rcx
jne 0x20b62
leaq 0x20(%rsp), %r10
movq %rax, (%r10)
movups 0x18e22(%rip), %xmm0    # 0x39600
movups %xmm0, 0x8(%r10)
movq $0x1f, 0x18(%r10)
movq 0x40(%r14), %rdx
movq %rdx, 0x78(%rsp)
movq 0x18(%r14), %rdi
movl $0x4, %ecx
movl $0x20, %r8d
xorl %r9d, %r9d
pushq $0x4
pushq %r10
jmp 0x20b9b
xorl %ebp, %ebp
cmpl $0x4, %r13d
sete %cl
movl 0x54(%r14), %eax
decl %eax
cmpl $0x4, %eax
ja 0x20d22
movb %cl, %bpl
movl 0x40(%r14), %r15d
movl 0x44(%r14), %r14d
leaq 0x7cc7(%rip), %rcx      # 0x28500
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
cmpl $0x4, %r13d
jne 0x20d90
callq 0x211d3
movq 0x1cdd8(%rip), %rcx     # 0x3d630
negq %rcx
addq %rcx, %rax
addq $-0xc8, %rax
cmpq $-0xb3, %rax
jb 0x208a2
cmpl $0x1, 0x18ed1(%rip)     # 0x39744
je 0x208a2
cvtsi2ss %r15d, %xmm0
movss %xmm0, 0x18eca(%rip)    # 0x3974c
xorps %xmm0, %xmm0
cvtsi2ss %r14d, %xmm0
movss %xmm0, 0x18ebe(%rip)    # 0x39750
movl $0x1, 0x18ea8(%rip)     # 0x39744
incl 0x18ea6(%rip)           # 0x39748
callq 0x211d3
movq %rax, 0x1cd82(%rip)     # 0x3d630
jmp 0x20dc6
leaq 0x40(%rsp), %rdx
movq %r12, %rdi
movq %r15, %rsi
callq 0x34d0
movq 0x1cd46(%rip), %r14     # 0x3d610
testq %r14, %r14
je 0x2118e
movl 0x48(%rsp), %ebx
movl 0x4c(%rsp), %ebp
cmpl %ebx, 0x28(%r14)
jne 0x208eb
cmpl %ebp, 0x2c(%r14)
je 0x2118e
movl %ebx, 0x28(%r14)
movl %ebp, 0x2c(%r14)
movq 0x20(%r14), %rsi
testq %rsi, %rsi
je 0x20905
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 0x2118e
cvtsi2ssl 0x40(%r14), %xmm1
cvtsi2ssl 0x44(%r14), %xmm2
movss %xmm1, 0x18e0d(%rip)    # 0x39754
movss %xmm2, 0x18e09(%rip)    # 0x39758
movss 0x18e05(%rip), %xmm0    # 0x3975c
subss %xmm0, %xmm1
movss %xmm1, 0x18e01(%rip)    # 0x39764
movss 0x18df5(%rip), %xmm1    # 0x39760
subss %xmm1, %xmm2
movss %xmm2, 0x18df1(%rip)    # 0x39768
movl $0x1, %ebx
cmpb $0x0, 0x18df2(%rip)     # 0x39775
je 0x21193
movss %xmm0, 0x18dc3(%rip)    # 0x39754
movss %xmm1, 0x18dbf(%rip)    # 0x39758
movq 0x1cc80(%rip), %rdi     # 0x3d620
movq 0x1cc69(%rip), %rax     # 0x3d610
movq 0x18(%rax), %rdx
cvttss2si %xmm0, %eax
cvttss2si %xmm1, %r10d
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
jmp 0x21193
movq %r14, %rdi
callq 0x30b0
jmp 0x2118e
movq 0x18bef(%rip), %rdi     # 0x395d8
callq 0x3200
movq $0x0, 0x18bdf(%rip) # 0x395d8
movl $0x0, 0x18bdd(%rip)     # 0x395e0
jmp 0x2118e
cmpq $0x71, %rax
jle 0x20bd0
cmpq $0xff07, %rax           # imm = 0xFF07
jg 0x20d53
leaq -0x72(%rax), %rcx
cmpq $0x8, %rcx
ja 0x2114a
leaq 0x7b01(%rip), %rdx      # 0x28534
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
testb $0x4, 0x50(%r14)
jne 0x20f63
cmpq $0x71, %rax
jle 0x20ff6
cmpq $0x72, %rax
je 0x21130
cmpq $0xff53, %rax           # imm = 0xFF53
je 0x21075
cmpq $0xff51, %rax           # imm = 0xFF51
je 0x2109b
jmp 0x2114a
xorl %ebx, %ebx
cmpl $0x1f, %r13d
jne 0x21193
cmpq $0x0, 0x18b5c(%rip)     # 0x395e8
je 0x21193
movq 0x30(%r14), %rax
movl $0x1, %ebx
cmpq $0x1f, %rax
je 0x20ab7
cmpq 0x18b60(%rip), %rax     # 0x39608
je 0x20ab7
cmpq 0x18b4f(%rip), %rax     # 0x39600
jne 0x21193
leaq 0x8(%rsp), %rax
movq $0x0, (%rax)
xorl %r13d, %r13d
leaq 0x14(%rsp), %rbp
leaq 0x40(%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 0x30(%rsp), %rax
pushq %rax
pushq %rbp
pushq %r14
pushq $0x0
callq 0x3160
addq $0x30, %rsp
movq 0x20(%rsp), %rdx
testq %rdx, %rdx
setne %al
movq 0x8(%rsp), %rsi
testq %rsi, %rsi
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x20b30
movq 0x18abd(%rip), %rdi     # 0x395e8
callq 0x183da
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x20b3f
callq 0x3040
movslq 0x14(%rsp), %rax
imulq 0x20(%rsp), %rax
shrq $0x5, %rax
addq %rax, %r13
cmpq $0x0, 0x18(%rsp)
jne 0x20ad0
jmp 0x21193
movq 0x18a6f(%rip), %rax     # 0x395d8
testq %rax, %rax
je 0x20ba4
cmpq 0x18a8b(%rip), %rcx     # 0x39600
jne 0x20e08
movq 0x40(%r14), %rdx
movq %rdx, 0x78(%rsp)
movq 0x18(%r14), %rdi
movl 0x18a51(%rip), %r10d    # 0x395e0
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 0x40(%rsp), %r8
movl $0x1, %edx
xorl %ecx, %ecx
callq 0x33c0
movq 0x18(%r14), %rdi
callq 0x3390
jmp 0x21193
leaq -0x62(%rax), %rcx
cmpq $0x7, %rcx
ja 0x2114a
leaq 0x792f(%rip), %rdx      # 0x28514
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
testb $0x4, 0x50(%r14)
jne 0x20f95
cmpq $0x71, %rax
jle 0x20ff6
leaq -0x72(%rax), %rcx
cmpq $0x8, %rcx
ja 0x21041
leaq 0x7960(%rip), %rdx      # 0x28578
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
testb $0x4, 0x50(%r14)
jne 0x20f7c
cmpq $0x77, %rax
jg 0x20fae
cmpq $0x68, %rax
jle 0x210ba
cmpq $0x69, %rax
jne 0x21066
jmp 0x210ec
xorps %xmm0, %xmm0
addss 0x18b12(%rip), %xmm0    # 0x3976c
movss %xmm0, 0x18b0a(%rip)    # 0x3976c
movss 0x18b06(%rip), %xmm0    # 0x39770
addss 0x7722(%rip), %xmm0     # 0x28394
jmp 0x20cd6
movl $0x1, %ebx
cmpl %ebp, 0x18ab5(%rip)     # 0x39734
je 0x21193
cvtsi2ss %r15d, %xmm0
movss %xmm0, 0x18aaa(%rip)    # 0x3973c
xorps %xmm0, %xmm0
cvtsi2ss %r14d, %xmm0
movss %xmm0, 0x18a9e(%rip)    # 0x39740
movl %ebp, 0x18a8c(%rip)     # 0x39734
incl 0x18a8a(%rip)           # 0x39738
jmp 0x21193
xorps %xmm0, %xmm0
addss 0x18aae(%rip), %xmm0    # 0x3976c
movss %xmm0, 0x18aa6(%rip)    # 0x3976c
movss 0x18aa2(%rip), %xmm0    # 0x39770
addss 0x76ae(%rip), %xmm0     # 0x28384
movss %xmm0, 0x18a92(%rip)    # 0x39770
jmp 0x2118e
movl $0x1, %ebx
cmpl %ebp, 0x18a36(%rip)     # 0x39724
je 0x21193
cvtsi2ss %r15d, %xmm0
movss %xmm0, 0x18a2b(%rip)    # 0x3972c
xorps %xmm0, %xmm0
cvtsi2ss %r14d, %xmm0
movss %xmm0, 0x18a1f(%rip)    # 0x39730
movl %ebp, 0x18a0d(%rip)     # 0x39724
incl 0x18a0b(%rip)           # 0x39728
jmp 0x21193
xorl %ebx, %ebx
jmp 0x21193
leaq -0xffe1(%rax), %rcx
cmpq $0x2, %rcx
jae 0x20e24
cmpl %ebp, 0x188d8(%rip)     # 0x39618
je 0x20d48
incl 0x188d4(%rip)           # 0x3961c
movl %ebp, 0x188ca(%rip)     # 0x39618
jmp 0x21186
cmpq $0xff08, %rax           # imm = 0xFF08
je 0x20ea0
cmpq $0xff09, %rax           # imm = 0xFF09
je 0x20e87
cmpq $0xff0d, %rax           # imm = 0xFF0D
jne 0x2114a
cmpl %ebp, 0x188b3(%rip)     # 0x39630
je 0x20d85
incl 0x188af(%rip)           # 0x39634
movl %ebp, 0x188a5(%rip)     # 0x39630
jmp 0x21186
cmpl $0x0, 0x189ad(%rip)     # 0x39744
je 0x20dc6
cvtsi2ss %r15d, %xmm0
movss %xmm0, 0x189a6(%rip)    # 0x3974c
xorps %xmm0, %xmm0
cvtsi2ss %r14d, %xmm0
movss %xmm0, 0x1899a(%rip)    # 0x39750
movl $0x0, 0x18984(%rip)     # 0x39744
incl 0x18982(%rip)           # 0x39748
movl $0x1, %ebx
cmpl %ebp, 0x18943(%rip)     # 0x39714
je 0x21193
xorps %xmm0, %xmm0
cvtsi2ss %r15d, %xmm0
movss %xmm0, 0x18935(%rip)    # 0x3971c
xorps %xmm0, %xmm0
cvtsi2ss %r14d, %xmm0
movss %xmm0, 0x18929(%rip)    # 0x39720
movl %ebp, 0x18917(%rip)     # 0x39714
incl 0x18915(%rip)           # 0x39718
jmp 0x21193
cmpq $0x1f, %rcx
je 0x20b7b
cmpq 0x187ef(%rip), %rcx     # 0x39608
jne 0x20ba4
jmp 0x20b7b
cmpq $0xffff, %rax           # imm = 0xFFFF
jne 0x2114a
cmpl %ebp, 0x187f2(%rip)     # 0x39628
je 0x20e3e
incl 0x187ee(%rip)           # 0x3962c
movl %ebp, 0x187e4(%rip)     # 0x39628
jmp 0x21186
cmpq $0xff1b, %rax           # imm = 0xFF1B
jne 0x2114a
cmpl %ebp, 0x18835(%rip)     # 0x39690
je 0x20e63
incl 0x18831(%rip)           # 0x39694
movl %ebp, 0x18827(%rip)     # 0x39690
jmp 0x21186
cmpl %ebp, 0x187f4(%rip)     # 0x39668
je 0x20e7c
incl 0x187f0(%rip)           # 0x3966c
movl %ebp, 0x187e6(%rip)     # 0x39668
jmp 0x21186
cmpl %ebp, 0x187ab(%rip)     # 0x39638
je 0x20e95
incl 0x187a7(%rip)           # 0x3963c
movl %ebp, 0x1879d(%rip)     # 0x39638
jmp 0x21186
cmpl %ebp, 0x1879a(%rip)     # 0x39640
je 0x20eae
incl 0x18796(%rip)           # 0x39644
movl %ebp, 0x1878c(%rip)     # 0x39640
jmp 0x21186
cmpl %ebp, 0x187a1(%rip)     # 0x39660
je 0x20ec7
incl 0x1879d(%rip)           # 0x39664
movl %ebp, 0x18793(%rip)     # 0x39660
jmp 0x21186
cmpl %ebp, 0x187a0(%rip)     # 0x39678
je 0x20ee0
incl 0x1879c(%rip)           # 0x3967c
movl %ebp, 0x18792(%rip)     # 0x39678
jmp 0x21186
cmpl %ebp, 0x187bf(%rip)     # 0x396b0
je 0x20ef9
incl 0x187bb(%rip)           # 0x396b4
movl %ebp, 0x187b1(%rip)     # 0x396b0
cmpl %ebp, 0x187e3(%rip)     # 0x396e8
je 0x20f0d
incl 0x187df(%rip)           # 0x396ec
movl %ebp, 0x187d5(%rip)     # 0x396e8
jmp 0x21186
cmpl %ebp, 0x18752(%rip)     # 0x39670
je 0x20f26
incl 0x1874e(%rip)           # 0x39674
movl %ebp, 0x18744(%rip)     # 0x39670
jmp 0x21186
cmpl %ebp, 0x187c1(%rip)     # 0x396f8
je 0x20f3f
incl 0x187bd(%rip)           # 0x396fc
movl %ebp, 0x187b3(%rip)     # 0x396f8
jmp 0x21186
cmpl %ebp, 0x187a0(%rip)     # 0x396f0
je 0x20f58
incl 0x1879c(%rip)           # 0x396f4
movl %ebp, 0x18792(%rip)     # 0x396f0
jmp 0x21186
cmpl %ebp, 0x18757(%rip)     # 0x396c0
je 0x20f71
incl 0x18753(%rip)           # 0x396c4
movl %ebp, 0x18749(%rip)     # 0x396c0
jmp 0x21186
cmpl %ebp, 0x186d6(%rip)     # 0x39658
je 0x20f8a
incl 0x186d2(%rip)           # 0x3965c
movl %ebp, 0x186c8(%rip)     # 0x39658
jmp 0x21186
cmpl %ebp, 0x186ad(%rip)     # 0x39648
je 0x20fa3
incl 0x186a9(%rip)           # 0x3964c
movl %ebp, 0x1869f(%rip)     # 0x39648
jmp 0x21186
cmpq $0xff50, %rax           # imm = 0xFF50
jg 0x21041
cmpq $0x78, %rax
jne 0x20fdf
testb $0x4, 0x50(%r14)
jne 0x21028
cmpq $0x71, %rax
jle 0x20ff6
cmpq $0xff50, %rax           # imm = 0xFF50
jg 0x21041
cmpq $0x72, %rax
je 0x20a3c
cmpq $0x7a, %rax
jne 0x2114a
testb $0x4, 0x50(%r14)
jne 0x2100f
cmpq $0x71, %rax
jg 0x21056
cmpq $0x62, %rax
je 0x210c0
cmpq $0x65, %rax
jne 0x210e6
jmp 0x210d9
cmpl %ebp, 0x186a3(%rip)     # 0x396b8
je 0x2101d
incl 0x1869f(%rip)           # 0x396bc
movl %ebp, 0x18695(%rip)     # 0x396b8
jmp 0x21186
cmpl %ebp, 0x18622(%rip)     # 0x39650
je 0x21036
incl 0x1861e(%rip)           # 0x39654
movl %ebp, 0x18614(%rip)     # 0x39650
jmp 0x21186
cmpq $0xff51, %rax           # imm = 0xFF51
je 0x2109b
cmpq $0xff53, %rax           # imm = 0xFF53
je 0x21075
jmp 0x2114a
cmpq $0xff53, %rax           # imm = 0xFF53
je 0x21075
cmpq $0xff51, %rax           # imm = 0xFF51
je 0x2109b
cmpq $0x72, %rax
je 0x20a3c
jmp 0x2114a
testb $0x4, 0x50(%r14)
jne 0x211a7
cmpq $0x68, %rax
jle 0x210ba
cmpq $0x69, %rax
je 0x210ec
cmpq $0x72, %rax
je 0x21130
jmp 0x2114a
testb $0x4, 0x50(%r14)
jne 0x211bd
cmpq $0x68, %rax
jle 0x210ba
cmpq $0x69, %rax
je 0x210ec
cmpq $0x72, %rax
jne 0x21049
jmp 0x21130
cmpq $0x62, %rax
jne 0x210d3
testb $0x4, 0x50(%r14)
jne 0x2111a
cmpq $0x72, %rax
je 0x21130
cmpq $0x69, %rax
je 0x210ec
cmpq $0x65, %rax
jne 0x2114a
testb $0x4, 0x50(%r14)
jne 0x21104
cmpq $0x72, %rax
je 0x21130
cmpq $0x69, %rax
jne 0x2114a
leaq 0x1858d(%rip), %rax     # 0x39680
cmpl %ebp, 0x18587(%rip)     # 0x39680
je 0x21148
leaq 0x18582(%rip), %rcx     # 0x39684
jmp 0x21146
cmpl %ebp, 0x18596(%rip)     # 0x396a0
je 0x21112
incl 0x18592(%rip)           # 0x396a4
movl %ebp, 0x18588(%rip)     # 0x396a0
jmp 0x21186
cmpl %ebp, 0x18578(%rip)     # 0x39698
je 0x21128
incl 0x18574(%rip)           # 0x3969c
movl %ebp, 0x1856a(%rip)     # 0x39698
jmp 0x21186
leaq 0x18551(%rip), %rax     # 0x39688
cmpl %ebp, 0x1854b(%rip)     # 0x39688
je 0x21148
leaq 0x18546(%rip), %rcx     # 0x3968c
incl (%rcx)
movl %ebp, (%rax)
cmpl $0x2, %r13d
jne 0x21186
leaq 0x20(%rsp), %rcx
movq $0x0, (%rcx)
leaq 0x40(%rsp), %rsi
movq %r14, %rdi
movl $0x20, %edx
xorl %r8d, %r8d
callq 0x30d0
testl %eax, %eax
je 0x21186
leaq 0x18494(%rip), %rdi     # 0x39610
leaq 0x40(%rsp), %rsi
callq 0x8359
movq %rbx, %rdi
callq 0x3040
movl $0x1, %ebx
movl %ebx, %eax
addq $0x108, %rsp            # imm = 0x108
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl %ebp, 0x1852b(%rip)     # 0x396d8
je 0x211b5
incl 0x18527(%rip)           # 0x396dc
movl %ebp, 0x1851d(%rip)     # 0x396d8
jmp 0x21186
cmpl %ebp, 0x1850d(%rip)     # 0x396d0
je 0x211cb
incl 0x18509(%rip)           # 0x396d4
movl %ebp, 0x184ff(%rip)     # 0x396d0
jmp 0x21186