// File: /workspace/github_c_makefile_star2_O0/yhg926[P]public_kssd/command_dist.c
// Function: run_stageI
const char * run_stageI (dist_opt_val_t *opt_val, infile_tab_t *seqfile_stat,
      int* shuffled_seqfname_ind, const char *co_dir, int p_fit_mem)
{
 llong **CO = malloc( p_fit_mem * sizeof(llong *) );
  for(int i = 0; i< p_fit_mem; i++ ){
   CO[i] = (llong *)malloc(hashsize * sizeof(llong) );
 }
 llong all_ctx_ct = 0 ;
 ctx_obj_ct_t *ctx_ct_list = malloc(sizeof(ctx_obj_ct_t) * seqfile_stat->infile_num);
 if(opt_val->byread){
  for(int i = 0; i< seqfile_stat->infile_num; i++){
   char* seqfname = seqfile_stat->organized_infile_tab[ shuffled_seqfname_ind[i] ].fpath;
   printf("decomposing %s by reads\n",seqfname) ;
   reads2mco(seqfname, co_dir, opt_val->pipecmd);
  }
 }
 else {
  int num_threads = seqfile_stat->infile_num > p_fit_mem ? p_fit_mem : 1;
  int fcount = 0;
#pragma omp parallel for num_threads(num_threads) reduction(+:all_ctx_ct) schedule(guided)
   for(int i = 0; i< seqfile_stat->infile_num; i++){
     int tid = 0;
#ifdef _OPENMP
      tid = omp_get_thread_num();
#endif
      char* seqfname = seqfile_stat->organized_infile_tab[ shuffled_seqfname_ind[i] ].fpath;
      char cofname[PATHLEN];
      sprintf(cofname,"%s/%d.co",co_dir,i);
      llong *co;
      if(isOK_fmt_infile(seqfname,fastq_fmt,FQ_FMT_SZ) || opt_val->pipecmd[0]!='\0'){
    if(opt_val->abundance){
     co = mt_shortreads2koc(seqfname,CO[tid],opt_val->pipecmd, p_fit_mem);
      ctx_ct_list[i] = write_fqkoc2files(cofname,co);
    }
    else{
     co = fastq2co(seqfname,CO[tid],opt_val->pipecmd,opt_val->kmerqlty,opt_val->kmerocrs);
         ctx_ct_list[i] = write_fqco2file(cofname,co);
    }
       }
       else{
    if(opt_val->abundance) {
     opt_val->abundance = 0;
     printf("Warning: close abundance mode (-A) since non-fastq file input.\n");
    }
    if(opt_val->u)
     co = uniq_fasta2co(seqfname,CO[tid],opt_val->pipecmd);
    else
      co = fasta2co(seqfname,CO[tid],opt_val->pipecmd);
        ctx_ct_list[i] = wrt_co2cmpn_use_inn_subctx(cofname,co);
       }
   all_ctx_ct += ctx_ct_list[i] ;
#pragma omp atomic
   fcount++;
   printf("%d/%d decomposing %s\r",fcount,seqfile_stat->infile_num,seqfname) ;
  }
  printf("\n");
#pragma omp parallel for num_threads(p_fit_mem) schedule(guided)
    for(int c = 0; c < component_num; c++){
   size_t *cof_index_in_cbdco = malloc( (seqfile_stat->infile_num + 1) * sizeof(size_t) );
      char tmpfname[PATHLEN];
      FILE *com_cofp,*indexfp, *com_abund_fp;
     sprintf(tmpfname,"%s/%s.%d",co_dir,skch_prefix,c);
   if( (com_cofp = fopen(tmpfname,"wb")) == NULL) err(errno,"%s",tmpfname);
      sprintf(tmpfname,"%s/%s.%d",co_dir,idx_prefix,c);
      if( (indexfp = fopen(tmpfname,"wb")) == NULL) err(errno,"%s",tmpfname);
   if(opt_val->abundance) {
    sprintf(tmpfname,"%s/%s.%d.a",co_dir,skch_prefix,c);
    com_abund_fp = fopen(tmpfname,"wb");
    if( com_abund_fp == NULL) err(errno,"%s",tmpfname);
   }
      void *tmp_mem = malloc( LD_FCTR * 2 * (1LLU << (4*COMPONENT_SZ - CTX_SPC_USE_L)) *sizeof(unsigned int) );
      struct stat tmpstat;
      FILE *tmpfp;
      cof_index_in_cbdco[0] = 0;
      for(int i = 0; i< seqfile_stat->infile_num; i++){
       sprintf(tmpfname,"%s/%d.co.%d", co_dir, i, c);
        if( (tmpfp = fopen(tmpfname,"rb")) == NULL) err(errno,"%s",tmpfname);
        stat(tmpfname,&tmpstat);
        int tmpkmerct = tmpstat.st_size/sizeof(unsigned int);
        cof_index_in_cbdco[i+1] = (size_t)cof_index_in_cbdco[i] + tmpkmerct;
        fread(tmp_mem,tmpstat.st_size,1,tmpfp);
        fwrite(tmp_mem,tmpstat.st_size,1,com_cofp);
        fclose(tmpfp);
        remove(tmpfname);
    if(opt_val->abundance) {
     sprintf(tmpfname,"%s/%d.co.%d.a", co_dir, i, c);
     if( (tmpfp = fopen(tmpfname,"rb")) == NULL) err(errno,"%s",tmpfname);
     fread(tmp_mem, sizeof(unsigned short)*tmpkmerct, 1 , tmpfp);
     fwrite(tmp_mem, sizeof(unsigned short)*tmpkmerct, 1 , com_abund_fp );
     fclose(tmpfp);
     remove(tmpfname);
    }
      }
      fclose(com_cofp);
   if(opt_val->abundance) fclose(com_abund_fp) ;
   free(tmp_mem);
      fwrite(cof_index_in_cbdco,sizeof(size_t), seqfile_stat->infile_num + 1, indexfp);
      fclose(indexfp);
      free(cof_index_in_cbdco);
    }
 }
  for(int i = 0; i< p_fit_mem; i++ ) free(CO[i]);
  free(CO);
  co_dstat_t co_dstat_wrout;
 co_dstat_wrout.shuf_id = dim_shuffle->dim_shuffle_stat.id ;
 co_dstat_wrout.koc = opt_val->abundance ;
 co_dstat_wrout.kmerlen = dim_shuffle->dim_shuffle_stat.k * 2;
 co_dstat_wrout.dim_rd_len = dim_shuffle->dim_shuffle_stat.drlevel * 2 ;
  co_dstat_wrout.comp_num = component_num ;
  co_dstat_wrout.infile_num = seqfile_stat->infile_num;
 co_dstat_wrout.all_ctx_ct = all_ctx_ct;
  char *co_dstat_fullname = malloc(PATHLEN*sizeof(char) );
  sprintf(co_dstat_fullname, "%s/%s",co_dir,co_dstat);
  FILE *coutfp;
  if ( ( coutfp = fopen(co_dstat_fullname,"wb")) == NULL ) err(errno,"%s",co_dstat_fullname);
   fwrite(&co_dstat_wrout,sizeof(co_dstat_wrout),1,coutfp);
 fwrite(ctx_ct_list,sizeof(ctx_obj_ct_t),co_dstat_wrout.infile_num,coutfp);
 free(ctx_ct_list);
 for(int i = 0; i< co_dstat_wrout.infile_num; i++)
  fwrite(seqfile_stat->organized_infile_tab[ shuffled_seqfname_ind[i] ].fpath,PATHLEN,1,coutfp);
  fclose(coutfp);
 return (const char *)co_dstat_fullname;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x390, %rsp            # imm = 0x390
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movl %r8d, -0x24(%rbp)
movslq -0x24(%rbp), %rdi
shlq $0x3, %rdi
callq 0x3310
movq %rax, -0x30(%rbp)
movl $0x0, -0x34(%rbp)
movl -0x34(%rbp), %eax
cmpl -0x24(%rbp), %eax
jge 0x86cd
leaq 0x5bf76(%rip), %rax     # 0x6461c
movl (%rax), %eax
movl %eax, %edi
shlq $0x3, %rdi
callq 0x3310
movq %rax, %rdx
movq -0x30(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x8697
movq $0x0, -0x40(%rbp)
movq -0x10(%rbp), %rax
movslq (%rax), %rdi
shlq $0x2, %rdi
callq 0x3310
movq %rax, -0x48(%rbp)
movq -0x8(%rbp), %rax
testb $0x1, 0x64c(%rax)
je 0x8765
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jge 0x8760
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
movslq -0x4c(%rbp), %rdx
movslq (%rcx,%rdx,4), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rsi
leaq 0x14570(%rip), %rdi     # 0x1cca6
movb $0x0, %al
callq 0x3150
movq -0x58(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x8(%rbp), %rdx
addq $0x44b, %rdx            # imm = 0x44B
callq 0x18240
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x86fd
jmp 0x8dfb
movq -0x10(%rbp), %rax
movl (%rax), %eax
cmpl -0x24(%rbp), %eax
jle 0x877b
movl -0x24(%rbp), %eax
movl %eax, -0x390(%rbp)
jmp 0x8788
movl $0x1, %eax
movl %eax, -0x390(%rbp)
jmp 0x8788
movl -0x390(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl $0x0, -0x60(%rbp)
movl $0x0, -0x64(%rbp)
movl -0x64(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jge 0x89c4
movl $0x0, -0x68(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
movslq -0x64(%rbp), %rdx
movslq (%rcx,%rdx,4), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq %rax, -0x70(%rbp)
leaq -0x170(%rbp), %rdi
movq -0x20(%rbp), %rdx
movl -0x64(%rbp), %ecx
leaq 0x144d2(%rip), %rsi     # 0x1ccbf
movb $0x0, %al
callq 0x3400
movq -0x70(%rbp), %rdi
leaq 0x1b7d1(%rip), %rsi     # 0x23fd0
movl $0x2, %edx
callq 0xad80
cmpl $0x0, %eax
jne 0x8822
movq -0x8(%rbp), %rax
movsbl 0x44b(%rax), %eax
cmpl $0x0, %eax
je 0x88dc
movq -0x8(%rbp), %rax
testb $0x1, 0x449(%rax)
je 0x887b
movq -0x70(%rbp), %rdi
movq -0x30(%rbp), %rax
movslq -0x68(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x8(%rbp), %rdx
addq $0x44b, %rdx            # imm = 0x44B
movl -0x24(%rbp), %ecx
callq 0x1a5e0
movq %rax, -0x178(%rbp)
leaq -0x170(%rbp), %rdi
movq -0x178(%rbp), %rsi
callq 0x19c90
movl %eax, %edx
movq -0x48(%rbp), %rax
movslq -0x64(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
jmp 0x88d7
movq -0x70(%rbp), %rdi
movq -0x30(%rbp), %rax
movslq -0x68(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x8(%rbp), %rdx
addq $0x44b, %rdx            # imm = 0x44B
movq -0x8(%rbp), %rax
movl 0x428(%rax), %ecx
movq -0x8(%rbp), %rax
movl 0x424(%rax), %r8d
callq 0x190d0
movq %rax, -0x178(%rbp)
leaq -0x170(%rbp), %rdi
movq -0x178(%rbp), %rsi
callq 0x1a1a0
movl %eax, %edx
movq -0x48(%rbp), %rax
movslq -0x64(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
jmp 0x897f
movq -0x8(%rbp), %rax
testb $0x1, 0x449(%rax)
je 0x8902
movq -0x8(%rbp), %rax
movb $0x0, 0x449(%rax)
leaq 0x143cd(%rip), %rdi     # 0x1ccc8
movb $0x0, %al
callq 0x3150
movq -0x8(%rbp), %rax
testb $0x1, 0x44a(%rax)
je 0x8938
movq -0x70(%rbp), %rdi
movq -0x30(%rbp), %rax
movslq -0x68(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x8(%rbp), %rdx
addq $0x44b, %rdx            # imm = 0x44B
callq 0x1abc0
movq %rax, -0x178(%rbp)
jmp 0x895f
movq -0x70(%rbp), %rdi
movq -0x30(%rbp), %rax
movslq -0x68(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x8(%rbp), %rdx
addq $0x44b, %rdx            # imm = 0x44B
callq 0x18b30
movq %rax, -0x178(%rbp)
leaq -0x170(%rbp), %rdi
movq -0x178(%rbp), %rsi
callq 0x1a3c0
movl %eax, %edx
movq -0x48(%rbp), %rax
movslq -0x64(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movq -0x48(%rbp), %rax
movslq -0x64(%rbp), %rcx
movl (%rax,%rcx,4), %eax
addq -0x40(%rbp), %rax
movq %rax, -0x40(%rbp)
movl -0x60(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x60(%rbp)
movl -0x60(%rbp), %esi
movq -0x10(%rbp), %rax
movl (%rax), %edx
movq -0x70(%rbp), %rcx
leaq 0x14359(%rip), %rdi     # 0x1cd08
movb $0x0, %al
callq 0x3150
movl -0x64(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x64(%rbp)
jmp 0x879f
leaq 0x165e4(%rip), %rdi     # 0x1efaf
movb $0x0, %al
callq 0x3150
movl $0x0, -0x17c(%rbp)
movl -0x17c(%rbp), %eax
leaq 0x5bc3b(%rip), %rcx     # 0x64624
cmpl (%rcx), %eax
jge 0x8df9
movq -0x10(%rbp), %rax
movl (%rax), %eax
addl $0x1, %eax
movslq %eax, %rdi
shlq $0x3, %rdi
callq 0x3310
movq %rax, -0x188(%rbp)
leaq -0x290(%rbp), %rdi
movq -0x20(%rbp), %rdx
movl -0x17c(%rbp), %r8d
leaq 0x13628(%rip), %rsi     # 0x1c04e
leaq 0x15a2c(%rip), %rcx     # 0x1e459
movb $0x0, %al
callq 0x3400
leaq -0x290(%rbp), %rdi
leaq 0x13618(%rip), %rsi     # 0x1c05a
callq 0x3370
movq %rax, -0x298(%rbp)
cmpq $0x0, %rax
jne 0x8a70
callq 0x3050
movl (%rax), %edi
leaq -0x290(%rbp), %rdx
leaq 0x148dd(%rip), %rsi     # 0x1d346
movb $0x0, %al
callq 0x3300
leaq -0x290(%rbp), %rdi
movq -0x20(%rbp), %rdx
movl -0x17c(%rbp), %r8d
leaq 0x135c5(%rip), %rsi     # 0x1c04e
leaq 0x159d0(%rip), %rcx     # 0x1e460
movb $0x0, %al
callq 0x3400
leaq -0x290(%rbp), %rdi
leaq 0x135b5(%rip), %rsi     # 0x1c05a
callq 0x3370
movq %rax, -0x2a0(%rbp)
cmpq $0x0, %rax
jne 0x8ad3
callq 0x3050
movl (%rax), %edi
leaq -0x290(%rbp), %rdx
leaq 0x1487a(%rip), %rsi     # 0x1d346
movb $0x0, %al
callq 0x3300
movq -0x8(%rbp), %rax
testb $0x1, 0x449(%rax)
je 0x8b49
leaq -0x290(%rbp), %rdi
movq -0x20(%rbp), %rdx
movl -0x17c(%rbp), %r8d
leaq 0x1397d(%rip), %rsi     # 0x1c476
leaq 0x15959(%rip), %rcx     # 0x1e459
movb $0x0, %al
callq 0x3400
leaq -0x290(%rbp), %rdi
leaq 0x13545(%rip), %rsi     # 0x1c05a
callq 0x3370
movq %rax, -0x2a8(%rbp)
cmpq $0x0, -0x2a8(%rbp)
jne 0x8b47
callq 0x3050
movl (%rax), %edi
leaq -0x290(%rbp), %rdx
leaq 0x14806(%rip), %rsi     # 0x1d346
movb $0x0, %al
callq 0x3300
jmp 0x8b49
movl $0x4ccccc, %edi         # imm = 0x4CCCCC
callq 0x3310
movq %rax, -0x2b0(%rbp)
movq -0x188(%rbp), %rax
movq $0x0, (%rax)
movl $0x0, -0x34c(%rbp)
movl -0x34c(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jge 0x8d78
leaq -0x290(%rbp), %rdi
movq -0x20(%rbp), %rdx
movl -0x34c(%rbp), %ecx
movl -0x17c(%rbp), %r8d
leaq 0x1417b(%rip), %rsi     # 0x1cd1e
movb $0x0, %al
callq 0x3400
leaq -0x290(%rbp), %rdi
leaq 0x1349f(%rip), %rsi     # 0x1c057
callq 0x3370
movq %rax, -0x348(%rbp)
cmpq $0x0, %rax
jne 0x8be6
callq 0x3050
movl (%rax), %edi
leaq -0x290(%rbp), %rdx
leaq 0x14767(%rip), %rsi     # 0x1d346
movb $0x0, %al
callq 0x3300
leaq -0x290(%rbp), %rdi
leaq -0x340(%rbp), %rsi
callq 0x32b0
movq -0x310(%rbp), %rax
shrq $0x2, %rax
movl %eax, -0x350(%rbp)
movq -0x188(%rbp), %rax
movslq -0x34c(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
movslq -0x350(%rbp), %rax
addq %rax, %rdx
movq -0x188(%rbp), %rax
movl -0x34c(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movq -0x2b0(%rbp), %rdi
movq -0x310(%rbp), %rsi
movq -0x348(%rbp), %rcx
movl $0x1, %edx
callq 0x30a0
movq -0x2b0(%rbp), %rdi
movq -0x310(%rbp), %rsi
movq -0x298(%rbp), %rcx
movl $0x1, %edx
callq 0x3420
movq -0x348(%rbp), %rdi
callq 0x30e0
leaq -0x290(%rbp), %rdi
callq 0x3060
movq -0x8(%rbp), %rax
testb $0x1, 0x449(%rax)
je 0x8d62
leaq -0x290(%rbp), %rdi
movq -0x20(%rbp), %rdx
movl -0x34c(%rbp), %ecx
movl -0x17c(%rbp), %r8d
leaq 0x14067(%rip), %rsi     # 0x1cd2a
movb $0x0, %al
callq 0x3400
leaq -0x290(%rbp), %rdi
leaq 0x1337f(%rip), %rsi     # 0x1c057
callq 0x3370
movq %rax, -0x348(%rbp)
cmpq $0x0, %rax
jne 0x8d06
callq 0x3050
movl (%rax), %edi
leaq -0x290(%rbp), %rdx
leaq 0x14647(%rip), %rsi     # 0x1d346
movb $0x0, %al
callq 0x3300
movq -0x2b0(%rbp), %rdi
movslq -0x350(%rbp), %rsi
shlq %rsi
movq -0x348(%rbp), %rcx
movl $0x1, %edx
callq 0x30a0
movq -0x2b0(%rbp), %rdi
movslq -0x350(%rbp), %rsi
shlq %rsi
movq -0x2a8(%rbp), %rcx
movl $0x1, %edx
callq 0x3420
movq -0x348(%rbp), %rdi
callq 0x30e0
leaq -0x290(%rbp), %rdi
callq 0x3060
jmp 0x8d64
movl -0x34c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34c(%rbp)
jmp 0x8b72
movq -0x298(%rbp), %rdi
callq 0x30e0
movq -0x8(%rbp), %rax
testb $0x1, 0x449(%rax)
je 0x8d9d
movq -0x2a8(%rbp), %rdi
callq 0x30e0
movq -0x2b0(%rbp), %rdi
callq 0x3040
movq -0x188(%rbp), %rdi
movq -0x10(%rbp), %rax
movl (%rax), %eax
addl $0x1, %eax
movslq %eax, %rdx
movq -0x2a0(%rbp), %rcx
movl $0x8, %esi
callq 0x3420
movq -0x2a0(%rbp), %rdi
callq 0x30e0
movq -0x188(%rbp), %rdi
callq 0x3040
movl -0x17c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x17c(%rbp)
jmp 0x89dc
jmp 0x8dfb
movl $0x0, -0x354(%rbp)
movl -0x354(%rbp), %eax
cmpl -0x24(%rbp), %eax
jge 0x8e35
movq -0x30(%rbp), %rax
movslq -0x354(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x3040
movl -0x354(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x354(%rbp)
jmp 0x8e05
movq -0x30(%rbp), %rdi
callq 0x3040
leaq 0x5b7bb(%rip), %rax     # 0x64600
movq (%rax), %rax
movl (%rax), %eax
movl %eax, -0x378(%rbp)
movq -0x8(%rbp), %rax
movb 0x449(%rax), %al
andb $0x1, %al
movb %al, -0x374(%rbp)
leaq 0x5b797(%rip), %rax     # 0x64600
movq (%rax), %rax
movl 0x4(%rax), %eax
shll %eax
movl %eax, -0x370(%rbp)
leaq 0x5b782(%rip), %rax     # 0x64600
movq (%rax), %rax
movl 0xc(%rax), %eax
shll %eax
movl %eax, -0x36c(%rbp)
leaq 0x5b791(%rip), %rax     # 0x64624
movl (%rax), %eax
movl %eax, -0x368(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x364(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x360(%rbp)
movl $0x100, %edi            # imm = 0x100
callq 0x3310
movq %rax, -0x380(%rbp)
movq -0x380(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq 0x13456(%rip), %rsi     # 0x1c32b
leaq 0x13814(%rip), %rcx     # 0x1c6f0
movb $0x0, %al
callq 0x3400
movq -0x380(%rbp), %rdi
leaq 0x13169(%rip), %rsi     # 0x1c05a
callq 0x3370
movq %rax, -0x388(%rbp)
cmpq $0x0, %rax
jne 0x8f1f
callq 0x3050
movl (%rax), %edi
movq -0x380(%rbp), %rdx
leaq 0x1442e(%rip), %rsi     # 0x1d346
movb $0x0, %al
callq 0x3300
movq -0x388(%rbp), %rcx
leaq -0x378(%rbp), %rdi
movl $0x20, %esi
movl $0x1, %edx
callq 0x3420
movq -0x48(%rbp), %rdi
movslq -0x364(%rbp), %rdx
movq -0x388(%rbp), %rcx
movl $0x4, %esi
callq 0x3420
movq -0x48(%rbp), %rdi
callq 0x3040
movl $0x0, -0x38c(%rbp)
movl -0x38c(%rbp), %eax
cmpl -0x364(%rbp), %eax
jge 0x8fc2
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
movslq -0x38c(%rbp), %rdx
movslq (%rcx,%rdx,4), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdi
movq -0x388(%rbp), %rcx
movl $0x100, %esi            # imm = 0x100
movl $0x1, %edx
callq 0x3420
movl -0x38c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38c(%rbp)
jmp 0x8f6b
movq -0x388(%rbp), %rdi
callq 0x30e0
movq -0x380(%rbp), %rax
addq $0x390, %rsp            # imm = 0x390
popq %rbp
retq
nop