// File: /workspace/github_c_makefile_star2_O3/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 0x1878a
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
callq 0x10cf2
movq 0x5a26d(%rip), %r13     # 0x72860
movq %rbx, 0x108(%r13)
callq 0x10cf2
movq 0x5a25a(%rip), %rax     # 0x72860
movq 0x190(%rax), %r14
movq (%r14), %rax
movq %r14, %rdi
movq %rbx, %rsi
callq *0x30(%rax)
movq 0x1a8(%r13), %rdi
testq %rdi, %rdi
je 0x1862a
movq (%rdi), %rax
jmp 0x18648
movl $0x8, %edi
callq 0xc5d0
movq %rax, %rdi
leaq 0x5685a(%rip), %rax     # 0x6ee98
movq %rax, (%rdi)
movq %rdi, 0x1a8(%r13)
callq *0x18(%rax)
leaq 0x11fae(%rip), %rsi     # 0x2a600
leaq 0x3a05f(%rip), %rcx     # 0x526b8
movq %rbx, %rdi
xorl %edx, %edx
callq 0x2a496
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 0x186d7
xorl %r12d, %r12d
movq 0x48(%rbx), %rcx
movl (%rcx,%r12,4), %ecx
movq (%rax,%rcx,8), %rdi
callq 0x18132
incq %r12
movq 0x30(%rbx), %rax
movq 0x38(%rbx), %rcx
subq %rax, %rcx
shrq $0x3, %rcx
movslq %ecx, %rcx
cmpq %rcx, %r12
jl 0x186ac
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)
movq 0x1a8(%r13), %rdi
testq %rdi, %rdi
je 0x1872c
movq (%rdi), %rax
jmp 0x1874a
movl $0x8, %edi
callq 0xc5d0
movq %rax, %rdi
leaq 0x56758(%rip), %rax     # 0x6ee98
movq %rax, (%rdi)
movq %rdi, 0x1a8(%r13)
callq *0x18(%rax)
leaq 0x11eb0(%rip), %rsi     # 0x2a604
leaq 0x39f6d(%rip), %rcx     # 0x526c8
movq %rbx, %rdi
xorl %edx, %edx
callq 0x2a496
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