// File: WeihuaZhu[P]hpc_prog2/./gtest/gtest-all.cc
// Function: testing::internal::ParseInternalRunDeathTestFlag()
InternalRunDeathTestFlag* ParseInternalRunDeathTestFlag() {
  if (GTEST_FLAG(internal_run_death_test) == "") return NULL;

  // GTEST_HAS_DEATH_TEST implies that we have ::std::string, so we
  // can use it here.
  int line = -1;
  int index = -1;
  ::std::vector< ::std::string> fields;
  SplitString(GTEST_FLAG(internal_run_death_test).c_str(), '|', &fields);
  int write_fd = -1;

# if GTEST_OS_WINDOWS

  unsigned int parent_process_id = 0;
  size_t write_handle_as_size_t = 0;
  size_t event_handle_as_size_t = 0;

  if (fields.size() != 6
      || !ParseNaturalNumber(fields[1], &line)
      || !ParseNaturalNumber(fields[2], &index)
      || !ParseNaturalNumber(fields[3], &parent_process_id)
      || !ParseNaturalNumber(fields[4], &write_handle_as_size_t)
      || !ParseNaturalNumber(fields[5], &event_handle_as_size_t)) {
    DeathTestAbort("Bad --gtest_internal_run_death_test flag: " +
                   GTEST_FLAG(internal_run_death_test));
  }
  write_fd = GetStatusFileDescriptor(parent_process_id,
                                     write_handle_as_size_t,
                                     event_handle_as_size_t);
# else

  if (fields.size() != 4
      || !ParseNaturalNumber(fields[1], &line)
      || !ParseNaturalNumber(fields[2], &index)
      || !ParseNaturalNumber(fields[3], &write_fd)) {
    DeathTestAbort("Bad --gtest_internal_run_death_test flag: "
        + GTEST_FLAG(internal_run_death_test));
  }

# endif  // GTEST_OS_WINDOWS

  return new InternalRunDeathTestFlag(fields[0], line, index, write_fd);
}

// Assembly:
subq $0xa8, %rsp
leaq 0x3716a(%rip), %rdi     # 0x65d08
leaq 0x1e5d1(%rip), %rsi     # 0x4d176
callq 0x38240
testb $0x1, %al
jne 0x2ebb0
jmp 0x2ebc1
movq $0x0, 0xa0(%rsp)
jmp 0x2ee1f
movl $0xffffffff, 0x9c(%rsp) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x98(%rsp) # imm = 0xFFFFFFFF
leaq 0x80(%rsp), %rdi
callq 0x3a680
leaq 0x3711d(%rip), %rdi     # 0x65d08
callq 0xe370
movq %rax, 0x18(%rsp)
leaq 0x5f(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0xf420
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
leaq 0x60(%rsp), %rdi
callq 0x32980
jmp 0x2ec1a
leaq 0x60(%rsp), %rdi
movl $0x7c, %esi
leaq 0x80(%rsp), %rdx
callq 0x2ee40
jmp 0x2ec33
leaq 0x60(%rsp), %rdi
callq 0xf698
leaq 0x5f(%rsp), %rdi
callq 0xeb40
movl $0xffffffff, 0x48(%rsp) # imm = 0xFFFFFFFF
leaq 0x80(%rsp), %rdi
callq 0x3a690
cmpq $0x4, %rax
jne 0x2ecfd
leaq 0x80(%rsp), %rdi
movl $0x1, %esi
callq 0x3a810
movq %rax, %rdi
leaq 0x9c(%rsp), %rsi
callq 0x3a6b0
movb %al, 0x17(%rsp)
jmp 0x2ec8e
movb 0x17(%rsp), %al
testb $0x1, %al
jne 0x2ec98
jmp 0x2ecfd
leaq 0x80(%rsp), %rdi
movl $0x2, %esi
callq 0x3a810
movq %rax, %rdi
leaq 0x98(%rsp), %rsi
callq 0x3a6b0
movb %al, 0x16(%rsp)
jmp 0x2ecc0
movb 0x16(%rsp), %al
testb $0x1, %al
jne 0x2ecca
jmp 0x2ecfd
leaq 0x80(%rsp), %rdi
movl $0x3, %esi
callq 0x3a810
movq %rax, %rdi
leaq 0x48(%rsp), %rsi
callq 0x3a6b0
movb %al, 0x15(%rsp)
jmp 0x2ecef
movb 0x15(%rsp), %al
testb $0x1, %al
jne 0x2ed93
jmp 0x2ecfd
leaq 0x1edc1(%rip), %rsi     # 0x4dac5
leaq 0x36ffd(%rip), %rdx     # 0x65d08
leaq 0x28(%rsp), %rdi
callq 0x3a550
jmp 0x2ed17
leaq 0x28(%rsp), %rdi
callq 0x293e0
jmp 0x2ed23
leaq 0x28(%rsp), %rdi
callq 0xf698
jmp 0x2ed93
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x50(%rsp)
movl %eax, 0x4c(%rsp)
jmp 0x2ed57
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x50(%rsp)
movl %eax, 0x4c(%rsp)
leaq 0x60(%rsp), %rdi
callq 0xf698
leaq 0x5f(%rsp), %rdi
callq 0xeb40
jmp 0x2ee10
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x50(%rsp)
movl %eax, 0x4c(%rsp)
jmp 0x2ee10
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x50(%rsp)
movl %eax, 0x4c(%rsp)
leaq 0x28(%rsp), %rdi
callq 0xf698
jmp 0x2ee10
movl $0x30, %edi
callq 0xea20
movq %rax, 0x8(%rsp)
jmp 0x2eda4
xorl %eax, %eax
movl %eax, %esi
leaq 0x80(%rsp), %rdi
callq 0x3a810
movq 0x8(%rsp), %rdi
movq %rax, %rsi
movl 0x9c(%rsp), %edx
movl 0x98(%rsp), %ecx
movl 0x48(%rsp), %r8d
callq 0x3a830
jmp 0x2edd7
movq 0x8(%rsp), %rax
movq %rax, 0xa0(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x34fc0
jmp 0x2ee1f
movq 0x8(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x50(%rsp)
movl %eax, 0x4c(%rsp)
movl $0x30, %esi
callq 0xea60
leaq 0x80(%rsp), %rdi
callq 0x34fc0
jmp 0x2ee2f
movq 0xa0(%rsp), %rax
addq $0xa8, %rsp
retq
movq 0x50(%rsp), %rdi
callq 0xf410
nopl (%rax)