// File: /workspace/github_cpp_makefile_star2_O1/millanek[P]evo/remove_lowercase.cpp
// Function: removeLcMain(int, char**)
int removeLcMain(int argc, char** argv) {
    parseRemoveLcOptions(argc, argv);
    
    std::ifstream* fastaFile = new std::ifstream(opt::fastaFile.c_str());
    string description; getline(*fastaFile, description);
    
    string finalSequence = removeLcLetters(*fastaFile, 500000000);
    
    if (opt::out.empty()) {
        std::cout << description << std::endl;
        print80bpPerLineStdOut(std::cout, finalSequence);
    } else {
        string outFN = opt::out + ".joined.fa";
        std::ofstream* outFilteredFile = new std::ofstream(outFN.c_str());
        *outFilteredFile << description << std::endl;
        print80bpPerLineFile(outFilteredFile, finalSequence);
    }
    return 0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0xa8, %rsp
callq 0xa19ec
movl $0x208, %edi            # imm = 0x208
callq 0x8470
movq %rax, %r14
movq 0x6b598(%rip), %rsi     # 0x10cca8
movq %rax, %rdi
movl $0x8, %edx
callq 0x8860
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %edx
leaq 0x20(%rsp), %rsi
movq %r14, %rdi
callq 0x8870
leaq 0x40(%rsp), %rdi
movq %r14, %rsi
movl $0x1dcd6500, %edx       # imm = 0x1DCD6500
callq 0xa15b0
movq 0x6b561(%rip), %rdx     # 0x10ccd0
testq %rdx, %rdx
je 0xa185f
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x6b53f(%rip), %rsi     # 0x10ccc8
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x2e45c
leaq 0x355ad(%rip), %rsi     # 0xd6d48
movq %rsp, %rdi
callq 0x88c0
movl $0x200, %edi            # imm = 0x200
callq 0x8470
movq %rax, %r14
movq (%rsp), %rsi
movq %rax, %rdi
movl $0x10, %edx
callq 0x84c0
movq %r14, 0x60(%rsp)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %r14, %rdi
callq 0x84e0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x8300
leaq 0x78(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x68(%rsp), %rdi
callq 0x2e45c
leaq 0x60(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x53420
movq 0x68(%rsp), %rdi
cmpq %r14, %rdi
je 0xa1848
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x8480
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xa18f6
movq 0x10(%rsp), %rsi
jmp 0xa18ee
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0x69748(%rip), %rdi     # 0x10afb8
callq 0x84e0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x8300
leaq 0x98(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x88(%rsp), %rdi
callq 0x2e45c
movq 0x696ec(%rip), %rdi     # 0x10afb8
leaq 0x88(%rsp), %rsi
callq 0x53342
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
je 0xa18f6
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x8480
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa1911
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0xa1928
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8480
xorl %eax, %eax
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
je 0xa19b2
movq 0x98(%rsp), %rsi
jmp 0xa19aa
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r14, %rdi
je 0xa199c
movq 0x78(%rsp), %rsi
incq %rsi
jmp 0xa1975
movq %rax, %rbx
movl $0x200, %esi            # imm = 0x200
movq %r14, %rdi
callq 0x8480
jmp 0xa199c
jmp 0xa1999
jmp 0xa198f
jmp 0xa1994
movq %rax, %rbx
movl $0x208, %esi            # imm = 0x208
movq %r14, %rdi
jmp 0xa19df
movq %rax, %rbx
jmp 0xa19b2
movq %rax, %rbx
jmp 0xa19cd
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xa19b2
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa19cd
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0xa19e4
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8480
movq %rbx, %rdi
callq 0x8840