// File: /workspace/github_cpp_makefile_star2_O1/BenLangmead[P]bowtie/./sstring.h
// Function: bool sstr_suf_lt<S2bDnaString, S2bDnaString>(S2bDnaString const&, unsigned long, unsigned long, S2bDnaString const&, unsigned long, unsigned long, bool)
static inline bool sstr_suf_lt(
	const T1& s1, size_t suf1, size_t len1,
	const T2& s2, size_t suf2, size_t len2,
	bool endlt = true)
{
	assert_leq(suf1, len1);
	assert_leq(suf2, len2);
	size_t left1 = len1 - suf1;
	size_t left2 = len2 - suf2;
	size_t minleft = (left1 < left2 ? left1 : left2);
	for(size_t i = 0; i < minleft; i++) {
		if(s1[suf1+i] < s2[suf2+i]) {
			return true;
		} else if(s1[suf1+i] > s2[suf2+i]) {
			return false;
		}
	}
	if(left1 == left2) return false;
	return (left1 < left2) == endlt;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rsi, %r14
movq %rdx, %r15
subq %rsi, %r15
jb 0xf6b0
movq %r9, %r12
movq %r8, %rbx
movq %r9, %rax
subq %r8, %rax
jb 0xf756
cmpq %rax, %r15
movq %rax, %rdx
cmovbq %r15, %rdx
movq %rdx, 0x30(%rsp)
testq %rdx, %rdx
setne %r13b
je 0xf66e
movq %rax, 0x10(%rsp)
movq %rdi, 0x20(%rsp)
movq %r14, %rsi
movq %rcx, %r12
callq 0x268fa
movl %eax, %ebp
movq %r12, 0x28(%rsp)
movq %r12, %rdi
movq %rbx, %rsi
callq 0x268fa
movb $0x1, %dl
cmpb %al, %bpl
jl 0xf688
movb %r13b, 0xf(%rsp)
movq %r15, 0x18(%rsp)
movl $0x1, %r15d
movq 0x28(%rsp), %r12
movq 0x20(%rsp), %r13
movq %r13, %rdi
movq %r14, %rsi
callq 0x268fa
movl %eax, %ebp
movq %r12, %rdi
movq %rbx, %rsi
callq 0x268fa
cmpb %al, %bpl
jg 0xf670
cmpq 0x30(%rsp), %r15
setb %r13b
je 0xf683
movb %r13b, 0xf(%rsp)
incq %r14
movq 0x20(%rsp), %r13
movq %r13, %rdi
movq %r14, %rsi
callq 0x268fa
movl %eax, %ebp
incq %rbx
movq 0x28(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0x268fa
incq %r15
cmpb %al, %bpl
jge 0xf5fe
movq 0x18(%rsp), %r15
movq 0x10(%rsp), %rax
movb 0xf(%rsp), %r13b
movb $0x1, %dl
jmp 0xf68d
jmp 0xf68d
xorl %edx, %edx
movq 0x18(%rsp), %r15
movq 0x10(%rsp), %rax
movb 0xf(%rsp), %r13b
jmp 0xf68d
movq 0x18(%rsp), %r15
movq 0x10(%rsp), %rax
xorl %ecx, %ecx
cmpq %rax, %r15
seta %cl
movzbl %dl, %eax
testb $0x1, %r13b
cmovel %ecx, %eax
andb $0x1, %al
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rdx, %rbp
movq 0x278fe(%rip), %rbx     # 0x36fb8
leaq 0x1daff(%rip), %rsi     # 0x2d1c0
movq %rbx, %rdi
callq 0x4310
movq %rax, %rdi
movq %r14, %rsi
callq 0x40c0
leaq 0x1dafc(%rip), %rsi     # 0x2d1d7
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movq %rbp, %rsi
callq 0x40c0
leaq 0x1fc20(%rip), %rsi     # 0x2f315
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
callq 0x4150
leaq 0x20a12(%rip), %r14     # 0x3011e
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4310
leaq 0x1effa(%rip), %rsi     # 0x2e718
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movl $0xcc, %esi
callq 0x4610
movq %rax, %rdi
callq 0x4150
leaq 0x1eeb6(%rip), %rdi     # 0x2e5f8
leaq 0x20a9c(%rip), %rcx     # 0x301e5
movq %r14, %rsi
movl $0xcc, %edx
callq 0x41c0
movq 0x2785b(%rip), %r14     # 0x36fb8
leaq 0x1da5c(%rip), %rsi     # 0x2d1c0
movq %r14, %rdi
callq 0x4310
movq %rax, %rdi
movq %rbx, %rsi
callq 0x40c0
leaq 0x1da59(%rip), %rsi     # 0x2d1d7
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movq %r12, %rsi
callq 0x40c0
leaq 0x1fb7d(%rip), %rsi     # 0x2f315
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
callq 0x4150
leaq 0x2096f(%rip), %rbx     # 0x3011e
movq %r14, %rdi
movq %rbx, %rsi
callq 0x4310
leaq 0x1ef57(%rip), %rsi     # 0x2e718
movq %rax, %rdi
callq 0x4310
movq %rax, %rdi
movl $0xcd, %esi
callq 0x4610
movq %rax, %rdi
callq 0x4150
leaq 0x1ee13(%rip), %rdi     # 0x2e5f8
leaq 0x209f9(%rip), %rcx     # 0x301e5
movq %rbx, %rsi
movl $0xcd, %edx
callq 0x41c0
nop