// File: /workspace/github_cpp_makefile_star2_O2/BenLangmead[P]bowtie/./ebwt.h
// Function: Ebwt::mapLF(SideLocus const&, bool) const
inline TIndexOffU Ebwt::mapLF(const SideLocus& l
                                  ASSERT_ONLY(, bool overrideSanity)
                                  ) const
{
#ifdef EBWT_STATS
	const_cast<Ebwt*>(this)->mapLFs_++;
#endif
	TIndexOffU ret;
	assert(l.side(this->_ebwt) != NULL);
	int c = rowL(l);
	assert_lt(c, 4);
	assert_geq(c, 0);
	if(l._fw) {
		// Forward side
		ret = !_eh._isBt2Index ? countFwSide(l, c)
		                       : countBt2Side(l, c);
	}
	else {
		ret = countBwSide(l, c); // Backward side
	}
	assert_lt(ret, this->_eh._bwtLen);
#ifndef NDEBUG
	if(_sanity && !overrideSanity) {
		// Make sure results match up with results from mapLFEx;
		// be sure to override sanity-checking in the callee, or we'll
		// have infinite recursion
		TIndexOffU arrs[] = { 0, 0, 0, 0 };
		mapLFEx(l, arrs, true);
		assert_eq(arrs[c], ret);
	}
#endif
	return ret;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
cmpq $0x0, 0xc8(%rdi)
je 0xdea2
movl %edx, %r12d
movq %rsi, %r15
movq %rdi, %r14
callq 0xe1d8
movl %eax, %ebp
cmpl $0x4, %eax
jge 0xdec1
testl %ebp, %ebp
js 0xdf63
cmpb $0x1, 0x12(%r15)
jne 0xde33
cmpb $0x0, 0x1c1(%r14)
je 0xde42
movq %r14, %rdi
movq %r15, %rsi
movl %ebp, %edx
callq 0x1569e
jmp 0xde4f
movq %r14, %rdi
movq %r15, %rsi
movl %ebp, %edx
callq 0x15daa
jmp 0xde4f
movq %r14, %rdi
movq %r15, %rsi
movl %ebp, %edx
callq 0x14c98
movq %rax, %rbx
cmpq 0x110(%r14), %rax
jae 0xe004
movb 0xe(%r14), %al
xorb $0x1, %al
orb %r12b, %al
jne 0xde92
xorps %xmm0, %xmm0
movq %rsp, %rdx
movaps %xmm0, 0x10(%rdx)
movaps %xmm0, (%rdx)
pushq $0x1
popq %rcx
movq %r14, %rdi
movq %r15, %rsi
callq 0x167d8
movl %ebp, %r12d
cmpq %rbx, (%rsp,%r12,8)
jne 0xe0ab
movq %rbx, %rax
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x1b26e(%rip), %rdi     # 0x29117
leaq 0x1a24d(%rip), %rsi     # 0x280fd
leaq 0x1b27c(%rip), %rcx     # 0x29133
movl $0x97c, %edx            # imm = 0x97C
callq 0x4190
movq 0x260f0(%rip), %rbx     # 0x33fb8
leaq 0x1a3b8(%rip), %rsi     # 0x28287
movq %rbx, %rdi
callq 0x42d0
movq %rax, %rdi
movl %ebp, %esi
callq 0x45d0
leaq 0x1a3b5(%rip), %rsi     # 0x2829d
movq %rax, %rdi
callq 0x42d0
pushq $0x4
popq %rsi
movq %rax, %rdi
callq 0x45d0
leaq 0x1c516(%rip), %rsi     # 0x2a418
movq %rax, %rdi
callq 0x42d0
movq %rax, %rdi
callq 0x4130
leaq 0x1a1e4(%rip), %r14     # 0x280fd
movq %rbx, %rdi
movq %r14, %rsi
callq 0x42d0
leaq 0x1b810(%rip), %rsi     # 0x2973b
movq %rax, %rdi
callq 0x42d0
movq %rax, %rdi
movl $0x97e, %esi            # imm = 0x97E
callq 0x45d0
movq %rax, %rdi
callq 0x4130
leaq 0x1b6cc(%rip), %rdi     # 0x2961b
leaq 0x1b1dd(%rip), %rcx     # 0x29133
movq %r14, %rsi
movl $0x97e, %edx            # imm = 0x97E
callq 0x4190
movq 0x2604e(%rip), %rbx     # 0x33fb8
leaq 0x1a2d4(%rip), %rsi     # 0x28245
movq %rbx, %rdi
callq 0x42d0
movq %rax, %rdi
movl %ebp, %esi
callq 0x45d0
leaq 0x1a2d2(%rip), %rsi     # 0x2825c
movq %rax, %rdi
callq 0x42d0
movq %rax, %rdi
xorl %esi, %esi
callq 0x45d0
leaq 0x1c475(%rip), %rsi     # 0x2a418
movq %rax, %rdi
callq 0x42d0
movq %rax, %rdi
callq 0x4130
leaq 0x1a143(%rip), %r14     # 0x280fd
movq %rbx, %rdi
movq %r14, %rsi
callq 0x42d0
leaq 0x1b76f(%rip), %rsi     # 0x2973b
movq %rax, %rdi
callq 0x42d0
movq %rax, %rdi
movl $0x97f, %esi            # imm = 0x97F
callq 0x45d0
movq %rax, %rdi
callq 0x4130
leaq 0x1b62b(%rip), %rdi     # 0x2961b
leaq 0x1b13c(%rip), %rcx     # 0x29133
movq %r14, %rsi
movl $0x97f, %edx            # imm = 0x97F
callq 0x4190
movq 0x25fad(%rip), %r15     # 0x33fb8
leaq 0x1a275(%rip), %rsi     # 0x28287
movq %r15, %rdi
callq 0x42d0
movq %rax, %rdi
movq %rbx, %rsi
callq 0x40b0
leaq 0x1a271(%rip), %rsi     # 0x2829d
movq %rax, %rdi
callq 0x42d0
movq 0x110(%r14), %rsi
movq %rax, %rdi
callq 0x40b0
leaq 0x1c3ce(%rip), %rsi     # 0x2a418
movq %rax, %rdi
callq 0x42d0
movq %rax, %rdi
callq 0x4130
leaq 0x1a09c(%rip), %rbx     # 0x280fd
movq %r15, %rdi
movq %rbx, %rsi
callq 0x42d0
leaq 0x1b6c8(%rip), %rsi     # 0x2973b
movq %rax, %rdi
callq 0x42d0
movq %rax, %rdi
movl $0x988, %esi            # imm = 0x988
callq 0x45d0
movq %rax, %rdi
callq 0x4130
leaq 0x1b584(%rip), %rdi     # 0x2961b
leaq 0x1b095(%rip), %rcx     # 0x29133
movq %rbx, %rsi
movl $0x988, %edx            # imm = 0x988
callq 0x4190
movq 0x25f06(%rip), %r14     # 0x33fb8
leaq 0x1a0a0(%rip), %rsi     # 0x28159
movq %r14, %rdi
callq 0x42d0
movq (%rsp,%r12,8), %rsi
movq %rax, %rdi
callq 0x40b0
leaq 0x1a09b(%rip), %r15     # 0x2816f
movq %rax, %rdi
movq %r15, %rsi
callq 0x42d0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x8, %edx
movl %edx, 0x18(%rax,%rcx)
movq (%rsp,%r12,8), %rsi
movq %rax, %rdi
callq 0x40b0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x2, %edx
movl %edx, 0x18(%rax,%rcx)
leaq 0x1a058(%rip), %rsi     # 0x28174
movq %rax, %rdi
callq 0x42d0
movq %rax, %rdi
movq %rbx, %rsi
callq 0x40b0
movq %rax, %rdi
movq %r15, %rsi
callq 0x42d0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x8, %edx
movl %edx, 0x18(%rax,%rcx)
movq %rax, %rdi
movq %rbx, %rsi
callq 0x40b0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x2, %edx
movl %edx, 0x18(%rax,%rcx)
leaq 0x1c2a2(%rip), %rsi     # 0x2a418
movq %rax, %rdi
callq 0x42d0
movq %rax, %rdi
callq 0x4130
leaq 0x19f70(%rip), %rbx     # 0x280fd
movq %r14, %rdi
movq %rbx, %rsi
callq 0x42d0
leaq 0x1b59c(%rip), %rsi     # 0x2973b
movq %rax, %rdi
callq 0x42d0
movq %rax, %rdi
movl $0x990, %esi            # imm = 0x990
callq 0x45d0
movq %rax, %rdi
callq 0x4130
leaq 0x1b458(%rip), %rdi     # 0x2961b
leaq 0x1af69(%rip), %rcx     # 0x29133
movq %rbx, %rsi
movl $0x990, %edx            # imm = 0x990
callq 0x4190
nop