// File: /workspace/github_cpp_makefile_star2_O3/BenLangmead[P]bowtie/./ebwt.h
// Function: Ebwt::report(SDnaStringExpandable<25, 2> const&, SStringExpandable<char, 25, 2, 0>*, SStringExpandable<char, 25, 2, 0>*, EList<unsigned int, 128> const&, EList<unsigned char, 128> const&, unsigned long, unsigned int, unsigned int, unsigned int, unsigned int, int, unsigned short, unsigned int, unsigned int, EbwtSearchParams const&) const
inline bool Ebwt::report(const BTDnaString& query,
			 BTString* quals,
			 BTString* name,
			 const EList<TIndexOffU>& mmui32,
			 const EList<uint8_t>& refcs,
			 size_t numMms,
			 TIndexOffU off,
			 TIndexOffU top,
			 TIndexOffU bot,
			 uint32_t qlen,
			 int stratum,
			 uint16_t cost,
			 uint32_t patid,
			 uint32_t seed,
			 const EbwtSearchParams& params) const
{
	VMSG_NL("In report");
	assert_geq(cost, (uint32_t)(stratum << 14));
	assert_lt(off, this->_eh._len);
	TIndexOffU tidx;
	TIndexOffU textoff;
	TIndexOffU tlen;
	joinedToTextOff(qlen, off, tidx, textoff, tlen);
	if(tidx == OFF_MASK) {
		return false;
	}
	return params.reportHit(
			query,                    // read sequence
			quals,                    // read quality values
			name,                     // read name
			_fw,                      // true = index is forward; false = mirror
			mmui32,                   // mismatch positions
			refcs,                    // reference characters for mms
			numMms,                   // # mismatches
			make_pair(tidx, textoff), // position
			make_pair<TIndexOffU,TIndexOffU>(0, 0),          // (bogus) mate position
			true,                     // (bogus) mate orientation
			0,                        // (bogus) mate length
			make_pair(top, bot),      // arrows
			tlen,                     // textlen
			qlen,                     // qlen
			stratum,                  // alignment stratum
			cost,                     // cost, including stratum & quality penalty
			bot-top-1,                // # other hits
			patid,                    // pattern id
			seed,                     // pseudo-random seed
			0);                       // mate (0 = unpaired)
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1b8, %rsp            # imm = 0x1B8
movq %r9, %r15
movq %r8, %r13
movq %rcx, 0x8(%rsp)
movq %rdx, %r14
movq %rsi, %r12
movq %rdi, %rbp
cmpb $0x1, 0xc(%rdi)
jne 0x40a1a
leaq 0x30(%rsp), %rdi
callq 0x9310
leaq 0x40(%rsp), %rbx
leaq 0x15812(%rip), %rsi     # 0x561a1
movl $0x9, %edx
movq %rbx, %rdi
callq 0x9560
movq 0x40(%rsp), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x9480
movsbl %al, %esi
movq %rbx, %rdi
callq 0x9050
movq %rax, %rdi
callq 0x92f0
leaq 0x48(%rsp), %rsi
leaq 0x10(%rsp), %rdi
callq 0x97e0
leaq 0x10(%rsp), %rsi
movq %rbp, %rdi
callq 0x1afae
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x409fc
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x94c0
movq 0x29545(%rip), %rsi     # 0x69f48
leaq 0x30(%rsp), %rdi
callq 0x9340
leaq 0xb0(%rsp), %rdi
callq 0x9180
movq %r14, %rbx
movl 0x210(%rsp), %esi
movl 0x1f8(%rsp), %edx
leaq 0x30(%rsp), %r14
leaq 0x10(%rsp), %r8
leaq 0x4(%rsp), %r9
movq %rbp, %rdi
movq %r14, %rcx
callq 0xb702
movl (%r14), %ecx
xorl %eax, %eax
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
cmpq %rdx, %rcx
je 0x40af9
movq 0x238(%rsp), %rdi
movq %r13, %r9
movzwl 0x220(%rsp), %edx
movl 0x208(%rsp), %esi
movq %r15, %r11
movl 0x200(%rsp), %r15d
movzbl 0x10(%rbp), %r8d
movl 0x10(%rsp), %r10d
shlq $0x20, %r10
orq %rcx, %r10
movl %r15d, %r14d
notl %r15d
addl %esi, %r15d
shlq $0x20, %rsi
orq %rsi, %r14
movl 0x4(%rsp), %ebp
subq $0x8, %rsp
movzwl %dx, %r13d
movq %r12, %rsi
movq %rbx, %rdx
movq 0x10(%rsp), %rcx
pushq %rax
movl 0x240(%rsp), %ebx
pushq %rbx
movl 0x240(%rsp), %ebx
pushq %rbx
pushq %r15
pushq %r13
movl 0x248(%rsp), %ebx
pushq %rbx
movl 0x248(%rsp), %ebx
pushq %rbx
pushq %rbp
pushq %r14
pushq %rax
pushq $0x1
pushq $0x0
pushq %r10
pushq 0x260(%rsp)
pushq %r11
callq 0x3166a
addq $0x80, %rsp
addq $0x1b8, %rsp            # imm = 0x1B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x40b30
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x94c0
jmp 0x40b30
jmp 0x40b2d
movq %rax, %rbx
movq 0x29411(%rip), %rsi     # 0x69f48
leaq 0x30(%rsp), %rdi
callq 0x9340
leaq 0xb0(%rsp), %rdi
callq 0x9180
movq %rbx, %rdi
callq 0x9930