// File: /workspace/github_c_makefile_star2_O0/deplinenoise[P]tundra/unittest/googletest/googletest/src/gtest.cc
// Function: testing::internal::UnitTestOptions::FilterMatchesTest(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&)
bool UnitTestOptions::FilterMatchesTest(const std::string &test_case_name,
                                        const std::string &test_name) {
  const std::string& full_name = test_case_name + "." + test_name.c_str();

  // Split --gtest_filter at '-', if there is one, to separate into
  // positive filter and negative filter portions
  const char* const p = GTEST_FLAG(filter).c_str();
  const char* const dash = strchr(p, '-');
  std::string positive;
  std::string negative;
  if (dash == NULL) {
    positive = GTEST_FLAG(filter).c_str();  // Whole string is a positive filter
    negative = "";
  } else {
    positive = std::string(p, dash);   // Everything up to the dash
    negative = std::string(dash + 1);  // Everything after the dash
    if (positive.empty()) {
      // Treat '-test1' as the same as '*-test1'
      positive = kUniversalFilter;
    }
  }

  // A filter is a colon-separated list of patterns.  It matches a
  // test if any pattern in it matches the test.
  return (MatchesFilter(full_name, positive.c_str()) &&
          !MatchesFilter(full_name, negative.c_str()));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rsi
leaq 0x74f90(%rip), %rdx     # 0x8a57e
leaq -0x58(%rbp), %rdi
movq %rdi, -0x110(%rbp)
callq 0x309d0
movq -0x10(%rbp), %rdi
callq 0xe2b0
movq -0x110(%rbp), %rsi
movq %rax, %rdx
leaq -0x38(%rbp), %rdi
callq 0x30980
jmp 0x1561c
leaq -0x58(%rbp), %rdi
callq 0xf058
leaq -0x38(%rbp), %rax
movq %rax, -0x18(%rbp)
leaq 0xac2dc(%rip), %rdi     # 0xc1910
callq 0xe2b0
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rdi
movl $0x2d, %esi
callq 0xe280
movq %rax, -0x78(%rbp)
leaq -0x98(%rbp), %rdi
callq 0xeb70
leaq -0xb8(%rbp), %rdi
callq 0xeb70
cmpq $0x0, -0x78(%rbp)
jne 0x156d0
leaq 0xac29b(%rip), %rdi     # 0xc1910
callq 0xe2b0
movq %rax, %rsi
leaq -0x98(%rbp), %rdi
callq 0xeb50
jmp 0x1568b
leaq 0x7b13e(%rip), %rsi     # 0x907d0
leaq -0xb8(%rbp), %rdi
callq 0xeb50
jmp 0x156a0
jmp 0x1581b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x58(%rbp), %rdi
callq 0xf058
jmp 0x158f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x158d8
movq -0x70(%rbp), %rax
movq %rax, -0x128(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x120(%rbp)
leaq -0xd9(%rbp), %rdi
movq %rdi, -0x118(%rbp)
callq 0xee90
movq -0x128(%rbp), %rsi
movq -0x120(%rbp), %rdx
movq -0x118(%rbp), %rcx
leaq -0xd8(%rbp), %rdi
callq 0x30a50
jmp 0x1571c
leaq -0x98(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
movq %rsi, -0x140(%rbp)
callq 0xe9f0
movq -0x140(%rbp), %rdi
callq 0xf058
leaq -0xd9(%rbp), %rdi
callq 0xe850
movq -0x78(%rbp), %rax
incq %rax
movq %rax, -0x138(%rbp)
leaq -0x101(%rbp), %rdi
movq %rdi, -0x130(%rbp)
callq 0xee90
movq -0x138(%rbp), %rsi
movq -0x130(%rbp), %rdx
leaq -0x100(%rbp), %rdi
callq 0x30890
jmp 0x1578b
leaq -0xb8(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0xe9f0
leaq -0x100(%rbp), %rdi
callq 0xf058
leaq -0x101(%rbp), %rdi
callq 0xe850
leaq -0x98(%rbp), %rdi
callq 0xede0
testb $0x1, %al
jne 0x157c8
jmp 0x15819
leaq 0x73dc1(%rip), %rsi     # 0x89590
leaq -0x98(%rbp), %rdi
callq 0xeb50
jmp 0x157dd
jmp 0x15819
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xd9(%rbp), %rdi
callq 0xe850
jmp 0x158d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x101(%rbp), %rdi
callq 0xe850
jmp 0x158d8
jmp 0x1581b
movq -0x18(%rbp), %rax
movq %rax, -0x150(%rbp)
leaq -0x98(%rbp), %rdi
callq 0xe2b0
movq -0x150(%rbp), %rdi
movq %rax, %rsi
callq 0x15550
movb %al, -0x141(%rbp)
jmp 0x15849
movb -0x141(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x151(%rbp)
jne 0x1585e
jmp 0x1589a
movq -0x18(%rbp), %rax
movq %rax, -0x160(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0xe2b0
movq -0x160(%rbp), %rdi
movq %rax, %rsi
callq 0x15550
movb %al, -0x152(%rbp)
jmp 0x1588c
movb -0x152(%rbp), %al
xorb $-0x1, %al
movb %al, -0x151(%rbp)
movb -0x151(%rbp), %al
movb %al, -0x161(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0xf058
leaq -0x98(%rbp), %rdi
callq 0xf058
leaq -0x38(%rbp), %rdi
callq 0xf058
movb -0x161(%rbp), %al
andb $0x1, %al
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
leaq -0xb8(%rbp), %rdi
callq 0xf058
leaq -0x98(%rbp), %rdi
callq 0xf058
leaq -0x38(%rbp), %rdi
callq 0xf058
movq -0x60(%rbp), %rdi
callq 0xee80
nopw %cs:(%rax,%rax)