// File: /workspace/github_c_makefile_star2_O0/nimble-code[P]Uno/Src/uno_intervals.c
// Function: first_inside_second
int
first_inside_second(ArBound *a, ArBound *b)	/* is interval a inside interval b? */
{
	sanitize(a);
	sanitize(b);

	if (unsatisfiable(a)
	||  unsatisfiable(b))
		return 0;

	if (!(a->bounds&NEG) && !(b->bounds&NEG))	/* ...[-2..-1]...[1>... */
		return ((a->lb >= b->lb) && (a->ub <= b->ub));

	if ((a->bounds&NEG) && (b->bounds&NEG))
		return ((a->lb <= b->lb) && (a->ub >= b->ub));

	if (!(a->bounds&NEG) && (b->bounds&NEG))
		return (a->ub <= b->lb || a->lb >= b->ub);

	if ((a->bounds&NEG) && !(b->bounds&NEG))
		return (b->lb >= a->ub || b->ub <= a->lb);

	/* unreachable */
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rdi
callq 0x2e680
movq -0x18(%rbp), %rdi
callq 0x2e680
movq -0x10(%rbp), %rdi
callq 0x2e450
cmpl $0x0, %eax
jne 0x2e4fe
movq -0x18(%rbp), %rdi
callq 0x2e450
cmpl $0x0, %eax
je 0x2e50a
movl $0x0, -0x4(%rbp)
jmp 0x2e66f
movq -0x10(%rbp), %rax
movswl 0x18(%rax), %eax
andl $0x40, %eax
cmpl $0x0, %eax
jne 0x2e563
movq -0x18(%rbp), %rax
movswl 0x18(%rax), %eax
andl $0x40, %eax
cmpl $0x0, %eax
jne 0x2e563
movq -0x10(%rbp), %rax
movl 0x20(%rax), %ecx
movq -0x18(%rbp), %rdx
xorl %eax, %eax
cmpl 0x20(%rdx), %ecx
movb %al, -0x19(%rbp)
jl 0x2e553
movq -0x10(%rbp), %rax
movl 0x1c(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0x1c(%rcx), %eax
setle %al
movb %al, -0x19(%rbp)
movb -0x19(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
jmp 0x2e66f
movq -0x10(%rbp), %rax
movswl 0x18(%rax), %eax
andl $0x40, %eax
cmpl $0x0, %eax
je 0x2e5bc
movq -0x18(%rbp), %rax
movswl 0x18(%rax), %eax
andl $0x40, %eax
cmpl $0x0, %eax
je 0x2e5bc
movq -0x10(%rbp), %rax
movl 0x20(%rax), %ecx
movq -0x18(%rbp), %rdx
xorl %eax, %eax
cmpl 0x20(%rdx), %ecx
movb %al, -0x1a(%rbp)
jg 0x2e5ac
movq -0x10(%rbp), %rax
movl 0x1c(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0x1c(%rcx), %eax
setge %al
movb %al, -0x1a(%rbp)
movb -0x1a(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
jmp 0x2e66f
movq -0x10(%rbp), %rax
movswl 0x18(%rax), %eax
andl $0x40, %eax
cmpl $0x0, %eax
jne 0x2e612
movq -0x18(%rbp), %rax
movswl 0x18(%rax), %eax
andl $0x40, %eax
cmpl $0x0, %eax
je 0x2e612
movq -0x10(%rbp), %rax
movl 0x1c(%rax), %ecx
movq -0x18(%rbp), %rdx
movb $0x1, %al
cmpl 0x20(%rdx), %ecx
movb %al, -0x1b(%rbp)
jle 0x2e605
movq -0x10(%rbp), %rax
movl 0x20(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0x1c(%rcx), %eax
setge %al
movb %al, -0x1b(%rbp)
movb -0x1b(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
jmp 0x2e66f
movq -0x10(%rbp), %rax
movswl 0x18(%rax), %eax
andl $0x40, %eax
cmpl $0x0, %eax
je 0x2e668
movq -0x18(%rbp), %rax
movswl 0x18(%rax), %eax
andl $0x40, %eax
cmpl $0x0, %eax
jne 0x2e668
movq -0x18(%rbp), %rax
movl 0x20(%rax), %ecx
movq -0x10(%rbp), %rdx
movb $0x1, %al
cmpl 0x1c(%rdx), %ecx
movb %al, -0x1c(%rbp)
jge 0x2e65b
movq -0x18(%rbp), %rax
movl 0x1c(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl 0x20(%rcx), %eax
setle %al
movb %al, -0x1c(%rbp)
movb -0x1c(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
jmp 0x2e66f
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)