// File: /workspace/github_cpp_makefile_star2_O3/Ciaxur[P]yagb-emu/include/imgui/imgui.cpp
// Function: ImGui::BeginGroup()
void ImGui::BeginGroup()
{
    ImGuiContext& g = *GImGui;
    ImGuiWindow* window = g.CurrentWindow;

    g.GroupStack.resize(g.GroupStack.Size + 1);
    ImGuiGroupData& group_data = g.GroupStack.back();
    group_data.WindowID = window->ID;
    group_data.BackupCursorPos = window->DC.CursorPos;
    group_data.BackupCursorMaxPos = window->DC.CursorMaxPos;
    group_data.BackupIndent = window->DC.Indent;
    group_data.BackupGroupOffset = window->DC.GroupOffset;
    group_data.BackupCurrLineSize = window->DC.CurrLineSize;
    group_data.BackupCurrLineTextBaseOffset = window->DC.CurrLineTextBaseOffset;
    group_data.BackupActiveIdIsAlive = g.ActiveIdIsAlive;
    group_data.BackupActiveIdPreviousFrameIsAlive = g.ActiveIdPreviousFrameIsAlive;
    group_data.EmitItem = true;

    window->DC.GroupOffset.x = window->DC.CursorPos.x - window->Pos.x - window->DC.ColumnsOffset.x;
    window->DC.Indent = window->DC.GroupOffset;
    window->DC.CursorMaxPos = window->DC.CursorPos;
    window->DC.CurrLineSize = ImVec2(0.0f, 0.0f);
    if (g.LogEnabled)
        g.LogLinePosY = -FLT_MAX; // To enforce Log carriage return
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq 0xa5893(%rip), %r14     # 0xfbcd0
movq 0x1ae0(%r14), %r15
movl 0x1c60(%r14), %r13d
leal 0x1(%r13), %r12d
movl 0x1c64(%r14), %eax
cmpl %r13d, %eax
jg 0x564ff
testl %eax, %eax
je 0x56470
movl %eax, %ebx
shrl $0x1f, %ebx
addl %eax, %ebx
sarl %ebx
addl %eax, %ebx
jmp 0x56475
movl $0x8, %ebx
cmpl %r12d, %ebx
cmovlel %r12d, %ebx
movslq %ebx, %rax
shlq $0x4, %rax
leaq (%rax,%rax,2), %rdi
incl 0x3b4(%r14)
movq 0xa584b(%rip), %rsi     # 0xfbce0
callq *0xa1075(%rip)          # 0xf7510
movq 0x1c68(%r14), %rsi
testq %rsi, %rsi
je 0x564f1
movslq 0x1c60(%r14), %rcx
shlq $0x4, %rcx
leaq (%rcx,%rcx,2), %rdx
movq %rax, -0x30(%rbp)
movq %rax, %rdi
callq 0xc080
movq 0x1c68(%r14), %rdi
testq %rdi, %rdi
je 0x564e0
movq 0xa57fb(%rip), %rax     # 0xfbcd0
testq %rax, %rax
je 0x564e0
decl 0x3b4(%rax)
movq 0xa57f9(%rip), %rsi     # 0xfbce0
callq *0xa102b(%rip)          # 0xf7518
movq -0x30(%rbp), %rax
movq %rax, 0x1c68(%r14)
movl %ebx, 0x1c64(%r14)
movl %r12d, 0x1c60(%r14)
testl %r13d, %r13d
js 0x565f4
movq 0x1c68(%r14), %rax
movl %r12d, %ecx
leaq (%rcx,%rcx,2), %rcx
shlq $0x4, %rcx
movl 0x8(%r15), %edx
movl %edx, -0x30(%rax,%rcx)
movq 0xd8(%r15), %rdx
movq %rdx, -0x2c(%rax,%rcx)
movq 0xf0(%r15), %rdx
movq %rdx, -0x24(%rax,%rcx)
movl 0x118(%r15), %edx
movl %edx, -0x1c(%rax,%rcx)
movl 0x120(%r15), %edx
movl %edx, -0x18(%rax,%rcx)
movq 0x100(%r15), %rdx
movq %rdx, -0x14(%rax,%rcx)
movss 0x110(%r15), %xmm0
movss %xmm0, -0xc(%rax,%rcx)
movl 0x1b34(%r14), %edx
movl %edx, -0x8(%rax,%rcx)
movb 0x1b74(%r14), %dl
movb %dl, -0x4(%rax,%rcx)
movb $0x1, -0x3(%rax,%rcx)
movss 0xd8(%r15), %xmm0
subss 0x10(%r15), %xmm0
subss 0x11c(%r15), %xmm0
movss %xmm0, 0x120(%r15)
movss %xmm0, 0x118(%r15)
movq 0xd8(%r15), %rax
movq %rax, 0xf0(%r15)
movq $0x0, 0x100(%r15)
cmpb $0x1, 0x3138(%r14)
jne 0x565e5
movl $0xff7fffff, 0x3158(%r14) # imm = 0xFF7FFFFF
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x773af(%rip), %rdi     # 0xcd9aa
leaq 0x63089(%rip), %rsi     # 0xb968b
leaq 0x64748(%rip), %rcx     # 0xbad51
movl $0x666, %edx            # imm = 0x666
callq 0xc140