// File: /workspace/github_cpp_makefile_star2_O1/Ciaxur[P]yagb-emu/include/imgui/imgui_widgets.cpp
// Function: ImGui::TabItemBackground(ImDrawList*, ImRect const&, int, unsigned int)
void ImGui::TabItemBackground(ImDrawList* draw_list, const ImRect& bb, ImGuiTabItemFlags flags, ImU32 col)
{
    // While rendering tabs, we trim 1 pixel off the top of our bounding box so they can fit within a regular frame height while looking "detached" from it.
    ImGuiContext& g = *GImGui;
    const float width = bb.GetWidth();
    IM_UNUSED(flags);
    IM_ASSERT(width > 0.0f);
    const float rounding = ImMax(0.0f, ImMin((flags & ImGuiTabItemFlags_Button) ? g.Style.FrameRounding : g.Style.TabRounding, width * 0.5f - 1.0f));
    const float y1 = bb.Min.y + 1.0f;
    const float y2 = bb.Max.y - 1.0f;
    draw_list->PathLineTo(ImVec2(bb.Min.x, y2));
    draw_list->PathArcToFast(ImVec2(bb.Min.x + rounding, y1 + rounding), rounding, 6, 9);
    draw_list->PathArcToFast(ImVec2(bb.Max.x - rounding, y1 + rounding), rounding, 9, 12);
    draw_list->PathLineTo(ImVec2(bb.Max.x, y2));
    draw_list->PathFillConvex(col);
    if (g.Style.TabBorderSize > 0.0f)
    {
        draw_list->PathLineTo(ImVec2(bb.Min.x + 0.5f, y2));
        draw_list->PathArcToFast(ImVec2(bb.Min.x + rounding + 0.5f, y1 + rounding + 0.5f), rounding, 6, 9);
        draw_list->PathArcToFast(ImVec2(bb.Max.x - rounding - 0.5f, y1 + rounding + 0.5f), rounding, 9, 12);
        draw_list->PathLineTo(ImVec2(bb.Max.x - 0.5f, y2));
        draw_list->PathStroke(GetColorU32(ImGuiCol_Border), false, g.Style.TabBorderSize);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movl %ecx, -0x34(%rbp)
movss (%rsi), %xmm4
movss 0x8(%rsi), %xmm0
subss %xmm4, %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jbe 0xa7e70
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x5629f(%rip), %rax     # 0xfdcd0
movq (%rax), %r13
leaq 0x15a0(%r13), %rax
leaq 0x15e4(%r13), %rcx
btl $0x15, %edx
cmovaeq %rcx, %rax
movss (%rax), %xmm2
mulss 0xf5ae(%rip), %xmm0     # 0xb7004
movss 0xf572(%rip), %xmm3     # 0xb6fd0
addss %xmm3, %xmm0
minss %xmm0, %xmm2
movaps %xmm2, %xmm0
cmpless %xmm1, %xmm0
movss 0x4(%rsi), %xmm1
addss 0xf569(%rip), %xmm1     # 0xb6fe4
addss 0xc(%rsi), %xmm3
movss %xmm3, -0x30(%rbp)
andnps %xmm2, %xmm0
movaps %xmm0, -0x60(%rbp)
movl 0x78(%rdi), %r15d
movl 0x7c(%rdi), %eax
cmpl %eax, %r15d
jne 0xa7b13
incl %r15d
testl %eax, %eax
je 0xa7aac
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
addl %eax, %ecx
jmp 0xa7ab1
movl $0x8, %ecx
cmpl %r15d, %ecx
cmovgl %ecx, %r15d
cmpl %r15d, %eax
jge 0xa7b13
movss %xmm4, -0x40(%rbp)
movss %xmm1, -0x2c(%rbp)
movslq %r15d, %rdi
shlq $0x3, %rdi
callq 0x424fb
movq %rax, %r12
movq 0x80(%rbx), %rsi
testq %rsi, %rsi
je 0xa7afe
movslq 0x78(%rbx), %rdx
shlq $0x3, %rdx
movq %r12, %rdi
callq 0xc080
movq 0x80(%rbx), %rdi
callq 0x425d4
movq %r12, 0x80(%rbx)
movl %r15d, 0x7c(%rbx)
movss -0x2c(%rbp), %xmm1
movss -0x40(%rbp), %xmm4
movq %r13, -0x40(%rbp)
movq 0x80(%rbx), %rax
movslq 0x78(%rbx), %rcx
movss %xmm4, (%rax,%rcx,8)
movss -0x30(%rbp), %xmm0
movss %xmm0, 0x4(%rax,%rcx,8)
incl 0x78(%rbx)
movss (%r14), %xmm0
movaps -0x60(%rbp), %xmm2
addss %xmm2, %xmm0
addss %xmm2, %xmm1
movss %xmm1, -0x2c(%rbp)
leaq -0x48(%rbp), %r12
movss %xmm0, (%r12)
movss %xmm1, 0x4(%r12)
movq %rbx, %rdi
movq %r12, %rsi
movaps %xmm2, %xmm0
movl $0x6, %edx
movl $0x9, %ecx
callq 0x787a2
movss 0x8(%r14), %xmm1
movaps -0x60(%rbp), %xmm0
subss %xmm0, %xmm1
movss %xmm1, (%r12)
movss -0x2c(%rbp), %xmm1
movss %xmm1, 0x4(%r12)
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
movl $0x9, %edx
movl $0xc, %ecx
callq 0x787a2
movl 0x8(%r14), %r15d
movl 0x78(%rbx), %r13d
movl 0x7c(%rbx), %eax
cmpl %eax, %r13d
jne 0xa7c21
incl %r13d
testl %eax, %eax
je 0xa7bce
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
addl %eax, %ecx
jmp 0xa7bd3
movl $0x8, %ecx
cmpl %r13d, %ecx
cmovgl %ecx, %r13d
cmpl %r13d, %eax
jge 0xa7c21
movslq %r13d, %rdi
shlq $0x3, %rdi
callq 0x424fb
movq %rax, %r12
movq 0x80(%rbx), %rsi
testq %rsi, %rsi
je 0xa7c16
movslq 0x78(%rbx), %rdx
shlq $0x3, %rdx
movq %r12, %rdi
callq 0xc080
movq 0x80(%rbx), %rdi
callq 0x425d4
movq %r12, 0x80(%rbx)
movl %r13d, 0x7c(%rbx)
movq 0x80(%rbx), %rax
movslq 0x78(%rbx), %rcx
movl %r15d, (%rax,%rcx,8)
movss -0x30(%rbp), %xmm0
movss %xmm0, 0x4(%rax,%rcx,8)
movl 0x78(%rbx), %edx
incl %edx
movl %edx, 0x78(%rbx)
movq 0x80(%rbx), %rsi
movq %rbx, %rdi
movl -0x34(%rbp), %ecx
callq 0x78432
movl $0x0, 0x78(%rbx)
movq -0x40(%rbp), %r12
movss 0x15e8(%r12), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jbe 0xa7e61
movss (%r14), %xmm0
addss 0xf381(%rip), %xmm0     # 0xb7004
cmpl $0x0, 0x7c(%rbx)
jne 0xa7cd6
movss %xmm0, -0x34(%rbp)
movl $0x40, %edi
callq 0x424fb
movq %rax, %r15
movq 0x80(%rbx), %rsi
testq %rsi, %rsi
je 0xa7cc3
movslq 0x78(%rbx), %rdx
shlq $0x3, %rdx
movq %r15, %rdi
callq 0xc080
movq 0x80(%rbx), %rdi
callq 0x425d4
movq %r15, 0x80(%rbx)
movl $0x8, 0x7c(%rbx)
movss -0x34(%rbp), %xmm0
movq 0x80(%rbx), %rax
movslq 0x78(%rbx), %rcx
movss %xmm0, (%rax,%rcx,8)
movss -0x30(%rbp), %xmm0
movss %xmm0, 0x4(%rax,%rcx,8)
incl 0x78(%rbx)
movss (%r14), %xmm3
movaps -0x60(%rbp), %xmm1
addss %xmm1, %xmm3
movaps %xmm1, %xmm0
movss 0xf2f8(%rip), %xmm1     # 0xb7004
addss %xmm1, %xmm3
movss -0x2c(%rbp), %xmm2
addss %xmm1, %xmm2
movss %xmm2, -0x2c(%rbp)
leaq -0x48(%rbp), %r15
movss %xmm3, (%r15)
movss %xmm2, 0x4(%r15)
movq %rbx, %rdi
movq %r15, %rsi
movl $0x6, %edx
movl $0x9, %ecx
callq 0x787a2
movss 0x8(%r14), %xmm1
movaps -0x60(%rbp), %xmm0
subss %xmm0, %xmm1
addss 0xfb6c(%rip), %xmm1     # 0xb78c4
movss %xmm1, (%r15)
movss -0x2c(%rbp), %xmm1
movss %xmm1, 0x4(%r15)
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
movl $0x9, %edx
movl $0xc, %ecx
callq 0x787a2
movss 0xfb3e(%rip), %xmm0     # 0xb78c4
addss 0x8(%r14), %xmm0
movl 0x78(%rbx), %r15d
movl 0x7c(%rbx), %eax
cmpl %eax, %r15d
jne 0xa7e09
incl %r15d
testl %eax, %eax
je 0xa7dac
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
addl %eax, %ecx
jmp 0xa7db1
movl $0x8, %ecx
cmpl %r15d, %ecx
cmovgl %ecx, %r15d
cmpl %r15d, %eax
jge 0xa7e09
movss %xmm0, -0x60(%rbp)
movslq %r15d, %rdi
shlq $0x3, %rdi
callq 0x424fb
movq %rax, %r14
movq 0x80(%rbx), %rsi
testq %rsi, %rsi
je 0xa7df9
movslq 0x78(%rbx), %rdx
shlq $0x3, %rdx
movq %r14, %rdi
callq 0xc080
movq 0x80(%rbx), %rdi
callq 0x425d4
movq %r14, 0x80(%rbx)
movl %r15d, 0x7c(%rbx)
movss -0x60(%rbp), %xmm0
movq 0x80(%rbx), %rax
movslq 0x78(%rbx), %rcx
movss %xmm0, (%rax,%rcx,8)
movss -0x30(%rbp), %xmm0
movss %xmm0, 0x4(%rax,%rcx,8)
incl 0x78(%rbx)
movss 0xf1b5(%rip), %xmm0     # 0xb6fe4
movl $0x5, %edi
callq 0x445bd
movss 0x15e8(%r12), %xmm0
movq 0x80(%rbx), %rsi
movl 0x78(%rbx), %edx
movq %rbx, %rdi
movl %eax, %ecx
xorl %r8d, %r8d
callq 0x77886
movl $0x0, 0x78(%rbx)
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x29b5c(%rip), %rdi     # 0xd19d3
leaq 0x2b2ca(%rip), %rsi     # 0xd3148
leaq 0x2d173(%rip), %rcx     # 0xd4ff8
movl $0x1e88, %edx           # imm = 0x1E88
callq 0xc140