// File: halfflat[P]tinyopt/test/googletest/googletest/src/gtest.cc
// Function: testing::internal::XmlUnitTestResultPrinter::PrintXmlTestsList(std::ostream*, std::vector<testing::TestSuite*, std::allocator<testing::TestSuite*>> const&)
void XmlUnitTestResultPrinter::PrintXmlTestsList(
    std::ostream* stream, const std::vector<TestSuite*>& test_suites) {
  const std::string kTestsuites = "testsuites";

  *stream << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
  *stream << "<" << kTestsuites;

  int total_tests = 0;
  for (auto test_suite : test_suites) {
    total_tests += test_suite->total_test_count();
  }
  OutputXmlAttribute(stream, kTestsuites, "tests",
                     StreamableToString(total_tests));
  OutputXmlAttribute(stream, kTestsuites, "name", "AllTests");
  *stream << ">\n";

  for (auto test_suite : test_suites) {
    PrintXmlTestSuite(stream, *test_suite);
  }
  *stream << "</" << kTestsuites << ">\n";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x31(%rbp), %rdi
movq %rdi, -0x128(%rbp)
callq 0x10e10
movq -0x128(%rbp), %rdx
leaq 0x40160(%rip), %rsi     # 0xcefb1
leaq -0x30(%rbp), %rdi
callq 0x1d070
jmp 0x8ee5c
leaq -0x31(%rbp), %rdi
callq 0x10810
movq -0x8(%rbp), %rdi
leaq 0x4014c(%rip), %rsi     # 0xcefbc
callq 0x10720
jmp 0x8ee77
movq -0x8(%rbp), %rdi
leaq 0x40187(%rip), %rsi     # 0xcf009
callq 0x10720
movq %rax, -0x130(%rbp)
jmp 0x8ee90
movq -0x130(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x10680
jmp 0x8eea2
movl $0x0, -0x48(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rdi
callq 0xa9840
movq %rax, -0x58(%rbp)
movq -0x50(%rbp), %rdi
callq 0xa9870
movq %rax, -0x60(%rbp)
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0xa98a0
testb $0x1, %al
jne 0x8eede
jmp 0x8ef33
leaq -0x58(%rbp), %rdi
callq 0xa98e0
movq (%rax), %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rdi
callq 0x84030
addl -0x48(%rbp), %eax
movl %eax, -0x48(%rbp)
leaq -0x58(%rbp), %rdi
callq 0xa9900
jmp 0x8eecb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x31(%rbp), %rdi
callq 0x10810
jmp 0x8f220
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x8f217
movq -0x8(%rbp), %rax
movq %rax, -0x140(%rbp)
leaq -0x89(%rbp), %rdi
movq %rdi, -0x138(%rbp)
callq 0x10e10
movq -0x138(%rbp), %rdx
leaq 0x3f069(%rip), %rsi     # 0xcdfc8
leaq -0x88(%rbp), %rdi
callq 0x1d070
jmp 0x8ef6d
leaq -0xb0(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0xa2c60
jmp 0x8ef7f
movq -0x140(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x88(%rbp), %rdx
leaq -0xb0(%rbp), %rcx
callq 0x8fd80
jmp 0x8ef9f
leaq -0xb0(%rbp), %rdi
callq 0x10fc8
leaq -0x88(%rbp), %rdi
callq 0x10fc8
leaq -0x89(%rbp), %rdi
callq 0x10810
movq -0x8(%rbp), %rax
movq %rax, -0x150(%rbp)
leaq -0xd1(%rbp), %rdi
movq %rdi, -0x148(%rbp)
callq 0x10e10
movq -0x148(%rbp), %rdx
leaq 0x3ff14(%rip), %rsi     # 0xcef03
leaq -0xd0(%rbp), %rdi
callq 0x1d070
jmp 0x8effd
leaq -0xf9(%rbp), %rdi
movq %rdi, -0x158(%rbp)
callq 0x10e10
movq -0x158(%rbp), %rdx
leaq 0x3ffc6(%rip), %rsi     # 0xcefe4
leaq -0xf8(%rbp), %rdi
callq 0x1d070
jmp 0x8f02c
movq -0x150(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0xd0(%rbp), %rdx
leaq -0xf8(%rbp), %rcx
callq 0x8fd80
jmp 0x8f04c
leaq -0xf8(%rbp), %rdi
callq 0x10fc8
leaq -0xf9(%rbp), %rdi
callq 0x10810
leaq -0xd0(%rbp), %rdi
callq 0x10fc8
leaq -0xd1(%rbp), %rdi
callq 0x10810
movq -0x8(%rbp), %rdi
leaq 0x3feaf(%rip), %rsi     # 0xcef36
callq 0x10720
jmp 0x8f08e
movq -0x10(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0x108(%rbp), %rdi
callq 0xa9840
movq %rax, -0x110(%rbp)
movq -0x108(%rbp), %rdi
callq 0xa9870
movq %rax, -0x118(%rbp)
leaq -0x110(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0xa98a0
testb $0x1, %al
jne 0x8f0db
jmp 0x8f1be
leaq -0x110(%rbp), %rdi
callq 0xa98e0
movq (%rax), %rax
movq %rax, -0x120(%rbp)
movq -0x8(%rbp), %rdi
movq -0x120(%rbp), %rsi
callq 0x92f80
jmp 0x8f103
jmp 0x8f105
leaq -0x110(%rbp), %rdi
callq 0xa9900
jmp 0x8f0bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x8f153
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x8f147
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x10fc8
leaq -0x88(%rbp), %rdi
callq 0x10fc8
leaq -0x89(%rbp), %rdi
callq 0x10810
jmp 0x8f217
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x8f1b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x8f198
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x10fc8
leaq -0xf9(%rbp), %rdi
callq 0x10810
leaq -0xd0(%rbp), %rdi
callq 0x10fc8
leaq -0xd1(%rbp), %rdi
callq 0x10810
jmp 0x8f217
movq -0x8(%rbp), %rdi
leaq 0x3fe59(%rip), %rsi     # 0xcf022
callq 0x10720
movq %rax, -0x160(%rbp)
jmp 0x8f1d7
movq -0x160(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x10680
movq %rax, -0x168(%rbp)
jmp 0x8f1f0
movq -0x168(%rbp), %rdi
leaq 0x3fd38(%rip), %rsi     # 0xcef36
callq 0x10720
jmp 0x8f205
leaq -0x30(%rbp), %rdi
callq 0x10fc8
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
leaq -0x30(%rbp), %rdi
callq 0x10fc8
movq -0x40(%rbp), %rdi
callq 0x10e00
nopl (%rax)