// File: /workspace/github_cpp_makefile_star2_O1/madpilot[P]mDNSResolver/test/catch.h
// 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 and
                        // by @mrpi PR #588
                        if ( ( c < '\x09' ) || ( c > '\x0D' && c < '\x20') || c=='\x7F' )
                            os << "&#x" << std::uppercase << std::hex << std::setfill('0') << std::setw(2) << static_cast<int>( c ) << ';';
                        else
                            os << c;
                }
            }
        }

// Assembly:
cmpq $0x0, 0x8(%rdi)
je 0x2c1fb
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
xorl %r13d, %r13d
movq (%r14), %rax
movb (%rax,%r13), %r12b
movzbl %r12b, %ecx
cmpl $0x3b, %ecx
jg 0x2c08e
cmpl $0x22, %ecx
je 0x2c168
cmpl $0x26, %ecx
jne 0x2c0b0
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x2284f(%rip), %rsi     # 0x4e8d8
jmp 0x2c1db
cmpl $0x3e, %ecx
je 0x2c180
cmpl $0x3c, %ecx
jne 0x2c0b0
movl $0x4, %edx
movq %rbx, %rdi
leaq 0x22828(%rip), %rsi     # 0x4e8d3
jmp 0x2c1db
cmpb $0x9, %r12b
jl 0x2c0cf
leal -0xe(%r12), %eax
cmpb $0x12, %al
setae %al
cmpb $0x7f, %r12b
setne %cl
testb %al, %cl
jne 0x2c1cb
movl $0x3, %edx
movq %rbx, %rdi
leaq 0x2280c(%rip), %rsi     # 0x4e8ea
callq 0xb430
movq (%rbx), %rax
movq -0x18(%rax), %rcx
orl $0x4000, 0x18(%rbx,%rcx) # imm = 0x4000
movq -0x18(%rax), %rcx
movl 0x18(%rbx,%rcx), %edx
andl $-0x4b, %edx
orl $0x8, %edx
movl %edx, 0x18(%rbx,%rcx)
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %r15
cmpb $0x0, 0xe1(%rbx,%rax)
jne 0x2c132
movq %r15, %rdi
movl $0x20, %esi
callq 0xb380
movb %al, 0xe0(%r15)
movb $0x1, 0xe1(%r15)
movsbl %r12b, %esi
movb $0x30, 0xe0(%r15)
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq $0x2, 0x10(%rbx,%rax)
movq %rbx, %rdi
callq 0xb690
movb $0x3b, -0x2b(%rbp)
movl $0x1, %edx
movq %rax, %rdi
leaq -0x2b(%rbp), %rsi
jmp 0x2c1db
cmpl $0x1, 0x20(%r14)
jne 0x2c1b9
movl $0x6, %edx
movq %rbx, %rdi
leaq 0x22765(%rip), %rsi     # 0x4e8e3
jmp 0x2c1db
cmpq $0x3, %r13
jb 0x2c1a7
cmpb $0x5d, -0x1(%rax,%r13)
jne 0x2c1a7
cmpb $0x5d, -0x2(%rax,%r13)
jne 0x2c1a7
movl $0x4, %edx
movq %rbx, %rdi
leaq 0x22739(%rip), %rsi     # 0x4e8de
jmp 0x2c1db
movb %r12b, -0x29(%rbp)
movl $0x1, %edx
movq %rbx, %rdi
leaq -0x29(%rbp), %rsi
jmp 0x2c1db
movb %r12b, -0x2a(%rbp)
movl $0x1, %edx
movq %rbx, %rdi
leaq -0x2a(%rbp), %rsi
jmp 0x2c1db
movb %r12b, -0x2c(%rbp)
movl $0x1, %edx
movq %rbx, %rdi
leaq -0x2c(%rbp), %rsi
callq 0xb430
incq %r13
cmpq 0x8(%r14), %r13
jb 0x2c05c
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq