// File: gchen98[P]macs/simulator.cpp
// Function: Simulator::printUsage()
void Simulator::printUsage() {
    cout<<"Usage: <samplesize> <region in base pairs> [options]"<<endl;
    cout<<"Options: "<<endl;
    cout<<"-s <random seed>"<<endl;
    cout<<"-d enable debugging messages"<<endl;
    cout<<"-i <iterations>"<<endl;
    cout<<"-h <history> number of previous base pairs to retain"<<endl;
    cout<<"-t <mu> (mutation rate per site per 4N generations)"<<endl;
    cout<<"-F <inputfilename> [0|1] (Tab delimited frequency distribution "<<
    "file where first column indicate range of SNP allele frequencies "<<
    "from previous row to current row and last column is desired bin "<<
    "frequency. Second parameter is 1 if SNPs with derived allele freq > "<<
    "1.0 should have alleles flipped, 0 otherwise.)"<<endl;
    cout<<"-r <r> (recombination rate per site per 4N generations)"<<endl;
    cout<<"-c <f> <lambda> (f = ratio of gene conversion rate to crossover "<<
    "rate. tracklen lambda is mean length of tract in base pairs.)"<<endl;
    cout<<"-R <inputfilename> (Tab delimited file where first "<<
    "two columns indicate range of base pair positions scaled to the "<<
    "unit interval and last column is ratio with respect to base line "<<
    "recombination rate.)"<<endl;
    cout<<"-T (Print each local tree in Newick format to standard out)"<<endl;
    cout<<"-G <alpha> (Assign growth rate alpha across populations "<<
    "where alpha=-log(Np/Nr)"<<endl;
    cout<<"-I <n> <n1> <n2> .. <mig_rate> (Assign all elements of the "<<
    "migration matrix for n populations.  Values in matrix set to "<<
    "mig_rate/(n-1).)"<<endl;
    cout<<"-m <i> <j> <m>  (Assign i,j-th element of migration matrix "<<
    "to m.)"<<
    endl;
    cout<<"-ma <m_11>..<m_12>..<m_nn> (Assign values to all "<<
    "elements of migration matrix for n populations.)"<<endl;
    cout<<"-n <i> <size>   (Pop i has size set to size*N_0 "<<endl;
    cout<<"-g <i> <alpha>  (If used must appear after -M option.)"<<endl;
    cout<<"The following options modify parameters at time t."<<endl;
    cout<<"-eG <t> <alpha>  (Assign growth rate for all pops at time"<<
    " t."<<endl;
    cout<<"-eg <t> <i> <alpha>  (Assign growth rate alpha of pop "<<
    "i at time t.)"<<endl;
    cout<<"-eM <t> <m> (Assign migrate rate m for all elements "<<
    "of migration matrix at time t.)"<<endl;
    cout<<"-em <t> <i> <j> <m_ij> (Assign migration rate for i,j-th "<<
    "element of migration matrix at time t.)"
    <<"at time t )"<<endl;
    cout<<"-ema <t> <n> <m_11>..<m_12>..<m_nn> (Assign migration rates "
    " within the migration matrix for n populations at time t.)"<<endl;
    cout<<"-eN <t> <size> (New pop sizes at time t for all pops "<<
    "where new sizes = size*N_0)"<<endl;
    cout<<"-en <t> <i> <size_i> (New pop size of pop i will be set "<<
    "to (size_i*N_0) at time t."<<endl;
    cout<<"-es <t> <i> <p> (Split two populations.  At time t, "<<
    "a proportion p of chromosomes from pop i will migrate to a "<<
    "population i+1."<<endl;
    cout<<"-ej <t> <i> <j> (Join two populations.  At time t "<<
    "all chromosomes migrate from pop i to pop j."<<endl;
    exit(1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq 0x4361d(%rip), %rdi     # 0x48fd0
leaq 0x2c866(%rip), %rsi     # 0x32220
callq 0x42b0
movq %rax, %rdi
movq 0x435e7(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x435fb(%rip), %rdi     # 0x48fd0
leaq 0x2c879(%rip), %rsi     # 0x32255
callq 0x42b0
movq %rax, %rdi
movq 0x435c5(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x435d9(%rip), %rdi     # 0x48fd0
leaq 0x2c861(%rip), %rsi     # 0x3225f
callq 0x42b0
movq %rax, %rdi
movq 0x435a3(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x435b7(%rip), %rdi     # 0x48fd0
leaq 0x2c850(%rip), %rsi     # 0x32270
callq 0x42b0
movq %rax, %rdi
movq 0x43581(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x43595(%rip), %rdi     # 0x48fd0
leaq 0x2c84b(%rip), %rsi     # 0x3228d
callq 0x42b0
movq %rax, %rdi
movq 0x4355f(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x43573(%rip), %rdi     # 0x48fd0
leaq 0x2c839(%rip), %rsi     # 0x3229d
callq 0x42b0
movq %rax, %rdi
movq 0x4353d(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x43551(%rip), %rdi     # 0x48fd0
leaq 0x2c84c(%rip), %rsi     # 0x322d2
callq 0x42b0
movq %rax, %rdi
movq 0x4351b(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x4352f(%rip), %rdi     # 0x48fd0
leaq 0x2c85e(%rip), %rsi     # 0x32306
callq 0x42b0
movq %rax, %rdi
leaq 0x2c88f(%rip), %rsi     # 0x32346
callq 0x42b0
movq %rax, %rdi
leaq 0x2c8c2(%rip), %rsi     # 0x32388
callq 0x42b0
movq %rax, %rdi
leaq 0x2c8f4(%rip), %rsi     # 0x323c9
callq 0x42b0
movq %rax, %rdi
leaq 0x2c92a(%rip), %rsi     # 0x3240e
callq 0x42b0
movq %rax, %rdi
movq 0x434bd(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x434d1(%rip), %rdi     # 0x48fd0
leaq 0x2c937(%rip), %rsi     # 0x3243d
callq 0x42b0
movq %rax, %rdi
movq 0x4349b(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x434af(%rip), %rdi     # 0x48fd0
leaq 0x2c94d(%rip), %rsi     # 0x32475
callq 0x42b0
movq %rax, %rdi
leaq 0x2c97f(%rip), %rsi     # 0x324b6
callq 0x42b0
movq %rax, %rdi
movq 0x4346a(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x4347e(%rip), %rdi     # 0x48fd0
leaq 0x2c99b(%rip), %rsi     # 0x324f4
callq 0x42b0
movq %rax, %rdi
leaq 0x2c9c0(%rip), %rsi     # 0x32528
callq 0x42b0
movq %rax, %rdi
leaq 0x2c9f2(%rip), %rsi     # 0x32569
callq 0x42b0
movq %rax, %rdi
leaq 0x2ca25(%rip), %rsi     # 0x325ab
callq 0x42b0
movq %rax, %rdi
movq 0x4341b(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x4342f(%rip), %rdi     # 0x48fd0
leaq 0x2ca18(%rip), %rsi     # 0x325c0
callq 0x42b0
movq %rax, %rdi
movq 0x433f9(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x4340d(%rip), %rdi     # 0x48fd0
leaq 0x2ca32(%rip), %rsi     # 0x325fc
callq 0x42b0
movq %rax, %rdi
leaq 0x2ca5c(%rip), %rsi     # 0x32635
callq 0x42b0
movq %rax, %rdi
movq 0x433c8(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x433dc(%rip), %rdi     # 0x48fd0
leaq 0x2ca52(%rip), %rsi     # 0x3264d
callq 0x42b0
movq %rax, %rdi
leaq 0x2ca7f(%rip), %rsi     # 0x32689
callq 0x42b0
movq %rax, %rdi
leaq 0x2caae(%rip), %rsi     # 0x326c7
callq 0x42b0
movq %rax, %rdi
movq 0x43388(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x4339c(%rip), %rdi     # 0x48fd0
leaq 0x2ca9d(%rip), %rsi     # 0x326d8
callq 0x42b0
movq %rax, %rdi
leaq 0x2caca(%rip), %rsi     # 0x32714
callq 0x42b0
movq %rax, %rdi
movq 0x43357(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x4336b(%rip), %rdi     # 0x48fd0
leaq 0x2caaf(%rip), %rsi     # 0x3271b
callq 0x42b0
movq %rax, %rdi
leaq 0x2cad2(%rip), %rsi     # 0x3274d
callq 0x42b0
movq %rax, %rdi
movq 0x43326(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x4333a(%rip), %rdi     # 0x48fd0
leaq 0x2cae1(%rip), %rsi     # 0x3277e
callq 0x42b0
movq %rax, %rdi
movq 0x43304(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x43318(%rip), %rdi     # 0x48fd0
leaq 0x2caf0(%rip), %rsi     # 0x327af
callq 0x42b0
movq %rax, %rdi
movq 0x432e2(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x432f6(%rip), %rdi     # 0x48fd0
leaq 0x2cb05(%rip), %rsi     # 0x327e6
callq 0x42b0
movq %rax, %rdi
movq 0x432c0(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x432d4(%rip), %rdi     # 0x48fd0
leaq 0x2cb16(%rip), %rsi     # 0x32819
callq 0x42b0
movq %rax, %rdi
leaq 0x2cd42(%rip), %rsi     # 0x32a54
callq 0x42b0
movq %rax, %rdi
movq 0x4328f(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x432a3(%rip), %rdi     # 0x48fd0
leaq 0x2cb1f(%rip), %rsi     # 0x32853
callq 0x42b0
movq %rax, %rdi
leaq 0x2cb47(%rip), %rsi     # 0x3288a
callq 0x42b0
movq %rax, %rdi
movq 0x4325e(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x43272(%rip), %rdi     # 0x48fd0
leaq 0x2cb33(%rip), %rsi     # 0x32898
callq 0x42b0
movq %rax, %rdi
leaq 0x2cb9b(%rip), %rsi     # 0x3290f
callq 0x42b0
movq %rax, %rdi
movq 0x4322d(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x43241(%rip), %rdi     # 0x48fd0
leaq 0x2cb37(%rip), %rsi     # 0x328cd
callq 0x42b0
movq %rax, %rdi
leaq 0x2cb62(%rip), %rsi     # 0x32907
callq 0x42b0
movq %rax, %rdi
leaq 0x2cb7b(%rip), %rsi     # 0x3292f
callq 0x42b0
movq %rax, %rdi
movq 0x431ed(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x43201(%rip), %rdi     # 0x48fd0
leaq 0x2cb65(%rip), %rsi     # 0x3293b
callq 0x42b0
movq %rax, %rdi
movq 0x431cb(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x431df(%rip), %rdi     # 0x48fd0
leaq 0x2cbba(%rip), %rsi     # 0x329b2
callq 0x42b0
movq %rax, %rdi
leaq 0x2cbe1(%rip), %rsi     # 0x329e8
callq 0x42b0
movq %rax, %rdi
movq 0x4319a(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x431ae(%rip), %rdi     # 0x48fd0
leaq 0x2cbdb(%rip), %rsi     # 0x32a04
callq 0x42b0
movq %rax, %rdi
leaq 0x2cc05(%rip), %rsi     # 0x32a3d
callq 0x42b0
movq %rax, %rdi
movq 0x43169(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x4317d(%rip), %rdi     # 0x48fd0
leaq 0x2cbfe(%rip), %rsi     # 0x32a58
callq 0x42b0
movq %rax, %rdi
leaq 0x2cc24(%rip), %rsi     # 0x32a8d
callq 0x42b0
movq %rax, %rdi
leaq 0x2cc51(%rip), %rsi     # 0x32ac9
callq 0x42b0
movq %rax, %rdi
movq 0x43129(%rip), %rsi     # 0x48fb0
callq 0x4300
movq 0x4313d(%rip), %rdi     # 0x48fd0
leaq 0x2cc3f(%rip), %rsi     # 0x32ad9
callq 0x42b0
movq %rax, %rdi
leaq 0x2cc63(%rip), %rsi     # 0x32b0c
callq 0x42b0
movq %rax, %rdi
movq 0x430f8(%rip), %rsi     # 0x48fb0
callq 0x4300
movl $0x1, %edi
callq 0x4390
nopw (%rax,%rax)