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

	if (debug)
	printf("SZ %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)
		return 0;	/* s */

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

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

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

	if (ex->hdr.tok == NOT
	&&  ex->lnode == ZT
	&&  ex->rnode->hdr.type == TN_IDENT
	&&  ex->rnode->syment == s)
		return 1;	/* !s */

	if (ex->hdr.tok == NOT
	&&  ex->lnode == ZT
	&&  ex->rnode->hdr.type == TN_EXPR
	&&  ex->rnode->hdr.tok == NOT_EQ
	&&  ex->rnode->lnode->hdr.type == TN_IDENT
	&&  ex->rnode->lnode->syment == s
	&&  is_zero_val(ex->rnode->rnode))
		return 1;	/* !(s != 0) */

	if (ex->hdr.tok == EQUAL
	&&  ex->lnode
	&&  ex->lnode->hdr.type == TN_IDENT
	&&  ex->lnode->syment == s
	&&  is_zero_val(ex->rnode))
		return 1;	/* (s == 0) */

	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x27db3
movl $0x0, -0x4(%rbp)
jmp 0x27ffc
cmpl $0x0, 0x5e216(%rip)     # 0x85fd0
je 0x27dfe
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 0x1da96(%rip), %rdi     # 0x4588d
movb $0x0, %al
callq 0x30f0
movq -0x18(%rbp), %rax
cmpl $0x2d, 0x1c(%rax)
jne 0x27e22
movq -0x18(%rbp), %rax
movq 0x38(%rax), %rax
cmpq -0x10(%rbp), %rax
jne 0x27e22
movl $0x0, -0x4(%rbp)
jmp 0x27ffc
movq -0x18(%rbp), %rax
cmpl $0x28, 0x1c(%rax)
je 0x27e38
movl $0x0, -0x4(%rbp)
jmp 0x27ffc
movq -0x18(%rbp), %rax
cmpl $0x151, 0x18(%rax)      # imm = 0x151
jne 0x27e8c
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x40(%rax), %rsi
callq 0x27d90
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x29(%rbp)
jne 0x27e7c
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rsi
callq 0x27d90
cmpl $0x0, %eax
setne %al
movb %al, -0x29(%rbp)
movb -0x29(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
jmp 0x27ffc
movq -0x18(%rbp), %rax
cmpl $0x150, 0x18(%rax)      # imm = 0x150
jne 0x27ee0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x40(%rax), %rsi
callq 0x27d90
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x2a(%rbp)
je 0x27ed0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rsi
callq 0x27d90
cmpl $0x0, %eax
setne %al
movb %al, -0x2a(%rbp)
movb -0x2a(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
jmp 0x27ffc
movq -0x18(%rbp), %rax
cmpl $0x162, 0x18(%rax)      # imm = 0x162
jne 0x27f24
movq -0x18(%rbp), %rax
cmpq $0x0, 0x40(%rax)
jne 0x27f24
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rax
cmpl $0x2d, 0x1c(%rax)
jne 0x27f24
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x38(%rax), %rax
cmpq -0x10(%rbp), %rax
jne 0x27f24
movl $0x1, -0x4(%rbp)
jmp 0x27ffc
movq -0x18(%rbp), %rax
cmpl $0x162, 0x18(%rax)      # imm = 0x162
jne 0x27fa2
movq -0x18(%rbp), %rax
cmpq $0x0, 0x40(%rax)
jne 0x27fa2
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rax
cmpl $0x28, 0x1c(%rax)
jne 0x27fa2
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rax
cmpl $0x13a, 0x18(%rax)      # imm = 0x13A
jne 0x27fa2
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x40(%rax), %rax
cmpl $0x2d, 0x1c(%rax)
jne 0x27fa2
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x40(%rax), %rax
movq 0x38(%rax), %rax
cmpq -0x10(%rbp), %rax
jne 0x27fa2
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x48(%rax), %rdi
callq 0x20950
cmpl $0x0, %eax
je 0x27fa2
movl $0x1, -0x4(%rbp)
jmp 0x27ffc
movq -0x18(%rbp), %rax
cmpl $0x137, 0x18(%rax)      # imm = 0x137
jne 0x27ff5
movq -0x18(%rbp), %rax
cmpq $0x0, 0x40(%rax)
je 0x27ff5
movq -0x18(%rbp), %rax
movq 0x40(%rax), %rax
cmpl $0x2d, 0x1c(%rax)
jne 0x27ff5
movq -0x18(%rbp), %rax
movq 0x40(%rax), %rax
movq 0x38(%rax), %rax
cmpq -0x10(%rbp), %rax
jne 0x27ff5
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rdi
callq 0x20950
cmpl $0x0, %eax
je 0x27ff5
movl $0x1, -0x4(%rbp)
jmp 0x27ffc
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)