// File: BenLangmead[P]bowtie/./aligner.h
// Function: PairedBWAlignerV1<EbwtRangeSource>::advance()
virtual bool advance() {
		assert(!this->done);
		if(doneFw_ && doneFwFirst_) {
			if(verbose2_) cout << "--" << endl;
			chaseL_        = &chaseL_rc_;
			chaseR_        = &chaseR_rc_;
			delayedchaseL_ = &delayedchaseL_rc_;
			delayedchaseR_ = &delayedchaseR_rc_;
			drL_           = &drL_rc_;
			drR_           = &drR_rc_;
			offsLarr_      = offsLarr_rc_;
			offsRarr_      = offsRarr_rc_;
			rangesLarr_    = rangesLarr_rc_;
			rangesRarr_    = rangesRarr_rc_;
			offsLsz_       = &offsLsz_rc_;
			offsRsz_       = &offsRsz_rc_;
			donePair_      = &this->done;
			fwL_           = !fw2_;
			fwR_           = !fw1_;
			doneFwFirst_   = false;
			mixedAttempts_ = 0;
		}
		bool chasing = *chaseL_ || *chaseR_;
		if(chasing && !rchase_->foundOff() && !rchase_->done) {
			rchase_->advance();
			return false;
		}
		advanceOrientation(!doneFw_);
		if(this->done) {
			if(verbose2_) cout << "----" << endl;
			sinkPt_->finishRead(*patsrc_, true, true);
		}
		return this->done;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
testb $0x1, 0x68(%rax)
je 0x60427
movq -0x20(%rbp), %rax
testb $0x1, 0x69(%rax)
je 0x60427
movq -0x20(%rbp), %rax
testb $0x1, 0x22a8(%rax)
je 0x6033b
movq 0x47c98(%rip), %rdi     # 0xa7fb8
leaq 0x2cbfb(%rip), %rsi     # 0x8cf22
callq 0xa5d0
movq %rax, %rdi
movq 0x47c32(%rip), %rsi     # 0xa7f68
callq 0xa640
movq -0x20(%rbp), %rax
movq 0x2178(%rax), %rcx
movq %rcx, 0x21d8(%rax)
movq 0x2180(%rax), %rcx
movq %rcx, 0x21e0(%rax)
movq 0x2188(%rax), %rcx
movq %rcx, 0x21e8(%rax)
movq 0x2190(%rax), %rcx
movq %rcx, 0x21f0(%rax)
movq 0x2198(%rax), %rcx
movq %rcx, 0x21f8(%rax)
movq 0x21a0(%rax), %rcx
movq %rcx, 0x2200(%rax)
movq 0x21a8(%rax), %rcx
movq %rcx, 0x2208(%rax)
movq 0x21b0(%rax), %rcx
movq %rcx, 0x2210(%rax)
movq 0x21b8(%rax), %rcx
movq %rcx, 0x2218(%rax)
movq 0x21c0(%rax), %rcx
movq %rcx, 0x2220(%rax)
movq 0x21c8(%rax), %rcx
movq %rcx, 0x2228(%rax)
movq 0x21d0(%rax), %rcx
movq %rcx, 0x2230(%rax)
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, 0x2238(%rax)
movb 0xb5(%rax), %cl
xorb $-0x1, %cl
andb $0x1, %cl
movb %cl, 0x2240(%rax)
movb 0xb4(%rax), %cl
xorb $-0x1, %cl
andb $0x1, %cl
movb %cl, 0x2241(%rax)
movb $0x0, 0x69(%rax)
movl $0x0, 0xb0(%rax)
movq -0x20(%rbp), %rax
movq 0x21d8(%rax), %rcx
movb $0x1, %al
testb $0x1, (%rcx)
movb %al, -0x21(%rbp)
jne 0x6044c
movq -0x20(%rbp), %rax
movq 0x21e0(%rax), %rax
movb (%rax), %al
movb %al, -0x21(%rbp)
movb -0x21(%rbp), %al
andb $0x1, %al
movb %al, -0x11(%rbp)
testb $0x1, -0x11(%rbp)
je 0x60494
movq -0x20(%rbp), %rax
movq 0xb8(%rax), %rdi
callq 0x4bee0
testb $0x1, %al
jne 0x60494
movq -0x20(%rbp), %rax
movq 0xb8(%rax), %rax
testb $0x1, (%rax)
jne 0x60494
movq -0x20(%rbp), %rax
movq 0xb8(%rax), %rdi
callq 0x4bf00
movb $0x0, -0x1(%rbp)
jmp 0x60509
movq -0x20(%rbp), %rdi
movb 0x68(%rdi), %al
xorb $-0x1, %al
movzbl %al, %esi
andl $0x1, %esi
callq 0x60c80
movq -0x20(%rbp), %rax
testb $0x1, 0x8(%rax)
je 0x604fd
movq -0x20(%rbp), %rax
testb $0x1, 0x22a8(%rax)
je 0x604e1
movq 0x47af2(%rip), %rdi     # 0xa7fb8
leaq 0x2ca53(%rip), %rsi     # 0x8cf20
callq 0xa5d0
movq %rax, %rdi
movq 0x47a8c(%rip), %rsi     # 0xa7f68
callq 0xa640
movq -0x20(%rbp), %rax
movq 0x88(%rax), %rdi
movq 0x58(%rax), %rsi
movq (%rdi), %rax
movl $0x1, %ecx
movl %ecx, %edx
callq *0x10(%rax)
movq -0x20(%rbp), %rax
movb 0x8(%rax), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop