// File: /workspace/github_cpp_makefile_star2_O1/BenLangmead[P]bowtie/./ebwt.h
// Function: Ebwt::mapLF(SideLocus const&, int, bool) const
inline TIndexOffU Ebwt::mapLF(const SideLocus& l, int c
                                  ASSERT_ONLY(, bool overrideSanity)
                                  ) const
{
#ifdef EBWT_STATS
	const_cast<Ebwt*>(this)->mapLFcs_++;
#endif
	TIndexOffU ret;
	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
movl %edx, %ebp
cmpl $0x4, %edx
jge 0x1e056
testl %ebp, %ebp
js 0x1e0fa
movl %ecx, %r12d
movq %rsi, %r15
movq %rdi, %r14
cmpb $0x1, 0x12(%rsi)
jne 0x1dfe5
cmpb $0x0, 0x1c1(%r14)
je 0x1dff4
movq %r14, %rdi
movq %r15, %rsi
movl %ebp, %edx
callq 0x19526
jmp 0x1e001
movq %r14, %rdi
movq %r15, %rsi
movl %ebp, %edx
callq 0x19d7a
jmp 0x1e001
movq %r14, %rdi
movq %r15, %rsi
movl %ebp, %edx
callq 0x189e8
movq %rax, %rbx
cmpq 0x110(%r14), %rax
jae 0x1e19b
movb 0xe(%r14), %al
xorb $0x1, %al
orb %r12b, %al
jne 0x1e046
xorps %xmm0, %xmm0
movq %rsp, %rdx
movaps %xmm0, 0x10(%rdx)
movaps %xmm0, (%rdx)
movq %r14, %rdi
movq %r15, %rsi
movl $0x1, %ecx
callq 0x1a92a
movl %ebp, %r12d
cmpq %rbx, (%rsp,%r12,8)
jne 0x1e242
movq %rbx, %rax
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq 0x18f5b(%rip), %rbx     # 0x36fb8
leaq 0xf200(%rip), %rsi      # 0x2d264
movq %rbx, %rdi
callq 0x4310
movq %rax, %rdi
movl %ebp, %esi
callq 0x4610
leaq 0xf1fd(%rip), %rsi      # 0x2d27a
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movl $0x4, %esi
callq 0x4610
leaq 0x1127c(%rip), %rsi     # 0x2f315
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
callq 0x4150
leaq 0xf02a(%rip), %r14      # 0x2d0da
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4310
leaq 0x10656(%rip), %rsi     # 0x2e718
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movl $0x9a2, %esi            # imm = 0x9A2
callq 0x4610
movq %rax, %rdi
callq 0x4150
leaq 0x10512(%rip), %rdi     # 0x2e5f8
leaq 0x1020c(%rip), %rcx     # 0x2e2f9
movq %r14, %rsi
movl $0x9a2, %edx            # imm = 0x9A2
callq 0x41c0
movq 0x18eb7(%rip), %rbx     # 0x36fb8
leaq 0xf11a(%rip), %rsi      # 0x2d222
movq %rbx, %rdi
callq 0x4310
movq %rax, %rdi
movl %ebp, %esi
callq 0x4610
leaq 0xf118(%rip), %rsi      # 0x2d239
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
xorl %esi, %esi
callq 0x4610
leaq 0x111db(%rip), %rsi     # 0x2f315
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
callq 0x4150
leaq 0xef89(%rip), %r14      # 0x2d0da
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4310
leaq 0x105b5(%rip), %rsi     # 0x2e718
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movl $0x9a3, %esi            # imm = 0x9A3
callq 0x4610
movq %rax, %rdi
callq 0x4150
leaq 0x10471(%rip), %rdi     # 0x2e5f8
leaq 0x1016b(%rip), %rcx     # 0x2e2f9
movq %r14, %rsi
movl $0x9a3, %edx            # imm = 0x9A3
callq 0x41c0
movq 0x18e16(%rip), %r15     # 0x36fb8
leaq 0xf0bb(%rip), %rsi      # 0x2d264
movq %r15, %rdi
callq 0x4310
movq %rax, %rdi
movq %rbx, %rsi
callq 0x40c0
leaq 0xf0b7(%rip), %rsi      # 0x2d27a
movq %rax, %rdi
callq 0x4310
movq 0x110(%r14), %rsi
movq %rax, %rdi
callq 0x40c0
leaq 0x11134(%rip), %rsi     # 0x2f315
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
callq 0x4150
leaq 0xeee2(%rip), %rbx      # 0x2d0da
movq %r15, %rdi
movq %rbx, %rsi
callq 0x4310
leaq 0x1050e(%rip), %rsi     # 0x2e718
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movl $0x9ac, %esi            # imm = 0x9AC
callq 0x4610
movq %rax, %rdi
callq 0x4150
leaq 0x103ca(%rip), %rdi     # 0x2e5f8
leaq 0x100c4(%rip), %rcx     # 0x2e2f9
movq %rbx, %rsi
movl $0x9ac, %edx            # imm = 0x9AC
callq 0x41c0
movq 0x18d6f(%rip), %r14     # 0x36fb8
leaq 0xeee6(%rip), %rsi      # 0x2d136
movq %r14, %rdi
callq 0x4310
movq (%rsp,%r12,8), %rsi
movq %rax, %rdi
callq 0x40c0
leaq 0xeee1(%rip), %r15      # 0x2d14c
movq %rax, %rdi
movq %r15, %rsi
callq 0x4310
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 0x40c0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x2, %edx
movl %edx, 0x18(%rax,%rcx)
leaq 0xee9e(%rip), %rsi      # 0x2d151
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movq %rbx, %rsi
callq 0x40c0
movq %rax, %rdi
movq %r15, %rsi
callq 0x4310
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 0x40c0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x2, %edx
movl %edx, 0x18(%rax,%rcx)
leaq 0x11008(%rip), %rsi     # 0x2f315
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
callq 0x4150
leaq 0xedb6(%rip), %rbx      # 0x2d0da
movq %r14, %rdi
movq %rbx, %rsi
callq 0x4310
leaq 0x103e2(%rip), %rsi     # 0x2e718
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movl $0x9b4, %esi            # imm = 0x9B4
callq 0x4610
movq %rax, %rdi
callq 0x4150
leaq 0x1029e(%rip), %rdi     # 0x2e5f8
leaq 0xff98(%rip), %rcx      # 0x2e2f9
movq %rbx, %rsi
movl $0x9b4, %edx            # imm = 0x9B4
callq 0x41c0