// File: /workspace/github_cpp_makefile_star2_O3/jstaursky[P]hutch/src/Sleigh/sleighbase.cc
// Function: SleighBase::restoreXml(Element const*)
void SleighBase::restoreXml(const Element *el)

{
  maxdelayslotbytes = 0;
  unique_allocatemask = 0;
  numSections = 0;
  int4 version = 0;
  setBigEndian(xml_readbool(el->getAttributeValue("bigendian")));
  {
    istringstream s(el->getAttributeValue("align"));
    s.unsetf(ios::dec | ios::hex | ios::oct);
    s >> alignment;
  }
  {
    istringstream s(el->getAttributeValue("uniqbase"));
    s.unsetf(ios::dec | ios::hex | ios::oct);
    uintm ubase;
    s >> ubase;
    setUniqueBase(ubase);
  }
  int4 numattr = el->getNumAttributes();
  for(int4 i=0;i<numattr;++i) {
    const string &attrname( el->getAttributeName(i) );
    if (attrname == "maxdelay") {
      istringstream s1(el->getAttributeValue(i));
      s1.unsetf(ios::dec | ios::hex | ios::oct);
      s1 >> maxdelayslotbytes;
    }
    else if (attrname == "uniqmask") {
      istringstream s2(el->getAttributeValue(i));
      s2.unsetf(ios::dec | ios::hex | ios::oct);
      s2 >> unique_allocatemask;
    }
    else if (attrname == "numsections") {
      istringstream s3(el->getAttributeValue(i));
      s3.unsetf(ios::dec | ios::hex | ios::oct);
      s3 >> numSections;
    }
    else if (attrname == "version") {
      istringstream s(el->getAttributeValue(i));
      s.unsetf(ios::dec | ios::hex | ios::oct);
      s >> version;
    }
  }
  if (version != SLA_FORMAT_VERSION)
    throw LowlevelError(".sla file has wrong format");
  const List &list(el->getChildren());
  List::const_iterator iter;
  iter = list.begin();
  while((*iter)->getName() == "floatformat") {
    floatformats.push_back(FloatFormat());
    floatformats.back().restoreXml(*iter);
    ++iter;
  }
  restoreXmlSpaces(*iter,this);
  iter++;
  symtab.restoreXml(*iter,this);
  root = (SubtableSymbol *)symtab.getGlobalScope()->findSymbol("instruction");
  buildXrefs();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1c8, %rsp            # imm = 0x1C8
movq %rsi, %r14
movq %rdi, %rbx
movq $0x0, 0x1d0(%rdi)
xorl %eax, %eax
movl %eax, 0x1d8(%rdi)
movl %eax, 0xc(%rsp)
leaq 0x58(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x256ce(%rip), %rsi     # 0x7f72c
leaq 0x256d0(%rip), %rdx     # 0x7f735
leaq 0x48(%rsp), %rdi
callq 0x3f8a0
leaq 0x48(%rsp), %rsi
movq %r14, %rdi
callq 0x40f80
cmpq $0x0, 0x8(%rax)
je 0x5a09a
movq (%rax), %rax
movzbl (%rax), %ecx
movb $0x1, %al
cmpl $0x31, %ecx
je 0x5a09c
cmpl $0x74, %ecx
je 0x5a09c
cmpl $0x79, %ecx
je 0x5a09c
xorl %eax, %eax
movb %al, 0x120(%rbx)
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0x5a0b9
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x40880
leaq 0x20(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x26526(%rip), %rsi     # 0x805ef
leaq 0x26524(%rip), %rdx     # 0x805f4
leaq 0x10(%rsp), %rdi
callq 0x3f8a0
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x40f80
leaq 0x48(%rsp), %rdi
movq %rax, %rsi
movl $0x8, %edx
callq 0x41c90
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x5a110
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x40880
leaq 0x48(%rsp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
andl $-0x4b, 0x60(%rsp,%rax)
leaq 0x128(%rbx), %rsi
callq 0x3fe80
movq 0x48bdc(%rip), %rsi     # 0xa2d10
leaq 0x48(%rsp), %rdi
callq 0x41450
leaq 0xc0(%rsp), %rdi
callq 0x3f730
leaq 0x10(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x2649b(%rip), %rsi     # 0x805f5
leaq 0x2649c(%rip), %rdx     # 0x805fd
callq 0x3f8a0
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x40f80
leaq 0x48(%rsp), %rdi
movq %rax, %rsi
movl $0x8, %edx
callq 0x41c90
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x5a19c
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x40880
leaq 0x48(%rsp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
andl $-0x4b, 0x60(%rsp,%rax)
leaq 0x10(%rsp), %rsi
callq 0x41ec0
movl 0x10(%rsp), %eax
cmpl %eax, 0x124(%rbx)
jae 0x5a1c9
movl %eax, 0x124(%rbx)
movq 0x48b40(%rip), %rsi     # 0xa2d10
leaq 0x48(%rsp), %rdi
callq 0x41450
leaq 0xc0(%rsp), %rdi
callq 0x3f730
movq 0x48(%r14), %r12
subq 0x40(%r14), %r12
shrq $0x5, %r12
testl %r12d, %r12d
jle 0x5a37c
leaq 0x1d0(%rbx), %rax
movq %rax, 0x40(%rsp)
leaq 0x1d4(%rbx), %rax
movq %rax, 0x38(%rsp)
leaq 0x1d8(%rbx), %rax
movq %rax, 0x30(%rsp)
andl $0x7fffffff, %r12d      # imm = 0x7FFFFFFF
xorl %r13d, %r13d
leaq 0x48(%rsp), %rbp
movq 0x40(%r14), %r15
addq %r13, %r15
movq %r15, %rdi
leaq 0x263be(%rip), %rsi     # 0x805fe
callq 0x3f590
testl %eax, %eax
je 0x5a2c2
movq %r15, %rdi
leaq 0x263b4(%rip), %rsi     # 0x80607
callq 0x3f590
testl %eax, %eax
je 0x5a2f3
movq %r15, %rdi
leaq 0x263a6(%rip), %rsi     # 0x80610
callq 0x3f590
testl %eax, %eax
je 0x5a324
movq %r15, %rdi
leaq 0x26366(%rip), %rsi     # 0x805e7
callq 0x3f590
testl %eax, %eax
jne 0x5a36f
movq 0x58(%r14), %rsi
addq %r13, %rsi
movq %rbp, %rdi
movl $0x8, %edx
callq 0x41c90
movq 0x48(%rsp), %rax
movq -0x18(%rax), %rax
andl $-0x4b, 0x60(%rsp,%rax)
movq %rbp, %rdi
leaq 0xc(%rsp), %rsi
callq 0x3fe80
jmp 0x5a353
movq 0x58(%r14), %rsi
addq %r13, %rsi
movq %rbp, %rdi
movl $0x8, %edx
callq 0x41c90
movq 0x48(%rsp), %rax
movq -0x18(%rax), %rax
andl $-0x4b, 0x60(%rsp,%rax)
movq %rbp, %rdi
movq 0x40(%rsp), %rsi
callq 0x41ec0
jmp 0x5a353
movq 0x58(%r14), %rsi
addq %r13, %rsi
movq %rbp, %rdi
movl $0x8, %edx
callq 0x41c90
movq 0x48(%rsp), %rax
movq -0x18(%rax), %rax
andl $-0x4b, 0x60(%rsp,%rax)
movq %rbp, %rdi
movq 0x38(%rsp), %rsi
callq 0x41ec0
jmp 0x5a353
movq 0x58(%r14), %rsi
addq %r13, %rsi
movq %rbp, %rdi
movl $0x8, %edx
callq 0x41c90
movq 0x48(%rsp), %rax
movq -0x18(%rax), %rax
andl $-0x4b, 0x60(%rsp,%rax)
movq %rbp, %rdi
movq 0x30(%rsp), %rsi
callq 0x41ec0
movq %rbp, %rdi
movq 0x489b3(%rip), %rsi     # 0xa2d10
callq 0x41450
leaq 0xc0(%rsp), %rdi
callq 0x3f730
addq $0x20, %r13
decq %r12
jne 0x5a22f
cmpl $0x2, 0xc(%rsp)
jne 0x5a49a
movq 0x78(%r14), %r13
movq (%r13), %rdi
leaq 0x24db3(%rip), %rsi     # 0x7f149
callq 0x3f590
testl %eax, %eax
jne 0x5a409
leaq 0x130(%rbx), %r14
leaq 0x48(%rsp), %r15
leaq 0x24d97(%rip), %r12     # 0x7f149
movq 0x138(%rbx), %rsi
cmpq 0x140(%rbx), %rsi
je 0x5a3d6
movq 0x138(%rbx), %rdi
addq $0x24, %rdi
movq %rdi, 0x138(%rbx)
jmp 0x5a3e8
movq %r14, %rdi
movq %r15, %rdx
callq 0x3f410
movq 0x138(%rbx), %rdi
addq $-0x24, %rdi
movq (%r13), %rsi
callq 0x41490
movq 0x8(%r13), %rdi
addq $0x8, %r13
movq %r12, %rsi
callq 0x3f590
testl %eax, %eax
je 0x5a3b2
movq (%r13), %rsi
movq %rbx, %rdi
movq %rbx, %rdx
callq 0x405e0
leaq 0x198(%rbx), %rdi
movq 0x8(%r13), %rsi
movq %rbx, %rdx
callq 0x41460
movq 0x1b0(%rbx), %rax
movq (%rax), %r14
leaq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %r15
movq %r15, (%rdi)
leaq 0x26061(%rip), %rsi     # 0x804aa
leaq 0x26065(%rip), %rdx     # 0x804b5
callq 0x3f8a0
leaq 0x48(%rsp), %rsi
movq %r14, %rdi
callq 0x412f0
movq %rax, 0x190(%rbx)
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0x5a480
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x40880
movq %rbx, %rdi
callq 0x41340
addq $0x1c8, %rsp            # imm = 0x1C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x20, %edi
callq 0x3fb00
movq %rax, %r14
leaq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
movq %rax, (%rdi)
leaq 0x2617f(%rip), %rsi     # 0x8063a
leaq 0x26192(%rip), %rdx     # 0x80654
callq 0x3f8a0
movb $0x1, %bpl
leaq 0x48(%rsp), %rsi
movq %r14, %rdi
callq 0x3f890
xorl %ebp, %ebp
movq 0x489c8(%rip), %rsi     # 0xa2ea8
movq 0x48751(%rip), %rdx     # 0xa2c38
movq %r14, %rdi
callq 0x41d70
movq %rax, %rbx
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x5a50e
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x40880
testb %bpl, %bpl
jne 0x5a518
jmp 0x5a58c
movq %rax, %rbx
movq %r14, %rdi
callq 0x40090
jmp 0x5a58c
jmp 0x5a52e
jmp 0x5a542
jmp 0x5a56b
jmp 0x5a542
jmp 0x5a56b
jmp 0x5a542
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0x5a58c
movq 0x58(%rsp), %rsi
jmp 0x5a55d
movq %rax, %rbx
jmp 0x5a58c
jmp 0x5a56b
jmp 0x5a54b
movq %rax, %rbx
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x5a58c
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x40880
jmp 0x5a58c
jmp 0x5a56b
jmp 0x5a56b
movq %rax, %rbx
movq 0x4879b(%rip), %rsi     # 0xa2d10
leaq 0x48(%rsp), %rdi
callq 0x41450
leaq 0xc0(%rsp), %rdi
callq 0x3f730
movq %rbx, %rdi
callq 0x41f10