// File: /workspace/github_c_makefile_star2_O1/lh3[P]minigraph/miniwfa.c
// Function: wf_next_tb
static void wf_next_tb(int32_t lo, int32_t hi, int32_t *H, int32_t *E1, int32_t *F1, int32_t *E2, int32_t *F2, uint8_t *ax,
					   const int32_t *pHx, const int32_t *pHo1, const int32_t *pHo2,
					   const int32_t *pE1, const int32_t *pF1, const int32_t *pE2, const int32_t *pF2)
{
	int32_t d;
	PRAGMA_LOOP_VECTORIZE
	for (d = lo; d <= hi; ++d) {
		int32_t h, f, e;
		uint8_t x = 0, ze, zf, z;
		x |= pHo1[d-1] >= pE1[d-1]? 0 : 0x08;
		E1[d] = wf_max(pHo1[d-1], pE1[d-1]);
		x |= pHo2[d-1] >= pE2[d-1]? 0 : 0x20;
		E2[d] = wf_max(pHo2[d-1], pE2[d-1]);
		ze = E1[d] >= E2[d]? 1 : 3;
		e = wf_max(E1[d], E2[d]);
		x |= pHo1[d+1] >= pF1[d+1]? 0 : 0x10;
		F1[d] = wf_max(pHo1[d+1], pF1[d+1]) + 1;
		x |= pHo2[d+1] >= pF2[d+1]? 0 : 0x40;
		F2[d] = wf_max(pHo2[d+1], pF2[d+1]) + 1;
		zf = F1[d] >= F2[d]? 2 : 4;
		f = wf_max(F1[d], F2[d]);
		z = e >= f? ze : zf;
		h = wf_max(e, f);
		z = pHx[d] + 1 >= h? 0 : z;
		H[d] = wf_max(pHx[d] + 1, h);
		ax[d] = x | z;
	}
}

// Assembly:
cmpl %esi, %edi
jg 0x14f60
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdx, %r10
movq 0x70(%rsp), %r12
movq 0x68(%rsp), %r13
movq 0x60(%rsp), %r14
movq 0x58(%rsp), %r15
movq 0x50(%rsp), %rbx
movq 0x48(%rsp), %r11
movq 0x38(%rsp), %rbp
movslq %edi, %rdx
leaq (%rcx,%rdx,4), %rax
leaq (%r9,%rdx,4), %rcx
movq %rcx, -0x8(%rsp)
leaq (%r8,%rdx,4), %r8
leaq (%rbp,%rdx,4), %rcx
movq %rcx, -0x10(%rsp)
leaq (%r11,%rdx,4), %rcx
movq %rcx, -0x18(%rsp)
leaq (%r10,%rdx,4), %rcx
movq %rcx, -0x20(%rsp)
movq 0x40(%rsp), %r11
addq %rdx, %r11
leaq (%rbx,%rdx,4), %rbx
addq $0x4, %rbx
leaq -0x4(%r14,%rdx,4), %rcx
movq %rcx, -0x28(%rsp)
leaq (%r15,%rdx,4), %r15
addq $0x4, %r15
leaq (%r12,%rdx,4), %rcx
addq $-0x4, %rcx
movq %rcx, -0x30(%rsp)
subl %edi, %esi
incl %esi
leaq 0x4(,%rdx,4), %rdi
addq %r13, %rdi
movq 0x78(%rsp), %rcx
leaq (%rcx,%rdx,4), %r13
addq $0x4, %r13
xorl %ebp, %ebp
movl -0x8(%rbx,%rbp,4), %ecx
movq -0x28(%rsp), %rdx
movl (%rdx,%rbp,4), %edx
cmpl %edx, %ecx
setl %r9b
cmovgl %ecx, %edx
shlb $0x3, %r9b
movl %edx, (%rax,%rbp,4)
movl -0x8(%r15,%rbp,4), %edx
movq -0x30(%rsp), %rcx
movl (%rcx,%rbp,4), %ecx
cmpl %ecx, %edx
setl %r10b
cmovgl %edx, %ecx
shlb $0x5, %r10b
orb %r9b, %r10b
movq -0x8(%rsp), %rdx
movl %ecx, (%rdx,%rbp,4)
movl (%rax,%rbp,4), %edx
cmpl %ecx, %edx
setl %r9b
cmovgl %edx, %ecx
movl (%rbx,%rbp,4), %edx
movl (%rdi,%rbp,4), %r14d
cmpl %r14d, %edx
setl %r12b
cmovgl %edx, %r14d
shlb $0x4, %r12b
orb %r10b, %r12b
incl %r14d
movl %r14d, (%r8,%rbp,4)
movl (%r15,%rbp,4), %edx
movl (%r13,%rbp,4), %r14d
cmpl %r14d, %edx
setl %r10b
cmovgl %edx, %r14d
shlb $0x6, %r10b
orb %r12b, %r10b
leal 0x1(%r14), %edx
movq -0x10(%rsp), %r12
movl %edx, (%r12,%rbp,4)
movl (%r8,%rbp,4), %r12d
cmpl %r14d, %r12d
setle %r14b
cmovgl %r12d, %edx
addb %r14b, %r14b
addb $0x2, %r14b
movq -0x18(%rsp), %r12
movl (%r12,%rbp,4), %r12d
incl %r12d
addb %r9b, %r9b
incb %r9b
cmpl %edx, %ecx
cmovgl %ecx, %edx
movzbl %r9b, %ecx
movzbl %r14b, %r9d
cmovgel %ecx, %r9d
cmpl %edx, %r12d
cmovgl %r12d, %edx
movq -0x20(%rsp), %rcx
movl %edx, (%rcx,%rbp,4)
movl $0x0, %ecx
cmovgel %ecx, %r9d
orb %r10b, %r9b
movb %r9b, (%r11,%rbp)
incq %rbp
cmpl %ebp, %esi
jne 0x14e5e
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq