// File: /workspace/github_c_makefile_star2_O0/mishun[P]plantri/plantri.c
// Function: min5_a_legal
static void
min5_a_legal(EDGE *ref, EDGE *good_or[], int *ngood_or, int *ngood_ref,
             EDGE *good_mir[], int *ngood_mir, int *ngood_mir_ref,
             EDGE **prevA, int nprevA)

/* The A-operation with reference edge *ref has just been performed.
   prevA[0..nprevA-1] are all earlier As since the last B or C.
   Make a list in good_or[0..*ngood_or-1] of the reference edges of
   legal A-reductions (oriented editions) that might be canonical,
   with the first *ngood_ref of those being ref.
   Make a list in good_mir[0..*ngood_mir-1] of the
   reference edges of legal four-reductions (mirror-image editions)
   that might be canonical, with the first *ngood_mir_ref of those being
   ref->next.
   *ngood_ref and *ngood_mir_ref might each be 0-2.  If they are
   both 0, nothing else need be correct.
   All the edges in good_or[] and good_mir[] must start with the same
   vertex degree and end with the same vertex degree (actually, colour
   as passed to canon_edge_oriented).
   A-reductions have a priority (colour) based on the degrees of the
   four central vertices.  It cannot be changed without changing
   extensions_min5 too.
*/
{
    EDGE *e;
    int deg1,deg2,deg3,deg4,d1,d2,d3,d4;
    long bestcol1,bestcol2,col1,col2;
    int nor,nmir,i;
    int mind1,mind2,maxdeg12,sumdeg12;
    EDGE *ei,*eilast,*hint;
#define PAIR(x,y) (((long)((x)+(y))<<10)+(long)(x))
#define UPAIR(x,y) ((x)<(y) ? PAIR(x,y) : PAIR(y,x))

    e = ref;
    deg1 = degree[e->start];
    deg2 = degree[e->end];
    deg3 = degree[e->prev->end];
    deg4 = degree[e->next->end];

    bestcol1 = UPAIR(deg1,deg2);
    bestcol2 = UPAIR(deg3,deg4);

    RESETMARKS;
    MARKLO(e);
    MARKLO(e->invers);

    nor = nmir = 0;

    for (i = nprevA; --i >= 0;)
    {
	hint = prevA[i];
 	MARKLO(hint);
 	MARKLO(hint->invers);
        if ((d3 = degree[hint->prev->end]) >= 6
                      && (d4 = degree[hint->next->end]) >= 6)
        {
           /* Theorem: The reference edges of the A-expansions since the
              most recent B- or C-expansion are not on essential 5-cycles. */
            d1 = degree[hint->start];
            d2 = degree[hint->end];
            col1 = UPAIR(d1,d2);
	    if (col1 == bestcol1)
	    {
                col2 = UPAIR(d3,d4);
                if (col2 > bestcol2)
                {
                    *ngood_ref = *ngood_mir_ref = 0;
                    return;
                }
	        else if (col2 == bestcol2)
    	        {   
		    if (nor + nmir == 0)
		    {
    		        if (deg1 >= deg2)
    		        {
        		    if (deg3 >= deg4) good_or[nor++] = e;
        		    if (deg3 <= deg4) good_mir[nmir++] = e;
    		        }
    		        if (deg1 <= deg2)
    		        {
        		    if (deg3 <= deg4) good_or[nor++] = e->invers;
        		    if (deg3 >= deg4) good_mir[nmir++] = e->invers;
    		        }
		        *ngood_ref = nor;
    		        *ngood_mir_ref = nmir;
		    }
    
        	    if (d1 >= d2)
        	    {   
            	        if (d3 >= d4) good_or[nor++] = hint;
            	        if (d3 <= d4) good_mir[nmir++] = hint;
        	    }
        	    if (d1 <= d2)
        	    {
            	        if (d3 <= d4) good_or[nor++] = hint->invers;
            	        if (d3 >= d4) good_mir[nmir++] = hint->invers;
        	    }
    	        }
	    }
	    else if (col1 > bestcol1)
            {   
                *ngood_ref = *ngood_mir_ref = 0;
                return;
            }
	}
    }

    if (nor + nmir == 0)
    {
        if (deg1 >= deg2)
        {
            if (deg3 >= deg4) good_or[nor++] = e;
            if (deg3 <= deg4) good_mir[nmir++] = e;
        }
        if (deg1 <= deg2)
        {
            if (deg3 <= deg4) good_or[nor++] = e->invers;
            if (deg3 >= deg4) good_mir[nmir++] = e->invers;
        }
    
        *ngood_ref = nor;
        *ngood_mir_ref = nmir;
    }

    if (nor > *ngood_ref || nmir > *ngood_mir_ref)
        prune_oriented_lists(good_or,&nor,ngood_ref,
                             good_mir,&nmir,ngood_mir_ref);

    if (*ngood_ref+*ngood_mir_ref == 0) return;

    sumdeg12 = deg1 + deg2;
    mind1 = (sumdeg12 + 1) / 2;
    maxdeg12 = MAX(deg1,deg2);

    for (i = nv; --i >= 0;)
    if ((d1 = degree[i]) >= mind1)
    {
	if (d1 <= maxdeg12) mind2 = sumdeg12 - d1;
	else                mind2 = sumdeg12 - d1 + 1;

	ei = eilast = firstedge[i];
	do
	{
            if (!ISMARKEDLO(ei) && (d2 = degree[ei->end]) >= mind2
                                && (d3 = degree[ei->prev->end]) >= 6
                                && (d4 = degree[ei->next->end]) >= 6)
	    {
		col1 = UPAIR(d1,d2);

		if (col1 > bestcol1)
		{
		    if (!on_nf_5_cycle(ei))
		    {
			*ngood_ref = *ngood_mir_ref = 0;
			return;
		    }
		}
		else
		{
		    col2 = UPAIR(d3,d4);
		    if (col2 > bestcol2)
                    {
                        if (!on_nf_5_cycle(ei))
                        {
                            *ngood_ref = *ngood_mir_ref = 0;
                            return;
                        }
                    }
		    else if (col2 == bestcol2 && !on_nf_5_cycle(ei))
		    {
	                if (d1 >= d2)
    		        {
        		    if (d3 >= d4) good_or[nor++] = ei;
        		    if (d3 <= d4) good_mir[nmir++] = ei;
    		        }
    		        if (d1 <= d2)
    		        {
        		    if (d3 <= d4) good_or[nor++] = ei->invers;
        		    if (d3 >= d4) good_mir[nmir++] = ei->invers;
    		        }
		    }
	        }
	    }
	    MARKLO(ei->invers);
	    ei = ei->next;
	} while (ei != eilast);
    }

    if (nor > *ngood_ref || nmir > *ngood_mir_ref)
        prune_oriented_lists(good_or,&nor,ngood_ref,
                             good_mir,&nmir,ngood_mir_ref);

    *ngood_or = nor;
    *ngood_mir = nmir;    
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movl 0x20(%rbp), %eax
movq 0x18(%rbp), %rax
movq 0x10(%rbp), %rax
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movslq (%rax), %rcx
leaq 0x201cc(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
movl %eax, -0x3c(%rbp)
movq -0x38(%rbp), %rax
movslq 0x4(%rax), %rcx
leaq 0x201b7(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
movl %eax, -0x40(%rbp)
movq -0x38(%rbp), %rax
movq 0x10(%rax), %rax
movslq 0x4(%rax), %rcx
leaq 0x2019e(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
movl %eax, -0x44(%rbp)
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rax
movslq 0x4(%rax), %rcx
leaq 0x20185(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
movl %eax, -0x48(%rbp)
movl -0x3c(%rbp), %eax
cmpl -0x40(%rbp), %eax
jge 0x1daa5
movl -0x3c(%rbp), %eax
addl -0x40(%rbp), %eax
cltq
shlq $0xa, %rax
movslq -0x3c(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0xc0(%rbp)
jmp 0x1dabf
movl -0x40(%rbp), %eax
addl -0x3c(%rbp), %eax
cltq
shlq $0xa, %rax
movslq -0x40(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0xc0(%rbp)
movq -0xc0(%rbp), %rax
movq %rax, -0x60(%rbp)
movl -0x44(%rbp), %eax
cmpl -0x48(%rbp), %eax
jge 0x1daee
movl -0x44(%rbp), %eax
addl -0x48(%rbp), %eax
cltq
shlq $0xa, %rax
movslq -0x44(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0xc8(%rbp)
jmp 0x1db08
movl -0x48(%rbp), %eax
addl -0x44(%rbp), %eax
cltq
shlq $0xa, %rax
movslq -0x48(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0xc8(%rbp)
movq -0xc8(%rbp), %rax
movq %rax, -0x68(%rbp)
movl 0x1e56b(%rip), %eax     # 0x3c084
addl $0x2, %eax
movl %eax, 0x1e562(%rip)     # 0x3c084
cmpl $0x7530, %eax           # imm = 0x7530
jle 0x1db78
movl $0x2, 0x1e551(%rip)     # 0x3c084
movl $0x0, -0xb4(%rbp)
cmpl $0x1198, -0xb4(%rbp)    # imm = 0x1198
jge 0x1db76
movslq -0xb4(%rbp), %rcx
leaq 0x23cad9(%rip), %rax    # 0x25a630
shlq $0x6, %rcx
addq %rcx, %rax
movl $0x0, 0x30(%rax)
movl -0xb4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb4(%rbp)
jmp 0x1db3d
jmp 0x1db78
movl 0x1e506(%rip), %ecx     # 0x3c084
movq -0x38(%rbp), %rax
movl %ecx, 0x30(%rax)
movl 0x1e4f9(%rip), %ecx     # 0x3c084
movq -0x38(%rbp), %rax
movq 0x20(%rax), %rax
movl %ecx, 0x30(%rax)
movl $0x0, -0x80(%rbp)
movl $0x0, -0x7c(%rbp)
movl 0x20(%rbp), %eax
movl %eax, -0x84(%rbp)
movl -0x84(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x84(%rbp)
cmpl $0x0, %eax
jl 0x1def0
movq 0x18(%rbp), %rax
movslq -0x84(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0xb0(%rbp)
movl 0x1e4a3(%rip), %ecx     # 0x3c084
movq -0xb0(%rbp), %rax
movl %ecx, 0x30(%rax)
movl 0x1e493(%rip), %ecx     # 0x3c084
movq -0xb0(%rbp), %rax
movq 0x20(%rax), %rax
movl %ecx, 0x30(%rax)
movq -0xb0(%rbp), %rax
movq 0x10(%rax), %rax
movslq 0x4(%rax), %rcx
leaq 0x1ffeb(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
movl %eax, -0x54(%rbp)
cmpl $0x6, %eax
jl 0x1deeb
movq -0xb0(%rbp), %rax
movq 0x18(%rax), %rax
movslq 0x4(%rax), %rcx
leaq 0x1ffc6(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
movl %eax, -0x58(%rbp)
cmpl $0x6, %eax
jl 0x1deeb
movq -0xb0(%rbp), %rax
movslq (%rax), %rcx
leaq 0x1ffa6(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
movl %eax, -0x4c(%rbp)
movq -0xb0(%rbp), %rax
movslq 0x4(%rax), %rcx
leaq 0x1ff8e(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
movl %eax, -0x50(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x50(%rbp), %eax
jge 0x1dc9c
movl -0x4c(%rbp), %eax
addl -0x50(%rbp), %eax
cltq
shlq $0xa, %rax
movslq -0x4c(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0xd0(%rbp)
jmp 0x1dcb6
movl -0x50(%rbp), %eax
addl -0x4c(%rbp), %eax
cltq
shlq $0xa, %rax
movslq -0x50(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0xd0(%rbp)
movq -0xd0(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
cmpq -0x60(%rbp), %rax
jne 0x1dec4
movl -0x54(%rbp), %eax
cmpl -0x58(%rbp), %eax
jge 0x1dcf3
movl -0x54(%rbp), %eax
addl -0x58(%rbp), %eax
cltq
shlq $0xa, %rax
movslq -0x54(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0xd8(%rbp)
jmp 0x1dd0d
movl -0x58(%rbp), %eax
addl -0x54(%rbp), %eax
cltq
shlq $0xa, %rax
movslq -0x58(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0xd8(%rbp)
movq -0xd8(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
cmpq -0x68(%rbp), %rax
jle 0x1dd3b
movq 0x10(%rbp), %rax
movl $0x0, (%rax)
movq -0x20(%rbp), %rax
movl $0x0, (%rax)
jmp 0x1e3c4
movq -0x78(%rbp), %rax
cmpq -0x68(%rbp), %rax
jne 0x1dec0
movl -0x7c(%rbp), %eax
addl -0x80(%rbp), %eax
cmpl $0x0, %eax
jne 0x1de0e
movl -0x3c(%rbp), %eax
cmpl -0x40(%rbp), %eax
jl 0x1dda6
movl -0x44(%rbp), %eax
cmpl -0x48(%rbp), %eax
jl 0x1dd82
movq -0x38(%rbp), %rdx
movq -0x10(%rbp), %rax
movl -0x7c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x7c(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x44(%rbp), %eax
cmpl -0x48(%rbp), %eax
jg 0x1dda4
movq -0x38(%rbp), %rdx
movq -0x28(%rbp), %rax
movl -0x80(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x80(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x1dda6
movl -0x3c(%rbp), %eax
cmpl -0x40(%rbp), %eax
jg 0x1ddfc
movl -0x44(%rbp), %eax
cmpl -0x48(%rbp), %eax
jg 0x1ddd4
movq -0x38(%rbp), %rax
movq 0x20(%rax), %rdx
movq -0x10(%rbp), %rax
movl -0x7c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x7c(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x44(%rbp), %eax
cmpl -0x48(%rbp), %eax
jl 0x1ddfa
movq -0x38(%rbp), %rax
movq 0x20(%rax), %rdx
movq -0x28(%rbp), %rax
movl -0x80(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x80(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x1ddfc
movl -0x7c(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movl -0x80(%rbp), %ecx
movq 0x10(%rbp), %rax
movl %ecx, (%rax)
movl -0x4c(%rbp), %eax
cmpl -0x50(%rbp), %eax
jl 0x1de62
movl -0x54(%rbp), %eax
cmpl -0x58(%rbp), %eax
jl 0x1de3b
movq -0xb0(%rbp), %rdx
movq -0x10(%rbp), %rax
movl -0x7c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x7c(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x54(%rbp), %eax
cmpl -0x58(%rbp), %eax
jg 0x1de60
movq -0xb0(%rbp), %rdx
movq -0x28(%rbp), %rax
movl -0x80(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x80(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x1de62
movl -0x4c(%rbp), %eax
cmpl -0x50(%rbp), %eax
jg 0x1debe
movl -0x54(%rbp), %eax
cmpl -0x58(%rbp), %eax
jg 0x1de93
movq -0xb0(%rbp), %rax
movq 0x20(%rax), %rdx
movq -0x10(%rbp), %rax
movl -0x7c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x7c(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x54(%rbp), %eax
cmpl -0x58(%rbp), %eax
jl 0x1debc
movq -0xb0(%rbp), %rax
movq 0x20(%rax), %rdx
movq -0x28(%rbp), %rax
movl -0x80(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x80(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x1debe
jmp 0x1dec0
jmp 0x1dec2
jmp 0x1dee9
movq -0x70(%rbp), %rax
cmpq -0x60(%rbp), %rax
jle 0x1dee7
movq 0x10(%rbp), %rax
movl $0x0, (%rax)
movq -0x20(%rbp), %rax
movl $0x0, (%rax)
jmp 0x1e3c4
jmp 0x1dee9
jmp 0x1deeb
jmp 0x1dbad
movl -0x7c(%rbp), %eax
addl -0x80(%rbp), %eax
cmpl $0x0, %eax
jne 0x1dfb5
movl -0x3c(%rbp), %eax
cmpl -0x40(%rbp), %eax
jl 0x1df4d
movl -0x44(%rbp), %eax
cmpl -0x48(%rbp), %eax
jl 0x1df29
movq -0x38(%rbp), %rdx
movq -0x10(%rbp), %rax
movl -0x7c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x7c(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x44(%rbp), %eax
cmpl -0x48(%rbp), %eax
jg 0x1df4b
movq -0x38(%rbp), %rdx
movq -0x28(%rbp), %rax
movl -0x80(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x80(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x1df4d
movl -0x3c(%rbp), %eax
cmpl -0x40(%rbp), %eax
jg 0x1dfa3
movl -0x44(%rbp), %eax
cmpl -0x48(%rbp), %eax
jg 0x1df7b
movq -0x38(%rbp), %rax
movq 0x20(%rax), %rdx
movq -0x10(%rbp), %rax
movl -0x7c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x7c(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x44(%rbp), %eax
cmpl -0x48(%rbp), %eax
jl 0x1dfa1
movq -0x38(%rbp), %rax
movq 0x20(%rax), %rdx
movq -0x28(%rbp), %rax
movl -0x80(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x80(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x1dfa3
movl -0x7c(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movl -0x80(%rbp), %ecx
movq 0x10(%rbp), %rax
movl %ecx, (%rax)
movl -0x7c(%rbp), %eax
movq -0x20(%rbp), %rcx
cmpl (%rcx), %eax
jg 0x1dfcb
movl -0x80(%rbp), %eax
movq 0x10(%rbp), %rcx
cmpl (%rcx), %eax
jle 0x1dfe8
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rcx
movq 0x10(%rbp), %r9
leaq -0x7c(%rbp), %rsi
leaq -0x80(%rbp), %r8
callq 0x12be0
movq -0x20(%rbp), %rax
movl (%rax), %eax
movq 0x10(%rbp), %rcx
addl (%rcx), %eax
cmpl $0x0, %eax
jne 0x1dffe
jmp 0x1e3c4
movl -0x3c(%rbp), %eax
addl -0x40(%rbp), %eax
movl %eax, -0x94(%rbp)
movl -0x94(%rbp), %eax
addl $0x1, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, -0x88(%rbp)
movl -0x3c(%rbp), %eax
cmpl -0x40(%rbp), %eax
jge 0x1e034
movl -0x40(%rbp), %eax
movl %eax, -0xdc(%rbp)
jmp 0x1e03d
movl -0x3c(%rbp), %eax
movl %eax, -0xdc(%rbp)
movl -0xdc(%rbp), %eax
movl %eax, -0x90(%rbp)
movl 0x23c5d1(%rip), %eax    # 0x25a620
movl %eax, -0x84(%rbp)
movl -0x84(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x84(%rbp)
cmpl $0x0, %eax
jl 0x1e37f
movslq -0x84(%rbp), %rcx
leaq 0x1fb85(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
movl %eax, -0x4c(%rbp)
cmpl -0x88(%rbp), %eax
jl 0x1e37a
movl -0x4c(%rbp), %eax
cmpl -0x90(%rbp), %eax
jg 0x1e0a9
movl -0x94(%rbp), %eax
subl -0x4c(%rbp), %eax
movl %eax, -0x8c(%rbp)
jmp 0x1e0bb
movl -0x94(%rbp), %eax
subl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8c(%rbp)
movslq -0x84(%rbp), %rcx
leaq 0x1f937(%rip), %rax     # 0x3da00
movq (%rax,%rcx,8), %rax
movq %rax, -0xa8(%rbp)
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rax
movl 0x30(%rax), %eax
cmpl 0x1df99(%rip), %eax     # 0x3c084
je 0x1e33e
movq -0xa0(%rbp), %rax
movslq 0x4(%rax), %rcx
leaq 0x1fafd(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
movl %eax, -0x50(%rbp)
cmpl -0x8c(%rbp), %eax
jl 0x1e33e
movq -0xa0(%rbp), %rax
movq 0x10(%rax), %rax
movslq 0x4(%rax), %rcx
leaq 0x1fad5(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
movl %eax, -0x54(%rbp)
cmpl $0x6, %eax
jl 0x1e33e
movq -0xa0(%rbp), %rax
movq 0x18(%rax), %rax
movslq 0x4(%rax), %rcx
leaq 0x1fab0(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
movl %eax, -0x58(%rbp)
cmpl $0x6, %eax
jl 0x1e33e
movl -0x4c(%rbp), %eax
cmpl -0x50(%rbp), %eax
jge 0x1e183
movl -0x4c(%rbp), %eax
addl -0x50(%rbp), %eax
cltq
shlq $0xa, %rax
movslq -0x4c(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0xe8(%rbp)
jmp 0x1e19d
movl -0x50(%rbp), %eax
addl -0x4c(%rbp), %eax
cltq
shlq $0xa, %rax
movslq -0x50(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0xe8(%rbp)
movq -0xe8(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
cmpq -0x60(%rbp), %rax
jle 0x1e1e1
movq -0xa0(%rbp), %rdi
callq 0x275c0
cmpl $0x0, %eax
jne 0x1e1dc
movq 0x10(%rbp), %rax
movl $0x0, (%rax)
movq -0x20(%rbp), %rax
movl $0x0, (%rax)
jmp 0x1e3c4
jmp 0x1e33c
movl -0x54(%rbp), %eax
cmpl -0x58(%rbp), %eax
jge 0x1e205
movl -0x54(%rbp), %eax
addl -0x58(%rbp), %eax
cltq
shlq $0xa, %rax
movslq -0x54(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0xf0(%rbp)
jmp 0x1e21f
movl -0x58(%rbp), %eax
addl -0x54(%rbp), %eax
cltq
shlq $0xa, %rax
movslq -0x58(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0xf0(%rbp)
movq -0xf0(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
cmpq -0x68(%rbp), %rax
jle 0x1e263
movq -0xa0(%rbp), %rdi
callq 0x275c0
cmpl $0x0, %eax
jne 0x1e25e
movq 0x10(%rbp), %rax
movl $0x0, (%rax)
movq -0x20(%rbp), %rax
movl $0x0, (%rax)
jmp 0x1e3c4
jmp 0x1e33a
movq -0x78(%rbp), %rax
cmpq -0x68(%rbp), %rax
jne 0x1e338
movq -0xa0(%rbp), %rdi
callq 0x275c0
cmpl $0x0, %eax
jne 0x1e338
movl -0x4c(%rbp), %eax
cmpl -0x50(%rbp), %eax
jl 0x1e2da
movl -0x54(%rbp), %eax
cmpl -0x58(%rbp), %eax
jl 0x1e2b3
movq -0xa0(%rbp), %rdx
movq -0x10(%rbp), %rax
movl -0x7c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x7c(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x54(%rbp), %eax
cmpl -0x58(%rbp), %eax
jg 0x1e2d8
movq -0xa0(%rbp), %rdx
movq -0x28(%rbp), %rax
movl -0x80(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x80(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x1e2da
movl -0x4c(%rbp), %eax
cmpl -0x50(%rbp), %eax
jg 0x1e336
movl -0x54(%rbp), %eax
cmpl -0x58(%rbp), %eax
jg 0x1e30b
movq -0xa0(%rbp), %rax
movq 0x20(%rax), %rdx
movq -0x10(%rbp), %rax
movl -0x7c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x7c(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x54(%rbp), %eax
cmpl -0x58(%rbp), %eax
jl 0x1e334
movq -0xa0(%rbp), %rax
movq 0x20(%rax), %rdx
movq -0x28(%rbp), %rax
movl -0x80(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x80(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x1e336
jmp 0x1e338
jmp 0x1e33a
jmp 0x1e33c
jmp 0x1e33e
movl 0x1dd40(%rip), %ecx     # 0x3c084
movq -0xa0(%rbp), %rax
movq 0x20(%rax), %rax
movl %ecx, 0x30(%rax)
movq -0xa0(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rax
cmpq -0xa8(%rbp), %rax
jne 0x1e0db
jmp 0x1e37a
jmp 0x1e055
movl -0x7c(%rbp), %eax
movq -0x20(%rbp), %rcx
cmpl (%rcx), %eax
jg 0x1e395
movl -0x80(%rbp), %eax
movq 0x10(%rbp), %rcx
cmpl (%rcx), %eax
jle 0x1e3b2
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rcx
movq 0x10(%rbp), %r9
leaq -0x7c(%rbp), %rsi
leaq -0x80(%rbp), %r8
callq 0x12be0
movl -0x7c(%rbp), %ecx
movq -0x18(%rbp), %rax
movl %ecx, (%rax)
movl -0x80(%rbp), %ecx
movq -0x30(%rbp), %rax
movl %ecx, (%rax)
addq $0xf0, %rsp
popq %rbp
retq
nopl (%rax)