// File: /workspace/github_cpp_makefile_star2_O3/BenLangmead[P]bowtie/./aligner.h
// Function: UnpairedAlignerV2<EbwtRangeSource>::setQuery(PatternSourcePerThread*)
virtual void setQuery(PatternSourcePerThread* patsrc) {
		Aligner::setQuery(patsrc); // set fields & random seed
		if(metrics_ != NULL) {
			metrics_->nextRead(patsrc->bufa().patFw);
		}
		pool_->reset(&patsrc->bufa().name, (uint32_t)patsrc->rdid());
		if(patsrc->bufa().length() < 4) {
			if(!quiet_) {
				cerr << "Warning: Skipping read " << patsrc->bufa().name
				     << " because it is less than 4 characters long" << endl;
			}
			this->done = true;
			sinkPt_->finishRead(*patsrc_, true, true);
			return;
		}
		driver_->setQuery(patsrc, NULL);
		this->done = driver_->done;
		doneFirst_ = false;
		// Reset #-backtrack countdown
		if(btCnt_ != NULL) *btCnt_ = maxBts_;
		if(sinkPt_->setHits(patsrc->bufa().hitset)) {
			this->done = true;
			sinkPt_->finishRead(*patsrc_, true, true);
		}
		// Grab a bit from the pseudo-random seed to determine whether
		// to start with forward or reverse complement
		firstIsFw_ = ((patsrc->bufa().seed & 0x10) == 0);
		chase_ = false;
	}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
callq 0x31044
movq 0xa0(%rbx), %rdi
testq %rdi, %rdi
je 0x30e97
imulq $0x268, 0x50(%r14), %rsi # imm = 0x268
addq 0x18(%r14), %rsi
callq 0x32808
movq 0x90(%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), %rax
imulq $0x268, 0x50(%r14), %rcx # imm = 0x268
cmpq $0x3, 0x20(%rax,%rcx)
ja 0x30fa9
cmpb $0x0, 0x89(%rbx)
jne 0x30f85
movq 0x390dc(%rip), %r15     # 0x69ff0
leaq 0x24d1d(%rip), %rsi     # 0x55c38
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 0x250cb(%rip), %rsi     # 0x5601c
movl $0x2a, %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 0x10(%rbx), %rsi
movq 0x68(%rbx), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
movl $0x1, %edx
movl $0x1, %ecx
popq %rbx
popq %r14
popq %r15
jmpq *%rax
movq 0x80(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
xorl %edx, %edx
callq *0x10(%rax)
movq 0x80(%rbx), %rcx
movq 0x98(%rbx), %rax
movb 0x9(%rcx), %cl
movb %cl, 0x8(%rbx)
movb $0x0, 0x58(%rbx)
testq %rax, %rax
je 0x30fe0
movl 0x8c(%rbx), %ecx
movl %ecx, (%rax)
movq 0x68(%rbx), %rdi
movq 0x18(%r14), %rax
imulq $0x268, 0x50(%r14), %rcx # imm = 0x268
leaq (%rax,%rcx), %rsi
addq $0x1b0, %rsi            # imm = 0x1B0
movq (%rdi), %rax
callq *0x30(%rax)
testb %al, %al
je 0x31021
movb $0x1, 0x8(%rbx)
movq 0x10(%rbx), %rsi
movq 0x68(%rbx), %rdi
movq (%rdi), %rax
movl $0x1, %edx
movl $0x1, %ecx
callq *0x10(%rax)
movq 0x18(%r14), %rax
imulq $0x268, 0x50(%r14), %rcx # imm = 0x268
testb $0x10, 0x18c(%rax,%rcx)
sete 0x59(%rbx)
movb $0x0, 0x5a(%rbx)
popq %rbx
popq %r14
popq %r15
retq
nop