// File: /workspace/github_cpp_makefile_star2_O2/Kingsford-Group[P]ghost2/src/gzReader.hpp
// Function: loadSigs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
spectramap loadSigs(string file)
{

  if(FILE *check = fopen(file.c_str(),"r")) {fclose(check);}
  else {std::cout << "file: " << file << " not found\n"; exit(0);}

  io::filtering_istream in;
  in.push(io::gzip_decompressor());
  in.push(io::file_descriptor_source(file));

  int numVerts = readInt(in);
  int numHops = readInt(in);

  spectramap map;

  for(int i=0; i < numVerts; i++)
  {
    vector<LevelInfo> levels;
    string vname = readString(in);
    for(int j=0; j < numHops; j++)
    {
      int l = readInt(in);
      int numnames = readInt(in);
      vector<string> vnames;
      vector<double> spectrum;
     
      for(int k=0; k < numnames; k++)
        vnames.push_back(readString(in));

      int spectrumSize = readInt(in);

      for(int k=0; k < spectrumSize; k++)
        spectrum.push_back(readDouble(in));

      double density = readDouble(in);
      LevelInfo m(vnames,spectrum,density,
                  ipsenMikhailovVector(&spectrum[0], spectrum.size(), .005));
      levels.push_back(m);
    }
    map[vname] = levels;
  }
  return map;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2c8, %rsp            # imm = 0x2C8
movq %rsi, %rbx
movq %rdi, 0x8(%rsp)
movq (%rsi), %rdi
leaq 0x30a22(%rip), %rsi     # 0x4319c
callq 0xe650
testq %rax, %rax
je 0x12a6b
movq %rax, %rdi
callq 0xe550
leaq 0x190(%rsp), %rdi
callq 0x1969a
leaq 0xe8(%rsp), %rdi
pushq $0xf
popq %rsi
movl $0x1000, %edx           # imm = 0x1000
callq 0x196f8
movq 0x198(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
pushq $-0x1
popq %rcx
movq %rcx, %rdx
callq 0x356d4
leaq 0xe8(%rsp), %rdi
callq 0x197a0
leaq 0xe8(%rsp), %rdi
pushq $0x8
popq %rdx
movq %rbx, %rsi
callq 0xeab0
movq 0x198(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
pushq $-0x1
popq %rcx
movq %rcx, %rdx
callq 0x374fa
leaq 0xf0(%rsp), %rdi
callq 0x1ce8e
leaq 0x1a0(%rsp), %r14
movq %r14, %rdi
callq 0x12379
movl %eax, %ebx
movq %r14, %rdi
callq 0x12379
movl %eax, %ebp
movq 0x8(%rsp), %rdi
callq 0x197c6
xorl %eax, %eax
testl %ebp, %ebp
cmovlel %eax, %ebp
movl %ebp, 0x18(%rsp)
testl %ebx, %ebx
cmovlel %eax, %ebx
movl %ebx, 0x10(%rsp)
leaq 0x40(%rsp), %rbp
leaq 0x20(%rsp), %r13
leaq 0xe8(%rsp), %rbx
xorl %eax, %eax
cmpl 0x10(%rsp), %eax
je 0x12a47
movl %eax, 0x14(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x60(%rsp)
andq $0x0, 0x70(%rsp)
leaq 0xb0(%rsp), %rdi
movq %r14, %rsi
callq 0x12424
xorl %eax, %eax
movl %eax, 0x1c(%rsp)
cmpl 0x18(%rsp), %eax
je 0x12a01
movq %r14, %rdi
callq 0x12379
movq %r14, %rdi
callq 0x12379
movl %eax, %r12d
andq $0x0, 0x50(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x40(%rsp)
andq $0x0, 0x30(%rsp)
movaps %xmm0, 0x20(%rsp)
testl %eax, %eax
movl $0x0, %eax
cmovlel %eax, %r12d
subl $0x1, %r12d
jb 0x128fc
movq %rbx, %rdi
movq %r14, %rsi
callq 0x12424
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x380b6
movq %rbx, %rdi
callq 0xe290
jmp 0x128d6
movq %r14, %rdi
callq 0x12379
movl %eax, %r12d
testl %eax, %eax
movl $0x0, %eax
cmovlel %eax, %r12d
subl $0x1, %r12d
jb 0x12936
movq %r14, %rdi
callq 0x123c8
movsd %xmm0, 0xe8(%rsp)
movq %r13, %rdi
movq %rbx, %rsi
callq 0x381ac
jmp 0x12912
movq %r14, %rdi
callq 0x123c8
movsd %xmm0, 0x38(%rsp)
leaq 0x98(%rsp), %rdi
movq %rbp, %rsi
callq 0x197e0
leaq 0x80(%rsp), %rdi
movq %r13, %rsi
callq 0x19834
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
subq %rsi, %rdx
shrq $0x3, %rdx
leaq 0xd0(%rsp), %rbp
movq %rbp, %rdi
movsd 0x2d740(%rip), %xmm0    # 0x400c8
callq 0x125b5
movq %rbx, %rdi
leaq 0x98(%rsp), %r12
movq %r12, %rsi
leaq 0x80(%rsp), %r15
movq %r15, %rdx
movsd 0x38(%rsp), %xmm0
movq %rbp, %rcx
callq 0x19882
movq %rbp, %rdi
callq 0x29310
movq %r15, %rdi
callq 0x29310
movq %r12, %rdi
callq 0x18718
leaq 0x60(%rsp), %rdi
movq %rbx, %rsi
callq 0x198ee
movq %rbx, %rdi
callq 0x1991a
movq %r13, %rdi
callq 0x29310
leaq 0x40(%rsp), %rbp
movq %rbp, %rdi
callq 0x18718
movl 0x1c(%rsp), %eax
incl %eax
jmp 0x12891
movq 0x8(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x3855a
leaq 0x60(%rsp), %r15
addq $0x30, %rax
movq %rax, %rdi
movq %r15, %rsi
callq 0x1993a
leaq 0xb0(%rsp), %rdi
callq 0xe290
movq %r15, %rdi
callq 0x19a18
movl 0x14(%rsp), %eax
incl %eax
jmp 0x12863
leaq 0x190(%rsp), %rdi
callq 0x19a3a
movq 0x8(%rsp), %rax
addq $0x2c8, %rsp            # imm = 0x2C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x6a526(%rip), %rdi     # 0x7cf98
leaq 0x2dd14(%rip), %rsi     # 0x4078d
callq 0xe540
movq %rax, %rdi
movq %rbx, %rsi
callq 0xe4a0
leaq 0x2de2b(%rip), %rsi     # 0x408bb
movq %rax, %rdi
callq 0xe540
xorl %edi, %edi
callq 0xe6a0
jmp 0x12acf
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
callq 0x1ce8e
jmp 0x12b82
jmp 0x12acf
movq %rax, %rbx
leaq 0xe8(%rsp), %rdi
callq 0x197a0
jmp 0x12b82
jmp 0x12acf
movq %rax, %rbx
jmp 0x12b82
movq %rax, %rbx
jmp 0x12b6e
jmp 0x12b31
movq %rax, %rbx
jmp 0x12b08
movq %rax, %rbx
jmp 0x12afb
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
callq 0x29310
leaq 0x80(%rsp), %rdi
callq 0x29310
leaq 0x98(%rsp), %rdi
callq 0x18718
jmp 0x12b4d
movq %rax, %rbx
leaq 0xe8(%rsp), %rdi
callq 0x1991a
jmp 0x12b4d
jmp 0x12b4a
jmp 0x12b4a
jmp 0x12b4a
jmp 0x12b31
movq %rax, %rbx
jmp 0x12b61
jmp 0x12b4a
movq %rax, %rbx
leaq 0xe8(%rsp), %rdi
callq 0xe290
jmp 0x12b4d
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x29310
leaq 0x40(%rsp), %rdi
callq 0x18718
leaq 0xb0(%rsp), %rdi
callq 0xe290
leaq 0x60(%rsp), %rdi
callq 0x19a18
movq 0x8(%rsp), %rdi
callq 0x37f80
leaq 0x190(%rsp), %rdi
callq 0x19a3a
movq %rbx, %rdi
callq 0xe9f0