// File: /workspace/github_c_makefile_star2_O3/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 0x1d2d0(%rip), %xmm0    # 0x55240
leaq 0x30(%rsp), %rax
movaps %xmm0, 0x20(%rax)
movaps 0x1d2b0(%rip), %xmm0    # 0x55230
movaps %xmm0, 0x10(%rax)
movaps 0x1d295(%rip), %xmm0    # 0x55220
movaps %xmm0, (%rax)
leaq 0x18(%rdi), %rsi
leaq 0x50(%rdi), %rdx
leaq 0x88(%rdi), %r14
movq %rax, %rdi
movq %r14, %rcx
callq 0x41494
movq %rax, 0x28(%rsp)
leaq 0x1cdab(%rip), %rsi     # 0x54d5f
leaq 0x1cda7(%rip), %rdx     # 0x54d62
leaq 0x1ff05(%rip), %rbx     # 0x57ec7
leaq 0x10(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rcx
movq %r14, %r8
callq 0x14ffa
cmpb $0x0, (%r15)
je 0x3832a
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
leaq 0x20(%rsp), %rcx
movq $0x0, (%rcx)
leaq 0x1c40d(%rip), %rsi     # 0x5440b
leaq 0x1be0c(%rip), %rdx     # 0x53e11
leaq 0x10(%rsp), %rbx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
callq 0x396c7
cmpb $0x0, (%rbx)
je 0x383a9
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
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 0x1c3b8(%rip), %rsi     # 0x5440b
leaq 0x1ced9(%rip), %rdx     # 0x54f33
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x39717
cmpb $0x0, (%rbx)
je 0x383c2
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
movq %rsp, %rcx
movl $0x4, (%rcx)
movq 0x20(%rsp), %r8
addq $0x8, %r8
leaq 0x1cf79(%rip), %rsi     # 0x5500e
leaq 0x1ce9d(%rip), %rdx     # 0x54f39
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x32e9d
cmpb $0x0, (%rbx)
je 0x3844c
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
movq %rsp, %rcx
movl $0x4, (%rcx)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq (%rax), %r8
leaq 0x1ce07(%rip), %rsi     # 0x54ee1
leaq 0x1ce67(%rip), %rdx     # 0x54f48
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3a110
cmpb $0x0, (%rbx)
je 0x384d8
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
movq %rsp, %rcx
movl $0x4, (%rcx)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %r8
leaq 0x1cdc1(%rip), %rsi     # 0x54ee1
leaq 0x1ce78(%rip), %rdx     # 0x54f9f
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3a110
cmpb $0x0, (%rbx)
je 0x38564
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
movq %rsp, %rcx
movl $0x4, (%rcx)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %r8
leaq 0x1cd7b(%rip), %rsi     # 0x54ee1
leaq 0x1ce4d(%rip), %rdx     # 0x54fba
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3a110
cmpb $0x0, (%rbx)
je 0x385f0
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
movq %rsp, %rcx
movl $0x4, (%rcx)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x18(%rax), %r8
leaq 0x1cd35(%rip), %rsi     # 0x54ee1
leaq 0x1ce5d(%rip), %rdx     # 0x55010
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3a110
cmpb $0x0, (%rbx)
je 0x3867c
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
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 0x1ce36(%rip), %rsi     # 0x5502b
leaq 0x1ce37(%rip), %rdx     # 0x55033
leaq 0x1ce59(%rip), %rcx     # 0x5505c
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x14ffa
cmpb $0x0, (%rbx)
je 0x38708
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
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 0x1ce1c(%rip), %rsi     # 0x55062
leaq 0x1ce1a(%rip), %rdx     # 0x55067
leaq 0x1bbab(%rip), %rcx     # 0x53dff
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x14ffa
cmpb $0x0, (%rbx)
je 0x38794
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
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 0x1cdf9(%rip), %rsi     # 0x55090
leaq 0x1ce00(%rip), %rdx     # 0x5509e
leaq 0x1ce22(%rip), %rcx     # 0x550c7
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x14ffa
cmpb $0x0, (%rbx)
je 0x38820
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
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 0x1cde6(%rip), %rsi     # 0x550ce
leaq 0x1cde4(%rip), %rdx     # 0x550d3
leaq 0x1b0c8(%rip), %rcx     # 0x533be
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x14ffa
cmpb $0x0, (%rbx)
jne 0x3896d
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x38910
movq (%rax), %r8
jmp 0x38917
leaq 0x20(%rsp), %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x38341
movq (%rax), %rbx
leaq 0x1ca00(%rip), %rdx     # 0x54d48
movq %rsp, %rdi
movl $0x2, %esi
movl $0x72, %ecx
movq %rbx, %r8
callq 0x10b64
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x10c00
movq %rsp, %rdi
callq 0x10bd0
cmpq $0x0, 0x20(%rsp)
je 0x38398
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x38398
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x38398
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x38979
leaq 0x20(%rsp), %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x383e0
movq (%rax), %r8
jmp 0x383e7
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x3846a
movq (%rax), %r8
jmp 0x38471
leaq 0x1fae0(%rip), %r8      # 0x57ec7
leaq 0x1c95a(%rip), %rdx     # 0x54d48
movq %rsp, %rdi
movl $0x2, %esi
movl $0x73, %ecx
callq 0x10b64
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x10c00
movq %rsp, %rdi
callq 0x10bd0
cmpq $0x0, 0x20(%rsp)
je 0x3843b
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x3843b
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x3843b
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x38979
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x384f6
movq (%rax), %r8
jmp 0x384fd
leaq 0x1fa56(%rip), %r8      # 0x57ec7
leaq 0x1c8d0(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x76, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x384c7
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x384c7
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x384c7
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x38979
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x38582
movq (%rax), %r8
jmp 0x38589
leaq 0x1f9ca(%rip), %r8      # 0x57ec7
leaq 0x1c844(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x78, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x38553
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x38553
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x38553
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x38979
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x3860e
movq (%rax), %r8
jmp 0x38615
leaq 0x1f93e(%rip), %r8      # 0x57ec7
leaq 0x1c7b8(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x79, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x385df
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x385df
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x385df
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x38979
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x3869a
movq (%rax), %r8
jmp 0x386a1
leaq 0x1f8b2(%rip), %r8      # 0x57ec7
leaq 0x1c72c(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x7a, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x3866b
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x3866b
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x3866b
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x38979
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x38726
movq (%rax), %r8
jmp 0x3872d
leaq 0x1f826(%rip), %r8      # 0x57ec7
leaq 0x1c6a0(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x7b, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x386f7
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x386f7
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x386f7
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x38979
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x387b2
movq (%rax), %r8
jmp 0x387b9
leaq 0x1f79a(%rip), %r8      # 0x57ec7
leaq 0x1c614(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x7c, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x38783
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x38783
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x38783
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x38979
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x38837
movq (%rax), %r8
jmp 0x3883e
leaq 0x1f70e(%rip), %r8      # 0x57ec7
leaq 0x1c588(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x7d, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x3880f
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x3880f
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x3880f
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x38979
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x388a5
movq (%rax), %r8
jmp 0x388ac
leaq 0x1f689(%rip), %r8      # 0x57ec7
leaq 0x1c503(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x7e, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x38894
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x38894
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x38894
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x38979
leaq 0x1f61b(%rip), %r8      # 0x57ec7
leaq 0x1c495(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x7f, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x38902
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x38902
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x38902
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x38979
leaq 0x1f5b0(%rip), %r8      # 0x57ec7
leaq 0x1c42a(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x80, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x3896d
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x3896d
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x3896d
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
addq $0x60, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x38aa7
jmp 0x38a4b
jmp 0x38a5a
jmp 0x38a92
jmp 0x38aa7
jmp 0x38aa7
jmp 0x38aa7
jmp 0x38a4b
jmp 0x38a5a
jmp 0x38a92
jmp 0x38aa7
jmp 0x38aa7
jmp 0x38aa7
jmp 0x38a4b
jmp 0x38a5a
jmp 0x38a92
jmp 0x38aa7
jmp 0x38aa7
jmp 0x38aa7
jmp 0x38a4b
jmp 0x38a5a
jmp 0x38a92
jmp 0x38aa7
jmp 0x38aa7
jmp 0x38aa7
jmp 0x38a4b
jmp 0x38a5a
jmp 0x38a92
jmp 0x38aa7
jmp 0x38aa7
jmp 0x38aa7
jmp 0x38a4b
jmp 0x38a5a
jmp 0x38a92
jmp 0x38aa7
jmp 0x38aa7
jmp 0x38aa7
jmp 0x38a4b
jmp 0x38a5a
jmp 0x38a92
jmp 0x38aa7
jmp 0x38aa7
jmp 0x38aa7
jmp 0x38a4b
jmp 0x38a5a
jmp 0x38a92
jmp 0x38aa7
jmp 0x38aa7
jmp 0x38aa7
jmp 0x38a4b
jmp 0x38a5a
jmp 0x38a92
jmp 0x38aa7
jmp 0x38aa7
jmp 0x38aa7
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x10bd0
jmp 0x38a5d
movq %rax, %rbx
movq %rsp, %rdi
jmp 0x38a8b
jmp 0x38a92
jmp 0x38aa7
jmp 0x38aa7
jmp 0x38aa7
jmp 0x38a76
jmp 0x38a83
jmp 0x38a92
jmp 0x38aa7
jmp 0x38aa7
jmp 0x38aa7
movq %rax, %rbx
movq %rsp, %rdi
callq 0x10bd0
jmp 0x38a86
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x31a70
jmp 0x38a95
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x31a82
movq %rbx, %rdi
callq 0xcbb0
movq %rax, %rdi
callq 0x287ef
nop