// File: /workspace/github_c_makefile_star2_O2/c-zhou[P]yahs/sdict.c
// Function: make_asm_dict_from_agp
asm_dict_t *make_asm_dict_from_agp(sdict_t *sdict, const char *f, int allow_unknown_oris)
{
    iostream_t *fp;
    char *line;
    char sname[256], type[4], cname[256], cstarts[16], cends[16], oris[64];
    char *name = NULL;
    uint64_t a, b;
    uint32_t l, cstart, cend, ctype, coris;
    uint32_t c, s, n;
    kvec_t(uint32_t) gs, gsize, gcomp, gtype, glink, gevid;

    fp = iostream_open(f);
    if (fp == NULL) {
        fprintf(stderr, "[E::%s] cannot open file %s for reading\n", __func__, f);
        exit(EXIT_FAILURE);
    }

    asm_dict_t *d;
    sd_seq_t *sd;
    d = asm_init(sdict);
    a = b = 0;
    s = n = 0;
    kv_init(gs);
    kv_init(gsize);
    kv_init(gcomp);
    kv_init(gtype);
    kv_init(glink);
    kv_init(gevid);
    while ((line = iostream_getline(fp)) != NULL) {
        if (is_empty_line(line) || !strncmp(line, "#", 1))
            // header or empty lines
            continue;
        
        sscanf(line, "%s %*s %*s %*s %s %s %s %s %s", sname, type, cname, cstarts, cends, oris);
        if (!name)
            name = strdup(sname);
        if (strcmp(sname, name)) {
            asm_put(d, name, a, b - a, n, s - n, gs.n, gs.a, gsize.a, gcomp.a, gtype.a, glink.a, gevid.a);
            a = 0;
            b = 0;
            n = 0;
            gs.n = 0;
            gsize.n = 0;
            gcomp.n = 0;
            gtype.n = 0;
            glink.n = 0;
            gevid.n = 0;
            free(name);
            name = strdup(sname);
        }

        ctype = agp_component_type_key(type);
        if (ctype == AGP_CT_N || ctype == AGP_CT_U) {
            // gap
            kv_push(uint32_t, gs, n);
            kv_push(uint32_t, gcomp, ctype);
            c = strtoul(cname, NULL, 10); kv_push(uint32_t, gsize, c);
            if (ctype == AGP_CT_U && c != DEFAULT_AGP_U_GAP_SIZE)
                fprintf(stderr, "[W::%s] type 'U' gap size is not %d\n", __func__, DEFAULT_AGP_U_GAP_SIZE);
            b += c;
            c = agp_gap_type_key(cstarts); kv_push(uint32_t, gtype, c);
            c = agp_linkage_key(cends); kv_push(uint32_t, glink, c);
            c = agp_linkage_evidence_key(oris); kv_push(uint32_t, gevid, c);
            continue;
        }

        cstart = strtoul(cstarts, NULL, 10);
        cend = strtoul(cends, NULL, 10);
        c = sd_get(sdict, cname);
        if (c == UINT32_MAX) {
            fprintf(stderr, "[E::%s] sequence %s not found\n", __func__, cname);
            return 0;
        }
        sd = &sdict->s[c];
        if (cstart < 1 || cstart > cend || cend > sd->len) {
            fprintf(stderr, "[E::%s] invalid sequence component %s:%u-%u on %s\n", __func__, cname, cstart, cend, sname);
            if (cend > sd->len)
                fprintf(stderr, "[E::%s] sequence end position (%u) greater than sequence length (%u)\n", __func__, cend, sd->len);
            exit(EXIT_FAILURE);
        }
        coris = agp_orientation_key(oris);
        if (!allow_unknown_oris && coris != AGP_OT_PLUS && coris != AGP_OT_MINUS) {
            // unknown orientation is not allowed
            fprintf(stderr, "[E::%s] unknown orientation of sequence component %s:%u-%u on %s: '%s'\n", __func__, cname, cstart, cend, sname, oris);
            if (allow_unknown_oris) {
                fprintf(stderr, "[E::%s] valid identifiers for unorientated sequence include: '?', '0' and 'na'\n", __func__);
                fprintf(stderr, "[E::%s] see %s\n", __func__, AGP_SPEC_ONLINE_DOC);
            } else {
                fprintf(stderr, "[E::%s] run program with '-u' option to include sequence components\n", __func__);
            }
            exit(EXIT_FAILURE);
        }
        c <<= 1;
        if (coris == AGP_OT_MINUS) c |= 1;
        l = cend - cstart + 1;
        seg_put(d, d->n, n, a, b, c, cstart - 1, l, ctype, coris);
        a += l;
        b += l;
        ++s;
        ++n;
    }
    asm_put(d, name, a, b - a, n, s - n, gs.n, gs.a, gsize.a, gcomp.a, gtype.a, glink.a, gevid.a);
    d->sdict = sdict;
#ifdef DEBUG_DICT
    for (int i = 0; i < s; ++i)
        fprintf(stderr, "[DEBUG_DICT::%s] %u %lu %u %u %u\n", __func__, d->seg[i].s, d->seg[i].a, d->seg[i].c, d->seg[i].x, d->seg[i].y);
    for (int i = 0; i < d->n; ++i)
        fprintf(stderr, "[DEBUG_DICT::%s] %s %lu %u %u\n", __func__, d->s[i].name, d->s[i].len, d->s[i].n, d->s[i].s);
#endif
    asm_index(d);

    if (name)
        free(name);
    iostream_close(fp);
    kv_destroy(gs);
    kv_destroy(gsize);
    kv_destroy(gcomp);
    kv_destroy(gtype);
    kv_destroy(glink);
    kv_destroy(gevid);

    return d;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x368, %rsp            # imm = 0x368
movl %edx, 0xac(%rsp)
movq %rsi, %rbx
movq %rdi, %r15
movq %rsi, %rdi
callq 0x28ae
testq %rax, %rax
je 0x59de
movq %rax, %r14
movq %r15, 0x98(%rsp)
movq %r15, %rdi
callq 0x3ca3
movq %rax, 0xa0(%rsp)
movl $0x0, %r15d
movl $0x0, %ebx
movl $0x0, 0x14(%rsp)
movl $0x0, %r12d
movl $0x0, %ecx
movl $0x0, %eax
movq %rax, 0xf8(%rsp)
movl $0x0, %ebp
movl $0x0, %eax
movq %rax, 0x48(%rsp)
movl $0x0, %eax
movq %rax, 0xf0(%rsp)
movl $0x0, %eax
movq %rax, 0x18(%rsp)
movl $0x0, %eax
movq %rax, 0x40(%rsp)
movl $0x0, %eax
movq %rax, 0x90(%rsp)
movq $0x0, 0x78(%rsp)
movq $0x0, 0x80(%rsp)
movq $0x0, 0x100(%rsp)
movq $0x0, 0x70(%rsp)
movq $0x0, 0x50(%rsp)
movq $0x0, 0xe8(%rsp)
movq $0x0, 0x68(%rsp)
xorl %eax, %eax
movq $0x0, 0xe0(%rsp)
movq $0x0, 0x60(%rsp)
xorl %edx, %edx
movq %rdx, 0x38(%rsp)
movq %rcx, 0x20(%rsp)
movq %rax, 0x8(%rsp)
movq %r14, %rdi
callq 0x29dc
testq %rax, %rax
je 0x5866
movq %rax, %r13
movq %rax, %rdi
callq 0x288b
testl %eax, %eax
jne 0x5022
cmpb $0x23, (%r13)
je 0x5022
movq %rbp, 0x30(%rsp)
movq %r13, %rdi
leaq 0x43ab(%rip), %rsi      # 0x9403
leaq 0x260(%rsp), %r13
movq %r13, %rdx
leaq 0x4(%rsp), %rcx
leaq 0x160(%rsp), %r8
leaq 0xc0(%rsp), %r9
xorl %eax, %eax
leaq 0x120(%rsp), %r10
pushq %r10
leaq 0xb8(%rsp), %r10
pushq %r10
callq 0x2260
popq %rcx
popq %rdx
movq 0x38(%rsp), %rbp
testq %rbp, %rbp
jne 0x50aa
movq %r13, %rdi
callq 0x23b0
movq %rax, %rbp
movq %r13, %rdi
movq %rbp, %rsi
callq 0x21e0
testl %eax, %eax
je 0x5156
subq %rbx, %r15
movl 0x14(%rsp), %r9d
subl %r12d, %r9d
subq $0x8, %rsp
movq 0xa8(%rsp), %rdi
movq %rbp, %rsi
movq %rbx, %rdx
movq %r15, %rcx
movl %r12d, %r8d
pushq 0x10(%rsp)
pushq 0x60(%rsp)
pushq 0x98(%rsp)
pushq 0x60(%rsp)
pushq 0x70(%rsp)
pushq 0x50(%rsp)
pushq 0x68(%rsp)
callq 0x4813
addq $0x40, %rsp
movq %rbp, %rdi
callq 0x2050
movq %r13, %rdi
callq 0x23b0
movq %rax, 0x38(%rsp)
xorl %r15d, %r15d
xorl %ebx, %ebx
xorl %r12d, %r12d
xorl %ebp, %ebp
movq $0x0, 0x18(%rsp)
movq $0x0, 0x78(%rsp)
movq $0x0, 0x70(%rsp)
movq $0x0, 0x68(%rsp)
movq $0x0, 0x60(%rsp)
jmp 0x5160
movq %rbp, 0x38(%rsp)
movq 0x30(%rsp), %rbp
leaq 0x4(%rsp), %rdi
callq 0x7bf3
movl %eax, %r13d
leal -0x2b609(%r13), %eax
cmpl $0x13, %eax
leaq 0x4709(%rip), %rsi      # 0x9887
ja 0x5199
leaq 0x40d5(%rip), %rcx      # 0x925c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x46e6(%rip), %rsi      # 0x987d
jmp 0x51e2
leaq 0x46db(%rip), %rsi      # 0x987b
cmpl $0x2b606, %r13d         # imm = 0x2B606
je 0x51e2
jmp 0x5a6d
leaq 0x46d0(%rip), %rsi      # 0x9885
jmp 0x51e2
leaq 0x446f(%rip), %rsi      # 0x962d
jmp 0x51e2
leaq 0x46ba(%rip), %rsi      # 0x9881
jmp 0x51e2
leaq 0x46b3(%rip), %rsi      # 0x9883
jmp 0x51e2
leaq 0x4452(%rip), %rsi      # 0x962b
jmp 0x51e2
leaq 0x469d(%rip), %rsi      # 0x987f
leaq 0x4(%rsp), %rdi
callq 0x7c1d
testl %eax, %eax
jne 0x5a02
cmpl $0x2b61a, %r13d         # imm = 0x2B61A
movq 0xf8(%rsp), %rax
je 0x5212
cmpl $0x2b613, %r13d         # imm = 0x2B613
jne 0x56a7
cmpq %rax, %rbp
movq %rbx, 0xd8(%rsp)
jne 0x5254
movl %r12d, %ebx
leaq (%rax,%rax), %r12
testq %rax, %rax
pushq $0x2
popq %rax
cmoveq %rax, %r12
leaq (,%r12,4), %rsi
movq 0x20(%rsp), %rdi
callq 0x2290
movq %r12, 0xf8(%rsp)
movl %ebx, %r12d
movq 0x40(%rsp), %rdi
jmp 0x525e
movq 0x40(%rsp), %rdi
movq 0x20(%rsp), %rax
movq 0x90(%rsp), %rcx
movl %r12d, (%rax,%rbp,4)
cmpq %rcx, 0x78(%rsp)
movq 0x100(%rsp), %rbx
movq %rax, 0x20(%rsp)
movl %r12d, 0x5c(%rsp)
jne 0x52a9
leaq (%rcx,%rcx), %r12
testq %rcx, %rcx
pushq $0x2
popq %rax
cmoveq %rax, %r12
leaq (,%r12,4), %rsi
callq 0x2290
movq %rax, %rdi
movq %r12, 0x90(%rsp)
movq %rdi, 0x40(%rsp)
movq 0x78(%rsp), %rax
movl %r13d, (%rdi,%rax,4)
leaq 0x160(%rsp), %rdi
xorl %esi, %esi
pushq $0xa
popq %rdx
callq 0x2320
movq %rax, %r12
movq 0xf0(%rsp), %rax
cmpq %rax, 0x18(%rsp)
movq %r15, 0x30(%rsp)
jne 0x5327
movq %r13, %r15
movq %rbp, %r13
movq %rbx, %rbp
movq %r12, %rbx
leaq (%rax,%rax), %r12
testq %rax, %rax
pushq $0x2
popq %rax
cmoveq %rax, %r12
leaq (,%r12,4), %rsi
movq 0x48(%rsp), %rdi
callq 0x2290
movq %r12, 0xf0(%rsp)
movq %rbx, %r12
movq %rbp, %rbx
movq %r13, %rbp
movq %r15, %r13
movq 0x30(%rsp), %r15
jmp 0x532c
movq 0x48(%rsp), %rax
cmpl $0x2b61a, %r13d         # imm = 0x2B61A
sete %dl
movq %rax, 0x48(%rsp)
movq 0x18(%rsp), %rcx
movl %r12d, (%rax,%rcx,4)
cmpl $0x64, %r12d
setne %cl
andb %dl, %cl
cmpb $0x1, %cl
je 0x5680
leaq 0xc0(%rsp), %rdi
callq 0x7bf3
movl %eax, %r13d
cmpl $0xb3971714, %eax       # imm = 0xB3971714
je 0x53db
cmpl $0xd066abb9, %r13d      # imm = 0xD066ABB9
je 0x53ed
cmpl $0xec44fe02, %r13d      # imm = 0xEC44FE02
je 0x53e4
leaq 0x457f(%rip), %rsi      # 0x9905
cmpl $0x4bbf6747, %r13d      # imm = 0x4BBF6747
je 0x53f4
cmpl $0x1297c4f1, %r13d      # imm = 0x1297C4F1
je 0x53c9
cmpl $0x192dec66, %r13d      # imm = 0x192DEC66
je 0x53d2
cmpl $0x328bce39, %r13d      # imm = 0x328BCE39
je 0x53c0
cmpl $0xf6e4a809, %r13d      # imm = 0xF6E4A809
jne 0x5a76
leaq 0x46b1(%rip), %rsi      # 0x9a6f
jmp 0x53f4
leaq 0x4547(%rip), %rsi      # 0x990e
jmp 0x53f4
leaq 0x4553(%rip), %rsi      # 0x9923
jmp 0x53f4
leaq 0x4563(%rip), %rsi      # 0x993c
jmp 0x53f4
leaq 0x4537(%rip), %rsi      # 0x9919
jmp 0x53f4
leaq 0x4548(%rip), %rsi      # 0x9933
jmp 0x53f4
leaq 0x454f(%rip), %rsi      # 0x9943
leaq 0xc0(%rsp), %rdi
callq 0x7c1d
testl %eax, %eax
jne 0x5a17
cmpq %rbx, 0x70(%rsp)
movq 0x80(%rsp), %rdi
movq %r12, 0x28(%rsp)
jne 0x543e
leaq (%rbx,%rbx), %r12
testq %rbx, %rbx
pushq $0x2
popq %rax
cmoveq %rax, %r12
leaq (,%r12,4), %rsi
callq 0x2290
movq %rax, %rdi
movq %r12, %rbx
movq %rdi, 0x80(%rsp)
movq 0x70(%rsp), %rax
movl %r13d, (%rdi,%rax,4)
leaq 0xb0(%rsp), %rdi
callq 0x7bf3
movl %eax, %r13d
leaq 0x4555(%rip), %rsi      # 0x99bb
cmpl $0xb88c316, %eax        # imm = 0xB88C316
je 0x5481
cmpl $0x5978e2, %r13d        # imm = 0x5978E2
jne 0x5a50
leaq 0x453e(%rip), %rsi      # 0x99bf
leaq 0xb0(%rsp), %rdi
callq 0x7c1d
testl %eax, %eax
jne 0x5a2f
movq 0xe8(%rsp), %rax
cmpq %rax, 0x68(%rsp)
movq 0x50(%rsp), %rdi
jne 0x54d0
leaq (%rax,%rax), %r12
testq %rax, %rax
pushq $0x2
popq %rax
cmoveq %rax, %r12
leaq (,%r12,4), %rsi
callq 0x2290
movq %rax, %rdi
movq %r12, 0xe8(%rsp)
leaq 0x4208(%rip), %r12      # 0x96df
movq %rdi, 0x50(%rsp)
movq 0x68(%rsp), %rax
movl %r13d, (%rdi,%rax,4)
leaq 0x120(%rsp), %rdi
callq 0x7bf3
movl %eax, %r13d
cmpl $0x995556b4, %eax       # imm = 0x995556B4
je 0x55d0
cmpl $0xb57b3070, %r13d      # imm = 0xB57B3070
je 0x55be
cmpl $0xd37e4828, %r13d      # imm = 0xD37E4828
je 0x55c7
cmpl $0xe2eecd09, %r13d      # imm = 0xE2EECD09
je 0x5591
cmpl $0xf627ffb1, %r13d      # imm = 0xF627FFB1
je 0x55a3
movq %r12, %rsi
cmpl $0x5978d4, %r13d        # imm = 0x5978D4
je 0x55d7
cmpl $0xb888f83, %r13d       # imm = 0xB888F83
je 0x55b5
cmpl $0xb889c8a, %r13d       # imm = 0xB889C8A
je 0x557f
cmpl $0xdc4ffd9, %r13d       # imm = 0xDC4FFD9
je 0x5588
cmpl $0x272d87fd, %r13d      # imm = 0x272D87FD
je 0x559a
cmpl $0x1c93c7f4, %r13d      # imm = 0x1C93C7F4
je 0x55ac
cmpl $0x13baa0b1, %r13d      # imm = 0x13BAA0B1
jne 0x5a7f
leaq 0x44ac(%rip), %rsi      # 0x9a29
jmp 0x55d7
leaq 0x44f4(%rip), %rsi      # 0x9a7a
jmp 0x55d7
leaq 0x44da(%rip), %rsi      # 0x9a69
jmp 0x55d7
leaq 0x44a9(%rip), %rsi      # 0x9a41
jmp 0x55d7
leaq 0x44ad(%rip), %rsi      # 0x9a4e
jmp 0x55d7
leaq 0x448b(%rip), %rsi      # 0x9a35
jmp 0x55d7
leaq 0x44de(%rip), %rsi      # 0x9a91
jmp 0x55d7
leaq 0x44ba(%rip), %rsi      # 0x9a76
jmp 0x55d7
leaq 0x44b9(%rip), %rsi      # 0x9a7e
jmp 0x55d7
leaq 0x448e(%rip), %rsi      # 0x9a5c
jmp 0x55d7
leaq 0x44c1(%rip), %rsi      # 0x9a98
leaq 0x120(%rsp), %rdi
callq 0x7c1d
testl %eax, %eax
jne 0x5a38
movq %rbx, 0x100(%rsp)
movq 0xe0(%rsp), %rax
movq 0x60(%rsp), %rdx
cmpq %rax, %rdx
jne 0x563a
leaq (%rax,%rax), %r12
testq %rax, %rax
pushq $0x2
popq %rax
cmoveq %rax, %r12
leaq (,%r12,4), %rsi
movq 0x8(%rsp), %rdi
callq 0x2290
movq 0x60(%rsp), %rdx
movq %r12, 0xe0(%rsp)
movq 0x30(%rsp), %r15
jmp 0x563f
movq 0x8(%rsp), %rax
movl 0x5c(%rsp), %r12d
movq 0xd8(%rsp), %rbx
incq %rbp
incq 0x78(%rsp)
incq 0x18(%rsp)
movl 0x28(%rsp), %ecx
addq %rcx, %r15
incq 0x70(%rsp)
incq 0x68(%rsp)
movq %rax, 0x8(%rsp)
movl %r13d, (%rax,%rdx,4)
incq %rdx
movq %rdx, 0x60(%rsp)
jmp 0x5022
movq 0x7969(%rip), %rax      # 0xcff0
movq (%rax), %rdi
leaq 0x3d90(%rip), %rsi      # 0x9421
leaq 0x3d54(%rip), %rdx      # 0x93ec
pushq $0x64
popq %rcx
xorl %eax, %eax
callq 0x2200
jmp 0x5356
leaq 0xc0(%rsp), %rdi
xorl %esi, %esi
pushq $0xa
popq %rdx
callq 0x2320
movq %rax, 0x28(%rsp)
leaq 0xb0(%rsp), %rdi
xorl %esi, %esi
pushq $0xa
popq %rdx
callq 0x2320
movq %rax, 0x88(%rsp)
movq 0x98(%rsp), %rdi
leaq 0x160(%rsp), %rsi
callq 0x4152
cmpl $-0x1, %eax
je 0x59af
movq %rax, 0x110(%rsp)
movl %eax, %eax
imulq $0x18, %rax, %rcx
movq 0x98(%rsp), %rax
addq 0x8(%rax), %rcx
movq 0x28(%rsp), %rax
decl %eax
movq %rax, 0x118(%rsp)
movq 0x88(%rsp), %rdx
cmpl %edx, %eax
movq %rdx, %r9
jae 0x593a
cmpl %r9d, 0x10(%rcx)
jb 0x593a
leaq 0x120(%rsp), %rdi
callq 0x7bf3
leaq 0x3f8b(%rip), %rsi      # 0x96db
cmpl $0x2b5d0, %eax          # imm = 0x2B5D0
je 0x57a9
cmpl $0x7ca1b285, %eax       # imm = 0x7CA1B285
je 0x5790
cmpl $0x2b5d5, %eax          # imm = 0x2B5D5
je 0x5799
cmpl $0x2b5e4, %eax          # imm = 0x2B5E4
je 0x57a2
cmpl $0x5978d4, %eax         # imm = 0x5978D4
je 0x5787
cmpl $0x2b5d2, %eax          # imm = 0x2B5D2
jne 0x5af9
leaq 0x3f5d(%rip), %rsi      # 0x96e2
jmp 0x57a9
leaq 0x3f51(%rip), %rsi      # 0x96df
jmp 0x57a9
leaq 0x438f(%rip), %rsi      # 0x9b26
jmp 0x57a9
leaq 0x3a13(%rip), %rsi      # 0x91b3
jmp 0x57a9
leaq 0x3f34(%rip), %rsi      # 0x96dd
movq %rax, 0x108(%rsp)
leaq 0x120(%rsp), %rdi
callq 0x7c1d
testl %eax, %eax
jne 0x5a88
cmpl $0x0, 0xac(%rsp)
setne %al
movq 0x108(%rsp), %r10
movl %r10d, %ecx
andl $-0x3, %ecx
cmpl $0x2b5d0, %ecx          # imm = 0x2B5D0
sete %cl
orb %al, %cl
movq 0x28(%rsp), %r8
je 0x5a98
xorl %eax, %eax
cmpl $0x2b5d2, %r10d         # imm = 0x2B5D2
sete %al
movq 0x110(%rsp), %rcx
leal (%rax,%rcx,2), %r9d
movq 0x88(%rsp), %rax
subl %r8d, %eax
incl %eax
movq 0xa0(%rsp), %rdi
movl (%rdi), %esi
movl %r12d, %edx
movq %rbx, %rcx
movq %r15, %r8
pushq %r10
pushq %r13
movq %rax, %r13
pushq %rax
pushq 0x130(%rsp)
callq 0x49e5
addq $0x20, %rsp
addq %r13, %rbx
addq %r13, %r15
incl 0x14(%rsp)
incl %r12d
movq 0x8(%rsp), %rax
movq 0x20(%rsp), %rcx
movq 0x38(%rsp), %rdx
jmp 0x5013
subq %rbx, %r15
movl 0x14(%rsp), %r9d
subl %r12d, %r9d
subq $0x8, %rsp
movl %r12d, %r8d
movq 0xa8(%rsp), %r12
movq %r12, %rdi
movq 0x40(%rsp), %r13
movq %r13, %rsi
movq %rbx, %rdx
movq %r15, %rcx
pushq 0x10(%rsp)
movq %rbp, %rax
movq 0x60(%rsp), %rbp
pushq %rbp
movq 0x98(%rsp), %r15
pushq %r15
movq 0x60(%rsp), %rbx
pushq %rbx
movq %r14, 0x40(%rsp)
movq 0x70(%rsp), %r14
pushq %r14
movq 0x50(%rsp), %rbp
pushq %rbp
pushq %rax
callq 0x4813
addq $0x40, %rsp
movq 0x98(%rsp), %rax
movq %rax, 0x38(%r12)
movq %r12, %rdi
callq 0x4dc7
movq %r13, %rdi
callq 0x2050
movq 0x18(%rsp), %rdi
callq 0x297a
movq %rbp, %rdi
callq 0x2050
movq %r14, %rdi
callq 0x2050
movq %rbx, %rdi
callq 0x2050
movq %r15, %rdi
callq 0x2050
movq 0x50(%rsp), %rdi
callq 0x2050
movq 0x8(%rsp), %rdi
callq 0x2050
movq %r12, %rax
addq $0x368, %rsp            # imm = 0x368
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x76af(%rip), %rax      # 0xcff0
movq (%rax), %rdi
subq $0x8, %rsp
leaq 0x3b16(%rip), %rsi      # 0x9465
leaq 0x3a96(%rip), %rdx      # 0x93ec
movq %rcx, %r14
leaq 0x168(%rsp), %rcx
movq 0x30(%rsp), %r8
movq %r9, %rbx
xorl %eax, %eax
leaq 0x268(%rsp), %r10
pushq %r10
callq 0x2200
popq %rcx
popq %rdx
movl 0x10(%r14), %r8d
cmpl %ebx, %r8d
jae 0x59a7
movq %rbx, %rcx
movq 0x7661(%rip), %rax      # 0xcff0
movq (%rax), %rdi
leaq 0x3aff(%rip), %rsi      # 0x9498
leaq 0x3a4c(%rip), %rdx      # 0x93ec
xorl %eax, %eax
callq 0x2200
pushq $0x1
popq %rdi
callq 0x2360
movq 0x763a(%rip), %rax      # 0xcff0
movq (%rax), %rdi
leaq 0x3a86(%rip), %rsi      # 0x9446
leaq 0x3a25(%rip), %rdx      # 0x93ec
xorl %r12d, %r12d
leaq 0x160(%rsp), %rcx
xorl %eax, %eax
callq 0x2200
jmp 0x5925
movq 0x760b(%rip), %rax      # 0xcff0
movq (%rax), %rdi
leaq 0x3949(%rip), %rsi      # 0x9338
leaq 0x39f6(%rip), %rdx      # 0x93ec
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2200
jmp 0x59a7
leaq 0x3ec1(%rip), %rdi      # 0x98ca
leaq 0x3ea3(%rip), %rsi      # 0x98b3
leaq 0x4(%rsp), %rdx
jmp 0x5a66
leaq 0x3f68(%rip), %rdi      # 0x9986
leaq 0x3f50(%rip), %rsi      # 0x9975
leaq 0xc0(%rsp), %rdx
jmp 0x5a66
leaq 0x3fbf(%rip), %rdi      # 0x99f5
jmp 0x5a57
leaq 0x40aa(%rip), %rdi      # 0x9ae9
leaq 0x408a(%rip), %rsi      # 0x9ad0
leaq 0x120(%rsp), %rdx
jmp 0x5a66
leaq 0x3f6b(%rip), %rdi      # 0x99c2
leaq 0x3f87(%rip), %rsi      # 0x99e5
leaq 0xb0(%rsp), %rdx
xorl %eax, %eax
callq 0x7c5b
leaq 0x3e15(%rip), %rdi      # 0x9889
jmp 0x5a09
leaq 0x3ed4(%rip), %rdi      # 0x9951
jmp 0x5a1e
leaq 0x401e(%rip), %rdi      # 0x9aa4
jmp 0x5a3f
leaq 0x40d7(%rip), %rdi      # 0x9b66
leaq 0x40bc(%rip), %rsi      # 0x9b52
jmp 0x5a46
movq 0x7551(%rip), %r14      # 0xcff0
movq (%r14), %rdi
leaq 0x3a35(%rip), %rsi      # 0x94de
leaq 0x393c(%rip), %rbx      # 0x93ec
leaq 0x160(%rsp), %rcx
movq %rbx, %rdx
movq 0x88(%rsp), %r9
xorl %eax, %eax
leaq 0x120(%rsp), %r10
pushq %r10
leaq 0x268(%rsp), %r10
pushq %r10
callq 0x2200
popq %rcx
popq %rdx
movq (%r14), %rdi
leaq 0x3ae0(%rip), %rsi      # 0x95ca
movq %rbx, %rdx
xorl %eax, %eax
callq 0x2200
jmp 0x59a7
leaq 0x402b(%rip), %rdi      # 0x9b2b
jmp 0x5a8f