// File: /workspace/github_cpp_makefile_star2_O2/BGI-Qingdao[P]metaSLR/./kmer/kmer.h
// Function: Kmer::chopRead2Kmer(std::vector<char, std::allocator<char>> const&)
static std::vector<Kmer> chopRead2Kmer( const std::vector<char> & read ){
        int rlen = read.size() ;
        assert(rlen >= overlap);
        std::vector<Kmer>  ret;
        Kmer word; word.Init();
        std::vector<char> bal_read = BaseStr::reverseComplementSeq(read);
        for (int index = 0; index < overlap; index++ )
        {
            word.LeftBitMoveBy2();
            word.low |= read.at(index);
        }
        Kmer bal_word = word.reverseComplement();
        if( word < bal_word ) 
            ret.push_back(word) ;
        else
            ret.push_back(bal_word);
        for( int index = 1 ; index <= rlen - overlap ; index ++ ){
            word.nextKmer (read.at(index - 1 + overlap));
            bal_word.prevKmer( bal_read[rlen - index - overlap] );
            if( word < bal_word ) 
                ret.push_back(word) ;
            else
                ret.push_back(bal_word);
        }
        return ret;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq (%rsi), %r13
movq 0x8(%rsi), %rcx
movl %ecx, %eax
subl %r13d, %eax
movl %eax, -0x44(%rbp)
cmpl %eax, 0x8fb4(%rip)      # 0xe314
jg 0x54cd
movq %rsi, %r14
movq %rcx, -0x68(%rbp)
xorps %xmm0, %xmm0
movups %xmm0, (%rdi)
movq %rdi, -0x50(%rbp)
andq $0x0, 0x10(%rdi)
movaps %xmm0, -0x40(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x7b7c
xorl %r12d, %r12d
xorl %ebx, %ebx
xorl %r15d, %r15d
movslq 0x8f7c(%rip), %rax      # 0xe314
cmpq %rax, %r15
jge 0x53c9
shldq $0x2, %rbx, %r12
movq %r12, -0x40(%rbp)
shlq $0x2, %rbx
movq %rbx, -0x38(%rbp)
movq %r14, %rdi
movq %r15, %rsi
callq 0x575e
movsbq (%rax), %rax
orq %rax, %rbx
movq %rbx, -0x38(%rbp)
incq %r15
jmp 0x5391
leaq -0x40(%rbp), %rdi
movq -0x50(%rbp), %rbx
callq 0x577c
movq %rax, -0x60(%rbp)
movq %rdx, -0x58(%rbp)
movq -0x40(%rbp), %rcx
cmpq %rax, %rcx
jb 0x53f6
leaq -0x60(%rbp), %rsi
cmpq %rax, %rcx
jne 0x53fa
cmpq %rdx, -0x38(%rbp)
jae 0x53fa
leaq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x7c08
notl %r13d
addl -0x68(%rbp), %r13d
xorl %eax, %eax
leaq -0x60(%rbp), %r12
leal 0x1(%rax), %r15d
movl 0x8efb(%rip), %ecx      # 0xe314
movl -0x44(%rbp), %edx
subl %ecx, %edx
cmpl %edx, %r15d
jg 0x54b2
addl %ecx, %eax
movslq %eax, %rsi
movq %r14, %rdi
callq 0x575e
movsbq (%rax), %rax
movq -0x40(%rbp), %rcx
movq -0x38(%rbp), %rdx
shldq $0x2, %rdx, %rcx
andq 0x8ecc(%rip), %rcx      # 0xe318
shlq $0x2, %rdx
movq %rcx, -0x40(%rbp)
andq 0x8ec5(%rip), %rdx      # 0xe320
orq %rax, %rdx
movl %r13d, %eax
subl 0x8ead(%rip), %eax      # 0xe314
movq %rdx, -0x38(%rbp)
cltq
movq -0x80(%rbp), %rcx
movsbl (%rcx,%rax), %esi
movq %r12, %rdi
callq 0x7c2c
movq -0x60(%rbp), %rax
cmpq %rax, -0x40(%rbp)
jae 0x548d
leaq -0x40(%rbp), %rsi
jmp 0x549f
movq %r12, %rsi
jne 0x549f
movq -0x38(%rbp), %rax
movq %r12, %rsi
cmpq -0x58(%rbp), %rax
jb 0x5487
movq %rbx, %rdi
callq 0x7c08
decl %r13d
movl %r15d, %eax
jmp 0x540f
leaq -0x80(%rbp), %rdi
callq 0x7e2e
movq %rbx, %rax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x40e9(%rip), %rdi      # 0x95bd
leaq 0x3ff0(%rip), %rsi      # 0x94cb
leaq 0x40eb(%rip), %rcx      # 0x95cd
movl $0xab, %edx
callq 0x3190
movq %rax, %r14
jmp 0x5501
jmp 0x54f5
jmp 0x54f5
movq %rax, %r14
leaq -0x80(%rbp), %rdi
callq 0x7e2e
movq -0x50(%rbp), %rdi
callq 0x7e42
movq %r14, %rdi
callq 0x3440