// File: /workspace/github_cpp_makefile_star2_O3/jstaursky[P]hutch/src/Sleigh/translate.cc
// Function: AddrSpaceManager::restoreXmlSpaces(Element const*, Translate const*)
void AddrSpaceManager::restoreXmlSpaces(const Element *el,const Translate *trans)

{
  // The first space should always be the constant space
  insertSpace(new ConstantSpace(this,trans,"const",AddrSpace::constant_space_index));

  string defname(el->getAttributeValue("defaultspace"));
  const List &list(el->getChildren());
  List::const_iterator iter;
  iter = list.begin();
  while(iter!=list.end()) {
    AddrSpace *spc = restoreXmlSpace(*iter,trans);
    insertSpace(spc);
    ++iter;
  }
  AddrSpace *spc = getSpaceByName(defname);
  if (spc == (AddrSpace *)0)
    throw LowlevelError("Bad 'defaultspace' attribute: "+defname);
  setDefaultSpace(spc->getIndex());
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
movl $0x70, %edi
callq 0x40810
movq %rax, %r12
leaq 0x18(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x32fb6(%rip), %rsi     # 0x7fab4
leaq 0x32fb4(%rip), %rdx     # 0x7fab9
leaq 0x8(%rsp), %rdi
callq 0x3f8a0
movb $0x1, %bpl
leaq 0x8(%rsp), %rcx
movq %r12, %rdi
movq %rbx, %rsi
movq %r14, %rdx
xorl %r8d, %r8d
callq 0x415a0
xorl %ebp, %ebp
movq %rbx, %rdi
movq %r12, %rsi
callq 0x3faa0
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x4cb4c
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x40880
leaq 0x38(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x32f5d(%rip), %rsi     # 0x7faba
leaq 0x32f62(%rip), %rdx     # 0x7fac6
leaq 0x28(%rsp), %rdi
callq 0x3f8a0
leaq 0x28(%rsp), %rsi
movq %r15, %rdi
callq 0x40f80
leaq 0x8(%rsp), %rdi
movq %r13, (%rdi)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
callq 0x3f8e0
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x4cba9
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x40880
movq 0x78(%r15), %rbp
cmpq 0x80(%r15), %rbp
je 0x4cbd6
movq (%rbp), %rsi
movq %rbx, %rdi
movq %r14, %rdx
callq 0x404c0
movq %rbx, %rdi
movq %rax, %rsi
callq 0x3faa0
addq $0x8, %rbp
jmp 0x4cbad
leaq 0x38(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0x41ed0
leaq 0x40(%rbx), %rcx
cmpq %rcx, %rax
je 0x4cc27
movq 0x40(%rax), %rax
testq %rax, %rax
je 0x4cc27
movl 0x60(%rax), %esi
movq %rbx, %rdi
callq 0x42470
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x4cc18
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x40880
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x20, %edi
callq 0x3fb00
movq %rax, %r14
leaq 0x32e8c(%rip), %rsi     # 0x7fac7
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x40510
movb $0x1, %bpl
leaq 0x28(%rsp), %rsi
movq %r14, %rdi
callq 0x3f890
xorl %ebp, %ebp
movq 0x56245(%rip), %rsi     # 0xa2ea8
movq 0x55fce(%rip), %rdx     # 0xa2c38
movq %r14, %rdi
callq 0x41d70
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x4cc8c
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x40880
testb %bpl, %bpl
jne 0x4cc96
jmp 0x4ccec
movq %rax, %rbx
movq %r14, %rdi
callq 0x40090
jmp 0x4ccec
movq %rax, %rbx
jmp 0x4cd03
movq %rax, %rbx
jmp 0x4ccdf
jmp 0x4cce9
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x4cd03
movq 0x38(%rsp), %rsi
jmp 0x4ccfb
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x4ccda
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x40880
testb %bpl, %bpl
je 0x4cd03
movl $0x70, %esi
movq %r12, %rdi
jmp 0x4ccfe
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x4cd03
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x40880
movq %rbx, %rdi
callq 0x41f10
nop