// File: chhylp123[P]hifiasm/inter.cpp
// Function: full_lst_set(emask_t*, unsigned long, ul_ov_t*, unsigned long, unsigned long)
void full_lst_set(emask_t *a, uint64_t a_n, ul_ov_t *sa, uint64_t sn, uint64_t skip_n)
{
	uint64_t ff = 0, k, i; int64_t sql, stl, os, oe, ovlp;
	if(sn == 0 && skip_n == 0) {
		ff = 1;
	} else if(skip_n > 0) {
		ff = 0;
	} else {///sn > 0 && skip_n == 0
		for (k = 0; k < sn; k++) {
			sql = sa[k].qe - sa[k].qs;
			stl = sa[k].te - sa[k].ts;
			for (i = 0; i < a_n && sql > 0 && stl > 0; i++) {
				os = MAX(sa[k].qs, a[i].qs); oe = MIN(sa[k].qe, a[i].qe);
				ovlp = ((oe>os)?(oe-os):(0)); sql -= ovlp;

				os = MAX(sa[k].ts, a[i].ts); oe = MIN(sa[k].te, a[i].te);
				ovlp = ((oe>os)?(oe-os):(0)); stl -= ovlp;
			}
			if((sql > 256) && (sql > ((sa[k].qe - sa[k].qs)*0.06))) break;
			if((sql <= 256) && (sql > ((sa[k].qe - sa[k].qs)*0.6))) break;
			if((stl > 256) && (stl > ((sa[k].te - sa[k].ts)*0.06))) break;
			if((stl <= 256) && (stl > ((sa[k].te - sa[k].ts)*0.6))) break;
		}
		if(k < sn) ff = 0;
		else ff = 1;
	}
	for (k = 0; k < a_n; k++) a[k].full = ff;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x2cb1ff
cmpq $0x0, -0x28(%rbp)
jne 0x2cb1ff
movq $0x1, -0x30(%rbp)
jmp 0x2cb5ea
cmpq $0x0, -0x28(%rbp)
jbe 0x2cb213
movq $0x0, -0x30(%rbp)
jmp 0x2cb5e8
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpq -0x20(%rbp), %rax
jae 0x2cb5ca
movq -0x18(%rbp), %rax
imulq $0x1c, -0x38(%rbp), %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movq -0x18(%rbp), %rcx
imulq $0x1c, -0x38(%rbp), %rdx
addq %rdx, %rcx
subl 0x4(%rcx), %eax
movl %eax, %eax
movq %rax, -0x48(%rbp)
movq -0x18(%rbp), %rax
imulq $0x1c, -0x38(%rbp), %rcx
addq %rcx, %rax
movl 0x14(%rax), %eax
movq -0x18(%rbp), %rcx
imulq $0x1c, -0x38(%rbp), %rdx
addq %rdx, %rcx
subl 0x10(%rcx), %eax
movl %eax, %eax
movq %rax, -0x50(%rbp)
movq $0x0, -0x40(%rbp)
movq -0x40(%rbp), %rcx
xorl %eax, %eax
cmpq -0x10(%rbp), %rcx
movb %al, -0x69(%rbp)
jae 0x2cb29f
xorl %eax, %eax
cmpq $0x0, -0x48(%rbp)
movb %al, -0x69(%rbp)
jle 0x2cb29f
cmpq $0x0, -0x50(%rbp)
setg %al
movb %al, -0x69(%rbp)
movb -0x69(%rbp), %al
testb $0x1, %al
jne 0x2cb2ab
jmp 0x2cb499
movq -0x18(%rbp), %rax
imulq $0x1c, -0x38(%rbp), %rcx
addq %rcx, %rax
movl 0x4(%rax), %eax
movq -0x8(%rbp), %rcx
movq -0x40(%rbp), %rdx
shlq $0x5, %rdx
addq %rdx, %rcx
cmpl 0xc(%rcx), %eax
jb 0x2cb2e2
movq -0x18(%rbp), %rax
imulq $0x1c, -0x38(%rbp), %rcx
addq %rcx, %rax
movl 0x4(%rax), %eax
movl %eax, -0x70(%rbp)
jmp 0x2cb2f7
movq -0x8(%rbp), %rax
movq -0x40(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movl 0xc(%rax), %eax
movl %eax, -0x70(%rbp)
movl -0x70(%rbp), %eax
movl %eax, %eax
movq %rax, -0x58(%rbp)
movq -0x18(%rbp), %rax
imulq $0x1c, -0x38(%rbp), %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movq -0x8(%rbp), %rcx
movq -0x40(%rbp), %rdx
shlq $0x5, %rdx
addq %rdx, %rcx
cmpl 0x10(%rcx), %eax
ja 0x2cb337
movq -0x18(%rbp), %rax
imulq $0x1c, -0x38(%rbp), %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movl %eax, -0x74(%rbp)
jmp 0x2cb34c
movq -0x8(%rbp), %rax
movq -0x40(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movl 0x10(%rax), %eax
movl %eax, -0x74(%rbp)
movl -0x74(%rbp), %eax
movl %eax, %eax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
cmpq -0x58(%rbp), %rax
jle 0x2cb36d
movq -0x60(%rbp), %rax
subq -0x58(%rbp), %rax
movq %rax, -0x80(%rbp)
jmp 0x2cb375
xorl %eax, %eax
movq %rax, -0x80(%rbp)
jmp 0x2cb375
movq -0x80(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rcx
movq -0x48(%rbp), %rax
subq %rcx, %rax
movq %rax, -0x48(%rbp)
movq -0x18(%rbp), %rax
imulq $0x1c, -0x38(%rbp), %rcx
addq %rcx, %rax
movl 0x10(%rax), %eax
movq -0x8(%rbp), %rcx
movq -0x40(%rbp), %rdx
shlq $0x5, %rdx
addq %rdx, %rcx
cmpl 0x14(%rcx), %eax
jb 0x2cb3c6
movq -0x18(%rbp), %rax
imulq $0x1c, -0x38(%rbp), %rcx
addq %rcx, %rax
movl 0x10(%rax), %eax
movl %eax, -0x84(%rbp)
jmp 0x2cb3de
movq -0x8(%rbp), %rax
movq -0x40(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movl 0x14(%rax), %eax
movl %eax, -0x84(%rbp)
movl -0x84(%rbp), %eax
movl %eax, %eax
movq %rax, -0x58(%rbp)
movq -0x18(%rbp), %rax
imulq $0x1c, -0x38(%rbp), %rcx
addq %rcx, %rax
movl 0x14(%rax), %eax
movq -0x8(%rbp), %rcx
movq -0x40(%rbp), %rdx
shlq $0x5, %rdx
addq %rdx, %rcx
cmpl 0x18(%rcx), %eax
ja 0x2cb424
movq -0x18(%rbp), %rax
imulq $0x1c, -0x38(%rbp), %rcx
addq %rcx, %rax
movl 0x14(%rax), %eax
movl %eax, -0x88(%rbp)
jmp 0x2cb43c
movq -0x8(%rbp), %rax
movq -0x40(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movl 0x18(%rax), %eax
movl %eax, -0x88(%rbp)
movl -0x88(%rbp), %eax
movl %eax, %eax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
cmpq -0x58(%rbp), %rax
jle 0x2cb463
movq -0x60(%rbp), %rax
subq -0x58(%rbp), %rax
movq %rax, -0x90(%rbp)
jmp 0x2cb46e
xorl %eax, %eax
movq %rax, -0x90(%rbp)
jmp 0x2cb46e
movq -0x90(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rcx
movq -0x50(%rbp), %rax
subq %rcx, %rax
movq %rax, -0x50(%rbp)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x2cb279
cmpq $0x100, -0x48(%rbp)     # imm = 0x100
jle 0x2cb4e2
cvtsi2sdq -0x48(%rbp), %xmm0
movq -0x18(%rbp), %rax
movq -0x38(%rbp), %rcx
leaq (%rcx,%rcx,8), %rdx
leaq (%rdx,%rdx,2), %rdx
addq %rcx, %rdx
movl 0x4(%rax,%rdx), %ecx
movl 0x8(%rax,%rdx), %eax
subl %ecx, %eax
cvtsi2sd %rax, %xmm1
movsd 0xb6e05(%rip), %xmm2    # 0x3822d8
mulsd %xmm2, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x2cb4e2
jmp 0x2cb5ca
cmpq $0x100, -0x48(%rbp)     # imm = 0x100
jg 0x2cb52b
cvtsi2sdq -0x48(%rbp), %xmm0
movq -0x18(%rbp), %rax
movq -0x38(%rbp), %rcx
leaq (%rcx,%rcx,8), %rdx
leaq (%rdx,%rdx,2), %rdx
addq %rcx, %rdx
movl 0x4(%rax,%rdx), %ecx
movl 0x8(%rax,%rdx), %eax
subl %ecx, %eax
cvtsi2sd %rax, %xmm1
movsd 0xb6cf4(%rip), %xmm2    # 0x382210
mulsd %xmm2, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x2cb52b
jmp 0x2cb5ca
cmpq $0x100, -0x50(%rbp)     # imm = 0x100
jle 0x2cb571
cvtsi2sdq -0x50(%rbp), %xmm0
movq -0x18(%rbp), %rax
movq -0x38(%rbp), %rcx
leaq (%rcx,%rcx,8), %rdx
leaq (%rdx,%rdx,2), %rdx
addq %rcx, %rdx
movl 0x10(%rax,%rdx), %ecx
movl 0x14(%rax,%rdx), %eax
subl %ecx, %eax
cvtsi2sd %rax, %xmm1
movsd 0xb6d73(%rip), %xmm2    # 0x3822d8
mulsd %xmm2, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x2cb571
jmp 0x2cb5ca
cmpq $0x100, -0x50(%rbp)     # imm = 0x100
jg 0x2cb5b7
cvtsi2sdq -0x50(%rbp), %xmm0
movq -0x18(%rbp), %rax
movq -0x38(%rbp), %rcx
leaq (%rcx,%rcx,8), %rdx
leaq (%rdx,%rdx,2), %rdx
addq %rcx, %rdx
movl 0x10(%rax,%rdx), %ecx
movl 0x14(%rax,%rdx), %eax
subl %ecx, %eax
cvtsi2sd %rax, %xmm1
movsd 0xb6c65(%rip), %xmm2    # 0x382210
mulsd %xmm2, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x2cb5b7
jmp 0x2cb5ca
jmp 0x2cb5b9
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x2cb21b
movq -0x38(%rbp), %rax
cmpq -0x20(%rbp), %rax
jae 0x2cb5de
movq $0x0, -0x30(%rbp)
jmp 0x2cb5e6
movq $0x1, -0x30(%rbp)
jmp 0x2cb5e8
jmp 0x2cb5ea
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpq -0x10(%rbp), %rax
jae 0x2cb630
movq -0x30(%rbp), %rax
movb %al, %dl
movq -0x8(%rbp), %rax
movq -0x38(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movb 0x1c(%rax), %cl
andb $0x1, %dl
shlb $0x6, %dl
andb $-0x41, %cl
orb %dl, %cl
movb %cl, 0x1c(%rax)
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x2cb5f2
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)