// File: 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
subq $0xa0, %rsp
movq %rdi, -0x78(%rbp)
movq %rdi, %rax
movq %rax, -0x70(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x8ec0
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
cmpl 0x1b591(%rip), %eax     # 0x233c4
jl 0x7e37
jmp 0x7e56
leaq 0xf807(%rip), %rdi      # 0x17645
leaq 0xf70e(%rip), %rsi      # 0x17553
movl $0xab, %edx
leaq 0xf804(%rip), %rcx      # 0x17655
callq 0x41e0
movq -0x78(%rbp), %rdi
movb $0x0, -0x15(%rbp)
callq 0x120c0
leaq -0x28(%rbp), %rdi
callq 0x8ee0
movq -0x10(%rbp), %rsi
leaq -0x40(%rbp), %rdi
callq 0x120e0
jmp 0x7e7b
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl 0x1b539(%rip), %eax     # 0x233c4
jge 0x7eef
leaq -0x28(%rbp), %rdi
callq 0x8f00
movq -0x10(%rbp), %rdi
movslq -0x50(%rbp), %rsi
callq 0x8f40
movq %rax, -0x80(%rbp)
jmp 0x7ea9
movq -0x80(%rbp), %rax
movsbq (%rax), %rax
orq -0x20(%rbp), %rax
movq %rax, -0x20(%rbp)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x7e82
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x8041
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x72b0
jmp 0x8041
leaq -0x28(%rbp), %rdi
callq 0x8f80
movq %rdx, -0x90(%rbp)
movq %rax, -0x88(%rbp)
jmp 0x7f08
movq -0x90(%rbp), %rax
movq -0x88(%rbp), %rcx
movq %rcx, -0x60(%rbp)
movq %rax, -0x58(%rbp)
leaq -0x28(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x8fc0
testb $0x1, %al
jne 0x7f31
jmp 0x7f42
movq -0x78(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x121e0
jmp 0x7f40
jmp 0x7f53
movq -0x78(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x121e0
jmp 0x7f51
jmp 0x7f53
movl $0x1, -0x64(%rbp)
movl -0x64(%rbp), %eax
movl -0x14(%rbp), %ecx
subl 0x1b45e(%rip), %ecx     # 0x233c4
cmpl %ecx, %eax
jg 0x8018
movq -0x10(%rbp), %rdi
movl -0x64(%rbp), %edx
movl 0x1b449(%rip), %eax     # 0x233c4
movl %eax, %ecx
movl %edx, %eax
leal -0x1(%rax,%rcx), %eax
movslq %eax, %rsi
callq 0x8f40
movq %rax, -0x98(%rbp)
jmp 0x7f94
movq -0x98(%rbp), %rax
movsbl (%rax), %esi
leaq -0x28(%rbp), %rdi
callq 0x12250
jmp 0x7fa9
movl -0x14(%rbp), %eax
movl -0x64(%rbp), %ecx
subl %ecx, %eax
movl 0x1b40d(%rip), %ecx     # 0x233c4
subl %ecx, %eax
movslq %eax, %rsi
leaq -0x40(%rbp), %rdi
callq 0x83c0
movsbl (%rax), %esi
leaq -0x60(%rbp), %rdi
callq 0x122a0
jmp 0x7fd3
leaq -0x28(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x8fc0
testb $0x1, %al
jne 0x7fe6
jmp 0x7ff7
movq -0x78(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x121e0
jmp 0x7ff5
jmp 0x8008
movq -0x78(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x121e0
jmp 0x8006
jmp 0x8008
jmp 0x800a
movl -0x64(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x64(%rbp)
jmp 0x7f5a
movb $0x1, -0x15(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x72b0
testb $0x1, -0x15(%rbp)
jne 0x8034
movq -0x78(%rbp), %rdi
callq 0x8360
movq -0x70(%rbp), %rax
addq $0xa0, %rsp
popq %rbp
retq
movq -0x78(%rbp), %rdi
callq 0x8360
movq -0x48(%rbp), %rdi
callq 0x4550
nopw %cs:(%rax,%rax)
nopl (%rax)