// File: /workspace/github_c_makefile_star2_O3/arkanis[P]process-map/./deps/raygui.h
// Function: GuiCheckBox
bool GuiCheckBox(Rectangle bounds, const char *text, bool checked)
{
    GuiControlState state = guiState;

    Rectangle textBounds = { 0 };

    if (text != NULL)
    {
        textBounds.width = (float)GetTextWidth(text);
        textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE);
        textBounds.x = bounds.x + bounds.width + GuiGetStyle(CHECKBOX, TEXT_PADDING);
        textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2;
        if (GuiGetStyle(CHECKBOX, TEXT_ALIGNMENT) == GUI_TEXT_ALIGN_LEFT) textBounds.x = bounds.x - textBounds.width - GuiGetStyle(CHECKBOX, TEXT_PADDING);
    }

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

        Rectangle totalBounds = {
            (GuiGetStyle(CHECKBOX, TEXT_ALIGNMENT) == GUI_TEXT_ALIGN_LEFT)? textBounds.x : bounds.x,
            bounds.y,
            bounds.width + textBounds.width + GuiGetStyle(CHECKBOX, TEXT_PADDING),
            bounds.height,
        };

        // Check checkbox state
        if (CheckCollisionPointRec(mousePoint, totalBounds))
        {
            if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) state = GUI_STATE_PRESSED;
            else state = GUI_STATE_FOCUSED;

            if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) checked = !checked;
        }
    }
    //--------------------------------------------------------------------

    // Draw control
    //--------------------------------------------------------------------
    GuiDrawRectangle(bounds, GuiGetStyle(CHECKBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(CHECKBOX, BORDER + (state*3))), guiAlpha), BLANK);

    if (checked)
    {
        Rectangle check = { bounds.x + GuiGetStyle(CHECKBOX, BORDER_WIDTH) + GuiGetStyle(CHECKBOX, CHECK_PADDING),
                            bounds.y + GuiGetStyle(CHECKBOX, BORDER_WIDTH) + GuiGetStyle(CHECKBOX, CHECK_PADDING),
                            bounds.width - 2*(GuiGetStyle(CHECKBOX, BORDER_WIDTH) + GuiGetStyle(CHECKBOX, CHECK_PADDING)),
                            bounds.height - 2*(GuiGetStyle(CHECKBOX, BORDER_WIDTH) + GuiGetStyle(CHECKBOX, CHECK_PADDING)) };
        GuiDrawRectangle(check, 0, BLANK, Fade(GetColor(GuiGetStyle(CHECKBOX, TEXT + state*3)), guiAlpha));
    }

    if (text != NULL) GuiDrawText(text, textBounds, (GuiGetStyle(CHECKBOX, TEXT_ALIGNMENT) == GUI_TEXT_ALIGN_RIGHT)? GUI_TEXT_ALIGN_LEFT : GUI_TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(LABEL, TEXT + (state*3))), guiAlpha));
    //--------------------------------------------------------------------

    return checked;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0xa0, %rsp
movl %esi, %ebx
movq %rdi, %r14
movaps %xmm1, (%rsp)
movaps %xmm0, 0x10(%rsp)
movl 0x9905a(%rip), %r15d    # 0xa4250
shufps $0x55, %xmm1, %xmm1     # xmm1 = xmm1[1,1,1,1]
movaps %xmm1, 0x50(%rsp)
movaps %xmm0, 0x80(%rsp)
shufps $0x55, %xmm0, %xmm0     # xmm0 = xmm0[1,1,1,1]
movaps %xmm0, 0x30(%rsp)
testq %rdi, %rdi
je 0xb25d
movq %r14, %rdi
callq 0x81f3
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
cmpb $0x1, 0x9902a(%rip)     # 0xa4255
movaps %xmm1, 0x60(%rsp)
jne 0xb26d
xorps %xmm0, %xmm0
cvtsi2ssl 0x99093(%rip), %xmm0 # 0xa42d0
movlhps %xmm1, %xmm0            # xmm0 = xmm0[0],xmm1[0]
shufps $0xe2, %xmm1, %xmm0     # xmm0 = xmm0[2,0],xmm1[2,3]
movaps %xmm0, 0x70(%rsp)
movaps 0x10(%rsp), %xmm0
movaps %xmm0, %xmm1
addss (%rsp), %xmm1
movb $0x1, %al
movaps %xmm0, %xmm2
jmp 0xb2c8
xorps %xmm1, %xmm1
xorps %xmm0, %xmm0
movaps %xmm0, 0x70(%rsp)
jmp 0xb3b8
callq 0x6a3c
xorps %xmm0, %xmm0
cvtsi2ssl 0x99053(%rip), %xmm0 # 0xa42d0
movaps 0x60(%rsp), %xmm1
movlhps %xmm1, %xmm0            # xmm0 = xmm0[0],xmm1[0]
shufps $0xe2, %xmm1, %xmm0     # xmm0 = xmm0[2,0],xmm1[2,3]
movaps %xmm0, 0x70(%rsp)
movaps 0x10(%rsp), %xmm0
movaps %xmm0, %xmm2
movaps %xmm0, %xmm1
addss (%rsp), %xmm1
movb $0x1, %al
cmpb $0x0, 0x98fae(%rip)     # 0xa4255
jne 0xb2c8
movaps %xmm2, 0x40(%rsp)
movaps %xmm1, 0x20(%rsp)
callq 0x6a3c
movaps 0x20(%rsp), %xmm1
movaps 0x40(%rsp), %xmm2
movb 0x98f8d(%rip), %al      # 0xa4255
movaps 0x30(%rsp), %xmm0
cvtsi2ssl 0x9922f(%rip), %xmm3 # 0xa4504
addss %xmm1, %xmm3
movss 0x59d2b(%rip), %xmm1    # 0x6500c
mulss 0x50(%rsp), %xmm1
addss %xmm0, %xmm1
testb $0x1, %al
je 0xb312
movl 0x98fdb(%rip), %eax     # 0xa42d0
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
xorps %xmm0, %xmm0
cvtsi2ss %ecx, %xmm0
subss %xmm0, %xmm1
movlhps %xmm3, %xmm1            # xmm1 = xmm1[0],xmm3[0]
shufps $0xe2, %xmm3, %xmm1     # xmm1 = xmm1[2,0],xmm3[2,3]
jmp 0xb374
movaps %xmm2, 0x40(%rsp)
movaps %xmm1, 0x20(%rsp)
movaps %xmm3, 0x90(%rsp)
callq 0x6a3c
movaps 0x20(%rsp), %xmm1
movl 0x98f9c(%rip), %eax     # 0xa42d0
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
xorps %xmm0, %xmm0
cvtsi2ss %ecx, %xmm0
subss %xmm0, %xmm1
movaps 0x90(%rsp), %xmm0
movlhps %xmm0, %xmm1            # xmm1 = xmm1[0],xmm0[0]
shufps $0xe2, %xmm0, %xmm1     # xmm1 = xmm1[2,0],xmm0[2,3]
cmpb $0x0, 0x98ef7(%rip)     # 0xa4255
jne 0xb36f
movaps %xmm1, 0x20(%rsp)
callq 0x6a3c
movaps 0x20(%rsp), %xmm1
movaps 0x40(%rsp), %xmm2
cmpl $0x0, 0x9918d(%rip)     # 0xa4508
jne 0xb3b8
subss 0x60(%rsp), %xmm2
cmpb $0x0, 0x98ecb(%rip)     # 0xa4255
jne 0xb3a5
movaps %xmm1, 0x20(%rsp)
movaps %xmm2, 0x40(%rsp)
callq 0x6a3c
movaps 0x40(%rsp), %xmm2
movaps 0x20(%rsp), %xmm1
xorps %xmm0, %xmm0
cvtsi2ssl 0x99154(%rip), %xmm0 # 0xa4504
subss %xmm0, %xmm2
movss %xmm2, %xmm1            # xmm1 = xmm2[0],xmm1[1,2,3]
movaps %xmm1, 0x20(%rsp)
cmpl $0x3, %r15d
jne 0xb3ce
movl $0x3, %r15d
jmp 0xb4b3
cmpb $0x0, 0x98e7f(%rip)     # 0xa4254
jne 0xb4b3
callq 0x26136
cmpb $0x1, 0x98e6e(%rip)     # 0xa4255
jne 0xb417
cmpl $0x0, 0x99118(%rip)     # 0xa4508
movaps 0x20(%rsp), %xmm3
movaps (%rsp), %xmm2
movaps 0x80(%rsp), %xmm1
je 0xb408
movaps 0x10(%rsp), %xmm3
movss %xmm3, %xmm1            # xmm1 = xmm3[0],xmm1[1,2,3]
movaps 0x70(%rsp), %xmm4
addss %xmm2, %xmm4
jmp 0xb47e
movaps %xmm0, 0x60(%rsp)
callq 0x6a3c
cmpl $0x0, 0x990e0(%rip)     # 0xa4508
movaps 0x20(%rsp), %xmm0
je 0xb434
movaps 0x10(%rsp), %xmm0
movaps 0x80(%rsp), %xmm1
movss %xmm0, %xmm1            # xmm1 = xmm0[0],xmm1[1,2,3]
movaps 0x70(%rsp), %xmm4
movaps (%rsp), %xmm2
addss %xmm2, %xmm4
cmpb $0x0, 0x98e01(%rip)     # 0xa4255
jne 0xb479
movaps %xmm1, 0x80(%rsp)
movaps %xmm4, 0x40(%rsp)
callq 0x6a3c
movaps 0x40(%rsp), %xmm4
movaps 0x80(%rsp), %xmm1
movaps (%rsp), %xmm2
movaps 0x60(%rsp), %xmm0
xorps %xmm3, %xmm3
cvtsi2ssl 0x9907b(%rip), %xmm3 # 0xa4504
addss %xmm4, %xmm3
movss %xmm3, %xmm2            # xmm2 = xmm3[0],xmm2[1,2,3]
callq 0x320c1
testb %al, %al
je 0xb4b3
xorl %edi, %edi
callq 0x2615e
movzbl %al, %r15d
incl %r15d
xorl %edi, %edi
callq 0x2bd0b
xorb %bl, %al
movl %eax, %ebx
cmpb $0x1, 0x98d9b(%rip)     # 0xa4255
jne 0xb4c4
movl 0x9903e(%rip), %ebp     # 0xa4500
jmp 0xb4dd
callq 0x6a3c
movl 0x99031(%rip), %ebp     # 0xa4500
cmpb $0x0, 0x98d7f(%rip)     # 0xa4255
jne 0xb4dd
callq 0x6a3c
leal (%r15,%r15,2), %r15d
movslq %r15d, %rax
leaq 0x98da5(%rip), %r12     # 0xa4290
movl 0x240(%r12,%rax,4), %edi
callq 0x4144d
movss 0x97f30(%rip), %xmm0    # 0xa3430
movl %eax, %edi
callq 0x41122
movaps 0x10(%rsp), %xmm0
movaps (%rsp), %xmm1
movl %ebp, %edi
movl %eax, %esi
xorl %edx, %edx
callq 0x7ee9
testb %bl, %bl
je 0xb626
cmpb $0x1, 0x98d2b(%rip)     # 0xa4255
jne 0xb53f
xorps %xmm1, %xmm1
cvtsi2ssl 0x98fc9(%rip), %xmm1 # 0xa4500
addss 0x10(%rsp), %xmm1
jmp 0xb562
callq 0x6a3c
xorps %xmm1, %xmm1
cvtsi2ssl 0x98fb1(%rip), %xmm1 # 0xa4500
addss 0x10(%rsp), %xmm1
cmpb $0x1, 0x98cf9(%rip)     # 0xa4255
jne 0xb6ae
xorps %xmm0, %xmm0
cvtsi2ssl 0x98fa3(%rip), %xmm0 # 0xa4510
addss %xmm0, %xmm1
movss %xmm1, 0x10(%rsp)
movaps (%rsp), %xmm1
movl 0x98f7f(%rip), %ebp     # 0xa4500
xorps %xmm0, %xmm0
cvtsi2ss %ebp, %xmm0
movaps 0x30(%rsp), %xmm2
addss %xmm0, %xmm2
xorps %xmm0, %xmm0
cvtsi2ssl 0x98f74(%rip), %xmm0 # 0xa4510
addss %xmm0, %xmm2
movaps %xmm2, 0x30(%rsp)
addl 0x98f65(%rip), %ebp     # 0xa4510
addl %ebp, %ebp
xorps %xmm0, %xmm0
cvtsi2ss %ebp, %xmm0
subss %xmm0, %xmm1
movaps %xmm1, (%rsp)
movl 0x98f3e(%rip), %ebp     # 0xa4500
addl 0x98f48(%rip), %ebp     # 0xa4510
addl %ebp, %ebp
xorps %xmm0, %xmm0
cvtsi2ss %ebp, %xmm0
movaps 0x50(%rsp), %xmm1
subss %xmm0, %xmm1
movaps %xmm1, 0x50(%rsp)
leal 0x92(%r15), %eax
cltq
movl (%r12,%rax,4), %edi
callq 0x4144d
movss 0x97e37(%rip), %xmm0    # 0xa3430
movl %eax, %edi
callq 0x41122
cmpl $0x1000000, %eax        # imm = 0x1000000
jb 0xb626
cvttss2si 0x10(%rsp), %edi
cvttss2si 0x30(%rsp), %esi
cvttss2si (%rsp), %edx
cvttss2si 0x50(%rsp), %ecx
movl %eax, %r8d
callq 0x2e4dc
testq %r14, %r14
je 0xb69c
cmpb $0x1, 0x98c23(%rip)     # 0xa4255
jne 0xb645
xorl %ebp, %ebp
cmpl $0x2, 0x98ecb(%rip)     # 0xa4508
setne %bpl
addl %ebp, %ebp
jmp 0xb667
callq 0x6a3c
xorl %ebp, %ebp
cmpl $0x2, 0x98eb5(%rip)     # 0xa4508
setne %bpl
addl %ebp, %ebp
cmpb $0x0, 0x98bf5(%rip)     # 0xa4255
jne 0xb667
callq 0x6a3c
addl $0x1a, %r15d
movslq %r15d, %rax
movl (%r12,%rax,4), %edi
callq 0x4144d
movss 0x97db1(%rip), %xmm0    # 0xa3430
movl %eax, %edi
callq 0x41122
movq %r14, %rdi
movaps 0x20(%rsp), %xmm0
movaps 0x70(%rsp), %xmm1
movl %ebp, %esi
movl %eax, %edx
callq 0xa506
movl %ebx, %eax
addq $0xa0, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movss %xmm1, 0x10(%rsp)
callq 0x6a3c
xorps %xmm0, %xmm0
cvtsi2ssl 0x98e4c(%rip), %xmm0 # 0xa4510
movss 0x10(%rsp), %xmm1
addss %xmm0, %xmm1
movss %xmm1, 0x10(%rsp)
cmpb $0x1, 0x98b7a(%rip)     # 0xa4255
je 0xb577
callq 0x6a3c
movl 0x98e14(%rip), %ebp     # 0xa4500
xorps %xmm0, %xmm0
cvtsi2ss %ebp, %xmm0
movaps 0x30(%rsp), %xmm2
addss %xmm0, %xmm2
cmpb $0x1, 0x98b52(%rip)     # 0xa4255
jne 0xb70e
movaps (%rsp), %xmm1
jmp 0xb591
movaps %xmm2, 0x30(%rsp)
callq 0x6a3c
xorps %xmm0, %xmm0
cvtsi2ssl 0x98ded(%rip), %xmm0 # 0xa4510
movaps 0x30(%rsp), %xmm1
addss %xmm0, %xmm1
movaps %xmm1, 0x30(%rsp)
cmpb $0x1, 0x98b1d(%rip)     # 0xa4255
jne 0xb742
movl 0x98dc0(%rip), %ebp     # 0xa4500
jmp 0xb756
callq 0x6a3c
movl 0x98db3(%rip), %ebp     # 0xa4500
cmpb $0x1, 0x98b01(%rip)     # 0xa4255
jne 0xb75f
movaps (%rsp), %xmm1
jmp 0xb5a5
callq 0x6a3c
addl 0x98da6(%rip), %ebp     # 0xa4510
addl %ebp, %ebp
xorps %xmm0, %xmm0
cvtsi2ss %ebp, %xmm0
movaps (%rsp), %xmm1
subss %xmm0, %xmm1
cmpb $0x1, 0x98ad3(%rip)     # 0xa4255
movaps %xmm1, (%rsp)
je 0xb5bc
callq 0x6a3c
movl 0x98d69(%rip), %ebp     # 0xa4500
cmpb $0x1, 0x98ab7(%rip)     # 0xa4255
je 0xb5c2
callq 0x6a3c
addl 0x98d61(%rip), %ebp     # 0xa4510
addl %ebp, %ebp
xorps %xmm0, %xmm0
cvtsi2ss %ebp, %xmm0
movaps 0x50(%rsp), %xmm1
subss %xmm0, %xmm1
movaps %xmm1, 0x50(%rsp)
cmpb $0x0, 0x98a88(%rip)     # 0xa4255
jne 0xb5df
callq 0x6a3c
jmp 0xb5df