// File: /workspace/github_cpp_makefile_star2_O1/jstaursky[P]hutch/src/Sleigh/slghsymbol.cc
// Function: SymbolTable::restoreSymbolHeader(Element const*)
void SymbolTable::restoreSymbolHeader(const Element *el)

{				// Put the shell of a symbol in the symbol table
				// in order to allow recursion
  SleighSymbol *sym;
  if (el->getName() == "userop_head")
    sym = new UserOpSymbol();
  else if (el->getName() == "epsilon_sym_head")
    sym = new EpsilonSymbol();
  else if (el->getName() == "value_sym_head")
    sym = new ValueSymbol();
  else if (el->getName() == "valuemap_sym_head")
    sym = new ValueMapSymbol();
  else if (el->getName() == "name_sym_head")
    sym = new NameSymbol();
  else if (el->getName() == "varnode_sym_head")
    sym = new VarnodeSymbol();
  else if (el->getName() == "context_sym_head")
    sym = new ContextSymbol();
  else if (el->getName() == "varlist_sym_head")
    sym = new VarnodeListSymbol();
  else if (el->getName() == "operand_sym_head")
    sym = new OperandSymbol();
  else if (el->getName() == "start_sym_head")
    sym = new StartSymbol();
  else if (el->getName() == "end_sym_head")
    sym = new EndSymbol();
  else if (el->getName() == "subtable_sym_head")
    sym = new SubtableSymbol();
  else if (el->getName() == "flowdest_sym_head")
    sym = new FlowDestSymbol();
  else if (el->getName() == "flowref_sym_head")
    sym = new FlowRefSymbol();
  else
    throw SleighError("Bad symbol xml");
  sym->restoreXmlHeader(el);	// Restore basic elements of symbol
  symbollist[sym->id] = sym;	// Put the basic symbol in the table
  table[sym->scopeid]->addSymbol(sym); // to allow recursion
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x1bc77(%rip), %rsi     # 0x8112c
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x6561b
leaq 0x1bc7a(%rip), %rsi     # 0x81146
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x65646
leaq 0x1bc92(%rip), %rsi     # 0x81175
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x656a7
leaq 0x1bce1(%rip), %rsi     # 0x811db
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x656db
leaq 0x1bd3a(%rip), %rsi     # 0x8124b
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x65708
leaq 0x1bd6c(%rip), %rsi     # 0x81294
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x6574b
leaq 0x1bda5(%rip), %rsi     # 0x812e4
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x6576c
leaq 0x1be3e(%rip), %rsi     # 0x81394
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x6579c
leaq 0x1be9f(%rip), %rsi     # 0x8140c
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x657cc
leaq 0x1beb7(%rip), %rsi     # 0x8143b
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x657fa
leaq 0x1beb9(%rip), %rsi     # 0x81454
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x65823
leaq 0x1c080(%rip), %rsi     # 0x81632
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x6585a
leaq 0x1bea7(%rip), %rsi     # 0x81470
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x6589e
leaq 0x1beb0(%rip), %rsi     # 0x81490
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
jne 0x658cc
movl $0x38, %edi
callq 0x40800
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
movq $0x0, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3d547(%rip), %rax     # 0xa2b60
jmp 0x65662
movl $0x38, %edi
callq 0x40800
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
movq $0x0, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3d7b4(%rip), %rax     # 0xa2df8
jmp 0x65662
movl $0x40, %edi
callq 0x40800
movq %rax, %r15
movq %rax, %rdi
callq 0x40c30
movq 0x3d67e(%rip), %rax     # 0xa2ce0
addq $0x10, %rax
movq %rax, (%r15)
movq %r15, %rdi
movq %r14, %rsi
callq 0x3ff60
movl 0x28(%r15), %eax
movq (%rbx), %rcx
movq %r15, (%rcx,%rax,8)
movl 0x2c(%r15), %eax
movq 0x18(%rbx), %rcx
movq (%rcx,%rax,8), %rdi
leaq 0x8(%rsp), %rsi
movq %r15, (%rsi)
addq $0x8, %rdi
callq 0x3fdd0
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movl $0x38, %edi
callq 0x40800
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
xorl %eax, %eax
movq %rax, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3d40a(%rip), %rcx     # 0xa2ad8
addq $0x10, %rcx
movq %rcx, (%r15)
movq %rax, 0x30(%r15)
jmp 0x65669
movl $0x58, %edi
callq 0x40800
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
xorl %eax, %eax
movq %rax, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq %rax, 0x30(%r15)
movq 0x3d3f2(%rip), %rcx     # 0xa2af8
jmp 0x65733
movl $0x58, %edi
callq 0x40800
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
xorl %eax, %eax
movq %rax, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq %rax, 0x30(%r15)
movq 0x3d655(%rip), %rcx     # 0xa2d88
addq $0x10, %rcx
movq %rcx, (%r15)
xorps %xmm0, %xmm0
movups %xmm0, 0x38(%r15)
movq %rax, 0x48(%r15)
jmp 0x65669
movl $0x58, %edi
callq 0x40800
movq %rax, %r15
movq %rax, %rdi
callq 0x40c30
movq 0x3d7a9(%rip), %rax     # 0xa2f10
jmp 0x65662
movl $0x50, %edi
callq 0x40800
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
xorl %eax, %eax
movq %rax, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq %rax, 0x30(%r15)
movq 0x3d2f9(%rip), %rax     # 0xa2a90
jmp 0x65662
movl $0x58, %edi
callq 0x40800
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
xorl %eax, %eax
movq %rax, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq %rax, 0x30(%r15)
movq 0x3d771(%rip), %rcx     # 0xa2f38
jmp 0x65733
movl $0x60, %edi
callq 0x40800
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
movq $0x0, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3d2d3(%rip), %rax     # 0xa2ac8
jmp 0x65662
movl $0x40, %edi
callq 0x40800
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
xorl %eax, %eax
movq %rax, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3d7c7(%rip), %rcx     # 0xa2fe8
jmp 0x6584a
movl $0x40, %edi
callq 0x40800
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
xorl %eax, %eax
movq %rax, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3d226(%rip), %rcx     # 0xa2a70
addq $0x10, %rcx
movq %rcx, (%r15)
movq %rax, 0x38(%r15)
jmp 0x65669
movl $0x60, %edi
callq 0x40800
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
xorl %eax, %eax
movq %rax, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3d467(%rip), %rcx     # 0xa2ce8
addq $0x10, %rcx
movq %rcx, (%r15)
movq %rax, 0x30(%r15)
xorps %xmm0, %xmm0
movups %xmm0, 0x40(%r15)
movups %xmm0, 0x50(%r15)
jmp 0x65669
movl $0x38, %edi
callq 0x40800
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
movq $0x0, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3d391(%rip), %rax     # 0xa2c58
jmp 0x65662
movl $0x20, %edi
callq 0x3fb00
movq %rax, %rbx
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1b820(%rip), %rsi     # 0x81109
leaq 0x1b827(%rip), %rdx     # 0x81117
leaq 0x8(%rsp), %rdi
callq 0x3f8a0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x3f890
xorl %ebp, %ebp
movq 0x3d57d(%rip), %rsi     # 0xa2e90
movq 0x3d31e(%rip), %rdx     # 0xa2c38
movq %rbx, %rdi
callq 0x41d60
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x65944
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x40870
jmp 0x65944
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x6596d
movq %rbx, %rdi
callq 0x40080
jmp 0x6596d
movq %rax, %r14
movl $0x58, %esi
jmp 0x65965
movq %rax, %r14
movl $0x40, %esi
movq %r15, %rdi
callq 0x40870
movq %r14, %rdi
callq 0x41f00
nop