// File: /workspace/github_c_makefile_star2_O1/deplinenoise[P]tundra/unittest/Test_Json.cpp
// Function: JsonTest_StringEscapes_Test::TestBody()
TEST_F(JsonTest, StringEscapes)
{
  char input[] = "[\" foo \", \"\\\\\", \"\\n\\r\\t\\f\\b\\/\", \"\\u004C\\u004c\"]";
  const JsonValue* v = JsonParse(input, &alloc, &scratch, error_msg);

  ASSERT_STREQ("", error_msg);
  ASSERT_NE(nullptr, v);

  const JsonArrayValue* array = v->AsArray();
  ASSERT_NE(nullptr, array);

  ASSERT_EQ(4, array->m_Count);
  ASSERT_EQ(JsonValue::kString, array->m_Values[0]->m_Type);
  ASSERT_EQ(JsonValue::kString, array->m_Values[1]->m_Type);
  ASSERT_EQ(JsonValue::kString, array->m_Values[2]->m_Type);
  ASSERT_EQ(JsonValue::kString, array->m_Values[3]->m_Type);
  ASSERT_STREQ(" foo ", array->m_Values[0]->AsString()->m_String);
  ASSERT_STREQ("\\", array->m_Values[1]->AsString()->m_String);
  ASSERT_STREQ("\n\r\t\f\b/", array->m_Values[2]->AsString()->m_String);
  ASSERT_STREQ("LL", array->m_Values[3]->AsString()->m_String);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x60, %rsp
movaps 0x1d9c8(%rip), %xmm0    # 0x56210
leaq 0x30(%rsp), %rax
movaps %xmm0, 0x20(%rax)
movaps 0x1d9a8(%rip), %xmm0    # 0x56200
movaps %xmm0, 0x10(%rax)
movaps 0x1d98d(%rip), %xmm0    # 0x561f0
movaps %xmm0, (%rax)
leaq 0x18(%rdi), %rsi
leaq 0x50(%rdi), %rdx
leaq 0x88(%rdi), %r14
movq %rax, %rdi
movq %r14, %rcx
callq 0x42144
movq %rax, 0x28(%rsp)
leaq 0x1d4a3(%rip), %rsi     # 0x55d2f
leaq 0x1d49f(%rip), %rdx     # 0x55d32
leaq 0x205b9(%rip), %rbx     # 0x58e53
leaq 0x10(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rcx
movq %r14, %r8
callq 0x150d6
cmpb $0x0, (%r15)
je 0x38c02
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
leaq 0x20(%rsp), %rcx
movq $0x0, (%rcx)
leaq 0x1cb05(%rip), %rsi     # 0x553db
leaq 0x1c504(%rip), %rdx     # 0x54de1
leaq 0x10(%rsp), %rbx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
callq 0x3a063
cmpb $0x0, (%rbx)
je 0x38c8a
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
movq 0x28(%rsp), %rax
xorl %ecx, %ecx
cmpl $0x3, (%rax)
cmoveq %rax, %rcx
leaq 0x20(%rsp), %r8
movq %rcx, (%r8)
movq %rsp, %rcx
movq $0x0, (%rcx)
leaq 0x1cab0(%rip), %rsi     # 0x553db
leaq 0x1d5d1(%rip), %rdx     # 0x55f03
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3a0b3
cmpb $0x0, (%rbx)
je 0x38ca3
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
movq %rsp, %rcx
movl $0x4, (%rcx)
movq 0x20(%rsp), %r8
addq $0x8, %r8
leaq 0x1d671(%rip), %rsi     # 0x55fde
leaq 0x1d595(%rip), %rdx     # 0x55f09
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3352d
cmpb $0x0, (%rbx)
je 0x38d36
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
movq %rsp, %rcx
movl $0x4, (%rcx)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq (%rax), %r8
leaq 0x1d4ff(%rip), %rsi     # 0x55eb1
leaq 0x1d55f(%rip), %rdx     # 0x55f18
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3aaac
cmpb $0x0, (%rbx)
je 0x38dca
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
movq %rsp, %rcx
movl $0x4, (%rcx)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %r8
leaq 0x1d4b9(%rip), %rsi     # 0x55eb1
leaq 0x1d570(%rip), %rdx     # 0x55f6f
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3aaac
cmpb $0x0, (%rbx)
je 0x38e5e
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
movq %rsp, %rcx
movl $0x4, (%rcx)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %r8
leaq 0x1d473(%rip), %rsi     # 0x55eb1
leaq 0x1d545(%rip), %rdx     # 0x55f8a
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3aaac
cmpb $0x0, (%rbx)
je 0x38ef2
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
movq %rsp, %rcx
movl $0x4, (%rcx)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x18(%rax), %r8
leaq 0x1d42d(%rip), %rsi     # 0x55eb1
leaq 0x1d555(%rip), %rdx     # 0x55fe0
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3aaac
cmpb $0x0, (%rbx)
je 0x38f86
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq (%rax), %rax
xorl %ecx, %ecx
cmpl $0x4, (%rax)
cmoveq %rax, %rcx
movq 0x8(%rcx), %r8
leaq 0x1d52e(%rip), %rsi     # 0x55ffb
leaq 0x1d52f(%rip), %rdx     # 0x56003
leaq 0x1d551(%rip), %rcx     # 0x5602c
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x150d6
cmpb $0x0, (%rbx)
je 0x3901a
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
xorl %ecx, %ecx
cmpl $0x4, (%rax)
cmoveq %rax, %rcx
movq 0x8(%rcx), %r8
leaq 0x1d514(%rip), %rsi     # 0x56032
leaq 0x1d512(%rip), %rdx     # 0x56037
leaq 0x1c2a3(%rip), %rcx     # 0x54dcf
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x150d6
cmpb $0x0, (%rbx)
je 0x390ae
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
xorl %ecx, %ecx
cmpl $0x4, (%rax)
cmoveq %rax, %rcx
movq 0x8(%rcx), %r8
leaq 0x1d4f1(%rip), %rsi     # 0x56060
leaq 0x1d4f8(%rip), %rdx     # 0x5606e
leaq 0x1d51a(%rip), %rcx     # 0x56097
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x150d6
cmpb $0x0, (%rbx)
je 0x39142
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x18(%rax), %rax
xorl %ecx, %ecx
cmpl $0x4, (%rax)
cmoveq %rax, %rcx
movq 0x8(%rcx), %r8
leaq 0x1d4de(%rip), %rsi     # 0x5609e
leaq 0x1d4dc(%rip), %rdx     # 0x560a3
leaq 0x1b7c0(%rip), %rcx     # 0x5438e
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x150d6
cmpb $0x0, (%rbx)
jne 0x392a7
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x39242
movq (%rax), %r8
jmp 0x39249
leaq 0x20(%rsp), %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x38c19
movq (%rax), %rbx
leaq 0x1d0f8(%rip), %rdx     # 0x55d18
movq %rsp, %rdi
movl $0x2, %esi
movl $0x72, %ecx
movq %rbx, %r8
callq 0x10bb8
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x10c56
movq %rsp, %rdi
callq 0x10c24
cmpq $0x0, 0x20(%rsp)
je 0x38c79
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x38c70
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x38c70
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x20(%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x392b3
leaq 0x20(%rsp), %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x38cc1
movq (%rax), %r8
jmp 0x38cc8
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x38d54
movq (%rax), %r8
jmp 0x38d5b
leaq 0x2018b(%rip), %r8      # 0x58e53
leaq 0x1d049(%rip), %rdx     # 0x55d18
movq %rsp, %rdi
movl $0x2, %esi
movl $0x73, %ecx
callq 0x10bb8
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x10c56
movq %rsp, %rdi
callq 0x10c24
cmpq $0x0, 0x20(%rsp)
je 0x38d25
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x38d1c
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x38d1c
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x20(%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x392b3
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x38de8
movq (%rax), %r8
jmp 0x38def
leaq 0x200f8(%rip), %r8      # 0x58e53
leaq 0x1cfb6(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x76, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x38db9
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x38db1
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x38db1
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x392b3
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x38e7c
movq (%rax), %r8
jmp 0x38e83
leaq 0x20064(%rip), %r8      # 0x58e53
leaq 0x1cf22(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x78, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x38e4d
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x38e45
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x38e45
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x392b3
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x38f10
movq (%rax), %r8
jmp 0x38f17
leaq 0x1ffd0(%rip), %r8      # 0x58e53
leaq 0x1ce8e(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x79, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x38ee1
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x38ed9
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x38ed9
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x392b3
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x38fa4
movq (%rax), %r8
jmp 0x38fab
leaq 0x1ff3c(%rip), %r8      # 0x58e53
leaq 0x1cdfa(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x7a, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x38f75
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x38f6d
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x38f6d
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x392b3
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x39038
movq (%rax), %r8
jmp 0x3903f
leaq 0x1fea8(%rip), %r8      # 0x58e53
leaq 0x1cd66(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x7b, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x39009
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x39001
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x39001
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x392b3
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x390cc
movq (%rax), %r8
jmp 0x390d3
leaq 0x1fe14(%rip), %r8      # 0x58e53
leaq 0x1ccd2(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x7c, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x3909d
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x39095
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x39095
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x392b3
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x39159
movq (%rax), %r8
jmp 0x39160
leaq 0x1fd80(%rip), %r8      # 0x58e53
leaq 0x1cc3e(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x7d, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x39131
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x39129
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x39129
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x392b3
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x391cf
movq (%rax), %r8
jmp 0x391d6
leaq 0x1fcf3(%rip), %r8      # 0x58e53
leaq 0x1cbb1(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x7e, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x391be
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x391b6
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x391b6
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x392b3
leaq 0x1fc7d(%rip), %r8      # 0x58e53
leaq 0x1cb3b(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x7f, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x39234
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x3922c
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x3922c
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x392b3
leaq 0x1fc0a(%rip), %r8      # 0x58e53
leaq 0x1cac8(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x80, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x392a7
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x3929f
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x3929f
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
addq $0x60, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x393e1
jmp 0x39385
jmp 0x39394
jmp 0x393cc
jmp 0x393e1
jmp 0x393e1
jmp 0x393e1
jmp 0x39385
jmp 0x39394
jmp 0x393cc
jmp 0x393e1
jmp 0x393e1
jmp 0x393e1
jmp 0x39385
jmp 0x39394
jmp 0x393cc
jmp 0x393e1
jmp 0x393e1
jmp 0x393e1
jmp 0x39385
jmp 0x39394
jmp 0x393cc
jmp 0x393e1
jmp 0x393e1
jmp 0x393e1
jmp 0x39385
jmp 0x39394
jmp 0x393cc
jmp 0x393e1
jmp 0x393e1
jmp 0x393e1
jmp 0x39385
jmp 0x39394
jmp 0x393cc
jmp 0x393e1
jmp 0x393e1
jmp 0x393e1
jmp 0x39385
jmp 0x39394
jmp 0x393cc
jmp 0x393e1
jmp 0x393e1
jmp 0x393e1
jmp 0x39385
jmp 0x39394
jmp 0x393cc
jmp 0x393e1
jmp 0x393e1
jmp 0x393e1
jmp 0x39385
jmp 0x39394
jmp 0x393cc
jmp 0x393e1
jmp 0x393e1
jmp 0x393e1
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x10c24
jmp 0x39397
movq %rax, %rbx
movq %rsp, %rdi
jmp 0x393c5
jmp 0x393cc
jmp 0x393e1
jmp 0x393e1
jmp 0x393e1
jmp 0x393b0
jmp 0x393bd
jmp 0x393cc
jmp 0x393e1
jmp 0x393e1
jmp 0x393e1
movq %rax, %rbx
movq %rsp, %rdi
callq 0x10c24
jmp 0x393c0
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x31faa
jmp 0x393cf
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x31fbc
movq %rbx, %rdi
callq 0xcbb0
movq %rax, %rdi
callq 0x28baf
nop