// File: /workspace/github_c_makefile_star2_O2/deplinenoise[P]tundra/unittest/Test_Json.cpp
// Function: JsonTest_ArrayMulti_Test::TestBody()
TEST_F(JsonTest, ArrayMulti)
{
  char input[] = "[false, null, true]";
  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(3, array->m_Count);
  ASSERT_EQ(JsonValue::kBoolean, array->m_Values[0]->m_Type);
  ASSERT_EQ(false, array->m_Values[0]->AsBoolean()->m_Boolean);
  ASSERT_EQ(JsonValue::kNull, array->m_Values[1]->m_Type);
  ASSERT_EQ(JsonValue::kBoolean, array->m_Values[2]->m_Type);
  ASSERT_EQ(true, array->m_Values[2]->AsBoolean()->m_Boolean);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x50, %rsp
movaps 0x1afb4(%rip), %xmm0    # 0x471e0
leaq 0x30(%rsp), %rax
movaps %xmm0, (%rax)
movl $0x5d6575, 0x10(%rax)   # imm = 0x5D6575
leaq 0x18(%rdi), %rsi
leaq 0x50(%rdi), %rdx
leaq 0x88(%rdi), %r14
movq %rax, %rdi
movq %r14, %rcx
callq 0x34778
movq %rax, 0x28(%rsp)
leaq 0x1aade(%rip), %rsi     # 0x46d3f
leaq 0x1aada(%rip), %rdx     # 0x46d42
leaq 0x1dc38(%rip), %rbx     # 0x49ea7
leaq 0x10(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rcx
movq %r14, %r8
callq 0x13723
cmpb $0x0, (%r15)
je 0x2c4d6
leaq 0x18(%rsp), %rdi
callq 0x2295e
leaq 0x20(%rsp), %rcx
andq $0x0, (%rcx)
leaq 0x1a135(%rip), %rsi     # 0x463db
leaq 0x19b34(%rip), %rdx     # 0x45de1
leaq 0x10(%rsp), %rbx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
callq 0x2d7ec
cmpb $0x0, (%rbx)
je 0x2c514
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq 0x28(%rsp), %rax
xorl %ecx, %ecx
cmpl $0x3, (%rax)
cmoveq %rax, %rcx
leaq 0x20(%rsp), %r8
movq %rcx, (%r8)
movq %rsp, %rcx
andq $0x0, (%rcx)
leaq 0x1a0e5(%rip), %rsi     # 0x463db
leaq 0x1ac16(%rip), %rdx     # 0x46f13
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x2d83c
cmpb $0x0, (%rbx)
je 0x2c52d
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
movl $0x3, (%rcx)
movq 0x20(%rsp), %r8
addq $0x8, %r8
leaq 0x1b213(%rip), %rsi     # 0x47549
leaq 0x1abdc(%rip), %rdx     # 0x46f19
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x287b5
cmpb $0x0, (%rbx)
je 0x2c584
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
movl $0x1, (%rcx)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq (%rax), %r8
leaq 0x1aa68(%rip), %rsi     # 0x46de1
leaq 0x1aba8(%rip), %rdx     # 0x46f28
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x2e10f
cmpb $0x0, (%rbx)
je 0x2c5cb
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
movb $0x0, (%rcx)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq (%rax), %rax
xorl %r8d, %r8d
cmpl $0x1, (%rax)
cmoveq %rax, %r8
addq $0x4, %r8
leaq 0x18ea9(%rip), %rsi     # 0x45270
leaq 0x1ab75(%rip), %rdx     # 0x46f43
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x2b0f9
cmpb $0x0, (%rbx)
je 0x2c612
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
andl $0x0, (%rcx)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %r8
leaq 0x1ab66(%rip), %rsi     # 0x46f6e
leaq 0x1ab70(%rip), %rdx     # 0x46f7f
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x2e10f
cmpb $0x0, (%rbx)
je 0x2c659
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
movl $0x1, (%rcx)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %r8
leaq 0x1a995(%rip), %rsi     # 0x46de1
leaq 0x1ab47(%rip), %rdx     # 0x46f9a
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x2e10f
cmpb $0x0, (%rbx)
je 0x2c69d
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
movb $0x1, (%rcx)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
xorl %r8d, %r8d
cmpl $0x1, (%rax)
cmoveq %rax, %r8
addq $0x4, %r8
leaq 0x1828f(%rip), %rsi     # 0x4472a
leaq 0x1ab13(%rip), %rdx     # 0x46fb5
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x2b0f9
cmpb $0x0, (%rbx)
jne 0x2c772
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2c735
movq (%rax), %r8
jmp 0x2c73c
leaq 0x20(%rsp), %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2c4ed
movq (%rax), %rbx
leaq 0x1a834(%rip), %rdx     # 0x46d28
movq %rsp, %rdi
pushq $0x2
popq %rsi
pushq $0x5f
popq %rcx
movq %rbx, %r8
callq 0x104f8
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x10576
jmp 0x2c56d
leaq 0x20(%rsp), %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2c544
movq (%rax), %r8
jmp 0x2c54b
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2c59b
movq (%rax), %r8
jmp 0x2c5a2
leaq 0x1d95c(%rip), %r8      # 0x49ea7
leaq 0x1a7d6(%rip), %rdx     # 0x46d28
movq %rsp, %rdi
pushq $0x2
popq %rsi
pushq $0x60
popq %rcx
callq 0x104f8
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x10576
leaq 0x18(%rsp), %rbx
movq %rsp, %rdi
callq 0x10558
leaq 0x20(%rsp), %rdi
jmp 0x2c71e
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2c5e2
movq (%rax), %r8
jmp 0x2c5e9
leaq 0x1d905(%rip), %r8      # 0x49ea7
leaq 0x1a77f(%rip), %rdx     # 0x46d28
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x64
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2c70c
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2c629
movq (%rax), %r8
jmp 0x2c630
leaq 0x1d8be(%rip), %r8      # 0x49ea7
leaq 0x1a738(%rip), %rdx     # 0x46d28
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x65
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2c70c
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2c670
movq (%rax), %r8
jmp 0x2c677
leaq 0x1d877(%rip), %r8      # 0x49ea7
leaq 0x1a6f1(%rip), %rdx     # 0x46d28
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x66
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2c70c
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2c6b4
movq (%rax), %r8
jmp 0x2c6bb
leaq 0x1d830(%rip), %r8      # 0x49ea7
leaq 0x1a6aa(%rip), %rdx     # 0x46d28
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x67
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2c70c
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2c6e1
movq (%rax), %r8
jmp 0x2c6e8
leaq 0x1d7ec(%rip), %r8      # 0x49ea7
leaq 0x1a666(%rip), %rdx     # 0x46d28
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x68
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2c70c
leaq 0x1d7bf(%rip), %r8      # 0x49ea7
leaq 0x1a639(%rip), %rdx     # 0x46d28
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x69
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
leaq 0x18(%rsp), %rbx
leaq 0x8(%rsp), %rdi
callq 0x10558
movq %rsp, %rdi
callq 0x1f8e0
movq %rbx, %rdi
callq 0x2295e
addq $0x50, %rsp
popq %rbx
popq %r14
popq %r15
retq
leaq 0x1d76b(%rip), %r8      # 0x49ea7
leaq 0x1a5e5(%rip), %rdx     # 0x46d28
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x6a
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
leaq 0x8(%rsp), %rdi
callq 0x10558
movq %rsp, %rdi
callq 0x1f8e0
leaq 0x18(%rsp), %rdi
jmp 0x2c726
jmp 0x2c79d
jmp 0x2c7ac
jmp 0x2c7d8
jmp 0x2c79d
jmp 0x2c7ac
jmp 0x2c7d8
jmp 0x2c79d
jmp 0x2c7ac
jmp 0x2c7d8
jmp 0x2c79d
jmp 0x2c7ac
jmp 0x2c7d8
jmp 0x2c79d
jmp 0x2c7ac
jmp 0x2c7d8
jmp 0x2c79d
jmp 0x2c7ac
jmp 0x2c7d8
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x10558
jmp 0x2c7af
movq %rax, %rbx
movq %rsp, %rdi
jmp 0x2c7d1
jmp 0x2c7d8
jmp 0x2c7bc
jmp 0x2c7c9
jmp 0x2c7d8
movq %rax, %rbx
movq %rsp, %rdi
callq 0x10558
jmp 0x2c7cc
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x1f8e0
jmp 0x2c7db
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rbx, %rdi
callq 0xdbf0
nop