// File: /workspace/github_cpp_makefile_star2_O2/npaster[P]gmsh_tools/gmshMesh.cpp
// Function: gmsh::Gmesh::readGmesh_MEDITformat(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void
Gmesh::readGmesh_MEDITformat(const std::string name_mesh)
{
   std::ifstream mesh_file(name_mesh.data());
   if (!mesh_file.is_open()) {
      std::cout << "Unable to open file " << name_mesh << std::endl;
      abort();
   }

   std::cout << "------------------------" << std::endl;
   std::cout << "Reading mesh " << name_mesh << std::endl;
   std::cout << "MEDIT Format" << std::endl;
   std::cout << "------------------------" << std::endl;

   std::string file_line;
   size_t      nb_nodes(0), nb_edges(0), nb_triangles(0), nb_tetras(0), nb_quad(0), nb_hexa(0);
   std::array<double, 3> coor;
   std::vector<size_t>   edg(2), tri(3), tet(4), quad(4), hexa(8);
   size_t                ref(0), loop_nodes(100), offset_elements(0);

   while (!mesh_file.eof()) {
      getline(mesh_file, file_line);
      if ((file_line.find("Vertices") != std::string::npos) && (loop_nodes)) {
         mesh_file >> nb_nodes;
         std::cout << "Reading vertices (" << nb_nodes << ")" << std::endl;
         for (size_t i = 1; i <= nb_nodes; i++) {
            mesh_file >> coor[0] >> coor[1] >> coor[2] >> ref;
            Node node(coor, i, ref);
            _nodes.push_back(node);
         }
         assert((_nodes.size() == nb_nodes) && "Problem 1 in mesh reading.");
         loop_nodes = 0;
      }
      if (file_line.find("Edges") != std::string::npos) {
         mesh_file >> nb_edges;
         std::cout << "Reading edges (" << nb_edges << ")" << std::endl;
         for (size_t i = 1; i <= nb_edges; i++) {
            mesh_file >> edg[0] >> edg[1] >> ref;
            Edge edge(edg, offset_elements + i, ref, 0);
            _edges.push_back(edge);
         }

         offset_elements += nb_edges;
         assert((_edges.size() == nb_edges) && "Problem 2 in mesh reading.");
      }
      if (file_line.find("Triangles") != std::string::npos) {
         mesh_file >> nb_triangles;
         std::cout << "Reading triangles (" << nb_triangles << ")" << std::endl;
         for (size_t i = 1; i <= nb_triangles; i++) {
            mesh_file >> tri[0] >> tri[1] >> tri[2] >> ref;
            Triangle triangle(tri, offset_elements + i, ref, 0);
            _triangles.push_back(triangle);
         }

         offset_elements += nb_triangles;
         assert((_triangles.size() == nb_triangles) && "Problem 3 in mesh reading.");
      }
      if (file_line.find("Tetrahedra") != std::string::npos) {
         mesh_file >> nb_tetras;
         std::cout << "Reading tetrahedra (" << nb_tetras << ")" << std::endl;
         for (size_t i = 0; i < nb_tetras; i++) {
            mesh_file >> tet[0] >> tet[1] >> tet[2] >> tet[3] >> ref;
            Tetrahedron tetrahedron(tet, offset_elements + i, ref, 0);
            _tetrahedra.push_back(tetrahedron);
         }

         offset_elements += nb_tetras;
         assert((_tetrahedra.size() == nb_tetras) && "Problem 4 in mesh reading.");
      }
      if (file_line.find("Quadrilaterals") != std::string::npos) {
         mesh_file >> nb_quad;
         std::cout << "Reading quadrilaterals (" << nb_quad << ")" << std::endl;
         for (size_t i = 1; i <= nb_quad; i++) {
            mesh_file >> quad[0] >> quad[1] >> quad[2] >> quad[3] >> ref;
            Quadrangle quadrangle(quad, offset_elements + i, ref, 0);
            _quadrangles.push_back(quadrangle);
         }

         offset_elements += nb_quad;
         assert((_quadrangles.size() == nb_quad) && "Problem 3 in mesh reading.");
      }
      if (file_line.find("Hexahedra") != std::string::npos) {
         mesh_file >> nb_hexa;
         std::cout << "Reading hexahedra (" << nb_hexa << ")" << std::endl;
         for (size_t i = 0; i < nb_hexa; i++) {
            mesh_file >> hexa[0] >> hexa[1] >> hexa[2] >> hexa[3] >> hexa[4] >> hexa[5] >>
              hexa[6] >> hexa[7] >> hexa[8] >> ref;
            Hexahedron hexahedron(hexa, offset_elements + i, ref, 0);
            _hexahedra.push_back(hexahedron);
         }

         offset_elements += nb_hexa;
         assert((_hexahedra.size() == nb_hexa) && "Problem 4 in mesh reading.");
      }
   }

   assert(offset_elements == (nb_edges + nb_triangles + nb_quad + nb_hexa + nb_tetras));
   _number_of_elements = offset_elements;

   mesh_file.close();

   if ((_tetrahedra.size() + _hexahedra.size() + _prisms.size() + _pyramids.size()) > 0) {
      _dim_topology = 3;
   } else if ((_triangles.size() + _quadrangles.size()) > 0) {
      _dim_topology = 2;
   } else if (_edges.size() > 0) {
      _dim_topology = 1;
   }

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x368, %rsp            # imm = 0x368
movq %rsi, %rbx
movq %rdi, -0x30(%rbp)
movq (%rsi), %rsi
leaq -0x390(%rbp), %rdi
pushq $0x8
popq %rdx
callq 0x22b0
leaq -0x318(%rbp), %rdi
callq 0x2050
testb %al, %al
je 0x4586
movq 0x104b4(%rip), %rdi     # 0x13fd8
leaq 0x9540(%rip), %rsi      # 0xd06b
callq 0x21c0
movq %rax, %rdi
callq 0x20f0
movq 0x10499(%rip), %rdi     # 0x13fd8
leaq 0x9b6b(%rip), %rsi      # 0xd6b1
callq 0x21c0
movq %rax, %rdi
movq %rbx, %rsi
callq 0x21a0
movq %rax, %rdi
callq 0x20f0
movq 0x10473(%rip), %rdi     # 0x13fd8
leaq 0x9b53(%rip), %rsi      # 0xd6bf
callq 0x21c0
movq %rax, %rdi
callq 0x20f0
movq 0x10458(%rip), %rdi     # 0x13fd8
leaq 0x94e4(%rip), %rsi      # 0xd06b
callq 0x21c0
movq %rax, %rdi
callq 0x20f0
leaq -0x90(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
andq $0x0, -0x80(%rbp)
andq $0x0, -0x60(%rbp)
andq $0x0, -0x58(%rbp)
andq $0x0, -0x50(%rbp)
andq $0x0, -0x48(%rbp)
movb $0x0, (%rax)
andq $0x0, -0x40(%rbp)
leaq -0x138(%rbp), %rdi
pushq $0x2
popq %rsi
leaq -0x170(%rbp), %rdx
callq 0x8302
leaq -0xf0(%rbp), %rdi
pushq $0x3
popq %rsi
leaq -0x170(%rbp), %rdx
callq 0x8302
leaq -0xd8(%rbp), %rdi
pushq $0x4
popq %rsi
leaq -0x170(%rbp), %rdx
callq 0x8302
leaq -0xc0(%rbp), %rdi
pushq $0x4
popq %rsi
leaq -0x170(%rbp), %rdx
callq 0x8302
leaq -0x78(%rbp), %rdi
pushq $0x8
popq %rsi
leaq -0x170(%rbp), %rdx
callq 0x8302
leaq -0x38(%rbp), %r12
andq $0x0, (%r12)
movq -0x30(%rbp), %rax
leaq 0x8(%rax), %rcx
movq %rcx, -0xf8(%rbp)
leaq 0x38(%rax), %rcx
movq %rcx, -0x120(%rbp)
leaq 0x50(%rax), %rcx
movq %rcx, -0x118(%rbp)
leaq 0x80(%rax), %rcx
movq %rcx, -0x110(%rbp)
leaq 0x68(%rax), %rcx
movq %rcx, -0x108(%rbp)
addq $0x98, %rax
movq %rax, -0x100(%rbp)
pushq $0x64
popq %rax
movq %rax, -0xa8(%rbp)
xorl %ebx, %ebx
leaq -0x390(%rbp), %r13
leaq -0x170(%rbp), %r14
movq -0x390(%rbp), %rax
movq -0x18(%rax), %rax
testb $0x2, -0x370(%rbp,%rax)
jne 0x4390
movq %r13, %rdi
leaq -0xa0(%rbp), %rsi
callq 0x2030
leaq -0xa0(%rbp), %r15
movq %r15, %rdi
leaq 0x99f5(%rip), %rsi      # 0xd6cc
xorl %edx, %edx
callq 0x22d0
cmpq $-0x1, %rax
setne %al
cmpq $0x0, -0xa8(%rbp)
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x3ddb
movq %r13, %rdi
leaq -0x80(%rbp), %rsi
callq 0x2120
movq 0x102ca(%rip), %rdi     # 0x13fd8
leaq 0x99c0(%rip), %rsi      # 0xd6d5
callq 0x21c0
movq -0x80(%rbp), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
leaq 0x9fa5(%rip), %rsi      # 0xdcd5
callq 0x21c0
movq %rax, %rdi
callq 0x20f0
pushq $0x1
popq %r15
movq -0x80(%rbp), %rcx
cmpq %rcx, %r15
ja 0x3dac
movq %r13, %rdi
leaq -0x188(%rbp), %rsi
callq 0x2160
movq %rax, %rdi
leaq -0x180(%rbp), %rsi
callq 0x2160
movq %rax, %rdi
leaq -0x178(%rbp), %rsi
callq 0x2160
movq %rax, %rdi
movq %r12, %rsi
callq 0x2120
movq -0x38(%rbp), %rcx
movq %r14, %rdi
leaq -0x188(%rbp), %rsi
movq %r15, %rdx
callq 0x24c2
movq -0xf8(%rbp), %rdi
movq %r14, %rsi
callq 0x8354
incq %r15
jmp 0x3d41
movq -0x30(%rbp), %rdx
movq 0x10(%rdx), %rax
subq 0x8(%rdx), %rax
cqto
pushq $0x28
popq %rsi
idivq %rsi
cmpq %rcx, %rax
jne 0x4567
movq $0x0, -0xa8(%rbp)
leaq -0xa0(%rbp), %r15
movq %r15, %rdi
leaq 0x9987(%rip), %rsi      # 0xd76c
xorl %edx, %edx
callq 0x22d0
cmpq $-0x1, %rax
je 0x3ec8
movq %r13, %rdi
leaq -0x60(%rbp), %rsi
callq 0x2120
movq 0x101cf(%rip), %rdi     # 0x13fd8
leaq 0x9962(%rip), %rsi      # 0xd772
callq 0x21c0
movq -0x60(%rbp), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
leaq 0x9eaa(%rip), %rsi      # 0xdcd5
callq 0x21c0
movq %rax, %rdi
callq 0x20f0
pushq $0x1
popq %r15
movq -0x60(%rbp), %rcx
cmpq %rcx, %r15
ja 0x3ea8
movq -0x138(%rbp), %rsi
movq %r13, %rdi
callq 0x2120
movq -0x138(%rbp), %rsi
addq $0x8, %rsi
movq %rax, %rdi
callq 0x2120
movq %rax, %rdi
movq %r12, %rsi
callq 0x2120
leaq (%rbx,%r15), %rdx
movq -0x38(%rbp), %rcx
movq %r14, %rdi
leaq -0x138(%rbp), %rsi
xorl %r8d, %r8d
callq 0x2992
movq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0x8388
movq %r14, %rdi
callq 0x2e88
incq %r15
jmp 0x3e3c
movq -0x30(%rbp), %rdx
movq 0x40(%rdx), %rax
subq 0x38(%rdx), %rax
cqto
pushq $0x38
popq %rsi
idivq %rsi
cmpq %rcx, %rax
jne 0x44eb
addq %rcx, %rbx
leaq -0xa0(%rbp), %rdi
leaq 0x98e8(%rip), %rsi      # 0xd7be
xorl %edx, %edx
callq 0x22d0
cmpq $-0x1, %rax
je 0x3fcc
movq %r13, %rdi
leaq -0x58(%rbp), %rsi
callq 0x2120
movq 0x100de(%rip), %rdi     # 0x13fd8
leaq 0x98c7(%rip), %rsi      # 0xd7c8
callq 0x21c0
movq -0x58(%rbp), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
leaq 0x9db9(%rip), %rsi      # 0xdcd5
callq 0x21c0
movq %rax, %rdi
callq 0x20f0
pushq $0x1
popq %r15
movq -0x58(%rbp), %rcx
cmpq %rcx, %r15
ja 0x3fac
movq -0xf0(%rbp), %rsi
movq %r13, %rdi
callq 0x2120
movq -0xf0(%rbp), %rsi
addq $0x8, %rsi
movq %rax, %rdi
callq 0x2120
movq -0xf0(%rbp), %rsi
addq $0x10, %rsi
movq %rax, %rdi
callq 0x2120
movq %rax, %rdi
movq %r12, %rsi
callq 0x2120
leaq (%rbx,%r15), %rdx
movq -0x38(%rbp), %rcx
movq %r14, %rdi
leaq -0xf0(%rbp), %rsi
xorl %r8d, %r8d
callq 0x2a1a
movq -0x118(%rbp), %rdi
movq %r14, %rsi
callq 0x83c4
movq %r14, %rdi
callq 0x2e88
incq %r15
jmp 0x3f2d
movq -0x30(%rbp), %rdx
movq 0x58(%rdx), %rax
subq 0x50(%rdx), %rax
cqto
pushq $0x38
popq %rsi
idivq %rsi
cmpq %rcx, %rax
jne 0x450a
addq %rcx, %rbx
leaq -0xa0(%rbp), %rdi
leaq 0x9846(%rip), %rsi      # 0xd820
xorl %edx, %edx
callq 0x22d0
cmpq $-0x1, %rax
je 0x40ef
movq %r13, %rdi
leaq -0x50(%rbp), %rsi
callq 0x2120
movq 0xffda(%rip), %rdi      # 0x13fd8
leaq 0x9826(%rip), %rsi      # 0xd82b
callq 0x21c0
movq -0x50(%rbp), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
leaq 0x9cb5(%rip), %rsi      # 0xdcd5
callq 0x21c0
movq %rax, %rdi
callq 0x20f0
xorl %r15d, %r15d
movq -0x50(%rbp), %rcx
cmpq %rcx, %r15
jae 0x40c9
movq -0xd8(%rbp), %rsi
movq %r13, %rdi
callq 0x2120
movq -0xd8(%rbp), %rsi
addq $0x8, %rsi
movq %rax, %rdi
callq 0x2120
movq -0xd8(%rbp), %rsi
addq $0x10, %rsi
movq %rax, %rdi
callq 0x2120
movq -0xd8(%rbp), %rsi
addq $0x18, %rsi
movq %rax, %rdi
callq 0x2120
movq %rax, %rdi
movq %r12, %rsi
callq 0x2120
leaq (%rbx,%r15), %rdx
movq -0x38(%rbp), %rcx
movq %r14, %rdi
leaq -0xd8(%rbp), %rsi
xorl %r8d, %r8d
callq 0x2b2a
movq -0x110(%rbp), %rdi
movq %r14, %rsi
callq 0x8400
movq %r14, %rdi
callq 0x2e88
incq %r15
jmp 0x4030
movq -0x30(%rbp), %rdx
movq 0x88(%rdx), %rax
subq 0x80(%rdx), %rax
cqto
pushq $0x38
popq %rsi
idivq %rsi
cmpq %rcx, %rax
jne 0x4529
addq %rcx, %rbx
leaq -0xa0(%rbp), %rdi
leaq 0x9785(%rip), %rsi      # 0xd882
xorl %edx, %edx
callq 0x22d0
cmpq $-0x1, %rax
je 0x420d
movq %r13, %rdi
leaq -0x48(%rbp), %rsi
callq 0x2120
movq 0xfeb7(%rip), %rdi      # 0x13fd8
leaq 0x9769(%rip), %rsi      # 0xd891
callq 0x21c0
movq -0x48(%rbp), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
leaq 0x9b92(%rip), %rsi      # 0xdcd5
callq 0x21c0
movq %rax, %rdi
callq 0x20f0
pushq $0x1
popq %r15
movq -0x48(%rbp), %rcx
cmpq %rcx, %r15
ja 0x41ed
movq -0xc0(%rbp), %rsi
movq %r13, %rdi
callq 0x2120
movq -0xc0(%rbp), %rsi
addq $0x8, %rsi
movq %rax, %rdi
callq 0x2120
movq -0xc0(%rbp), %rsi
addq $0x10, %rsi
movq %rax, %rdi
callq 0x2120
movq -0xc0(%rbp), %rsi
addq $0x18, %rsi
movq %rax, %rdi
callq 0x2120
movq %rax, %rdi
movq %r12, %rsi
callq 0x2120
leaq (%rbx,%r15), %rdx
movq -0x38(%rbp), %rcx
movq %r14, %rdi
leaq -0xc0(%rbp), %rsi
xorl %r8d, %r8d
callq 0x2aa2
movq -0x108(%rbp), %rdi
movq %r14, %rsi
callq 0x843c
movq %r14, %rdi
callq 0x2e88
incq %r15
jmp 0x4154
movq -0x30(%rbp), %rdx
movq 0x70(%rdx), %rax
subq 0x68(%rdx), %rax
cqto
pushq $0x38
popq %rsi
idivq %rsi
cmpq %rcx, %rax
jne 0x4548
addq %rcx, %rbx
leaq -0xa0(%rbp), %rdi
leaq 0x96d0(%rip), %rsi      # 0xd8eb
xorl %edx, %edx
callq 0x22d0
cmpq $-0x1, %rax
je 0x3c9e
movq %r13, %rdi
leaq -0x40(%rbp), %rsi
callq 0x2120
movq 0xfd99(%rip), %rdi      # 0x13fd8
leaq 0x96af(%rip), %rsi      # 0xd8f5
callq 0x21c0
movq -0x40(%rbp), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
leaq 0x9a74(%rip), %rsi      # 0xdcd5
callq 0x21c0
movq %rax, %rdi
callq 0x20f0
xorl %r15d, %r15d
movq -0x40(%rbp), %rcx
cmpq %rcx, %r15
jae 0x434b
movq -0x78(%rbp), %rsi
movq %r13, %rdi
callq 0x2120
movq -0x78(%rbp), %rsi
addq $0x8, %rsi
movq %rax, %rdi
callq 0x2120
movq -0x78(%rbp), %rsi
addq $0x10, %rsi
movq %rax, %rdi
callq 0x2120
movq -0x78(%rbp), %rsi
addq $0x18, %rsi
movq %rax, %rdi
callq 0x2120
movq -0x78(%rbp), %rsi
addq $0x20, %rsi
movq %rax, %rdi
callq 0x2120
movq -0x78(%rbp), %rsi
addq $0x28, %rsi
movq %rax, %rdi
callq 0x2120
movq -0x78(%rbp), %rsi
addq $0x30, %rsi
movq %rax, %rdi
callq 0x2120
movq -0x78(%rbp), %rsi
addq $0x38, %rsi
movq %rax, %rdi
callq 0x2120
movq -0x78(%rbp), %rsi
addq $0x40, %rsi
movq %rax, %rdi
callq 0x2120
movq %rax, %rdi
movq %r12, %rsi
callq 0x2120
leaq (%rbx,%r15), %rdx
movq -0x38(%rbp), %rcx
movq %r14, %rdi
leaq -0x78(%rbp), %rsi
xorl %r8d, %r8d
callq 0x2bb2
movq -0x100(%rbp), %rdi
movq %r14, %rsi
callq 0x8478
movq %r14, %rdi
callq 0x2e88
incq %r15
jmp 0x4271
addq %rcx, %rbx
movq -0x30(%rbp), %rdx
movq 0xa0(%rdx), %rax
subq 0x98(%rdx), %rax
cqto
pushq $0x38
popq %rsi
idivq %rsi
cmpq %rcx, %rax
je 0x3c9e
leaq 0x9591(%rip), %rdi      # 0xd909
leaq 0x93a5(%rip), %rsi      # 0xd724
leaq 0x93ab(%rip), %rcx      # 0xd731
movl $0x14d, %edx            # imm = 0x14D
callq 0x2150
movq -0x58(%rbp), %rax
addq -0x60(%rbp), %rax
addq -0x48(%rbp), %rax
addq -0x40(%rbp), %rax
addq -0x50(%rbp), %rax
cmpq %rax, %rbx
jne 0x45b1
movq -0x30(%rbp), %r14
movq %rbx, 0xe0(%r14)
leaq -0x390(%rbp), %rdi
callq 0x2040
movq 0x88(%r14), %rax
movq 0xa0(%r14), %rcx
subq 0x80(%r14), %rax
cqto
pushq $0x38
popq %r8
idivq %r8
movq %rax, %rsi
subq 0x98(%r14), %rcx
movq %rcx, %rax
cqto
idivq %r8
movq %rax, %rcx
addq %rsi, %rcx
movq 0xb8(%r14), %rax
subq 0xb0(%r14), %rax
cqto
idivq %r8
movq %rax, %rsi
addq %rcx, %rsi
movq 0xd0(%r14), %rax
subq 0xc8(%r14), %rax
pushq $-0x38
popq %rdi
cqto
idivq %rdi
cmpq %rax, %rsi
pushq $0x3
popq %rcx
jne 0x446a
movq 0x58(%r14), %rax
movq 0x70(%r14), %rcx
subq 0x50(%r14), %rax
cqto
idivq %r8
movq %rax, %rsi
subq 0x68(%r14), %rcx
movq %rcx, %rax
cqto
idivq %rdi
pushq $0x2
popq %rcx
cmpq %rax, %rsi
jne 0x446a
movq 0x40(%r14), %rax
cmpq 0x38(%r14), %rax
je 0x446d
pushq $0x1
popq %rcx
movq -0x30(%rbp), %r14
movq %rcx, (%r14)
movq 0xfb64(%rip), %rdi      # 0x13fd8
leaq 0x8bf0(%rip), %rsi      # 0xd06b
callq 0x21c0
movq %rax, %rdi
callq 0x20f0
leaq -0x78(%rbp), %rdi
callq 0x2e88
leaq -0xc0(%rbp), %rdi
callq 0x2e88
leaq -0xd8(%rbp), %rdi
callq 0x2e88
leaq -0xf0(%rbp), %rdi
callq 0x2e88
leaq -0x138(%rbp), %rdi
callq 0x2e88
leaq -0xa0(%rbp), %rdi
callq 0x20d0
leaq -0x390(%rbp), %rdi
callq 0x2060
addq $0x368, %rsp            # imm = 0x368
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x9290(%rip), %rdi      # 0xd782
leaq 0x922b(%rip), %rsi      # 0xd724
leaq 0x9231(%rip), %rcx      # 0xd731
movl $0x11c, %edx            # imm = 0x11C
callq 0x2150
leaq 0x92cb(%rip), %rdi      # 0xd7dc
leaq 0x920c(%rip), %rsi      # 0xd724
leaq 0x9212(%rip), %rcx      # 0xd731
movl $0x128, %edx            # imm = 0x128
callq 0x2150
leaq 0x9310(%rip), %rdi      # 0xd840
leaq 0x91ed(%rip), %rsi      # 0xd724
leaq 0x91f3(%rip), %rcx      # 0xd731
movl $0x134, %edx            # imm = 0x134
callq 0x2150
leaq 0x935b(%rip), %rdi      # 0xd8aa
leaq 0x91ce(%rip), %rsi      # 0xd724
leaq 0x91d4(%rip), %rcx      # 0xd731
movl $0x140, %edx            # imm = 0x140
callq 0x2150
leaq 0x917a(%rip), %rdi      # 0xd6e8
leaq 0x91af(%rip), %rsi      # 0xd724
leaq 0x91b5(%rip), %rcx      # 0xd731
movl $0x10f, %edx            # imm = 0x10F
callq 0x2150
movq 0xfa4b(%rip), %rdi      # 0x13fd8
leaq 0x9108(%rip), %rsi      # 0xd69c
callq 0x21c0
movq %rax, %rdi
movq %rbx, %rsi
callq 0x21a0
movq %rax, %rdi
callq 0x20f0
callq 0x2140
leaq 0x9390(%rip), %rdi      # 0xd948
leaq 0x9165(%rip), %rsi      # 0xd724
leaq 0x916b(%rip), %rcx      # 0xd731
movl $0x151, %edx            # imm = 0x151
callq 0x2150
movq %rax, %rbx
jmp 0x462d
movq %rax, %rbx
jmp 0x4639
movq %rax, %rbx
jmp 0x4645
movq %rax, %rbx
jmp 0x4651
movq %rax, %rbx
jmp 0x465d
jmp 0x4621
movq %rax, %rbx
jmp 0x4669
jmp 0x4621
jmp 0x4604
jmp 0x4621
jmp 0x4621
jmp 0x4604
jmp 0x4604
jmp 0x4621
jmp 0x4621
jmp 0x4604
jmp 0x4621
movq %rax, %rbx
leaq -0x170(%rbp), %rdi
callq 0x2e88
jmp 0x4624
jmp 0x4621
jmp 0x4621
jmp 0x4621
jmp 0x4621
jmp 0x4621
jmp 0x4621
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x2e88
leaq -0xc0(%rbp), %rdi
callq 0x2e88
leaq -0xd8(%rbp), %rdi
callq 0x2e88
leaq -0xf0(%rbp), %rdi
callq 0x2e88
leaq -0x138(%rbp), %rdi
callq 0x2e88
leaq -0xa0(%rbp), %rdi
callq 0x20d0
leaq -0x390(%rbp), %rdi
callq 0x2060
movq %rbx, %rdi
callq 0x22a0
nop