// File: /workspace/github_c_makefile_star2_O0/deplinenoise[P]tundra/unittest/googletest/googletest/src/gtest.cc
// Function: testing::AssertionResult testing::(anonymous namespace)::IsSubstringImpl<char const*>(bool, char const*, char const*, char const* const&, char const* const&)
AssertionResult IsSubstringImpl(
    bool expected_to_be_substring,
    const char* needle_expr, const char* haystack_expr,
    const StringType& needle, const StringType& haystack) {
  if (IsSubstringPred(needle, haystack) == expected_to_be_substring)
    return AssertionSuccess();

  const bool is_wide_string = sizeof(needle[0]) > 1;
  const char* const begin_string_quote = is_wide_string ? "L\"" : "\"";
  return AssertionFailure()
      << "Value of: " << needle_expr << "\n"
      << "  Actual: " << begin_string_quote << needle << "\"\n"
      << "Expected: " << (expected_to_be_substring ? "" : "not ")
      << "a substring of " << haystack_expr << "\n"
      << "Which is: " << begin_string_quote << haystack << "\"";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movq %rdi, -0x78(%rbp)
movb %sil, %al
movq %rdi, %rsi
movq %rsi, -0x70(%rbp)
movq %rdi, -0x8(%rbp)
andb $0x1, %al
movb %al, -0x9(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq (%rax), %rdi
movq -0x30(%rbp), %rax
movq (%rax), %rsi
callq 0x2fbf0
andb $0x1, %al
movzbl %al, %eax
movb -0x9(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
cmpl %ecx, %eax
jne 0x1a445
movq -0x78(%rbp), %rdi
callq 0x16280
jmp 0x1a659
movb $0x0, -0x31(%rbp)
leaq 0x7033d(%rip), %rax     # 0x8a78d
movq %rax, -0x40(%rbp)
leaq -0x50(%rbp), %rdi
movq %rdi, -0x88(%rbp)
callq 0x16250
movq -0x88(%rbp), %rdi
leaq 0x70245(%rip), %rsi     # 0x8a6b7
callq 0x30d50
movq %rax, -0x80(%rbp)
jmp 0x1a47d
movq -0x80(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x32180
movq %rax, -0x90(%rbp)
jmp 0x1a493
movq -0x90(%rbp), %rdi
leaq 0x70952(%rip), %rsi     # 0x8adf3
callq 0x30e50
movq %rax, -0x98(%rbp)
jmp 0x1a4af
movq -0x98(%rbp), %rdi
leaq 0x70206(%rip), %rsi     # 0x8a6c3
callq 0x30d50
movq %rax, -0xa0(%rbp)
jmp 0x1a4cb
movq -0xa0(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x32180
movq %rax, -0xa8(%rbp)
jmp 0x1a4e4
movq -0xa8(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x32180
movq %rax, -0xb0(%rbp)
jmp 0x1a4fd
movq -0xb0(%rbp), %rdi
leaq 0x7013e(%rip), %rsi     # 0x8a649
callq 0x30ff0
movq %rax, -0xb8(%rbp)
jmp 0x1a519
movq -0xb8(%rbp), %rdi
leaq 0x701a8(%rip), %rsi     # 0x8a6cf
callq 0x30d50
movq %rax, -0xc0(%rbp)
jmp 0x1a535
movq -0xc0(%rbp), %rdi
movb -0x9(%rbp), %dl
leaq 0x7628a(%rip), %rcx     # 0x907d0
leaq 0x71c53(%rip), %rax     # 0x8c1a0
testb $0x1, %dl
cmovneq %rcx, %rax
movq %rax, -0x68(%rbp)
leaq -0x68(%rbp), %rsi
callq 0x32180
movq %rax, -0xc8(%rbp)
jmp 0x1a56a
movq -0xc8(%rbp), %rdi
leaq 0x71c2d(%rip), %rsi     # 0x8c1a5
callq 0x45dd0
movq %rax, -0xd0(%rbp)
jmp 0x1a586
movq -0xd0(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x32180
movq %rax, -0xd8(%rbp)
jmp 0x1a59f
movq -0xd8(%rbp), %rdi
leaq 0x70846(%rip), %rsi     # 0x8adf3
callq 0x30e50
movq %rax, -0xe0(%rbp)
jmp 0x1a5bb
movq -0xe0(%rbp), %rdi
leaq 0x700c7(%rip), %rsi     # 0x8a690
callq 0x30d50
movq %rax, -0xe8(%rbp)
jmp 0x1a5d7
movq -0xe8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x32180
movq %rax, -0xf0(%rbp)
jmp 0x1a5f0
movq -0xf0(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x32180
movq %rax, -0xf8(%rbp)
jmp 0x1a609
movq -0xf8(%rbp), %rdi
leaq 0x70176(%rip), %rsi     # 0x8a78d
callq 0x30e50
movq %rax, -0x100(%rbp)
jmp 0x1a625
movq -0x100(%rbp), %rsi
movq -0x78(%rbp), %rdi
callq 0x17270
jmp 0x1a637
leaq -0x50(%rbp), %rdi
callq 0x30d20
jmp 0x1a659
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x30d20
jmp 0x1a666
movq -0x70(%rbp), %rax
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0xee80
nop