// File: WeihuaZhu[P]hpc_prog2/./gtest/gtest-all.cc
// Function: testing::internal::HasOneFailure(char const*, char const*, char const*, testing::TestPartResultArray const&, testing::TestPartResult::Type, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
AssertionResult HasOneFailure(const char* /* results_expr */,
                              const char* /* type_expr */,
                              const char* /* substr_expr */,
                              const TestPartResultArray& results,
                              TestPartResult::Type type,
                              const string& substr) {
  const std::string expected(type == TestPartResult::kFatalFailure ?
                        "1 fatal failure" :
                        "1 non-fatal failure");
  Message msg;
  if (results.size() != 1) {
    msg << "Expected: " << expected << "\n"
        << "  Actual: " << results.size() << " failures";
    for (int i = 0; i < results.size(); i++) {
      msg << "\n" << results.GetTestPartResult(i);
    }
    return AssertionFailure() << msg;
  }

  const TestPartResult& r = results.GetTestPartResult(0);
  if (r.type() != type) {
    return AssertionFailure() << "Expected: " << expected << "\n"
                              << "  Actual:\n"
                              << r;
  }

  if (strstr(r.message(), substr.c_str()) == NULL) {
    return AssertionFailure() << "Expected: " << expected << " containing \""
                              << substr << "\"\n"
                              << "  Actual:\n"
                              << r;
  }

  return AssertionSuccess();
}

// Assembly:
subq $0x1a8, %rsp            # imm = 0x1A8
movq %rdi, 0xd0(%rsp)
movq %rdi, %rax
movq %rax, 0xd8(%rsp)
movq 0x1b0(%rsp), %rax
movq %rdi, 0x1a0(%rsp)
movq %rsi, 0x198(%rsp)
movq %rdx, 0x190(%rsp)
movq %rcx, 0x188(%rsp)
movq %r8, 0x180(%rsp)
movl %r9d, 0x17c(%rsp)
movl 0x17c(%rsp), %eax
subl $0x2, %eax
leaq 0x345be(%rip), %rcx     # 0x4c9e1
leaq 0x345c7(%rip), %rax     # 0x4c9f1
cmoveq %rcx, %rax
movq %rax, 0xe0(%rsp)
leaq 0x157(%rsp), %rdi
movq %rdi, 0xe8(%rsp)
callq 0xf420
movq 0xe0(%rsp), %rsi
movq 0xe8(%rsp), %rdx
leaq 0x158(%rsp), %rdi
callq 0x32980
jmp 0x1846a
leaq 0x157(%rsp), %rdi
callq 0xeb40
leaq 0x138(%rsp), %rdi
callq 0x192e0
jmp 0x18486
movq 0x180(%rsp), %rdi
callq 0x189f0
movl %eax, 0xcc(%rsp)
jmp 0x1849c
movl 0xcc(%rsp), %eax
cmpl $0x1, %eax
je 0x18708
leaq 0x345a5(%rip), %rsi     # 0x4ca58
leaq 0x138(%rsp), %rdi
callq 0x10580
movq %rax, 0xc0(%rsp)
jmp 0x184ca
movq 0xc0(%rsp), %rdi
leaq 0x158(%rsp), %rsi
callq 0x32e10
movq %rax, 0xb8(%rsp)
jmp 0x184e9
movq 0xb8(%rsp), %rdi
leaq 0x34c7d(%rip), %rsi     # 0x4d175
callq 0x32e50
movq %rax, 0xb0(%rsp)
jmp 0x18507
movq 0xb0(%rsp), %rdi
leaq 0x34536(%rip), %rsi     # 0x4ca4c
callq 0x10580
movq %rax, 0xa8(%rsp)
jmp 0x18525
movq 0x180(%rsp), %rdi
callq 0x189f0
movl %eax, 0xa4(%rsp)
jmp 0x1853b
movq 0xa8(%rsp), %rdi
movl 0xa4(%rsp), %eax
movl %eax, 0x134(%rsp)
leaq 0x134(%rsp), %rsi
callq 0x10540
movq %rax, 0x98(%rsp)
jmp 0x18568
movq 0x98(%rsp), %rdi
leaq 0x3448e(%rip), %rsi     # 0x4ca05
callq 0x32e90
jmp 0x1857e
movl $0x0, 0x130(%rsp)
movl 0x130(%rsp), %eax
movl %eax, 0x90(%rsp)
movq 0x180(%rsp), %rdi
callq 0x189f0
movl %eax, 0x94(%rsp)
jmp 0x185ad
movl 0x90(%rsp), %eax
movl 0x94(%rsp), %ecx
cmpl %ecx, %eax
jge 0x18686
leaq 0x34bab(%rip), %rsi     # 0x4d175
leaq 0x138(%rsp), %rdi
callq 0x32e50
movq %rax, 0x88(%rsp)
jmp 0x185e1
movq 0x180(%rsp), %rdi
movl 0x130(%rsp), %esi
callq 0x18a00
movq %rax, 0x80(%rsp)
jmp 0x185ff
movq 0x80(%rsp), %rsi
movq 0x88(%rsp), %rdi
callq 0x32ed0
jmp 0x18616
jmp 0x18618
movl 0x130(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x130(%rsp)
jmp 0x18589
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x148(%rsp)
movl %eax, 0x144(%rsp)
leaq 0x157(%rsp), %rdi
callq 0xeb40
jmp 0x189d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x148(%rsp)
movl %eax, 0x144(%rsp)
jmp 0x189c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x148(%rsp)
movl %eax, 0x144(%rsp)
jmp 0x189ba
leaq 0x120(%rsp), %rdi
callq 0x18a70
jmp 0x18695
leaq 0x120(%rsp), %rdi
leaq 0x138(%rsp), %rsi
callq 0x32f10
movq %rax, 0x78(%rsp)
jmp 0x186b1
movq 0x78(%rsp), %rsi
movq 0xd0(%rsp), %rdi
callq 0x19860
jmp 0x186c5
leaq 0x120(%rsp), %rdi
callq 0x105e0
movl $0x1, 0x11c(%rsp)
jmp 0x18990
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x148(%rsp)
movl %eax, 0x144(%rsp)
leaq 0x120(%rsp), %rdi
callq 0x105e0
jmp 0x189ba
movq 0x180(%rsp), %rdi
xorl %esi, %esi
callq 0x18a00
movq %rax, 0x70(%rsp)
jmp 0x1871e
movq 0x70(%rsp), %rax
movq %rax, 0x110(%rsp)
movq 0x110(%rsp), %rdi
callq 0x32fa0
movl %eax, 0x6c(%rsp)
jmp 0x1873e
movl 0x6c(%rsp), %eax
cmpl 0x17c(%rsp), %eax
je 0x18832
leaq 0x100(%rsp), %rdi
callq 0x18a70
jmp 0x1875e
leaq 0x342f3(%rip), %rsi     # 0x4ca58
leaq 0x100(%rsp), %rdi
callq 0x32fb0
movq %rax, 0x60(%rsp)
jmp 0x18779
movq 0x60(%rsp), %rdi
leaq 0x158(%rsp), %rsi
callq 0x33040
movq %rax, 0x58(%rsp)
jmp 0x18792
movq 0x58(%rsp), %rdi
leaq 0x349d7(%rip), %rsi     # 0x4d175
callq 0x330d0
movq %rax, 0x50(%rsp)
jmp 0x187aa
movq 0x50(%rsp), %rdi
leaq 0x34259(%rip), %rsi     # 0x4ca0f
callq 0x32fb0
movq %rax, 0x48(%rsp)
jmp 0x187c2
movq 0x48(%rsp), %rdi
movq 0x110(%rsp), %rsi
callq 0x33160
movq %rax, 0x40(%rsp)
jmp 0x187db
movq 0x40(%rsp), %rsi
movq 0xd0(%rsp), %rdi
callq 0x19860
jmp 0x187ef
leaq 0x100(%rsp), %rdi
callq 0x105e0
movl $0x1, 0x11c(%rsp)
jmp 0x18990
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x148(%rsp)
movl %eax, 0x144(%rsp)
leaq 0x100(%rsp), %rdi
callq 0x105e0
jmp 0x189ba
movq 0x110(%rsp), %rdi
callq 0x331f0
movq %rax, 0x38(%rsp)
jmp 0x18846
movq 0x1b0(%rsp), %rdi
callq 0xe370
movq 0x38(%rsp), %rdi
movq %rax, %rsi
callq 0xe1d0
cmpq $0x0, %rax
jne 0x18976
leaq 0xf0(%rsp), %rdi
callq 0x18a70
jmp 0x18879
leaq 0x341d8(%rip), %rsi     # 0x4ca58
leaq 0xf0(%rsp), %rdi
callq 0x32fb0
movq %rax, 0x30(%rsp)
jmp 0x18894
movq 0x30(%rsp), %rdi
leaq 0x158(%rsp), %rsi
callq 0x33040
movq %rax, 0x28(%rsp)
jmp 0x188ad
movq 0x28(%rsp), %rdi
leaq 0x34161(%rip), %rsi     # 0x4ca1a
callq 0x33210
movq %rax, 0x20(%rsp)
jmp 0x188c5
movq 0x20(%rsp), %rdi
movq 0x1b0(%rsp), %rsi
callq 0x33040
movq %rax, 0x18(%rsp)
jmp 0x188de
movq 0x18(%rsp), %rdi
leaq 0x34967(%rip), %rsi     # 0x4d251
callq 0x332a0
movq %rax, 0x10(%rsp)
jmp 0x188f6
movq 0x10(%rsp), %rdi
leaq 0x3410d(%rip), %rsi     # 0x4ca0f
callq 0x32fb0
movq %rax, 0x8(%rsp)
jmp 0x1890e
movq 0x8(%rsp), %rdi
movq 0x110(%rsp), %rsi
callq 0x33160
movq %rax, (%rsp)
jmp 0x18926
movq (%rsp), %rsi
movq 0xd0(%rsp), %rdi
callq 0x19860
jmp 0x18939
leaq 0xf0(%rsp), %rdi
callq 0x105e0
movl $0x1, 0x11c(%rsp)
jmp 0x18990
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x148(%rsp)
movl %eax, 0x144(%rsp)
leaq 0xf0(%rsp), %rdi
callq 0x105e0
jmp 0x189ba
movq 0xd0(%rsp), %rdi
callq 0x18aa0
jmp 0x18985
movl $0x1, 0x11c(%rsp)
leaq 0x138(%rsp), %rdi
callq 0x105d0
leaq 0x158(%rsp), %rdi
callq 0xf698
movq 0xd8(%rsp), %rax
addq $0x1a8, %rsp            # imm = 0x1A8
retq
leaq 0x138(%rsp), %rdi
callq 0x105d0
leaq 0x158(%rsp), %rdi
callq 0xf698
movq 0x148(%rsp), %rdi
callq 0xf410
nopw %cs:(%rax,%rax)