// File: Kingsford-Group[P]ghost2/src/gzWriter.hpp
// Function: GzWriter::writeData(boost::unordered::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<LevelData, std::allocator<LevelData>>, boost::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::vector<LevelData, std::allocator<LevelData>>>>>)
void GzWriter::writeData(levelMap levelmap)
{
  levelMap::iterator iter = levelmap.begin(),
  iend = levelmap.end();
  for(; iter != iend; iter++)
  {
    writeString(iter->first);
    for(int i=1;i<=(iter->second).size();i++)
    {
      writeInt(i);
      int sz = (iter->second)[i-1].vnames.size();
      writeInt(sz);
      for(int j=0;j<sz;j++)
        writeString((iter->second)[i-1].vnames[j]);
      sz = (iter->second)[i-1].spectrum.size();
      writeInt(sz);
      for(int j=0;j<sz;j++)
        writeDouble((iter->second)[i-1].spectrum[j]);
      writeDouble((iter->second)[i-1].density);
    }
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rsi, -0xa0(%rbp)
movq %rdi, %rax
movq -0xa0(%rbp), %rdi
movq %rdi, -0x90(%rbp)
movq %rax, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x98(%rbp)
callq 0x25550
movq -0x90(%rbp), %rdi
movq %rax, -0x18(%rbp)
callq 0x25590
movq %rax, -0x20(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x255b0
testb $0x1, %al
jne 0x15df5
jmp 0x16046
leaq -0x18(%rbp), %rdi
callq 0x255e0
movq %rax, %rsi
leaq -0x40(%rbp), %rdi
movq %rdi, -0xa8(%rbp)
callq 0x10300
movq -0x98(%rbp), %rdi
movq -0xa8(%rbp), %rsi
callq 0x15d00
jmp 0x15e26
leaq -0x40(%rbp), %rdi
callq 0x10460
movl $0x1, -0x50(%rbp)
movslq -0x50(%rbp), %rax
movq %rax, -0xb0(%rbp)
leaq -0x18(%rbp), %rdi
callq 0x255e0
movq %rax, %rdi
addq $0x20, %rdi
callq 0x25600
movq %rax, %rcx
movq -0xb0(%rbp), %rax
cmpq %rcx, %rax
ja 0x1602d
movq -0x98(%rbp), %rdi
movl -0x50(%rbp), %esi
callq 0x25630
leaq -0x18(%rbp), %rdi
callq 0x255e0
movq %rax, %rdi
addq $0x20, %rdi
movl -0x50(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x25670
movq %rax, %rdi
callq 0x24d70
movq -0x98(%rbp), %rdi
movl %eax, -0x54(%rbp)
movl -0x54(%rbp), %esi
callq 0x25630
movl $0x0, -0x58(%rbp)
movl -0x58(%rbp), %eax
cmpl -0x54(%rbp), %eax
jge 0x15f5c
leaq -0x18(%rbp), %rdi
callq 0x255e0
movq %rax, %rdi
addq $0x20, %rdi
movl -0x50(%rbp), %eax
decl %eax
movslq %eax, %rsi
callq 0x25670
movq %rax, %rdi
movslq -0x58(%rbp), %rsi
callq 0x24d90
movq %rax, %rsi
leaq -0x78(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
callq 0x10300
movq -0x98(%rbp), %rdi
movq -0xb8(%rbp), %rsi
callq 0x15d00
jmp 0x15f14
leaq -0x78(%rbp), %rdi
callq 0x10460
movl -0x58(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
jmp 0x15eb7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x10460
jmp 0x1604f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x10460
jmp 0x1604f
leaq -0x18(%rbp), %rdi
callq 0x255e0
movq %rax, %rdi
addq $0x20, %rdi
movl -0x50(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x25670
movq %rax, %rdi
addq $0x18, %rdi
callq 0x254e0
movq -0x98(%rbp), %rdi
movl %eax, -0x54(%rbp)
movl -0x54(%rbp), %esi
callq 0x25630
movl $0x0, -0x7c(%rbp)
movl -0x7c(%rbp), %eax
cmpl -0x54(%rbp), %eax
jge 0x15ff0
leaq -0x18(%rbp), %rdi
callq 0x255e0
movq %rax, %rdi
addq $0x20, %rdi
movl -0x50(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x25670
movq %rax, %rdi
addq $0x18, %rdi
movslq -0x7c(%rbp), %rsi
callq 0x25500
movq -0x98(%rbp), %rdi
movsd (%rax), %xmm0
callq 0x25690
movl -0x7c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7c(%rbp)
jmp 0x15f9f
leaq -0x18(%rbp), %rdi
callq 0x255e0
movq %rax, %rdi
addq $0x20, %rdi
movl -0x50(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x25670
movq -0x98(%rbp), %rdi
movsd 0x30(%rax), %xmm0
callq 0x25690
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x15e36
jmp 0x1602f
leaq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x256d0
movq %rax, -0x88(%rbp)
jmp 0x15ddf
addq $0xc0, %rsp
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x10cc0
nopl (%rax,%rax)