// File: /workspace/github_c_makefile_star2_O2/arkanis[P]process-map/./deps/raygui.h
// Function: GuiColorBarHue
float GuiColorBarHue(Rectangle bounds, float hue)
{
    GuiControlState state = guiState;
    Rectangle selector = { (float)bounds.x - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW), (float)bounds.y + hue/360.0f*bounds.height - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW), (float)bounds.width + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)*2, (float)GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT) };

    // Update control
    //--------------------------------------------------------------------
    if ((state != GUI_STATE_DISABLED) && !guiLocked)
    {
        Vector2 mousePoint = GetMousePosition();

        if (CheckCollisionPointRec(mousePoint, bounds) ||
            CheckCollisionPointRec(mousePoint, selector))
        {
            if (IsMouseButtonDown(MOUSE_LEFT_BUTTON))
            {
                state = GUI_STATE_PRESSED;
                selector.y = mousePoint.y - selector.height/2;

                hue = (mousePoint.y - bounds.y)*360/bounds.height;
                if (hue <= 0.0f) hue = 0.0f;
                if (hue >= 359.0f) hue = 359.0f;

            }
            else state = GUI_STATE_FOCUSED;

            /*if (IsKeyDown(KEY_UP))
            {
                hue -= 2.0f;
                if (hue <= 0.0f) hue = 0.0f;
            }
            else if (IsKeyDown(KEY_DOWN))
            {
                hue += 2.0f;
                if (hue >= 360.0f) hue = 360.0f;
            }*/
        }
    }
    //--------------------------------------------------------------------

    // Draw control
    //--------------------------------------------------------------------
    if (state != GUI_STATE_DISABLED)
    {
        // Draw hue bar:color bars
        DrawRectangleGradientV((int)bounds.x + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)/2, (int)bounds.y + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)/2, (int)bounds.width - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW), (int)bounds.height/6, Fade(RAYGUI_CLITERAL(Color){ 255,0,0,255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 255,255,0,255 }, guiAlpha));
        DrawRectangleGradientV((int)bounds.x + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)/2, (int)bounds.y + (int)bounds.height/6 + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)/2, (int)bounds.width - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW), (int)bounds.height/6, Fade(RAYGUI_CLITERAL(Color){ 255,255,0,255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 0,255,0,255 }, guiAlpha));
        DrawRectangleGradientV((int)bounds.x + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)/2, (int)bounds.y + 2*((int)bounds.height/6) + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)/2, (int)bounds.width - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW), (int)bounds.height/6, Fade(RAYGUI_CLITERAL(Color){ 0,255,0,255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 0,255,255,255 }, guiAlpha));
        DrawRectangleGradientV((int)bounds.x + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)/2, (int)bounds.y + 3*((int)bounds.height/6) + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)/2, (int)bounds.width - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW), (int)bounds.height/6, Fade(RAYGUI_CLITERAL(Color){ 0,255,255,255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 0,0,255,255 }, guiAlpha));
        DrawRectangleGradientV((int)bounds.x + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)/2, (int)bounds.y + 4*((int)bounds.height/6) + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)/2, (int)bounds.width - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW), (int)bounds.height/6, Fade(RAYGUI_CLITERAL(Color){ 0,0,255,255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 255,0,255,255 }, guiAlpha));
        DrawRectangleGradientV((int)bounds.x + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)/2, (int)bounds.y + 5*((int)bounds.height/6) + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)/2, (int)bounds.width - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW), (int)bounds.height/6 - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW), Fade(RAYGUI_CLITERAL(Color){ 255,0,255,255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 255,0,0,255 }, guiAlpha));
    }
    else DrawRectangleGradientV((int)bounds.x, (int)bounds.y, (int)bounds.width, (int)bounds.height, Fade(Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.1f), guiAlpha), Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), guiAlpha));

    GuiDrawRectangle(bounds, 1, Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), guiAlpha), BLANK);

    // Draw hue bar: selector
    GuiDrawRectangle(selector, 0, BLANK, Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), guiAlpha));
    //--------------------------------------------------------------------

    return hue;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
movaps %xmm2, 0x80(%rsp)
movaps %xmm1, 0x70(%rsp)
movaps %xmm0, 0x40(%rsp)
shufps $0x55, %xmm0, %xmm0     # xmm0 = xmm0[1,1,1,1]
movaps %xmm0, 0x30(%rsp)
shufps $0x55, %xmm1, %xmm1     # xmm1 = xmm1[1,1,1,1]
movaps %xmm1, (%rsp)
movl 0x8d9c7(%rip), %r15d    # 0x9b280
pushq $0xd
popq %rbx
pushq $0x14
popq %rbp
movl %ebx, %edi
movl %ebp, %esi
callq 0x6e93
movl %eax, %r14d
movaps 0x80(%rsp), %xmm0
divss 0x4b769(%rip), %xmm0    # 0x59044
mulss (%rsp), %xmm0
addss 0x30(%rsp), %xmm0
movaps %xmm0, 0x50(%rsp)
movl %ebx, %edi
movl %ebp, %esi
callq 0x6e93
movd %r14d, %xmm0
movd %eax, %xmm1
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
cvtdq2ps %xmm0, %xmm0
movaps 0x40(%rsp), %xmm1
movaps 0x50(%rsp), %xmm2
movlhps %xmm1, %xmm2            # xmm2 = xmm2[0],xmm1[0]
shufps $0xe2, %xmm1, %xmm2     # xmm2 = xmm2[2,0],xmm1[2,3]
subps %xmm0, %xmm2
movaps %xmm2, 0x50(%rsp)
movl %ebx, %edi
movl %ebp, %esi
callq 0x6e93
addl %eax, %eax
cvtsi2ss %eax, %xmm0
addss 0x70(%rsp), %xmm0
movaps %xmm0, 0x90(%rsp)
pushq $0x13
popq %rsi
movl %ebx, %edi
callq 0x6e93
cvtsi2ss %eax, %xmm0
movaps 0x90(%rsp), %xmm1
unpcklps %xmm0, %xmm1            # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
movaps %xmm1, 0x90(%rsp)
cmpl $0x3, %r15d
jne 0xd9f9
cvttss2si 0x40(%rsp), %eax
movl %eax, 0x20(%rsp)
cvttss2si 0x30(%rsp), %r14d
cvttss2si 0x70(%rsp), %r15d
cvttss2si (%rsp), %r12d
pushq $0xd
popq %r13
pushq $0xa
popq %rsi
movl %r13d, %edi
callq 0x6e93
movl %eax, %edi
callq 0x38400
movss 0x4b693(%rip), %xmm0    # 0x59034
movl %eax, %edi
callq 0x380d5
movss 0x8ca90(%rip), %xmm0    # 0x9a440
movl %eax, %edi
callq 0x380d5
movl %eax, %ebp
pushq $0x9
popq %rbx
movl %r13d, %edi
movl %ebx, %esi
callq 0x6e93
movl %eax, %edi
callq 0x38400
movss 0x8ca6b(%rip), %xmm0    # 0x9a440
movl %eax, %edi
callq 0x380d5
movl 0x20(%rsp), %edi
movl %r14d, %esi
movl %r15d, %edx
movl %r12d, %ecx
movl %ebp, %r8d
movl %eax, %r9d
callq 0x27070
jmp 0xde53
cmpb $0x0, 0x8d884(%rip)     # 0x9b284
pushq $0x2
popq %rbx
je 0xda14
movaps 0x40(%rsp), %xmm0
movq %r15, 0x18(%rsp)
jmp 0xdadc
movaps %xmm0, 0x60(%rsp)
callq 0x1fd8b
movaps %xmm0, 0x20(%rsp)
movaps 0x40(%rsp), %xmm1
movaps 0x70(%rsp), %xmm2
callq 0x2a643
testb %al, %al
jne 0xda51
movaps 0x20(%rsp), %xmm0
movaps 0x50(%rsp), %xmm1
movaps 0x90(%rsp), %xmm2
callq 0x2a643
testb %al, %al
je 0xda05
xorl %edi, %edi
callq 0x1fdb3
testb %al, %al
je 0xdab6
movaps 0x20(%rsp), %xmm3
shufps $0x55, %xmm3, %xmm3     # xmm3 = xmm3[1,1,1,1]
movaps 0x60(%rsp), %xmm2
mulss 0x4b5a2(%rip), %xmm2    # 0x59014
addss %xmm3, %xmm2
movaps 0x50(%rsp), %xmm0
movlhps %xmm0, %xmm2            # xmm2 = xmm2[0],xmm0[0]
shufps $0xe2, %xmm0, %xmm2     # xmm2 = xmm2[2,0],xmm0[2,3]
subss 0x30(%rsp), %xmm3
mulss 0x4b5b4(%rip), %xmm3    # 0x59044
divss (%rsp), %xmm3
xorps %xmm0, %xmm0
movaps %xmm3, %xmm1
cmpless %xmm0, %xmm1
andnps %xmm3, %xmm1
ucomiss 0x4b5a2(%rip), %xmm1    # 0x5904c
jae 0xdabb
movaps %xmm1, 0x80(%rsp)
jmp 0xdacb
pushq $0x1
popq %rax
jmp 0xdad2
movss 0x4b589(%rip), %xmm0    # 0x5904c
movaps %xmm0, 0x80(%rsp)
movaps %xmm2, 0x50(%rsp)
movl %ebx, %eax
movq %rax, 0x18(%rsp)
movaps 0x40(%rsp), %xmm0
cvttss2si %xmm0, %r14d
movq %r14, 0x20(%rsp)
pushq $0xd
popq %r15
pushq $0x14
popq %rbp
movl %r15d, %edi
movl %ebp, %esi
callq 0x6e93
cltd
idivl %ebx
movl %ebx, %r12d
leal (%rax,%r14), %ebx
cvttss2si 0x30(%rsp), %r14d
movq %r14, 0x30(%rsp)
movl %r15d, %edi
movl %ebp, %esi
callq 0x6e93
cltd
idivl %r12d
leal (%rax,%r14), %r12d
cvttss2si 0x70(%rsp), %r14d
movl %r14d, 0x60(%rsp)
movl %r15d, %edi
movl %ebp, %esi
callq 0x6e93
movl %r14d, %ebp
subl %eax, %ebp
cvttss2si (%rsp), %eax
pushq $0x6
popq %rcx
cltd
idivl %ecx
movl %eax, %r13d
movss 0x8c8f0(%rip), %xmm0    # 0x9a440
movl $0xff0000ff, %edi       # imm = 0xFF0000FF
callq 0x380d5
movl %eax, %r15d
movss 0x8c8db(%rip), %xmm0    # 0x9a440
movl $0xff00ffff, %edi       # imm = 0xFF00FFFF
callq 0x380d5
movl %ebx, %edi
movl %r12d, %esi
movl %ebp, %edx
movl %r13d, %ecx
movl %r15d, %r8d
movl %eax, %r9d
callq 0x27070
pushq $0xd
popq %r14
movl %r14d, %edi
pushq $0x14
popq %r12
movl %r12d, %esi
callq 0x6e93
cltd
pushq $0x2
popq %rbx
idivl %ebx
movq 0x20(%rsp), %rcx
addl %ecx, %eax
movl %eax, (%rsp)
movl %r14d, %edi
movl %r12d, %esi
callq 0x6e93
cltd
idivl %ebx
movq 0x30(%rsp), %rcx
leal (%rax,%rcx), %ebp
addl %r13d, %ebp
movl %r14d, %edi
movl %r14d, %ebx
movl %r12d, %esi
callq 0x6e93
movl 0x60(%rsp), %r14d
movl %r14d, %r15d
subl %eax, %r15d
movss 0x8c85f(%rip), %xmm0    # 0x9a440
movl $0xff00ffff, %edi       # imm = 0xFF00FFFF
callq 0x380d5
movl %eax, %r12d
movss 0x8c84a(%rip), %xmm0    # 0x9a440
movl $0xff00ff00, %edi       # imm = 0xFF00FF00
callq 0x380d5
movl (%rsp), %edi
movl %ebp, %esi
movl %r15d, %edx
movl %r13d, %ecx
movl %r12d, %r8d
movl %eax, %r9d
callq 0x27070
movl %ebx, %edi
pushq $0x14
popq %rbp
movl %ebp, %esi
callq 0x6e93
cltd
pushq $0x2
popq %r15
idivl %r15d
movq 0x20(%rsp), %rcx
addl %ecx, %eax
movl %eax, (%rsp)
movq 0x30(%rsp), %rax
leal (%rax,%r13,2), %r12d
movl %ebx, %edi
movl %ebp, %esi
callq 0x6e93
cltd
idivl %r15d
addl %eax, %r12d
movl %ebx, %edi
movl %ebp, %esi
callq 0x6e93
subl %eax, %r14d
movss 0x8c7df(%rip), %xmm0    # 0x9a440
movl $0xff00ff00, %edi       # imm = 0xFF00FF00
callq 0x380d5
movl %eax, %r15d
movss 0x8c7ca(%rip), %xmm0    # 0x9a440
movl $0xffffff00, %edi       # imm = 0xFFFFFF00
callq 0x380d5
movl (%rsp), %edi
movl %r12d, %esi
movl %r14d, %edx
movl %r13d, %ecx
movl %r15d, %r8d
movl %eax, %r9d
callq 0x27070
movl %ebx, %ebp
movl %ebx, %edi
pushq $0x14
popq %r15
movl %r15d, %esi
callq 0x6e93
cltd
pushq $0x2
popq %rbx
idivl %ebx
movq 0x20(%rsp), %rcx
addl %ecx, %eax
movl %eax, (%rsp)
leal (%r13,%r13,2), %r12d
movq %r13, %r14
movl %ebp, %edi
movl %r15d, %esi
movl %r15d, %r13d
callq 0x6e93
cltd
idivl %ebx
movq 0x30(%rsp), %rbx
addl %ebx, %eax
addl %eax, %r12d
movl %ebp, %edi
movl %r15d, %esi
callq 0x6e93
movl 0x60(%rsp), %ebp
subl %eax, %ebp
movss 0x8c74f(%rip), %xmm0    # 0x9a440
movl $0xffffff00, %edi       # imm = 0xFFFFFF00
callq 0x380d5
movl %eax, %r15d
movss 0x8c73a(%rip), %xmm0    # 0x9a440
movl $0xffff0000, %edi       # imm = 0xFFFF0000
callq 0x380d5
movl (%rsp), %edi
movl %r12d, %esi
movl %ebp, %edx
movl %r14d, %ecx
movl %r15d, %r8d
movl %eax, %r9d
callq 0x27070
pushq $0xd
popq %r15
movl %r15d, %edi
movl %r13d, %ebp
movl %r13d, %esi
callq 0x6e93
cltd
pushq $0x2
popq %r13
idivl %r13d
movq 0x20(%rsp), %rcx
addl %ecx, %eax
movl %eax, (%rsp)
leal (%rbx,%r14,4), %r12d
movq %r14, %rbx
movl %r15d, %edi
movl %ebp, %esi
callq 0x6e93
cltd
idivl %r13d
addl %eax, %r12d
movl %r15d, %edi
movl %r15d, %r14d
movl %ebp, %esi
callq 0x6e93
movl 0x60(%rsp), %ebp
subl %eax, %ebp
movss 0x8c6c3(%rip), %xmm0    # 0x9a440
movl $0xffff0000, %edi       # imm = 0xFFFF0000
callq 0x380d5
movl %eax, %r15d
movss 0x8c6ae(%rip), %xmm0    # 0x9a440
movl $0xffff00ff, %edi       # imm = 0xFFFF00FF
callq 0x380d5
movl (%rsp), %edi
movl %r12d, %esi
movl %ebp, %edx
movq %rbx, %r13
movl %r13d, %ecx
movl %r15d, %r8d
movl %eax, %r9d
callq 0x27070
movl %r14d, %edi
pushq $0x14
popq %rbp
movl %ebp, %esi
callq 0x6e93
cltd
pushq $0x2
popq %r12
idivl %r12d
movq 0x20(%rsp), %r15
addl %eax, %r15d
leal (%rbx,%rbx,4), %ebx
movl %r14d, %edi
movl %ebp, %esi
callq 0x6e93
cltd
idivl %r12d
movq 0x30(%rsp), %r14
addl %eax, %r14d
addl %ebx, %r14d
pushq $0xd
popq %rbx
movl %ebx, %edi
movl %ebp, %esi
callq 0x6e93
movl 0x60(%rsp), %r12d
subl %eax, %r12d
movl %ebx, %edi
movl %ebp, %esi
callq 0x6e93
subl %eax, %r13d
movss 0x8c62a(%rip), %xmm0    # 0x9a440
movl $0xffff00ff, %edi       # imm = 0xFFFF00FF
callq 0x380d5
movl %eax, %ebx
movss 0x8c616(%rip), %xmm0    # 0x9a440
movl $0xff0000ff, %edi       # imm = 0xFF0000FF
callq 0x380d5
movl %r15d, %edi
movl %r14d, %esi
movl %r12d, %edx
movl %r13d, %ecx
movl %ebx, %r8d
movl %eax, %r9d
callq 0x27070
movq 0x18(%rsp), %rax
leal (%rax,%rax,2), %ebx
pushq $0xd
popq %rbp
movl %ebp, %edi
movl %ebx, %esi
callq 0x6e93
movl %eax, %edi
callq 0x38400
movss 0x8c5d2(%rip), %xmm0    # 0x9a440
movl %eax, %edi
callq 0x380d5
pushq $0x1
popq %rdi
movaps 0x40(%rsp), %xmm0
movaps 0x70(%rsp), %xmm1
movl %eax, %esi
xorl %edx, %edx
callq 0x7476
movl %ebp, %edi
movl %ebx, %esi
callq 0x6e93
movl %eax, %edi
callq 0x38400
movss 0x8c59d(%rip), %xmm0    # 0x9a440
movl %eax, %edi
callq 0x380d5
movaps 0x50(%rsp), %xmm0
movaps 0x90(%rsp), %xmm1
xorl %edi, %edi
xorl %esi, %esi
movl %eax, %edx
callq 0x7476
movaps 0x80(%rsp), %xmm0
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq