// File: /workspace/github_cpp_makefile_star2_O1/npaster[P]gmsh_tools/gmshMesh.cpp
// Function: gmsh::Gmesh::readGmesh_MSHformat(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void
Gmesh::readGmesh_MSHformat(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 << "MSH Format" << std::endl;
   std::cout << "------------------------" << std::endl;

   std::string           file_line;
   size_t                nb_nodes(0), nb_elements(0);
   std::array<double, 3> coor;
   size_t                index(0), type_elem(0), nbinteger_tag(0), loop_nodes(100), loop_elem(100);

   while (!mesh_file.eof() && loop_elem) {
      getline(mesh_file, file_line);
      if ((file_line.find("$Nodes") != std::string::npos) && (loop_nodes)) {
         mesh_file >> nb_nodes;
         std::cout << "Reading nodes (" << nb_nodes << ")" << std::endl;
         for (size_t i = 0; i < nb_nodes; ++i) {
            mesh_file >> index >> coor[0] >> coor[1] >> coor[2];
            Node node(coor, index, 1);
            _nodes.push_back(node);
         }
         assert((_nodes.size() == nb_nodes) && "Problem 1 in mesh reading.");
         loop_nodes = 0;
      }
      if ((file_line.find("$Elements") != std::string::npos) && (loop_elem)) {
         mesh_file >> nb_elements;
         _number_of_elements = nb_elements;
         for (size_t i = 0; i < nb_elements; ++i) {
            std::cout << i << " / " << nb_elements - 1 << std::endl;
            mesh_file >> index >> type_elem >> nbinteger_tag;

            std::vector<size_t> integer_tag(nbinteger_tag);
            for (size_t jtag = 0; jtag < nbinteger_tag; jtag++) {
               mesh_file >> integer_tag[jtag];
            }

            std::vector<size_t> elem_nodes;
            size_t              ind_node = 0;
            if (type_elem == 1) {
               for (size_t inode = 0; inode < 2; inode++) {
                  mesh_file >> ind_node;
                  elem_nodes.push_back(ind_node);
               }
               Edge edge(elem_nodes, i + 1, integer_tag[0], integer_tag[1]);
               _edges.push_back(edge);
            } else if (type_elem == 2) {
               for (size_t inode = 0; inode < 3; inode++) {
                  mesh_file >> ind_node;
                  elem_nodes.push_back(ind_node);
               }
               Triangle tri(elem_nodes, i + 1, integer_tag[0], integer_tag[1]);
               _triangles.push_back(tri);
            } else if (type_elem == 3) {
               for (size_t inode = 0; inode < 4; inode++) {
                  mesh_file >> ind_node;
                  elem_nodes.push_back(ind_node);
               }
               Quadrangle quad(elem_nodes, i + 1, integer_tag[0], integer_tag[1]);
               _quadrangles.push_back(quad);
            } else if (type_elem == 4) {
               for (size_t inode = 0; inode < 4; inode++) {
                  mesh_file >> ind_node;
                  elem_nodes.push_back(ind_node);
               }
               Tetrahedron tetra(elem_nodes, i + 1, integer_tag[0], integer_tag[1]);
               _tetrahedra.push_back(tetra);
            } else if (type_elem == 5) {
               for (size_t inode = 0; inode < 8; inode++) {
                  mesh_file >> ind_node;
                  elem_nodes.push_back(ind_node);
               }
               Hexahedron hexa(elem_nodes, i + 1, integer_tag[0], integer_tag[1]);
               _hexahedra.push_back(hexa);
            } else if (type_elem == 6) {
               for (size_t inode = 0; inode < 6; inode++) {
                  mesh_file >> ind_node;
                  elem_nodes.push_back(ind_node);
               }
               Prism prism(elem_nodes, i + 1, integer_tag[0], integer_tag[1]);
               _prisms.push_back(prism);
            } else if (type_elem == 7) {
               for (size_t inode = 0; inode < 5; inode++) {
                  mesh_file >> ind_node;
                  elem_nodes.push_back(ind_node);
               }
               Pyramid pyra(elem_nodes, i + 1, integer_tag[0], integer_tag[1]);
               _pyramids.push_back(pyra);
            } else {
               std::cout << "Unsupported element" << std::endl;
            }
         }
         loop_elem = 0;
      }
   }

   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 $0x328, %rsp            # imm = 0x328
movq %rsi, %rbx
movq %rdi, %r15
movq (%rsi), %rsi
leaq -0x350(%rbp), %rdi
movl $0x8, %edx
callq 0x2310
leaq -0x2d8(%rbp), %rdi
callq 0x2050
testb %al, %al
je 0x5edf
movq 0x11b63(%rip), %r14     # 0x16fd8
leaq 0xbbef(%rip), %rsi      # 0x1106b
movl $0x18, %edx
movq %r14, %rdi
callq 0x2230
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x21f0
movsbl %al, %esi
movq 0x11b31(%rip), %rdi     # 0x16fd8
callq 0x2030
movq %rax, %rdi
callq 0x2180
movq 0x11b1d(%rip), %rdi     # 0x16fd8
leaq 0xc1ef(%rip), %rsi      # 0x116b1
movl $0xd, %edx
callq 0x2230
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq 0x11afe(%rip), %rdi     # 0x16fd8
callq 0x2230
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2180
movq 0x11ac8(%rip), %rbx     # 0x16fd8
leaq 0xc47e(%rip), %rsi      # 0x11995
movl $0xa, %edx
movq %rbx, %rdi
callq 0x2230
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21f0
movsbl %al, %esi
movq 0x11a96(%rip), %rdi     # 0x16fd8
callq 0x2030
movq %rax, %rdi
callq 0x2180
movq 0x11a82(%rip), %rbx     # 0x16fd8
leaq 0xbb0e(%rip), %rsi      # 0x1106b
movl $0x18, %edx
movq %rbx, %rdi
callq 0x2230
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21f0
movsbl %al, %esi
movq 0x11a50(%rip), %rdi     # 0x16fd8
callq 0x2030
movq %rax, %rdi
callq 0x2180
leaq -0x120(%rbp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb $0x0, (%rcx)
movq %rax, -0x68(%rbp)
movq %rax, -0x60(%rbp)
movq %rax, -0x70(%rbp)
movq %rax, -0xd0(%rbp)
movq %rax, -0x58(%rbp)
movq -0x350(%rbp), %rax
movq -0x18(%rax), %rax
testb $0x2, -0x330(%rbp,%rax)
jne 0x5d80
leaq (%rax,%rbp), %rdi
addq $-0x350, %rdi           # imm = 0xFCB0
leaq 0x8(%r15), %rax
movq %rax, -0x110(%rbp)
leaq 0xc8(%r15), %rax
movq %rax, -0x108(%rbp)
leaq 0xb0(%r15), %rax
movq %rax, -0x100(%rbp)
leaq 0x98(%r15), %rax
movq %rax, -0xf8(%rbp)
leaq 0x80(%r15), %rax
movq %rax, -0xf0(%rbp)
leaq 0x68(%r15), %rax
movq %rax, -0xe8(%rbp)
leaq 0x50(%r15), %rax
movq %rax, -0xe0(%rbp)
leaq 0x38(%r15), %rax
movq %rax, -0xd8(%rbp)
movl $0x64, %r14d
leaq -0x350(%rbp), %r13
leaq -0x50(%rbp), %r12
movl $0x64, %eax
movq %rax, -0xc8(%rbp)
movl $0xa, %esi
callq 0x21f0
movsbl %al, %edx
movq %r13, %rdi
leaq -0x130(%rbp), %rsi
callq 0x2320
movl $0x6, %ecx
leaq -0x130(%rbp), %rbx
movq %rbx, %rdi
leaq 0xc309(%rip), %rsi      # 0x119a0
xorl %edx, %edx
callq 0x22e0
cmpq $-0x1, %rax
setne %al
cmpq $0x0, -0xc8(%rbp)
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x581a
movq %r13, %rdi
leaq -0x68(%rbp), %rsi
callq 0x2120
movl $0xf, %edx
movq 0x11905(%rip), %rdi     # 0x16fd8
leaq 0xc2cd(%rip), %rsi      # 0x119a7
callq 0x2230
movq -0x68(%rbp), %rsi
movq 0x118ee(%rip), %rdi     # 0x16fd8
callq 0x2170
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0xc5d4(%rip), %rsi      # 0x11cd5
callq 0x2230
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2180
movq -0x68(%rbp), %rax
testq %rax, %rax
je 0x57e5
xorl %ebx, %ebx
movq %r13, %rdi
leaq -0x70(%rbp), %rsi
callq 0x2120
movq %rax, %rdi
leaq -0x148(%rbp), %rsi
callq 0x2160
movq %rax, %rdi
leaq -0x140(%rbp), %rsi
callq 0x2160
movq %rax, %rdi
leaq -0x138(%rbp), %rsi
callq 0x2160
movq -0x70(%rbp), %rdx
movl $0x1, %ecx
leaq -0xa8(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x28d4
movq 0x10(%r15), %rsi
cmpq 0x18(%r15), %rsi
je 0x57c2
movq -0x88(%rbp), %rax
movq %rax, 0x20(%rsi)
movups -0xa8(%rbp), %xmm0
movups -0x98(%rbp), %xmm1
movups %xmm1, 0x10(%rsi)
movups %xmm0, (%rsi)
addq $0x28, 0x10(%r15)
jmp 0x57d5
movq -0x110(%rbp), %rdi
leaq -0xa8(%rbp), %rdx
callq 0xb862
incq %rbx
movq -0x68(%rbp), %rax
cmpq %rax, %rbx
jb 0x573c
movq 0x10(%r15), %rcx
subq 0x8(%r15), %rcx
sarq $0x3, %rcx
movabsq $-0x3333333333333333, %rdx # imm = 0xCCCCCCCCCCCCCCCD
imulq %rdx, %rcx
cmpq %rax, %rcx
jne 0x5ec0
movq $0x0, -0xc8(%rbp)
leaq -0x130(%rbp), %rbx
movl $0x9, %ecx
movq %rbx, %rdi
leaq 0xc1c7(%rip), %rsi      # 0x119f0
xorl %edx, %edx
callq 0x22e0
cmpq $-0x1, %rax
je 0x5d57
movq %r13, %rdi
leaq -0x60(%rbp), %rsi
callq 0x2120
movq -0x60(%rbp), %rax
movq %rax, 0xe0(%r15)
testq %rax, %rax
je 0x5d54
xorl %esi, %esi
movq 0x11775(%rip), %rdi     # 0x16fd8
movq %rsi, -0x48(%rbp)
callq 0x2170
movq %rax, %r14
movl $0x3, %edx
movq %rax, %rdi
leaq 0xc17c(%rip), %rsi      # 0x119fa
callq 0x2230
movq -0x60(%rbp), %rsi
decq %rsi
movq %r14, %rdi
callq 0x2170
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2180
movq %r13, %rdi
leaq -0x70(%rbp), %rsi
callq 0x2120
movq %rax, %rdi
leaq -0xd0(%rbp), %rsi
callq 0x2120
movq %rax, %rdi
leaq -0x58(%rbp), %rsi
callq 0x2120
movq -0x58(%rbp), %rsi
leaq -0xc0(%rbp), %rdi
leaq -0xa8(%rbp), %rdx
callq 0xabe8
movq %r15, %rbx
cmpq $0x0, -0x58(%rbp)
je 0x5929
xorl %r14d, %r14d
xorl %r15d, %r15d
movq -0xc0(%rbp), %rsi
addq %r14, %rsi
movq %r13, %rdi
callq 0x2120
incq %r15
addq $0x8, %r14
cmpq -0x58(%rbp), %r15
jb 0x590a
xorps %xmm0, %xmm0
movaps %xmm0, -0x40(%rbp)
xorl %eax, %eax
movq %rax, -0x30(%rbp)
movq %rax, -0x50(%rbp)
movq -0xd0(%rbp), %rax
decq %rax
cmpq $0x6, %rax
ja 0x5b52
leaq 0xbd2b(%rip), %rcx      # 0x11680
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x1, %r14d
movq %rbx, %r15
movq %r13, %rdi
movq %r12, %rsi
callq 0x2120
movq -0x38(%rbp), %rsi
cmpq -0x30(%rbp), %rsi
je 0x598d
movq -0x50(%rbp), %rax
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, -0x38(%rbp)
jmp 0x5999
leaq -0x40(%rbp), %rdi
movq %r12, %rdx
callq 0xc428
decq %r14
je 0x5967
movq -0x48(%rbp), %rax
leaq 0x1(%rax), %rdx
movq -0xc0(%rbp), %rax
movq (%rax), %rcx
movq 0x8(%rax), %r8
leaq -0xa8(%rbp), %rbx
movq %rbx, %rdi
leaq -0x40(%rbp), %rsi
callq 0x2ff2
movq -0xd8(%rbp), %rdi
movq %rbx, %rsi
callq 0xac7c
jmp 0x5d13
movl $0x8, %r14d
movq %rbx, %r15
movq %r13, %rdi
movq %r12, %rsi
callq 0x2120
movq -0x38(%rbp), %rsi
cmpq -0x30(%rbp), %rsi
je 0x5a0a
movq -0x50(%rbp), %rax
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, -0x38(%rbp)
jmp 0x5a16
leaq -0x40(%rbp), %rdi
movq %r12, %rdx
callq 0xc428
decq %r14
jne 0x59e4
movq -0x48(%rbp), %rax
leaq 0x1(%rax), %rdx
movq -0xc0(%rbp), %rax
movq (%rax), %rcx
movq 0x8(%rax), %r8
leaq -0xa8(%rbp), %rbx
movq %rbx, %rdi
leaq -0x40(%rbp), %rsi
callq 0x3212
movq -0xf8(%rbp), %rdi
movq %rbx, %rsi
callq 0xae04
jmp 0x5d13
movl $0x4, %r14d
movq %rbx, %r15
movq %r13, %rdi
movq %r12, %rsi
callq 0x2120
movq -0x38(%rbp), %rsi
cmpq -0x30(%rbp), %rsi
je 0x5a87
movq -0x50(%rbp), %rax
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, -0x38(%rbp)
jmp 0x5a93
leaq -0x40(%rbp), %rdi
movq %r12, %rdx
callq 0xc428
decq %r14
jne 0x5a61
movq -0x48(%rbp), %rax
leaq 0x1(%rax), %rdx
movq -0xc0(%rbp), %rax
movq (%rax), %rcx
movq 0x8(%rax), %r8
leaq -0xa8(%rbp), %rbx
movq %rbx, %rdi
leaq -0x40(%rbp), %rsi
callq 0x3102
movq -0xe8(%rbp), %rdi
movq %rbx, %rsi
callq 0xada2
jmp 0x5d13
movl $0x4, %r14d
movq %rbx, %r15
movq %r13, %rdi
movq %r12, %rsi
callq 0x2120
movq -0x38(%rbp), %rsi
cmpq -0x30(%rbp), %rsi
je 0x5b04
movq -0x50(%rbp), %rax
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, -0x38(%rbp)
jmp 0x5b10
leaq -0x40(%rbp), %rdi
movq %r12, %rdx
callq 0xc428
decq %r14
jne 0x5ade
movq -0x48(%rbp), %rax
leaq 0x1(%rax), %rdx
movq -0xc0(%rbp), %rax
movq (%rax), %rcx
movq 0x8(%rax), %r8
leaq -0xa8(%rbp), %rbx
movq %rbx, %rdi
leaq -0x40(%rbp), %rsi
callq 0x318a
movq -0xf0(%rbp), %rdi
movq %rbx, %rsi
callq 0xad40
jmp 0x5d13
movl $0x13, %edx
movq 0x1147a(%rip), %rdi     # 0x16fd8
leaq 0xbe99(%rip), %rsi      # 0x119fe
callq 0x2230
movq %rbx, %r15
movq 0x11464(%rip), %rcx     # 0x16fd8
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x21f0
movsbl %al, %esi
movq 0x11446(%rip), %rdi     # 0x16fd8
callq 0x2030
movq %rax, %rdi
callq 0x2180
jmp 0x5d24
movl $0x3, %r14d
movq %rbx, %r15
movq %r13, %rdi
movq %r12, %rsi
callq 0x2120
movq -0x38(%rbp), %rsi
cmpq -0x30(%rbp), %rsi
je 0x5bd3
movq -0x50(%rbp), %rax
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, -0x38(%rbp)
jmp 0x5bdf
leaq -0x40(%rbp), %rdi
movq %r12, %rdx
callq 0xc428
decq %r14
jne 0x5bad
movq -0x48(%rbp), %rax
leaq 0x1(%rax), %rdx
movq -0xc0(%rbp), %rax
movq (%rax), %rcx
movq 0x8(%rax), %r8
leaq -0xa8(%rbp), %rbx
movq %rbx, %rdi
leaq -0x40(%rbp), %rsi
callq 0x307a
movq -0xe0(%rbp), %rdi
movq %rbx, %rsi
callq 0xacde
jmp 0x5d13
movl $0x6, %r14d
movq %rbx, %r15
movq %r13, %rdi
movq %r12, %rsi
callq 0x2120
movq -0x38(%rbp), %rsi
cmpq -0x30(%rbp), %rsi
je 0x5c50
movq -0x50(%rbp), %rax
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, -0x38(%rbp)
jmp 0x5c5c
leaq -0x40(%rbp), %rdi
movq %r12, %rdx
callq 0xc428
decq %r14
jne 0x5c2a
movq -0x48(%rbp), %rax
leaq 0x1(%rax), %rdx
movq -0xc0(%rbp), %rax
movq (%rax), %rcx
movq 0x8(%rax), %r8
leaq -0xa8(%rbp), %rbx
movq %rbx, %rdi
leaq -0x40(%rbp), %rsi
callq 0x329a
movq -0x100(%rbp), %rdi
movq %rbx, %rsi
callq 0xae66
jmp 0x5d13
movl $0x5, %r14d
movq %rbx, %r15
movq %r13, %rdi
movq %r12, %rsi
callq 0x2120
movq -0x38(%rbp), %rsi
cmpq -0x30(%rbp), %rsi
je 0x5cca
movq -0x50(%rbp), %rax
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, -0x38(%rbp)
jmp 0x5cd6
leaq -0x40(%rbp), %rdi
movq %r12, %rdx
callq 0xc428
decq %r14
jne 0x5ca4
movq -0x48(%rbp), %rax
leaq 0x1(%rax), %rdx
movq -0xc0(%rbp), %rax
movq (%rax), %rcx
movq 0x8(%rax), %r8
leaq -0xa8(%rbp), %rbx
movq %rbx, %rdi
leaq -0x40(%rbp), %rsi
callq 0x3322
movq -0x108(%rbp), %rdi
movq %rbx, %rsi
callq 0xaec8
movq -0xa8(%rbp), %rdi
testq %rdi, %rdi
je 0x5d24
callq 0x21e0
movq -0x40(%rbp), %rdi
testq %rdi, %rdi
je 0x5d32
callq 0x21e0
movq -0xc0(%rbp), %rdi
testq %rdi, %rdi
je 0x5d43
callq 0x21e0
movq -0x48(%rbp), %rsi
incq %rsi
cmpq -0x60(%rbp), %rsi
jb 0x585c
xorl %r14d, %r14d
movq -0x350(%rbp), %rax
movq -0x18(%rax), %rax
testb $0x2, -0x330(%rbp,%rax)
jne 0x5d80
leaq (%rax,%rbp), %rdi
addq $-0x350, %rdi           # imm = 0xFCB0
testq %r14, %r14
jne 0x5665
leaq -0x350(%rbp), %rdi
callq 0x2040
movq 0x88(%r15), %rcx
movq 0xa0(%r15), %rdx
subq 0x80(%r15), %rcx
sarq $0x3, %rcx
movabsq $0x6db6db6db6db6db7, %rax # imm = 0x6DB6DB6DB6DB6DB7
imulq %rax, %rcx
subq 0x98(%r15), %rdx
sarq $0x3, %rdx
imulq %rax, %rdx
movq 0xb8(%r15), %rsi
subq 0xb0(%r15), %rsi
addq %rcx, %rdx
sarq $0x3, %rsi
imulq %rax, %rsi
addq %rdx, %rsi
movq 0xd0(%r15), %rdi
subq 0xc8(%r15), %rdi
sarq $0x3, %rdi
movabsq $-0x6db6db6db6db6db7, %rcx # imm = 0x9249249249249249
imulq %rcx, %rdi
movl $0x3, %edx
cmpq %rdi, %rsi
jne 0x5e41
movq 0x58(%r15), %rsi
movq 0x70(%r15), %rdi
subq 0x50(%r15), %rsi
sarq $0x3, %rsi
imulq %rax, %rsi
subq 0x68(%r15), %rdi
sarq $0x3, %rdi
imulq %rcx, %rdi
movl $0x2, %edx
cmpq %rdi, %rsi
jne 0x5e41
movq 0x40(%r15), %rax
movl $0x1, %edx
cmpq 0x38(%r15), %rax
je 0x5e44
movq %rdx, (%r15)
movq 0x1118d(%rip), %rbx     # 0x16fd8
leaq 0xb219(%rip), %rsi      # 0x1106b
movl $0x18, %edx
movq %rbx, %rdi
callq 0x2230
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21f0
movsbl %al, %esi
movq 0x1115b(%rip), %rdi     # 0x16fd8
callq 0x2030
movq %rax, %rdi
callq 0x2180
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x5ea2
callq 0x21e0
leaq -0x350(%rbp), %rdi
callq 0x2060
addq $0x328, %rsp            # imm = 0x328
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xb821(%rip), %rdi      # 0x116e8
leaq 0xb856(%rip), %rsi      # 0x11724
leaq 0xbae2(%rip), %rcx      # 0x119b7
movl $0x17e, %edx            # imm = 0x17E
callq 0x2150
movq 0x110f2(%rip), %rdi     # 0x16fd8
leaq 0xb7af(%rip), %rsi      # 0x1169c
movl $0x14, %edx
callq 0x2230
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq 0x110d3(%rip), %rdi     # 0x16fd8
callq 0x2230
movq %rax, %rdi
callq 0x20f0
callq 0x2140
jmp 0x5f7a
movq %rax, %rbx
jmp 0x5fab
jmp 0x5f67
jmp 0x5f67
jmp 0x5f3b
jmp 0x5f67
jmp 0x5f3b
jmp 0x5f67
jmp 0x5f3b
jmp 0x5f3b
jmp 0x5f67
jmp 0x5f3b
jmp 0x5f67
jmp 0x5f3b
jmp 0x5f67
movq %rax, %rbx
movq -0xa8(%rbp), %rdi
testq %rdi, %rdi
je 0x5f6a
callq 0x21e0
jmp 0x5f6a
jmp 0x5f7a
jmp 0x5f67
jmp 0x5f7a
jmp 0x5f7a
jmp 0x5f7a
jmp 0x5f67
jmp 0x5f67
jmp 0x5f67
jmp 0x5f67
jmp 0x5f67
jmp 0x5f67
movq %rax, %rbx
movq -0x40(%rbp), %rdi
testq %rdi, %rdi
je 0x5f82
callq 0x21e0
jmp 0x5f82
movq %rax, %rbx
jmp 0x5f93
movq %rax, %rbx
movq -0xc0(%rbp), %rdi
testq %rdi, %rdi
je 0x5f93
callq 0x21e0
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x5fab
callq 0x21e0
leaq -0x350(%rbp), %rdi
callq 0x2060
movq %rbx, %rdi
callq 0x22f0
nop