// File: jstaursky[P]hutch/src/Sleigh/slghsymbol.cc
// Function: VarnodeListSymbol::restoreXml(Element const*, SleighBase*)
void VarnodeListSymbol::restoreXml(const Element *el,SleighBase *trans)

{
  const List &list(el->getChildren());
  List::const_iterator iter;
  iter = list.begin();
  patval = (PatternValue *) PatternExpression::restoreExpression(*iter,trans);
  patval->layClaim();
  ++iter;
  while(iter!=list.end()) {
    const Element *subel = *iter;
    if (subel->getName() == "var") {
      uintm id;
      istringstream s(subel->getAttributeValue("id"));
      s.unsetf(ios::dec | ios::hex | ios::oct);
      s >> id;
      varnode_table.push_back( (VarnodeSymbol *)trans->findSymbol(id) );
    }
    else
      varnode_table.push_back( (VarnodeSymbol *)0 );
    ++iter;
  }
  checkTableFill();
}

// Assembly:
subq $0x258, %rsp            # imm = 0x258
movq %rdi, 0x250(%rsp)
movq %rsi, 0x248(%rsp)
movq %rdx, 0x240(%rsp)
movq 0x250(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0x248(%rsp), %rdi
callq 0xde930
movq %rax, 0x238(%rsp)
leaq 0x230(%rsp), %rdi
callq 0xd03e0
movq 0x238(%rsp), %rdi
callq 0xd4960
movq %rax, 0x228(%rsp)
movq 0x228(%rsp), %rax
movq %rax, 0x230(%rsp)
leaq 0x230(%rsp), %rdi
callq 0xddc90
movq (%rax), %rdi
movq 0x240(%rsp), %rsi
callq 0xd8230
movq %rax, %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x30(%rax)
movq 0x30(%rax), %rdi
callq 0xd99b0
leaq 0x230(%rsp), %rdi
callq 0xd0700
movq 0x238(%rsp), %rdi
callq 0xd7a70
movq %rax, 0x220(%rsp)
leaq 0x230(%rsp), %rdi
leaq 0x220(%rsp), %rsi
callq 0xd72b0
testb $0x1, %al
jne 0x142eb5
jmp 0x1430a2
leaq 0x230(%rsp), %rdi
callq 0xddc90
movq (%rax), %rax
movq %rax, 0x218(%rsp)
movq 0x218(%rsp), %rdi
callq 0xcea10
movq %rax, %rdi
leaq 0x46361(%rip), %rsi     # 0x189245
callq 0xe30f0
testb $0x1, %al
jne 0x142ef2
jmp 0x143074
movq 0x218(%rsp), %rax
movq %rax, 0x30(%rsp)
leaq 0x6f(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0xe0c80
movq 0x38(%rsp), %rdx
leaq 0x44df2(%rip), %rsi     # 0x187d0c
leaq 0x70(%rsp), %rdi
callq 0xe00a0
jmp 0x142f26
movq 0x30(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0xdb6f0
movq %rax, 0x28(%rsp)
jmp 0x142f3c
movq 0x28(%rsp), %rsi
leaq 0x90(%rsp), %rdi
movl $0x8, %edx
callq 0xdfcc0
jmp 0x142f55
leaq 0x70(%rsp), %rdi
callq 0xd4550
leaq 0x6f(%rsp), %rdi
callq 0xd8ec0
movq 0x90(%rsp), %rax
movq -0x18(%rax), %rax
leaq 0x90(%rsp,%rax), %rax
movq %rax, 0x18(%rsp)
movl $0x2, %edi
movl $0x8, %esi
callq 0xe0e70
movl %eax, 0x24(%rsp)
jmp 0x142f97
movl 0x24(%rsp), %edi
movl $0x40, %esi
callq 0xe0e70
movl %eax, 0x14(%rsp)
jmp 0x142fab
movl 0x14(%rsp), %esi
movq 0x18(%rsp), %rdi
callq 0xda6e0
jmp 0x142fbb
leaq 0x90(%rsp), %rdi
leaq 0x214(%rsp), %rsi
callq 0xceae0
jmp 0x142fd2
movq 0x40(%rsp), %rax
addq $0x38, %rax
movq %rax, (%rsp)
movq 0x240(%rsp), %rdi
movl 0x214(%rsp), %esi
callq 0xd45f0
movq %rax, 0x8(%rsp)
jmp 0x142ffa
movq (%rsp), %rdi
movq 0x8(%rsp), %rax
movq %rax, 0x50(%rsp)
leaq 0x50(%rsp), %rsi
callq 0xe0710
jmp 0x143014
leaq 0x90(%rsp), %rdi
callq 0xd25a0
jmp 0x143090
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x60(%rsp)
movl %eax, 0x5c(%rsp)
jmp 0x14304b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x60(%rsp)
movl %eax, 0x5c(%rsp)
leaq 0x70(%rsp), %rdi
callq 0xd4550
leaq 0x6f(%rsp), %rdi
callq 0xd8ec0
jmp 0x1430b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x60(%rsp)
movl %eax, 0x5c(%rsp)
leaq 0x90(%rsp), %rdi
callq 0xd25a0
jmp 0x1430b4
movq 0x40(%rsp), %rdi
addq $0x38, %rdi
movq $0x0, 0x48(%rsp)
leaq 0x48(%rsp), %rsi
callq 0xe0710
leaq 0x230(%rsp), %rdi
callq 0xd0700
jmp 0x142e82
movq 0x40(%rsp), %rdi
callq 0xdfae0
addq $0x258, %rsp            # imm = 0x258
retq
movq 0x60(%rsp), %rdi
callq 0xe0be0
nop