// File: 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
subq $0x60, %rsp
movq %rdi, -0x18(%rbp)
movl %esi, -0x1c(%rbp)
movl %edx, -0x20(%rbp)
cmpl $0x0, -0x1c(%rbp)
jne 0xe34d7
movq -0x18(%rbp), %rax
movq 0xec(%rax), %rcx
movq %rcx, -0x10(%rbp)
movq 0xf4(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0xe381f
cmpl $0x1, -0x1c(%rbp)
jne 0xe34fc
movq -0x18(%rbp), %rax
movq 0xfc(%rax), %rcx
movq %rcx, -0x10(%rbp)
movq 0x104(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0xe381f
cmpl $0x2, -0x1c(%rbp)
jne 0xe3521
movq -0x18(%rbp), %rax
movq 0x10c(%rax), %rcx
movq %rcx, -0x10(%rbp)
movq 0x114(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0xe381f
cmpl $0x3, -0x1c(%rbp)
jne 0xe3546
movq -0x18(%rbp), %rax
movq 0x15c(%rax), %rcx
movq %rcx, -0x10(%rbp)
movq 0x164(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0xe381f
cmpl $0x4, -0x1c(%rbp)
jne 0xe356b
movq -0x18(%rbp), %rax
movq 0x11c(%rax), %rcx
movq %rcx, -0x10(%rbp)
movq 0x124(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0xe381f
cmpl $0x5, -0x1c(%rbp)
jne 0xe3590
movq -0x18(%rbp), %rax
movq 0x12c(%rax), %rcx
movq %rcx, -0x10(%rbp)
movq 0x134(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0xe381f
cmpl $0x6, -0x1c(%rbp)
jne 0xe35ee
movq -0x18(%rbp), %rdi
addq $0x10, %rdi
movl -0x20(%rbp), %esi
callq 0xeea20
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x120(%rax), %xmm1
movq -0x28(%rbp), %rax
movss 0xc(%rax), %xmm2
movq -0x18(%rbp), %rax
movss 0x120(%rax), %xmm3
movq -0x18(%rbp), %rax
addss 0xcc(%rax), %xmm3
leaq -0x10(%rbp), %rdi
callq 0xec090
jmp 0xe381f
cmpl $0x7, -0x1c(%rbp)
jne 0xe3640
movq -0x18(%rbp), %rdi
addq $0x10, %rdi
movl -0x20(%rbp), %esi
callq 0xeea20
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movss 0x34(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x110(%rax), %xmm1
movq -0x30(%rbp), %rax
movss 0x38(%rax), %xmm2
movq -0x18(%rbp), %rax
movss 0x118(%rax), %xmm3
leaq -0x10(%rbp), %rdi
callq 0xec090
jmp 0xe381f
cmpl $0x8, -0x1c(%rbp)
jne 0xe3673
movq -0x18(%rbp), %rdi
addq $0x10, %rdi
movl -0x20(%rbp), %esi
callq 0xeea20
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq 0x20(%rax), %rcx
movq %rcx, -0x10(%rbp)
movq 0x28(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0xe381f
cmpl $0x9, -0x1c(%rbp)
jne 0xe36d1
movq -0x18(%rbp), %rdi
addq $0x10, %rdi
movl -0x20(%rbp), %esi
callq 0xeea20
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movss 0x34(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x120(%rax), %xmm1
movq -0x40(%rbp), %rax
movss 0x48(%rax), %xmm2
movq -0x18(%rbp), %rax
movss 0x120(%rax), %xmm3
movq -0x18(%rbp), %rax
addss 0xd0(%rax), %xmm3
leaq -0x10(%rbp), %rdi
callq 0xec090
jmp 0xe381f
cmpl $0xa, -0x1c(%rbp)
jne 0xe372f
movq -0x18(%rbp), %rdi
addq $0x10, %rdi
movl -0x20(%rbp), %esi
callq 0xeea20
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movss 0x34(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x120(%rax), %xmm1
movq -0x48(%rbp), %rax
movss 0x4c(%rax), %xmm2
movq -0x18(%rbp), %rax
movss 0x120(%rax), %xmm3
movq -0x18(%rbp), %rax
addss 0xd0(%rax), %xmm3
leaq -0x10(%rbp), %rdi
callq 0xec090
jmp 0xe381f
cmpl $0xb, -0x1c(%rbp)
jne 0xe378d
movq -0x18(%rbp), %rdi
addq $0x10, %rdi
movl -0x20(%rbp), %esi
callq 0xeea20
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
movss 0x34(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x120(%rax), %xmm1
movq -0x50(%rbp), %rax
movss 0x40(%rax), %xmm2
movq -0x18(%rbp), %rax
movss 0x120(%rax), %xmm3
movq -0x18(%rbp), %rax
addss 0xd0(%rax), %xmm3
leaq -0x10(%rbp), %rdi
callq 0xec090
jmp 0xe381f
cmpl $0xc, -0x1c(%rbp)
jne 0xe37e8
movq -0x18(%rbp), %rdi
addq $0x10, %rdi
movl -0x20(%rbp), %esi
callq 0xeea20
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movss 0x34(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x120(%rax), %xmm1
movq -0x18(%rbp), %rax
addss 0xd0(%rax), %xmm1
movq -0x58(%rbp), %rax
movss 0x44(%rax), %xmm2
movq -0x18(%rbp), %rax
movss 0x128(%rax), %xmm3
leaq -0x10(%rbp), %rdi
callq 0xec090
jmp 0xe381f
jmp 0xe37ea
jmp 0xe37ec
jmp 0xe37ee
jmp 0xe37f0
jmp 0xe37f2
jmp 0xe37f4
jmp 0xe37f6
jmp 0xe37f8
jmp 0xe37fa
jmp 0xe37fc
jmp 0xe37fe
jmp 0xe3800
leaq 0x91903(%rip), %rdi     # 0x17510a
leaq 0x8f6fb(%rip), %rsi     # 0x172f09
movl $0x2955, %edx           # imm = 0x2955
leaq 0x9423a(%rip), %rcx     # 0x177a54
callq 0xd180
movsd -0x10(%rbp), %xmm0
movsd -0x8(%rbp), %xmm1
addq $0x60, %rsp
popq %rbp
retq
nop