// File: /workspace/github_cpp_makefile_star2_O3/Ciaxur[P]yagb-emu/include/imgui/imgui.cpp
// Function: ImGuiTextFilter::ImGuiTextRange::split(char, ImVector<ImGuiTextFilter::ImGuiTextRange>*) const
void ImGuiTextFilter::ImGuiTextRange::split(char separator, ImVector<ImGuiTextRange>* out) const
{
    out->resize(0);
    const char* wb = b;
    const char* we = wb;
    while (we < e)
    {
        if (*we == separator)
        {
            out->push_back(ImGuiTextRange(wb, we));
            wb = we + 1;
        }
        we++;
    }
    if (wb != we)
        out->push_back(ImGuiTextRange(wb, we));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdx, %rbx
movl %esi, %r14d
cmpl $0x0, 0x4(%rdx)
movq %rdi, -0x30(%rbp)
jns 0x43012
movq 0xb8d2a(%rip), %rax     # 0xfbcd0
testq %rax, %rax
je 0x42fb1
incl 0x3b4(%rax)
movq 0xb8d28(%rip), %rsi     # 0xfbce0
xorl %edi, %edi
callq *0xb4550(%rip)          # 0xf7510
movq %rax, %r12
movq 0x8(%rbx), %rsi
testq %rsi, %rsi
je 0x43003
movslq (%rbx), %rdx
shlq $0x4, %rdx
movq %r12, %rdi
callq 0xc080
movq 0x8(%rbx), %rdi
testq %rdi, %rdi
je 0x42ff6
movq 0xb8ce5(%rip), %rax     # 0xfbcd0
testq %rax, %rax
je 0x42ff6
decl 0x3b4(%rax)
movq 0xb8ce3(%rip), %rsi     # 0xfbce0
callq *0xb4515(%rip)          # 0xf7518
movq %r12, 0x8(%rbx)
movl $0x0, 0x4(%rbx)
movq -0x30(%rbp), %rdi
movl $0x0, (%rbx)
movq (%rdi), %r13
movq 0x8(%rdi), %rax
cmpq %rax, %r13
jae 0x431e9
xorl %r15d, %r15d
movq %r13, %rcx
movl %r14d, -0x34(%rbp)
cmpb %r14b, (%r13)
jne 0x43112
cmpl 0x4(%rbx), %r15d
jne 0x43057
testl %r15d, %r15d
je 0x43060
movl %r15d, %eax
shrl $0x1f, %eax
addl %r15d, %eax
sarl %eax
addl %r15d, %eax
jmp 0x43065
movq 0x8(%rbx), %r12
jmp 0x430f1
movl $0x8, %eax
movq %rcx, %r14
incl %r15d
cmpl %r15d, %eax
cmovgl %eax, %r15d
movq 0xb8c57(%rip), %rax     # 0xfbcd0
testq %rax, %rax
je 0x43084
incl 0x3b4(%rax)
movslq %r15d, %rdi
shlq $0x4, %rdi
movq 0xb8c4e(%rip), %rsi     # 0xfbce0
callq *0xb4478(%rip)          # 0xf7510
movq %rax, %r12
movq 0x8(%rbx), %rsi
testq %rsi, %rsi
je 0x430db
movslq (%rbx), %rdx
shlq $0x4, %rdx
movq %r12, %rdi
callq 0xc080
movq 0x8(%rbx), %rdi
testq %rdi, %rdi
je 0x430ce
movq 0xb8c0d(%rip), %rax     # 0xfbcd0
testq %rax, %rax
je 0x430ce
decl 0x3b4(%rax)
movq 0xb8c0b(%rip), %rsi     # 0xfbce0
callq *0xb443d(%rip)          # 0xf7518
movq %r12, 0x8(%rbx)
movl %r15d, 0x4(%rbx)
movl (%rbx), %r15d
movq %r14, %rcx
movl -0x34(%rbp), %r14d
movq -0x30(%rbp), %rdi
movslq %r15d, %rax
shlq $0x4, %rax
movq %rcx, (%r12,%rax)
movq %r13, 0x8(%r12,%rax)
movl (%rbx), %r15d
incl %r15d
movl %r15d, (%rbx)
leaq 0x1(%r13), %rcx
movq 0x8(%rdi), %rax
incq %r13
cmpq %rax, %r13
jb 0x43032
cmpq %rcx, %r13
je 0x431e9
cmpl 0x4(%rbx), %r15d
jne 0x43146
leal 0x1(%r15), %r12d
testl %r15d, %r15d
je 0x4314f
movl %r15d, %eax
shrl $0x1f, %eax
addl %r15d, %eax
sarl %eax
addl %r15d, %eax
jmp 0x43154
movq 0x8(%rbx), %r14
jmp 0x431d7
movl $0x8, %eax
movq %rcx, -0x30(%rbp)
cmpl %r12d, %eax
cmovgl %eax, %r12d
movslq %r12d, %rdi
shlq $0x4, %rdi
movq 0xb8b63(%rip), %rax     # 0xfbcd0
testq %rax, %rax
je 0x43178
incl 0x3b4(%rax)
movq 0xb8b61(%rip), %rsi     # 0xfbce0
callq *0xb438b(%rip)          # 0xf7510
movq %rax, %r14
movq 0x8(%rbx), %rsi
testq %rsi, %rsi
je 0x431c8
movslq (%rbx), %rdx
shlq $0x4, %rdx
movq %r14, %rdi
callq 0xc080
movq 0x8(%rbx), %rdi
testq %rdi, %rdi
je 0x431bb
movq 0xb8b20(%rip), %rax     # 0xfbcd0
testq %rax, %rax
je 0x431bb
decl 0x3b4(%rax)
movq 0xb8b1e(%rip), %rsi     # 0xfbce0
callq *0xb4350(%rip)          # 0xf7518
movq %r14, 0x8(%rbx)
movl %r12d, 0x4(%rbx)
movl (%rbx), %r15d
movq -0x30(%rbp), %rcx
movslq %r15d, %rax
shlq $0x4, %rax
movq %rcx, (%r14,%rax)
movq %r13, 0x8(%r14,%rax)
incl (%rbx)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq