// File: /workspace/github_c_makefile_star2_O3/nimble-code[P]Uno/Src/uno_lts.c
// Function: dfs_uno
static void
dfs_uno(State *s)
{	Trans *t;
	treenode *exp = ZT;

	if (!s) return;

	depth++;
	if (debug)
	{	if (s->n && s->n->hdr.which == LEAF_T)
			printf("%3d: Down <%s> %p <%d: %s>\n",
			depth,
			name_of_node(s->n->hdr.type),
			(s->n->hdr.defuse),
			s->n->hdr.line,
			x_stmnt(s->n));
		else
			printf("%3d: Down <%s:%s:%s> %p <%d: %s>\n",
			depth,
			s->n?name_of_node(s->n->hdr.type):"",
			(s->n && s->n->lnode)?name_of_node(s->n->lnode->hdr.type):"",
			(s->n && s->n->rnode)?name_of_node(s->n->rnode->hdr.type):"",
			(s->n?(s->n->hdr.defuse):0),
			s->n?s->n->hdr.line:-1,
			s->n?x_stmnt(s->n):"--");
		if (s->n->hdr.defuse) dump_defuse(s->n->hdr.defuse, stdout);
		fflush(stdout);
	}

	if (!dfs_push(s)	/* nothing new to track */
	&&   s->visited)	/* been here before     */
	{	if (debug)
			printf("	old\n");
		goto done;
	}
	if (debug)
	{	if (s->visited)
			printf("	revisit\n");
		else
			printf("	new\n");
	}
	s->visited = 1;

	ana_defuse(s->n);	/* uninitialized var analysis */

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

	for (t = s->succ; t && t->branch; t = t->nxt)
	{	if (exp)
		{	if (debug)
			{	printf("Feasible?: %s", x_stmnt(exp));
				printf(" <==> %s\n", x_stmnt(t->cond));
			}
			if (infeasible(exp, t->cond))
			{	if (debug) printf("infeasible path\n");
				continue;	/* e.g. 0 == _true_ */
			}
			newpathcond(exp, t->cond);
#if 0
			if (inconsistent(s->n, pathcond))
			{	/*
				 * s->n has symbols that are known nonzero from previous pathconds
				 * and known zero from the current pathcond -- or vice versa
				 */
				prevpathcond();
				continue;
			}
#endif
			if (!t->knz) setknownzeros(s->n, t, pathcond);

			if (debug) dumknow(s->n, t);

			dfstack->state = pathcond;
		} else
		{	dfstack->state = getpathframe();
			dfstack->state->exp = s->n;
			dfstack->state->val = ZT;
		}
		dfs_uno(t->branch);

		if (exp)
		{	prevpathcond();
		} else
		{	dfstack->state->nxt = pathfree;
			pathfree = dfstack->state;
			dfstack->state = (PathCond *) 0;
		}
	}
done:
	if (debug) printf("%3d: Up\n", depth);
	depth--;
	dfs_pop();
}

// Assembly:
testq %rdi, %rdi
je 0x177f8
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbp
incl 0x58e3e(%rip)           # 0x6fe48
movq 0x58f37(%rip), %r14     # 0x6ff48
testq %r14, %r14
je 0x17032
movq 0x18(%r14), %rax
movq %rax, 0x58f27(%rip)     # 0x6ff48
movq $0x0, 0x18(%r14)
xorps %xmm0, %xmm0
movups %xmm0, (%r14)
jmp 0x1703f
movl $0x20, %edi
callq 0x5fdd
movq %rax, %r14
movq 0x58ee2(%rip), %rax     # 0x6ff28
testq %rax, %rax
movq %rbp, 0x10(%rsp)
je 0x170cc
movq (%rax), %r15
testq %r15, %r15
je 0x170d4
xorl %ebx, %ebx
movq %rbp, %rdi
movq %r15, %rsi
callq 0x1394b
testl %eax, %eax
je 0x170b3
movq (%r15), %rbx
movq 0x58ded(%rip), %rax     # 0x6fe60
testq %rax, %rax
je 0x1708f
movq 0x18(%rax), %rcx
movq %rcx, 0x58ddd(%rip)     # 0x6fe60
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movups %xmm0, (%rax)
jmp 0x17099
movl $0x20, %edi
callq 0x5fdd
movq %rbx, (%rax)
movq 0x8(%r15), %rcx
movq %rcx, 0x8(%rax)
movq (%r14), %rcx
movq %rcx, 0x18(%rax)
movq %rax, (%r14)
movl $0x1, %ebx
movq 0x18(%r15), %r15
testq %r15, %r15
jne 0x1705a
movq 0x58e65(%rip), %rax     # 0x6ff28
testl %ebx, %ebx
sete 0xf(%rsp)
jmp 0x170d9
movb $0x1, %bpl
jmp 0x1733c
movb $0x1, 0xf(%rsp)
movq 0x8(%rax), %r15
testq %r15, %r15
je 0x1719f
movq 0x10(%rbp), %rax
testq %rax, %rax
je 0x171b1
xorl %r13d, %r13d
movq %r15, %r12
testq %rax, %rax
je 0x17121
movq (%r12), %rcx
movq %rax, %rdx
cmpq %rcx, (%rdx)
jne 0x17118
movl 0x10(%rdx), %esi
xorl 0x10(%r12), %esi
testb $0x1, %sil
je 0x17138
movq 0x18(%rdx), %rdx
testq %rdx, %rdx
jne 0x17105
movq %r12, %rdi
callq 0x13889
movq 0x10(%rbp), %rcx
movq %rcx, 0x18(%rax)
movq %rax, 0x10(%rbp)
incl %r13d
movq 0x18(%r12), %r12
testq %r12, %r12
jne 0x170f9
movq 0x18(%rbp), %rdx
testq %rdx, %rdx
je 0x171cf
leaq 0x18(%rbp), %rax
xorl %ecx, %ecx
movq (%rdx), %rsi
movq %r15, %rdi
cmpq %rsi, (%rdi)
jne 0x1716e
movl 0x10(%rdx), %r8d
xorl 0x10(%rdi), %r8d
testb $0x1, %r8b
je 0x1718e
movq 0x18(%rdi), %rdi
testq %rdi, %rdi
jne 0x1715b
leaq 0x18(%rcx), %rdi
testq %rcx, %rcx
movq 0x18(%rdx), %rsi
cmoveq %rax, %rdi
movq %rsi, (%rdi)
incl %r13d
jmp 0x17195
movq 0x18(%rdx), %rsi
movq %rdx, %rcx
movq %rsi, %rdx
testq %rsi, %rsi
jne 0x17155
jmp 0x171cf
xorl %r13d, %r13d
cmpw $0x0, 0x30(%rbp)
jne 0x171cf
movw $0x1, 0x30(%rbp)
jmp 0x171c9
movq %r15, %rdi
callq 0x17894
movq %rax, 0x10(%rbp)
movq %r15, %rdi
callq 0x17894
movq %rax, 0x18(%rbp)
movl $0x1, %r13d
movq 0x58d5a(%rip), %r15     # 0x6ff30
testq %r15, %r15
je 0x172fc
movq 0x10(%rsp), %r12
movq 0x20(%r12), %rbx
testq %rbx, %rbx
je 0x172da
xorl %ebp, %ebp
movq (%r15), %r12
movq %r12, %rdi
callq 0x17978
testl %eax, %eax
je 0x17268
testq %rbx, %rbx
je 0x17223
movq %rbx, %rax
cmpq %r12, (%rax)
jne 0x1721a
movq 0x8(%rax), %rcx
cmpq 0x8(%r15), %rcx
je 0x17268
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0x1720b
movq 0x58d0e(%rip), %rax     # 0x6ff38
testq %rax, %rax
je 0x17241
movq 0x10(%rax), %rcx
movq %rcx, 0x58cfe(%rip)     # 0x6ff38
movq 0x10(%rsp), %rcx
jmp 0x17254
movl $0x18, %edi
callq 0x5fdd
movq 0x10(%rsp), %rcx
movq 0x20(%rcx), %rbx
movups (%r15), %xmm0
movups %xmm0, (%rax)
movq %rbx, 0x10(%rax)
movq %rax, 0x20(%rcx)
incl %ebp
movq %rax, %rbx
movq 0x10(%r15), %r15
testq %r15, %r15
jne 0x171f4
movq 0x10(%rsp), %rax
movq 0x28(%rax), %rsi
testq %rsi, %rsi
je 0x1730a
addq $0x28, %rax
movq 0x58ca2(%rip), %rcx     # 0x6ff30
xorl %edx, %edx
testq %rcx, %rcx
je 0x172b3
movq (%rsi), %rdi
movq %rcx, %r8
cmpq %rdi, (%r8)
jne 0x172aa
movq 0x8(%r8), %r9
cmpq 0x8(%rsi), %r9
je 0x172d1
movq 0x10(%r8), %r8
testq %r8, %r8
jne 0x1729b
leaq 0x10(%rdx), %r8
testq %rdx, %rdx
movq 0x10(%rsi), %rdi
cmoveq %rax, %r8
movq %rdi, (%r8)
incl %ebp
movq %rdi, %rsi
testq %rdi, %rdi
jne 0x17290
jmp 0x1730a
movq 0x10(%rsi), %rdi
movq %rsi, %rdx
jmp 0x172c7
movq %r15, %rdi
callq 0x17901
movq %rax, 0x20(%r12)
movq %rax, %rdi
callq 0x17901
movq %rax, 0x28(%r12)
cmpq $0x0, 0x20(%r12)
jne 0x17326
xorl %ebp, %ebp
movq 0x10(%rsp), %rax
cmpw $0x0, 0x32(%rax)
je 0x1731b
orl %r13d, %ebp
sete %al
movb $0x1, %bpl
testb %al, 0xf(%rsp)
je 0x17326
jmp 0x1733c
movq 0x10(%rsp), %rax
movw $0x1, 0x32(%rax)
movq 0x58bfb(%rip), %rax     # 0x6ff28
movq 0x8(%rax), %rdi
callq 0x17894
movq %rax, 0x8(%r14)
xorl %ebp, %ebp
movq 0x58be5(%rip), %rax     # 0x6ff28
movq %rax, 0x18(%r14)
movq %r14, 0x58bda(%rip)     # 0x6ff28
movq 0x58bf3(%rip), %r14     # 0x6ff48
testq %r14, %r14
je 0x17376
movq 0x18(%r14), %rax
movq %rax, 0x58be3(%rip)     # 0x6ff48
movq $0x0, 0x18(%r14)
xorps %xmm0, %xmm0
movups %xmm0, (%r14)
jmp 0x17383
movl $0x20, %edi
callq 0x5fdd
movq %rax, %r14
movq 0x58bb6(%rip), %rax     # 0x6ff40
testq %rax, %rax
je 0x173f8
movq (%rax), %rbx
testq %rbx, %rbx
je 0x173fa
movq 0x58ac2(%rip), %rax     # 0x6fe60
movq (%rbx), %r15
testq %rax, %rax
je 0x173bd
movq 0x18(%rax), %rcx
movq %rcx, 0x58aaf(%rip)     # 0x6fe60
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movups %xmm0, (%rax)
jmp 0x173ce
movl $0x20, %edi
callq 0x5fdd
movq 0x58a92(%rip), %rcx     # 0x6fe60
movq %r15, (%rax)
movq 0x8(%rbx), %rdx
movq %rdx, 0x8(%rax)
movq (%r14), %rdx
movq %rdx, 0x18(%rax)
movq %rax, (%r14)
movq 0x18(%rbx), %rbx
movq %rcx, %rax
testq %rbx, %rbx
jne 0x1739e
movq 0x58b4a(%rip), %rax     # 0x6ff40
jmp 0x173fa
xorl %eax, %eax
movq %rax, 0x18(%r14)
movq %r14, 0x58b3b(%rip)     # 0x6ff40
testb %bpl, %bpl
je 0x1741a
movq 0x10(%rsp), %rax
cmpw $0x0, 0x4a(%rax)
jne 0x17715
movq 0x10(%rsp), %rbx
movw $0x1, 0x4a(%rbx)
movq (%rbx), %r14
testq %r14, %r14
je 0x17521
cmpl $0x1b, 0x1c(%r14)
jne 0x17509
movq 0x40(%r14), %rax
movq 0x28(%rax), %r15
leaq 0x20e19(%rip), %rax     # 0x38264
cmpl $0x0, (%rax)
je 0x1750d
testq %r15, %r15
je 0x1750d
movq 0x8(%r14), %rdi
movl 0x10(%r14), %esi
callq 0x13395
testl %eax, %eax
jne 0x17512
movq 0x40(%r14), %rdi
movl $0x1c, %esi
callq 0x1a710
testl %eax, %eax
je 0x174a1
movq 0x40(%r14), %rdi
callq 0x1a698
testl %eax, %eax
jne 0x174a1
movq %r14, %rdi
callq 0x1a982
testl %eax, %eax
je 0x177f9
movq 0x18(%r15), %rbx
testq %rbx, %rbx
je 0x1782d
movl $0x2001, %ebp           # imm = 0x2001
movq 0x20b16(%rip), %r13     # 0x37fd0
leaq 0x18bee(%rip), %r12     # 0x300af
movl 0x4(%rbx), %eax
andl %ebp, %eax
cmpl $0x1, %eax
jne 0x174f9
movq %r14, %rdi
callq 0x1a982
testl %eax, %eax
jne 0x174f9
movq (%r13), %rdi
movq 0x8(%r14), %rdx
movl 0x10(%r14), %ecx
movq 0x8(%rbx), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %r8
movq %r12, %rsi
xorl %eax, %eax
callq 0x31a0
movq 0x10(%rbx), %rbx
testq %rbx, %rbx
jne 0x174c1
movq 0x10(%rsp), %rbx
jmp 0x1750d
movq 0x28(%r14), %r15
testq %r15, %r15
je 0x17521
movq 0x18(%r15), %rsi
movq %r15, %rdi
movq %r14, %rdx
callq 0x17a0c
cmpw $0x0, 0x48(%rbx)
je 0x1753d
movq (%rbx), %r14
testq %r14, %r14
je 0x1753d
cmpl $0x1b, 0x1c(%r14)
jne 0x17540
movq 0x40(%r14), %r14
jmp 0x17540
xorl %r14d, %r14d
movq 0x50(%rbx), %r13
testq %r13, %r13
je 0x17715
xorl %ebp, %ebp
movq 0x10(%r13), %rdi
testq %rdi, %rdi
je 0x17715
testq %r14, %r14
je 0x17591
movq (%r13), %r12
movq %r14, %rdi
movq %r12, %rsi
callq 0x139d0
testl %eax, %eax
jne 0x1765f
movq 0x589b9(%rip), %r15     # 0x6ff38
testq %r15, %r15
je 0x175fa
movq 0x10(%r15), %rax
movq %rax, 0x589a9(%rip)     # 0x6ff38
jmp 0x17607
movq 0x589a0(%rip), %rax     # 0x6ff38
testq %rax, %rax
je 0x175aa
movq 0x10(%rax), %rcx
movq %rcx, 0x58990(%rip)     # 0x6ff38
jmp 0x175b8
movl $0x18, %edi
callq 0x5fdd
movq 0x10(%r13), %rdi
movq 0x58969(%rip), %rcx     # 0x6ff28
movq %rax, 0x10(%rcx)
movq 0x10(%rsp), %rcx
movq (%rcx), %rcx
movq %rcx, (%rax)
movq %rbp, 0x8(%rax)
callq 0x16fea
movq 0x5895a(%rip), %rax     # 0x6ff38
movq 0x58943(%rip), %rcx     # 0x6ff28
movq 0x10(%rcx), %rdx
movq %rax, 0x10(%rdx)
movq %rdx, 0x58944(%rip)     # 0x6ff38
movq %rbp, 0x10(%rcx)
jmp 0x1765f
movl $0x18, %edi
callq 0x5fdd
movq %rax, %r15
movq %r14, (%r15)
movq %r12, 0x8(%r15)
movq 0x5891b(%rip), %rax     # 0x6ff30
movq %rax, 0x10(%r15)
movq %r15, 0x58910(%rip)     # 0x6ff30
cmpq $0x0, 0x8(%r13)
je 0x17671
movq 0x588fa(%rip), %rax     # 0x6ff28
movq %r15, 0x10(%rax)
movq 0x10(%r13), %rdi
callq 0x16fea
movq 0x588ee(%rip), %rax     # 0x6ff30
movq 0x10(%rax), %rcx
movq %rcx, 0x588e3(%rip)     # 0x6ff30
movq 0x588e4(%rip), %rcx     # 0x6ff38
movq %rcx, 0x10(%rax)
movq %rax, 0x588d9(%rip)     # 0x6ff38
movq 0x18(%r13), %r13
testq %r13, %r13
jne 0x1754f
jmp 0x17715
movq 0x10(%rsp), %rax
movq (%rax), %rax
testq %rax, %rax
je 0x17627
cmpl $0x1b, 0x1c(%rax)
jne 0x17688
movq 0x40(%rax), %rax
movq 0x28(%rax), %rax
testq %rax, %rax
je 0x17627
movq 0x18(%rax), %rbx
testq %rbx, %rbx
je 0x17627
movq 0x8(%rbx), %r12
cmpw $0x2, 0x20(%r12)
jg 0x17700
testb $0x4, 0x4(%rbx)
je 0x17700
movq (%r15), %rsi
movq 0x8(%r15), %rax
movq 0x40(%rax), %rdx
movq %r12, %rdi
callq 0x18abb
testl %eax, %eax
je 0x17700
movq 0x58795(%rip), %rax     # 0x6fe60
testq %rax, %rax
je 0x176e7
movq 0x18(%rax), %rcx
movq %rcx, 0x58785(%rip)     # 0x6fe60
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movups %xmm0, (%rax)
jmp 0x176f1
movl $0x20, %edi
callq 0x5fdd
movq %r12, (%rax)
movq 0x8(%r13), %rcx
movq %rcx, 0x18(%rax)
movq %rax, 0x8(%r13)
movq 0x10(%rbx), %rbx
testq %rbx, %rbx
jne 0x1769a
movq 0x58820(%rip), %r15     # 0x6ff30
jmp 0x17627
decl 0x5872d(%rip)           # 0x6fe48
cmpq $0x0, 0x58805(%rip)     # 0x6ff28
setne %al
cmpq $0x0, 0x58812(%rip)     # 0x6ff40
setne %cl
andb %al, %cl
movzbl %cl, %edi
leaq 0x18a7d(%rip), %rsi     # 0x301ba
callq 0x1341d
movq 0x587df(%rip), %rax     # 0x6ff28
movq (%rax), %rdx
movq 0x5870d(%rip), %rcx     # 0x6fe60
testq %rdx, %rdx
je 0x17772
movq %rcx, %rsi
movq %rdx, %rcx
movq 0x18(%rdx), %rdx
movq %rsi, 0x18(%rcx)
testq %rdx, %rdx
jne 0x17758
movq %rcx, 0x586ee(%rip)     # 0x6fe60
movq 0x8(%rax), %rdx
testq %rdx, %rdx
je 0x17795
movq %rcx, %rsi
movq %rdx, %rcx
movq 0x18(%rdx), %rdx
movq %rsi, 0x18(%rcx)
testq %rdx, %rdx
jne 0x1777b
movq %rcx, 0x586cb(%rip)     # 0x6fe60
movq 0x18(%rax), %rdx
movq %rdx, 0x58788(%rip)     # 0x6ff28
movq 0x587a1(%rip), %rdx     # 0x6ff48
movq %rdx, 0x18(%rax)
movq 0x5878e(%rip), %rdx     # 0x6ff40
movq (%rdx), %rsi
testq %rsi, %rsi
je 0x177d4
movq %rcx, %rdi
movq %rsi, %rcx
movq 0x18(%rsi), %rsi
movq %rdi, 0x18(%rcx)
testq %rsi, %rsi
jne 0x177ba
movq %rcx, 0x5868c(%rip)     # 0x6fe60
movq 0x18(%rdx), %rcx
movq %rcx, 0x58761(%rip)     # 0x6ff40
movq %rax, 0x18(%rdx)
movq %rdx, 0x5875e(%rip)     # 0x6ff48
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x207d0(%rip), %rax     # 0x37fd0
movq (%rax), %r12
movq 0x8(%r14), %r13
movl 0x10(%r14), %ebp
movq 0x40(%r14), %rdi
callq 0x5cbe
leaq 0x18861(%rip), %rsi     # 0x3007c
movq %r12, %rdi
movq %r13, %rdx
movl %ebp, %ecx
movq %rax, %r8
xorl %eax, %eax
callq 0x31a0
movq 0x10(%rsp), %rbx
jmp 0x17512