// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonnuklear/src/./nuklear/nuklear.h
// Function: nk_property
NK_LIB void
nk_property(struct nk_context *ctx, const char *name, struct nk_property_variant *variant,
    float inc_per_pixel, const enum nk_property_filter filter)
{
    struct nk_window *win;
    struct nk_panel *layout;
    struct nk_input *in;
    const struct nk_style *style;

    struct nk_rect bounds;
    enum nk_widget_layout_states s;

    int *state = 0;
    nk_hash hash = 0;
    char *buffer = 0;
    int *len = 0;
    int *cursor = 0;
    int *select_begin = 0;
    int *select_end = 0;
    int old_state;

    char dummy_buffer[NK_MAX_NUMBER_BUFFER];
    int dummy_state = NK_PROPERTY_DEFAULT;
    int dummy_length = 0;
    int dummy_cursor = 0;
    int dummy_select_begin = 0;
    int dummy_select_end = 0;

    NK_ASSERT(ctx);
    NK_ASSERT(ctx->current);
    NK_ASSERT(ctx->current->layout);
    if (!ctx || !ctx->current || !ctx->current->layout)
        return;

    win = ctx->current;
    layout = win->layout;
    style = &ctx->style;
    s = nk_widget(&bounds, ctx);
    if (!s) return;

    /* calculate hash from name */
    if (name[0] == '#') {
        hash = nk_murmur_hash(name, (int)nk_strlen(name), win->property.seq++);
        name++; /* special number hash */
    } else hash = nk_murmur_hash(name, (int)nk_strlen(name), 42);

    /* check if property is currently hot item */
    if (win->property.active && hash == win->property.name) {
        buffer = win->property.buffer;
        len = &win->property.length;
        cursor = &win->property.cursor;
        state = &win->property.state;
        select_begin = &win->property.select_start;
        select_end = &win->property.select_end;
    } else {
        buffer = dummy_buffer;
        len = &dummy_length;
        cursor = &dummy_cursor;
        state = &dummy_state;
        select_begin =  &dummy_select_begin;
        select_end = &dummy_select_end;
    }

    /* execute property widget */
    old_state = *state;
    ctx->text_edit.clip = ctx->clip;
    in = ((s == NK_WIDGET_ROM && !win->property.active) ||
        layout->flags & NK_WINDOW_ROM || s == NK_WIDGET_DISABLED) ? 0 : &ctx->input;
    nk_do_property(&ctx->last_widget_state, &win->buffer, bounds, name,
        variant, inc_per_pixel, buffer, len, state, cursor, select_begin,
        select_end, &style->property, filter, in, style->font, &ctx->text_edit,
        ctx->button_behavior);

    if (in && *state != NK_PROPERTY_DEFAULT && !win->property.active) {
        /* current property is now hot */
        win->property.active = 1;
        NK_MEMCPY(win->property.buffer, buffer, (nk_size)*len);
        win->property.length = *len;
        win->property.cursor = *cursor;
        win->property.state = *state;
        win->property.name = hash;
        win->property.select_start = *select_begin;
        win->property.select_end = *select_end;
        if (*state == NK_PROPERTY_DRAG) {
            ctx->input.mouse.grab = nk_true;
            ctx->input.mouse.grabbed = nk_true;
        }
    }
    /* check if previously active property is now inactive */
    if (*state == NK_PROPERTY_DEFAULT && old_state != NK_PROPERTY_DEFAULT) {
        if (old_state == NK_PROPERTY_DRAG) {
            ctx->input.mouse.grab = nk_false;
            ctx->input.mouse.grabbed = nk_false;
            ctx->input.mouse.ungrab = nk_true;
        }
        win->property.select_start = 0;
        win->property.select_end = 0;
        win->property.active = 0;
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x178, %rsp            # imm = 0x178
movq %rdi, 0x170(%rsp)
movq %rsi, 0x168(%rsp)
movq %rdx, 0x160(%rsp)
movss %xmm0, 0x15c(%rsp)
movl %ecx, 0x158(%rsp)
movq $0x0, 0x118(%rsp)
movl $0x0, 0x114(%rsp)
movq $0x0, 0x108(%rsp)
movq $0x0, 0x100(%rsp)
movq $0x0, 0xf8(%rsp)
movq $0x0, 0xf0(%rsp)
movq $0x0, 0xe8(%rsp)
movl $0x0, 0x9c(%rsp)
movl $0x0, 0x98(%rsp)
movl $0x0, 0x94(%rsp)
movl $0x0, 0x90(%rsp)
movl $0x0, 0x8c(%rsp)
cmpq $0x0, 0x170(%rsp)
jne 0x74061
movq 0x50fbb(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
leaq 0x3d361(%rip), %rsi     # 0xb13a0
leaq 0x3d378(%rip), %rdx     # 0xb13be
movl $0x6f07, %ecx           # imm = 0x6F07
movb $0x0, %al
callq 0x13ec0
movq 0x50f97(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
callq 0x149a0
jmp 0x74063
jmp 0x74065
movq 0x170(%rsp), %rax
cmpq $0x0, 0x4780(%rax)
jne 0x740aa
movq 0x50f72(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
leaq 0x3d318(%rip), %rsi     # 0xb13a0
leaq 0x3d32f(%rip), %rdx     # 0xb13be
movl $0x6f08, %ecx           # imm = 0x6F08
movb $0x0, %al
callq 0x13ec0
movq 0x50f4e(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
callq 0x149a0
jmp 0x740ac
jmp 0x740ae
movq 0x170(%rsp), %rax
movq 0x4780(%rax), %rax
cmpq $0x0, 0xa8(%rax)
jne 0x740fa
movq 0x50f22(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
leaq 0x3d2c8(%rip), %rsi     # 0xb13a0
leaq 0x3d2df(%rip), %rdx     # 0xb13be
movl $0x6f09, %ecx           # imm = 0x6F09
movb $0x0, %al
callq 0x13ec0
movq 0x50efe(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
callq 0x149a0
jmp 0x740fc
cmpq $0x0, 0x170(%rsp)
je 0x74132
movq 0x170(%rsp), %rax
cmpq $0x0, 0x4780(%rax)
je 0x74132
movq 0x170(%rsp), %rax
movq 0x4780(%rax), %rax
cmpq $0x0, 0xa8(%rax)
jne 0x74137
jmp 0x746c3
movq 0x170(%rsp), %rax
movq 0x4780(%rax), %rax
movq %rax, 0x150(%rsp)
movq 0x150(%rsp), %rax
movq 0xa8(%rax), %rax
movq %rax, 0x148(%rsp)
movq 0x170(%rsp), %rax
addq $0x168, %rax            # imm = 0x168
movq %rax, 0x138(%rsp)
movq 0x170(%rsp), %rsi
leaq 0x128(%rsp), %rdi
callq 0x139c0
movl %eax, 0x124(%rsp)
cmpl $0x0, 0x124(%rsp)
jne 0x741a6
jmp 0x746c3
movq 0x168(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0x74218
movq 0x168(%rsp), %rax
movq %rax, 0x80(%rsp)
movq 0x168(%rsp), %rdi
callq 0x14050
movq 0x80(%rsp), %rdi
movl %eax, %esi
movq 0x150(%rsp), %rax
movl 0x110(%rax), %edx
movl %edx, %ecx
addl $0x1, %ecx
movl %ecx, 0x110(%rax)
callq 0x135e0
movl %eax, 0x114(%rsp)
movq 0x168(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x168(%rsp)
jmp 0x7424a
movq 0x168(%rsp), %rax
movq %rax, 0x78(%rsp)
movq 0x168(%rsp), %rdi
callq 0x14050
movq 0x78(%rsp), %rdi
movl %eax, %esi
movl $0x2a, %edx
callq 0x135e0
movl %eax, 0x114(%rsp)
movq 0x150(%rsp), %rax
cmpl $0x0, 0xb4(%rax)
je 0x74318
movl 0x114(%rsp), %eax
movq 0x150(%rsp), %rcx
cmpl 0x10c(%rcx), %eax
jne 0x74318
movq 0x150(%rsp), %rax
addq $0xb4, %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
movq 0x150(%rsp), %rax
addq $0xb4, %rax
addq $0x48, %rax
movq %rax, 0x100(%rsp)
movq 0x150(%rsp), %rax
addq $0xb4, %rax
addq $0x4c, %rax
movq %rax, 0xf8(%rsp)
movq 0x150(%rsp), %rax
addq $0xb4, %rax
addq $0x64, %rax
movq %rax, 0x118(%rsp)
movq 0x150(%rsp), %rax
addq $0xb4, %rax
addq $0x50, %rax
movq %rax, 0xf0(%rsp)
movq 0x150(%rsp), %rax
addq $0xb4, %rax
addq $0x54, %rax
movq %rax, 0xe8(%rsp)
jmp 0x74378
leaq 0xa0(%rsp), %rax
movq %rax, 0x108(%rsp)
leaq 0x98(%rsp), %rax
movq %rax, 0x100(%rsp)
leaq 0x94(%rsp), %rax
movq %rax, 0xf8(%rsp)
leaq 0x9c(%rsp), %rax
movq %rax, 0x118(%rsp)
leaq 0x90(%rsp), %rax
movq %rax, 0xf0(%rsp)
leaq 0x8c(%rsp), %rax
movq %rax, 0xe8(%rsp)
movq 0x118(%rsp), %rax
movl (%rax), %eax
movl %eax, 0xe4(%rsp)
movq 0x170(%rsp), %rax
movq 0x170(%rsp), %rcx
movq 0x2580(%rcx), %rdx
movq %rdx, 0x31d0(%rax)
movq 0x2588(%rcx), %rdx
movq %rdx, 0x31d8(%rax)
movq 0x2590(%rcx), %rcx
movq %rcx, 0x31e0(%rax)
cmpl $0x2, 0x124(%rsp)
jne 0x743de
movq 0x150(%rsp), %rax
cmpl $0x0, 0xb4(%rax)
je 0x743fd
movq 0x148(%rsp), %rax
movl 0x4(%rax), %eax
andl $0x1000, %eax           # imm = 0x1000
cmpl $0x0, %eax
jne 0x743fd
cmpl $0x3, 0x124(%rsp)
jne 0x74406
xorl %eax, %eax
movq %rax, 0x70(%rsp)
jmp 0x74413
movq 0x170(%rsp), %rax
movq %rax, 0x70(%rsp)
movq 0x70(%rsp), %rax
movq %rax, 0x140(%rsp)
movq 0x170(%rsp), %rax
movq %rax, %rdi
addq $0x2598, %rdi           # imm = 0x2598
movq 0x150(%rsp), %rsi
addq $0x68, %rsi
movq 0x168(%rsp), %rdx
movq 0x160(%rsp), %rcx
movq %rcx, 0x68(%rsp)
movss 0x15c(%rsp), %xmm2
movq 0x108(%rsp), %r8
movq 0x100(%rsp), %r9
movq 0x118(%rsp), %r10
movq 0xf8(%rsp), %r11
movq 0xf0(%rsp), %rbx
movq 0xe8(%rsp), %r14
movq 0x138(%rsp), %rcx
movq %rcx, %r15
addq $0xac0, %r15            # imm = 0xAC0
movl 0x158(%rsp), %ebp
movq 0x140(%rsp), %r12
movq (%rcx), %r13
movq %rax, %rcx
addq $0x31d0, %rcx           # imm = 0x31D0
movq %rcx, 0x60(%rsp)
movl 0x259c(%rax), %ecx
movsd 0x128(%rsp), %xmm0
movsd 0x130(%rsp), %xmm1
movq %rsp, %rax
movq %rax, 0x58(%rsp)
movl %ecx, 0x48(%rax)
movq 0x60(%rsp), %rcx
movq %rcx, 0x40(%rax)
movq 0x68(%rsp), %rcx
movq %r13, 0x38(%rax)
movq %r12, 0x30(%rax)
movl %ebp, 0x28(%rax)
movq %r15, 0x20(%rax)
movq %r14, 0x18(%rax)
movq %rbx, 0x10(%rax)
movq %r11, 0x8(%rax)
movq %r10, (%rax)
callq 0x8e2e0
cmpq $0x0, 0x140(%rsp)
je 0x7463f
movq 0x118(%rsp), %rax
cmpl $0x0, (%rax)
je 0x7463f
movq 0x150(%rsp), %rax
cmpl $0x0, 0xb4(%rax)
jne 0x7463f
movq 0x150(%rsp), %rax
movl $0x1, 0xb4(%rax)
movq 0x150(%rsp), %rdi
addq $0xb4, %rdi
addq $0x8, %rdi
movq 0x108(%rsp), %rsi
movq 0x100(%rsp), %rax
movslq (%rax), %rdx
callq 0x2f750
movq 0x100(%rsp), %rax
movl (%rax), %ecx
movq 0x150(%rsp), %rax
movl %ecx, 0xfc(%rax)
movq 0xf8(%rsp), %rax
movl (%rax), %ecx
movq 0x150(%rsp), %rax
movl %ecx, 0x100(%rax)
movq 0x118(%rsp), %rax
movl (%rax), %ecx
movq 0x150(%rsp), %rax
movl %ecx, 0x118(%rax)
movl 0x114(%rsp), %ecx
movq 0x150(%rsp), %rax
movl %ecx, 0x10c(%rax)
movq 0xf0(%rsp), %rax
movl (%rax), %ecx
movq 0x150(%rsp), %rax
movl %ecx, 0x104(%rax)
movq 0xe8(%rsp), %rax
movl (%rax), %ecx
movq 0x150(%rsp), %rax
movl %ecx, 0x108(%rax)
movq 0x118(%rsp), %rax
cmpl $0x2, (%rax)
jne 0x7463d
movq 0x170(%rsp), %rax
movb $0x1, 0x164(%rax)
movq 0x170(%rsp), %rax
movb $0x1, 0x165(%rax)
jmp 0x7463f
movq 0x118(%rsp), %rax
cmpl $0x0, (%rax)
jne 0x746c3
cmpl $0x0, 0xe4(%rsp)
je 0x746c3
cmpl $0x2, 0xe4(%rsp)
jne 0x7468d
movq 0x170(%rsp), %rax
movb $0x0, 0x164(%rax)
movq 0x170(%rsp), %rax
movb $0x0, 0x165(%rax)
movq 0x170(%rsp), %rax
movb $0x1, 0x166(%rax)
movq 0x150(%rsp), %rax
movl $0x0, 0x104(%rax)
movq 0x150(%rsp), %rax
movl $0x0, 0x108(%rax)
movq 0x150(%rsp), %rax
movl $0x0, 0xb4(%rax)
addq $0x178, %rsp            # imm = 0x178
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nopw %cs:(%rax,%rax)