// File: /workspace/github_c_makefile_star2_O0/nimble-code[P]Uno/Src/uno_lts.c
// Function: simple_nonzero
static int
simple_nonzero(symentry_t *s, treenode *ex)
{
	if (!ex) return 0;

	if (debug)
	printf("SNZ %s, %s <%s>\n", s->nme->str, name_of_node(ex->hdr.type), x_stmnt(ex));

	if (ex->hdr.type == TN_IDENT
	&&  ex->syment == s)
	{	if (debug) printf("	s -- pattern matches\n");
		return 1;	/* s */
	}

	if (ex->hdr.type != TN_EXPR)
		return 0;

	if (ex->hdr.tok == AND)
		return simple_nonzero(s, ex->lnode)
		||     simple_nonzero(s, ex->rnode);

	if (ex->hdr.tok == OR)
		return simple_nonzero(s, ex->lnode)
		&&     simple_nonzero(s, ex->rnode);

	if (ex->hdr.tok == NOT
	&&  ex->lnode == ZT
	&&  ex->rnode->hdr.type == TN_EXPR
	&&  ex->rnode->hdr.tok == EQUAL
	&&  ex->rnode->lnode
	&&  ex->rnode->lnode->hdr.type == TN_IDENT
	&&  ex->rnode->lnode->syment == s
	&&  is_zero_val(ex->rnode->rnode))
	{	if (debug) printf("	!(s == 0) -- pattern matches\n");
		return 1;	/* !(s == 0) */
	}

	if (ex->hdr.tok == NOT_EQ
	&&  ex->lnode
	&&  ex->lnode->hdr.type == TN_IDENT
	&&  ex->lnode->syment == s
	&&  is_zero_val(ex->rnode))
	{	if (debug) printf("	(s != 0) -- pattern matches\n");
		return 1;	/* (s != 0) */
	}

	if (debug) printf("	nonoftheabove (%d %p)\n", ex->hdr.tok, ex->lnode);
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x27973
movl $0x0, -0x4(%rbp)
jmp 0x27c01
cmpl $0x0, 0x5e656(%rip)     # 0x85fd0
je 0x279be
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rax
movl 0x1c(%rax), %edi
callq 0x8270
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x4ec0
movq -0x28(%rbp), %rsi
movq -0x20(%rbp), %rdx
movq %rax, %rcx
leaq 0x1de47(%rip), %rdi     # 0x457fe
movb $0x0, %al
callq 0x30f0
movq -0x18(%rbp), %rax
cmpl $0x2d, 0x1c(%rax)
jne 0x279f9
movq -0x18(%rbp), %rax
movq 0x38(%rax), %rax
cmpq -0x10(%rbp), %rax
jne 0x279f9
cmpl $0x0, 0x5e5f3(%rip)     # 0x85fd0
je 0x279ed
leaq 0x1de29(%rip), %rdi     # 0x4580f
movb $0x0, %al
callq 0x30f0
movl $0x1, -0x4(%rbp)
jmp 0x27c01
movq -0x18(%rbp), %rax
cmpl $0x28, 0x1c(%rax)
je 0x27a0f
movl $0x0, -0x4(%rbp)
jmp 0x27c01
movq -0x18(%rbp), %rax
cmpl $0x151, 0x18(%rax)      # imm = 0x151
jne 0x27a63
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x40(%rax), %rsi
callq 0x27950
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x29(%rbp)
jne 0x27a53
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rsi
callq 0x27950
cmpl $0x0, %eax
setne %al
movb %al, -0x29(%rbp)
movb -0x29(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
jmp 0x27c01
movq -0x18(%rbp), %rax
cmpl $0x150, 0x18(%rax)      # imm = 0x150
jne 0x27ab7
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x40(%rax), %rsi
callq 0x27950
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x2a(%rbp)
je 0x27aa7
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rsi
callq 0x27950
cmpl $0x0, %eax
setne %al
movb %al, -0x2a(%rbp)
movb -0x2a(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
jmp 0x27c01
movq -0x18(%rbp), %rax
cmpl $0x162, 0x18(%rax)      # imm = 0x162
jne 0x27b6a
movq -0x18(%rbp), %rax
cmpq $0x0, 0x40(%rax)
jne 0x27b6a
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rax
cmpl $0x28, 0x1c(%rax)
jne 0x27b6a
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rax
cmpl $0x137, 0x18(%rax)      # imm = 0x137
jne 0x27b6a
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rax
cmpq $0x0, 0x40(%rax)
je 0x27b6a
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x40(%rax), %rax
cmpl $0x2d, 0x1c(%rax)
jne 0x27b6a
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x40(%rax), %rax
movq 0x38(%rax), %rax
cmpq -0x10(%rbp), %rax
jne 0x27b6a
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x48(%rax), %rdi
callq 0x20950
cmpl $0x0, %eax
je 0x27b6a
cmpl $0x0, 0x5e482(%rip)     # 0x85fd0
je 0x27b5e
leaq 0x1dccf(%rip), %rdi     # 0x45826
movb $0x0, %al
callq 0x30f0
movl $0x1, -0x4(%rbp)
jmp 0x27c01
movq -0x18(%rbp), %rax
cmpl $0x13a, 0x18(%rax)      # imm = 0x13A
jne 0x27bd4
movq -0x18(%rbp), %rax
cmpq $0x0, 0x40(%rax)
je 0x27bd4
movq -0x18(%rbp), %rax
movq 0x40(%rax), %rax
cmpl $0x2d, 0x1c(%rax)
jne 0x27bd4
movq -0x18(%rbp), %rax
movq 0x40(%rax), %rax
movq 0x38(%rax), %rax
cmpq -0x10(%rbp), %rax
jne 0x27bd4
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rdi
callq 0x20950
cmpl $0x0, %eax
je 0x27bd4
cmpl $0x0, 0x5e415(%rip)     # 0x85fd0
je 0x27bcb
leaq 0x1dc81(%rip), %rdi     # 0x45845
movb $0x0, %al
callq 0x30f0
movl $0x1, -0x4(%rbp)
jmp 0x27c01
cmpl $0x0, 0x5e3f5(%rip)     # 0x85fd0
je 0x27bfa
movq -0x18(%rbp), %rax
movl 0x18(%rax), %esi
movq -0x18(%rbp), %rax
movq 0x40(%rax), %rdx
leaq 0x1dc70(%rip), %rdi     # 0x45863
movb $0x0, %al
callq 0x30f0
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)