// File: /workspace/github_cpp_makefile_star2_O3/dadocolussi[P]gdc-circular_queue/tests/catch.hpp
// Function: Catch::XmlEncode::encodeTo(std::ostream&) const
void encodeTo( std::ostream& os ) const {

            // Apostrophe escaping not necessary if we always use " to write attributes
            // (see: http://www.w3.org/TR/xml/#syntax)

            for( std::size_t i = 0; i < m_str.size(); ++ i ) {
                char c = m_str[i];
                switch( c ) {
                    case '<':   os << "&lt;"; break;
                    case '&':   os << "&amp;"; break;

                    case '>':
                        // See: http://www.w3.org/TR/xml/#syntax
                        if( i > 2 && m_str[i-1] == ']' && m_str[i-2] == ']' )
                            os << "&gt;";
                        else
                            os << c;
                        break;

                    case '\"':
                        if( m_forWhat == ForAttributes )
                            os << "&quot;";
                        else
                            os << c;
                        break;

                    default:
                        // Escape control chars - based on contribution by @espenalb in PR #465
                        if ( ( c < '\x09' ) || ( c > '\x0D' && c < '\x20') || c=='\x7F' )
                            os << "&#x" << std::uppercase << std::hex << static_cast<int>( c );
                        else
                            os << c;
                }
            }
        }

// Assembly:
cmpq $0x0, 0x8(%rdi)
je 0x2c39a
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
xorl %r15d, %r15d
leaq 0x19593(%rip), %r13     # 0x457e5
leaq 0x19587(%rip), %r12     # 0x457e0
movq (%r14), %rcx
movb (%rcx,%r15), %al
movzbl %al, %edx
cmpl $0x3b, %edx
jg 0x2c286
cmpl $0x22, %edx
je 0x2c302
cmpl $0x26, %edx
jne 0x2c2a4
movl $0x5, %edx
movq %rbx, %rdi
movq %r13, %rsi
jmp 0x2c37a
cmpl $0x3e, %edx
je 0x2c31a
cmpl $0x3c, %edx
jne 0x2c2a4
movl $0x4, %edx
movq %rbx, %rdi
movq %r12, %rsi
jmp 0x2c37a
cmpb $0x9, %al
jl 0x2c2be
leal -0xe(%rax), %ecx
cmpb $0x12, %cl
setae %cl
cmpb $0x7f, %al
setne %dl
testb %cl, %dl
jne 0x2c369
movsbl %al, %ebp
movl $0x3, %edx
movq %rbx, %rdi
leaq 0x19527(%rip), %rsi     # 0x457f7
callq 0xb530
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x18(%rbx,%rax)
movq %rbx, %rdi
movl %ebp, %esi
callq 0xb7e0
jmp 0x2c37f
cmpl $0x1, 0x20(%r14)
jne 0x2c355
movl $0x6, %edx
movq %rbx, %rdi
leaq 0x194d8(%rip), %rsi     # 0x457f0
jmp 0x2c37a
cmpq $0x3, %r15
jb 0x2c341
cmpb $0x5d, -0x1(%rcx,%r15)
jne 0x2c341
cmpb $0x5d, -0x2(%rcx,%r15)
jne 0x2c341
movl $0x4, %edx
movq %rbx, %rdi
leaq 0x194ac(%rip), %rsi     # 0x457eb
jmp 0x2c37a
movb $0x3e, 0x5(%rsp)
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x5(%rsp), %rsi
jmp 0x2c37a
movb $0x22, 0x6(%rsp)
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x6(%rsp), %rsi
jmp 0x2c37a
movb %al, 0x7(%rsp)
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x7(%rsp), %rsi
callq 0xb530
incq %r15
cmpq 0x8(%r14), %r15
jb 0x2c259
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop