// File: /workspace/github_c_makefile_star2_O3/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 0x18e65
movq %rsi, %r14
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x1919d
movl %eax, %ebx
movq %r14, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x1919d
movl %eax, %ebp
andl %ebx, %eax
cmpl $-0x1, %eax
je 0x18e65
cmpl $-0x1, %ebx
setne %al
cmpl $-0x1, %ebp
sete %cl
orb %al, %cl
je 0x18e70
cmpl $-0x1, %ebp
setne %al
cmpl $-0x1, %ebx
sete %cl
orb %al, %cl
je 0x18f39
testl %ebp, %ebp
js 0x19039
cmpl %ebx, %ebp
jge 0x19039
cmpl $0x2, %ebx
setge %al
jmp 0x18e67
xorl %eax, %eax
addq $0x30, %rsp
popq %rbx
popq %r14
popq %rbp
retq
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x12e46
movq (%rbx), %rbx
addq $0x10, %rbx
leaq 0x39eef(%rip), %rsi     # 0x52d7a
movl $0x28, %edx
movq %rbx, %rdi
callq 0xc700
leaq 0x383b1(%rip), %rsi     # 0x51250
movl $0x11, %edx
movq %rbx, %rdi
callq 0xc700
leaq 0x39f7b(%rip), %rsi     # 0x52e2e
movl $0x3, %edx
movq %rbx, %rdi
callq 0xc700
movq %rbx, %rdi
movl %ebp, %esi
callq 0xcb70
leaq 0x39ed2(%rip), %rsi     # 0x52da3
movl $0x10, %edx
movq %rbx, %rdi
callq 0xc700
leaq 0x3834b(%rip), %rsi     # 0x51230
movl $0x12, %edx
movq %rbx, %rdi
callq 0xc700
leaq 0x39ebb(%rip), %rsi     # 0x52db4
movl $0x8, %edx
movq %rbx, %rdi
callq 0xc700
leaq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x2af8e
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x18f25
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x8(%rsp), %rsi
leaq 0x10(%rsp), %rdi
callq 0x130af
jmp 0x18ffd
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x12e46
movq (%r14), %r14
addq $0x10, %r14
leaq 0x39e26(%rip), %rsi     # 0x52d7a
movl $0x28, %edx
movq %r14, %rdi
callq 0xc700
leaq 0x382c8(%rip), %rsi     # 0x51230
movl $0x12, %edx
movq %r14, %rdi
callq 0xc700
leaq 0x39eb2(%rip), %rsi     # 0x52e2e
movl $0x3, %edx
movq %r14, %rdi
callq 0xc700
movq %r14, %rdi
movl %ebx, %esi
callq 0xcb70
leaq 0x39e09(%rip), %rsi     # 0x52da3
movl $0x10, %edx
movq %r14, %rdi
callq 0xc700
leaq 0x382a2(%rip), %rsi     # 0x51250
movl $0x11, %edx
movq %r14, %rdi
callq 0xc700
leaq 0x39df2(%rip), %rsi     # 0x52db4
movl $0x8, %edx
movq %r14, %rdi
callq 0xc700
leaq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x2af8e
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x18fee
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x8(%rsp), %rsi
leaq 0x10(%rsp), %rdi
callq 0x130af
leaq 0x10(%rsp), %rbx
movq (%rbx), %rdx
leaq 0x39e28(%rip), %rsi     # 0x52e34
movl $0x1, %edi
xorl %eax, %eax
callq 0x18a97
movq %rbx, %rdi
callq 0xcd08
movq 0x58f69(%rip), %rax     # 0x71f90
movq (%rax), %rdi
callq 0xc740
movl $0x1, %edi
callq 0xc7b0
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x12e46
movq (%r14), %r14
addq $0x10, %r14
leaq 0x39d69(%rip), %rsi     # 0x52dbd
movl $0x2f, %edx
movq %r14, %rdi
callq 0xc700
leaq 0x381e8(%rip), %rsi     # 0x51250
movl $0x11, %edx
movq %r14, %rdi
callq 0xc700
leaq 0x39d71(%rip), %rsi     # 0x52ded
movl $0x3, %edx
movq %r14, %rdi
callq 0xc700
leaq 0x381a0(%rip), %rsi     # 0x51230
movl $0x12, %edx
movq %r14, %rdi
callq 0xc700
leaq 0x39d4d(%rip), %rsi     # 0x52df1
movl $0xf, %edx
movq %r14, %rdi
callq 0xc700
leaq 0x38198(%rip), %rsi     # 0x51250
movl $0x11, %edx
movq %r14, %rdi
callq 0xc700
leaq 0x3b874(%rip), %rsi     # 0x54940
movl $0x1, %edx
movq %r14, %rdi
callq 0xc700
movq %r14, %rdi
movl %ebp, %esi
callq 0xcb70
leaq 0x3ac7e(%rip), %rsi     # 0x53d68
movl $0x2, %edx
movq %r14, %rdi
callq 0xc700
leaq 0x38132(%rip), %rsi     # 0x51230
movl $0x12, %edx
movq %r14, %rdi
callq 0xc700
leaq 0x3b82e(%rip), %rsi     # 0x54940
movl $0x1, %edx
movq %r14, %rdi
callq 0xc700
movq %r14, %rdi
movl %ebx, %esi
callq 0xcb70
leaq 0x396e5(%rip), %rsi     # 0x52815
movl $0x2, %edx
movq %r14, %rdi
callq 0xc700
leaq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x2af8e
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x1915c
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x8(%rsp), %rsi
leaq 0x10(%rsp), %rdi
callq 0x130af
jmp 0x18ffd
jmp 0x19174
jmp 0x19174
movq %rax, %rbx
movq 0x8(%rsp), %rdi
jmp 0x1918a
jmp 0x19182
jmp 0x19182
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x19195
movq (%rdi), %rax
callq *0x8(%rax)
movq %rbx, %rdi
callq 0xcbb0