// File: /workspace/github_cpp_makefile_star2_O2/jo-qzy[P]MyJson/test.cpp
// Function: test_parse_object()
void test_parse_object() {
    Reader reader;
    Value value;
    EXPECT_EQ_INT(PARSE_OK, reader.parse("{"
                                         "\"n\" : null , "
                                         "\"f\" : false , "
                                         "\"t\" : true , "
                                         "\"i\" : 123 , "
                                         "\"s\" : \"abc\", "
                                         "\"a\" : [ 1, 2, 3  ],"
                                         "\"o\" : { \"1\" : 1, \"2\" : 2, \"3\" : 3  }"
                                         " } "
                                         , value));
    EXPECT_EQ_INT(JSON_OBJECT, value.get_type());
    EXPECT_EQ_INT(JSON_NULL, value["n"].get_type());
    EXPECT_EQ_INT(JSON_FALSE, value["f"].get_type());
    EXPECT_EQ_INT(JSON_TRUE, value["t"].get_type());

    EXPECT_EQ_INT(JSON_NUMBER, value["i"].get_type());
    EXPECT_EQ_DOUBLE(123, value["i"].asDouble());

    EXPECT_EQ_INT(JSON_STRING, value["s"].get_type());
    EXPECT_EQ_STRING("abc", value["s"].asString());

    EXPECT_EQ_INT(JSON_ARRAY, value["a"].get_type());
    EXPECT_EQ_INT(JSON_OBJECT, value["o"].get_type());
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x360, %rsp            # imm = 0x360
leaq -0xd0(%rbp), %rax
andl $0x0, -0x18(%rax)
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
xorl %ecx, %ecx
movb %cl, (%rax)
leaq -0xa8(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb %cl, (%rax)
xorpd %xmm0, %xmm0
movupd %xmm0, 0x10(%rax)
andq $0x0, 0x20(%rax)
leaq -0x78(%rbp), %rax
andl $0x0, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
andq $0x0, 0x20(%rax)
incl 0x15c6c(%rip)           # 0x1819c
leaq 0x10c39(%rip), %rsi     # 0x13170
leaq -0x368(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x20b0
leaq -0x368(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0xf60c
movl %eax, %ebx
leaq -0x368(%rbp), %rdi
callq 0x20f0
testl %ebx, %ebx
je 0x2614
movq 0x15a61(%rip), %rdi     # 0x17fd8
leaq 0x10c6f(%rip), %rsi     # 0x131ed
callq 0x21e0
leaq 0x10c74(%rip), %rsi     # 0x131fe
movq %rax, %rdi
callq 0x21e0
movq %rax, %rdi
movl $0xa2, %esi
callq 0x22a0
leaq 0x10c50(%rip), %rsi     # 0x131f6
movq %rax, %rdi
callq 0x21e0
movq %rax, %rdi
xorl %esi, %esi
callq 0x22a0
leaq 0x10c41(%rip), %rsi     # 0x13200
movq %rax, %rdi
callq 0x21e0
movq %rax, %rbx
leaq 0x10b9f(%rip), %rsi     # 0x13170
leaq -0x348(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x20b0
leaq -0x348(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0xf60c
movq %rbx, %rdi
movl %eax, %esi
callq 0x22a0
movq %rax, %rdi
callq 0x2110
leaq -0x348(%rbp), %rdi
callq 0x20f0
jmp 0x261a
incl 0x15b86(%rip)           # 0x181a0
movl 0x15b7c(%rip), %eax     # 0x1819c
incl %eax
movl %eax, 0x15b74(%rip)     # 0x1819c
cmpl $0x6, -0xe8(%rbp)
jne 0x2639
incl 0x15b69(%rip)           # 0x181a0
jmp 0x26ad
movq 0x15998(%rip), %rdi     # 0x17fd8
leaq 0x10ba6(%rip), %rsi     # 0x131ed
callq 0x21e0
leaq 0x10bab(%rip), %rsi     # 0x131fe
movq %rax, %rdi
callq 0x21e0
movq %rax, %rdi
movl $0xa3, %esi
callq 0x22a0
leaq 0x10b87(%rip), %rsi     # 0x131f6
movq %rax, %rdi
callq 0x21e0
pushq $0x6
popq %rsi
movq %rax, %rdi
callq 0x22a0
leaq 0x10b77(%rip), %rsi     # 0x13200
movq %rax, %rdi
callq 0x21e0
movl -0xe8(%rbp), %esi
movq %rax, %rdi
callq 0x22a0
movq %rax, %rdi
callq 0x2110
movl 0x15aef(%rip), %eax     # 0x1819c
incl %eax
movl %eax, 0x15ae7(%rip)     # 0x1819c
leaq 0x11028(%rip), %rsi     # 0x136e4
leaq -0x328(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x20b0
leaq -0xe8(%rbp), %rdi
leaq -0x328(%rbp), %rsi
callq 0xf61e
movl (%rax), %ebx
leaq -0x328(%rbp), %rdi
callq 0x20f0
testl %ebx, %ebx
je 0x2799
movq 0x158dc(%rip), %rdi     # 0x17fd8
leaq 0x10aea(%rip), %rsi     # 0x131ed
callq 0x21e0
leaq 0x10aef(%rip), %rsi     # 0x131fe
movq %rax, %rdi
callq 0x21e0
movq %rax, %rdi
movl $0xa4, %esi
callq 0x22a0
leaq 0x10acb(%rip), %rsi     # 0x131f6
movq %rax, %rdi
callq 0x21e0
movq %rax, %rdi
xorl %esi, %esi
callq 0x22a0
leaq 0x10abc(%rip), %rsi     # 0x13200
movq %rax, %rdi
callq 0x21e0
movq %rax, %rbx
leaq 0x10f8e(%rip), %rsi     # 0x136e4
leaq -0x308(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x20b0
leaq -0xe8(%rbp), %rdi
leaq -0x308(%rbp), %rsi
callq 0xf61e
movl (%rax), %esi
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rdi
callq 0x2110
leaq -0x308(%rbp), %rdi
callq 0x20f0
jmp 0x279f
incl 0x15a01(%rip)           # 0x181a0
incl 0x159f7(%rip)           # 0x1819c
leaq 0x10f35(%rip), %rsi     # 0x136e1
leaq -0x2e8(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x20b0
leaq -0xe8(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0xf61e
movl (%rax), %ebx
leaq -0x2e8(%rbp), %rdi
callq 0x20f0
cmpl $0x2, %ebx
jne 0x27ed
incl 0x159b8(%rip)           # 0x181a0
jmp 0x2890
movq 0x157e4(%rip), %rdi     # 0x17fd8
leaq 0x109f2(%rip), %rsi     # 0x131ed
callq 0x21e0
leaq 0x109f7(%rip), %rsi     # 0x131fe
movq %rax, %rdi
callq 0x21e0
movq %rax, %rdi
movl $0xa5, %esi
callq 0x22a0
leaq 0x109d3(%rip), %rsi     # 0x131f6
movq %rax, %rdi
callq 0x21e0
pushq $0x2
popq %rsi
movq %rax, %rdi
callq 0x22a0
leaq 0x109c3(%rip), %rsi     # 0x13200
movq %rax, %rdi
callq 0x21e0
movq %rax, %rbx
leaq 0x10e92(%rip), %rsi     # 0x136e1
leaq -0x2c8(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x20b0
leaq -0xe8(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0xf61e
movl (%rax), %esi
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rdi
callq 0x2110
leaq -0x2c8(%rbp), %rdi
callq 0x20f0
incl 0x15906(%rip)           # 0x1819c
leaq 0x10e4d(%rip), %rsi     # 0x136ea
leaq -0x2a8(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x20b0
leaq -0xe8(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0xf61e
movl (%rax), %ebx
leaq -0x2a8(%rbp), %rdi
callq 0x20f0
cmpl $0x1, %ebx
jne 0x28de
incl 0x158c7(%rip)           # 0x181a0
jmp 0x2981
movq 0x156f3(%rip), %rdi     # 0x17fd8
leaq 0x10901(%rip), %rsi     # 0x131ed
callq 0x21e0
leaq 0x10906(%rip), %rsi     # 0x131fe
movq %rax, %rdi
callq 0x21e0
movq %rax, %rdi
movl $0xa6, %esi
callq 0x22a0
leaq 0x108e2(%rip), %rsi     # 0x131f6
movq %rax, %rdi
callq 0x21e0
pushq $0x1
popq %rsi
movq %rax, %rdi
callq 0x22a0
leaq 0x108d2(%rip), %rsi     # 0x13200
movq %rax, %rdi
callq 0x21e0
movq %rax, %rbx
leaq 0x10daa(%rip), %rsi     # 0x136ea
leaq -0x288(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x20b0
leaq -0xe8(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0xf61e
movl (%rax), %esi
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rdi
callq 0x2110
leaq -0x288(%rbp), %rdi
callq 0x20f0
incl 0x15815(%rip)           # 0x1819c
leaq 0x1087c(%rip), %rsi     # 0x1320a
leaq -0x268(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x20b0
leaq -0xe8(%rbp), %rdi
leaq -0x268(%rbp), %rsi
callq 0xf61e
movl (%rax), %ebx
leaq -0x268(%rbp), %rdi
callq 0x20f0
cmpl $0x3, %ebx
jne 0x29cf
incl 0x157d6(%rip)           # 0x181a0
jmp 0x2a72
movq 0x15602(%rip), %rdi     # 0x17fd8
leaq 0x10810(%rip), %rsi     # 0x131ed
callq 0x21e0
leaq 0x10815(%rip), %rsi     # 0x131fe
movq %rax, %rdi
callq 0x21e0
movq %rax, %rdi
movl $0xa8, %esi
callq 0x22a0
leaq 0x107f1(%rip), %rsi     # 0x131f6
movq %rax, %rdi
callq 0x21e0
pushq $0x3
popq %rsi
movq %rax, %rdi
callq 0x22a0
leaq 0x107e1(%rip), %rsi     # 0x13200
movq %rax, %rdi
callq 0x21e0
movq %rax, %rbx
leaq 0x107d9(%rip), %rsi     # 0x1320a
leaq -0x248(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x20b0
leaq -0xe8(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0xf61e
movl (%rax), %esi
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rdi
callq 0x2110
leaq -0x248(%rbp), %rdi
callq 0x20f0
incl 0x15724(%rip)           # 0x1819c
leaq 0x1078b(%rip), %rsi     # 0x1320a
leaq -0x228(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x20b0
leaq -0xe8(%rbp), %rdi
leaq -0x228(%rbp), %rsi
callq 0xf61e
movq %rax, %rdi
callq 0xf652
movsd %xmm0, -0x40(%rbp)
leaq -0x228(%rbp), %rdi
callq 0x20f0
movsd -0x40(%rbp), %xmm0
ucomisd 0x10560(%rip), %xmm0    # 0x13028
jne 0x2ad7
jp 0x2ad7
incl 0x156ce(%rip)           # 0x181a0
jmp 0x2b80
movq 0x154fa(%rip), %rdi     # 0x17fd8
leaq 0x10708(%rip), %rsi     # 0x131ed
callq 0x21e0
leaq 0x1070d(%rip), %rsi     # 0x131fe
movq %rax, %rdi
callq 0x21e0
movq %rax, %rdi
movl $0xa9, %esi
callq 0x22a0
leaq 0x106e9(%rip), %rsi     # 0x131f6
movq %rax, %rdi
callq 0x21e0
pushq $0x7b
popq %rsi
movq %rax, %rdi
callq 0x22a0
leaq 0x106d9(%rip), %rsi     # 0x13200
movq %rax, %rdi
callq 0x21e0
movq %rax, %rbx
leaq 0x106d1(%rip), %rsi     # 0x1320a
leaq -0x208(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x20b0
leaq -0xe8(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0xf61e
movq %rax, %rdi
callq 0xf652
movq %rbx, %rdi
callq 0x2280
movq %rax, %rdi
callq 0x2110
leaq -0x208(%rbp), %rdi
callq 0x20f0
incl 0x15616(%rip)           # 0x1819c
leaq 0x1067f(%rip), %rsi     # 0x1320c
leaq -0x1e8(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x20b0
leaq -0xe8(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0xf61e
movl (%rax), %ebx
leaq -0x1e8(%rbp), %rdi
callq 0x20f0
cmpl $0x4, %ebx
jne 0x2bce
incl 0x155d7(%rip)           # 0x181a0
jmp 0x2c71
movq 0x15403(%rip), %rdi     # 0x17fd8
leaq 0x10611(%rip), %rsi     # 0x131ed
callq 0x21e0
leaq 0x10616(%rip), %rsi     # 0x131fe
movq %rax, %rdi
callq 0x21e0
movq %rax, %rdi
movl $0xab, %esi
callq 0x22a0
leaq 0x105f2(%rip), %rsi     # 0x131f6
movq %rax, %rdi
callq 0x21e0
pushq $0x4
popq %rsi
movq %rax, %rdi
callq 0x22a0
leaq 0x105e2(%rip), %rsi     # 0x13200
movq %rax, %rdi
callq 0x21e0
movq %rax, %rbx
leaq 0x105dc(%rip), %rsi     # 0x1320c
leaq -0x1c8(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x20b0
leaq -0xe8(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0xf61e
movl (%rax), %esi
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rdi
callq 0x2110
leaq -0x1c8(%rbp), %rdi
callq 0x20f0
incl 0x15525(%rip)           # 0x1819c
leaq 0x1058e(%rip), %rsi     # 0x1320c
leaq -0x1a8(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0x20b0
leaq -0xe8(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0xf61e
leaq -0x38(%rbp), %rdi
movq %rax, %rsi
callq 0x242c
leaq 0x108cc(%rip), %rdi     # 0x13580
leaq -0x38(%rbp), %rbx
movq %rbx, %rsi
callq 0xf67e
movl %eax, %r14d
movq %rbx, %rdi
callq 0x20f0
leaq -0x1a8(%rbp), %rdi
callq 0x20f0
testb %r14b, %r14b
je 0x2ce7
incl 0x154be(%rip)           # 0x181a0
jmp 0x2da5
movq 0x152ea(%rip), %rdi     # 0x17fd8
leaq 0x104f8(%rip), %rsi     # 0x131ed
callq 0x21e0
leaq 0x104fd(%rip), %rsi     # 0x131fe
movq %rax, %rdi
callq 0x21e0
movq %rax, %rdi
movl $0xac, %esi
callq 0x22a0
leaq 0x104d9(%rip), %rsi     # 0x131f6
movq %rax, %rdi
callq 0x21e0
leaq 0x10854(%rip), %rsi     # 0x13580
movq %rax, %rdi
callq 0x21e0
leaq 0x104c5(%rip), %rsi     # 0x13200
movq %rax, %rdi
callq 0x21e0
movq %rax, %rbx
leaq 0x104bf(%rip), %rsi     # 0x1320c
leaq -0x188(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0x20b0
leaq -0xe8(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0xf61e
leaq -0x38(%rbp), %rdi
movq %rax, %rsi
callq 0x242c
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x21c0
movq %rax, %rdi
callq 0x2110
leaq -0x38(%rbp), %rdi
callq 0x20f0
leaq -0x188(%rbp), %rdi
callq 0x20f0
incl 0x153f1(%rip)           # 0x1819c
leaq 0x1045c(%rip), %rsi     # 0x1320e
leaq -0x168(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x20b0
leaq -0xe8(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0xf61e
movl (%rax), %ebx
leaq -0x168(%rbp), %rdi
callq 0x20f0
cmpl $0x5, %ebx
jne 0x2df3
incl 0x153b2(%rip)           # 0x181a0
jmp 0x2e96
movq 0x151de(%rip), %rdi     # 0x17fd8
leaq 0x103ec(%rip), %rsi     # 0x131ed
callq 0x21e0
leaq 0x103f1(%rip), %rsi     # 0x131fe
movq %rax, %rdi
callq 0x21e0
movq %rax, %rdi
movl $0xae, %esi
callq 0x22a0
leaq 0x103cd(%rip), %rsi     # 0x131f6
movq %rax, %rdi
callq 0x21e0
pushq $0x5
popq %rsi
movq %rax, %rdi
callq 0x22a0
leaq 0x103bd(%rip), %rsi     # 0x13200
movq %rax, %rdi
callq 0x21e0
movq %rax, %rbx
leaq 0x103b9(%rip), %rsi     # 0x1320e
leaq -0x148(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x20b0
leaq -0xe8(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0xf61e
movl (%rax), %esi
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rdi
callq 0x2110
leaq -0x148(%rbp), %rdi
callq 0x20f0
incl 0x15300(%rip)           # 0x1819c
leaq 0x10597(%rip), %rsi     # 0x1343a
leaq -0x128(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x20b0
leaq -0xe8(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0xf61e
movl (%rax), %ebx
leaq -0x128(%rbp), %rdi
callq 0x20f0
cmpl $0x6, %ebx
jne 0x2ee4
incl 0x152c1(%rip)           # 0x181a0
jmp 0x2f87
movq 0x150ed(%rip), %rdi     # 0x17fd8
leaq 0x102fb(%rip), %rsi     # 0x131ed
callq 0x21e0
leaq 0x10300(%rip), %rsi     # 0x131fe
movq %rax, %rdi
callq 0x21e0
movq %rax, %rdi
movl $0xaf, %esi
callq 0x22a0
leaq 0x102dc(%rip), %rsi     # 0x131f6
movq %rax, %rdi
callq 0x21e0
pushq $0x6
popq %rsi
movq %rax, %rdi
callq 0x22a0
leaq 0x102cc(%rip), %rsi     # 0x13200
movq %rax, %rdi
callq 0x21e0
movq %rax, %rbx
leaq 0x104f4(%rip), %rsi     # 0x1343a
leaq -0x108(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x20b0
leaq -0xe8(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0xf61e
movl (%rax), %esi
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rdi
callq 0x2110
leaq -0x108(%rbp), %rdi
callq 0x20f0
leaq -0xe8(%rbp), %rdi
callq 0xf698
addq $0x360, %rsp            # imm = 0x360
popq %rbx
popq %r14
popq %rbp
retq
jmp 0x311e
jmp 0x311e
jmp 0x311e
jmp 0x311e
jmp 0x311e
jmp 0x311e
jmp 0x311e
jmp 0x311e
jmp 0x311e
jmp 0x311e
movq %rax, %rbx
leaq -0x128(%rbp), %rdi
jmp 0x3117
jmp 0x311e
movq %rax, %rbx
leaq -0x38(%rbp), %rdi
callq 0x20f0
jmp 0x2ff6
movq %rax, %rbx
leaq -0x188(%rbp), %rdi
jmp 0x3117
movq %rax, %rbx
leaq -0x168(%rbp), %rdi
jmp 0x3117
jmp 0x311e
jmp 0x311e
movq %rax, %rbx
leaq -0x1e8(%rbp), %rdi
jmp 0x3117
jmp 0x311e
movq %rax, %rbx
leaq -0x228(%rbp), %rdi
jmp 0x3117
jmp 0x311e
movq %rax, %rbx
leaq -0x268(%rbp), %rdi
jmp 0x3117
jmp 0x311e
movq %rax, %rbx
leaq -0x2a8(%rbp), %rdi
jmp 0x3117
jmp 0x311e
movq %rax, %rbx
leaq -0x2e8(%rbp), %rdi
jmp 0x3117
jmp 0x311e
movq %rax, %rbx
leaq -0x328(%rbp), %rdi
jmp 0x3117
jmp 0x311e
movq %rax, %rbx
leaq -0x368(%rbp), %rdi
jmp 0x3117
jmp 0x311e
movq %rax, %rbx
leaq -0x208(%rbp), %rdi
jmp 0x3117
movq %rax, %rbx
leaq -0x108(%rbp), %rdi
jmp 0x3117
movq %rax, %rbx
leaq -0x148(%rbp), %rdi
jmp 0x3117
movq %rax, %rbx
leaq -0x1c8(%rbp), %rdi
jmp 0x3117
movq %rax, %rbx
leaq -0x248(%rbp), %rdi
jmp 0x3117
movq %rax, %rbx
leaq -0x288(%rbp), %rdi
jmp 0x3117
movq %rax, %rbx
leaq -0x2c8(%rbp), %rdi
jmp 0x3117
movq %rax, %rbx
leaq -0x308(%rbp), %rdi
jmp 0x3117
movq %rax, %rbx
leaq -0x348(%rbp), %rdi
jmp 0x3117
movq %rax, %rbx
leaq -0x1a8(%rbp), %rdi
callq 0x20f0
jmp 0x3121
movq %rax, %rbx
leaq -0xe8(%rbp), %rdi
callq 0xf698
movq %rbx, %rdi
callq 0x22b0