// File: /workspace/github_c_makefile_star2_O0/dapogon[P]cellcoal/src/cellcoal.c
// Function: PrintFullGenotypes
static void PrintFullGenotypes (FILE *fp)
    {
    int		i, j;
		
	if (doPrintAncestors == YES && doNGS == NO)
        fprintf (fp, "%d %d\n", numCells+3, numSites);
    else
        fprintf (fp, "%d %d\n", numCells+1, numSites);
	
    if (alphabet == DNA)
        {
        for (i=0; i<numCells+1; i++)
            {
            if (i == numCells)
                fprintf (fp,"%s ", outCellName);
			else
				{
				if (doUserTree == NO)
					fprintf (fp,"%s%04d ", inCellName,i+1);
				else
					fprintf (fp,"%-*s", stringPrecision, cellNames[i]);
				}
			for (j=0; j<numSites; j++)
				{
				if (doNGS == NO)
					fprintf (fp, " %c%c", WhichNuc(data[MATERNAL][i][j]), WhichNuc(data[PATERNAL][i][j]));
				else if (cell[i].hasDoublet == NO)
					fprintf (fp, " %c%c", WhichNuc(cell[i].site[j].MLmatAllele), WhichNuc(cell[i].site[j].MLpatAllele));
				else
					fprintf (fp, " %c%c", WhichNuc(cell[i].site[j].MLmatAlleleDoublet), WhichNuc(cell[i].site[j].MLpatAlleleDoublet));
				}
			fprintf (fp,"\n");
            }
		
		/* print ancestral sequences, but not for the NGS case */
        if (doPrintAncestors == YES && doNGS == NO)
            {
            fprintf (fp,"%s ", outRootCellName);
            for (j=0; j<numSites; j++)
				fprintf (fp, " %c%c",  WhichNuc(data[MATERNAL][OUTGROUP_ROOT][j]), WhichNuc(data[PATERNAL][OUTGROUP_ROOT][j]));
            fprintf (fp,"\n%s ", inRootCellName);

            for (j=0; j<numSites; j++)
                fprintf (fp, " %c%c",  WhichNuc(data[MATERNAL][INGROUP_ROOT][j]), WhichNuc(data[PATERNAL][INGROUP_ROOT][j]));
            fprintf (fp,"\n");
            }
        }
    else // binary alphabet
        {
        for (i=0; i<numCells+1; i++)
            {
            if (i == numCells)
                fprintf (fp,"%s ", outCellName);
 			else
				{
				if (doUserTree == NO)
					fprintf (fp,"%s%04d ", inCellName,i+1);
				else
					fprintf (fp,"%-*s", stringPrecision, cellNames[i]);
				}
			for (j=0; j<numSites; j++)
                fprintf (fp, " %c%c", WhichMut(data[0][i][j]),WhichMut(data[1][i][j]));
            fprintf (fp,"\n");
			}
			
        if (doPrintAncestors == YES)
            {
            fprintf (fp,"%s ", outRootCellName);
            for (j=0; j<numSites; j++)
                fprintf (fp, " %d%d", data[MATERNAL][OUTGROUP_ROOT][j],data[PATERNAL][OUTGROUP_ROOT][j]);
            fprintf (fp,"\n%s ", inRootCellName);
            for (j=0; j<numSites; j++)
                fprintf (fp, " %d%d", data[MATERNAL][INGROUP_ROOT][j],data[PATERNAL][INGROUP_ROOT][j]);
            fprintf (fp,"\n");
            }
		}
     }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
cmpl $0x1, 0x3ac95(%rip)     # 0x4e3e8
jne 0x13781
cmpl $0x0, 0x3ac90(%rip)     # 0x4e3ec
jne 0x13781
movq -0x8(%rbp), %rdi
movl 0x3aa6c(%rip), %edx     # 0x4e1d4
addl $0x3, %edx
movl 0x3aa6b(%rip), %ecx     # 0x4e1dc
leaq 0x2ea40(%rip), %rsi     # 0x421b8
movb $0x0, %al
callq 0x21b0
jmp 0x137a2
movq -0x8(%rbp), %rdi
movl 0x3aa49(%rip), %edx     # 0x4e1d4
addl $0x1, %edx
movl 0x3aa48(%rip), %ecx     # 0x4e1dc
leaq 0x2ea1d(%rip), %rsi     # 0x421b8
movb $0x0, %al
callq 0x21b0
cmpl $0x1, 0x3aa7b(%rip)     # 0x4e224
jne 0x13b71
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
movl 0x3aa15(%rip), %ecx     # 0x4e1d4
addl $0x1, %ecx
cmpl %ecx, %eax
jge 0x13a02
movl -0xc(%rbp), %eax
cmpl 0x3aa01(%rip), %eax     # 0x4e1d4
jne 0x137f0
movq -0x8(%rbp), %rdi
leaq 0x2f5da(%rip), %rsi     # 0x42dba
leaq 0x3afc9(%rip), %rdx     # 0x4e7b0
movb $0x0, %al
callq 0x21b0
jmp 0x13843
cmpl $0x0, 0x3abcd(%rip)     # 0x4e3c4
jne 0x1381a
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %ecx
addl $0x1, %ecx
leaq 0x2e9b5(%rip), %rsi     # 0x421bf
leaq 0x3af1f(%rip), %rdx     # 0x4e730
movb $0x0, %al
callq 0x21b0
jmp 0x13841
movq -0x8(%rbp), %rdi
movl 0x3abd0(%rip), %edx     # 0x4e3f4
movq 0x3c0c5(%rip), %rax     # 0x4f8f0
movslq -0xc(%rbp), %rcx
movq (%rax,%rcx,8), %rcx
leaq 0x2f57a(%rip), %rsi     # 0x42db4
movb $0x0, %al
callq 0x21b0
jmp 0x13843
movl $0x0, -0x10(%rbp)
movl -0x10(%rbp), %eax
cmpl 0x3a989(%rip), %eax     # 0x4e1dc
jge 0x139e2
cmpl $0x0, 0x3ab8c(%rip)     # 0x4e3ec
jne 0x138ca
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movq 0x3bf2f(%rip), %rax     # 0x4f7a0
movq (%rax), %rax
movslq -0xc(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x10(%rbp), %rcx
movl (%rax,%rcx,4), %edi
callq 0x18d80
movsbl %al, %eax
movl %eax, -0x14(%rbp)
movq 0x3bf0b(%rip), %rax     # 0x4f7a0
movq 0x8(%rax), %rax
movslq -0xc(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x10(%rbp), %rcx
movl (%rax,%rcx,4), %edi
callq 0x18d80
movq -0x20(%rbp), %rdi
movl -0x14(%rbp), %edx
movsbl %al, %ecx
leaq 0x2e84c(%rip), %rsi     # 0x4210a
movb $0x0, %al
callq 0x21b0
jmp 0x139d2
movq 0x3bf47(%rip), %rax     # 0x4f818
movslq -0xc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpl $0x0, 0x8(%rax)
jne 0x1395a
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
movq 0x3bf27(%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 0x48(%rax), %edi
callq 0x18d80
movsbl %al, %eax
movl %eax, -0x24(%rbp)
movq 0x3bef9(%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 0x4c(%rax), %edi
callq 0x18d80
movq -0x30(%rbp), %rdi
movl -0x24(%rbp), %edx
movsbl %al, %ecx
leaq 0x2e7b9(%rip), %rsi     # 0x4210a
movb $0x0, %al
callq 0x21b0
jmp 0x139d0
movq -0x8(%rbp), %rax
movq %rax, -0x40(%rbp)
movq 0x3beaf(%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 0x78(%rax), %edi
callq 0x18d80
movsbl %al, %eax
movl %eax, -0x34(%rbp)
movq 0x3be81(%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 0x7c(%rax), %edi
callq 0x18d80
movq -0x40(%rbp), %rdi
movl -0x34(%rbp), %edx
movsbl %al, %ecx
leaq 0x2e741(%rip), %rsi     # 0x4210a
movb $0x0, %al
callq 0x21b0
jmp 0x139d2
jmp 0x139d4
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x1384a
movq -0x8(%rbp), %rdi
leaq 0x33648(%rip), %rsi     # 0x47035
movb $0x0, %al
callq 0x21b0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x137b6
cmpl $0x1, 0x3a9df(%rip)     # 0x4e3e8
jne 0x13b6c
cmpl $0x0, 0x3a9d6(%rip)     # 0x4e3ec
jne 0x13b6c
movq -0x8(%rbp), %rdi
leaq 0x2f393(%rip), %rsi     # 0x42dba
leaq 0x3ae82(%rip), %rdx     # 0x4e8b0
movb $0x0, %al
callq 0x21b0
movl $0x0, -0x10(%rbp)
movl -0x10(%rbp), %eax
cmpl 0x3a797(%rip), %eax     # 0x4e1dc
jge 0x13abb
movq -0x8(%rbp), %rax
movq %rax, -0x50(%rbp)
movq 0x3bd4a(%rip), %rax     # 0x4f7a0
movq (%rax), %rax
movslq 0x3bce0(%rip), %rcx     # 0x4f740
movq (%rax,%rcx,8), %rax
movslq -0x10(%rbp), %rcx
movl (%rax,%rcx,4), %edi
callq 0x18d80
movsbl %al, %eax
movl %eax, -0x44(%rbp)
movq 0x3bd23(%rip), %rax     # 0x4f7a0
movq 0x8(%rax), %rax
movslq 0x3bcb8(%rip), %rcx     # 0x4f740
movq (%rax,%rcx,8), %rax
movslq -0x10(%rbp), %rcx
movl (%rax,%rcx,4), %edi
callq 0x18d80
movq -0x50(%rbp), %rdi
movl -0x44(%rbp), %edx
movsbl %al, %ecx
leaq 0x2e661(%rip), %rsi     # 0x4210a
movb $0x0, %al
callq 0x21b0
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x13a3c
movq -0x8(%rbp), %rdi
leaq 0x2f2f3(%rip), %rsi     # 0x42db9
leaq 0x3ad63(%rip), %rdx     # 0x4e830
movb $0x0, %al
callq 0x21b0
movl $0x0, -0x10(%rbp)
movl -0x10(%rbp), %eax
cmpl 0x3a6f8(%rip), %eax     # 0x4e1dc
jge 0x13b5a
movq -0x8(%rbp), %rax
movq %rax, -0x60(%rbp)
movq 0x3bcab(%rip), %rax     # 0x4f7a0
movq (%rax), %rax
movslq 0x3bc45(%rip), %rcx     # 0x4f744
movq (%rax,%rcx,8), %rax
movslq -0x10(%rbp), %rcx
movl (%rax,%rcx,4), %edi
callq 0x18d80
movsbl %al, %eax
movl %eax, -0x54(%rbp)
movq 0x3bc84(%rip), %rax     # 0x4f7a0
movq 0x8(%rax), %rax
movslq 0x3bc1d(%rip), %rcx     # 0x4f744
movq (%rax,%rcx,8), %rax
movslq -0x10(%rbp), %rcx
movl (%rax,%rcx,4), %edi
callq 0x18d80
movq -0x60(%rbp), %rdi
movl -0x54(%rbp), %edx
movsbl %al, %ecx
leaq 0x2e5c2(%rip), %rsi     # 0x4210a
movb $0x0, %al
callq 0x21b0
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x13adb
movq -0x8(%rbp), %rdi
leaq 0x334d0(%rip), %rsi     # 0x47035
movb $0x0, %al
callq 0x21b0
jmp 0x13dc8
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
movl 0x3a653(%rip), %ecx     # 0x4e1d4
addl $0x1, %ecx
cmpl %ecx, %eax
jge 0x13ca5
movl -0xc(%rbp), %eax
cmpl 0x3a63f(%rip), %eax     # 0x4e1d4
jne 0x13bb2
movq -0x8(%rbp), %rdi
leaq 0x2f218(%rip), %rsi     # 0x42dba
leaq 0x3ac07(%rip), %rdx     # 0x4e7b0
movb $0x0, %al
callq 0x21b0
jmp 0x13c05
cmpl $0x0, 0x3a80b(%rip)     # 0x4e3c4
jne 0x13bdc
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %ecx
addl $0x1, %ecx
leaq 0x2e5f3(%rip), %rsi     # 0x421bf
leaq 0x3ab5d(%rip), %rdx     # 0x4e730
movb $0x0, %al
callq 0x21b0
jmp 0x13c03
movq -0x8(%rbp), %rdi
movl 0x3a80e(%rip), %edx     # 0x4e3f4
movq 0x3bd03(%rip), %rax     # 0x4f8f0
movslq -0xc(%rbp), %rcx
movq (%rax,%rcx,8), %rcx
leaq 0x2f1b8(%rip), %rsi     # 0x42db4
movb $0x0, %al
callq 0x21b0
jmp 0x13c05
movl $0x0, -0x10(%rbp)
movl -0x10(%rbp), %eax
cmpl 0x3a5c7(%rip), %eax     # 0x4e1dc
jge 0x13c85
movq -0x8(%rbp), %rax
movq %rax, -0x70(%rbp)
movq 0x3bb7a(%rip), %rax     # 0x4f7a0
movq (%rax), %rax
movslq -0xc(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x10(%rbp), %rcx
movl (%rax,%rcx,4), %edi
callq 0x21ed0
movsbl %al, %eax
movl %eax, -0x64(%rbp)
movq 0x3bb56(%rip), %rax     # 0x4f7a0
movq 0x8(%rax), %rax
movslq -0xc(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x10(%rbp), %rcx
movl (%rax,%rcx,4), %edi
callq 0x21ed0
movq -0x70(%rbp), %rdi
movl -0x64(%rbp), %edx
movsbl %al, %ecx
leaq 0x2e497(%rip), %rsi     # 0x4210a
movb $0x0, %al
callq 0x21b0
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x13c0c
movq -0x8(%rbp), %rdi
leaq 0x333a5(%rip), %rsi     # 0x47035
movb $0x0, %al
callq 0x21b0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x13b78
cmpl $0x1, 0x3a73c(%rip)     # 0x4e3e8
jne 0x13dc6
movq -0x8(%rbp), %rdi
leaq 0x2f0fd(%rip), %rsi     # 0x42dba
leaq 0x3abec(%rip), %rdx     # 0x4e8b0
movb $0x0, %al
callq 0x21b0
movl $0x0, -0x10(%rbp)
movl -0x10(%rbp), %eax
cmpl 0x3a501(%rip), %eax     # 0x4e1dc
jge 0x13d33
movq -0x8(%rbp), %rdi
movq 0x3bab8(%rip), %rax     # 0x4f7a0
movq (%rax), %rax
movslq 0x3ba4e(%rip), %rcx     # 0x4f740
movq (%rax,%rcx,8), %rax
movslq -0x10(%rbp), %rcx
movl (%rax,%rcx,4), %edx
movq 0x3ba9c(%rip), %rax     # 0x4f7a0
movq 0x8(%rax), %rax
movslq 0x3ba31(%rip), %rcx     # 0x4f740
movq (%rax,%rcx,8), %rax
movslq -0x10(%rbp), %rcx
movl (%rax,%rcx,4), %ecx
leaq 0x2f09d(%rip), %rsi     # 0x42dbe
movb $0x0, %al
callq 0x21b0
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x13cd2
movq -0x8(%rbp), %rdi
leaq 0x2f07b(%rip), %rsi     # 0x42db9
leaq 0x3aaeb(%rip), %rdx     # 0x4e830
movb $0x0, %al
callq 0x21b0
movl $0x0, -0x10(%rbp)
movl -0x10(%rbp), %eax
cmpl 0x3a480(%rip), %eax     # 0x4e1dc
jge 0x13db4
movq -0x8(%rbp), %rdi
movq 0x3ba37(%rip), %rax     # 0x4f7a0
movq (%rax), %rax
movslq 0x3b9d1(%rip), %rcx     # 0x4f744
movq (%rax,%rcx,8), %rax
movslq -0x10(%rbp), %rcx
movl (%rax,%rcx,4), %edx
movq 0x3ba1b(%rip), %rax     # 0x4f7a0
movq 0x8(%rax), %rax
movslq 0x3b9b4(%rip), %rcx     # 0x4f744
movq (%rax,%rcx,8), %rax
movslq -0x10(%rbp), %rcx
movl (%rax,%rcx,4), %ecx
leaq 0x2f01c(%rip), %rsi     # 0x42dbe
movb $0x0, %al
callq 0x21b0
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x13d53
movq -0x8(%rbp), %rdi
leaq 0x33276(%rip), %rsi     # 0x47035
movb $0x0, %al
callq 0x21b0
jmp 0x13dc8
addq $0x70, %rsp
popq %rbp
retq
nop