// File: /workspace/github_cpp_makefile_star2_O1/dadocolussi[P]gdc-circular_queue/tests/catch.hpp
// Function: Catch::ConsoleReporter::AssertionPrinter::AssertionPrinter(std::ostream&, Catch::AssertionStats const&, bool)
AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages )
            :   stream( _stream ),
                stats( _stats ),
                result( _stats.assertionResult ),
                colour( Colour::None ),
                message( result.getMessage() ),
                messages( _stats.infoMessages ),
                printInfoMessages( _printInfoMessages )
            {
                switch( result.getResultType() ) {
                    case ResultWas::Ok:
                        colour = Colour::Success;
                        passOrFail = "PASSED";
                        //if( result.hasMessage() )
                        if( _stats.infoMessages.size() == 1 )
                            messageLabel = "with message";
                        if( _stats.infoMessages.size() > 1 )
                            messageLabel = "with messages";
                        break;
                    case ResultWas::ExpressionFailed:
                        if( result.isOk() ) {
                            colour = Colour::Success;
                            passOrFail = "FAILED - but was ok";
                        }
                        else {
                            colour = Colour::Error;
                            passOrFail = "FAILED";
                        }
                        if( _stats.infoMessages.size() == 1 )
                            messageLabel = "with message";
                        if( _stats.infoMessages.size() > 1 )
                            messageLabel = "with messages";
                        break;
                    case ResultWas::ThrewException:
                        colour = Colour::Error;
                        passOrFail = "FAILED";
                        messageLabel = "due to unexpected exception with message";
                        break;
                    case ResultWas::FatalErrorCondition:
                        colour = Colour::Error;
                        passOrFail = "FAILED";
                        messageLabel = "due to a fatal error condition";
                        break;
                    case ResultWas::DidntThrowException:
                        colour = Colour::Error;
                        passOrFail = "FAILED";
                        messageLabel = "because no exception was thrown where one was expected";
                        break;
                    case ResultWas::Info:
                        messageLabel = "info";
                        break;
                    case ResultWas::Warning:
                        messageLabel = "warning";
                        break;
                    case ResultWas::ExplicitFailure:
                        passOrFail = "FAILED";
                        colour = Colour::Error;
                        if( _stats.infoMessages.size() == 1 )
                            messageLabel = "explicitly with message";
                        if( _stats.infoMessages.size() > 1 )
                            messageLabel = "explicitly with messages";
                        break;
                    // These cases are here to prevent compiler warnings
                    case ResultWas::Unknown:
                    case ResultWas::FailureBit:
                    case ResultWas::Exception:
                        passOrFail = "** internal error **";
                        colour = Colour::Error;
                        break;
                }
            }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movl %ecx, %r14d
movq %rdx, %rbp
movq %rdi, %r12
movq %rsi, (%rdi)
movq %rdx, 0x8(%rdi)
leaq 0x8(%rdx), %rax
movq %rax, 0x10(%rdi)
movl $0x0, 0x18(%rdi)
leaq 0x20(%rdi), %rax
movq %rax, 0x8(%rsp)
leaq 0x30(%rdi), %rax
movq %rax, 0x20(%rsp)
movq %rax, 0x20(%rdi)
xorl %eax, %eax
movq %rax, 0x28(%rdi)
movb %al, 0x30(%rdi)
leaq 0x40(%rdi), %rcx
movq %rcx, 0x10(%rsp)
leaq 0x50(%rdi), %rcx
movq %rcx, 0x18(%rsp)
movq %rcx, 0x40(%rdi)
movq %rax, 0x48(%rdi)
movb %al, 0x50(%rdi)
leaq 0x60(%rdi), %r15
leaq 0x70(%rdi), %rbx
movq %rbx, 0x60(%rdi)
movq 0x98(%rdx), %rsi
movq 0xa0(%rdx), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x32cee
leaq 0x80(%r12), %r13
leaq 0xc0(%rbp), %rsi
movq %r13, %rdi
callq 0x1c136
movb %r14b, 0x98(%r12)
movq 0x10(%r12), %rcx
movl 0xb0(%rcx), %eax
cmpl $0x11, %eax
jg 0x2f041
leal 0x1(%rax), %edx
cmpl $0x3, %edx
ja 0x2f0a6
leaq 0x177de(%rip), %rax     # 0x467b4
movslq (%rax,%rdx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movl $0x3, 0x18(%r12)
movq 0x28(%r12), %rdx
leaq 0x18a4a(%rip), %rcx     # 0x47a3e
movl $0x6, %r8d
movq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0xc6d0
movq 0xc8(%rbp), %rax
subq 0xc0(%rbp), %rax
cmpq $0x78, %rax
jne 0x2f13e
movq 0x48(%r12), %rdx
leaq 0x18a52(%rip), %rcx     # 0x47a7c
movl $0xc, %r8d
movq 0x10(%rsp), %rdi
xorl %esi, %esi
callq 0xc6d0
jmp 0x2f13e
cmpl $0x110, %eax            # imm = 0x110
jle 0x2f17a
cmpl $0x111, %eax            # imm = 0x111
je 0x2f281
cmpl $0x112, %eax            # imm = 0x112
je 0x2f24b
cmpl $0x210, %eax            # imm = 0x210
jne 0x2f2e4
movl $0x12, 0x18(%r12)
movq 0x28(%r12), %rdx
leaq 0x189d7(%rip), %rcx     # 0x47a59
movl $0x6, %r8d
movq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0xc6d0
movl $0x1e, %r8d
leaq 0x189e8(%rip), %rcx     # 0x47a89
jmp 0x2f2d3
cmpl $0x10, %eax
je 0x2f18a
cmpl $0x11, %eax
jne 0x2f2e4
testb $0x10, %al
sete %al
movl 0x68(%rcx), %ecx
andl $0x8, %ecx
shrl $0x3, %ecx
orb %al, %cl
movl $0x3, %eax
movl $0x12, %edx
cmovnel %eax, %edx
leaq 0x18969(%rip), %rax     # 0x47a45
leaq 0x18976(%rip), %rcx     # 0x47a59
cmovneq %rax, %rcx
movl $0x13, %eax
movl $0x6, %r8d
cmovneq %rax, %r8
movl %edx, 0x18(%r12)
movq 0x28(%r12), %rdx
movq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0xc6d0
movq 0xc8(%rbp), %rax
subq 0xc0(%rbp), %rax
cmpq $0x78, %rax
jne 0x2f13e
movq 0x48(%r12), %rdx
leaq 0x18950(%rip), %rcx     # 0x47a7c
movl $0xc, %r8d
movq 0x10(%rsp), %rdi
xorl %esi, %esi
callq 0xc6d0
movq 0xc8(%rbp), %rax
subq 0xc0(%rbp), %rax
sarq $0x3, %rax
movabsq $-0x1111111111111111, %rcx # imm = 0xEEEEEEEEEEEEEEEF
imulq %rax, %rcx
cmpq $0x1, %rcx
jbe 0x2f2e4
movl $0xd, %r8d
leaq 0x1899a(%rip), %rcx     # 0x47b0f
jmp 0x2f2d3
cmpl $0x12, %eax
je 0x2f1b6
cmpl $0x110, %eax            # imm = 0x110
jne 0x2f2e4
movq 0x28(%r12), %rdx
leaq 0x18987(%rip), %rcx     # 0x47b1d
movl $0x14, %r8d
movq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0xc6d0
movl $0x12, 0x18(%r12)
jmp 0x2f2e4
movq 0x28(%r12), %rdx
leaq 0x18897(%rip), %rcx     # 0x47a59
movl $0x6, %r8d
movq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0xc6d0
movl $0x12, 0x18(%r12)
movq 0xc8(%rbp), %rax
subq 0xc0(%rbp), %rax
cmpq $0x78, %rax
jne 0x2f20f
movq 0x48(%r12), %rdx
leaq 0x188ef(%rip), %rcx     # 0x47aec
movl $0x17, %r8d
movq 0x10(%rsp), %rdi
xorl %esi, %esi
callq 0xc6d0
movq 0xc8(%rbp), %rax
subq 0xc0(%rbp), %rax
sarq $0x3, %rax
movabsq $-0x1111111111111111, %rcx # imm = 0xEEEEEEEEEEEEEEEF
imulq %rax, %rcx
cmpq $0x2, %rcx
jb 0x2f2e4
movl $0x18, %r8d
leaq 0x188be(%rip), %rcx     # 0x47b04
jmp 0x2f2d3
movl $0x12, 0x18(%r12)
movq 0x28(%r12), %rdx
leaq 0x187f9(%rip), %rcx     # 0x47a59
movl $0x6, %r8d
movq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0xc6d0
movl $0x36, %r8d
leaq 0x18829(%rip), %rcx     # 0x47aa8
jmp 0x2f2d3
movl $0x12, 0x18(%r12)
movq 0x28(%r12), %rdx
leaq 0x187c3(%rip), %rcx     # 0x47a59
movl $0x6, %r8d
movq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0xc6d0
movl $0x28, %r8d
leaq 0x187ab(%rip), %rcx     # 0x47a60
jmp 0x2f2d3
movl $0x4, %r8d
leaq 0x1881b(%rip), %rcx     # 0x47adf
jmp 0x2f2d3
movl $0x7, %r8d
leaq 0x18811(%rip), %rcx     # 0x47ae4
movq 0x48(%r12), %rdx
movq 0x10(%rsp), %rdi
xorl %esi, %esi
callq 0xc6d0
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r12
jmp 0x2f308
movq %rax, %r12
jmp 0x2f31b
movq %rax, %r12
movq %r13, %rdi
callq 0x16afc
movq (%r15), %rdi
cmpq %rbx, %rdi
je 0x2f31b
movq (%rbx), %rsi
incq %rsi
callq 0xc4a0
movq 0x10(%rsp), %rax
movq (%rax), %rdi
cmpq 0x18(%rsp), %rdi
je 0x2f33a
movq 0x18(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0xc4a0
movq 0x8(%rsp), %rax
movq (%rax), %rdi
cmpq 0x20(%rsp), %rdi
je 0x2f359
movq 0x20(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0xc4a0
movq %r12, %rdi
callq 0xc820
nop