// File: /workspace/github_c_makefile_star2_O0/nimble-code[P]Uno/Src/uno_generic.c
// Function: path_not_feasible
static treenode *
path_not_feasible(void)
{	GenStack *f, *g;
	char *s, *t;
	SymList *x, *y;

	for (g = gen_stack; g; g = g->nxt)
	{	if (!g->c
		||   g->c->hdr.tok != IDENT)	/* not a conditional */
			continue;

		s = ((leafnode *)g->c)->data.sval->str;

		if (strcmp(s, "_false_") != 0
		&&  strcmp(s, "_true_")  != 0)
			continue;		/* not simple */

		for (f = g->nxt; f; f = f->nxt)
		{
#if 1
			/* if a symbol with USE in g->e appears with DEF in f->e
			   then the condition could well change in value
			 */

			if (f->e->hdr.defuse && g->e->hdr.defuse)
			for (x = f->e->hdr.defuse->other; x; x = x->nxt)
			{	if ((x->mark & DEF) && !(x->mark & (REF0|REF1)))
				for (y = g->e->hdr.defuse->other; y; y = y->nxt)
					if (strcmp(x->sm->nme->str, y->sm->nme->str) == 0
					&&  (y->mark & USE))
					{	if (debug)
						{	fprintf(stderr, "consistency check on %s\t",
								x_stmnt(g->e));
							fprintf(stderr, "voided by asgn in %s\n",
								x_stmnt(f->e));
						}
						goto done;
			}		}
#endif
			if (!same_expr(f->e, g->e)
			|| !f->c
			||  f->c->hdr.tok != IDENT)
				continue;

			t = ((leafnode *)f->c)->data.sval->str;
			if (strcmp(t, "_false_") != 0
			&&  strcmp(t, "_true_")  != 0)
				continue;	/* not simple */

			if (strcmp(s, t) != 0)	/* found contradiction */
			{	ruledout++;
				if (Verbose)
				{	printf("(Infeasible path)\n");
					return (treenode *) 0;
				}
				return g->e;
		}	}
done:		;
	}
	return (treenode *) 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq 0x635c9(%rip), %rax     # 0x96bd8
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x338ea
movq -0x18(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x3363a
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
cmpl $0x102, 0x18(%rax)      # imm = 0x102
je 0x3363f
jmp 0x338d9
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x40(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
leaq 0x11a40(%rip), %rsi     # 0x4509e
callq 0x3160
cmpl $0x0, %eax
je 0x33682
movq -0x20(%rbp), %rdi
leaq 0x11a33(%rip), %rsi     # 0x450a6
callq 0x3160
cmpl $0x0, %eax
je 0x33682
jmp 0x338d9
movq -0x18(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x338d5
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
cmpq $0x0, 0x28(%rax)
je 0x337f4
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
cmpq $0x0, 0x28(%rax)
je 0x337f4
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
je 0x337f2
movq -0x30(%rbp), %rax
movl 0x4(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x337df
movq -0x30(%rbp), %rax
movl 0x4(%rax), %eax
andl $0x18, %eax
cmpl $0x0, %eax
jne 0x337df
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
je 0x337dd
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
movq -0x38(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x3160
cmpl $0x0, %eax
jne 0x337ca
movq -0x38(%rbp), %rax
movl 0x4(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x337ca
cmpl $0x0, 0x63485(%rip)     # 0x96be8
je 0x337c5
movq 0x1a88c(%rip), %rax     # 0x4dff8
movq (%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x4ec0
movq -0x48(%rbp), %rdi
movq %rax, %rdx
leaq 0x14153(%rip), %rsi     # 0x478e1
movb $0x0, %al
callq 0x3170
movq 0x1a85c(%rip), %rax     # 0x4dff8
movq (%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x4ec0
movq -0x40(%rbp), %rdi
movq %rax, %rdx
leaq 0x1413c(%rip), %rsi     # 0x478fa
movb $0x0, %al
callq 0x3170
jmp 0x338d7
jmp 0x337cc
movq -0x38(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x38(%rbp)
jmp 0x33718
jmp 0x337df
jmp 0x337e1
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x30(%rbp)
jmp 0x336d3
jmp 0x337f4
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x33c80
cmpl $0x0, %eax
je 0x3382a
movq -0x10(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x3382a
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
cmpl $0x102, 0x18(%rax)      # imm = 0x102
je 0x3382f
jmp 0x338c4
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x40(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
leaq 0x11850(%rip), %rsi     # 0x4509e
callq 0x3160
cmpl $0x0, %eax
je 0x3386f
movq -0x28(%rbp), %rdi
leaq 0x11843(%rip), %rsi     # 0x450a6
callq 0x3160
cmpl $0x0, %eax
je 0x3386f
jmp 0x338c4
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x3160
cmpl $0x0, %eax
je 0x338c2
movl 0x63349(%rip), %eax     # 0x96bd0
addl $0x1, %eax
movl %eax, 0x63340(%rip)     # 0x96bd0
leaq 0x1aae1(%rip), %rax     # 0x4e378
cmpl $0x0, (%rax)
je 0x338b4
leaq 0x1406d(%rip), %rdi     # 0x47910
movb $0x0, %al
callq 0x30f0
movq $0x0, -0x8(%rbp)
jmp 0x338f2
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x338f2
jmp 0x338c4
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x10(%rbp)
jmp 0x3368e
jmp 0x338d7
jmp 0x338d9
movq -0x18(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x33613
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)