// File: /workspace/github_c_makefile_star2_O0/nimble-code[P]Modex/Src/xtract.c
// Function: vis_lookup
char *
vis_lookup(treenode *n)
{	char *p = "", *tag = "print";
	int i;

	extra_comment = 0;

	if (!visu
	||  strlen(OutBuf) == 0)
		return p;

	if (allkeep)
	{	if (strncmp(OutBuf, "R: ", 3) == 0)
			p = "goto Return";
		else
			p = "keep";
		goto sc;
	}
	if (strncmp(OutBuf, "default:", strlen("default:")) == 0)
	{	p = "keep";	/* mapped to 'else ->' later */
	} else if (du_mode)	/* def/use mode */
	{	p = do_dumode(n);
		goto sc;
	} else if (use_c_code)	/* all c_code mode, similar to allkeep mode */
	{	p = do_ccode(n?n->hdr.line:0);
		goto sc;
	} else
	{	for (i = 0; deflts[i].pat; i++)
			if (strncmp(OutBuf, deflts[i].pat, strlen(deflts[i].pat)) == 0)
			{	p = tag = deflts[i].val;
				break;
			}
		if (!strstr(OutBuf, "default:"))
		{
sc:			tag = p;
			if (PosElse)
				tag = "else";
			p = look_lut(OutBuf, tag, 1);	/* the one and only lookup in lut */
			via_substitute(AltBuf, p);
			p = AltBuf;
	}	}

	if (n && n->hdr.defuse)
	{	if (n->hdr.defuse->special)	/* touches data defined in .dat file */
		{	if (Verbose&2)
				printf("%d: <%s> .dat overrides .lut <%s> -> ",
				n->hdr.line, OutBuf, p);

			if (n->hdr.defuse->special == 8)	/* 8=keep (pure) */
				p = "keep";
			else if (n->hdr.defuse->special & 4)	/* 4=print   */
				p = "print";	/* highest priority */
			else if (n->hdr.defuse->special & 2)	/* 2=comment */
				p = "comment";	/* next highest */
			else if (n->hdr.defuse->special & 1)	/* 1=hide    */
				p = "hide";	/* lowest */

			if (Verbose&2)
				printf("<%s>\n", p);

			replace_lut(OutBuf, p);

			if (strstr(OutBuf, "C: "))
			{	static char OutBuf2[BigEnough];
				strcpy(OutBuf2, "C: !");	/* .dat override */
				strcat(OutBuf2, &OutBuf[3]);
				replace_lut(OutBuf2, p);
			}
		}
#if 0
		  else printf("%d: <%s> .dat preserve .lut <%s> -> special==0\n",
			n->hdr.line, OutBuf, p);
#endif
	}
#if 0
	  else printf("%d: <%s> .dat -> .lut <%s> nodefuse %d\n",
		n?n->hdr.line:0, OutBuf, p, (n && n->hdr.defuse)?n->hdr.defuse->special:0);
#endif
	ishidden = (strcmp(p, "print") == 0	/* no match for printf, only for print */
		||  strncmp(p, "comment", strlen("comment")) == 0
		||  strncmp(p, "hide",  strlen("hide"))  == 0);

	wasfalse = (strncmp(p, "false", strlen("false")) == 0);

// disabled, because it is not correctly processed in all cases:
//	wastrue  = (strncmp(p, "true",  strlen("true"))  == 0);
	waselse  = (strncmp(p, "else",  strlen("else"))  == 0);

	return p;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
leaq 0x22adb(%rip), %rax     # 0x374be
movq %rax, -0x18(%rbp)
leaq 0x20868(%rip), %rax     # 0x35256
movq %rax, -0x20(%rbp)
movl $0x0, 0x392a4(%rip)     # 0x4dca0
leaq 0x3319d(%rip), %rax     # 0x47ba0
cmpl $0x0, (%rax)
je 0x14a1a
leaq 0x33b41(%rip), %rdi     # 0x48550
callq 0x40f0
cmpq $0x0, %rax
jne 0x14a27
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x14e18
leaq 0x3344a(%rip), %rax     # 0x47e78
cmpl $0x0, (%rax)
je 0x14a6d
leaq 0x33b16(%rip), %rdi     # 0x48550
leaq 0x213ac(%rip), %rsi     # 0x35ded
movl $0x3, %edx
callq 0x4090
cmpl $0x0, %eax
jne 0x14a5d
leaq 0x21443(%rip), %rax     # 0x35e9a
movq %rax, -0x18(%rbp)
jmp 0x14a68
leaq 0x207ca(%rip), %rax     # 0x3522e
movq %rax, -0x18(%rbp)
jmp 0x14ba4
leaq 0x33adc(%rip), %rdi     # 0x48550
leaq 0x207b8(%rip), %rsi     # 0x35233
movl $0x8, %edx
callq 0x4090
cmpl $0x0, %eax
jne 0x14a9a
leaq 0x2079d(%rip), %rax     # 0x3522e
movq %rax, -0x18(%rbp)
jmp 0x14bfa
leaq 0x33187(%rip), %rax     # 0x47c28
cmpl $0x0, (%rax)
je 0x14ab8
movq -0x10(%rbp), %rdi
callq 0x143b0
movq %rax, -0x18(%rbp)
jmp 0x14ba4
leaq 0x30705(%rip), %rax     # 0x451c4
cmpl $0x0, (%rax)
je 0x14aef
cmpq $0x0, -0x10(%rbp)
je 0x14ad7
movq -0x10(%rbp), %rax
movl 0x10(%rax), %eax
movl %eax, -0x28(%rbp)
jmp 0x14ade
xorl %eax, %eax
movl %eax, -0x28(%rbp)
jmp 0x14ade
movl -0x28(%rbp), %edi
callq 0x144c0
movq %rax, -0x18(%rbp)
jmp 0x14ba4
movl $0x0, -0x24(%rbp)
movslq -0x24(%rbp), %rcx
leaq 0x307cf(%rip), %rax     # 0x452d0
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
je 0x14b89
movslq -0x24(%rbp), %rcx
leaq 0x307b7(%rip), %rax     # 0x452d0
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x30(%rbp)
movslq -0x24(%rbp), %rcx
leaq 0x3079e(%rip), %rax     # 0x452d0
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rdi
callq 0x40f0
movq -0x30(%rbp), %rsi
movq %rax, %rdx
leaq 0x33a01(%rip), %rdi     # 0x48550
callq 0x4090
cmpl $0x0, %eax
jne 0x14b79
movslq -0x24(%rbp), %rcx
leaq 0x3076c(%rip), %rax     # 0x452d0
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
movq %rax, -0x18(%rbp)
jmp 0x14b89
jmp 0x14b7b
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x14af6
leaq 0x339c0(%rip), %rdi     # 0x48550
leaq 0x2069c(%rip), %rsi     # 0x35233
callq 0x4280
cmpq $0x0, %rax
jne 0x14bf4
jmp 0x14ba4
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
cmpl $0x0, 0x3a0fd(%rip)     # 0x4ecb0
je 0x14bc0
leaq 0x213b7(%rip), %rax     # 0x35f73
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rsi
leaq 0x33985(%rip), %rdi     # 0x48550
movl $0x1, %edx
callq 0x13510
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rsi
leaq 0x3a0dc(%rip), %rdi     # 0x4ecc0
callq 0x122a0
leaq 0x3a0d0(%rip), %rax     # 0x4ecc0
movq %rax, -0x18(%rbp)
jmp 0x14bf6
jmp 0x14bf8
jmp 0x14bfa
cmpq $0x0, -0x10(%rbp)
je 0x14d5b
movq -0x10(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x14d5b
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
cmpl $0x0, (%rax)
je 0x14d59
leaq 0x33020(%rip), %rax     # 0x47c4c
movl (%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x14c56
movq -0x10(%rbp), %rax
movl 0x10(%rax), %esi
movq -0x18(%rbp), %rcx
leaq 0x21330(%rip), %rdi     # 0x35f78
leaq 0x33901(%rip), %rdx     # 0x48550
movb $0x0, %al
callq 0x4120
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
cmpl $0x8, (%rax)
jne 0x14c70
leaq 0x205c4(%rip), %rax     # 0x3522e
movq %rax, -0x18(%rbp)
jmp 0x14cd1
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movl (%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x14c8f
leaq 0x205cd(%rip), %rax     # 0x35256
movq %rax, -0x18(%rbp)
jmp 0x14ccf
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movl (%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x14cae
leaq 0x25e06(%rip), %rax     # 0x3aaae
movq %rax, -0x18(%rbp)
jmp 0x14ccd
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movl (%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x14ccb
leaq 0x2057e(%rip), %rax     # 0x35245
movq %rax, -0x18(%rbp)
jmp 0x14ccd
jmp 0x14ccf
jmp 0x14cd1
leaq 0x32f74(%rip), %rax     # 0x47c4c
movl (%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x14cf4
movq -0x18(%rbp), %rsi
leaq 0x1f799(%rip), %rdi     # 0x34486
movb $0x0, %al
callq 0x4120
movq -0x18(%rbp), %rsi
leaq 0x33851(%rip), %rdi     # 0x48550
callq 0x14e30
leaq 0x33845(%rip), %rdi     # 0x48550
leaq 0x2052a(%rip), %rsi     # 0x3523c
callq 0x4280
cmpq $0x0, %rax
je 0x14d57
leaq 0x3af9c(%rip), %rdi     # 0x4fcc0
leaq 0x21273(%rip), %rsi     # 0x35f9e
callq 0x40a0
leaq 0x3af89(%rip), %rdi     # 0x4fcc0
leaq 0x33812(%rip), %rsi     # 0x48550
addq $0x3, %rsi
callq 0x4250
movq -0x18(%rbp), %rsi
leaq 0x3af6e(%rip), %rdi     # 0x4fcc0
callq 0x14e30
jmp 0x14d59
jmp 0x14d5b
movq -0x18(%rbp), %rdi
leaq 0x204f0(%rip), %rsi     # 0x35256
callq 0x4180
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x31(%rbp)
je 0x14db6
movq -0x18(%rbp), %rdi
leaq 0x25d2c(%rip), %rsi     # 0x3aaae
movl $0x7, %edx
callq 0x4090
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x31(%rbp)
je 0x14db6
movq -0x18(%rbp), %rdi
leaq 0x204a2(%rip), %rsi     # 0x35245
movl $0x4, %edx
callq 0x4090
cmpl $0x0, %eax
sete %al
movb %al, -0x31(%rbp)
movb -0x31(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, 0x3befc(%rip)     # 0x50cc0
movq -0x18(%rbp), %rdi
leaq 0x2061a(%rip), %rsi     # 0x353e9
movl $0x5, %edx
callq 0x4090
cmpl $0x0, %eax
sete %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, 0x3beda(%rip)     # 0x50cc4
movq -0x18(%rbp), %rdi
leaq 0x2117e(%rip), %rsi     # 0x35f73
movl $0x4, %edx
callq 0x4090
cmpl $0x0, %eax
sete %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, 0x3beb8(%rip)     # 0x50cc8
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)