// File: /workspace/github_c_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x358, %rsp            # imm = 0x358
movq %rsi, %r12
movl %edi, 0x8(%rsp)
pushq $0x1
popq %rax
leaq 0x12848(%rip), %rcx     # 0x1eb10
leaq 0xf3f1(%rip), %rdx      # 0x1b6c0
cmpq $0x245, %rax            # imm = 0x245
je 0xc2e6
andq $0x0, (%rcx,%rax,8)
andq $0x0, (%rdx,%rax,8)
incq %rax
jmp 0xc2cf
movb $0x1, %al
movb %al, 0x125ce(%rip)      # 0x1e8bc
movb %al, 0x1211c(%rip)      # 0x1e410
movb %al, 0x12117(%rip)      # 0x1e411
movb $0x0, 0x13a3f(%rip)     # 0x1fd40
cmpl $0x1, 0x8(%rsp)
jle 0xdb3d
movq 0x8(%r12), %rdi
callq 0x1110
movl %eax, 0x13a98(%rip)     # 0x1fdb4
cmpl $0x14, %eax
jl 0xdb44
movl %eax, %ecx
andl $0x1, %ecx
jne 0xdb44
leal -0x14(%rax), %ecx
movl %ecx, %edx
shrl %edx
movl %edx, 0x1257b(%rip)     # 0x1e8b8
movl %edx, 0x13a75(%rip)     # 0x1fdb8
cmpl $0xfffe, %eax           # imm = 0xFFFE
jae 0xdb67
movl %edx, 0x18(%rsp)
cmpl $0x119, %ecx            # imm = 0x119
jae 0xdb8a
andl $0x0, 0x10583(%rip)     # 0x1c8e8
andl $0x0, 0xa0c0(%rip)      # 0x1642c
pushq $0x1
popq %r14
xorl %r13d, %r13d
pushq $0x2
popq %rbp
movl $0x0, 0x14(%rsp)
cmpl 0x8(%rsp), %ebp
jge 0xc7b6
movslq %ebp, %r15
movq (%r12,%r15,8), %rbx
movzbl (%rbx), %eax
addl $-0x63, %eax
cmpl $0x10, %eax
ja 0xd99e
leaq 0x1e0b(%rip), %rcx      # 0xe1b0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rbx, %rdi
leaq 0x284e(%rip), %rsi      # 0xec06
callq 0x1090
testl %eax, %eax
je 0xc72e
movq %rbx, %rdi
leaq 0x283c(%rip), %rsi      # 0xec0b
callq 0x1090
testl %eax, %eax
jne 0xdaf8
incl %ebp
movq 0x8(%r12,%r15,8), %rdi
callq 0x1110
cmpl $0x3, %eax
je 0xc764
cmpl $0x2, %eax
je 0xc74b
cmpl $0x1, %eax
jne 0xdbd0
movb %r13b, 0x12006(%rip)    # 0x1e410
movb %r13b, 0x12000(%rip)    # 0x1e411
movb $0x1, 0x124a4(%rip)     # 0x1e8bc
pushq $0x1
jmp 0xc77b
movq %rbx, %rdi
leaq 0x280d(%rip), %rsi      # 0xec36
callq 0x1090
testl %eax, %eax
jne 0xd9c0
movq 0x8(%r12,%r15,8), %rdi
callq 0x1110
movl %eax, %ebx
movl %eax, 0x6d34(%rip)      # 0x1317c
movq 0x10(%r12,%r15,8), %rdi
callq 0x1110
movl %eax, 0x6d20(%rip)      # 0x13178
testl %eax, %eax
jle 0xd9e2
testl %ebx, %ebx
js 0xd9e2
cmpl %eax, %ebx
jge 0xd9e2
addl $0x2, %ebp
jmp 0xc780
movq %rbx, %rdi
leaq 0x279e(%rip), %rsi      # 0xec20
callq 0x1090
testl %eax, %eax
jne 0xda05
movq 0x6b42(%rip), %r15      # 0x12fd8
movq (%r15), %rbx
callq 0x1040
movq %rbx, %rdi
leaq 0x2278(%rip), %rsi      # 0xe720
movl %eax, %edx
xorl %eax, %eax
callq 0x10a0
movq (%r15), %rdi
callq 0x10d0
jmp 0xc780
movq %rbx, %rdi
leaq 0x28ed(%rip), %rsi      # 0xedb5
callq 0x1090
testl %eax, %eax
jne 0xda27
movb $0x1, 0x6c95(%rip)      # 0x13171
jmp 0xc780
movq %rbx, %rdi
leaq 0x26a9(%rip), %rsi      # 0xeb94
callq 0x1090
testl %eax, %eax
je 0xc6ed
movq %rbx, %rdi
leaq 0x26bd(%rip), %rsi      # 0xebbf
callq 0x1090
testl %eax, %eax
je 0xc742
movq %rbx, %rdi
leaq 0x26ad(%rip), %rsi      # 0xebc6
callq 0x1090
testl %eax, %eax
je 0xc787
movq %rbx, %rdi
leaq 0x269e(%rip), %rsi      # 0xebce
callq 0x1090
testl %eax, %eax
je 0xc7a4
movq %rbx, %rdi
leaq 0x2693(%rip), %rsi      # 0xebda
callq 0x1090
testl %eax, %eax
je 0xc7ad
movq %rbx, %rdi
leaq 0x2684(%rip), %rsi      # 0xebe2
callq 0x1090
testl %eax, %eax
jne 0xdc56
movb $0x1, 0x6c0e(%rip)      # 0x13180
incl %ebp
cmpl 0x8(%rsp), %ebp
jge 0xdbf3
movq %r12, 0x20(%rsp)
movl %r14d, 0x10(%rsp)
movl 0x6ca2(%rip), %eax      # 0x13230
movq %rax, 0x30(%rsp)
movslq %ebp, %rax
movq %rax, 0x38(%rsp)
xorl %r14d, %r14d
leaq 0x6b8b(%rip), %r15      # 0x13130
pushq $0x1c
popq %rbx
movq %rbx, %r12
addq $-0x1, %r12
jae 0xc790
testb %r14b, %r14b
jne 0xc790
xorl %eax, %eax
cmpq $0x4, %rax
je 0xc5db
movzbl (%r15,%rax), %ecx
cmpb $0x20, %cl
cmovel %r13d, %ecx
movb %cl, 0x1c(%rsp,%rax)
incq %rax
jmp 0xc5c0
movq 0x20(%rsp), %rax
movq 0x38(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x1c(%rsp), %rsi
callq 0x1090
testl %eax, %eax
je 0xc5fc
xorl %r14d, %r14d
jmp 0xc654
movsbl %bl, %edi
callq 0xa300
movb $0x1, %r14b
testb %al, %al
jne 0xc654
movq 0x30(%rsp), %rax
leal 0x1(%rax), %ecx
movl %ecx, 0x2c(%rsp)
movl %ecx, 0x6c13(%rip)      # 0x13230
cltq
leaq 0x6bea(%rip), %rcx      # 0x13210
movb %bl, (%rax,%rcx)
leaq 0x13710(%rip), %rbx     # 0x1fd40
movq %rbx, %rdi
callq 0x1060
movw $0x5f, (%rax,%rbx)
movq %rbx, %rdi
leaq 0x1c(%rsp), %rsi
callq 0x1120
movl 0x2c(%rsp), %eax
movq %rax, 0x30(%rsp)
addq $-0x4, %r15
movq %r12, %rbx
jmp 0xc5ab
movq %rbx, %rdi
leaq 0x25c0(%rip), %rsi      # 0xec2a
callq 0x1090
testl %eax, %eax
je 0xc71a
movq %rbx, %rdi
leaq 0x25ae(%rip), %rsi      # 0xec2f
callq 0x1090
movq 0x696b(%rip), %rcx      # 0x12ff8
movq (%rcx), %rdi
testl %eax, %eax
jne 0xd9ca
movq %rdi, 0x13721(%rip)     # 0x1fdc0
xorl %r14d, %r14d
jmp 0xc780
movq %rbx, %rdi
leaq 0x24dc(%rip), %rsi      # 0xeb8d
callq 0x1090
testl %eax, %eax
jne 0xda49
movb $0x1, 0x6aae(%rip)      # 0x13173
jmp 0xc780
movq %rbx, %rdi
leaq 0x2550(%rip), %rsi      # 0xec24
callq 0x1090
testl %eax, %eax
jne 0xda6b
movb $0x1, 0x6a88(%rip)      # 0x13170
jmp 0xc780
movq 0x8(%r12,%r15,8), %rdi
callq 0x1110
cmpl $0x14, %eax
jl 0xdb1a
movl %eax, %ecx
andl $0x1, %ecx
jne 0xdb1a
incl %ebp
addl $-0x14, %eax
shrl %eax
movl %eax, 0x136a0(%rip)     # 0x1fdb8
jmp 0xc780
incl %ebp
movq 0x8(%r12,%r15,8), %rdi
callq 0x1110
movl %eax, 0x101bc(%rip)     # 0x1c8e8
jmp 0xc780
incl %ebp
movq 0x8(%r12,%r15,8), %rdi
callq 0x1110
movl %eax, 0x9cec(%rip)      # 0x1642c
jmp 0xc780
movb $0x1, 0x6a29(%rip)      # 0x13172
jmp 0xc780
movb $0x1, 0x11cbf(%rip)     # 0x1e411
movb %r13b, 0x12163(%rip)    # 0x1e8bc
movb %r13b, 0x11cb0(%rip)    # 0x1e410
pushq $0x2
jmp 0xc77b
movb %r13b, 0x12151(%rip)    # 0x1e8bc
movb %r13b, 0x11c9f(%rip)    # 0x1e411
movb $0x1, 0x11c97(%rip)     # 0x1e410
pushq $0x3
popq %rax
movl %eax, 0x14(%rsp)
incl %ebp
jmp 0xc37e
movb $0x1, 0x69e6(%rip)      # 0x13174
jmp 0xc780
testb %r14b, %r14b
movl 0x10(%rsp), %r14d
movq 0x20(%rsp), %r12
jne 0xc780
jmp 0xdbf3
movb $0x1, 0x69ca(%rip)      # 0x13175
jmp 0xc780
movb $0x1, 0x69cc(%rip)      # 0x13180
jmp 0xc780
movl %r14d, 0x10(%rsp)
movl 0x9c6b(%rip), %edx      # 0x1642c
cmpq $0x8, %rdx
ja 0xdc75
leaq 0x19ba(%rip), %rax      # 0xe18c
movslq (%rax,%rdx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movl 0x135d7(%rip), %eax     # 0x1fdb8
leal 0x14(,%rax,2), %ebp
movslq %ebp, %r14
leaq (,%r14,8), %r12
leaq (,%r14,4), %rax
movq %rax, 0x8(%rsp)
leaq 0x60(%rsp), %rbx
leaq 0x200(%rsp), %r13
xorl %r15d, %r15d
leaq (%r14,%r15), %rax
movslq 0x13599(%rip), %rcx     # 0x1fdb4
cmpq %rcx, %rax
jg 0xcdd6
cmpb $0x0, 0x6946(%rip)      # 0x13171
leal (%rbp,%r15), %edx
leaq 0x241f(%rip), %rsi      # 0xec56
leaq 0x242a(%rip), %rax      # 0xec68
cmoveq %rax, %rsi
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1130
movl 0x14(%rsp), %edx
testl %edx, %edx
je 0xc870
movq %r13, %rdi
leaq 0x2418(%rip), %rsi      # 0xec76
xorl %eax, %eax
callq 0x1130
movq %rbx, %rdi
movq %r13, %rsi
callq 0x1120
movl 0x6902(%rip), %ecx      # 0x13178
testl %ecx, %ecx
je 0xc89c
movl 0x68fc(%rip), %edx      # 0x1317c
movq %r13, %rdi
leaq 0x23f1(%rip), %rsi      # 0xec7b
xorl %eax, %eax
callq 0x1130
movq %rbx, %rdi
movq %r13, %rsi
callq 0x1120
cmpl $0x0, 0x698d(%rip)      # 0x13230
jle 0xc8b4
movq %rbx, %rdi
leaq 0x13491(%rip), %rsi     # 0x1fd40
callq 0x1120
cmpb $0x0, 0x68b7(%rip)      # 0x13172
je 0xc8d8
movq 0x6714(%rip), %rax      # 0x12fd8
movq (%rax), %rax
leaq (%r12,%r15,8), %rcx
leaq 0x892e(%rip), %rdx      # 0x15200
movq %rax, (%rdx,%rcx)
jmp 0xc916
movq %rbx, %rdi
leaq 0x23a2(%rip), %rsi      # 0xec84
callq 0x10f0
cmpb $0x0, 0x6884(%rip)      # 0x13172
leaq (%r12,%r15,8), %rcx
leaq 0x8907(%rip), %rdx      # 0x15200
movq %rax, (%rdx,%rcx)
jne 0xc916
movq 0x8(%rsp), %rcx
leaq (%rcx,%r15,4), %rcx
leaq 0x9bf1(%rip), %rdx      # 0x16500
movl $0x1, (%rdx,%rcx)
addq $0x2, %r15
testq %rax, %rax
jne 0xc810
movq 0x66ce(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
leaq 0x2353(%rip), %rsi      # 0xec87
leaq 0x60(%rsp), %rdx
xorl %eax, %eax
callq 0x10a0
pushq $0x6d
jmp 0xdc8f
movb $0x1, 0x6827(%rip)      # 0x13175
jmp 0xcdd6
movl 0x1345f(%rip), %eax     # 0x1fdb8
leal 0x14(,%rax,2), %ebp
movslq %ebp, %r14
leaq (,%r14,8), %r12
leaq (,%r14,4), %rax
movq %rax, 0x8(%rsp)
leaq 0x60(%rsp), %rbx
leaq 0x200(%rsp), %r13
xorl %r15d, %r15d
leaq (%r14,%r15), %rax
movslq 0x13421(%rip), %rcx     # 0x1fdb4
cmpq %rcx, %rax
jg 0xcdc8
cmpb $0x0, 0x67ce(%rip)      # 0x13171
leal (%rbp,%r15), %edx
leaq 0x22f0(%rip), %rsi      # 0xec9f
leaq 0x22fd(%rip), %rax      # 0xecb3
cmoveq %rax, %rsi
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1130
movl 0x14(%rsp), %edx
testl %edx, %edx
je 0xc9e8
movq %r13, %rdi
leaq 0x22a0(%rip), %rsi      # 0xec76
xorl %eax, %eax
callq 0x1130
movq %rbx, %rdi
movq %r13, %rsi
callq 0x1120
movl 0x678a(%rip), %ecx      # 0x13178
testl %ecx, %ecx
je 0xca14
movl 0x6784(%rip), %edx      # 0x1317c
movq %r13, %rdi
leaq 0x2279(%rip), %rsi      # 0xec7b
xorl %eax, %eax
callq 0x1130
movq %rbx, %rdi
movq %r13, %rsi
callq 0x1120
cmpl $0x0, 0x6815(%rip)      # 0x13230
jle 0xca2c
movq %rbx, %rdi
leaq 0x13319(%rip), %rsi     # 0x1fd40
callq 0x1120
cmpb $0x0, 0x673f(%rip)      # 0x13172
je 0xca50
movq 0x659c(%rip), %rax      # 0x12fd8
movq (%rax), %rax
leaq (%r12,%r15,8), %rcx
leaq 0x87b6(%rip), %rdx      # 0x15200
movq %rax, (%rdx,%rcx)
jmp 0xca8e
movq %rbx, %rdi
leaq 0x222a(%rip), %rsi      # 0xec84
callq 0x10f0
cmpb $0x0, 0x670c(%rip)      # 0x13172
leaq (%r12,%r15,8), %rcx
leaq 0x878f(%rip), %rdx      # 0x15200
movq %rax, (%rdx,%rcx)
jne 0xca8e
movq 0x8(%rsp), %rcx
leaq (%rcx,%r15,4), %rcx
leaq 0x9a79(%rip), %rdx      # 0x16500
movl $0x1, (%rdx,%rcx)
addq $0x2, %r15
testq %rax, %rax
jne 0xc988
movq 0x6556(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
leaq 0x21db(%rip), %rsi      # 0xec87
leaq 0x60(%rsp), %rdx
xorl %eax, %eax
callq 0x10a0
pushq $0x6e
jmp 0xdc8f
movb $0x1, 0x66af(%rip)      # 0x13175
cmpl $0x0, 0xfe1b(%rip)      # 0x1c8e8
jne 0xcad9
movl $0x7d0, 0xfe0f(%rip)    # imm = 0x7D0
movl 0x132d9(%rip), %eax     # 0x1fdb8
leal 0x14(,%rax,2), %eax
movslq %eax, %rbx
leaq (,%rbx,8), %rbp
movq %rbx, %rax
shlq $0x5, %rax
movq %rax, 0x8(%rsp)
leaq (,%rbx,4), %rax
movq %rax, 0x20(%rsp)
leaq 0x60(%rsp), %r14
leaq 0x200(%rsp), %r15
xorl %r12d, %r12d
movslq 0x13293(%rip), %rax     # 0x1fdb4
cmpq %rax, %rbx
jg 0xcdd6
movq 0x8(%rsp), %rax
leaq (%rax,%r12,8), %rax
cmpb $0x0, 0x6637(%rip)      # 0x13171
leaq 0xa2df(%rip), %rcx      # 0x16e20
movb $0x0, (%rcx,%rax)
leaq 0x2153(%rip), %rsi      # 0xec9f
leaq 0x2160(%rip), %rax      # 0xecb3
cmoveq %rax, %rsi
movq %r14, %rdi
movl %ebx, %edx
xorl %eax, %eax
callq 0x1130
movl 0x14(%rsp), %edx
testl %edx, %edx
je 0xcb87
movq %r15, %rdi
leaq 0x2101(%rip), %rsi      # 0xec76
xorl %eax, %eax
callq 0x1130
movq %r14, %rdi
movq %r15, %rsi
callq 0x1120
movl 0x65eb(%rip), %ecx      # 0x13178
testl %ecx, %ecx
je 0xcbb3
movl 0x65e5(%rip), %edx      # 0x1317c
movq %r15, %rdi
leaq 0x20da(%rip), %rsi      # 0xec7b
xorl %eax, %eax
callq 0x1130
movq %r14, %rdi
movq %r15, %rsi
callq 0x1120
cmpl $0x0, 0x6676(%rip)      # 0x13230
jle 0xcbcb
movq %r14, %rdi
leaq 0x1317a(%rip), %rsi     # 0x1fd40
callq 0x1120
cmpb $0x0, 0x65a0(%rip)      # 0x13172
je 0xcbf6
movq 0x63fd(%rip), %rax      # 0x12fd8
movq (%rax), %rax
leaq (,%r12,2), %rcx
addq %rbp, %rcx
leaq 0x8610(%rip), %rdx      # 0x15200
movq %rax, (%rdx,%rcx)
jmp 0xcc34
movq %r14, %rdi
leaq 0x2084(%rip), %rsi      # 0xec84
callq 0x10f0
cmpb $0x0, 0x6566(%rip)      # 0x13172
leaq (%rbp,%r12,2), %rcx
leaq 0x85e8(%rip), %rdx      # 0x15200
movq %rax, (%rdx,%rcx)
jne 0xcc34
movq 0x20(%rsp), %rcx
addq %r12, %rcx
leaq 0x98d3(%rip), %rdx      # 0x16500
movl $0x1, (%rdx,%rcx)
testq %rax, %rax
je 0xdab1
pushq $0x8
popq %rdi
callq 0x10c0
movq %rax, %r13
leaq (,%r12,2), %rax
addq %rbp, %rax
leaq 0xfc96(%rip), %rcx      # 0x1c8f0
movq %r13, (%rcx,%rax)
testq %r13, %r13
je 0xdad5
pushq $0xc
popq %rdi
callq 0x10c0
movq %rax, (%r13)
movb $-0x1, (%rax)
addq $0x2, %rbx
addq $0x8, %r12
jmp 0xcb1a
movb $0x1, 0x64eb(%rip)      # 0x13175
movl 0x13128(%rip), %eax     # 0x1fdb8
leal 0x14(,%rax,2), %ebp
movslq %ebp, %r14
leaq (,%r14,8), %r12
leaq (,%r14,4), %rax
movq %rax, 0x8(%rsp)
leaq 0x60(%rsp), %rbx
leaq 0x200(%rsp), %r13
xorl %r15d, %r15d
leaq (%r14,%r15), %rax
movslq 0x130ea(%rip), %rcx     # 0x1fdb4
cmpq %rcx, %rax
jg 0xcdd6
cmpb $0x0, 0x6497(%rip)      # 0x13171
leal (%rbp,%r15), %edx
leaq 0x1f70(%rip), %rsi      # 0xec56
leaq 0x1f7b(%rip), %rax      # 0xec68
cmoveq %rax, %rsi
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1130
movl 0x14(%rsp), %edx
testl %edx, %edx
je 0xcd1f
movq %r13, %rdi
leaq 0x1f69(%rip), %rsi      # 0xec76
xorl %eax, %eax
callq 0x1130
movq %rbx, %rdi
movq %r13, %rsi
callq 0x1120
movl 0x6453(%rip), %ecx      # 0x13178
testl %ecx, %ecx
je 0xcd4b
movl 0x644d(%rip), %edx      # 0x1317c
movq %r13, %rdi
leaq 0x1f42(%rip), %rsi      # 0xec7b
xorl %eax, %eax
callq 0x1130
movq %rbx, %rdi
movq %r13, %rsi
callq 0x1120
cmpl $0x0, 0x64de(%rip)      # 0x13230
jle 0xcd63
movq %rbx, %rdi
leaq 0x12fe2(%rip), %rsi     # 0x1fd40
callq 0x1120
cmpb $0x0, 0x6408(%rip)      # 0x13172
je 0xcd78
movq 0x6265(%rip), %rax      # 0x12fd8
movq (%rax), %rax
jmp 0xcd87
movq %rbx, %rdi
leaq 0x1f02(%rip), %rsi      # 0xec84
callq 0x10f0
leaq (%r12,%r15,8), %rcx
leaq 0x846e(%rip), %rdx      # 0x15200
movq %rax, (%rdx,%rcx)
testq %rax, %rax
je 0xda8d
cmpb $0x0, 0x63cc(%rip)      # 0x13172
jne 0xcdbf
movq 0x8(%rsp), %rax
leaq (%rax,%r15,4), %rax
leaq 0x9748(%rip), %rcx      # 0x16500
movl $0x1, (%rcx,%rax)
addq $0x2, %r15
jmp 0xccbf
movb $0x1, 0x63a6(%rip)      # 0x13175
movb $-0x1, 0xa03e(%rip)     # 0x16e14
cmpb $0x0, 0x6396(%rip)      # 0x13173
je 0xcdec
cmpb $0x0, 0x638f(%rip)      # 0x13175
je 0xdbad
cmpb $0x0, 0x6381(%rip)      # 0x13174
leaq 0x11d16(%rip), %r13     # 0x1eb10
leaq 0xe8bf(%rip), %rbp      # 0x1b6c0
je 0xce3c
movl 0x12faf(%rip), %eax     # 0x1fdb8
cmpl 0x11aa9(%rip), %eax     # 0x1e8b8
jne 0xdc13
imull $0xc, %eax, %eax
addl $0x79, %eax
xorl %ecx, %ecx
testl %eax, %eax
cmovlel %ecx, %eax
shlq $0x2, %rax
leaq 0x67a3(%rip), %rdx      # 0x135d0
cmpq %rcx, %rax
je 0xce3c
andl $0x0, (%rcx,%rdx)
addq $0x4, %rcx
jmp 0xce2d
cmpb $0x0, 0x632e(%rip)      # 0x13171
movl 0x12f6f(%rip), %eax     # 0x1fdb8
movl 0x11a69(%rip), %ecx     # 0x1e8b8
movl 0x12f5f(%rip), %edx     # 0x1fdb4
je 0xce6b
cmpl %ecx, %eax
jne 0xce86
leaq 0x12f6e(%rip), %rdi     # 0x1fdd0
leaq 0x1f2d(%rip), %rsi      # 0xed96
jmp 0xce7d
cmpl %ecx, %eax
jne 0xce9d
leaq 0x12f5a(%rip), %rdi     # 0x1fdd0
leaq 0x1f3c(%rip), %rsi      # 0xedb9
xorl %eax, %eax
callq 0x1130
jmp 0xceb9
leal 0x14(,%rax,2), %ecx
leaq 0x12f3c(%rip), %rdi     # 0x1fdd0
leaq 0x1f0b(%rip), %rsi      # 0xeda6
jmp 0xceb2
leal 0x14(,%rax,2), %ecx
leaq 0x12f25(%rip), %rdi     # 0x1fdd0
leaq 0x1f13(%rip), %rsi      # 0xedc5
xorl %eax, %eax
callq 0x1130
movl 0x14(%rsp), %edx
testl %edx, %edx
je 0xcee9
leaq 0x1dae(%rip), %rsi      # 0xec76
leaq 0x200(%rsp), %rbx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1130
leaq 0x12eef(%rip), %rdi     # 0x1fdd0
movq %rbx, %rsi
callq 0x1120
movl 0x6289(%rip), %ecx      # 0x13178
testl %ecx, %ecx
je 0xcf21
movl 0x6283(%rip), %edx      # 0x1317c
leaq 0x1d7b(%rip), %rsi      # 0xec7b
leaq 0x200(%rsp), %rbx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1130
leaq 0x12eb7(%rip), %rdi     # 0x1fdd0
movq %rbx, %rsi
callq 0x1120
cmpb $0x0, 0x624d(%rip)      # 0x13175
je 0xd01b
movabsq $0x61726970735f6f4e, %rax # imm = 0x61726970735F6F4E
movq %rax, 0x94f1(%rip)      # 0x16430
movl $0x5f6c61, 0x94ee(%rip) # imm = 0x5F6C61
leaq 0x94e0(%rip), %rbx      # 0x16430
leaq 0x12e82(%rip), %rsi     # 0x1fdd9
movq %rbx, %rdi
callq 0x1120
leaq 0x1e79(%rip), %rsi      # 0xeddf
leaq 0x130(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1130
leaq 0x2c8(%rsp), %rsi
movq %r14, %rdi
callq 0x10b0
testl %eax, %eax
jne 0xcfa5
leaq 0x130(%rsp), %rdi
callq 0x1070
cmpl $-0x1, %eax
je 0xd93b
movupd 0x1e58(%rip), %xmm0     # 0xee05
movapd %xmm0, 0x647b(%rip)     # 0x13430
movl $0x5f6c61, 0x6481(%rip) # imm = 0x5F6C61
leaq 0x646a(%rip), %rbx      # 0x13430
leaq 0x12e0c(%rip), %rsi     # 0x1fdd9
movq %rbx, %rdi
callq 0x1120
leaq 0x1e03(%rip), %rsi      # 0xeddf
leaq 0x130(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1130
leaq 0x2c8(%rsp), %rsi
movq %r14, %rdi
callq 0x10b0
testl %eax, %eax
jne 0xd01b
leaq 0x130(%rsp), %rdi
callq 0x1070
cmpl $-0x1, %eax
je 0xd95c
cmpb $0x0, 0x6151(%rip)      # 0x13173
je 0xd09a
movupd 0x1ded(%rip), %xmm0     # 0xee19
movapd %xmm0, 0x64cc(%rip)     # 0x13500
movl $0x5f6c61, 0x64d1(%rip) # imm = 0x5F6C61
leaq 0x64bb(%rip), %rbx      # 0x13500
leaq 0x12d8d(%rip), %rsi     # 0x1fdd9
movq %rbx, %rdi
callq 0x1120
leaq 0x1d84(%rip), %rsi      # 0xeddf
leaq 0x130(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1130
leaq 0x2c8(%rsp), %rsi
movq %r14, %rdi
callq 0x10b0
testl %eax, %eax
jne 0xd09a
leaq 0x130(%rsp), %rdi
callq 0x1070
cmpl $-0x1, %eax
je 0xd97d
cmpb $0x0, 0x60cf(%rip)      # 0x13170
jne 0xd17e
leaq 0x12d22(%rip), %rbx     # 0x1fdd0
movq %rbx, %rdi
callq 0x1060
movl $0x676f6c2e, (%rax,%rbx) # imm = 0x676F6C2E
movb $0x0, 0x4(%rax,%rbx)
movl 0x10(%rsp), %ebx
testl %ebx, %ebx
je 0xd0e9
leaq 0x12cff(%rip), %rdi     # 0x1fdd0
leaq 0x1d59(%rip), %rsi      # 0xee31
callq 0x10f0
movq %rax, %rdi
movq %rax, 0x12cd9(%rip)     # 0x1fdc0
jmp 0xd0f0
movq 0x12cd0(%rip), %rdi     # 0x1fdc0
testq %rdi, %rdi
je 0xdc33
movl 0x12cb9(%rip), %eax     # 0x1fdb8
leal 0x14(,%rax,2), %edx
leaq 0x1d26(%rip), %rsi      # 0xee33
xorl %eax, %eax
callq 0x10a0
movq 0x12ca5(%rip), %rdi     # 0x1fdc0
movl 0x12c93(%rip), %edx     # 0x1fdb4
leaq 0x1d27(%rip), %rsi      # 0xee4f
xorl %eax, %eax
callq 0x10a0
movq 0x12c8a(%rip), %rdi     # 0x1fdc0
movl 0x92f0(%rip), %edx      # 0x1642c
leaq 0x1d28(%rip), %rsi      # 0xee6b
xorl %eax, %eax
callq 0x10a0
cmpl $0x3, 0x92db(%rip)      # 0x1642c
jne 0xd16e
movq 0x12c66(%rip), %rdi     # 0x1fdc0
movl 0xf788(%rip), %edx      # 0x1c8e8
leaq 0x1d14(%rip), %rsi      # 0xee7b
xorl %eax, %eax
callq 0x10a0
testl %ebx, %ebx
je 0xd17e
movq 0x12c47(%rip), %rdi     # 0x1fdc0
callq 0x1050
callq 0x4e7f
movl 0x18(%rsp), %edi
callq 0x4c39
leaq 0x40(%rsp), %rbx
movq %rbx, %rdi
callq 0x10e0
movq (%rbx), %r14
cmpb $0x0, 0x5fcd(%rip)      # 0x13170
je 0xd2d0
cmpb $0x0, 0x1170c(%rip)     # 0x1e8bc
je 0xd1e5
movl 0x12c00(%rip), %edi     # 0x1fdb8
movl 0x116fa(%rip), %esi     # 0x1e8b8
callq 0xaaa5
leaq 0x40(%rsp), %rbx
movq %rbx, %rdi
callq 0x10e0
movq (%rbx), %r15
cmpb $0x0, 0x5f96(%rip)      # 0x13170
je 0xd578
movq %r15, %r14
jmp 0xd1e5
cmpb $0x0, 0x11225(%rip)     # 0x1e411
je 0xd21c
movl 0x12bc4(%rip), %edi     # 0x1fdb8
movl 0x116be(%rip), %esi     # 0x1e8b8
callq 0xb4af
leaq 0x40(%rsp), %rbx
movq %rbx, %rdi
callq 0x10e0
movq (%rbx), %r15
cmpb $0x0, 0x5f5a(%rip)      # 0x13170
je 0xd61c
cmpb $0x0, 0x111ed(%rip)     # 0x1e410
je 0xd253
movl 0x12b8d(%rip), %edi     # 0x1fdb8
movl 0x11687(%rip), %esi     # 0x1e8b8
callq 0xbcb1
leaq 0x40(%rsp), %rbx
movq %rbx, %rdi
callq 0x10e0
movq (%rbx), %r15
cmpb $0x0, 0x5f23(%rip)      # 0x13170
je 0xd6bf
cmpl $0x3, 0x91d2(%rip)      # 0x1642c
jne 0xd2af
movl 0x12b56(%rip), %eax     # 0x1fdb8
leal 0x14(,%rax,2), %eax
movslq %eax, %rbx
movq %rbx, %rax
shlq $0x5, %rax
leaq 0x9ba6(%rip), %r14      # 0x16e20
addq %rax, %r14
leaq 0xf66c(%rip), %rax      # 0x1c8f0
leaq (%rax,%rbx,8), %r12
movslq 0x12b25(%rip), %rax     # 0x1fdb4
cmpq %rax, %rbx
jg 0xd2af
movq (%r12), %rdx
movq %r14, %rdi
movl %ebx, %esi
callq 0x2418
incq %rbx
addq $0x20, %r14
addq $0x8, %r12
jmp 0xd288
cmpb $0x0, 0x5eba(%rip)      # 0x13170
je 0xd36e
xorl %eax, %eax
addq $0x358, %rsp            # imm = 0x358
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x5d21(%rip), %rax      # 0x12ff8
movq (%rax), %rbx
cvtsi2sd %r14, %xmm0
movsd %xmm0, 0x8(%rsp)
pushq $0x2
popq %rdi
callq 0x1100
cvtsi2sd %rax, %xmm1
movsd 0x8(%rsp), %xmm0
divsd %xmm1, %xmm0
leaq 0x1b8a(%rip), %rsi      # 0xee8d
movq %rbx, %rdi
movb $0x1, %al
callq 0x10a0
cmpl $0x0, 0x10(%rsp)
je 0xd1a9
leaq 0x12ab1(%rip), %rdi     # 0x1fdd0
leaq 0x1b97(%rip), %rsi      # 0xeebd
callq 0x10f0
movq %rax, %rbx
movq %rax, 0x12a8b(%rip)     # 0x1fdc0
pushq $0x2
popq %rdi
callq 0x1100
cvtsi2sd %rax, %xmm1
movsd 0x8(%rsp), %xmm0
divsd %xmm1, %xmm0
leaq 0x1b3a(%rip), %rsi      # 0xee8d
movq %rbx, %rdi
movb $0x1, %al
callq 0x10a0
movq 0x12a5c(%rip), %rdi     # 0x1fdc0
callq 0x1050
jmp 0xd1a9
movq 0x5c83(%rip), %rbx      # 0x12ff8
movq (%rbx), %rdi
movl 0x107b2(%rip), %edx     # 0x1db30
leaq 0x1bcd(%rip), %rsi      # 0xef52
xorl %eax, %eax
callq 0x10a0
movq (%rbx), %rdi
movl 0x10c0b(%rip), %edx     # 0x1dfa0
movl 0x10c09(%rip), %ecx     # 0x1dfa4
leaq 0x1bd0(%rip), %rsi      # 0xef72
xorl %eax, %eax
callq 0x10a0
movl 0x12a09(%rip), %eax     # 0x1fdb8
leal 0x14(,%rax,2), %eax
movslq %eax, %rbx
leaq (,%rbx,8), %r12
leaq 0x1be7(%rip), %r14      # 0xefaf
movslq 0x114e9(%rip), %rax     # 0x1e8b8
leaq 0x14(,%rax,2), %rcx
cmpq %rcx, %rbx
jg 0xd404
movq 0x5c15(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
movq (%r12,%r13), %rdx
movq (%r12,%rbp), %r8
movq %r14, %rsi
movl %ebx, %ecx
xorl %eax, %eax
callq 0x10a0
addq $0x2, %rbx
addq $0x10, %r12
jmp 0xd3c8
cmpb $0x0, 0x5d69(%rip)      # 0x13174
jne 0xd886
cmpb $0x0, 0x5d5d(%rip)      # 0x13175
je 0xd438
movq 0x5bd7(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
movl 0x5d3e(%rip), %edx      # 0x13168
leaq 0x1bec(%rip), %rsi      # 0xf01d
xorl %eax, %eax
callq 0x10a0
cmpb $0x0, 0x5d34(%rip)      # 0x13173
je 0xd45f
movq 0x5bb0(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
movl 0x5d1b(%rip), %edx      # 0x1316c
leaq 0x1bfa(%rip), %rsi      # 0xf052
xorl %eax, %eax
callq 0x10a0
cmpb $0x0, 0x5d1a(%rip)      # 0x13180
je 0xd46d
callq 0x125c
movq 0x5b84(%rip), %r14      # 0x12ff8
movq (%r14), %rbx
cvtsi2sd %r15, %xmm0
movsd %xmm0, 0x8(%rsp)
pushq $0x2
popq %rdi
callq 0x1100
cvtsi2sd %rax, %xmm1
movsd 0x8(%rsp), %xmm0
divsd %xmm1, %xmm0
leaq 0x1be6(%rip), %rsi      # 0xf086
movq %rbx, %rdi
movb $0x1, %al
callq 0x10a0
movq (%r14), %rcx
leaq 0x1bf9(%rip), %rdi      # 0xf0ad
pushq $0xf
popq %rsi
pushq $0x1
popq %rdx
callq 0x1150
cmpl $0x0, 0x10(%rsp)
je 0xd2bc
leaq 0x128ff(%rip), %rdi     # 0x1fdd0
leaq 0x19e5(%rip), %rsi      # 0xeebd
callq 0x10f0
movq %rax, 0x128dc(%rip)     # 0x1fdc0
movl 0x10646(%rip), %edx     # 0x1db30
leaq 0x1a61(%rip), %rsi      # 0xef52
movq %rax, %rdi
xorl %eax, %eax
callq 0x10a0
movq 0x128be(%rip), %rdi     # 0x1fdc0
movl 0x10a98(%rip), %edx     # 0x1dfa0
movl 0x10a96(%rip), %ecx     # 0x1dfa4
leaq 0x1a5d(%rip), %rsi      # 0xef72
xorl %eax, %eax
callq 0x10a0
movl 0x12896(%rip), %eax     # 0x1fdb8
leal 0x14(,%rax,2), %eax
movslq %eax, %rbx
leaq (,%rbx,8), %r15
leaq 0x1a74(%rip), %r14      # 0xefaf
movslq 0x11376(%rip), %rax     # 0x1e8b8
leaq 0x14(,%rax,2), %rcx
cmpq %rcx, %rbx
jg 0xd763
movq 0x12866(%rip), %rdi     # 0x1fdc0
movq (%r15,%r13), %rdx
movq (%r15,%rbp), %r8
movq %r14, %rsi
movl %ebx, %ecx
xorl %eax, %eax
callq 0x10a0
addq $0x2, %rbx
addq $0x10, %r15
jmp 0xd53b
movq 0x5a79(%rip), %rax      # 0x12ff8
movq (%rax), %rbx
movq %r15, %rax
subq %r14, %rax
cvtsi2sd %rax, %xmm0
movsd %xmm0, 0x8(%rsp)
pushq $0x2
popq %rdi
callq 0x1100
cvtsi2sd %rax, %xmm1
movsd 0x8(%rsp), %xmm0
divsd %xmm1, %xmm0
leaq 0x190e(%rip), %rsi      # 0xeebf
movq %rbx, %rdi
movb $0x1, %al
callq 0x10a0
cmpl $0x0, 0x10(%rsp)
je 0xd1e0
leaq 0x12803(%rip), %rdi     # 0x1fdd0
leaq 0x18e9(%rip), %rsi      # 0xeebd
callq 0x10f0
movq %rax, %rbx
movq %rax, 0x127dd(%rip)     # 0x1fdc0
pushq $0x2
popq %rdi
callq 0x1100
cvtsi2sd %rax, %xmm1
movsd 0x8(%rsp), %xmm0
divsd %xmm1, %xmm0
leaq 0x18be(%rip), %rsi      # 0xeebf
movq %rbx, %rdi
movb $0x1, %al
callq 0x10a0
movq 0x127ae(%rip), %rdi     # 0x1fdc0
callq 0x1050
jmp 0xd1e0
movq 0x59d5(%rip), %rax      # 0x12ff8
movq (%rax), %rbx
movq %r15, %rax
subq %r14, %rax
cvtsi2sd %rax, %xmm0
movsd %xmm0, 0x8(%rsp)
pushq $0x2
popq %rdi
callq 0x1100
cvtsi2sd %rax, %xmm1
movsd 0x8(%rsp), %xmm0
divsd %xmm1, %xmm0
leaq 0x18a5(%rip), %rsi      # 0xeefa
movq %rbx, %rdi
movb $0x1, %al
callq 0x10a0
cmpl $0x0, 0x10(%rsp)
je 0xd6b7
leaq 0x12763(%rip), %rdi     # 0x1fdd0
leaq 0x1849(%rip), %rsi      # 0xeebd
callq 0x10f0
movq %rax, %rbx
movq %rax, 0x1273d(%rip)     # 0x1fdc0
pushq $0x2
popq %rdi
callq 0x1100
cvtsi2sd %rax, %xmm1
movsd 0x8(%rsp), %xmm0
divsd %xmm1, %xmm0
leaq 0x1859(%rip), %rsi      # 0xeefa
movq %rbx, %rdi
movb $0x1, %al
callq 0x10a0
movq 0x1270e(%rip), %rdi     # 0x1fdc0
callq 0x1050
movq %r15, %r14
jmp 0xd21c
movq 0x5932(%rip), %rax      # 0x12ff8
movq (%rax), %rbx
movq %r15, %rax
subq %r14, %rax
cvtsi2sd %rax, %xmm0
movsd %xmm0, 0x8(%rsp)
pushq $0x2
popq %rdi
callq 0x1100
cvtsi2sd %rax, %xmm1
movsd 0x8(%rsp), %xmm0
divsd %xmm1, %xmm0
leaq 0x182e(%rip), %rsi      # 0xef26
movq %rbx, %rdi
movb $0x1, %al
callq 0x10a0
cmpl $0x0, 0x10(%rsp)
je 0xd253
leaq 0x126bc(%rip), %rdi     # 0x1fdd0
leaq 0x17a2(%rip), %rsi      # 0xeebd
callq 0x10f0
movq %rax, %rbx
movq %rax, 0x12696(%rip)     # 0x1fdc0
pushq $0x2
popq %rdi
callq 0x1100
cvtsi2sd %rax, %xmm1
movsd 0x8(%rsp), %xmm0
divsd %xmm1, %xmm0
leaq 0x17de(%rip), %rsi      # 0xef26
movq %rbx, %rdi
movb $0x1, %al
callq 0x10a0
movq 0x12667(%rip), %rdi     # 0x1fdc0
callq 0x1050
jmp 0xd253
cmpb $0x0, 0x5a0a(%rip)      # 0x13174
je 0xd7b5
leaq 0x5e5d(%rip), %r15      # 0x135d0
leaq 0x1882(%rip), %rbx      # 0xeffc
xorl %r14d, %r14d
imull $0xc, %eax, %ecx
addl $0x78, %ecx
movslq %ecx, %rcx
cmpq %rcx, %r14
jg 0xd7b5
movl (%r15), %ecx
testl %ecx, %ecx
je 0xd7ac
movq 0x12627(%rip), %rdi     # 0x1fdc0
movq %rbx, %rsi
movl %r14d, %edx
xorl %eax, %eax
callq 0x10a0
movl 0x1110c(%rip), %eax     # 0x1e8b8
incq %r14
addq $0x4, %r15
jmp 0xd77d
cmpb $0x0, 0x59b9(%rip)      # 0x13175
je 0xd7d9
movq 0x125fb(%rip), %rdi     # 0x1fdc0
movl 0x599d(%rip), %edx      # 0x13168
leaq 0x184b(%rip), %rsi      # 0xf01d
xorl %eax, %eax
callq 0x10a0
cmpb $0x0, 0x5993(%rip)      # 0x13173
je 0xd7fd
movq 0x125d7(%rip), %rdi     # 0x1fdc0
movl 0x597d(%rip), %edx      # 0x1316c
leaq 0x185c(%rip), %rsi      # 0xf052
xorl %eax, %eax
callq 0x10a0
cmpb $0x0, 0x597c(%rip)      # 0x13180
je 0xd8ee
movq 0x125af(%rip), %rcx     # 0x1fdc0
leaq 0xa08(%rip), %rdi       # 0xe220
pushq $0xc
popq %rsi
pushq $0x1
popq %rdx
callq 0x1150
pushq $0x4
popq %r14
leaq 0x5962(%rip), %r15      # 0x13190
leaq 0x588b(%rip), %r12      # 0x130c0
leaq 0x9f1(%rip), %rbx       # 0xe22d
pushq $0xa
popq %rbp
xorl %r13d, %r13d
cmpq $0x74, %r14
je 0xd8d9
movl (%r14,%r15), %ecx
testl %ecx, %ecx
jle 0xd880
movq 0x12565(%rip), %rdi     # 0x1fdc0
leaq (%r12,%r14), %rdx
movq %rbx, %rsi
xorl %eax, %eax
callq 0x10a0
incl %r13d
testb $0x3, %r13b
jne 0xd880
movq 0x12547(%rip), %rsi     # 0x1fdc0
movl %ebp, %edi
callq 0x1080
addq $0x4, %r14
jmp 0xd842
leaq 0x5d43(%rip), %r12      # 0x135d0
leaq 0x1768(%rip), %rbx      # 0xeffc
xorl %r14d, %r14d
imull $0xc, %eax, %ecx
addl $0x78, %ecx
movslq %ecx, %rcx
cmpq %rcx, %r14
jg 0xd411
movl (%r12), %ecx
testl %ecx, %ecx
jne 0xd8ba
incq %r14
addq $0x4, %r12
jmp 0xd897
movq 0x5737(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
movq %rbx, %rsi
movl %r14d, %edx
xorl %eax, %eax
callq 0x10a0
movl 0x10fe1(%rip), %eax     # 0x1e8b8
jmp 0xd8b1
testb $0x3, %r13b
je 0xd8ee
movq 0x124da(%rip), %rsi     # 0x1fdc0
pushq $0xa
popq %rdi
callq 0x1080
movq 0x124cb(%rip), %rbx     # 0x1fdc0
pushq $0x2
popq %rdi
callq 0x1100
cvtsi2sd %rax, %xmm1
movsd 0x8(%rsp), %xmm0
divsd %xmm1, %xmm0
leaq 0x1773(%rip), %rsi      # 0xf086
movq %rbx, %rdi
movb $0x1, %al
callq 0x10a0
movq 0x1249c(%rip), %rcx     # 0x1fdc0
leaq 0x1782(%rip), %rdi      # 0xf0ad
pushq $0xf
popq %rsi
pushq $0x1
popq %rdx
callq 0x1150
jmp 0xd2bc
movq 0x56b6(%rip), %rax      # 0x12ff8
movq (%rax), %rcx
leaq 0x1499(%rip), %rdi      # 0xede5
pushq $0x1f
popq %rsi
pushq $0x1
popq %rdx
callq 0x1150
jmp 0xcfa5
movq 0x5695(%rip), %rax      # 0x12ff8
movq (%rax), %rcx
leaq 0x1478(%rip), %rdi      # 0xede5
pushq $0x1f
popq %rsi
pushq $0x1
popq %rdx
callq 0x1150
jmp 0xd01b
movq 0x5674(%rip), %rax      # 0x12ff8
movq (%rax), %rcx
leaq 0x1457(%rip), %rdi      # 0xede5
pushq $0x1f
popq %rsi
pushq $0x1
popq %rdx
callq 0x1150
jmp 0xd09a
movq 0x5653(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
leaq 0x11c3(%rip), %rsi      # 0xeb72
movq %rbx, %rdx
xorl %eax, %eax
callq 0x10a0
pushq $0x6b
jmp 0xdc8f
movq 0x5631(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
leaq 0x11a1(%rip), %rsi      # 0xeb72
movq %rbx, %rdx
xorl %eax, %eax
callq 0x10a0
pushq $0x6a
jmp 0xdc8f
movq 0x560f(%rip), %rax      # 0x12ff8
movq (%rax), %rcx
leaq 0x1247(%rip), %rdi      # 0xec3a
pushq $0x1b
popq %rsi
pushq $0x1
popq %rdx
callq 0x1150
xorl %edi, %edi
callq 0x1140
movq 0x55ec(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
leaq 0x115c(%rip), %rsi      # 0xeb72
movq %rbx, %rdx
xorl %eax, %eax
callq 0x10a0
pushq $0x77
jmp 0xdc8f
movq 0x55ca(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
leaq 0x113a(%rip), %rsi      # 0xeb72
movq %rbx, %rdx
xorl %eax, %eax
callq 0x10a0
pushq $0x63
jmp 0xdc8f
movq 0x55a8(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
leaq 0x1118(%rip), %rsi      # 0xeb72
movq %rbx, %rdx
xorl %eax, %eax
callq 0x10a0
pushq $0x64
jmp 0xdc8f
movq 0x5586(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
leaq 0x10f6(%rip), %rsi      # 0xeb72
movq %rbx, %rdx
xorl %eax, %eax
callq 0x10a0
pushq $0x78
jmp 0xdc8f
movq 0x5564(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
leaq 0x11e9(%rip), %rsi      # 0xec87
leaq 0x60(%rsp), %rdx
xorl %eax, %eax
callq 0x10a0
pushq $0x71
jmp 0xdc8f
movq 0x5540(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
leaq 0x11c5(%rip), %rsi      # 0xec87
leaq 0x60(%rsp), %rdx
xorl %eax, %eax
callq 0x10a0
pushq $0x6f
jmp 0xdc8f
movq 0x551c(%rip), %rax      # 0x12ff8
movq (%rax), %rcx
leaq 0x11dd(%rip), %rdi      # 0xecc3
pushq $0x22
popq %rsi
pushq $0x1
popq %rdx
callq 0x1150
pushq $0x70
jmp 0xdc8f
movq 0x54f9(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
leaq 0x1069(%rip), %rsi      # 0xeb72
movq %rbx, %rdx
xorl %eax, %eax
callq 0x10a0
pushq $0x69
jmp 0xdc8f
movq 0x54d7(%rip), %rax      # 0x12ff8
movq (%rax), %rcx
leaq 0x106f(%rip), %rdi      # 0xeb9a
pushq $0x24
popq %rsi
pushq $0x1
popq %rdx
callq 0x1150
pushq $0x65
jmp 0xdc8f
pushq $0x5d
jmp 0xdc8f
movq 0x54ad(%rip), %rax      # 0x12ff8
movq (%rax), %rcx
leaq 0xfa4(%rip), %rdi       # 0xeaf9
pushq $0x1b
popq %rsi
pushq $0x1
popq %rdx
callq 0x1150
pushq $0x5e
jmp 0xdc8f
movq 0x548a(%rip), %rax      # 0x12ff8
movq (%rax), %rcx
leaq 0xf9d(%rip), %rdi       # 0xeb15
pushq $0x37
popq %rsi
pushq $0x1
popq %rdx
callq 0x1150
pushq $0x5f
jmp 0xdc8f
movq 0x5467(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
leaq 0xfb2(%rip), %rsi       # 0xeb4d
movl 0x18(%rsp), %edx
xorl %eax, %eax
callq 0x10a0
pushq $0x62
jmp 0xdc8f
movq 0x5444(%rip), %rax      # 0x12ff8
movq (%rax), %rcx
leaq 0x113f(%rip), %rdi      # 0xecfd
pushq $0x54
popq %rsi
pushq $0x1
popq %rdx
callq 0x1150
pushq $0x73
jmp 0xdc8f
movq 0x5421(%rip), %rax      # 0x12ff8
movq (%rax), %rcx
leaq 0x102f(%rip), %rdi      # 0xec10
pushq $0xf
popq %rsi
pushq $0x1
popq %rdx
callq 0x1150
pushq $0x68
jmp 0xdc8f
movq 0x53fe(%rip), %rax      # 0x12ff8
movq (%rax), %rcx
leaq 0xfe3(%rip), %rdi       # 0xebe7
pushq $0x1e
popq %rsi
pushq $0x1
popq %rdx
callq 0x1150
pushq $0x66
jmp 0xdc8f
movq 0x53de(%rip), %rax      # 0x12ff8
movq (%rax), %rcx
leaq 0x112e(%rip), %rdi      # 0xed52
pushq $0x43
popq %rsi
pushq $0x1
popq %rdx
callq 0x1150
pushq $0x74
jmp 0xdc8f
movq 0x53be(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
leaq 0x1043(%rip), %rsi      # 0xec87
leaq 0x12185(%rip), %rdx     # 0x1fdd0
xorl %eax, %eax
callq 0x10a0
pushq $0x76
jmp 0xdc8f
movq 0x539b(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
leaq 0xf0b(%rip), %rsi       # 0xeb72
movq %rbx, %rdx
xorl %eax, %eax
callq 0x10a0
pushq $0x67
jmp 0xdc8f
movq 0x537c(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
leaq 0x1060(%rip), %rsi      # 0xece6
xorl %eax, %eax
callq 0x10a0
pushq $0x72
popq %rdi
callq 0x1140