// File: /workspace/github_c_makefile_star2_O0/ComplexNetworks-DCC-FCUP[P]gtrieScanner/nauty/naugraph.c
// Function: refine1
void
refine1(graph *g, int *lab, int *ptn, int level, int *numcells,
       permutation *count, set *active, int *code, int m, int n)
{
	int i,c1,c2,labc1;
	setword x;
	int split1,split2,cell1,cell2;
	int cnt,bmin,bmax;
	long longcode;
	set *gptr,workset0;
        int maxcell,maxpos,hint;

#if !MAXN 
	DYNALLOC1(permutation,workperm,workperm_sz,n,"refine1"); 
	DYNALLOC1(int,bucket,bucket_sz,n+2,"refine1"); 
#endif

	longcode = *numcells;
	split1 = -1;

        hint = 0;
        while (*numcells < n && ((split1 = hint, ISELEMENT1(active,split1))
                             || (split1 = nextelement(active,1,split1)) >= 0
                             || (split1 = nextelement(active,1,-1)) >= 0))
	{
	    DELELEMENT1(active,split1);
	    for (split2 = split1; ptn[split2] > level; ++split2) {}
	    longcode = MASH(longcode,split1+split2);
	    if (split1 == split2)       /* trivial splitting cell */
	    {
	        gptr = GRAPHROW(g,lab[split1],1);
	        for (cell1 = 0; cell1 < n; cell1 = cell2 + 1)
	        {
	            for (cell2 = cell1; ptn[cell2] > level; ++cell2) {}
	            if (cell1 == cell2) continue;
	            c1 = cell1;
	            c2 = cell2;
	            while (c1 <= c2)
	            {
	                labc1 = lab[c1];
	                if (ISELEMENT1(gptr,labc1))
	                    ++c1;
	                else
	                {
	                    lab[c1] = lab[c2];
	                    lab[c2] = labc1;
	                    --c2;
	                }
	            }
	            if (c2 >= cell1 && c1 <= cell2)
	            {
	                ptn[c2] = level;
	                longcode = MASH(longcode,c2);
	                ++*numcells;
                        if (ISELEMENT1(active,cell1) || c2-cell1 >= cell2-c1)
			{
                            ADDELEMENT1(active,c1);
			    if (c1 == cell2) hint = c1;
			}
                        else
			{
                            ADDELEMENT1(active,cell1);
			    if (c2 == cell1) hint = cell1;
			}
	            }
	        }
	    }

	    else        /* nontrivial splitting cell */
	    {
	        workset0 = 0;
	        for (i = split1; i <= split2; ++i)
	            ADDELEMENT1(&workset0,lab[i]);
	        longcode = MASH(longcode,split2-split1+1);

	        for (cell1 = 0; cell1 < n; cell1 = cell2 + 1)
	        {
	            for (cell2 = cell1; ptn[cell2] > level; ++cell2) {}
	            if (cell1 == cell2) continue;
	            i = cell1;
	            if ((x = workset0 & g[lab[i]]) != 0)
	                cnt = POPCOUNT(x);
	            else
	                cnt = 0;
	            count[i] = bmin = bmax = cnt;
	            bucket[cnt] = 1;
	            while (++i <= cell2)
	            {
	                if ((x = workset0 & g[lab[i]]) != 0)
	                    cnt = POPCOUNT(x);
	                else
	                    cnt = 0;
	                while (bmin > cnt) bucket[--bmin] = 0;
	                while (bmax < cnt) bucket[++bmax] = 0;
	                ++bucket[cnt];
	                count[i] = cnt;
	            }
	            if (bmin == bmax)
	            {
	                longcode = MASH(longcode,bmin+cell1);
	                continue;
	            }
	            c1 = cell1;
                    maxcell = -1;
	            for (i = bmin; i <= bmax; ++i)
	                if (bucket[i])
	                {
	                    c2 = c1 + bucket[i];
	                    bucket[i] = c1;
	                    longcode = MASH(longcode,i+c1);
                            if (c2-c1 > maxcell)
                            {
                                maxcell = c2-c1;
                                maxpos = c1;
                            }
	                    if (c1 != cell1)
	                    {
	                        ADDELEMENT1(active,c1);
                                if (c2-c1 == 1) hint = c1;
	                        ++*numcells;
	                    }
	                    if (c2 <= cell2) ptn[c2-1] = level;
	                    c1 = c2;
	                }
	            for (i = cell1; i <= cell2; ++i)
	                workperm[bucket[count[i]]++] = lab[i];
	            for (i = cell1; i <= cell2; ++i) lab[i] = workperm[i];
                    if (!ISELEMENT1(active,cell1))
                    {
                        ADDELEMENT1(active,cell1);
                        DELELEMENT1(active,maxpos);
                    }
	        }
	    }
	}

	longcode = MASH(longcode,*numcells);
	*code = CLEANUP(longcode);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movl 0x28(%rbp), %eax
movl 0x20(%rbp), %eax
movq 0x18(%rbp), %rax
movq 0x10(%rbp), %rax
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movslq 0x28(%rbp), %rax
cmpq 0x1e6d5(%rip), %rax     # 0x3d540
jbe 0x1eeb6
cmpq $0x0, 0x1e6cb(%rip)     # 0x3d540
je 0x1ee83
movq 0x1e6ca(%rip), %rdi     # 0x3d548
callq 0x3320
movslq 0x28(%rbp), %rax
movq %rax, 0x1e6b2(%rip)     # 0x3d540
movslq 0x28(%rbp), %rdi
shlq $0x2, %rdi
callq 0x3370
movq %rax, 0x1e6a6(%rip)     # 0x3d548
cmpq $0x0, %rax
jne 0x1eeb4
leaq 0x2021(%rip), %rdi      # 0x20ed0
callq 0x1d260
jmp 0x1eeb6
movl 0x28(%rbp), %eax
addl $0x2, %eax
cltq
cmpq 0x1e69b(%rip), %rax     # 0x3d560
jbe 0x1ef19
cmpq $0x0, 0x1e691(%rip)     # 0x3d560
je 0x1eedd
movq 0x1e690(%rip), %rdi     # 0x3d568
callq 0x3320
movl 0x28(%rbp), %eax
addl $0x2, %eax
cltq
movq %rax, 0x1e674(%rip)     # 0x3d560
movl 0x28(%rbp), %eax
addl $0x2, %eax
movslq %eax, %rdi
shlq $0x2, %rdi
callq 0x3370
movq %rax, 0x1e663(%rip)     # 0x3d568
cmpq $0x0, %rax
jne 0x1ef17
leaq 0x1fbe(%rip), %rdi      # 0x20ed0
callq 0x1d260
jmp 0x1ef19
movq -0x28(%rbp), %rax
movslq (%rax), %rax
movq %rax, -0x68(%rbp)
movl $0xffffffff, -0x48(%rbp) # imm = 0xFFFFFFFF
movl $0x0, -0x80(%rbp)
movq -0x28(%rbp), %rax
movl (%rax), %ecx
xorl %eax, %eax
cmpl 0x28(%rbp), %ecx
movb %al, -0x81(%rbp)
jge 0x1efbd
movl -0x80(%rbp), %eax
movl %eax, -0x48(%rbp)
movq 0x10(%rbp), %rax
movl (%rax), %ecx
movslq -0x48(%rbp), %rdx
leaq 0xc994(%rip), %rax      # 0x2b8f0
andl (%rax,%rdx,4), %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x82(%rbp)
jne 0x1efb1
movq 0x10(%rbp), %rdi
movl -0x48(%rbp), %edx
movl $0x1, %esi
callq 0x1ca70
movl %eax, %ecx
movl %ecx, -0x48(%rbp)
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x82(%rbp)
jge 0x1efb1
movq 0x10(%rbp), %rdi
movl $0x1, %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x1ca70
movl %eax, -0x48(%rbp)
cmpl $0x0, %eax
setge %al
movb %al, -0x82(%rbp)
movb -0x82(%rbp), %al
movb %al, -0x81(%rbp)
movb -0x81(%rbp), %al
testb $0x1, %al
jne 0x1efcc
jmp 0x1f660
movslq -0x48(%rbp), %rcx
leaq 0xc919(%rip), %rax      # 0x2b8f0
movl (%rax,%rcx,4), %ecx
xorl $-0x1, %ecx
movq 0x10(%rbp), %rax
andl (%rax), %ecx
movl %ecx, (%rax)
movl -0x48(%rbp), %eax
movl %eax, -0x4c(%rbp)
movq -0x18(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x1c(%rbp), %eax
jle 0x1f008
jmp 0x1effd
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x1efeb
movq -0x68(%rbp), %rax
xorq $0x6b1d, %rax           # imm = 0x6B1D
movl -0x48(%rbp), %ecx
addl -0x4c(%rbp), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
andq $0x7fff, %rax           # imm = 0x7FFF
movq %rax, -0x68(%rbp)
movl -0x48(%rbp), %eax
cmpl -0x4c(%rbp), %eax
jne 0x1f1e3
movq -0x8(%rbp), %rax
movq -0x10(%rbp), %rcx
movslq -0x48(%rbp), %rdx
movslq (%rcx,%rdx,4), %rcx
shlq $0x0, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl 0x28(%rbp), %eax
jge 0x1f1de
movl -0x50(%rbp), %eax
movl %eax, -0x54(%rbp)
movq -0x18(%rbp), %rax
movslq -0x54(%rbp), %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x1c(%rbp), %eax
jle 0x1f089
jmp 0x1f07e
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x1f06c
movl -0x50(%rbp), %eax
cmpl -0x54(%rbp), %eax
jne 0x1f096
jmp 0x1f1d0
movl -0x50(%rbp), %eax
movl %eax, -0x38(%rbp)
movl -0x54(%rbp), %eax
movl %eax, -0x3c(%rbp)
movl -0x38(%rbp), %eax
cmpl -0x3c(%rbp), %eax
jg 0x1f10b
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x40(%rbp)
movq -0x70(%rbp), %rax
movl (%rax), %eax
movslq -0x40(%rbp), %rdx
leaq 0xc827(%rip), %rcx      # 0x2b8f0
andl (%rcx,%rdx,4), %eax
cmpl $0x0, %eax
je 0x1f0dc
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0x1f109
movq -0x10(%rbp), %rax
movslq -0x3c(%rbp), %rcx
movl (%rax,%rcx,4), %edx
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movl -0x40(%rbp), %edx
movq -0x10(%rbp), %rax
movslq -0x3c(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movl -0x3c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x1f0a2
movl -0x3c(%rbp), %eax
cmpl -0x50(%rbp), %eax
jl 0x1f1ce
movl -0x38(%rbp), %eax
cmpl -0x54(%rbp), %eax
jg 0x1f1ce
movl -0x1c(%rbp), %edx
movq -0x18(%rbp), %rax
movslq -0x3c(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movq -0x68(%rbp), %rax
xorq $0x6b1d, %rax           # imm = 0x6B1D
movslq -0x3c(%rbp), %rcx
addq %rcx, %rax
andq $0x7fff, %rax           # imm = 0x7FFF
movq %rax, -0x68(%rbp)
movq -0x28(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
movq 0x10(%rbp), %rax
movl (%rax), %eax
movslq -0x50(%rbp), %rdx
leaq 0xc788(%rip), %rcx      # 0x2b8f0
andl (%rcx,%rdx,4), %eax
cmpl $0x0, %eax
jne 0x1f180
movl -0x3c(%rbp), %eax
subl -0x50(%rbp), %eax
movl -0x54(%rbp), %ecx
subl -0x38(%rbp), %ecx
cmpl %ecx, %eax
jl 0x1f1a6
movslq -0x38(%rbp), %rcx
leaq 0xc765(%rip), %rax      # 0x2b8f0
movl (%rax,%rcx,4), %ecx
movq 0x10(%rbp), %rax
orl (%rax), %ecx
movl %ecx, (%rax)
movl -0x38(%rbp), %eax
cmpl -0x54(%rbp), %eax
jne 0x1f1a4
movl -0x38(%rbp), %eax
movl %eax, -0x80(%rbp)
jmp 0x1f1cc
movslq -0x50(%rbp), %rcx
leaq 0xc73f(%rip), %rax      # 0x2b8f0
movl (%rax,%rcx,4), %ecx
movq 0x10(%rbp), %rax
orl (%rax), %ecx
movl %ecx, (%rax)
movl -0x3c(%rbp), %eax
cmpl -0x50(%rbp), %eax
jne 0x1f1ca
movl -0x50(%rbp), %eax
movl %eax, -0x80(%rbp)
jmp 0x1f1cc
jmp 0x1f1ce
jmp 0x1f1d0
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x1f05a
jmp 0x1f65b
movl $0x0, -0x74(%rbp)
movl -0x48(%rbp), %eax
movl %eax, -0x34(%rbp)
movl -0x34(%rbp), %eax
cmpl -0x4c(%rbp), %eax
jg 0x1f21f
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movslq (%rax,%rcx,4), %rcx
leaq 0xc6e5(%rip), %rax      # 0x2b8f0
movl (%rax,%rcx,4), %eax
orl -0x74(%rbp), %eax
movl %eax, -0x74(%rbp)
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x1f1f0
movq -0x68(%rbp), %rax
xorq $0x6b1d, %rax           # imm = 0x6B1D
movl -0x4c(%rbp), %ecx
subl -0x48(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
andq $0x7fff, %rax           # imm = 0x7FFF
movq %rax, -0x68(%rbp)
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl 0x28(%rbp), %eax
jge 0x1f659
movl -0x50(%rbp), %eax
movl %eax, -0x54(%rbp)
movq -0x18(%rbp), %rax
movslq -0x54(%rbp), %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x1c(%rbp), %eax
jle 0x1f278
jmp 0x1f26d
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x1f25b
movl -0x50(%rbp), %eax
cmpl -0x54(%rbp), %eax
jne 0x1f285
jmp 0x1f64b
movl -0x50(%rbp), %eax
movl %eax, -0x34(%rbp)
movl -0x74(%rbp), %eax
movq -0x8(%rbp), %rcx
movq -0x10(%rbp), %rdx
movslq -0x34(%rbp), %rsi
movslq (%rdx,%rsi,4), %rdx
andl (%rcx,%rdx,4), %eax
movl %eax, -0x44(%rbp)
cmpl $0x0, %eax
je 0x1f312
movl -0x44(%rbp), %eax
shrl $0x18, %eax
andl $0xff, %eax
movl %eax, %eax
movl %eax, %ecx
leaq 0xc6b1(%rip), %rax      # 0x2b970
movl (%rax,%rcx,4), %eax
movl -0x44(%rbp), %ecx
shrl $0x10, %ecx
andl $0xff, %ecx
movl %ecx, %ecx
movl %ecx, %edx
leaq 0xc697(%rip), %rcx      # 0x2b970
addl (%rcx,%rdx,4), %eax
movl -0x44(%rbp), %ecx
shrl $0x8, %ecx
andl $0xff, %ecx
movl %ecx, %ecx
movl %ecx, %edx
leaq 0xc67d(%rip), %rcx      # 0x2b970
addl (%rcx,%rdx,4), %eax
movl -0x44(%rbp), %ecx
andl $0xff, %ecx
movl %ecx, %ecx
movl %ecx, %edx
leaq 0xc666(%rip), %rcx      # 0x2b970
addl (%rcx,%rdx,4), %eax
movl %eax, -0x58(%rbp)
jmp 0x1f319
movl $0x0, -0x58(%rbp)
movl -0x58(%rbp), %edx
movl %edx, -0x60(%rbp)
movl %edx, -0x5c(%rbp)
movq -0x30(%rbp), %rax
movslq -0x34(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movq 0x1e234(%rip), %rax     # 0x3d568
movslq -0x58(%rbp), %rcx
movl $0x1, (%rax,%rcx,4)
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
cmpl -0x54(%rbp), %eax
jg 0x1f452
movl -0x74(%rbp), %eax
movq -0x8(%rbp), %rcx
movq -0x10(%rbp), %rdx
movslq -0x34(%rbp), %rsi
movslq (%rdx,%rsi,4), %rdx
andl (%rcx,%rdx,4), %eax
movl %eax, -0x44(%rbp)
cmpl $0x0, %eax
je 0x1f3d8
movl -0x44(%rbp), %eax
shrl $0x18, %eax
andl $0xff, %eax
movl %eax, %eax
movl %eax, %ecx
leaq 0xc5eb(%rip), %rax      # 0x2b970
movl (%rax,%rcx,4), %eax
movl -0x44(%rbp), %ecx
shrl $0x10, %ecx
andl $0xff, %ecx
movl %ecx, %ecx
movl %ecx, %edx
leaq 0xc5d1(%rip), %rcx      # 0x2b970
addl (%rcx,%rdx,4), %eax
movl -0x44(%rbp), %ecx
shrl $0x8, %ecx
andl $0xff, %ecx
movl %ecx, %ecx
movl %ecx, %edx
leaq 0xc5b7(%rip), %rcx      # 0x2b970
addl (%rcx,%rdx,4), %eax
movl -0x44(%rbp), %ecx
andl $0xff, %ecx
movl %ecx, %ecx
movl %ecx, %edx
leaq 0xc5a0(%rip), %rcx      # 0x2b970
addl (%rcx,%rdx,4), %eax
movl %eax, -0x58(%rbp)
jmp 0x1f3df
movl $0x0, -0x58(%rbp)
jmp 0x1f3e1
movl -0x5c(%rbp), %eax
cmpl -0x58(%rbp), %eax
jle 0x1f405
movq 0x1e178(%rip), %rax     # 0x3d568
movl -0x5c(%rbp), %ecx
addl $-0x1, %ecx
movl %ecx, -0x5c(%rbp)
movslq %ecx, %rcx
movl $0x0, (%rax,%rcx,4)
jmp 0x1f3e1
jmp 0x1f407
movl -0x60(%rbp), %eax
cmpl -0x58(%rbp), %eax
jge 0x1f42b
movq 0x1e152(%rip), %rax     # 0x3d568
movl -0x60(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x60(%rbp)
movslq %ecx, %rcx
movl $0x0, (%rax,%rcx,4)
jmp 0x1f407
movq 0x1e136(%rip), %rax     # 0x3d568
movslq -0x58(%rbp), %rcx
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
movl %edx, (%rax,%rcx,4)
movl -0x58(%rbp), %edx
movq -0x30(%rbp), %rax
movslq -0x34(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
jmp 0x1f33f
movl -0x5c(%rbp), %eax
cmpl -0x60(%rbp), %eax
jne 0x1f47f
movq -0x68(%rbp), %rax
xorq $0x6b1d, %rax           # imm = 0x6B1D
movl -0x5c(%rbp), %ecx
addl -0x50(%rbp), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
andq $0x7fff, %rax           # imm = 0x7FFF
movq %rax, -0x68(%rbp)
jmp 0x1f64b
movl -0x50(%rbp), %eax
movl %eax, -0x38(%rbp)
movl $0xffffffff, -0x78(%rbp) # imm = 0xFFFFFFFF
movl -0x5c(%rbp), %eax
movl %eax, -0x34(%rbp)
movl -0x34(%rbp), %eax
cmpl -0x60(%rbp), %eax
jg 0x1f57d
movq 0x1e0c3(%rip), %rax     # 0x3d568
movslq -0x34(%rbp), %rcx
cmpl $0x0, (%rax,%rcx,4)
je 0x1f56d
movl -0x38(%rbp), %eax
movq 0x1e0ab(%rip), %rcx     # 0x3d568
movslq -0x34(%rbp), %rdx
addl (%rcx,%rdx,4), %eax
movl %eax, -0x3c(%rbp)
movl -0x38(%rbp), %edx
movq 0x1e097(%rip), %rax     # 0x3d568
movslq -0x34(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movq -0x68(%rbp), %rax
xorq $0x6b1d, %rax           # imm = 0x6B1D
movl -0x34(%rbp), %ecx
addl -0x38(%rbp), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
andq $0x7fff, %rax           # imm = 0x7FFF
movq %rax, -0x68(%rbp)
movl -0x3c(%rbp), %eax
subl -0x38(%rbp), %eax
cmpl -0x78(%rbp), %eax
jle 0x1f512
movl -0x3c(%rbp), %eax
subl -0x38(%rbp), %eax
movl %eax, -0x78(%rbp)
movl -0x38(%rbp), %eax
movl %eax, -0x7c(%rbp)
movl -0x38(%rbp), %eax
cmpl -0x50(%rbp), %eax
je 0x1f54c
movslq -0x38(%rbp), %rcx
leaq 0xc3cb(%rip), %rax      # 0x2b8f0
movl (%rax,%rcx,4), %ecx
movq 0x10(%rbp), %rax
orl (%rax), %ecx
movl %ecx, (%rax)
movl -0x3c(%rbp), %eax
subl -0x38(%rbp), %eax
cmpl $0x1, %eax
jne 0x1f541
movl -0x38(%rbp), %eax
movl %eax, -0x80(%rbp)
movq -0x28(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
movl -0x3c(%rbp), %eax
cmpl -0x54(%rbp), %eax
jg 0x1f567
movl -0x1c(%rbp), %edx
movq -0x18(%rbp), %rax
movl -0x3c(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movl -0x3c(%rbp), %eax
movl %eax, -0x38(%rbp)
jmp 0x1f56f
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x1f492
movl -0x50(%rbp), %eax
movl %eax, -0x34(%rbp)
movl -0x34(%rbp), %eax
cmpl -0x54(%rbp), %eax
jg 0x1f5cf
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movl (%rax,%rcx,4), %edx
movq 0x1dfab(%rip), %rax     # 0x3d548
movq 0x1dfc4(%rip), %rsi     # 0x3d568
movq -0x30(%rbp), %rcx
movslq -0x34(%rbp), %rdi
movslq (%rcx,%rdi,4), %rdi
movl (%rsi,%rdi,4), %ecx
movl %ecx, %r8d
addl $0x1, %r8d
movl %r8d, (%rsi,%rdi,4)
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x1f583
movl -0x50(%rbp), %eax
movl %eax, -0x34(%rbp)
movl -0x34(%rbp), %eax
cmpl -0x54(%rbp), %eax
jg 0x1f601
movq 0x1df64(%rip), %rax     # 0x3d548
movslq -0x34(%rbp), %rcx
movl (%rax,%rcx,4), %edx
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x1f5d5
movq 0x10(%rbp), %rax
movl (%rax), %eax
movslq -0x50(%rbp), %rdx
leaq 0xc2de(%rip), %rcx      # 0x2b8f0
andl (%rcx,%rdx,4), %eax
cmpl $0x0, %eax
jne 0x1f649
movslq -0x50(%rbp), %rcx
leaq 0xc2cb(%rip), %rax      # 0x2b8f0
movl (%rax,%rcx,4), %ecx
movq 0x10(%rbp), %rax
orl (%rax), %ecx
movl %ecx, (%rax)
movslq -0x7c(%rbp), %rcx
leaq 0xc2b5(%rip), %rax      # 0x2b8f0
movl (%rax,%rcx,4), %ecx
xorl $-0x1, %ecx
movq 0x10(%rbp), %rax
andl (%rax), %ecx
movl %ecx, (%rax)
jmp 0x1f64b
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x1f249
jmp 0x1f65b
jmp 0x1ef32
movq -0x68(%rbp), %rax
xorq $0x6b1d, %rax           # imm = 0x6B1D
movq -0x28(%rbp), %rcx
movslq (%rcx), %rcx
addq %rcx, %rax
andq $0x7fff, %rax           # imm = 0x7FFF
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
movl $0x7fff, %ecx           # imm = 0x7FFF
cqto
idivq %rcx
movl %edx, %ecx
movq 0x18(%rbp), %rax
movl %ecx, (%rax)
addq $0x90, %rsp
popq %rbp
retq
nopl (%rax)