// File: /workspace/github_cpp_makefile_star2_O1/Ciaxur[P]yagb-emu/include/imgui/imgui.cpp
// Function: ImGui::ShowMetricsWindow(bool*)::Funcs::GetTableRect(ImGuiTable*, int, int)
static ImRect GetTableRect(ImGuiTable* table, int rect_type, int n)
        {
            if (rect_type == TRT_OuterRect)                     { return table->OuterRect; }
            else if (rect_type == TRT_InnerRect)                { return table->InnerRect; }
            else if (rect_type == TRT_WorkRect)                 { return table->WorkRect; }
            else if (rect_type == TRT_HostClipRect)             { return table->HostClipRect; }
            else if (rect_type == TRT_InnerClipRect)            { return table->InnerClipRect; }
            else if (rect_type == TRT_BackgroundClipRect)       { return table->BgClipRect; }
            else if (rect_type == TRT_ColumnsRect)              { ImGuiTableColumn* c = &table->Columns[n]; return ImRect(c->MinX, table->InnerClipRect.Min.y, c->MaxX, table->InnerClipRect.Min.y + table->LastOuterHeight); }
            else if (rect_type == TRT_ColumnsWorkRect)          { ImGuiTableColumn* c = &table->Columns[n]; return ImRect(c->WorkMinX, table->WorkRect.Min.y, c->WorkMaxX, table->WorkRect.Max.y); }
            else if (rect_type == TRT_ColumnsClipRect)          { ImGuiTableColumn* c = &table->Columns[n]; return c->ClipRect; }
            else if (rect_type == TRT_ColumnsContentHeadersUsed){ ImGuiTableColumn* c = &table->Columns[n]; return ImRect(c->WorkMinX, table->InnerClipRect.Min.y, c->ContentMaxXHeadersUsed, table->InnerClipRect.Min.y + table->LastFirstRowHeight); } // Note: y1/y2 not always accurate
            else if (rect_type == TRT_ColumnsContentHeadersIdeal){ImGuiTableColumn* c = &table->Columns[n]; return ImRect(c->WorkMinX, table->InnerClipRect.Min.y, c->ContentMaxXHeadersIdeal, table->InnerClipRect.Min.y + table->LastFirstRowHeight); }
            else if (rect_type == TRT_ColumnsContentFrozen)     { ImGuiTableColumn* c = &table->Columns[n]; return ImRect(c->WorkMinX, table->InnerClipRect.Min.y, c->ContentMaxXFrozen, table->InnerClipRect.Min.y + table->LastFirstRowHeight); }
            else if (rect_type == TRT_ColumnsContentUnfrozen)   { ImGuiTableColumn* c = &table->Columns[n]; return ImRect(c->WorkMinX, table->InnerClipRect.Min.y + table->LastFirstRowHeight, c->ContentMaxXUnfrozen, table->InnerClipRect.Max.y); }
            IM_ASSERT(0);
            return ImRect();
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
cmpl $0xc, %esi
ja 0x5c4dd
movl %esi, %eax
leaq 0x5b700(%rip), %rcx     # 0xb799c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movsd 0xec(%rdi), %xmm0
movsd 0xf4(%rdi), %xmm1
jmp 0x5c49b
testl %edx, %edx
js 0x5c4be
movslq %edx, %rax
imulq $0x68, %rax, %rax
addq 0x10(%rdi), %rax
cmpq 0x18(%rdi), %rax
jae 0x5c4be
movss 0x120(%rdi), %xmm2
movss 0xd0(%rdi), %xmm3
addss %xmm2, %xmm3
movss 0x34(%rax), %xmm0
movss 0x40(%rax), %xmm1
jmp 0x5c495
movsd 0x11c(%rdi), %xmm0
movsd 0x124(%rdi), %xmm1
jmp 0x5c49b
testl %edx, %edx
js 0x5c4be
movslq %edx, %rax
imulq $0x68, %rax, %rax
addq 0x10(%rdi), %rax
cmpq 0x18(%rdi), %rax
jae 0x5c4be
movss 0x120(%rdi), %xmm1
addss 0xd0(%rdi), %xmm1
movss 0x34(%rax), %xmm0
unpcklps %xmm1, %xmm0            # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movss 0x44(%rax), %xmm1
movss 0x128(%rdi), %xmm2
jmp 0x5c3fa
testl %edx, %edx
js 0x5c4be
movslq %edx, %rax
imulq $0x68, %rax, %rax
addq 0x10(%rdi), %rax
cmpq 0x18(%rdi), %rax
jae 0x5c4be
movss 0x120(%rdi), %xmm2
movss 0xd0(%rdi), %xmm3
addss %xmm2, %xmm3
movss 0x34(%rax), %xmm0
movss 0x48(%rax), %xmm1
jmp 0x5c495
movsd 0x10c(%rdi), %xmm0
movsd 0x114(%rdi), %xmm1
jmp 0x5c49b
movsd 0x15c(%rdi), %xmm0
movsd 0x164(%rdi), %xmm1
jmp 0x5c49b
testl %edx, %edx
js 0x5c4be
movslq %edx, %rax
imulq $0x68, %rax, %rax
addq 0x10(%rdi), %rax
cmpq 0x18(%rdi), %rax
jae 0x5c4be
movss 0x110(%rdi), %xmm1
movss 0x118(%rdi), %xmm2
movss 0x34(%rax), %xmm0
unpcklps %xmm1, %xmm0            # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movss 0x38(%rax), %xmm1
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
jmp 0x5c49b
movsd 0xfc(%rdi), %xmm0
movsd 0x104(%rdi), %xmm1
jmp 0x5c49b
movsd 0x12c(%rdi), %xmm0
movsd 0x134(%rdi), %xmm1
jmp 0x5c49b
testl %edx, %edx
js 0x5c4be
movslq %edx, %rax
imulq $0x68, %rax, %rax
addq 0x10(%rdi), %rax
cmpq 0x18(%rdi), %rax
jae 0x5c4be
movss 0x120(%rdi), %xmm2
movss 0xcc(%rdi), %xmm3
addss %xmm2, %xmm3
movss 0x8(%rax), %xmm0
movss 0xc(%rax), %xmm1
jmp 0x5c495
testl %edx, %edx
js 0x5c4be
movslq %edx, %rax
imulq $0x68, %rax, %rax
addq 0x10(%rdi), %rax
cmpq 0x18(%rdi), %rax
jae 0x5c4be
movss 0x120(%rdi), %xmm2
movss 0xd0(%rdi), %xmm3
addss %xmm2, %xmm3
movss 0x34(%rax), %xmm0
movss 0x4c(%rax), %xmm1
unpcklps %xmm3, %xmm1            # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
unpcklps %xmm2, %xmm0            # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
popq %rbp
retq
testl %edx, %edx
js 0x5c4be
movslq %edx, %rax
imulq $0x68, %rax, %rax
addq 0x10(%rdi), %rax
cmpq 0x18(%rdi), %rax
jae 0x5c4be
movsd 0x20(%rax), %xmm0
movsd 0x28(%rax), %xmm1
jmp 0x5c49b
leaq 0x601f3(%rip), %rdi     # 0xbc6b8
leaq 0x5f173(%rip), %rsi     # 0xbb63f
leaq 0x601fe(%rip), %rcx     # 0xbc6d1
movl $0x20e, %edx            # imm = 0x20E
callq 0xc140
leaq 0x5dc08(%rip), %rdi     # 0xba0ec
leaq 0x5bc7a(%rip), %rsi     # 0xb8165
leaq 0x6016a(%rip), %rcx     # 0xbc65c
movl $0x2955, %edx           # imm = 0x2955
callq 0xc140