// File: /workspace/github_cpp_makefile_star2_O2/Ciaxur[P]yagb-emu/include/imgui/imgui_demo.cpp
// Function: ExampleAppConsole::ExecCommand(char const*)
void    ExecCommand(const char* command_line)
    {
        AddLog("# %s\n", command_line);

        // Insert into history. First find match and delete it so it can be pushed to the back.
        // This isn't trying to be smart or optimal.
        HistoryPos = -1;
        for (int i = History.Size - 1; i >= 0; i--)
            if (Stricmp(History[i], command_line) == 0)
            {
                free(History[i]);
                History.erase(History.begin() + i);
                break;
            }
        History.push_back(Strdup(command_line));

        // Process command
        if (Stricmp(command_line, "CLEAR") == 0)
        {
            ClearLog();
        }
        else if (Stricmp(command_line, "HELP") == 0)
        {
            AddLog("Commands:");
            for (int i = 0; i < Commands.Size; i++)
                AddLog("- %s", Commands[i]);
        }
        else if (Stricmp(command_line, "HISTORY") == 0)
        {
            int first = History.Size - 10;
            for (int i = first > 0 ? first : 0; i < History.Size; i++)
                AddLog("%3d: %s\n", i, History[i]);
        }
        else
        {
            AddLog("Unknown command: '%s'\n", command_line);
        }

        // On command input, we scroll to bottom even if AutoScroll==false
        ScrollToBottom = true;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rsi, %r15
movq %rdi, %rbx
leaq 0x4c7ed(%rip), %rsi     # 0xac901
movq %r15, %rdx
xorl %eax, %eax
callq 0x5fe04
orl $-0x1, 0x130(%rbx)
leaq 0x120(%rbx), %r14
movl 0x120(%rbx), %r12d
testl %r12d, %r12d
jle 0x6017e
decl %r12d
movq %r14, %rdi
movl %r12d, %esi
callq 0x5fefa
movq (%rax), %rdi
movq %r15, %rsi
callq 0x6065c
testl %eax, %eax
jne 0x60133
movq %r14, %rdi
movl %r12d, %esi
callq 0x5fefa
movq (%rax), %rdi
callq 0xc170
movl %r12d, %esi
shlq $0x3, %rsi
addq 0x128(%rbx), %rsi
movq %r14, %rdi
callq 0x606b2
movq %r15, %rdi
callq 0x5fffe
leaq -0x28(%rbp), %rsi
movq %rax, (%rsi)
movq %r14, %rdi
callq 0x5ffb0
leaq 0x4c4b8(%rip), %rsi     # 0xac654
movq %r15, %rdi
callq 0x6065c
testl %eax, %eax
je 0x601e4
leaq 0x4c498(%rip), %rsi     # 0xac647
movq %r15, %rdi
callq 0x6065c
testl %eax, %eax
je 0x60200
leaq 0x4c48a(%rip), %rsi     # 0xac64c
movq %r15, %rdi
callq 0x6065c
testl %eax, %eax
je 0x60247
leaq 0x4c74a(%rip), %rsi     # 0xac91f
movq %rbx, %rdi
movq %r15, %rdx
xorl %eax, %eax
callq 0x5fe04
jmp 0x601ec
movq %rbx, %rdi
callq 0x5fd78
movb $0x1, 0x251(%rbx)
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x4c700(%rip), %rsi     # 0xac907
movq %rbx, %rdi
xorl %eax, %eax
callq 0x5fe04
leaq 0x110(%rbx), %r14
leaq 0x4c6f2(%rip), %r15     # 0xac911
xorl %r12d, %r12d
cmpl (%r14), %r12d
jge 0x601ec
movq %r14, %rdi
movl %r12d, %esi
callq 0x60626
movq (%rax), %rdx
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x5fe04
incl %r12d
jmp 0x60222
movl (%r14), %eax
cmpl $0xb, %eax
pushq $0xa
popq %r15
cmovgel %eax, %r15d
addl $-0xa, %r15d
leaq 0x4c6b6(%rip), %r12     # 0xac916
cmpl %eax, %r15d
jge 0x601ec
movq %r14, %rdi
movl %r15d, %esi
callq 0x5fefa
movq (%rax), %rcx
movq %rbx, %rdi
movq %r12, %rsi
movl %r15d, %edx
xorl %eax, %eax
callq 0x5fe04
incl %r15d
movl 0x120(%rbx), %eax
jmp 0x60260