// File: /workspace/github_c_makefile_star2_O0/lh3[P]fermi-lite/unitig.c
// Function: check_left_simple
static int check_left_simple(aux_t *a, int beg, int rbeg, const kstring_t *s)
{
	rldintv_t ok[6];
	rldintv_v *prev = &a->a[0], *curr = &a->a[1], *swap;
	int i, j;

	overlap_intv(a->e, s->l, (uint8_t*)s->s, a->min_match, rbeg, 1, prev, 1);
	for (i = rbeg - 1; i >= beg; --i) {
		for (j = 0, curr->n = 0; j < prev->n; ++j) {
			rldintv_t *p = &prev->a[j];
			rld_extend(a->e, p, ok, 1);
			if (ok[0].x[2]) set_bits(a->used, &ok[0]); // some reads end here; they must be contained in a longer read
			if (ok[0].x[2] + ok[(int)s->s[i]].x[2] != p->x[2]) return -1; // potential backward bifurcation
			kv_push(rldintv_t, *curr, ok[(int)s->s[i]]);
		}
		swap = curr; curr = prev; prev = swap;
	} // ~for(i)
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x150, %rsp            # imm = 0x150
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x10(%rbp), %rax
addq $0x10, %rax
movq %rax, -0xe8(%rbp)
movq -0x10(%rbp), %rax
addq $0x10, %rax
addq $0x18, %rax
movq %rax, -0xf0(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rsi
movq -0x20(%rbp), %rax
movq (%rax), %rax
movl %eax, %edx
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rcx
movq -0x10(%rbp), %rax
movl 0x8(%rax), %r8d
movl -0x18(%rbp), %r9d
movq -0xe8(%rbp), %rax
leaq -0x120(%rbp), %rdi
movl $0x1, (%rsp)
movq %rax, 0x8(%rsp)
movl $0x1, 0x10(%rsp)
callq 0xf9f0
movl -0x18(%rbp), %eax
subl $0x1, %eax
movl %eax, -0xfc(%rbp)
movl -0xfc(%rbp), %eax
cmpl -0x14(%rbp), %eax
jl 0x1245c
movl $0x0, -0x100(%rbp)
movq -0xf0(%rbp), %rax
movq $0x0, (%rax)
movslq -0x100(%rbp), %rax
movq -0xe8(%rbp), %rcx
cmpq (%rcx), %rax
jae 0x1241e
movq -0xe8(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x100(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, -0x128(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rdi
movq -0x128(%rbp), %rsi
leaq -0xe0(%rbp), %rdx
movl $0x1, %ecx
callq 0xd6f0
cmpq $0x0, -0xd0(%rbp)
je 0x122cd
movq -0x10(%rbp), %rax
movq 0x70(%rax), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x10c40
movq -0xd0(%rbp), %rax
movq -0x20(%rbp), %rcx
movq 0x10(%rcx), %rcx
movslq -0xfc(%rbp), %rdx
movsbl (%rcx,%rdx), %ecx
movslq %ecx, %rdx
leaq -0xe0(%rbp), %rcx
shlq $0x5, %rdx
addq %rdx, %rcx
addq 0x10(%rcx), %rax
movq -0x128(%rbp), %rcx
cmpq 0x10(%rcx), %rax
je 0x12315
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x12463
jmp 0x12317
movq -0xf0(%rbp), %rax
movq (%rax), %rax
movq -0xf0(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jne 0x123a0
movq -0xf0(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x12353
movq -0xf0(%rbp), %rax
movq 0x8(%rax), %rax
shlq %rax
movq %rax, -0x130(%rbp)
jmp 0x12361
movl $0x2, %eax
movq %rax, -0x130(%rbp)
jmp 0x12361
movq -0x130(%rbp), %rcx
movq -0xf0(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0xf0(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0xf0(%rbp), %rax
movq 0x8(%rax), %rsi
shlq $0x5, %rsi
callq 0x21e0
movq %rax, %rcx
movq -0xf0(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0xf0(%rbp), %rax
movq 0x10(%rax), %rax
movq -0xf0(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
shlq $0x5, %rcx
addq %rcx, %rax
movq -0x20(%rbp), %rcx
movq 0x10(%rcx), %rcx
movslq -0xfc(%rbp), %rdx
movsbl (%rcx,%rdx), %ecx
movslq %ecx, %rdx
leaq -0xe0(%rbp), %rcx
shlq $0x5, %rdx
addq %rdx, %rcx
movq (%rcx), %rdx
movq %rdx, (%rax)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rax)
movq 0x10(%rcx), %rdx
movq %rdx, 0x10(%rax)
movq 0x18(%rcx), %rcx
movq %rcx, 0x18(%rax)
jmp 0x1240a
movl -0x100(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x100(%rbp)
jmp 0x12259
movq -0xf0(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq -0xe8(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0xf8(%rbp), %rax
movq %rax, -0xe8(%rbp)
movl -0xfc(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0xfc(%rbp)
jmp 0x12232
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x150, %rsp            # imm = 0x150
popq %rbp
retq
nop