// File: /workspace/github_c_makefile_star2_O0/dapogon[P]cellcoal/src/cellcoal.c
// Function: PrintUsage
void PrintUsage(FILE *fp)
{
	PrintHeader(fp);
    fprintf (fp, "\n%s generates a coalescent tree and simulates a sample of diploid genomes from somatic cells (no recombination), together with a (healthy) cell as outgroup.", PROGRAM_NAME);
	fprintf (fp, "\n\nUsage: %s [-FTXT -n# -s# -l# -e# -g# -h# (# # #) -k# -q# -i# -b# -c# -u# -d# -H# -j# -S# (# #) -m# -p# -w# -f# # # # -t# -a# -r# # # # # # # # # # # # # # # # -G# -C# -V# -I# -D# -P# -Q# -R# -A# # # -E# -B# -X# # # # # # # # # # # # # # # # -1 -2 -3 -4 -5 -6 -7 -8 -9 -Y -v -x -oTXT -TTXT -UTXT -W# -y# -## -?]", PROGRAM_NAME_LOWERCASE);
	fprintf (fp,"\n");

	fprintf (fp,"\n-F: user-defined parameter file (e.g. -Fmyparameters)");
	fprintf (fp,"\n-n: number of replicates (e.g. -n1000)");
    fprintf (fp,"\n-s: sample size (# cells) (e.g. -s8)");
    fprintf (fp,"\n-l: number of sites (e.g. -l500)");
    fprintf (fp,"\n-e: effective population size (e.g. -e1000)");
	fprintf (fp,"\n-g: exponential growth rate (e.g. -g1e-5)");
	fprintf (fp,"\n-K: cell birth rate (e.g. -K1)");
	fprintf (fp,"\n-L: cell death rate (e.g. -L0.001)");
   	fprintf (fp,"\n-h: number of demographic periods followed by effective population size at the beginning and at the end of the period, ");
    fprintf (fp, "\n    and the duration of the period in generations. (e.g. -d1 100 200 30000) (e.g. -d2 100 100 40000 1000 2000 20000)");
	fprintf (fp,"\n-k: transforming branch length (e.g. -u1e-2)");
    fprintf (fp,"\n-q: healthy tip branch length (e.g. -q1e-6)");
    fprintf (fp,"\n-i: shape of the gamma distribution for rate variation among lineages (e.g. -i0.5)");
	fprintf (fp,"\n-N: number of tree rate switches followed by the rate multipliers  (e.g. -N2 10 0.2)");
	fprintf (fp,"\n-b: alphabet [0:binary 1:DNA] (e.g. -b0)");
	fprintf (fp,"\n-c: germline SNP rate (e.g. -c1e-5)");
	fprintf (fp,"\n-u: somatic mutation rate (e.g. -u1e-6)");
	fprintf (fp,"\n-d: deletion rate (e.g. -d1e-5)");
	fprintf (fp,"\n-H: CNLOH rate (e.g. -H1e-5)");
    fprintf (fp,"\n-j: fixed number of mutations (e.g. -j100)");
    fprintf (fp,"\n-S: trinucleotide genetic signatures (e.g. -S2 3 0.8 13 0.2)");
    fprintf (fp,"\n-m: alternative mutation model [0:ISMhap 1:Mk2 2:finiteDNA] [default mutation model is ISM diploid] (e.g. -m2)");
    fprintf (fp,"\n-p: proportion of alternative model sites (e.g. -p0.1)");
    fprintf (fp,"\n-w: alternative/default model relative mutation rate (e.g. -w1)");
	fprintf (fp,"\n-f: nucleotide base frequencies (e.g. -f0.4 0.3 0.2 0.1)");
	fprintf (fp,"\n-t: transition/transversion ratio (e.g. -t2)");
    fprintf (fp,"\n-a: shape of the gamma distribution for rate variation among sites (e.g. -a0.2)");
	fprintf (fp,"\n-r: mutation matrix ACGT x ACGT (e.g. -r0 1 2 3 1 0 4 5 2 4 0 1 3 5 1 0)");

	fprintf (fp,"\n-D: allelic dropout (e.g. -D0.1)");
	fprintf (fp,"\n-P: allelic dropout variation among cells (e.g. -P1)");
	fprintf (fp,"\n-Q: allelic dropout variation among sites (e.g. -Q1)");
	fprintf (fp,"\n-I: maternal allelic imbalance (e.g. -I0.5)");
	fprintf (fp,"\n-A: amplification error (e.g. -A0.1 0.01 0)");
	fprintf (fp,"\n-B: doublet rate per cell (e.g. -B0.1)");

	fprintf (fp,"\n-G: genotyping error [no read counts] (e.g. -G0.01)");

	fprintf (fp,"\n-C: sequencing coverage [read counts] (e.g. -C60)");
	fprintf (fp,"\n-V: sequencing coverage overdispersion (e.g. -V5)");
	fprintf (fp,"\n-R: ADO/deletion haploid coverage reduction (e.g. -R0.5)");
	fprintf (fp,"\n-E: sequencing error (e.g. -E0.001)");
	fprintf (fp,"\n-X: error matrix ACGT x ACGT (e.g. -X0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0)");

    fprintf (fp,"\n-1: print SNV genotypes to a file (e.g. -1)");
    fprintf (fp,"\n-2: print SNV haplotypes to a file (e.g. -2)");
    fprintf (fp,"\n-3: print full genotypes to a file (e.g. -3)");
    fprintf (fp,"\n-4: print full haplotypes to a file (e.g. -4)");
    fprintf (fp,"\n-5: print ancestral genotypes (e.g. -5)");
    fprintf (fp,"\n-6: print trees to a file (e.g. -6)");
    fprintf (fp,"\n-7: print times to a file (e.g. -7)");
    fprintf (fp,"\n-8: print read counts in CATG format (e.g. -8)");
	fprintf (fp,"\n-9: print read counts in PILEUP format (e.g. -9)");
    fprintf (fp,"\n-Y: print true SNV haplotypes to a file (e.g. -Y)");
	fprintf (fp,"\n-v: print replicates in individual folders (e.g. -v)");
	fprintf (fp,"\n-x: print consensus/IUPAC haplotypes (e.g. -x)");
	fprintf (fp,"\n-o: results folder name (e.g. -oresultsFolder)");
	fprintf (fp,"\n-T: user-tree file (e.g. -Tusertree)");
	fprintf (fp,"\n-U: user genome (e.g. -Uusergenome)");
	fprintf (fp,"\n-W: use tumor nomenclature for cells (e.g. -W)");
	fprintf (fp,"\n-y: noisy (e.g. -y1)");
    fprintf (fp,"\n      = 0: does not print anything");
    fprintf (fp,"\n      = 1:  + simulation summary");
    fprintf (fp,"\n      = 2:  + replicate information");
    fprintf (fp,"\n      = 3: + calculation status and event information");
    fprintf (fp,"\n-#: seed (e.g. -#37864287)");
    fprintf (fp,"\n-?: Print help");
	
    fprintf (fp,"\n\nDefaults: ");
    PrintDefaults (fp);
	fprintf (fp, "\n--------------------------------------------------------------------------------------------------------\n");
	fprintf (fp,"\n...now exiting to system...\n\n");
    exit(-1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa430
movq -0x8(%rbp), %rdi
leaq 0x35b0e(%rip), %rsi     # 0x3fa4e
leaq 0x35ba4(%rip), %rdx     # 0x3faeb
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35b9b(%rip), %rsi     # 0x3faf4
leaq 0x35ccd(%rip), %rdx     # 0x3fc2d
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x3d0c3(%rip), %rsi     # 0x47035
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35cb2(%rip), %rsi     # 0x3fc36
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35cd7(%rip), %rsi     # 0x3fc6d
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35ced(%rip), %rsi     # 0x3fc95
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35d01(%rip), %rsi     # 0x3fcbb
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35d11(%rip), %rsi     # 0x3fcdd
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35d2c(%rip), %rsi     # 0x3fd0a
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35d45(%rip), %rsi     # 0x3fd35
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35d53(%rip), %rsi     # 0x3fd55
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35d65(%rip), %rsi     # 0x3fd79
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35dcc(%rip), %rsi     # 0x3fdf2
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35e30(%rip), %rsi     # 0x3fe68
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35e4c(%rip), %rsi     # 0x3fe96
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35e67(%rip), %rsi     # 0x3fec3
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35ea9(%rip), %rsi     # 0x3ff17
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35eed(%rip), %rsi     # 0x3ff6d
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35f05(%rip), %rsi     # 0x3ff97
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35f18(%rip), %rsi     # 0x3ffbc
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35f2f(%rip), %rsi     # 0x3ffe5
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35f3e(%rip), %rsi     # 0x40006
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35f4a(%rip), %rsi     # 0x40024
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35f64(%rip), %rsi     # 0x40050
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35f90(%rip), %rsi     # 0x4008e
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x35fee(%rip), %rsi     # 0x400fe
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x36014(%rip), %rsi     # 0x40136
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x36043(%rip), %rsi     # 0x40177
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x3606b(%rip), %rsi     # 0x401b1
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x36087(%rip), %rsi     # 0x401df
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x360c6(%rip), %rsi     # 0x40230
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x360fe(%rip), %rsi     # 0x4027a
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x3610e(%rip), %rsi     # 0x4029c
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x36132(%rip), %rsi     # 0x402d2
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x36156(%rip), %rsi     # 0x40308
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x36171(%rip), %rsi     # 0x40335
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x3618c(%rip), %rsi     # 0x40362
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x361a2(%rip), %rsi     # 0x4038a
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x361c5(%rip), %rsi     # 0x403bf
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x361e6(%rip), %rsi     # 0x403f2
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x36207(%rip), %rsi     # 0x40425
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x3622f(%rip), %rsi     # 0x4045f
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x36242(%rip), %rsi     # 0x40484
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x36277(%rip), %rsi     # 0x404cb
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x36292(%rip), %rsi     # 0x404f8
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x362ae(%rip), %rsi     # 0x40526
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x362ca(%rip), %rsi     # 0x40554
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x362e7(%rip), %rsi     # 0x40583
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x362fe(%rip), %rsi     # 0x405ac
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x36311(%rip), %rsi     # 0x405d1
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x36324(%rip), %rsi     # 0x405f6
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x36342(%rip), %rsi     # 0x40626
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x36362(%rip), %rsi     # 0x40658
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x36383(%rip), %rsi     # 0x4068b
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x363a7(%rip), %rsi     # 0x406c1
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x363c5(%rip), %rsi     # 0x406f1
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x363e3(%rip), %rsi     # 0x40721
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x363f7(%rip), %rsi     # 0x40747
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x3640a(%rip), %rsi     # 0x4076c
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x36428(%rip), %rsi     # 0x4079c
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x3642c(%rip), %rsi     # 0x407b2
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x3643e(%rip), %rsi     # 0x407d6
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x3644e(%rip), %rsi     # 0x407f8
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x36461(%rip), %rsi     # 0x4081d
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x36486(%rip), %rsi     # 0x40854
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x36490(%rip), %rsi     # 0x40870
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x3648e(%rip), %rsi     # 0x40880
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
callq 0x18de0
movq -0x8(%rbp), %rdi
leaq 0x36480(%rip), %rsi     # 0x4088d
movb $0x0, %al
callq 0x21b0
movq -0x8(%rbp), %rdi
leaq 0x364d9(%rip), %rsi     # 0x408f8
movb $0x0, %al
callq 0x21b0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2290