// File: /workspace/github_c_makefile_star2_O0/samtools[P]htslib/test/sam.c
// Function: aux_fields1
static int aux_fields1(void)
{
    static const char sam[] = "data:,"
"@SQ\tSN:one\tLN:1000\n"
"@SQ\tSN:two\tLN:500\n"
"r1\t0\tone\t500\t20\t8M\t*\t0\t0\tATGCATGC\tqqqqqqqq\tXA:A:k\tXi:i:37\tXf:f:" xstr(PI) "\tXd:d:" xstr(E) "\tXZ:Z:" HELLO "\tXH:H:" BEEF "\tXB:B:c,-2,0,+2\tB0:B:i,-2147483648,-1,0,1,2147483647\tB1:B:I,0,1,2147483648,4294967295\tB2:B:s,-32768,-1,0,1,32767\tB3:B:S,0,1,32768,65535\tB4:B:c,-128,-1,0,1,127\tB5:B:C,0,1,127,255\tBf:B:f,-3.14159,2.71828\tZZ:i:1000000\tF2:d:2.46801\tY1:i:-2147483648\tY2:i:-2147483647\tY3:i:-1\tY4:i:0\tY5:i:1\tY6:i:2147483647\tY7:i:2147483648\tY8:i:4294967295\n"
"r2\t0x8D\t*\t0\t0\t*\t*\t0\t0\tATGC\tqqqq\n"
;

    // Canonical form of the alignment records above, as output by sam_format1()
    static const char r1[] = "r1\t0\tone\t500\t20\t8M\t*\t0\t0\tATGCATGC\tqqqqqqqq\tXi:i:37\tXf:f:3.14159\tXd:d:2.71828\tXZ:Z:" NEW_HELLO "\tXH:H:" BEEF "\tXB:B:c,-2,0,2\tB0:B:i,-2147483648,-1,0,1,2147483647\tB1:B:I,0,1,2147483648,4294967295\tB2:B:s,-32768,-1,0,1,32767\tB3:B:S,0,1,32768,65535\tB4:B:c,-128,-1,0,1,127\tB5:B:C,0,1,127,255\tBf:B:f,-3.14159,2.71828\tZZ:i:1000000\tF2:f:9.8765\tY1:i:-2147483648\tY2:i:-2147483647\tY3:i:-1\tY4:i:0\tY5:i:1\tY6:i:2147483647\tY7:i:2147483648\tY8:i:4294967295\tN0:i:-1234\tN1:i:1234\tN2:i:-2\tN3:i:3\tF1:f:4.5678\tN4:B:S,65535,32768,1,0\tN5:i:4242\tZa:Z:" HELLO "\tZb:Z:" NEW_HELLO2;
    static const char r2[] = "r2\t141\t*\t0\t0\t*\t*\t0\t0\tATGC\tqqqq";

    samFile *in = sam_open(sam, "r");
    bam_hdr_t *header = sam_hdr_read(in);
    bam1_t *aln = bam_init1();
    uint8_t *p;
    kstring_t ks = { 0, 0, NULL };
    int64_t b0vals[5] = { -2147483648LL,-1,0,1,2147483647LL }; // i
    int64_t b1vals[4] = { 0,1,2147483648LL,4294967295LL };     // I
    int64_t b2vals[5] = { -32768,-1,0,1,32767 };           // s
    int64_t b3vals[4] = { 0,1,32768,65535 };               // S
    int64_t b4vals[5] = { -128,-1,0,1,127 };               // c
    int64_t b5vals[4] = { 0,1,127,255 };                   // C
    // NB: Floats not doubles below!
    // See https://randomascii.wordpress.com/2012/06/26/doubles-are-not-floats-so-dont-compare-them/
    float bfvals[2] = { -3.14159f, 2.71828f };

    int8_t n4v1[] = { -128, -64, -32, -16, -8, -4, -2, -1,
                      0, 1, 2, 4, 8, 16, 32, 64, 127 };
    uint32_t n4v2[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1234, 5678, 1U << 31, 0 };
    int16_t n4v3[] = { -32768, -1, 0, 1, 32767 };
    float n4v4[] = { 0, 1, 2, 10, 20, 30, 1.5, -2.5 };
    uint8_t n4v5[] = { 0, 255 };
    int32_t n4v6[] = { -2147483647 - 1, 10, -1, 0, 1, 2147483647 };
    uint16_t n4v7[] = { 65535, 32768, 1, 0 };

    int32_t ival = -1234;
    uint32_t uval = 1234;
    float f1 = 4.5678;
    float f2 = 9.8765;
    const char *hose = "OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO";

    size_t nvals, i;

    if (sam_read1(in, header, aln) >= 0) {
        if ((p = check_bam_aux_get(aln, "XA", 'A')) && bam_aux2A(p) != 'k')
            fail("XA field is '%c', expected 'k'", bam_aux2A(p));

        check_aux_count(aln, 24, "Original record");

        bam_aux_del(aln,p);
        if (bam_aux_get(aln,"XA"))
            fail("XA field was not deleted");

        check_aux_count(aln, 23, "Record post-XA-deletion");

        p = bam_aux_get(aln, "Y2");
        if (p == NULL || strncmp(bam_aux_tag(p), "Y2", 2) != 0 || bam_aux_type(p) != 'i')
            fail("bam_aux_get() missed Y2 field");

        p = bam_aux_next(aln, p);
        if (p == NULL || strncmp(bam_aux_tag(p), "Y3", 2) != 0 || bam_aux_type(p) != 'c')
            fail("bam_aux_next() missed Y3 field");

        p = bam_aux_get(aln, "Y8");
        if (p == NULL || strncmp(bam_aux_tag(p), "Y8", 2) != 0 || bam_aux_type(p) != 'I')
            fail("bam_aux_get() missed Y8 field");

        p = bam_aux_next(aln, p);
        if (p != NULL || errno != ENOENT)
            fail("bam_aux_next missed the end of fields");

        if ((p = check_bam_aux_get(aln, "Xi", 'C')) && bam_aux2i(p) != 37)
            fail("Xi field is %"PRId64", expected 37", bam_aux2i(p));

        if ((p = check_bam_aux_get(aln, "Xf", 'f')) && fabs(bam_aux2f(p) - PI) > 1E-6)
            fail("Xf field is %.12f, expected pi", bam_aux2f(p));

        if ((p = check_bam_aux_get(aln, "Xd", 'd')) && fabs(bam_aux2f(p) - E) > 1E-6)
            fail("Xf field is %.12f, expected e", bam_aux2f(p));

        if ((p = check_bam_aux_get(aln, "XZ", 'Z')) && strcmp(bam_aux2Z(p), HELLO) != 0)
            fail("XZ field is \"%s\", expected \"%s\"", bam_aux2Z(p), HELLO);

        bam_aux_update_str(aln,"XZ",strlen(NEW_HELLO)+1,NEW_HELLO);
        if ((p = check_bam_aux_get(aln, "XZ", 'Z')) && strcmp(bam_aux2Z(p), NEW_HELLO) != 0)
            fail("XZ field is \"%s\", expected \"%s\"", bam_aux2Z(p), NEW_HELLO);
        if (!check_bam_aux_get(aln, "XH", 'H'))
            fail("bam_aux_update_str(,,strlen(NEW_HELLO)+1,NEW_HELLO) corrupted XH tag");

        bam_aux_update_str(aln,"XZ",strlen(NEW_HELLO2), NEW_HELLO2);
        if ((p = check_bam_aux_get(aln, "XZ", 'Z')) && strcmp(bam_aux2Z(p), NEW_HELLO2) != 0)
            fail("XZ field is \"%s\", expected \"%s\"", bam_aux2Z(p), NEW_HELLO2);
        if (!check_bam_aux_get(aln, "XH", 'H'))
            fail("bam_aux_update_str(,,strlen(NEW_HELLO2),NEW_HELLO2) corrupted XH tag");

        bam_aux_update_str(aln,"XZ",-1,NEW_HELLO);
        if ((p = check_bam_aux_get(aln, "XZ", 'Z')) && strcmp(bam_aux2Z(p), NEW_HELLO) != 0)
            fail("XZ field is \"%s\", expected \"%s\"", bam_aux2Z(p), NEW_HELLO);
        if (!check_bam_aux_get(aln, "XH", 'H'))
            fail("bam_aux_update_str(,,-1,NEW_HELLO) corrupted XH tag");

        if ((p = check_bam_aux_get(aln, "XH", 'H')) && strcmp(bam_aux2Z(p), BEEF) != 0)
            fail("XH field is \"%s\", expected \"%s\"", bam_aux2Z(p), BEEF);

        if ((p = check_bam_aux_get(aln, "XB", 'B'))
            && ! (memcmp(p, "Bc", 2) == 0
                  && memcmp(p + 2, "\x03\x00\x00\x00\xfe\x00\x02", 7) == 0))
            fail("XB field is %c,..., expected c,-2,0,+2", p[1]);

        check_int_B_array(aln, "B0", NELE(b0vals), b0vals);
        check_int_B_array(aln, "B1", NELE(b1vals), b1vals);
        check_int_B_array(aln, "B2", NELE(b2vals), b2vals);
        check_int_B_array(aln, "B3", NELE(b3vals), b3vals);
        check_int_B_array(aln, "B4", NELE(b4vals), b4vals);
        check_int_B_array(aln, "B5", NELE(b5vals), b5vals);

        nvals = NELE(bfvals);
        if ((p = check_bam_aux_get(aln, "Bf", 'B')) != NULL) {
            if (bam_auxB_len(p) != nvals)
                fail("Wrong length reported for Bf field, got %d, expected %zd",
                     bam_auxB_len(p), nvals);

            for (i = 0; i < nvals; i++) {
                if (bam_auxB2f(p, i) != bfvals[i]) {
                    fail("Wrong value from bam_auxB2f for Bf field index %zd, "
                         "got %f expected %f",
                         i, bam_auxB2f(p, i), bfvals[i]);
                }
            }
        }

        if ((p = check_bam_aux_get(aln, "ZZ", 'I')) && bam_aux2i(p) != 1000000)
            fail("ZZ field is %"PRId64", expected 1000000", bam_aux2i(p));

        if ((p = bam_aux_get(aln, "Y1")) && bam_aux2i(p) != -2147483647-1)
            fail("Y1 field is %"PRId64", expected -2^31", bam_aux2i(p));

        if ((p = bam_aux_get(aln, "Y2")) && bam_aux2i(p) != -2147483647)
            fail("Y2 field is %"PRId64", expected -2^31+1", bam_aux2i(p));

        if ((p = bam_aux_get(aln, "Y3")) && bam_aux2i(p) != -1)
            fail("Y3 field is %"PRId64", expected -1", bam_aux2i(p));

        if ((p = bam_aux_get(aln, "Y4")) && bam_aux2i(p) != 0)
            fail("Y4 field is %"PRId64", expected 0", bam_aux2i(p));

        if ((p = bam_aux_get(aln, "Y5")) && bam_aux2i(p) != 1)
            fail("Y5 field is %"PRId64", expected 1", bam_aux2i(p));

        if ((p = bam_aux_get(aln, "Y6")) && bam_aux2i(p) != 2147483647)
            fail("Y6 field is %"PRId64", expected 2^31-1", bam_aux2i(p));

        if ((p = bam_aux_get(aln, "Y7")) && bam_aux2i(p) != 2147483648LL)
            fail("Y7 field is %"PRId64", expected 2^31", bam_aux2i(p));

        if ((p = bam_aux_get(aln, "Y8")) && bam_aux2i(p) != 4294967295LL)
            fail("Y8 field is %"PRId64", expected 2^32-1", bam_aux2i(p));

        // Try appending some new tags
        if (bam_aux_append(aln, "N0", 'i', sizeof(ival), (uint8_t *) &ival) != 0)
            fail("Failed to append N0:i tag");

        if ((p = bam_aux_get(aln, "N0")) && bam_aux2i(p) != ival)
            fail("N0 field is %"PRId64", expected %d", bam_aux2i(p), ival);

        if (bam_aux_append(aln, "N1", 'I', sizeof(uval), (uint8_t *) &uval) != 0)
            fail("failed to append N1:I tag");

        if ((p = bam_aux_get(aln, "N1")) && bam_aux2i(p) != uval)
            fail("N1 field is %"PRId64", expected %u", bam_aux2i(p), uval);

        // Append tags with bam_aux_update_int()
        if (bam_aux_update_int(aln, "N2", -2) < 0)
            fail("failed to append N2:c tag");

        if (bam_aux_update_int(aln, "N3", 3) < 0)
            fail("failed to append N3:C tag");

        p = bam_aux_get(aln, "N2");
        if (!p)
            fail("failed to retrieve N2 tag");
        else if (*p != 'c' || bam_aux2i(p) != -2)
            fail("N2 field is %c:%"PRId64", expected c:-2", *p, bam_aux2i(p));

        p = bam_aux_get(aln, "N3");
        if (!p)
            fail("failed to retrieve N3 tag");
        else if (*p != 'C' || bam_aux2i(p) != 3)
            fail("N3 field is %c:%"PRId64", expected C:3", *p, bam_aux2i(p));

        // Try changing values with bam_aux_update_int()
        i = test_update_int(aln, "N2", 2, 'C', "N3", 3, 'C');
        if (i == 0) test_update_int(aln, "N2", 1234, 'S', "N3", 3, 'C');
        if (i == 0) test_update_int(aln, "N2", -1, 's', "N3", 3, 'C');
        if (i == 0) test_update_int(aln, "N2", 4294967295U, 'I', "N3", 3, 'C');
        if (i == 0) test_update_int(aln, "N2", -2, 'i', "N3", 3, 'C');

        // Append a value with bam_aux_update_float()
        if (bam_aux_update_float(aln, "F1", f1) < 0)
            fail("append F1:f tag");

        p = bam_aux_get(aln, "F1");
        if (!p)
            fail("retrieve F1 tag");
        else if (*p != 'f' || bam_aux2f(p) != f1)
            fail("F1 field is %c:%e, expected f:%e", *p, bam_aux2f(p), f1);

        // Change a double tag to a float
        if (bam_aux_update_float(aln, "F2", f2) < 0)
            fail("update F2 tag");

        p = bam_aux_get(aln, "F2");
        if (!p)
            fail("retrieve F2 tag");
        else if (*p != 'f' || bam_aux2f(p) != f2)
            fail("F2 field is %c:%e, expected f:%e", *p, bam_aux2f(p), f2);

        // Check the next one is intact too
        p = bam_aux_get(aln, "Y1");
        if (!p)
            fail("retrieve Y1 tag");
        else if (*p != 'i' && bam_aux2i(p) != -2147483647-1)
            fail("Y1 field is %"PRId64", expected -2^31", bam_aux2i(p));

        // bam_aux_update_array tests
        // append a new array
        i = test_update_array(aln, "N4", 'c', NELE(n4v1), n4v1, "\0\0", 0, 0);

        // Add a sentinel to check resizes work
        if (i == 0) i = test_update_int(aln, "N5", 4242, 'S', "\0\0", 0, 0);

        // alter the array tag a few times
        if (i == 0)
            i = test_update_array(aln, "N4", 'I', NELE(n4v2), n4v2,
                                  "N5", 4242, 'S');
        if (i == 0)
            i = test_update_array(aln, "N4", 's', NELE(n4v3), n4v3,
                                  "N5", 4242, 'S');
        if (i == 0)
            i = test_update_array(aln, "N4", 'f', NELE(n4v4), n4v4,
                                  "N5", 4242, 'S');
        if (i == 0)
            i = test_update_array(aln, "N4", 'c', NELE(n4v5), n4v5,
                                  "N5", 4242, 'S');
        if (i == 0)
            i = test_update_array(aln, "N4", 'i', NELE(n4v6), n4v6,
                                  "N5", 4242, 'S');
        if (i == 0)
            i = test_update_array(aln, "N4", 'S', NELE(n4v7), n4v7,
                                  "N5", 4242, 'S');

        // Append a couple of strings
        // First add and remove some data so that failure to NUL-terminate will
        // be spotted
        bam_aux_update_str(aln,"oo",strlen(hose) + 1,hose);
        if ((p = check_bam_aux_get(aln, "oo", 'Z')) && strcmp(bam_aux2Z(p), hose) != 0)
            fail("oo field is \"%s\", expected \"%s\"", bam_aux2Z(p), hose);
        if (p) bam_aux_del(aln, p);
        if (bam_aux_get(aln, "oo"))
            fail("oo field wasn't deleted correctly");

        bam_aux_update_str(aln,"Za",strlen(HELLO),HELLO);
        if ((p = check_bam_aux_get(aln, "Za", 'Z')) && strcmp(bam_aux2Z(p), HELLO) != 0)
            fail("Za field is \"%s\", expected \"%s\"", bam_aux2Z(p), HELLO);

        bam_aux_update_str(aln,"Zb",strlen(NEW_HELLO2)+1,NEW_HELLO2);
        if ((p = check_bam_aux_get(aln, "Zb", 'Z')) && strcmp(bam_aux2Z(p), NEW_HELLO2) != 0)
            fail("Zb field is \"%s\", expected \"%s\"", bam_aux2Z(p), NEW_HELLO2);

        if (sam_format1(header, aln, &ks) < 0)
            fail("can't format record");

        if (strcmp(ks.s, r1) != 0)
            fail("record formatted incorrectly: \"%s\"", ks.s);

        // Test field removal APIs -- after the strcmp(..., r1) check so that
        // can also check the formatting of the to-be-removed fields.

        p = bam_aux_remove(aln, check_bam_aux_get(aln, "XH", 'H'));
        if (bam_aux_get(aln, "XH"))
            fail("XH field was not removed");
        check_aux_count(aln, 31, "Record post-XH-removal");
        if (strncmp(bam_aux_tag(p), "XB", 2) != 0 || bam_aux_type(p) != 'B')
            fail("bam_aux_remove() missed XB field");
    }
    else fail("can't read record");

    if (sam_read1(in, header, aln) >= 0) {
        if (sam_format1(header, aln, &ks) < 0)
            fail("can't format record r2");

        if (aln->core.flag != 0x8D)
            fail("r2 flag value is 0x%X, expected 0x8D", aln->core.flag);

        if (strcmp(ks.s, r2) != 0)
            fail("record r2 formatted incorrectly: \"%s\"", ks.s);
    }
    else fail("can't read record r2");

    bam_destroy1(aln);
    bam_hdr_destroy(header);
    sam_close(in);
    free(ks.s);

    return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x240, %rsp            # imm = 0x240
leaq 0xe939e(%rip), %rdi     # 0xef130
leaq 0xf1cdf(%rip), %rsi     # 0xf7a78
callq 0x232d0
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x3c9b0
movq %rax, -0x10(%rbp)
callq 0x37e90
movq %rax, -0x18(%rbp)
leaq -0x38(%rbp), %rdi
xorl %esi, %esi
movl $0x18, %edx
callq 0x4240
leaq -0x60(%rbp), %rdi
xorl %esi, %esi
movl $0x28, %edx
callq 0x4240
movq $-0x80000000, -0x60(%rbp) # imm = 0x80000000
movq $-0x1, -0x58(%rbp)
movq $0x1, -0x48(%rbp)
movq $0x7fffffff, -0x40(%rbp) # imm = 0x7FFFFFFF
movq 0xed481(%rip), %rax     # 0xf3280
movq %rax, -0x80(%rbp)
movq 0xed47e(%rip), %rax     # 0xf3288
movq %rax, -0x78(%rbp)
movq 0xed47b(%rip), %rax     # 0xf3290
movq %rax, -0x70(%rbp)
movq 0xed478(%rip), %rax     # 0xf3298
movq %rax, -0x68(%rbp)
leaq -0xb0(%rbp), %rdi
xorl %esi, %esi
movl $0x28, %edx
callq 0x4240
movq $-0x8000, -0xb0(%rbp) # imm = 0x8000
movq $-0x1, -0xa8(%rbp)
movq $0x1, -0x98(%rbp)
movq $0x7fff, -0x90(%rbp) # imm = 0x7FFF
movq 0xed436(%rip), %rax     # 0xf32a0
movq %rax, -0xd0(%rbp)
movq 0xed430(%rip), %rax     # 0xf32a8
movq %rax, -0xc8(%rbp)
movq 0xed42a(%rip), %rax     # 0xf32b0
movq %rax, -0xc0(%rbp)
movq 0xed424(%rip), %rax     # 0xf32b8
movq %rax, -0xb8(%rbp)
leaq -0x100(%rbp), %rdi
xorl %esi, %esi
movl $0x28, %edx
callq 0x4240
movq $-0x80, -0x100(%rbp)
movq $-0x1, -0xf8(%rbp)
movq $0x1, -0xe8(%rbp)
movq $0x7f, -0xe0(%rbp)
movq 0xed3df(%rip), %rax     # 0xf32c0
movq %rax, -0x120(%rbp)
movq 0xed3d9(%rip), %rax     # 0xf32c8
movq %rax, -0x118(%rbp)
movq 0xed3d3(%rip), %rax     # 0xf32d0
movq %rax, -0x110(%rbp)
movq 0xed3cd(%rip), %rax     # 0xf32d8
movq %rax, -0x108(%rbp)
movq 0xe911f(%rip), %rax     # 0xef038
movq %rax, -0x128(%rbp)
movq 0xe9689(%rip), %rax     # 0xef5b0
movq %rax, -0x140(%rbp)
movq 0xe9683(%rip), %rax     # 0xef5b8
movq %rax, -0x138(%rbp)
movb 0xe967e(%rip), %al      # 0xef5c0
movb %al, -0x130(%rbp)
leaq -0x180(%rbp), %rdi
leaq 0xe967a(%rip), %rsi     # 0xef5d0
movl $0x38, %edx
callq 0x43a0
movq 0xe96a1(%rip), %rax     # 0xef608
movq %rax, -0x18a(%rbp)
movw 0xe969b(%rip), %ax      # 0xef610
movw %ax, -0x182(%rbp)
movq 0xed35d(%rip), %rax     # 0xf32e0
movq %rax, -0x1b0(%rbp)
movq 0xed357(%rip), %rax     # 0xf32e8
movq %rax, -0x1a8(%rbp)
movq 0xed351(%rip), %rax     # 0xf32f0
movq %rax, -0x1a0(%rbp)
movq 0xed34b(%rip), %rax     # 0xf32f8
movq %rax, -0x198(%rbp)
movw 0xe9657(%rip), %ax      # 0xef612
movw %ax, -0x1b2(%rbp)
movq 0xe9657(%rip), %rax     # 0xef620
movq %rax, -0x1d0(%rbp)
movq 0xe9651(%rip), %rax     # 0xef628
movq %rax, -0x1c8(%rbp)
movq 0xe964b(%rip), %rax     # 0xef630
movq %rax, -0x1c0(%rbp)
movq 0xed32d(%rip), %rax     # 0xf3320
movq %rax, -0x1d8(%rbp)
movl $0xfffffb2e, -0x1dc(%rbp) # imm = 0xFFFFFB2E
movl $0x4d2, -0x1e0(%rbp)    # imm = 0x4D2
movss 0xe8ff2(%rip), %xmm0    # 0xef008
movss %xmm0, -0x1e4(%rbp)
movss 0xe8fde(%rip), %xmm0    # 0xef004
movss %xmm0, -0x1e8(%rbp)
leaq 0xeaa05(%rip), %rax     # 0xf0a3a
movq %rax, -0x1f0(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x41af0
cmpl $0x0, %eax
jl 0x74af
movq -0x18(%rbp), %rdi
leaq 0xeaa28(%rip), %rsi     # 0xf0a89
movl $0x41, %edx
callq 0x5ac0
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x60a0
movq -0x20(%rbp), %rdi
callq 0x46cb0
movsbl %al, %eax
cmpl $0x6b, %eax
je 0x60a0
movq -0x20(%rbp), %rdi
callq 0x46cb0
movsbl %al, %esi
leaq 0xea9f3(%rip), %rdi     # 0xf0a8c
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
movl $0x18, %esi
leaq 0xea9fb(%rip), %rdx     # 0xf0aab
callq 0xccf0
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x45e10
movq -0x18(%rbp), %rdi
leaq 0xea9bc(%rip), %rsi     # 0xf0a89
callq 0x43840
cmpq $0x0, %rax
je 0x60e6
leaq 0xea9dc(%rip), %rdi     # 0xf0abb
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
movl $0x17, %esi
leaq 0xea9de(%rip), %rdx     # 0xf0ad4
callq 0xccf0
movq -0x18(%rbp), %rdi
leaq 0xea9e6(%rip), %rsi     # 0xf0aec
callq 0x43840
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x6149
movq -0x20(%rbp), %rdi
callq 0xcd60
movq %rax, %rdi
leaq 0xea9c3(%rip), %rsi     # 0xf0aec
movl $0x2, %edx
callq 0x41f0
cmpl $0x0, %eax
jne 0x6149
movq -0x20(%rbp), %rdi
callq 0xcd80
movsbl %al, %eax
cmpl $0x69, %eax
je 0x6157
leaq 0xea99f(%rip), %rdi     # 0xf0aef
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x45d30
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x61a2
movq -0x20(%rbp), %rdi
callq 0xcd60
movq %rax, %rdi
leaq 0xea98b(%rip), %rsi     # 0xf0b0d
movl $0x2, %edx
callq 0x41f0
cmpl $0x0, %eax
jne 0x61a2
movq -0x20(%rbp), %rdi
callq 0xcd80
movsbl %al, %eax
cmpl $0x63, %eax
je 0x61b0
leaq 0xea967(%rip), %rdi     # 0xf0b10
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea974(%rip), %rsi     # 0xf0b2f
callq 0x43840
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x61fe
movq -0x20(%rbp), %rdi
callq 0xcd60
movq %rax, %rdi
leaq 0xea951(%rip), %rsi     # 0xf0b2f
movl $0x2, %edx
callq 0x41f0
cmpl $0x0, %eax
jne 0x61fe
movq -0x20(%rbp), %rdi
callq 0xcd80
movsbl %al, %eax
cmpl $0x49, %eax
je 0x620c
leaq 0xea92d(%rip), %rdi     # 0xf0b32
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x45d30
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x622e
callq 0x4050
cmpl $0x2, (%rax)
je 0x623c
leaq 0xea91b(%rip), %rdi     # 0xf0b50
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea92f(%rip), %rsi     # 0xf0b76
movl $0x43, %edx
callq 0x5ac0
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x6284
movq -0x20(%rbp), %rdi
callq 0x46a90
cmpq $0x25, %rax
je 0x6284
movq -0x20(%rbp), %rdi
callq 0x46a90
movq %rax, %rsi
leaq 0xea8fc(%rip), %rdi     # 0xf0b79
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea907(%rip), %rsi     # 0xf0b96
movl $0x66, %edx
callq 0x5ac0
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x62e8
movq -0x20(%rbp), %rdi
callq 0x46bd0
movsd 0xe8d64(%rip), %xmm1    # 0xef018
subsd %xmm1, %xmm0
movaps 0xe8d91(%rip), %xmm1    # 0xef050
pand %xmm1, %xmm0
movsd 0xe8d45(%rip), %xmm1    # 0xef010
ucomisd %xmm1, %xmm0
jbe 0x62e8
movq -0x20(%rbp), %rdi
callq 0x46bd0
leaq 0xea8b8(%rip), %rdi     # 0xf0b99
movb $0x1, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea8c5(%rip), %rsi     # 0xf0bb8
movl $0x64, %edx
callq 0x5ac0
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x634c
movq -0x20(%rbp), %rdi
callq 0x46bd0
movsd 0xe8d08(%rip), %xmm1    # 0xef020
subsd %xmm1, %xmm0
movaps 0xe8d2d(%rip), %xmm1    # 0xef050
pand %xmm1, %xmm0
movsd 0xe8ce1(%rip), %xmm1    # 0xef010
ucomisd %xmm1, %xmm0
jbe 0x634c
movq -0x20(%rbp), %rdi
callq 0x46bd0
leaq 0xea876(%rip), %rdi     # 0xf0bbb
movb $0x1, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea882(%rip), %rsi     # 0xf0bd9
movl $0x5a, %edx
callq 0x5ac0
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x63a9
movq -0x20(%rbp), %rdi
callq 0x46d00
movq %rax, %rdi
leaq 0xea85e(%rip), %rsi     # 0xf0bdc
callq 0x4690
cmpl $0x0, %eax
je 0x63a9
movq -0x20(%rbp), %rdi
callq 0x46d00
movq %rax, %rsi
leaq 0xea84f(%rip), %rdi     # 0xf0bea
leaq 0xea83a(%rip), %rdx     # 0xf0bdc
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea825(%rip), %rsi     # 0xf0bd9
movl $0x9, %edx
leaq 0xea84a(%rip), %rcx     # 0xf0c0a
callq 0x45f60
movq -0x18(%rbp), %rdi
leaq 0xea809(%rip), %rsi     # 0xf0bd9
movl $0x5a, %edx
callq 0x5ac0
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x6422
movq -0x20(%rbp), %rdi
callq 0x46d00
movq %rax, %rdi
leaq 0xea813(%rip), %rsi     # 0xf0c0a
callq 0x4690
cmpl $0x0, %eax
je 0x6422
movq -0x20(%rbp), %rdi
callq 0x46d00
movq %rax, %rsi
leaq 0xea7d6(%rip), %rdi     # 0xf0bea
leaq 0xea7ef(%rip), %rdx     # 0xf0c0a
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea7e6(%rip), %rsi     # 0xf0c13
movl $0x48, %edx
callq 0x5ac0
cmpq $0x0, %rax
jne 0x644b
leaq 0xea7d2(%rip), %rdi     # 0xf0c16
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea783(%rip), %rsi     # 0xf0bd9
movl $0x16, %edx
leaq 0xea7f9(%rip), %rcx     # 0xf0c5b
callq 0x45f60
movq -0x18(%rbp), %rdi
leaq 0xea767(%rip), %rsi     # 0xf0bd9
movl $0x5a, %edx
callq 0x5ac0
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x64c4
movq -0x20(%rbp), %rdi
callq 0x46d00
movq %rax, %rdi
leaq 0xea7c2(%rip), %rsi     # 0xf0c5b
callq 0x4690
cmpl $0x0, %eax
je 0x64c4
movq -0x20(%rbp), %rdi
callq 0x46d00
movq %rax, %rsi
leaq 0xea734(%rip), %rdi     # 0xf0bea
leaq 0xea79e(%rip), %rdx     # 0xf0c5b
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea744(%rip), %rsi     # 0xf0c13
movl $0x48, %edx
callq 0x5ac0
cmpq $0x0, %rax
jne 0x64ed
leaq 0xea78c(%rip), %rdi     # 0xf0c72
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea6e1(%rip), %rsi     # 0xf0bd9
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
leaq 0xea706(%rip), %rcx     # 0xf0c0a
callq 0x45f60
movq -0x18(%rbp), %rdi
leaq 0xea6c5(%rip), %rsi     # 0xf0bd9
movl $0x5a, %edx
callq 0x5ac0
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x6566
movq -0x20(%rbp), %rdi
callq 0x46d00
movq %rax, %rdi
leaq 0xea6cf(%rip), %rsi     # 0xf0c0a
callq 0x4690
cmpl $0x0, %eax
je 0x6566
movq -0x20(%rbp), %rdi
callq 0x46d00
movq %rax, %rsi
leaq 0xea692(%rip), %rdi     # 0xf0bea
leaq 0xea6ab(%rip), %rdx     # 0xf0c0a
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea6a2(%rip), %rsi     # 0xf0c13
movl $0x48, %edx
callq 0x5ac0
cmpq $0x0, %rax
jne 0x658f
leaq 0xea72f(%rip), %rdi     # 0xf0cb7
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea679(%rip), %rsi     # 0xf0c13
movl $0x48, %edx
callq 0x5ac0
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x65ec
movq -0x20(%rbp), %rdi
callq 0x46d00
movq %rax, %rdi
leaq 0xea72a(%rip), %rsi     # 0xf0ceb
callq 0x4690
cmpl $0x0, %eax
je 0x65ec
movq -0x20(%rbp), %rdi
callq 0x46d00
movq %rax, %rsi
leaq 0xea716(%rip), %rdi     # 0xf0cf4
leaq 0xea706(%rip), %rdx     # 0xf0ceb
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xebe2d(%rip), %rsi     # 0xf2424
movl $0x42, %edx
callq 0x5ac0
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x6655
movq -0x20(%rbp), %rax
movw (%rax), %ax
subw $0x6342, %ax            # imm = 0x6342
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x663f
movq -0x20(%rbp), %rdi
addq $0x2, %rdi
leaq 0xe8a10(%rip), %rsi     # 0xef040
movl $0x7, %edx
callq 0x41b0
cmpl $0x0, %eax
je 0x6655
movq -0x20(%rbp), %rax
movzbl 0x1(%rax), %esi
leaq 0xea6c9(%rip), %rdi     # 0xf0d17
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq -0x60(%rbp), %rcx
leaq 0xea6da(%rip), %rsi     # 0xf0d3e
movl $0x5, %edx
callq 0xcd90
movq -0x18(%rbp), %rdi
leaq -0x80(%rbp), %rcx
leaq 0xea6c4(%rip), %rsi     # 0xf0d41
movl $0x4, %edx
callq 0xcd90
movq -0x18(%rbp), %rdi
leaq -0xb0(%rbp), %rcx
leaq 0xea6ab(%rip), %rsi     # 0xf0d44
movl $0x5, %edx
callq 0xcd90
movq -0x18(%rbp), %rdi
leaq -0xd0(%rbp), %rcx
leaq 0xea692(%rip), %rsi     # 0xf0d47
movl $0x4, %edx
callq 0xcd90
movq -0x18(%rbp), %rdi
leaq -0x100(%rbp), %rcx
leaq 0xea679(%rip), %rsi     # 0xf0d4a
movl $0x5, %edx
callq 0xcd90
movq -0x18(%rbp), %rdi
leaq -0x120(%rbp), %rcx
leaq 0xea660(%rip), %rsi     # 0xf0d4d
movl $0x4, %edx
callq 0xcd90
movq $0x2, -0x1f8(%rbp)
movq -0x18(%rbp), %rdi
leaq 0xea643(%rip), %rsi     # 0xf0d50
movl $0x42, %edx
callq 0x5ac0
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x680c
movq -0x20(%rbp), %rdi
callq 0x46d60
movl %eax, %eax
cmpq -0x1f8(%rbp), %rax
je 0x6759
movq -0x20(%rbp), %rdi
callq 0x46d60
movl %eax, %esi
movq -0x1f8(%rbp), %rdx
leaq 0xea601(%rip), %rdi     # 0xf0d53
movb $0x0, %al
callq 0x5b50
movq $0x0, -0x200(%rbp)
movq -0x200(%rbp), %rax
cmpq -0x1f8(%rbp), %rax
jae 0x680a
movq -0x20(%rbp), %rdi
movq -0x200(%rbp), %rax
movl %eax, %esi
callq 0x46e10
movq -0x200(%rbp), %rax
movss -0x128(%rbp,%rax,4), %xmm1
cvtss2sd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x67a8
jp 0x67a8
jmp 0x67f1
movq -0x200(%rbp), %rax
movq %rax, -0x208(%rbp)
movq -0x20(%rbp), %rdi
movq -0x200(%rbp), %rax
movl %eax, %esi
callq 0x46e10
movq -0x208(%rbp), %rsi
movq -0x200(%rbp), %rax
movss -0x128(%rbp,%rax,4), %xmm1
cvtss2sd %xmm1, %xmm1
leaq 0xea5a2(%rip), %rdi     # 0xf0d8c
movb $0x2, %al
callq 0x5b50
jmp 0x67f3
movq -0x200(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x200(%rbp)
jmp 0x6764
jmp 0x680c
movq -0x18(%rbp), %rdi
leaq 0xea5bc(%rip), %rsi     # 0xf0dd3
movl $0x49, %edx
callq 0x5ac0
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x6856
movq -0x20(%rbp), %rdi
callq 0x46a90
cmpq $0xf4240, %rax          # imm = 0xF4240
je 0x6856
movq -0x20(%rbp), %rdi
callq 0x46a90
movq %rax, %rsi
leaq 0xea587(%rip), %rdi     # 0xf0dd6
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea597(%rip), %rsi     # 0xf0df8
callq 0x43840
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x689b
movq -0x20(%rbp), %rdi
callq 0x46a90
cmpq $-0x80000000, %rax      # imm = 0x80000000
je 0x689b
movq -0x20(%rbp), %rdi
callq 0x46a90
movq %rax, %rsi
leaq 0xea567(%rip), %rdi     # 0xf0dfb
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea246(%rip), %rsi     # 0xf0aec
callq 0x43840
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x68e0
movq -0x20(%rbp), %rdi
callq 0x46a90
cmpq $-0x7fffffff, %rax      # imm = 0x80000001
je 0x68e0
movq -0x20(%rbp), %rdi
callq 0x46a90
movq %rax, %rsi
leaq 0xea542(%rip), %rdi     # 0xf0e1b
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea222(%rip), %rsi     # 0xf0b0d
callq 0x43840
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x6923
movq -0x20(%rbp), %rdi
callq 0x46a90
cmpq $-0x1, %rax
je 0x6923
movq -0x20(%rbp), %rdi
callq 0x46a90
movq %rax, %rsi
leaq 0xea521(%rip), %rdi     # 0xf0e3d
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea52c(%rip), %rsi     # 0xf0e5a
callq 0x43840
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x6966
movq -0x20(%rbp), %rdi
callq 0x46a90
cmpq $0x0, %rax
je 0x6966
movq -0x20(%rbp), %rdi
callq 0x46a90
movq %rax, %rsi
leaq 0xea4fe(%rip), %rdi     # 0xf0e5d
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea508(%rip), %rsi     # 0xf0e79
callq 0x43840
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x69a9
movq -0x20(%rbp), %rdi
callq 0x46a90
cmpq $0x1, %rax
je 0x69a9
movq -0x20(%rbp), %rdi
callq 0x46a90
movq %rax, %rsi
leaq 0xea4da(%rip), %rdi     # 0xf0e7c
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea4e4(%rip), %rsi     # 0xf0e98
callq 0x43840
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x69ee
movq -0x20(%rbp), %rdi
callq 0x46a90
cmpq $0x7fffffff, %rax       # imm = 0x7FFFFFFF
je 0x69ee
movq -0x20(%rbp), %rdi
callq 0x46a90
movq %rax, %rsi
leaq 0xea4b4(%rip), %rdi     # 0xf0e9b
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea4c3(%rip), %rsi     # 0xf0ebc
callq 0x43840
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x6a35
movq -0x20(%rbp), %rdi
callq 0x46a90
movl $0x80000000, %ecx       # imm = 0x80000000
cmpq %rcx, %rax
je 0x6a35
movq -0x20(%rbp), %rdi
callq 0x46a90
movq %rax, %rsi
leaq 0xea491(%rip), %rdi     # 0xf0ebf
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea0ef(%rip), %rsi     # 0xf0b2f
callq 0x43840
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x6a7c
movq -0x20(%rbp), %rdi
callq 0x46a90
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
cmpq %rcx, %rax
je 0x6a7c
movq -0x20(%rbp), %rdi
callq 0x46a90
movq %rax, %rsi
leaq 0xea469(%rip), %rdi     # 0xf0ede
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea478(%rip), %rsi     # 0xf0eff
movl $0x69, %edx
movl $0x4, %ecx
leaq -0x1dc(%rbp), %r8
callq 0x45b40
cmpl $0x0, %eax
je 0x6ab0
leaq 0xea459(%rip), %rdi     # 0xf0f02
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea444(%rip), %rsi     # 0xf0eff
callq 0x43840
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x6aff
movq -0x20(%rbp), %rdi
callq 0x46a90
movslq -0x1dc(%rbp), %rcx
cmpq %rcx, %rax
je 0x6aff
movq -0x20(%rbp), %rdi
callq 0x46a90
movq %rax, %rsi
movl -0x1dc(%rbp), %edx
leaq 0xea424(%rip), %rdi     # 0xf0f1c
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea42f(%rip), %rsi     # 0xf0f39
movl $0x49, %edx
movl $0x4, %ecx
leaq -0x1e0(%rbp), %r8
callq 0x45b40
cmpl $0x0, %eax
je 0x6b33
leaq 0xea410(%rip), %rdi     # 0xf0f3c
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea3fb(%rip), %rsi     # 0xf0f39
callq 0x43840
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x6b81
movq -0x20(%rbp), %rdi
callq 0x46a90
movl -0x1e0(%rbp), %ecx
cmpq %rcx, %rax
je 0x6b81
movq -0x20(%rbp), %rdi
callq 0x46a90
movq %rax, %rsi
movl -0x1e0(%rbp), %edx
leaq 0xea3dc(%rip), %rdi     # 0xf0f56
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea3e7(%rip), %rsi     # 0xf0f73
movq $-0x2, %rdx
callq 0x46260
cmpl $0x0, %eax
jge 0x6bab
leaq 0xea3d2(%rip), %rdi     # 0xf0f76
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea3da(%rip), %rsi     # 0xf0f90
movl $0x3, %edx
callq 0x46260
cmpl $0x0, %eax
jge 0x6bd3
leaq 0xea3c7(%rip), %rdi     # 0xf0f93
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea395(%rip), %rsi     # 0xf0f73
callq 0x43840
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x6bfe
leaq 0xea3b8(%rip), %rdi     # 0xf0fad
movb $0x0, %al
callq 0x5b50
jmp 0x6c48
movq -0x20(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x63, %eax
jne 0x6c19
movq -0x20(%rbp), %rdi
callq 0x46a90
cmpq $-0x2, %rax
je 0x6c46
movq -0x20(%rbp), %rax
movzbl (%rax), %eax
movl %eax, -0x20c(%rbp)
movq -0x20(%rbp), %rdi
callq 0x46a90
movl -0x20c(%rbp), %esi
movq %rax, %rdx
leaq 0xea388(%rip), %rdi     # 0xf0fc7
movb $0x0, %al
callq 0x5b50
jmp 0x6c48
movq -0x18(%rbp), %rdi
leaq 0xea33d(%rip), %rsi     # 0xf0f90
callq 0x43840
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x6c73
leaq 0xea37f(%rip), %rdi     # 0xf0fe9
movb $0x0, %al
callq 0x5b50
jmp 0x6cbd
movq -0x20(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x43, %eax
jne 0x6c8e
movq -0x20(%rbp), %rdi
callq 0x46a90
cmpq $0x3, %rax
je 0x6cbb
movq -0x20(%rbp), %rax
movzbl (%rax), %eax
movl %eax, -0x210(%rbp)
movq -0x20(%rbp), %rdi
callq 0x46a90
movl -0x210(%rbp), %esi
movq %rax, %rdx
leaq 0xea34f(%rip), %rdi     # 0xf1003
movb $0x0, %al
callq 0x5b50
jmp 0x6cbd
movq -0x18(%rbp), %rdi
leaq 0xea2ab(%rip), %rsi     # 0xf0f73
movl $0x2, %edx
movl $0x43, %ecx
leaq 0xea2b7(%rip), %r8      # 0xf0f90
movl $0x3, %r9d
movl $0x43, (%rsp)
callq 0xcee0
cltq
movq %rax, -0x200(%rbp)
cmpq $0x0, -0x200(%rbp)
jne 0x6d2c
movq -0x18(%rbp), %rdi
leaq 0xea26a(%rip), %rsi     # 0xf0f73
movl $0x4d2, %edx            # imm = 0x4D2
movl $0x53, %ecx
leaq 0xea276(%rip), %r8      # 0xf0f90
movl $0x3, %r9d
movl $0x43, (%rsp)
callq 0xcee0
cmpq $0x0, -0x200(%rbp)
jne 0x6d66
movq -0x18(%rbp), %rdi
leaq 0xea232(%rip), %rsi     # 0xf0f73
movq $-0x1, %rdx
movl $0x73, %ecx
leaq 0xea23c(%rip), %r8      # 0xf0f90
movl $0x3, %r9d
movl $0x43, (%rsp)
callq 0xcee0
cmpq $0x0, -0x200(%rbp)
jne 0x6d9e
movq -0x18(%rbp), %rdi
leaq 0xea1f8(%rip), %rsi     # 0xf0f73
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl $0x49, %ecx
leaq 0xea204(%rip), %r8      # 0xf0f90
movl $0x3, %r9d
movl $0x43, (%rsp)
callq 0xcee0
cmpq $0x0, -0x200(%rbp)
jne 0x6dd8
movq -0x18(%rbp), %rdi
leaq 0xea1c0(%rip), %rsi     # 0xf0f73
movq $-0x2, %rdx
movl $0x69, %ecx
leaq 0xea1ca(%rip), %r8      # 0xf0f90
movl $0x3, %r9d
movl $0x43, (%rsp)
callq 0xcee0
movq -0x18(%rbp), %rdi
movss -0x1e4(%rbp), %xmm0
leaq 0xea239(%rip), %rsi     # 0xf1024
callq 0x46570
cmpl $0x0, %eax
jge 0x6e03
leaq 0xea22b(%rip), %rdi     # 0xf1027
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea216(%rip), %rsi     # 0xf1024
callq 0x43840
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x6e2e
leaq 0xea212(%rip), %rdi     # 0xf1037
movb $0x0, %al
callq 0x5b50
jmp 0x6e91
movq -0x20(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x66, %eax
jne 0x6e59
movq -0x20(%rbp), %rdi
callq 0x46bd0
movss -0x1e4(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x6e59
jp 0x6e59
jmp 0x6e8f
movq -0x20(%rbp), %rax
movzbl (%rax), %eax
movl %eax, -0x214(%rbp)
movq -0x20(%rbp), %rdi
callq 0x46bd0
movl -0x214(%rbp), %esi
movss -0x1e4(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
leaq 0xea1bf(%rip), %rdi     # 0xf1047
movb $0x2, %al
callq 0x5b50
jmp 0x6e91
movq -0x18(%rbp), %rdi
movss -0x1e8(%rbp), %xmm0
leaq 0xea1c4(%rip), %rsi     # 0xf1068
callq 0x46570
cmpl $0x0, %eax
jge 0x6ebc
leaq 0xea1b6(%rip), %rdi     # 0xf106b
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xea1a1(%rip), %rsi     # 0xf1068
callq 0x43840
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x6ee7
leaq 0xea19b(%rip), %rdi     # 0xf1079
movb $0x0, %al
callq 0x5b50
jmp 0x6f4a
movq -0x20(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x66, %eax
jne 0x6f12
movq -0x20(%rbp), %rdi
callq 0x46bd0
movss -0x1e8(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x6f12
jp 0x6f12
jmp 0x6f48
movq -0x20(%rbp), %rax
movzbl (%rax), %eax
movl %eax, -0x218(%rbp)
movq -0x20(%rbp), %rdi
callq 0x46bd0
movl -0x218(%rbp), %esi
movss -0x1e8(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
leaq 0xea148(%rip), %rdi     # 0xf1089
movb $0x2, %al
callq 0x5b50
jmp 0x6f4a
movq -0x18(%rbp), %rdi
leaq 0xe9ea3(%rip), %rsi     # 0xf0df8
callq 0x43840
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x6f75
leaq 0xea13e(%rip), %rdi     # 0xf10aa
movb $0x0, %al
callq 0x5b50
jmp 0x6fae
movq -0x20(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x69, %eax
je 0x6fac
movq -0x20(%rbp), %rdi
callq 0x46a90
cmpq $-0x80000000, %rax      # imm = 0x80000000
je 0x6fac
movq -0x20(%rbp), %rdi
callq 0x46a90
movq %rax, %rsi
leaq 0xe9e56(%rip), %rdi     # 0xf0dfb
movb $0x0, %al
callq 0x5b50
jmp 0x6fae
movq -0x18(%rbp), %rdi
leaq -0x140(%rbp), %r8
leaq 0xea0fa(%rip), %rsi     # 0xf10ba
movl $0x63, %edx
movl $0x11, %ecx
leaq 0xe8667(%rip), %r9      # 0xef638
xorl %eax, %eax
xorl %eax, %eax
movq $0x0, (%rsp)
movl $0x0, 0x8(%rsp)
callq 0xd0c0
cltq
movq %rax, -0x200(%rbp)
cmpq $0x0, -0x200(%rbp)
jne 0x7035
movq -0x18(%rbp), %rdi
leaq 0xea0b5(%rip), %rsi     # 0xf10bd
movl $0x1092, %edx           # imm = 0x1092
movl $0x53, %ecx
leaq 0xe861f(%rip), %r8      # 0xef638
xorl %eax, %eax
movl %eax, %r9d
xorl %eax, %eax
movl $0x0, (%rsp)
callq 0xcee0
cltq
movq %rax, -0x200(%rbp)
cmpq $0x0, -0x200(%rbp)
jne 0x7080
movq -0x18(%rbp), %rdi
leaq -0x180(%rbp), %r8
leaq 0xea069(%rip), %rsi     # 0xf10ba
movl $0x49, %edx
movl $0xe, %ecx
leaq 0xea05b(%rip), %r9      # 0xf10bd
movq $0x1092, (%rsp)         # imm = 0x1092
movl $0x53, 0x8(%rsp)
callq 0xd0c0
cltq
movq %rax, -0x200(%rbp)
cmpq $0x0, -0x200(%rbp)
jne 0x70cb
movq -0x18(%rbp), %rdi
leaq -0x18a(%rbp), %r8
leaq 0xea01e(%rip), %rsi     # 0xf10ba
movl $0x73, %edx
movl $0x5, %ecx
leaq 0xea010(%rip), %r9      # 0xf10bd
movq $0x1092, (%rsp)         # imm = 0x1092
movl $0x53, 0x8(%rsp)
callq 0xd0c0
cltq
movq %rax, -0x200(%rbp)
cmpq $0x0, -0x200(%rbp)
jne 0x7116
movq -0x18(%rbp), %rdi
leaq -0x1b0(%rbp), %r8
leaq 0xe9fd3(%rip), %rsi     # 0xf10ba
movl $0x66, %edx
movl $0x8, %ecx
leaq 0xe9fc5(%rip), %r9      # 0xf10bd
movq $0x1092, (%rsp)         # imm = 0x1092
movl $0x53, 0x8(%rsp)
callq 0xd0c0
cltq
movq %rax, -0x200(%rbp)
cmpq $0x0, -0x200(%rbp)
jne 0x7161
movq -0x18(%rbp), %rdi
leaq -0x1b2(%rbp), %r8
leaq 0xe9f88(%rip), %rsi     # 0xf10ba
movl $0x63, %edx
movl $0x2, %ecx
leaq 0xe9f7a(%rip), %r9      # 0xf10bd
movq $0x1092, (%rsp)         # imm = 0x1092
movl $0x53, 0x8(%rsp)
callq 0xd0c0
cltq
movq %rax, -0x200(%rbp)
cmpq $0x0, -0x200(%rbp)
jne 0x71ac
movq -0x18(%rbp), %rdi
leaq -0x1d0(%rbp), %r8
leaq 0xe9f3d(%rip), %rsi     # 0xf10ba
movl $0x69, %edx
movl $0x6, %ecx
leaq 0xe9f2f(%rip), %r9      # 0xf10bd
movq $0x1092, (%rsp)         # imm = 0x1092
movl $0x53, 0x8(%rsp)
callq 0xd0c0
cltq
movq %rax, -0x200(%rbp)
cmpq $0x0, -0x200(%rbp)
jne 0x71f7
movq -0x18(%rbp), %rdi
leaq -0x1d8(%rbp), %r8
leaq 0xe9ef2(%rip), %rsi     # 0xf10ba
movl $0x53, %edx
movl $0x4, %ecx
leaq 0xe9ee4(%rip), %r9      # 0xf10bd
movq $0x1092, (%rsp)         # imm = 0x1092
movl $0x53, 0x8(%rsp)
callq 0xd0c0
cltq
movq %rax, -0x200(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x220(%rbp)
movq -0x1f0(%rbp), %rdi
callq 0x41a0
movq -0x220(%rbp), %rdi
addq $0x1, %rax
movl %eax, %edx
movq -0x1f0(%rbp), %rcx
leaq 0xeb003(%rip), %rsi     # 0xf222c
callq 0x45f60
movq -0x18(%rbp), %rdi
leaq 0xeaff3(%rip), %rsi     # 0xf222c
movl $0x5a, %edx
callq 0x5ac0
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x728b
movq -0x20(%rbp), %rdi
callq 0x46d00
movq %rax, %rdi
movq -0x1f0(%rbp), %rsi
callq 0x4690
cmpl $0x0, %eax
je 0x728b
movq -0x20(%rbp), %rdi
callq 0x46d00
movq %rax, %rsi
movq -0x1f0(%rbp), %rdx
leaq 0xe9e3c(%rip), %rdi     # 0xf10c0
movb $0x0, %al
callq 0x5b50
cmpq $0x0, -0x20(%rbp)
je 0x729f
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x45e10
movq -0x18(%rbp), %rdi
leaq 0xeaf82(%rip), %rsi     # 0xf222c
callq 0x43840
cmpq $0x0, %rax
je 0x72c3
leaq 0xe9e24(%rip), %rdi     # 0xf10e0
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xe9e34(%rip), %rsi     # 0xf1102
movl $0xd, %edx
leaq 0xe9902(%rip), %rcx     # 0xf0bdc
callq 0x45f60
movq -0x18(%rbp), %rdi
leaq 0xe9e18(%rip), %rsi     # 0xf1102
movl $0x5a, %edx
callq 0x5ac0
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x733c
movq -0x20(%rbp), %rdi
callq 0x46d00
movq %rax, %rdi
leaq 0xe98cb(%rip), %rsi     # 0xf0bdc
callq 0x4690
cmpl $0x0, %eax
je 0x733c
movq -0x20(%rbp), %rdi
callq 0x46d00
movq %rax, %rsi
leaq 0xe9dd7(%rip), %rdi     # 0xf1105
leaq 0xe98a7(%rip), %rdx     # 0xf0bdc
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
leaq 0xe9dde(%rip), %rsi     # 0xf1125
movl $0x17, %edx
leaq 0xe9908(%rip), %rcx     # 0xf0c5b
callq 0x45f60
movq -0x18(%rbp), %rdi
leaq 0xe9dc2(%rip), %rsi     # 0xf1125
movl $0x5a, %edx
callq 0x5ac0
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x73b5
movq -0x20(%rbp), %rdi
callq 0x46d00
movq %rax, %rdi
leaq 0xe98d1(%rip), %rsi     # 0xf0c5b
callq 0x4690
cmpl $0x0, %eax
je 0x73b5
movq -0x20(%rbp), %rdi
callq 0x46d00
movq %rax, %rsi
leaq 0xe9d81(%rip), %rdi     # 0xf1128
leaq 0xe98ad(%rip), %rdx     # 0xf0c5b
movb $0x0, %al
callq 0x5b50
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq -0x38(%rbp), %rdx
callq 0x42a40
cmpl $0x0, %eax
jge 0x73d9
leaq 0xe9d76(%rip), %rdi     # 0xf1148
movb $0x0, %al
callq 0x5b50
movq -0x28(%rbp), %rdi
leaq 0xe7f6c(%rip), %rsi     # 0xef350
callq 0x4690
cmpl $0x0, %eax
je 0x7400
movq -0x28(%rbp), %rsi
leaq 0xe9d63(%rip), %rdi     # 0xf115c
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rax
movq %rax, -0x228(%rbp)
movq -0x18(%rbp), %rdi
leaq 0xe97fd(%rip), %rsi     # 0xf0c13
movl $0x48, %edx
callq 0x5ac0
movq -0x228(%rbp), %rdi
movq %rax, %rsi
callq 0x45e70
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
leaq 0xe97d5(%rip), %rsi     # 0xf0c13
callq 0x43840
cmpq $0x0, %rax
je 0x7457
leaq 0xe9d2f(%rip), %rdi     # 0xf117f
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
movl $0x1f, %esi
leaq 0xe9d31(%rip), %rdx     # 0xf1198
callq 0xccf0
movq -0x20(%rbp), %rdi
callq 0xcd60
movq %rax, %rdi
leaq 0xeafa5(%rip), %rsi     # 0xf2424
movl $0x2, %edx
callq 0x41f0
cmpl $0x0, %eax
jne 0x749f
movq -0x20(%rbp), %rdi
callq 0xcd80
movsbl %al, %eax
cmpl $0x42, %eax
je 0x74ad
leaq 0xe9d09(%rip), %rdi     # 0xf11af
movb $0x0, %al
callq 0x5b50
jmp 0x74bd
leaq 0xe9d1a(%rip), %rdi     # 0xf11d0
movb $0x0, %al
callq 0x5b50
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x41af0
cmpl $0x0, %eax
jl 0x7545
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq -0x38(%rbp), %rdx
callq 0x42a40
cmpl $0x0, %eax
jge 0x74f7
leaq 0xe9cf2(%rip), %rdi     # 0xf11e2
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rax
movzwl 0x10(%rax), %eax
cmpl $0x8d, %eax
je 0x751c
movq -0x18(%rbp), %rax
movzwl 0x10(%rax), %esi
leaq 0xe9ce4(%rip), %rdi     # 0xf11f9
movb $0x0, %al
callq 0x5b50
movq -0x28(%rbp), %rdi
leaq 0xe8069(%rip), %rsi     # 0xef590
callq 0x4690
cmpl $0x0, %eax
je 0x7543
movq -0x28(%rbp), %rsi
leaq 0xe9ce2(%rip), %rdi     # 0xf121e
movb $0x0, %al
callq 0x5b50
jmp 0x7553
leaq 0xe9cf8(%rip), %rdi     # 0xf1244
movb $0x0, %al
callq 0x5b50
movq -0x18(%rbp), %rdi
callq 0x380d0
movq -0x10(%rbp), %rdi
callq 0xd7a0
movq -0x8(%rbp), %rdi
callq 0x253f0
movq -0x28(%rbp), %rdi
callq 0x45a0
movl $0x1, %eax
addq $0x240, %rsp            # imm = 0x240
popq %rbp
retq
nopw %cs:(%rax,%rax)