// File: /workspace/github_c_makefile_star2_O0/mishun[P]plantri/plantri.c
// Function: maybe_delete
static int
maybe_delete(EDGE *edel, int oldmaxface, int oldmaxlist0, int oldmaxlist1,
             int *newmaxface, int *newmaxlist0, int *newmaxlist1,
             EDGE *good_or[], int *ngood_or, int *ncan_or,
             EDGE *good_inv[], int *ngood_inv, int *ncan_inv, int *connec)

/* Assumes there is a 3-face on the left of *edel, and that *edel can be
   deleted while keeping degrees >= minpolydeg.  Also, the new face created
   will be a largest face.  oldmaxface is the size of the largest face so far,
   and inmaxface[oldmaxlist0..oldmaxlist1-1] are the edges with a face of
   maximum size on the left.  *connec is the current connectivity (or 3,
   whichever is smaller).

   This procedure deletes *edel provided the result is at least as connected
   as minpolyconn, and that the procedure believes the re-insertion of *edel
   might be a canonical edge insertion.  The latter decision is based on
   four combinatorial invariates: the three vertex degrees at the ends of
   *edel and on its left, and the size of the face to the left of edel->prev.

   In case *edel passes the test and is deleted, the edges which may 
   represent the re-insertion of *edel and optimise the four-part invariant
   mentioned above are put in good_or[0..*ncan_or-1] and
   good_inv[0..*ncan_inv-1].  This will include at least one of the edges
   edel->prev, edel->invers->next and (if there is also a 3-face on the
   right of *edel) edel->next and edel->invers->prev.  Then all other edges
   which might possibly represent canonical edge insertions are put in 
   good_or[*ncan_or..*ngood_or-1] or good_inv[*ncan_inv..*ngood_inv-1].
   The *_or edges are those for which the inserted edge will be in the
   next direction, and the *_inv edges .. the prev direction.

   In addition, if *edel is deleted, inmaxface[*newmaxlist0..*newmaxlist1-1]
   will have all edges with a maximum face on the left (that size being put
   into *newmaxface).  This list may overlap
   inmaxface[oldmaxlist0..oldmaxlist1-1] if the max face size does not
   increase.

   In the case of value 0, *connec is changed to represent the new
   connectivity (or 3, whichever is smaller).

   Return values:   0 = ok
                    1 = rejected as connectivity will be too small
		    2 = rejected by colour
*/

{
#define DEGEND(e) (degree[e->end])
#define OROK(e) ISNEQADJ(e->start,e->invers->prev->end)
#define INVOK(e) ISNEQADJ(e->start,e->invers->next->end)
#define REJECT(x) {++degree[v1]; ++degree[v2]; return x;}
#define ORTEST(e) {col = DEGEND(e); if (col > maxcol) \
  {if (OROK(e)) REJECT(2)} else if (col==maxcol&&OROK(e)) good_or[ng_or++]=e;}
#define INVTEST(e) {col = DEGEND(e); if (col > maxcol) \
  {if (INVOK(e)) REJECT(2)} \
   else if (col==maxcol&&INVOK(e)) good_inv[ng_inv++]=e;}
#define ORCOL(e) (((long)degree[e->invers->prev->end] << 10)  \
                      + e->left_facesize)
#define INVCOL(e) \
 (((long)degree[e->invers->next->end] << 10) + e->invers->left_facesize)

    EDGE *e1,*e2,*e3,*e4,*ee,*ea,*eb;
    long col,maxcol,col1,col2;
    int k,i,ng_or,ng_inv,nc_or,nc_inv;
    int maxface,v1,v2,v3,v4,v5;
    int da,db,mindeg,maxdeg,nml1;
    int newconnec;

    maxface = *newmaxface = edel->invers->left_facesize + 1;
    if (maxface > oldmaxface) oldmaxlist0 = oldmaxlist1;
    *newmaxlist0 = oldmaxlist0;

    *ngood_or = *ngood_inv = 0;

 /* Now old edges that will be on a largest face (if *edel is deleted)
    are in places oldmaxlist0..oldmaxlist1-1.  New edges will be from
    oldmaxlist1 to *newmaxlist1-1, but *newmaxlist1 is not set yet. */

    v1 = edel->start;  v2 = edel->end;
 /* maxdeg = (degree[v1] > degree[v2] ? degree[v1] : degree[v2]) - 1;  BDM 2/5/09 */

 /* mindeg and maxdeg are the degrees of the ends of edel after deletion */
    if (degree[v1] < degree[v2])
    {
	mindeg = degree[v1]-1; maxdeg = degree[v2]-1;
    }
    else
    {
	mindeg = degree[v2]-1; maxdeg = degree[v1]-1;
    }

    e1 = edel->prev; v3 = e1->end;
    e4 = edel->next; v4 = e4->end;
    e3 = edel->invers->prev;

   /* The following is an efficiency short-cut, but it is assumed
      to have been done below. */

    if (maxface == 4)
    {
	if (ISNEQADJ(v3,v4) && (degree[v3] > maxdeg || degree[v4] > maxdeg))
	    return 2;
    }
    else if (degree[v3] > maxdeg)
    {
	if (ISNEQADJ(v3,e3->end) || ISNEQADJ(v3,v4)) return 2;
    }

    e2 = edel->invers->next;
    --degree[v1];
    --degree[v2];

    maxcol = nc_or = nc_inv = 0;

    if (degree[v1] == maxdeg)
    {
        col = DEGEND(e1);
	maxcol = col;
        good_or[nc_or++] = e1;

        if (maxface == 4)
	{
	    col = DEGEND(e4);
	    if (col > maxcol)
	    {
		nc_or = nc_inv = 0;
		good_inv[nc_inv++] = e4;
		maxcol = col;
	    }
	    else if (col == maxcol)
	        good_inv[nc_inv++] = e4;
	}
    }

    if (degree[v2] == maxdeg)
    {
	col = DEGEND(e2);
	if (col > maxcol)
  	{
	    nc_or = nc_inv = 0;
            good_inv[nc_inv++] = e2;
	    maxcol = col;
	}
	else if (col == maxcol)
	    good_inv[nc_inv++] = e2;
	
	if (maxface == 4)
	{
            col = DEGEND(e3);
	    if (col > maxcol)
	    {
		nc_or = nc_inv = 0;
		good_or[nc_or++] = e3;
		maxcol = col;
	    }
	    else if (col == maxcol)
		good_or[nc_or++] = e3;
	}
    }

    ng_or = nc_or;  ng_inv = nc_inv;

    if (maxface == 4)
    {
     /* Recall from above that degree[v3,v4] <= maxdeg */

	if (ISNEQADJ(v3,v4))
	{
	    col1 = degree[v1];
	    col2 = degree[v2];

	    if (degree[v3] == maxdeg)
	    {
		if (col1 > maxcol) REJECT(2)
	        else if (col1 == maxcol) good_inv[ng_inv++] = e1->invers;
		if (col2 > maxcol) REJECT(2)
		else if (col2 == maxcol) good_or[ng_or++] = e2->invers;
	    }

	    if (degree[v4] == maxdeg)
	    {
		if (col1 > maxcol) REJECT(2)
	        else if (col1 == maxcol) good_or[ng_or++] = e4->invers;
		if (col2 > maxcol) REJECT(2)
		else if (col2 == maxcol) good_inv[ng_inv++] = e3->invers;
	    }
	}

        nml1 = oldmaxlist1;
        inmaxface[nml1++] = e1->invers;
        inmaxface[nml1++] = e2;
        inmaxface[nml1++] = e3->invers;
        inmaxface[nml1++] = e4;
    }
    else
    {
	v5 = e3->end;

	/* Recall from above that degree[v3] <= maxdeg */

	if (ISNEQADJ(v3,v5))
	{
	    if (degree[v5] > maxdeg) REJECT(2);
	    col = degree[v2];
	    if (degree[v3] == maxdeg)
	    {
		if (col > maxcol) REJECT(2)
                else if (col == maxcol) good_or[ng_or++] = e2->invers;
	    }
	    if (degree[v5] == maxdeg)
	    {
		if (col > maxcol) REJECT(2)
                else if (col == maxcol) good_inv[ng_inv++] = e3->invers;
            }
	}
	if (ISNEQADJ(v3,v4))
	{
	    if (degree[v4] > maxdeg) REJECT(2);
	    col = degree[v1];
	    if (degree[v3] == maxdeg)
            {
                if (col > maxcol) REJECT(2)
                else if (col == maxcol) good_inv[ng_inv++] = e1->invers;
            }
            if (degree[v4] == maxdeg)
            {
                if (col > maxcol) REJECT(2)
                else if (col == maxcol) good_or[ng_or++] = e4->invers;
            }
	}

        nml1 = oldmaxlist1;

        ea = e3->invers;
	eb = ea->prev;
	do
	{
	    if (ISNEQADJ(ea->end,eb->end))
	    {
		da = DEGEND(ea);
		db = DEGEND(eb);
		if (da > maxdeg || db > maxdeg) REJECT(2);
		col = degree[ea->start];
		if (da == maxdeg)
		{
		    if (col > maxcol) REJECT(2)
		    else if (col == maxcol) good_or[ng_or++] = ea->invers;
		}
		if (db == maxdeg)
		{
		    if (col > maxcol) REJECT(2)
		    else if (col == maxcol) good_inv[ng_inv++] = eb->invers;
		}
	    }
	    inmaxface[nml1++] = ea;
	    ea = eb->invers;
	    eb = ea->prev;
	} while (ea != e4);
         
        inmaxface[nml1++] = e2;
        inmaxface[nml1++] = e1->invers;
        inmaxface[nml1++] = e4;
    }

 /* Now test old edges still on max faces */

    for (i = oldmaxlist0; i < oldmaxlist1; ++i)
    {
	ee = inmaxface[i];
	if (degree[ee->start] > maxdeg)
	{
	    if (INVOK(ee)) REJECT(2);
            ee = ee->prev;
            if (OROK(ee)) REJECT(2);
	}
	else if (degree[ee->start] == maxdeg)
	{
	    INVTEST(ee);
	    ee = ee->prev;
	    ORTEST(ee);
	}
    }

    if (mindeg < *connec)
	newconnec = mindeg;
    else if (*connec == 3)
	newconnec = 2 + threeconn(edel);
    else if (*connec == 2)
	newconnec = 1 + twoconn(edel);
    else
	newconnec = 1;

    if (newconnec < minpolyconnec) REJECT(1);

 /* Now we have complete success!  Just prune the lists a bit and
    complete the deletion of edel. */

    edel->prev->next = edel->next;
    edel->next->prev = edel->prev;
    ee = edel->invers;
    ee->prev->next = ee->next;
    ee->next->prev = ee->prev;

    for (i = oldmaxlist1; i < nml1; ++i)
	inmaxface[i]->left_facesize = maxface;

    firstedge[v1] = e1;
    firstedge[v2] = e2;
    ne -= 2;

    *connec = newconnec;

    *newmaxlist1 = nml1;
    *ngood_or = ng_or;
    *ngood_inv = ng_inv;
    *ncan_or = nc_or;
    *ncan_inv = nc_inv;

    if (ng_or + ng_inv == 1) return 0;

    maxcol = 0;
    for (i = 0; i < nc_or; ++i)
        if (ORCOL(good_or[i]) > maxcol) maxcol = ORCOL(good_or[i]);
    for (i = 0; i < nc_inv; ++i)
        if (INVCOL(good_inv[i]) > maxcol) maxcol = INVCOL(good_inv[i]);

    for (i = 0, k = 0; i < nc_or; ++i)
        if (ORCOL(good_or[i]) == maxcol) good_or[k++] = good_or[i];
    *ncan_or = k;
    for (; i < ng_or; ++i)
    {
	col = ORCOL(good_or[i]);
        if (col == maxcol)
	    good_or[k++] = good_or[i];
        else if (col > maxcol)
        {
            insert_edge_tri(edel);
            *ngood_or = *ngood_inv = 0;
	    return 2;
        }
    }
    *ngood_or = ng_or = k;

    for (i = 0, k = 0; i < nc_inv; ++i)
        if (INVCOL(good_inv[i]) == maxcol) good_inv[k++] = good_inv[i];
    *ncan_inv = k;
    for (; i < ng_inv; ++i)
    {
	col = INVCOL(good_inv[i]);
        if (col == maxcol)
            good_inv[k++] = good_inv[i];
        else if (col > maxcol) 
        {
            insert_edge_tri(edel);
            *ngood_or = *ngood_inv = 0;
	    return 2;
        }
    }
    *ngood_inv = ng_inv = k;

    return 0; 
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq 0x48(%rbp), %rax
movq 0x40(%rbp), %rax
movq 0x38(%rbp), %rax
movq 0x30(%rbp), %rax
movq 0x28(%rbp), %rax
movq 0x20(%rbp), %rax
movq 0x18(%rbp), %rax
movq 0x10(%rbp), %rax
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movl 0x38(%rax), %eax
addl $0x1, %eax
movq -0x28(%rbp), %rcx
movl %eax, (%rcx)
movl %eax, -0xa4(%rbp)
movl -0xa4(%rbp), %eax
cmpl -0x14(%rbp), %eax
jle 0x21f5b
movl -0x1c(%rbp), %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %ecx
movq -0x30(%rbp), %rax
movl %ecx, (%rax)
movq 0x38(%rbp), %rax
movl $0x0, (%rax)
movq 0x20(%rbp), %rax
movl $0x0, (%rax)
movq -0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xa8(%rbp)
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0xac(%rbp)
movslq -0xa8(%rbp), %rcx
leaq 0x1bc61(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
movslq -0xac(%rbp), %rdx
leaq 0x1bc50(%rip), %rcx     # 0x3dc00
cmpl (%rcx,%rdx,4), %eax
jge 0x21feb
movslq -0xa8(%rbp), %rcx
leaq 0x1bc3d(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
subl $0x1, %eax
movl %eax, -0xc4(%rbp)
movslq -0xac(%rbp), %rcx
leaq 0x1bc23(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
subl $0x1, %eax
movl %eax, -0xc8(%rbp)
jmp 0x2201f
movslq -0xac(%rbp), %rcx
leaq 0x1bc07(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
subl $0x1, %eax
movl %eax, -0xc4(%rbp)
movslq -0xa8(%rbp), %rcx
leaq 0x1bbed(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
subl $0x1, %eax
movl %eax, -0xc8(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0xb0(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0xb4(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x48(%rbp)
cmpl $0x4, -0xa4(%rbp)
jne 0x220cf
movslq -0xb0(%rbp), %rcx
leaq 0x27ecd8(%rip), %rax    # 0x2a0d50
shlq $0x6, %rcx
addq %rcx, %rax
movslq -0xb4(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
jne 0x220cd
movslq -0xb0(%rbp), %rcx
leaq 0x1bb63(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
cmpl -0xc8(%rbp), %eax
jg 0x220c1
movslq -0xb4(%rbp), %rcx
leaq 0x1bb4a(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
cmpl -0xc8(%rbp), %eax
jle 0x220cd
movl $0x2, -0x4(%rbp)
jmp 0x2384d
jmp 0x22143
movslq -0xb0(%rbp), %rcx
leaq 0x1bb23(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
cmpl -0xc8(%rbp), %eax
jle 0x22141
movslq -0xb0(%rbp), %rcx
leaq 0x27ec5a(%rip), %rax    # 0x2a0d50
shlq $0x6, %rcx
addq %rcx, %rax
movq -0x48(%rbp), %rcx
movslq 0x4(%rcx), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
je 0x22133
movslq -0xb0(%rbp), %rcx
leaq 0x27ec34(%rip), %rax    # 0x2a0d50
shlq $0x6, %rcx
addq %rcx, %rax
movslq -0xb4(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
jne 0x2213f
movl $0x2, -0x4(%rbp)
jmp 0x2384d
jmp 0x22141
jmp 0x22143
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x40(%rbp)
movslq -0xa8(%rbp), %rcx
leaq 0x1ba9f(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $-0x1, %edx
leaq 0x1ba92(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movslq -0xac(%rbp), %rcx
leaq 0x1ba81(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $-0x1, %edx
leaq 0x1ba74(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl $0x0, -0xa0(%rbp)
movl $0x0, -0x9c(%rbp)
movq $0x0, -0x78(%rbp)
movslq -0xa8(%rbp), %rcx
leaq 0x1ba47(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
cmpl -0xc8(%rbp), %eax
jne 0x222a3
movq -0x38(%rbp), %rax
movslq 0x4(%rax), %rcx
leaq 0x1ba29(%rip), %rax     # 0x3dc00
movslq (%rax,%rcx,4), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x38(%rbp), %rdx
movq 0x18(%rbp), %rax
movl -0x9c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x9c(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
cmpl $0x4, -0xa4(%rbp)
jne 0x222a1
movq -0x50(%rbp), %rax
movslq 0x4(%rax), %rcx
leaq 0x1b9dd(%rip), %rax     # 0x3dc00
movslq (%rax,%rcx,4), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jle 0x22273
movl $0x0, -0xa0(%rbp)
movl $0x0, -0x9c(%rbp)
movq -0x50(%rbp), %rdx
movq 0x30(%rbp), %rax
movl -0xa0(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0xa0(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movq -0x70(%rbp), %rax
movq %rax, -0x78(%rbp)
jmp 0x2229f
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jne 0x2229d
movq -0x50(%rbp), %rdx
movq 0x30(%rbp), %rax
movl -0xa0(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0xa0(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x2229f
jmp 0x222a1
jmp 0x222a3
movslq -0xac(%rbp), %rcx
leaq 0x1b94f(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
cmpl -0xc8(%rbp), %eax
jne 0x223e7
movq -0x40(%rbp), %rax
movslq 0x4(%rax), %rcx
leaq 0x1b931(%rip), %rax     # 0x3dc00
movslq (%rax,%rcx,4), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jle 0x2231f
movl $0x0, -0xa0(%rbp)
movl $0x0, -0x9c(%rbp)
movq -0x40(%rbp), %rdx
movq 0x30(%rbp), %rax
movl -0xa0(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0xa0(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movq -0x70(%rbp), %rax
movq %rax, -0x78(%rbp)
jmp 0x2234b
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jne 0x22349
movq -0x40(%rbp), %rdx
movq 0x30(%rbp), %rax
movl -0xa0(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0xa0(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x2234b
cmpl $0x4, -0xa4(%rbp)
jne 0x223e5
movq -0x48(%rbp), %rax
movslq 0x4(%rax), %rcx
leaq 0x1b899(%rip), %rax     # 0x3dc00
movslq (%rax,%rcx,4), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jle 0x223b7
movl $0x0, -0xa0(%rbp)
movl $0x0, -0x9c(%rbp)
movq -0x48(%rbp), %rdx
movq 0x18(%rbp), %rax
movl -0x9c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x9c(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movq -0x70(%rbp), %rax
movq %rax, -0x78(%rbp)
jmp 0x223e3
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jne 0x223e1
movq -0x48(%rbp), %rdx
movq 0x18(%rbp), %rax
movl -0x9c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x9c(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x223e3
jmp 0x223e5
jmp 0x223e7
movl -0x9c(%rbp), %eax
movl %eax, -0x94(%rbp)
movl -0xa0(%rbp), %eax
movl %eax, -0x98(%rbp)
cmpl $0x4, -0xa4(%rbp)
jne 0x2275a
movslq -0xb0(%rbp), %rcx
leaq 0x27e936(%rip), %rax    # 0x2a0d50
shlq $0x6, %rcx
addq %rcx, %rax
movslq -0xb4(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
jne 0x226b8
movslq -0xa8(%rbp), %rcx
leaq 0x1b7bd(%rip), %rax     # 0x3dc00
movslq (%rax,%rcx,4), %rax
movq %rax, -0x80(%rbp)
movslq -0xac(%rbp), %rcx
leaq 0x1b7a7(%rip), %rax     # 0x3dc00
movslq (%rax,%rcx,4), %rax
movq %rax, -0x88(%rbp)
movslq -0xb0(%rbp), %rcx
leaq 0x1b78e(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
cmpl -0xc8(%rbp), %eax
jne 0x2258d
movq -0x80(%rbp), %rax
cmpq -0x78(%rbp), %rax
jle 0x224d3
movslq -0xa8(%rbp), %rcx
leaq 0x1b767(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1b75a(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movslq -0xac(%rbp), %rcx
leaq 0x1b749(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1b73c(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl $0x2, -0x4(%rbp)
jmp 0x2384d
movq -0x80(%rbp), %rax
cmpq -0x78(%rbp), %rax
jne 0x22501
movq -0x38(%rbp), %rax
movq 0x20(%rax), %rdx
movq 0x30(%rbp), %rax
movl -0x98(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x98(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x22503
movq -0x88(%rbp), %rax
cmpq -0x78(%rbp), %rax
jle 0x22558
movslq -0xa8(%rbp), %rcx
leaq 0x1b6e2(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1b6d5(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movslq -0xac(%rbp), %rcx
leaq 0x1b6c4(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1b6b7(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl $0x2, -0x4(%rbp)
jmp 0x2384d
movq -0x88(%rbp), %rax
cmpq -0x78(%rbp), %rax
jne 0x22589
movq -0x40(%rbp), %rax
movq 0x20(%rax), %rdx
movq 0x18(%rbp), %rax
movl -0x94(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x94(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x2258b
jmp 0x2258d
movslq -0xb4(%rbp), %rcx
leaq 0x1b665(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
cmpl -0xc8(%rbp), %eax
jne 0x226b6
movq -0x80(%rbp), %rax
cmpq -0x78(%rbp), %rax
jle 0x225fc
movslq -0xa8(%rbp), %rcx
leaq 0x1b63e(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1b631(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movslq -0xac(%rbp), %rcx
leaq 0x1b620(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1b613(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl $0x2, -0x4(%rbp)
jmp 0x2384d
movq -0x80(%rbp), %rax
cmpq -0x78(%rbp), %rax
jne 0x2262a
movq -0x50(%rbp), %rax
movq 0x20(%rax), %rdx
movq 0x18(%rbp), %rax
movl -0x94(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x94(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x2262c
movq -0x88(%rbp), %rax
cmpq -0x78(%rbp), %rax
jle 0x22681
movslq -0xa8(%rbp), %rcx
leaq 0x1b5b9(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1b5ac(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movslq -0xac(%rbp), %rcx
leaq 0x1b59b(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1b58e(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl $0x2, -0x4(%rbp)
jmp 0x2384d
movq -0x88(%rbp), %rax
cmpq -0x78(%rbp), %rax
jne 0x226b2
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rdx
movq 0x30(%rbp), %rax
movl -0x98(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x98(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x226b4
jmp 0x226b6
jmp 0x226b8
movl -0x1c(%rbp), %eax
movl %eax, -0xcc(%rbp)
movq -0x38(%rbp), %rax
movq 0x20(%rax), %rdx
movl -0xcc(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0xcc(%rbp)
movslq %eax, %rcx
leaq 0x27f66c(%rip), %rax    # 0x2a1d50
movq %rdx, (%rax,%rcx,8)
movq -0x40(%rbp), %rdx
movl -0xcc(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0xcc(%rbp)
movslq %eax, %rcx
leaq 0x27f649(%rip), %rax    # 0x2a1d50
movq %rdx, (%rax,%rcx,8)
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rdx
movl -0xcc(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0xcc(%rbp)
movslq %eax, %rcx
leaq 0x27f622(%rip), %rax    # 0x2a1d50
movq %rdx, (%rax,%rcx,8)
movq -0x50(%rbp), %rdx
movl -0xcc(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0xcc(%rbp)
movslq %eax, %rcx
leaq 0x27f5ff(%rip), %rax    # 0x2a1d50
movq %rdx, (%rax,%rcx,8)
jmp 0x22e09
movq -0x48(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0xb8(%rbp)
movslq -0xb0(%rbp), %rcx
leaq 0x27e5db(%rip), %rax    # 0x2a0d50
shlq $0x6, %rcx
addq %rcx, %rax
movslq -0xb8(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
jne 0x2294b
movslq -0xb8(%rbp), %rcx
leaq 0x1b462(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
cmpl -0xc8(%rbp), %eax
jle 0x227f1
movslq -0xa8(%rbp), %rcx
leaq 0x1b449(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1b43c(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movslq -0xac(%rbp), %rcx
leaq 0x1b42b(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1b41e(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl $0x2, -0x4(%rbp)
jmp 0x2384d
movslq -0xac(%rbp), %rcx
leaq 0x1b401(%rip), %rax     # 0x3dc00
movslq (%rax,%rcx,4), %rax
movq %rax, -0x70(%rbp)
movslq -0xb0(%rbp), %rcx
leaq 0x1b3eb(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
cmpl -0xc8(%rbp), %eax
jne 0x228a8
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jle 0x22876
movslq -0xa8(%rbp), %rcx
leaq 0x1b3c4(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1b3b7(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movslq -0xac(%rbp), %rcx
leaq 0x1b3a6(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1b399(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl $0x2, -0x4(%rbp)
jmp 0x2384d
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jne 0x228a4
movq -0x40(%rbp), %rax
movq 0x20(%rax), %rdx
movq 0x18(%rbp), %rax
movl -0x94(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x94(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x228a6
jmp 0x228a8
movslq -0xb8(%rbp), %rcx
leaq 0x1b34a(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
cmpl -0xc8(%rbp), %eax
jne 0x22949
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jle 0x22917
movslq -0xa8(%rbp), %rcx
leaq 0x1b323(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1b316(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movslq -0xac(%rbp), %rcx
leaq 0x1b305(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1b2f8(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl $0x2, -0x4(%rbp)
jmp 0x2384d
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jne 0x22945
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rdx
movq 0x30(%rbp), %rax
movl -0x98(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x98(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x22947
jmp 0x22949
jmp 0x2294b
movslq -0xb0(%rbp), %rcx
leaq 0x27e3f7(%rip), %rax    # 0x2a0d50
shlq $0x6, %rcx
addq %rcx, %rax
movslq -0xb4(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
jne 0x22b2f
movslq -0xb4(%rbp), %rcx
leaq 0x1b27e(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
cmpl -0xc8(%rbp), %eax
jle 0x229d5
movslq -0xa8(%rbp), %rcx
leaq 0x1b265(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1b258(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movslq -0xac(%rbp), %rcx
leaq 0x1b247(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1b23a(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl $0x2, -0x4(%rbp)
jmp 0x2384d
movslq -0xa8(%rbp), %rcx
leaq 0x1b21d(%rip), %rax     # 0x3dc00
movslq (%rax,%rcx,4), %rax
movq %rax, -0x70(%rbp)
movslq -0xb0(%rbp), %rcx
leaq 0x1b207(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
cmpl -0xc8(%rbp), %eax
jne 0x22a8c
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jle 0x22a5a
movslq -0xa8(%rbp), %rcx
leaq 0x1b1e0(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1b1d3(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movslq -0xac(%rbp), %rcx
leaq 0x1b1c2(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1b1b5(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl $0x2, -0x4(%rbp)
jmp 0x2384d
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jne 0x22a88
movq -0x38(%rbp), %rax
movq 0x20(%rax), %rdx
movq 0x30(%rbp), %rax
movl -0x98(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x98(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x22a8a
jmp 0x22a8c
movslq -0xb4(%rbp), %rcx
leaq 0x1b166(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
cmpl -0xc8(%rbp), %eax
jne 0x22b2d
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jle 0x22afb
movslq -0xa8(%rbp), %rcx
leaq 0x1b13f(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1b132(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movslq -0xac(%rbp), %rcx
leaq 0x1b121(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1b114(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl $0x2, -0x4(%rbp)
jmp 0x2384d
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jne 0x22b29
movq -0x50(%rbp), %rax
movq 0x20(%rax), %rdx
movq 0x18(%rbp), %rax
movl -0x94(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x94(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x22b2b
jmp 0x22b2d
jmp 0x22b2f
movl -0x1c(%rbp), %eax
movl %eax, -0xcc(%rbp)
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rax
movslq 0x4(%rax), %rcx
leaq 0x27e1f1(%rip), %rax    # 0x2a0d50
shlq $0x6, %rcx
addq %rcx, %rax
movq -0x68(%rbp), %rcx
movslq 0x4(%rcx), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
jne 0x22d53
movq -0x60(%rbp), %rax
movslq 0x4(%rax), %rcx
leaq 0x1b076(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
movl %eax, -0xbc(%rbp)
movq -0x68(%rbp), %rax
movslq 0x4(%rax), %rcx
leaq 0x1b05e(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
movl %eax, -0xc0(%rbp)
movl -0xbc(%rbp), %eax
cmpl -0xc8(%rbp), %eax
jg 0x22bc7
movl -0xc0(%rbp), %eax
cmpl -0xc8(%rbp), %eax
jle 0x22c0f
movslq -0xa8(%rbp), %rcx
leaq 0x1b02b(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1b01e(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movslq -0xac(%rbp), %rcx
leaq 0x1b00d(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1b000(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl $0x2, -0x4(%rbp)
jmp 0x2384d
movq -0x60(%rbp), %rax
movslq (%rax), %rcx
leaq 0x1afe3(%rip), %rax     # 0x3dc00
movslq (%rax,%rcx,4), %rax
movq %rax, -0x70(%rbp)
movl -0xbc(%rbp), %eax
cmpl -0xc8(%rbp), %eax
jne 0x22cbb
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jle 0x22c89
movslq -0xa8(%rbp), %rcx
leaq 0x1afb1(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1afa4(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movslq -0xac(%rbp), %rcx
leaq 0x1af93(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1af86(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl $0x2, -0x4(%rbp)
jmp 0x2384d
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jne 0x22cb7
movq -0x60(%rbp), %rax
movq 0x20(%rax), %rdx
movq 0x18(%rbp), %rax
movl -0x94(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x94(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x22cb9
jmp 0x22cbb
movl -0xc0(%rbp), %eax
cmpl -0xc8(%rbp), %eax
jne 0x22d51
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jle 0x22d1f
movslq -0xa8(%rbp), %rcx
leaq 0x1af1b(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1af0e(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movslq -0xac(%rbp), %rcx
leaq 0x1aefd(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1aef0(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl $0x2, -0x4(%rbp)
jmp 0x2384d
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jne 0x22d4d
movq -0x68(%rbp), %rax
movq 0x20(%rax), %rdx
movq 0x30(%rbp), %rax
movl -0x98(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x98(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x22d4f
jmp 0x22d51
jmp 0x22d53
movq -0x60(%rbp), %rdx
movl -0xcc(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0xcc(%rbp)
movslq %eax, %rcx
leaq 0x27efde(%rip), %rax    # 0x2a1d50
movq %rdx, (%rax,%rcx,8)
movq -0x68(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rax
cmpq -0x50(%rbp), %rax
jne 0x22b50
movq -0x40(%rbp), %rdx
movl -0xcc(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0xcc(%rbp)
movslq %eax, %rcx
leaq 0x27ef95(%rip), %rax    # 0x2a1d50
movq %rdx, (%rax,%rcx,8)
movq -0x38(%rbp), %rax
movq 0x20(%rax), %rdx
movl -0xcc(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0xcc(%rbp)
movslq %eax, %rcx
leaq 0x27ef6e(%rip), %rax    # 0x2a1d50
movq %rdx, (%rax,%rcx,8)
movq -0x50(%rbp), %rdx
movl -0xcc(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0xcc(%rbp)
movslq %eax, %rcx
leaq 0x27ef4b(%rip), %rax    # 0x2a1d50
movq %rdx, (%rax,%rcx,8)
movl -0x18(%rbp), %eax
movl %eax, -0x90(%rbp)
movl -0x90(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jge 0x2317a
movslq -0x90(%rbp), %rcx
leaq 0x27ef21(%rip), %rax    # 0x2a1d50
movq (%rax,%rcx,8), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movslq (%rax), %rcx
leaq 0x1adbb(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
cmpl -0xc8(%rbp), %eax
jle 0x22f51
movq -0x58(%rbp), %rax
movslq (%rax), %rcx
leaq 0x27deee(%rip), %rax    # 0x2a0d50
shlq $0x6, %rcx
addq %rcx, %rax
movq -0x58(%rbp), %rcx
movq 0x20(%rcx), %rcx
movq 0x18(%rcx), %rcx
movslq 0x4(%rcx), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
jne 0x22eca
movslq -0xa8(%rbp), %rcx
leaq 0x1ad70(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1ad63(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movslq -0xac(%rbp), %rcx
leaq 0x1ad52(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1ad45(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl $0x2, -0x4(%rbp)
jmp 0x2384d
movq -0x58(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movslq (%rax), %rcx
leaq 0x27de6c(%rip), %rax    # 0x2a0d50
shlq $0x6, %rcx
addq %rcx, %rax
movq -0x58(%rbp), %rcx
movq 0x20(%rcx), %rcx
movq 0x10(%rcx), %rcx
movslq 0x4(%rcx), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
jne 0x22f4c
movslq -0xa8(%rbp), %rcx
leaq 0x1acee(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1ace1(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movslq -0xac(%rbp), %rcx
leaq 0x1acd0(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1acc3(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl $0x2, -0x4(%rbp)
jmp 0x2384d
jmp 0x23164
movq -0x58(%rbp), %rax
movslq (%rax), %rcx
leaq 0x1aca1(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
cmpl -0xc8(%rbp), %eax
jne 0x23162
movq -0x58(%rbp), %rax
movslq 0x4(%rax), %rcx
leaq 0x1ac83(%rip), %rax     # 0x3dc00
movslq (%rax,%rcx,4), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jle 0x23007
movq -0x58(%rbp), %rax
movslq (%rax), %rcx
leaq 0x27ddb3(%rip), %rax    # 0x2a0d50
shlq $0x6, %rcx
addq %rcx, %rax
movq -0x58(%rbp), %rcx
movq 0x20(%rcx), %rcx
movq 0x18(%rcx), %rcx
movslq 0x4(%rcx), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
jne 0x23005
movslq -0xa8(%rbp), %rcx
leaq 0x1ac35(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1ac28(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movslq -0xac(%rbp), %rcx
leaq 0x1ac17(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1ac0a(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl $0x2, -0x4(%rbp)
jmp 0x2384d
jmp 0x23061
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jne 0x2305f
movq -0x58(%rbp), %rax
movslq (%rax), %rcx
leaq 0x27dd31(%rip), %rax    # 0x2a0d50
shlq $0x6, %rcx
addq %rcx, %rax
movq -0x58(%rbp), %rcx
movq 0x20(%rcx), %rcx
movq 0x18(%rcx), %rcx
movslq 0x4(%rcx), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
jne 0x2305f
movq -0x58(%rbp), %rdx
movq 0x30(%rbp), %rax
movl -0x98(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x98(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x23061
movq -0x58(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movslq 0x4(%rax), %rcx
leaq 0x1ab84(%rip), %rax     # 0x3dc00
movslq (%rax,%rcx,4), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jle 0x23106
movq -0x58(%rbp), %rax
movslq (%rax), %rcx
leaq 0x27dcb4(%rip), %rax    # 0x2a0d50
shlq $0x6, %rcx
addq %rcx, %rax
movq -0x58(%rbp), %rcx
movq 0x20(%rcx), %rcx
movq 0x10(%rcx), %rcx
movslq 0x4(%rcx), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
jne 0x23104
movslq -0xa8(%rbp), %rcx
leaq 0x1ab36(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1ab29(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movslq -0xac(%rbp), %rcx
leaq 0x1ab18(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1ab0b(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl $0x2, -0x4(%rbp)
jmp 0x2384d
jmp 0x23160
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jne 0x2315e
movq -0x58(%rbp), %rax
movslq (%rax), %rcx
leaq 0x27dc32(%rip), %rax    # 0x2a0d50
shlq $0x6, %rcx
addq %rcx, %rax
movq -0x58(%rbp), %rcx
movq 0x20(%rcx), %rcx
movq 0x10(%rcx), %rcx
movslq 0x4(%rcx), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
jne 0x2315e
movq -0x58(%rbp), %rdx
movq 0x18(%rbp), %rax
movl -0x94(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x94(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x23160
jmp 0x23162
jmp 0x23164
jmp 0x23166
movl -0x90(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x90(%rbp)
jmp 0x22e12
movl -0xc4(%rbp), %eax
movq 0x48(%rbp), %rcx
cmpl (%rcx), %eax
jge 0x23196
movl -0xc4(%rbp), %eax
movl %eax, -0xd0(%rbp)
jmp 0x231de
movq 0x48(%rbp), %rax
cmpl $0x3, (%rax)
jne 0x231b3
movq -0x10(%rbp), %rdi
callq 0x21d80
addl $0x2, %eax
movl %eax, -0xd0(%rbp)
jmp 0x231dc
movq 0x48(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x231d0
movq -0x10(%rbp), %rdi
callq 0x23860
addl $0x1, %eax
movl %eax, -0xd0(%rbp)
jmp 0x231da
movl $0x1, -0xd0(%rbp)
jmp 0x231dc
jmp 0x231de
movl -0xd0(%rbp), %eax
cmpl 0x18fba(%rip), %eax     # 0x3c1a4
jge 0x23234
movslq -0xa8(%rbp), %rcx
leaq 0x1aa06(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1a9f9(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movslq -0xac(%rbp), %rcx
leaq 0x1a9e8(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1a9db(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl $0x1, -0x4(%rbp)
jmp 0x2384d
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rcx
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rcx
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rcx, 0x10(%rax)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq 0x18(%rax), %rcx
movq -0x58(%rbp), %rax
movq 0x10(%rax), %rax
movq %rcx, 0x18(%rax)
movq -0x58(%rbp), %rax
movq 0x10(%rax), %rcx
movq -0x58(%rbp), %rax
movq 0x18(%rax), %rax
movq %rcx, 0x10(%rax)
movl -0x1c(%rbp), %eax
movl %eax, -0x90(%rbp)
movl -0x90(%rbp), %eax
cmpl -0xcc(%rbp), %eax
jge 0x232d3
movl -0xa4(%rbp), %ecx
movslq -0x90(%rbp), %rdx
leaq 0x27ea95(%rip), %rax    # 0x2a1d50
movq (%rax,%rdx,8), %rax
movl %ecx, 0x38(%rax)
movl -0x90(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x90(%rbp)
jmp 0x23299
movq -0x38(%rbp), %rdx
movslq -0xa8(%rbp), %rcx
leaq 0x1a71b(%rip), %rax     # 0x3da00
movq %rdx, (%rax,%rcx,8)
movq -0x40(%rbp), %rdx
movslq -0xac(%rbp), %rcx
leaq 0x1a705(%rip), %rax     # 0x3da00
movq %rdx, (%rax,%rcx,8)
movl 0x23731f(%rip), %eax    # 0x25a624
subl $0x2, %eax
movl %eax, 0x237316(%rip)    # 0x25a624
movl -0xd0(%rbp), %ecx
movq 0x48(%rbp), %rax
movl %ecx, (%rax)
movl -0xcc(%rbp), %ecx
movq 0x10(%rbp), %rax
movl %ecx, (%rax)
movl -0x94(%rbp), %ecx
movq 0x20(%rbp), %rax
movl %ecx, (%rax)
movl -0x98(%rbp), %ecx
movq 0x38(%rbp), %rax
movl %ecx, (%rax)
movl -0x9c(%rbp), %ecx
movq 0x28(%rbp), %rax
movl %ecx, (%rax)
movl -0xa0(%rbp), %ecx
movq 0x40(%rbp), %rax
movl %ecx, (%rax)
movl -0x94(%rbp), %eax
addl -0x98(%rbp), %eax
cmpl $0x1, %eax
jne 0x23373
movl $0x0, -0x4(%rbp)
jmp 0x2384d
movq $0x0, -0x78(%rbp)
movl $0x0, -0x90(%rbp)
movl -0x90(%rbp), %eax
cmpl -0x9c(%rbp), %eax
jge 0x23437
movq 0x18(%rbp), %rax
movslq -0x90(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x20(%rax), %rax
movq 0x10(%rax), %rax
movslq 0x4(%rax), %rcx
leaq 0x1a847(%rip), %rax     # 0x3dc00
movslq (%rax,%rcx,4), %rax
shlq $0xa, %rax
movq 0x18(%rbp), %rcx
movslq -0x90(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movslq 0x38(%rcx), %rcx
addq %rcx, %rax
cmpq -0x78(%rbp), %rax
jle 0x23421
movq 0x18(%rbp), %rax
movslq -0x90(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x20(%rax), %rax
movq 0x10(%rax), %rax
movslq 0x4(%rax), %rcx
leaq 0x1a801(%rip), %rax     # 0x3dc00
movslq (%rax,%rcx,4), %rax
shlq $0xa, %rax
movq 0x18(%rbp), %rcx
movslq -0x90(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movslq 0x38(%rcx), %rcx
addq %rcx, %rax
movq %rax, -0x78(%rbp)
jmp 0x23423
movl -0x90(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x90(%rbp)
jmp 0x23385
movl $0x0, -0x90(%rbp)
movl -0x90(%rbp), %eax
cmpl -0xa0(%rbp), %eax
jge 0x234fb
movq 0x30(%rbp), %rax
movslq -0x90(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x20(%rax), %rax
movq 0x18(%rax), %rax
movslq 0x4(%rax), %rcx
leaq 0x1a78b(%rip), %rax     # 0x3dc00
movslq (%rax,%rcx,4), %rax
shlq $0xa, %rax
movq 0x30(%rbp), %rcx
movslq -0x90(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq 0x20(%rcx), %rcx
movslq 0x38(%rcx), %rcx
addq %rcx, %rax
cmpq -0x78(%rbp), %rax
jle 0x234e5
movq 0x30(%rbp), %rax
movslq -0x90(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x20(%rax), %rax
movq 0x18(%rax), %rax
movslq 0x4(%rax), %rcx
leaq 0x1a741(%rip), %rax     # 0x3dc00
movslq (%rax,%rcx,4), %rax
shlq $0xa, %rax
movq 0x30(%rbp), %rcx
movslq -0x90(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq 0x20(%rcx), %rcx
movslq 0x38(%rcx), %rcx
addq %rcx, %rax
movq %rax, -0x78(%rbp)
jmp 0x234e7
movl -0x90(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x90(%rbp)
jmp 0x23441
movl $0x0, -0x90(%rbp)
movl $0x0, -0x8c(%rbp)
movl -0x90(%rbp), %eax
cmpl -0x9c(%rbp), %eax
jge 0x235a8
movq 0x18(%rbp), %rax
movslq -0x90(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x20(%rax), %rax
movq 0x10(%rax), %rax
movslq 0x4(%rax), %rcx
leaq 0x1a6bd(%rip), %rax     # 0x3dc00
movslq (%rax,%rcx,4), %rax
shlq $0xa, %rax
movq 0x18(%rbp), %rcx
movslq -0x90(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movslq 0x38(%rcx), %rcx
addq %rcx, %rax
cmpq -0x78(%rbp), %rax
jne 0x23592
movq 0x18(%rbp), %rax
movslq -0x90(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
movq 0x18(%rbp), %rax
movl -0x8c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x8c(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x23594
movl -0x90(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x90(%rbp)
jmp 0x2350f
movl -0x8c(%rbp), %ecx
movq 0x28(%rbp), %rax
movl %ecx, (%rax)
movl -0x90(%rbp), %eax
cmpl -0x94(%rbp), %eax
jge 0x2368c
movq 0x18(%rbp), %rax
movslq -0x90(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x20(%rax), %rax
movq 0x10(%rax), %rax
movslq 0x4(%rax), %rcx
leaq 0x1a618(%rip), %rax     # 0x3dc00
movslq (%rax,%rcx,4), %rax
shlq $0xa, %rax
movq 0x18(%rbp), %rcx
movslq -0x90(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movslq 0x38(%rcx), %rcx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jne 0x23641
movq 0x18(%rbp), %rax
movslq -0x90(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
movq 0x18(%rbp), %rax
movl -0x8c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x8c(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x23676
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jle 0x23674
movq -0x10(%rbp), %rdi
callq 0x21c60
movq 0x38(%rbp), %rax
movl $0x0, (%rax)
movq 0x20(%rbp), %rax
movl $0x0, (%rax)
movl $0x2, -0x4(%rbp)
jmp 0x2384d
jmp 0x23676
jmp 0x23678
movl -0x90(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x90(%rbp)
jmp 0x235b4
movl -0x8c(%rbp), %ecx
movl %ecx, -0x94(%rbp)
movq 0x20(%rbp), %rax
movl %ecx, (%rax)
movl $0x0, -0x90(%rbp)
movl $0x0, -0x8c(%rbp)
movl -0x90(%rbp), %eax
cmpl -0xa0(%rbp), %eax
jge 0x2374f
movq 0x30(%rbp), %rax
movslq -0x90(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x20(%rax), %rax
movq 0x18(%rax), %rax
movslq 0x4(%rax), %rcx
leaq 0x1a51a(%rip), %rax     # 0x3dc00
movslq (%rax,%rcx,4), %rax
shlq $0xa, %rax
movq 0x30(%rbp), %rcx
movslq -0x90(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq 0x20(%rcx), %rcx
movslq 0x38(%rcx), %rcx
addq %rcx, %rax
cmpq -0x78(%rbp), %rax
jne 0x23739
movq 0x30(%rbp), %rax
movslq -0x90(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
movq 0x30(%rbp), %rax
movl -0x8c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x8c(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x2373b
movl -0x90(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x90(%rbp)
jmp 0x236b2
movl -0x8c(%rbp), %ecx
movq 0x40(%rbp), %rax
movl %ecx, (%rax)
movl -0x90(%rbp), %eax
cmpl -0x98(%rbp), %eax
jge 0x23834
movq 0x30(%rbp), %rax
movslq -0x90(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x20(%rax), %rax
movq 0x18(%rax), %rax
movslq 0x4(%rax), %rcx
leaq 0x1a471(%rip), %rax     # 0x3dc00
movslq (%rax,%rcx,4), %rax
shlq $0xa, %rax
movq 0x30(%rbp), %rcx
movslq -0x90(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq 0x20(%rcx), %rcx
movslq 0x38(%rcx), %rcx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jne 0x237ec
movq 0x30(%rbp), %rax
movslq -0x90(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
movq 0x30(%rbp), %rax
movl -0x8c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x8c(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x2381e
movq -0x70(%rbp), %rax
cmpq -0x78(%rbp), %rax
jle 0x2381c
movq -0x10(%rbp), %rdi
callq 0x21c60
movq 0x38(%rbp), %rax
movl $0x0, (%rax)
movq 0x20(%rbp), %rax
movl $0x0, (%rax)
movl $0x2, -0x4(%rbp)
jmp 0x2384d
jmp 0x2381e
jmp 0x23820
movl -0x90(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x90(%rbp)
jmp 0x2375b
movl -0x8c(%rbp), %ecx
movl %ecx, -0x98(%rbp)
movq 0x38(%rbp), %rax
movl %ecx, (%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xd0, %rsp
popq %rbp
retq
nopl (%rax)