// File: /workspace/github_cpp_makefile_star2_O1/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, 0x18(%rsp)
movq %rdx, 0x20(%rsp)
movq %rsi, %rbx
movq %rdi, %r10
movzbl 0x15(%rsi), %eax
xorl $0x1, %eax
movq 0xa0(%rdi,%rax,8), %rdi
movb 0x14(%rsi), %al
movb %al, 0x14(%rdi)
movzbl 0x15(%rsi), %eax
xorl $0x1, %eax
shll $0x4, %eax
movq 0x58(%rsi), %rcx
movzbl 0x10(%rcx), %r8d
xorl %edx, %edx
testl %r8d, %r8d
movl $0x90, %ecx
cmovneq %rdx, %rcx
movl $0x30, %edx
movl $0xc0, %esi
cmovneq %rdx, %rsi
movb 0x14(%rbx), %bpl
testb %bpl, %bpl
cmovneq %rcx, %rsi
movq 0x18(%r10,%rax), %r9
addq %r9, %rsi
xorb %r8b, %bpl
leaq 0x60(%r9), %rdx
leaq 0xf0(%r9), %rcx
testb %bpl, %bpl
cmovneq %rcx, %rdx
movq %r10, (%rsp)
movl 0x20(%r10,%rax), %eax
movq %rax, 0x10(%rsp)
leaq 0x150(%r9), %rcx
movl (%rbx), %eax
movl 0x4(%rbx), %r12d
movq %r12, %r13
shlq $0x20, %r13
orq %rax, %r13
notl %eax
addl %r12d, %eax
movl 0x18c(%r9), %r10d
movl 0x1a4(%r9), %r11d
leaq 0x18(%rbx), %r9
leaq 0x38(%rbx), %r14
movq %r14, 0x8(%rsp)
movl 0x10(%rbx), %ebp
movl 0xc(%rbx), %r14d
movzwl 0x8(%rbx), %r15d
subq $0x8, %rsp
xorl %r12d, %r12d
pushq %r12
pushq %r10
pushq %r11
pushq %rax
pushq %r15
pushq %r14
pushq 0x48(%rsp)
pushq 0x58(%rsp)
pushq %r13
pushq %r12
pushq $0x1
pushq $0x0
pushq 0x88(%rsp)
pushq %rbp
pushq 0x80(%rsp)
callq 0x31b00
addq $0x80, %rsp
testb %al, %al
je 0x3e56d
movq (%rsp), %rax
cmpb $0x1, 0x15(%rbx)
jne 0x3e53a
movb $0x1, 0x6a(%rax)
jmp 0x3e53e
movb $0x1, 0x6b(%rax)
cmpb $0x1, 0x69(%rax)
jne 0x3e56d
movq 0xd0(%rax), %rdi
movzbl 0x15(%rbx), %eax
movl $0x2, %esi
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