// File: /workspace/github_c_makefile_star2_O2/lucvoo[P]sparse-dev/c2xml.c
// Function: new_sym_node
static xmlNodePtr new_sym_node(struct symbol *sym, const char *name, xmlNodePtr parent)
{
	xmlNodePtr node;
	const char *ident = show_ident(sym->ident);

	assert(name != NULL);
	assert(sym != NULL);
	assert(parent != NULL);

	node = xmlNewChild(parent, NULL, BAD_CAST "symbol", NULL);

	newProp(node, "type", name);

	newIdProp(node, "id", idcount);

	if (sym->ident && ident)
		newProp(node, "ident", ident);
	newProp(node, "file", stream_name(sym->pos.stream));

	newNumProp(node, "start-line", sym->pos.line);
	newNumProp(node, "start-col", sym->pos.pos);

	if (sym->endpos.type) {
		newNumProp(node, "end-line", sym->endpos.line);
		newNumProp(node, "end-col", sym->endpos.pos);
		if (sym->pos.stream != sym->endpos.stream)
			newProp(node, "end-file", stream_name(sym->endpos.stream));
        }
	sym->aux = node;

	idcount++;

	return node;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x108, %rsp            # imm = 0x108
movq %rdx, %r14
movq %rsi, %r12
movq %rdi, %rbx
movq 0x18(%rdi), %rdi
callq 0x20909
testq %r12, %r12
je 0xeae2
testq %r14, %r14
je 0xeafb
movq %rax, %r15
leaq 0x2a72a(%rip), %rdx     # 0x390be
movq %r14, %rdi
xorl %esi, %esi
xorl %ecx, %ecx
callq 0xe080
movq %rax, %r14
leaq 0x32447(%rip), %rsi     # 0x40df1
movq %rax, %rdi
movq %r12, %rdx
callq 0xe210
movl 0x50b2d(%rip), %ecx     # 0x5f4e8
leaq 0x2a738(%rip), %rdx     # 0x390fa
movq %rsp, %r12
movl $0x100, %esi            # imm = 0x100
movq %r12, %rdi
xorl %eax, %eax
callq 0xe300
leaq 0x2e2e1(%rip), %rsi     # 0x3ccbc
movq %r14, %rdi
movq %r12, %rdx
callq 0xe210
cmpq $0x0, 0x18(%rbx)
setne %al
testq %r15, %r15
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0xea0d
leaq 0x2a6c3(%rip), %rsi     # 0x390c5
movq %r14, %rdi
movq %r15, %rdx
callq 0xe210
movl 0x4(%rbx), %edi
shrl $0x6, %edi
andl $0x3fff, %edi           # imm = 0x3FFF
callq 0x20874
leaq 0x30d89(%rip), %rsi     # 0x3f7ae
movq %r14, %rdi
movq %rax, %rdx
callq 0xe210
movl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
andl 0x8(%rbx), %edx
leaq 0x2a68c(%rip), %rsi     # 0x390cb
movq %r14, %rdi
callq 0xeb18
movl 0x4(%rbx), %edx
shrl $0x16, %edx
leaq 0x2a682(%rip), %rsi     # 0x390d6
movq %r14, %rdi
callq 0xeb18
movq 0xc(%rbx), %rdx
testb $0x3f, %dl
je 0xeac3
shrq $0x20, %rdx
andl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
leaq 0x2a66a(%rip), %rsi     # 0x390e0
movq %r14, %rdi
callq 0xeb18
movl 0xc(%rbx), %edx
shrl $0x16, %edx
leaq 0x2a65e(%rip), %rsi     # 0x390e9
movq %r14, %rdi
callq 0xeb18
movl 0x4(%rbx), %eax
movl 0xc(%rbx), %edi
shrl $0x6, %eax
movl $0x3fff, %ecx           # imm = 0x3FFF
andl %ecx, %eax
shrl $0x6, %edi
andl %ecx, %edi
cmpl %edi, %eax
je 0xeac3
callq 0x20874
leaq 0x2a639(%rip), %rsi     # 0x390f1
movq %r14, %rdi
movq %rax, %rdx
callq 0xe210
movq %r14, 0xd0(%rbx)
incl 0x50a18(%rip)           # 0x5f4e8
movq %r14, %rax
addq $0x108, %rsp            # imm = 0x108
popq %rbx
popq %r12
popq %r14
popq %r15
retq
leaq 0x2a56e(%rip), %rdi     # 0x39057
leaq 0x2a574(%rip), %rsi     # 0x39064
leaq 0x2a575(%rip), %rcx     # 0x3906c
pushq $0x46
jmp 0xeb12
leaq 0x2a5ad(%rip), %rdi     # 0x390af
leaq 0x2a55b(%rip), %rsi     # 0x39064
leaq 0x2a55c(%rip), %rcx     # 0x3906c
pushq $0x48
popq %rdx
callq 0xe130