// File: BGI-Qingdao[P]ExtractNGSReads/utils/tool_func.h
// Function: BGIQD::SEQ::seqCompleteReverse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
static std::string seqCompleteReverse(const std::string & line)
        {
            std::string ret ;
            ret.resize(line.size(),'N');
            int index = 0;
            for( auto i = line.rbegin() ; i!= line.rend() ; i++)
            {
                if( *i == 'A' || *i == 'a' )
                    ret[index++] = 'T';
                else if( *i == 'G' || *i == 'g' )
                    ret[index++] = 'C';
                else if( *i == 'C' || *i == 'c' )
                    ret[index++] = 'G';
                else if( *i == 'T'|| *i == 't' )
                    ret[index++] = 'A';
                else 
                    ret[index++] = *i ;
            }
            return ret;
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rdi, -0x48(%rbp)
movq %rdi, %rax
movq %rax, -0x50(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movb $0x0, -0x11(%rbp)
callq 0x5520
movq -0x10(%rbp), %rdi
callq 0x52c0
movq -0x48(%rbp), %rdi
movq %rax, %rsi
movl $0x4e, %edx
callq 0x5150
jmp 0x12513
movl $0x0, -0x28(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x30(%rbp), %rdi
callq 0x55d0
movq -0x10(%rbp), %rsi
leaq -0x38(%rbp), %rdi
movq %rdi, -0x60(%rbp)
callq 0x5070
movq -0x60(%rbp), %rsi
leaq -0x30(%rbp), %rdi
callq 0x12a60
movb %al, -0x51(%rbp)
jmp 0x1254a
movb -0x51(%rbp), %al
testb $0x1, %al
jne 0x12556
jmp 0x12778
leaq -0x30(%rbp), %rdi
callq 0x12a90
movq %rax, -0x68(%rbp)
jmp 0x12565
movq -0x68(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x41, %eax
je 0x1258c
leaq -0x30(%rbp), %rdi
callq 0x12a90
movq %rax, -0x70(%rbp)
jmp 0x12580
movq -0x70(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x61, %eax
jne 0x125cc
movq -0x48(%rbp), %rdi
movslq -0x28(%rbp), %rsi
movl %esi, %eax
incl %eax
movl %eax, -0x28(%rbp)
callq 0x5730
movq %rax, -0x78(%rbp)
jmp 0x125a6
movq -0x78(%rbp), %rax
movb $0x54, (%rax)
jmp 0x12760
movq -0x48(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
callq 0x5250
jmp 0x12798
leaq -0x30(%rbp), %rdi
callq 0x12a90
movq %rax, -0x80(%rbp)
jmp 0x125db
movq -0x80(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x47, %eax
je 0x12608
leaq -0x30(%rbp), %rdi
callq 0x12a90
movq %rax, -0x88(%rbp)
jmp 0x125f9
movq -0x88(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x67, %eax
jne 0x12634
movq -0x48(%rbp), %rdi
movslq -0x28(%rbp), %rsi
movl %esi, %eax
incl %eax
movl %eax, -0x28(%rbp)
callq 0x5730
movq %rax, -0x90(%rbp)
jmp 0x12625
movq -0x90(%rbp), %rax
movb $0x43, (%rax)
jmp 0x1275e
leaq -0x30(%rbp), %rdi
callq 0x12a90
movq %rax, -0x98(%rbp)
jmp 0x12646
movq -0x98(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x43, %eax
je 0x12676
leaq -0x30(%rbp), %rdi
callq 0x12a90
movq %rax, -0xa0(%rbp)
jmp 0x12667
movq -0xa0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x63, %eax
jne 0x126a2
movq -0x48(%rbp), %rdi
movslq -0x28(%rbp), %rsi
movl %esi, %eax
incl %eax
movl %eax, -0x28(%rbp)
callq 0x5730
movq %rax, -0xa8(%rbp)
jmp 0x12693
movq -0xa8(%rbp), %rax
movb $0x47, (%rax)
jmp 0x1275c
leaq -0x30(%rbp), %rdi
callq 0x12a90
movq %rax, -0xb0(%rbp)
jmp 0x126b4
movq -0xb0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x54, %eax
je 0x126e4
leaq -0x30(%rbp), %rdi
callq 0x12a90
movq %rax, -0xb8(%rbp)
jmp 0x126d5
movq -0xb8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x74, %eax
jne 0x1270d
movq -0x48(%rbp), %rdi
movslq -0x28(%rbp), %rsi
movl %esi, %eax
incl %eax
movl %eax, -0x28(%rbp)
callq 0x5730
movq %rax, -0xc0(%rbp)
jmp 0x12701
movq -0xc0(%rbp), %rax
movb $0x41, (%rax)
jmp 0x1275a
leaq -0x30(%rbp), %rdi
callq 0x12a90
movq %rax, -0xc8(%rbp)
jmp 0x1271f
movq -0x48(%rbp), %rdi
movq -0xc8(%rbp), %rax
movb (%rax), %al
movb %al, -0xd1(%rbp)
movslq -0x28(%rbp), %rsi
movl %esi, %eax
incl %eax
movl %eax, -0x28(%rbp)
callq 0x5730
movq %rax, -0xd0(%rbp)
jmp 0x1274b
movq -0xd0(%rbp), %rax
movb -0xd1(%rbp), %cl
movb %cl, (%rax)
jmp 0x1275c
jmp 0x1275e
jmp 0x12760
jmp 0x12762
leaq -0x40(%rbp), %rdi
leaq -0x30(%rbp), %rsi
xorl %edx, %edx
callq 0x12ac0
jmp 0x12773
jmp 0x12527
movb $0x1, -0x11(%rbp)
testb $0x1, -0x11(%rbp)
jne 0x1278b
movq -0x48(%rbp), %rdi
callq 0x5250
movq -0x50(%rbp), %rax
addq $0xe0, %rsp
popq %rbp
retq
movq -0x20(%rbp), %rdi
callq 0x5690
nopw %cs:(%rax,%rax)