// File: /workspace/github_cpp_makefile_star2_O1/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 0x27e5a
movq 0xe3176(%rip), %rdi     # 0x10afb8
leaq 0xa3767(%rip), %rsi     # 0xcb5b0
movl $0x1094, %edx           # imm = 0x1094
callq 0x84e0
xorl %ebx, %ebx
jmp 0x2839d
movq %rsi, %rbx
movl %edi, %ebp
movq 0x8(%rsi), %rsi
movq %rsp, %r14
leaq 0x27(%rsp), %rdx
movq %r14, %rdi
callq 0x286de
leaq 0xa3536(%rip), %rsi     # 0xcb3b0
movq %r14, %rdi
callq 0x8160
movl $0x1094, %r14d          # imm = 0x1094
leaq 0xa3721(%rip), %r15     # 0xcb5b0
testl %eax, %eax
je 0x2836e
leaq 0xa3510(%rip), %rsi     # 0xcb3ae
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x2836e
leaq 0xa3500(%rip), %rsi     # 0xcb3b5
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x2836e
leaq 0xa34ee(%rip), %rsi     # 0xcb3ba
movq %rsp, %rdi
callq 0x8160
movl $0x39, %r14d
leaq 0xa4764(%rip), %r15     # 0xcc645
testl %eax, %eax
je 0x2836e
leaq 0xa34c8(%rip), %rsi     # 0xcb3b8
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x2836e
addq $0x8, %rbx
leaq 0xa34b7(%rip), %rsi     # 0xcb3c2
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x283aa
leaq 0xa34a7(%rip), %rsi     # 0xcb3c9
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x283b8
leaq 0xa349e(%rip), %rsi     # 0xcb3d7
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x283c6
leaq 0xa3498(%rip), %rsi     # 0xcb3e8
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x283d4
leaq 0xa348b(%rip), %rsi     # 0xcb3f2
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x283e2
leaq 0xa347b(%rip), %rsi     # 0xcb3f9
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x283f0
leaq 0xb5734(%rip), %rsi     # 0xdd6c9
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x283fe
leaq 0xa3455(%rip), %rsi     # 0xcb401
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x2840f
leaq 0xa3442(%rip), %rsi     # 0xcb405
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28420
leaq 0xa3433(%rip), %rsi     # 0xcb40d
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28431
leaq 0xa3421(%rip), %rsi     # 0xcb412
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28442
leaq 0xa3412(%rip), %rsi     # 0xcb41a
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28453
leaq 0xa3401(%rip), %rsi     # 0xcb420
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28464
leaq 0xa33f6(%rip), %rsi     # 0xcb42c
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28475
leaq 0xa33e3(%rip), %rsi     # 0xcb430
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28486
leaq 0xa33d5(%rip), %rsi     # 0xcb439
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28497
leaq 0xa33cb(%rip), %rsi     # 0xcb446
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x284a8
leaq 0xa33bd(%rip), %rsi     # 0xcb44f
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x284b9
leaq 0xa33aa(%rip), %rsi     # 0xcb453
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x284ca
leaq 0xa33a3(%rip), %rsi     # 0xcb463
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x284db
leaq 0xa3397(%rip), %rsi     # 0xcb46e
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x284ec
leaq 0xa3389(%rip), %rsi     # 0xcb477
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x284fd
leaq 0xa337b(%rip), %rsi     # 0xcb480
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x2850e
leaq 0xa336e(%rip), %rsi     # 0xcb48a
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x2851f
leaq 0xa335f(%rip), %rsi     # 0xcb492
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28530
leaq 0xa3358(%rip), %rsi     # 0xcb4a2
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28541
leaq 0xa334d(%rip), %rsi     # 0xcb4ae
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28552
leaq 0xa3345(%rip), %rsi     # 0xcb4bd
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28563
leaq 0xa333b(%rip), %rsi     # 0xcb4ca
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28574
leaq 0xa3338(%rip), %rsi     # 0xcb4de
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28585
leaq 0xa332b(%rip), %rsi     # 0xcb4e8
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28596
leaq 0xa331f(%rip), %rsi     # 0xcb4f3
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x285a7
leaq 0xa3316(%rip), %rsi     # 0xcb501
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x285b8
leaq 0xa3304(%rip), %rsi     # 0xcb506
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x285c9
leaq 0xa32f9(%rip), %rsi     # 0xcb512
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x285da
leaq 0xa32e6(%rip), %rsi     # 0xcb516
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x285eb
leaq 0xbf6ce(%rip), %rsi     # 0xe7915
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x285fc
leaq 0xa32bc(%rip), %rsi     # 0xcb51a
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x2860d
leaq 0xa32ae(%rip), %rsi     # 0xcb523
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x2861e
leaq 0xa32a2(%rip), %rsi     # 0xcb52e
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x2862f
leaq 0xa3299(%rip), %rsi     # 0xcb53c
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28640
leaq 0xa3290(%rip), %rsi     # 0xcb54a
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28651
leaq 0xa328a(%rip), %rsi     # 0xcb55b
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28662
leaq 0xa327d(%rip), %rsi     # 0xcb565
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28673
leaq 0xa3276(%rip), %rsi     # 0xcb575
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28684
leaq 0xa326c(%rip), %rsi     # 0xcb582
movq %rsp, %rdi
callq 0x8160
testl %eax, %eax
je 0x28695
movq 0xe2cbb(%rip), %rdi     # 0x10afe8
leaq 0xa3265(%rip), %rsi     # 0xcb599
movl $0x16, %edx
callq 0x84e0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0xe2c9a(%rip), %rdi     # 0x10afe8
callq 0x84e0
movl $0x1, %ebx
leaq 0xa431e(%rip), %rsi     # 0xcc67d
movl $0x1, %edx
movq %rax, %rdi
callq 0x84e0
jmp 0x28382
movq 0xe2c43(%rip), %rdi     # 0x10afb8
movq %r15, %rsi
movq %r14, %rdx
callq 0x84e0
xorl %ebx, %ebx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2839d
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 0x6066c
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x9bf18
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xa16e9
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x395eb
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x4628c
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x4e2d8
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x5b09c
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x49071
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x62bb4
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x63e30
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x65bb1
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x9a454
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x4f75c
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x98102
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x675dc
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x6f528
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x7a228
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x7bc98
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x7d4b0
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x80566
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x9ad2c
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x87524
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x88bd4
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x895f1
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x8a71c
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x432d8
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x3cf50
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x41a50
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x3a9ec
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x3ff40
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x2f034
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0x34b5c
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xa1c50
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xa6064
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xa8eb0
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xb4318
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xaf890
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xb72e8
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xb9c60
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xbb3ee
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xbbf55
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xbe558
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xbfc14
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xc09cc
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xc4978
jmp 0x28380
decl %ebp
movl %ebp, %edi
movq %rbx, %rsi
callq 0xc6410
jmp 0x28380
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x286c4
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movq %rbx, %rdi
callq 0x8840