// File: /workspace/github_c_makefile_star2_O3/nimble-code[P]Uno/Src/uno_bounds.c
// Function: dfs_bound
int
dfs_bound(State *s, treenode *exp_in, treenode *t_cond, State *prev_s)
{	Trans *t;
	treenode *exp;
	int result = 1;

	if (!s) return result;

	depth++;
	if (debug)
	{	printf("%3d: dfs_bound %s:%d <%s>\n",
			depth,
			s->n->hdr.fnm,
			s->n->hdr.line,
			x_stmnt(exp_in));
	}

	switch (bound_push(s, exp_in, t_cond, prev_s)) {
	case 3:	/* unsatisfiable bound */
		result = 0;
		goto done;
	case 2:	
		if (debug) printf("\told state\n");
		goto done;
	case 1:
		if (debug) printf("\tnew state\n");
		break;
	case 0:
		if (debug) printf("\trevisit state\n");
		break;
	}

	uno_index(s);	/* attempt to find out of bound array indices */

	if (s->iscond && s->n)
	{	if (s->n->hdr.type == TN_IF)
			exp = ((if_node *)s->n)->cond;
		else
			exp = s->n;
	} else
		exp = ZT;

	for (t = s->succ; t && t->branch; t = t->nxt)
		if (!infeasible(exp, t->cond))	/* e.g. 0 == _true_ */
			dfs_bound(t->branch, exp, t->cond, s);

done:	bound_pop();

	if (debug)
		printf("%3d: dfs_bound up\n", depth);
	depth--;

	return result;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
testq %rdi, %rdi
je 0x1b2b5
movq %rcx, %r14
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %rbx
leaq 0x54bb6(%rip), %rax     # 0x6fe48
incl (%rax)
movq 0x65775(%rip), %r13     # 0x80a10
testq %r13, %r13
je 0x1b2bf
movq 0x8(%r13), %rax
movq %rax, 0x65765(%rip)     # 0x80a10
movq $0x0, 0x8(%r13)
jmp 0x1b2cc
movl $0x1, %ebp
jmp 0x1b89b
movl $0x10, %edi
callq 0x5fdd
movq %rax, %r13
movq %r15, (%rsp)
movq $0x0, (%r13)
movq 0x65721(%rip), %rax     # 0x80a00
testq %rax, %rax
je 0x1b334
movq (%rax), %r15
testq %r15, %r15
je 0x1b336
movswl 0x18(%r15), %ecx
testb $0x4, %cl
jne 0x1b322
movq (%r15), %rdi
movl 0x20(%r15), %esi
movl 0x1c(%r15), %edx
callq 0x1bacf
movups 0x8(%r15), %xmm0
movups %xmm0, 0x8(%rax)
movq (%r13), %rcx
movq %rcx, 0x28(%rax)
movl 0x24(%r15), %ecx
movl %ecx, 0x24(%rax)
movq %rax, (%r13)
movq 0x28(%r15), %r15
testq %r15, %r15
jne 0x1b2ec
movq 0x656ce(%rip), %rax     # 0x80a00
jmp 0x1b336
xorl %eax, %eax
movq %rax, 0x8(%r13)
movq %r13, 0x656bf(%rip)     # 0x80a00
testq %r14, %r14
je 0x1b3ba
movq (%r14), %r13
testq %r13, %r13
je 0x1b3ba
cmpq $0x0, 0x28(%r13)
je 0x1b3ba
movq %r13, %rdi
callq 0x77c3
testq %rax, %rax
je 0x1b36b
cmpl $0x118, 0x18(%rax)      # imm = 0x118
je 0x1b3ba
movq 0x28(%r13), %rax
movq 0x18(%rax), %rbp
testq %rbp, %rbp
je 0x1b3ba
movl $0x501, %r15d           # imm = 0x501
movq 0x8(%rbp), %rdi
cmpw $0x3, 0x20(%rdi)
jl 0x1b3b1
movl 0x4(%rbp), %eax
andl %r15d, %eax
cmpl $0x401, %eax            # imm = 0x401
jne 0x1b3b1
callq 0x1342b
testl %eax, %eax
jne 0x1b3b1
testb $0x20, 0x4(%rbp)
jne 0x1b3b1
movq 0x8(%rbp), %rdi
movq %r13, %rsi
callq 0x1bb4c
movq 0x10(%rbp), %rbp
testq %rbp, %rbp
jne 0x1b37e
testq %r12, %r12
sete %al
movq (%rsp), %r15
testq %r15, %r15
sete %cl
orb %al, %cl
jne 0x1b409
cmpl $0x28, 0x1c(%r12)
jne 0x1b409
movq 0x40(%r12), %rax
testq %rax, %rax
je 0x1b409
cmpl $0x2d, 0x1c(%rax)
jne 0x1b409
movl $0x0, 0x655a8(%rip)     # 0x80998
movq 0x48(%r12), %rdi
xorl %esi, %esi
callq 0x1a750
cmpl $0x0, 0x65595(%rip)     # 0x80998
je 0x1b8ac
testq %r14, %r14
je 0x1b5f2
movq (%r14), %rsi
testq %rsi, %rsi
je 0x1b523
movl 0x1c(%rsi), %eax
cmpl $0x1c, %eax
jne 0x1b445
cmpl $0x14b, 0x18(%rsi)      # imm = 0x14B
jne 0x1b450
xorl %edi, %edi
callq 0x1bb9c
movq (%r14), %rsi
testq %rsi, %rsi
je 0x1b523
movl 0x1c(%rsi), %eax
addq $0x40, %rsi
cmpl $0x1b, %eax
cmoveq %rsi, %r14
movq (%r14), %rax
testq %rax, %rax
je 0x1b523
movq 0x28(%rax), %rax
testq %rax, %rax
je 0x1b523
movq 0x18(%rax), %r15
testq %r15, %r15
je 0x1b523
movq 0x65563(%rip), %r12     # 0x809e0
leaq 0x549c4(%rip), %rax     # 0x6fe48
movl (%rax), %ebp
movq 0x65573(%rip), %rax     # 0x80a00
movq %rax, (%rsp)
testb $0x1, 0x4(%r15)
je 0x1b516
testq %r12, %r12
je 0x1b4d8
movq 0x8(%r15), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %r14
movq %r12, %r13
movq (%r13), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
movq %r14, %rsi
callq 0x3190
testl %eax, %eax
jne 0x1b4cf
cmpl %ebp, 0x24(%r13)
jge 0x1b4cf
orb $0x4, 0x18(%r13)
movq 0x28(%r13), %r13
testq %r13, %r13
jne 0x1b4ac
movq (%rsp), %rax
movq (%rax), %r13
testq %r13, %r13
je 0x1b516
movq 0x8(%r15), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %r14
movq (%r13), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
movq %r14, %rsi
callq 0x3190
testl %eax, %eax
jne 0x1b50d
orb $0x4, 0x18(%r13)
movq 0x28(%r13), %r13
testq %r13, %r13
jne 0x1b4f0
movq 0x10(%r15), %r15
testq %r15, %r15
jne 0x1b491
movq 0x654b6(%rip), %r14     # 0x809e0
testq %r14, %r14
je 0x1b5e0
testb $0xc, 0x18(%r14)
movq 0x654c1(%rip), %rax     # 0x80a00
movq (%rax), %r15
je 0x1b55c
movq (%r14), %rdi
testq %r15, %r15
je 0x1b597
cmpq %rdi, (%r15)
jne 0x1b556
orb $0x4, 0x18(%r15)
movq 0x28(%r15), %r15
jmp 0x1b547
testq %r15, %r15
je 0x1b594
movb $0x1, %al
movq (%r14), %rdi
cmpq %rdi, (%r15)
je 0x1b576
movq 0x28(%r15), %r15
testq %r15, %r15
jne 0x1b566
jmp 0x1b58e
movq %r15, %rdi
movq %r14, %rsi
callq 0x1c019
movq 0x28(%r15), %r15
xorl %eax, %eax
testq %r15, %r15
jne 0x1b563
jmp 0x1b5ca
testb $0x1, %al
jne 0x1b597
jmp 0x1b5ca
movq (%r14), %rdi
movl 0x1c(%r14), %edx
movl 0x20(%r14), %esi
movswl 0x18(%r14), %ecx
callq 0x1bacf
movups 0x8(%r14), %xmm0
movups %xmm0, 0x8(%rax)
movq 0x65447(%rip), %rcx     # 0x80a00
movq (%rcx), %rdx
movq %rdx, 0x28(%rax)
movl 0x24(%r14), %edx
movl %edx, 0x24(%rax)
movq %rax, (%rcx)
movq 0x28(%r14), %r14
testq %r14, %r14
jne 0x1b533
movq 0x65402(%rip), %rdi     # 0x809e0
jmp 0x1b5e2
xorl %edi, %edi
callq 0x1b223
movq $0x0, 0x653ee(%rip) # 0x809e0
movq 0x65407(%rip), %rax     # 0x80a00
movq (%rax), %r14
testq %r14, %r14
je 0x1b7d5
leaq 0x1cc2c(%rip), %rbp     # 0x38238
leaq 0x15756(%rip), %r12     # 0x30d69
xorps %xmm0, %xmm0
movzwl 0x18(%r14), %eax
testb $0x20, %al
je 0x1b6f5
movq $0x0, 0x10(%r14)
movq 0x8(%r14), %rcx
cmpq %rcx, (%r14)
jne 0x1b670
cmpl $0x0, (%rbp)
je 0x1b65c
leaq 0x1574d(%rip), %rdi     # 0x30d8e
callq 0x30a0
movq (%rbx), %rdx
movq %r12, %rdi
movq %r14, %rsi
callq 0x1a9b9
xorps %xmm0, %xmm0
movzwl 0x18(%r14), %eax
andl $0xffdf, %eax           # imm = 0xFFDF
movw %ax, 0x18(%r14)
movq $0x0, 0x8(%r14)
xorl %ecx, %ecx
leaq 0x8(%r14), %r15
xorl %edx, %edx
movq 0x65383(%rip), %rsi     # 0x80a00
movq (%rsi), %r13
testq %r13, %r13
je 0x1b6e6
cmpq %r14, %r13
je 0x1b690
cmpq %rcx, (%r13)
je 0x1b696
movq 0x28(%r13), %r13
jmp 0x1b680
movzwl 0x18(%r13), %edi
testb $0x4, %dil
jne 0x1b704
testb $0x20, %dil
je 0x1b742
movq 0x8(%r13), %rdi
cmpq %rdi, %rcx
je 0x1b719
movq %rdi, (%r15)
incl %edx
movq %rdi, %rcx
cmpl $0xc, %edx
jne 0x1b67d
leaq 0x156e2(%rip), %rdi     # 0x30daa
callq 0x30a0
movq (%rbx), %rdx
leaq 0x1569a(%rip), %rdi     # 0x30d71
movq %r14, %rsi
callq 0x1a9b9
xorps %xmm0, %xmm0
movl 0x18(%r14), %eax
andl $-0x25, %eax
orl $0x4, %eax
movw %ax, 0x18(%r14)
movups %xmm0, (%r15)
movq 0x28(%r14), %r14
testq %r14, %r14
jne 0x1b616
jmp 0x1b748
andl $-0x25, %eax
orl $0x4, %eax
movw %ax, 0x18(%r14)
movq $0x0, 0x8(%r14)
jmp 0x1b6f5
leaq 0x15694(%rip), %rdi     # 0x30db4
callq 0x30a0
movq %r12, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0x1a9b9
xorps %xmm0, %xmm0
andb $-0x21, 0x18(%r13)
movq $0x0, 0x8(%r13)
movq %r13, 0x10(%r14)
jmp 0x1b6f5
movq 0x652b1(%rip), %rax     # 0x80a00
movq (%rax), %r14
testq %r14, %r14
je 0x1b7d5
movb $0x1, %bpl
movq %r14, %rdi
callq 0x1bd28
testl %eax, %eax
jne 0x1b84a
movq 0x38(%rbx), %r15
testq %r15, %r15
je 0x1b788
movq %r15, %rdi
movq %r14, %rsi
callq 0x1bfb4
testl %eax, %eax
jne 0x1b7c6
movq 0x28(%r15), %r15
jmp 0x1b76e
movq (%r14), %rdi
movl 0x20(%r14), %esi
movl 0x1c(%r14), %edx
movswl 0x18(%r14), %ecx
callq 0x1bacf
movups 0x8(%r14), %xmm0
movups %xmm0, 0x8(%rax)
movq 0x38(%rbx), %rcx
movq %rcx, 0x28(%rax)
movl 0x24(%r14), %ecx
movl %ecx, 0x24(%rax)
movq %rax, 0x38(%rbx)
movq 0x28(%r14), %r14
xorl %ebp, %ebp
testq %r14, %r14
jne 0x1b75a
jmp 0x1b7e1
movq 0x28(%r14), %r14
testq %r14, %r14
jne 0x1b75a
testb $0x1, %bpl
je 0x1b7e1
movl $0x1, %ebp
cmpw $0x0, 0x4a(%rbx)
jne 0x1b84c
movw $0x1, 0x4a(%rbx)
movq %rbx, %rdi
callq 0x1ae17
cmpw $0x0, 0x48(%rbx)
je 0x1b80b
movq (%rbx), %r14
testq %r14, %r14
je 0x1b80b
cmpl $0x1b, 0x1c(%r14)
jne 0x1b80e
movq 0x40(%r14), %r14
jmp 0x1b80e
xorl %r14d, %r14d
movq 0x50(%rbx), %r15
movl $0x1, %ebp
testq %r15, %r15
je 0x1b84c
cmpq $0x0, 0x10(%r15)
je 0x1b84c
movq (%r15), %rsi
movq %r14, %rdi
callq 0x139d0
testl %eax, %eax
jne 0x1b844
movq (%r15), %rdx
movq 0x10(%r15), %rdi
movq %r14, %rsi
movq %rbx, %rcx
callq 0x1b26f
movq 0x18(%r15), %r15
jmp 0x1b817
xorl %ebp, %ebp
xorl %edi, %edi
cmpq $0x0, 0x651aa(%rip)     # 0x80a00
setne %dil
leaq 0x15518(%rip), %rsi     # 0x30d79
callq 0x1341d
movq 0x65193(%rip), %rbx     # 0x80a00
movq (%rbx), %rdi
callq 0x1b223
movq 0x8(%rbx), %rax
movq %rax, 0x65180(%rip)     # 0x80a00
movq 0x65189(%rip), %rax     # 0x80a10
movq %rax, 0x8(%rbx)
movq %rbx, 0x6517e(%rip)     # 0x80a10
leaq 0x545af(%rip), %rax     # 0x6fe48
decl (%rax)
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x40(%r12), %rcx
movq 0x38(%rcx), %rdi
movl 0x18(%r12), %ecx
leal -0x137(%rcx), %edx
cmpl $0x3, %edx
ja 0x1b8e2
leaq 0x150e4(%rip), %rcx     # 0x309b0
movslq (%rcx,%rdx,4), %rdx
addq %rcx, %rdx
jmpq *%rdx
movl %eax, %edx
incl %edx
movl %eax, %esi
movl $0x13, %ecx
jmp 0x1b91b
cmpl $0x157, %ecx            # imm = 0x157
je 0x1b905
cmpl $0x158, %ecx            # imm = 0x158
jne 0x1b409
incl %eax
movl %eax, %esi
xorl %edx, %edx
movl $0x12, %ecx
jmp 0x1b91b
incl %eax
xorl %esi, %esi
movl %eax, %edx
movl $0x11, %ecx
jmp 0x1b91b
movl %eax, %edx
incl %edx
movl %eax, %esi
movl $0x53, %ecx
callq 0x1bc47
movq %rax, %r12
testq %rax, %rax
je 0x1b409
cmpl $0x102, 0x18(%r15)      # imm = 0x102
jne 0x1b968
movq 0x40(%r15), %rax
movq 0x8(%rax), %r15
leaq 0x14410(%rip), %rsi     # 0x2fd55
movq %r15, %rdi
callq 0x3190
testl %eax, %eax
je 0x1b9ab
leaq 0x14405(%rip), %rsi     # 0x2fd5d
movq %r15, %rdi
callq 0x3190
testl %eax, %eax
je 0x1b409
xorl %edi, %edi
cmpq 0x6506f(%rip), %r12     # 0x809e0
sete %dil
leaq 0x153dd(%rip), %rsi     # 0x30d59
callq 0x1341d
movq 0x65058(%rip), %rax     # 0x809e0
movq 0x28(%rax), %rax
movq %rax, 0x6504d(%rip)     # 0x809e0
movq 0x6506e(%rip), %rax     # 0x80a08
movq %rax, 0x28(%r12)
movq %r12, 0x65062(%rip)     # 0x80a08
jmp 0x1b409
movq %r12, %rdi
callq 0x1bcac
jmp 0x1b409