// File: /workspace/github_cpp_makefile_star2_O3/BenLangmead[P]bowtie/./aligner.h
// Function: PairedBWAlignerV2<EbwtRangeSource>::setQuery(PatternSourcePerThread*)
virtual void setQuery(PatternSourcePerThread* patsrc) {
		Aligner::setQuery(patsrc); // set fields & random seed
		assert(!patsrc->bufb().empty());
		// Give all of the drivers pointers to the relevant read info
		patsrc_ = patsrc;
		pool_->reset(&patsrc->bufa().name, (uint32_t)patsrc->rdid());
		if(patsrc->bufa().length() < 4 || patsrc->bufb().length() < 4) {
			if(!quiet_) {
				cerr << "Warning: Skipping pair " << patsrc->bufa().name
				     << " because a mate is less than 4 characters long" << endl;
			}
			this->done = true;
			sinkPt_->finishRead(*patsrc_, true, true);
			return;
		}
		driver_->setQuery(patsrc, NULL);
		qlen1_ = patsrc_->bufa().length();
		qlen2_ = patsrc_->bufb().length();
		if(btCnt_ != NULL) (*btCnt_) = maxBts_;
		mixedAttempts_ = 0;
		// Neither orientation is done
		this->done = false;
		// No ranges are being chased yet
		chase_ = false;
		donePe_ = doneSe1_ = doneSe2_ = false;
		pairs_fw_.clear();
		pairs_rc_.clear();
	}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
callq 0x31044
movq %r14, 0x58(%rbx)
movq 0xd8(%rbx), %r15
movq 0x18(%r14), %rax
movq 0x50(%r14), %rcx
imulq $0x268, %rcx, %rdx      # imm = 0x268
addl 0x58(%r14), %ecx
addq %rdx, %rax
addq $0x150, %rax            # imm = 0x150
movl %ecx, 0x4(%r15)
movq %rax, 0x40(%r15)
movl $0x0, 0x10(%r15)
movq 0x30(%r15), %rdi
movl 0x20(%r15), %eax
shrl $0x5, %eax
leaq 0x4(,%rax,4), %rdx
xorl %esi, %esi
callq 0x9250
movq $0x0, 0x24(%r15)
movq 0x18(%r14), %rcx
imulq $0x268, 0x50(%r14), %rax # imm = 0x268
cmpq $0x4, 0x20(%rcx,%rax)
jb 0x3d0d9
movq 0x38(%r14), %rcx
cmpq $0x3, 0x20(%rcx,%rax)
ja 0x3d181
cmpb $0x0, 0xe1(%rbx)
jne 0x3d15a
movq 0x2cf07(%rip), %r15     # 0x69ff0
leaq 0x18d40(%rip), %rsi     # 0x55e30
movl $0x17, %edx
movq %r15, %rdi
callq 0x9560
movq 0x18(%r14), %rax
imulq $0x268, 0x50(%r14), %rcx # imm = 0x268
leaq (%rax,%rcx), %rsi
addq $0x150, %rsi            # imm = 0x150
movq %r15, %rdi
callq 0x1fb3f
movq %rax, %r14
leaq 0x18d22(%rip), %rsi     # 0x55e48
movl $0x2e, %edx
movq %rax, %rdi
callq 0x9560
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x9480
movsbl %al, %esi
movq %r14, %rdi
callq 0x9050
movq %rax, %rdi
callq 0x92f0
movb $0x1, 0x8(%rbx)
movq 0x58(%rbx), %rsi
movq 0x80(%rbx), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
movl $0x1, %edx
movl $0x1, %ecx
popq %rbx
popq %r14
popq %r15
jmpq *%rax
movq 0xd0(%rbx), %rdi
movq (%rdi), %rax
xorl %r15d, %r15d
movq %r14, %rsi
xorl %edx, %edx
callq *0x10(%rax)
movq 0x58(%rbx), %rcx
movq 0xe8(%rbx), %rax
movq 0x18(%rcx), %rdx
imulq $0x268, 0x50(%rcx), %rsi # imm = 0x268
movl 0x20(%rdx,%rsi), %edx
movl %edx, 0x60(%rbx)
imulq $0x268, 0x50(%rcx), %rdx # imm = 0x268
movq 0x38(%rcx), %rcx
movl 0x20(%rcx,%rdx), %ecx
movl %ecx, 0x64(%rbx)
testq %rax, %rax
je 0x3d1d4
movl 0xe4(%rbx), %ecx
movl %ecx, (%rax)
movl %r15d, 0xbc(%rbx)
movb $0x0, 0x8(%rbx)
leaq 0xf0(%rbx), %rdi
movl %r15d, 0x68(%rbx)
callq 0x3cbe8
addq $0x120, %rbx            # imm = 0x120
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0x3cbe8
nop