// File: /workspace/github_cpp_makefile_star2_O1/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, %rbx
movq 0x30(%rdi), %rax
testq %rax, %rax
leaq 0x1e315(%rip), %rcx     # 0x414b9
cmovneq %rax, %rcx
movl 0x20(%rdi), %r8d
movl (%rdi), %eax
movl 0x10(%rdi), %r9d
movl %eax, (%rsp)
leaq 0x1bde2(%rip), %rsi     # 0x3ef9e
leaq 0x1b7a8(%rip), %rdx     # 0x3e96b
xorl %eax, %eax
callq 0x181b3
movl %eax, %r14d
movq 0x322bc(%rip), %rcx     # 0x55490
movq 0x1758(%rcx), %rax
movb $0x1, 0x72(%rax)
cmpq %rbx, 0x270(%rax)
jne 0x23240
movb $0x1, 0x72(%rax)
cmpb $0x0, 0x74(%rax)
jne 0x23224
movss 0x1414(%rcx), %xmm0
addss 0xb0(%rax), %xmm0
movl 0xb4(%rax), %ecx
movq 0xd0(%rax), %rdx
movq %rdx, 0xc8(%rax)
movss %xmm0, 0xa8(%rax)
movl %ecx, 0xac(%rax)
movaps 0x1a115(%rip), %xmm0    # 0x3d340
leaq -0x48(%rbp), %rdi
movups %xmm0, (%rdi)
leaq 0x1bd8a(%rip), %rsi     # 0x3efc3
xorl %eax, %eax
callq 0x16147
testb %r14b, %r14b
je 0x234ea
cmpl $0x0, (%rbx)
jle 0x234e5
movq 0x8(%rbx), %r13
leaq 0x1bd94(%rip), %r15     # 0x3eff1
leaq 0x1bd73(%rip), %r14     # 0x3efd7
xorl %r12d, %r12d
movq 0x20(%r13), %rsi
testq %rsi, %rsi
je 0x23283
movq 0x28(%r13), %rdx
movq %r14, %rdi
xorl %eax, %eax
callq 0x17ed5
jmp 0x234c5
movl (%r13), %esi
movq 0x18(%r13), %rdx
xorps %xmm0, %xmm0
cvtss2sd 0x4(%r13), %xmm0
xorps %xmm1, %xmm1
cvtss2sd 0x8(%r13), %xmm1
xorps %xmm2, %xmm2
cvtss2sd 0xc(%r13), %xmm2
xorps %xmm3, %xmm3
cvtss2sd 0x10(%r13), %xmm3
movq %r15, %rdi
movb $0x4, %al
callq 0x17ed5
cmpb $0x1, 0x321d8(%rip)     # 0x55498
jne 0x234c5
movq 0x321c3(%rip), %rdi     # 0x55490
movq 0x1758(%rdi), %rax
cmpb $0x1, 0xf4(%rax)
jne 0x234c5
movq 0x4(%r13), %rax
movq %rax, -0x48(%rbp)
movq 0xc(%r13), %rax
movq %rax, -0x40(%rbp)
movaps 0x19fe8(%rip), %xmm0    # 0x3d2e0
movups %xmm0, -0x38(%rbp)
movl (%r13), %ecx
testl %ecx, %ecx
jle 0x233a9
addl %r12d, %ecx
movss -0x2c(%rbp), %xmm0
movss -0x30(%rbp), %xmm1
movss -0x38(%rbp), %xmm2
movss -0x34(%rbp), %xmm3
movl 0x10(%rbx), %edx
movslq %r12d, %rax
movslq %ecx, %rcx
cmpl %edx, %eax
cmovgl %r12d, %edx
movslq %edx, %rdx
cmpq %rax, %rdx
je 0x23510
movq 0x18(%rbx), %rsi
movzwl (%rsi,%rax,2), %r8d
cmpl %r8d, 0x20(%rbx)
jle 0x234f9
movq 0x28(%rbx), %rsi
leaq (%r8,%r8,4), %r8
movss (%rsi,%r8,4), %xmm4
ucomiss %xmm4, %xmm2
jbe 0x23368
movss %xmm4, -0x38(%rbp)
movaps %xmm4, %xmm2
leaq (%rsi,%r8,4), %rsi
movss 0x4(%rsi), %xmm4
ucomiss %xmm4, %xmm3
jbe 0x2337e
movss %xmm4, -0x34(%rbp)
movaps %xmm4, %xmm3
movss (%rsi), %xmm4
ucomiss %xmm1, %xmm4
jbe 0x2338f
movss %xmm4, -0x30(%rbp)
movaps %xmm4, %xmm1
movss 0x4(%rsi), %xmm4
ucomiss %xmm0, %xmm4
jbe 0x233a1
movss %xmm4, -0x2c(%rbp)
movaps %xmm4, %xmm0
incq %rax
cmpq %rcx, %rax
jl 0x23331
movl $0x18a8, %eax           # imm = 0x18A8
addq %rax, %rdi
movl $0x18a8, %r14d          # imm = 0x18A8
callq 0x2d52c
movss -0x48(%rbp), %xmm0
movss -0x44(%rbp), %xmm1
movss -0x40(%rbp), %xmm2
movss -0x3c(%rbp), %xmm3
cvttps2dq %xmm0, %xmm0
cvtdq2ps %xmm0, %xmm0
cvttps2dq %xmm2, %xmm2
cvtdq2ps %xmm2, %xmm2
cvttps2dq %xmm3, %xmm3
cvtdq2ps %xmm3, %xmm3
unpcklps %xmm3, %xmm2            # xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
cvttps2dq %xmm1, %xmm1
cvtdq2ps %xmm1, %xmm1
unpcklps %xmm1, %xmm0            # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movlhps %xmm2, %xmm0            # xmm0 = xmm0[0],xmm2[0]
movups %xmm0, -0x48(%rbp)
movq 0x32090(%rip), %r15     # 0x55490
addq %r14, %r15
movaps 0x19f46(%rip), %xmm0    # 0x3d350
movaps %xmm0, -0x60(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x8cce
xorps %xmm0, %xmm0
movq %r15, %rdi
leaq -0x48(%rbp), %rsi
leaq -0x40(%rbp), %rdx
movl %eax, %ecx
movl $0xf, %r8d
callq 0x2ffde
movss -0x38(%rbp), %xmm0
movss -0x34(%rbp), %xmm1
movss -0x30(%rbp), %xmm2
movss -0x2c(%rbp), %xmm3
cvttps2dq %xmm0, %xmm0
cvtdq2ps %xmm0, %xmm0
cvttps2dq %xmm2, %xmm2
cvtdq2ps %xmm2, %xmm2
cvttps2dq %xmm3, %xmm3
cvtdq2ps %xmm3, %xmm3
unpcklps %xmm3, %xmm2            # xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
cvttps2dq %xmm1, %xmm1
cvtdq2ps %xmm1, %xmm1
unpcklps %xmm1, %xmm0            # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movlhps %xmm2, %xmm0            # xmm0 = xmm0[0],xmm2[0]
movups %xmm0, -0x38(%rbp)
movq 0x3201a(%rip), %r15     # 0x55490
addq %r14, %r15
movaps 0x19ee0(%rip), %xmm0    # 0x3d360
movaps %xmm0, -0x60(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x8cce
xorps %xmm0, %xmm0
movq %r15, %rdi
leaq -0x38(%rbp), %rsi
leaq -0x30(%rbp), %rdx
movl %eax, %ecx
movl $0xf, %r8d
callq 0x2ffde
movq 0x31fe1(%rip), %rdi     # 0x55490
addq %r14, %rdi
callq 0x2d53e
leaq 0x1bb33(%rip), %r15     # 0x3eff1
leaq 0x1bb12(%rip), %r14     # 0x3efd7
addl (%r13), %r12d
addq $0x30, %r13
movslq (%rbx), %rax
leaq (%rax,%rax,2), %rax
shlq $0x4, %rax
addq 0x8(%rbx), %rax
cmpq %rax, %r13
jb 0x23267
callq 0x22b95
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x1b8b0(%rip), %rdi     # 0x3edb0
leaq 0x1b58c(%rip), %rsi     # 0x3ea93
leaq 0x1bb27(%rip), %rcx     # 0x3f035
jmp 0x23525
leaq 0x1b899(%rip), %rdi     # 0x3edb0
leaq 0x1b575(%rip), %rsi     # 0x3ea93
leaq 0x1b894(%rip), %rcx     # 0x3edb9
movl $0x31c, %edx            # imm = 0x31C
callq 0x7140