// File: /workspace/github_cpp_makefile_star2_O2/dadocolussi[P]gdc-circular_queue/tests/catch.hpp
// Function: Catch::Tbc::Text::Text(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, Catch::Tbc::TextAttributes const&)
Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() )
        : attr( _attr )
        {
            std::string wrappableChars = " [({.,/|\\-";
            std::size_t indent = _attr.initialIndent != std::string::npos
                ? _attr.initialIndent
                : _attr.indent;
            std::string remainder = _str;

            while( !remainder.empty() ) {
                if( lines.size() >= 1000 ) {
                    lines.push_back( "... message truncated due to excessive size" );
                    return;
                }
                std::size_t tabPos = std::string::npos;
                std::size_t width = (std::min)( remainder.size(), _attr.width - indent );
                std::size_t pos = remainder.find_first_of( '\n' );
                if( pos <= width ) {
                    width = pos;
                }
                pos = remainder.find_last_of( _attr.tabChar, width );
                if( pos != std::string::npos ) {
                    tabPos = pos;
                    if( remainder[width] == '\n' )
                        width--;
                    remainder = remainder.substr( 0, tabPos ) + remainder.substr( tabPos+1 );
                }

                if( width == remainder.size() ) {
                    spliceLine( indent, remainder, width );
                }
                else if( remainder[width] == '\n' ) {
                    spliceLine( indent, remainder, width );
                    if( width <= 1 || remainder.size() != 1 )
                        remainder = remainder.substr( 1 );
                    indent = _attr.indent;
                }
                else {
                    pos = remainder.find_last_of( wrappableChars, width );
                    if( pos != std::string::npos && pos > 0 ) {
                        spliceLine( indent, remainder, pos );
                        if( remainder[0] == ' ' )
                            remainder = remainder.substr( 1 );
                    }
                    else {
                        spliceLine( indent, remainder, width-1 );
                        lines.back() += "-";
                    }
                    if( lines.size() == 1 )
                        indent = _attr.indent;
                    if( tabPos != std::string::npos )
                        indent += tabPos;
                }
            }
        }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc8, %rsp
movq %rdx, %rbx
movq %rdi, %r15
leaq 0x10(%rdi), %rax
movq %rax, (%rdi)
andq $0x0, 0x8(%rdi)
movq %rsi, %r12
movb $0x0, 0x10(%rdi)
movups (%rdx), %xmm0
movups 0x10(%rdx), %xmm1
movups %xmm0, 0x20(%rdi)
movups %xmm1, 0x30(%rdi)
leaq 0x40(%rdi), %rax
movq %rax, 0x20(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, 0x40(%rdi)
andq $0x0, 0x50(%rdi)
leaq 0x17ec9(%rip), %rsi     # 0x3644e
leaq 0x88(%rsp), %rdi
movq %rsp, %rdx
movq %r15, 0x28(%rsp)
callq 0x11b1a
movq %rbx, %rax
movq (%rbx), %rbx
movq %rax, 0x30(%rsp)
movq 0x8(%rax), %r13
movq %rsp, %rdi
movq %r12, %rsi
callq 0xc650
cmpq $-0x1, %rbx
cmovneq %rbx, %r13
movq %rsp, %r12
movq 0x30(%rsp), %rbx
movq %r13, 0x38(%rsp)
movq 0x8(%rsp), %rax
testq %rax, %rax
je 0x1e825
movq 0x48(%r15), %rcx
subq 0x40(%r15), %rcx
cmpq $0x7ce1, %rcx           # imm = 0x7CE1
jae 0x1e7f6
movq 0x10(%rbx), %rbp
subq %r13, %rbp
cmpq %rax, %rbp
cmovaeq %rax, %rbp
movq %r12, %rdi
pushq $0xa
popq %rsi
xorl %edx, %edx
callq 0xc630
cmpq %rbp, %rax
cmovbq %rax, %rbp
movsbl 0x18(%rbx), %esi
movq %r12, %rdi
movq %rbp, %rdx
callq 0xc920
cmpq $-0x1, %rax
movq %rax, 0x40(%rsp)
je 0x1e6b9
movq %rax, %r14
movq (%rsp), %rax
xorl %r15d, %r15d
cmpb $0xa, (%rax,%rbp)
sete %bl
leaq 0x68(%rsp), %rdi
movq %r12, %rsi
xorl %edx, %edx
movq %r14, %rcx
callq 0xc520
leaq 0x1(%r14), %rdx
leaq 0xa8(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
pushq $-0x1
popq %rcx
callq 0xc520
leaq 0x48(%rsp), %r14
movq %r14, %rdi
leaq 0x68(%rsp), %r12
movq %r12, %rsi
movq %r13, %rdx
callq 0x12b34
movb %bl, %r15b
subq %r15, %rbp
movq %rsp, %rdi
movq %r14, %rsi
callq 0xc5d0
movq %r14, %rdi
callq 0xc978
movq %r13, %rdi
callq 0xc978
movq %r12, %rdi
callq 0xc978
movq 0x28(%rsp), %r15
movq 0x30(%rsp), %rbx
movq 0x38(%rsp), %r13
cmpq 0x8(%rsp), %rbp
jne 0x1e6d9
movq %r15, %rdi
movq %r13, %rsi
movq %rsp, %r12
movq %r12, %rdx
movq %rbp, %rcx
callq 0x1faa2
jmp 0x1e5c9
movq (%rsp), %rax
cmpb $0xa, (%rax,%rbp)
jne 0x1e737
movq %r15, %rdi
movq %r13, %rsi
movq %rsp, %rdx
movq %rbp, %rcx
callq 0x1faa2
cmpq $0x2, %rbp
movq %rsp, %r12
jb 0x1e705
cmpq $0x1, 0x8(%rsp)
je 0x1e72e
leaq 0x48(%rsp), %r14
movq %r14, %rdi
movq %r12, %rsi
pushq $0x1
popq %rdx
pushq $-0x1
popq %rcx
callq 0xc520
movq %r12, %rdi
movq %r14, %rsi
callq 0xc5d0
movq %r14, %rdi
callq 0xc978
movq 0x8(%rbx), %r13
jmp 0x1e5c4
movq %rsp, %r14
movq %r14, %rdi
leaq 0x88(%rsp), %rsi
movq %rbp, %rdx
callq 0xc730
leaq -0x1(%rax), %rcx
cmpq $-0x3, %rcx
ja 0x1e79f
movq %r15, %rdi
movq %r13, %rsi
movq %r14, %rdx
movq %rax, %rcx
callq 0x1faa2
movq (%rsp), %rax
cmpb $0x20, (%rax)
jne 0x1e7c7
leaq 0x48(%rsp), %r14
movq %r14, %rdi
movq %rsp, %r12
movq %r12, %rsi
pushq $0x1
popq %rdx
pushq $-0x1
popq %rcx
callq 0xc520
movq %r12, %rdi
movq %r14, %rsi
callq 0xc5d0
movq %r14, %rdi
callq 0xc978
jmp 0x1e7c7
decq %rbp
movq %r15, %rdi
movq %r13, %rsi
movq %r14, %rdx
movq %rbp, %rcx
callq 0x1faa2
movq 0x48(%r15), %rdi
addq $-0x20, %rdi
leaq 0x18455(%rip), %rsi     # 0x36c17
callq 0xc8d0
movq 0x48(%r15), %rax
subq 0x40(%r15), %rax
cmpq $0x20, %rax
jne 0x1e7d9
movq 0x8(%rbx), %r13
movq 0x40(%rsp), %rcx
cmpq $-0x1, %rcx
movl $0x0, %eax
cmovneq %rcx, %rax
addq %rax, %r13
movq %rsp, %r12
jmp 0x1e5c4
leaq 0x17c5c(%rip), %rsi     # 0x36459
leaq 0x48(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x11b1a
leaq 0x48(%rsp), %rsi
movq 0x20(%rsp), %rdi
callq 0x282c4
leaq 0x48(%rsp), %rdi
callq 0xc978
movq %rsp, %rdi
callq 0xc978
leaq 0x88(%rsp), %rdi
callq 0xc978
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1e88b
jmp 0x1e88b
movq %rax, %r14
leaq 0x48(%rsp), %rdi
jmp 0x1e884
jmp 0x1e88b
jmp 0x1e88b
movq %rax, %r14
jmp 0x1e896
movq %rax, %r14
jmp 0x1e8a3
jmp 0x1e88b
movq %rax, %r14
leaq 0xa8(%rsp), %rdi
callq 0xc978
jmp 0x1e87f
movq %rax, %r14
leaq 0x68(%rsp), %rdi
callq 0xc978
jmp 0x1e88e
movq %rax, %r14
movq %rsp, %rdi
callq 0xc978
leaq 0x88(%rsp), %rdi
callq 0xc978
movq 0x20(%rsp), %rdi
callq 0x11b8a
movq 0x28(%rsp), %rdi
callq 0xc978
movq %r14, %rdi
callq 0xc840
nop