// File: /workspace/github_cpp_makefile_star2_O2/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 0x18ddd(%rip), %rsi     # 0x880fc
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x6f35b
pushq $0x38
popq %rdi
callq 0x4f5d0
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
andq $0x0, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3fa99(%rip), %rax     # 0xaede8
addq $0x10, %rax
movq %rax, (%r15)
jmp 0x6f45c
leaq 0x18db4(%rip), %rsi     # 0x88116
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x6f386
pushq $0x40
popq %rdi
callq 0x4f5d0
movq %rax, %r15
movq %rax, %rdi
callq 0x4f6d0
jmp 0x6f45c
leaq 0x18db8(%rip), %rsi     # 0x88145
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x6f3ce
pushq $0x38
popq %rdi
callq 0x4f5d0
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
andq $0x0, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3f71b(%rip), %rax     # 0xaead8
addq $0x10, %rax
movq %rax, (%r15)
andq $0x0, 0x30(%r15)
jmp 0x6f45c
leaq 0x18dd6(%rip), %rsi     # 0x881ab
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x6f40c
pushq $0x58
popq %rdi
callq 0x4f5d0
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
andq $0x0, 0x10(%r15)
movb $0x0, 0x18(%r15)
andq $0x0, 0x30(%r15)
movq 0x3f6ee(%rip), %rax     # 0xaeaf8
jmp 0x6f448
leaq 0x18e08(%rip), %rsi     # 0x8821b
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x6f490
pushq $0x58
popq %rdi
callq 0x4f5d0
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
andq $0x0, 0x10(%r15)
movb $0x0, 0x18(%r15)
andq $0x0, 0x30(%r15)
movq 0x3f930(%rip), %rax     # 0xaed78
addq $0x10, %rax
movq %rax, (%r15)
xorps %xmm0, %xmm0
movups %xmm0, 0x38(%r15)
andq $0x0, 0x48(%r15)
movq %r15, %rdi
movq %r14, %rsi
callq 0x4e8f0
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
movq %r15, %rsi
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x50f40
leaq 0x18dcd(%rip), %rsi     # 0x88264
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x6f4b8
pushq $0x58
popq %rdi
callq 0x4f5d0
movq %rax, %r15
movq %rax, %rdi
callq 0x512b0
jmp 0x6f45c
leaq 0x18df5(%rip), %rsi     # 0x882b4
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x6f4f9
pushq $0x50
popq %rdi
callq 0x4f5d0
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
andq $0x0, 0x10(%r15)
movb $0x0, 0x18(%r15)
andq $0x0, 0x30(%r15)
movq 0x3f59c(%rip), %rax     # 0xaea90
jmp 0x6f34f
leaq 0x18e64(%rip), %rsi     # 0x88364
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x6f53a
pushq $0x58
popq %rdi
callq 0x4f5d0
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
andq $0x0, 0x10(%r15)
movb $0x0, 0x18(%r15)
andq $0x0, 0x30(%r15)
movq 0x3f9fb(%rip), %rax     # 0xaef30
jmp 0x6f448
leaq 0x18e9b(%rip), %rsi     # 0x883dc
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x6f576
pushq $0x60
popq %rdi
callq 0x4f5d0
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
andq $0x0, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3f557(%rip), %rax     # 0xaeac8
jmp 0x6f34f
leaq 0x18e8e(%rip), %rsi     # 0x8840b
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x6f5af
pushq $0x40
popq %rdi
callq 0x4f5d0
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
andq $0x0, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3fa33(%rip), %rax     # 0xaefe0
jmp 0x6f5e6
leaq 0x18e6e(%rip), %rsi     # 0x88424
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x6f5f7
pushq $0x40
popq %rdi
callq 0x4f5d0
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
andq $0x0, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3f48a(%rip), %rax     # 0xaea70
addq $0x10, %rax
movq %rax, (%r15)
andq $0x0, 0x38(%r15)
jmp 0x6f45c
leaq 0x19009(%rip), %rsi     # 0x88607
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x6f64c
pushq $0x60
popq %rdi
callq 0x4f5d0
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
andq $0x0, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3f6ba(%rip), %rax     # 0xaece8
addq $0x10, %rax
movq %rax, (%r15)
andq $0x0, 0x30(%r15)
xorps %xmm0, %xmm0
movups %xmm0, 0x40(%r15)
movups %xmm0, 0x50(%r15)
jmp 0x6f45c
leaq 0x18ded(%rip), %rsi     # 0x88440
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x6f688
pushq $0x38
popq %rdi
callq 0x4f5d0
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
andq $0x0, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3f5d5(%rip), %rax     # 0xaec58
jmp 0x6f34f
leaq 0x18dd1(%rip), %rsi     # 0x88460
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x6f6c4
pushq $0x38
popq %rdi
callq 0x4f5d0
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
andq $0x0, 0x10(%r15)
movb $0x0, 0x18(%r15)
movq 0x3f4a1(%rip), %rax     # 0xaeb60
jmp 0x6f34f
pushq $0x20
popq %rdi
callq 0x4e180
movq %rax, %rbx
leaq 0x18a03(%rip), %rsi     # 0x880d9
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x515e0
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x4ddf0
xorl %ebp, %ebp
movq 0x3f78a(%rip), %rsi     # 0xaee88
movq 0x3f533(%rip), %rdx     # 0xaec38
movq %rbx, %rdi
callq 0x51630
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x4e020
testb %bpl, %bpl
jne 0x6f724
jmp 0x6f743
movq %rax, %r14
movq %rbx, %rdi
callq 0x4ea60
jmp 0x6f743
movq %rax, %r14
pushq $0x58
jmp 0x6f73a
movq %rax, %r14
pushq $0x40
popq %rsi
movq %r15, %rdi
callq 0x4f670
movq %r14, %rdi
callq 0x518c0
nop