// File: 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
subq $0xf0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x20(%rbp), %rdi
callq 0xa6fd0
movq -0x8(%rbp), %rdi
callq 0x645c0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
callq 0xa7040
movq %rax, -0xa8(%rbp)
jmp 0x8f52b
movq -0xa8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xa6ff0
movb %al, -0xa9(%rbp)
jmp 0x8f543
movb -0xa9(%rbp), %al
testb $0x1, %al
jne 0x8f552
jmp 0x8f658
movq -0x28(%rbp), %rdi
movq (%rdi), %rax
movq 0x38(%rax), %rax
callq *%rax
movq %rax, -0xb8(%rbp)
jmp 0x8f568
movq -0xb8(%rbp), %rsi
movq -0x10(%rbp), %rdx
movq (%rsi), %rax
movq 0x60(%rax), %rax
leaq -0x48(%rbp), %rdi
callq *%rax
jmp 0x8f582
leaq -0x48(%rbp), %rdi
callq 0x92660
testb $0x1, %al
jne 0x8f591
jmp 0x8f593
jmp 0x8f5c3
leaq 0xb15ec(%rip), %rdi     # 0x140b86
leaq 0xafa30(%rip), %rsi     # 0x13efd1
movl $0x3143, %edx           # imm = 0x3143
leaq 0xb15e5(%rip), %rcx     # 0x140b92
callq 0x524b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x8f869
leaq -0x48(%rbp), %rdi
callq 0x92680
movq %rax, %rdi
movq (%rdi), %rax
movq 0x78(%rax), %rax
callq *%rax
movb %al, -0xb9(%rbp)
jmp 0x8f5e0
movb -0xb9(%rbp), %al
testb $0x1, %al
jne 0x8f5ec
jmp 0x8f5ee
jmp 0x8f627
leaq 0xb1620(%rip), %rdi     # 0x140c15
leaq 0xaf9d5(%rip), %rsi     # 0x13efd1
movl $0x3144, %edx           # imm = 0x3144
leaq 0xb158a(%rip), %rcx     # 0x140b92
callq 0x524b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x927d0
jmp 0x8f869
leaq -0x58(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0xa7060
leaq -0x20(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0xa70b0
leaq -0x58(%rbp), %rdi
callq 0xa70e0
leaq -0x48(%rbp), %rdi
callq 0x927d0
jmp 0x8f802
movq -0x28(%rbp), %rsi
movq -0x10(%rbp), %rdx
movq (%rsi), %rax
movq 0x60(%rax), %rax
leaq -0x68(%rbp), %rdi
callq *%rax
jmp 0x8f66f
leaq -0x68(%rbp), %rdi
callq 0x92660
testb $0x1, %al
jne 0x8f681
jmp 0x8f734
leaq -0x68(%rbp), %rdi
callq 0x92660
testb $0x1, %al
jne 0x8f690
jmp 0x8f692
jmp 0x8f6b1
leaq 0xb0319(%rip), %rdi     # 0x13f9b2
leaq 0xaf931(%rip), %rsi     # 0x13efd1
movl $0x3147, %edx           # imm = 0x3147
leaq 0xb14e6(%rip), %rcx     # 0x140b92
callq 0x524b0
leaq -0x68(%rbp), %rdi
callq 0x92680
movq %rax, %rdi
movq (%rdi), %rax
movq 0x78(%rax), %rax
callq *%rax
movb %al, -0xba(%rbp)
jmp 0x8f6ce
movb -0xba(%rbp), %al
testb $0x1, %al
jne 0x8f6da
jmp 0x8f6dc
jmp 0x8f70c
leaq 0xb1554(%rip), %rdi     # 0x140c37
leaq 0xaf8e7(%rip), %rsi     # 0x13efd1
movl $0x3148, %edx           # imm = 0x3148
leaq 0xb149c(%rip), %rcx     # 0x140b92
callq 0x524b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x8f7f7
leaq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0xa7060
leaq -0x20(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0xa70b0
leaq -0x78(%rbp), %rdi
callq 0xa70e0
jmp 0x8f7ec
movq -0x10(%rbp), %rsi
movq -0x8(%rbp), %rdx
movq -0x28(%rbp), %rax
movq %rax, -0x90(%rbp)
leaq -0x88(%rbp), %rdi
leaq -0x90(%rbp), %rcx
callq 0xa7100
jmp 0x8f75c
leaq -0x20(%rbp), %rdi
movq %rdi, -0xd8(%rbp)
leaq -0x88(%rbp), %rsi
movq %rsi, -0xe0(%rbp)
callq 0xa70b0
movq -0xe0(%rbp), %rdi
callq 0xa70e0
movq -0xd8(%rbp), %rsi
movq -0x28(%rbp), %rax
movq %rax, -0xd0(%rbp)
leaq -0xa0(%rbp), %rdi
movq %rdi, -0xc8(%rbp)
callq 0xa7180
movq -0xd0(%rbp), %rdi
movq -0xc8(%rbp), %rsi
movq (%rdi), %rax
movq 0x58(%rax), %rax
callq *%rax
jmp 0x8f7c4
leaq -0xa0(%rbp), %rdi
callq 0x927d0
jmp 0x8f7ec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x927d0
jmp 0x8f7f7
leaq -0x68(%rbp), %rdi
callq 0x927d0
jmp 0x8f802
leaq -0x68(%rbp), %rdi
callq 0x927d0
jmp 0x8f869
leaq -0x20(%rbp), %rdi
callq 0xa71b0
movq %rax, %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movb %al, -0xe1(%rbp)
jmp 0x8f81f
movb -0xe1(%rbp), %al
testb $0x1, %al
jne 0x8f840
jmp 0x8f82b
leaq -0x20(%rbp), %rdi
callq 0xa71b0
movq %rax, %rdi
callq 0x6ab40
jmp 0x8f83e
jmp 0x8f840
leaq -0x20(%rbp), %rdi
callq 0xa71d0
movq %rax, -0xf0(%rbp)
leaq -0x20(%rbp), %rdi
callq 0xa70e0
movq -0xf0(%rbp), %rax
addq $0xf0, %rsp
popq %rbp
retq
leaq -0x20(%rbp), %rdi
callq 0xa70e0
movq -0x30(%rbp), %rdi
callq 0x52c90
nopl (%rax,%rax)