// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonnuklear/src/./nuklear/nuklear.h
// Function: nk_do_property
NK_LIB void
nk_do_property(nk_flags *ws,
    struct nk_command_buffer *out, struct nk_rect property,
    const char *name, struct nk_property_variant *variant,
    float inc_per_pixel, char *buffer, int *len,
    int *state, int *cursor, int *select_begin, int *select_end,
    const struct nk_style_property *style,
    enum nk_property_filter filter, struct nk_input *in,
    const struct nk_user_font *font, struct nk_text_edit *text_edit,
    enum nk_button_behavior behavior)
{
    const nk_plugin_filter filters[] = {
        nk_filter_decimal,
        nk_filter_float
    };
    nk_bool active, old;
    int num_len = 0, name_len;
    char string[NK_MAX_NUMBER_BUFFER];
    float size;

    char *dst = 0;
    int *length;

    struct nk_rect left;
    struct nk_rect right;
    struct nk_rect label;
    struct nk_rect edit;
    struct nk_rect empty;

    /* left decrement button */
    left.h = font->height/2;
    left.w = left.h;
    left.x = property.x + style->border + style->padding.x;
    left.y = property.y + style->border + property.h/2.0f - left.h/2;

    /* text label */
    name_len = nk_strlen(name);
    size = font->width(font->userdata, font->height, name, name_len);
    label.x = left.x + left.w + style->padding.x;
    label.w = (float)size + 2 * style->padding.x;
    label.y = property.y + style->border + style->padding.y;
    label.h = property.h - (2 * style->border + 2 * style->padding.y);

    /* right increment button */
    right.y = left.y;
    right.w = left.w;
    right.h = left.h;
    right.x = property.x + property.w - (right.w + style->padding.x);

    /* edit */
    if (*state == NK_PROPERTY_EDIT) {
        size = font->width(font->userdata, font->height, buffer, *len);
        size += style->edit.cursor_size;
        length = len;
        dst = buffer;
    } else {
        switch (variant->kind) {
        default: break;
        case NK_PROPERTY_INT:
            nk_itoa(string, variant->value.i);
            num_len = nk_strlen(string);
            break;
        case NK_PROPERTY_FLOAT:
            NK_DTOA(string, (double)variant->value.f);
            num_len = nk_string_float_limit(string, NK_MAX_FLOAT_PRECISION);
            break;
        case NK_PROPERTY_DOUBLE:
            NK_DTOA(string, variant->value.d);
            num_len = nk_string_float_limit(string, NK_MAX_FLOAT_PRECISION);
            break;
        }
        size = font->width(font->userdata, font->height, string, num_len);
        dst = string;
        length = &num_len;
    }

    edit.w =  (float)size + 2 * style->padding.x;
    edit.w = NK_MIN(edit.w, right.x - (label.x + label.w));
    edit.x = right.x - (edit.w + style->padding.x);
    edit.y = property.y + style->border;
    edit.h = property.h - (2 * style->border);

    /* empty left space activator */
    empty.w = edit.x - (label.x + label.w);
    empty.x = label.x + label.w;
    empty.y = property.y;
    empty.h = property.h;

    /* update property */
    old = (*state == NK_PROPERTY_EDIT);
    nk_property_behavior(ws, in, property, label, edit, empty, state, variant, inc_per_pixel);

    /* draw property */
    if (style->draw_begin) style->draw_begin(out, style->userdata);
    nk_draw_property(out, style, &property, &label, *ws, name, name_len, font);
    if (style->draw_end) style->draw_end(out, style->userdata);

    /* execute right button  */
    if (nk_do_button_symbol(ws, out, left, style->sym_left, behavior, &style->dec_button, in, font)) {
        switch (variant->kind) {
        default: break;
        case NK_PROPERTY_INT:
            variant->value.i = NK_CLAMP(variant->min_value.i, variant->value.i - variant->step.i, variant->max_value.i); break;
        case NK_PROPERTY_FLOAT:
            variant->value.f = NK_CLAMP(variant->min_value.f, variant->value.f - variant->step.f, variant->max_value.f); break;
        case NK_PROPERTY_DOUBLE:
            variant->value.d = NK_CLAMP(variant->min_value.d, variant->value.d - variant->step.d, variant->max_value.d); break;
        }
    }
    /* execute left button  */
    if (nk_do_button_symbol(ws, out, right, style->sym_right, behavior, &style->inc_button, in, font)) {
        switch (variant->kind) {
        default: break;
        case NK_PROPERTY_INT:
            variant->value.i = NK_CLAMP(variant->min_value.i, variant->value.i + variant->step.i, variant->max_value.i); break;
        case NK_PROPERTY_FLOAT:
            variant->value.f = NK_CLAMP(variant->min_value.f, variant->value.f + variant->step.f, variant->max_value.f); break;
        case NK_PROPERTY_DOUBLE:
            variant->value.d = NK_CLAMP(variant->min_value.d, variant->value.d + variant->step.d, variant->max_value.d); break;
        }
    }
    if (old != NK_PROPERTY_EDIT && (*state == NK_PROPERTY_EDIT)) {
        /* property has been activated so setup buffer */
        NK_MEMCPY(buffer, dst, (nk_size)*length);
        *cursor = nk_utf_len(buffer, *length);
        *len = *length;
        length = len;
        dst = buffer;
        active = 0;
    } else active = (*state == NK_PROPERTY_EDIT);

    /* execute and run text edit field */
    nk_textedit_clear_state(text_edit, NK_TEXT_EDIT_SINGLE_LINE, filters[filter]);
    text_edit->active = (unsigned char)active;
    text_edit->string.len = *length;
    text_edit->cursor = NK_CLAMP(0, *cursor, *length);
    text_edit->select_start = NK_CLAMP(0,*select_begin, *length);
    text_edit->select_end = NK_CLAMP(0,*select_end, *length);
    text_edit->string.buffer.allocated = (nk_size)*length;
    text_edit->string.buffer.memory.size = NK_MAX_NUMBER_BUFFER;
    text_edit->string.buffer.memory.ptr = dst;
    text_edit->string.buffer.size = NK_MAX_NUMBER_BUFFER;
    text_edit->mode = NK_TEXT_EDIT_MODE_INSERT;
    nk_do_edit(ws, out, edit, (int)NK_EDIT_FIELD|(int)NK_EDIT_AUTO_SELECT,
        filters[filter], text_edit, &style->edit, (*state == NK_PROPERTY_EDIT) ? in: 0, font);

    *length = text_edit->string.len;
    *cursor = text_edit->cursor;
    *select_begin = text_edit->select_start;
    *select_end = text_edit->select_end;
    if (text_edit->active && nk_input_is_key_pressed(in, NK_KEY_ENTER))
        text_edit->active = nk_false;

    if (active && !text_edit->active) {
        /* property is now not active so convert edit text to value*/
        *state = NK_PROPERTY_DEFAULT;
        buffer[*len] = '\0';
        switch (variant->kind) {
        default: break;
        case NK_PROPERTY_INT:
            variant->value.i = nk_strtoi(buffer, 0);
            variant->value.i = NK_CLAMP(variant->min_value.i, variant->value.i, variant->max_value.i);
            break;
        case NK_PROPERTY_FLOAT:
            nk_string_float_limit(buffer, NK_MAX_FLOAT_PRECISION);
            variant->value.f = nk_strtof(buffer, 0);
            variant->value.f = NK_CLAMP(variant->min_value.f, variant->value.f, variant->max_value.f);
            break;
        case NK_PROPERTY_DOUBLE:
            nk_string_float_limit(buffer, NK_MAX_FLOAT_PRECISION);
            variant->value.d = nk_strtod(buffer, 0);
            variant->value.d = NK_CLAMP(variant->min_value.d, variant->value.d, variant->max_value.d);
            break;
        }
    }
}

// Assembly:
subq $0x228, %rsp            # imm = 0x228
movl 0x278(%rsp), %eax
movq 0x270(%rsp), %rax
movq 0x268(%rsp), %rax
movq 0x260(%rsp), %rax
movl 0x258(%rsp), %eax
movq 0x250(%rsp), %rax
movq 0x248(%rsp), %rax
movq 0x240(%rsp), %rax
movq 0x238(%rsp), %rax
movq 0x230(%rsp), %rax
movlpd %xmm0, 0x218(%rsp)
movlpd %xmm1, 0x220(%rsp)
movq %rdi, 0x210(%rsp)
movq %rsi, 0x208(%rsp)
movq %rdx, 0x200(%rsp)
movq %rcx, 0x1f8(%rsp)
movss %xmm2, 0x1f4(%rsp)
movq %r8, 0x1e8(%rsp)
movq %r9, 0x1e0(%rsp)
movq 0x35f69(%rip), %rax     # 0xc42f0
movq %rax, 0x1d0(%rsp)
movq 0x35f62(%rip), %rax     # 0xc42f8
movq %rax, 0x1d8(%rsp)
movl $0x0, 0x1c4(%rsp)
movq $0x0, 0x170(%rsp)
movq 0x268(%rsp), %rax
movss 0x8(%rax), %xmm0
movss 0x1f11a(%rip), %xmm1    # 0xad4e4
divss %xmm1, %xmm0
movss %xmm0, 0x164(%rsp)
movss 0x164(%rsp), %xmm0
movss %xmm0, 0x160(%rsp)
movss 0x218(%rsp), %xmm0
movq 0x250(%rsp), %rax
addss 0x90(%rax), %xmm0
movq 0x250(%rsp), %rax
addss 0x98(%rax), %xmm0
movss %xmm0, 0x158(%rsp)
movss 0x21c(%rsp), %xmm0
movq 0x250(%rsp), %rax
addss 0x90(%rax), %xmm0
movss 0x224(%rsp), %xmm1
movss 0x1f09f(%rip), %xmm2    # 0xad4e4
divss %xmm2, %xmm1
addss %xmm1, %xmm0
movss 0x164(%rsp), %xmm1
movss 0x1f086(%rip), %xmm2    # 0xad4e4
divss %xmm2, %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0x15c(%rsp)
movq 0x200(%rsp), %rdi
callq 0x14050
movl %eax, 0x1c0(%rsp)
movq 0x268(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x268(%rsp), %rcx
movq 0x268(%rsp), %rdx
movss 0x8(%rdx), %xmm0
movq 0x200(%rsp), %rsi
movl 0x1c0(%rsp), %edx
movq (%rcx), %rdi
callq *%rax
movss %xmm0, 0x17c(%rsp)
movss 0x158(%rsp), %xmm0
addss 0x160(%rsp), %xmm0
movq 0x250(%rsp), %rax
addss 0x98(%rax), %xmm0
movss %xmm0, 0x138(%rsp)
movss 0x17c(%rsp), %xmm1
movq 0x250(%rsp), %rax
movss 0x98(%rax), %xmm0
addss %xmm0, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x140(%rsp)
movss 0x21c(%rsp), %xmm0
movq 0x250(%rsp), %rax
addss 0x90(%rax), %xmm0
movq 0x250(%rsp), %rax
addss 0x9c(%rax), %xmm0
movss %xmm0, 0x13c(%rsp)
movss 0x224(%rsp), %xmm0
movq 0x250(%rsp), %rax
movss 0x90(%rax), %xmm1
movq 0x250(%rsp), %rax
movss 0x1ef73(%rip), %xmm2    # 0xad4e4
mulss 0x9c(%rax), %xmm2
addss %xmm1, %xmm1
addss %xmm2, %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0x144(%rsp)
movss 0x15c(%rsp), %xmm0
movss %xmm0, 0x14c(%rsp)
movss 0x160(%rsp), %xmm0
movss %xmm0, 0x150(%rsp)
movss 0x164(%rsp), %xmm0
movss %xmm0, 0x154(%rsp)
movss 0x218(%rsp), %xmm0
addss 0x220(%rsp), %xmm0
movss 0x150(%rsp), %xmm1
movq 0x250(%rsp), %rax
addss 0x98(%rax), %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0x148(%rsp)
movq 0x230(%rsp), %rax
cmpl $0x1, (%rax)
jne 0x8e695
movq 0x268(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x268(%rsp), %rcx
movq 0x268(%rsp), %rdx
movss 0x8(%rdx), %xmm0
movq 0x1e8(%rsp), %rsi
movq 0x1e0(%rsp), %rdx
movl (%rdx), %edx
movq (%rcx), %rdi
callq *%rax
movss %xmm0, 0x17c(%rsp)
movq 0x250(%rsp), %rax
movss 0x44c(%rax), %xmm0
addss 0x17c(%rsp), %xmm0
movss %xmm0, 0x17c(%rsp)
movq 0x1e0(%rsp), %rax
movq %rax, 0x168(%rsp)
movq 0x1e8(%rsp), %rax
movq %rax, 0x170(%rsp)
jmp 0x8e7c6
movq 0x1f8(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x114(%rsp)
testl %eax, %eax
je 0x8e6cd
jmp 0x8e6ac
movl 0x114(%rsp), %eax
subl $0x1, %eax
je 0x8e6fc
jmp 0x8e6ba
movl 0x114(%rsp), %eax
subl $0x2, %eax
je 0x8e735
jmp 0x8e6c8
jmp 0x8e768
leaq 0x180(%rsp), %rdi
movq 0x1f8(%rsp), %rax
movslq 0x8(%rax), %rsi
callq 0x8fae0
leaq 0x180(%rsp), %rdi
callq 0x14050
movl %eax, 0x1c4(%rsp)
jmp 0x8e768
leaq 0x180(%rsp), %rdi
movq 0x1f8(%rsp), %rax
movss 0x8(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x8fc00
leaq 0x180(%rsp), %rdi
movl $0x2, %esi
callq 0x90080
movl %eax, 0x1c4(%rsp)
jmp 0x8e768
leaq 0x180(%rsp), %rdi
movq 0x1f8(%rsp), %rax
movsd 0x8(%rax), %xmm0
callq 0x8fc00
leaq 0x180(%rsp), %rdi
movl $0x2, %esi
callq 0x90080
movl %eax, 0x1c4(%rsp)
movq 0x268(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x268(%rsp), %rcx
movq 0x268(%rsp), %rdx
movss 0x8(%rdx), %xmm0
leaq 0x180(%rsp), %rsi
movl 0x1c4(%rsp), %edx
movq (%rcx), %rdi
callq *%rax
movss %xmm0, 0x17c(%rsp)
leaq 0x180(%rsp), %rax
movq %rax, 0x170(%rsp)
leaq 0x1c4(%rsp), %rax
movq %rax, 0x168(%rsp)
movss 0x17c(%rsp), %xmm1
movq 0x250(%rsp), %rax
movss 0x98(%rax), %xmm0
addss %xmm0, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x130(%rsp)
movss 0x130(%rsp), %xmm1
movss 0x148(%rsp), %xmm0
movss 0x138(%rsp), %xmm2
addss 0x140(%rsp), %xmm2
subss %xmm2, %xmm0
ucomiss %xmm1, %xmm0
jbe 0x8e831
movss 0x130(%rsp), %xmm0
movss %xmm0, 0x110(%rsp)
jmp 0x8e859
movss 0x148(%rsp), %xmm0
movss 0x138(%rsp), %xmm1
addss 0x140(%rsp), %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0x110(%rsp)
movss 0x110(%rsp), %xmm0
movss %xmm0, 0x130(%rsp)
movss 0x148(%rsp), %xmm0
movss 0x130(%rsp), %xmm1
movq 0x250(%rsp), %rax
movss 0x98(%rax), %xmm2
addss %xmm2, %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0x128(%rsp)
movss 0x21c(%rsp), %xmm0
movq 0x250(%rsp), %rax
movss 0x90(%rax), %xmm1
addss %xmm1, %xmm0
movss %xmm0, 0x12c(%rsp)
movss 0x224(%rsp), %xmm0
movq 0x250(%rsp), %rax
movss 0x90(%rax), %xmm1
addss %xmm1, %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0x134(%rsp)
movss 0x128(%rsp), %xmm0
movss 0x138(%rsp), %xmm1
movss 0x140(%rsp), %xmm2
addss %xmm2, %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0x120(%rsp)
movss 0x138(%rsp), %xmm0
movss 0x140(%rsp), %xmm1
addss %xmm1, %xmm0
movss %xmm0, 0x118(%rsp)
movss 0x21c(%rsp), %xmm0
movss %xmm0, 0x11c(%rsp)
movss 0x224(%rsp), %xmm0
movss %xmm0, 0x124(%rsp)
movq 0x230(%rsp), %rax
movl (%rax), %eax
subl $0x1, %eax
sete %al
movzbl %al, %eax
movl %eax, 0x1c8(%rsp)
movq 0x210(%rsp), %rdi
movq 0x260(%rsp), %rsi
movq 0x230(%rsp), %rdx
movq 0x1f8(%rsp), %rcx
movss 0x1f4(%rsp), %xmm8
movsd 0x218(%rsp), %xmm0
movsd 0x220(%rsp), %xmm1
movsd 0x138(%rsp), %xmm2
movsd 0x140(%rsp), %xmm3
movsd 0x128(%rsp), %xmm4
movsd 0x130(%rsp), %xmm5
movsd 0x118(%rsp), %xmm6
movsd 0x120(%rsp), %xmm7
movq %rsp, %rax
movss %xmm8, (%rax)
callq 0x90120
movq 0x250(%rsp), %rax
cmpq $0x0, 0x628(%rax)
je 0x8ea30
movq 0x250(%rsp), %rax
movq 0x628(%rax), %rax
movq 0x208(%rsp), %rdi
movq 0x250(%rsp), %rcx
movq 0x620(%rcx), %rsi
callq *%rax
movq 0x208(%rsp), %rdi
movq 0x250(%rsp), %rsi
movq 0x210(%rsp), %rax
movl (%rax), %r8d
movq 0x200(%rsp), %r9
movl 0x1c0(%rsp), %r10d
movq 0x268(%rsp), %rax
leaq 0x218(%rsp), %rdx
leaq 0x138(%rsp), %rcx
movl %r10d, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x902a0
movq 0x250(%rsp), %rax
cmpq $0x0, 0x630(%rax)
je 0x8eabb
movq 0x250(%rsp), %rax
movq 0x630(%rax), %rax
movq 0x208(%rsp), %rdi
movq 0x250(%rsp), %rcx
movq 0x620(%rcx), %rsi
callq *%rax
movq 0x210(%rsp), %rdi
movq 0x208(%rsp), %rsi
movq 0x250(%rsp), %r8
movl 0x88(%r8), %edx
movl 0x278(%rsp), %ecx
addq $0x548, %r8             # imm = 0x548
movq 0x260(%rsp), %r9
movq 0x268(%rsp), %r10
movsd 0x158(%rsp), %xmm0
movsd 0x160(%rsp), %xmm1
movq %rsp, %rax
movq %r10, (%rax)
callq 0x5e910
cmpl $0x0, %eax
je 0x8eeaf
movq 0x1f8(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x10c(%rsp)
testl %eax, %eax
je 0x8eb5e
jmp 0x8eb35
movl 0x10c(%rsp), %eax
subl $0x1, %eax
je 0x8ec53
jmp 0x8eb47
movl 0x10c(%rsp), %eax
subl $0x2, %eax
je 0x8ed81
jmp 0x8eb59
jmp 0x8eead
movq 0x1f8(%rsp), %rax
movl 0x8(%rax), %eax
movq 0x1f8(%rsp), %rcx
subl 0x20(%rcx), %eax
movq 0x1f8(%rsp), %rcx
cmpl 0x18(%rcx), %eax
jge 0x8eba0
movq 0x1f8(%rsp), %rax
movl 0x8(%rax), %eax
movq 0x1f8(%rsp), %rcx
subl 0x20(%rcx), %eax
movl %eax, 0x108(%rsp)
jmp 0x8ebb2
movq 0x1f8(%rsp), %rax
movl 0x18(%rax), %eax
movl %eax, 0x108(%rsp)
movl 0x108(%rsp), %eax
movq 0x1f8(%rsp), %rcx
cmpl 0x10(%rcx), %eax
jge 0x8ebda
movq 0x1f8(%rsp), %rax
movl 0x10(%rax), %eax
movl %eax, 0x104(%rsp)
jmp 0x8ec3c
movq 0x1f8(%rsp), %rax
movl 0x8(%rax), %eax
movq 0x1f8(%rsp), %rcx
subl 0x20(%rcx), %eax
movq 0x1f8(%rsp), %rcx
cmpl 0x18(%rcx), %eax
jge 0x8ec1c
movq 0x1f8(%rsp), %rax
movl 0x8(%rax), %eax
movq 0x1f8(%rsp), %rcx
subl 0x20(%rcx), %eax
movl %eax, 0x100(%rsp)
jmp 0x8ec2e
movq 0x1f8(%rsp), %rax
movl 0x18(%rax), %eax
movl %eax, 0x100(%rsp)
movl 0x100(%rsp), %eax
movl %eax, 0x104(%rsp)
movl 0x104(%rsp), %ecx
movq 0x1f8(%rsp), %rax
movl %ecx, 0x8(%rax)
jmp 0x8eead
movq 0x1f8(%rsp), %rax
movss 0x8(%rax), %xmm1
movq 0x1f8(%rsp), %rax
subss 0x20(%rax), %xmm1
movq 0x1f8(%rsp), %rax
movss 0x18(%rax), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x8eca4
movq 0x1f8(%rsp), %rax
movss 0x8(%rax), %xmm0
movq 0x1f8(%rsp), %rax
subss 0x20(%rax), %xmm0
movss %xmm0, 0xfc(%rsp)
jmp 0x8ecba
movq 0x1f8(%rsp), %rax
movss 0x18(%rax), %xmm0
movss %xmm0, 0xfc(%rsp)
movss 0xfc(%rsp), %xmm1
movq 0x1f8(%rsp), %rax
movss 0x10(%rax), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x8eced
movq 0x1f8(%rsp), %rax
movss 0x10(%rax), %xmm0
movss %xmm0, 0xf8(%rsp)
jmp 0x8ed66
movq 0x1f8(%rsp), %rax
movss 0x8(%rax), %xmm1
movq 0x1f8(%rsp), %rax
subss 0x20(%rax), %xmm1
movq 0x1f8(%rsp), %rax
movss 0x18(%rax), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x8ed3e
movq 0x1f8(%rsp), %rax
movss 0x8(%rax), %xmm0
movq 0x1f8(%rsp), %rax
subss 0x20(%rax), %xmm0
movss %xmm0, 0xf4(%rsp)
jmp 0x8ed54
movq 0x1f8(%rsp), %rax
movss 0x18(%rax), %xmm0
movss %xmm0, 0xf4(%rsp)
movss 0xf4(%rsp), %xmm0
movss %xmm0, 0xf8(%rsp)
movss 0xf8(%rsp), %xmm0
movq 0x1f8(%rsp), %rax
movss %xmm0, 0x8(%rax)
jmp 0x8eead
movq 0x1f8(%rsp), %rax
movsd 0x8(%rax), %xmm1
movq 0x1f8(%rsp), %rax
subsd 0x20(%rax), %xmm1
movq 0x1f8(%rsp), %rax
movsd 0x18(%rax), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x8edd3
movq 0x1f8(%rsp), %rax
movsd 0x8(%rax), %xmm0
movq 0x1f8(%rsp), %rax
subsd 0x20(%rax), %xmm0
movsd %xmm0, 0xe8(%rsp)
jmp 0x8ede9
movq 0x1f8(%rsp), %rax
movsd 0x18(%rax), %xmm0
movsd %xmm0, 0xe8(%rsp)
movsd 0xe8(%rsp), %xmm1
movq 0x1f8(%rsp), %rax
movsd 0x10(%rax), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x8ee1d
movq 0x1f8(%rsp), %rax
movsd 0x10(%rax), %xmm0
movsd %xmm0, 0xe0(%rsp)
jmp 0x8ee97
movq 0x1f8(%rsp), %rax
movsd 0x8(%rax), %xmm1
movq 0x1f8(%rsp), %rax
subsd 0x20(%rax), %xmm1
movq 0x1f8(%rsp), %rax
movsd 0x18(%rax), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x8ee6f
movq 0x1f8(%rsp), %rax
movsd 0x8(%rax), %xmm0
movq 0x1f8(%rsp), %rax
subsd 0x20(%rax), %xmm0
movsd %xmm0, 0xd8(%rsp)
jmp 0x8ee85
movq 0x1f8(%rsp), %rax
movsd 0x18(%rax), %xmm0
movsd %xmm0, 0xd8(%rsp)
movsd 0xd8(%rsp), %xmm0
movsd %xmm0, 0xe0(%rsp)
movsd 0xe0(%rsp), %xmm0
movq 0x1f8(%rsp), %rax
movsd %xmm0, 0x8(%rax)
jmp 0x8eeaf
movq 0x210(%rsp), %rdi
movq 0x208(%rsp), %rsi
movq 0x250(%rsp), %r8
movl 0x8c(%r8), %edx
movl 0x278(%rsp), %ecx
addq $0x470, %r8             # imm = 0x470
movq 0x260(%rsp), %r9
movq 0x268(%rsp), %r10
movsd 0x148(%rsp), %xmm0
movsd 0x150(%rsp), %xmm1
movq %rsp, %rax
movq %r10, (%rax)
callq 0x5e910
cmpl $0x0, %eax
je 0x8f2a3
movq 0x1f8(%rsp), %rax
movl (%rax), %eax
movl %eax, 0xd4(%rsp)
testl %eax, %eax
je 0x8ef52
jmp 0x8ef29
movl 0xd4(%rsp), %eax
subl $0x1, %eax
je 0x8f047
jmp 0x8ef3b
movl 0xd4(%rsp), %eax
subl $0x2, %eax
je 0x8f175
jmp 0x8ef4d
jmp 0x8f2a1
movq 0x1f8(%rsp), %rax
movl 0x8(%rax), %eax
movq 0x1f8(%rsp), %rcx
addl 0x20(%rcx), %eax
movq 0x1f8(%rsp), %rcx
cmpl 0x18(%rcx), %eax
jge 0x8ef94
movq 0x1f8(%rsp), %rax
movl 0x8(%rax), %eax
movq 0x1f8(%rsp), %rcx
addl 0x20(%rcx), %eax
movl %eax, 0xd0(%rsp)
jmp 0x8efa6
movq 0x1f8(%rsp), %rax
movl 0x18(%rax), %eax
movl %eax, 0xd0(%rsp)
movl 0xd0(%rsp), %eax
movq 0x1f8(%rsp), %rcx
cmpl 0x10(%rcx), %eax
jge 0x8efce
movq 0x1f8(%rsp), %rax
movl 0x10(%rax), %eax
movl %eax, 0xcc(%rsp)
jmp 0x8f030
movq 0x1f8(%rsp), %rax
movl 0x8(%rax), %eax
movq 0x1f8(%rsp), %rcx
addl 0x20(%rcx), %eax
movq 0x1f8(%rsp), %rcx
cmpl 0x18(%rcx), %eax
jge 0x8f010
movq 0x1f8(%rsp), %rax
movl 0x8(%rax), %eax
movq 0x1f8(%rsp), %rcx
addl 0x20(%rcx), %eax
movl %eax, 0xc8(%rsp)
jmp 0x8f022
movq 0x1f8(%rsp), %rax
movl 0x18(%rax), %eax
movl %eax, 0xc8(%rsp)
movl 0xc8(%rsp), %eax
movl %eax, 0xcc(%rsp)
movl 0xcc(%rsp), %ecx
movq 0x1f8(%rsp), %rax
movl %ecx, 0x8(%rax)
jmp 0x8f2a1
movq 0x1f8(%rsp), %rax
movss 0x8(%rax), %xmm1
movq 0x1f8(%rsp), %rax
addss 0x20(%rax), %xmm1
movq 0x1f8(%rsp), %rax
movss 0x18(%rax), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x8f098
movq 0x1f8(%rsp), %rax
movss 0x8(%rax), %xmm0
movq 0x1f8(%rsp), %rax
addss 0x20(%rax), %xmm0
movss %xmm0, 0xc4(%rsp)
jmp 0x8f0ae
movq 0x1f8(%rsp), %rax
movss 0x18(%rax), %xmm0
movss %xmm0, 0xc4(%rsp)
movss 0xc4(%rsp), %xmm1
movq 0x1f8(%rsp), %rax
movss 0x10(%rax), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x8f0e1
movq 0x1f8(%rsp), %rax
movss 0x10(%rax), %xmm0
movss %xmm0, 0xc0(%rsp)
jmp 0x8f15a
movq 0x1f8(%rsp), %rax
movss 0x8(%rax), %xmm1
movq 0x1f8(%rsp), %rax
addss 0x20(%rax), %xmm1
movq 0x1f8(%rsp), %rax
movss 0x18(%rax), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x8f132
movq 0x1f8(%rsp), %rax
movss 0x8(%rax), %xmm0
movq 0x1f8(%rsp), %rax
addss 0x20(%rax), %xmm0
movss %xmm0, 0xbc(%rsp)
jmp 0x8f148
movq 0x1f8(%rsp), %rax
movss 0x18(%rax), %xmm0
movss %xmm0, 0xbc(%rsp)
movss 0xbc(%rsp), %xmm0
movss %xmm0, 0xc0(%rsp)
movss 0xc0(%rsp), %xmm0
movq 0x1f8(%rsp), %rax
movss %xmm0, 0x8(%rax)
jmp 0x8f2a1
movq 0x1f8(%rsp), %rax
movsd 0x8(%rax), %xmm1
movq 0x1f8(%rsp), %rax
addsd 0x20(%rax), %xmm1
movq 0x1f8(%rsp), %rax
movsd 0x18(%rax), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x8f1c7
movq 0x1f8(%rsp), %rax
movsd 0x8(%rax), %xmm0
movq 0x1f8(%rsp), %rax
addsd 0x20(%rax), %xmm0
movsd %xmm0, 0xb0(%rsp)
jmp 0x8f1dd
movq 0x1f8(%rsp), %rax
movsd 0x18(%rax), %xmm0
movsd %xmm0, 0xb0(%rsp)
movsd 0xb0(%rsp), %xmm1
movq 0x1f8(%rsp), %rax
movsd 0x10(%rax), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x8f211
movq 0x1f8(%rsp), %rax
movsd 0x10(%rax), %xmm0
movsd %xmm0, 0xa8(%rsp)
jmp 0x8f28b
movq 0x1f8(%rsp), %rax
movsd 0x8(%rax), %xmm1
movq 0x1f8(%rsp), %rax
addsd 0x20(%rax), %xmm1
movq 0x1f8(%rsp), %rax
movsd 0x18(%rax), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x8f263
movq 0x1f8(%rsp), %rax
movsd 0x8(%rax), %xmm0
movq 0x1f8(%rsp), %rax
addsd 0x20(%rax), %xmm0
movsd %xmm0, 0xa0(%rsp)
jmp 0x8f279
movq 0x1f8(%rsp), %rax
movsd 0x18(%rax), %xmm0
movsd %xmm0, 0xa0(%rsp)
movsd 0xa0(%rsp), %xmm0
movsd %xmm0, 0xa8(%rsp)
movsd 0xa8(%rsp), %xmm0
movq 0x1f8(%rsp), %rax
movsd %xmm0, 0x8(%rax)
jmp 0x8f2a3
cmpl $0x1, 0x1c8(%rsp)
je 0x8f346
movq 0x230(%rsp), %rax
cmpl $0x1, (%rax)
jne 0x8f346
movq 0x1e8(%rsp), %rdi
movq 0x170(%rsp), %rsi
movq 0x168(%rsp), %rax
movslq (%rax), %rdx
callq 0x2f750
movq 0x1e8(%rsp), %rdi
movq 0x168(%rsp), %rax
movl (%rax), %esi
callq 0x137e0
movl %eax, %ecx
movq 0x238(%rsp), %rax
movl %ecx, (%rax)
movq 0x168(%rsp), %rax
movl (%rax), %ecx
movq 0x1e0(%rsp), %rax
movl %ecx, (%rax)
movq 0x1e0(%rsp), %rax
movq %rax, 0x168(%rsp)
movq 0x1e8(%rsp), %rax
movq %rax, 0x170(%rsp)
movl $0x0, 0x1cc(%rsp)
jmp 0x8f360
movq 0x230(%rsp), %rax
cmpl $0x1, (%rax)
sete %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, 0x1cc(%rsp)
movq 0x270(%rsp), %rdi
movl 0x258(%rsp), %eax
movq 0x1d0(%rsp,%rax,8), %rdx
xorl %esi, %esi
callq 0x704a0
movl 0x1cc(%rsp), %eax
movb %al, %cl
movq 0x270(%rsp), %rax
movb %cl, 0xb9(%rax)
movq 0x168(%rsp), %rax
movl (%rax), %ecx
movq 0x270(%rsp), %rax
movl %ecx, 0x90(%rax)
movq 0x238(%rsp), %rax
movl (%rax), %eax
movq 0x168(%rsp), %rcx
cmpl (%rcx), %eax
jge 0x8f3d6
movq 0x238(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x9c(%rsp)
jmp 0x8f3e7
movq 0x168(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x9c(%rsp)
movl 0x9c(%rsp), %eax
cmpl $0x0, %eax
jge 0x8f3fe
xorl %eax, %eax
movl %eax, 0x98(%rsp)
jmp 0x8f446
movq 0x238(%rsp), %rax
movl (%rax), %eax
movq 0x168(%rsp), %rcx
cmpl (%rcx), %eax
jge 0x8f427
movq 0x238(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x94(%rsp)
jmp 0x8f438
movq 0x168(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x94(%rsp)
movl 0x94(%rsp), %eax
movl %eax, 0x98(%rsp)
movl 0x98(%rsp), %ecx
movq 0x270(%rsp), %rax
movl %ecx, 0xa8(%rax)
movq 0x240(%rsp), %rax
movl (%rax), %eax
movq 0x168(%rsp), %rcx
cmpl (%rcx), %eax
jge 0x8f484
movq 0x240(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x90(%rsp)
jmp 0x8f495
movq 0x168(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x90(%rsp)
movl 0x90(%rsp), %eax
cmpl $0x0, %eax
jge 0x8f4ac
xorl %eax, %eax
movl %eax, 0x8c(%rsp)
jmp 0x8f4f4
movq 0x240(%rsp), %rax
movl (%rax), %eax
movq 0x168(%rsp), %rcx
cmpl (%rcx), %eax
jge 0x8f4d5
movq 0x240(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x88(%rsp)
jmp 0x8f4e6
movq 0x168(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x88(%rsp)
movl 0x88(%rsp), %eax
movl %eax, 0x8c(%rsp)
movl 0x8c(%rsp), %ecx
movq 0x270(%rsp), %rax
movl %ecx, 0xac(%rax)
movq 0x248(%rsp), %rax
movl (%rax), %eax
movq 0x168(%rsp), %rcx
cmpl (%rcx), %eax
jge 0x8f532
movq 0x248(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x84(%rsp)
jmp 0x8f543
movq 0x168(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x84(%rsp)
movl 0x84(%rsp), %eax
cmpl $0x0, %eax
jge 0x8f55a
xorl %eax, %eax
movl %eax, 0x80(%rsp)
jmp 0x8f599
movq 0x248(%rsp), %rax
movl (%rax), %eax
movq 0x168(%rsp), %rcx
cmpl (%rcx), %eax
jge 0x8f580
movq 0x248(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x7c(%rsp)
jmp 0x8f58e
movq 0x168(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x7c(%rsp)
movl 0x7c(%rsp), %eax
movl %eax, 0x80(%rsp)
movl 0x80(%rsp), %ecx
movq 0x270(%rsp), %rax
movl %ecx, 0xb0(%rax)
movq 0x168(%rsp), %rax
movslq (%rax), %rcx
movq 0x270(%rsp), %rax
movq %rcx, 0x70(%rax)
movq 0x270(%rsp), %rax
movq $0x40, 0x60(%rax)
movq 0x170(%rsp), %rcx
movq 0x270(%rsp), %rax
movq %rcx, 0x58(%rax)
movq 0x270(%rsp), %rax
movq $0x40, 0x88(%rax)
movq 0x270(%rsp), %rax
movb $0x1, 0xb4(%rax)
movq 0x210(%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0x208(%rsp), %rax
movq %rax, 0x58(%rsp)
movl 0x258(%rsp), %eax
movq 0x1d0(%rsp,%rax,8), %rax
movq %rax, 0x60(%rsp)
movq 0x270(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x250(%rsp), %rax
addq $0xa8, %rax
movq %rax, 0x70(%rsp)
movq 0x230(%rsp), %rax
cmpl $0x1, (%rax)
jne 0x8f675
movq 0x260(%rsp), %rax
movq %rax, 0x48(%rsp)
jmp 0x8f67e
xorl %eax, %eax
movq %rax, 0x48(%rsp)
jmp 0x8f67e
movq 0x70(%rsp), %r9
movq 0x68(%rsp), %r8
movq 0x60(%rsp), %rcx
movq 0x58(%rsp), %rsi
movq 0x50(%rsp), %rdi
movq 0x48(%rsp), %rdx
movq 0x268(%rsp), %r10
movsd 0x128(%rsp), %xmm0
movsd 0x130(%rsp), %xmm1
movq %rsp, %rax
movq %r10, 0x8(%rax)
movq %rdx, (%rax)
movl $0x262, %edx            # imm = 0x262
callq 0x71410
movq 0x270(%rsp), %rax
movl 0x90(%rax), %ecx
movq 0x168(%rsp), %rax
movl %ecx, (%rax)
movq 0x270(%rsp), %rax
movl 0xa8(%rax), %ecx
movq 0x238(%rsp), %rax
movl %ecx, (%rax)
movq 0x270(%rsp), %rax
movl 0xac(%rax), %ecx
movq 0x240(%rsp), %rax
movl %ecx, (%rax)
movq 0x270(%rsp), %rax
movl 0xb0(%rax), %ecx
movq 0x248(%rsp), %rax
movl %ecx, (%rax)
movq 0x270(%rsp), %rax
movzbl 0xb9(%rax), %eax
cmpl $0x0, %eax
je 0x8f764
movq 0x260(%rsp), %rdi
movl $0x4, %esi
callq 0x13500
cmpl $0x0, %eax
je 0x8f764
movq 0x270(%rsp), %rax
movb $0x0, 0xb9(%rax)
cmpl $0x0, 0x1cc(%rsp)
je 0x8facd
movq 0x270(%rsp), %rax
cmpb $0x0, 0xb9(%rax)
jne 0x8facd
movq 0x230(%rsp), %rax
movl $0x0, (%rax)
movq 0x1e8(%rsp), %rax
movq 0x1e0(%rsp), %rcx
movslq (%rcx), %rcx
movb $0x0, (%rax,%rcx)
movq 0x1f8(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x44(%rsp)
testl %eax, %eax
je 0x8f7e3
jmp 0x8f7c0
movl 0x44(%rsp), %eax
subl $0x1, %eax
je 0x8f8af
jmp 0x8f7cf
movl 0x44(%rsp), %eax
subl $0x2, %eax
je 0x8f9be
jmp 0x8f7de
jmp 0x8facb
movq 0x1e8(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x140c0
movl %eax, %ecx
movq 0x1f8(%rsp), %rax
movl %ecx, 0x8(%rax)
movq 0x1f8(%rsp), %rax
movl 0x8(%rax), %eax
movq 0x1f8(%rsp), %rcx
cmpl 0x18(%rcx), %eax
jge 0x8f82a
movq 0x1f8(%rsp), %rax
movl 0x8(%rax), %eax
movl %eax, 0x40(%rsp)
jmp 0x8f839
movq 0x1f8(%rsp), %rax
movl 0x18(%rax), %eax
movl %eax, 0x40(%rsp)
movl 0x40(%rsp), %eax
movq 0x1f8(%rsp), %rcx
cmpl 0x10(%rcx), %eax
jge 0x8f85b
movq 0x1f8(%rsp), %rax
movl 0x10(%rax), %eax
movl %eax, 0x3c(%rsp)
jmp 0x8f89b
movq 0x1f8(%rsp), %rax
movl 0x8(%rax), %eax
movq 0x1f8(%rsp), %rcx
cmpl 0x18(%rcx), %eax
jge 0x8f884
movq 0x1f8(%rsp), %rax
movl 0x8(%rax), %eax
movl %eax, 0x38(%rsp)
jmp 0x8f893
movq 0x1f8(%rsp), %rax
movl 0x18(%rax), %eax
movl %eax, 0x38(%rsp)
movl 0x38(%rsp), %eax
movl %eax, 0x3c(%rsp)
movl 0x3c(%rsp), %ecx
movq 0x1f8(%rsp), %rax
movl %ecx, 0x8(%rax)
jmp 0x8facb
movq 0x1e8(%rsp), %rdi
movl $0x2, %esi
callq 0x90080
movq 0x1e8(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x15360
movq 0x1f8(%rsp), %rax
movss %xmm0, 0x8(%rax)
movq 0x1f8(%rsp), %rax
movss 0x8(%rax), %xmm1
movq 0x1f8(%rsp), %rax
movss 0x18(%rax), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x8f913
movq 0x1f8(%rsp), %rax
movss 0x8(%rax), %xmm0
movss %xmm0, 0x34(%rsp)
jmp 0x8f926
movq 0x1f8(%rsp), %rax
movss 0x18(%rax), %xmm0
movss %xmm0, 0x34(%rsp)
movss 0x34(%rsp), %xmm1
movq 0x1f8(%rsp), %rax
movss 0x10(%rax), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x8f953
movq 0x1f8(%rsp), %rax
movss 0x10(%rax), %xmm0
movss %xmm0, 0x30(%rsp)
jmp 0x8f9a6
movq 0x1f8(%rsp), %rax
movss 0x8(%rax), %xmm1
movq 0x1f8(%rsp), %rax
movss 0x18(%rax), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x8f987
movq 0x1f8(%rsp), %rax
movss 0x8(%rax), %xmm0
movss %xmm0, 0x2c(%rsp)
jmp 0x8f99a
movq 0x1f8(%rsp), %rax
movss 0x18(%rax), %xmm0
movss %xmm0, 0x2c(%rsp)
movss 0x2c(%rsp), %xmm0
movss %xmm0, 0x30(%rsp)
movss 0x30(%rsp), %xmm0
movq 0x1f8(%rsp), %rax
movss %xmm0, 0x8(%rax)
jmp 0x8facb
movq 0x1e8(%rsp), %rdi
movl $0x2, %esi
callq 0x90080
movq 0x1e8(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x153b0
movq 0x1f8(%rsp), %rax
movsd %xmm0, 0x8(%rax)
movq 0x1f8(%rsp), %rax
movsd 0x8(%rax), %xmm1
movq 0x1f8(%rsp), %rax
movsd 0x18(%rax), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x8fa23
movq 0x1f8(%rsp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x20(%rsp)
jmp 0x8fa36
movq 0x1f8(%rsp), %rax
movsd 0x18(%rax), %xmm0
movsd %xmm0, 0x20(%rsp)
movsd 0x20(%rsp), %xmm1
movq 0x1f8(%rsp), %rax
movsd 0x10(%rax), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x8fa64
movq 0x1f8(%rsp), %rax
movsd 0x10(%rax), %xmm0
movsd %xmm0, 0x18(%rsp)
jmp 0x8fab8
movq 0x1f8(%rsp), %rax
movsd 0x8(%rax), %xmm1
movq 0x1f8(%rsp), %rax
movsd 0x18(%rax), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x8fa99
movq 0x1f8(%rsp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x10(%rsp)
jmp 0x8faac
movq 0x1f8(%rsp), %rax
movsd 0x18(%rax), %xmm0
movsd %xmm0, 0x10(%rsp)
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x18(%rsp)
movsd 0x18(%rsp), %xmm0
movq 0x1f8(%rsp), %rax
movsd %xmm0, 0x8(%rax)
jmp 0x8facd
addq $0x228, %rsp            # imm = 0x228
retq
nopw %cs:(%rax,%rax)