// File: /workspace/github_cpp_makefile_star2_O3/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 0xa0f1d
movl $0x208, %edi            # imm = 0x208
callq 0x8470
movq %rax, %r14
movq 0x63077(%rip), %rsi     # 0x103cb8
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 0xa0ad4
movq 0x63040(%rip), %rdx     # 0x103ce0
testq %rdx, %rdx
je 0xa0d90
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x6301e(%rip), %rsi     # 0x103cd8
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x2ba06
leaq 0x2f2e4(%rip), %rsi     # 0xcffb0
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 0x2ba06
leaq 0x60(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x502ab
movq 0x68(%rsp), %rdi
cmpq %r14, %rdi
je 0xa0d79
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x8480
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xa0e27
movq 0x10(%rsp), %rsi
jmp 0xa0e1f
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0x61217(%rip), %rdi     # 0x101fb8
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 0x2ba06
movq 0x611bb(%rip), %rdi     # 0x101fb8
leaq 0x88(%rsp), %rsi
callq 0x501cd
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
je 0xa0e27
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x8480
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa0e42
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0xa0e59
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 0xa0ee3
movq 0x98(%rsp), %rsi
jmp 0xa0edb
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r14, %rdi
je 0xa0ecd
movq 0x78(%rsp), %rsi
incq %rsi
jmp 0xa0ea6
movq %rax, %rbx
movl $0x200, %esi            # imm = 0x200
movq %r14, %rdi
callq 0x8480
jmp 0xa0ecd
jmp 0xa0eca
jmp 0xa0ec0
jmp 0xa0ec5
movq %rax, %rbx
movl $0x208, %esi            # imm = 0x208
movq %r14, %rdi
jmp 0xa0f10
movq %rax, %rbx
jmp 0xa0ee3
movq %rax, %rbx
jmp 0xa0efe
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xa0ee3
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa0efe
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0xa0f15
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8480
movq %rbx, %rdi
callq 0x8840