// File: /workspace/github_c_makefile_star2_O0/nimble-code[P]Uno/Src/uno_lts.c
// Function: ana_work
static void
ana_work(DefUse *d, SymList *s, treenode *n)
{
	if (debug)
	{	printf("\tanawork: %s: ", s->sm->nme->str);
		dump_defuse(d, stdout);
		printf("\n");
	}
	if (0)
	{	printf("%s:%d: %s here: %d <<%s>>\t<%p>\n\t",
		n->hdr.fnm, n->hdr.line, s->sm->nme->str, s->mark, x_stmnt(n), s->sm);
		dump_defuse(d, stdout);
		printf("\n");
	}

	if (uno_ignore(s->sm)		/* symbol declared in "/usr/include/.." */
	||  (s->mark & REF2))		/* x->ref2 or x.ref2 -- compounds not yet   */
	{	return;
	}

	if (uno_p == 4)	/* the default */
	{	uno_bounds(s, d->aio, n);	/* array bounds */
	}

try_again:
	if (s->mark & FCALL)
	{	if (debug) printf("anawork->add_fcall\n");

		add_fcall(s->sm, n, (s->mark&USE)?USE:DEF);

		/* collect all places where a fct is called thru a ptr */
		/* and remember in which fct this happens... */
		if (s->mark & DEREF)
		{	Gst *g;
			if (Verbose)
				printf("%s:%d fct %s calls another fct via a ptr: %s...\n",
				n->hdr.fnm, n->hdr.line, curgraph->fctnm, s->sm->nme->str);
			g = (Gst *) emalloc(sizeof(Gst));
			g->gnm = curgraph;
			g->nxt = grst;
			grst = g;
		}
		return;
	} else if (is_recorded(s->sm->nme->str, n->hdr.fnm))	/* function name from prototype def */
	{	s->mark |= FCALL;
		goto try_again;
	} else
	{	if (debug) printf("\tnot a fcall...\n");
	}

	if (s->sm->decl_level < FUNCTION_SCOPE)
	{	global_var(s, n);
	} else
	{	local_var(s, n);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
cmpl $0x0, 0x5fe35(%rip)     # 0x85fd0
je 0x261dc
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rsi
leaq 0x1f4a2(%rip), %rdi     # 0x45656
movb $0x0, %al
callq 0x30f0
movq -0x8(%rbp), %rdi
movq 0x27e0a(%rip), %rax     # 0x4dfd0
movq (%rax), %rsi
callq 0x1a7b0
leaq 0x1e56a(%rip), %rdi     # 0x4473f
movb $0x0, %al
callq 0x30f0
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x1fe30
cmpl $0x0, %eax
jne 0x261fd
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
andl $0x20, %eax
cmpl $0x0, %eax
je 0x26202
jmp 0x26380
leaq 0x27f37(%rip), %rax     # 0x4e140
cmpl $0x4, (%rax)
jne 0x26223
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x18(%rbp), %rdx
callq 0x2bd30
jmp 0x26225
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x26304
cmpl $0x0, 0x5fd91(%rip)     # 0x85fd0
je 0x2624f
leaq 0x1f41d(%rip), %rdi     # 0x45665
movb $0x0, %al
callq 0x30f0
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
andl $0x4, %ecx
movl $0x1, %edx
movl $0x4, %eax
cmpl $0x0, %ecx
cmovnel %eax, %edx
callq 0x26390
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
andl $0x40, %eax
cmpl $0x0, %eax
je 0x26302
leaq 0x280e8(%rip), %rax     # 0x4e378
cmpl $0x0, (%rax)
je 0x262cc
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rax
movl 0x10(%rax), %edx
movq 0x5fcfd(%rip), %rax     # 0x85fa8
movq (%rax), %rcx
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %r8
leaq 0x1f3b4(%rip), %rdi     # 0x45679
movb $0x0, %al
callq 0x30f0
movl $0x10, %edi
callq 0x54c0
movq %rax, -0x20(%rbp)
movq 0x5fcc7(%rip), %rcx     # 0x85fa8
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq 0x5fdc9(%rip), %rcx     # 0x860b8
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x20(%rbp), %rax
movq %rax, 0x5fdb6(%rip)     # 0x860b8
jmp 0x26380
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x19c70
cmpl $0x0, %eax
je 0x26338
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
orl $0x2, %ecx
movl %ecx, 0x4(%rax)
jmp 0x26225
cmpl $0x0, 0x5fc91(%rip)     # 0x85fd0
je 0x2634f
leaq 0x1f362(%rip), %rdi     # 0x456aa
movb $0x0, %al
callq 0x30f0
jmp 0x26351
jmp 0x26353
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movswl 0x20(%rax), %eax
cmpl $0x3, %eax
jge 0x26373
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x26550
jmp 0x26380
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x268f0
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)