// File: /workspace/github_c_makefile_star2_O2/deplinenoise[P]tundra/unittest/googletest/googletest/src/gtest-death-test.cc
// Function: testing::internal::ExecDeathTestChildMain(void*)
static int ExecDeathTestChildMain(void* child_arg) {
  ExecDeathTestArgs* const args = static_cast<ExecDeathTestArgs*>(child_arg);
  GTEST_DEATH_TEST_CHECK_SYSCALL_(close(args->close_fd));

  // We need to execute the test program in the same environment where
  // it was originally invoked.  Therefore we change to the original
  // working directory first.
  const char* const original_dir =
      UnitTest::GetInstance()->original_working_dir();
  // We can safely call chdir() as it's a direct system call.
  if (chdir(original_dir) != 0) {
    DeathTestAbort(std::string("chdir(\"") + original_dir + "\") failed: " +
                   GetLastErrnoDescription());
    return EXIT_FAILURE;
  }

  // We can safely call execve() as it's a direct system call.  We
  // cannot use execvp() as it's a libc function and thus potentially
  // unsafe.  Since execve() doesn't search the PATH, the user must
  // invoke the test program via a valid path that contains at least
  // one path separator.
  execve(args->argv[0], args->argv, GetEnviron());
  DeathTestAbort(std::string("execve(") + args->argv[0] + ", ...) in " +
                 original_dir + " failed: " +
                 GetLastErrnoDescription());
  return EXIT_FAILURE;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x118, %rsp            # imm = 0x118
movq %rdi, %r14
movl 0x8(%r14), %edi
callq 0xdd40
cmpl $-0x1, %eax
jne 0x1edca
callq 0xd070
cmpl $0x4, (%rax)
je 0x1ecdc
leaq 0x26212(%rip), %rsi     # 0x44f11
leaq 0xd8(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x1f4d6
leaq 0x2615a(%rip), %rdx     # 0x44e72
leaq 0xb8(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
callq 0x1f511
leaq 0x261f1(%rip), %rdx     # 0x44f25
leaq 0x10(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x1f511
leaq 0xb4(%rsp), %rsi
movl $0x3c1, (%rsi)          # imm = 0x3C1
leaq 0xf8(%rsp), %rdi
callq 0x21107
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
leaq 0xf8(%rsp), %rdx
callq 0x210a0
leaq 0x25503(%rip), %rdx     # 0x44282
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x1f511
leaq 0x26dc5(%rip), %rdx     # 0x45b5a
leaq 0x70(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x1f511
leaq 0x26397(%rip), %rdx     # 0x45142
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1f511
leaq 0x90(%rsp), %rdi
callq 0x1aed0
callq 0x10622
movq 0x4aaba(%rip), %rax     # 0x69890
movq 0x10(%rax), %rbx
movq %rbx, %rdi
callq 0xd9d0
testl %eax, %eax
jne 0x1eea5
movq (%r14), %rsi
movq (%rsi), %rdi
movq 0x4a1d1(%rip), %rax     # 0x68fc8
movq (%rax), %rdx
callq 0xdbb0
leaq 0x26d7e(%rip), %rsi     # 0x45b84
leaq 0xb8(%rsp), %rdi
leaq 0xf8(%rsp), %rdx
callq 0x1f4d6
movq (%r14), %rax
movq (%rax), %rdx
leaq 0x10(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x1f511
leaq 0x26d52(%rip), %rdx     # 0x45b8c
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x1f511
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movq %rbx, %rdx
callq 0x1f511
leaq 0x26d18(%rip), %rdx     # 0x45b7a
leaq 0x70(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x1f511
leaq 0xd8(%rsp), %rdi
callq 0x1af3f
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0xd8(%rsp), %rdx
callq 0x210a0
leaq 0x90(%rsp), %rdi
callq 0x1aed0
leaq 0x26cc4(%rip), %rsi     # 0x45b70
leaq 0x30(%rsp), %rdi
leaq 0xb8(%rsp), %rdx
callq 0x1f4d6
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movq %rbx, %rdx
callq 0x1f511
leaq 0x26ca1(%rip), %rdx     # 0x45b78
leaq 0x70(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x1f511
leaq 0x10(%rsp), %rdi
callq 0x1af3f
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x210a0
leaq 0x90(%rsp), %rdi
callq 0x1aed0
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xdd68
jmp 0x1ef29
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xdd68
jmp 0x1ef5c
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xdd68
jmp 0x1ef4a
movq %rax, %rbx
leaq 0xd8(%rsp), %rdi
callq 0xdd68
jmp 0x1ef6b
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xdd68
jmp 0x1ef7a
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xdd68
jmp 0x1efaa
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0xdd68
jmp 0x1efb9
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xdd68
jmp 0x1ef9b
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xdd68
jmp 0x1efcb
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xdd68
jmp 0x1efda
movq %rax, %rbx
leaq 0xf8(%rsp), %rdi
callq 0xdd68
jmp 0x1efe9
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xdd68
jmp 0x1eff8
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0xdd68
jmp 0x1f007
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xdd68
jmp 0x1f016
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xdd68
jmp 0x1f028
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xdd68
jmp 0x1f032
movq %rax, %rbx
leaq 0xb8(%rsp), %rdi
callq 0xdd68
jmp 0x1f03f
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
jmp 0x1f047
movq %rax, %rbx
leaq 0xb8(%rsp), %rdi
jmp 0x1f047
movq %rax, %rbx
leaq 0xd8(%rsp), %rdi
callq 0xdd68
jmp 0x1f055
jmp 0x1f052
jmp 0x1f052
movq %rax, %rbx
movq %rbx, %rdi
callq 0xdbf0