// File: /workspace/github_cpp_makefile_star2_O3/millanek[P]evo/process_vcf.cpp
// Function: main
int main(int argc, char **argv) {
    
    if(argc <= 1)
    {
        std::cout << USAGE_MESSAGE;
        return 0;
    }
    else
    {
        std::string command(argv[1]);
        if(command == "help" || command == "--help" || command == "-h")
        {
            std::cout << USAGE_MESSAGE;
            return 0;
        }
        else if(command == "version" || command == "--version")
        {
            std::cout << VERSION_MESSAGE;
            return 0;
        }
        
        if(command == "filter")
            filterMain(argc - 1, argv + 1);
        else if(command == "linkGeneNames")
            linkGNMain(argc - 1, argv + 1);
        else if(command == "remove-lowercase")
            removeLcMain(argc - 1, argv + 1);
        else if(command == "abba-baba")
            abbaBabaMain(argc - 1, argv + 1);
        else if(command == "aa-seq")
            getAaSeqMain(argc - 1, argv + 1);
        else if(command == "aa-fill")
            fillAaMain(argc - 1, argv + 1);
        else if(command == "stats")
            statsMain(argc - 1, argv + 1);
        else if(command == "cbs")
            cbsMain(argc - 1, argv + 1);
        else if(command == "sharing")
            variantSharingMain(argc - 1, argv + 1);
        else if(command == "test")
            testMain(argc - 1, argv + 1);
        else if(command == "massoko")
            massokoMain(argc - 1, argv + 1);
        else if(command == "merge")
            mergeMain(argc - 1, argv + 1);
        else if(command == "multi-fasta")
            processMultiFastaMain(argc - 1, argv + 1);
        else if (command == "fst")
            fstMain(argc - 1, argv + 1);
        else if(command == "getWGSeq")
            getSeqMain(argc - 1, argv + 1);
        else if(command == "getCodingSeq")
            getCodingSeqMain(argc - 1, argv + 1);
        else if(command == "sequenom")
            sequenomMain(argc - 1, argv + 1);
        else if(command == "map")
            mapMain(argc - 1, argv + 1);
        else if(command == "sharedVariation")
            sharedVarMain(argc - 1, argv + 1);
        else if(command == "sex-search")
            sexSearchMain(argc - 1, argv + 1);
        else if(command == "smallRNA")
            shortRNAMain(argc - 1, argv + 1);
        else if (command == "getMtSeq")
            getMtSeqMain(argc - 1, argv + 1);
        else if (command == "statsTest")
            statsTestingMain(argc - 1, argv + 1);
        else if (command == "reorder")
            reorderMain(argc - 1, argv + 1);
        else if (command == "VCFfromSequenom")
            VCFfromSequenomMain(argc - 1, argv + 1);
        else if (command == "codingStats")
            getCodingStats(argc - 1, argv + 1);
        else if (command == "SeqFromGenomes")
            SeqFromGenomes(argc - 1, argv + 1);
        else if (command == "DNAtoProtein")
            DNAtoProtein(argc - 1, argv + 1);
        else if (command == "AnnotationPreformat")
            AnnotationPreformat(argc - 1, argv + 1);
        else if (command == "ProteinSs")
            ProteinSs(argc - 1, argv + 1);
        else if (command == "RegionsDxy")
            subsamplingDxy(argc - 1, argv + 1);
        else if (command == "permuteCodons")
            permuteCodons(argc - 1, argv + 1);
        else if (command == "Dmin")
            DminMain(argc - 1, argv + 1);
        else if (command == "DminCombine")
            DminCombineMain(argc - 1, argv + 1);
        else if (command == "PBS")
            PBSmain(argc - 1, argv + 1);
        else if (command == "ABS")
            ABSmain(argc - 1, argv + 1);
        else if (command == "FstGlobal")
            FstGlobalMain(argc - 1, argv + 1);
        else if (command == "vcf-comb")
            VCFcombMain(argc - 1, argv + 1);
        else if (command == "alleleFreq")
            AFmain(argc - 1, argv + 1);
        else if (command == "agpToNewFasta")
            agpFastaMain(argc - 1, argv + 1);
        else if (command == "DistOutgroups")
            DistOutMain(argc - 1, argv + 1);
        else if (command == "RegionsPiGeneral")
            regionPiMain(argc - 1, argv + 1);
        else if (command == "InfoPairs")
            InfoPairsMain(argc - 1, argv + 1);
        else if (command == "DiscordantPairs")
            DiscordPairsMain(argc - 1, argv + 1);
        else if (command == "InfoReadsSam")
            InfoReadsMain(argc - 1, argv + 1);
        else if (command == "DiscordantPairsFromSAM")
            DiscordPairsFromSAMMain(argc - 1, argv + 1);
        else
        {
            std::cerr << "Unrecognized command: " << command << "\n";
            return 1;
        }
        return 0;
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
cmpl $0x1, %edi
jg 0x27f5a
movq 0xda076(%rip), %rdi     # 0x101fb8
leaq 0xa2427(%rip), %rsi     # 0xca370
movl $0x1094, %edx           # imm = 0x1094
callq 0x84e0
xorl %ebx, %ebx
jmp 0x2849d
movq %rsi, %rbx
movl %edi, %ebp
movq 0x8(%rsi), %rsi
movq %rsp, %r14
leaq 0x27(%rsp), %rdx
movq %r14, %rdi
callq 0x287de
leaq 0xa21f6(%rip), %rsi     # 0xca170
movq %r14, %rdi
callq 0x8160
movl $0x1094, %r14d          # imm = 0x1094
leaq 0xa23e1(%rip), %r15     # 0xca370
testl %eax, %eax
je 0x2846e
leaq 0xa21d0(%rip), %rsi     # 0xca16e
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x2846e
leaq 0xa21c0(%rip), %rsi     # 0xca175
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x2846e
leaq 0xa21ae(%rip), %rsi     # 0xca17a
movq %rsp, %rdi
callq 0x8160
movl $0x39, %r14d
leaq 0xa3424(%rip), %r15     # 0xcb405
testl %eax, %eax
je 0x2846e
leaq 0xa2188(%rip), %rsi     # 0xca178
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x2846e
addq $0x8, %rbx
leaq 0xa2177(%rip), %rsi     # 0xca182
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x284aa
leaq 0xa2167(%rip), %rsi     # 0xca189
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x284b8
leaq 0xa215e(%rip), %rsi     # 0xca197
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x284c6
leaq 0xa2158(%rip), %rsi     # 0xca1a8
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x284d4
leaq 0xa214b(%rip), %rsi     # 0xca1b2
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x284e2
leaq 0xa213b(%rip), %rsi     # 0xca1b9
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x284f0
leaq 0xae6c4(%rip), %rsi     # 0xd6759
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x284fe
leaq 0xa2115(%rip), %rsi     # 0xca1c1
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x2850f
leaq 0xa2102(%rip), %rsi     # 0xca1c5
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28520
leaq 0xa20f3(%rip), %rsi     # 0xca1cd
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28531
leaq 0xa20e1(%rip), %rsi     # 0xca1d2
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28542
leaq 0xa20d2(%rip), %rsi     # 0xca1da
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28553
leaq 0xa20c1(%rip), %rsi     # 0xca1e0
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28564
leaq 0xa20b6(%rip), %rsi     # 0xca1ec
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28575
leaq 0xa20a3(%rip), %rsi     # 0xca1f0
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28586
leaq 0xa2095(%rip), %rsi     # 0xca1f9
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28597
leaq 0xa208b(%rip), %rsi     # 0xca206
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x285a8
leaq 0xa207d(%rip), %rsi     # 0xca20f
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x285b9
leaq 0xa206a(%rip), %rsi     # 0xca213
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x285ca
leaq 0xa2063(%rip), %rsi     # 0xca223
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x285db
leaq 0xa2057(%rip), %rsi     # 0xca22e
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x285ec
leaq 0xa2049(%rip), %rsi     # 0xca237
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x285fd
leaq 0xa203b(%rip), %rsi     # 0xca240
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x2860e
leaq 0xa202e(%rip), %rsi     # 0xca24a
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x2861f
leaq 0xa201f(%rip), %rsi     # 0xca252
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28630
leaq 0xa2018(%rip), %rsi     # 0xca262
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28641
leaq 0xa200d(%rip), %rsi     # 0xca26e
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28652
leaq 0xa2005(%rip), %rsi     # 0xca27d
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28663
leaq 0xa1ffb(%rip), %rsi     # 0xca28a
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28674
leaq 0xa1ff8(%rip), %rsi     # 0xca29e
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28685
leaq 0xa1feb(%rip), %rsi     # 0xca2a8
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28696
leaq 0xa1fdf(%rip), %rsi     # 0xca2b3
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x286a7
leaq 0xa1fd6(%rip), %rsi     # 0xca2c1
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x286b8
leaq 0xa1fc4(%rip), %rsi     # 0xca2c6
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x286c9
leaq 0xa1fb9(%rip), %rsi     # 0xca2d2
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x286da
leaq 0xa1fa6(%rip), %rsi     # 0xca2d6
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x286eb
leaq 0xb6646(%rip), %rsi     # 0xde98d
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x286fc
leaq 0xa1f7c(%rip), %rsi     # 0xca2da
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x2870d
leaq 0xa1f6e(%rip), %rsi     # 0xca2e3
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x2871e
leaq 0xa1f62(%rip), %rsi     # 0xca2ee
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x2872f
leaq 0xa1f59(%rip), %rsi     # 0xca2fc
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28740
leaq 0xa1f50(%rip), %rsi     # 0xca30a
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28751
leaq 0xa1f4a(%rip), %rsi     # 0xca31b
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28762
leaq 0xa1f3d(%rip), %rsi     # 0xca325
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28773
leaq 0xa1f36(%rip), %rsi     # 0xca335
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28784
leaq 0xa1f2c(%rip), %rsi     # 0xca342
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28795
movq 0xd9bbb(%rip), %rdi     # 0x101fe8
leaq 0xa1f25(%rip), %rsi     # 0xca359
movl $0x16, %edx
callq 0x84e0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0xd9b9a(%rip), %rdi     # 0x101fe8
callq 0x84e0
movl $0x1, %ebx
leaq 0xa2fde(%rip), %rsi     # 0xcb43d
movl $0x1, %edx
movq %rax, %rdi
callq 0x84e0
jmp 0x28482
movq 0xd9b43(%rip), %rdi     # 0x101fb8
movq %r15, %rsi
movq %r14, %rdx
callq 0x84e0
xorl %ebx, %ebx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2849d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movl %ebx, %eax
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x606ac
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x9b450
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xa0c1a
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x36818
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x4334c
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x4b2ec
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x5b218
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x460f4
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x62aa4
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x63c68
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x65916
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x999b0
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x4c768
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x976ce
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x67294
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x6f1ff
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x79e84
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x7b86c
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x7d074
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x80196
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x9a26c
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x86f34
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x885d4
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x88fa9
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x8a0bc
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x40444
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x3a070
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x3eb34
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x37b08
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x3d014
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x2c5e0
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x320b4
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xa117c
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xa54f0
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xa8208
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xb33fc
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xaea40
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xb6368
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xb8be8
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xba3b6
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xbaf5d
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xbd57c
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xbec50
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xbfe70
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xc3d18
jmp 0x28480
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xc575c
jmp 0x28480
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x287c4
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movq %rbx, %rdi
callq 0x8840