// File: /workspace/github_cpp_makefile_star2_O2/xelia-it[P]mustache/third-party/catch2/single_include/catch2/catch.hpp
// Function: Catch::JunitReporter::writeSection(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode const&, bool)
void JunitReporter::writeSection( std::string const& className,
                                      std::string const& rootName,
                                      SectionNode const& sectionNode,
                                      bool testOkToFail) {
        std::string name = trim( sectionNode.stats.sectionInfo.name );
        if( !rootName.empty() )
            name = rootName + '/' + name;

        if( !sectionNode.assertions.empty() ||
            !sectionNode.stdOut.empty() ||
            !sectionNode.stdErr.empty() ) {
            XmlWriter::ScopedElement e = xml.scopedElement( "testcase" );
            if( className.empty() ) {
                xml.writeAttribute( "classname", name );
                xml.writeAttribute( "name", "root" );
            }
            else {
                xml.writeAttribute( "classname", className );
                xml.writeAttribute( "name", name );
            }
            xml.writeAttribute( "time", formatDuration( sectionNode.stats.durationInSeconds ) );
            // This is not ideal, but it should be enough to mimic gtest's
            // junit output.
            // Ideally the JUnit reporter would also handle `skipTest`
            // events and write those out appropriately.
            xml.writeAttribute( "status", "run" );

            if (sectionNode.stats.assertions.failedButOk) {
                xml.scopedElement("skipped")
                    .writeAttribute("message", "TEST_CASE tagged with !mayfail");
            }

            writeAssertions( sectionNode );

            if( !sectionNode.stdOut.empty() )
                xml.scopedElement( "system-out" ).writeText( trim( sectionNode.stdOut ), XmlFormatting::Newline );
            if( !sectionNode.stdErr.empty() )
                xml.scopedElement( "system-err" ).writeText( trim( sectionNode.stdErr ), XmlFormatting::Newline );
        }
        for( auto const& childNode : sectionNode.childSections )
            if( className.empty() )
                writeSection( name, "", *childNode, testOkToFail );
            else
                writeSection( className, name, *childNode, testOkToFail );
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movl %r8d, %r15d
movq %rcx, %rbx
movq %rdx, %r14
movq %rsi, %r12
movq %rdi, -0x90(%rbp)
leaq 0x10(%rcx), %rsi
leaq -0xb0(%rbp), %rdi
callq 0x29499
cmpq $0x0, 0x8(%r14)
je 0x38947
leaq -0x78(%rbp), %rdi
pushq $0x2f
popq %rdx
movq %r14, %rsi
callq 0x40ae1
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rsi
leaq -0xb0(%rbp), %rdx
callq 0x3f2a1
leaq -0xb0(%rbp), %rdi
leaq -0x50(%rbp), %r14
movq %r14, %rsi
callq 0x24690
movq %r14, %rdi
callq 0x24ad8
leaq -0x78(%rbp), %rdi
callq 0x24ad8
movl %r15d, %r14d
movq 0xa0(%rbx), %rax
cmpq 0xa8(%rbx), %rax
jne 0x38972
cmpq $0x0, 0xc0(%rbx)
jne 0x38972
cmpq $0x0, 0xe0(%rbx)
je 0x38c66
leaq 0x3c351(%rip), %rsi     # 0x74cca
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x24210
movq -0x90(%rbp), %rax
leaq 0xd8(%rax), %r13
leaq -0xc0(%rbp), %rdi
leaq -0x50(%rbp), %rdx
pushq $0x3
popq %rcx
movq %r13, %rsi
callq 0x34d2e
leaq -0x50(%rbp), %rdi
callq 0x24ad8
cmpq $0x0, 0x8(%r12)
je 0x38a10
leaq 0x3c311(%rip), %rsi     # 0x74cd3
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x24210
leaq -0x50(%rbp), %rsi
movq %r13, %rdi
movq %r12, %rdx
callq 0x34d7a
leaq -0x50(%rbp), %rdi
callq 0x24ad8
leaq 0x3af03(%rip), %rsi     # 0x738f1
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x24210
leaq -0x50(%rbp), %rsi
leaq -0xb0(%rbp), %rdx
movq %r13, %rdi
callq 0x34d7a
jmp 0x38a67
leaq 0x3c2bc(%rip), %rsi     # 0x74cd3
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x24210
leaq -0x50(%rbp), %rsi
leaq -0xb0(%rbp), %rdx
movq %r13, %rdi
callq 0x34d7a
leaq -0x50(%rbp), %rdi
callq 0x24ad8
leaq 0x3aeaa(%rip), %rsi     # 0x738f1
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x24210
leaq 0x3c282(%rip), %rdx     # 0x74cdd
leaq -0x50(%rbp), %rsi
movq %r13, %rdi
callq 0x40b1c
leaq -0x50(%rbp), %rdi
callq 0x24ad8
leaq 0x3b354(%rip), %rsi     # 0x73dcb
leaq -0x50(%rbp), %rdi
leaq -0x88(%rbp), %rdx
callq 0x24210
movsd 0x78(%rbx), %xmm0
leaq -0x78(%rbp), %rdi
callq 0x385a2
leaq -0x50(%rbp), %rsi
leaq -0x78(%rbp), %rdx
movq %r13, %rdi
callq 0x34d7a
leaq -0x78(%rbp), %rdi
callq 0x24ad8
leaq -0x50(%rbp), %rdi
callq 0x24ad8
leaq 0x3b39b(%rip), %rsi     # 0x73e59
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x24210
leaq 0x3afb6(%rip), %rdx     # 0x73a88
leaq -0x50(%rbp), %rsi
movq %r13, %rdi
callq 0x409b2
leaq -0x50(%rbp), %rdi
callq 0x24ad8
cmpq $0x0, 0x70(%rbx)
je 0x38b61
leaq 0x3c1ed(%rip), %rsi     # 0x74ce2
leaq -0x50(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x24210
leaq -0x88(%rbp), %rdi
leaq -0x50(%rbp), %rdx
pushq $0x3
popq %rcx
movq %r13, %rsi
callq 0x34d2e
leaq 0x3d3f4(%rip), %rsi     # 0x75f13
leaq -0x78(%rbp), %rdi
leaq -0x51(%rbp), %rdx
callq 0x24210
movq -0x88(%rbp), %rdi
leaq 0x3c1b0(%rip), %rdx     # 0x74cea
leaq -0x78(%rbp), %rsi
callq 0x5e290
leaq -0x78(%rbp), %rdi
callq 0x24ad8
leaq -0x88(%rbp), %rdi
callq 0x34a94
leaq -0x50(%rbp), %rdi
callq 0x24ad8
movq -0x90(%rbp), %rdi
movq %rbx, %rsi
callq 0x38dae
cmpq $0x0, 0xc0(%rbx)
je 0x38be5
leaq 0x3c0cb(%rip), %rsi     # 0x74c4c
leaq -0x50(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x24210
leaq -0x88(%rbp), %rdi
leaq -0x50(%rbp), %rdx
pushq $0x3
popq %rcx
movq %r13, %rsi
callq 0x34d2e
leaq 0xb8(%rbx), %rsi
leaq -0x78(%rbp), %rdi
callq 0x29499
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rsi
pushq $0x2
popq %rdx
callq 0x34ad2
leaq -0x78(%rbp), %rdi
callq 0x24ad8
leaq -0x88(%rbp), %rdi
callq 0x34a94
leaq -0x50(%rbp), %rdi
callq 0x24ad8
cmpq $0x0, 0xe0(%rbx)
je 0x38c5a
leaq 0x3c061(%rip), %rsi     # 0x74c57
leaq -0x50(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x24210
leaq -0x88(%rbp), %rdi
leaq -0x50(%rbp), %rdx
pushq $0x3
popq %rcx
movq %r13, %rsi
callq 0x34d2e
leaq 0xd8(%rbx), %rsi
leaq -0x78(%rbp), %rdi
callq 0x29499
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rsi
pushq $0x2
popq %rdx
callq 0x34ad2
leaq -0x78(%rbp), %rdi
callq 0x24ad8
leaq -0x88(%rbp), %rdi
callq 0x34a94
leaq -0x50(%rbp), %rdi
callq 0x24ad8
leaq -0xc0(%rbp), %rdi
callq 0x34a94
movq 0x88(%rbx), %r15
movq 0x90(%rbx), %rbx
leaq -0x50(%rbp), %r13
movzbl %r14b, %r14d
cmpq %rbx, %r15
je 0x38ce4
cmpq $0x0, 0x8(%r12)
je 0x38ca7
movq %r12, %rsi
movq (%r15), %rcx
movq -0x90(%rbp), %rdi
leaq -0xb0(%rbp), %rdx
movl %r14d, %r8d
callq 0x388c2
jmp 0x38cde
movq %r13, %rdi
leaq 0x3b1ba(%rip), %rsi     # 0x73e6b
leaq -0x78(%rbp), %rdx
callq 0x24210
movq (%r15), %rcx
movq -0x90(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
movq %r13, %rdx
movl %r14d, %r8d
callq 0x388c2
movq %r13, %rdi
callq 0x24ad8
addq $0x10, %r15
jmp 0x38c7c
leaq -0xb0(%rbp), %rdi
callq 0x24ad8
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x38d59
jmp 0x38d67
jmp 0x38d59
jmp 0x38d67
jmp 0x38d1a
jmp 0x38d28
jmp 0x38d59
jmp 0x38d1a
jmp 0x38d67
jmp 0x38d28
jmp 0x38d59
jmp 0x38d67
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x24ad8
jmp 0x38d2b
movq %rax, %rbx
leaq -0x88(%rbp), %rdi
callq 0x34a94
jmp 0x38d5c
jmp 0x38d59
jmp 0x38d67
jmp 0x38d59
jmp 0x38d67
jmp 0x38d59
jmp 0x38d67
jmp 0x38d67
jmp 0x38d59
jmp 0x38d67
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x24ad8
jmp 0x38d5c
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x24ad8
jmp 0x38d6a
movq %rax, %rbx
leaq -0xc0(%rbp), %rdi
callq 0x34a94
jmp 0x38d9a
jmp 0x38d89
jmp 0x38d97
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
jmp 0x38d90
jmp 0x38d97
jmp 0x38d97
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x24ad8
jmp 0x38d9a
movq %rax, %rbx
leaq -0xb0(%rbp), %rdi
callq 0x24ad8
movq %rbx, %rdi
callq 0x24950