// File: /workspace/github_c_makefile_star2_O0/OpenGene[P]pecheck/src/read.cpp
// Function: Read::changeToReverseComplement()
void Read::changeToReverseComplement() {
	int len = length();
	for(int i=0; i<len/2; i++) {
		// swap quality
		char tmp = mQuality[i];
		mQuality[i] = mQuality[len-i-1];
		mQuality[len-i-1] = tmp;

		// swap seq
		tmp = mSeq.mStr[i];
		mSeq.mStr[i] = mSeq.mStr[len-i-1];
		mSeq.mStr[len-i-1] = tmp;
	}

	// make complement
	for(int c=0;c<len;c++){
        char base = mSeq.mStr[c];
        switch(base){
            case 'A':
            case 'a':
                mSeq.mStr[c] = 'T';
                break;
            case 'T':
            case 't':
                mSeq.mStr[c] = 'A';
                break;
            case 'C':
            case 'c':
                mSeq.mStr[c] = 'G';
                break;
            case 'G':
            case 'g':
                mSeq.mStr[c] = 'C';
                break;
            default:
                mSeq.mStr[c] = 'N';
        }
    }
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq 0x30(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x12cf0
movl %eax, 0x2c(%rsp)
movl $0x0, 0x28(%rsp)
movl 0x28(%rsp), %eax
movl %eax, 0xc(%rsp)
movl 0x2c(%rsp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl 0xc(%rsp), %eax
cmpl %ecx, %eax
jge 0x12c02
movq 0x10(%rsp), %rdi
addq $0x60, %rdi
movslq 0x28(%rsp), %rsi
callq 0x4740
movq 0x10(%rsp), %rdi
movb (%rax), %al
movb %al, 0x27(%rsp)
addq $0x60, %rdi
movl 0x2c(%rsp), %eax
subl 0x28(%rsp), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x4740
movq 0x10(%rsp), %rdi
movb (%rax), %al
movb %al, 0x8(%rsp)
addq $0x60, %rdi
movslq 0x28(%rsp), %rsi
callq 0x4740
movb 0x8(%rsp), %cl
movq 0x10(%rsp), %rdi
movb %cl, (%rax)
movb 0x27(%rsp), %al
movb %al, 0x9(%rsp)
addq $0x60, %rdi
movl 0x2c(%rsp), %eax
subl 0x28(%rsp), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x4740
movb 0x9(%rsp), %cl
movq 0x10(%rsp), %rdi
movb %cl, (%rax)
addq $0x20, %rdi
movslq 0x28(%rsp), %rsi
callq 0x4740
movq 0x10(%rsp), %rdi
movb (%rax), %al
movb %al, 0x27(%rsp)
addq $0x20, %rdi
movl 0x2c(%rsp), %eax
subl 0x28(%rsp), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x4740
movq 0x10(%rsp), %rdi
movb (%rax), %al
movb %al, 0xa(%rsp)
addq $0x20, %rdi
movslq 0x28(%rsp), %rsi
callq 0x4740
movb 0xa(%rsp), %cl
movq 0x10(%rsp), %rdi
movb %cl, (%rax)
movb 0x27(%rsp), %al
movb %al, 0xb(%rsp)
addq $0x20, %rdi
movl 0x2c(%rsp), %eax
subl 0x28(%rsp), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x4740
movb 0xb(%rsp), %cl
movb %cl, (%rax)
movl 0x28(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x28(%rsp)
jmp 0x12ad4
movl $0x0, 0x20(%rsp)
movl 0x20(%rsp), %eax
cmpl 0x2c(%rsp), %eax
jge 0x12ce0
movq 0x10(%rsp), %rdi
addq $0x20, %rdi
movslq 0x20(%rsp), %rsi
callq 0x4740
movb (%rax), %al
movb %al, 0x1f(%rsp)
movsbl 0x1f(%rsp), %eax
addl $-0x41, %eax
movl %eax, %ecx
movq %rcx, (%rsp)
subl $0x33, %eax
ja 0x12cb8
movq (%rsp), %rax
leaq 0x3aad(%rip), %rcx      # 0x166fc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x10(%rsp), %rdi
addq $0x20, %rdi
movslq 0x20(%rsp), %rsi
callq 0x4740
movb $0x54, (%rax)
jmp 0x12cce
movq 0x10(%rsp), %rdi
addq $0x20, %rdi
movslq 0x20(%rsp), %rsi
callq 0x4740
movb $0x41, (%rax)
jmp 0x12cce
movq 0x10(%rsp), %rdi
addq $0x20, %rdi
movslq 0x20(%rsp), %rsi
callq 0x4740
movb $0x47, (%rax)
jmp 0x12cce
movq 0x10(%rsp), %rdi
addq $0x20, %rdi
movslq 0x20(%rsp), %rsi
callq 0x4740
movb $0x43, (%rax)
jmp 0x12cce
movq 0x10(%rsp), %rdi
addq $0x20, %rdi
movslq 0x20(%rsp), %rsi
callq 0x4740
movb $0x4e, (%rax)
jmp 0x12cd0
movl 0x20(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x20(%rsp)
jmp 0x12c0a
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)