// File: /workspace/github_cpp_makefile_star2_O2/npaster[P]gmsh_tools/gmshMesh.cpp
// Function: gmsh::Gmesh::writeGmesh_MSHformat(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>) const
void
Gmesh::writeGmesh_MSHformat(const std::string name_mesh) const
{
   std::ofstream mesh_file(name_mesh);
   if (!mesh_file.is_open()) {
      std::cout << "Unable to open file " << name_mesh << std::endl;
      abort();
   } else {
      std::cout << "------------------------" << std::endl;
      std::cout << "Writing mesh " << name_mesh << std::endl;
      std::cout << "MSH ASCII file format" << std::endl;
      std::cout << "------------------------" << std::endl;
   }

   size_t offset_elements(1);

   mesh_file << "$MeshFormat" << std::endl;
   mesh_file << "2.2 0 8" << std::endl;
   mesh_file << "$EndMeshFormat" << std::endl;

   mesh_file << "$Nodes" << std::endl;
   mesh_file << _nodes.size() << std::endl;

   for (size_t i = 0; i < _nodes.size(); i++) {
      Node node(_nodes[i]);
      mesh_file << node.getIndex() << " " << (node.getCoordinate())[0] << " "
                << (node.getCoordinate())[1] << " " << (node.getCoordinate())[2] << std::endl;
   }

   mesh_file << "$EndNodes" << std::endl;
   mesh_file << "$Elements" << std::endl;
   mesh_file << _number_of_elements << std::endl;

   for (size_t i = 0; i < _vertices.size(); i++) {
      Vertice vert(_vertices[i]);
      mesh_file << offset_elements << " " << 15 << " " << 2 //number of tag
                << " " << vert.getPhysicalEntities() << " " << vert.getElemTag() << " "
                << (vert.getNodes())[0] << std::endl;
      offset_elements += 1;
   }

   for (size_t i = 0; i < _edges.size(); i++) {
      Edge edge(_edges[i]);
      mesh_file << offset_elements << " " << 1 << " " << 2 //number of tag
                << " " << edge.getPhysicalEntities() << " " << edge.getElemTag() << " "
                << (edge.getNodes())[0] << " " << (edge.getNodes())[1] << std::endl;
      offset_elements += 1;
   }

   for (size_t i = 0; i < _triangles.size(); i++) {
      Triangle tri(_triangles[i]);
      mesh_file << offset_elements << " " << 2 << " " << 2 //number of tag
                << " " << tri.getPhysicalEntities() << " " << tri.getElemTag() << " "
                << (tri.getNodes())[0] << " " << (tri.getNodes())[1] << " " << (tri.getNodes())[2]
                << std::endl;
      offset_elements += 1;
   }

   for (size_t i = 0; i < _quadrangles.size(); i++) {
      Quadrangle quad(_quadrangles[i]);
      mesh_file << offset_elements << " " << 3 << " " << 2 //number of tag
                << " " << quad.getPhysicalEntities() << " " << quad.getElemTag() << " "
                << (quad.getNodes())[0] << " " << (quad.getNodes())[1] << " "
                << (quad.getNodes())[2] << " " << (quad.getNodes())[3] << std::endl;
      offset_elements += 1;
   }

   for (size_t i = 0; i < _tetrahedra.size(); i++) {
      Tetrahedron tet(_tetrahedra[i]);
      mesh_file << offset_elements << " " << 4 << " " << 2 //number of tag
                << " " << tet.getPhysicalEntities() << " " << tet.getElemTag() << " "
                << (tet.getNodes())[0] << " " << (tet.getNodes())[1] << " " << (tet.getNodes())[2]
                << " " << (tet.getNodes())[3] << std::endl;
      offset_elements += 1;
   }

   for (size_t i = 0; i < _hexahedra.size(); i++) {
      Hexahedron hexa(_hexahedra[i]);
      mesh_file << offset_elements << " " << 5 << " " << 2 //number of tag
                << " " << hexa.getPhysicalEntities() << " " << hexa.getElemTag() << " "
                << (hexa.getNodes())[0] << " " << (hexa.getNodes())[1] << " "
                << (hexa.getNodes())[2] << " " << (hexa.getNodes())[3] << " "
                << (hexa.getNodes())[4] << " " << (hexa.getNodes())[5] << " "
                << (hexa.getNodes())[6] << " " << (hexa.getNodes())[7] << std::endl;
      offset_elements += 1;
   }

   for (size_t i = 0; i < _prisms.size(); i++) {
      Prism pri(_prisms[i]);
      mesh_file << offset_elements << " " << 6 << " " << 2 //number of tag
                << " " << pri.getPhysicalEntities() << " " << pri.getElemTag() << " "
                << (pri.getNodes())[0] << " " << (pri.getNodes())[1] << " " << (pri.getNodes())[2]
                << " " << (pri.getNodes())[3] << " " << (pri.getNodes())[4] << " "
                << (pri.getNodes())[5] << std::endl;
      offset_elements += 1;
   }

   for (size_t i = 0; i < _pyramids.size(); i++) {
      Pyramid py(_pyramids[i]);
      mesh_file << offset_elements << " " << 7 << " " << 2 //number of tag
                << " " << py.getPhysicalEntities() << " " << py.getElemTag() << " "
                << (py.getNodes())[0] << " " << (py.getNodes())[1] << " " << (py.getNodes())[2]
                << " " << (py.getNodes())[3] << " " << (py.getNodes())[4] << std::endl;
      offset_elements += 1;
   }

   mesh_file << "$EndElements" << std::endl;

   mesh_file.close();

   std::cout << "------------------------" << std::endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x318, %rsp            # imm = 0x318
movq %rsi, %r14
movq %rdi, -0x30(%rbp)
leaq -0x338(%rbp), %rdi
pushq $0x10
popq %rdx
callq 0x22c0
leaq -0x2c8(%rbp), %rdi
callq 0x2050
testb %al, %al
je 0x6e32
movq 0xe2ad(%rip), %rdi      # 0x13fd8
leaq 0x7339(%rip), %rsi      # 0xd06b
callq 0x21c0
movq %rax, %rdi
callq 0x20f0
movq 0xe292(%rip), %rdi      # 0x13fd8
leaq 0x7ce2(%rip), %rsi      # 0xda2f
callq 0x21c0
movq %rax, %rdi
movq %r14, %rsi
callq 0x21a0
movq %rax, %rdi
callq 0x20f0
movq 0xe26c(%rip), %rdi      # 0x13fd8
leaq 0x7d02(%rip), %rsi      # 0xda75
callq 0x21c0
movq %rax, %rdi
callq 0x20f0
movq 0xe251(%rip), %rdi      # 0x13fd8
leaq 0x72dd(%rip), %rsi      # 0xd06b
callq 0x21c0
movq %rax, %rdi
callq 0x20f0
leaq 0x7ce9(%rip), %rsi      # 0xda8b
leaq -0x338(%rbp), %rdi
callq 0x21c0
movq %rax, %rdi
callq 0x20f0
leaq 0x7cda(%rip), %rsi      # 0xda97
leaq -0x338(%rbp), %rdi
callq 0x21c0
movq %rax, %rdi
callq 0x20f0
leaq 0x7cc7(%rip), %rsi      # 0xda9f
leaq -0x338(%rbp), %rdi
callq 0x21c0
movq %rax, %rdi
callq 0x20f0
leaq 0x7bad(%rip), %rsi      # 0xd9a0
leaq -0x338(%rbp), %rdi
callq 0x21c0
movq %rax, %rdi
callq 0x20f0
movq -0x30(%rbp), %rcx
movq 0x10(%rcx), %rax
subq 0x8(%rcx), %rax
pushq $0x28
popq %rcx
cqto
idivq %rcx
leaq -0x338(%rbp), %rdi
movq %rax, %rsi
callq 0x2170
movq %rax, %rdi
callq 0x20f0
xorl %ebx, %ebx
leaq -0xd0(%rbp), %r14
leaq 0x7f0a(%rip), %r12      # 0xdd4c
xorl %r13d, %r13d
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rcx
movq 0x10(%rax), %rax
subq %rcx, %rax
cqto
pushq $0x28
popq %rsi
idivq %rsi
cmpq %rax, %r13
jae 0x5f28
movq 0x20(%rcx,%rbx), %rax
movq %rax, -0xb0(%rbp)
movups (%rcx,%rbx), %xmm0
movups 0x10(%rcx,%rbx), %xmm1
movaps %xmm1, -0xc0(%rbp)
movaps %xmm0, -0xd0(%rbp)
movq %r14, %rdi
callq 0x2616
leaq -0x338(%rbp), %rdi
movq %rax, %rsi
callq 0x2170
movq %rax, %rdi
movq %r12, %rsi
callq 0x21c0
movq %rax, %r15
leaq -0x48(%rbp), %rdi
movq %r14, %rsi
callq 0x25f4
movsd -0x48(%rbp), %xmm0
movq %r15, %rdi
callq 0x2250
movq %rax, %rdi
movq %r12, %rsi
callq 0x21c0
movq %rax, %r15
leaq -0x68(%rbp), %rdi
movq %r14, %rsi
callq 0x25f4
movsd -0x60(%rbp), %xmm0
movq %r15, %rdi
callq 0x2250
movq %rax, %rdi
movq %r12, %rsi
callq 0x21c0
movq %rax, %r15
leaq -0x80(%rbp), %rdi
movq %r14, %rsi
callq 0x25f4
movsd -0x70(%rbp), %xmm0
movq %r15, %rdi
callq 0x2250
movq %rax, %rdi
callq 0x20f0
incq %r13
addq $0x28, %rbx
jmp 0x5e45
leaq 0x7b7f(%rip), %rsi      # 0xdaae
leaq -0x338(%rbp), %rdi
callq 0x21c0
movq %rax, %rdi
callq 0x20f0
leaq 0x7aa6(%rip), %rsi      # 0xd9f0
leaq -0x338(%rbp), %rdi
callq 0x21c0
movq %rax, %rdi
callq 0x20f0
movq -0x30(%rbp), %rax
movq 0xe0(%rax), %rsi
leaq -0x338(%rbp), %rdi
callq 0x2170
movq %rax, %rdi
callq 0x20f0
pushq $0x1
popq %r14
xorl %ebx, %ebx
leaq -0xd0(%rbp), %r15
leaq 0x7dbb(%rip), %r13      # 0xdd4c
leaq -0x1(%r14), %rcx
movq -0x30(%rbp), %rax
movq 0x20(%rax), %rsi
movq 0x28(%rax), %rax
subq %rsi, %rax
cqto
pushq $0x38
popq %rdi
idivq %rdi
cmpq %rax, %rcx
jae 0x608b
addq %rbx, %rsi
movq %r15, %rdi
callq 0x86ea
leaq -0x338(%rbp), %rdi
movq %r14, %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %rdi
pushq $0xf
popq %rsi
callq 0x2290
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %rdi
pushq $0x2
popq %rsi
callq 0x2290
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
movq %r15, %rdi
callq 0x26d0
movq %r12, %rdi
movq %rax, %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
movq %r15, %rdi
callq 0x26da
movq %r12, %rdi
movq %rax, %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
leaq -0x48(%rbp), %rdi
movq %r15, %rsi
callq 0x26e4
movq -0x48(%rbp), %rax
movq (%rax), %rsi
movq %r12, %rdi
callq 0x2170
movq %rax, %rdi
callq 0x20f0
leaq -0x48(%rbp), %rdi
callq 0x2e88
incq %r14
movq %r15, %rdi
callq 0x2e88
addq $0x38, %rbx
jmp 0x5f91
movq %r14, -0x50(%rbp)
xorl %ebx, %ebx
leaq -0xd0(%rbp), %r12
leaq 0x7cad(%rip), %r13      # 0xdd4c
xorl %r14d, %r14d
movq -0x50(%rbp), %rax
leaq (%rax,%r14), %r15
movq -0x30(%rbp), %rax
movq 0x38(%rax), %rsi
movq 0x40(%rax), %rax
subq %rsi, %rax
cqto
pushq $0x38
popq %rcx
idivq %rcx
cmpq %rax, %r14
jae 0x61d3
addq %rbx, %rsi
movq %r12, %rdi
callq 0x86ea
leaq -0x338(%rbp), %rdi
movq %r15, %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %rdi
pushq $0x1
popq %rsi
callq 0x2290
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %rdi
pushq $0x2
popq %rsi
callq 0x2290
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r15
movq %r12, %rdi
callq 0x26d0
movq %r15, %rdi
movq %rax, %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r15
movq %r12, %rdi
callq 0x26da
movq %r15, %rdi
movq %rax, %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r15
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x26e4
movq -0x48(%rbp), %rax
movq (%rax), %rsi
movq %r15, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r15
leaq -0x68(%rbp), %rdi
movq %r12, %rsi
callq 0x26e4
movq -0x68(%rbp), %rax
movq 0x8(%rax), %rsi
movq %r15, %rdi
callq 0x2170
movq %rax, %rdi
callq 0x20f0
leaq -0x68(%rbp), %rdi
callq 0x2e88
leaq -0x48(%rbp), %rdi
callq 0x2e88
movq %r12, %rdi
callq 0x2e88
incq %r14
addq $0x38, %rbx
jmp 0x60a2
xorl %edi, %edi
leaq 0x7b70(%rip), %r13      # 0xdd4c
xorl %r14d, %r14d
movq -0x30(%rbp), %rax
movq 0x50(%rax), %rsi
movq 0x58(%rax), %rax
subq %rsi, %rax
cqto
pushq $0x38
popq %rcx
idivq %rcx
cmpq %rax, %r14
jae 0x6360
movq %rdi, %rbx
addq %rdi, %rsi
leaq -0xd0(%rbp), %rdi
callq 0x86ea
leaq -0x338(%rbp), %rdi
movq %r15, %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %rdi
pushq $0x2
popq %rsi
callq 0x2290
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %rdi
pushq $0x2
popq %rsi
callq 0x2290
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
leaq -0xd0(%rbp), %rdi
callq 0x26d0
movq %r12, %rdi
movq %rax, %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
leaq -0xd0(%rbp), %rdi
callq 0x26da
movq %r12, %rdi
movq %rax, %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
leaq -0x48(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x26e4
movq -0x48(%rbp), %rax
movq (%rax), %rsi
movq %r12, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
leaq -0x68(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x26e4
movq -0x68(%rbp), %rax
movq 0x8(%rax), %rsi
movq %r12, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
leaq -0x80(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x26e4
movq -0x80(%rbp), %rax
movq 0x10(%rax), %rsi
movq %r12, %rdi
callq 0x2170
movq %rax, %rdi
callq 0x20f0
leaq -0x80(%rbp), %rdi
callq 0x2e88
leaq -0x68(%rbp), %rdi
callq 0x2e88
leaq -0x48(%rbp), %rdi
callq 0x2e88
incq %r15
leaq -0xd0(%rbp), %rdi
callq 0x2e88
incq %r14
movq %rbx, %rdi
addq $0x38, %rdi
jmp 0x61df
xorl %edi, %edi
leaq 0x79e3(%rip), %r13      # 0xdd4c
xorl %ebx, %ebx
leaq (%r15,%rbx), %r14
movq -0x30(%rbp), %rax
movq 0x68(%rax), %rsi
movq 0x70(%rax), %rax
subq %rsi, %rax
cqto
pushq $0x38
popq %rcx
idivq %rcx
cmpq %rax, %rbx
jae 0x652d
movq %rdi, %r12
addq %rdi, %rsi
leaq -0xd0(%rbp), %rdi
callq 0x86ea
leaq -0x338(%rbp), %rdi
movq %r14, %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %rdi
pushq $0x3
popq %rsi
callq 0x2290
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %rdi
pushq $0x2
popq %rsi
callq 0x2290
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r14
leaq -0xd0(%rbp), %rdi
callq 0x26d0
movq %r14, %rdi
movq %rax, %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r14
leaq -0xd0(%rbp), %rdi
callq 0x26da
movq %r14, %rdi
movq %rax, %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r14
leaq -0x48(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x26e4
movq -0x48(%rbp), %rax
movq (%rax), %rsi
movq %r14, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r14
leaq -0x68(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x26e4
movq -0x68(%rbp), %rax
movq 0x8(%rax), %rsi
movq %r14, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r14
leaq -0x80(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x26e4
movq -0x80(%rbp), %rax
movq 0x10(%rax), %rsi
movq %r14, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r14
leaq -0x98(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x26e4
movq -0x98(%rbp), %rax
movq 0x18(%rax), %rsi
movq %r14, %rdi
callq 0x2170
movq %rax, %rdi
callq 0x20f0
leaq -0x98(%rbp), %rdi
callq 0x2e88
leaq -0x80(%rbp), %rdi
callq 0x2e88
leaq -0x68(%rbp), %rdi
callq 0x2e88
leaq -0x48(%rbp), %rdi
callq 0x2e88
leaq -0xd0(%rbp), %rdi
callq 0x2e88
incq %rbx
movq %r12, %rdi
addq $0x38, %rdi
jmp 0x636b
movq %r14, -0x50(%rbp)
xorl %edi, %edi
leaq -0xd0(%rbp), %r15
leaq 0x780b(%rip), %r13      # 0xdd4c
xorl %r14d, %r14d
movq -0x30(%rbp), %rax
movq 0x80(%rax), %rsi
movq 0x88(%rax), %rax
subq %rsi, %rax
cqto
pushq $0x38
popq %rcx
idivq %rcx
cmpq %rax, %r14
jae 0x66ed
movq %rdi, %rbx
addq %rdi, %rsi
movq %r15, %rdi
callq 0x86ea
leaq -0x338(%rbp), %rdi
movq -0x50(%rbp), %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %rdi
pushq $0x4
popq %rsi
callq 0x2290
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %rdi
pushq $0x2
popq %rsi
callq 0x2290
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
movq %r15, %rdi
callq 0x26d0
movq %r12, %rdi
movq %rax, %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
movq %r15, %rdi
callq 0x26da
movq %r12, %rdi
movq %rax, %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
leaq -0x48(%rbp), %rdi
movq %r15, %rsi
callq 0x26e4
movq -0x48(%rbp), %rax
movq (%rax), %rsi
movq %r12, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
leaq -0x68(%rbp), %rdi
movq %r15, %rsi
callq 0x26e4
movq -0x68(%rbp), %rax
movq 0x8(%rax), %rsi
movq %r12, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
leaq -0x80(%rbp), %rdi
movq %r15, %rsi
callq 0x26e4
movq -0x80(%rbp), %rax
movq 0x10(%rax), %rsi
movq %r12, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
leaq -0x98(%rbp), %rdi
movq %r15, %rsi
callq 0x26e4
movq -0x98(%rbp), %rax
movq 0x18(%rax), %rsi
movq %r12, %rdi
callq 0x2170
movq %rax, %rdi
callq 0x20f0
leaq -0x98(%rbp), %rdi
callq 0x2e88
leaq -0x80(%rbp), %rdi
callq 0x2e88
leaq -0x68(%rbp), %rdi
callq 0x2e88
leaq -0x48(%rbp), %rdi
callq 0x2e88
incq -0x50(%rbp)
movq %r15, %rdi
callq 0x2e88
incq %r14
movq %rbx, %rdi
addq $0x38, %rdi
jmp 0x6544
xorl %edi, %edi
leaq -0xd0(%rbp), %r12
leaq 0x764f(%rip), %r13      # 0xdd4c
xorl %ebx, %ebx
movq -0x50(%rbp), %r14
leaq (%r14,%rbx), %r15
movq -0x30(%rbp), %rax
movq 0x98(%rax), %rsi
movq 0xa0(%rax), %rax
subq %rsi, %rax
cqto
pushq $0x38
popq %rcx
idivq %rcx
cmpq %rax, %rbx
jae 0x69a3
movq %rdi, -0x108(%rbp)
addq %rdi, %rsi
movq %r12, %rdi
callq 0x86ea
leaq -0x338(%rbp), %rdi
movq %r15, %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %rdi
pushq $0x5
popq %rsi
callq 0x2290
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %rdi
pushq $0x2
popq %rsi
callq 0x2290
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r15
movq %r12, %rdi
callq 0x26d0
movq %r15, %rdi
movq %rax, %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r15
movq %r12, %rdi
callq 0x26da
movq %r15, %rdi
movq %rax, %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r15
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x26e4
movq -0x48(%rbp), %rax
movq (%rax), %rsi
movq %r15, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r15
leaq -0x68(%rbp), %rdi
movq %r12, %rsi
callq 0x26e4
movq -0x68(%rbp), %rax
movq 0x8(%rax), %rsi
movq %r15, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r15
leaq -0x80(%rbp), %rdi
movq %r12, %rsi
callq 0x26e4
movq -0x80(%rbp), %rax
movq 0x10(%rax), %rsi
movq %r15, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r15
leaq -0x98(%rbp), %rdi
movq %r12, %rsi
callq 0x26e4
movq -0x98(%rbp), %rax
movq 0x18(%rax), %rsi
movq %r15, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r15
leaq -0xe8(%rbp), %rdi
movq %r12, %rsi
callq 0x26e4
movq -0xe8(%rbp), %rax
movq 0x20(%rax), %rsi
movq %r15, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r15
leaq -0x100(%rbp), %rdi
movq %r12, %rsi
callq 0x26e4
movq -0x100(%rbp), %rax
movq 0x28(%rax), %rsi
movq %r15, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r15
leaq -0x138(%rbp), %rdi
movq %r12, %rsi
callq 0x26e4
movq -0x138(%rbp), %rax
movq 0x30(%rax), %rsi
movq %r15, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r15
leaq -0x120(%rbp), %rdi
movq %r12, %rsi
callq 0x26e4
movq -0x120(%rbp), %rax
movq 0x38(%rax), %rsi
movq %r15, %rdi
callq 0x2170
movq %rax, %rdi
callq 0x20f0
leaq -0x120(%rbp), %rdi
callq 0x2e88
leaq -0x138(%rbp), %rdi
callq 0x2e88
leaq -0x100(%rbp), %rdi
callq 0x2e88
leaq -0xe8(%rbp), %rdi
callq 0x2e88
leaq -0x98(%rbp), %rdi
callq 0x2e88
leaq -0x80(%rbp), %rdi
callq 0x2e88
leaq -0x68(%rbp), %rdi
callq 0x2e88
leaq -0x48(%rbp), %rdi
callq 0x2e88
movq %r12, %rdi
callq 0x2e88
incq %rbx
movq -0x108(%rbp), %rdi
addq $0x38, %rdi
jmp 0x6703
movq %r15, -0x50(%rbp)
xorl %edi, %edi
leaq -0xd0(%rbp), %r14
leaq 0x7395(%rip), %r13      # 0xdd4c
xorl %r15d, %r15d
movq -0x30(%rbp), %rax
movq 0xb0(%rax), %rsi
movq 0xb8(%rax), %rax
subq %rsi, %rax
cqto
pushq $0x38
popq %rcx
idivq %rcx
cmpq %rax, %r15
jae 0x6bdb
movq %rdi, %rbx
addq %rdi, %rsi
movq %r14, %rdi
callq 0x86ea
leaq -0x338(%rbp), %rdi
movq -0x50(%rbp), %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %rdi
pushq $0x6
popq %rsi
callq 0x2290
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %rdi
pushq $0x2
popq %rsi
callq 0x2290
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
movq %r14, %rdi
callq 0x26d0
movq %r12, %rdi
movq %rax, %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
movq %r14, %rdi
callq 0x26da
movq %r12, %rdi
movq %rax, %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
leaq -0x48(%rbp), %rdi
movq %r14, %rsi
callq 0x26e4
movq -0x48(%rbp), %rax
movq (%rax), %rsi
movq %r12, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
leaq -0x68(%rbp), %rdi
movq %r14, %rsi
callq 0x26e4
movq -0x68(%rbp), %rax
movq 0x8(%rax), %rsi
movq %r12, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
leaq -0x80(%rbp), %rdi
movq %r14, %rsi
callq 0x26e4
movq -0x80(%rbp), %rax
movq 0x10(%rax), %rsi
movq %r12, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
leaq -0x98(%rbp), %rdi
movq %r14, %rsi
callq 0x26e4
movq -0x98(%rbp), %rax
movq 0x18(%rax), %rsi
movq %r12, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
leaq -0xe8(%rbp), %rdi
movq %r14, %rsi
callq 0x26e4
movq -0xe8(%rbp), %rax
movq 0x20(%rax), %rsi
movq %r12, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
leaq -0x100(%rbp), %rdi
movq %r14, %rsi
callq 0x26e4
movq -0x100(%rbp), %rax
movq 0x28(%rax), %rsi
movq %r12, %rdi
callq 0x2170
movq %rax, %rdi
callq 0x20f0
leaq -0x100(%rbp), %rdi
callq 0x2e88
leaq -0xe8(%rbp), %rdi
callq 0x2e88
leaq -0x98(%rbp), %rdi
callq 0x2e88
leaq -0x80(%rbp), %rdi
callq 0x2e88
leaq -0x68(%rbp), %rdi
callq 0x2e88
leaq -0x48(%rbp), %rdi
callq 0x2e88
incq -0x50(%rbp)
movq %r14, %rdi
callq 0x2e88
incq %r15
movq %rbx, %rdi
addq $0x38, %rdi
jmp 0x69ba
xorl %edi, %edi
leaq -0xd0(%rbp), %r14
leaq 0x7161(%rip), %r13      # 0xdd4c
xorl %ebx, %ebx
movq -0x30(%rbp), %rax
movq 0xc8(%rax), %rsi
movq 0xd0(%rax), %rax
subq %rsi, %rax
cqto
pushq $0x38
popq %rcx
idivq %rcx
cmpq %rax, %rbx
jae 0x6dd2
movq %rdi, %r15
addq %rdi, %rsi
movq %r14, %rdi
callq 0x86ea
movq -0x50(%rbp), %rax
leaq (%rax,%rbx), %rsi
leaq -0x338(%rbp), %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %rdi
pushq $0x7
popq %rsi
callq 0x2290
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %rdi
pushq $0x2
popq %rsi
callq 0x2290
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
movq %r14, %rdi
callq 0x26d0
movq %r12, %rdi
movq %rax, %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
movq %r14, %rdi
callq 0x26da
movq %r12, %rdi
movq %rax, %rsi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
leaq -0x48(%rbp), %rdi
movq %r14, %rsi
callq 0x26e4
movq -0x48(%rbp), %rax
movq (%rax), %rsi
movq %r12, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
leaq -0x68(%rbp), %rdi
movq %r14, %rsi
callq 0x26e4
movq -0x68(%rbp), %rax
movq 0x8(%rax), %rsi
movq %r12, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
leaq -0x80(%rbp), %rdi
movq %r14, %rsi
callq 0x26e4
movq -0x80(%rbp), %rax
movq 0x10(%rax), %rsi
movq %r12, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
leaq -0x98(%rbp), %rdi
movq %r14, %rsi
callq 0x26e4
movq -0x98(%rbp), %rax
movq 0x18(%rax), %rsi
movq %r12, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rax, %r12
leaq -0xe8(%rbp), %rdi
movq %r14, %rsi
callq 0x26e4
movq -0xe8(%rbp), %rax
movq 0x20(%rax), %rsi
movq %r12, %rdi
callq 0x2170
movq %rax, %rdi
callq 0x20f0
leaq -0xe8(%rbp), %rdi
callq 0x2e88
leaq -0x98(%rbp), %rdi
callq 0x2e88
leaq -0x80(%rbp), %rdi
callq 0x2e88
leaq -0x68(%rbp), %rdi
callq 0x2e88
leaq -0x48(%rbp), %rdi
callq 0x2e88
movq %r14, %rdi
callq 0x2e88
incq %rbx
movq %r15, %rdi
addq $0x38, %rdi
jmp 0x6bed
leaq 0x6cdf(%rip), %rsi      # 0xdab8
leaq -0x338(%rbp), %rdi
callq 0x21c0
movq %rax, %rdi
callq 0x20f0
leaq -0x338(%rbp), %rdi
callq 0x2200
movq 0xd1d8(%rip), %rdi      # 0x13fd8
leaq 0x6264(%rip), %rsi      # 0xd06b
callq 0x21c0
movq %rax, %rdi
callq 0x20f0
leaq -0x338(%rbp), %rdi
callq 0x2220
addq $0x318, %rsp            # imm = 0x318
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0xd19f(%rip), %rdi      # 0x13fd8
leaq 0x685c(%rip), %rsi      # 0xd69c
callq 0x21c0
movq %rax, %rdi
movq %r14, %rsi
callq 0x21a0
movq %rax, %rdi
callq 0x20f0
callq 0x2140
jmp 0x6ffa
jmp 0x6ffa
jmp 0x6fc8
jmp 0x6fd8
jmp 0x6fb3
jmp 0x6fe6
jmp 0x700d
jmp 0x6ffa
jmp 0x6fb3
jmp 0x6fd8
jmp 0x6fc8
jmp 0x6f59
jmp 0x6fe6
jmp 0x700d
jmp 0x6ffa
jmp 0x6f59
jmp 0x6f63
jmp 0x6f5e
jmp 0x6fc8
jmp 0x6fb3
jmp 0x6fd8
jmp 0x700d
jmp 0x6fe6
jmp 0x6ffa
jmp 0x6fd8
jmp 0x6fc8
jmp 0x700d
jmp 0x6fe6
jmp 0x6ffa
jmp 0x6fd8
jmp 0x6fc8
jmp 0x700d
jmp 0x6fe6
jmp 0x6ffa
jmp 0x6fd8
jmp 0x700d
jmp 0x6fe6
jmp 0x6ffa
jmp 0x6fe6
jmp 0x700d
jmp 0x6ffa
jmp 0x700d
jmp 0x6ffa
jmp 0x6f59
jmp 0x6fc8
jmp 0x6fb3
jmp 0x6fe6
jmp 0x6fd8
jmp 0x6f59
jmp 0x6f63
jmp 0x6fb3
jmp 0x6fc8
jmp 0x6fd8
jmp 0x6fe6
movq %rax, %rbx
jmp 0x6f8f
movq %rax, %rbx
jmp 0x6f77
movq %rax, %rbx
jmp 0x6f83
movq %rax, %rbx
leaq -0x120(%rbp), %rdi
callq 0x2e88
leaq -0x138(%rbp), %rdi
callq 0x2e88
leaq -0x100(%rbp), %rdi
callq 0x2e88
leaq -0xe8(%rbp), %rdi
callq 0x2e88
jmp 0x6fb6
jmp 0x6fc8
jmp 0x6fb3
jmp 0x6fe6
jmp 0x6fd8
jmp 0x6fe6
jmp 0x6fc8
jmp 0x6fd8
jmp 0x6fb3
jmp 0x6fe6
jmp 0x6fc8
jmp 0x6fd8
movq %rax, %rbx
leaq -0x98(%rbp), %rdi
callq 0x2e88
jmp 0x6fcb
jmp 0x6fd8
jmp 0x6fe6
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0x2e88
jmp 0x6fdb
jmp 0x6fe6
movq %rax, %rbx
leaq -0x68(%rbp), %rdi
callq 0x2e88
jmp 0x6fe9
movq %rax, %rbx
leaq -0x48(%rbp), %rdi
callq 0x2e88
jmp 0x7010
jmp 0x6ffa
jmp 0x6ffa
jmp 0x6ffa
movq %rax, %rbx
jmp 0x701c
jmp 0x700d
jmp 0x700d
jmp 0x700d
jmp 0x700d
jmp 0x700d
jmp 0x700d
jmp 0x700d
movq %rax, %rbx
leaq -0xd0(%rbp), %rdi
callq 0x2e88
leaq -0x338(%rbp), %rdi
callq 0x2220
movq %rbx, %rdi
callq 0x22a0