// File: WeihuaZhu[P]hpc_prog2/./gtest/gtest-all.cc
// Function: testing::internal::DeathTestImpl::Passed(bool)
bool DeathTestImpl::Passed(bool status_ok) {
  if (!spawned())
    return false;

  const std::string error_message = GetCapturedStderr();

  bool success = false;
  Message buffer;

  buffer << "Death test: " << statement() << "\n";
  switch (outcome()) {
    case LIVED:
      buffer << "    Result: failed to die.\n"
             << " Error msg:\n" << FormatDeathTestOutput(error_message);
      break;
    case THREW:
      buffer << "    Result: threw an exception.\n"
             << " Error msg:\n" << FormatDeathTestOutput(error_message);
      break;
    case RETURNED:
      buffer << "    Result: illegal return in test statement.\n"
             << " Error msg:\n" << FormatDeathTestOutput(error_message);
      break;
    case DIED:
      if (status_ok) {
        const bool matched = RE::PartialMatch(error_message.c_str(), *regex());
        if (matched) {
          success = true;
        } else {
          buffer << "    Result: died but not with expected error.\n"
                 << "  Expected: " << regex()->pattern() << "\n"
                 << "Actual msg:\n" << FormatDeathTestOutput(error_message);
        }
      } else {
        buffer << "    Result: died but not with expected exit code:\n"
               << "            " << ExitSummary(status()) << "\n"
               << "Actual msg:\n" << FormatDeathTestOutput(error_message);
      }
      break;
    case IN_PROGRESS:
    default:
      GTEST_LOG_(FATAL)
          << "DeathTest::Passed somehow called before conclusion of test";
  }

  DeathTest::set_last_death_test_message(buffer.GetString());
  return success;
}

// Assembly:
subq $0x248, %rsp            # imm = 0x248
movb %sil, %al
movq %rdi, 0x238(%rsp)
andb $0x1, %al
movb %al, 0x237(%rsp)
movq 0x238(%rsp), %rdi
movq %rdi, 0xe8(%rsp)
callq 0x39f20
testb $0x1, %al
jne 0x2a301
movb $0x0, 0x247(%rsp)
jmp 0x2a9d4
leaq 0x210(%rsp), %rdi
callq 0x2aa00
movb $0x0, 0x20f(%rsp)
leaq 0x200(%rsp), %rdi
callq 0x192e0
jmp 0x2a325
leaq 0x23554(%rip), %rsi     # 0x4d880
leaq 0x200(%rsp), %rdi
callq 0x35c60
movq %rax, 0xe0(%rsp)
jmp 0x2a343
movq 0xe8(%rsp), %rdi
callq 0x39f30
movq %rax, 0xd8(%rsp)
jmp 0x2a35a
movq 0xe0(%rsp), %rdi
movq 0xd8(%rsp), %rax
movq %rax, 0x1e8(%rsp)
leaq 0x1e8(%rsp), %rsi
callq 0x33560
movq %rax, 0xd0(%rsp)
jmp 0x2a389
movq 0xd0(%rsp), %rdi
leaq 0x22ddd(%rip), %rsi     # 0x4d175
callq 0x32e50
jmp 0x2a39f
movq 0xe8(%rsp), %rdi
callq 0x39f40
movl %eax, 0xcc(%rsp)
jmp 0x2a3b5
movl 0xcc(%rsp), %eax
movl %eax, %ecx
movq %rcx, 0xc0(%rsp)
subl $0x4, %eax
ja 0x2a8c1
movq 0xc0(%rsp), %rax
leaq 0x21116(%rip), %rcx     # 0x4b4f4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0x2a9c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0x2a9b8
leaq 0x2346d(%rip), %rsi     # 0x4d88d
leaq 0x200(%rsp), %rdi
callq 0x39f50
movq %rax, 0xb8(%rsp)
jmp 0x2a437
movq 0xb8(%rsp), %rdi
leaq 0x23463(%rip), %rsi     # 0x4d8a9
callq 0x35c60
movq %rax, 0xb0(%rsp)
jmp 0x2a455
leaq 0x1c8(%rsp), %rdi
leaq 0x210(%rsp), %rsi
callq 0x2aa30
jmp 0x2a46c
movq 0xb0(%rsp), %rdi
leaq 0x1c8(%rsp), %rsi
callq 0x32e10
jmp 0x2a483
leaq 0x1c8(%rsp), %rdi
callq 0xf698
jmp 0x2a915
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
leaq 0x1c8(%rsp), %rdi
callq 0xf698
jmp 0x2a9b8
leaq 0x233f4(%rip), %rsi     # 0x4d8b6
leaq 0x200(%rsp), %rdi
callq 0x39f90
movq %rax, 0xa8(%rsp)
jmp 0x2a4d9
movq 0xa8(%rsp), %rdi
leaq 0x233c1(%rip), %rsi     # 0x4d8a9
callq 0x35c60
movq %rax, 0xa0(%rsp)
jmp 0x2a4f7
leaq 0x1a8(%rsp), %rdi
leaq 0x210(%rsp), %rsi
callq 0x2aa30
jmp 0x2a50e
movq 0xa0(%rsp), %rdi
leaq 0x1a8(%rsp), %rsi
callq 0x32e10
jmp 0x2a525
leaq 0x1a8(%rsp), %rdi
callq 0xf698
jmp 0x2a915
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
leaq 0x1a8(%rsp), %rdi
callq 0xf698
jmp 0x2a9b8
leaq 0x23373(%rip), %rsi     # 0x4d8d7
leaq 0x200(%rsp), %rdi
callq 0x39fd0
movq %rax, 0x98(%rsp)
jmp 0x2a57b
movq 0x98(%rsp), %rdi
leaq 0x2331f(%rip), %rsi     # 0x4d8a9
callq 0x35c60
movq %rax, 0x90(%rsp)
jmp 0x2a599
leaq 0x188(%rsp), %rdi
leaq 0x210(%rsp), %rsi
callq 0x2aa30
jmp 0x2a5b0
movq 0x90(%rsp), %rdi
leaq 0x188(%rsp), %rsi
callq 0x32e10
jmp 0x2a5c7
leaq 0x188(%rsp), %rdi
callq 0xf698
jmp 0x2a915
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
leaq 0x188(%rsp), %rdi
callq 0xf698
jmp 0x2a9b8
testb $0x1, 0x237(%rsp)
je 0x2a78b
leaq 0x210(%rsp), %rdi
callq 0xe370
movq 0xe8(%rsp), %rdi
movq %rax, 0x80(%rsp)
callq 0x3a010
movq %rax, 0x88(%rsp)
jmp 0x2a639
movq 0x88(%rsp), %rsi
movq 0x80(%rsp), %rdi
callq 0x2aba0
movb %al, 0x7f(%rsp)
jmp 0x2a654
movb 0x7f(%rsp), %al
andb $0x1, %al
movb %al, 0x187(%rsp)
testb $0x1, 0x187(%rsp)
je 0x2a678
movb $0x1, 0x20f(%rsp)
jmp 0x2a786
leaq 0x23287(%rip), %rsi     # 0x4d906
leaq 0x200(%rsp), %rdi
callq 0x39fd0
movq %rax, 0x70(%rsp)
jmp 0x2a693
movq 0x70(%rsp), %rdi
leaq 0x23296(%rip), %rsi     # 0x4d935
callq 0x35c60
movq %rax, 0x68(%rsp)
jmp 0x2a6ab
movq 0xe8(%rsp), %rdi
callq 0x3a010
movq %rax, 0x60(%rsp)
jmp 0x2a6bf
movq 0x60(%rsp), %rdi
callq 0x3a020
movq %rax, 0x58(%rsp)
jmp 0x2a6d0
movq 0x68(%rsp), %rdi
movq 0x58(%rsp), %rax
movq %rax, 0x178(%rsp)
leaq 0x178(%rsp), %rsi
callq 0x33560
movq %rax, 0x50(%rsp)
jmp 0x2a6f6
movq 0x50(%rsp), %rdi
leaq 0x22a73(%rip), %rsi     # 0x4d175
callq 0x32e50
movq %rax, 0x48(%rsp)
jmp 0x2a70e
movq 0x48(%rsp), %rdi
leaq 0x23228(%rip), %rsi     # 0x4d942
callq 0x35c60
movq %rax, 0x40(%rsp)
jmp 0x2a726
leaq 0x158(%rsp), %rdi
leaq 0x210(%rsp), %rsi
callq 0x2aa30
jmp 0x2a73d
movq 0x40(%rsp), %rdi
leaq 0x158(%rsp), %rsi
callq 0x32e10
jmp 0x2a751
leaq 0x158(%rsp), %rdi
callq 0xf698
jmp 0x2a786
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
leaq 0x158(%rsp), %rdi
callq 0xf698
jmp 0x2a9b8
jmp 0x2a8bd
leaq 0x231bd(%rip), %rsi     # 0x4d94f
leaq 0x200(%rsp), %rdi
callq 0x3a030
movq %rax, 0x38(%rsp)
jmp 0x2a7a6
movq 0x38(%rsp), %rdi
leaq 0x231d0(%rip), %rsi     # 0x4d982
callq 0x35c60
movq %rax, 0x30(%rsp)
jmp 0x2a7be
movq 0xe8(%rsp), %rdi
callq 0x3a070
movl %eax, 0x2c(%rsp)
jmp 0x2a7d1
movl 0x2c(%rsp), %esi
leaq 0x138(%rsp), %rdi
callq 0x2ac00
jmp 0x2a7e4
movq 0x30(%rsp), %rdi
leaq 0x138(%rsp), %rsi
callq 0x32e10
movq %rax, 0x20(%rsp)
jmp 0x2a7fd
movq 0x20(%rsp), %rdi
leaq 0x2296c(%rip), %rsi     # 0x4d175
callq 0x32e50
movq %rax, 0x18(%rsp)
jmp 0x2a815
movq 0x18(%rsp), %rdi
leaq 0x23121(%rip), %rsi     # 0x4d942
callq 0x35c60
movq %rax, 0x10(%rsp)
jmp 0x2a82d
leaq 0x118(%rsp), %rdi
leaq 0x210(%rsp), %rsi
callq 0x2aa30
jmp 0x2a844
movq 0x10(%rsp), %rdi
leaq 0x118(%rsp), %rsi
callq 0x32e10
jmp 0x2a858
leaq 0x118(%rsp), %rdi
callq 0xf698
leaq 0x138(%rsp), %rdi
callq 0xf698
jmp 0x2a8bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
jmp 0x2a8ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
leaq 0x118(%rsp), %rdi
callq 0xf698
leaq 0x138(%rsp), %rdi
callq 0xf698
jmp 0x2a9b8
jmp 0x2a915
jmp 0x2a8c1
leaq 0x22037(%rip), %rdx     # 0x4c8ff
leaq 0x114(%rsp), %rdi
movl $0x3, %esi
movl $0x1b99, %ecx           # imm = 0x1B99
callq 0x2fd30
jmp 0x2a8e1
leaq 0x114(%rsp), %rdi
callq 0x32a40
movq %rax, 0x8(%rsp)
jmp 0x2a8f5
movq 0x8(%rsp), %rdi
leaq 0x2308e(%rip), %rsi     # 0x4d98f
callq 0xea00
jmp 0x2a908
leaq 0x114(%rsp), %rdi
callq 0x2fea0
leaq 0xf0(%rsp), %rdi
leaq 0x200(%rsp), %rsi
callq 0x196c0
jmp 0x2a92c
leaq 0xf0(%rsp), %rdi
callq 0x296a0
jmp 0x2a93b
leaq 0xf0(%rsp), %rdi
callq 0xf698
movb 0x20f(%rsp), %al
andb $0x1, %al
movb %al, 0x247(%rsp)
leaq 0x200(%rsp), %rdi
callq 0x105d0
leaq 0x210(%rsp), %rdi
callq 0xf698
jmp 0x2a9d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
leaq 0x114(%rsp), %rdi
callq 0x2fea0
jmp 0x2a9b8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1f8(%rsp)
movl %eax, 0x1f4(%rsp)
leaq 0xf0(%rsp), %rdi
callq 0xf698
leaq 0x200(%rsp), %rdi
callq 0x105d0
leaq 0x210(%rsp), %rdi
callq 0xf698
jmp 0x2a9e5
movb 0x247(%rsp), %al
andb $0x1, %al
addq $0x248, %rsp            # imm = 0x248
retq
movq 0x1f8(%rsp), %rdi
callq 0xf410
nopw %cs:(%rax,%rax)