// File: /workspace/github_c_makefile_star2_O0/deplinenoise[P]tundra/unittest/googletest/googletest/src/gtest.cc
// Function: testing::internal::UnitTestImpl::GetTestCase(char const*, char const*, void (*)(), void (*)())
TestCase* UnitTestImpl::GetTestCase(const char* test_case_name,
                                    const char* type_param,
                                    Test::SetUpTestCaseFunc set_up_tc,
                                    Test::TearDownTestCaseFunc tear_down_tc) {
  // Can we find a TestCase with the given name?
  const std::vector<TestCase*>::const_iterator test_case =
      std::find_if(test_cases_.begin(), test_cases_.end(),
                   TestCaseNameIs(test_case_name));

  if (test_case != test_cases_.end())
    return *test_case;

  // No.  Let's create one.
  TestCase* const new_test_case =
      new TestCase(test_case_name, type_param, set_up_tc, tear_down_tc);

  // Is this a death test case?
  if (internal::UnitTestOptions::MatchesFilter(test_case_name,
                                               kDeathTestCaseFilter)) {
    // Yes.  Inserts the test case after the last death test case
    // defined so far.  This only works when the test cases haven't
    // been shuffled.  Otherwise we may end up running a death test
    // after a non-death test.
    ++last_death_test_case_;
    test_cases_.insert(test_cases_.begin() + last_death_test_case_,
                       new_test_case);
  } else {
    // No.  Appends to the end of the list.
    test_cases_.push_back(new_test_case);
  }

  test_case_indices_.push_back(static_cast<int>(test_case_indices_.size()));
  return new_test_case;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x160, %rsp            # imm = 0x160
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x128(%rbp)
addq $0xb8, %rdi
movq %rdi, -0x120(%rbp)
callq 0x36cd0
movq -0x120(%rbp), %rdi
movq %rax, -0x48(%rbp)
callq 0x36d00
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x118(%rbp)
leaq -0x91(%rbp), %rdi
movq %rdi, -0x110(%rbp)
callq 0xee90
movq -0x118(%rbp), %rsi
movq -0x110(%rbp), %rdx
leaq -0x90(%rbp), %rdi
callq 0x30890
jmp 0x25d2b
leaq -0x70(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x36d30
jmp 0x25d3d
movq -0x48(%rbp), %rdi
movq -0x50(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x36bf0
movq %rax, -0x130(%rbp)
jmp 0x25d57
movq -0x130(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36d60
leaq -0x70(%rbp), %rdi
callq 0x36da0
leaq -0x90(%rbp), %rdi
callq 0xf058
leaq -0x91(%rbp), %rdi
callq 0xe850
movq -0x128(%rbp), %rdi
addq $0xb8, %rdi
callq 0x36d00
movq %rax, -0xb0(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x36dc0
testb $0x1, %al
jne 0x25dc0
jmp 0x25e35
leaq -0x38(%rbp), %rdi
callq 0x36e00
movq (%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x2604c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x25e24
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x25e18
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x36da0
leaq -0x90(%rbp), %rdi
callq 0xf058
leaq -0x91(%rbp), %rdi
callq 0xe850
jmp 0x26059
movl $0xf8, %edi
callq 0xe770
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x138(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rcx
movq -0x30(%rbp), %r8
callq 0x1df60
jmp 0x25e63
movq -0x138(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x148(%rbp)
leaq -0xd9(%rbp), %rdi
movq %rdi, -0x140(%rbp)
callq 0xee90
movq -0x148(%rbp), %rsi
movq -0x140(%rbp), %rdx
leaq -0xd8(%rbp), %rdi
callq 0x30890
jmp 0x25eab
leaq 0x6373e(%rip), %rsi     # 0x895f0
leaq -0xd8(%rbp), %rdi
callq 0x15550
movb %al, -0x149(%rbp)
jmp 0x25ec6
leaq -0xd8(%rbp), %rdi
callq 0xf058
leaq -0xd9(%rbp), %rdi
callq 0xe850
movb -0x149(%rbp), %al
testb $0x1, %al
jne 0x25eed
jmp 0x25feb
movq -0x128(%rbp), %rdi
movl 0x104(%rdi), %eax
addl $0x1, %eax
movl %eax, 0x104(%rdi)
movq %rdi, %rax
addq $0xb8, %rax
movq %rax, -0x158(%rbp)
addq $0xb8, %rdi
callq 0x36cd0
movq %rax, %rcx
movq -0x128(%rbp), %rax
movq %rcx, -0xf8(%rbp)
movslq 0x104(%rax), %rsi
leaq -0xf8(%rbp), %rdi
callq 0x37020
movq %rax, -0xf0(%rbp)
leaq -0xe8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x36d60
movq -0x158(%rbp), %rdi
movq -0xe8(%rbp), %rsi
leaq -0xb8(%rbp), %rdx
callq 0x36e20
movq %rax, -0x100(%rbp)
jmp 0x26005
movq -0x138(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
movl $0xf8, %esi
callq 0xe7a0
jmp 0x26059
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x25fdd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0xf058
leaq -0xd9(%rbp), %rdi
callq 0xe850
jmp 0x26059
movq -0x128(%rbp), %rdi
addq $0xb8, %rdi
leaq -0xb8(%rbp), %rsi
callq 0x37060
movq -0x128(%rbp), %rdi
movq %rdi, %rax
addq $0xd0, %rax
movq %rax, -0x160(%rbp)
addq $0xd0, %rdi
callq 0x34cb0
movq -0x160(%rbp), %rdi
movl %eax, -0x104(%rbp)
leaq -0x104(%rbp), %rsi
callq 0x34c80
movq -0xb8(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x160, %rsp            # imm = 0x160
popq %rbp
retq
movq -0xa0(%rbp), %rdi
callq 0xee80
nopw %cs:(%rax,%rax)