// File: /workspace/github_c_makefile_star2_O0/mishun[P]plantri/fullgen.c
// Function: baue_auf
void baue_auf(PLANMAP map, SEQUENZ sq, int sechsecke)
{

SEQUENZ localseq;
int j, i, laenge;
KANTE *naechste, *nextmark, *run;
int anzahl, naechste_stelle, sql;


if (IPR && (!is_ipr))  return;

sql=sq.laenge;

if (sql >=2)
{
for (i=0; i<sql && ((i==0) || !((sq.k_marks)[i])); i++) 
                                            /* Schleife ueber alle moeglichen Startpunkte */
  {
    laenge=sq.sequenz[i]; 
    if (i==sql-1) naechste_stelle=0; else naechste_stelle=i+1;
    if (laenge==0)
    {
    /* da nie eine 0 am anfang einer kanonischen Sequenz stehen kann, kann die erste einer
       doppel-0 nie am ende stehen, also: */
      if ( (i<sql-1) && (sq.sequenz[i+1]==0) )
	{
	  if (sechsecke >= 1)
	    { 
	      naechste=sq.kanten[i];
	      { add_polygon(6,map,naechste,&naechste); nextmark=naechste; }
	      belege_sequenz(nextmark,&localseq); 
	      if (localseq.k_marks[0])
		{ schreibe_auf(map,localseq,sechsecke-1);
		  baue_auf(map, localseq, sechsecke-1); }
	      /* aufraeumen: */
	      (map[0][0].name) = (map[0][0].name) - 4;
	      run=sq.kanten[i]; run->name=aussen; run->invers=nil; 
	      run=run->next->invers->next; run->name=aussen; run->invers=nil;
	    }   /* ende if ...*/
	  naechste=sq.kanten[i];
	  { add_polygon(5,map,naechste,&naechste); nextmark=naechste; }
	  belege_sequenz(nextmark,&localseq); 
	  if (localseq.k_marks[0])
	    { schreibe_auf(map,localseq,sechsecke);
	      baue_auf(map, localseq, sechsecke); }
	  /* aufraeumen: */
	  is_ipr=1;
	  (map[0][0].name) = (map[0][0].name) - 3;
	  run=sq.kanten[i]; run->name=aussen; run->invers=nil; 
	  run=run->next->invers->next; run->name=aussen; run->invers=nil;

	}

    if (sq.laenge==2) /* nur dann oder im vorigen Fall muss auch an 0er angelegt werden */
    {
    /* In diesem Teil wird die Sequenz nicht a priori berechnet, sondern erst im nachhinein --
       das kostet zwar Zeit, ist aber einfacher und braucht nicht so wahnsinnig viele
       Fallunterscheidungen */

    if (i != 1) { fprintf(stderr,"ERROR: i should be 1 !\n"); exit(26); }
    anzahl= 2 + sq.sequenz[0]; /* Bei laenge 0 muss der naechste mit aufgefuellt werden,
					       um keine Doppel-Innenkanten zu erhalten */

    /* erst nur 6-Ecke */
    if (sechsecke >= anzahl)
      { 
      naechste=sq.kanten[i];
      if (anzahl==1) { add_polygon(6,map,naechste,&naechste); nextmark=naechste; }
        else {
               add_polygon(6,map,naechste,&naechste); nextmark=naechste->prev->invers->prev;
               for (j=1; j<anzahl; j++)  add_polygon(6,map,naechste,&naechste); }
      belege_sequenz(nextmark,&localseq); 
      if (localseq.k_marks[0])
	   { schreibe_auf(map,localseq,sechsecke-anzahl);
	     baue_auf(map, localseq, sechsecke-anzahl); }
      /* aufraeumen: */
      (map[0][0].name) = (map[0][0].name) - 2*anzahl -2;
      run=sq.kanten[i]; run->name=aussen; run->invers=nil; 
      run=run->next->invers->next; run->name=aussen; run->invers=nil;
      for (j=2 ; j<anzahl; j++) { run=run->next->invers->next->invers->next;
	                         run->name=aussen; run->invers=nil; }
      }   /* ende if ...*/



    /* dann ein 5- und 6-Ecke */
    if (sechsecke >= anzahl-1)
      { 
      naechste=sq.kanten[i];
      if (anzahl==1) { add_polygon(5,map,naechste,&naechste); nextmark=naechste; }
        else {
               add_polygon(6,map,naechste,&naechste); nextmark=naechste->prev->invers->prev;
               for (j=1; j<anzahl-1; j++)  add_polygon(6,map,naechste,&naechste);  
               add_polygon(5,map,naechste,&naechste);  }
      belege_sequenz(nextmark,&localseq);
      if (localseq.k_marks[0])
	   { schreibe_auf(map,localseq,sechsecke-anzahl+1);
	     baue_auf(map, localseq, sechsecke-anzahl+1); }
      /* aufraeumen: */
      is_ipr=1;
      (map[0][0].name) = (map[0][0].name) - 2*anzahl-1;
      run=sq.kanten[i]; run->name=aussen; run->invers=nil; 
      run=run->next->invers->next; run->name=aussen; run->invers=nil;
      for (j=2 ; j<anzahl; j++) { run=run->next->invers->next->invers->next;
	                         run->name=aussen; run->invers=nil; }
      }   /* ende if ... */

    /* dann eventuell zwei 5- und der Rest 6-Ecke um es zu 0-Sequenz zu machen */
    if (sechsecke >= anzahl-2)
      {
      naechste=sq.kanten[i];
      add_polygon(5,map,naechste,&naechste); nextmark=naechste->prev->invers->prev;
      for (j=1; j<anzahl-1; j++)  add_polygon(6,map,naechste,&naechste);  
      add_polygon(5,map,naechste,&naechste); 
      belege_sequenz(nextmark,&localseq);
      check_mark_und_schreibe(map,nextmark,localseq.sequenz[0],sechsecke-anzahl+2);

      /* aufraeumen: */
      is_ipr=1;
      (map[0][0].name) = (map[0][0].name) - 2*anzahl;
      run=sq.kanten[i]; run->name=aussen; run->invers=nil; 
      run=run->next->invers->next; run->name=aussen; run->invers=nil;
      for (j=2; j<anzahl; j++) { run=run->next->invers->next->invers->next;
	                         run->name=aussen; run->invers=nil; }

      }   /* ende if */
     } /* ende if sq.laenge==2 */
    } /* ende laenge==0 */


    else /* d.h. laenge !=0 */
    {

    /* ein sonderfall, wenn der naechste ein 0er ist (der erste aber nicht)--
       dann musss da noch ein 6-Eck mehr angefuegt werden: */

      if ((sq.sequenz[naechste_stelle]==0) && (sql>2))
	  { 
	    if (sechsecke >= laenge+1)
	    { 
	      naechste=sq.kanten[i];
              add_polygon(6,map,naechste,&naechste); nextmark=naechste->prev->invers->prev;
	      /* insgesamt laenge+1: */
	      for (j=1; j<=laenge; j++)  add_polygon(6,map,naechste,&naechste);  
	      belege_sequenz(nextmark,&localseq); 
	      if (localseq.k_marks[0])
		{ schreibe_auf(map,localseq,sechsecke-laenge-1);
		  baue_auf(map, localseq, sechsecke-laenge-1); }
              /* aufraeumen: */
	      (map[0][0].name) = (map[0][0].name) - 2*laenge -4;
	      run=sq.kanten[i]; run->name=aussen; run->invers=nil;
	      for (j=0; j<laenge; j++) { run=run->next->invers->next->invers->next;
					 run->name=aussen; run->invers=nil; }
	      run=run->next->invers->next; run->name=aussen; run->invers=nil;

	    }   /* ende if ...*/
	    if (sechsecke >= laenge)
	    { 
	      naechste=sq.kanten[i];
              add_polygon(6,map,naechste,&naechste); nextmark=naechste->prev->invers->prev;
	      /* insgesamt laenge+1: */
	      for (j=1; j<laenge; j++)  add_polygon(6,map,naechste,&naechste);  
	      add_polygon(5,map,naechste,&naechste);  
	      belege_sequenz(nextmark,&localseq); 
	      if (localseq.k_marks[0])
		{ schreibe_auf(map,localseq,sechsecke-laenge);
		  baue_auf(map, localseq, sechsecke-laenge); }
              /* aufraeumen: */
	      is_ipr=1;
	      (map[0][0].name) = (map[0][0].name) - 2*laenge -3;
	      run=sq.kanten[i]; run->name=aussen; run->invers=nil;
	      for (j=0; j<laenge; j++) { run=run->next->invers->next->invers->next;
					 run->name=aussen; run->invers=nil; }
	      run=run->next->invers->next; run->name=aussen; run->invers=nil;

	    }   /* ende if ...*/
	  } /* ende sonderfall naechste_stelle==0-sequenz */



    /* erst nur 6-Ecke */
    if (sechsecke >= laenge)
      { 
      naechste=sq.kanten[i];
      berechne_sequenz(&localseq,sq,i,0);
      if (localseq.k_marks[0])
      {
      if (laenge==1) { add_polygon(6,map,naechste,&naechste); nextmark=naechste;
                       localseq.kanten[0]=nextmark; 
		       localseq.kanten[localseq.laenge-1]=naechste->prev->invers->prev; }
        else {
               add_polygon(6,map,naechste,&naechste); nextmark=naechste->prev->invers->prev;
               for (j=1; j<laenge; j++)  add_polygon(6,map,naechste,&naechste); 
               localseq.kanten[0]=nextmark; localseq.kanten[1]=naechste; }
      if (localseq.k_marks[0])
	   { schreibe_auf(map,localseq,sechsecke-laenge);
	     baue_auf(map, localseq, sechsecke-laenge); }
      /* aufraeumen: */
      (map[0][0].name) = (map[0][0].name) - 2*laenge -1;

      run=sq.kanten[i]; run->name=aussen; run->invers=nil;
      for (j=0; j<laenge; j++) { run=run->next->invers->next->invers->next;
	                         run->name=aussen; run->invers=nil; }
    }/* ende if kanonisch */
      }   /* ende if ...*/



    /* dann ein 5- und 6-Ecke */
    if (sechsecke >= laenge-1)
      { 
      naechste=sq.kanten[i];
      berechne_sequenz(&localseq,sq,i,1); 
      if (localseq.k_marks[0])
      {
      if (laenge==1) { add_polygon(5,map,naechste,&naechste); nextmark=naechste; 
                       localseq.kanten[0]=nextmark; }
        else {
               add_polygon(6,map,naechste,&naechste); nextmark=naechste->prev->invers->prev;
               for (j=1; j<laenge-1; j++)  add_polygon(6,map,naechste,&naechste);  
               add_polygon(5,map,naechste,&naechste);  
               localseq.kanten[0]=nextmark; }
      if (localseq.k_marks[0])
	   { schreibe_auf(map,localseq,sechsecke-laenge+1);
	     baue_auf(map, localseq, sechsecke-laenge+1); }
      /* aufraeumen: */
      is_ipr=1;
      (map[0][0].name) = (map[0][0].name) - 2*laenge;
      run=sq.kanten[i]; run->name=aussen; run->invers=nil;
      for (j=0; j<laenge; j++) { run=run->next->invers->next->invers->next;
	                         run->name=aussen; run->invers=nil; }
    }/* ende if kanonisch */
      }   /* ende if ... */

    /* dann eventuell zwei 5- und der Rest 6-Ecke um es zu 0-Sequenz zu machen */
    if ((laenge>=2) && (sechsecke >= laenge-2) && (sq.laenge==2))
      { 
      naechste=sq.kanten[i];
      berechne_sequenz(&localseq,sq,i,2);
      add_polygon(5,map,naechste,&naechste); nextmark=naechste->prev->invers->prev;
      for (j=1; j<laenge-1; j++)  add_polygon(6,map,naechste,&naechste);  
      add_polygon(5,map,naechste,&naechste); 
      localseq.kanten[0]=nextmark;
      check_mark_und_schreibe(map,nextmark,localseq.sequenz[0],sechsecke-laenge+2);

      /* aufraeumen: */
      is_ipr=1;
      (map[0][0].name) = (map[0][0].name) - 2*laenge + 1;
      run=sq.kanten[i]; run->name=aussen; run->invers=nil;
      for (j=0; j<laenge; j++) { run=run->next->invers->next->invers->next;
	                         run->name=aussen; run->invers=nil; }
      }   /* ende if */
    }/* ende laenge != 0 */
   } /* ende for */

} /* ende if sequenzlaenge >=2 */

else /* d.h. sequenzlaenge==1 */
{
laenge=sq.sequenz[0];

/* erst nur 6-Ecke */
if (laenge && (sechsecke >= (laenge+1)))
 { 
 naechste=sq.kanten[0];
 berechne_sequenz(&localseq,sq,0,0);
 for (j=0; j<=laenge; j++)  add_polygon(6,map,naechste,&naechste);  
 nextmark=naechste;
 localseq.kanten[0]=nextmark;
 schreibe_auf(map,localseq,sechsecke-laenge-1);
 baue_auf(map, localseq, sechsecke-laenge-1); 
 /* aufraeumen: */
 (map[0][0].name) = (map[0][0].name) - 2*laenge -3;

      run=sq.kanten[0]; run->name=aussen; run->invers=nil;
      for (j=0; j<laenge; j++) { run=run->next->invers->next->invers->next;
	                         run->name=aussen; run->invers=nil; }
      }   /* ende if */

/* dann ein 5- und 6-Ecke */
if (laenge && (sechsecke >= laenge))
  {
  naechste=sq.kanten[0];
  berechne_sequenz(&localseq,sq,0,1);
  for (j=0; j<laenge; j++)  add_polygon(6,map,naechste,&naechste);  
  add_polygon(5,map,naechste,&naechste); 
  nextmark=naechste;
  /* das ist zwar zwangslaeufig kanonisch, aber trotzdem: */
  localseq.kanten[0]=nextmark; 
  check_mark_und_schreibe(map,nextmark,localseq.sequenz[0],sechsecke-laenge);
  /* aufraeumen: */
  is_ipr=1;
  (map[0][0].name) = (map[0][0].name) - 2*laenge -2;
  run=sq.kanten[0]; run->name=aussen; run->invers=nil;
  for (j=0; j<laenge; j++) { run=run->next->invers->next->invers->next;
			     run->name=aussen; run->invers=nil; }
      }   /* ende if */


} /* ende else */

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x120, %rsp            # imm = 0x120
leaq 0x10(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movsbl 0x15acd(%rip), %eax     # 0x1c181
cmpl $0x0, %eax
je 0x66c7
cmpb $0x0, 0x15a74(%rip)     # 0x1c134
jne 0x66c7
jmp 0x8086
movq -0xb0(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xa4(%rbp)
cmpl $0x2, -0xa4(%rbp)
jl 0x7cf3
movl $0x0, -0x78(%rbp)
movl -0x78(%rbp), %ecx
xorl %eax, %eax
cmpl -0xa4(%rbp), %ecx
movb %al, -0xb1(%rbp)
jge 0x6732
movb $0x1, %al
cmpl $0x0, -0x78(%rbp)
movb %al, -0xb2(%rbp)
je 0x6726
movq -0xb0(%rbp), %rax
movslq -0x78(%rbp), %rcx
cmpb $0x0, 0x58(%rax,%rcx)
setne %al
xorb $-0x1, %al
movb %al, -0xb2(%rbp)
movb -0xb2(%rbp), %al
movb %al, -0xb1(%rbp)
movb -0xb1(%rbp), %al
testb $0x1, %al
jne 0x6741
jmp 0x7cee
movq -0xb0(%rbp), %rax
movslq -0x78(%rbp), %rcx
movl 0x4(%rax,%rcx,4), %eax
movl %eax, -0x7c(%rbp)
movl -0x78(%rbp), %eax
movl -0xa4(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jne 0x676f
movl $0x0, -0xa0(%rbp)
jmp 0x677b
movl -0x78(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xa0(%rbp)
cmpl $0x0, -0x7c(%rbp)
jne 0x7175
movl -0x78(%rbp), %eax
movl -0xa4(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x6a73
movq -0xb0(%rbp), %rax
movl -0x78(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
cmpl $0x0, 0x4(%rax,%rcx,4)
jne 0x6a73
cmpl $0x1, -0xc(%rbp)
jl 0x691a
movq -0xb0(%rbp), %rax
movslq -0x78(%rbp), %rcx
movq 0x20(%rax,%rcx,8), %rax
movq %rax, -0x88(%rbp)
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x6, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movq -0x88(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x5160
cmpb $0x0, -0x18(%rbp)
je 0x689b
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
subl $0x1, %esi
movups -0x20(%rbp), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups -0x30(%rbp), %xmm0
movups %xmm0, 0x40(%rax)
movups -0x70(%rbp), %xmm0
movups -0x60(%rbp), %xmm1
movups -0x50(%rbp), %xmm2
movups -0x40(%rbp), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x6280
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
subl $0x1, %esi
movups -0x20(%rbp), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups -0x30(%rbp), %xmm0
movups %xmm0, 0x40(%rax)
movups -0x70(%rbp), %xmm0
movups -0x60(%rbp), %xmm1
movups -0x50(%rbp), %xmm2
movups -0x40(%rbp), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x6690
movq -0xb0(%rbp), %rax
movq -0x8(%rbp), %rcx
movzwl 0x2(%rcx), %ecx
subl $0x4, %ecx
movw %cx, %dx
movq -0x8(%rbp), %rcx
movw %dx, 0x2(%rcx)
movslq -0x78(%rbp), %rcx
movq 0x20(%rax,%rcx,8), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movq -0xb0(%rbp), %rax
movslq -0x78(%rbp), %rcx
movq 0x20(%rax,%rcx,8), %rax
movq %rax, -0x88(%rbp)
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x5, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movq -0x88(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x5160
cmpb $0x0, -0x18(%rbp)
je 0x69ed
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movups -0x20(%rbp), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups -0x30(%rbp), %xmm0
movups %xmm0, 0x40(%rax)
movups -0x70(%rbp), %xmm0
movups -0x60(%rbp), %xmm1
movups -0x50(%rbp), %xmm2
movups -0x40(%rbp), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x6280
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movups -0x20(%rbp), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups -0x30(%rbp), %xmm0
movups %xmm0, 0x40(%rax)
movups -0x70(%rbp), %xmm0
movups -0x60(%rbp), %xmm1
movups -0x50(%rbp), %xmm2
movups -0x40(%rbp), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x6690
movq -0xb0(%rbp), %rax
movb $0x1, 0x15739(%rip)     # 0x1c134
movq -0x8(%rbp), %rcx
movzwl 0x2(%rcx), %ecx
subl $0x3, %ecx
movw %cx, %dx
movq -0x8(%rbp), %rcx
movw %dx, 0x2(%rcx)
movslq -0x78(%rbp), %rcx
movq 0x20(%rax,%rcx,8), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movq -0xb0(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x7170
cmpl $0x1, -0x78(%rbp)
je 0x6aab
movq 0x15568(%rip), %rax     # 0x1bff8
movq (%rax), %rdi
leaq 0x11cf0(%rip), %rsi     # 0x1878a
movb $0x0, %al
callq 0x1080
movl $0x1a, %edi
callq 0x1120
movq -0xb0(%rbp), %rax
movl 0x4(%rax), %eax
addl $0x2, %eax
movl %eax, -0x9c(%rbp)
movl -0xc(%rbp), %eax
cmpl -0x9c(%rbp), %eax
jl 0x6d12
movq -0xb0(%rbp), %rax
movslq -0x78(%rbp), %rcx
movq 0x20(%rax,%rcx,8), %rax
movq %rax, -0x88(%rbp)
cmpl $0x1, -0x9c(%rbp)
jne 0x6b19
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x6, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movq -0x88(%rbp), %rax
movq %rax, -0x90(%rbp)
jmp 0x6b8a
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x6, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x90(%rbp)
movl $0x1, -0x74(%rbp)
movl -0x74(%rbp), %eax
cmpl -0x9c(%rbp), %eax
jge 0x6b88
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x6, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x6b56
jmp 0x6b8a
movq -0x90(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x5160
cmpb $0x0, -0x18(%rbp)
je 0x6c2c
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
subl -0x9c(%rbp), %esi
movups -0x20(%rbp), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups -0x30(%rbp), %xmm0
movups %xmm0, 0x40(%rax)
movups -0x70(%rbp), %xmm0
movups -0x60(%rbp), %xmm1
movups -0x50(%rbp), %xmm2
movups -0x40(%rbp), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x6280
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
subl -0x9c(%rbp), %esi
movups -0x20(%rbp), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups -0x30(%rbp), %xmm0
movups %xmm0, 0x40(%rax)
movups -0x70(%rbp), %xmm0
movups -0x60(%rbp), %xmm1
movups -0x50(%rbp), %xmm2
movups -0x40(%rbp), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x6690
movq -0xb0(%rbp), %rax
movq -0x8(%rbp), %rcx
movzwl 0x2(%rcx), %ecx
movl -0x9c(%rbp), %edx
shll %edx
subl %edx, %ecx
subl $0x2, %ecx
movw %cx, %dx
movq -0x8(%rbp), %rcx
movw %dx, 0x2(%rcx)
movslq -0x78(%rbp), %rcx
movq 0x20(%rax,%rcx,8), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movl $0x2, -0x74(%rbp)
movl -0x74(%rbp), %eax
cmpl -0x9c(%rbp), %eax
jge 0x6d10
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x6cbc
jmp 0x6d12
movl -0xc(%rbp), %eax
movl -0x9c(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jl 0x6f9a
movq -0xb0(%rbp), %rax
movslq -0x78(%rbp), %rcx
movq 0x20(%rax,%rcx,8), %rax
movq %rax, -0x88(%rbp)
cmpl $0x1, -0x9c(%rbp)
jne 0x6d75
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x5, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movq -0x88(%rbp), %rax
movq %rax, -0x90(%rbp)
jmp 0x6e05
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x6, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x90(%rbp)
movl $0x1, -0x74(%rbp)
movl -0x74(%rbp), %eax
movl -0x9c(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x6de9
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x6, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x6db2
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x5, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movq -0x90(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x5160
cmpb $0x0, -0x18(%rbp)
je 0x6ead
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
subl -0x9c(%rbp), %esi
addl $0x1, %esi
movups -0x20(%rbp), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups -0x30(%rbp), %xmm0
movups %xmm0, 0x40(%rax)
movups -0x70(%rbp), %xmm0
movups -0x60(%rbp), %xmm1
movups -0x50(%rbp), %xmm2
movups -0x40(%rbp), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x6280
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
subl -0x9c(%rbp), %esi
addl $0x1, %esi
movups -0x20(%rbp), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups -0x30(%rbp), %xmm0
movups %xmm0, 0x40(%rax)
movups -0x70(%rbp), %xmm0
movups -0x60(%rbp), %xmm1
movups -0x50(%rbp), %xmm2
movups -0x40(%rbp), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x6690
movq -0xb0(%rbp), %rax
movb $0x1, 0x15279(%rip)     # 0x1c134
movq -0x8(%rbp), %rcx
movzwl 0x2(%rcx), %ecx
movl -0x9c(%rbp), %edx
shll %edx
subl %edx, %ecx
subl $0x1, %ecx
movw %cx, %dx
movq -0x8(%rbp), %rcx
movw %dx, 0x2(%rcx)
movslq -0x78(%rbp), %rcx
movq 0x20(%rax,%rcx,8), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movl $0x2, -0x74(%rbp)
movl -0x74(%rbp), %eax
cmpl -0x9c(%rbp), %eax
jge 0x6f98
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x6f44
jmp 0x6f9a
movl -0xc(%rbp), %eax
movl -0x9c(%rbp), %ecx
subl $0x2, %ecx
cmpl %ecx, %eax
jl 0x716e
movq -0xb0(%rbp), %rax
movslq -0x78(%rbp), %rcx
movq 0x20(%rax,%rcx,8), %rax
movq %rax, -0x88(%rbp)
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x5, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x90(%rbp)
movl $0x1, -0x74(%rbp)
movl -0x74(%rbp), %eax
movl -0x9c(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x7039
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x6, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x7002
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x5, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movq -0x90(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x5160
movq -0x8(%rbp), %rdi
movq -0x90(%rbp), %rsi
movl -0x6c(%rbp), %edx
movl -0xc(%rbp), %ecx
subl -0x9c(%rbp), %ecx
addl $0x2, %ecx
callq 0x64d0
movq -0xb0(%rbp), %rax
movb $0x1, 0x150a2(%rip)     # 0x1c134
movq -0x8(%rbp), %rcx
movzwl 0x2(%rcx), %ecx
movl -0x9c(%rbp), %edx
shll %edx
subl %edx, %ecx
movw %cx, %dx
movq -0x8(%rbp), %rcx
movw %dx, 0x2(%rcx)
movslq -0x78(%rbp), %rcx
movq 0x20(%rax,%rcx,8), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movl $0x2, -0x74(%rbp)
movl -0x74(%rbp), %eax
cmpl -0x9c(%rbp), %eax
jge 0x716c
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x7118
jmp 0x716e
jmp 0x7170
jmp 0x7cde
movq -0xb0(%rbp), %rax
movslq -0xa0(%rbp), %rcx
cmpl $0x0, 0x4(%rax,%rcx,4)
jne 0x75dd
cmpl $0x2, -0xa4(%rbp)
jle 0x75dd
movl -0xc(%rbp), %eax
movl -0x7c(%rbp), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jl 0x73af
movq -0xb0(%rbp), %rax
movslq -0x78(%rbp), %rcx
movq 0x20(%rax,%rcx,8), %rax
movq %rax, -0x88(%rbp)
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x6, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x90(%rbp)
movl $0x1, -0x74(%rbp)
movl -0x74(%rbp), %eax
cmpl -0x7c(%rbp), %eax
jg 0x722f
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x6, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x7200
movq -0x90(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x5160
cmpb $0x0, -0x18(%rbp)
je 0x72d1
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
subl -0x7c(%rbp), %esi
subl $0x1, %esi
movups -0x20(%rbp), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups -0x30(%rbp), %xmm0
movups %xmm0, 0x40(%rax)
movups -0x70(%rbp), %xmm0
movups -0x60(%rbp), %xmm1
movups -0x50(%rbp), %xmm2
movups -0x40(%rbp), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x6280
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
subl -0x7c(%rbp), %esi
subl $0x1, %esi
movups -0x20(%rbp), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups -0x30(%rbp), %xmm0
movups %xmm0, 0x40(%rax)
movups -0x70(%rbp), %xmm0
movups -0x60(%rbp), %xmm1
movups -0x50(%rbp), %xmm2
movups -0x40(%rbp), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x6690
movq -0xb0(%rbp), %rax
movq -0x8(%rbp), %rcx
movzwl 0x2(%rcx), %ecx
movl -0x7c(%rbp), %edx
shll %edx
subl %edx, %ecx
subl $0x4, %ecx
movw %cx, %dx
movq -0x8(%rbp), %rcx
movw %dx, 0x2(%rcx)
movslq -0x78(%rbp), %rcx
movq 0x20(%rax,%rcx,8), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movl $0x0, -0x74(%rbp)
movl -0x74(%rbp), %eax
cmpl -0x7c(%rbp), %eax
jge 0x7379
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x7328
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movl -0xc(%rbp), %eax
cmpl -0x7c(%rbp), %eax
jl 0x75db
movq -0xb0(%rbp), %rax
movslq -0x78(%rbp), %rcx
movq 0x20(%rax,%rcx,8), %rax
movq %rax, -0x88(%rbp)
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x6, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x90(%rbp)
movl $0x1, -0x74(%rbp)
movl -0x74(%rbp), %eax
cmpl -0x7c(%rbp), %eax
jge 0x743e
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x6, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x740f
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x5, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movq -0x90(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x5160
cmpb $0x0, -0x18(%rbp)
je 0x74f6
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
subl -0x7c(%rbp), %esi
movups -0x20(%rbp), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups -0x30(%rbp), %xmm0
movups %xmm0, 0x40(%rax)
movups -0x70(%rbp), %xmm0
movups -0x60(%rbp), %xmm1
movups -0x50(%rbp), %xmm2
movups -0x40(%rbp), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x6280
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
subl -0x7c(%rbp), %esi
movups -0x20(%rbp), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups -0x30(%rbp), %xmm0
movups %xmm0, 0x40(%rax)
movups -0x70(%rbp), %xmm0
movups -0x60(%rbp), %xmm1
movups -0x50(%rbp), %xmm2
movups -0x40(%rbp), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x6690
movq -0xb0(%rbp), %rax
movb $0x1, 0x14c30(%rip)     # 0x1c134
movq -0x8(%rbp), %rcx
movzwl 0x2(%rcx), %ecx
movl -0x7c(%rbp), %edx
shll %edx
subl %edx, %ecx
subl $0x3, %ecx
movw %cx, %dx
movq -0x8(%rbp), %rcx
movw %dx, 0x2(%rcx)
movslq -0x78(%rbp), %rcx
movq 0x20(%rax,%rcx,8), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movl $0x0, -0x74(%rbp)
movl -0x74(%rbp), %eax
cmpl -0x7c(%rbp), %eax
jge 0x75a5
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x7554
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
jmp 0x75dd
movl -0xc(%rbp), %eax
cmpl -0x7c(%rbp), %eax
jl 0x7865
movq -0xb0(%rbp), %rcx
movslq -0x78(%rbp), %rax
movq 0x20(%rcx,%rax,8), %rax
movq %rax, -0x88(%rbp)
movl -0x78(%rbp), %esi
xorl %eax, %eax
movups 0x50(%rcx), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups 0x40(%rcx), %xmm0
movups %xmm0, 0x40(%rax)
movups (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups 0x20(%rcx), %xmm2
movups 0x30(%rcx), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
leaq -0x70(%rbp), %rdi
xorl %edx, %edx
callq 0x4b20
cmpb $0x0, -0x18(%rbp)
je 0x7863
cmpl $0x1, -0x7c(%rbp)
jne 0x76ab
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x6, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movq -0x88(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rax
movq 0x18(%rax), %rcx
movl -0x70(%rbp), %eax
subl $0x1, %eax
cltq
movq %rcx, -0x50(%rbp,%rax,8)
jmp 0x772d
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x6, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x90(%rbp)
movl $0x1, -0x74(%rbp)
movl -0x74(%rbp), %eax
cmpl -0x7c(%rbp), %eax
jge 0x7717
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x6, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x76e8
movq -0x90(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x88(%rbp), %rax
movq %rax, -0x48(%rbp)
cmpb $0x0, -0x18(%rbp)
je 0x77b9
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
subl -0x7c(%rbp), %esi
movups -0x20(%rbp), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups -0x30(%rbp), %xmm0
movups %xmm0, 0x40(%rax)
movups -0x70(%rbp), %xmm0
movups -0x60(%rbp), %xmm1
movups -0x50(%rbp), %xmm2
movups -0x40(%rbp), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x6280
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
subl -0x7c(%rbp), %esi
movups -0x20(%rbp), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups -0x30(%rbp), %xmm0
movups %xmm0, 0x40(%rax)
movups -0x70(%rbp), %xmm0
movups -0x60(%rbp), %xmm1
movups -0x50(%rbp), %xmm2
movups -0x40(%rbp), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x6690
movq -0xb0(%rbp), %rax
movq -0x8(%rbp), %rcx
movzwl 0x2(%rcx), %ecx
movl -0x7c(%rbp), %edx
shll %edx
subl %edx, %ecx
subl $0x1, %ecx
movw %cx, %dx
movq -0x8(%rbp), %rcx
movw %dx, 0x2(%rcx)
movslq -0x78(%rbp), %rcx
movq 0x20(%rax,%rcx,8), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movl $0x0, -0x74(%rbp)
movl -0x74(%rbp), %eax
cmpl -0x7c(%rbp), %eax
jge 0x7861
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x7810
jmp 0x7863
jmp 0x7865
movl -0xc(%rbp), %eax
movl -0x7c(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jl 0x7af3
movq -0xb0(%rbp), %rcx
movslq -0x78(%rbp), %rax
movq 0x20(%rcx,%rax,8), %rax
movq %rax, -0x88(%rbp)
movl -0x78(%rbp), %esi
movups 0x50(%rcx), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups 0x40(%rcx), %xmm0
movups %xmm0, 0x40(%rax)
movups (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups 0x20(%rcx), %xmm2
movups 0x30(%rcx), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
leaq -0x70(%rbp), %rdi
movl $0x1, %edx
callq 0x4b20
cmpb $0x0, -0x18(%rbp)
je 0x7af1
cmpl $0x1, -0x7c(%rbp)
jne 0x7919
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x5, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movq -0x88(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x50(%rbp)
jmp 0x79b1
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x6, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x90(%rbp)
movl $0x1, -0x74(%rbp)
movl -0x74(%rbp), %eax
movl -0x7c(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x798a
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x6, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x7956
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x5, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movq -0x90(%rbp), %rax
movq %rax, -0x50(%rbp)
cmpb $0x0, -0x18(%rbp)
je 0x7a43
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
subl -0x7c(%rbp), %esi
addl $0x1, %esi
movups -0x20(%rbp), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups -0x30(%rbp), %xmm0
movups %xmm0, 0x40(%rax)
movups -0x70(%rbp), %xmm0
movups -0x60(%rbp), %xmm1
movups -0x50(%rbp), %xmm2
movups -0x40(%rbp), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x6280
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
subl -0x7c(%rbp), %esi
addl $0x1, %esi
movups -0x20(%rbp), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups -0x30(%rbp), %xmm0
movups %xmm0, 0x40(%rax)
movups -0x70(%rbp), %xmm0
movups -0x60(%rbp), %xmm1
movups -0x50(%rbp), %xmm2
movups -0x40(%rbp), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x6690
movq -0xb0(%rbp), %rax
movb $0x1, 0x146e3(%rip)     # 0x1c134
movq -0x8(%rbp), %rcx
movzwl 0x2(%rcx), %ecx
movl -0x7c(%rbp), %edx
shll %edx
subl %edx, %ecx
movw %cx, %dx
movq -0x8(%rbp), %rcx
movw %dx, 0x2(%rcx)
movslq -0x78(%rbp), %rcx
movq 0x20(%rax,%rcx,8), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movl $0x0, -0x74(%rbp)
movl -0x74(%rbp), %eax
cmpl -0x7c(%rbp), %eax
jge 0x7aef
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x7a9e
jmp 0x7af1
jmp 0x7af3
cmpl $0x2, -0x7c(%rbp)
jl 0x7cdc
movl -0xc(%rbp), %eax
movl -0x7c(%rbp), %ecx
subl $0x2, %ecx
cmpl %ecx, %eax
jl 0x7cdc
movq -0xb0(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x7cdc
movq -0xb0(%rbp), %rcx
movslq -0x78(%rbp), %rax
movq 0x20(%rcx,%rax,8), %rax
movq %rax, -0x88(%rbp)
movl -0x78(%rbp), %esi
movups 0x50(%rcx), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups 0x40(%rcx), %xmm0
movups %xmm0, 0x40(%rax)
movups (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups 0x20(%rcx), %xmm2
movups 0x30(%rcx), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
leaq -0x70(%rbp), %rdi
movl $0x2, %edx
callq 0x4b20
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x5, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x90(%rbp)
movl $0x1, -0x74(%rbp)
movl -0x74(%rbp), %eax
movl -0x7c(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x7be8
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x6, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x7bb4
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x5, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movq -0x90(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x8(%rbp), %rdi
movq -0x90(%rbp), %rsi
movl -0x6c(%rbp), %edx
movl -0xc(%rbp), %ecx
subl -0x7c(%rbp), %ecx
addl $0x2, %ecx
callq 0x64d0
movq -0xb0(%rbp), %rax
movb $0x1, 0x144fb(%rip)     # 0x1c134
movq -0x8(%rbp), %rcx
movzwl 0x2(%rcx), %ecx
movl -0x7c(%rbp), %edx
shll %edx
subl %edx, %ecx
addl $0x1, %ecx
movw %cx, %dx
movq -0x8(%rbp), %rcx
movw %dx, 0x2(%rcx)
movslq -0x78(%rbp), %rcx
movq 0x20(%rax,%rcx,8), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movl $0x0, -0x74(%rbp)
movl -0x74(%rbp), %eax
cmpl -0x7c(%rbp), %eax
jge 0x7cda
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x7c89
jmp 0x7cdc
jmp 0x7cde
jmp 0x7ce0
movl -0x78(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x78(%rbp)
jmp 0x66ea
jmp 0x8086
movq -0xb0(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x7c(%rbp)
cmpl $0x0, -0x7c(%rbp)
je 0x7ee9
movl -0xc(%rbp), %eax
movl -0x7c(%rbp), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jl 0x7ee9
movq -0xb0(%rbp), %rcx
movq 0x20(%rcx), %rax
movq %rax, -0x88(%rbp)
xorl %eax, %eax
movups 0x50(%rcx), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups 0x40(%rcx), %xmm0
movups %xmm0, 0x40(%rax)
movups (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups 0x20(%rcx), %xmm2
movups 0x30(%rcx), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
leaq -0x70(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x4b20
movl $0x0, -0x74(%rbp)
movl -0x74(%rbp), %eax
cmpl -0x7c(%rbp), %eax
jg 0x7da3
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x6, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x7d74
movq -0x88(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
subl -0x7c(%rbp), %esi
subl $0x1, %esi
movups -0x20(%rbp), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups -0x30(%rbp), %xmm0
movups %xmm0, 0x40(%rax)
movups -0x70(%rbp), %xmm0
movups -0x60(%rbp), %xmm1
movups -0x50(%rbp), %xmm2
movups -0x40(%rbp), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x6280
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
subl -0x7c(%rbp), %esi
subl $0x1, %esi
movups -0x20(%rbp), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups -0x30(%rbp), %xmm0
movups %xmm0, 0x40(%rax)
movups -0x70(%rbp), %xmm0
movups -0x60(%rbp), %xmm1
movups -0x50(%rbp), %xmm2
movups -0x40(%rbp), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x6690
movq -0xb0(%rbp), %rax
movq -0x8(%rbp), %rcx
movzwl 0x2(%rcx), %ecx
movl -0x7c(%rbp), %edx
shll %edx
subl %edx, %ecx
subl $0x3, %ecx
movw %cx, %dx
movq -0x8(%rbp), %rcx
movw %dx, 0x2(%rcx)
movq 0x20(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movl $0x0, -0x74(%rbp)
movl -0x74(%rbp), %eax
cmpl -0x7c(%rbp), %eax
jge 0x7ee7
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x7e96
jmp 0x7ee9
cmpl $0x0, -0x7c(%rbp)
je 0x8084
movl -0xc(%rbp), %eax
cmpl -0x7c(%rbp), %eax
jl 0x8084
movq -0xb0(%rbp), %rcx
movq 0x20(%rcx), %rax
movq %rax, -0x88(%rbp)
xorl %eax, %eax
movups 0x50(%rcx), %xmm0
movq %rsp, %rax
movups %xmm0, 0x50(%rax)
movups 0x40(%rcx), %xmm0
movups %xmm0, 0x40(%rax)
movups (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups 0x20(%rcx), %xmm2
movups 0x30(%rcx), %xmm3
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
leaq -0x70(%rbp), %rdi
xorl %esi, %esi
movl $0x1, %edx
callq 0x4b20
movl $0x0, -0x74(%rbp)
movl -0x74(%rbp), %eax
cmpl -0x7c(%rbp), %eax
jge 0x7f8a
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x6, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x7f5b
movq -0x8(%rbp), %rsi
movq -0x88(%rbp), %rdx
movl $0x5, %edi
leaq -0x88(%rbp), %rcx
callq 0x43f0
movq -0x88(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x8(%rbp), %rdi
movq -0x90(%rbp), %rsi
movl -0x6c(%rbp), %edx
movl -0xc(%rbp), %ecx
subl -0x7c(%rbp), %ecx
callq 0x64d0
movq -0xb0(%rbp), %rax
movb $0x1, 0x1414e(%rip)     # 0x1c134
movq -0x8(%rbp), %rcx
movzwl 0x2(%rcx), %ecx
movl -0x7c(%rbp), %edx
shll %edx
subl %edx, %ecx
subl $0x2, %ecx
movw %cx, %dx
movq -0x8(%rbp), %rcx
movw %dx, 0x2(%rcx)
movq 0x20(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movl $0x0, -0x74(%rbp)
movl -0x74(%rbp), %eax
cmpl -0x7c(%rbp), %eax
jge 0x8082
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movw $0x246, 0x2(%rax)       # imm = 0x246
movq -0x98(%rbp), %rax
movq $0x0, 0x28(%rax)
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x8031
jmp 0x8084
jmp 0x8086
addq $0x120, %rsp            # imm = 0x120
popq %rbp
retq
nop