// File: /workspace/github_cpp_makefile_star2_O1/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 0xa678e(%rip), %r14     # 0xfdcd0
movq 0x1ae0(%r14), %r15
movl 0x1c60(%r14), %r13d
leal 0x1(%r13), %r12d
movl 0x1c64(%r14), %eax
cmpl %r13d, %eax
jg 0x57611
testl %eax, %eax
je 0x57575
movl %eax, %ebx
shrl $0x1f, %ebx
addl %eax, %ebx
sarl %ebx
addl %eax, %ebx
jmp 0x5757a
movl $0x8, %ebx
cmpl %r12d, %ebx
cmovlel %r12d, %ebx
cmpl %ebx, %eax
jge 0x57611
movslq %ebx, %rax
shlq $0x4, %rax
leaq (%rax,%rax,2), %rdi
testq %r14, %r14
je 0x575a0
incl 0x3b4(%r14)
movq 0xa6739(%rip), %rsi     # 0xfdce0
callq *0xa1f63(%rip)          # 0xf9510
movq 0x1c68(%r14), %rsi
testq %rsi, %rsi
je 0x57603
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 0x575f2
movq 0xa66e9(%rip), %rax     # 0xfdcd0
testq %rax, %rax
je 0x575f2
decl 0x3b4(%rax)
movq 0xa66e7(%rip), %rsi     # 0xfdce0
callq *0xa1f19(%rip)          # 0xf9518
movq -0x30(%rbp), %rax
movq %rax, 0x1c68(%r14)
movl %ebx, 0x1c64(%r14)
movl %r12d, 0x1c60(%r14)
testl %r13d, %r13d
js 0x57706
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 0x576f7
movl $0xff7fffff, 0x3158(%r14) # imm = 0xFF7FFFFF
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x782cd(%rip), %rdi     # 0xcf9da
leaq 0x63f77(%rip), %rsi     # 0xbb68b
leaq 0x65663(%rip), %rcx     # 0xbcd7e
movl $0x666, %edx            # imm = 0x666
callq 0xc140