// File: /workspace/github_cpp_makefile_star2_O1/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
movq %rdi, %r15
movl 0x4(%rdx), %eax
testl %eax, %eax
movl %esi, -0x2c(%rbp)
jns 0x438bd
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
addl %eax, %ecx
xorl %r14d, %r14d
testl %ecx, %ecx
cmovgl %ecx, %r14d
movq %r14, %rdi
shlq $0x4, %rdi
movq 0xba479(%rip), %rax     # 0xfdcd0
testq %rax, %rax
je 0x43862
incl 0x3b4(%rax)
movq 0xba477(%rip), %rsi     # 0xfdce0
callq *0xb5ca1(%rip)          # 0xf9510
movq %rax, %r12
movq 0x8(%rbx), %rsi
testq %rsi, %rsi
je 0x438b2
movslq (%rbx), %rdx
shlq $0x4, %rdx
movq %r12, %rdi
callq 0xc080
movq 0x8(%rbx), %rdi
testq %rdi, %rdi
je 0x438a5
movq 0xba436(%rip), %rax     # 0xfdcd0
testq %rax, %rax
je 0x438a5
decl 0x3b4(%rax)
movq 0xba434(%rip), %rsi     # 0xfdce0
callq *0xb5c66(%rip)          # 0xf9518
movq %r12, 0x8(%rbx)
movl %r14d, 0x4(%rbx)
movl -0x2c(%rbp), %esi
movl $0x0, (%rbx)
movq (%r15), %r13
cmpq 0x8(%r15), %r13
jae 0x439b6
movq %r13, %r12
cmpb %sil, (%r13)
jne 0x439a7
movl (%rbx), %r14d
movl 0x4(%rbx), %eax
cmpl %eax, %r14d
jne 0x4398d
testl %eax, %eax
je 0x438fd
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
addl %eax, %ecx
jmp 0x43902
movl $0x8, %ecx
incl %r14d
cmpl %r14d, %ecx
cmovgl %ecx, %r14d
cmpl %r14d, %eax
jge 0x4398d
movq %r12, -0x38(%rbp)
movq 0xba3b4(%rip), %rax     # 0xfdcd0
testq %rax, %rax
je 0x43927
incl 0x3b4(%rax)
movslq %r14d, %rdi
shlq $0x4, %rdi
movq 0xba3ab(%rip), %rsi     # 0xfdce0
callq *0xb5bd5(%rip)          # 0xf9510
movq %rax, %r12
movq 0x8(%rbx), %rsi
testq %rsi, %rsi
je 0x4397e
movslq (%rbx), %rdx
shlq $0x4, %rdx
movq %r12, %rdi
callq 0xc080
movq 0x8(%rbx), %rdi
testq %rdi, %rdi
je 0x43971
movq 0xba36a(%rip), %rax     # 0xfdcd0
testq %rax, %rax
je 0x43971
decl 0x3b4(%rax)
movq 0xba368(%rip), %rsi     # 0xfdce0
callq *0xb5b9a(%rip)          # 0xf9518
movq %r12, 0x8(%rbx)
movl %r14d, 0x4(%rbx)
movq -0x38(%rbp), %r12
movl -0x2c(%rbp), %esi
movq 0x8(%rbx), %rax
movslq (%rbx), %rcx
shlq $0x4, %rcx
movq %r12, (%rax,%rcx)
movq %r13, 0x8(%rax,%rcx)
incl (%rbx)
leaq 0x1(%r13), %r12
incq %r13
cmpq 0x8(%r15), %r13
jb 0x438d3
jmp 0x439b9
movq %r13, %r12
cmpq %r13, %r12
je 0x43a7d
movl (%rbx), %r14d
movl 0x4(%rbx), %eax
cmpl %eax, %r14d
jne 0x43a67
incl %r14d
testl %eax, %eax
je 0x439e5
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
addl %eax, %ecx
jmp 0x439ea
movl $0x8, %ecx
cmpl %r14d, %ecx
cmovgl %ecx, %r14d
cmpl %r14d, %eax
jge 0x43a67
movslq %r14d, %rdi
shlq $0x4, %rdi
movq 0xba2cc(%rip), %rax     # 0xfdcd0
testq %rax, %rax
je 0x43a0f
incl 0x3b4(%rax)
movq 0xba2ca(%rip), %rsi     # 0xfdce0
callq *0xb5af4(%rip)          # 0xf9510
movq %rax, %r15
movq 0x8(%rbx), %rsi
testq %rsi, %rsi
je 0x43a5f
movslq (%rbx), %rdx
shlq $0x4, %rdx
movq %r15, %rdi
callq 0xc080
movq 0x8(%rbx), %rdi
testq %rdi, %rdi
je 0x43a52
movq 0xba289(%rip), %rax     # 0xfdcd0
testq %rax, %rax
je 0x43a52
decl 0x3b4(%rax)
movq 0xba287(%rip), %rsi     # 0xfdce0
callq *0xb5ab9(%rip)          # 0xf9518
movq %r15, 0x8(%rbx)
movl %r14d, 0x4(%rbx)
movq 0x8(%rbx), %rax
movslq (%rbx), %rcx
shlq $0x4, %rcx
movq %r12, (%rax,%rcx)
movq %r13, 0x8(%rax,%rcx)
incl (%rbx)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq