// File: /workspace/github_c_makefile_star2_O0/mishun[P]plantri/fullgen.c
// Function: main
int main(argc,argv)

int argc; char *argv[];

{ int sechsecke, i, puffer, do_case;
  char strpuf[filenamenlaenge], strpuf2[filenamenlaenge], strdummy[filenamenlaenge];
  struct stat buf;
  char name[4];     /* TH - fuer die Option "symm" */

#ifndef NOTIMES
  clock_t savetime=0, buffertime;
  struct tms TMS;
#endif //NOTIMES

  int separate_logfile = 1;

#ifdef __GNUC__
#ifdef __alpha__
fprintf(stderr,"With gcc on alphas some errors might occur if you use -O3 or more.\n");
fprintf(stderr,"This is a bug of the compiler.\n");
fprintf(stderr,"Please use cc on alphas -- the result will be a faster program anyway.\n");
exit(0);
#endif
#endif


for (i=1;i<=N;i++) graphenzahl[i]=non_iso_graphenzahl[i]=0;

do_brille=do_sandwich=do_bauchbinde=1;

do_case=0;


symmstring[0] = 0;       /* TH - Filekennung loeschen */

if (argc<2) exit(93);


knotenzahl=atoi(argv[1]);
if ((knotenzahl%2) || (knotenzahl<20)) { fprintf(stderr,"Impossible vertex number. \n"); exit(94); }

min_sechsecke=max_sechsecke=sechsecke=(knotenzahl-20)/2;


if (knotenzahl >= leer) { fprintf(stderr,"Number of vertices too large for the data-types used. \n"); exit(95); }
if (aussen >= leer) { fprintf(stderr,"Definition of \"S\" too large for the data-types used. \n"); exit(96); }
if (S+12 > FL_MAX) { fprintf(stderr,"Definition of \"S\" too large for the data-types used for FLAECHENTYP. \n");
		     exit(97); }

if (sechsecke > S) { fprintf(stderr,"Fix the constant \"S\" to at least %d\n",sechsecke); exit(98); }

codenumber=listenlaenge=0;

for (i=2; i<argc; i++)
    switch (argv[i][0])
      {
      case 'i': { if (strcmp(argv[i],"ipr")==0) IPR=1;
		    else { fprintf(stderr,"Nonidentified option: %s \n",argv[i]); exit(99); }
		  break; }

      case 'h': { if (strcmp(argv[i],"hexspi")==0) hexspi=1;
		    else { fprintf(stderr,"Nonidentified option: %s \n",argv[i]); exit(100); }
		  break; }

      case 's': { if (strcmp(argv[i],"start")==0)
		    { i++; puffer=atoi(argv[i]); 
		      if ((puffer%2) || (puffer<20)) 
			{ fprintf(stderr,"Impossible vertex number to start. \n"); exit(101); }
		      min_sechsecke=(puffer-20)/2; }
                    else
		      if (strcmp(argv[i],"stdout")==0) to_stdout=1;
                    else
		      if (strcmp(argv[i],"spistat")==0) spistat=1;
                    else
		      if (strcmp(argv[i],"spiralcheck")==0) spiralcheck=1;
                    else
                      if (strcmp(argv[i],"symstat")==0) symstat=1;   /* TH */
                    else
                      if (strcmp(argv[i],"symm")==0) {               /* TH */
                        int j=28, ii;
                        BOOL gefunden = False;
 			symstat=1;                /* immer -- kostet ja nichts extra */
                        i++;
                        if (i<argc) {
                          while (j>0 && !gefunden) {
                            for (ii=0; ii<=3; ii++) {
                              name[ii] = (symm_name[j][ii]==' ') ? '\0' : symm_name[j][ii]; 
                            }
                            if (strcmp(argv[i],name)==0) {      /* Symmetrie j gefunden */
                              gefunden = True;
                              if (!vergleiche_symm(j))   /* Symmetrie noch nicht in Liste */
                                {symm[symm_len++] = j;  
                                 strcat(symmstring,(char *)"_"); strcat(symmstring,name);}
                            } 
                            j--;
                          }
                        }
                        if (!gefunden) 
                           {fprintf(stderr,"Unknown symmetry identifier. \n"); exit(102);}
                        break;
                      }  /* if */ 
		    else { fprintf(stderr,"Nonidentified option: %s \n",argv[i]); exit(103); }
		  break; }
      case 'c': { if (strcmp(argv[i],"code")==0)
		    { i++; codenumber=atoi(argv[i]); }
		  else
		    if (strcmp(argv[i],"case")==0)
		    { i++; do_case=atoi(argv[i]);
		      switch (do_case)
			{ case 1: { do_brille=do_sandwich=0; do_bauchbinde=1; break; }
			  case 2: { do_brille=1; do_sandwich=do_bauchbinde=0; break; }
			  case 3: { do_brille=do_bauchbinde=0; do_sandwich=1; break; }
			 default: { fprintf(stderr,"No such case !\n"); exit(104); }
			}
		      }
		    else { fprintf(stderr,"Nonidentified option: %s \n",argv[i]); exit(105); }
		  break; }
      case 'p': { if (strcmp(argv[i],"pid")==0) {fprintf(stdout,"%d\n",getpid());  fflush(stdout);}
                  else {fprintf(stderr,"Nonidentified option: %s \n",argv[i]); exit(119);}
                  break;
                }   
      case 'q': { if (strcmp(argv[i],"quiet")==0) quiet=1;
                  else {fprintf(stderr,"Nonidentified option: %s \n",argv[i]); exit(120);}
                  break;
                }   
      case 'l': { if (strcmp(argv[i],"list")==0)
		    { i++; listenlaenge=atoi(argv[i]); }
		  else if (strcmp(argv[i],"logerr")==0) {
		    logfile = stderr;
		    separate_logfile = 0;
		  }
		  else { fprintf(stderr,"Nonidentified option: %s \n",argv[i]); exit(106); }
		  break; }

      case 'm': { if (strcmp(argv[i],"mod")==0)
		    { i++; rest=atoi(argv[i]); i++; mod=atoi(argv[i]);
		      if ((mod<=0) || (rest<0) || (rest>=mod))
		        { fprintf(stderr,"Bad values for option mod \n"); exit(0); }
		    }
		    else { fprintf(stderr,"Nonidentified option: %s \n",argv[i]); exit(106); }
		  break; }



      default: { fprintf(stderr,"Nonidentified option: %s \n",argv[i]); exit(107); }
      }


switch (codenumber)
  {
  case 0: break;
  case 1:
  case 8: { for (i=20+(2*min_sechsecke); i<=knotenzahl; i+=2)
	      { if (IPR) sprintf(strpuf,"Full_codes_%d_ipr",i);
		  else sprintf(strpuf,"Full_codes_%d",i);
		if (do_case) { sprintf(strpuf2,"_c%d",do_case); strcat(strpuf,strpuf2); }
		if (mod) { sprintf(strpuf2,"_m_%d_%d",rest,mod); strcat(strpuf,strpuf2); }
                if (symm_len>0)    {strcat(strpuf,symmstring);}
		if (to_stdout) fil[i]=stdout; else fil[i]=fopen(strpuf,"wb");
		if (!to_stdout) write_header_fil[i]=1;
	        if (fil[i]==nil) { fprintf(stderr,"Can not open file %s. \n",strpuf); exit(109);}
	      }
	    break; }
  case 2: { for (i=20+(2*min_sechsecke); i<=knotenzahl; i+=2)
	      { if (IPR) sprintf(strpuf,"Spiral_codes_%d_ipr",i);
		  else sprintf(strpuf,"Spiral_codes_%d",i);
		if (do_case) { sprintf(strpuf2,"_c%d",do_case); strcat(strpuf,strpuf2); }
		if (mod) { sprintf(strpuf2,"_m_%d_%d",rest,mod); strcat(strpuf,strpuf2); }
                if (symm_len>0)    {strcat(strpuf,symmstring);}
		if (to_stdout) fil[i]=stdout; else fil[i]=fopen(strpuf,"wb");
		if (!to_stdout) write_header_fil[i]=1;
	        if (fil[i]==nil) { fprintf(stderr,"Can not open file %s. \n",strpuf); exit(110);}
	      }
	    spiralcheck=1;
	    last_code[0]=FL_MAX;
	    break; }
  case 3: { spiralcheck=1;
            if (listenlaenge==0) listenlaenge=2000;
            for (i=20+(2*min_sechsecke); i<=knotenzahl; i+=2)
	      { (codeliste[i].code)[0]=0;
		if (IPR) sprintf(strpuf,"Spiral_codes_%d_ipr",i);
		  else sprintf(strpuf,"Spiral_codes_%d",i);
		if (do_case) { sprintf(strpuf2,"_c%d",do_case); strcat(strpuf,strpuf2); }
		if (mod) { sprintf(strpuf2,"_m_%d_%d",rest,mod); strcat(strpuf,strpuf2); }
                if (symm_len>0)    {strcat(strpuf,symmstring);}
		if (to_stdout) fil[i]=stdout; else fil[i]=fopen(strpuf,"wb");
                if (!to_stdout) write_header_fil[i]=1;
	        if (fil[i]==nil) { fprintf(stderr,"Can not open file %s. \n",strpuf); exit(111);}
		lastcode[i]=(FLAECHENTYP **)malloc(sizeof(FLAECHENTYP *));
		if (lastcode[i] ==nil) { fprintf(stderr,"Can not get memory for lastcode. \n"); exit(112); }
		(*(lastcode[i]))=(FLAECHENTYP *)malloc(sizeof(FLAECHENTYP)*12);
		(*(lastcode[i]))[0]=FL_MAX;
	      }
	    break; }
  case 4: spiralcheck=1; break; /* Nur nicht-spiral-codes schreiben */
  case 5: { spiralcheck=1;
            for (i=20+(2*min_sechsecke); i<=knotenzahl; i+=2)
	      { if (IPR) sprintf(strpuf,"Full_codes_%d_ipr",i);
		  else sprintf(strpuf,"Full_codes_%d",i);
		if (do_case) { sprintf(strpuf2,"_c%d",do_case); strcat(strpuf,strpuf2); }
		if (mod) { sprintf(strpuf2,"_m_%d_%d",rest,mod); strcat(strpuf,strpuf2); }
                if (symm_len>0)    {strcat(strpuf,symmstring);}
		if (to_stdout) fil[i]=stdout; else fil[i]=fopen(strpuf,"wb");
	        if (fil[i]==nil) { fprintf(stderr,"Can not open file %s. \n",strpuf); exit(113);}
                if (!to_stdout) write_header_fil[i]=1;
	      }
	    break; }

  case 6: { break; }

  case 7: { break; }

  default: { fprintf(stderr,"No coding number %d. \n", codenumber); exit(114); }
  }

if (hexspi && !spiralcheck) 
  { fprintf(stderr,"The option \"hexspi\" must be used together with some code involving spiral checking \n");
    exit(115); }

if (spistat && (min_sechsecke != max_sechsecke)) 
  { fprintf(stderr,"The option \"spistat\" must be used only for fullerenes of ONE size \n");
    exit(116); }

if (spistat) for (i=0; i<=12*max_sechsecke+120; i++) spiralnumbers[i]=0;


if (IPR)
  {  if (min_sechsecke==max_sechsecke) sprintf(logfilename,"Full_gen_%d_ipr",knotenzahl);
    else sprintf(logfilename,"Full_gen_%d_%d_ipr",knotenzahl,(2*min_sechsecke)+20); }
else
  {  if (min_sechsecke==max_sechsecke) sprintf(logfilename,"Full_gen_%d",knotenzahl);
  else sprintf(logfilename,"Full_gen_%d_%d",knotenzahl,(2*min_sechsecke)+20); }

  if (do_case) { sprintf(strpuf2,"_c%d",do_case); strcat(logfilename,strpuf2); }
  if (mod) { sprintf(strpuf2,"_m_%d_%d",rest,mod); strcat(logfilename,strpuf2); }
  if (spiralcheck) { sprintf(no_spiral_filename,"No_spiral_");
		     strcat(no_spiral_filename,logfilename+9);
		     sprintf(strdummy,"rm %s",no_spiral_filename);
		     if (!stat(strdummy,&buf)) {
                         if(system (strdummy)==-1){
                             fprintf(stderr,"Could not execute system call.\n");
                         }
                     }
		     sprintf(no_penta_spiral_filename,"No_pentagon_spiral_");
		     strcat(no_penta_spiral_filename,logfilename+9);
		     sprintf(strdummy,"rm %s",no_penta_spiral_filename);
		     if (!stat(strdummy,&buf)) {
                         if(system (strdummy)==-1){
                             fprintf(stderr,"Could not execute system call.\n");
                         }
                     }
		      }
  if (hexspi) { sprintf(no_hexa_spiral_filename,"No_hexagon_spiral_");
		strcat(no_hexa_spiral_filename,logfilename+9);
		sprintf(strdummy,"rm %s",no_hexa_spiral_filename);
		if (!stat(strdummy,&buf)) {
                     if(system (strdummy)==-1){
                         fprintf(stderr,"Could not execute system call.\n");
                     }
                }
	      }

if (!quiet)
  {
    strcat(logfilename,".log");
    if (separate_logfile) logfile=fopen(logfilename,"w");
    if (logfile==nil) { fprintf(stderr,"Can not open file %s. \n",logfilename); exit(118);}
    fprintf(logfile,"Minimal vertex number: %d \n",(2*min_sechsecke)+20);
    fprintf(logfile,"Maximal vertex number: %d \n",knotenzahl);
    fprintf(logfile,"Code_type: %d \n",codenumber);
    if (codenumber==3) fprintf(logfile,"List length: %d \n",listenlaenge);
    if (separate_logfile) fclose(logfile);
  }


initialize_list();

baue_patches(sechsecke); 
#ifndef NOTIMES
times(&TMS);
savetime= TMS.tms_utime;
if (!quiet) 
  { fprintf(stderr,"Time for generating the patches: %.1f seconds \n",(double)savetime/time_factor);
    if (separate_logfile) {
      logfile=fopen(logfilename,"a");
      fprintf(logfile,"Time for generating the patches: %.1f seconds \n",(double)savetime/time_factor);
      fclose(logfile);
    }
  }
#endif //NOTIMES

if (do_bauchbinde)
{
bauchbinde(min_sechsecke,max_sechsecke);
#ifndef NOTIMES
times(&TMS);
buffertime= TMS.tms_utime;
if (!quiet) 
  { fprintf(stderr,"Time for case 1 (Jordan-Curve Petrie Path): %.1f seconds \n",(double)(buffertime-savetime)/time_factor);
    if (separate_logfile) {
      logfile=fopen(logfilename,"a");
      fprintf(logfile,"Time for case 1 (Jordan-Curve Petrie Path): %.1f seconds \n",(double)(buffertime-savetime)/time_factor);
      fclose(logfile);
    }
  }
savetime=buffertime;
#endif //NOTIMES
}

if (do_brille)
{
brille(min_sechsecke,max_sechsecke);
#ifndef NOTIMES
times(&TMS);
buffertime= TMS.tms_utime;
if (!quiet) 
  { fprintf(stderr,"Time for case 2 (Dumb-bell): %.1f seconds \n",(double)(buffertime-savetime)/time_factor);
    if (separate_logfile) {
      logfile=fopen(logfilename,"a");
      fprintf(logfile,"Time for case 2 (Dumb-bell): %.1f seconds \n",(double)(buffertime-savetime)/time_factor);
      fclose(logfile);
    }
    savetime=buffertime;
  }
#endif //NOTIMES
}

if (do_sandwich)
{
sandwich(min_sechsecke,max_sechsecke);
#ifndef NOTIMES
times(&TMS);
buffertime= TMS.tms_utime;
if (!quiet) 
  { fprintf(stderr,"Time for case 3 (Sandwich): %.1f seconds \n\n",(double)(buffertime-savetime)/time_factor);
    if (separate_logfile) {
      logfile=fopen(logfilename,"a");
      fprintf(logfile,"Time for case 3 (Sandwich): %.1f seconds \n\n",(double)(buffertime-savetime)/time_factor);
      fclose(logfile);
    }
  }
#endif //NOTIMES
}

if (codenumber==3) 
  for (i=20+(2*min_sechsecke); i<=knotenzahl; i++) ausgabe(codeliste+i,i,lastcode[i]);


if (!quiet) 
 { 
   fprintf(stderr,"MAPLIST: number of patches: %d\n",mapliste.total_maps);
   fprintf(stderr,"BBLIST: number of items in list: %d  number of patches: %d\n\n",bbliste.total_items,bbliste.total_maps);
   for (i=20+(2*min_sechsecke); i<=20+(2*max_sechsecke); i+=2)
     fprintf(stderr,"Generated %lld maps on %d vertices -- reduced to %lld non-isomorphic maps. \n",non_iso_graphenzahl[i],i,graphenzahl[i]);
   if (spistat) for (i=0; i<=12*max_sechsecke+120; i++) 
     if (spiralnumbers[i]) fprintf(stderr,"Fullerenes with %d spirals: %d \n",i,spiralnumbers[i]);
   if (spiralcheck) fprintf(stderr,"Graphs without a spiral starting at a pentagon: %d \n",no_penta_spiral);
   if (hexspi) fprintf(stderr,"Graphs without a spiral starting at a hexagon: %d \n",no_hexa_spiral);
   if (symstat) schreibe_symmetriestatistik();
#ifndef NOTIMES 
  fprintf(stderr,"\nTotal generation time: %.1f seconds \n",(double)buffertime/time_factor);
#endif //NOTIMES   
   fprintf(stderr,"end of program\n");
   
   if (separate_logfile) {
     logfile=fopen(logfilename,"a");
     fprintf(logfile,"MAPLIST: number of patches: %d\n",mapliste.total_maps);
     fprintf(logfile,"BBLIST: number of items in list: %d  number of patches: %d\n\n",bbliste.total_items,bbliste.total_maps);
     for (i=20+(2*min_sechsecke); i<=20+(2*max_sechsecke); i+=2)
       fprintf(logfile,"Generated %lld maps on %d vertices -- reduced to %lld non-isomorphic maps. \n",non_iso_graphenzahl[i],i,graphenzahl[i]);
     if (spistat) for (i=0; i<=12*max_sechsecke+120; i++) 
       if (spiralnumbers[i]) fprintf(logfile,"Fullerenes with %d spirals: %d \n",i,spiralnumbers[i]);
     if (spiralcheck) fprintf(logfile,"Graphs without a spiral starting at a pentagon: %d \n",no_penta_spiral);
     if (hexspi) fprintf(logfile,"Graphs without a spiral starting at a hexagon: %d \n",no_hexa_spiral);
     if (symstat) {    /* schreibe Symmetriestatistik */
       int j=0;
       fprintf(logfile,"Symmetries:\n");
       for (i=1; i<=28; i++) {
	 if (symm_anz[i]>0) {
	   fprintf(logfile,"  %s: %10d ",symm_name[i],symm_anz[i]); 
	   j++;
	   if (j%4==0) {fprintf(logfile,"\n");}
	 }
       }
       if (j%4) {fprintf(logfile,"\n");}
     }        
#ifndef NOTIMES
     fprintf(logfile,"\nTotal generation time: %.1f seconds \n",(double)buffertime/time_factor);
#endif //NOTIMES     
     fprintf(logfile,"end of program\n");
   }
 }

return(0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x440, %rsp            # imm = 0x440
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x330(%rbp)
movl $0x1, -0x35c(%rbp)
movl $0x1, -0x18(%rbp)
cmpl $0x244, -0x18(%rbp)     # imm = 0x244
jg 0x15a4f
movslq -0x18(%rbp), %rcx
leaq 0x120e7(%rip), %rax     # 0x27b10
movq $0x0, (%rax,%rcx,8)
movslq -0x18(%rbp), %rcx
leaq 0xec84(%rip), %rax      # 0x246c0
movq $0x0, (%rax,%rcx,8)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x15a15
movb $0x1, 0x11e66(%rip)     # 0x278bc
movb $0x1, 0x119b3(%rip)     # 0x27410
movb $0x1, 0x119ad(%rip)     # 0x27411
movl $0x0, -0x20(%rbp)
movb $0x0, 0x132ce(%rip)     # 0x28d40
cmpl $0x2, -0x8(%rbp)
jge 0x15a82
movl $0x5d, %edi
callq 0x1120
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x10f0
movl %eax, 0x1331f(%rip)     # 0x28db4
movl 0x13319(%rip), %eax     # 0x28db4
movl $0x2, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
jne 0x15ab1
cmpl $0x14, 0x13305(%rip)    # 0x28db4
jge 0x15ad3
movq 0x6540(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
leaq 0x32e5(%rip), %rsi      # 0x18da7
movb $0x0, %al
callq 0x1080
movl $0x5e, %edi
callq 0x1120
movl 0x132db(%rip), %eax     # 0x28db4
subl $0x14, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, -0x14(%rbp)
movl %eax, 0x11dcb(%rip)     # 0x278b8
movl %eax, 0x132c5(%rip)     # 0x28db8
cmpl $0xfffe, 0x132b7(%rip)  # imm = 0xFFFE
jl 0x15b21
movq 0x64f2(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
leaq 0x32b3(%rip), %rsi      # 0x18dc3
movb $0x0, %al
callq 0x1080
movl $0x5f, %edi
callq 0x1120
cmpl $0x8c, -0x14(%rbp)
jle 0x15b4f
movq 0x64c7(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
movl -0x14(%rbp), %edx
leaq 0x32bd(%rip), %rsi      # 0x18dfb
movb $0x0, %al
callq 0x1080
movl $0x62, %edi
callq 0x1120
movl $0x0, 0xfd8f(%rip)      # 0x258e8
movl $0x0, 0x98c5(%rip)      # 0x1f428
movl $0x2, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl -0x8(%rbp), %eax
jge 0x16397
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movsbl (%rax), %eax
addl $-0x63, %eax
movl %eax, %ecx
movq %rcx, -0x378(%rbp)
subl $0x10, %eax
ja 0x16359
movq -0x378(%rbp), %rax
leaq 0x2864(%rip), %rcx      # 0x1840c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x349f(%rip), %rsi      # 0x19063
callq 0x1070
cmpl $0x0, %eax
jne 0x15bd7
movb $0x1, 0x65ac(%rip)      # 0x1c181
jmp 0x15c05
movq 0x641a(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x322c(%rip), %rsi      # 0x18e20
movb $0x0, %al
callq 0x1080
movl $0x63, %edi
callq 0x1120
jmp 0x16387
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x321e(%rip), %rsi      # 0x18e3b
callq 0x1070
cmpl $0x0, %eax
jne 0x15c30
movb $0x1, 0x6555(%rip)      # 0x1c183
jmp 0x15c5e
movq 0x63c1(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x31d3(%rip), %rsi      # 0x18e20
movb $0x0, %al
callq 0x1080
movl $0x64, %edi
callq 0x1120
jmp 0x16387
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x31cc(%rip), %rsi      # 0x18e42
callq 0x1070
cmpl $0x0, %eax
jne 0x15cee
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x10f0
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
jne 0x15cb3
cmpl $0x14, -0x1c(%rbp)
jge 0x15cd5
movq 0x633e(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
leaq 0x3184(%rip), %rsi      # 0x18e48
movb $0x0, %al
callq 0x1080
movl $0x65, %edi
callq 0x1120
movl -0x1c(%rbp), %eax
subl $0x14, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, 0x130cf(%rip)     # 0x28db8
jmp 0x15fa6
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x316c(%rip), %rsi      # 0x18e6d
callq 0x1070
cmpl $0x0, %eax
jne 0x15d17
movb $0x1, 0x6470(%rip)      # 0x1c182
jmp 0x15fa4
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x314a(%rip), %rsi      # 0x18e74
callq 0x1070
cmpl $0x0, %eax
jne 0x15d40
movb $0x1, 0x6449(%rip)      # 0x1c184
jmp 0x15fa2
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3129(%rip), %rsi      # 0x18e7c
callq 0x1070
cmpl $0x0, %eax
jne 0x15d69
movb $0x1, 0x6421(%rip)      # 0x1c185
jmp 0x15fa0
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x310c(%rip), %rsi      # 0x18e88
callq 0x1070
cmpl $0x0, %eax
jne 0x15d92
movb $0x1, 0x6403(%rip)      # 0x1c190
jmp 0x15f9e
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x30eb(%rip), %rsi      # 0x18e90
callq 0x1070
cmpl $0x0, %eax
jne 0x15f70
movl $0x1c, -0x360(%rbp)
movb $0x0, -0x365(%rbp)
movb $0x1, 0x63c5(%rip)      # 0x1c190
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl -0x8(%rbp), %eax
jge 0x15f40
jmp 0x15de2
xorl %eax, %eax
cmpl $0x0, -0x360(%rbp)
movb %al, -0x379(%rbp)
jle 0x15e05
cmpb $0x0, -0x365(%rbp)
setne %al
xorb $-0x1, %al
movb %al, -0x379(%rbp)
movb -0x379(%rbp), %al
testb $0x1, %al
jne 0x15e14
jmp 0x15f3e
movl $0x0, -0x364(%rbp)
cmpl $0x3, -0x364(%rbp)
jg 0x15ea6
movslq -0x360(%rbp), %rcx
leaq 0x627b(%rip), %rax      # 0x1c0b0
shlq $0x2, %rcx
addq %rcx, %rax
movslq -0x364(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x20, %eax
jne 0x15e56
xorl %eax, %eax
movl %eax, -0x380(%rbp)
jmp 0x15e7c
movslq -0x360(%rbp), %rcx
leaq 0x624c(%rip), %rax      # 0x1c0b0
shlq $0x2, %rcx
addq %rcx, %rax
movslq -0x364(%rbp), %rcx
movsbl (%rax,%rcx), %eax
movl %eax, -0x380(%rbp)
movl -0x380(%rbp), %eax
movb %al, %cl
movslq -0x364(%rbp), %rax
movb %cl, -0x324(%rbp,%rax)
movl -0x364(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x364(%rbp)
jmp 0x15e1e
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq -0x324(%rbp), %rsi
callq 0x1070
cmpl $0x0, %eax
jne 0x15f2a
movb $0x1, -0x365(%rbp)
movl -0x360(%rbp), %eax
movsbl %al, %edi
callq 0x12360
cmpb $0x0, %al
jne 0x15f28
movl -0x360(%rbp), %eax
movb %al, %dl
movl 0x6356(%rip), %eax      # 0x1c240
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, 0x634b(%rip)      # 0x1c240
movslq %eax, %rcx
leaq 0x6321(%rip), %rax      # 0x1c220
movb %dl, (%rax,%rcx)
leaq 0x12e37(%rip), %rdi     # 0x28d40
leaq 0x31b5(%rip), %rsi      # 0x190c5
callq 0x1100
leaq -0x324(%rbp), %rsi
leaq 0x12e1d(%rip), %rdi     # 0x28d40
callq 0x1100
jmp 0x15f2a
movl -0x360(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x360(%rbp)
jmp 0x15de2
jmp 0x15f40
cmpb $0x0, -0x365(%rbp)
jne 0x15f6b
movq 0x60a8(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
leaq 0x2f3b(%rip), %rsi      # 0x18e95
movb $0x0, %al
callq 0x1080
movl $0x66, %edi
callq 0x1120
jmp 0x16387
movq 0x6081(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x2e93(%rip), %rsi      # 0x18e20
movb $0x0, %al
callq 0x1080
movl $0x67, %edi
callq 0x1120
jmp 0x15fa0
jmp 0x15fa2
jmp 0x15fa4
jmp 0x15fa6
jmp 0x16387
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2ef6(%rip), %rsi      # 0x18eb4
callq 0x1070
cmpl $0x0, %eax
jne 0x15fed
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x10f0
movl %eax, 0x9440(%rip)      # 0x1f428
jmp 0x160ed
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2eb9(%rip), %rsi      # 0x18eb9
callq 0x1070
cmpl $0x0, %eax
jne 0x160bd
movl -0x18(%rbp), %eax
incl %eax
movl %eax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x10f0
movl %eax, -0x20(%rbp)
movl -0x20(%rbp), %eax
movl %eax, -0x384(%rbp)
subl $0x1, %eax
je 0x16054
jmp 0x1603a
movl -0x384(%rbp), %eax
subl $0x2, %eax
je 0x1606b
jmp 0x16047
movl -0x384(%rbp), %eax
subl $0x3, %eax
je 0x16082
jmp 0x16099
movb $0x0, 0x113b5(%rip)     # 0x27410
movb $0x0, 0x113af(%rip)     # 0x27411
movb $0x1, 0x11853(%rip)     # 0x278bc
jmp 0x160bb
movb $0x1, 0x1139f(%rip)     # 0x27411
movb $0x0, 0x11843(%rip)     # 0x278bc
movb $0x0, 0x11390(%rip)     # 0x27410
jmp 0x160bb
movb $0x0, 0x11833(%rip)     # 0x278bc
movb $0x0, 0x11381(%rip)     # 0x27411
movb $0x1, 0x11379(%rip)     # 0x27410
jmp 0x160bb
movq 0x5f58(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
leaq 0x2e14(%rip), %rsi      # 0x18ebe
movb $0x0, %al
callq 0x1080
movl $0x68, %edi
callq 0x1120
jmp 0x160eb
movq 0x5f34(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x2d46(%rip), %rsi      # 0x18e20
movb $0x0, %al
callq 0x1080
movl $0x69, %edi
callq 0x1120
jmp 0x160ed
jmp 0x16387
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2dc9(%rip), %rsi      # 0x18ece
callq 0x1070
cmpl $0x0, %eax
jne 0x1614d
movq 0x5ec2(%rip), %rax      # 0x1bfd8
movq (%rax), %rax
movq %rax, -0x390(%rbp)
callq 0x1040
movq -0x390(%rbp), %rdi
movl %eax, %edx
leaq 0x2899(%rip), %rsi      # 0x189ce
movb $0x0, %al
callq 0x1080
movq 0x5e95(%rip), %rax      # 0x1bfd8
movq (%rax), %rdi
callq 0x10b0
jmp 0x1617b
movq 0x5ea4(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x2cb6(%rip), %rsi      # 0x18e20
movb $0x0, %al
callq 0x1080
movl $0x77, %edi
callq 0x1120
jmp 0x16387
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2d3f(%rip), %rsi      # 0x18ed2
callq 0x1070
cmpl $0x0, %eax
jne 0x161a6
movb $0x1, 0x5fdc(%rip)      # 0x1c180
jmp 0x161d4
movq 0x5e4b(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x2c5d(%rip), %rsi      # 0x18e20
movb $0x0, %al
callq 0x1080
movl $0x78, %edi
callq 0x1120
jmp 0x16387
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2cec(%rip), %rsi      # 0x18ed8
callq 0x1070
cmpl $0x0, %eax
jne 0x16218
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x10f0
movl %eax, 0xf6d2(%rip)      # 0x258e8
jmp 0x16282
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2cb2(%rip), %rsi      # 0x18edd
callq 0x1070
cmpl $0x0, %eax
jne 0x16252
movq 0x5dbc(%rip), %rax      # 0x1bff8
movq (%rax), %rax
movq %rax, 0x12b7a(%rip)     # 0x28dc0
movl $0x0, -0x35c(%rbp)
jmp 0x16280
movq 0x5d9f(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x2bb1(%rip), %rsi      # 0x18e20
movb $0x0, %al
callq 0x1080
movl $0x6a, %edi
callq 0x1120
jmp 0x16282
jmp 0x16387
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2c4a(%rip), %rsi      # 0x18ee4
callq 0x1070
cmpl $0x0, %eax
jne 0x16329
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x10f0
movl %eax, 0x5ec4(%rip)      # 0x1c18c
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x10f0
movl %eax, 0x5ea0(%rip)      # 0x1c188
cmpl $0x0, 0x5e99(%rip)      # 0x1c188
jle 0x16308
cmpl $0x0, 0x5e94(%rip)      # 0x1c18c
jl 0x16308
movl 0x5e8c(%rip), %eax      # 0x1c18c
cmpl 0x5e82(%rip), %eax      # 0x1c188
jl 0x16327
movq 0x5ce9(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
leaq 0x2bcf(%rip), %rsi      # 0x18ee8
movb $0x0, %al
callq 0x1080
xorl %edi, %edi
callq 0x1120
jmp 0x16357
movq 0x5cc8(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x2ada(%rip), %rsi      # 0x18e20
movb $0x0, %al
callq 0x1080
movl $0x6a, %edi
callq 0x1120
jmp 0x16387
movq 0x5c98(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x2aaa(%rip), %rsi      # 0x18e20
movb $0x0, %al
callq 0x1080
movl $0x6b, %edi
callq 0x1120
jmp 0x16389
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x15b6a
movl 0x908b(%rip), %eax      # 0x1f428
movq %rax, -0x398(%rbp)
subq $0x8, %rax
ja 0x16af5
movq -0x398(%rbp), %rax
leaq 0x202c(%rip), %rcx      # 0x183e8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
jmp 0x16b1d
movl 0x129e8(%rip), %eax     # 0x28db8
shll %eax
addl $0x14, %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl 0x129d3(%rip), %eax     # 0x28db4
jg 0x1655b
cmpb $0x0, 0x5d93(%rip)      # 0x1c181
je 0x1640a
leaq -0xf0(%rbp), %rdi
movl -0x18(%rbp), %edx
leaq 0x2b03(%rip), %rsi      # 0x18f04
movb $0x0, %al
callq 0x1110
jmp 0x16422
leaq -0xf0(%rbp), %rdi
movl -0x18(%rbp), %edx
leaq 0x2afb(%rip), %rsi      # 0x18f16
movb $0x0, %al
callq 0x1110
cmpl $0x0, -0x20(%rbp)
je 0x16453
leaq -0x1c0(%rbp), %rdi
movl -0x20(%rbp), %edx
leaq 0x2aeb(%rip), %rsi      # 0x18f24
movb $0x0, %al
callq 0x1110
leaq -0xf0(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x1100
cmpl $0x0, 0x5d2e(%rip)      # 0x1c188
je 0x16490
leaq -0x1c0(%rbp), %rdi
movl 0x5d23(%rip), %edx      # 0x1c18c
movl 0x5d19(%rip), %ecx      # 0x1c188
leaq 0x2ab3(%rip), %rsi      # 0x18f29
movb $0x0, %al
callq 0x1110
leaq -0xf0(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x1100
cmpl $0x0, 0x5da9(%rip)      # 0x1c240
jle 0x164ac
leaq -0xf0(%rbp), %rdi
leaq 0x12899(%rip), %rsi     # 0x28d40
callq 0x1100
cmpb $0x0, 0x5ccf(%rip)      # 0x1c182
je 0x164d0
movq 0x5b1c(%rip), %rax      # 0x1bfd8
movq (%rax), %rdx
movslq -0x18(%rbp), %rcx
leaq 0x7d36(%rip), %rax      # 0x1e200
movq %rdx, (%rax,%rcx,8)
jmp 0x164f5
leaq -0xf0(%rbp), %rdi
leaq 0x2a54(%rip), %rsi      # 0x18f32
callq 0x10d0
movq %rax, %rdx
movslq -0x18(%rbp), %rcx
leaq 0x7d0f(%rip), %rax      # 0x1e200
movq %rdx, (%rax,%rcx,8)
cmpb $0x0, 0x5c86(%rip)      # 0x1c182
jne 0x16510
movslq -0x18(%rbp), %rcx
leaq 0x8ff7(%rip), %rax      # 0x1f500
movl $0x1, (%rax,%rcx,4)
movslq -0x18(%rbp), %rcx
leaq 0x7ce5(%rip), %rax      # 0x1e200
cmpq $0x0, (%rax,%rcx,8)
jne 0x1654b
movq 0x5acf(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
leaq -0xf0(%rbp), %rdx
leaq 0x29fb(%rip), %rsi      # 0x18f35
movb $0x0, %al
callq 0x1080
movl $0x6d, %edi
callq 0x1120
jmp 0x1654d
movl -0x18(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x18(%rbp)
jmp 0x163d8
jmp 0x16b1d
movl 0x12852(%rip), %eax     # 0x28db8
shll %eax
addl $0x14, %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl 0x1283d(%rip), %eax     # 0x28db4
jg 0x166f1
cmpb $0x0, 0x5bfd(%rip)      # 0x1c181
je 0x165a0
leaq -0xf0(%rbp), %rdi
movl -0x18(%rbp), %edx
leaq 0x29b6(%rip), %rsi      # 0x18f4d
movb $0x0, %al
callq 0x1110
jmp 0x165b8
leaq -0xf0(%rbp), %rdi
movl -0x18(%rbp), %edx
leaq 0x29b0(%rip), %rsi      # 0x18f61
movb $0x0, %al
callq 0x1110
cmpl $0x0, -0x20(%rbp)
je 0x165e9
leaq -0x1c0(%rbp), %rdi
movl -0x20(%rbp), %edx
leaq 0x2955(%rip), %rsi      # 0x18f24
movb $0x0, %al
callq 0x1110
leaq -0xf0(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x1100
cmpl $0x0, 0x5b98(%rip)      # 0x1c188
je 0x16626
leaq -0x1c0(%rbp), %rdi
movl 0x5b8d(%rip), %edx      # 0x1c18c
movl 0x5b83(%rip), %ecx      # 0x1c188
leaq 0x291d(%rip), %rsi      # 0x18f29
movb $0x0, %al
callq 0x1110
leaq -0xf0(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x1100
cmpl $0x0, 0x5c13(%rip)      # 0x1c240
jle 0x16642
leaq -0xf0(%rbp), %rdi
leaq 0x12703(%rip), %rsi     # 0x28d40
callq 0x1100
cmpb $0x0, 0x5b39(%rip)      # 0x1c182
je 0x16666
movq 0x5986(%rip), %rax      # 0x1bfd8
movq (%rax), %rdx
movslq -0x18(%rbp), %rcx
leaq 0x7ba0(%rip), %rax      # 0x1e200
movq %rdx, (%rax,%rcx,8)
jmp 0x1668b
leaq -0xf0(%rbp), %rdi
leaq 0x28be(%rip), %rsi      # 0x18f32
callq 0x10d0
movq %rax, %rdx
movslq -0x18(%rbp), %rcx
leaq 0x7b79(%rip), %rax      # 0x1e200
movq %rdx, (%rax,%rcx,8)
cmpb $0x0, 0x5af0(%rip)      # 0x1c182
jne 0x166a6
movslq -0x18(%rbp), %rcx
leaq 0x8e61(%rip), %rax      # 0x1f500
movl $0x1, (%rax,%rcx,4)
movslq -0x18(%rbp), %rcx
leaq 0x7b4f(%rip), %rax      # 0x1e200
cmpq $0x0, (%rax,%rcx,8)
jne 0x166e1
movq 0x5939(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
leaq -0xf0(%rbp), %rdx
leaq 0x2865(%rip), %rsi      # 0x18f35
movb $0x0, %al
callq 0x1080
movl $0x6e, %edi
callq 0x1120
jmp 0x166e3
movl -0x18(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x18(%rbp)
jmp 0x1656e
movb $0x1, 0x5a8d(%rip)      # 0x1c185
movb $-0x1, 0x9715(%rip)     # 0x1fe14
jmp 0x16b1d
movb $0x1, 0x5a7a(%rip)      # 0x1c185
cmpl $0x0, 0xf1d6(%rip)      # 0x258e8
jne 0x1671e
movl $0x7d0, 0xf1ca(%rip)    # imm = 0x7D0
movl 0x12694(%rip), %eax     # 0x28db8
shll %eax
addl $0x14, %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl 0x1267f(%rip), %eax     # 0x28db4
jg 0x16946
movslq -0x18(%rbp), %rcx
leaq 0x96da(%rip), %rax      # 0x1fe20
shlq $0x5, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
cmpb $0x0, 0x5a2a(%rip)      # 0x1c181
je 0x16773
leaq -0xf0(%rbp), %rdi
movl -0x18(%rbp), %edx
leaq 0x27e3(%rip), %rsi      # 0x18f4d
movb $0x0, %al
callq 0x1110
jmp 0x1678b
leaq -0xf0(%rbp), %rdi
movl -0x18(%rbp), %edx
leaq 0x27dd(%rip), %rsi      # 0x18f61
movb $0x0, %al
callq 0x1110
cmpl $0x0, -0x20(%rbp)
je 0x167bc
leaq -0x1c0(%rbp), %rdi
movl -0x20(%rbp), %edx
leaq 0x2782(%rip), %rsi      # 0x18f24
movb $0x0, %al
callq 0x1110
leaq -0xf0(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x1100
cmpl $0x0, 0x59c5(%rip)      # 0x1c188
je 0x167f9
leaq -0x1c0(%rbp), %rdi
movl 0x59ba(%rip), %edx      # 0x1c18c
movl 0x59b0(%rip), %ecx      # 0x1c188
leaq 0x274a(%rip), %rsi      # 0x18f29
movb $0x0, %al
callq 0x1110
leaq -0xf0(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x1100
cmpl $0x0, 0x5a40(%rip)      # 0x1c240
jle 0x16815
leaq -0xf0(%rbp), %rdi
leaq 0x12530(%rip), %rsi     # 0x28d40
callq 0x1100
cmpb $0x0, 0x5966(%rip)      # 0x1c182
je 0x16839
movq 0x57b3(%rip), %rax      # 0x1bfd8
movq (%rax), %rdx
movslq -0x18(%rbp), %rcx
leaq 0x79cd(%rip), %rax      # 0x1e200
movq %rdx, (%rax,%rcx,8)
jmp 0x1685e
leaq -0xf0(%rbp), %rdi
leaq 0x26eb(%rip), %rsi      # 0x18f32
callq 0x10d0
movq %rax, %rdx
movslq -0x18(%rbp), %rcx
leaq 0x79a6(%rip), %rax      # 0x1e200
movq %rdx, (%rax,%rcx,8)
cmpb $0x0, 0x591d(%rip)      # 0x1c182
jne 0x16879
movslq -0x18(%rbp), %rcx
leaq 0x8c8e(%rip), %rax      # 0x1f500
movl $0x1, (%rax,%rcx,4)
movslq -0x18(%rbp), %rcx
leaq 0x797c(%rip), %rax      # 0x1e200
cmpq $0x0, (%rax,%rcx,8)
jne 0x168b4
movq 0x5766(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
leaq -0xf0(%rbp), %rdx
leaq 0x2692(%rip), %rsi      # 0x18f35
movb $0x0, %al
callq 0x1080
movl $0x6f, %edi
callq 0x1120
movl $0x8, %edi
callq 0x10a0
movq %rax, %rdx
movslq -0x18(%rbp), %rcx
leaq 0xf024(%rip), %rax      # 0x258f0
movq %rdx, (%rax,%rcx,8)
movslq -0x18(%rbp), %rcx
leaq 0xf015(%rip), %rax      # 0x258f0
cmpq $0x0, (%rax,%rcx,8)
jne 0x16904
movq 0x570f(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
leaq 0x267e(%rip), %rsi      # 0x18f71
movb $0x0, %al
callq 0x1080
movl $0x70, %edi
callq 0x1120
movl $0xc, %edi
callq 0x10a0
movq %rax, %rcx
movslq -0x18(%rbp), %rdx
leaq 0xefd4(%rip), %rax      # 0x258f0
movq (%rax,%rdx,8), %rax
movq %rcx, (%rax)
movslq -0x18(%rbp), %rcx
leaq 0xefc2(%rip), %rax      # 0x258f0
movq (%rax,%rcx,8), %rax
movq (%rax), %rax
movb $-0x1, (%rax)
movl -0x18(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x18(%rbp)
jmp 0x1672c
jmp 0x16b1d
movb $0x1, 0x5833(%rip)      # 0x1c185
jmp 0x16b1d
movb $0x1, 0x5827(%rip)      # 0x1c185
movl 0x12454(%rip), %eax     # 0x28db8
shll %eax
addl $0x14, %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl 0x1243f(%rip), %eax     # 0x28db4
jg 0x16aef
cmpb $0x0, 0x57ff(%rip)      # 0x1c181
je 0x1699e
leaq -0xf0(%rbp), %rdi
movl -0x18(%rbp), %edx
leaq 0x256f(%rip), %rsi      # 0x18f04
movb $0x0, %al
callq 0x1110
jmp 0x169b6
leaq -0xf0(%rbp), %rdi
movl -0x18(%rbp), %edx
leaq 0x2567(%rip), %rsi      # 0x18f16
movb $0x0, %al
callq 0x1110
cmpl $0x0, -0x20(%rbp)
je 0x169e7
leaq -0x1c0(%rbp), %rdi
movl -0x20(%rbp), %edx
leaq 0x2557(%rip), %rsi      # 0x18f24
movb $0x0, %al
callq 0x1110
leaq -0xf0(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x1100
cmpl $0x0, 0x579a(%rip)      # 0x1c188
je 0x16a24
leaq -0x1c0(%rbp), %rdi
movl 0x578f(%rip), %edx      # 0x1c18c
movl 0x5785(%rip), %ecx      # 0x1c188
leaq 0x251f(%rip), %rsi      # 0x18f29
movb $0x0, %al
callq 0x1110
leaq -0xf0(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x1100
cmpl $0x0, 0x5815(%rip)      # 0x1c240
jle 0x16a40
leaq -0xf0(%rbp), %rdi
leaq 0x12305(%rip), %rsi     # 0x28d40
callq 0x1100
cmpb $0x0, 0x573b(%rip)      # 0x1c182
je 0x16a64
movq 0x5588(%rip), %rax      # 0x1bfd8
movq (%rax), %rdx
movslq -0x18(%rbp), %rcx
leaq 0x77a2(%rip), %rax      # 0x1e200
movq %rdx, (%rax,%rcx,8)
jmp 0x16a89
leaq -0xf0(%rbp), %rdi
leaq 0x24c0(%rip), %rsi      # 0x18f32
callq 0x10d0
movq %rax, %rdx
movslq -0x18(%rbp), %rcx
leaq 0x777b(%rip), %rax      # 0x1e200
movq %rdx, (%rax,%rcx,8)
movslq -0x18(%rbp), %rcx
leaq 0x776c(%rip), %rax      # 0x1e200
cmpq $0x0, (%rax,%rcx,8)
jne 0x16ac4
movq 0x5556(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
leaq -0xf0(%rbp), %rdx
leaq 0x2482(%rip), %rsi      # 0x18f35
movb $0x0, %al
callq 0x1080
movl $0x71, %edi
callq 0x1120
cmpb $0x0, 0x56b7(%rip)      # 0x1c182
jne 0x16adf
movslq -0x18(%rbp), %rcx
leaq 0x8a28(%rip), %rax      # 0x1f500
movl $0x1, (%rax,%rcx,4)
jmp 0x16ae1
movl -0x18(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x18(%rbp)
jmp 0x1696c
jmp 0x16b1d
jmp 0x16b1d
jmp 0x16b1d
movq 0x54fc(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
movl 0x8923(%rip), %edx      # 0x1f428
leaq 0x2488(%rip), %rsi      # 0x18f94
movb $0x0, %al
callq 0x1080
movl $0x72, %edi
callq 0x1120
movsbl 0x565f(%rip), %eax      # 0x1c183
cmpl $0x0, %eax
je 0x16b54
cmpb $0x0, 0x5655(%rip)      # 0x1c185
jne 0x16b54
movq 0x54bf(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
leaq 0x2468(%rip), %rsi      # 0x18fab
movb $0x0, %al
callq 0x1080
movl $0x73, %edi
callq 0x1120
movsbl 0x5629(%rip), %eax      # 0x1c184
cmpl $0x0, %eax
je 0x16b90
movl 0x12252(%rip), %eax     # 0x28db8
cmpl 0x10d4c(%rip), %eax     # 0x278b8
je 0x16b90
movq 0x5483(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
leaq 0x2481(%rip), %rsi      # 0x19000
movb $0x0, %al
callq 0x1080
movl $0x74, %edi
callq 0x1120
cmpb $0x0, 0x55ed(%rip)      # 0x1c184
je 0x16bd0
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
imull $0xc, 0x10d0e(%rip), %ecx # 0x278b8
addl $0x78, %ecx
cmpl %ecx, %eax
jg 0x16bce
movslq -0x18(%rbp), %rcx
leaq 0x5a14(%rip), %rax      # 0x1c5d0
movl $0x0, (%rax,%rcx,4)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x16ba0
jmp 0x16bd0
cmpb $0x0, 0x55aa(%rip)      # 0x1c181
je 0x16c2c
movl 0x121d9(%rip), %eax     # 0x28db8
cmpl 0x10cd3(%rip), %eax     # 0x278b8
jne 0x16c04
movl 0x121c7(%rip), %edx     # 0x28db4
leaq 0x121dc(%rip), %rdi     # 0x28dd0
leaq 0x2449(%rip), %rsi      # 0x19044
movb $0x0, %al
callq 0x1110
jmp 0x16c2a
movl 0x121aa(%rip), %edx     # 0x28db4
movl 0x121a8(%rip), %ecx     # 0x28db8
shll %ecx
addl $0x14, %ecx
leaq 0x121b4(%rip), %rdi     # 0x28dd0
leaq 0x2431(%rip), %rsi      # 0x19054
movb $0x0, %al
callq 0x1110
jmp 0x16c7f
movl 0x12186(%rip), %eax     # 0x28db8
cmpl 0x10c80(%rip), %eax     # 0x278b8
jne 0x16c57
movl 0x12174(%rip), %edx     # 0x28db4
leaq 0x12189(%rip), %rdi     # 0x28dd0
leaq 0x2419(%rip), %rsi      # 0x19067
movb $0x0, %al
callq 0x1110
jmp 0x16c7d
movl 0x12157(%rip), %edx     # 0x28db4
movl 0x12155(%rip), %ecx     # 0x28db8
shll %ecx
addl $0x14, %ecx
leaq 0x12161(%rip), %rdi     # 0x28dd0
leaq 0x23fd(%rip), %rsi      # 0x19073
movb $0x0, %al
callq 0x1110
jmp 0x16c7f
cmpl $0x0, -0x20(%rbp)
je 0x16cb0
leaq -0x1c0(%rbp), %rdi
movl -0x20(%rbp), %edx
leaq 0x228e(%rip), %rsi      # 0x18f24
movb $0x0, %al
callq 0x1110
leaq -0x1c0(%rbp), %rsi
leaq 0x12125(%rip), %rdi     # 0x28dd0
callq 0x1100
cmpl $0x0, 0x54d1(%rip)      # 0x1c188
je 0x16ced
leaq -0x1c0(%rbp), %rdi
movl 0x54c6(%rip), %edx      # 0x1c18c
movl 0x54bc(%rip), %ecx      # 0x1c188
leaq 0x2256(%rip), %rsi      # 0x18f29
movb $0x0, %al
callq 0x1110
leaq -0x1c0(%rbp), %rsi
leaq 0x120e8(%rip), %rdi     # 0x28dd0
callq 0x1100
cmpb $0x0, 0x5491(%rip)      # 0x1c185
je 0x16e12
leaq 0x872f(%rip), %rdi      # 0x1f430
leaq 0x237a(%rip), %rsi      # 0x19082
movb $0x0, %al
callq 0x1110
leaq 0x871a(%rip), %rdi      # 0x1f430
leaq 0x120b3(%rip), %rsi     # 0x28dd0
addq $0x9, %rsi
callq 0x1100
leaq -0x290(%rbp), %rdi
leaq 0x2359(%rip), %rsi      # 0x1908d
leaq 0x86f5(%rip), %rdx      # 0x1f430
movb $0x0, %al
callq 0x1110
leaq -0x290(%rbp), %rdi
leaq -0x320(%rbp), %rsi
callq 0x1090
cmpl $0x0, %eax
jne 0x16d85
leaq -0x290(%rbp), %rdi
callq 0x1060
cmpl $-0x1, %eax
jne 0x16d83
movq 0x5286(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
leaq 0x2317(%rip), %rsi      # 0x19093
movb $0x0, %al
callq 0x1080
jmp 0x16d85
leaq 0x56a4(%rip), %rdi      # 0x1c430
leaq 0x2320(%rip), %rsi      # 0x190b3
movb $0x0, %al
callq 0x1110
leaq 0x568f(%rip), %rdi      # 0x1c430
leaq 0x12028(%rip), %rsi     # 0x28dd0
addq $0x9, %rsi
callq 0x1100
leaq -0x290(%rbp), %rdi
leaq 0x22ce(%rip), %rsi      # 0x1908d
leaq 0x566a(%rip), %rdx      # 0x1c430
movb $0x0, %al
callq 0x1110
leaq -0x290(%rbp), %rdi
leaq -0x320(%rbp), %rsi
callq 0x1090
cmpl $0x0, %eax
jne 0x16e10
leaq -0x290(%rbp), %rdi
callq 0x1060
cmpl $-0x1, %eax
jne 0x16e0e
movq 0x51fb(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
leaq 0x228c(%rip), %rsi      # 0x19093
movb $0x0, %al
callq 0x1080
jmp 0x16e10
jmp 0x16e12
cmpb $0x0, 0x536a(%rip)      # 0x1c183
je 0x16eac
leaq 0x56da(%rip), %rdi      # 0x1c500
leaq 0x229a(%rip), %rsi      # 0x190c7
movb $0x0, %al
callq 0x1110
leaq 0x56c5(%rip), %rdi      # 0x1c500
leaq 0x11f8e(%rip), %rsi     # 0x28dd0
addq $0x9, %rsi
callq 0x1100
leaq -0x290(%rbp), %rdi
leaq 0x2234(%rip), %rsi      # 0x1908d
leaq 0x56a0(%rip), %rdx      # 0x1c500
movb $0x0, %al
callq 0x1110
leaq -0x290(%rbp), %rdi
leaq -0x320(%rbp), %rsi
callq 0x1090
cmpl $0x0, %eax
jne 0x16eaa
leaq -0x290(%rbp), %rdi
callq 0x1060
cmpl $-0x1, %eax
jne 0x16ea8
movq 0x5161(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
leaq 0x21f2(%rip), %rsi      # 0x19093
movb $0x0, %al
callq 0x1080
jmp 0x16eaa
jmp 0x16eac
cmpb $0x0, 0x52cd(%rip)      # 0x1c180
jne 0x16fb3
leaq 0x11f10(%rip), %rdi     # 0x28dd0
leaq 0x2213(%rip), %rsi      # 0x190da
callq 0x1100
cmpl $0x0, -0x35c(%rbp)
je 0x16eef
leaq 0x11ef4(%rip), %rdi     # 0x28dd0
leaq 0x21fc(%rip), %rsi      # 0x190df
callq 0x10d0
movq %rax, 0x11ed1(%rip)     # 0x28dc0
cmpq $0x0, 0x11ec9(%rip)     # 0x28dc0
jne 0x16f22
movq 0x50f8(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
leaq 0x202b(%rip), %rsi      # 0x18f35
leaq 0x11ebf(%rip), %rdx     # 0x28dd0
movb $0x0, %al
callq 0x1080
movl $0x76, %edi
callq 0x1120
movq 0x11e97(%rip), %rdi     # 0x28dc0
movl 0x11e89(%rip), %edx     # 0x28db8
shll %edx
addl $0x14, %edx
leaq 0x21a6(%rip), %rsi      # 0x190e1
movb $0x0, %al
callq 0x1080
movq 0x11e77(%rip), %rdi     # 0x28dc0
movl 0x11e65(%rip), %edx     # 0x28db4
leaq 0x21a7(%rip), %rsi      # 0x190fd
movb $0x0, %al
callq 0x1080
movq 0x11e5c(%rip), %rdi     # 0x28dc0
movl 0x84be(%rip), %edx      # 0x1f428
leaq 0x21a8(%rip), %rsi      # 0x19119
movb $0x0, %al
callq 0x1080
cmpl $0x3, 0x84a9(%rip)      # 0x1f428
jne 0x16f9c
movq 0x11e38(%rip), %rdi     # 0x28dc0
movl 0xe95a(%rip), %edx      # 0x258e8
leaq 0x2194(%rip), %rsi      # 0x19129
movb $0x0, %al
callq 0x1080
cmpl $0x0, -0x35c(%rbp)
je 0x16fb1
movq 0x11e14(%rip), %rdi     # 0x28dc0
callq 0x1050
jmp 0x16fb3
callq 0x8510
movl -0x14(%rbp), %edi
callq 0x8090
leaq -0x358(%rbp), %rdi
callq 0x10c0
movq -0x358(%rbp), %rax
movq %rax, -0x330(%rbp)
cmpb $0x0, 0x519f(%rip)      # 0x1c180
jne 0x170b9
movq 0x500a(%rip), %rax      # 0x1bff8
movq (%rax), %rax
movq %rax, -0x3a0(%rbp)
cvtsi2sdq -0x330(%rbp), %xmm0
movsd %xmm0, -0x3a8(%rbp)
movl $0x2, %edi
callq 0x10e0
movsd -0x3a8(%rbp), %xmm0
movq -0x3a0(%rbp), %rdi
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
leaq 0x2109(%rip), %rsi      # 0x1913b
movb $0x1, %al
callq 0x1080
cmpl $0x0, -0x35c(%rbp)
je 0x170b7
leaq 0x11d87(%rip), %rdi     # 0x28dd0
leaq 0x211b(%rip), %rsi      # 0x1916b
callq 0x10d0
movq %rax, 0x11d64(%rip)     # 0x28dc0
movq 0x11d5d(%rip), %rax     # 0x28dc0
movq %rax, -0x3b0(%rbp)
cvtsi2sdq -0x330(%rbp), %xmm0
movsd %xmm0, -0x3b8(%rbp)
movl $0x2, %edi
callq 0x10e0
movsd -0x3b8(%rbp), %xmm0
movq -0x3b0(%rbp), %rdi
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
leaq 0x2097(%rip), %rsi      # 0x1913b
movb $0x1, %al
callq 0x1080
movq 0x11d0e(%rip), %rdi     # 0x28dc0
callq 0x1050
jmp 0x170b9
cmpb $0x0, 0x107fc(%rip)     # 0x278bc
je 0x171f2
movl 0x11cec(%rip), %edi     # 0x28db8
movl 0x107e6(%rip), %esi     # 0x278b8
callq 0x132b0
leaq -0x358(%rbp), %rdi
callq 0x10c0
movq -0x358(%rbp), %rax
movq %rax, -0x338(%rbp)
cmpb $0x0, 0x5088(%rip)      # 0x1c180
jne 0x171e4
movq 0x4ef3(%rip), %rax      # 0x1bff8
movq (%rax), %rax
movq %rax, -0x3c0(%rbp)
movq -0x338(%rbp), %rax
subq -0x330(%rbp), %rax
cvtsi2sd %rax, %xmm0
movsd %xmm0, -0x3c8(%rbp)
movl $0x2, %edi
callq 0x10e0
movsd -0x3c8(%rbp), %xmm0
movq -0x3c0(%rbp), %rdi
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
leaq 0x201a(%rip), %rsi      # 0x1916d
movb $0x1, %al
callq 0x1080
cmpl $0x0, -0x35c(%rbp)
je 0x171e2
leaq 0x11c66(%rip), %rdi     # 0x28dd0
leaq 0x1ffa(%rip), %rsi      # 0x1916b
callq 0x10d0
movq %rax, 0x11c43(%rip)     # 0x28dc0
movq 0x11c3c(%rip), %rax     # 0x28dc0
movq %rax, -0x3d0(%rbp)
movq -0x338(%rbp), %rax
subq -0x330(%rbp), %rax
cvtsi2sd %rax, %xmm0
movsd %xmm0, -0x3d8(%rbp)
movl $0x2, %edi
callq 0x10e0
movsd -0x3d8(%rbp), %xmm0
movq -0x3d0(%rbp), %rdi
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
leaq 0x1f9e(%rip), %rsi      # 0x1916d
movb $0x1, %al
callq 0x1080
movq 0x11be3(%rip), %rdi     # 0x28dc0
callq 0x1050
jmp 0x171e4
movq -0x338(%rbp), %rax
movq %rax, -0x330(%rbp)
cmpb $0x0, 0x10218(%rip)     # 0x27411
je 0x1732b
movl 0x11bb3(%rip), %edi     # 0x28db8
movl 0x106ad(%rip), %esi     # 0x278b8
callq 0x146c0
leaq -0x358(%rbp), %rdi
callq 0x10c0
movq -0x358(%rbp), %rax
movq %rax, -0x338(%rbp)
cmpb $0x0, 0x4f4f(%rip)      # 0x1c180
jne 0x17329
movq 0x4dba(%rip), %rax      # 0x1bff8
movq (%rax), %rax
movq %rax, -0x3e0(%rbp)
movq -0x338(%rbp), %rax
subq -0x330(%rbp), %rax
cvtsi2sd %rax, %xmm0
movsd %xmm0, -0x3e8(%rbp)
movl $0x2, %edi
callq 0x10e0
movsd -0x3e8(%rbp), %xmm0
movq -0x3e0(%rbp), %rdi
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
leaq 0x1f1c(%rip), %rsi      # 0x191a8
movb $0x1, %al
callq 0x1080
cmpl $0x0, -0x35c(%rbp)
je 0x1731b
leaq 0x11b2d(%rip), %rdi     # 0x28dd0
leaq 0x1ec1(%rip), %rsi      # 0x1916b
callq 0x10d0
movq %rax, 0x11b0a(%rip)     # 0x28dc0
movq 0x11b03(%rip), %rax     # 0x28dc0
movq %rax, -0x3f0(%rbp)
movq -0x338(%rbp), %rax
subq -0x330(%rbp), %rax
cvtsi2sd %rax, %xmm0
movsd %xmm0, -0x3f8(%rbp)
movl $0x2, %edi
callq 0x10e0
movsd -0x3f8(%rbp), %xmm0
movq -0x3f0(%rbp), %rdi
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
leaq 0x1ea0(%rip), %rsi      # 0x191a8
movb $0x1, %al
callq 0x1080
movq 0x11aaa(%rip), %rdi     # 0x28dc0
callq 0x1050
movq -0x338(%rbp), %rax
movq %rax, -0x330(%rbp)
jmp 0x1732b
cmpb $0x0, 0x100de(%rip)     # 0x27410
je 0x17458
movl 0x11a7a(%rip), %edi     # 0x28db8
movl 0x10574(%rip), %esi     # 0x278b8
callq 0x15360
leaq -0x358(%rbp), %rdi
callq 0x10c0
movq -0x358(%rbp), %rax
movq %rax, -0x338(%rbp)
cmpb $0x0, 0x4e16(%rip)      # 0x1c180
jne 0x17456
movq 0x4c81(%rip), %rax      # 0x1bff8
movq (%rax), %rax
movq %rax, -0x400(%rbp)
movq -0x338(%rbp), %rax
subq -0x330(%rbp), %rax
cvtsi2sd %rax, %xmm0
movsd %xmm0, -0x408(%rbp)
movl $0x2, %edi
callq 0x10e0
movsd -0x408(%rbp), %xmm0
movq -0x400(%rbp), %rdi
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
leaq 0x1e0f(%rip), %rsi      # 0x191d4
movb $0x1, %al
callq 0x1080
cmpl $0x0, -0x35c(%rbp)
je 0x17454
leaq 0x119f4(%rip), %rdi     # 0x28dd0
leaq 0x1d88(%rip), %rsi      # 0x1916b
callq 0x10d0
movq %rax, 0x119d1(%rip)     # 0x28dc0
movq 0x119ca(%rip), %rax     # 0x28dc0
movq %rax, -0x410(%rbp)
movq -0x338(%rbp), %rax
subq -0x330(%rbp), %rax
cvtsi2sd %rax, %xmm0
movsd %xmm0, -0x418(%rbp)
movl $0x2, %edi
callq 0x10e0
movsd -0x418(%rbp), %xmm0
movq -0x410(%rbp), %rdi
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
leaq 0x1d93(%rip), %rsi      # 0x191d4
movb $0x1, %al
callq 0x1080
movq 0x11971(%rip), %rdi     # 0x28dc0
callq 0x1050
jmp 0x17456
jmp 0x17458
cmpl $0x3, 0x7fc9(%rip)      # 0x1f428
jne 0x174b0
movl 0x11951(%rip), %eax     # 0x28db8
shll %eax
addl $0x14, %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl 0x1193c(%rip), %eax     # 0x28db4
jg 0x174ae
movslq -0x18(%rbp), %rax
leaq 0x899b(%rip), %rdi      # 0x1fe20
shlq $0x5, %rax
addq %rax, %rdi
movl -0x18(%rbp), %esi
movslq -0x18(%rbp), %rcx
leaq 0xe456(%rip), %rax      # 0x258f0
movq (%rax,%rcx,8), %rdx
callq 0x3170
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x1746f
jmp 0x174b0
cmpb $0x0, 0x4cc9(%rip)      # 0x1c180
jne 0x17962
movq 0x4b34(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
movl 0xf663(%rip), %edx      # 0x26b30
leaq 0x1d2c(%rip), %rsi      # 0x19200
movb $0x0, %al
callq 0x1080
movq 0x4b16(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
movl 0xfab5(%rip), %edx      # 0x26fa0
movl 0xfab3(%rip), %ecx      # 0x26fa4
leaq 0x1d28(%rip), %rsi      # 0x19220
movb $0x0, %al
callq 0x1080
movl 0x118b3(%rip), %eax     # 0x28db8
shll %eax
addl $0x14, %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movl 0x103a2(%rip), %ecx     # 0x278b8
shll %ecx
addl $0x14, %ecx
cmpl %ecx, %eax
jg 0x17563
movq 0x4ad2(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
movslq -0x18(%rbp), %rcx
leaq 0x105dc(%rip), %rax     # 0x27b10
movq (%rax,%rcx,8), %rdx
movl -0x18(%rbp), %ecx
movslq -0x18(%rbp), %rsi
leaq 0xd17a(%rip), %rax      # 0x246c0
movq (%rax,%rsi,8), %r8
leaq 0x1d0c(%rip), %rsi      # 0x1925d
movb $0x0, %al
callq 0x1080
movl -0x18(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x18(%rbp)
jmp 0x1750d
cmpb $0x0, 0x4c1a(%rip)      # 0x1c184
je 0x175cd
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
imull $0xc, 0x1033b(%rip), %ecx # 0x278b8
addl $0x78, %ecx
cmpl %ecx, %eax
jg 0x175cb
movslq -0x18(%rbp), %rcx
leaq 0x5041(%rip), %rax      # 0x1c5d0
cmpl $0x0, (%rax,%rcx,4)
je 0x175be
movq 0x4a5c(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
movl -0x18(%rbp), %edx
movslq -0x18(%rbp), %rcx
leaq 0x5023(%rip), %rax      # 0x1c5d0
movl (%rax,%rcx,4), %ecx
leaq 0x1cf3(%rip), %rsi      # 0x192aa
movb $0x0, %al
callq 0x1080
jmp 0x175c0
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x17573
jmp 0x175cd
cmpb $0x0, 0x4bb1(%rip)      # 0x1c185
je 0x175f4
movq 0x4a1b(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
movl 0x4b92(%rip), %edx      # 0x1c178
leaq 0x1cde(%rip), %rsi      # 0x192cb
movb $0x0, %al
callq 0x1080
cmpb $0x0, 0x4b88(%rip)      # 0x1c183
je 0x1761b
movq 0x49f4(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
movl 0x4b6f(%rip), %edx      # 0x1c17c
leaq 0x1cec(%rip), %rsi      # 0x19300
movb $0x0, %al
callq 0x1080
cmpb $0x0, 0x4b6e(%rip)      # 0x1c190
je 0x17629
callq 0x1240
movq 0x49c8(%rip), %rax      # 0x1bff8
movq (%rax), %rax
movq %rax, -0x420(%rbp)
cvtsi2sdq -0x338(%rbp), %xmm0
movsd %xmm0, -0x428(%rbp)
movl $0x2, %edi
callq 0x10e0
movsd -0x428(%rbp), %xmm0
movq -0x420(%rbp), %rdi
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
leaq 0x1cc0(%rip), %rsi      # 0x19334
movb $0x1, %al
callq 0x1080
movq 0x4976(%rip), %rax      # 0x1bff8
movq (%rax), %rdi
leaq 0x1ccf(%rip), %rsi      # 0x1935b
movb $0x0, %al
callq 0x1080
cmpl $0x0, -0x35c(%rbp)
je 0x17960
leaq 0x11729(%rip), %rdi     # 0x28dd0
leaq 0x1abd(%rip), %rsi      # 0x1916b
callq 0x10d0
movq %rax, 0x11706(%rip)     # 0x28dc0
movq 0x116ff(%rip), %rdi     # 0x28dc0
movl 0xf469(%rip), %edx      # 0x26b30
leaq 0x1b32(%rip), %rsi      # 0x19200
movb $0x0, %al
callq 0x1080
movq 0x116e4(%rip), %rdi     # 0x28dc0
movl 0xf8be(%rip), %edx      # 0x26fa0
movl 0xf8bc(%rip), %ecx      # 0x26fa4
leaq 0x1b31(%rip), %rsi      # 0x19220
movb $0x0, %al
callq 0x1080
movl 0x116bc(%rip), %eax     # 0x28db8
shll %eax
addl $0x14, %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movl 0x101ab(%rip), %ecx     # 0x278b8
shll %ecx
addl $0x14, %ecx
cmpl %ecx, %eax
jg 0x17757
movq 0x116a3(%rip), %rdi     # 0x28dc0
movslq -0x18(%rbp), %rcx
leaq 0x103e8(%rip), %rax     # 0x27b10
movq (%rax,%rcx,8), %rdx
movl -0x18(%rbp), %ecx
movslq -0x18(%rbp), %rsi
leaq 0xcf86(%rip), %rax      # 0x246c0
movq (%rax,%rsi,8), %r8
leaq 0x1b18(%rip), %rsi      # 0x1925d
movb $0x0, %al
callq 0x1080
movl -0x18(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x18(%rbp)
jmp 0x17704
cmpb $0x0, 0x4a26(%rip)      # 0x1c184
je 0x177be
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
imull $0xc, 0x10147(%rip), %ecx # 0x278b8
addl $0x78, %ecx
cmpl %ecx, %eax
jg 0x177bc
movslq -0x18(%rbp), %rcx
leaq 0x4e4d(%rip), %rax      # 0x1c5d0
cmpl $0x0, (%rax,%rcx,4)
je 0x177af
movq 0x11630(%rip), %rdi     # 0x28dc0
movl -0x18(%rbp), %edx
movslq -0x18(%rbp), %rcx
leaq 0x4e32(%rip), %rax      # 0x1c5d0
movl (%rax,%rcx,4), %ecx
leaq 0x1b02(%rip), %rsi      # 0x192aa
movb $0x0, %al
callq 0x1080
jmp 0x177b1
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x17767
jmp 0x177be
cmpb $0x0, 0x49c0(%rip)      # 0x1c185
je 0x177e2
movq 0x115f2(%rip), %rdi     # 0x28dc0
movl 0x49a4(%rip), %edx      # 0x1c178
leaq 0x1af0(%rip), %rsi      # 0x192cb
movb $0x0, %al
callq 0x1080
cmpb $0x0, 0x499a(%rip)      # 0x1c183
je 0x17806
movq 0x115ce(%rip), %rdi     # 0x28dc0
movl 0x4984(%rip), %edx      # 0x1c17c
leaq 0x1b01(%rip), %rsi      # 0x19300
movb $0x0, %al
callq 0x1080
cmpb $0x0, 0x4983(%rip)      # 0x1c190
je 0x178fc
movl $0x0, -0x36c(%rbp)
movq 0x1159c(%rip), %rdi     # 0x28dc0
leaq 0xc25(%rip), %rsi       # 0x18450
movb $0x0, %al
callq 0x1080
movl $0x1, -0x18(%rbp)
cmpl $0x1c, -0x18(%rbp)
jg 0x178d2
movslq -0x18(%rbp), %rcx
leaq 0x4952(%rip), %rax      # 0x1c1a0
cmpl $0x0, (%rax,%rcx,4)
jle 0x178c2
movq 0x11565(%rip), %rdi     # 0x28dc0
movslq -0x18(%rbp), %rax
leaq 0x484a(%rip), %rdx      # 0x1c0b0
shlq $0x2, %rax
addq %rax, %rdx
movslq -0x18(%rbp), %rcx
leaq 0x4928(%rip), %rax      # 0x1c1a0
movl (%rax,%rcx,4), %ecx
leaq 0xbdb(%rip), %rsi       # 0x1845d
movb $0x0, %al
callq 0x1080
movl -0x36c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x36c(%rbp)
movl -0x36c(%rbp), %eax
movl $0x4, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
jne 0x178c0
movq 0x1150e(%rip), %rdi     # 0x28dc0
leaq 0x1945(%rip), %rsi      # 0x191fe
movb $0x0, %al
callq 0x1080
jmp 0x178c2
jmp 0x178c4
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x17839
movl -0x36c(%rbp), %eax
movl $0x4, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
je 0x178fa
movq 0x114d4(%rip), %rdi     # 0x28dc0
leaq 0x190b(%rip), %rsi      # 0x191fe
movb $0x0, %al
callq 0x1080
jmp 0x178fc
movq 0x114bd(%rip), %rax     # 0x28dc0
movq %rax, -0x430(%rbp)
cvtsi2sdq -0x338(%rbp), %xmm0
movsd %xmm0, -0x438(%rbp)
movl $0x2, %edi
callq 0x10e0
movsd -0x438(%rbp), %xmm0
movq -0x430(%rbp), %rdi
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
leaq 0x19f0(%rip), %rsi      # 0x19334
movb $0x1, %al
callq 0x1080
movq 0x1146e(%rip), %rdi     # 0x28dc0
leaq 0x1a02(%rip), %rsi      # 0x1935b
movb $0x0, %al
callq 0x1080
jmp 0x17962
xorl %eax, %eax
addq $0x440, %rsp            # imm = 0x440
popq %rbp
retq