// File: /workspace/github_cpp_makefile_star2_O3/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 0x1bf13(%rip), %rsi     # 0x8112c
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x6537f
leaq 0x1bf16(%rip), %rsi     # 0x81146
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x653aa
leaq 0x1bf2e(%rip), %rsi     # 0x81175
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x6540b
leaq 0x1bf7d(%rip), %rsi     # 0x811db
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x6543f
leaq 0x1bfd6(%rip), %rsi     # 0x8124b
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x6546c
leaq 0x1c008(%rip), %rsi     # 0x81294
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x654af
leaq 0x1c041(%rip), %rsi     # 0x812e4
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x654d0
leaq 0x1c0da(%rip), %rsi     # 0x81394
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x65500
leaq 0x1c13b(%rip), %rsi     # 0x8140c
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x65530
leaq 0x1c153(%rip), %rsi     # 0x8143b
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x6555e
leaq 0x1c155(%rip), %rsi     # 0x81454
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x65587
leaq 0x1c31c(%rip), %rsi     # 0x81632
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x655be
leaq 0x1c143(%rip), %rsi     # 0x81470
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x65602
leaq 0x1c14c(%rip), %rsi     # 0x81490
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
jne 0x65630
movl $0x38, %edi
callq 0x40810
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
movq $0x0, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3d7e3(%rip), %rax     # 0xa2b60
jmp 0x653c6
movl $0x38, %edi
callq 0x40810
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
movq $0x0, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3da50(%rip), %rax     # 0xa2df8
jmp 0x653c6
movl $0x40, %edi
callq 0x40810
movq %rax, %r15
movq %rax, %rdi
callq 0x40c40
movq 0x3d91a(%rip), %rax     # 0xa2ce0
addq $0x10, %rax
movq %rax, (%r15)
movq %r15, %rdi
movq %r14, %rsi
callq 0x3ff70
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 0x40810
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
xorl %eax, %eax
movq %rax, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3d6a6(%rip), %rcx     # 0xa2ad8
addq $0x10, %rcx
movq %rcx, (%r15)
movq %rax, 0x30(%r15)
jmp 0x653cd
movl $0x58, %edi
callq 0x40810
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 0x3d68e(%rip), %rcx     # 0xa2af8
jmp 0x65497
movl $0x58, %edi
callq 0x40810
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 0x3d8f1(%rip), %rcx     # 0xa2d88
addq $0x10, %rcx
movq %rcx, (%r15)
xorps %xmm0, %xmm0
movups %xmm0, 0x38(%r15)
movq %rax, 0x48(%r15)
jmp 0x653cd
movl $0x58, %edi
callq 0x40810
movq %rax, %r15
movq %rax, %rdi
callq 0x40c40
movq 0x3da45(%rip), %rax     # 0xa2f10
jmp 0x653c6
movl $0x50, %edi
callq 0x40810
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 0x3d595(%rip), %rax     # 0xa2a90
jmp 0x653c6
movl $0x58, %edi
callq 0x40810
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 0x3da0d(%rip), %rcx     # 0xa2f38
jmp 0x65497
movl $0x60, %edi
callq 0x40810
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
movq $0x0, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3d56f(%rip), %rax     # 0xa2ac8
jmp 0x653c6
movl $0x40, %edi
callq 0x40810
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
xorl %eax, %eax
movq %rax, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3da63(%rip), %rcx     # 0xa2fe8
jmp 0x655ae
movl $0x40, %edi
callq 0x40810
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
xorl %eax, %eax
movq %rax, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3d4c2(%rip), %rcx     # 0xa2a70
addq $0x10, %rcx
movq %rcx, (%r15)
movq %rax, 0x38(%r15)
jmp 0x653cd
movl $0x60, %edi
callq 0x40810
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
xorl %eax, %eax
movq %rax, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3d703(%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 0x653cd
movl $0x38, %edi
callq 0x40810
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
movq $0x0, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3d62d(%rip), %rax     # 0xa2c58
jmp 0x653c6
movl $0x20, %edi
callq 0x3fb00
movq %rax, %rbx
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1babc(%rip), %rsi     # 0x81109
leaq 0x1bac3(%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 0x3d819(%rip), %rsi     # 0xa2e90
movq 0x3d5ba(%rip), %rdx     # 0xa2c38
movq %rbx, %rdi
callq 0x41d70
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x656a0
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x40880
testb %bpl, %bpl
jne 0x656aa
jmp 0x656ce
movq %rax, %r14
movq %rbx, %rdi
callq 0x40090
jmp 0x656ce
movq %rax, %r14
movl $0x58, %esi
jmp 0x656c6
movq %rax, %r14
movl $0x40, %esi
movq %r15, %rdi
callq 0x40880
movq %r14, %rdi
callq 0x41f10