// File: /workspace/github_cpp_makefile_star2_O3/Ciaxur[P]yagb-emu/include/imgui/imgui_draw.cpp
// Function: ImFontGlyphRangesBuilder::BuildRanges(ImVector<unsigned short>*)
void ImFontGlyphRangesBuilder::BuildRanges(ImVector<ImWchar>* out_ranges)
{
    const int max_codepoint = IM_UNICODE_CODEPOINT_MAX;
    for (int n = 0; n <= max_codepoint; n++)
        if (GetBit(n))
        {
            out_ranges->push_back((ImWchar)n);
            while (n < max_codepoint && GetBit(n + 1))
                n++;
            out_ranges->push_back((ImWchar)n);
        }
    out_ranges->push_back(0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
xorl %r12d, %r12d
movl %r12d, %eax
sarl $0x5, %eax
js 0x814e6
cmpl %eax, (%r14)
jle 0x814e6
movq 0x8(%r14), %rax
movl %r12d, %ecx
shrl $0x5, %ecx
movl (%rax,%rcx,4), %eax
btl %r12d, %eax
jae 0x81451
movl (%rbx), %r13d
cmpl 0x4(%rbx), %r13d
jne 0x81345
testl %r13d, %r13d
je 0x8134b
movl %r13d, %eax
shrl $0x1f, %eax
addl %r13d, %eax
sarl %eax
addl %r13d, %eax
jmp 0x81350
movq 0x8(%rbx), %r15
jmp 0x81393
movl $0x8, %eax
incl %r13d
cmpl %r13d, %eax
cmovgl %eax, %r13d
movslq %r13d, %rdi
addq %rdi, %rdi
callq 0x41c63
movq %rax, %r15
movq 0x8(%rbx), %rsi
testq %rsi, %rsi
je 0x81388
movslq (%rbx), %rdx
addq %rdx, %rdx
movq %r15, %rdi
callq 0xc080
movq 0x8(%rbx), %rdi
callq 0x41d3c
movq %r15, 0x8(%rbx)
movl %r13d, 0x4(%rbx)
movl (%rbx), %r13d
movl %r12d, %ecx
movslq %r13d, %rax
movw %r12w, (%r15,%rax,2)
movl (%rbx), %r13d
leal 0x1(%r13), %eax
movl %eax, (%rbx)
movl (%r14), %edx
movq 0x8(%r14), %rsi
decl %r12d
cmpq $0xfffe, %rcx           # imm = 0xFFFE
ja 0x813de
incq %rcx
movl %ecx, %edi
shrl $0x5, %edi
cmpl %edi, %edx
jle 0x814e6
movq %rcx, %rdi
shrq $0x5, %rdi
movl (%rsi,%rdi,4), %edi
incl %r12d
btl %ecx, %edi
jb 0x813b1
jmp 0x813e4
movl $0xffff, %r12d          # imm = 0xFFFF
cmpl 0x4(%rbx), %eax
jne 0x813fa
testl %eax, %eax
je 0x81400
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
addl %eax, %ecx
jmp 0x81405
movq 0x8(%rbx), %r15
jmp 0x81448
movl $0x8, %ecx
addl $0x2, %r13d
cmpl %r13d, %ecx
cmovgl %ecx, %r13d
movslq %r13d, %rdi
addq %rdi, %rdi
callq 0x41c63
movq %rax, %r15
movq 0x8(%rbx), %rsi
testq %rsi, %rsi
je 0x8143e
movslq (%rbx), %rdx
addq %rdx, %rdx
movq %r15, %rdi
callq 0xc080
movq 0x8(%rbx), %rdi
callq 0x41d3c
movq %r15, 0x8(%rbx)
movl %r13d, 0x4(%rbx)
movl (%rbx), %eax
cltq
movw %r12w, (%r15,%rax,2)
incl (%rbx)
leal 0x1(%r12), %eax
cmpl $0xffff, %r12d          # imm = 0xFFFF
movl %eax, %r12d
jl 0x812fb
movl (%rbx), %eax
cmpl 0x4(%rbx), %eax
jne 0x81482
leal 0x1(%rax), %r15d
testl %eax, %eax
je 0x81488
movl %eax, %ecx
shrl $0x1f, %ecx
addl %eax, %ecx
sarl %ecx
addl %eax, %ecx
jmp 0x8148d
movq 0x8(%rbx), %r14
jmp 0x814cc
movl $0x8, %ecx
cmpl %r15d, %ecx
cmovgl %ecx, %r15d
movslq %r15d, %rdi
addq %rdi, %rdi
callq 0x41c63
movq %rax, %r14
movq 0x8(%rbx), %rsi
testq %rsi, %rsi
je 0x814c2
movslq (%rbx), %rdx
addq %rdx, %rdx
movq %r14, %rdi
callq 0xc080
movq 0x8(%rbx), %rdi
callq 0x41d3c
movq %r14, 0x8(%rbx)
movl %r15d, 0x4(%rbx)
movl (%rbx), %eax
cltq
movw $0x0, (%r14,%rax,2)
incl (%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x3818b(%rip), %rdi     # 0xb9678
leaq 0x38197(%rip), %rsi     # 0xb968b
leaq 0x4d2e6(%rip), %rcx     # 0xce7e1
movl $0x65d, %edx            # imm = 0x65D
callq 0xc140
nop