// File: /workspace/github_cpp_makefile_star2_O3/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
movss (%rsi), %xmm4
movss 0x8(%rsi), %xmm0
subss %xmm4, %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jbe 0xa633c
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x55dd8(%rip), %rax     # 0xfbcd0
movq (%rax), %r13
leaq 0x15a0(%r13), %rax
leaq 0x15e4(%r13), %rsi
btl $0x15, %edx
cmovaeq %rsi, %rax
movss (%rax), %xmm2
mulss 0xf0e7(%rip), %xmm0     # 0xb5004
movss 0xf0ab(%rip), %xmm3     # 0xb4fd0
addss %xmm3, %xmm0
minss %xmm0, %xmm2
movaps %xmm2, %xmm0
cmpless %xmm1, %xmm0
movss 0x4(%r14), %xmm1
addss 0xf0a1(%rip), %xmm1     # 0xb4fe4
movss %xmm1, -0x30(%rbp)
addss 0xc(%r14), %xmm3
movss %xmm3, -0x34(%rbp)
andnps %xmm2, %xmm0
movaps %xmm0, -0x60(%rbp)
movl 0x78(%rdi), %eax
cmpl 0x7c(%rdi), %eax
movl %ecx, -0x2c(%rbp)
jne 0xa5f7f
leal 0x1(%rax), %r15d
testl %eax, %eax
movss %xmm4, -0x40(%rbp)
je 0xa5f88
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
addl %eax, %ecx
jmp 0xa5f8d
movq 0x80(%rbx), %r12
jmp 0xa5fde
movl $0x8, %ecx
cmpl %r15d, %ecx
cmovgl %ecx, %r15d
movslq %r15d, %rdi
shlq $0x3, %rdi
callq 0x41c63
movq %rax, %r12
movq 0x80(%rbx), %rsi
testq %rsi, %rsi
je 0xa5fcb
movslq 0x78(%rbx), %rdx
shlq $0x3, %rdx
movq %r12, %rdi
callq 0xc080
movq 0x80(%rbx), %rdi
callq 0x41d3c
movq %r12, 0x80(%rbx)
movl %r15d, 0x7c(%rbx)
movl 0x78(%rbx), %eax
movss -0x40(%rbp), %xmm4
cltq
movss %xmm4, (%r12,%rax,8)
movss -0x34(%rbp), %xmm0
movss %xmm0, 0x4(%r12,%rax,8)
incl 0x78(%rbx)
movss (%r14), %xmm0
movaps -0x60(%rbp), %xmm1
addss %xmm1, %xmm0
movss -0x30(%rbp), %xmm2
addss %xmm1, %xmm2
movss %xmm2, -0x30(%rbp)
leaq -0x48(%rbp), %r12
movss %xmm0, (%r12)
movss %xmm2, 0x4(%r12)
movq %rbx, %rdi
movq %r12, %rsi
movaps %xmm1, %xmm0
movl $0x6, %edx
movl $0x9, %ecx
callq 0x7700e
movss 0x8(%r14), %xmm1
movaps -0x60(%rbp), %xmm0
subss %xmm0, %xmm1
movss %xmm1, (%r12)
movss -0x30(%rbp), %xmm1
movss %xmm1, 0x4(%r12)
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
movl $0x9, %edx
movl $0xc, %ecx
callq 0x7700e
movl 0x8(%r14), %r15d
movl 0x78(%rbx), %eax
cmpl 0x7c(%rbx), %eax
jne 0xa6094
movq %r13, -0x40(%rbp)
leal 0x1(%rax), %r13d
testl %eax, %eax
je 0xa609d
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
addl %eax, %ecx
jmp 0xa60a2
movq 0x80(%rbx), %r12
jmp 0xa60f2
movl $0x8, %ecx
cmpl %r13d, %ecx
cmovgl %ecx, %r13d
movslq %r13d, %rdi
shlq $0x3, %rdi
callq 0x41c63
movq %rax, %r12
movq 0x80(%rbx), %rsi
testq %rsi, %rsi
je 0xa60e0
movslq 0x78(%rbx), %rdx
shlq $0x3, %rdx
movq %r12, %rdi
callq 0xc080
movq 0x80(%rbx), %rdi
callq 0x41d3c
movq %r12, 0x80(%rbx)
movl %r13d, 0x7c(%rbx)
movl 0x78(%rbx), %eax
movq -0x40(%rbp), %r13
movl -0x2c(%rbp), %ecx
cltq
movl %r15d, (%r12,%rax,8)
movss -0x34(%rbp), %xmm0
movss %xmm0, 0x4(%r12,%rax,8)
movl 0x78(%rbx), %edx
incl %edx
movl %edx, 0x78(%rbx)
movq 0x80(%rbx), %rsi
movq %rbx, %rdi
callq 0x76d34
movl $0x0, 0x78(%rbx)
movss 0x15e8(%r13), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jbe 0xa632d
movss (%r14), %xmm0
addss 0xeebd(%rip), %xmm0     # 0xb5004
cmpl $0x0, 0x7c(%rbx)
je 0xa6158
movq 0x80(%rbx), %r15
xorl %eax, %eax
jmp 0xa61a9
movss %xmm0, -0x2c(%rbp)
movl $0x40, %edi
callq 0x41c63
movq %rax, %r15
movq 0x80(%rbx), %rsi
testq %rsi, %rsi
je 0xa6192
movslq 0x78(%rbx), %rdx
shlq $0x3, %rdx
movq %r15, %rdi
callq 0xc080
movq 0x80(%rbx), %rdi
callq 0x41d3c
movq %r15, 0x80(%rbx)
movl $0x8, 0x7c(%rbx)
movslq 0x78(%rbx), %rax
movss -0x2c(%rbp), %xmm0
movss %xmm0, (%r15,%rax,8)
movss -0x34(%rbp), %xmm0
movss %xmm0, 0x4(%r15,%rax,8)
incl 0x78(%rbx)
movss (%r14), %xmm3
movaps -0x60(%rbp), %xmm1
addss %xmm1, %xmm3
movaps %xmm1, %xmm0
movss 0xee2e(%rip), %xmm1     # 0xb5004
addss %xmm1, %xmm3
movss -0x30(%rbp), %xmm2
addss %xmm1, %xmm2
movss %xmm2, -0x30(%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 0x7700e
movss 0x8(%r14), %xmm1
movaps -0x60(%rbp), %xmm0
subss %xmm0, %xmm1
movss 0xf6a2(%rip), %xmm2     # 0xb58c4
movss %xmm2, -0x2c(%rbp)
addss %xmm2, %xmm1
movss %xmm1, (%r15)
movss -0x30(%rbp), %xmm1
movss %xmm1, 0x4(%r15)
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
movl $0x9, %edx
movl $0xc, %ecx
callq 0x7700e
movss -0x2c(%rbp), %xmm0
addss 0x8(%r14), %xmm0
movss %xmm0, -0x2c(%rbp)
movl 0x78(%rbx), %eax
cmpl 0x7c(%rbx), %eax
jne 0xa627e
leal 0x1(%rax), %r15d
testl %eax, %eax
je 0xa6287
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
addl %eax, %ecx
jmp 0xa628c
movq 0x80(%rbx), %r14
jmp 0xa62d8
movl $0x8, %ecx
cmpl %r15d, %ecx
cmovgl %ecx, %r15d
movslq %r15d, %rdi
shlq $0x3, %rdi
callq 0x41c63
movq %rax, %r14
movq 0x80(%rbx), %rsi
testq %rsi, %rsi
je 0xa62ca
movslq 0x78(%rbx), %rdx
shlq $0x3, %rdx
movq %r14, %rdi
callq 0xc080
movq 0x80(%rbx), %rdi
callq 0x41d3c
movq %r14, 0x80(%rbx)
movl %r15d, 0x7c(%rbx)
movl 0x78(%rbx), %eax
cltq
movss -0x2c(%rbp), %xmm0
movss %xmm0, (%r14,%rax,8)
movss -0x34(%rbp), %xmm0
movss %xmm0, 0x4(%r14,%rax,8)
incl 0x78(%rbx)
movss 0xece8(%rip), %xmm0     # 0xb4fe4
movl $0x5, %edi
callq 0x43bca
movss 0x15e8(%r13), %xmm0
movq 0x80(%rbx), %rsi
movl 0x78(%rbx), %edx
movq %rbx, %rdi
movl %eax, %ecx
xorl %r8d, %r8d
callq 0x76296
movl $0x0, 0x78(%rbx)
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x29660(%rip), %rdi     # 0xcf9a3
leaq 0x2acce(%rip), %rsi     # 0xd1018
leaq 0x2cb54(%rip), %rcx     # 0xd2ea5
movl $0x1e88, %edx           # imm = 0x1E88
callq 0xc140