// File: /workspace/github_c_makefile_star2_O0/nimble-code[P]Uno/Src/uno_lts.c
// Function: dfs_push
static int
dfs_push(State *s)
{	DfStack *d;
	SymRef *r, *n;
	int any_added = 0;

	d = uno_getframe();

	if (debug) printf("	--dfs_push <%p>\n", dfstack);

	if (dfstack)
	{	for (r = dfstack->symrefs; r; r = r->nxt)
		{	if (debug)
			printf("\t--cp symrefs %s status %d\n",
				r->sm->nme->str, r->status);

			if (snap_add(s, r))	/* local var not tracked from s before */
			{	n = uno_getref(r->sm);
				n->n = r->n;
				n->nxt = d->symrefs;
				d->symrefs = n;
				any_added = 1;
		}	}

		if (!covered(s, dfstack->globrefs))
			any_added = 1;	/* don't combine with next if */

		if (!same_pc(s))	/* matching path conditions */
			any_added = 1;

		if (any_added)
			d->globrefs = copy_list(dfstack->globrefs);	/* preserves order */
	}

	d->nxt = dfstack;
	dfstack = d;

	d = uno_getframe();
	if (safe_stack)
	for (r = safe_stack->symrefs; r; r = r->nxt)	/* copy sym refs */
	{	n = uno_getref(r->sm);
		n->n = r->n;
		n->nxt = d->symrefs;
		d->symrefs = n;
	}
	d->nxt = safe_stack;
	safe_stack = d;

	return any_added;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl $0x0, -0x24(%rbp)
callq 0x25660
movq %rax, -0x10(%rbp)
cmpl $0x0, 0x6118d(%rip)     # 0x85fd0
je 0x24e5a
movq 0x61244(%rip), %rsi     # 0x86090
leaq 0x206d1(%rip), %rdi     # 0x45524
movb $0x0, %al
callq 0x30f0
cmpq $0x0, 0x6122e(%rip)     # 0x86090
je 0x24f6c
movq 0x61221(%rip), %rax     # 0x86090
movq (%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x24f14
cmpl $0x0, 0x61148(%rip)     # 0x85fd0
je 0x24eae
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rax
movl 0x10(%rax), %edx
leaq 0x2068f(%rip), %rdi     # 0x45536
movb $0x0, %al
callq 0x30f0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x20610
cmpl $0x0, %eax
je 0x24f01
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0x20420
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq (%rax), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movl $0x1, -0x24(%rbp)
jmp 0x24f03
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x24e76
movq -0x8(%rbp), %rdi
movq 0x61171(%rip), %rax     # 0x86090
movq 0x8(%rax), %rsi
callq 0x256d0
cmpl $0x0, %eax
jne 0x24f34
movl $0x1, -0x24(%rbp)
movq -0x8(%rbp), %rdi
callq 0x259b0
cmpl $0x0, %eax
jne 0x24f49
movl $0x1, -0x24(%rbp)
cmpl $0x0, -0x24(%rbp)
je 0x24f6a
movq 0x6113a(%rip), %rax     # 0x86090
movq 0x8(%rax), %rdi
callq 0x25dd0
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
jmp 0x24f6c
movq 0x6111d(%rip), %rcx     # 0x86090
movq -0x10(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
movq %rax, 0x6110a(%rip)     # 0x86090
callq 0x25660
movq %rax, -0x10(%rbp)
cmpq $0x0, 0x61111(%rip)     # 0x860a8
je 0x24ff8
movq 0x61108(%rip), %rax     # 0x860a8
movq (%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x24ff6
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0x20420
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq (%rax), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x24fa7
jmp 0x24ff8
movq 0x610a9(%rip), %rcx     # 0x860a8
movq -0x10(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
movq %rax, 0x61096(%rip)     # 0x860a8
movl -0x24(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)