// File: /workspace/github_cpp_makefile_star2_O2/BenLangmead[P]bowtie/./aligner_metrics.h
// Function: AlignerMetrics::finishRead()
void finishRead() {
		reads_++;
		if(curIsHomoPoly_) homoReads_++;
		else if(curIsLowEntropy_) lowEntReads_++;
		else hiEntReads_++;
		if(curHadRanges_) alignedReads_++;
		else unalignedReads_++;
		bwtOpsPerRead_.push((float)curBwtOps_);
		backtracksPerRead_.push((float)curBacktracks_);
		// Drill down by entropy
		if(curIsHomoPoly_) {
			bwtOpsPerHomoRead_.push((float)curBwtOps_);
			backtracksPerHomoRead_.push((float)curBacktracks_);
		} else if(curIsLowEntropy_) {
			bwtOpsPerLoEntRead_.push((float)curBwtOps_);
			backtracksPerLoEntRead_.push((float)curBacktracks_);
		} else {
			bwtOpsPerHiEntRead_.push((float)curBwtOps_);
			backtracksPerHiEntRead_.push((float)curBacktracks_);
		}
		// Drill down by whether it aligned
		if(curHadRanges_) {
			bwtOpsPerAlignedRead_.push((float)curBwtOps_);
			backtracksPerAlignedRead_.push((float)curBacktracks_);
		} else {
			bwtOpsPerUnalignedRead_.push((float)curBwtOps_);
			backtracksPerUnalignedRead_.push((float)curBacktracks_);
		}
		if(curNumNs_ == 0) {
			lessThanThreeNRreads_++;
			bwtOpsPer0nRead_.push((float)curBwtOps_);
			backtracksPer0nRead_.push((float)curBacktracks_);
		} else if(curNumNs_ == 1) {
			lessThanThreeNRreads_++;
			bwtOpsPer1nRead_.push((float)curBwtOps_);
			backtracksPer1nRead_.push((float)curBacktracks_);
		} else if(curNumNs_ == 2) {
			lessThanThreeNRreads_++;
			bwtOpsPer2nRead_.push((float)curBwtOps_);
			backtracksPer2nRead_.push((float)curBacktracks_);
		} else {
			threeOrMoreNReads_++;
			bwtOpsPer3orMoreNRead_.push((float)curBwtOps_);
			backtracksPer3orMoreNRead_.push((float)curBacktracks_);
		}
	}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
incl 0x10(%rdi)
cmpb $0x1, 0xa(%rdi)
jne 0x296d5
incl 0x14(%rbx)
jmp 0x296e3
cmpb $0x1, 0x9(%rbx)
jne 0x296e0
incl 0x18(%rbx)
jmp 0x296e3
incl 0x1c(%rbx)
cmpb $0x1, 0xb(%rbx)
jne 0x296ee
incl 0x20(%rbx)
jmp 0x296f1
incl 0x24(%rbx)
leaq 0x30(%rbx), %rdi
movl 0x4(%rbx), %eax
cvtsi2ss %rax, %xmm0
callq 0x29974
leaq 0x60(%rbx), %rdi
movl (%rbx), %eax
cvtsi2ss %rax, %xmm0
callq 0x29974
cmpb $0x1, 0xa(%rbx)
jne 0x29733
leaq 0x90(%rbx), %rdi
movl 0x4(%rbx), %eax
cvtsi2ss %rax, %xmm0
callq 0x29974
movl $0xc0, %edi
jmp 0x29765
movl 0x4(%rbx), %eax
cvtsi2ss %rax, %xmm0
cmpb $0x1, 0x9(%rbx)
jne 0x29754
leaq 0xf0(%rbx), %rdi
callq 0x29974
movl $0x120, %edi            # imm = 0x120
jmp 0x29765
leaq 0x150(%rbx), %rdi
callq 0x29974
movl $0x180, %edi            # imm = 0x180
addq %rbx, %rdi
movl (%rbx), %eax
cvtsi2ss %rax, %xmm0
callq 0x29974
leaq 0x210(%rbx), %rdi
leaq 0x1b0(%rbx), %rax
movl 0x4(%rbx), %ecx
cvtsi2ss %rcx, %xmm0
leaq 0x240(%rbx), %rcx
leaq 0x1e0(%rbx), %r14
cmpb $0x0, 0xb(%rbx)
cmovneq %rax, %rdi
cmoveq %rcx, %r14
callq 0x29974
movl (%rbx), %eax
cvtsi2ss %rax, %xmm0
movq %r14, %rdi
callq 0x29974
movl 0xc(%rbx), %eax
cmpl $0x2, %eax
je 0x297e9
cmpl $0x1, %eax
je 0x297d9
testl %eax, %eax
jne 0x297f9
incl 0x2c(%rbx)
movl $0x2a0, %r14d           # imm = 0x2A0
movl $0x270, %edi            # imm = 0x270
jmp 0x29807
incl 0x2c(%rbx)
movl $0x300, %r14d           # imm = 0x300
movl $0x2d0, %edi            # imm = 0x2D0
jmp 0x29807
incl 0x2c(%rbx)
movl $0x360, %r14d           # imm = 0x360
movl $0x330, %edi            # imm = 0x330
jmp 0x29807
incl 0x28(%rbx)
movl $0x3c0, %r14d           # imm = 0x3C0
movl $0x390, %edi            # imm = 0x390
addq %rbx, %rdi
movl 0x4(%rbx), %eax
cvtsi2ss %rax, %xmm0
callq 0x29974
movl (%rbx), %eax
cvtsi2ss %rax, %xmm0
addq %rbx, %r14
movq %r14, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x29974