// File: /workspace/github_cpp_makefile_star2_O2/donfreiday[P]gb/./imgui/imgui.cpp
// Function: ImGui::ShowMetricsWindow(bool*)::Funcs::NodeDrawList(ImDrawList*, char const*)
static void NodeDrawList(ImDrawList* draw_list, const char* label)
            {
                bool node_opened = ImGui::TreeNode(draw_list, "%s: '%s' %d vtx, %d indices, %d cmds", label, draw_list->_OwnerName ? draw_list->_OwnerName : "", draw_list->VtxBuffer.Size, draw_list->IdxBuffer.Size, draw_list->CmdBuffer.Size);
                if (draw_list == ImGui::GetWindowDrawList())
                {
                    ImGui::SameLine();
                    ImGui::TextColored(ImColor(255,100,100), "CURRENTLY APPENDING"); // Can't display stats for active draw list! (we don't have the data double-buffered)
                }
                if (!node_opened)
                    return;

                int elem_offset = 0;
                for (const ImDrawCmd* pcmd = draw_list->CmdBuffer.begin(); pcmd < draw_list->CmdBuffer.end(); elem_offset += pcmd->ElemCount, pcmd++)
                {
                    if (pcmd->UserCallback)
                        ImGui::BulletText("Callback %p, user_data %p", pcmd->UserCallback, pcmd->UserCallbackData);
                    else
                    {
                        ImGui::BulletText("Draw %d indexed vtx, tex = %p, clip_rect = (%.0f,%.0f)..(%.0f,%.0f)", pcmd->ElemCount, pcmd->TextureId, pcmd->ClipRect.x, pcmd->ClipRect.y, pcmd->ClipRect.z, pcmd->ClipRect.w);
                        if (show_clip_rects && ImGui::IsItemHovered())
                        {
                            ImRect clip_rect = pcmd->ClipRect;
                            ImRect vtxs_rect;
                            for (int i = elem_offset; i < elem_offset + (int)pcmd->ElemCount; i++)
                                vtxs_rect.Add(draw_list->VtxBuffer[draw_list->IdxBuffer[i]].pos);
                            GImGui->OverlayDrawList.PushClipRectFullScreen();
                            clip_rect.Round(); GImGui->OverlayDrawList.AddRect(clip_rect.Min, clip_rect.Max, ImColor(255,255,0));
                            vtxs_rect.Round(); GImGui->OverlayDrawList.AddRect(vtxs_rect.Min, vtxs_rect.Max, ImColor(255,0,255));
                            GImGui->OverlayDrawList.PopClipRect();
                        }
                    }
                }
                ImGui::TreePop();
            }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rdi, %r12
movq 0x30(%rdi), %rax
testq %rax, %rax
leaq 0x1d55f(%rip), %rcx     # 0x3a629
cmovneq %rax, %rcx
movl 0x20(%rdi), %r8d
movl (%rdi), %eax
movl 0x10(%rdi), %r9d
movl %eax, (%rsp)
leaq 0x1af59(%rip), %rsi     # 0x3803b
leaq 0x1a86a(%rip), %rdx     # 0x37953
xorl %eax, %eax
callq 0x13c99
movl %eax, %r14d
movq 0x33386(%rip), %rax     # 0x50480
movq 0x1758(%rax), %rax
movb $0x1, 0x72(%rax)
cmpq %r12, 0x270(%rax)
jne 0x1d13a
movss 0x19286(%rip), %xmm1    # 0x3639c
xorps %xmm0, %xmm0
callq 0x1254d
movaps 0x1922b(%rip), %xmm0    # 0x36350
leaq -0x38(%rbp), %rdi
movups %xmm0, (%rdi)
leaq 0x1af2d(%rip), %rsi     # 0x38060
xorl %eax, %eax
callq 0x12327
testb %r14b, %r14b
je 0x1d2fb
leaq 0x20(%r12), %r14
leaq 0x10(%r12), %r15
movq 0x8(%r12), %rax
xorl %r13d, %r13d
movq %rax, %rbx
movq %r12, -0x50(%rbp)
movslq (%r12), %rcx
imulq $0x30, %rcx, %rcx
addq %rax, %rcx
cmpq %rcx, %rbx
jae 0x1d2f6
movq 0x20(%rbx), %rsi
testq %rsi, %rsi
je 0x1d190
movq 0x28(%rbx), %rdx
leaq 0x1aef0(%rip), %rdi     # 0x38074
xorl %eax, %eax
callq 0x139fd
jmp 0x1d2e5
movl (%rbx), %esi
movq 0x18(%rbx), %rdx
cvtss2sd 0x4(%rbx), %xmm0
cvtss2sd 0x8(%rbx), %xmm1
cvtss2sd 0xc(%rbx), %xmm2
cvtss2sd 0x10(%rbx), %xmm3
leaq 0x1aedd(%rip), %rdi     # 0x3808e
movb $0x4, %al
callq 0x139fd
cmpb $0x1, 0x332c9(%rip)     # 0x50488
jne 0x1d2e5
movq 0x332b4(%rip), %rax     # 0x50480
movq 0x1758(%rax), %rax
cmpb $0x1, 0xf4(%rax)
jne 0x1d2e5
movq 0x4(%rbx), %rax
movq %rax, -0x38(%rbp)
movq 0xc(%rbx), %rax
movq %rax, -0x30(%rbp)
movaps 0x190f9(%rip), %xmm0    # 0x362f0
movups %xmm0, -0x48(%rbp)
movl %r13d, %r12d
movl (%rbx), %eax
addl %r13d, %eax
cmpl %eax, %r12d
jge 0x1d22f
movq %r15, %rdi
movl %r12d, %esi
callq 0x1fd90
movzwl (%rax), %esi
movq %r14, %rdi
callq 0x1fed6
leaq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0x1fe8c
incl %r12d
jmp 0x1d1fe
movq 0x3324a(%rip), %rdi     # 0x50480
movl $0x18a8, %eax           # imm = 0x18A8
addq %rax, %rdi
callq 0x27daa
leaq -0x38(%rbp), %rdi
callq 0x1ff0a
movq 0x3322d(%rip), %r12     # 0x50480
movl $0x18a8, %eax           # imm = 0x18A8
addq %rax, %r12
movaps 0x190fe(%rip), %xmm0    # 0x36360
movups %xmm0, -0x60(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x897c
xorps %xmm0, %xmm0
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
leaq -0x30(%rbp), %rdx
movl %eax, %ecx
pushq $0xf
popq %r8
callq 0x299ca
leaq -0x48(%rbp), %rdi
callq 0x1ff0a
movq 0x331e8(%rip), %r12     # 0x50480
movl $0x18a8, %eax           # imm = 0x18A8
addq %rax, %r12
movaps 0x190c9(%rip), %xmm0    # 0x36370
movups %xmm0, -0x60(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x897c
xorps %xmm0, %xmm0
movq %r12, %rdi
leaq -0x48(%rbp), %rsi
leaq -0x40(%rbp), %rdx
movl %eax, %ecx
pushq $0xf
popq %r8
callq 0x299ca
movq 0x331ac(%rip), %rdi     # 0x50480
movl $0x18a8, %eax           # imm = 0x18A8
addq %rax, %rdi
callq 0x27dbc
movq -0x50(%rbp), %r12
addl (%rbx), %r13d
addq $0x30, %rbx
movq 0x8(%r12), %rax
jmp 0x1d15c
callq 0x1cba4
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq