// File: Ciaxur[P]yagb-emu/include/imgui/imgui_tables.cpp
// Function: ImGui::TableBeginRow(ImGuiTable*)
void ImGui::TableBeginRow(ImGuiTable* table)
{
    ImGuiWindow* window = table->InnerWindow;
    IM_ASSERT(!table->IsInsideRow);

    // New row
    table->CurrentRow++;
    table->CurrentColumn = -1;
    table->RowBgColor[0] = table->RowBgColor[1] = IM_COL32_DISABLE;
    table->RowCellDataCurrent = -1;
    table->IsInsideRow = true;

    // Begin frozen rows
    float next_y1 = table->RowPosY2;
    if (table->CurrentRow == 0 && table->FreezeRowsCount > 0)
        next_y1 = window->DC.CursorPos.y = table->OuterRect.Min.y;

    table->RowPosY1 = table->RowPosY2 = next_y1;
    table->RowTextBaseline = 0.0f;
    table->RowIndentOffsetX = window->DC.Indent.x - table->HostIndentX; // Lock indent
    window->DC.PrevLineTextBaseOffset = 0.0f;
    window->DC.CursorMaxPos.y = next_y1;

    // Making the header BG color non-transparent will allow us to overlay it multiple times when handling smooth dragging.
    if (table->RowFlags & ImGuiTableRowFlags_Headers)
    {
        TableSetBgColor(ImGuiTableBgTarget_RowBg0, GetColorU32(ImGuiCol_TableHeaderBg));
        if (table->CurrentRow == 0)
            table->IsUsingHeaders = true;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x1d0(%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movb 0x249(%rax), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x13168d
jmp 0x13168f
jmp 0x1316ae
leaq 0x5b464(%rip), %rdi     # 0x18cafa
leaq 0x5a905(%rip), %rsi     # 0x18bfa2
movl $0x642, %edx            # imm = 0x642
leaq 0x5b465(%rip), %rcx     # 0x18cb0e
callq 0xd180
movq -0x8(%rbp), %rax
movl 0x70(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x70(%rax)
movq -0x8(%rbp), %rax
movl $0xffffffff, 0x74(%rax) # imm = 0xFFFFFFFF
movq -0x8(%rbp), %rax
movl $0x1000000, 0x9c(%rax)  # imm = 0x1000000
movq -0x8(%rbp), %rax
movl $0x1000000, 0x98(%rax)  # imm = 0x1000000
movq -0x8(%rbp), %rax
movb $-0x1, 0x244(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x249(%rax)
movq -0x8(%rbp), %rax
movss 0x80(%rax), %xmm0
movss %xmm0, -0x14(%rbp)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x70(%rax)
jne 0x131740
movq -0x8(%rbp), %rax
movsbl 0x241(%rax), %eax
cmpl $0x0, %eax
jle 0x131740
movq -0x8(%rbp), %rax
movss 0xf0(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0xdc(%rax)
movss %xmm0, -0x14(%rbp)
movss -0x14(%rbp), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x80(%rax)
movq -0x8(%rbp), %rax
movss %xmm0, 0x7c(%rax)
movq -0x8(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0x88(%rax)
movq -0x10(%rbp), %rax
movss 0x118(%rax), %xmm0
movq -0x8(%rbp), %rax
subss 0xb0(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x8c(%rax)
movq -0x10(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0x114(%rax)
movss -0x14(%rbp), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0xf4(%rax)
movq -0x8(%rbp), %rax
movl 0x90(%rax), %eax
shll $0x10, %eax
sarl $0x10, %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x1317ff
movl $0x2a, %edi
movss 0x3f46a(%rip), %xmm0    # 0x170c3c
callq 0xc76e0
movl %eax, %esi
movl $0x1, %edi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x131310
movq -0x8(%rbp), %rax
cmpl $0x0, 0x70(%rax)
jne 0x1317fd
movq -0x8(%rbp), %rax
movb $0x1, 0x24c(%rax)
jmp 0x1317ff
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)