// File: /workspace/github_c_makefile_star2_O1/deplinenoise[P]tundra/unittest/Test_Json.cpp
// Function: JsonTest_Simple_Test::TestBody()
TEST_F(JsonTest, Simple)
{
  char input[] = "  { \"foo\" : 8, \"bar\" : true }  ";
  const JsonValue* v = JsonParse(input, &alloc, &scratch, error_msg);

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

  const JsonObjectValue* obj = v->AsObject();
  ASSERT_NE(nullptr, obj);
  ASSERT_EQ(2, obj->m_Count);
  ASSERT_STREQ("foo", obj->m_Names[0]);
  ASSERT_STREQ("bar", obj->m_Names[1]);
  ASSERT_EQ(JsonValue::kNumber, obj->m_Values[0]->m_Type);
  ASSERT_EQ(8, int(obj->m_Values[0]->AsNumber()->m_Number));
  ASSERT_EQ(JsonValue::kBoolean, obj->m_Values[1]->m_Type);
  ASSERT_EQ(1, int(obj->m_Values[1]->AsBoolean()->m_Boolean));
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x50, %rsp
movaps 0x1f90c(%rip), %xmm0    # 0x561c0
leaq 0x30(%rsp), %rax
movaps %xmm0, 0x10(%rax)
movaps 0x1f8ec(%rip), %xmm0    # 0x561b0
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 0x1f442(%rip), %rsi     # 0x55d2f
leaq 0x1f43e(%rip), %rdx     # 0x55d32
leaq 0x22558(%rip), %rbx     # 0x58e53
leaq 0x10(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rcx
movq %r14, %r8
callq 0x150d6
cmpb $0x0, (%r15)
je 0x36bd1
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
leaq 0x20(%rsp), %rcx
movq $0x0, (%rcx)
leaq 0x1eaa4(%rip), %rsi     # 0x553db
leaq 0x1e4a3(%rip), %rdx     # 0x54de1
leaq 0x10(%rsp), %rbx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
callq 0x3a063
cmpb $0x0, (%rbx)
je 0x36c59
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
movq 0x28(%rsp), %rax
xorl %ecx, %ecx
cmpl $0x2, (%rax)
cmoveq %rax, %rcx
leaq 0x20(%rsp), %r8
movq %rcx, (%r8)
movq %rsp, %rcx
movq $0x0, (%rcx)
leaq 0x1ea4f(%rip), %rsi     # 0x553db
leaq 0x1f3a9(%rip), %rdx     # 0x55d3c
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3a08b
cmpb $0x0, (%rbx)
je 0x36c72
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
movq %rsp, %rcx
movl $0x2, (%rcx)
movq 0x20(%rsp), %r8
addq $0x8, %r8
leaq 0x21171(%rip), %rsi     # 0x57b3f
leaq 0x1f36b(%rip), %rdx     # 0x55d40
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3352d
cmpb $0x0, (%rbx)
je 0x36d05
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq (%rax), %r8
leaq 0x1f343(%rip), %rsi     # 0x55d4d
leaq 0x1f342(%rip), %rdx     # 0x55d53
leaq 0x2075f(%rip), %rcx     # 0x57177
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x150d6
cmpb $0x0, (%rbx)
je 0x36d99
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %r8
leaq 0x1f315(%rip), %rsi     # 0x55d63
leaq 0x1f314(%rip), %rdx     # 0x55d69
leaq 0x1fe9d(%rip), %rcx     # 0x568f9
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x150d6
cmpb $0x0, (%rbx)
je 0x36e2d
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
movq %rsp, %rcx
movl $0x5, (%rcx)
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rax
movq (%rax), %r8
leaq 0x1f2df(%rip), %rsi     # 0x55d79
leaq 0x1f2eb(%rip), %rdx     # 0x55d8c
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3aaac
cmpb $0x0, (%rbx)
je 0x36ec1
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
movq %rsp, %rcx
movl $0x8, (%rcx)
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
xorl %edx, %edx
cmpl $0x5, (%rax)
cmoveq %rax, %rdx
cvttsd2si 0x8(%rdx), %eax
leaq 0x8(%rsp), %r8
movl %eax, (%r8)
leaq 0x1fc7e(%rip), %rsi     # 0x56773
leaq 0x1f2a9(%rip), %rdx     # 0x55da5
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x32072
cmpb $0x0, (%rbx)
je 0x36f55
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
movq %rsp, %rcx
movl $0x1, (%rcx)
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %r8
leaq 0x1f296(%rip), %rsi     # 0x55dd1
leaq 0x1f2a3(%rip), %rdx     # 0x55de5
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3aaac
cmpb $0x0, (%rbx)
je 0x36fe9
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
movq %rsp, %rcx
movl $0x1, (%rcx)
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rax
xorl %edx, %edx
cmpl $0x1, (%rax)
cmoveq %rax, %rdx
movzbl 0x4(%rdx), %eax
leaq 0x8(%rsp), %r8
movl %eax, (%r8)
leaq 0x1d5b1(%rip), %rsi     # 0x54147
leaq 0x1f261(%rip), %rdx     # 0x55dfe
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x32072
cmpb $0x0, (%rbx)
jne 0x3714e
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x370e9
movq (%rax), %r8
jmp 0x370f0
leaq 0x20(%rsp), %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x36be8
movq (%rax), %rbx
leaq 0x1f129(%rip), %rdx     # 0x55d18
movq %rsp, %rdi
movl $0x2, %esi
movl $0x26, %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 0x36c48
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x36c3f
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x36c3f
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x20(%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x3715a
leaq 0x20(%rsp), %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x36c90
movq (%rax), %r8
jmp 0x36c97
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x36d23
movq (%rax), %r8
jmp 0x36d2a
leaq 0x221bc(%rip), %r8      # 0x58e53
leaq 0x1f07a(%rip), %rdx     # 0x55d18
movq %rsp, %rdi
movl $0x2, %esi
movl $0x27, %ecx
callq 0x10bb8
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x10c56
movq %rsp, %rdi
callq 0x10c24
cmpq $0x0, 0x20(%rsp)
je 0x36cf4
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x36ceb
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x36ceb
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x20(%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x3715a
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x36db7
movq (%rax), %r8
jmp 0x36dbe
leaq 0x22129(%rip), %r8      # 0x58e53
leaq 0x1efe7(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x2a, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x36d88
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x36d80
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x36d80
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x3715a
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x36e4b
movq (%rax), %r8
jmp 0x36e52
leaq 0x22095(%rip), %r8      # 0x58e53
leaq 0x1ef53(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x2b, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x36e1c
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x36e14
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x36e14
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x3715a
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x36edf
movq (%rax), %r8
jmp 0x36ee6
leaq 0x22001(%rip), %r8      # 0x58e53
leaq 0x1eebf(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x2c, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x36eb0
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x36ea8
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x36ea8
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x3715a
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x36f73
movq (%rax), %r8
jmp 0x36f7a
leaq 0x21f6d(%rip), %r8      # 0x58e53
leaq 0x1ee2b(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x2d, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x36f44
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x36f3c
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x36f3c
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x3715a
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x37000
movq (%rax), %r8
jmp 0x37007
leaq 0x21ed9(%rip), %r8      # 0x58e53
leaq 0x1ed97(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x2e, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x36fd8
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x36fd0
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x36fd0
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x3715a
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x37076
movq (%rax), %r8
jmp 0x3707d
leaq 0x21e4c(%rip), %r8      # 0x58e53
leaq 0x1ed0a(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x2f, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x37065
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x3705d
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x3705d
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x3715a
leaq 0x21dd6(%rip), %r8      # 0x58e53
leaq 0x1ec94(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x30, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x370db
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x370d3
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x370d3
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x3715a
leaq 0x21d63(%rip), %r8      # 0x58e53
leaq 0x1ec21(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x31, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x3714e
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x37146
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x37146
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
addq $0x50, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x3724c
jmp 0x371f0
jmp 0x371ff
jmp 0x37237
jmp 0x3724c
jmp 0x3724c
jmp 0x3724c
jmp 0x371f0
jmp 0x371ff
jmp 0x37237
jmp 0x3724c
jmp 0x3724c
jmp 0x3724c
jmp 0x371f0
jmp 0x371ff
jmp 0x37237
jmp 0x3724c
jmp 0x3724c
jmp 0x3724c
jmp 0x371f0
jmp 0x371ff
jmp 0x37237
jmp 0x3724c
jmp 0x3724c
jmp 0x3724c
jmp 0x371f0
jmp 0x371ff
jmp 0x37237
jmp 0x3724c
jmp 0x3724c
jmp 0x3724c
jmp 0x371f0
jmp 0x371ff
jmp 0x37237
jmp 0x3724c
jmp 0x3724c
jmp 0x3724c
jmp 0x371f0
jmp 0x371ff
jmp 0x37237
jmp 0x3724c
jmp 0x3724c
jmp 0x3724c
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x10c24
jmp 0x37202
movq %rax, %rbx
movq %rsp, %rdi
jmp 0x37230
jmp 0x37237
jmp 0x3724c
jmp 0x3724c
jmp 0x3724c
jmp 0x3721b
jmp 0x37228
jmp 0x37237
jmp 0x3724c
jmp 0x3724c
jmp 0x3724c
movq %rax, %rbx
movq %rsp, %rdi
callq 0x10c24
jmp 0x3722b
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x31faa
jmp 0x3723a
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x31fbc
movq %rbx, %rdi
callq 0xcbb0
movq %rax, %rdi
callq 0x28baf