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

                ITracker& currentTracker = ctx.currentTracker();
                // Under specific circumstances, the generator we want
                // to acquire is also the current tracker. If this is
                // the case, we have to avoid looking through current
                // tracker's children, and instead return the current
                // tracker.
                // A case where this check is important is e.g.
                //     for (int i = 0; i < 5; ++i) {
                //         int n = GENERATE(1, 2);
                //     }
                //
                // without it, the code above creates 5 nested generators.
                if (currentTracker.nameAndLocation() == nameAndLocation) {
                    auto thisTracker = currentTracker.parent().findChild(nameAndLocation);
                    assert(thisTracker);
                    assert(thisTracker->isGeneratorTracker());
                    tracker = std::static_pointer_cast<GeneratorTracker>(thisTracker);
                } else if ( TestCaseTracking::ITrackerPtr childTracker = currentTracker.findChild( nameAndLocation ) ) {
                    assert( childTracker );
                    assert( childTracker->isGeneratorTracker() );
                    tracker = std::static_pointer_cast<GeneratorTracker>( childTracker );
                } else {
                    tracker = std::make_shared<GeneratorTracker>( nameAndLocation, ctx, &currentTracker );
                    currentTracker.addChild( tracker );
                }

                if( !tracker->isComplete() ) {
                    tracker->open();
                }

                return *tracker;
            }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x48, %rsp
movq %rsi, %r14
movq %rdi, %r15
xorps %xmm0, %xmm0
movaps %xmm0, -0x50(%rbp)
movq 0x10(%rdi), %rbx
leaq 0x8(%rbx), %rdi
callq 0x457da
testb %al, %al
je 0x3eae6
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x38(%rax)
movq (%rax), %rcx
leaq -0x38(%rbp), %rdi
movq %rax, %rsi
movq %r14, %rdx
callq *0x60(%rcx)
movq -0x38(%rbp), %rdi
testq %rdi, %rdi
je 0x3ebbc
movq (%rdi), %rax
callq *0x78(%rax)
testb %al, %al
jne 0x3eb0d
leaq 0x36fb8(%rip), %rdi     # 0x75a86
leaq 0x353d8(%rip), %rsi     # 0x73ead
leaq 0x36f27(%rip), %rcx     # 0x75a03
movl $0x3144, %edx           # imm = 0x3144
callq 0x24390
movq (%rbx), %rax
leaq -0x38(%rbp), %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq *0x60(%rax)
movq -0x38(%rbp), %rdi
testq %rdi, %rdi
je 0x3eb6d
movq (%rdi), %rax
callq *0x78(%rax)
testb %al, %al
je 0x3ebdb
leaq -0x28(%rbp), %rbx
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x4580e
leaq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq 0x4585a
leaq -0x20(%rbp), %rdi
callq 0x423de
leaq -0x30(%rbp), %rdi
callq 0x423de
movq -0x50(%rbp), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
testb %al, %al
jne 0x3eb52
movq -0x50(%rbp), %rdi
callq 0x3276a
leaq -0x48(%rbp), %rdi
movq -0x8(%rdi), %rbx
callq 0x423de
movq %rbx, %rax
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq -0x58(%rbp), %rcx
movq %rbx, (%rcx)
leaq -0x28(%rbp), %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x45834
leaq -0x50(%rbp), %r14
leaq -0x28(%rbp), %rsi
movq %r14, %rdi
callq 0x4585a
leaq -0x20(%rbp), %rdi
callq 0x423de
leaq -0x28(%rbp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x45a90
movq (%rbx), %rax
movq %rbx, %rdi
movq %r15, %rsi
callq *0x58(%rax)
jmp 0x3eb29
leaq 0x36e34(%rip), %rdi     # 0x759f7
leaq 0x352e3(%rip), %rsi     # 0x73ead
leaq 0x36e32(%rip), %rcx     # 0x75a03
movl $0x3143, %edx           # imm = 0x3143
callq 0x24390
leaq 0x36ec6(%rip), %rdi     # 0x75aa8
leaq 0x352c4(%rip), %rsi     # 0x73ead
leaq 0x36e13(%rip), %rcx     # 0x75a03
movl $0x3148, %edx           # imm = 0x3148
callq 0x24390
movq %rax, %rbx
leaq -0x20(%rbp), %rdi
callq 0x423de
jmp 0x3ec0f
jmp 0x3ec0c
jmp 0x3ec0c
movq %rax, %rbx
leaq -0x30(%rbp), %rdi
callq 0x423de
jmp 0x3ec21
jmp 0x3ec1e
jmp 0x3ec1e
movq %rax, %rbx
leaq -0x48(%rbp), %rdi
callq 0x423de
movq %rbx, %rdi
callq 0x24950