// File: /workspace/github_cpp_makefile_star2_O1/xelia-it[P]mustache/third-party/catch2/single_include/catch2/catch.hpp
// Function: Catch::TestCaseTracking::SectionTracker::acquire(Catch::TestCaseTracking::TrackerContext&, Catch::TestCaseTracking::NameAndLocation const&)
SectionTracker& SectionTracker::acquire( TrackerContext& ctx, NameAndLocation const& nameAndLocation ) {
        std::shared_ptr<SectionTracker> section;

        ITracker& currentTracker = ctx.currentTracker();
        if( ITrackerPtr childTracker = currentTracker.findChild( nameAndLocation ) ) {
            assert( childTracker );
            assert( childTracker->isSectionTracker() );
            section = std::static_pointer_cast<SectionTracker>( childTracker );
        }
        else {
            section = std::make_shared<SectionTracker>( nameAndLocation, ctx, &currentTracker );
            currentTracker.addChild( section );
        }
        if( !ctx.completedCycle() )
            section->tryOpen();
        return *section;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x40, %rsp
movq %rsi, %rbx
movq %rdi, %r14
movq 0x10(%rdi), %r12
movq (%r12), %rax
leaq -0x50(%rbp), %rdi
movq %r12, %rsi
movq %rbx, %rdx
callq *0x60(%rax)
movq -0x50(%rbp), %rdi
testq %rdi, %rdi
je 0x29b42
movq (%rdi), %rax
callq *0x70(%rax)
testb %al, %al
je 0x29c27
movq -0x50(%rbp), %r15
movq -0x48(%rbp), %rbx
testq %rbx, %rbx
je 0x29bc9
movq 0x8245b(%rip), %rax     # 0xabf90
cmpb $0x0, (%rax)
je 0x29ba3
incl 0x8(%rbx)
jmp 0x29bc9
leaq -0x58(%rbp), %r9
movq %r12, (%r9)
leaq -0x38(%rbp), %rdi
movq $0x0, -0x8(%rdi)
leaq -0x40(%rbp), %rsi
leaq -0x21(%rbp), %rdx
movq %rbx, %rcx
movq %r14, %r8
callq 0x60354
movq -0x40(%rbp), %r15
movq -0x38(%rbp), %rbx
xorps %xmm0, %xmm0
movaps %xmm0, -0x40(%rbp)
movq -0x38(%rbp), %rdi
testq %rdi, %rdi
je 0x29b85
callq 0x43ca8
movq %r15, -0x40(%rbp)
movq %rbx, -0x38(%rbp)
testq %rbx, %rbx
je 0x29bad
movq 0x823f7(%rip), %rax     # 0xabf90
cmpb $0x0, (%rax)
je 0x29ba9
incl 0x8(%rbx)
jmp 0x29bad
lock
incl 0x8(%rbx)
jmp 0x29bc9
lock
incl 0x8(%rbx)
movq (%r12), %rax
leaq -0x40(%rbp), %rsi
movq %r12, %rdi
callq *0x58(%rax)
movq -0x38(%rbp), %rdi
testq %rdi, %rdi
je 0x29bc9
callq 0x43ca8
movq -0x48(%rbp), %rdi
testq %rdi, %rdi
je 0x29bd7
callq 0x43ca8
cmpl $0x2, 0x18(%r14)
je 0x29c0a
movq (%r15), %rax
movq %r15, %rdi
callq *0x10(%rax)
testb %al, %al
jne 0x29c0a
movl $0x1, 0x60(%r15)
movq 0x38(%r15), %rax
movq %r15, 0x10(%rax)
movq 0x40(%r15), %rdi
testq %rdi, %rdi
je 0x29c0a
movq (%rdi), %rax
callq *0x68(%rax)
testq %rbx, %rbx
je 0x29c17
movq %rbx, %rdi
callq 0x43ca8
movq %r15, %rax
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x52ca8(%rip), %rdi     # 0x7c8d6
leaq 0x522a0(%rip), %rsi     # 0x7bed5
leaq 0x52c27(%rip), %rcx     # 0x7c863
movl $0x38cb, %edx           # imm = 0x38CB
callq 0x1b320
movq %rax, %r14
movq -0x38(%rbp), %rdi
testq %rdi, %rdi
je 0x29c60
callq 0x43ca8
jmp 0x29c60
jmp 0x29c5b
movq %rax, %r14
xorl %ebx, %ebx
movq -0x48(%rbp), %rdi
testq %rdi, %rdi
je 0x29c7a
callq 0x43ca8
jmp 0x29c7a
movq %rax, %r14
jmp 0x29c7a
movq %rax, %r14
xorl %ebx, %ebx
testq %rbx, %rbx
je 0x29c87
movq %rbx, %rdi
callq 0x43ca8
movq %r14, %rdi
callq 0x1b910
nop