// File: /workspace/github_c_makefile_star2_O0/OstCollector[P]config2c/config2c.c
// Function: dump_union
static void dump_union(string name, string enum_name,
		const struct node_alter_list *list)
{
	const struct node_member_list *memb;
	const struct node_alter_list *alt;
	struct type_decl decl;

	osi(0, "static void dump__union_%s(put_func func, struct dump_context *ctx, "
			"int l, const union %s *value, "
			"const enum %s *type_value)\n", name, name, enum_name);
	osi(0, "{\n");
	osi(1, "long i;\n");
	osi(1, "func(ctx, \"{\\n\");\n");
	for (alt = list; alt; alt = alt->next) {
		osi(1, "if (*type_value == %s) {\n", alt->enum_val);
		switch (alt->type) {
		case NODE_ALTER_DEF_PRIM:
			decl.type = TYPE_DECL_PRIM;
			decl.type_name = alt->type_name;
			helper_dump(&alt->vec, &decl, alt->in_name, alt->mapped, 2);
			osi(2, "func(ctx, \",\\n\");\n");
			break;
		case NODE_ALTER_DEF_ENUM:
			decl.type = TYPE_DECL_ENUM;
			decl.type_name = alt->type_name;
			helper_dump(&alt->vec, &decl, alt->in_name, alt->mapped, 2);
			osi(2, "func(ctx, \",\\n\");\n");
			break;
		case NODE_ALTER_DEF_STRUCT:
			decl.type = TYPE_DECL_STRUCT;
			decl.type_name = alt->type_name;
			helper_dump(&alt->vec, &decl, alt->in_name, alt->mapped, 2);
			osi(2, "func(ctx, \",\\n\");\n");
			break;
		case NODE_ALTER_DEF_UNNAMED_STRUCT:
			for (memb = alt->members; memb; memb = memb->next) {
				switch (memb->type) {
				case NODE_MEMBER_DEF_PRIM:
					decl.type = TYPE_DECL_PRIM;
					decl.type_name = memb->type_name;
					helper_dump(&memb->vec, &decl, memb->in_name,
							memb->mapped, 2);
					break;
				case NODE_MEMBER_DEF_ENUM:
					decl.type = TYPE_DECL_ENUM;
					decl.type_name = memb->type_name;
					helper_dump(&memb->vec, &decl, memb->in_name,
							memb->mapped, 2);
					break;
				case NODE_MEMBER_DEF_STRUCT:
					decl.type = TYPE_DECL_STRUCT;
					decl.type_name = memb->type_name;
					helper_dump(&memb->vec, &decl, memb->in_name,
							memb->mapped, 2);
					break;
				case NODE_MEMBER_DEF_UNION:
					decl.type = TYPE_DECL_UNION;
					decl.type_name = memb->type_name;
					helper_dump(&memb->vec, &decl, memb->in_name,
							memb->mapped, 2);
					break;
				}
				osi(2, "func(ctx, \",\\n\");\n");
			}
		}
		osi(1, "}\n");
	}
	osi(1, "indent(func, ctx, l);\n");
	osi(1, "func(ctx, \"}\");\n");
	osi(0, "}\n"); /* func body */
	osi(0, "\n");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
xorl %edi, %edi
callq 0x6fd0
movq 0xbb3e(%rip), %rdi      # 0x1b2a0
movq -0x8(%rbp), %rdx
movq -0x8(%rbp), %rcx
movq -0x10(%rbp), %r8
leaq 0x82da(%rip), %rsi      # 0x17a4f
movb $0x0, %al
callq 0x2100
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0xf7ad
movq 0xb865(%rip), %rax      # 0x1aff0
movq (%rax), %rdi
leaq 0x61bf(%rip), %rsi      # 0x15954
leaq 0x61d0(%rip), %rdx      # 0x1596c
movb $0x0, %al
callq 0x2100
movl $0x1, %edi
callq 0x2180
jmp 0xf7af
jmp 0xf7b1
jmp 0xf7b3
xorl %edi, %edi
callq 0x6fd0
movq 0xbadf(%rip), %rdi      # 0x1b2a0
leaq 0x7fed(%rip), %rsi      # 0x177b5
movb $0x0, %al
callq 0x2100
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0xf800
movq 0xb812(%rip), %rax      # 0x1aff0
movq (%rax), %rdi
leaq 0x616c(%rip), %rsi      # 0x15954
leaq 0x617d(%rip), %rdx      # 0x1596c
movb $0x0, %al
callq 0x2100
movl $0x1, %edi
callq 0x2180
jmp 0xf802
jmp 0xf804
jmp 0xf806
movl $0x1, %edi
callq 0x6fd0
movq 0xba89(%rip), %rdi      # 0x1b2a0
leaq 0x79d1(%rip), %rsi      # 0x171ef
movb $0x0, %al
callq 0x2100
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0xf856
movq 0xb7bc(%rip), %rax      # 0x1aff0
movq (%rax), %rdi
leaq 0x6116(%rip), %rsi      # 0x15954
leaq 0x6127(%rip), %rdx      # 0x1596c
movb $0x0, %al
callq 0x2100
movl $0x1, %edi
callq 0x2180
jmp 0xf858
jmp 0xf85a
jmp 0xf85c
movl $0x1, %edi
callq 0x6fd0
movq 0xba33(%rip), %rdi      # 0x1b2a0
leaq 0x79e9(%rip), %rsi      # 0x1725d
movb $0x0, %al
callq 0x2100
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0xf8ac
movq 0xb766(%rip), %rax      # 0x1aff0
movq (%rax), %rdi
leaq 0x60c0(%rip), %rsi      # 0x15954
leaq 0x60d1(%rip), %rdx      # 0x1596c
movb $0x0, %al
callq 0x2100
movl $0x1, %edi
callq 0x2180
jmp 0xf8ae
jmp 0xf8b0
movq -0x18(%rbp), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0xfd22
jmp 0xf8c5
movl $0x1, %edi
callq 0x6fd0
movq 0xb9ca(%rip), %rdi      # 0x1b2a0
movq -0x28(%rbp), %rax
movq 0x38(%rax), %rdx
leaq 0x8045(%rip), %rsi      # 0x1792a
movb $0x0, %al
callq 0x2100
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0xf91d
movq 0xb6f5(%rip), %rax      # 0x1aff0
movq (%rax), %rdi
leaq 0x604f(%rip), %rsi      # 0x15954
leaq 0x6060(%rip), %rdx      # 0x1596c
movb $0x0, %al
callq 0x2100
movl $0x1, %edi
callq 0x2180
jmp 0xf91f
jmp 0xf921
movq -0x28(%rbp), %rax
movl 0x8(%rax), %eax
movq %rax, -0x40(%rbp)
subq $0x3, %rax
ja 0xfcba
movq -0x40(%rbp), %rax
leaq 0x586f(%rip), %rcx      # 0x151b0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x0, -0x38(%rbp)
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rdi
addq $0x10, %rdi
addq $0x18, %rdi
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rdx
movq -0x28(%rbp), %rax
movq 0x20(%rax), %rcx
leaq -0x38(%rbp), %rsi
movl $0x2, %r8d
callq 0xc2a0
movl $0x2, %edi
callq 0x6fd0
movq 0xb907(%rip), %rdi      # 0x1b2a0
leaq 0x78d0(%rip), %rsi      # 0x17270
movb $0x0, %al
callq 0x2100
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0xf9d8
movq 0xb63a(%rip), %rax      # 0x1aff0
movq (%rax), %rdi
leaq 0x5f94(%rip), %rsi      # 0x15954
leaq 0x5fa5(%rip), %rdx      # 0x1596c
movb $0x0, %al
callq 0x2100
movl $0x1, %edi
callq 0x2180
jmp 0xf9da
jmp 0xf9dc
jmp 0xfcba
movl $0x1, -0x38(%rbp)
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rdi
addq $0x10, %rdi
addq $0x18, %rdi
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rdx
movq -0x28(%rbp), %rax
movq 0x20(%rax), %rcx
leaq -0x38(%rbp), %rsi
movl $0x2, %r8d
callq 0xc2a0
movl $0x2, %edi
callq 0x6fd0
movq 0xb870(%rip), %rdi      # 0x1b2a0
leaq 0x7839(%rip), %rsi      # 0x17270
movb $0x0, %al
callq 0x2100
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0xfa6f
movq 0xb5a3(%rip), %rax      # 0x1aff0
movq (%rax), %rdi
leaq 0x5efd(%rip), %rsi      # 0x15954
leaq 0x5f0e(%rip), %rdx      # 0x1596c
movb $0x0, %al
callq 0x2100
movl $0x1, %edi
callq 0x2180
jmp 0xfa71
jmp 0xfa73
jmp 0xfcba
movl $0x2, -0x38(%rbp)
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rdi
addq $0x10, %rdi
addq $0x18, %rdi
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rdx
movq -0x28(%rbp), %rax
movq 0x20(%rax), %rcx
leaq -0x38(%rbp), %rsi
movl $0x2, %r8d
callq 0xc2a0
movl $0x2, %edi
callq 0x6fd0
movq 0xb7d9(%rip), %rdi      # 0x1b2a0
leaq 0x77a2(%rip), %rsi      # 0x17270
movb $0x0, %al
callq 0x2100
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0xfb06
movq 0xb50c(%rip), %rax      # 0x1aff0
movq (%rax), %rdi
leaq 0x5e66(%rip), %rsi      # 0x15954
leaq 0x5e77(%rip), %rdx      # 0x1596c
movb $0x0, %al
callq 0x2100
movl $0x1, %edi
callq 0x2180
jmp 0xfb08
jmp 0xfb0a
jmp 0xfcba
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0xfcb8
movq -0x20(%rbp), %rax
movl 0x8(%rax), %eax
movq %rax, -0x48(%rbp)
subq $0x3, %rax
ja 0xfc50
movq -0x48(%rbp), %rax
leaq 0x567a(%rip), %rcx      # 0x151c0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x0, -0x38(%rbp)
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rdi
addq $0x10, %rdi
addq $0x18, %rdi
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rdx
movq -0x20(%rbp), %rax
movq 0x20(%rax), %rcx
leaq -0x38(%rbp), %rsi
movl $0x2, %r8d
callq 0xc2a0
jmp 0xfc50
movl $0x1, -0x38(%rbp)
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rdi
addq $0x10, %rdi
addq $0x18, %rdi
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rdx
movq -0x20(%rbp), %rax
movq 0x20(%rax), %rcx
leaq -0x38(%rbp), %rsi
movl $0x2, %r8d
callq 0xc2a0
jmp 0xfc50
movl $0x2, -0x38(%rbp)
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rdi
addq $0x10, %rdi
addq $0x18, %rdi
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rdx
movq -0x20(%rbp), %rax
movq 0x20(%rax), %rcx
leaq -0x38(%rbp), %rsi
movl $0x2, %r8d
callq 0xc2a0
jmp 0xfc50
movl $0x3, -0x38(%rbp)
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rdi
addq $0x10, %rdi
addq $0x18, %rdi
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rdx
movq -0x20(%rbp), %rax
movq 0x20(%rax), %rcx
leaq -0x38(%rbp), %rsi
movl $0x2, %r8d
callq 0xc2a0
jmp 0xfc52
movl $0x2, %edi
callq 0x6fd0
movq 0xb63d(%rip), %rdi      # 0x1b2a0
leaq 0x7606(%rip), %rsi      # 0x17270
movb $0x0, %al
callq 0x2100
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0xfca2
movq 0xb370(%rip), %rax      # 0x1aff0
movq (%rax), %rdi
leaq 0x5cca(%rip), %rsi      # 0x15954
leaq 0x5cdb(%rip), %rdx      # 0x1596c
movb $0x0, %al
callq 0x2100
movl $0x1, %edi
callq 0x2180
jmp 0xfca4
jmp 0xfca6
jmp 0xfca8
movq -0x20(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
jmp 0xfb1b
jmp 0xfcba
jmp 0xfcbc
movl $0x1, %edi
callq 0x6fd0
movq 0xb5d3(%rip), %rdi      # 0x1b2a0
leaq 0x6189(%rip), %rsi      # 0x15e5d
movb $0x0, %al
callq 0x2100
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0xfd0c
movq 0xb306(%rip), %rax      # 0x1aff0
movq (%rax), %rdi
leaq 0x5c60(%rip), %rsi      # 0x15954
leaq 0x5c71(%rip), %rdx      # 0x1596c
movb $0x0, %al
callq 0x2100
movl $0x1, %edi
callq 0x2180
jmp 0xfd0e
jmp 0xfd10
jmp 0xfd12
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
jmp 0xf8b8
jmp 0xfd24
movl $0x1, %edi
callq 0x6fd0
movq 0xb56b(%rip), %rdi      # 0x1b2a0
leaq 0x7547(%rip), %rsi      # 0x17283
movb $0x0, %al
callq 0x2100
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0xfd74
movq 0xb29e(%rip), %rax      # 0x1aff0
movq (%rax), %rdi
leaq 0x5bf8(%rip), %rsi      # 0x15954
leaq 0x5c09(%rip), %rdx      # 0x1596c
movb $0x0, %al
callq 0x2100
movl $0x1, %edi
callq 0x2180
jmp 0xfd76
jmp 0xfd78
jmp 0xfd7a
movl $0x1, %edi
callq 0x6fd0
movq 0xb515(%rip), %rdi      # 0x1b2a0
leaq 0x7508(%rip), %rsi      # 0x1729a
movb $0x0, %al
callq 0x2100
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0xfdca
movq 0xb248(%rip), %rax      # 0x1aff0
movq (%rax), %rdi
leaq 0x5ba2(%rip), %rsi      # 0x15954
leaq 0x5bb3(%rip), %rdx      # 0x1596c
movb $0x0, %al
callq 0x2100
movl $0x1, %edi
callq 0x2180
jmp 0xfdcc
jmp 0xfdce
jmp 0xfdd0
xorl %edi, %edi
callq 0x6fd0
movq 0xb4c2(%rip), %rdi      # 0x1b2a0
leaq 0x6078(%rip), %rsi      # 0x15e5d
movb $0x0, %al
callq 0x2100
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0xfe1d
movq 0xb1f5(%rip), %rax      # 0x1aff0
movq (%rax), %rdi
leaq 0x5b4f(%rip), %rsi      # 0x15954
leaq 0x5b60(%rip), %rdx      # 0x1596c
movb $0x0, %al
callq 0x2100
movl $0x1, %edi
callq 0x2180
jmp 0xfe1f
jmp 0xfe21
jmp 0xfe23
xorl %edi, %edi
callq 0x6fd0
movq 0xb46f(%rip), %rdi      # 0x1b2a0
leaq 0x636b(%rip), %rsi      # 0x161a3
movb $0x0, %al
callq 0x2100
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0xfe70
movq 0xb1a2(%rip), %rax      # 0x1aff0
movq (%rax), %rdi
leaq 0x5afc(%rip), %rsi      # 0x15954
leaq 0x5b0d(%rip), %rdx      # 0x1596c
movb $0x0, %al
callq 0x2100
movl $0x1, %edi
callq 0x2180
jmp 0xfe72
jmp 0xfe74
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)