// File: /workspace/github_c_makefile_star2_O1/deplinenoise[P]tundra/unittest/googletest/googletest/src/gtest.cc
// Function: testing::TestCase::Run()
void TestCase::Run() {
  if (!should_run_) return;

  internal::UnitTestImpl* const impl = internal::GetUnitTestImpl();
  impl->set_current_test_case(this);

  TestEventListener* repeater = UnitTest::GetInstance()->listeners().repeater();

  repeater->OnTestCaseStart(*this);
  impl->os_stack_trace_getter()->UponLeavingGTest();
  internal::HandleExceptionsInMethodIfSupported(
      this, &TestCase::RunSetUpTestCase, "SetUpTestCase()");

  const internal::TimeInMillis start = internal::GetTimeInMillis();
  for (int i = 0; i < total_test_count(); i++) {
    GetMutableTestInfo(i)->Run();
  }
  elapsed_time_ = internal::GetTimeInMillis() - start;

  impl->os_stack_trace_getter()->UponLeavingGTest();
  internal::HandleExceptionsInMethodIfSupported(
      this, &TestCase::RunTearDownTestCase, "TearDownTestCase()");

  repeater->OnTestCaseEnd(*this);
  impl->set_current_test_case(NULL);
}

// Assembly:
cmpb $0x1, 0x70(%rdi)
jne 0x18932
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
callq 0x10d48
movq 0x5b0df(%rip), %r13     # 0x73860
movq %rbx, 0x108(%r13)
callq 0x10d48
movq 0x5b0cc(%rip), %rax     # 0x73860
movq 0x190(%rax), %r14
movq (%r14), %rax
movq %r14, %rdi
movq %rbx, %rsi
callq *0x30(%rax)
cmpq $0x0, 0x1a8(%r13)
jne 0x187cc
movl $0x8, %edi
callq 0xc5d0
leaq 0x576d6(%rip), %rcx     # 0x6fe98
movq %rcx, (%rax)
movq %rax, 0x1a8(%r13)
movq 0x1a8(%r13), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
leaq 0x1233e(%rip), %rsi     # 0x2ab1e
leaq 0x3aea1(%rip), %rcx     # 0x53688
movq %rbx, %rdi
xorl %edx, %edx
callq 0x2a9b4
leaq 0x8(%rsp), %r12
movq %r12, %rdi
xorl %esi, %esi
callq 0xcad0
movabsq $-0x20c49ba5e353f7cf, %rax # imm = 0xDF3B645A1CAC0831
imulq 0x8(%r12)
movq %rdx, %r15
movq (%r12), %rbp
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x7, %r15
addq %rax, %r15
movq 0x30(%rbx), %rax
movq 0x38(%rbx), %rcx
subq %rax, %rcx
shrq $0x3, %rcx
testl %ecx, %ecx
jle 0x1887f
xorl %r12d, %r12d
movq 0x48(%rbx), %rcx
movq 0x50(%rbx), %rdx
subq %rcx, %rdx
shrq $0x2, %rdx
movslq %edx, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
cmpq %rsi, %r12
jge 0x1885a
movl (%rcx,%r12,4), %edx
movl %edx, %ecx
movq (%rax,%rcx,8), %rdi
callq 0x182b4
incq %r12
movq 0x30(%rbx), %rax
movq 0x38(%rbx), %rcx
subq %rax, %rcx
shrq $0x3, %rcx
movslq %ecx, %rcx
cmpq %rcx, %r12
jl 0x1883a
leaq 0x8(%rsp), %r12
movq %r12, %rdi
xorl %esi, %esi
callq 0xcad0
movabsq $0x20c49ba5e353f7cf, %rax # imm = 0x20C49BA5E353F7CF
imulq 0x8(%r12)
movq (%r12), %rax
subq %rbp, %rax
movq %rdx, %rcx
shrq $0x3f, %rcx
sarq $0x7, %rdx
addq %rcx, %rdx
addq %r15, %rdx
imulq $0x3e8, %rax, %rax      # imm = 0x3E8
addq %rdx, %rax
movq %rax, 0x78(%rbx)
cmpq $0x0, 0x1a8(%r13)
jne 0x188e8
movl $0x8, %edi
callq 0xc5d0
leaq 0x575ba(%rip), %rcx     # 0x6fe98
movq %rcx, (%rax)
movq %rax, 0x1a8(%r13)
movq 0x1a8(%r13), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
leaq 0x12226(%rip), %rsi     # 0x2ab22
leaq 0x3ad95(%rip), %rcx     # 0x53698
movq %rbx, %rdi
xorl %edx, %edx
callq 0x2a9b4
movq (%r14), %rax
movq %r14, %rdi
movq %rbx, %rsi
callq *0x50(%rax)
movq $0x0, 0x108(%r13)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop