// File: /workspace/github_c_makefile_star2_O1/0x0203[P]schack_poc/./nuklear_xlib.h
// Function: nk_xlib_render
NK_API void
nk_xlib_render(Drawable screen, struct nk_color clear)
{
    const struct nk_command *cmd;
    struct nk_context *ctx = &xlib.ctx;
    XSurface *surf = xlib.surf;

    nk_xsurf_clear(xlib.surf, nk_color_from_byte(&clear.r));
    nk_foreach(cmd, &xlib.ctx)
    {
        switch (cmd->type) {
        case NK_COMMAND_NOP: break;
        case NK_COMMAND_SCISSOR: {
            const struct nk_command_scissor *s =(const struct nk_command_scissor*)cmd;
            nk_xsurf_scissor(surf, s->x, s->y, s->w, s->h);
        } break;
        case NK_COMMAND_LINE: {
            const struct nk_command_line *l = (const struct nk_command_line *)cmd;
            nk_xsurf_stroke_line(surf, l->begin.x, l->begin.y, l->end.x,
                l->end.y, l->line_thickness, l->color);
        } break;
        case NK_COMMAND_RECT: {
            const struct nk_command_rect *r = (const struct nk_command_rect *)cmd;
            nk_xsurf_stroke_rect(surf, r->x, r->y, NK_MAX(r->w -r->line_thickness, 0),
                NK_MAX(r->h - r->line_thickness, 0), (unsigned short)r->rounding,
                r->line_thickness, r->color);
        } break;
        case NK_COMMAND_RECT_FILLED: {
            const struct nk_command_rect_filled *r = (const struct nk_command_rect_filled *)cmd;
            nk_xsurf_fill_rect(surf, r->x, r->y, r->w, r->h,
                (unsigned short)r->rounding, r->color);
        } break;
        case NK_COMMAND_CIRCLE: {
            const struct nk_command_circle *c = (const struct nk_command_circle *)cmd;
            nk_xsurf_stroke_circle(surf, c->x, c->y, c->w, c->h, c->line_thickness, c->color);
        } break;
        case NK_COMMAND_CIRCLE_FILLED: {
            const struct nk_command_circle_filled *c = (const struct nk_command_circle_filled *)cmd;
            nk_xsurf_fill_circle(surf, c->x, c->y, c->w, c->h, c->color);
        } break;
        case NK_COMMAND_TRIANGLE: {
            const struct nk_command_triangle*t = (const struct nk_command_triangle*)cmd;
            nk_xsurf_stroke_triangle(surf, t->a.x, t->a.y, t->b.x, t->b.y,
                t->c.x, t->c.y, t->line_thickness, t->color);
        } break;
        case NK_COMMAND_TRIANGLE_FILLED: {
            const struct nk_command_triangle_filled *t = (const struct nk_command_triangle_filled *)cmd;
            nk_xsurf_fill_triangle(surf, t->a.x, t->a.y, t->b.x, t->b.y,
                t->c.x, t->c.y, t->color);
        } break;
        case NK_COMMAND_POLYGON: {
            const struct nk_command_polygon *p =(const struct nk_command_polygon*)cmd;
            nk_xsurf_stroke_polygon(surf, p->points, p->point_count, p->line_thickness,p->color);
        } break;
        case NK_COMMAND_POLYGON_FILLED: {
            const struct nk_command_polygon_filled *p = (const struct nk_command_polygon_filled *)cmd;
            nk_xsurf_fill_polygon(surf, p->points, p->point_count, p->color);
        } break;
        case NK_COMMAND_POLYLINE: {
            const struct nk_command_polyline *p = (const struct nk_command_polyline *)cmd;
            nk_xsurf_stroke_polyline(surf, p->points, p->point_count, p->line_thickness, p->color);
        } break;
        case NK_COMMAND_TEXT: {
            const struct nk_command_text *t = (const struct nk_command_text*)cmd;
            nk_xsurf_draw_text(surf, t->x, t->y, t->w, t->h,
                (const char*)t->string, t->length,
                (XFont*)t->font->userdata.ptr,
                t->background, t->foreground);
        } break;
        case NK_COMMAND_CURVE: {
            const struct nk_command_curve *q = (const struct nk_command_curve *)cmd;
            nk_xsurf_stroke_curve(surf, q->begin, q->ctrl[0], q->ctrl[1],
                q->end, 22, q->line_thickness, q->color);
        } break;
        case NK_COMMAND_IMAGE: {
            const struct nk_command_image *i = (const struct nk_command_image *)cmd;
            nk_xsurf_draw_image(surf, i->x, i->y, i->w, i->h, i->img, i->col);
        } break;
        case NK_COMMAND_RECT_MULTI_COLOR:
        case NK_COMMAND_ARC:
        case NK_COMMAND_ARC_FILLED:
        case NK_COMMAND_CUSTOM:
        default: break;
        }
    }
    nk_clear(ctx);
    nk_xsurf_blit(screen, surf, surf->w, surf->h);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x278, %rsp            # imm = 0x278
movq %rdi, 0x68(%rsp)
movl %esi, %eax
shrl $0x10, %eax
movq 0x1c36a(%rip), %r12     # 0x3d610
movzbl %sil, %ecx
shll $0x10, %ecx
andl $0xff00, %esi           # imm = 0xFF00
orl %esi, %ecx
movzbl %al, %edx
orl %ecx, %edx
movq (%r12), %rsi
movq 0x8(%r12), %rdi
callq 0x3270
movq (%r12), %rdx
movq 0x8(%r12), %rdi
movq 0x20(%r12), %rsi
movl 0x28(%r12), %r9d
movl 0x2c(%r12), %eax
movl %eax, (%rsp)
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x3280
leaq 0x1831c(%rip), %rdi     # 0x39610
callq 0xb113
testq %rax, %rax
je 0x2216f
movq %rax, %r15
movq %r12, 0x20(%rsp)
movl (%r15), %eax
decl %eax
cmpl $0x10, %eax
ja 0x220d6
leaq 0x727d(%rip), %rcx      # 0x2859c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movzwl 0x12(%r15), %eax
movl 0x10(%r15), %ecx
movl 0x14(%r15), %edx
movzwl 0x16(%r15), %esi
decl %ecx
movw %cx, 0x70(%rsp)
decl %eax
movw %ax, 0x72(%rsp)
addl $0x2, %edx
movw %dx, 0x74(%rsp)
addl $0x2, %esi
movw %si, 0x76(%rsp)
movq (%r12), %rsi
movq 0x8(%r12), %rdi
movl $0x0, (%rsp)
xorl %edx, %edx
xorl %ecx, %ecx
leaq 0x70(%rsp), %r8
movl $0x1, %r9d
callq 0x34e0
jmp 0x220d6
movq 0x18(%r15), %r14
testq %r14, %r14
je 0x220d6
movswl 0x10(%r15), %ebx
movswl 0x12(%r15), %ebp
movq %r15, %rax
movq %r12, %r15
movzwl 0x14(%rax), %r12d
movq %rax, 0x50(%rsp)
movzwl 0x16(%rax), %r13d
movq 0x10(%r14), %rdx
testq %rdx, %rdx
je 0x213d2
movq (%r15), %rsi
movq 0x8(%r15), %rdi
callq 0x3120
movq (%r15), %rsi
movq 0x8(%r15), %rdi
movl %ebx, %edx
movl %ebp, %ecx
callq 0x3570
movq (%r15), %rdx
movq 0x8(%r15), %rdi
movq 0x20(%r15), %rsi
movq (%r14), %rcx
movl %r13d, 0x18(%rsp)
movl %r12d, 0x10(%rsp)
movl %ebp, 0x8(%rsp)
movl %ebx, (%rsp)
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x33e0
movq (%r15), %rsi
movq 0x8(%r15), %rdi
xorl %edx, %edx
callq 0x3120
jmp 0x21db5
movzwl 0x14(%r15), %ebx
movl 0x10(%r15), %eax
movl %eax, %ecx
shrl $0x10, %ecx
movzbl %al, %edx
shll $0x10, %edx
andl $0xff00, %eax           # imm = 0xFF00
orl %edx, %eax
movzbl %cl, %edx
orl %eax, %edx
movq (%r12), %rsi
movq 0x8(%r12), %rdi
callq 0x3270
testl %ebx, %ebx
je 0x21471
leal -0x1(%rbx), %eax
cmpl $0x7f, %eax
movl $0x7f, %ecx
cmovael %ecx, %eax
incl %eax
xorl %ecx, %ecx
movzwl 0x16(%r15,%rcx,4), %edx
movw %dx, 0x70(%rsp,%rcx,4)
movzwl 0x18(%r15,%rcx,4), %edx
movw %dx, 0x72(%rsp,%rcx,4)
incq %rcx
cmpq %rcx, %rax
jne 0x21453
movq (%r12), %rdx
movq 0x8(%r12), %rdi
movq 0x20(%r12), %rsi
movl $0x0, (%rsp)
leaq 0x70(%rsp), %rcx
movl %ebx, %r8d
jmp 0x220cb
movzwl 0x12(%r15), %eax
movzwl 0x14(%r15), %ecx
movswl %ax, %r14d
movswl %cx, %ebx
movzwl 0x16(%r15), %r13d
movzwl 0x18(%r15), %eax
movq %rax, 0x28(%rsp)
movzwl 0x10(%r15), %ebp
movl 0x1a(%r15), %eax
movl %eax, %ecx
shrl $0x10, %ecx
movzbl %al, %edx
shll $0x10, %edx
andl $0xff00, %eax           # imm = 0xFF00
orl %edx, %eax
movzbl %cl, %edx
orl %eax, %edx
movq (%r12), %rsi
movq 0x8(%r12), %rdi
callq 0x3270
testl %ebp, %ebp
je 0x22103
leal (%r14,%rbp), %eax
leal (%rbx,%rbp), %ecx
movq %r14, %rdi
movq %rbx, %r14
leal (,%rbp,2), %ebx
movl %r13d, %edx
subl %ebx, %edx
movq 0x28(%rsp), %r8
movl %r8d, %esi
subl %ebx, %esi
movw %di, 0x70(%rsp)
movw %cx, 0x72(%rsp)
movw %ax, 0x74(%rsp)
movw %cx, 0x76(%rsp)
movw %ax, 0x78(%rsp)
movw %r14w, 0x7a(%rsp)
cwtl
movswl %dx, %r12d
addl %eax, %r12d
movw %r12w, 0x7c(%rsp)
movw %r14w, 0x7e(%rsp)
movw %r12w, 0x80(%rsp)
movw %cx, 0x82(%rsp)
movq %rdi, 0x30(%rsp)
addl %edi, %r13d
movw %r13w, 0x84(%rsp)
movw %cx, 0x86(%rsp)
movw %r13w, 0x88(%rsp)
movswl %cx, %ecx
movswl %si, %r13d
addl %ecx, %r13d
movw %r13w, 0x8a(%rsp)
movw %r12w, 0x8c(%rsp)
movw %r13w, 0x8e(%rsp)
movw %r12w, 0x90(%rsp)
leal (%r14,%r8), %ecx
movq %r14, 0x40(%rsp)
movw %cx, 0x92(%rsp)
movw %ax, 0x94(%rsp)
movw %cx, 0x96(%rsp)
movw %ax, 0x98(%rsp)
movw %r13w, 0x9a(%rsp)
movw %di, 0x9c(%rsp)
movw %r13w, 0x9e(%rsp)
movq 0x20(%rsp), %rax
movq (%rax), %rdx
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rsi
xorl %eax, %eax
movl %eax, (%rsp)
leaq 0x70(%rsp), %rcx
movl $0xc, %r8d
movl $0x2, %r9d
callq 0x33f0
movq 0x20(%rsp), %rax
movq (%rax), %rdx
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rsi
subl %ebp, %r12d
movl $0x1680, %eax           # imm = 0x1680
movl %eax, 0x10(%rsp)
xorl %eax, %eax
movl %eax, 0x8(%rsp)
movl %ebx, (%rsp)
movl %r12d, %ecx
movl %r14d, %r8d
movl %ebx, %r9d
callq 0x3260
movq 0x20(%rsp), %rax
movq (%rax), %rdx
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rsi
movl $0x1680, %eax           # imm = 0x1680
movl %eax, 0x10(%rsp)
movl %eax, 0x8(%rsp)
movl %ebx, (%rsp)
movq %rbp, %r14
movq 0x30(%rsp), %rbp
movl %ebp, %ecx
movq 0x40(%rsp), %r8
movl %ebx, %r9d
callq 0x3260
movq 0x20(%rsp), %rax
movq (%rax), %rdx
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rsi
subl %r14d, %r13d
movl $0x1680, %eax           # imm = 0x1680
movl %eax, 0x10(%rsp)
movl $0x1680, %r14d          # imm = 0x1680
movl %ebx, (%rsp)
movl $0x2d00, 0x8(%rsp)      # imm = 0x2D00
movl %ebp, %ecx
movl %r13d, %r8d
movl %ebx, %r9d
callq 0x3260
movq 0x20(%rsp), %rax
movq (%rax), %rdx
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rsi
movl %r14d, 0x10(%rsp)
movl %ebx, (%rsp)
movl $0xffffe980, 0x8(%rsp)  # imm = 0xFFFFE980
movl %r12d, %ecx
movq 0x20(%rsp), %r12
movl %r13d, %r8d
movl %ebx, %r9d
jmp 0x21e6f
movswl 0x20(%r15), %ebx
movswl 0x22(%r15), %r12d
movzwl 0x24(%r15), %eax
movl %eax, 0x28(%rsp)
movzwl 0x26(%r15), %r14d
movl 0x2c(%r15), %r13d
movq 0x10(%r15), %rax
movq (%rax), %rbp
movl 0x18(%r15), %eax
movl 0x1c(%r15), %ecx
movl %ecx, 0x40(%rsp)
movl %eax, %ecx
shrl $0x10, %ecx
movzbl %al, %edx
shll $0x10, %edx
andl $0xff00, %eax           # imm = 0xFF00
orl %edx, %eax
movzbl %cl, %edx
orl %eax, %edx
movq 0x20(%rsp), %rax
movq (%rax), %rsi
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x3270
movq 0x20(%rsp), %rax
movq (%rax), %rdx
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rsi
movl %r14d, (%rsp)
movl %ebx, 0x30(%rsp)
movl %ebx, %ecx
movl %r12d, %ebx
movl %r12d, %r8d
movl 0x28(%rsp), %r9d
movq 0x20(%rsp), %r12
callq 0x3280
testq %rbp, %rbp
sete %al
testl %r13d, %r13d
sete %cl
orb %al, %cl
jne 0x220d6
movq %rbp, %rsi
movq %r12, %r14
leaq 0x30(%r15), %r12
movl 0x40(%rsp), %edx
movl %edx, %eax
shrl $0x10, %eax
movzbl %al, %eax
movl %edx, %ecx
andl $0xff00, %ecx           # imm = 0xFF00
movzbl %dl, %edx
shll $0x10, %edx
orl %ecx, %edx
orl %eax, %edx
addl (%rsi), %ebx
movq (%r14), %rsi
movq 0x8(%r14), %rdi
callq 0x3270
movq 0x10(%rbp), %rdx
movq (%r14), %rcx
movq 0x8(%r14), %rdi
movq 0x20(%r14), %rsi
testq %rdx, %rdx
je 0x2214f
movl %r13d, 0x8(%rsp)
movq %r12, (%rsp)
movl 0x30(%rsp), %r8d
movl %ebx, %r9d
callq 0x3450
jmp 0x22165
movswl 0x10(%r15), %ebx
movswl 0x12(%r15), %ebp
movzwl 0x16(%r15), %r12d
movzwl 0x18(%r15), %r14d
movzwl 0x14(%r15), %edx
movl 0x1a(%r15), %eax
movl %eax, %ecx
shrl $0x10, %ecx
movzbl %al, %esi
shll $0x10, %esi
andl $0xff00, %eax           # imm = 0xFF00
orl %esi, %eax
movzbl %cl, %r13d
orl %eax, %r13d
movq 0x20(%rsp), %rax
movq (%rax), %rsi
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rdi
xorl %ecx, %ecx
movl $0x1, %r8d
xorl %r9d, %r9d
callq 0x3320
movq 0x20(%rsp), %rax
movq (%rax), %rsi
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rdi
movq %r13, %rdx
callq 0x3270
movq 0x20(%rsp), %rax
movq (%rax), %rdx
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rsi
movl %r14d, (%rsp)
movl $0x5a00, 0x10(%rsp)     # imm = 0x5A00
movl $0x0, 0x8(%rsp)
movl %ebx, %ecx
movl %ebp, %r8d
movl %r12d, %r9d
movq 0x20(%rsp), %r12
jmp 0x21bd3
movzwl 0x16(%r15), %r14d
movzwl 0x14(%r15), %edx
movl 0x10(%r15), %eax
movl %eax, %ecx
shrl $0x10, %ecx
movzbl %al, %esi
shll $0x10, %esi
andl $0xff00, %eax           # imm = 0xFF00
orl %esi, %eax
movzbl %cl, %ebx
orl %eax, %ebx
movq (%r12), %rsi
movq 0x8(%r12), %rdi
xorl %ecx, %ecx
movl $0x1, %r8d
xorl %r9d, %r9d
callq 0x3320
movq (%r12), %rsi
movq 0x8(%r12), %rdi
movq %rbx, %rdx
callq 0x3270
cmpq $0x2, %r14
jb 0x21f6b
decl %r14d
xorl %eax, %eax
movq (%r12), %rdx
movq 0x8(%r12), %rdi
movq 0x20(%r12), %rsi
movswl 0x18(%r15,%rax,4), %ecx
movswl 0x1a(%r15,%rax,4), %r8d
leaq 0x1(%rax), %rbx
movswl 0x1c(%r15,%rax,4), %r9d
movswl 0x1e(%r15,%rax,4), %eax
movl %eax, (%rsp)
callq 0x3230
movq %rbx, %rax
cmpq %rbx, %r14
jne 0x21937
jmp 0x21f6b
movswl 0x14(%r15), %eax
movq %rax, 0x28(%rsp)
movswl 0x16(%r15), %eax
movq %rax, 0x30(%rsp)
movzwl 0x18(%r15), %r13d
movzwl 0x12(%r15), %ebx
subl %ebx, %r13d
testl %r13d, %r13d
movl $0x0, %eax
cmovlel %eax, %r13d
movzwl 0x1a(%r15), %r14d
subl %ebx, %r14d
testl %r14d, %r14d
cmovlel %eax, %r14d
movzwl 0x10(%r15), %ebp
movl 0x1c(%r15), %eax
movl %eax, %ecx
shrl $0x10, %ecx
movzbl %al, %edx
shll $0x10, %edx
andl $0xff00, %eax           # imm = 0xFF00
orl %edx, %eax
movzbl %cl, %edx
orl %eax, %edx
movq (%r12), %rsi
movq 0x8(%r12), %rdi
callq 0x3270
movq (%r12), %rsi
movq 0x8(%r12), %rdi
movl %ebx, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
xorl %r9d, %r9d
callq 0x3320
movzwl %r13w, %r9d
testl %ebp, %ebp
je 0x22129
movq %rbp, %rax
movq %rax, 0x40(%rsp)
movq 0x28(%rsp), %rax
addl %ebp, %eax
movq 0x30(%rsp), %r8
leal (%r8,%rbp), %edx
movl %edx, 0x38(%rsp)
leal (,%rbp,2), %ebx
subl %ebx, %r13d
movzwl %r14w, %ecx
movl %ecx, 0x3c(%rsp)
subl %ebx, %r14d
movq 0x20(%rsp), %rcx
movq (%rcx), %rdx
movq 0x20(%rsp), %rcx
movq 0x8(%rcx), %rdi
movq 0x20(%rsp), %rcx
movq 0x20(%rcx), %rsi
movswl %ax, %ecx
movswl %r13w, %ebp
movl %ecx, 0x4c(%rsp)
addl %ecx, %ebp
movl %r8d, (%rsp)
movl %r9d, %r12d
movl %ebp, %r9d
callq 0x3230
movq 0x20(%rsp), %rax
movq (%rax), %rdx
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rsi
addl 0x28(%rsp), %r12d
movswl 0x38(%rsp), %r8d
movswl %r14w, %r13d
movl %r8d, 0x38(%rsp)
addl %r8d, %r13d
movl %r13d, (%rsp)
movl %r12d, %ecx
movl %r12d, %r9d
callq 0x3230
movq 0x20(%rsp), %rax
movq (%rax), %rdx
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rsi
movq 0x30(%rsp), %r14
movl 0x3c(%rsp), %r8d
addl %r14d, %r8d
movl %r8d, (%rsp)
movl 0x4c(%rsp), %ecx
movq 0x20(%rsp), %r12
movl %ebp, %r9d
callq 0x3230
movq (%r12), %rdx
movq 0x8(%r12), %rdi
movq 0x20(%r12), %rsi
movl %r13d, (%rsp)
movq 0x28(%rsp), %rcx
movl 0x38(%rsp), %r8d
movl %ecx, %r9d
callq 0x3230
movq (%r12), %rdx
movq 0x8(%r12), %rdi
movq 0x20(%r12), %rsi
subl 0x40(%rsp), %ebp
movl %ebp, 0x3c(%rsp)
movl $0x1680, %eax           # imm = 0x1680
movl %eax, 0x10(%rsp)
movl %ebx, (%rsp)
movl $0x0, 0x8(%rsp)
movl %ebp, %ecx
movl %r14d, %r8d
movl %ebx, %r9d
callq 0x3480
movq (%r12), %rdx
movq 0x8(%r12), %rdi
movq 0x20(%r12), %rsi
movl $0x1680, %eax           # imm = 0x1680
movl %eax, 0x10(%rsp)
movl %eax, 0x8(%rsp)
movl %ebx, (%rsp)
movq 0x28(%rsp), %rbp
movl %ebp, %ecx
movl %r14d, %r8d
movl %ebx, %r9d
callq 0x3480
movq (%r12), %rdx
movq 0x8(%r12), %rdi
movq 0x20(%r12), %rsi
subl 0x40(%rsp), %r13d
movl $0x1680, %r14d          # imm = 0x1680
movl %r14d, 0x10(%rsp)
movl %ebx, (%rsp)
movl $0x2d00, 0x8(%rsp)      # imm = 0x2D00
movl %ebp, %ecx
movl %r13d, %r8d
movl %ebx, %r9d
callq 0x3480
movq (%r12), %rdx
movq 0x8(%r12), %rdi
movq 0x20(%r12), %rsi
movl %r14d, 0x10(%rsp)
movl %ebx, (%rsp)
movl $0xffffe980, 0x8(%rsp)  # imm = 0xFFFFE980
movl 0x3c(%rsp), %ecx
movl %r13d, %r8d
movl %ebx, %r9d
callq 0x3480
jmp 0x21f6b
movzwl 0x10(%r15), %edx
movl 0x1a(%r15), %eax
movl %eax, 0x48(%rsp)
movl 0x1e(%r15), %r13d
movl 0x12(%r15), %ebx
movl 0x16(%r15), %r14d
movq %r15, 0x50(%rsp)
movl 0x22(%r15), %eax
movl %eax, 0x30(%rsp)
movl %ebx, %ebp
shrl $0x10, %ebp
movq (%r12), %rsi
movq 0x8(%r12), %rdi
movq %r12, %r15
movl $0x1, %r12d
movl %edx, 0x28(%rsp)
xorl %ecx, %ecx
movl $0x1, %r8d
xorl %r9d, %r9d
callq 0x3320
movswl %bx, %eax
cvtsi2ss %eax, %xmm0
movss %xmm0, 0x40(%rsp)
movl 0x48(%rsp), %ecx
movswl %cx, %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss %xmm0, 0x3c(%rsp)
movswl %r13w, %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss %xmm0, 0x4c(%rsp)
movswl %r14w, %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss %xmm0, 0x38(%rsp)
movl %ebx, %eax
sarl $0x10, %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss %xmm0, 0x64(%rsp)
movl %ecx, %eax
sarl $0x10, %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss %xmm0, 0x48(%rsp)
sarl $0x10, %r13d
xorps %xmm0, %xmm0
cvtsi2ss %r13d, %xmm0
movss %xmm0, 0x60(%rsp)
sarl $0x10, %r14d
xorps %xmm0, %xmm0
cvtsi2ss %r14d, %xmm0
movss %xmm0, 0x5c(%rsp)
xorps %xmm4, %xmm4
cvtsi2ss %r12d, %xmm4
mulss 0x671f(%rip), %xmm4     # 0x283e8
movss 0x66b3(%rip), %xmm2     # 0x28384
subss %xmm4, %xmm2
movaps %xmm2, %xmm0
mulss %xmm2, %xmm0
mulss %xmm2, %xmm0
movaps %xmm2, %xmm1
mulss 0x66f1(%rip), %xmm1     # 0x283dc
mulss %xmm1, %xmm2
mulss %xmm4, %xmm2
mulss %xmm4, %xmm1
mulss %xmm4, %xmm1
movaps %xmm4, %xmm3
mulss %xmm4, %xmm3
mulss %xmm4, %xmm3
movaps %xmm2, %xmm4
mulss 0x3c(%rsp), %xmm4
movaps %xmm0, %xmm5
mulss 0x40(%rsp), %xmm5
addss %xmm4, %xmm5
movaps %xmm1, %xmm4
mulss 0x4c(%rsp), %xmm4
addss %xmm5, %xmm4
movaps %xmm3, %xmm5
mulss 0x38(%rsp), %xmm5
addss %xmm4, %xmm5
mulss 0x48(%rsp), %xmm2
mulss 0x64(%rsp), %xmm0
addss %xmm2, %xmm0
mulss 0x60(%rsp), %xmm1
addss %xmm0, %xmm1
mulss 0x5c(%rsp), %xmm3
addss %xmm1, %xmm3
cvttss2si %xmm5, %r14d
cvttss2si %xmm3, %r13d
movl 0x30(%rsp), %eax
movl %eax, (%rsp)
movswl %r14w, %ecx
movswl %r13w, %r8d
movswl %bx, %esi
movswl %bp, %edx
movq %r15, %rdi
movl 0x28(%rsp), %r9d
callq 0x221c9
incl %r12d
movl %r13d, %ebp
movl %r14d, %ebx
cmpl $0x17, %r12d
jne 0x21cb9
movq (%r15), %rsi
movq 0x8(%r15), %rdi
movl $0x1, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
xorl %r9d, %r9d
callq 0x3320
movq %r15, %r12
movq 0x50(%rsp), %r15
jmp 0x220d6
movswl 0x12(%r15), %esi
movswl 0x14(%r15), %edx
movswl 0x16(%r15), %ecx
movswl 0x18(%r15), %r8d
movzwl 0x10(%r15), %r9d
movl 0x1a(%r15), %eax
movl %eax, (%rsp)
movq %r12, %rdi
callq 0x221c9
jmp 0x220d6
movswl 0x10(%r15), %ebx
movswl 0x12(%r15), %ebp
movzwl 0x14(%r15), %r12d
movzwl 0x16(%r15), %r14d
movl 0x18(%r15), %eax
movl %eax, %ecx
shrl $0x10, %ecx
movzbl %al, %edx
shll $0x10, %edx
andl $0xff00, %eax           # imm = 0xFF00
orl %edx, %eax
movzbl %cl, %edx
orl %eax, %edx
movq 0x20(%rsp), %rax
movq (%rax), %rsi
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x3270
movq 0x20(%rsp), %rax
movq (%rax), %rdx
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rsi
movl %r14d, (%rsp)
movl $0x5a00, 0x10(%rsp)     # imm = 0x5A00
movl $0x0, 0x8(%rsp)
movl %ebx, %ecx
movl %ebp, %r8d
movl %r12d, %r9d
movq 0x20(%rsp), %r12
callq 0x3260
jmp 0x220d6
movswl 0x12(%r15), %r13d
movl %r13d, 0x40(%rsp)
movswl 0x14(%r15), %ebp
movswl 0x16(%r15), %eax
movl %eax, 0x30(%rsp)
movswl 0x18(%r15), %ebx
movswl 0x1a(%r15), %eax
movl %eax, 0x28(%rsp)
movswl 0x1c(%r15), %r14d
movzwl 0x10(%r15), %r12d
movl 0x1e(%r15), %eax
movl %eax, %ecx
shrl $0x10, %ecx
movzbl %al, %edx
shll $0x10, %edx
andl $0xff00, %eax           # imm = 0xFF00
orl %edx, %eax
movzbl %cl, %edx
orl %eax, %edx
movq 0x20(%rsp), %rax
movq (%rax), %rsi
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x3270
movq 0x20(%rsp), %rax
movq (%rax), %rsi
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rdi
movl %r12d, %edx
movq 0x20(%rsp), %r12
xorl %ecx, %ecx
movl $0x1, %r8d
xorl %r9d, %r9d
callq 0x3320
movq (%r12), %rdx
movq 0x8(%r12), %rdi
movq 0x20(%r12), %rsi
movl %ebx, (%rsp)
movl %r13d, %ecx
movl %ebp, %r8d
movl 0x30(%rsp), %r13d
movl %r13d, %r9d
callq 0x3230
movq (%r12), %rdx
movq 0x8(%r12), %rdi
movq 0x20(%r12), %rsi
movl %r14d, (%rsp)
movl %r13d, %ecx
movl %ebx, %r8d
movl 0x28(%rsp), %ebx
movl %ebx, %r9d
callq 0x3230
movq (%r12), %rdx
movq 0x8(%r12), %rdi
movq 0x20(%r12), %rsi
movl %ebp, (%rsp)
movl %ebx, %ecx
movl %r14d, %r8d
movl 0x40(%rsp), %r9d
callq 0x3230
movq (%r12), %rsi
movq 0x8(%r12), %rdi
movl $0x1, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
xorl %r9d, %r9d
callq 0x3320
jmp 0x220d6
movzwl 0x16(%r15), %r14d
movzwl 0x14(%r15), %ebx
movl 0x10(%r15), %eax
movl %eax, %ecx
shrl $0x10, %ecx
movzbl %al, %edx
shll $0x10, %edx
andl $0xff00, %eax           # imm = 0xFF00
orl %edx, %eax
movzbl %cl, %edx
orl %eax, %edx
movq (%r12), %rsi
movq 0x8(%r12), %rdi
callq 0x3270
movq (%r12), %rsi
movq 0x8(%r12), %rdi
movl %ebx, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
xorl %r9d, %r9d
callq 0x3320
cmpq $0x2, %r14
movq %r15, %r13
movq %r12, %r15
jb 0x22022
leaq -0x1(%r14), %rbx
xorl %r12d, %r12d
movq (%r15), %rdx
movq 0x8(%r15), %rdi
movq 0x20(%r15), %rsi
movswl 0x18(%r13,%r12,4), %ecx
movswl 0x1a(%r13,%r12,4), %r8d
movswl 0x1c(%r13,%r12,4), %r9d
movswl 0x1e(%r13,%r12,4), %eax
movl %eax, (%rsp)
callq 0x3230
incq %r12
cmpq %r12, %rbx
jne 0x21fef
movq (%r15), %rdx
movq 0x8(%r15), %rdi
movq 0x20(%r15), %rsi
movswl 0x14(%r13,%r14,4), %ecx
movswl 0x16(%r13,%r14,4), %r8d
movswl 0x18(%r13), %r9d
movswl 0x1a(%r13), %eax
movl %eax, (%rsp)
callq 0x3230
movq (%r15), %rsi
movq 0x8(%r15), %rdi
movl $0x1, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
xorl %r9d, %r9d
callq 0x3320
movq %r15, %r12
movq %r13, %r15
jmp 0x220d6
movq 0x10(%r15), %rax
movl 0x18(%r15), %ecx
movl 0x1c(%r15), %esi
movl %esi, %edx
shrl $0x10, %edx
movzbl %sil, %edi
shll $0x10, %edi
andl $0xff00, %esi           # imm = 0xFF00
orl %edi, %esi
movzbl %dl, %edx
orl %esi, %edx
movq %rax, 0x70(%rsp)
movl %ecx, 0x78(%rsp)
movq (%r12), %rsi
movq 0x8(%r12), %rdi
callq 0x3270
movq (%r12), %rdx
movq 0x8(%r12), %rdi
movq 0x20(%r12), %rsi
movl $0x0, (%rsp)
leaq 0x70(%rsp), %rcx
movl $0x3, %r8d
movl $0x2, %r9d
callq 0x33f0
cmpl $0x0, 0x1b52b(%rip)     # 0x3d608
je 0x220f5
movq 0x8(%r15), %r15
cmpq 0x1945e(%rip), %r15     # 0x3b548
jae 0x220f5
addq 0x1943d(%rip), %r15     # 0x3b530
jmp 0x220f8
xorl %r15d, %r15d
testq %r15, %r15
jne 0x2130a
jmp 0x2216f
movq (%r12), %rdx
movq 0x8(%r12), %rdi
movq 0x20(%r12), %rsi
movq 0x28(%rsp), %rax
movl %eax, (%rsp)
movl %r14d, %ecx
movl %ebx, %r8d
movl %r13d, %r9d
callq 0x3280
jmp 0x220d6
movq (%r12), %rdx
movq 0x8(%r12), %rdi
movq 0x20(%r12), %rsi
movzwl %r14w, %eax
movl %eax, (%rsp)
movq 0x28(%rsp), %rcx
movq 0x30(%rsp), %r8
callq 0x32e0
jmp 0x220d6
movl %r13d, (%rsp)
movq %rcx, %rdx
movl 0x30(%rsp), %ecx
movl %ebx, %r8d
movq %r12, %r9
callq 0x3030
movq 0x20(%rsp), %r12
jmp 0x220d6
leaq 0x1749a(%rip), %rdi     # 0x39610
callq 0xac72
movl 0x28(%r12), %eax
movl 0x2c(%r12), %edx
movq (%r12), %rcx
movq 0x8(%r12), %rdi
movq 0x20(%r12), %rsi
xorl %r8d, %r8d
movl %r8d, 0x18(%rsp)
movl %r8d, 0x10(%rsp)
movl %edx, 0x8(%rsp)
movl %eax, (%rsp)
movq 0x68(%rsp), %rdx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x3210
addq $0x278, %rsp            # imm = 0x278
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq