// File: /workspace/github_c_makefile_star2_O0/dapogon[P]cellcoal/src/cellcoal.c
// Function: AllocateCellStructure
void AllocateCellStructure(void)
	{
	int i, j, k;
	
	cell = (CellStr*) calloc(numCells+1, sizeof(CellStr));
	if (!cell)
		{
		fprintf (stderr, "Could not allocate cell (%ld)\n", (numCells+1) * sizeof(CellStr));
		exit (-1);
		}

	for (i=0; i<numCells+1; i++)
		{
		cell[i].site  = (CellSiteStr*) calloc (numSites, sizeof(CellSiteStr));
		if (!cell[i].site)
			{
			fprintf (stderr, "Could not allocate the cell[%d].site structure\n", i);
			exit (-1);
			}

		if (doNGS == YES)
			{
			for (j=0; j<numSites; j++)
				{
				cell[i].site[j].readCount = (int*) calloc (4, sizeof(int));
				if (!cell[i].site[j].readCount)
					{
					fprintf (stderr, "Could not allocate the cell[%d].site[%d].readCount structure\n", i, j);
					exit (-1);
					}
				
				cell[i].site[j].readCountDoublet = (int*) calloc (4, sizeof(int));
				if (!cell[i].site[j].readCountDoublet)
					{
					fprintf (stderr, "Could not allocate the cell[%d].site[%d].readCountDoublet structure\n", i, j);
					exit (-1);
					}
				
				cell[i].site[j].logGL = (double**) calloc (4, sizeof(double*));
				if (!cell[i].site[j].logGL)
					{
					fprintf (stderr, "Could not allocate the cell[%d].site[%d].logGL structure\n", i, j);
					exit (-1);
					}
				for (k=0; k<4; k++)
					{
					cell[i].site[j].logGL[k] = (double*) calloc (4, sizeof(double));
					if (! cell[i].site[j].logGL[k] )
						{
						fprintf (stderr, "Could not allocate the cell[%d].site[%d].logGL[%d] structure\n", i,j,k);
						exit (-1);
						}
					}
				
				cell[i].site[j].normLogGL = (double**) calloc (4, sizeof(double*));
				if (!cell[i].site[j].normLogGL)
					{
					fprintf (stderr, "Could not allocate the cell[%d].site[%d].normLogGL structure\n", i, j);
					exit (-1);
					}
				for (k=0; k<4; k++)
					{
					cell[i].site[j].normLogGL[k] = (double*) calloc (4, sizeof(double));
					if (!cell[i].site[j].normLogGL[k] )
						{
						fprintf (stderr, "Could not allocate the cell[%d].site[%d].normLogGL[%d] structure\n", i,j,k);
						exit (-1);
						}
					}
				
				cell[i].site[j].logGLdoublet = (double**) calloc (4, sizeof(double*));
				if (!cell[i].site[j].logGLdoublet)
					{
					fprintf (stderr, "Could not allocate the cell[%d].site[%d].logGLdoublet structure\n", i, j);
					exit (-1);
					}
				for (k=0; k<4; k++)
					{
					cell[i].site[j].logGLdoublet[k] = (double*) calloc (4, sizeof(double));
					if (!cell[i].site[j].logGLdoublet[k] )
						{
						fprintf (stderr, "Could not allocate the cell[%d].site[%d].logGLdoublet[%d] structure\n", i,j,k);
						exit (-1);
						}
					}
				
				cell[i].site[j].normLogGLdoublet = (double**) calloc (4, sizeof(double*));
				if (!cell[i].site[j].normLogGLdoublet)
					{
					fprintf (stderr, "Could not allocate the cell[%d].site[%d].normLogGLdoublet structure\n", i, j);
					exit (-1);
					}
				for (k=0; k<4; k++)
					{
					cell[i].site[j].normLogGLdoublet[k] = (double*) calloc (4, sizeof(double));
					if (!cell[i].site[j].normLogGLdoublet[k] )
						{
						fprintf (stderr, "Could not allocate the cell[%d].site[%d].normLogGLdoublet[%d] structure\n", i,j,k);
						exit (-1);
						}
					}
				}
			}
		}
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl 0x40416(%rip), %eax     # 0x4e1d4
addl $0x1, %eax
movslq %eax, %rdi
movl $0x10, %esi
callq 0x2190
movq %rax, 0x41a43(%rip)     # 0x4f818
cmpq $0x0, 0x41a3b(%rip)     # 0x4f818
jne 0xde11
movq 0x40212(%rip), %rax     # 0x4dff8
movq (%rax), %rdi
movl 0x403e5(%rip), %eax     # 0x4e1d4
addl $0x1, %eax
movslq %eax, %rdx
shlq $0x4, %rdx
leaq 0x33af2(%rip), %rsi     # 0x418f2
movb $0x0, %al
callq 0x21b0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2290
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
movl 0x403b3(%rip), %ecx     # 0x4e1d4
addl $0x1, %ecx
cmpl %ecx, %eax
jge 0xe4d9
movslq 0x403a9(%rip), %rdi     # 0x4e1dc
movl $0x80, %esi
callq 0x2190
movq %rax, %rcx
movq 0x419d1(%rip), %rax     # 0x4f818
movslq -0x4(%rbp), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
movq 0x419bc(%rip), %rax     # 0x4f818
movslq -0x4(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
jne 0xde92
movq 0x40184(%rip), %rax     # 0x4dff8
movq (%rax), %rdi
movl -0x4(%rbp), %edx
leaq 0x33a90(%rip), %rsi     # 0x41911
movb $0x0, %al
callq 0x21b0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2290
cmpl $0x1, 0x40553(%rip)     # 0x4e3ec
jne 0xe4c9
movl $0x0, -0x8(%rbp)
movl -0x8(%rbp), %eax
cmpl 0x4032d(%rip), %eax     # 0x4e1dc
jge 0xe4c7
movl $0x4, %esi
movq %rsi, %rdi
callq 0x2190
movq %rax, %rcx
movq 0x4194c(%rip), %rax     # 0x4f818
movslq -0x4(%rbp), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq (%rax), %rax
movslq -0x8(%rbp), %rdx
shlq $0x7, %rdx
addq %rdx, %rax
movq %rcx, 0x8(%rax)
movq 0x41928(%rip), %rax     # 0x4f818
movslq -0x4(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x8(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
cmpq $0x0, 0x8(%rax)
jne 0xdf38
movq 0x400e1(%rip), %rax     # 0x4dff8
movq (%rax), %rdi
movl -0x4(%rbp), %edx
movl -0x8(%rbp), %ecx
leaq 0x33a1a(%rip), %rsi     # 0x41941
movb $0x0, %al
callq 0x21b0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2290
movl $0x4, %esi
movq %rsi, %rdi
callq 0x2190
movq %rax, %rcx
movq 0x418c9(%rip), %rax     # 0x4f818
movslq -0x4(%rbp), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq (%rax), %rax
movslq -0x8(%rbp), %rdx
shlq $0x7, %rdx
addq %rdx, %rax
movq %rcx, 0x58(%rax)
movq 0x418a5(%rip), %rax     # 0x4f818
movslq -0x4(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x8(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
cmpq $0x0, 0x58(%rax)
jne 0xdfbb
movq 0x4005e(%rip), %rax     # 0x4dff8
movq (%rax), %rdi
movl -0x4(%rbp), %edx
movl -0x8(%rbp), %ecx
leaq 0x339d5(%rip), %rsi     # 0x4197f
movb $0x0, %al
callq 0x21b0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2290
movl $0x4, %edi
movl $0x8, %esi
callq 0x2190
movq %rax, %rcx
movq 0x41844(%rip), %rax     # 0x4f818
movslq -0x4(%rbp), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq (%rax), %rax
movslq -0x8(%rbp), %rdx
shlq $0x7, %rdx
addq %rdx, %rax
movq %rcx, 0x38(%rax)
movq 0x41820(%rip), %rax     # 0x4f818
movslq -0x4(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x8(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
cmpq $0x0, 0x38(%rax)
jne 0xe040
movq 0x3ffd9(%rip), %rax     # 0x4dff8
movq (%rax), %rdi
movl -0x4(%rbp), %edx
movl -0x8(%rbp), %ecx
leaq 0x33995(%rip), %rsi     # 0x419c4
movb $0x0, %al
callq 0x21b0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2290
movl $0x0, -0xc(%rbp)
cmpl $0x4, -0xc(%rbp)
jge 0xe0fa
movl $0x4, %edi
movl $0x8, %esi
callq 0x2190
movq %rax, %rdx
movq 0x417ae(%rip), %rax     # 0x4f818
movslq -0x4(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x8(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
movq 0x38(%rax), %rax
movslq -0xc(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x41782(%rip), %rax     # 0x4f818
movslq -0x4(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x8(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
movq 0x38(%rax), %rax
movslq -0xc(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jne 0xe0ea
movq 0x3ff33(%rip), %rax     # 0x4dff8
movq (%rax), %rdi
movl -0x4(%rbp), %edx
movl -0x8(%rbp), %ecx
movl -0xc(%rbp), %r8d
leaq 0x33925(%rip), %rsi     # 0x419fe
movb $0x0, %al
callq 0x21b0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2290
jmp 0xe0ec
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0xe047
movl $0x4, %edi
movl $0x8, %esi
callq 0x2190
movq %rax, %rcx
movq 0x41705(%rip), %rax     # 0x4f818
movslq -0x4(%rbp), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq (%rax), %rax
movslq -0x8(%rbp), %rdx
shlq $0x7, %rdx
addq %rdx, %rax
movq %rcx, 0x40(%rax)
movq 0x416e1(%rip), %rax     # 0x4f818
movslq -0x4(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x8(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
cmpq $0x0, 0x40(%rax)
jne 0xe17f
movq 0x3fe9a(%rip), %rax     # 0x4dff8
movq (%rax), %rdi
movl -0x4(%rbp), %edx
movl -0x8(%rbp), %ecx
leaq 0x338ce(%rip), %rsi     # 0x41a3c
movb $0x0, %al
callq 0x21b0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2290
movl $0x0, -0xc(%rbp)
cmpl $0x4, -0xc(%rbp)
jge 0xe239
movl $0x4, %edi
movl $0x8, %esi
callq 0x2190
movq %rax, %rdx
movq 0x4166f(%rip), %rax     # 0x4f818
movslq -0x4(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x8(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
movq 0x40(%rax), %rax
movslq -0xc(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x41643(%rip), %rax     # 0x4f818
movslq -0x4(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x8(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
movq 0x40(%rax), %rax
movslq -0xc(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jne 0xe229
movq 0x3fdf4(%rip), %rax     # 0x4dff8
movq (%rax), %rdi
movl -0x4(%rbp), %edx
movl -0x8(%rbp), %ecx
movl -0xc(%rbp), %r8d
leaq 0x33862(%rip), %rsi     # 0x41a7a
movb $0x0, %al
callq 0x21b0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2290
jmp 0xe22b
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0xe186
movl $0x4, %edi
movl $0x8, %esi
callq 0x2190
movq %rax, %rcx
movq 0x415c6(%rip), %rax     # 0x4f818
movslq -0x4(%rbp), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq (%rax), %rax
movslq -0x8(%rbp), %rdx
shlq $0x7, %rdx
addq %rdx, %rax
movq %rcx, 0x68(%rax)
movq 0x415a2(%rip), %rax     # 0x4f818
movslq -0x4(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x8(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
cmpq $0x0, 0x68(%rax)
jne 0xe2be
movq 0x3fd5b(%rip), %rax     # 0x4dff8
movq (%rax), %rdi
movl -0x4(%rbp), %edx
movl -0x8(%rbp), %ecx
leaq 0x3380f(%rip), %rsi     # 0x41abc
movb $0x0, %al
callq 0x21b0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2290
movl $0x0, -0xc(%rbp)
cmpl $0x4, -0xc(%rbp)
jge 0xe378
movl $0x4, %edi
movl $0x8, %esi
callq 0x2190
movq %rax, %rdx
movq 0x41530(%rip), %rax     # 0x4f818
movslq -0x4(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x8(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
movq 0x68(%rax), %rax
movslq -0xc(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x41504(%rip), %rax     # 0x4f818
movslq -0x4(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x8(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
movq 0x68(%rax), %rax
movslq -0xc(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jne 0xe368
movq 0x3fcb5(%rip), %rax     # 0x4dff8
movq (%rax), %rdi
movl -0x4(%rbp), %edx
movl -0x8(%rbp), %ecx
movl -0xc(%rbp), %r8d
leaq 0x337a6(%rip), %rsi     # 0x41afd
movb $0x0, %al
callq 0x21b0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2290
jmp 0xe36a
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0xe2c5
movl $0x4, %edi
movl $0x8, %esi
callq 0x2190
movq %rax, %rcx
movq 0x41487(%rip), %rax     # 0x4f818
movslq -0x4(%rbp), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq (%rax), %rax
movslq -0x8(%rbp), %rdx
shlq $0x7, %rdx
addq %rdx, %rax
movq %rcx, 0x70(%rax)
movq 0x41463(%rip), %rax     # 0x4f818
movslq -0x4(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x8(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
cmpq $0x0, 0x70(%rax)
jne 0xe3fd
movq 0x3fc1c(%rip), %rax     # 0x4dff8
movq (%rax), %rdi
movl -0x4(%rbp), %edx
movl -0x8(%rbp), %ecx
leaq 0x33756(%rip), %rsi     # 0x41b42
movb $0x0, %al
callq 0x21b0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2290
movl $0x0, -0xc(%rbp)
cmpl $0x4, -0xc(%rbp)
jge 0xe4b7
movl $0x4, %edi
movl $0x8, %esi
callq 0x2190
movq %rax, %rdx
movq 0x413f1(%rip), %rax     # 0x4f818
movslq -0x4(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x8(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
movq 0x70(%rax), %rax
movslq -0xc(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x413c5(%rip), %rax     # 0x4f818
movslq -0x4(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movslq -0x8(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
movq 0x70(%rax), %rax
movslq -0xc(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jne 0xe4a7
movq 0x3fb76(%rip), %rax     # 0x4dff8
movq (%rax), %rdi
movl -0x4(%rbp), %edx
movl -0x8(%rbp), %ecx
movl -0xc(%rbp), %r8d
leaq 0x336f1(%rip), %rsi     # 0x41b87
movb $0x0, %al
callq 0x21b0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2290
jmp 0xe4a9
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0xe404
jmp 0xe4b9
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0xdea6
jmp 0xe4c9
jmp 0xe4cb
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0xde18
addq $0x10, %rsp
popq %rbp
retq
nop