// File: /workspace/github_c_makefile_star2_O0/oridb[P]mc/parse/dump.c
// Function: outstab
static void
outstab(Stab *st, FILE *fd, int depth)
{
	size_t i, n;
	char *name;
	void **k;
	char *ty;
	Type *t;

	name = "";
	if (st->name)
		name = st->name;
	findentf(fd, depth, "Stab %p (super = %p, name=\"%s\")\n", st, st->super, name);
	if (!st)
		return;

	/* print types */
	k = htkeys(st->ty, &n);
	for (i = 0; i < n; i++) {
		findentf(fd, depth + 1, "T ");
		/* already indented */
		outname(k[i], fd);
		t = gettype(st, k[i]);
		if (t->nsub)
			ty = tystr(t->sub[0]);
		else
			ty = strdup("none");
		fprintf(fd, " = %s [tid=%d]\n", ty, t->tid);
		free(ty);
	}
	free(k);

	/* dump declarations */
	k = htkeys(st->dcl, &n);
	for (i = 0; i < n; i++) {
		findentf(fd, depth + 1, "S ");
		/* already indented */
		outsym(getdcl(st, k[i]), fd, 0);
	}
	free(k);

	/* dump closure */
	if (st->env) {
		k = htkeys(st->env, &n);
		for (i = 0; i < n; i++) {
			findentf(fd, depth + 1, "U ");
			/* already indented */
			outsym(getclosed(st, k[i]), fd, 0);
		}
		free(k);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
leaq 0x3878b(%rip), %rax     # 0x55825
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x1d0b5
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
movq -0x8(%rbp), %rcx
movq -0x8(%rbp), %rax
movq (%rax), %r8
movq -0x30(%rbp), %r9
leaq 0x318d6(%rip), %rdx     # 0x4e9a8
movb $0x0, %al
callq 0x4a710
cmpq $0x0, -0x8(%rbp)
jne 0x1d0e5
jmp 0x1d2c4
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rdi
leaq -0x28(%rbp), %rsi
callq 0x49720
movq %rax, -0x38(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x20(%rbp), %rax
cmpq -0x28(%rbp), %rax
jae 0x1d1be
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
addl $0x1, %esi
leaq 0x318a8(%rip), %rdx     # 0x4e9c9
movb $0x0, %al
callq 0x4a710
movq -0x38(%rbp), %rax
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x10(%rbp), %rsi
callq 0x1dec0
movq -0x8(%rbp), %rdi
movq -0x38(%rbp), %rax
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x33750
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
cmpq $0x0, 0x70(%rax)
je 0x1d177
movq -0x48(%rbp), %rax
movq 0x68(%rax), %rax
movq (%rax), %rdi
callq 0x38a10
movq %rax, -0x40(%rbp)
jmp 0x1d187
leaq 0x35c2d(%rip), %rdi     # 0x52dab
callq 0x6330
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rdi
movq -0x40(%rbp), %rdx
movq -0x48(%rbp), %rax
movl 0x4(%rax), %ecx
leaq 0x3182f(%rip), %rsi     # 0x4e9cc
movb $0x0, %al
callq 0x6230
movq -0x40(%rbp), %rdi
callq 0x6040
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x1d102
movq -0x38(%rbp), %rdi
callq 0x6040
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
leaq -0x28(%rbp), %rsi
callq 0x49720
movq %rax, -0x38(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x20(%rbp), %rax
cmpq -0x28(%rbp), %rax
jae 0x1d237
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
addl $0x1, %esi
leaq 0x317dd(%rip), %rdx     # 0x4e9dc
movb $0x0, %al
callq 0x4a710
movq -0x8(%rbp), %rdi
movq -0x38(%rbp), %rax
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x334b0
movq %rax, %rdi
movq -0x10(%rbp), %rsi
xorl %edx, %edx
callq 0x1cfa0
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x1d1e4
movq -0x38(%rbp), %rdi
callq 0x6040
movq -0x8(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x1d2c4
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
leaq -0x28(%rbp), %rsi
callq 0x49720
movq %rax, -0x38(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x20(%rbp), %rax
cmpq -0x28(%rbp), %rax
jae 0x1d2bb
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
addl $0x1, %esi
leaq 0x3175c(%rip), %rdx     # 0x4e9df
movb $0x0, %al
callq 0x4a710
movq -0x8(%rbp), %rdi
movq -0x38(%rbp), %rax
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x33330
movq %rax, %rdi
movq -0x10(%rbp), %rsi
xorl %edx, %edx
callq 0x1cfa0
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x1d268
movq -0x38(%rbp), %rdi
callq 0x6040
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)