// File: halfflat[P]tinyopt/test/googletest/googletest/src/gtest.cc
// Function: testing::internal::JsonUnitTestResultPrinter::PrintJsonTestList(std::ostream*, std::vector<testing::TestSuite*, std::allocator<testing::TestSuite*>> const&)
void JsonUnitTestResultPrinter::PrintJsonTestList(
    std::ostream* stream, const std::vector<TestSuite*>& test_suites) {
  const std::string kTestsuites = "testsuites";
  const std::string kIndent = Indent(2);
  *stream << "{\n";
  int total_tests = 0;
  for (auto test_suite : test_suites) {
    total_tests += test_suite->total_test_count();
  }
  OutputJsonKey(stream, kTestsuites, "tests", total_tests, kIndent);

  OutputJsonKey(stream, kTestsuites, "name", "AllTests", kIndent);
  *stream << kIndent << "\"" << kTestsuites << "\": [\n";

  for (size_t i = 0; i < test_suites.size(); ++i) {
    if (i != 0) {
      *stream << ",\n";
    }
    PrintJsonTestSuite(stream, *test_suites[i]);
  }

  *stream << "\n"
          << kIndent << "]\n"
          << "}\n";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x180, %rsp            # imm = 0x180
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x31(%rbp), %rdi
movq %rdi, -0x118(%rbp)
callq 0x10e10
movq -0x118(%rbp), %rdx
leaq 0x35e50(%rip), %rsi     # 0xcefb1
leaq -0x30(%rbp), %rdi
callq 0x1d070
jmp 0x9916c
leaq -0x31(%rbp), %rdi
callq 0x10810
leaq -0x68(%rbp), %rdi
movl $0x2, %esi
callq 0x96b40
jmp 0x99185
movq -0x8(%rbp), %rdi
leaq 0x35f2a(%rip), %rsi     # 0xcf0ba
callq 0x10720
jmp 0x99197
movl $0x0, -0x6c(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rdi
callq 0xa9840
movq %rax, -0x80(%rbp)
movq -0x78(%rbp), %rdi
callq 0xa9870
movq %rax, -0x88(%rbp)
leaq -0x80(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0xa98a0
testb $0x1, %al
jne 0x991d9
jmp 0x99245
leaq -0x80(%rbp), %rdi
callq 0xa98e0
movq (%rax), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rdi
callq 0x84030
addl -0x6c(%rbp), %eax
movl %eax, -0x6c(%rbp)
leaq -0x80(%rbp), %rdi
callq 0xa9900
jmp 0x991c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x31(%rbp), %rdi
callq 0x10810
jmp 0x995a3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x9959a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x99591
movq -0x8(%rbp), %rax
movq %rax, -0x128(%rbp)
leaq -0xb1(%rbp), %rdi
movq %rdi, -0x120(%rbp)
callq 0x10e10
movq -0x120(%rbp), %rdx
leaq 0x34d57(%rip), %rsi     # 0xcdfc8
leaq -0xb0(%rbp), %rdi
callq 0x1d070
jmp 0x9927f
movq -0x128(%rbp), %rdi
movl -0x6c(%rbp), %ecx
leaq -0x30(%rbp), %rsi
leaq -0xb0(%rbp), %rdx
leaq -0x68(%rbp), %r8
movl $0x1, %r9d
callq 0x94ed0
jmp 0x992a5
leaq -0xb0(%rbp), %rdi
callq 0x10fc8
leaq -0xb1(%rbp), %rdi
callq 0x10810
movq -0x8(%rbp), %rax
movq %rax, -0x138(%rbp)
leaq -0xd9(%rbp), %rdi
movq %rdi, -0x130(%rbp)
callq 0x10e10
movq -0x130(%rbp), %rdx
leaq 0x35c1a(%rip), %rsi     # 0xcef03
leaq -0xd8(%rbp), %rdi
callq 0x1d070
jmp 0x992f7
leaq -0x101(%rbp), %rdi
movq %rdi, -0x140(%rbp)
callq 0x10e10
movq -0x140(%rbp), %rdx
leaq 0x35ccc(%rip), %rsi     # 0xcefe4
leaq -0x100(%rbp), %rdi
callq 0x1d070
jmp 0x99326
movq -0x138(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0xd8(%rbp), %rdx
leaq -0x100(%rbp), %rcx
leaq -0x68(%rbp), %r8
movl $0x1, %r9d
callq 0x94bf0
jmp 0x99350
leaq -0x100(%rbp), %rdi
callq 0x10fc8
leaq -0x101(%rbp), %rdi
callq 0x10810
leaq -0xd8(%rbp), %rdi
callq 0x10fc8
leaq -0xd9(%rbp), %rdi
callq 0x10810
movq -0x8(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x10680
movq %rax, -0x148(%rbp)
jmp 0x99396
movq -0x148(%rbp), %rdi
leaq 0x35d28(%rip), %rsi     # 0xcf0cc
callq 0x10720
movq %rax, -0x150(%rbp)
jmp 0x993b2
movq -0x150(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x10680
movq %rax, -0x158(%rbp)
jmp 0x993cb
movq -0x158(%rbp), %rdi
leaq 0x35cb2(%rip), %rsi     # 0xcf08b
callq 0x10720
jmp 0x993e0
movq $0x0, -0x110(%rbp)
movq -0x110(%rbp), %rax
movq %rax, -0x160(%rbp)
movq -0x10(%rbp), %rdi
callq 0xa5380
movq %rax, %rcx
movq -0x160(%rbp), %rax
cmpq %rcx, %rax
jae 0x99513
cmpq $0x0, -0x110(%rbp)
je 0x994ce
movq -0x8(%rbp), %rdi
leaq 0x35ca1(%rip), %rsi     # 0xcf0cf
callq 0x10720
jmp 0x99435
jmp 0x994ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x99460
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x10fc8
leaq -0xb1(%rbp), %rdi
callq 0x10810
jmp 0x99591
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x994bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x994a5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x10fc8
leaq -0x101(%rbp), %rdi
callq 0x10810
leaq -0xd8(%rbp), %rdi
callq 0x10fc8
leaq -0xd9(%rbp), %rdi
callq 0x10810
jmp 0x99591
movq -0x8(%rbp), %rax
movq %rax, -0x168(%rbp)
movq -0x10(%rbp), %rdi
movq -0x110(%rbp), %rsi
callq 0xa9920
movq -0x168(%rbp), %rdi
movq (%rax), %rsi
callq 0x98700
jmp 0x994fa
jmp 0x994fc
movq -0x110(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x110(%rbp)
jmp 0x993eb
movq -0x8(%rbp), %rdi
leaq 0x31ed8(%rip), %rsi     # 0xcb3f6
callq 0x10720
movq %rax, -0x170(%rbp)
jmp 0x9952c
movq -0x170(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x10680
movq %rax, -0x178(%rbp)
jmp 0x99545
movq -0x178(%rbp), %rdi
leaq 0x35b48(%rip), %rsi     # 0xcf09b
callq 0x10720
movq %rax, -0x180(%rbp)
jmp 0x99561
movq -0x180(%rbp), %rdi
leaq 0x35b77(%rip), %rsi     # 0xcf0e6
callq 0x10720
jmp 0x99576
leaq -0x68(%rbp), %rdi
callq 0x10fc8
leaq -0x30(%rbp), %rdi
callq 0x10fc8
addq $0x180, %rsp            # imm = 0x180
popq %rbp
retq
leaq -0x68(%rbp), %rdi
callq 0x10fc8
leaq -0x30(%rbp), %rdi
callq 0x10fc8
movq -0x40(%rbp), %rdi
callq 0x10e00
nopl (%rax)