// File: halfflat[P]tinyopt/test/googletest/googletest/src/gtest.cc
// Function: testing::internal::JsonUnitTestResultPrinter::OutputJsonKey(std::ostream*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool)
void JsonUnitTestResultPrinter::OutputJsonKey(std::ostream* stream,
                                              const std::string& element_name,
                                              const std::string& name,
                                              const std::string& value,
                                              const std::string& indent,
                                              bool comma) {
  const std::vector<std::string>& allowed_names =
      GetReservedOutputAttributesForElement(element_name);

  GTEST_CHECK_(std::find(allowed_names.begin(), allowed_names.end(), name) !=
               allowed_names.end())
      << "Key \"" << name << "\" is not allowed for value \"" << element_name
      << "\".";

  *stream << indent << "\"" << name << "\": \"" << EscapeJson(value) << "\"";
  if (comma) *stream << ",\n";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x120, %rsp            # imm = 0x120
movb %r9b, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
andb $0x1, %al
movb %al, -0x29(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x50(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
callq 0x90010
movq -0xb8(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
callq 0x416b0
movq %rax, -0x60(%rbp)
movq -0x38(%rbp), %rdi
callq 0x416e0
movq %rax, -0x68(%rbp)
movq -0x18(%rbp), %rdx
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0xa9620
movq %rax, -0xb0(%rbp)
jmp 0x94c6a
movq -0xb0(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x38(%rbp), %rdi
callq 0x416e0
movq %rax, -0x80(%rbp)
leaq -0x58(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x41cb0
movzbl %al, %edi
callq 0x78790
movb %al, -0xb9(%rbp)
jmp 0x94c9f
movb -0xb9(%rbp), %al
testb $0x1, %al
jne 0x94cab
jmp 0x94cc1
jmp 0x94dbb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x94eb7
leaq 0x393f3(%rip), %rdx     # 0xce0bb
leaq -0x84(%rbp), %rdi
movl $0x3, %esi
movl $0x1219, %ecx           # imm = 0x1219
callq 0x7d880
jmp 0x94ce0
leaq -0x84(%rbp), %rdi
callq 0x1f280
movq %rax, -0xc8(%rbp)
jmp 0x94cf5
movq -0xc8(%rbp), %rdi
leaq 0x3a100(%rip), %rsi     # 0xcee03
callq 0x10720
movq %rax, -0xd0(%rbp)
jmp 0x94d11
movq -0xd0(%rbp), %rdi
leaq 0x3a33b(%rip), %rsi     # 0xcf05a
callq 0x10720
movq %rax, -0xd8(%rbp)
jmp 0x94d2d
movq -0xd8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x10680
movq %rax, -0xe0(%rbp)
jmp 0x94d46
movq -0xe0(%rbp), %rdi
leaq 0x3a30c(%rip), %rsi     # 0xcf060
callq 0x10720
movq %rax, -0xe8(%rbp)
jmp 0x94d62
movq -0xe8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x10680
movq %rax, -0xf0(%rbp)
jmp 0x94d7b
movq -0xf0(%rbp), %rdi
leaq 0x34cf9(%rip), %rsi     # 0xc9a82
callq 0x10720
jmp 0x94d90
leaq -0x84(%rbp), %rdi
callq 0x7d9c0
jmp 0x94dbb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x84(%rbp), %rdi
callq 0x7d9c0
jmp 0x94eb7
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x10680
movq %rax, -0xf8(%rbp)
jmp 0x94dd1
movq -0xf8(%rbp), %rdi
leaq 0x3a2ed(%rip), %rsi     # 0xcf0cc
callq 0x10720
movq %rax, -0x100(%rbp)
jmp 0x94ded
movq -0x100(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x10680
movq %rax, -0x108(%rbp)
jmp 0x94e06
movq -0x108(%rbp), %rdi
leaq 0x3a2b5(%rip), %rsi     # 0xcf0c9
callq 0x10720
movq %rax, -0x110(%rbp)
jmp 0x94e22
movq -0x20(%rbp), %rsi
leaq -0xa8(%rbp), %rdi
callq 0x949b0
jmp 0x94e34
movq -0x110(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x10680
movq %rax, -0x118(%rbp)
jmp 0x94e50
movq -0x118(%rbp), %rdi
leaq 0x3a26e(%rip), %rsi     # 0xcf0cc
callq 0x10720
jmp 0x94e65
leaq -0xa8(%rbp), %rdi
callq 0x10fc8
testb $0x1, -0x29(%rbp)
je 0x94ea5
movq -0x8(%rbp), %rdi
leaq 0x3a24d(%rip), %rsi     # 0xcf0cf
callq 0x10720
jmp 0x94e89
jmp 0x94ea5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x10fc8
jmp 0x94eb7
leaq -0x50(%rbp), %rdi
callq 0x390a0
addq $0x120, %rsp            # imm = 0x120
popq %rbp
retq
leaq -0x50(%rbp), %rdi
callq 0x390a0
movq -0x70(%rbp), %rdi
callq 0x10e00
nopl (%rax)