// File: /workspace/github_cpp_makefile_star2_O2/BenLangmead[P]bowtie/./aligner.h
// Function: PairedBWAlignerV2<EbwtRangeSource>::reportSe(Range const&, std::pair<unsigned int, unsigned int>, unsigned int)
void reportSe(const Range& r, UPair h, uint32_t tlen) {
		EbwtSearchParams* params = (r.mate1 ? paramsSe1_ : paramsSe2_);
		assert(!(r.mate1 ? doneSe1_ : doneSe2_));
		params->setFw(r.fw);
		Read* buf = r.mate1 ? bufa_ : bufb_;
		bool ebwtFw = r.ebwt->fw();
		uint32_t len = r.mate1 ? alen_ : blen_;
		// Print upstream mate first
		if(params->reportHit(
			r.fw ? (ebwtFw?  buf->patFw   :  buf->patFwRev) :
			       (ebwtFw?  buf->patRc   :  buf->patRcRev),
			r.fw ? (ebwtFw? &buf->qual    : &buf->qualRev) :
			       (ebwtFw? &buf->qualRev : &buf->qual),
			&buf->name,
			ebwtFw,
			r.mms,                   // mismatch positions
			r.refcs,                 // reference characters for mms
			r.numMms,                // # mismatches
			h,                       // position
			make_pair(0, 0),         // (bogus) mate coords
			true,                    // (bogus) mate orientation
			0,                       // (bogus) mate length
			make_pair(r.top, r.bot), // arrows
			tlen,                    // textlen
			len,                     // qlen
			r.stratum,               // alignment stratum
			r.cost,                  // cost, including quality penalty
			r.bot - r.top - 1,       // # other hits
			buf->patid,
			buf->seed,
			0))
		{
			if(r.mate1) doneSe1_ = true;
			else        doneSe2_ = true;
			if(donePe_) driver_->removeMate(r.mate1 ? 1 : 2);
		}
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rcx, 0x20(%rsp)
movq %rsi, %rbx
movq %rdi, %rax
movzbl 0x15(%rsi), %ecx
xorl $0x1, %ecx
movq 0xa0(%rdi,%rcx,8), %rdi
movb 0x14(%rsi), %r9b
movb %r9b, 0x14(%rdi)
movzbl 0x15(%rsi), %ecx
xorl $0x1, %ecx
shll $0x4, %ecx
movq 0x58(%rsi), %rsi
movzbl 0x10(%rsi), %r8d
xorl %esi, %esi
testl %r8d, %r8d
movl $0x90, %r11d
cmovneq %rsi, %r11
pushq $0x30
popq %r10
movl $0xc0, %esi
cmovneq %r10, %rsi
movq %rdx, 0x18(%rsp)
testb %r9b, %r9b
cmovneq %r11, %rsi
movq 0x18(%rax,%rcx), %r15
addq %r15, %rsi
xorb %r8b, %r9b
leaq 0x60(%r15), %rdx
leaq 0xf0(%r15), %r11
testb %r9b, %r9b
cmovneq %r11, %rdx
movq %rax, 0x8(%rsp)
movl 0x20(%rax,%rcx), %eax
movq %rax, 0x10(%rsp)
leaq 0x150(%r15), %rcx
leaq 0x18(%rbx), %r9
movl (%rbx), %ebp
movl 0x4(%rbx), %r13d
movq %r13, %r12
shlq $0x20, %r12
orq %rbp, %r12
notl %ebp
addl %r13d, %ebp
movl 0x18c(%r15), %eax
movl 0x1a4(%r15), %r10d
leaq 0x38(%rbx), %r15
movl 0x10(%rbx), %r13d
movl 0xc(%rbx), %r11d
movzwl 0x8(%rbx), %r14d
subq $0x8, %rsp
pushq $0x0
pushq %rax
pushq %r10
pushq %rbp
pushq %r14
pushq %r11
pushq 0x48(%rsp)
pushq 0x60(%rsp)
pushq %r12
pushq $0x0
pushq $0x1
pushq $0x0
pushq 0x80(%rsp)
pushq %r13
pushq %r15
callq 0x287a4
addq $0x80, %rsp
testb %al, %al
je 0x340b2
movq 0x8(%rsp), %rax
cmpb $0x1, 0x15(%rbx)
jne 0x34081
movb $0x1, 0x6a(%rax)
jmp 0x34085
movb $0x1, 0x6b(%rax)
cmpb $0x1, 0x69(%rax)
jne 0x340b2
movq 0xd0(%rax), %rdi
movzbl 0x15(%rbx), %eax
pushq $0x2
popq %rsi
subl %eax, %esi
movq (%rdi), %rax
movq 0x48(%rax), %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmpq *%rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop