// File: Luthaf[P]zeopp/networkio.cc
// Function: writeToCIF(char*, ATOM_NETWORK*)
bool writeToCIF(char *filename,  ATOM_NETWORK *cell){
  fstream output;
  output.open(filename, fstream::out);
  if(!output.is_open()){
    cerr << "Error: Failed to open .cif output file " << filename << endl;
	//cerr << "Exiting ..." << "\n";
    //exit(1);
    return false;
  }
  else{
    cout   << "Writing atom network information to " << filename << "\n";
    //output << "data_" << origname << endl; //we need this data_(name) line otherwise the cif file will not be considered valid in some software packages
    //Instead of supplying argument to write data_..., using timestamp with number of atoms in the structure
    string formula = get_formula(cell);
    string time_stamp = get_timestamp();
    output << "data_" << formula << "_" << time_stamp << endl;
    output << "#******************************************" << endl;
    output << "#" << endl;
    output << "# CIF file created by Zeo++" << endl;
    output << "# Zeo++ is an open source package to" << endl;
    output << "# analyze microporous materials" << endl;
    output << "#" << endl;
    output << "#*******************************************" << "\n\n";
    output << "_cell_length_a\t\t" << cell->a << "   " << endl;     //  removed (0)
    output << "_cell_length_b\t\t" << cell->b << "   " << endl;
    output << "_cell_length_c\t\t" << cell->c << "   " << endl;
    output << "_cell_angle_alpha\t\t" << cell->alpha << "   " << endl;
    output << "_cell_angle_beta\t\t" << cell->beta << "   " << endl;
    output << "_cell_angle_gamma\t\t" << cell->gamma << "   \n\n";
    output << "_symmetry_space_group_name_H-M\t\t" << "'P1'" << endl;
    output << "_symmetry_Int_Tables_number\t\t" << "1" << endl;
    output << "_symmetry_cell_setting\t\t";

    //Determine the Crystal System
    if (cell->alpha == 90 && cell->beta == 90 && cell->gamma == 90){
      if (cell->a == cell->b || cell->b == cell->c || cell->a == cell->c){
	      if (cell->a == cell->b && cell->b == cell->c){
	        output << "Isometric\n" << endl;
	      }
	      else {
	        output << "Tetragonal\n" << endl;
        }
      }
      else{
      	output << "Orthorhombic\n" << endl;
      }
    }
    else if(cell->alpha == cell->beta || cell->beta == cell->gamma || cell->alpha == cell->gamma){
      output << "Monoclinic\n" << endl;
    }
    else{
      output << "Triclinic\n" << endl;
    }

    output << "loop_" << endl;
    output << "_symmetry_equiv_pos_as_xyz" << endl;
    output << "'+x,+y,+z'\n" << endl;
    output << "loop_" << endl;
    output << "_atom_site_label" << endl;
    output << "_atom_site_type_symbol" << endl;
    output << "_atom_site_fract_x" << endl;
    output << "_atom_site_fract_y" << endl;
    output << "_atom_site_fract_z" << endl;
    for (unsigned int i=0; i<cell->atoms.size(); i++){
      ATOM *temp=&(cell->atoms.at(i));
      output << temp->specialID << "\t" << temp->type << "\t" << trans_to_origuc(temp->a_coord) << "\t" << trans_to_origuc(temp->b_coord) << "\t" << trans_to_origuc(temp->c_coord) << endl;
    }
    output.close();
    return true;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x4a0, %rsp            # imm = 0x4A0
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
leaq -0x228(%rbp), %rdi
movq %rdi, -0x290(%rbp)
callq 0x5660
movq -0x290(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x10, %edx
callq 0x54b0
jmp 0x5550d
leaq -0x228(%rbp), %rdi
callq 0x58b0
movb %al, -0x291(%rbp)
jmp 0x55521
movb -0x291(%rbp), %al
testb $0x1, %al
jne 0x555a1
jmp 0x5552d
movq 0x21dabc(%rip), %rdi    # 0x272ff0
leaq 0x19e0d3(%rip), %rsi    # 0x1f360e
callq 0x5540
movq %rax, -0x2a0(%rbp)
jmp 0x55549
movq -0x2a0(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x5540
movq %rax, -0x2a8(%rbp)
jmp 0x55562
movq -0x2a8(%rbp), %rdi
movq 0x21da28(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55577
movb $0x0, -0x1(%rbp)
movl $0x1, -0x238(%rbp)
jmp 0x56154
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x230(%rbp)
movl %eax, -0x234(%rbp)
jmp 0x5616e
movq 0x21da18(%rip), %rdi    # 0x272fc0
leaq 0x19dff4(%rip), %rsi    # 0x1f35a3
callq 0x5540
movq %rax, -0x2b0(%rbp)
jmp 0x555bd
movq -0x2b0(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x5540
movq %rax, -0x2b8(%rbp)
jmp 0x555d6
movq -0x2b8(%rbp), %rdi
leaq 0x1a4041(%rip), %rsi    # 0x1f9625
callq 0x5540
jmp 0x555eb
movq -0x18(%rbp), %rsi
leaq -0x258(%rbp), %rdi
callq 0x550b0
jmp 0x555fd
leaq -0x278(%rbp), %rdi
callq 0x55400
jmp 0x5560b
leaq -0x218(%rbp), %rdi
leaq 0x19d638(%rip), %rsi    # 0x1f2c51
callq 0x5540
movq %rax, -0x2c0(%rbp)
jmp 0x55627
movq -0x2c0(%rbp), %rdi
leaq -0x258(%rbp), %rsi
callq 0x5480
movq %rax, -0x2c8(%rbp)
jmp 0x55643
movq -0x2c8(%rbp), %rdi
leaq 0x1a38d7(%rip), %rsi    # 0x1f8f28
callq 0x5540
movq %rax, -0x2d0(%rbp)
jmp 0x5565f
movq -0x2d0(%rbp), %rdi
leaq -0x278(%rbp), %rsi
callq 0x5480
movq %rax, -0x2d8(%rbp)
jmp 0x5567b
movq -0x2d8(%rbp), %rdi
movq 0x21d90f(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55690
leaq -0x218(%rbp), %rdi
leaq 0x19df98(%rip), %rsi    # 0x1f3636
callq 0x5540
movq %rax, -0x2e0(%rbp)
jmp 0x556ac
movq -0x2e0(%rbp), %rdi
movq 0x21d8de(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x556c1
leaq -0x218(%rbp), %rdi
leaq 0x1a0dd7(%rip), %rsi    # 0x1f64a6
callq 0x5540
movq %rax, -0x2e8(%rbp)
jmp 0x556dd
movq -0x2e8(%rbp), %rdi
movq 0x21d8ad(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x556f2
leaq -0x218(%rbp), %rdi
leaq 0x19df62(%rip), %rsi    # 0x1f3662
callq 0x5540
movq %rax, -0x2f0(%rbp)
jmp 0x5570e
movq -0x2f0(%rbp), %rdi
movq 0x21d87c(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55723
leaq -0x218(%rbp), %rdi
leaq 0x19df4d(%rip), %rsi    # 0x1f367e
callq 0x5540
movq %rax, -0x2f8(%rbp)
jmp 0x5573f
movq -0x2f8(%rbp), %rdi
movq 0x21d84b(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55754
leaq -0x218(%rbp), %rdi
leaq 0x19df41(%rip), %rsi    # 0x1f36a3
callq 0x5540
movq %rax, -0x300(%rbp)
jmp 0x55770
movq -0x300(%rbp), %rdi
movq 0x21d81a(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55785
leaq -0x218(%rbp), %rdi
leaq 0x1a0d13(%rip), %rsi    # 0x1f64a6
callq 0x5540
movq %rax, -0x308(%rbp)
jmp 0x557a1
movq -0x308(%rbp), %rdi
movq 0x21d7e9(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x557b6
leaq -0x218(%rbp), %rdi
leaq 0x19deff(%rip), %rsi    # 0x1f36c3
callq 0x5540
movq %rax, -0x310(%rbp)
jmp 0x557d2
movq -0x310(%rbp), %rdi
leaq 0x1a649e(%rip), %rsi    # 0x1fbc7e
callq 0x5540
jmp 0x557e7
leaq -0x218(%rbp), %rdi
leaq 0x19defb(%rip), %rsi    # 0x1f36f0
callq 0x5540
movq %rax, -0x318(%rbp)
jmp 0x55803
movq -0x318(%rbp), %rdi
movq -0x18(%rbp), %rax
movsd 0x8(%rax), %xmm0
callq 0x5980
movq %rax, -0x320(%rbp)
jmp 0x55821
movq -0x320(%rbp), %rdi
leaq 0x19cc58(%rip), %rsi    # 0x1f2487
callq 0x5540
movq %rax, -0x328(%rbp)
jmp 0x5583d
movq -0x328(%rbp), %rdi
movq 0x21d74d(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55852
leaq -0x218(%rbp), %rdi
leaq 0x19dea1(%rip), %rsi    # 0x1f3701
callq 0x5540
movq %rax, -0x330(%rbp)
jmp 0x5586e
movq -0x330(%rbp), %rdi
movq -0x18(%rbp), %rax
movsd 0x10(%rax), %xmm0
callq 0x5980
movq %rax, -0x338(%rbp)
jmp 0x5588c
movq -0x338(%rbp), %rdi
leaq 0x19cbed(%rip), %rsi    # 0x1f2487
callq 0x5540
movq %rax, -0x340(%rbp)
jmp 0x558a8
movq -0x340(%rbp), %rdi
movq 0x21d6e2(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x558bd
leaq -0x218(%rbp), %rdi
leaq 0x19de47(%rip), %rsi    # 0x1f3712
callq 0x5540
movq %rax, -0x348(%rbp)
jmp 0x558d9
movq -0x348(%rbp), %rdi
movq -0x18(%rbp), %rax
movsd 0x18(%rax), %xmm0
callq 0x5980
movq %rax, -0x350(%rbp)
jmp 0x558f7
movq -0x350(%rbp), %rdi
leaq 0x19cb82(%rip), %rsi    # 0x1f2487
callq 0x5540
movq %rax, -0x358(%rbp)
jmp 0x55913
movq -0x358(%rbp), %rdi
movq 0x21d677(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55928
leaq -0x218(%rbp), %rdi
leaq 0x19dded(%rip), %rsi    # 0x1f3723
callq 0x5540
movq %rax, -0x360(%rbp)
jmp 0x55944
movq -0x360(%rbp), %rdi
movq -0x18(%rbp), %rax
movsd 0x20(%rax), %xmm0
callq 0x5980
movq %rax, -0x368(%rbp)
jmp 0x55962
movq -0x368(%rbp), %rdi
leaq 0x19cb17(%rip), %rsi    # 0x1f2487
callq 0x5540
movq %rax, -0x370(%rbp)
jmp 0x5597e
movq -0x370(%rbp), %rdi
movq 0x21d60c(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55993
leaq -0x218(%rbp), %rdi
leaq 0x19dd96(%rip), %rsi    # 0x1f3737
callq 0x5540
movq %rax, -0x378(%rbp)
jmp 0x559af
movq -0x378(%rbp), %rdi
movq -0x18(%rbp), %rax
movsd 0x28(%rax), %xmm0
callq 0x5980
movq %rax, -0x380(%rbp)
jmp 0x559cd
movq -0x380(%rbp), %rdi
leaq 0x19caac(%rip), %rsi    # 0x1f2487
callq 0x5540
movq %rax, -0x388(%rbp)
jmp 0x559e9
movq -0x388(%rbp), %rdi
movq 0x21d5a1(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x559fe
leaq -0x218(%rbp), %rdi
leaq 0x19dd3e(%rip), %rsi    # 0x1f374a
callq 0x5540
movq %rax, -0x390(%rbp)
jmp 0x55a1a
movq -0x390(%rbp), %rdi
movq -0x18(%rbp), %rax
movsd 0x30(%rax), %xmm0
callq 0x5980
movq %rax, -0x398(%rbp)
jmp 0x55a38
movq -0x398(%rbp), %rdi
leaq 0x19dd18(%rip), %rsi    # 0x1f375e
callq 0x5540
jmp 0x55a4d
leaq -0x218(%rbp), %rdi
leaq 0x19dd09(%rip), %rsi    # 0x1f3764
callq 0x5540
movq %rax, -0x3a0(%rbp)
jmp 0x55a69
movq -0x3a0(%rbp), %rdi
leaq 0x19dd0e(%rip), %rsi    # 0x1f3785
callq 0x5540
movq %rax, -0x3a8(%rbp)
jmp 0x55a85
movq -0x3a8(%rbp), %rdi
movq 0x21d505(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55a9a
leaq -0x218(%rbp), %rdi
leaq 0x19dce2(%rip), %rsi    # 0x1f378a
callq 0x5540
movq %rax, -0x3b0(%rbp)
jmp 0x55ab6
movq -0x3b0(%rbp), %rdi
leaq 0x19db21(%rip), %rsi    # 0x1f35e5
callq 0x5540
movq %rax, -0x3b8(%rbp)
jmp 0x55ad2
movq -0x3b8(%rbp), %rdi
movq 0x21d4b8(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55ae7
leaq -0x218(%rbp), %rdi
leaq 0x19dcb3(%rip), %rsi    # 0x1f37a8
callq 0x5540
jmp 0x55afc
movq -0x18(%rbp), %rax
movsd 0x20(%rax), %xmm0
movsd 0x19cfab(%rip), %xmm1   # 0x1f2ab8
ucomisd %xmm1, %xmm0
jne 0x55cbb
jp 0x55cbb
movq -0x18(%rbp), %rax
movsd 0x28(%rax), %xmm0
movsd 0x19cf8a(%rip), %xmm1   # 0x1f2ab8
ucomisd %xmm1, %xmm0
jne 0x55cbb
jp 0x55cbb
movq -0x18(%rbp), %rax
movsd 0x30(%rax), %xmm0
movsd 0x19cf69(%rip), %xmm1   # 0x1f2ab8
ucomisd %xmm1, %xmm0
jne 0x55cbb
jp 0x55cbb
movq -0x18(%rbp), %rax
movsd 0x8(%rax), %xmm0
movq -0x18(%rbp), %rax
ucomisd 0x10(%rax), %xmm0
jne 0x55b77
jp 0x55b77
jmp 0x55bad
movq -0x18(%rbp), %rax
movsd 0x10(%rax), %xmm0
movq -0x18(%rbp), %rax
ucomisd 0x18(%rax), %xmm0
jne 0x55b8f
jp 0x55b8f
jmp 0x55bad
movq -0x18(%rbp), %rax
movsd 0x8(%rax), %xmm0
movq -0x18(%rbp), %rax
ucomisd 0x18(%rax), %xmm0
jne 0x55c83
jp 0x55c83
movq -0x18(%rbp), %rax
movsd 0x8(%rax), %xmm0
movq -0x18(%rbp), %rax
ucomisd 0x10(%rax), %xmm0
jne 0x55c4e
jp 0x55c4e
movq -0x18(%rbp), %rax
movsd 0x10(%rax), %xmm0
movq -0x18(%rbp), %rax
ucomisd 0x18(%rax), %xmm0
jne 0x55c4e
jp 0x55c4e
leaq -0x218(%rbp), %rdi
leaq 0x19dbd2(%rip), %rsi    # 0x1f37c1
callq 0x5540
movq %rax, -0x3c0(%rbp)
jmp 0x55bfd
movq -0x3c0(%rbp), %rdi
movq 0x21d38d(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55c12
jmp 0x55c81
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x230(%rbp)
movl %eax, -0x234(%rbp)
jmp 0x56146
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x230(%rbp)
movl %eax, -0x234(%rbp)
leaq -0x278(%rbp), %rdi
callq 0x5300
jmp 0x56146
leaq -0x218(%rbp), %rdi
leaq 0x19db70(%rip), %rsi    # 0x1f37cc
callq 0x5540
movq %rax, -0x3c8(%rbp)
jmp 0x55c6a
movq -0x3c8(%rbp), %rdi
movq 0x21d320(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55c7f
jmp 0x55c81
jmp 0x55cb6
leaq -0x218(%rbp), %rdi
leaq 0x19db47(%rip), %rsi    # 0x1f37d8
callq 0x5540
movq %rax, -0x3d0(%rbp)
jmp 0x55c9f
movq -0x3d0(%rbp), %rdi
movq 0x21d2eb(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55cb4
jmp 0x55cb6
jmp 0x55d69
movq -0x18(%rbp), %rax
movsd 0x20(%rax), %xmm0
movq -0x18(%rbp), %rax
ucomisd 0x28(%rax), %xmm0
jne 0x55cd3
jp 0x55cd3
jmp 0x55d01
movq -0x18(%rbp), %rax
movsd 0x28(%rax), %xmm0
movq -0x18(%rbp), %rax
ucomisd 0x30(%rax), %xmm0
jne 0x55ceb
jp 0x55ceb
jmp 0x55d01
movq -0x18(%rbp), %rax
movsd 0x20(%rax), %xmm0
movq -0x18(%rbp), %rax
ucomisd 0x30(%rax), %xmm0
jne 0x55d34
jp 0x55d34
leaq -0x218(%rbp), %rdi
leaq 0x19dad7(%rip), %rsi    # 0x1f37e6
callq 0x5540
movq %rax, -0x3d8(%rbp)
jmp 0x55d1d
movq -0x3d8(%rbp), %rdi
movq 0x21d26d(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55d32
jmp 0x55d67
leaq -0x218(%rbp), %rdi
leaq 0x19dab0(%rip), %rsi    # 0x1f37f2
callq 0x5540
movq %rax, -0x3e0(%rbp)
jmp 0x55d50
movq -0x3e0(%rbp), %rdi
movq 0x21d23a(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55d65
jmp 0x55d67
jmp 0x55d69
leaq -0x218(%rbp), %rdi
leaq 0x19cf42(%rip), %rsi    # 0x1f2cb9
callq 0x5540
movq %rax, -0x3e8(%rbp)
jmp 0x55d85
movq -0x3e8(%rbp), %rdi
movq 0x21d205(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55d9a
leaq -0x218(%rbp), %rdi
leaq 0x19cf17(%rip), %rsi    # 0x1f2cbf
callq 0x5540
movq %rax, -0x3f0(%rbp)
jmp 0x55db6
movq -0x3f0(%rbp), %rdi
movq 0x21d1d4(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55dcb
leaq -0x218(%rbp), %rdi
leaq 0x19da24(%rip), %rsi    # 0x1f37fd
callq 0x5540
movq %rax, -0x3f8(%rbp)
jmp 0x55de7
movq -0x3f8(%rbp), %rdi
movq 0x21d1a3(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55dfc
leaq -0x218(%rbp), %rdi
leaq 0x19ceaf(%rip), %rsi    # 0x1f2cb9
callq 0x5540
movq %rax, -0x400(%rbp)
jmp 0x55e18
movq -0x400(%rbp), %rdi
movq 0x21d172(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55e2d
leaq -0x218(%rbp), %rdi
leaq 0x19cec0(%rip), %rsi    # 0x1f2cfb
callq 0x5540
movq %rax, -0x408(%rbp)
jmp 0x55e49
movq -0x408(%rbp), %rdi
movq 0x21d141(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55e5e
leaq -0x218(%rbp), %rdi
leaq 0x19cea0(%rip), %rsi    # 0x1f2d0c
callq 0x5540
movq %rax, -0x410(%rbp)
jmp 0x55e7a
movq -0x410(%rbp), %rdi
movq 0x21d110(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55e8f
leaq -0x218(%rbp), %rdi
leaq 0x19ce86(%rip), %rsi    # 0x1f2d23
callq 0x5540
movq %rax, -0x418(%rbp)
jmp 0x55eab
movq -0x418(%rbp), %rdi
movq 0x21d0df(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55ec0
leaq -0x218(%rbp), %rdi
leaq 0x19ce68(%rip), %rsi    # 0x1f2d36
callq 0x5540
movq %rax, -0x420(%rbp)
jmp 0x55edc
movq -0x420(%rbp), %rdi
movq 0x21d0ae(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55ef1
leaq -0x218(%rbp), %rdi
leaq 0x19ce4a(%rip), %rsi    # 0x1f2d49
callq 0x5540
movq %rax, -0x428(%rbp)
jmp 0x55f0d
movq -0x428(%rbp), %rdi
movq 0x21d07d(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x55f22
movl $0x0, -0x27c(%rbp)
movl -0x27c(%rbp), %eax
movq %rax, -0x430(%rbp)
movq -0x18(%rbp), %rdi
addq $0x2f0, %rdi            # imm = 0x2F0
callq 0xf060
movq %rax, %rcx
movq -0x430(%rbp), %rax
cmpq %rcx, %rax
jae 0x56110
movq -0x18(%rbp), %rdi
addq $0x2f0, %rdi            # imm = 0x2F0
movl -0x27c(%rbp), %eax
movl %eax, %esi
callq 0xf090
movq %rax, -0x438(%rbp)
jmp 0x55f7d
movq -0x438(%rbp), %rax
movq %rax, -0x288(%rbp)
leaq -0x218(%rbp), %rdi
movq -0x288(%rbp), %rax
movl 0x80(%rax), %esi
callq 0x58d0
movq %rax, -0x440(%rbp)
jmp 0x55fad
movq -0x440(%rbp), %rdi
leaq 0x19d610(%rip), %rsi    # 0x1f35cb
callq 0x5540
movq %rax, -0x448(%rbp)
jmp 0x55fc9
movq -0x448(%rbp), %rdi
movq -0x288(%rbp), %rsi
addq $0x40, %rsi
callq 0x5480
movq %rax, -0x450(%rbp)
jmp 0x55fe9
movq -0x450(%rbp), %rdi
leaq 0x19d5d4(%rip), %rsi    # 0x1f35cb
callq 0x5540
movq %rax, -0x458(%rbp)
jmp 0x56005
movq -0x288(%rbp), %rax
movsd 0x18(%rax), %xmm0
callq 0xe9290
movsd %xmm0, -0x460(%rbp)
jmp 0x56020
movsd -0x460(%rbp), %xmm0
movq -0x458(%rbp), %rdi
callq 0x5980
movq %rax, -0x468(%rbp)
jmp 0x5603d
movq -0x468(%rbp), %rdi
leaq 0x19d580(%rip), %rsi    # 0x1f35cb
callq 0x5540
movq %rax, -0x470(%rbp)
jmp 0x56059
movq -0x288(%rbp), %rax
movsd 0x20(%rax), %xmm0
callq 0xe9290
movsd %xmm0, -0x478(%rbp)
jmp 0x56074
movsd -0x478(%rbp), %xmm0
movq -0x470(%rbp), %rdi
callq 0x5980
movq %rax, -0x480(%rbp)
jmp 0x56091
movq -0x480(%rbp), %rdi
leaq 0x19d52c(%rip), %rsi    # 0x1f35cb
callq 0x5540
movq %rax, -0x488(%rbp)
jmp 0x560ad
movq -0x288(%rbp), %rax
movsd 0x28(%rax), %xmm0
callq 0xe9290
movsd %xmm0, -0x490(%rbp)
jmp 0x560c8
movsd -0x490(%rbp), %xmm0
movq -0x488(%rbp), %rdi
callq 0x5980
movq %rax, -0x498(%rbp)
jmp 0x560e5
movq -0x498(%rbp), %rdi
movq 0x21cea5(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x560fa
jmp 0x560fc
movl -0x27c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x27c(%rbp)
jmp 0x55f2c
leaq -0x228(%rbp), %rdi
callq 0x50a0
jmp 0x5611e
movb $0x1, -0x1(%rbp)
movl $0x1, -0x238(%rbp)
leaq -0x278(%rbp), %rdi
callq 0x5300
leaq -0x258(%rbp), %rdi
callq 0x5300
jmp 0x56154
leaq -0x258(%rbp), %rdi
callq 0x5300
jmp 0x5616e
leaq -0x228(%rbp), %rdi
callq 0x5150
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x4a0, %rsp            # imm = 0x4A0
popq %rbp
retq
leaq -0x228(%rbp), %rdi
callq 0x5150
movq -0x230(%rbp), %rdi
callq 0x58f0
nopw %cs:(%rax,%rax)