// File: jstaursky[P]hutch/src/Sleigh/semantics.cc
// Function: ConstructTpl::restoreXml(Element const*, AddrSpaceManager const*)
int4 ConstructTpl::restoreXml(const Element *el,const AddrSpaceManager *manage)

{
  int4 sectionid = -1;
  for(int4 i=0;i<el->getNumAttributes();++i) {
    if (el->getAttributeName(i)=="delay") {
      istringstream s(el->getAttributeValue(i));
      s.unsetf(ios::dec | ios::hex | ios::oct);
      s >> delayslot;
    }
    else if (el->getAttributeName(i)=="labels") {
      istringstream s(el->getAttributeValue(i));
      s.unsetf(ios::dec | ios::hex | ios::oct);
      s >> numlabels;
    }
    else if (el->getAttributeName(i)=="section") {
      istringstream s(el->getAttributeValue(i));
      s.unsetf(ios::dec | ios::hex | ios::oct);
      s >> sectionid;
    }
  }
  const List &list(el->getChildren());
  List::const_iterator iter;
  iter = list.begin();
  if ((*iter)->getName() == "null")
    result = (HandleTpl *)0;
  else {
    result = new HandleTpl();
    result->restoreXml(*iter,manage);
  }
  ++iter;
  while(iter != list.end()) {
    OpTpl *op = new OpTpl();
    op->restoreXml(*iter,manage);
    vec.push_back(op);
    ++iter;
  }
  return sectionid;
}

// Assembly:
subq $0x548, %rsp            # imm = 0x548
movq %rdi, 0x540(%rsp)
movq %rsi, 0x538(%rsp)
movq %rdx, 0x530(%rsp)
movq 0x540(%rsp), %rax
movq %rax, 0x68(%rsp)
movl $0xffffffff, 0x52c(%rsp) # imm = 0xFFFFFFFF
movl $0x0, 0x528(%rsp)
movl 0x528(%rsp), %eax
movl %eax, 0x64(%rsp)
movq 0x538(%rsp), %rdi
callq 0xd2b80
movl %eax, %ecx
movl 0x64(%rsp), %eax
cmpl %ecx, %eax
jge 0x118cba
movq 0x538(%rsp), %rdi
movl 0x528(%rsp), %esi
callq 0xd5520
movq %rax, %rdi
leaq 0x6ede8(%rip), %rsi     # 0x1877be
callq 0xe30f0
testb $0x1, %al
jne 0x1189e4
jmp 0x118aae
movq 0x538(%rsp), %rdi
movl 0x528(%rsp), %esi
callq 0xd9670
movq %rax, %rsi
leaq 0x3a8(%rsp), %rdi
movl $0x8, %edx
movl %edx, 0x54(%rsp)
callq 0xdfcc0
movl 0x54(%rsp), %esi
movq 0x3a8(%rsp), %rax
movq -0x18(%rax), %rax
leaq 0x3a8(%rsp,%rax), %rax
movq %rax, 0x58(%rsp)
movl $0x2, %edi
callq 0xe0e70
movl %eax, 0x60(%rsp)
jmp 0x118a3e
movl 0x60(%rsp), %edi
movl $0x40, %esi
callq 0xe0e70
movl %eax, 0x50(%rsp)
jmp 0x118a52
movl 0x50(%rsp), %esi
movq 0x58(%rsp), %rdi
callq 0xda6e0
jmp 0x118a62
movq 0x68(%rsp), %rsi
leaq 0x3a8(%rsp), %rdi
callq 0xceae0
jmp 0x118a76
leaq 0x3a8(%rsp), %rdi
callq 0xd25a0
jmp 0x118ca2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a0(%rsp)
movl %eax, 0x39c(%rsp)
leaq 0x3a8(%rsp), %rdi
callq 0xd25a0
jmp 0x118e9c
movq 0x538(%rsp), %rdi
movl 0x528(%rsp), %esi
callq 0xd5520
movq %rax, %rdi
leaq 0x6f920(%rip), %rsi     # 0x1883ec
callq 0xe30f0
testb $0x1, %al
jne 0x118ada
jmp 0x118ba8
movq 0x538(%rsp), %rdi
movl 0x528(%rsp), %esi
callq 0xd9670
movq %rax, %rsi
leaq 0x218(%rsp), %rdi
movl $0x8, %edx
movl %edx, 0x3c(%rsp)
callq 0xdfcc0
movl 0x3c(%rsp), %esi
movq 0x218(%rsp), %rax
movq -0x18(%rax), %rax
leaq 0x218(%rsp,%rax), %rax
movq %rax, 0x40(%rsp)
movl $0x2, %edi
callq 0xe0e70
movl %eax, 0x4c(%rsp)
jmp 0x118b34
movl 0x4c(%rsp), %edi
movl $0x40, %esi
callq 0xe0e70
movl %eax, 0x38(%rsp)
jmp 0x118b48
movl 0x38(%rsp), %esi
movq 0x40(%rsp), %rdi
callq 0xda6e0
jmp 0x118b58
movq 0x68(%rsp), %rsi
addq $0x4, %rsi
leaq 0x218(%rsp), %rdi
callq 0xceae0
jmp 0x118b70
leaq 0x218(%rsp), %rdi
callq 0xd25a0
jmp 0x118ca0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a0(%rsp)
movl %eax, 0x39c(%rsp)
leaq 0x218(%rsp), %rdi
callq 0xd25a0
jmp 0x118e9c
movq 0x538(%rsp), %rdi
movl 0x528(%rsp), %esi
callq 0xd5520
movq %rax, %rdi
leaq 0x6f8b5(%rip), %rsi     # 0x18847b
callq 0xe30f0
testb $0x1, %al
jne 0x118bd4
jmp 0x118c9e
movq 0x538(%rsp), %rdi
movl 0x528(%rsp), %esi
callq 0xd9670
movq %rax, %rsi
leaq 0x98(%rsp), %rdi
movl $0x8, %edx
movl %edx, 0x24(%rsp)
callq 0xdfcc0
movl 0x24(%rsp), %esi
movq 0x98(%rsp), %rax
movq -0x18(%rax), %rax
leaq 0x98(%rsp,%rax), %rax
movq %rax, 0x28(%rsp)
movl $0x2, %edi
callq 0xe0e70
movl %eax, 0x34(%rsp)
jmp 0x118c2e
movl 0x34(%rsp), %edi
movl $0x40, %esi
callq 0xe0e70
movl %eax, 0x20(%rsp)
jmp 0x118c42
movl 0x20(%rsp), %esi
movq 0x28(%rsp), %rdi
callq 0xda6e0
jmp 0x118c52
leaq 0x98(%rsp), %rdi
leaq 0x52c(%rsp), %rsi
callq 0xd4480
jmp 0x118c69
leaq 0x98(%rsp), %rdi
callq 0xd25a0
jmp 0x118c9e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a0(%rsp)
movl %eax, 0x39c(%rsp)
leaq 0x98(%rsp), %rdi
callq 0xd25a0
jmp 0x118e9c
jmp 0x118ca0
jmp 0x118ca2
jmp 0x118ca4
movl 0x528(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x528(%rsp)
jmp 0x118992
movq 0x538(%rsp), %rdi
callq 0xde930
movq %rax, 0x90(%rsp)
leaq 0x88(%rsp), %rdi
callq 0xd03e0
movq 0x90(%rsp), %rdi
callq 0xd4960
movq %rax, 0x80(%rsp)
movq 0x80(%rsp), %rax
movq %rax, 0x88(%rsp)
leaq 0x88(%rsp), %rdi
callq 0xddc90
movq (%rax), %rdi
callq 0xcea10
movq %rax, %rdi
leaq 0x6f680(%rip), %rsi     # 0x1883a0
callq 0xe30f0
testb $0x1, %al
jne 0x118d2b
jmp 0x118d3a
movq 0x68(%rsp), %rax
movq $0x0, 0x20(%rax)
jmp 0x118db9
movl $0xe0, %edi
callq 0xd8380
movq %rax, %rdi
movq %rdi, %rax
movq %rax, 0x18(%rsp)
callq 0xcea40
jmp 0x118d56
movq 0x68(%rsp), %rax
movq 0x18(%rsp), %rcx
movq %rcx, 0x20(%rax)
movq 0x20(%rax), %rax
movq %rax, 0x10(%rsp)
leaq 0x88(%rsp), %rdi
callq 0xddc90
movq 0x10(%rsp), %rdi
movq (%rax), %rsi
movq 0x530(%rsp), %rdx
callq 0xd8540
jmp 0x118db9
movq 0x18(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a0(%rsp)
movl %eax, 0x39c(%rsp)
movl $0xe0, %esi
callq 0xd8620
jmp 0x118e9c
leaq 0x88(%rsp), %rdi
callq 0xd0700
movq 0x90(%rsp), %rdi
callq 0xd7a70
movq %rax, 0x78(%rsp)
leaq 0x88(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0xd72b0
testb $0x1, %al
jne 0x118df3
jmp 0x118e8d
movl $0x28, %edi
callq 0xd8380
movq %rax, %rdi
movq %rdi, %rax
movq %rax, 0x8(%rsp)
callq 0xda140
jmp 0x118e0f
movq 0x8(%rsp), %rax
movq %rax, 0x70(%rsp)
movq 0x70(%rsp), %rax
movq %rax, (%rsp)
leaq 0x88(%rsp), %rdi
callq 0xddc90
movq (%rsp), %rdi
movq (%rax), %rsi
movq 0x530(%rsp), %rdx
callq 0xda120
movq 0x68(%rsp), %rdi
addq $0x8, %rdi
leaq 0x70(%rsp), %rsi
callq 0xdc8a0
leaq 0x88(%rsp), %rdi
callq 0xd0700
jmp 0x118dc6
movq 0x8(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a0(%rsp)
movl %eax, 0x39c(%rsp)
movl $0x28, %esi
callq 0xd8620
jmp 0x118e9c
movl 0x52c(%rsp), %eax
addq $0x548, %rsp            # imm = 0x548
retq
movq 0x3a0(%rsp), %rdi
callq 0xe0be0
nopl (%rax)