// File: /workspace/github_c_makefile_star2_O2/OstCollector[P]config2c/config2c.c
// Function: decl_alter_list
static void decl_alter_list(const struct node_alter_list *al, int l)
{
	const struct string_list *pname, *ptype;
	const struct node_mapping *map;

	for (; al; al = al->next) {
		if ((al->type == NODE_ALTER_DEF_PRIM && len_string_list(al->mapped) > 1) ||
				al->vec.type == NODE_TYPE_VAR_ARR) {
			ohi(l, "struct {\n");
			++l;
		}
		switch (al->type) {
		case NODE_ALTER_DEF_PRIM:
			map = lookup_map(al->type_name);
			pname = al->mapped;
			ptype = map->mapped_types;
			for (; pname; pname = pname->next, ptype = ptype->next) {
				ohi(l, "%s ", ptype->str);
				decl_elem(pname->str, &al->vec);
			}
			decl_elem_post(&al->vec, l);
			break;
		case NODE_ALTER_DEF_ENUM:
			pname = al->mapped;
			ohi(l, "enum %s ", al->type_name);
			decl_elem(pname->str, &al->vec);
			decl_elem_post(&al->vec, l);
			break;
		case NODE_ALTER_DEF_STRUCT:
			pname = al->mapped;
			ohi(l, "struct %s ", al->type_name);
			decl_elem(pname->str, &al->vec);
			decl_elem_post(&al->vec, l);
			break;
		case NODE_ALTER_DEF_UNNAMED_STRUCT:
			ohi(l, "struct {\n");
			decl_member_list(al->members, l + 1);
			ohi(l, "};\n");
			break;
		}
		if ((al->type == NODE_ALTER_DEF_PRIM && len_string_list(al->mapped) > 1) ||
				al->vec.type == NODE_TYPE_VAR_ARR) {
			--l;
			ohi(l, "};\n");
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %esi, %ebx
movq %rdi, %r14
leaq 0x6452(%rip), %r13      # 0xc65b
testq %r14, %r14
je 0x63da
movl 0x8(%r14), %r15d
testl %r15d, %r15d
jne 0x622a
movq 0x20(%r14), %rdi
callq 0x65d4
cmpq $0x1, %rax
jg 0x6231
cmpl $0x3, 0x28(%r14)
jne 0x6257
movl %ebx, %edi
callq 0x6410
movq 0xb081(%rip), %rdi      # 0x112c0
movq %r13, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x63e9
incl %ebx
movl 0x8(%r14), %r15d
cmpl $0x3, %r15d
ja 0x63a9
movl %r15d, %eax
leaq 0x4eb1(%rip), %rcx      # 0xb11c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x10(%r14), %rdi
callq 0x6467
movq %rax, %r15
leaq 0x20(%r14), %r13
addq $0x20, %r15
leaq 0x28(%r14), %r12
movq (%r13), %r13
testq %r13, %r13
je 0x6382
movq (%r15), %r15
movl %ebx, %edi
callq 0x6410
movq 0xb016(%rip), %rdi      # 0x112c0
movq (%r15), %rdx
leaq 0x6353(%rip), %rsi      # 0xc607
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x63e9
movq (%r13), %rdi
movq %r12, %rsi
callq 0x649d
addq $0x8, %r13
addq $0x8, %r15
jmp 0x628c
movq 0x20(%r14), %r15
movl %ebx, %edi
callq 0x6410
movq 0xafd5(%rip), %rdi      # 0x112c0
movq 0x10(%r14), %rdx
leaq 0x6315(%rip), %rsi      # 0xc60b
jmp 0x6366
movl %ebx, %edi
callq 0x6410
movq 0xafba(%rip), %rdi      # 0x112c0
movq %r13, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x63e9
movq 0x10(%r14), %rdi
leal 0x1(%rbx), %esi
callq 0x5f00
movl %ebx, %edi
callq 0x6410
movq 0xaf8e(%rip), %rdi      # 0x112c0
leaq 0x7578(%rip), %rsi      # 0xd8b1
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
jns 0x6393
jmp 0x63e9
movq 0x20(%r14), %r15
movl %ebx, %edi
callq 0x6410
movq 0xaf65(%rip), %rdi      # 0x112c0
movq 0x10(%r14), %rdx
leaq 0x629c(%rip), %rsi      # 0xc602
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x63e9
movq (%r15), %rdi
leaq 0x28(%r14), %r12
movq %r12, %rsi
callq 0x649d
jmp 0x6389
leaq 0x62d2(%rip), %r13      # 0xc65b
movq %r12, %rdi
movl %ebx, %esi
callq 0x653d
cmpl $0x0, 0x8(%r14)
jne 0x63a9
movq 0x20(%r14), %rdi
callq 0x65d4
cmpq $0x1, %rax
jg 0x63b0
cmpl $0x3, 0x28(%r14)
jne 0x63d2
decl %ebx
movl %ebx, %edi
callq 0x6410
movq 0xaf00(%rip), %rdi      # 0x112c0
leaq 0x74ea(%rip), %rsi      # 0xd8b1
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x63e9
movq (%r14), %r14
jmp 0x6209
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0xac00(%rip), %rax      # 0x10ff0
movq (%rax), %rdi
leaq 0x553e(%rip), %rsi      # 0xb938
leaq 0x554f(%rip), %rdx      # 0xb950
xorl %eax, %eax
callq 0x2100
pushq $0x1
popq %rdi
callq 0x2180