// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonnuklear/src/./nuklear/nuklear.h
// Function: nk_hsva_colorf
NK_API struct nk_colorf
nk_hsva_colorf(float h, float s, float v, float a)
{
    int i;
    float p, q, t, f;
    struct nk_colorf out = {0,0,0,0};
    if (s <= 0.0f) {
        out.r = v; out.g = v; out.b = v; out.a = a;
        return out;
    }
    h = h / (60.0f/360.0f);
    i = (int)h;
    f = h - (float)i;
    p = v * (1.0f - s);
    q = v * (1.0f - (s * f));
    t = v * (1.0f - s * (1.0f - f));

    switch (i) {
    case 0: default: out.r = v; out.g = t; out.b = p; break;
    case 1: out.r = q; out.g = v; out.b = p; break;
    case 2: out.r = p; out.g = v; out.b = t; break;
    case 3: out.r = p; out.g = q; out.b = v; break;
    case 4: out.r = t; out.g = p; out.b = v; break;
    case 5: out.r = v; out.g = p; out.b = q; break;}
    out.a = a;
    return out;
}

// Assembly:
subq $0x48, %rsp
movss %xmm0, 0x34(%rsp)
movss %xmm1, 0x30(%rsp)
movss %xmm2, 0x2c(%rsp)
movss %xmm3, 0x28(%rsp)
leaq 0x38(%rsp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x13c40
xorps %xmm0, %xmm0
ucomiss 0x30(%rsp), %xmm0
jb 0x2db6c
movss 0x2c(%rsp), %xmm0
movss %xmm0, 0x38(%rsp)
movss 0x2c(%rsp), %xmm0
movss %xmm0, 0x3c(%rsp)
movss 0x2c(%rsp), %xmm0
movss %xmm0, 0x40(%rsp)
movss 0x28(%rsp), %xmm0
movss %xmm0, 0x44(%rsp)
jmp 0x2dd35
movss 0x34(%rsp), %xmm0
movss 0x7f976(%rip), %xmm1    # 0xad4f0
divss %xmm1, %xmm0
movss %xmm0, 0x34(%rsp)
cvttss2si 0x34(%rsp), %eax
movl %eax, 0x24(%rsp)
movss 0x34(%rsp), %xmm0
cvtsi2ssl 0x24(%rsp), %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0x14(%rsp)
movss 0x2c(%rsp), %xmm0
movss 0x30(%rsp), %xmm3
movss 0x7f930(%rip), %xmm1    # 0xad4e8
movaps %xmm1, %xmm2
subss %xmm3, %xmm2
mulss %xmm2, %xmm0
movss %xmm0, 0x20(%rsp)
movss 0x2c(%rsp), %xmm0
movss 0x30(%rsp), %xmm3
movss 0x14(%rsp), %xmm2
mulss %xmm2, %xmm3
movaps %xmm1, %xmm2
subss %xmm3, %xmm2
mulss %xmm2, %xmm0
movss %xmm0, 0x1c(%rsp)
movss 0x2c(%rsp), %xmm0
movss 0x30(%rsp), %xmm2
movss 0x14(%rsp), %xmm4
movaps %xmm1, %xmm3
subss %xmm4, %xmm3
mulss %xmm3, %xmm2
subss %xmm2, %xmm1
mulss %xmm1, %xmm0
movss %xmm0, 0x18(%rsp)
movl 0x24(%rsp), %eax
movq %rax, 0x8(%rsp)
subq $0x5, %rax
ja 0x2dc41
movq 0x8(%rsp), %rax
leaq 0x7f9da(%rip), %rcx     # 0xad610
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
jmp 0x2dc41
movss 0x2c(%rsp), %xmm0
movss %xmm0, 0x38(%rsp)
movss 0x18(%rsp), %xmm0
movss %xmm0, 0x3c(%rsp)
movss 0x20(%rsp), %xmm0
movss %xmm0, 0x40(%rsp)
jmp 0x2dd29
movss 0x1c(%rsp), %xmm0
movss %xmm0, 0x38(%rsp)
movss 0x2c(%rsp), %xmm0
movss %xmm0, 0x3c(%rsp)
movss 0x20(%rsp), %xmm0
movss %xmm0, 0x40(%rsp)
jmp 0x2dd29
movss 0x20(%rsp), %xmm0
movss %xmm0, 0x38(%rsp)
movss 0x2c(%rsp), %xmm0
movss %xmm0, 0x3c(%rsp)
movss 0x18(%rsp), %xmm0
movss %xmm0, 0x40(%rsp)
jmp 0x2dd29
movss 0x20(%rsp), %xmm0
movss %xmm0, 0x38(%rsp)
movss 0x1c(%rsp), %xmm0
movss %xmm0, 0x3c(%rsp)
movss 0x2c(%rsp), %xmm0
movss %xmm0, 0x40(%rsp)
jmp 0x2dd29
movss 0x18(%rsp), %xmm0
movss %xmm0, 0x38(%rsp)
movss 0x20(%rsp), %xmm0
movss %xmm0, 0x3c(%rsp)
movss 0x2c(%rsp), %xmm0
movss %xmm0, 0x40(%rsp)
jmp 0x2dd29
movss 0x2c(%rsp), %xmm0
movss %xmm0, 0x38(%rsp)
movss 0x20(%rsp), %xmm0
movss %xmm0, 0x3c(%rsp)
movss 0x1c(%rsp), %xmm0
movss %xmm0, 0x40(%rsp)
movss 0x28(%rsp), %xmm0
movss %xmm0, 0x44(%rsp)
movsd 0x38(%rsp), %xmm0
movsd 0x40(%rsp), %xmm1
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)