// File: /workspace/github_c_makefile_star2_O2/deplinenoise[P]tundra/unittest/googletest/googletest/src/gtest.cc
// Function: testing::internal::ShouldShard(char const*, char const*, bool)
bool ShouldShard(const char* total_shards_env,
                 const char* shard_index_env,
                 bool in_subprocess_for_death_test) {
  if (in_subprocess_for_death_test) {
    return false;
  }

  const Int32 total_shards = Int32FromEnvOrDie(total_shards_env, -1);
  const Int32 shard_index = Int32FromEnvOrDie(shard_index_env, -1);

  if (total_shards == -1 && shard_index == -1) {
    return false;
  } else if (total_shards == -1 && shard_index != -1) {
    const Message msg = Message()
      << "Invalid environment variables: you have "
      << kTestShardIndex << " = " << shard_index
      << ", but have left " << kTestTotalShards << " unset.\n";
    ColoredPrintf(COLOR_RED, "%s", msg.GetString().c_str());
    fflush(stdout);
    exit(EXIT_FAILURE);
  } else if (total_shards != -1 && shard_index == -1) {
    const Message msg = Message()
      << "Invalid environment variables: you have "
      << kTestTotalShards << " = " << total_shards
      << ", but have left " << kTestShardIndex << " unset.\n";
    ColoredPrintf(COLOR_RED, "%s", msg.GetString().c_str());
    fflush(stdout);
    exit(EXIT_FAILURE);
  } else if (shard_index < 0 || shard_index >= total_shards) {
    const Message msg = Message()
      << "Invalid environment variables: we require 0 <= "
      << kTestShardIndex << " < " << kTestTotalShards
      << ", but you have " << kTestShardIndex << "=" << shard_index
      << ", " << kTestTotalShards << "=" << total_shards << ".\n";
    ColoredPrintf(COLOR_RED, "%s", msg.GetString().c_str());
    fflush(stdout);
    exit(EXIT_FAILURE);
  }

  return total_shards > 1;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x30, %rsp
testl %edx, %edx
jne 0x164a1
movq %rsi, %r14
pushq $-0x1
popq %rbp
movl %ebp, %esi
callq 0x167c9
movl %eax, %ebx
movq %r14, %rdi
movl %ebp, %esi
callq 0x167c9
movl %eax, %ebp
andl %ebx, %eax
cmpl $-0x1, %eax
je 0x164a1
cmpl $-0x1, %ebx
setne %al
cmpl $-0x1, %ebp
sete %cl
orb %al, %cl
je 0x164ac
cmpl $-0x1, %ebp
setne %al
cmpl $-0x1, %ebx
sete %cl
orb %al, %cl
je 0x1656f
testl %ebp, %ebp
js 0x16666
cmpl %ebx, %ebp
jge 0x16666
cmpl $0x2, %ebx
setge %al
jmp 0x164a3
xorl %eax, %eax
addq $0x30, %rsp
popq %rbx
popq %r14
popq %rbp
retq
leaq 0x8(%rsp), %rbx
movq %rbx, %rdi
callq 0x11c8e
movq (%rbx), %rbx
addq $0x10, %rbx
leaq 0x2e883(%rip), %rsi     # 0x44d4a
movq %rbx, %rdi
callq 0xd5e0
leaq 0x2cd4a(%rip), %rsi     # 0x43220
movq %rbx, %rdi
callq 0xd5e0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x2e910(%rip), %rsi     # 0x44dfe
callq 0xd5e0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
movl %ebp, %esi
callq 0xdbd0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x2e860(%rip), %rsi     # 0x44d73
callq 0xd5e0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x2ccd8(%rip), %rsi     # 0x43200
callq 0xd5e0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x2e847(%rip), %rsi     # 0x44d84
callq 0xd5e0
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x21954
leaq 0x8(%rsp), %rdi
callq 0x1f8e0
movq 0x28(%rsp), %rsi
leaq 0x8(%rsp), %rdi
callq 0x11e63
jmp 0x1662d
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0x11c8e
movq (%r14), %r14
addq $0x10, %r14
leaq 0x2e7c0(%rip), %rsi     # 0x44d4a
movq %r14, %rdi
callq 0xd5e0
leaq 0x2cc67(%rip), %rsi     # 0x43200
movq %r14, %rdi
callq 0xd5e0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x2e84d(%rip), %rsi     # 0x44dfe
callq 0xd5e0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
movl %ebx, %esi
callq 0xdbd0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x2e79d(%rip), %rsi     # 0x44d73
callq 0xd5e0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x2cc35(%rip), %rsi     # 0x43220
callq 0xd5e0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x2e784(%rip), %rsi     # 0x44d84
callq 0xd5e0
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x21954
leaq 0x8(%rsp), %rdi
callq 0x1f8e0
movq 0x28(%rsp), %rsi
leaq 0x8(%rsp), %rdi
callq 0x11e63
leaq 0x8(%rsp), %rbx
movq (%rbx), %rdx
leaq 0x2e7c8(%rip), %rsi     # 0x44e04
pushq $0x1
popq %rbp
movl %ebp, %edi
xorl %eax, %eax
callq 0x1610b
movq %rbx, %rdi
callq 0xdd68
movq 0x52939(%rip), %rax     # 0x68f90
movq (%rax), %rdi
callq 0xd770
movl %ebp, %edi
callq 0xd7d0
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0x11c8e
movq (%r14), %r14
addq $0x10, %r14
leaq 0x2e70c(%rip), %rsi     # 0x44d8d
movq %r14, %rdi
callq 0xd5e0
leaq 0x2cb90(%rip), %rsi     # 0x43220
movq %r14, %rdi
callq 0xd5e0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x2e715(%rip), %rsi     # 0x44dbd
callq 0xd5e0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x2cb43(%rip), %rsi     # 0x43200
callq 0xd5e0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x2e6ef(%rip), %rsi     # 0x44dc1
callq 0xd5e0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x2cb39(%rip), %rsi     # 0x43220
callq 0xd5e0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x30221(%rip), %rsi     # 0x4691d
callq 0xd5e0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
movl %ebp, %esi
callq 0xdbd0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x2f617(%rip), %rsi     # 0x45d38
callq 0xd5e0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x2caca(%rip), %rsi     # 0x43200
callq 0xd5e0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x301d2(%rip), %rsi     # 0x4691d
callq 0xd5e0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
movl %ebx, %esi
callq 0xdbd0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x2e075(%rip), %rsi     # 0x447e5
callq 0xd5e0
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x21954
leaq 0x8(%rsp), %rdi
callq 0x1f8e0
movq 0x28(%rsp), %rsi
leaq 0x8(%rsp), %rdi
callq 0x11e63
jmp 0x1662d
jmp 0x167a6
jmp 0x167a6
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
jmp 0x167bc
jmp 0x167b4
jmp 0x167b4
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x1f8e0
movq %rbx, %rdi
callq 0xdbf0