// File: /workspace/github_c_makefile_star2_O3/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 0x221e5
testq %r12, %r12
je 0xf22f
testq %r14, %r14
je 0xf24e
movq %rax, %r15
leaq 0x3104f(%rip), %rdx     # 0x400be
movq %r14, %rdi
xorl %esi, %esi
xorl %ecx, %ecx
callq 0xe080
movq %rax, %r14
leaq 0x38dac(%rip), %rsi     # 0x47e31
movq %rax, %rdi
movq %r12, %rdx
callq 0xe200
movl 0x56442(%rip), %ecx     # 0x654d8
leaq 0x3105d(%rip), %rdx     # 0x400fa
movq %rsp, %r12
movl $0x100, %esi            # imm = 0x100
movq %r12, %rdi
xorl %eax, %eax
callq 0xe2f0
leaq 0x34c06(%rip), %rsi     # 0x43cbc
movq %r14, %rdi
movq %r12, %rdx
callq 0xe200
cmpq $0x0, 0x18(%rbx)
setne %al
testq %r15, %r15
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0xf0e8
leaq 0x30fe8(%rip), %rsi     # 0x400c5
movq %r14, %rdi
movq %r15, %rdx
callq 0xe200
movl 0x4(%rbx), %edi
shrl $0x6, %edi
andl $0x3fff, %edi           # imm = 0x3FFF
callq 0x22144
leaq 0x376ee(%rip), %rsi     # 0x467ee
movq %r14, %rdi
movq %rax, %rdx
callq 0xe200
movl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
andl 0x8(%rbx), %ecx
leaq 0x3ad9e(%rip), %r15     # 0x49eb8
movq %rsp, %r12
movl $0x100, %esi            # imm = 0x100
movq %r12, %rdi
movq %r15, %rdx
xorl %eax, %eax
callq 0xe2f0
leaq 0x30f95(%rip), %rsi     # 0x400cb
movq %r14, %rdi
movq %r12, %rdx
callq 0xe200
movl 0x4(%rbx), %ecx
shrl $0x16, %ecx
movq %rsp, %r12
movl $0x100, %esi            # imm = 0x100
movq %r12, %rdi
movq %r15, %rdx
xorl %eax, %eax
callq 0xe2f0
leaq 0x30f73(%rip), %rsi     # 0x400d6
movq %r14, %rdi
movq %r12, %rdx
callq 0xe200
movq 0xc(%rbx), %rcx
testb $0x3f, %cl
je 0xf210
shrq $0x20, %rcx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
leaq 0x3ad2c(%rip), %r15     # 0x49eb8
movq %rsp, %r12
movl $0x100, %esi            # imm = 0x100
movq %r12, %rdi
movq %r15, %rdx
xorl %eax, %eax
callq 0xe2f0
leaq 0x30f38(%rip), %rsi     # 0x400e0
movq %r14, %rdi
movq %r12, %rdx
callq 0xe200
movl 0xc(%rbx), %ecx
shrl $0x16, %ecx
movq %rsp, %r12
movl $0x100, %esi            # imm = 0x100
movq %r12, %rdi
movq %r15, %rdx
xorl %eax, %eax
callq 0xe2f0
leaq 0x30f14(%rip), %rsi     # 0x400e9
movq %r14, %rdi
movq %r12, %rdx
callq 0xe200
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 0xf210
callq 0x22144
leaq 0x30eec(%rip), %rsi     # 0x400f1
movq %r14, %rdi
movq %rax, %rdx
callq 0xe200
movq %r14, 0xd0(%rbx)
incl 0x562bb(%rip)           # 0x654d8
movq %r14, %rax
addq $0x108, %rsp            # imm = 0x108
popq %rbx
popq %r12
popq %r14
popq %r15
retq
leaq 0x30e21(%rip), %rdi     # 0x40057
leaq 0x30e27(%rip), %rsi     # 0x40064
leaq 0x30e28(%rip), %rcx     # 0x4006c
movl $0x46, %edx
callq 0xe130
leaq 0x30e5a(%rip), %rdi     # 0x400af
leaq 0x30e08(%rip), %rsi     # 0x40064
leaq 0x30e09(%rip), %rcx     # 0x4006c
movl $0x48, %edx
callq 0xe130
nopl (%rax)