// File: /workspace/github_c_makefile_star2_O0/dapogon[P]cellcoal/src/cellcoal.c
// Function: GenerateReadCounts
void GenerateReadCounts (long int *seed)
	{
	int			i, j;
	int			countReadsA, countReadsC, countReadsG, countReadsT;
	int			numAltAlleles;
	double		*probs, **ngsEij, **ampEijmat, **ampEijpat;

	countReadsA = countReadsC = countReadsG = countReadsT = 0;

	probs = (double*) calloc (4, sizeof(double));
	if (!probs)
		{
		fprintf (stderr, "Could not allocate the probs structure\n");
		exit (-1);
		}
	
	/* allocate error probabilities for NGS */
	ngsEij = (double**) calloc (4, sizeof(double**));
	if (!ngsEij)
		{
		fprintf (stderr, "Could not allocate the ngsEij structure\n");
		exit (-1);
		}
	for (i=0; i<4; i++)
		{
		ngsEij[i] = (double*) calloc (4, sizeof(double*));
		if (!ngsEij[i])
			{
			fprintf (stderr, "Could not allocate the ngsEij[i] structure\n");
			exit (-1);
			}
		}

	/* allocate error probabilities for amplification */
	ampEijmat = (double**) calloc (4, sizeof(double**));
	if (!ampEijmat)
		{
		fprintf (stderr, "Could not allocate the ampEijmat structure\n");
		exit (-1);
		}
	for (i=0; i<4; i++)
		{
		ampEijmat[i] = (double*) calloc (4, sizeof(double*));
		if (!ampEijmat[i])
			{
			fprintf (stderr, "Could not allocate the ampEijmat[i] structure\n");
			exit (-1);
			}
		}

	ampEijpat = (double**) calloc (4, sizeof(double**));
	if (!ampEijpat)
		{
		fprintf (stderr, "Could not allocate the ampEijpat structure\n");
		exit (-1);
		}
	for (i=0; i<4; i++)
		{
		ampEijpat[i] = (double*) calloc (4, sizeof(double*));
		if (!ampEijpat[i])
			{
			fprintf (stderr, "Could not allocate the ampEijpat[i] structure\n");
			exit (-1);
			}
		}

	/* initialize ngsEij now as this will be contant across sites */
	for (i=0; i<4; i++)
		for (j=0; j<4; j++)
			{
			if (i == j)
				ngsEij[i][j] = 1.0 - sequencingError;
			else
				ngsEij[i][j] = Eij[i][j]/cumEij[i][3] * sequencingError;
			}
	
	
	/* define GL model  */
	/* initialize */
	doGATK = NO;
	do2T = NO;
	do4T = NO;
	doGATK_ADO = NO;
	do2T_ADO = NO;
	do4T_ADO = NO;

	if (thereisADO == NO)
		{
		if (meanAmplificationError == 0)
			{
			doGATK = YES;
			strcpy(GLmodel, "GATK");
			}
		else if (simulateOnlyTwoTemplates == YES)
			{
			do2T = YES;
			strcpy(GLmodel, "2T");
			}
		else
			{
			do4T = YES;
			strcpy(GLmodel, "4T");
			}
		}
	else
		{
		if (meanAmplificationError == 0)
			{
			doGATK_ADO = YES;
			strcpy(GLmodel, "GATK_ADO");
			}
		else if (simulateOnlyTwoTemplates == YES)
			{
			do2T_ADO = YES;
			strcpy(GLmodel, "2T_ADO");
			}
		else
			{
			do4T_ADO = YES;
			strcpy(GLmodel, "4T_ADO");
			}
		}
		
	/* produce read counts for all sites */
	for (j=0; j<numSites; j++)
		{
		for (i=0; i<numCells+1; i++)
			{
			SiteReadCounts (&cell[i].site[j], i, j, probs, ngsEij, ampEijmat, ampEijpat, seed);
			if (cell[i].site[j].numReads > 0)
				GenotypeLikelihoods (&cell[i].site[j], i, j, probs, ngsEij, ampEijmat, ampEijpat, seed);
			else
				cell[i].site[j].MLmatAllele = cell[i].site[j].MLpatAllele = MISSING;
			}
		}
	/* add doublets and reads from them */
	if (meanDoubletRate > 0)
		MakeDoublets(probs, ngsEij, ampEijmat, ampEijpat, seed);

	/* count alternate alleles in total reads */
	for (j=0; j<numSites; j++)
		{
		countReadsA = countReadsC = countReadsG = countReadsT = 0;
		for (i=0; i<numCells+1; i++)
			{
			if (cell[i].hasDoublet == YES)
				{
				countReadsA += cell[i].site[j].readCountDoublet[A];
				countReadsC += cell[i].site[j].readCountDoublet[C];
				countReadsG += cell[i].site[j].readCountDoublet[G];
				countReadsT += cell[i].site[j].readCountDoublet[T];
				}
			else
				{
				countReadsA += cell[i].site[j].readCount[A];
				countReadsC += cell[i].site[j].readCount[C];
				countReadsG += cell[i].site[j].readCount[G];
				countReadsT += cell[i].site[j].readCount[T];
				}
			}
		
		numAltAlleles = 0;
		if (countReadsA > 0 && allSites[j].referenceAllele != A)
			allSites[j].alternateAlleles[numAltAlleles++] = A;
		if (countReadsC > 0 && allSites[j].referenceAllele != C)
			allSites[j].alternateAlleles[numAltAlleles++] = C;
		if (countReadsG > 0 && allSites[j].referenceAllele != G)
			allSites[j].alternateAlleles[numAltAlleles++] = G;
		if (countReadsT > 0 && allSites[j].referenceAllele != T)
			allSites[j].alternateAlleles[numAltAlleles++] = T;
		allSites[j].numAltAlleles = numAltAlleles;
				
		allSites[j].readCountA = countReadsA;
		allSites[j].readCountC = countReadsC;
		allSites[j].readCountG = countReadsG;
		allSites[j].readCountT = countReadsT;
		allSites[j].readCountACGT = countReadsA + countReadsC + countReadsG + countReadsT;
		}

	free (probs);
	free (ngsEij);
	free (ampEijmat);
	free (ampEijpat);
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movl $0x0, -0x20(%rbp)
movl $0x0, -0x1c(%rbp)
movl $0x0, -0x18(%rbp)
movl $0x0, -0x14(%rbp)
movl $0x4, %edi
movl $0x8, %esi
callq 0x2190
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
jne 0x10aa4
movq 0x3d56f(%rip), %rax     # 0x4dff8
movq (%rax), %rdi
leaq 0x3113d(%rip), %rsi     # 0x41bd0
movb $0x0, %al
callq 0x21b0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2290
movl $0x4, %edi
movl $0x8, %esi
callq 0x2190
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
jne 0x10ae0
movq 0x3d533(%rip), %rax     # 0x4dff8
movq (%rax), %rdi
leaq 0x31129(%rip), %rsi     # 0x41bf8
movb $0x0, %al
callq 0x21b0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2290
movl $0x0, -0xc(%rbp)
cmpl $0x4, -0xc(%rbp)
jge 0x10b49
movl $0x4, %edi
movl $0x8, %esi
callq 0x2190
movq %rax, %rdx
movq -0x38(%rbp), %rax
movslq -0xc(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq -0x38(%rbp), %rax
movslq -0xc(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jne 0x10b3c
movq 0x3d4d7(%rip), %rax     # 0x4dff8
movq (%rax), %rdi
leaq 0x310f6(%rip), %rsi     # 0x41c21
movb $0x0, %al
callq 0x21b0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2290
jmp 0x10b3e
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x10ae7
movl $0x4, %edi
movl $0x8, %esi
callq 0x2190
movq %rax, -0x40(%rbp)
cmpq $0x0, -0x40(%rbp)
jne 0x10b85
movq 0x3d48e(%rip), %rax     # 0x4dff8
movq (%rax), %rdi
leaq 0x310d9(%rip), %rsi     # 0x41c4d
movb $0x0, %al
callq 0x21b0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2290
movl $0x0, -0xc(%rbp)
cmpl $0x4, -0xc(%rbp)
jge 0x10bee
movl $0x4, %edi
movl $0x8, %esi
callq 0x2190
movq %rax, %rdx
movq -0x40(%rbp), %rax
movslq -0xc(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq -0x40(%rbp), %rax
movslq -0xc(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jne 0x10be1
movq 0x3d432(%rip), %rax     # 0x4dff8
movq (%rax), %rdi
leaq 0x310a9(%rip), %rsi     # 0x41c79
movb $0x0, %al
callq 0x21b0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2290
jmp 0x10be3
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x10b8c
movl $0x4, %edi
movl $0x8, %esi
callq 0x2190
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
jne 0x10c2a
movq 0x3d3e9(%rip), %rax     # 0x4dff8
movq (%rax), %rdi
leaq 0x3108f(%rip), %rsi     # 0x41ca8
movb $0x0, %al
callq 0x21b0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2290
movl $0x0, -0xc(%rbp)
cmpl $0x4, -0xc(%rbp)
jge 0x10c93
movl $0x4, %edi
movl $0x8, %esi
callq 0x2190
movq %rax, %rdx
movq -0x48(%rbp), %rax
movslq -0xc(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq -0x48(%rbp), %rax
movslq -0xc(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jne 0x10c86
movq 0x3d38d(%rip), %rax     # 0x4dff8
movq (%rax), %rdi
leaq 0x3105f(%rip), %rsi     # 0x41cd4
movb $0x0, %al
callq 0x21b0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2290
jmp 0x10c88
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x10c31
movl $0x0, -0xc(%rbp)
cmpl $0x4, -0xc(%rbp)
jge 0x10d53
movl $0x0, -0x10(%rbp)
cmpl $0x4, -0x10(%rbp)
jge 0x10d43
movl -0xc(%rbp), %eax
cmpl -0x10(%rbp), %eax
jne 0x10ce4
movsd 0x2e35b(%rip), %xmm0    # 0x3f020
subsd 0x3d7ab(%rip), %xmm0    # 0x4e478
movq -0x38(%rbp), %rax
movslq -0xc(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x10(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x10d33
movslq -0xc(%rbp), %rcx
leaq 0x3d621(%rip), %rax     # 0x4e310
shlq $0x5, %rcx
addq %rcx, %rax
movslq -0x10(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movslq -0xc(%rbp), %rcx
leaq 0x3d996(%rip), %rax     # 0x4e6a0
shlq $0x5, %rcx
addq %rcx, %rax
divsd 0x18(%rax), %xmm0
mulsd 0x3d75a(%rip), %xmm0    # 0x4e478
movq -0x38(%rbp), %rax
movslq -0xc(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x10(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
jmp 0x10d35
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x10cab
jmp 0x10d45
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x10c9a
movl $0x0, 0x3f523(%rip)     # 0x50280
movl $0x0, 0x3f51d(%rip)     # 0x50284
movl $0x0, 0x3f517(%rip)     # 0x50288
movl $0x0, 0x3f511(%rip)     # 0x5028c
movl $0x0, 0x3f50b(%rip)     # 0x50290
movl $0x0, 0x3f505(%rip)     # 0x50294
movsd 0x3d6a9(%rip), %xmm0    # 0x4e440
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x10e1d
jp 0x10e1d
movsd 0x3d6e6(%rip), %xmm0    # 0x4e490
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x10dd4
jp 0x10dd4
movl $0x1, 0x3f4c1(%rip)     # 0x50280
leaq 0x3f4da(%rip), %rdi     # 0x502a0
leaq 0x30f36(%rip), %rsi     # 0x41d03
callq 0x2070
jmp 0x10e1b
cmpl $0x1, 0x3d6c5(%rip)     # 0x4e4a0
jne 0x10dfc
movl $0x1, 0x3f49d(%rip)     # 0x50284
leaq 0x3f4b2(%rip), %rdi     # 0x502a0
leaq 0x30f13(%rip), %rsi     # 0x41d08
callq 0x2070
jmp 0x10e19
movl $0x1, 0x3f482(%rip)     # 0x50288
leaq 0x3f493(%rip), %rdi     # 0x502a0
leaq 0x30ef7(%rip), %rsi     # 0x41d0b
callq 0x2070
jmp 0x10e1b
jmp 0x10e98
movsd 0x3d66b(%rip), %xmm0    # 0x4e490
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x10e4f
jp 0x10e4f
movl $0x1, 0x3f452(%rip)     # 0x5028c
leaq 0x3f45f(%rip), %rdi     # 0x502a0
leaq 0x30ec6(%rip), %rsi     # 0x41d0e
callq 0x2070
jmp 0x10e96
cmpl $0x1, 0x3d64a(%rip)     # 0x4e4a0
jne 0x10e77
movl $0x1, 0x3f42e(%rip)     # 0x50290
leaq 0x3f437(%rip), %rdi     # 0x502a0
leaq 0x30ea7(%rip), %rsi     # 0x41d17
callq 0x2070
jmp 0x10e94
movl $0x1, 0x3f413(%rip)     # 0x50294
leaq 0x3f418(%rip), %rdi     # 0x502a0
leaq 0x30e8f(%rip), %rsi     # 0x41d1e
callq 0x2070
jmp 0x10e96
jmp 0x10e98
movl $0x0, -0x10(%rbp)
movl -0x10(%rbp), %eax
cmpl 0x3d334(%rip), %eax     # 0x4e1dc
jge 0x10fee
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
movl 0x3d316(%rip), %ecx     # 0x4e1d4
addl $0x1, %ecx
cmpl %ecx, %eax
jge 0x10fde
movq 0x3e948(%rip), %rax     # 0x4f818
movslq -0xc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rdi
movslq -0x10(%rbp), %rax
shlq $0x7, %rax
addq %rax, %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x30(%rbp), %rcx
movq -0x38(%rbp), %r8
movq -0x40(%rbp), %r9
movq -0x48(%rbp), %r10
movq -0x8(%rbp), %rax
movq %r10, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x1d2a0
movq 0x3e900(%rip), %rax     # 0x4f818
movslq -0xc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x10(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
cmpl $0x0, (%rax)
jle 0x10f80
movq 0x3e8db(%rip), %rax     # 0x4f818
movslq -0xc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rdi
movslq -0x10(%rbp), %rax
shlq $0x7, %rax
addq %rax, %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x30(%rbp), %rcx
movq -0x38(%rbp), %r8
movq -0x40(%rbp), %r9
movq -0x48(%rbp), %r10
movq -0x8(%rbp), %rax
movq %r10, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x1df00
jmp 0x10fce
movq 0x3e891(%rip), %rax     # 0x4f818
movslq -0xc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x10(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
movl $0xfffffff7, 0x4c(%rax) # imm = 0xFFFFFFF7
movq 0x3e86a(%rip), %rax     # 0x4f818
movslq -0xc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x10(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
movl $0xfffffff7, 0x48(%rax) # imm = 0xFFFFFFF7
jmp 0x10fd0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x10eb5
jmp 0x10fe0
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x10e9f
movsd 0x3d4d2(%rip), %xmm0    # 0x4e4c8
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x11018
movq -0x30(%rbp), %rdi
movq -0x38(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq -0x48(%rbp), %rcx
movq -0x8(%rbp), %r8
callq 0x201f0
movl $0x0, -0x10(%rbp)
movl -0x10(%rbp), %eax
cmpl 0x3d1b4(%rip), %eax     # 0x4e1dc
jge 0x113f8
movl $0x0, -0x20(%rbp)
movl $0x0, -0x1c(%rbp)
movl $0x0, -0x18(%rbp)
movl $0x0, -0x14(%rbp)
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
movl 0x3d17a(%rip), %ecx     # 0x4e1d4
addl $0x1, %ecx
cmpl %ecx, %eax
jge 0x111fc
movq 0x3e7ac(%rip), %rax     # 0x4f818
movslq -0xc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpl $0x1, 0x8(%rax)
jne 0x11139
movq 0x3e790(%rip), %rax     # 0x4f818
movslq -0xc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x10(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
movq 0x58(%rax), %rax
movl (%rax), %eax
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq 0x3e764(%rip), %rax     # 0x4f818
movslq -0xc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x10(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
movq 0x58(%rax), %rax
movl 0x4(%rax), %eax
addl -0x18(%rbp), %eax
movl %eax, -0x18(%rbp)
movq 0x3e737(%rip), %rax     # 0x4f818
movslq -0xc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x10(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
movq 0x58(%rax), %rax
movl 0x8(%rax), %eax
addl -0x1c(%rbp), %eax
movl %eax, -0x1c(%rbp)
movq 0x3e70a(%rip), %rax     # 0x4f818
movslq -0xc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x10(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
movq 0x58(%rax), %rax
movl 0xc(%rax), %eax
addl -0x20(%rbp), %eax
movl %eax, -0x20(%rbp)
jmp 0x111ec
movq 0x3e6d8(%rip), %rax     # 0x4f818
movslq -0xc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x10(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movl (%rax), %eax
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq 0x3e6ac(%rip), %rax     # 0x4f818
movslq -0xc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x10(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movl 0x4(%rax), %eax
addl -0x18(%rbp), %eax
movl %eax, -0x18(%rbp)
movq 0x3e67f(%rip), %rax     # 0x4f818
movslq -0xc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x10(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movl 0x8(%rax), %eax
addl -0x1c(%rbp), %eax
movl %eax, -0x1c(%rbp)
movq 0x3e652(%rip), %rax     # 0x4f818
movslq -0xc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x10(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movl 0xc(%rax), %eax
addl -0x20(%rbp), %eax
movl %eax, -0x20(%rbp)
jmp 0x111ee
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x11051
movl $0x0, -0x24(%rbp)
cmpl $0x0, -0x14(%rbp)
jle 0x11252
movq 0x3e598(%rip), %rax     # 0x4f7a8
movslq -0x10(%rbp), %rcx
imulq $0x88, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x6c(%rax)
je 0x11252
movq 0x3e57d(%rip), %rax     # 0x4f7a8
movslq -0x10(%rbp), %rcx
imulq $0x88, %rcx, %rcx
addq %rcx, %rax
movq 0x70(%rax), %rax
movl -0x24(%rbp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, -0x24(%rbp)
movslq %ecx, %rcx
movl $0x0, (%rax,%rcx,4)
cmpl $0x0, -0x18(%rbp)
jle 0x112a1
movq 0x3e549(%rip), %rax     # 0x4f7a8
movslq -0x10(%rbp), %rcx
imulq $0x88, %rcx, %rcx
addq %rcx, %rax
cmpl $0x1, 0x6c(%rax)
je 0x112a1
movq 0x3e52e(%rip), %rax     # 0x4f7a8
movslq -0x10(%rbp), %rcx
imulq $0x88, %rcx, %rcx
addq %rcx, %rax
movq 0x70(%rax), %rax
movl -0x24(%rbp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, -0x24(%rbp)
movslq %ecx, %rcx
movl $0x1, (%rax,%rcx,4)
cmpl $0x0, -0x1c(%rbp)
jle 0x112f0
movq 0x3e4fa(%rip), %rax     # 0x4f7a8
movslq -0x10(%rbp), %rcx
imulq $0x88, %rcx, %rcx
addq %rcx, %rax
cmpl $0x2, 0x6c(%rax)
je 0x112f0
movq 0x3e4df(%rip), %rax     # 0x4f7a8
movslq -0x10(%rbp), %rcx
imulq $0x88, %rcx, %rcx
addq %rcx, %rax
movq 0x70(%rax), %rax
movl -0x24(%rbp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, -0x24(%rbp)
movslq %ecx, %rcx
movl $0x2, (%rax,%rcx,4)
cmpl $0x0, -0x20(%rbp)
jle 0x1133f
movq 0x3e4ab(%rip), %rax     # 0x4f7a8
movslq -0x10(%rbp), %rcx
imulq $0x88, %rcx, %rcx
addq %rcx, %rax
cmpl $0x3, 0x6c(%rax)
je 0x1133f
movq 0x3e490(%rip), %rax     # 0x4f7a8
movslq -0x10(%rbp), %rcx
imulq $0x88, %rcx, %rcx
addq %rcx, %rax
movq 0x70(%rax), %rax
movl -0x24(%rbp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, -0x24(%rbp)
movslq %ecx, %rcx
movl $0x3, (%rax,%rcx,4)
movl -0x24(%rbp), %ecx
movq 0x3e45f(%rip), %rax     # 0x4f7a8
movslq -0x10(%rbp), %rdx
imulq $0x88, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x78(%rax)
movl -0x14(%rbp), %ecx
movq 0x3e444(%rip), %rax     # 0x4f7a8
movslq -0x10(%rbp), %rdx
imulq $0x88, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x50(%rax)
movl -0x18(%rbp), %ecx
movq 0x3e429(%rip), %rax     # 0x4f7a8
movslq -0x10(%rbp), %rdx
imulq $0x88, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x54(%rax)
movl -0x1c(%rbp), %ecx
movq 0x3e40e(%rip), %rax     # 0x4f7a8
movslq -0x10(%rbp), %rdx
imulq $0x88, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x58(%rax)
movl -0x20(%rbp), %ecx
movq 0x3e3f3(%rip), %rax     # 0x4f7a8
movslq -0x10(%rbp), %rdx
imulq $0x88, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x5c(%rax)
movl -0x14(%rbp), %ecx
addl -0x18(%rbp), %ecx
addl -0x1c(%rbp), %ecx
addl -0x20(%rbp), %ecx
movq 0x3e3cf(%rip), %rax     # 0x4f7a8
movslq -0x10(%rbp), %rdx
imulq $0x88, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x60(%rax)
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x1101f
movq -0x30(%rbp), %rdi
callq 0x2030
movq -0x38(%rbp), %rdi
callq 0x2030
movq -0x40(%rbp), %rdi
callq 0x2030
movq -0x48(%rbp), %rdi
callq 0x2030
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)