// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonnuklear/src/./nuklear/nuklear.h
// Function: nk_combo_callback
NK_API int
nk_combo_callback(struct nk_context *ctx, void(*item_getter)(void*, int, const char**),
    void *userdata, int selected, int count, int item_height, struct nk_vec2 size)
{
    int i;
    int max_height;
    struct nk_vec2 item_spacing;
    struct nk_vec2 window_padding;
    const char *item;

    NK_ASSERT(ctx);
    NK_ASSERT(item_getter);
    if (!ctx || !item_getter)
        return selected;

    /* calculate popup window */
    item_spacing = ctx->style.window.spacing;
    window_padding = nk_panel_get_padding(&ctx->style, ctx->current->layout->type);
    max_height = count * item_height + count * (int)item_spacing.y;
    max_height += (int)item_spacing.y * 2 + (int)window_padding.y * 2;
    size.y = NK_MIN(size.y, (float)max_height);

    item_getter(userdata, selected, &item);
    if (nk_combo_begin_label(ctx, item, size)) {
        nk_layout_row_dynamic(ctx, (float)item_height, 1);
        for (i = 0; i < count; ++i) {
            item_getter(userdata, i, &item);
            if (nk_combo_item_label(ctx, item, NK_TEXT_LEFT))
                selected = i;
        }
        nk_combo_end(ctx);
    } return selected;
}

// Assembly:
subq $0x68, %rsp
movlpd %xmm0, 0x5c(%rsp)
movq %rdi, 0x50(%rsp)
movq %rsi, 0x48(%rsp)
movq %rdx, 0x40(%rsp)
movl %ecx, 0x3c(%rsp)
movl %r8d, 0x38(%rsp)
movl %r9d, 0x34(%rsp)
cmpq $0x0, 0x50(%rsp)
jne 0x7bfb2
movq 0x4906a(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
leaq 0x35410(%rip), %rsi     # 0xb13a0
leaq 0x35427(%rip), %rdx     # 0xb13be
movl $0x74dd, %ecx           # imm = 0x74DD
movb $0x0, %al
callq 0x13ec0
movq 0x49046(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
callq 0x149a0
jmp 0x7bfb4
jmp 0x7bfb6
cmpq $0x0, 0x48(%rsp)
jne 0x7bff1
movq 0x4902b(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
leaq 0x353d1(%rip), %rsi     # 0xb13a0
leaq 0x353e8(%rip), %rdx     # 0xb13be
movl $0x74de, %ecx           # imm = 0x74DE
movb $0x0, %al
callq 0x13ec0
movq 0x49007(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
callq 0x149a0
jmp 0x7bff3
cmpq $0x0, 0x50(%rsp)
je 0x7c003
cmpq $0x0, 0x48(%rsp)
jne 0x7c010
movl 0x3c(%rsp), %eax
movl %eax, 0x64(%rsp)
jmp 0x7c16f
movq 0x50(%rsp), %rax
movq 0x24b4(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x50(%rsp), %rax
movq %rax, %rdi
addq $0x168, %rdi            # imm = 0x168
movq 0x4780(%rax), %rax
movq 0xa8(%rax), %rax
movl (%rax), %esi
callq 0x5d770
movlpd %xmm0, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq %rax, 0x18(%rsp)
movl 0x38(%rsp), %eax
imull 0x34(%rsp), %eax
movl 0x38(%rsp), %ecx
cvttss2si 0x24(%rsp), %edx
imull %edx, %ecx
addl %ecx, %eax
movl %eax, 0x2c(%rsp)
cvttss2si 0x24(%rsp), %eax
shll %eax
cvttss2si 0x1c(%rsp), %ecx
shll %ecx
addl %ecx, %eax
addl 0x2c(%rsp), %eax
movl %eax, 0x2c(%rsp)
movss 0x60(%rsp), %xmm1
cvtsi2ssl 0x2c(%rsp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x7c0aa
movss 0x60(%rsp), %xmm0
movss %xmm0, 0x4(%rsp)
jmp 0x7c0b6
cvtsi2ssl 0x2c(%rsp), %xmm0
movss %xmm0, 0x4(%rsp)
movss 0x4(%rsp), %xmm0
movss %xmm0, 0x60(%rsp)
movq 0x48(%rsp), %rax
movq 0x40(%rsp), %rdi
movl 0x3c(%rsp), %esi
leaq 0x10(%rsp), %rdx
callq *%rax
movq 0x50(%rsp), %rdi
movq 0x10(%rsp), %rsi
movsd 0x5c(%rsp), %xmm0
callq 0x13250
cmpl $0x0, %eax
je 0x7c167
movq 0x50(%rsp), %rdi
cvtsi2ssl 0x34(%rsp), %xmm0
movl $0x1, %esi
callq 0x13f60
movl $0x0, 0x30(%rsp)
movl 0x30(%rsp), %eax
cmpl 0x38(%rsp), %eax
jge 0x7c15d
movq 0x48(%rsp), %rax
movq 0x40(%rsp), %rdi
movl 0x30(%rsp), %esi
leaq 0x10(%rsp), %rdx
callq *%rax
movq 0x50(%rsp), %rdi
movq 0x10(%rsp), %rsi
movl $0x11, %edx
callq 0x14650
cmpl $0x0, %eax
je 0x7c14e
movl 0x30(%rsp), %eax
movl %eax, 0x3c(%rsp)
jmp 0x7c150
movl 0x30(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x30(%rsp)
jmp 0x7c10e
movq 0x50(%rsp), %rdi
callq 0x150f0
movl 0x3c(%rsp), %eax
movl %eax, 0x64(%rsp)
movl 0x64(%rsp), %eax
addq $0x68, %rsp
retq
nopl (%rax,%rax)