// File: WeihuaZhu[P]hpc_prog2/./gtest/gtest-all.cc
// Function: testing::internal::FailFromInternalError(int)
static void FailFromInternalError(int fd) {
  Message error;
  char buffer[256];
  int num_read;

  do {
    while ((num_read = posix::Read(fd, buffer, 255)) > 0) {
      buffer[num_read] = '\0';
      error << buffer;
    }
  } while (num_read == -1 && errno == EINTR);

  if (num_read == 0) {
    GTEST_LOG_(FATAL) << error.GetString();
  } else {
    const int last_error = errno;
    GTEST_LOG_(FATAL) << "Error while reading death test internal: "
                      << GetLastErrnoDescription() << " [" << last_error << "]";
  }
}

// Assembly:
subq $0x1a8, %rsp            # imm = 0x1A8
movl %edi, 0x1a4(%rsp)
leaq 0x198(%rsp), %rdi
callq 0x192e0
jmp 0x29cdd
movl 0x1a4(%rsp), %edi
leaq 0x90(%rsp), %rsi
movl $0xff, %edx
callq 0x39e40
movl %eax, 0x2c(%rsp)
jmp 0x29cfc
movl 0x2c(%rsp), %eax
movl %eax, 0x8c(%rsp)
cmpl $0x0, %eax
jle 0x29d4b
movslq 0x8c(%rsp), %rax
movb $0x0, 0x90(%rsp,%rax)
leaq 0x198(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x3f1b0
jmp 0x29d33
jmp 0x29cdd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x80(%rsp)
movl %eax, 0x7c(%rsp)
jmp 0x29f3a
jmp 0x29d4d
xorl %eax, %eax
cmpl $-0x1, 0x8c(%rsp)
movb %al, 0x2b(%rsp)
jne 0x29d6c
callq 0xe080
cmpl $0x4, (%rax)
sete %al
movb %al, 0x2b(%rsp)
movb 0x2b(%rsp), %al
testb $0x1, %al
jne 0x29cdb
cmpl $0x0, 0x8c(%rsp)
jne 0x29e2d
leaq 0x22b72(%rip), %rdx     # 0x4c8ff
leaq 0x78(%rsp), %rdi
movl $0x3, %esi
movl $0x1aa3, %ecx           # imm = 0x1AA3
callq 0x2fd30
jmp 0x29da3
leaq 0x78(%rsp), %rdi
callq 0x32a40
movq %rax, 0x20(%rsp)
leaq 0x58(%rsp), %rdi
leaq 0x198(%rsp), %rsi
callq 0x196c0
jmp 0x29dc6
movq 0x20(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0xe900
jmp 0x29dd7
leaq 0x58(%rsp), %rdi
callq 0xf698
leaq 0x78(%rsp), %rdi
callq 0x2fea0
jmp 0x29f25
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x80(%rsp)
movl %eax, 0x7c(%rsp)
jmp 0x29e1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x80(%rsp)
movl %eax, 0x7c(%rsp)
leaq 0x58(%rsp), %rdi
callq 0xf698
leaq 0x78(%rsp), %rdi
callq 0x2fea0
jmp 0x29f3a
callq 0xe080
movl (%rax), %eax
movl %eax, 0x54(%rsp)
leaq 0x22ac0(%rip), %rdx     # 0x4c8ff
leaq 0x50(%rsp), %rdi
movl $0x3, %esi
movl $0x1aa6, %ecx           # imm = 0x1AA6
callq 0x2fd30
jmp 0x29e55
leaq 0x50(%rsp), %rdi
callq 0x32a40
movq %rax, %rdi
leaq 0x24319(%rip), %rsi     # 0x4e182
callq 0xea00
movq %rax, 0x18(%rsp)
jmp 0x29e75
leaq 0x30(%rsp), %rdi
callq 0x294c0
jmp 0x29e81
movq 0x18(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0xe900
movq %rax, 0x10(%rsp)
jmp 0x29e97
movq 0x10(%rsp), %rdi
leaq 0x2474a(%rip), %rsi     # 0x4e5ed
callq 0xea00
movq %rax, 0x8(%rsp)
jmp 0x29eaf
movq 0x8(%rsp), %rdi
movl 0x54(%rsp), %esi
callq 0xf3d0
movq %rax, (%rsp)
jmp 0x29ec3
movq (%rsp), %rdi
leaq 0x23ca8(%rip), %rsi     # 0x4db76
callq 0xea00
jmp 0x29ed5
leaq 0x30(%rsp), %rdi
callq 0xf698
leaq 0x50(%rsp), %rdi
callq 0x2fea0
jmp 0x29f25
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x80(%rsp)
movl %eax, 0x7c(%rsp)
jmp 0x29f19
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x80(%rsp)
movl %eax, 0x7c(%rsp)
leaq 0x30(%rsp), %rdi
callq 0xf698
leaq 0x50(%rsp), %rdi
callq 0x2fea0
jmp 0x29f3a
leaq 0x198(%rsp), %rdi
callq 0x105d0
addq $0x1a8, %rsp            # imm = 0x1A8
retq
leaq 0x198(%rsp), %rdi
callq 0x105d0
movq 0x80(%rsp), %rdi
callq 0xf410
nopw %cs:(%rax,%rax)