// File: /workspace/github_c_makefile_star2_O0/nimble-code[P]Modex/Src/symtab.c
// Function: show_scopetab
static void
show_scopetab(scopetab_t *that, int tabs, FILE *fp)
{	int j;
#if DBG
	fprintf(fp, "scopetab %u, level: %d  nsyms: %d  nchild: %d\n",
		that, that->level, that->nsyms, that->nchild);
#endif

	if (that->htab)
	{	scopetab_t *z;
		char prepped[512];
#if 1
		prepped[0] = '\0';
#else
		switch (that->level) {
		case  0: strcpy(prepped, "scope level 0?"); break;
		case  1: strcpy(prepped, "Global scope:"); break;
		case  2: strcpy(prepped, "File scope:"); break;
		case  3: strcpy(prepped, "Struct/FctParams:"); break;
		default: strcpy(prepped, "Block:"); break;
		}
#endif
		for (z = that; z; z = z->parent)
			if (z->owner
			&&  strcmp(z->owner, "-") != 0)
			{	strcat(prepped, "\t");
				strcat(prepped, z->owner);
				switch (z->owner_t) {
				case TN_OBJ_DEF:  strcat(prepped, " [struct/union]"); break;
				case TN_FUNC_DEF: strcat(prepped, " [fct]"); break;
				case 0: strcat(prepped, " [global]"); break;
				default: strcat(prepped, " [block]"); break;
				}
				break;
			}
#if DBG
			else strcat(prepped, "-u-");
#endif
		dotabs(tabs, fp);
		fprintf(fp, "%s\n", prepped);
		show_hashtab(that->htab, tabs, fp);
		fprintf(fp, "\n");
	}

	for (j = 0; j < that->nchild; j++)
		show_scopetab(that->children[j], tabs+1, fp);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x240, %rsp            # imm = 0x240
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x5a58
movb $0x0, -0x230(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x5a0d
movq -0x28(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x59fa
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rdi
leaq 0x2f317(%rip), %rsi     # 0x34c54
callq 0x4180
cmpl $0x0, %eax
je 0x59fa
leaq 0x31b6b(%rip), %rsi     # 0x374bd
leaq -0x230(%rbp), %rdi
movq %rdi, -0x240(%rbp)
callq 0x4250
movq -0x240(%rbp), %rdi
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rsi
callq 0x4250
movq -0x28(%rbp), %rax
movl 0x20(%rax), %eax
movl %eax, -0x234(%rbp)
testl %eax, %eax
je 0x59d0
jmp 0x598c
movl -0x234(%rbp), %eax
subl $0x1, %eax
je 0x59bb
jmp 0x5999
movl -0x234(%rbp), %eax
subl $0x18, %eax
jne 0x59e5
jmp 0x59a6
leaq -0x230(%rbp), %rdi
leaq 0x2d823(%rip), %rsi     # 0x331d7
callq 0x4250
jmp 0x59f8
leaq -0x230(%rbp), %rdi
leaq 0x2d81e(%rip), %rsi     # 0x331e7
callq 0x4250
jmp 0x59f8
leaq -0x230(%rbp), %rdi
leaq 0x2d810(%rip), %rsi     # 0x331ee
callq 0x4250
jmp 0x59f8
leaq -0x230(%rbp), %rdi
leaq 0x2d805(%rip), %rsi     # 0x331f8
callq 0x4250
jmp 0x5a0d
jmp 0x59fc
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x28(%rbp)
jmp 0x5914
movl -0xc(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x6c40
movq -0x18(%rbp), %rdi
leaq -0x230(%rbp), %rdx
leaq 0x2fc3e(%rip), %rsi     # 0x35669
movb $0x0, %al
callq 0x4190
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
callq 0x50b0
movq -0x18(%rbp), %rdi
leaq 0x30006(%rip), %rsi     # 0x35a57
movb $0x0, %al
callq 0x4190
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x28(%rcx), %eax
jge 0x5a95
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movl -0xc(%rbp), %esi
addl $0x1, %esi
movq -0x18(%rbp), %rdx
callq 0x58e0
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x5a5f
addq $0x240, %rsp            # imm = 0x240
popq %rbp
retq
nop