// File: ambersun1234[P]AVL_Tree/./googletest/googletest/src/gtest.cc
// Function: testing::internal::JsonUnitTestResultPrinter::EscapeJson(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
std::string JsonUnitTestResultPrinter::EscapeJson(const std::string& str) {
  Message m;

  for (size_t i = 0; i < str.size(); ++i) {
    const char ch = str[i];
    switch (ch) {
      case '\\':
      case '"':
      case '/':
        m << '\\' << ch;
        break;
      case '\b':
        m << "\\b";
        break;
      case '\t':
        m << "\\t";
        break;
      case '\n':
        m << "\\n";
        break;
      case '\f':
        m << "\\f";
        break;
      case '\r':
        m << "\\r";
        break;
      default:
        if (ch < ' ') {
          m << "\\u00" << String::FormatByte(static_cast<unsigned char>(ch));
        } else {
          m << ch;
        }
        break;
    }
  }

  return m.GetString();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x68(%rbp)
movq %rdi, %rax
movq %rax, -0x60(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x18(%rbp), %rdi
callq 0x190b0
movq $0x0, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x10(%rbp), %rdi
callq 0x9410
movq %rax, %rcx
movq -0x70(%rbp), %rax
cmpq %rcx, %rax
jae 0x278b5
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x9700
movb (%rax), %al
movb %al, -0x21(%rbp)
movsbl -0x21(%rbp), %eax
movl %eax, -0x74(%rbp)
subl $0x8, %eax
je 0x277ba
jmp 0x27724
movl -0x74(%rbp), %eax
subl $0x9, %eax
je 0x277d1
jmp 0x27732
movl -0x74(%rbp), %eax
subl $0xa, %eax
je 0x277e8
jmp 0x27740
movl -0x74(%rbp), %eax
subl $0xc, %eax
je 0x277ff
jmp 0x2774e
movl -0x74(%rbp), %eax
subl $0xd, %eax
je 0x27816
jmp 0x2775c
movl -0x74(%rbp), %eax
subl $0x22, %eax
je 0x2777e
jmp 0x27766
movl -0x74(%rbp), %eax
subl $0x2f, %eax
je 0x2777e
jmp 0x27770
movl -0x74(%rbp), %eax
subl $0x5c, %eax
jne 0x2782a
jmp 0x2777e
movb $0x5c, -0x22(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x22(%rbp), %rsi
callq 0x3be80
movq %rax, -0x80(%rbp)
jmp 0x27795
movq -0x80(%rbp), %rdi
leaq -0x21(%rbp), %rsi
callq 0x3be80
jmp 0x277a4
jmp 0x278a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x278da
leaq 0x3148e(%rip), %rsi     # 0x58c4f
leaq -0x18(%rbp), %rdi
callq 0x12830
jmp 0x277cc
jmp 0x278a2
leaq 0x3147a(%rip), %rsi     # 0x58c52
leaq -0x18(%rbp), %rdi
callq 0x12830
jmp 0x277e3
jmp 0x278a2
leaq 0x31466(%rip), %rsi     # 0x58c55
leaq -0x18(%rbp), %rdi
callq 0x12830
jmp 0x277fa
jmp 0x278a2
leaq 0x31452(%rip), %rsi     # 0x58c58
leaq -0x18(%rbp), %rdi
callq 0x12830
jmp 0x27811
jmp 0x278a2
leaq 0x3143e(%rip), %rsi     # 0x58c5b
leaq -0x18(%rbp), %rdi
callq 0x12830
jmp 0x27828
jmp 0x278a2
movsbl -0x21(%rbp), %eax
cmpl $0x20, %eax
jge 0x2788f
leaq 0x31424(%rip), %rsi     # 0x58c5e
leaq -0x18(%rbp), %rdi
callq 0x128b0
movq %rax, -0x88(%rbp)
jmp 0x2784c
movzbl -0x21(%rbp), %esi
leaq -0x58(%rbp), %rdi
callq 0x1de00
jmp 0x2785b
movq -0x88(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x12870
jmp 0x2786d
leaq -0x58(%rbp), %rdi
callq 0x9db8
jmp 0x278a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x9db8
jmp 0x278da
leaq -0x18(%rbp), %rdi
leaq -0x21(%rbp), %rsi
callq 0x3be80
jmp 0x2789e
jmp 0x278a0
jmp 0x278a2
jmp 0x278a4
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x276df
movq -0x68(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x19430
jmp 0x278c4
leaq -0x18(%rbp), %rdi
callq 0xf3f0
movq -0x60(%rbp), %rax
addq $0x90, %rsp
popq %rbp
retq
leaq -0x18(%rbp), %rdi
callq 0xf3f0
movq -0x30(%rbp), %rdi
callq 0x9c40
nopl (%rax)