// File: /workspace/github_c_makefile_star2_O0/samtools[P]htslib/annot-tsv.c
// Function: init_data
void init_data(args_t *args)
{
    if ( !args->delim_str )
        args->dst.delim = args->src.delim = '\t';
    else if ( strlen(args->delim_str)==1 )
        args->dst.delim = args->src.delim = *args->delim_str;
    else if ( strlen(args->delim_str)==3 && args->delim_str[1]==':' )
        args->src.delim = args->delim_str[0], args->dst.delim = args->delim_str[2];
    else
        error("Could not parse the option --delim %s\n",args->delim_str);

    // --headers, determine header row index
    int isrc = 0, idst = 0, autodetect = 1;
    if ( args->headers_str )
    {
        cols_t *tmp = cols_split(args->headers_str, NULL, ':');
        char *rmme;
        isrc = strtol(tmp->off[0],&rmme,10);
        if ( *rmme || tmp->off[0]==rmme ) error("Could not parse the option --headers %s\n",args->headers_str);
        idst = strtol(tmp->n==2 ? tmp->off[1] : tmp->off[0],&rmme,10);
        if ( *rmme || (tmp->n==2 ? tmp->off[1] : tmp->off[0])==rmme ) error("Could not parse the option --headers %s\n",args->headers_str);
        cols_destroy(tmp);
        autodetect = 0;
    }
    parse_header(&args->dst, args->dst.fname, idst, autodetect);
    parse_header(&args->src, args->src.fname, isrc, autodetect);

    // -c, core columns
    if ( !args->core_str ) args->core_str = "chr,beg,end:chr,beg,end";
    cols_t *tmp = cols_split(args->core_str, NULL, ':');
    args->src.core = cols_split(tmp->off[0],NULL,',');
    args->dst.core = cols_split(tmp->n==2 ? tmp->off[1] : tmp->off[0],NULL,',');
    sanity_check_columns(args->src.fname, &args->src.hdr, args->src.core, &args->src.core_idx, 0);
    sanity_check_columns(args->dst.fname, &args->dst.hdr, args->dst.core, &args->dst.core_idx, 0);
    if ( args->src.core->n!=3 || args->dst.core->n!=3 ) error("Expected three columns: %s\n", args->core_str);
    cols_destroy(tmp);

    // -C, --coordinates, 0 or 1-based
    if ( !args->coords_str ) args->coords_str = ":";
    tmp = cols_split(args->coords_str, NULL, ':');
    parse_coor_base(args, tmp->off[0], &args->src);
    parse_coor_base(args, tmp->n==2 ? tmp->off[1] : tmp->off[0], &args->dst);
    cols_destroy(tmp);

    // -m, match columns
    if ( args->match_str )
    {
        tmp = cols_split(args->match_str, NULL, ':');
        args->src.match = cols_split(tmp->off[0],NULL,',');
        args->dst.match = cols_split(tmp->n==2 ? tmp->off[1] : tmp->off[0],NULL,',');
        sanity_check_columns(args->src.fname, &args->src.hdr, args->src.match, &args->src.match_idx, 0);
        sanity_check_columns(args->dst.fname, &args->dst.hdr, args->dst.match, &args->dst.match_idx, 0);
        if ( args->src.match->n != args->dst.match->n ) error("Expected equal number of columns: %s\n", args->match_str);
        cols_destroy(tmp);
    }

    // -t, transfer columns
    int i;
    if ( args->transfer_str )
    {
        tmp = cols_split(args->transfer_str, NULL, ':');
        args->src.transfer = cols_split(tmp->off[0],NULL,',');
        args->dst.transfer = cols_split(tmp->n==2 ? tmp->off[1] : tmp->off[0],NULL,',');
        sanity_check_columns(args->src.fname, &args->src.hdr, args->src.transfer, &args->src.transfer_idx, 1);
        sanity_check_columns(args->dst.fname, &args->dst.hdr, args->dst.transfer, &args->dst.transfer_idx, 1);
        if ( args->src.transfer->n != args->dst.transfer->n ) error("Expected equal number of columns: %s\n", args->transfer_str);
        for (i=0; i<args->src.transfer->n; i++)
        {
            if ( args->src.transfer_idx[i]==-1 )
            {
                cols_append(args->src.hdr.cols,args->src.transfer->off[i]);
                args->src.transfer_idx[i] = -args->src.hdr.cols->n;    // negative index indicates different ptr location
                args->src.grow_n++;
            }
        }
        for (i=0; i<args->dst.transfer->n; i++)
        {
            if ( args->dst.transfer_idx[i]==-1 )
            {
                cols_append(args->dst.hdr.cols,args->dst.transfer->off[i]);
                args->dst.transfer_idx[i] = args->dst.hdr.cols->n - 1;
                args->dst.grow_n++;
            }
        }
        args->tmp_cols = (cols_t*)calloc(args->src.transfer->n,sizeof(cols_t));
        args->tmp_hash = (khash_t(str2int)**)calloc(args->src.transfer->n,sizeof(khash_t(str2int)*));
        if ( !args->tmp_cols || !args->tmp_hash ) error("Out of memory\n");
        for (i=0; i<args->src.transfer->n; i++)
            args->tmp_hash[i] = khash_str2int_init();
        cols_destroy(tmp);
    }
    else
    {
        args->src.transfer = calloc(1,sizeof(*args->src.transfer));
        if ( !args->src.transfer ) error("Out of memory\n");
    }
    args->src.nannots_added = calloc(args->src.transfer->n,sizeof(*args->src.nannots_added));
    if ( !args->src.nannots_added ) error("Out of memory\n");

    // -a, annotation columns
    if ( args->annots_str )
    {
        tmp = cols_split(args->annots_str, NULL, ':');
        args->src.annots = cols_split(tmp->off[0],NULL,',');
        args->dst.annots = cols_split(tmp->n==2 ? tmp->off[1] : tmp->off[0],NULL,',');
        if ( args->src.annots->n!=args->dst.annots->n ) error("Different number of src and dst columns in %s\n",args->annots_str);
        args->dst.annots_idx = (int*) malloc(sizeof(int)*args->dst.annots->n);
        if ( !args->dst.annots_idx ) error("Out of memory\n");
        for (i=0; i<args->src.annots->n; i++)
        {
            if ( !strcasecmp(args->src.annots->off[i],"nbp") )
            {
                args->dst.annots_idx[i] = ANN_NBP;
                cols_append(args->dst.hdr.cols,tmp->n==2?args->dst.annots->off[i]:"nbp");
            }
            else if ( !strcasecmp(args->src.annots->off[i],"frac") )
            {
                args->dst.annots_idx[i] = ANN_FRAC;
                cols_append(args->dst.hdr.cols,tmp->n==2?args->dst.annots->off[i]:"frac");
            }
            else if ( !strcasecmp(args->src.annots->off[i],"cnt") )
            {
                args->dst.annots_idx[i] = ANN_CNT;
                cols_append(args->dst.hdr.cols,tmp->n==2?args->dst.annots->off[i]:"cnt");
            }
            else error("The annotation \"%s\" is not recognised\n", args->src.annots->off[i]);
        }
        args->nbp = nbp_init();
        cols_destroy(tmp);
    }

    args->idx = regidx_init(NULL, parse_tab_with_payload,free_payload,sizeof(cols_t),&args->src);
    while ( read_next_line(&args->src) )
    {
        if ( regidx_insert(args->idx,args->src.line.s) !=0 ) error("Could not parse the region in %s: %s\n",args->src.fname,args->src.line.s);
        args->src.line.l = 0;
    }
    args->itr = regitr_init(args->idx);
    if ( hts_close(args->src.fp)!=0 ) error("Failed to close: %s\n", args->src.fname);

    int len = args->out_fname ? strlen(args->out_fname) : 0;
    if ( len )
    {
        int compress_output = 0;
        if ( !strcasecmp(".gz",args->out_fname+len-3) || !strcasecmp(".bgz",args->out_fname+len-4) ) compress_output = 1;
        args->out_fp = bgzf_open(args->out_fname, compress_output ? "wg" : "wu");
    }
    else
        args->out_fp = bgzf_open("-","wu");
    if ( !args->out_fp ) error("Could not open file for writing: %s\n",args->out_fname?args->out_fname:"stdout");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x178(%rax)
jne 0x7028
movq -0x8(%rbp), %rax
movb $0x9, 0x120(%rax)
movq -0x8(%rbp), %rax
movb $0x9, 0x80(%rax)
jmp 0x70d9
movq -0x8(%rbp), %rax
movq 0x178(%rax), %rdi
callq 0x41b0
cmpq $0x1, %rax
jne 0x7061
movq -0x8(%rbp), %rax
movq 0x178(%rax), %rax
movb (%rax), %cl
movq -0x8(%rbp), %rax
movb %cl, 0x120(%rax)
movq -0x8(%rbp), %rax
movb %cl, 0x80(%rax)
jmp 0x70d7
movq -0x8(%rbp), %rax
movq 0x178(%rax), %rdi
callq 0x41b0
cmpq $0x3, %rax
jne 0x70bc
movq -0x8(%rbp), %rax
movq 0x178(%rax), %rax
movsbl 0x1(%rax), %eax
cmpl $0x3a, %eax
jne 0x70bc
movq -0x8(%rbp), %rax
movq 0x178(%rax), %rax
movb (%rax), %cl
movq -0x8(%rbp), %rax
movb %cl, 0x120(%rax)
movq -0x8(%rbp), %rax
movq 0x178(%rax), %rax
movb 0x2(%rax), %cl
movq -0x8(%rbp), %rax
movb %cl, 0x80(%rax)
jmp 0x70d5
movq -0x8(%rbp), %rax
movq 0x178(%rax), %rsi
leaq 0xe6546(%rip), %rdi     # 0xed614
movb $0x0, %al
callq 0x5c70
jmp 0x70d7
jmp 0x70d9
movl $0x0, -0xc(%rbp)
movl $0x0, -0x10(%rbp)
movl $0x1, -0x14(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x170(%rax)
je 0x7217
movq -0x8(%rbp), %rax
movq 0x170(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x3a, %edx
callq 0x5ac0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdi
leaq -0x28(%rbp), %rsi
movl $0xa, %edx
callq 0x46a0
movl %eax, -0xc(%rbp)
movq -0x28(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0x7156
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpq -0x28(%rbp), %rax
jne 0x716f
movq -0x8(%rbp), %rax
movq 0x170(%rax), %rsi
leaq 0xe64d3(%rip), %rdi     # 0xed63b
movb $0x0, %al
callq 0x5c70
movq -0x20(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x718a
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x48(%rbp)
jmp 0x7199
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rdi
leaq -0x28(%rbp), %rsi
movl $0xa, %edx
callq 0x46a0
movl %eax, -0x10(%rbp)
movq -0x28(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0x71ee
movq -0x20(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x71d5
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x50(%rbp)
jmp 0x71e4
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
cmpq -0x28(%rbp), %rax
jne 0x7207
movq -0x8(%rbp), %rax
movq 0x170(%rax), %rsi
leaq 0xe643b(%rip), %rdi     # 0xed63b
movb $0x0, %al
callq 0x5c70
movq -0x20(%rbp), %rdi
callq 0x6040
movl $0x0, -0x14(%rbp)
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
movl -0x10(%rbp), %edx
movl -0x14(%rbp), %ecx
callq 0x6360
movq -0x8(%rbp), %rdi
addq $0xa8, %rdi
movq -0x8(%rbp), %rax
movq 0xa8(%rax), %rsi
movl -0xc(%rbp), %edx
movl -0x14(%rbp), %ecx
callq 0x6360
movq -0x8(%rbp), %rax
cmpq $0x0, 0x148(%rax)
jne 0x7273
movq -0x8(%rbp), %rax
leaq 0xe63f8(%rip), %rcx     # 0xed664
movq %rcx, 0x148(%rax)
movq -0x8(%rbp), %rax
movq 0x148(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x3a, %edx
callq 0x5ac0
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x2c, %edx
callq 0x5ac0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0xd0(%rax)
movq -0x30(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x72d2
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x58(%rbp)
jmp 0x72e1
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x2c, %edx
callq 0x5ac0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x8(%rbp), %rax
movq 0xa8(%rax), %rdi
movq -0x8(%rbp), %rsi
addq $0xa8, %rsi
addq $0x8, %rsi
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rdx
movq -0x8(%rbp), %rcx
addq $0xa8, %rcx
addq $0x48, %rcx
xorl %r8d, %r8d
callq 0x6d20
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rsi
addq $0x8, %rsi
addq $0x8, %rsi
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdx
movq -0x8(%rbp), %rcx
addq $0x8, %rcx
addq $0x48, %rcx
xorl %r8d, %r8d
callq 0x6d20
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rax
cmpl $0x3, (%rax)
jne 0x7387
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
cmpl $0x3, (%rax)
je 0x73a0
movq -0x8(%rbp), %rax
movq 0x148(%rax), %rsi
leaq 0xe62e3(%rip), %rdi     # 0xed67c
movb $0x0, %al
callq 0x5c70
movq -0x30(%rbp), %rdi
callq 0x6040
movq -0x8(%rbp), %rax
cmpq $0x0, 0x150(%rax)
jne 0x73c9
movq -0x8(%rbp), %rax
leaq 0xe8c08(%rip), %rcx     # 0xeffca
movq %rcx, 0x150(%rax)
movq -0x8(%rbp), %rax
movq 0x150(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x3a, %edx
callq 0x5ac0
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rsi
movq -0x8(%rbp), %rdx
addq $0xa8, %rdx
callq 0x6ea0
movq -0x8(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x7428
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x68(%rbp)
jmp 0x7437
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rsi
movq -0x8(%rbp), %rdx
addq $0x8, %rdx
callq 0x6ea0
movq -0x30(%rbp), %rdi
callq 0x6040
movq -0x8(%rbp), %rax
cmpq $0x0, 0x158(%rax)
je 0x7599
movq -0x8(%rbp), %rax
movq 0x158(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x3a, %edx
callq 0x5ac0
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x2c, %edx
callq 0x5ac0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0xd8(%rax)
movq -0x30(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x74c6
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x70(%rbp)
jmp 0x74d5
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x2c, %edx
callq 0x5ac0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x38(%rax)
movq -0x8(%rbp), %rax
movq 0xa8(%rax), %rdi
movq -0x8(%rbp), %rsi
addq $0xa8, %rsi
addq $0x8, %rsi
movq -0x8(%rbp), %rax
movq 0xd8(%rax), %rdx
movq -0x8(%rbp), %rcx
addq $0xa8, %rcx
addq $0x50, %rcx
xorl %r8d, %r8d
callq 0x6d20
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rsi
addq $0x8, %rsi
addq $0x8, %rsi
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rdx
movq -0x8(%rbp), %rcx
addq $0x8, %rcx
addq $0x50, %rcx
xorl %r8d, %r8d
callq 0x6d20
movq -0x8(%rbp), %rax
movq 0xd8(%rax), %rax
movl (%rax), %eax
movq -0x8(%rbp), %rcx
movq 0x38(%rcx), %rcx
cmpl (%rcx), %eax
je 0x7590
movq -0x8(%rbp), %rax
movq 0x158(%rax), %rsi
leaq 0xe610f(%rip), %rdi     # 0xed698
movb $0x0, %al
callq 0x5c70
movq -0x30(%rbp), %rdi
callq 0x6040
movq -0x8(%rbp), %rax
cmpq $0x0, 0x160(%rax)
je 0x78be
movq -0x8(%rbp), %rax
movq 0x160(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x3a, %edx
callq 0x5ac0
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x2c, %edx
callq 0x5ac0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0xe0(%rax)
movq -0x30(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x760a
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x78(%rbp)
jmp 0x7619
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x2c, %edx
callq 0x5ac0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x40(%rax)
movq -0x8(%rbp), %rax
movq 0xa8(%rax), %rdi
movq -0x8(%rbp), %rsi
addq $0xa8, %rsi
addq $0x8, %rsi
movq -0x8(%rbp), %rax
movq 0xe0(%rax), %rdx
movq -0x8(%rbp), %rcx
addq $0xa8, %rcx
addq $0x58, %rcx
movl $0x1, %r8d
callq 0x6d20
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rsi
addq $0x8, %rsi
addq $0x8, %rsi
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rdx
movq -0x8(%rbp), %rcx
addq $0x8, %rcx
addq $0x58, %rcx
movl $0x1, %r8d
callq 0x6d20
movq -0x8(%rbp), %rax
movq 0xe0(%rax), %rax
movl (%rax), %eax
movq -0x8(%rbp), %rcx
movq 0x40(%rcx), %rcx
cmpl (%rcx), %eax
je 0x76da
movq -0x8(%rbp), %rax
movq 0x160(%rax), %rsi
leaq 0xe5fc5(%rip), %rdi     # 0xed698
movb $0x0, %al
callq 0x5c70
movl $0x0, -0x34(%rbp)
movl -0x34(%rbp), %eax
movq -0x8(%rbp), %rcx
movq 0xe0(%rcx), %rcx
cmpl (%rcx), %eax
jae 0x7777
movq -0x8(%rbp), %rax
movq 0x100(%rax), %rax
movslq -0x34(%rbp), %rcx
cmpl $-0x1, (%rax,%rcx,4)
jne 0x7767
movq -0x8(%rbp), %rax
movq 0xb8(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0xe0(%rax), %rax
movq 0x8(%rax), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x5d40
movq -0x8(%rbp), %rax
movq 0xb8(%rax), %rax
xorl %edx, %edx
subl (%rax), %edx
movq -0x8(%rbp), %rax
movq 0x100(%rax), %rax
movslq -0x34(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movq -0x8(%rbp), %rax
movl 0x124(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x124(%rax)
jmp 0x7769
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x76e1
movl $0x0, -0x34(%rbp)
movl -0x34(%rbp), %eax
movq -0x8(%rbp), %rcx
movq 0x40(%rcx), %rcx
cmpl (%rcx), %eax
jae 0x77fc
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movslq -0x34(%rbp), %rcx
cmpl $-0x1, (%rax,%rcx,4)
jne 0x77ef
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rax
movq 0x8(%rax), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x5d40
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movl (%rax), %edx
subl $0x1, %edx
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movslq -0x34(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movq -0x8(%rbp), %rax
movl 0x84(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x84(%rax)
jmp 0x77f1
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x777e
movq -0x8(%rbp), %rax
movq 0xe0(%rax), %rax
movl (%rax), %eax
movl %eax, %edi
movl $0x18, %esi
callq 0x42f0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x1e8(%rax)
movq -0x8(%rbp), %rax
movq 0xe0(%rax), %rax
movl (%rax), %eax
movl %eax, %edi
movl $0x8, %esi
callq 0x42f0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x1f0(%rax)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x1e8(%rax)
je 0x7866
movq -0x8(%rbp), %rax
cmpq $0x0, 0x1f0(%rax)
jne 0x7874
leaq 0xe5b99(%rip), %rdi     # 0xed406
movb $0x0, %al
callq 0x5c70
movl $0x0, -0x34(%rbp)
movl -0x34(%rbp), %eax
movq -0x8(%rbp), %rcx
movq 0xe0(%rcx), %rcx
cmpl (%rcx), %eax
jae 0x78b3
callq 0x69f0
movq %rax, %rdx
movq -0x8(%rbp), %rax
movq 0x1f0(%rax), %rax
movslq -0x34(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x787b
movq -0x30(%rbp), %rdi
callq 0x6040
jmp 0x78f9
movl $0x1, %edi
movl $0x18, %esi
callq 0x42f0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0xe0(%rax)
movq -0x8(%rbp), %rax
cmpq $0x0, 0xe0(%rax)
jne 0x78f7
leaq 0xe5b16(%rip), %rdi     # 0xed406
movb $0x0, %al
callq 0x5c70
jmp 0x78f9
movq -0x8(%rbp), %rax
movq 0xe0(%rax), %rax
movl (%rax), %eax
movl %eax, %edi
movl $0x4, %esi
callq 0x42f0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x110(%rax)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x110(%rax)
jne 0x793c
leaq 0xe5ad1(%rip), %rdi     # 0xed406
movb $0x0, %al
callq 0x5c70
movq -0x8(%rbp), %rax
cmpq $0x0, 0x168(%rax)
je 0x7c77
movq -0x8(%rbp), %rax
movq 0x168(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x3a, %edx
callq 0x5ac0
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x2c, %edx
callq 0x5ac0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0xe8(%rax)
movq -0x30(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x79ad
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x80(%rbp)
jmp 0x79bc
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x2c, %edx
callq 0x5ac0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x48(%rax)
movq -0x8(%rbp), %rax
movq 0xe8(%rax), %rax
movl (%rax), %eax
movq -0x8(%rbp), %rcx
movq 0x48(%rcx), %rcx
cmpl (%rcx), %eax
je 0x7a0b
movq -0x8(%rbp), %rax
movq 0x168(%rax), %rsi
leaq 0xe5cba(%rip), %rdi     # 0xed6be
movb $0x0, %al
callq 0x5c70
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movl (%rax), %eax
movl %eax, %edi
shlq $0x2, %rdi
callq 0x4650
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x68(%rax)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x68(%rax)
jne 0x7a44
leaq 0xe59c9(%rip), %rdi     # 0xed406
movb $0x0, %al
callq 0x5c70
movl $0x0, -0x34(%rbp)
movl -0x34(%rbp), %eax
movq -0x8(%rbp), %rcx
movq 0xe8(%rcx), %rcx
cmpl (%rcx), %eax
jae 0x7c5f
movq -0x8(%rbp), %rax
movq 0xe8(%rax), %rax
movq 0x8(%rax), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe5c6e(%rip), %rsi     # 0xed6ed
callq 0x4500
cmpl $0x0, %eax
jne 0x7af9
movq -0x8(%rbp), %rax
movq 0x68(%rax), %rax
movslq -0x34(%rbp), %rcx
movl $0x1, (%rax,%rcx,4)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x88(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x7ad1
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x90(%rbp)
jmp 0x7ae1
leaq 0xe5c15(%rip), %rax     # 0xed6ed
movq %rax, -0x90(%rbp)
jmp 0x7ae1
movq -0x88(%rbp), %rdi
movq -0x90(%rbp), %rsi
callq 0x5d40
jmp 0x7c4f
movq -0x8(%rbp), %rax
movq 0xe8(%rax), %rax
movq 0x8(%rax), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe5bda(%rip), %rsi     # 0xed6f1
callq 0x4500
cmpl $0x0, %eax
jne 0x7b91
movq -0x8(%rbp), %rax
movq 0x68(%rax), %rax
movslq -0x34(%rbp), %rcx
movl $0x2, (%rax,%rcx,4)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x7b69
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0xa0(%rbp)
jmp 0x7b79
leaq 0xe5b81(%rip), %rax     # 0xed6f1
movq %rax, -0xa0(%rbp)
jmp 0x7b79
movq -0x98(%rbp), %rdi
movq -0xa0(%rbp), %rsi
callq 0x5d40
jmp 0x7c4d
movq -0x8(%rbp), %rax
movq 0xe8(%rax), %rax
movq 0x8(%rax), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe5b47(%rip), %rsi     # 0xed6f6
callq 0x4500
cmpl $0x0, %eax
jne 0x7c26
movq -0x8(%rbp), %rax
movq 0x68(%rax), %rax
movslq -0x34(%rbp), %rcx
movl $0x4, (%rax,%rcx,4)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0xa8(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x7c01
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0xb0(%rbp)
jmp 0x7c11
leaq 0xe5aee(%rip), %rax     # 0xed6f6
movq %rax, -0xb0(%rbp)
jmp 0x7c11
movq -0xa8(%rbp), %rdi
movq -0xb0(%rbp), %rsi
callq 0x5d40
jmp 0x7c4b
movq -0x8(%rbp), %rax
movq 0xe8(%rax), %rax
movq 0x8(%rax), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
leaq 0xe5ab6(%rip), %rdi     # 0xed6fa
movb $0x0, %al
callq 0x5c70
jmp 0x7c4d
jmp 0x7c4f
jmp 0x7c51
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x7a4b
callq 0x7ec0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, (%rax)
movq -0x30(%rbp), %rdi
callq 0x6040
movq -0x8(%rbp), %r8
addq $0xa8, %r8
xorl %eax, %eax
movl %eax, %edi
leaq -0x1c1d(%rip), %rsi     # 0x6070
leaq -0x1964(%rip), %rdx     # 0x6330
movl $0x18, %ecx
callq 0x2e980
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x1c0(%rax)
movq -0x8(%rbp), %rdi
addq $0xa8, %rdi
callq 0x7f00
cmpl $0x0, %eax
je 0x7d16
movq -0x8(%rbp), %rax
movq 0x1c0(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x138(%rax), %rsi
callq 0x2dcb0
cmpl $0x0, %eax
je 0x7d05
movq -0x8(%rbp), %rax
movq 0xa8(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x138(%rax), %rdx
leaq 0xe5a23(%rip), %rdi     # 0xed721
movb $0x0, %al
callq 0x5c70
movq -0x8(%rbp), %rax
movq $0x0, 0x128(%rax)
jmp 0x7cac
movq -0x8(%rbp), %rax
movq 0x1c0(%rax), %rdi
callq 0x2f980
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x1c8(%rax)
movq -0x8(%rbp), %rax
movq 0x140(%rax), %rdi
callq 0x1d270
cmpl $0x0, %eax
je 0x7d62
movq -0x8(%rbp), %rax
movq 0xa8(%rax), %rsi
leaq 0xe59ec(%rip), %rdi     # 0xed747
movb $0x0, %al
callq 0x5c70
movq -0x8(%rbp), %rax
cmpq $0x0, 0x188(%rax)
je 0x7d89
movq -0x8(%rbp), %rax
movq 0x188(%rax), %rdi
callq 0x41b0
movq %rax, -0xb8(%rbp)
jmp 0x7d94
xorl %eax, %eax
movq %rax, -0xb8(%rbp)
jmp 0x7d94
movq -0xb8(%rbp), %rax
movl %eax, -0x38(%rbp)
cmpl $0x0, -0x38(%rbp)
je 0x7e3c
movl $0x0, -0x3c(%rbp)
movq -0x8(%rbp), %rax
movq 0x188(%rax), %rsi
movslq -0x38(%rbp), %rax
addq %rax, %rsi
addq $-0x3, %rsi
leaq 0xe86e1(%rip), %rdi     # 0xf04ad
callq 0x4500
cmpl $0x0, %eax
je 0x7dfd
movq -0x8(%rbp), %rax
movq 0x188(%rax), %rsi
movslq -0x38(%rbp), %rax
addq %rax, %rsi
addq $-0x4, %rsi
leaq 0xe930a(%rip), %rdi     # 0xf10fd
callq 0x4500
cmpl $0x0, %eax
jne 0x7e04
movl $0x1, -0x3c(%rbp)
movq -0x8(%rbp), %rax
movq 0x188(%rax), %rdi
movl -0x3c(%rbp), %ecx
leaq 0xe5946(%rip), %rsi     # 0xed75f
leaq 0xe593c(%rip), %rax     # 0xed75c
cmpl $0x0, %ecx
cmovneq %rax, %rsi
callq 0xc090
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x190(%rax)
jmp 0x7e5d
leaq 0xea5b2(%rip), %rdi     # 0xf23f5
leaq 0xe5915(%rip), %rsi     # 0xed75f
callq 0xc090
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x190(%rax)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x190(%rax)
jne 0x7eb2
movq -0x8(%rbp), %rax
cmpq $0x0, 0x188(%rax)
je 0x7e8d
movq -0x8(%rbp), %rax
movq 0x188(%rax), %rax
movq %rax, -0xc0(%rbp)
jmp 0x7e9d
leaq 0xe58f3(%rip), %rax     # 0xed787
movq %rax, -0xc0(%rbp)
jmp 0x7e9d
movq -0xc0(%rbp), %rsi
leaq 0xe58b7(%rip), %rdi     # 0xed762
movb $0x0, %al
callq 0x5c70
addq $0xc0, %rsp
popq %rbp
retq
nopl (%rax,%rax)