// File: /workspace/github_cpp_makefile_star2_O2/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
pushq %rbx
pushq %rax
cmpl $0xc, %esi
ja 0x47fd4
movq %rdi, %rbx
movl %esi, %eax
leaq 0x54b97(%rip), %rcx     # 0x9c9cc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movsd 0xec(%rbx), %xmm0
movsd 0xf4(%rbx), %xmm1
jmp 0x47fb3
leaq 0x10(%rbx), %rdi
movl %edx, %esi
callq 0x4c4c6
movss 0x120(%rbx), %xmm0
movups 0x34(%rax), %xmm2
movups 0x40(%rax), %xmm3
jmp 0x47f99
movsd 0x11c(%rbx), %xmm0
movsd 0x124(%rbx), %xmm1
jmp 0x47fb3
leaq 0x10(%rbx), %rdi
movl %edx, %esi
callq 0x4c4c6
movss 0x120(%rbx), %xmm0
addss 0xd0(%rbx), %xmm0
movups 0x34(%rax), %xmm1
movups 0x44(%rax), %xmm2
movlhps %xmm1, %xmm0            # xmm0 = xmm0[0],xmm1[0]
shufps $0xe2, %xmm1, %xmm0     # xmm0 = xmm0[2,0],xmm1[2,3]
movss 0x128(%rbx), %xmm1
movlhps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0]
shufps $0xe2, %xmm2, %xmm1     # xmm1 = xmm1[2,0],xmm2[2,3]
jmp 0x47fb3
leaq 0x10(%rbx), %rdi
movl %edx, %esi
callq 0x4c4c6
movss 0x120(%rbx), %xmm0
movups 0x34(%rax), %xmm2
movups 0x48(%rax), %xmm3
jmp 0x47f99
movsd 0x10c(%rbx), %xmm0
movsd 0x114(%rbx), %xmm1
jmp 0x47fb3
movsd 0x15c(%rbx), %xmm0
movsd 0x164(%rbx), %xmm1
jmp 0x47fb3
leaq 0x10(%rbx), %rdi
movl %edx, %esi
callq 0x4c4c6
movups 0x34(%rax), %xmm2
movups 0x38(%rax), %xmm3
movss 0x110(%rbx), %xmm0
movss 0x118(%rbx), %xmm1
jmp 0x47fa5
movsd 0xfc(%rbx), %xmm0
movsd 0x104(%rbx), %xmm1
jmp 0x47fb3
movsd 0x12c(%rbx), %xmm0
movsd 0x134(%rbx), %xmm1
jmp 0x47fb3
leaq 0x10(%rbx), %rdi
movl %edx, %esi
callq 0x4c4c6
movss 0x120(%rbx), %xmm0
movups 0x8(%rax), %xmm2
movups 0xc(%rax), %xmm3
movss 0xcc(%rbx), %xmm1
jmp 0x47fa1
leaq 0x10(%rbx), %rdi
movl %edx, %esi
callq 0x4c4c6
movss 0x120(%rbx), %xmm0
movups 0x34(%rax), %xmm2
movups 0x4c(%rax), %xmm3
movss 0xd0(%rbx), %xmm1
addss %xmm0, %xmm1
movlhps %xmm2, %xmm0            # xmm0 = xmm0[0],xmm2[0]
shufps $0xe2, %xmm2, %xmm0     # xmm0 = xmm0[2,0],xmm2[2,3]
movlhps %xmm3, %xmm1            # xmm1 = xmm1[0],xmm3[0]
shufps $0xe2, %xmm3, %xmm1     # xmm1 = xmm1[2,0],xmm3[2,3]
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
addq $0x10, %rbx
movq %rbx, %rdi
movl %edx, %esi
callq 0x4c4c6
movsd 0x20(%rax), %xmm0
movsd 0x28(%rax), %xmm1
jmp 0x47fb3
leaq 0x57141(%rip), %rdi     # 0x9f11c
leaq 0x551b3(%rip), %rsi     # 0x9d195
leaq 0x596bf(%rip), %rcx     # 0xa16a8
movl $0x2955, %edx           # imm = 0x2955
callq 0xc140