// File: 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
subq $0x860, %rsp            # imm = 0x860
leaq -0xb0(%rbp), %rdi
callq 0x1b600
movl 0x2ab47(%rip), %eax     # 0x2d1f4
incl %eax
movl %eax, 0x2ab3f(%rip)     # 0x2d1f4
leaq -0xd1(%rbp), %rdi
movq %rdi, -0x428(%rbp)
callq 0x2360
movq -0x428(%rbp), %rdx
leaq 0x22baa(%rip), %rsi     # 0x25280
leaq -0xd0(%rbp), %rdi
callq 0x22f0
jmp 0x26e4
leaq -0xd0(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x1b650
movl %eax, -0x42c(%rbp)
jmp 0x26ff
leaq -0xd0(%rbp), %rdi
callq 0x2150
leaq -0xd1(%rbp), %rdi
callq 0x2280
movl -0x42c(%rbp), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x277a
movl 0x2aacf(%rip), %eax     # 0x2d1f8
addl $0x1, %eax
movl %eax, 0x2aac6(%rip)     # 0x2d1f8
jmp 0x2909
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x2769
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x2150
leaq -0xd1(%rbp), %rdi
callq 0x2280
jmp 0x415b
movq 0x2a857(%rip), %rdi     # 0x2cfd8
leaq 0x22b75(%rip), %rsi     # 0x252fd
callq 0x2240
movq %rax, -0x438(%rbp)
jmp 0x2796
movq -0x438(%rbp), %rdi
leaq 0x22b6a(%rip), %rsi     # 0x2530e
callq 0x2240
movq %rax, -0x440(%rbp)
jmp 0x27b2
movq -0x440(%rbp), %rdi
movl $0xa2, %esi
callq 0x2340
movq %rax, -0x448(%rbp)
jmp 0x27cc
movq -0x448(%rbp), %rdi
leaq 0x22b2c(%rip), %rsi     # 0x25306
callq 0x2240
movq %rax, -0x450(%rbp)
jmp 0x27e8
movq -0x450(%rbp), %rdi
xorl %esi, %esi
callq 0x2340
movq %rax, -0x458(%rbp)
jmp 0x27ff
movq -0x458(%rbp), %rdi
leaq 0x22b03(%rip), %rsi     # 0x25310
callq 0x2240
movq %rax, -0x460(%rbp)
jmp 0x281b
leaq -0x109(%rbp), %rdi
movq %rdi, -0x468(%rbp)
callq 0x2360
movq -0x468(%rbp), %rdx
leaq 0x22a44(%rip), %rsi     # 0x25280
leaq -0x108(%rbp), %rdi
callq 0x22f0
jmp 0x284a
leaq -0x108(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x1b650
movl %eax, -0x46c(%rbp)
jmp 0x2865
movl -0x46c(%rbp), %esi
movq -0x460(%rbp), %rdi
callq 0x2340
movq %rax, -0x478(%rbp)
jmp 0x2880
movq -0x478(%rbp), %rdi
movq 0x2a73a(%rip), %rsi     # 0x2cfc8
callq 0x2270
jmp 0x2895
leaq -0x108(%rbp), %rdi
callq 0x2150
leaq -0x109(%rbp), %rdi
callq 0x2280
jmp 0x2909
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x415b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x28f8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x2150
leaq -0x109(%rbp), %rdi
callq 0x2280
jmp 0x415b
jmp 0x290b
jmp 0x290d
jmp 0x290f
movl 0x2a8df(%rip), %eax     # 0x2d1f4
incl %eax
movl %eax, 0x2a8d7(%rip)     # 0x2d1f4
leaq -0xb0(%rbp), %rdi
callq 0x1b690
movl %eax, -0x47c(%rbp)
jmp 0x2931
movl -0x47c(%rbp), %ecx
movl $0x6, %eax
cmpl %ecx, %eax
jne 0x2954
movl 0x2a8b2(%rip), %eax     # 0x2d1f8
addl $0x1, %eax
movl %eax, 0x2a8a9(%rip)     # 0x2d1f8
jmp 0x2a3e
movq 0x2a67d(%rip), %rdi     # 0x2cfd8
leaq 0x2299b(%rip), %rsi     # 0x252fd
callq 0x2240
movq %rax, -0x488(%rbp)
jmp 0x2970
movq -0x488(%rbp), %rdi
leaq 0x22990(%rip), %rsi     # 0x2530e
callq 0x2240
movq %rax, -0x490(%rbp)
jmp 0x298c
movq -0x490(%rbp), %rdi
movl $0xa3, %esi
callq 0x2340
movq %rax, -0x498(%rbp)
jmp 0x29a6
movq -0x498(%rbp), %rdi
leaq 0x22952(%rip), %rsi     # 0x25306
callq 0x2240
movq %rax, -0x4a0(%rbp)
jmp 0x29c2
movq -0x4a0(%rbp), %rdi
movl $0x6, %esi
callq 0x2340
movq %rax, -0x4a8(%rbp)
jmp 0x29dc
movq -0x4a8(%rbp), %rdi
leaq 0x22926(%rip), %rsi     # 0x25310
callq 0x2240
movq %rax, -0x4b0(%rbp)
jmp 0x29f8
leaq -0xb0(%rbp), %rdi
callq 0x1b690
movl %eax, -0x4b4(%rbp)
jmp 0x2a0c
movl -0x4b4(%rbp), %esi
movq -0x4b0(%rbp), %rdi
callq 0x2340
movq %rax, -0x4c0(%rbp)
jmp 0x2a27
movq -0x4c0(%rbp), %rdi
movq 0x2a593(%rip), %rsi     # 0x2cfc8
callq 0x2270
jmp 0x2a3c
jmp 0x2a3e
jmp 0x2a40
jmp 0x2a42
jmp 0x2a44
movl 0x2a7aa(%rip), %eax     # 0x2d1f4
incl %eax
movl %eax, 0x2a7a2(%rip)     # 0x2d1f4
leaq -0x131(%rbp), %rdi
movq %rdi, -0x4c8(%rbp)
callq 0x2360
movq -0x4c8(%rbp), %rdx
leaq 0x22d81(%rip), %rsi     # 0x257f4
leaq -0x130(%rbp), %rdi
callq 0x22f0
jmp 0x2a81
leaq -0xb0(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x1b6a0
movq %rax, -0x4d0(%rbp)
jmp 0x2a9d
movq -0x4d0(%rbp), %rdi
callq 0x1b690
movl %eax, -0x4d4(%rbp)
jmp 0x2ab1
leaq -0x130(%rbp), %rdi
callq 0x2150
leaq -0x131(%rbp), %rdi
callq 0x2280
movl -0x4d4(%rbp), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x2b2c
movl 0x2a71d(%rip), %eax     # 0x2d1f8
addl $0x1, %eax
movl %eax, 0x2a714(%rip)     # 0x2d1f8
jmp 0x2cb9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x2b1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x2150
leaq -0x131(%rbp), %rdi
callq 0x2280
jmp 0x415b
movq 0x2a4a5(%rip), %rdi     # 0x2cfd8
leaq 0x227c3(%rip), %rsi     # 0x252fd
callq 0x2240
movq %rax, -0x4e0(%rbp)
jmp 0x2b48
movq -0x4e0(%rbp), %rdi
leaq 0x227b8(%rip), %rsi     # 0x2530e
callq 0x2240
movq %rax, -0x4e8(%rbp)
jmp 0x2b64
movq -0x4e8(%rbp), %rdi
movl $0xa4, %esi
callq 0x2340
movq %rax, -0x4f0(%rbp)
jmp 0x2b7e
movq -0x4f0(%rbp), %rdi
leaq 0x2277a(%rip), %rsi     # 0x25306
callq 0x2240
movq %rax, -0x4f8(%rbp)
jmp 0x2b9a
movq -0x4f8(%rbp), %rdi
xorl %esi, %esi
callq 0x2340
movq %rax, -0x500(%rbp)
jmp 0x2bb1
movq -0x500(%rbp), %rdi
leaq 0x22751(%rip), %rsi     # 0x25310
callq 0x2240
movq %rax, -0x508(%rbp)
jmp 0x2bcd
leaq -0x159(%rbp), %rdi
movq %rdi, -0x510(%rbp)
callq 0x2360
movq -0x510(%rbp), %rdx
leaq 0x22c06(%rip), %rsi     # 0x257f4
leaq -0x158(%rbp), %rdi
callq 0x22f0
jmp 0x2bfc
leaq -0xb0(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x1b6a0
movq %rax, -0x518(%rbp)
jmp 0x2c18
movq -0x518(%rbp), %rdi
callq 0x1b690
movl %eax, -0x51c(%rbp)
jmp 0x2c2c
movl -0x51c(%rbp), %esi
movq -0x508(%rbp), %rdi
callq 0x2340
movq %rax, -0x528(%rbp)
jmp 0x2c47
movq -0x528(%rbp), %rdi
movq 0x2a373(%rip), %rsi     # 0x2cfc8
callq 0x2270
jmp 0x2c5c
leaq -0x158(%rbp), %rdi
callq 0x2150
leaq -0x159(%rbp), %rdi
callq 0x2280
jmp 0x2cb9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x2ca8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x2150
leaq -0x159(%rbp), %rdi
callq 0x2280
jmp 0x415b
jmp 0x2cbb
jmp 0x2cbd
jmp 0x2cbf
movl 0x2a52f(%rip), %eax     # 0x2d1f4
incl %eax
movl %eax, 0x2a527(%rip)     # 0x2d1f4
leaq -0x181(%rbp), %rdi
movq %rdi, -0x530(%rbp)
callq 0x2360
movq -0x530(%rbp), %rdx
leaq 0x22b03(%rip), %rsi     # 0x257f1
leaq -0x180(%rbp), %rdi
callq 0x22f0
jmp 0x2cfc
leaq -0xb0(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0x1b6a0
movq %rax, -0x538(%rbp)
jmp 0x2d18
movq -0x538(%rbp), %rdi
callq 0x1b690
movl %eax, -0x53c(%rbp)
jmp 0x2d2c
leaq -0x180(%rbp), %rdi
callq 0x2150
leaq -0x181(%rbp), %rdi
callq 0x2280
movl -0x53c(%rbp), %ecx
movl $0x2, %eax
cmpl %ecx, %eax
jne 0x2daa
movl 0x2a49f(%rip), %eax     # 0x2d1f8
addl $0x1, %eax
movl %eax, 0x2a496(%rip)     # 0x2d1f8
jmp 0x2f3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x2d99
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x2150
leaq -0x181(%rbp), %rdi
callq 0x2280
jmp 0x415b
movq 0x2a227(%rip), %rdi     # 0x2cfd8
leaq 0x22545(%rip), %rsi     # 0x252fd
callq 0x2240
movq %rax, -0x548(%rbp)
jmp 0x2dc6
movq -0x548(%rbp), %rdi
leaq 0x2253a(%rip), %rsi     # 0x2530e
callq 0x2240
movq %rax, -0x550(%rbp)
jmp 0x2de2
movq -0x550(%rbp), %rdi
movl $0xa5, %esi
callq 0x2340
movq %rax, -0x558(%rbp)
jmp 0x2dfc
movq -0x558(%rbp), %rdi
leaq 0x224fc(%rip), %rsi     # 0x25306
callq 0x2240
movq %rax, -0x560(%rbp)
jmp 0x2e18
movq -0x560(%rbp), %rdi
movl $0x2, %esi
callq 0x2340
movq %rax, -0x568(%rbp)
jmp 0x2e32
movq -0x568(%rbp), %rdi
leaq 0x224d0(%rip), %rsi     # 0x25310
callq 0x2240
movq %rax, -0x570(%rbp)
jmp 0x2e4e
leaq -0x1a9(%rbp), %rdi
movq %rdi, -0x578(%rbp)
callq 0x2360
movq -0x578(%rbp), %rdx
leaq 0x22982(%rip), %rsi     # 0x257f1
leaq -0x1a8(%rbp), %rdi
callq 0x22f0
jmp 0x2e7d
leaq -0xb0(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x1b6a0
movq %rax, -0x580(%rbp)
jmp 0x2e99
movq -0x580(%rbp), %rdi
callq 0x1b690
movl %eax, -0x584(%rbp)
jmp 0x2ead
movl -0x584(%rbp), %esi
movq -0x570(%rbp), %rdi
callq 0x2340
movq %rax, -0x590(%rbp)
jmp 0x2ec8
movq -0x590(%rbp), %rdi
movq 0x2a0f2(%rip), %rsi     # 0x2cfc8
callq 0x2270
jmp 0x2edd
leaq -0x1a8(%rbp), %rdi
callq 0x2150
leaq -0x1a9(%rbp), %rdi
callq 0x2280
jmp 0x2f3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x2f29
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x2150
leaq -0x1a9(%rbp), %rdi
callq 0x2280
jmp 0x415b
jmp 0x2f3c
jmp 0x2f3e
jmp 0x2f40
movl 0x2a2ae(%rip), %eax     # 0x2d1f4
incl %eax
movl %eax, 0x2a2a6(%rip)     # 0x2d1f4
leaq -0x1d1(%rbp), %rdi
movq %rdi, -0x598(%rbp)
callq 0x2360
movq -0x598(%rbp), %rdx
leaq 0x2288b(%rip), %rsi     # 0x257fa
leaq -0x1d0(%rbp), %rdi
callq 0x22f0
jmp 0x2f7d
leaq -0xb0(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x1b6a0
movq %rax, -0x5a0(%rbp)
jmp 0x2f99
movq -0x5a0(%rbp), %rdi
callq 0x1b690
movl %eax, -0x5a4(%rbp)
jmp 0x2fad
leaq -0x1d0(%rbp), %rdi
callq 0x2150
leaq -0x1d1(%rbp), %rdi
callq 0x2280
movl -0x5a4(%rbp), %ecx
movl $0x1, %eax
cmpl %ecx, %eax
jne 0x302b
movl 0x2a21e(%rip), %eax     # 0x2d1f8
addl $0x1, %eax
movl %eax, 0x2a215(%rip)     # 0x2d1f8
jmp 0x31bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x301a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x1d0(%rbp), %rdi
callq 0x2150
leaq -0x1d1(%rbp), %rdi
callq 0x2280
jmp 0x415b
movq 0x29fa6(%rip), %rdi     # 0x2cfd8
leaq 0x222c4(%rip), %rsi     # 0x252fd
callq 0x2240
movq %rax, -0x5b0(%rbp)
jmp 0x3047
movq -0x5b0(%rbp), %rdi
leaq 0x222b9(%rip), %rsi     # 0x2530e
callq 0x2240
movq %rax, -0x5b8(%rbp)
jmp 0x3063
movq -0x5b8(%rbp), %rdi
movl $0xa6, %esi
callq 0x2340
movq %rax, -0x5c0(%rbp)
jmp 0x307d
movq -0x5c0(%rbp), %rdi
leaq 0x2227b(%rip), %rsi     # 0x25306
callq 0x2240
movq %rax, -0x5c8(%rbp)
jmp 0x3099
movq -0x5c8(%rbp), %rdi
movl $0x1, %esi
callq 0x2340
movq %rax, -0x5d0(%rbp)
jmp 0x30b3
movq -0x5d0(%rbp), %rdi
leaq 0x2224f(%rip), %rsi     # 0x25310
callq 0x2240
movq %rax, -0x5d8(%rbp)
jmp 0x30cf
leaq -0x1f9(%rbp), %rdi
movq %rdi, -0x5e0(%rbp)
callq 0x2360
movq -0x5e0(%rbp), %rdx
leaq 0x2270a(%rip), %rsi     # 0x257fa
leaq -0x1f8(%rbp), %rdi
callq 0x22f0
jmp 0x30fe
leaq -0xb0(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x1b6a0
movq %rax, -0x5e8(%rbp)
jmp 0x311a
movq -0x5e8(%rbp), %rdi
callq 0x1b690
movl %eax, -0x5ec(%rbp)
jmp 0x312e
movl -0x5ec(%rbp), %esi
movq -0x5d8(%rbp), %rdi
callq 0x2340
movq %rax, -0x5f8(%rbp)
jmp 0x3149
movq -0x5f8(%rbp), %rdi
movq 0x29e71(%rip), %rsi     # 0x2cfc8
callq 0x2270
jmp 0x315e
leaq -0x1f8(%rbp), %rdi
callq 0x2150
leaq -0x1f9(%rbp), %rdi
callq 0x2280
jmp 0x31bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x31aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0x2150
leaq -0x1f9(%rbp), %rdi
callq 0x2280
jmp 0x415b
jmp 0x31bd
jmp 0x31bf
jmp 0x31c1
movl 0x2a02d(%rip), %eax     # 0x2d1f4
incl %eax
movl %eax, 0x2a025(%rip)     # 0x2d1f4
leaq -0x221(%rbp), %rdi
movq %rdi, -0x600(%rbp)
callq 0x2360
movq -0x600(%rbp), %rdx
leaq 0x2212a(%rip), %rsi     # 0x2531a
leaq -0x220(%rbp), %rdi
callq 0x22f0
jmp 0x31fe
leaq -0xb0(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0x1b6a0
movq %rax, -0x608(%rbp)
jmp 0x321a
movq -0x608(%rbp), %rdi
callq 0x1b690
movl %eax, -0x60c(%rbp)
jmp 0x322e
leaq -0x220(%rbp), %rdi
callq 0x2150
leaq -0x221(%rbp), %rdi
callq 0x2280
movl -0x60c(%rbp), %ecx
movl $0x3, %eax
cmpl %ecx, %eax
jne 0x32ac
movl 0x29f9d(%rip), %eax     # 0x2d1f8
addl $0x1, %eax
movl %eax, 0x29f94(%rip)     # 0x2d1f8
jmp 0x343c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x329b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x220(%rbp), %rdi
callq 0x2150
leaq -0x221(%rbp), %rdi
callq 0x2280
jmp 0x415b
movq 0x29d25(%rip), %rdi     # 0x2cfd8
leaq 0x22043(%rip), %rsi     # 0x252fd
callq 0x2240
movq %rax, -0x618(%rbp)
jmp 0x32c8
movq -0x618(%rbp), %rdi
leaq 0x22038(%rip), %rsi     # 0x2530e
callq 0x2240
movq %rax, -0x620(%rbp)
jmp 0x32e4
movq -0x620(%rbp), %rdi
movl $0xa8, %esi
callq 0x2340
movq %rax, -0x628(%rbp)
jmp 0x32fe
movq -0x628(%rbp), %rdi
leaq 0x21ffa(%rip), %rsi     # 0x25306
callq 0x2240
movq %rax, -0x630(%rbp)
jmp 0x331a
movq -0x630(%rbp), %rdi
movl $0x3, %esi
callq 0x2340
movq %rax, -0x638(%rbp)
jmp 0x3334
movq -0x638(%rbp), %rdi
leaq 0x21fce(%rip), %rsi     # 0x25310
callq 0x2240
movq %rax, -0x640(%rbp)
jmp 0x3350
leaq -0x249(%rbp), %rdi
movq %rdi, -0x648(%rbp)
callq 0x2360
movq -0x648(%rbp), %rdx
leaq 0x21fa9(%rip), %rsi     # 0x2531a
leaq -0x248(%rbp), %rdi
callq 0x22f0
jmp 0x337f
leaq -0xb0(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x1b6a0
movq %rax, -0x650(%rbp)
jmp 0x339b
movq -0x650(%rbp), %rdi
callq 0x1b690
movl %eax, -0x654(%rbp)
jmp 0x33af
movl -0x654(%rbp), %esi
movq -0x640(%rbp), %rdi
callq 0x2340
movq %rax, -0x660(%rbp)
jmp 0x33ca
movq -0x660(%rbp), %rdi
movq 0x29bf0(%rip), %rsi     # 0x2cfc8
callq 0x2270
jmp 0x33df
leaq -0x248(%rbp), %rdi
callq 0x2150
leaq -0x249(%rbp), %rdi
callq 0x2280
jmp 0x343c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x342b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x2150
leaq -0x249(%rbp), %rdi
callq 0x2280
jmp 0x415b
jmp 0x343e
jmp 0x3440
jmp 0x3442
movl 0x29dac(%rip), %eax     # 0x2d1f4
incl %eax
movl %eax, 0x29da4(%rip)     # 0x2d1f4
leaq -0x271(%rbp), %rdi
movq %rdi, -0x668(%rbp)
callq 0x2360
movq -0x668(%rbp), %rdx
leaq 0x21ea9(%rip), %rsi     # 0x2531a
leaq -0x270(%rbp), %rdi
callq 0x22f0
jmp 0x347f
leaq -0xb0(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0x1b6a0
movq %rax, -0x670(%rbp)
jmp 0x349b
movq -0x670(%rbp), %rdi
callq 0x1b6f0
movsd %xmm0, -0x678(%rbp)
jmp 0x34b1
leaq -0x270(%rbp), %rdi
callq 0x2150
leaq -0x271(%rbp), %rdi
callq 0x2280
movsd -0x678(%rbp), %xmm1
movsd 0x21b4f(%rip), %xmm0    # 0x25028
ucomisd %xmm1, %xmm0
jne 0x3538
jp 0x3538
movl 0x29d11(%rip), %eax     # 0x2d1f8
addl $0x1, %eax
movl %eax, 0x29d08(%rip)     # 0x2d1f8
jmp 0x36cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3527
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x2150
leaq -0x271(%rbp), %rdi
callq 0x2280
jmp 0x415b
movq 0x29a99(%rip), %rdi     # 0x2cfd8
leaq 0x21db7(%rip), %rsi     # 0x252fd
callq 0x2240
movq %rax, -0x680(%rbp)
jmp 0x3554
movq -0x680(%rbp), %rdi
leaq 0x21dac(%rip), %rsi     # 0x2530e
callq 0x2240
movq %rax, -0x688(%rbp)
jmp 0x3570
movq -0x688(%rbp), %rdi
movl $0xa9, %esi
callq 0x2340
movq %rax, -0x690(%rbp)
jmp 0x358a
movq -0x690(%rbp), %rdi
leaq 0x21d6e(%rip), %rsi     # 0x25306
callq 0x2240
movq %rax, -0x698(%rbp)
jmp 0x35a6
movq -0x698(%rbp), %rdi
movl $0x7b, %esi
callq 0x2340
movq %rax, -0x6a0(%rbp)
jmp 0x35c0
movq -0x6a0(%rbp), %rdi
leaq 0x21d42(%rip), %rsi     # 0x25310
callq 0x2240
movq %rax, -0x6a8(%rbp)
jmp 0x35dc
leaq -0x299(%rbp), %rdi
movq %rdi, -0x6b0(%rbp)
callq 0x2360
movq -0x6b0(%rbp), %rdx
leaq 0x21d1d(%rip), %rsi     # 0x2531a
leaq -0x298(%rbp), %rdi
callq 0x22f0
jmp 0x360b
leaq -0xb0(%rbp), %rdi
leaq -0x298(%rbp), %rsi
callq 0x1b6a0
movq %rax, -0x6b8(%rbp)
jmp 0x3627
movq -0x6b8(%rbp), %rdi
callq 0x1b6f0
movsd %xmm0, -0x6c0(%rbp)
jmp 0x363d
movsd -0x6c0(%rbp), %xmm0
movq -0x6a8(%rbp), %rdi
callq 0x2390
movq %rax, -0x6c8(%rbp)
jmp 0x365a
movq -0x6c8(%rbp), %rdi
movq 0x29960(%rip), %rsi     # 0x2cfc8
callq 0x2270
jmp 0x366f
leaq -0x298(%rbp), %rdi
callq 0x2150
leaq -0x299(%rbp), %rdi
callq 0x2280
jmp 0x36cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x36bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x298(%rbp), %rdi
callq 0x2150
leaq -0x299(%rbp), %rdi
callq 0x2280
jmp 0x415b
jmp 0x36ce
jmp 0x36d0
jmp 0x36d2
movl 0x29b1c(%rip), %eax     # 0x2d1f4
incl %eax
movl %eax, 0x29b14(%rip)     # 0x2d1f4
leaq -0x2c1(%rbp), %rdi
movq %rdi, -0x6d0(%rbp)
callq 0x2360
movq -0x6d0(%rbp), %rdx
leaq 0x21c1b(%rip), %rsi     # 0x2531c
leaq -0x2c0(%rbp), %rdi
callq 0x22f0
jmp 0x370f
leaq -0xb0(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x1b6a0
movq %rax, -0x6d8(%rbp)
jmp 0x372b
movq -0x6d8(%rbp), %rdi
callq 0x1b690
movl %eax, -0x6dc(%rbp)
jmp 0x373f
leaq -0x2c0(%rbp), %rdi
callq 0x2150
leaq -0x2c1(%rbp), %rdi
callq 0x2280
movl -0x6dc(%rbp), %ecx
movl $0x4, %eax
cmpl %ecx, %eax
jne 0x37bd
movl 0x29a8c(%rip), %eax     # 0x2d1f8
addl $0x1, %eax
movl %eax, 0x29a83(%rip)     # 0x2d1f8
jmp 0x394d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x37ac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x2c0(%rbp), %rdi
callq 0x2150
leaq -0x2c1(%rbp), %rdi
callq 0x2280
jmp 0x415b
movq 0x29814(%rip), %rdi     # 0x2cfd8
leaq 0x21b32(%rip), %rsi     # 0x252fd
callq 0x2240
movq %rax, -0x6e8(%rbp)
jmp 0x37d9
movq -0x6e8(%rbp), %rdi
leaq 0x21b27(%rip), %rsi     # 0x2530e
callq 0x2240
movq %rax, -0x6f0(%rbp)
jmp 0x37f5
movq -0x6f0(%rbp), %rdi
movl $0xab, %esi
callq 0x2340
movq %rax, -0x6f8(%rbp)
jmp 0x380f
movq -0x6f8(%rbp), %rdi
leaq 0x21ae9(%rip), %rsi     # 0x25306
callq 0x2240
movq %rax, -0x700(%rbp)
jmp 0x382b
movq -0x700(%rbp), %rdi
movl $0x4, %esi
callq 0x2340
movq %rax, -0x708(%rbp)
jmp 0x3845
movq -0x708(%rbp), %rdi
leaq 0x21abd(%rip), %rsi     # 0x25310
callq 0x2240
movq %rax, -0x710(%rbp)
jmp 0x3861
leaq -0x2e9(%rbp), %rdi
movq %rdi, -0x718(%rbp)
callq 0x2360
movq -0x718(%rbp), %rdx
leaq 0x21a9a(%rip), %rsi     # 0x2531c
leaq -0x2e8(%rbp), %rdi
callq 0x22f0
jmp 0x3890
leaq -0xb0(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0x1b6a0
movq %rax, -0x720(%rbp)
jmp 0x38ac
movq -0x720(%rbp), %rdi
callq 0x1b690
movl %eax, -0x724(%rbp)
jmp 0x38c0
movl -0x724(%rbp), %esi
movq -0x710(%rbp), %rdi
callq 0x2340
movq %rax, -0x730(%rbp)
jmp 0x38db
movq -0x730(%rbp), %rdi
movq 0x296df(%rip), %rsi     # 0x2cfc8
callq 0x2270
jmp 0x38f0
leaq -0x2e8(%rbp), %rdi
callq 0x2150
leaq -0x2e9(%rbp), %rdi
callq 0x2280
jmp 0x394d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x393c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x2e8(%rbp), %rdi
callq 0x2150
leaq -0x2e9(%rbp), %rdi
callq 0x2280
jmp 0x415b
jmp 0x394f
jmp 0x3951
jmp 0x3953
movl 0x2989b(%rip), %eax     # 0x2d1f4
incl %eax
movl %eax, 0x29893(%rip)     # 0x2d1f4
leaq -0x331(%rbp), %rdi
movq %rdi, -0x738(%rbp)
callq 0x2360
movq -0x738(%rbp), %rdx
leaq 0x2199a(%rip), %rsi     # 0x2531c
leaq -0x330(%rbp), %rdi
callq 0x22f0
jmp 0x3990
leaq -0xb0(%rbp), %rdi
leaq -0x330(%rbp), %rsi
callq 0x1b6a0
movq %rax, -0x740(%rbp)
jmp 0x39ac
movq -0x740(%rbp), %rsi
leaq -0x310(%rbp), %rdi
callq 0x24e0
jmp 0x39c1
leaq 0x21cc8(%rip), %rdi     # 0x25690
leaq -0x310(%rbp), %rsi
callq 0x1b740
movb %al, -0x741(%rbp)
jmp 0x39dc
leaq -0x310(%rbp), %rdi
callq 0x2150
leaq -0x330(%rbp), %rdi
callq 0x2150
leaq -0x331(%rbp), %rdi
callq 0x2280
movb -0x741(%rbp), %al
testb $0x1, %al
jne 0x3a0c
jmp 0x3a83
movl 0x297e6(%rip), %eax     # 0x2d1f8
addl $0x1, %eax
movl %eax, 0x297dd(%rip)     # 0x2d1f8
jmp 0x3c43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3a72
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3a66
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x310(%rbp), %rdi
callq 0x2150
leaq -0x330(%rbp), %rdi
callq 0x2150
leaq -0x331(%rbp), %rdi
callq 0x2280
jmp 0x415b
movq 0x2954e(%rip), %rdi     # 0x2cfd8
leaq 0x2186c(%rip), %rsi     # 0x252fd
callq 0x2240
movq %rax, -0x750(%rbp)
jmp 0x3a9f
movq -0x750(%rbp), %rdi
leaq 0x21861(%rip), %rsi     # 0x2530e
callq 0x2240
movq %rax, -0x758(%rbp)
jmp 0x3abb
movq -0x758(%rbp), %rdi
movl $0xac, %esi
callq 0x2340
movq %rax, -0x760(%rbp)
jmp 0x3ad5
movq -0x760(%rbp), %rdi
leaq 0x21823(%rip), %rsi     # 0x25306
callq 0x2240
movq %rax, -0x768(%rbp)
jmp 0x3af1
movq -0x768(%rbp), %rdi
leaq 0x21b91(%rip), %rsi     # 0x25690
callq 0x2240
movq %rax, -0x770(%rbp)
jmp 0x3b0d
movq -0x770(%rbp), %rdi
leaq 0x217f5(%rip), %rsi     # 0x25310
callq 0x2240
movq %rax, -0x778(%rbp)
jmp 0x3b29
leaq -0x379(%rbp), %rdi
movq %rdi, -0x780(%rbp)
callq 0x2360
movq -0x780(%rbp), %rdx
leaq 0x217d2(%rip), %rsi     # 0x2531c
leaq -0x378(%rbp), %rdi
callq 0x22f0
jmp 0x3b58
leaq -0xb0(%rbp), %rdi
leaq -0x378(%rbp), %rsi
callq 0x1b6a0
movq %rax, -0x788(%rbp)
jmp 0x3b74
movq -0x788(%rbp), %rsi
leaq -0x358(%rbp), %rdi
callq 0x24e0
jmp 0x3b89
movq -0x778(%rbp), %rdi
leaq -0x358(%rbp), %rsi
callq 0x2200
movq %rax, -0x790(%rbp)
jmp 0x3ba5
movq -0x790(%rbp), %rdi
movq 0x29415(%rip), %rsi     # 0x2cfc8
callq 0x2270
jmp 0x3bba
leaq -0x358(%rbp), %rdi
callq 0x2150
leaq -0x378(%rbp), %rdi
callq 0x2150
leaq -0x379(%rbp), %rdi
callq 0x2280
jmp 0x3c43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3c32
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3c26
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x358(%rbp), %rdi
callq 0x2150
leaq -0x378(%rbp), %rdi
callq 0x2150
leaq -0x379(%rbp), %rdi
callq 0x2280
jmp 0x415b
jmp 0x3c45
jmp 0x3c47
jmp 0x3c49
movl 0x295a5(%rip), %eax     # 0x2d1f4
incl %eax
movl %eax, 0x2959d(%rip)     # 0x2d1f4
leaq -0x3a1(%rbp), %rdi
movq %rdi, -0x798(%rbp)
callq 0x2360
movq -0x798(%rbp), %rdx
leaq 0x216a6(%rip), %rsi     # 0x2531e
leaq -0x3a0(%rbp), %rdi
callq 0x22f0
jmp 0x3c86
leaq -0xb0(%rbp), %rdi
leaq -0x3a0(%rbp), %rsi
callq 0x1b6a0
movq %rax, -0x7a0(%rbp)
jmp 0x3ca2
movq -0x7a0(%rbp), %rdi
callq 0x1b690
movl %eax, -0x7a4(%rbp)
jmp 0x3cb6
leaq -0x3a0(%rbp), %rdi
callq 0x2150
leaq -0x3a1(%rbp), %rdi
callq 0x2280
movl -0x7a4(%rbp), %ecx
movl $0x5, %eax
cmpl %ecx, %eax
jne 0x3d34
movl 0x29515(%rip), %eax     # 0x2d1f8
addl $0x1, %eax
movl %eax, 0x2950c(%rip)     # 0x2d1f8
jmp 0x3ec4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3d23
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x3a0(%rbp), %rdi
callq 0x2150
leaq -0x3a1(%rbp), %rdi
callq 0x2280
jmp 0x415b
movq 0x2929d(%rip), %rdi     # 0x2cfd8
leaq 0x215bb(%rip), %rsi     # 0x252fd
callq 0x2240
movq %rax, -0x7b0(%rbp)
jmp 0x3d50
movq -0x7b0(%rbp), %rdi
leaq 0x215b0(%rip), %rsi     # 0x2530e
callq 0x2240
movq %rax, -0x7b8(%rbp)
jmp 0x3d6c
movq -0x7b8(%rbp), %rdi
movl $0xae, %esi
callq 0x2340
movq %rax, -0x7c0(%rbp)
jmp 0x3d86
movq -0x7c0(%rbp), %rdi
leaq 0x21572(%rip), %rsi     # 0x25306
callq 0x2240
movq %rax, -0x7c8(%rbp)
jmp 0x3da2
movq -0x7c8(%rbp), %rdi
movl $0x5, %esi
callq 0x2340
movq %rax, -0x7d0(%rbp)
jmp 0x3dbc
movq -0x7d0(%rbp), %rdi
leaq 0x21546(%rip), %rsi     # 0x25310
callq 0x2240
movq %rax, -0x7d8(%rbp)
jmp 0x3dd8
leaq -0x3c9(%rbp), %rdi
movq %rdi, -0x7e0(%rbp)
callq 0x2360
movq -0x7e0(%rbp), %rdx
leaq 0x21525(%rip), %rsi     # 0x2531e
leaq -0x3c8(%rbp), %rdi
callq 0x22f0
jmp 0x3e07
leaq -0xb0(%rbp), %rdi
leaq -0x3c8(%rbp), %rsi
callq 0x1b6a0
movq %rax, -0x7e8(%rbp)
jmp 0x3e23
movq -0x7e8(%rbp), %rdi
callq 0x1b690
movl %eax, -0x7ec(%rbp)
jmp 0x3e37
movl -0x7ec(%rbp), %esi
movq -0x7d8(%rbp), %rdi
callq 0x2340
movq %rax, -0x7f8(%rbp)
jmp 0x3e52
movq -0x7f8(%rbp), %rdi
movq 0x29168(%rip), %rsi     # 0x2cfc8
callq 0x2270
jmp 0x3e67
leaq -0x3c8(%rbp), %rdi
callq 0x2150
leaq -0x3c9(%rbp), %rdi
callq 0x2280
jmp 0x3ec4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3eb3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x3c8(%rbp), %rdi
callq 0x2150
leaq -0x3c9(%rbp), %rdi
callq 0x2280
jmp 0x415b
jmp 0x3ec6
jmp 0x3ec8
jmp 0x3eca
movl 0x29324(%rip), %eax     # 0x2d1f4
incl %eax
movl %eax, 0x2931c(%rip)     # 0x2d1f4
leaq -0x3f1(%rbp), %rdi
movq %rdi, -0x800(%rbp)
callq 0x2360
movq -0x800(%rbp), %rdx
leaq 0x21651(%rip), %rsi     # 0x2554a
leaq -0x3f0(%rbp), %rdi
callq 0x22f0
jmp 0x3f07
leaq -0xb0(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x1b6a0
movq %rax, -0x808(%rbp)
jmp 0x3f23
movq -0x808(%rbp), %rdi
callq 0x1b690
movl %eax, -0x80c(%rbp)
jmp 0x3f37
leaq -0x3f0(%rbp), %rdi
callq 0x2150
leaq -0x3f1(%rbp), %rdi
callq 0x2280
movl -0x80c(%rbp), %ecx
movl $0x6, %eax
cmpl %ecx, %eax
jne 0x3fb5
movl 0x29294(%rip), %eax     # 0x2d1f8
addl $0x1, %eax
movl %eax, 0x2928b(%rip)     # 0x2d1f8
jmp 0x4142
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3fa4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x3f0(%rbp), %rdi
callq 0x2150
leaq -0x3f1(%rbp), %rdi
callq 0x2280
jmp 0x415b
movq 0x2901c(%rip), %rdi     # 0x2cfd8
leaq 0x2133a(%rip), %rsi     # 0x252fd
callq 0x2240
movq %rax, -0x818(%rbp)
jmp 0x3fd1
movq -0x818(%rbp), %rdi
leaq 0x2132f(%rip), %rsi     # 0x2530e
callq 0x2240
movq %rax, -0x820(%rbp)
jmp 0x3fed
movq -0x820(%rbp), %rdi
movl $0xaf, %esi
callq 0x2340
movq %rax, -0x828(%rbp)
jmp 0x4007
movq -0x828(%rbp), %rdi
leaq 0x212f1(%rip), %rsi     # 0x25306
callq 0x2240
movq %rax, -0x830(%rbp)
jmp 0x4023
movq -0x830(%rbp), %rdi
movl $0x6, %esi
callq 0x2340
movq %rax, -0x838(%rbp)
jmp 0x403d
movq -0x838(%rbp), %rdi
leaq 0x212c5(%rip), %rsi     # 0x25310
callq 0x2240
movq %rax, -0x840(%rbp)
jmp 0x4059
leaq -0x419(%rbp), %rdi
movq %rdi, -0x848(%rbp)
callq 0x2360
movq -0x848(%rbp), %rdx
leaq 0x214d0(%rip), %rsi     # 0x2554a
leaq -0x418(%rbp), %rdi
callq 0x22f0
jmp 0x4088
leaq -0xb0(%rbp), %rdi
leaq -0x418(%rbp), %rsi
callq 0x1b6a0
movq %rax, -0x850(%rbp)
jmp 0x40a4
movq -0x850(%rbp), %rdi
callq 0x1b690
movl %eax, -0x854(%rbp)
jmp 0x40b8
movl -0x854(%rbp), %esi
movq -0x840(%rbp), %rdi
callq 0x2340
movq %rax, -0x860(%rbp)
jmp 0x40d3
movq -0x860(%rbp), %rdi
movq 0x28ee7(%rip), %rsi     # 0x2cfc8
callq 0x2270
jmp 0x40e8
leaq -0x418(%rbp), %rdi
callq 0x2150
leaq -0x419(%rbp), %rdi
callq 0x2280
jmp 0x4142
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x4134
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x418(%rbp), %rdi
callq 0x2150
leaq -0x419(%rbp), %rdi
callq 0x2280
jmp 0x415b
jmp 0x4144
jmp 0x4146
leaq -0xb0(%rbp), %rdi
callq 0x1b770
addq $0x860, %rsp            # imm = 0x860
popq %rbp
retq
leaq -0xb0(%rbp), %rdi
callq 0x1b770
movq -0xe0(%rbp), %rdi
callq 0x2350
nopw %cs:(%rax,%rax)