// File: 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
subq $0x400, %rsp            # imm = 0x400
movb %r8b, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
andb $0x1, %al
movb %al, -0x21(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x340(%rbp)
movq -0x20(%rbp), %rsi
addq $0x8, %rsi
addq $0x8, %rsi
leaq -0x48(%rbp), %rdi
callq 0x5a570
movq -0x18(%rbp), %rdi
callq 0x52bb0
testb $0x1, %al
jne 0x7610f
movq -0x18(%rbp), %rsi
leaq -0x88(%rbp), %rdi
movl $0x2f, %edx
callq 0x95bf0
jmp 0x7609b
leaq -0x68(%rbp), %rdi
leaq -0x88(%rbp), %rsi
leaq -0x48(%rbp), %rdx
callq 0x90e90
jmp 0x760b1
leaq -0x48(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x528a0
leaq -0x68(%rbp), %rdi
callq 0x52e58
leaq -0x88(%rbp), %rdi
callq 0x52e58
jmp 0x7610f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x76d2a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x52e58
jmp 0x76d2a
movq -0x20(%rbp), %rdi
addq $0xa0, %rdi
callq 0x95c70
testb $0x1, %al
jne 0x76125
jmp 0x76153
movq -0x20(%rbp), %rdi
addq $0xb8, %rdi
callq 0x52bb0
testb $0x1, %al
jne 0x7613b
jmp 0x76153
movq -0x20(%rbp), %rdi
addq $0xd8, %rdi
callq 0x52bb0
testb $0x1, %al
jne 0x76b95
movq -0x340(%rbp), %rax
addq $0xd8, %rax
movq %rax, -0x350(%rbp)
leaq -0xc9(%rbp), %rdi
movq %rdi, -0x348(%rbp)
callq 0x52ca0
movq -0x348(%rbp), %rdx
leaq 0xc9cca(%rip), %rsi     # 0x13fe52
leaq -0xc8(%rbp), %rdi
callq 0x529e0
jmp 0x76196
movl $0x2, %edi
movl $0x1, %esi
callq 0x6e390
movq -0x350(%rbp), %rsi
movl %eax, %ecx
leaq -0xa8(%rbp), %rdi
leaq -0xc8(%rbp), %rdx
callq 0x6f120
jmp 0x761c3
leaq -0xc8(%rbp), %rdi
callq 0x52e58
leaq -0xc9(%rbp), %rdi
callq 0x527d0
movq -0x10(%rbp), %rdi
callq 0x52bb0
testb $0x1, %al
jne 0x761ed
jmp 0x763a6
movq -0x340(%rbp), %rax
addq $0xd8, %rax
movq %rax, -0x360(%rbp)
leaq -0xf1(%rbp), %rdi
movq %rdi, -0x358(%rbp)
callq 0x52ca0
movq -0x358(%rbp), %rdx
leaq 0xc9c39(%rip), %rsi     # 0x13fe5b
leaq -0xf0(%rbp), %rdi
callq 0x529e0
jmp 0x76230
movq -0x360(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
leaq -0x48(%rbp), %rdx
callq 0x6f1b0
jmp 0x76249
leaq -0xf0(%rbp), %rdi
callq 0x52e58
leaq -0xf1(%rbp), %rdi
callq 0x527d0
movq -0x340(%rbp), %rax
addq $0xd8, %rax
movq %rax, -0x370(%rbp)
leaq -0x119(%rbp), %rdi
movq %rdi, -0x368(%rbp)
callq 0x52ca0
movq -0x368(%rbp), %rdx
leaq 0xc877f(%rip), %rsi     # 0x13ea15
leaq -0x118(%rbp), %rdi
callq 0x529e0
jmp 0x762a4
movq -0x370(%rbp), %rdi
leaq 0xc9bb3(%rip), %rdx     # 0x13fe65
leaq -0x118(%rbp), %rsi
callq 0x95cb0
jmp 0x762c0
leaq -0x118(%rbp), %rdi
callq 0x52e58
leaq -0x119(%rbp), %rdi
callq 0x527d0
jmp 0x76519
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x7630f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x52e58
leaq -0xc9(%rbp), %rdi
callq 0x527d0
jmp 0x76d2a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x76352
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x52e58
leaq -0xf1(%rbp), %rdi
callq 0x527d0
jmp 0x76b84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x76395
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x52e58
leaq -0x119(%rbp), %rdi
callq 0x527d0
jmp 0x76b84
movq -0x340(%rbp), %rax
addq $0xd8, %rax
movq %rax, -0x380(%rbp)
leaq -0x141(%rbp), %rdi
movq %rdi, -0x378(%rbp)
callq 0x52ca0
movq -0x378(%rbp), %rdx
leaq 0xc9a80(%rip), %rsi     # 0x13fe5b
leaq -0x140(%rbp), %rdi
callq 0x529e0
jmp 0x763e9
movq -0x380(%rbp), %rdi
movq -0x10(%rbp), %rdx
leaq -0x140(%rbp), %rsi
callq 0x6f1b0
jmp 0x76402
leaq -0x140(%rbp), %rdi
callq 0x52e58
leaq -0x141(%rbp), %rdi
callq 0x527d0
movq -0x340(%rbp), %rax
addq $0xd8, %rax
movq %rax, -0x390(%rbp)
leaq -0x169(%rbp), %rdi
movq %rdi, -0x388(%rbp)
callq 0x52ca0
movq -0x388(%rbp), %rdx
leaq 0xc85c6(%rip), %rsi     # 0x13ea15
leaq -0x168(%rbp), %rdi
callq 0x529e0
jmp 0x7645d
movq -0x390(%rbp), %rdi
leaq -0x168(%rbp), %rsi
leaq -0x48(%rbp), %rdx
callq 0x6f1b0
jmp 0x76476
leaq -0x168(%rbp), %rdi
callq 0x52e58
leaq -0x169(%rbp), %rdi
callq 0x527d0
jmp 0x76519
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x764c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x52e58
leaq -0x141(%rbp), %rdi
callq 0x527d0
jmp 0x76b84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x76508
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x52e58
leaq -0x169(%rbp), %rdi
callq 0x527d0
jmp 0x76b84
movq -0x340(%rbp), %rax
addq $0xd8, %rax
movq %rax, -0x3a0(%rbp)
leaq -0x191(%rbp), %rdi
movq %rdi, -0x398(%rbp)
callq 0x52ca0
movq -0x398(%rbp), %rdx
leaq 0xc89a1(%rip), %rsi     # 0x13eeef
leaq -0x190(%rbp), %rdi
callq 0x529e0
jmp 0x7655c
movq -0x20(%rbp), %rax
movsd 0x78(%rax), %xmm0
leaq -0x1b8(%rbp), %rdi
callq 0x75b10
jmp 0x76573
movq -0x3a0(%rbp), %rdi
leaq -0x190(%rbp), %rsi
leaq -0x1b8(%rbp), %rdx
callq 0x6f1b0
jmp 0x7658f
leaq -0x1b8(%rbp), %rdi
callq 0x52e58
leaq -0x190(%rbp), %rdi
callq 0x52e58
leaq -0x191(%rbp), %rdi
callq 0x527d0
movq -0x340(%rbp), %rax
addq $0xd8, %rax
movq %rax, -0x3b0(%rbp)
leaq -0x1d9(%rbp), %rdi
movq %rdi, -0x3a8(%rbp)
callq 0x52ca0
movq -0x3a8(%rbp), %rdx
leaq 0xc8995(%rip), %rsi     # 0x13ef7d
leaq -0x1d8(%rbp), %rdi
callq 0x529e0
jmp 0x765f6
movq -0x3b0(%rbp), %rdi
leaq 0xc85a8(%rip), %rdx     # 0x13ebac
leaq -0x1d8(%rbp), %rsi
callq 0x957e0
jmp 0x76612
leaq -0x1d8(%rbp), %rdi
callq 0x52e58
leaq -0x1d9(%rbp), %rdi
callq 0x527d0
movq -0x20(%rbp), %rax
cmpq $0x0, 0x70(%rax)
je 0x7686a
movq -0x340(%rbp), %rax
addq $0xd8, %rax
movq %rax, -0x3c0(%rbp)
leaq -0x211(%rbp), %rdi
movq %rdi, -0x3b8(%rbp)
callq 0x52ca0
movq -0x3b8(%rbp), %rdx
leaq 0xc97fc(%rip), %rsi     # 0x13fe6a
leaq -0x210(%rbp), %rdi
callq 0x529e0
jmp 0x7667c
movl $0x2, %edi
movl $0x1, %esi
callq 0x6e390
movq -0x3c0(%rbp), %rsi
movl %eax, %ecx
leaq -0x1f0(%rbp), %rdi
leaq -0x210(%rbp), %rdx
callq 0x6f120
jmp 0x766a9
leaq -0x239(%rbp), %rdi
movq %rdi, -0x3c8(%rbp)
callq 0x52ca0
movq -0x3c8(%rbp), %rdx
leaq 0xcaa66(%rip), %rsi     # 0x141130
leaq -0x238(%rbp), %rdi
callq 0x529e0
jmp 0x766d8
leaq 0xc9793(%rip), %rdx     # 0x13fe72
leaq -0x1f0(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0x95d70
jmp 0x766f4
leaq -0x238(%rbp), %rdi
callq 0x52e58
leaq -0x239(%rbp), %rdi
callq 0x527d0
leaq -0x1f0(%rbp), %rdi
callq 0x6ecf0
leaq -0x210(%rbp), %rdi
callq 0x52e58
leaq -0x211(%rbp), %rdi
callq 0x527d0
jmp 0x7686a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x76787
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x7677b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x52e58
leaq -0x190(%rbp), %rdi
callq 0x52e58
leaq -0x191(%rbp), %rdi
callq 0x527d0
jmp 0x76b84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x767ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x1d8(%rbp), %rdi
callq 0x52e58
leaq -0x1d9(%rbp), %rdi
callq 0x527d0
jmp 0x76b84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x76859
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x7684d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x76835
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x238(%rbp), %rdi
callq 0x52e58
leaq -0x239(%rbp), %rdi
callq 0x527d0
leaq -0x1f0(%rbp), %rdi
callq 0x6ecf0
leaq -0x210(%rbp), %rdi
callq 0x52e58
leaq -0x211(%rbp), %rdi
callq 0x527d0
jmp 0x76b84
movq -0x340(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x76d40
jmp 0x7687c
movq -0x20(%rbp), %rdi
addq $0xb8, %rdi
callq 0x52bb0
testb $0x1, %al
jne 0x76a06
movq -0x340(%rbp), %rax
addq $0xd8, %rax
movq %rax, -0x3d8(%rbp)
leaq -0x271(%rbp), %rdi
movq %rdi, -0x3d0(%rbp)
callq 0x52ca0
movq -0x3d0(%rbp), %rdx
leaq 0xc950b(%rip), %rsi     # 0x13fdd4
leaq -0x270(%rbp), %rdi
callq 0x529e0
jmp 0x768d7
movl $0x2, %edi
movl $0x1, %esi
callq 0x6e390
movq -0x3d8(%rbp), %rsi
movl %eax, %ecx
leaq -0x250(%rbp), %rdi
leaq -0x270(%rbp), %rdx
callq 0x6f120
jmp 0x76904
movq -0x20(%rbp), %rsi
addq $0xb8, %rsi
leaq -0x298(%rbp), %rdi
callq 0x5a570
jmp 0x7691d
leaq -0x250(%rbp), %rdi
leaq -0x298(%rbp), %rsi
movl $0x2, %edx
callq 0x6ed30
jmp 0x76937
leaq -0x298(%rbp), %rdi
callq 0x52e58
leaq -0x250(%rbp), %rdi
callq 0x6ecf0
leaq -0x270(%rbp), %rdi
callq 0x52e58
leaq -0x271(%rbp), %rdi
callq 0x527d0
jmp 0x76a06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x76b84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x769f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x769e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x769dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x298(%rbp), %rdi
callq 0x52e58
leaq -0x250(%rbp), %rdi
callq 0x6ecf0
leaq -0x270(%rbp), %rdi
callq 0x52e58
leaq -0x271(%rbp), %rdi
callq 0x527d0
jmp 0x76b84
movq -0x20(%rbp), %rdi
addq $0xd8, %rdi
callq 0x52bb0
testb $0x1, %al
jne 0x76b76
movq -0x340(%rbp), %rax
addq $0xd8, %rax
movq %rax, -0x3e8(%rbp)
leaq -0x2c9(%rbp), %rdi
movq %rdi, -0x3e0(%rbp)
callq 0x52ca0
movq -0x3e0(%rbp), %rdx
leaq 0xc938c(%rip), %rsi     # 0x13fddf
leaq -0x2c8(%rbp), %rdi
callq 0x529e0
jmp 0x76a61
movl $0x2, %edi
movl $0x1, %esi
callq 0x6e390
movq -0x3e8(%rbp), %rsi
movl %eax, %ecx
leaq -0x2a8(%rbp), %rdi
leaq -0x2c8(%rbp), %rdx
callq 0x6f120
jmp 0x76a8e
movq -0x20(%rbp), %rsi
addq $0xd8, %rsi
leaq -0x2f0(%rbp), %rdi
callq 0x5a570
jmp 0x76aa7
leaq -0x2a8(%rbp), %rdi
leaq -0x2f0(%rbp), %rsi
movl $0x2, %edx
callq 0x6ed30
jmp 0x76ac1
leaq -0x2f0(%rbp), %rdi
callq 0x52e58
leaq -0x2a8(%rbp), %rdi
callq 0x6ecf0
leaq -0x2c8(%rbp), %rdi
callq 0x52e58
leaq -0x2c9(%rbp), %rdi
callq 0x527d0
jmp 0x76b76
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x76b68
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x76b5c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x76b50
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x2f0(%rbp), %rdi
callq 0x52e58
leaq -0x2a8(%rbp), %rdi
callq 0x6ecf0
leaq -0x2c8(%rbp), %rdi
callq 0x52e58
leaq -0x2c9(%rbp), %rdi
callq 0x527d0
jmp 0x76b84
leaq -0xa8(%rbp), %rdi
callq 0x6ecf0
jmp 0x76b95
leaq -0xa8(%rbp), %rdi
callq 0x6ecf0
jmp 0x76d2a
movq -0x20(%rbp), %rax
addq $0x88, %rax
movq %rax, -0x2f8(%rbp)
movq -0x2f8(%rbp), %rdi
callq 0x95db0
movq %rax, -0x300(%rbp)
movq -0x2f8(%rbp), %rdi
callq 0x95de0
movq %rax, -0x308(%rbp)
leaq -0x300(%rbp), %rdi
leaq -0x308(%rbp), %rsi
callq 0x95e10
testb $0x1, %al
jne 0x76be8
jmp 0x76d18
leaq -0x300(%rbp), %rdi
callq 0x95e50
movq %rax, -0x310(%rbp)
movq -0x10(%rbp), %rdi
callq 0x52bb0
testb $0x1, %al
jne 0x76c0d
jmp 0x76cc7
leaq -0x331(%rbp), %rdi
movq %rdi, -0x3f0(%rbp)
callq 0x52ca0
movq -0x3f0(%rbp), %rdx
leaq 0xc8361(%rip), %rsi     # 0x13ef8f
leaq -0x330(%rbp), %rdi
callq 0x529e0
jmp 0x76c3c
movq -0x310(%rbp), %rdi
callq 0x95bc0
movq -0x340(%rbp), %rdi
movq %rax, %rcx
movzbl -0x21(%rbp), %r8d
andl $0x1, %r8d
leaq -0x48(%rbp), %rsi
leaq -0x330(%rbp), %rdx
callq 0x76030
jmp 0x76c6d
leaq -0x330(%rbp), %rdi
callq 0x52e58
leaq -0x331(%rbp), %rdi
callq 0x527d0
jmp 0x76d05
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x76cb9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x330(%rbp), %rdi
callq 0x52e58
leaq -0x331(%rbp), %rdi
callq 0x527d0
jmp 0x76d2a
movq -0x10(%rbp), %rax
movq %rax, -0x3f8(%rbp)
movq -0x310(%rbp), %rdi
callq 0x95bc0
movq -0x340(%rbp), %rdi
movq -0x3f8(%rbp), %rsi
movq %rax, %rcx
movzbl -0x21(%rbp), %r8d
andl $0x1, %r8d
leaq -0x48(%rbp), %rdx
callq 0x76030
jmp 0x76d03
jmp 0x76d05
jmp 0x76d07
leaq -0x300(%rbp), %rdi
callq 0x95e70
jmp 0x76bcc
leaq -0x48(%rbp), %rdi
callq 0x52e58
addq $0x400, %rsp            # imm = 0x400
popq %rbp
retq
leaq -0x48(%rbp), %rdi
callq 0x52e58
movq -0x90(%rbp), %rdi
callq 0x52c90
nop