// File: /workspace/github_c_makefile_star2_O3/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 0x1daea(%rip), %xmm0    # 0x55200
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 0x41494
movq %rax, 0x28(%rsp)
leaq 0x1d614(%rip), %rsi     # 0x54d5f
leaq 0x1d610(%rip), %rdx     # 0x54d62
leaq 0x2076e(%rip), %rbx     # 0x57ec7
leaq 0x10(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rcx
movq %r14, %r8
callq 0x14ffa
cmpb $0x0, (%r15)
je 0x379d9
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
leaq 0x20(%rsp), %rcx
movq $0x0, (%rcx)
leaq 0x1cc76(%rip), %rsi     # 0x5440b
leaq 0x1c675(%rip), %rdx     # 0x53e11
leaq 0x10(%rsp), %rbx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
callq 0x396c7
cmpb $0x0, (%rbx)
je 0x37a58
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 0x1cc21(%rip), %rsi     # 0x5440b
leaq 0x1d742(%rip), %rdx     # 0x54f33
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x39717
cmpb $0x0, (%rbx)
je 0x37a71
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
movq %rsp, %rcx
movl $0x3, (%rcx)
movq 0x20(%rsp), %r8
addq $0x8, %r8
leaq 0x1dd3d(%rip), %rsi     # 0x55569
leaq 0x1d706(%rip), %rdx     # 0x54f39
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x32e9d
cmpb $0x0, (%rbx)
je 0x37afb
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
movq %rsp, %rcx
movl $0x1, (%rcx)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq (%rax), %r8
leaq 0x1d590(%rip), %rsi     # 0x54e01
leaq 0x1d6d0(%rip), %rdx     # 0x54f48
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3a110
cmpb $0x0, (%rbx)
je 0x37b87
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
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 0x1b9df(%rip), %rsi     # 0x532a0
leaq 0x1d69b(%rip), %rdx     # 0x54f63
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x35f40
cmpb $0x0, (%rbx)
je 0x37c13
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
movq %rsp, %rcx
movl $0x0, (%rcx)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %r8
leaq 0x1d687(%rip), %rsi     # 0x54f8e
leaq 0x1d691(%rip), %rdx     # 0x54f9f
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3a110
cmpb $0x0, (%rbx)
je 0x37c9f
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
movq %rsp, %rcx
movl $0x1, (%rcx)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %r8
leaq 0x1d4b4(%rip), %rsi     # 0x54e01
leaq 0x1d666(%rip), %rdx     # 0x54fba
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3a110
cmpb $0x0, (%rbx)
je 0x37d2b
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
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 0x1adbc(%rip), %rsi     # 0x5275a
leaq 0x1d630(%rip), %rdx     # 0x54fd5
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x35f40
cmpb $0x0, (%rbx)
jne 0x37e78
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x37e1b
movq (%rax), %r8
jmp 0x37e22
leaq 0x20(%rsp), %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x379f0
movq (%rax), %rbx
leaq 0x1d351(%rip), %rdx     # 0x54d48
movq %rsp, %rdi
movl $0x2, %esi
movl $0x5f, %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 0x37a47
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x37a47
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x37a47
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x37e84
leaq 0x20(%rsp), %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x37a8f
movq (%rax), %r8
jmp 0x37a96
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x37b19
movq (%rax), %r8
jmp 0x37b20
leaq 0x20431(%rip), %r8      # 0x57ec7
leaq 0x1d2ab(%rip), %rdx     # 0x54d48
movq %rsp, %rdi
movl $0x2, %esi
movl $0x60, %ecx
callq 0x10b64
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x10c00
movq %rsp, %rdi
callq 0x10bd0
cmpq $0x0, 0x20(%rsp)
je 0x37aea
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x37aea
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x37aea
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x37e84
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x37ba5
movq (%rax), %r8
jmp 0x37bac
leaq 0x203a7(%rip), %r8      # 0x57ec7
leaq 0x1d221(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x64, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x37b76
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x37b76
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x37b76
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x37e84
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x37c31
movq (%rax), %r8
jmp 0x37c38
leaq 0x2031b(%rip), %r8      # 0x57ec7
leaq 0x1d195(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x65, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x37c02
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x37c02
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x37c02
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x37e84
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x37cbd
movq (%rax), %r8
jmp 0x37cc4
leaq 0x2028f(%rip), %r8      # 0x57ec7
leaq 0x1d109(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x66, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x37c8e
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x37c8e
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x37c8e
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x37e84
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x37d42
movq (%rax), %r8
jmp 0x37d49
leaq 0x20203(%rip), %r8      # 0x57ec7
leaq 0x1d07d(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x67, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x37d1a
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x37d1a
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x37d1a
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x37e84
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x37db0
movq (%rax), %r8
jmp 0x37db7
leaq 0x2017e(%rip), %r8      # 0x57ec7
leaq 0x1cff8(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x68, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x37d9f
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x37d9f
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x37d9f
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x37e84
leaq 0x20110(%rip), %r8      # 0x57ec7
leaq 0x1cf8a(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x69, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x37e0d
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x37e0d
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x37e0d
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x37e84
leaq 0x200a5(%rip), %r8      # 0x57ec7
leaq 0x1cf1f(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x6a, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x37e78
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x37e78
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x37e78
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
addq $0x50, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x37f58
jmp 0x37efc
jmp 0x37f0b
jmp 0x37f43
jmp 0x37f58
jmp 0x37f58
jmp 0x37f58
jmp 0x37efc
jmp 0x37f0b
jmp 0x37f43
jmp 0x37f58
jmp 0x37f58
jmp 0x37f58
jmp 0x37efc
jmp 0x37f0b
jmp 0x37f43
jmp 0x37f58
jmp 0x37f58
jmp 0x37f58
jmp 0x37efc
jmp 0x37f0b
jmp 0x37f43
jmp 0x37f58
jmp 0x37f58
jmp 0x37f58
jmp 0x37efc
jmp 0x37f0b
jmp 0x37f43
jmp 0x37f58
jmp 0x37f58
jmp 0x37f58
jmp 0x37efc
jmp 0x37f0b
jmp 0x37f43
jmp 0x37f58
jmp 0x37f58
jmp 0x37f58
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x10bd0
jmp 0x37f0e
movq %rax, %rbx
movq %rsp, %rdi
jmp 0x37f3c
jmp 0x37f43
jmp 0x37f58
jmp 0x37f58
jmp 0x37f58
jmp 0x37f27
jmp 0x37f34
jmp 0x37f43
jmp 0x37f58
jmp 0x37f58
jmp 0x37f58
movq %rax, %rbx
movq %rsp, %rdi
callq 0x10bd0
jmp 0x37f37
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x31a70
jmp 0x37f46
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x31a82
movq %rbx, %rdi
callq 0xcbb0
movq %rax, %rdi
callq 0x287ef