// File: /workspace/github_cpp_makefile_star2_O1/alan0201tw[P]RayTracer/include/tiny_obj_loader.h
// Function: tinyobj::LoadMtl(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, int>>>*, std::vector<tinyobj::material_t, std::allocator<tinyobj::material_t>>*, std::istream*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*)
void LoadMtl(std::map<std::string, int> *material_map,
             std::vector<material_t> *materials, std::istream *inStream,
             std::string *warning, std::string *err) {
  (void)err;

  // Create a default material anyway.
  material_t material;
  InitMaterial(&material);

  // Issue 43. `d` wins against `Tr` since `Tr` is not in the MTL specification.
  bool has_d = false;
  bool has_tr = false;

  std::stringstream warn_ss;

  size_t line_no = 0;
  std::string linebuf;
  while (inStream->peek() != -1) {
    safeGetline(*inStream, linebuf);
    line_no++;

    // Trim trailing whitespace.
    if (linebuf.size() > 0) {
      linebuf = linebuf.substr(0, linebuf.find_last_not_of(" \t") + 1);
    }

    // Trim newline '\r\n' or '\n'
    if (linebuf.size() > 0) {
      if (linebuf[linebuf.size() - 1] == '\n')
        linebuf.erase(linebuf.size() - 1);
    }
    if (linebuf.size() > 0) {
      if (linebuf[linebuf.size() - 1] == '\r')
        linebuf.erase(linebuf.size() - 1);
    }

    // Skip if empty line.
    if (linebuf.empty()) {
      continue;
    }

    // Skip leading space.
    const char *token = linebuf.c_str();
    token += strspn(token, " \t");

    assert(token);
    if (token[0] == '\0') continue;  // empty line

    if (token[0] == '#') continue;  // comment line

    // new mtl
    if ((0 == strncmp(token, "newmtl", 6)) && IS_SPACE((token[6]))) {
      // flush previous material.
      if (!material.name.empty()) {
        material_map->insert(std::pair<std::string, int>(
            material.name, static_cast<int>(materials->size())));
        materials->push_back(material);
      }

      // initial temporary material
      InitMaterial(&material);

      has_d = false;
      has_tr = false;

      // set new mtl name
      token += 7;
      {
        std::stringstream sstr;
        sstr << token;
        material.name = sstr.str();
      }
      continue;
    }

    // ambient
    if (token[0] == 'K' && token[1] == 'a' && IS_SPACE((token[2]))) {
      token += 2;
      real_t r, g, b;
      parseReal3(&r, &g, &b, &token);
      material.ambient[0] = r;
      material.ambient[1] = g;
      material.ambient[2] = b;
      continue;
    }

    // diffuse
    if (token[0] == 'K' && token[1] == 'd' && IS_SPACE((token[2]))) {
      token += 2;
      real_t r, g, b;
      parseReal3(&r, &g, &b, &token);
      material.diffuse[0] = r;
      material.diffuse[1] = g;
      material.diffuse[2] = b;
      continue;
    }

    // specular
    if (token[0] == 'K' && token[1] == 's' && IS_SPACE((token[2]))) {
      token += 2;
      real_t r, g, b;
      parseReal3(&r, &g, &b, &token);
      material.specular[0] = r;
      material.specular[1] = g;
      material.specular[2] = b;
      continue;
    }

    // transmittance
    if ((token[0] == 'K' && token[1] == 't' && IS_SPACE((token[2]))) ||
        (token[0] == 'T' && token[1] == 'f' && IS_SPACE((token[2])))) {
      token += 2;
      real_t r, g, b;
      parseReal3(&r, &g, &b, &token);
      material.transmittance[0] = r;
      material.transmittance[1] = g;
      material.transmittance[2] = b;
      continue;
    }

    // ior(index of refraction)
    if (token[0] == 'N' && token[1] == 'i' && IS_SPACE((token[2]))) {
      token += 2;
      material.ior = parseReal(&token);
      continue;
    }

    // emission
    if (token[0] == 'K' && token[1] == 'e' && IS_SPACE(token[2])) {
      token += 2;
      real_t r, g, b;
      parseReal3(&r, &g, &b, &token);
      material.emission[0] = r;
      material.emission[1] = g;
      material.emission[2] = b;
      continue;
    }

    // shininess
    if (token[0] == 'N' && token[1] == 's' && IS_SPACE(token[2])) {
      token += 2;
      material.shininess = parseReal(&token);
      continue;
    }

    // illum model
    if (0 == strncmp(token, "illum", 5) && IS_SPACE(token[5])) {
      token += 6;
      material.illum = parseInt(&token);
      continue;
    }

    // dissolve
    if ((token[0] == 'd' && IS_SPACE(token[1]))) {
      token += 1;
      material.dissolve = parseReal(&token);

      if (has_tr) {
        warn_ss << "Both `d` and `Tr` parameters defined for \""
                << material.name
                << "\". Use the value of `d` for dissolve (line " << line_no
                << " in .mtl.)" << std::endl;
      }
      has_d = true;
      continue;
    }
    if (token[0] == 'T' && token[1] == 'r' && IS_SPACE(token[2])) {
      token += 2;
      if (has_d) {
        // `d` wins. Ignore `Tr` value.
        warn_ss << "Both `d` and `Tr` parameters defined for \""
                << material.name
                << "\". Use the value of `d` for dissolve (line " << line_no
                << " in .mtl.)" << std::endl;
      } else {
        // We invert value of Tr(assume Tr is in range [0, 1])
        // NOTE: Interpretation of Tr is application(exporter) dependent. For
        // some application(e.g. 3ds max obj exporter), Tr = d(Issue 43)
        material.dissolve = static_cast<real_t>(1.0) - parseReal(&token);
      }
      has_tr = true;
      continue;
    }

    // PBR: roughness
    if (token[0] == 'P' && token[1] == 'r' && IS_SPACE(token[2])) {
      token += 2;
      material.roughness = parseReal(&token);
      continue;
    }

    // PBR: metallic
    if (token[0] == 'P' && token[1] == 'm' && IS_SPACE(token[2])) {
      token += 2;
      material.metallic = parseReal(&token);
      continue;
    }

    // PBR: sheen
    if (token[0] == 'P' && token[1] == 's' && IS_SPACE(token[2])) {
      token += 2;
      material.sheen = parseReal(&token);
      continue;
    }

    // PBR: clearcoat thickness
    if (token[0] == 'P' && token[1] == 'c' && IS_SPACE(token[2])) {
      token += 2;
      material.clearcoat_thickness = parseReal(&token);
      continue;
    }

    // PBR: clearcoat roughness
    if ((0 == strncmp(token, "Pcr", 3)) && IS_SPACE(token[3])) {
      token += 4;
      material.clearcoat_roughness = parseReal(&token);
      continue;
    }

    // PBR: anisotropy
    if ((0 == strncmp(token, "aniso", 5)) && IS_SPACE(token[5])) {
      token += 6;
      material.anisotropy = parseReal(&token);
      continue;
    }

    // PBR: anisotropy rotation
    if ((0 == strncmp(token, "anisor", 6)) && IS_SPACE(token[6])) {
      token += 7;
      material.anisotropy_rotation = parseReal(&token);
      continue;
    }

    // ambient texture
    if ((0 == strncmp(token, "map_Ka", 6)) && IS_SPACE(token[6])) {
      token += 7;
      ParseTextureNameAndOption(&(material.ambient_texname),
                                &(material.ambient_texopt), token);
      continue;
    }

    // diffuse texture
    if ((0 == strncmp(token, "map_Kd", 6)) && IS_SPACE(token[6])) {
      token += 7;
      ParseTextureNameAndOption(&(material.diffuse_texname),
                                &(material.diffuse_texopt), token);
      continue;
    }

    // specular texture
    if ((0 == strncmp(token, "map_Ks", 6)) && IS_SPACE(token[6])) {
      token += 7;
      ParseTextureNameAndOption(&(material.specular_texname),
                                &(material.specular_texopt), token);
      continue;
    }

    // specular highlight texture
    if ((0 == strncmp(token, "map_Ns", 6)) && IS_SPACE(token[6])) {
      token += 7;
      ParseTextureNameAndOption(&(material.specular_highlight_texname),
                                &(material.specular_highlight_texopt), token);
      continue;
    }

    // bump texture
    if ((0 == strncmp(token, "map_bump", 8)) && IS_SPACE(token[8])) {
      token += 9;
      ParseTextureNameAndOption(&(material.bump_texname),
                                &(material.bump_texopt), token);
      continue;
    }

    // bump texture
    if ((0 == strncmp(token, "map_Bump", 8)) && IS_SPACE(token[8])) {
      token += 9;
      ParseTextureNameAndOption(&(material.bump_texname),
                                &(material.bump_texopt), token);
      continue;
    }

    // bump texture
    if ((0 == strncmp(token, "bump", 4)) && IS_SPACE(token[4])) {
      token += 5;
      ParseTextureNameAndOption(&(material.bump_texname),
                                &(material.bump_texopt), token);
      continue;
    }

    // alpha texture
    if ((0 == strncmp(token, "map_d", 5)) && IS_SPACE(token[5])) {
      token += 6;
      material.alpha_texname = token;
      ParseTextureNameAndOption(&(material.alpha_texname),
                                &(material.alpha_texopt), token);
      continue;
    }

    // displacement texture
    if ((0 == strncmp(token, "disp", 4)) && IS_SPACE(token[4])) {
      token += 5;
      ParseTextureNameAndOption(&(material.displacement_texname),
                                &(material.displacement_texopt), token);
      continue;
    }

    // reflection map
    if ((0 == strncmp(token, "refl", 4)) && IS_SPACE(token[4])) {
      token += 5;
      ParseTextureNameAndOption(&(material.reflection_texname),
                                &(material.reflection_texopt), token);
      continue;
    }

    // PBR: roughness texture
    if ((0 == strncmp(token, "map_Pr", 6)) && IS_SPACE(token[6])) {
      token += 7;
      ParseTextureNameAndOption(&(material.roughness_texname),
                                &(material.roughness_texopt), token);
      continue;
    }

    // PBR: metallic texture
    if ((0 == strncmp(token, "map_Pm", 6)) && IS_SPACE(token[6])) {
      token += 7;
      ParseTextureNameAndOption(&(material.metallic_texname),
                                &(material.metallic_texopt), token);
      continue;
    }

    // PBR: sheen texture
    if ((0 == strncmp(token, "map_Ps", 6)) && IS_SPACE(token[6])) {
      token += 7;
      ParseTextureNameAndOption(&(material.sheen_texname),
                                &(material.sheen_texopt), token);
      continue;
    }

    // PBR: emissive texture
    if ((0 == strncmp(token, "map_Ke", 6)) && IS_SPACE(token[6])) {
      token += 7;
      ParseTextureNameAndOption(&(material.emissive_texname),
                                &(material.emissive_texopt), token);
      continue;
    }

    // PBR: normal map texture
    if ((0 == strncmp(token, "norm", 4)) && IS_SPACE(token[4])) {
      token += 5;
      ParseTextureNameAndOption(&(material.normal_texname),
                                &(material.normal_texopt), token);
      continue;
    }

    // unknown parameter
    const char *_space = strchr(token, ' ');
    if (!_space) {
      _space = strchr(token, '\t');
    }
    if (_space) {
      std::ptrdiff_t len = _space - token;
      std::string key(token, static_cast<size_t>(len));
      std::string value = _space + 1;
      material.unknown_parameter.insert(
          std::pair<std::string, std::string>(key, value));
    }
  }
  // flush last material.
  material_map->insert(std::pair<std::string, int>(
      material.name, static_cast<int>(materials->size())));
  materials->push_back(material);

  if (warning) {
    (*warning) = warn_ss.str();
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xae8, %rsp            # imm = 0xAE8
movq %rcx, %rbx
movq %rdx, %r12
movq %rsi, 0x18(%rsp)
movq %rdi, 0x60(%rsp)
leaq 0x228(%rsp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x298(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x2b8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x2d8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x2f8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x318(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x338(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x358(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x378(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x3d8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x438(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x498(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x4f8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x558(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x5b8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x618(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x678(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x6b8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x6d8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x6f8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x718(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x738(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x798(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x7f8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x858(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x8b8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x918(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x938(%rsp), %rcx
movl $0x0, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq 0x218(%rsp), %rdi
callq 0xeae1
movq %rbx, 0x88(%rsp)
leaq 0x960(%rsp), %rdi
callq 0x62a0
leaq 0x30(%rsp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x20(%rsp), %rbp
leaq 0x90(%rsp), %r15
xorl %ebx, %ebx
movl $0x0, 0xc(%rsp)
movl $0x0, 0x10(%rsp)
leaq 0xa0(%rsp), %r14
leaq 0x2f27b(%rip), %r13     # 0x3c648
movq %r12, %rdi
callq 0x6140
cmpl $-0x1, %eax
je 0xe875
movq %r12, %rdi
movq %rbp, %rsi
callq 0xef42
cmpq $0x0, 0x28(%rsp)
je 0xd441
movl $0x2, %ecx
movq %rbp, %rdi
movq %r13, %rsi
movq $-0x1, %rdx
callq 0x6630
leaq 0x1(%rax), %rcx
movq %r15, %rdi
movq %rbp, %rsi
xorl %edx, %edx
callq 0x6420
movq %rbp, %rdi
movq %r15, %rsi
callq 0x64a0
movq 0x90(%rsp), %rdi
cmpq %r14, %rdi
je 0xd441
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x6400
movq 0x28(%rsp), %rax
testq %rax, %rax
je 0xd463
movq 0x20(%rsp), %rcx
cmpb $0xa, -0x1(%rcx,%rax)
jne 0xd463
decq %rax
movq %rax, 0x28(%rsp)
movb $0x0, (%rcx,%rax)
movq 0x28(%rsp), %rax
testq %rax, %rax
je 0xd485
movq 0x20(%rsp), %rcx
cmpb $0xd, -0x1(%rcx,%rax)
jne 0xd485
decq %rax
movq %rax, 0x28(%rsp)
movb $0x0, (%rcx,%rax)
incq %rbx
cmpq $0x0, 0x28(%rsp)
je 0xd3cd
movq 0x20(%rsp), %r14
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
testq %r14, %r14
je 0xe9b6
addq %rax, %r14
movzbl (%r14), %r13d
testl %r13d, %r13d
je 0xd3be
cmpl $0x23, %r13d
je 0xd3be
movl $0x6, %edx
movq %r14, %rdi
leaq 0x2f25c(%rip), %rsi     # 0x3c732
callq 0x61c0
testl %eax, %eax
je 0xd61c
cmpb $0x4b, %r13b
jne 0xd8c6
cmpb $0x61, 0x1(%r14)
jne 0xd638
movzbl 0x2(%r14), %eax
cmpl $0x20, %eax
je 0xd50b
cmpl $0x9, %eax
jne 0xd638
addq $0x2, %r14
movq %r14, %rdi
leaq 0x2f12f(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f72b(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r14), %r13
xorl %eax, %eax
movq %rax, 0x90(%rsp)
movq %r14, %rdi
movq %r13, %rsi
movq %r15, %rdx
callq 0x1ae28
cvtsd2ss 0x90(%rsp), %xmm0
movss %xmm0, 0x8(%rsp)
movq %r13, %rdi
leaq 0x2f0e3(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r13
movq %r13, %rdi
leaq 0x2f6df(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r13), %r14
xorl %eax, %eax
movq %rax, 0x90(%rsp)
movq %r13, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x1ae28
xorps %xmm0, %xmm0
cvtsd2ss 0x90(%rsp), %xmm0
movss %xmm0, 0x4(%rsp)
movq %r14, %rdi
leaq 0x2f094(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f690(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r14), %rsi
xorl %eax, %eax
movq %rax, 0x90(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1ae28
xorps %xmm0, %xmm0
cvtsd2ss 0x90(%rsp), %xmm0
movss 0x8(%rsp), %xmm1
movss %xmm1, 0x238(%rsp)
movss 0x4(%rsp), %xmm1
movss %xmm1, 0x23c(%rsp)
movss %xmm0, 0x240(%rsp)
jmp 0xd3be
movzbl 0x6(%r14), %eax
cmpl $0x20, %eax
je 0xe73f
cmpl $0x9, %eax
je 0xe73f
jmp 0xd4e3
cmpb $0x4b, %r13b
jne 0xd8c6
cmpb $0x64, 0x1(%r14)
jne 0xd771
movzbl 0x2(%r14), %eax
cmpl $0x20, %eax
je 0xd660
cmpl $0x9, %eax
jne 0xd771
addq $0x2, %r14
movq %r14, %rdi
leaq 0x2efda(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f5d6(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r14), %r13
xorl %eax, %eax
movq %rax, 0x90(%rsp)
movq %r14, %rdi
movq %r13, %rsi
movq %r15, %rdx
callq 0x1ae28
cvtsd2ss 0x90(%rsp), %xmm0
movss %xmm0, 0x8(%rsp)
movq %r13, %rdi
leaq 0x2ef8e(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r13
movq %r13, %rdi
leaq 0x2f58a(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r13), %r14
xorl %eax, %eax
movq %rax, 0x90(%rsp)
movq %r13, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x1ae28
xorps %xmm0, %xmm0
cvtsd2ss 0x90(%rsp), %xmm0
movss %xmm0, 0x4(%rsp)
movq %r14, %rdi
leaq 0x2ef3f(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f53b(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r14), %rsi
xorl %eax, %eax
movq %rax, 0x90(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1ae28
xorps %xmm0, %xmm0
cvtsd2ss 0x90(%rsp), %xmm0
movss 0x8(%rsp), %xmm1
movss %xmm1, 0x244(%rsp)
movss 0x4(%rsp), %xmm1
movss %xmm1, 0x248(%rsp)
movss %xmm0, 0x24c(%rsp)
jmp 0xd3be
cmpb $0x4b, %r13b
jne 0xd8c6
cmpb $0x73, 0x1(%r14)
jne 0xd8aa
movzbl 0x2(%r14), %eax
cmpl $0x20, %eax
je 0xd799
cmpl $0x9, %eax
jne 0xd8aa
addq $0x2, %r14
movq %r14, %rdi
leaq 0x2eea1(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f49d(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r14), %r13
xorl %eax, %eax
movq %rax, 0x90(%rsp)
movq %r14, %rdi
movq %r13, %rsi
movq %r15, %rdx
callq 0x1ae28
cvtsd2ss 0x90(%rsp), %xmm0
movss %xmm0, 0x8(%rsp)
movq %r13, %rdi
leaq 0x2ee55(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r13
movq %r13, %rdi
leaq 0x2f451(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r13), %r14
xorl %eax, %eax
movq %rax, 0x90(%rsp)
movq %r13, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x1ae28
xorps %xmm0, %xmm0
cvtsd2ss 0x90(%rsp), %xmm0
movss %xmm0, 0x4(%rsp)
movq %r14, %rdi
leaq 0x2ee06(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f402(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r14), %rsi
xorl %eax, %eax
movq %rax, 0x90(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1ae28
xorps %xmm0, %xmm0
cvtsd2ss 0x90(%rsp), %xmm0
movss 0x8(%rsp), %xmm1
movss %xmm1, 0x250(%rsp)
movss 0x4(%rsp), %xmm1
movss %xmm1, 0x254(%rsp)
movss %xmm0, 0x258(%rsp)
jmp 0xd3be
cmpb $0x4b, %r13b
jne 0xd8c6
cmpb $0x74, 0x1(%r14)
jne 0xd8c6
movzbl 0x2(%r14), %eax
cmpl $0x9, %eax
je 0xd8ee
cmpl $0x20, %eax
je 0xd8ee
cmpb $0x54, %r13b
jne 0xda00
cmpb $0x66, 0x1(%r14)
jne 0xda00
movzbl 0x2(%r14), %eax
cmpl $0x20, %eax
je 0xd8ee
cmpl $0x9, %eax
jne 0xda00
leaq 0x2(%r14), %rdi
leaq 0x2ed4f(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r14
addq $0x2, %r14
movq %r14, %rdi
leaq 0x2f347(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r14), %r13
xorl %eax, %eax
movq %rax, 0x90(%rsp)
movq %r14, %rdi
movq %r13, %rsi
movq %r15, %rdx
callq 0x1ae28
cvtsd2ss 0x90(%rsp), %xmm0
movss %xmm0, 0x8(%rsp)
movq %r13, %rdi
leaq 0x2ecff(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r13
movq %r13, %rdi
leaq 0x2f2fb(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r13), %r14
xorl %eax, %eax
movq %rax, 0x90(%rsp)
movq %r13, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x1ae28
xorps %xmm0, %xmm0
cvtsd2ss 0x90(%rsp), %xmm0
movss %xmm0, 0x4(%rsp)
movq %r14, %rdi
leaq 0x2ecb0(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f2ac(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r14), %rsi
xorl %eax, %eax
movq %rax, 0x90(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1ae28
xorps %xmm0, %xmm0
cvtsd2ss 0x90(%rsp), %xmm0
movss 0x8(%rsp), %xmm1
movss %xmm1, 0x25c(%rsp)
movss 0x4(%rsp), %xmm1
movss %xmm1, 0x260(%rsp)
movss %xmm0, 0x264(%rsp)
jmp 0xd3be
cmpb $0x4e, %r13b
jne 0xda73
cmpb $0x69, 0x1(%r14)
jne 0xda73
movzbl 0x2(%r14), %eax
cmpl $0x20, %eax
je 0xda1c
cmpl $0x9, %eax
jne 0xda73
addq $0x2, %r14
movq %r14, %rdi
leaq 0x2ec1e(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f21a(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r14), %rsi
movq $0x0, 0x90(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1ae28
cvtsd2ss 0x90(%rsp), %xmm0
movss %xmm0, 0x278(%rsp)
jmp 0xd3be
cmpb $0x4b, %r13b
jne 0xdbac
cmpb $0x65, 0x1(%r14)
jne 0xdbac
movzbl 0x2(%r14), %eax
cmpl $0x20, %eax
je 0xda9b
cmpl $0x9, %eax
jne 0xdbac
addq $0x2, %r14
movq %r14, %rdi
leaq 0x2eb9f(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f19b(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r14), %r13
xorl %eax, %eax
movq %rax, 0x90(%rsp)
movq %r14, %rdi
movq %r13, %rsi
movq %r15, %rdx
callq 0x1ae28
cvtsd2ss 0x90(%rsp), %xmm0
movss %xmm0, 0x8(%rsp)
movq %r13, %rdi
leaq 0x2eb53(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r13
movq %r13, %rdi
leaq 0x2f14f(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r13), %r14
xorl %eax, %eax
movq %rax, 0x90(%rsp)
movq %r13, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x1ae28
xorps %xmm0, %xmm0
cvtsd2ss 0x90(%rsp), %xmm0
movss %xmm0, 0x4(%rsp)
movq %r14, %rdi
leaq 0x2eb04(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f100(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r14), %rsi
xorl %eax, %eax
movq %rax, 0x90(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1ae28
xorps %xmm0, %xmm0
cvtsd2ss 0x90(%rsp), %xmm0
movss 0x8(%rsp), %xmm1
movss %xmm1, 0x268(%rsp)
movss 0x4(%rsp), %xmm1
movss %xmm1, 0x26c(%rsp)
movss %xmm0, 0x270(%rsp)
jmp 0xd3be
cmpb $0x4e, %r13b
jne 0xdc1f
cmpb $0x73, 0x1(%r14)
jne 0xdc1f
movzbl 0x2(%r14), %eax
cmpl $0x20, %eax
je 0xdbc8
cmpl $0x9, %eax
jne 0xdc1f
addq $0x2, %r14
movq %r14, %rdi
leaq 0x2ea72(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f06e(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r14), %rsi
movq $0x0, 0x90(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1ae28
cvtsd2ss 0x90(%rsp), %xmm0
movss %xmm0, 0x274(%rsp)
jmp 0xd3be
movl $0x5, %edx
movq %r14, %rdi
leaq 0x2eb0b(%rip), %rsi     # 0x3c739
callq 0x61c0
testl %eax, %eax
je 0xdea8
cmpb $0x64, %r13b
jne 0xdd55
movzbl 0x1(%r14), %eax
cmpl $0x20, %eax
je 0xdc58
cmpl $0x9, %eax
jne 0xdd55
incq %r14
movq %r14, %rdi
leaq 0x2e9e3(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2efdf(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r14), %rsi
movq $0x0, 0x90(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1ae28
cvtsd2ss 0x90(%rsp), %xmm0
movss %xmm0, 0x27c(%rsp)
movb $0x1, %al
movl %eax, 0x10(%rsp)
testb $0x1, 0xc(%rsp)
je 0xd3be
movl $0x2a, %edx
leaq 0x970(%rsp), %rdi
leaq 0x2ea71(%rip), %rsi     # 0x3c73f
callq 0x6470
movq 0x218(%rsp), %rsi
movq 0x220(%rsp), %rdx
leaq 0x970(%rsp), %rdi
callq 0x6470
movq %rax, %r14
movl $0x2b, %edx
movq %rax, %rdi
leaq 0x2ea68(%rip), %rsi     # 0x3c76a
callq 0x6470
movq %r14, %rdi
movq %rbx, %rsi
callq 0x6270
movq %rax, %r14
movl $0xa, %edx
movq %rax, %rdi
leaq 0x2ea72(%rip), %rsi     # 0x3c796
callq 0x6470
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x63d0
movsbl %al, %esi
movq %r14, %rdi
callq 0x6040
movq %rax, %rdi
callq 0x6280
jmp 0xd3be
cmpb $0x54, %r13b
jne 0xde29
cmpb $0x72, 0x1(%r14)
jne 0xde29
movzbl 0x2(%r14), %eax
cmpl $0x20, %eax
je 0xdd7d
cmpl $0x9, %eax
jne 0xde29
testb $0x1, 0x10(%rsp)
je 0xdfda
movl $0x2a, %edx
leaq 0x970(%rsp), %rdi
leaq 0x2e9a3(%rip), %rsi     # 0x3c73f
callq 0x6470
movq 0x218(%rsp), %rsi
movq 0x220(%rsp), %rdx
leaq 0x970(%rsp), %rdi
callq 0x6470
movq %rax, %r14
movl $0x2b, %edx
movq %rax, %rdi
leaq 0x2e99a(%rip), %rsi     # 0x3c76a
callq 0x6470
movq %r14, %rdi
movq %rbx, %rsi
callq 0x6270
movq %rax, %r14
movl $0xa, %edx
movq %rax, %rdi
leaq 0x2e9a4(%rip), %rsi     # 0x3c796
callq 0x6470
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x63d0
movsbl %al, %esi
movq %r14, %rdi
callq 0x6040
movb $0x1, %cl
movl %ecx, 0xc(%rsp)
movq %rax, %rdi
callq 0x6280
jmp 0xd3be
cmpb $0x50, %r13b
jne 0xe0b6
cmpb $0x72, 0x1(%r14)
jne 0xdee4
movzbl 0x2(%r14), %eax
cmpl $0x20, %eax
je 0xde51
cmpl $0x9, %eax
jne 0xdee4
addq $0x2, %r14
movq %r14, %rdi
leaq 0x2e7e9(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2ede5(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r14), %rsi
movq $0x0, 0x90(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1ae28
cvtsd2ss 0x90(%rsp), %xmm0
movss %xmm0, 0x688(%rsp)
jmp 0xd3be
movzbl 0x5(%r14), %eax
cmpl $0x20, %eax
je 0xdebb
cmpl $0x9, %eax
jne 0xdc3b
leaq 0x6(%r14), %rdi
leaq 0x2e782(%rip), %rsi     # 0x3c648
callq 0x6190
leaq (%r14,%rax), %rdi
addq $0x6, %rdi
callq 0x65e0
movl %eax, 0x280(%rsp)
jmp 0xd3be
cmpb $0x50, %r13b
jne 0xe0b6
cmpb $0x6d, 0x1(%r14)
jne 0xdf5b
movzbl 0x2(%r14), %eax
cmpl $0x20, %eax
je 0xdf04
cmpl $0x9, %eax
jne 0xdf5b
addq $0x2, %r14
movq %r14, %rdi
leaq 0x2e736(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2ed32(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r14), %rsi
movq $0x0, 0x90(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1ae28
cvtsd2ss 0x90(%rsp), %xmm0
movss %xmm0, 0x68c(%rsp)
jmp 0xd3be
cmpb $0x50, %r13b
jne 0xe0b6
cmpb $0x73, 0x1(%r14)
jne 0xe043
movzbl 0x2(%r14), %eax
cmpl $0x20, %eax
je 0xdf83
cmpl $0x9, %eax
jne 0xe043
addq $0x2, %r14
movq %r14, %rdi
leaq 0x2e6b7(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2ecb3(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r14), %rsi
movq $0x0, 0x90(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1ae28
cvtsd2ss 0x90(%rsp), %xmm0
movss %xmm0, 0x690(%rsp)
jmp 0xd3be
addq $0x2, %r14
movq %r14, %rdi
leaq 0x2e660(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2ec5c(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r14), %rsi
movq $0x0, 0x90(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1ae28
cvtsd2ss 0x90(%rsp), %xmm0
movss 0x2e1fd(%rip), %xmm1    # 0x3c228
subss %xmm0, %xmm1
movss %xmm1, 0x27c(%rsp)
movb $0x1, %al
movl %eax, 0xc(%rsp)
jmp 0xd3be
cmpb $0x50, %r13b
jne 0xe0b6
cmpb $0x63, 0x1(%r14)
jne 0xe0b6
movzbl 0x2(%r14), %eax
cmpl $0x20, %eax
je 0xe05f
cmpl $0x9, %eax
jne 0xe0b6
addq $0x2, %r14
movq %r14, %rdi
leaq 0x2e5db(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2ebd7(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r14), %rsi
movq $0x0, 0x90(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1ae28
cvtsd2ss 0x90(%rsp), %xmm0
movss %xmm0, 0x694(%rsp)
jmp 0xd3be
movl $0x3, %edx
movq %r14, %rdi
leaq 0x2e6dc(%rip), %rsi     # 0x3c7a1
callq 0x61c0
testl %eax, %eax
je 0xe393
movl $0x5, %edx
movq %r14, %rdi
leaq 0x2e6c4(%rip), %rsi     # 0x3c7a5
callq 0x61c0
testl %eax, %eax
leaq 0x2e559(%rip), %r13     # 0x3c648
je 0xe3fe
movl $0x6, %edx
movq %r14, %rdi
leaq 0x2e6a7(%rip), %rsi     # 0x3c7ab
callq 0x61c0
testl %eax, %eax
je 0xe465
movl $0x6, %edx
movq %r14, %rdi
leaq 0x2e692(%rip), %rsi     # 0x3c7b2
callq 0x61c0
testl %eax, %eax
je 0xe4cc
movl $0x6, %edx
movq %r14, %rdi
leaq 0x2e67d(%rip), %rsi     # 0x3c7b9
callq 0x61c0
testl %eax, %eax
je 0xe4f8
movl $0x6, %edx
movq %r14, %rdi
leaq 0x2e668(%rip), %rsi     # 0x3c7c0
callq 0x61c0
testl %eax, %eax
je 0xe524
movl $0x6, %edx
movq %r14, %rdi
leaq 0x2e653(%rip), %rsi     # 0x3c7c7
callq 0x61c0
testl %eax, %eax
je 0xe54d
movl $0x8, %edx
movq %r14, %rdi
leaq 0x2e63e(%rip), %rsi     # 0x3c7ce
callq 0x61c0
testl %eax, %eax
je 0xe576
movl $0x8, %edx
movq %r14, %rdi
leaq 0x2e62b(%rip), %rsi     # 0x3c7d7
callq 0x61c0
testl %eax, %eax
je 0xe58a
movl $0x4, %edx
movq %r14, %rdi
leaq 0x2e60a(%rip), %rsi     # 0x3c7d2
callq 0x61c0
testl %eax, %eax
je 0xe5a3
movl $0x5, %edx
movq %r14, %rdi
leaq 0x2e5fc(%rip), %rsi     # 0x3c7e0
callq 0x61c0
testl %eax, %eax
je 0xe5d7
movl $0x4, %edx
movq %r14, %rdi
leaq 0x2e5e6(%rip), %rsi     # 0x3c7e6
callq 0x61c0
testl %eax, %eax
je 0xe60e
movl $0x4, %edx
movq %r14, %rdi
leaq 0x2e5cf(%rip), %rsi     # 0x3c7eb
callq 0x61c0
testl %eax, %eax
je 0xe637
movl $0x6, %edx
movq %r14, %rdi
leaq 0x2e5b8(%rip), %rsi     # 0x3c7f0
callq 0x61c0
testl %eax, %eax
je 0xe663
movl $0x6, %edx
movq %r14, %rdi
leaq 0x2e5a3(%rip), %rsi     # 0x3c7f7
callq 0x61c0
testl %eax, %eax
je 0xe68f
movl $0x6, %edx
movq %r14, %rdi
leaq 0x2e58e(%rip), %rsi     # 0x3c7fe
callq 0x61c0
testl %eax, %eax
je 0xe6bb
movl $0x6, %edx
movq %r14, %rdi
leaq 0x2e579(%rip), %rsi     # 0x3c805
callq 0x61c0
testl %eax, %eax
je 0xe6e7
movl $0x4, %edx
movq %r14, %rdi
leaq 0x2e564(%rip), %rsi     # 0x3c80c
callq 0x61c0
testl %eax, %eax
je 0xe713
movq %r14, %rdi
movl $0x20, %esi
callq 0x6120
movq %rax, %r13
testq %rax, %rax
jne 0xe2da
movq %r14, %rdi
movl $0x9, %esi
callq 0x6120
movq %rax, %r13
testq %r13, %r13
je 0xd3be
leaq 0x50(%rsp), %rax
movq %rax, 0x40(%rsp)
leaq 0x40(%rsp), %rdi
movq %r14, %rsi
movq %r13, %rdx
callq 0x1bc8a
leaq 0x1(%r13), %r14
leaq 0x78(%rsp), %rax
movq %rax, 0x68(%rsp)
movq %r14, %rdi
callq 0x61a0
leaq (%rax,%r13), %rdx
incq %rdx
leaq 0x68(%rsp), %r13
movq %r13, %rdi
movq %r14, %rsi
callq 0x1bc8a
movq %r15, %rdi
leaq 0x40(%rsp), %rsi
movq %r13, %rdx
callq 0x1b13a
leaq 0x930(%rsp), %rdi
movq %r15, %rsi
callq 0x1f562
movq %r15, %rdi
callq 0x1b19e
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0xe36e
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x6400
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0xd3be
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x6400
jmp 0xd3be
movzbl 0x3(%r14), %eax
cmpl $0x20, %eax
je 0xe3a6
cmpl $0x9, %eax
jne 0xe0d2
leaq 0x4(%r14), %rdi
leaq 0x2e297(%rip), %rsi     # 0x3c648
callq 0x6190
addq %rax, %r14
addq $0x4, %r14
movq %r14, %rdi
leaq 0x2e88f(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r14), %rsi
movq $0x0, 0x90(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1ae28
cvtsd2ss 0x90(%rsp), %xmm0
movss %xmm0, 0x698(%rsp)
jmp 0xd3be
movzbl 0x5(%r14), %eax
cmpl $0x20, %eax
je 0xe411
cmpl $0x9, %eax
jne 0xe0f5
leaq 0x6(%r14), %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
addq $0x6, %r14
movq %r14, %rdi
leaq 0x2e828(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r14), %rsi
movq $0x0, 0x90(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1ae28
cvtsd2ss 0x90(%rsp), %xmm0
movss %xmm0, 0x69c(%rsp)
jmp 0xd3be
movzbl 0x6(%r14), %eax
cmpl $0x20, %eax
je 0xe478
cmpl $0x9, %eax
jne 0xe111
leaq 0x7(%r14), %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
addq $0x7, %r14
movq %r14, %rdi
leaq 0x2e7c1(%rip), %rsi     # 0x3cc56
callq 0x6060
leaq (%rax,%r14), %rsi
movq $0x0, 0x90(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1ae28
cvtsd2ss 0x90(%rsp), %xmm0
movss %xmm0, 0x6a0(%rsp)
jmp 0xd3be
movzbl 0x6(%r14), %eax
cmpl $0x20, %eax
je 0xe4df
cmpl $0x9, %eax
jne 0xe12d
addq $0x7, %r14
leaq 0x288(%rsp), %rdi
leaq 0x388(%rsp), %rsi
jmp 0xe5ca
movzbl 0x6(%r14), %eax
cmpl $0x20, %eax
je 0xe50b
cmpl $0x9, %eax
jne 0xe149
addq $0x7, %r14
leaq 0x2a8(%rsp), %rdi
leaq 0x3e8(%rsp), %rsi
jmp 0xe5ca
movzbl 0x6(%r14), %eax
cmpl $0x20, %eax
je 0xe537
cmpl $0x9, %eax
jne 0xe165
addq $0x7, %r14
leaq 0x2c8(%rsp), %rdi
leaq 0x448(%rsp), %rsi
jmp 0xe5ca
movzbl 0x6(%r14), %eax
cmpl $0x20, %eax
je 0xe560
cmpl $0x9, %eax
jne 0xe181
addq $0x7, %r14
leaq 0x2e8(%rsp), %rdi
leaq 0x4a8(%rsp), %rsi
jmp 0xe5ca
movzbl 0x8(%r14), %eax
cmpl $0x20, %eax
je 0xe59d
cmpl $0x9, %eax
je 0xe59d
jmp 0xe19d
movzbl 0x8(%r14), %eax
cmpl $0x20, %eax
je 0xe59d
cmpl $0x9, %eax
jne 0xe1b9
addq $0x9, %r14
jmp 0xe5ba
movzbl 0x4(%r14), %eax
cmpl $0x20, %eax
je 0xe5b6
cmpl $0x9, %eax
jne 0xe1d5
addq $0x5, %r14
leaq 0x308(%rsp), %rdi
leaq 0x508(%rsp), %rsi
movq %r14, %rdx
callq 0xc636
jmp 0xd3be
movzbl 0x5(%r14), %eax
cmpl $0x20, %eax
je 0xe5ea
cmpl $0x9, %eax
jne 0xe1f1
addq $0x6, %r14
leaq 0x348(%rsp), %r13
movq %r13, %rdi
movq %r14, %rsi
callq 0x64e0
movq %r13, %rdi
leaq 0x5c8(%rsp), %rsi
jmp 0xe5ca
movzbl 0x4(%r14), %eax
cmpl $0x20, %eax
je 0xe621
cmpl $0x9, %eax
jne 0xe20d
addq $0x5, %r14
leaq 0x328(%rsp), %rdi
leaq 0x568(%rsp), %rsi
jmp 0xe5ca
movzbl 0x4(%r14), %eax
cmpl $0x20, %eax
je 0xe64a
cmpl $0x9, %eax
jne 0xe229
addq $0x5, %r14
leaq 0x368(%rsp), %rdi
leaq 0x628(%rsp), %rsi
jmp 0xe5ca
movzbl 0x6(%r14), %eax
cmpl $0x20, %eax
je 0xe676
cmpl $0x9, %eax
jne 0xe245
addq $0x7, %r14
leaq 0x6a8(%rsp), %rdi
leaq 0x748(%rsp), %rsi
jmp 0xe5ca
movzbl 0x6(%r14), %eax
cmpl $0x20, %eax
je 0xe6a2
cmpl $0x9, %eax
jne 0xe261
addq $0x7, %r14
leaq 0x6c8(%rsp), %rdi
leaq 0x7a8(%rsp), %rsi
jmp 0xe5ca
movzbl 0x6(%r14), %eax
cmpl $0x20, %eax
je 0xe6ce
cmpl $0x9, %eax
jne 0xe27d
addq $0x7, %r14
leaq 0x6e8(%rsp), %rdi
leaq 0x808(%rsp), %rsi
jmp 0xe5ca
movzbl 0x6(%r14), %eax
cmpl $0x20, %eax
je 0xe6fa
cmpl $0x9, %eax
jne 0xe299
addq $0x7, %r14
leaq 0x708(%rsp), %rdi
leaq 0x868(%rsp), %rsi
jmp 0xe5ca
movzbl 0x4(%r14), %eax
cmpl $0x20, %eax
je 0xe726
cmpl $0x9, %eax
jne 0xe2b5
addq $0x5, %r14
leaq 0x728(%rsp), %rdi
leaq 0x8c8(%rsp), %rsi
jmp 0xe5ca
movq 0x220(%rsp), %rdx
testq %rdx, %rdx
je 0xe7df
movq 0x18(%rsp), %rax
movq (%rax), %rcx
movq %rcx, 0x10(%rsp)
movq 0x8(%rax), %r13
leaq 0xa0(%rsp), %rax
movq %rax, 0x90(%rsp)
movq 0x218(%rsp), %rsi
addq %rsi, %rdx
movq %r15, %rdi
callq 0x1cfe4
subq 0x10(%rsp), %r13
shrq $0x3, %r13
imull $0x1fdcd759, %r13d, %eax # imm = 0x1FDCD759
movl %eax, 0xb0(%rsp)
movq 0x60(%rsp), %rdi
movq %r15, %rsi
callq 0x1d45c
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0xe7cd
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x6400
movq 0x18(%rsp), %rdi
leaq 0x218(%rsp), %rsi
callq 0x1b10a
leaq 0x218(%rsp), %rdi
callq 0xeae1
movq %r15, %rdi
callq 0x62a0
addq $0x7, %r14
movq %r14, %rdi
callq 0x61a0
leaq 0xa0(%rsp), %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x6470
leaq 0x40(%rsp), %r14
movq %r14, %rdi
leaq 0xa8(%rsp), %rsi
callq 0x6620
leaq 0x218(%rsp), %rdi
movq %r14, %rsi
callq 0x64a0
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0xe854
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x6400
movq %r15, %rdi
movq 0x40702(%rip), %rsi     # 0x4ef60
callq 0x62e0
leaq 0x110(%rsp), %rdi
callq 0x6100
jmp 0xd3ae
movq 0x18(%rsp), %rax
movq (%rax), %r14
movq 0x8(%rax), %rbx
leaq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
movq %rax, (%rdi)
movq 0x218(%rsp), %rsi
movq 0x220(%rsp), %rdx
addq %rsi, %rdx
callq 0x1cfe4
subq %r14, %rbx
shrq $0x3, %rbx
imull $0x1fdcd759, %ebx, %eax # imm = 0x1FDCD759
leaq 0x90(%rsp), %rsi
movl %eax, 0x20(%rsi)
movq 0x60(%rsp), %rdi
callq 0x1d45c
movq 0x88(%rsp), %r14
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0xe8fb
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x6400
leaq 0x218(%rsp), %rsi
movq 0x18(%rsp), %rdi
callq 0x1b10a
testq %r14, %r14
je 0xe95a
leaq 0x978(%rsp), %rsi
leaq 0x90(%rsp), %rdi
callq 0x6620
leaq 0x90(%rsp), %rbx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x64a0
movq (%rbx), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0xe95a
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x6400
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xe976
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x6400
movq 0x405e3(%rip), %rsi     # 0x4ef60
leaq 0x960(%rsp), %rdi
callq 0x62e0
leaq 0x9e0(%rsp), %rdi
callq 0x6100
leaq 0x218(%rsp), %rdi
callq 0x1b1d4
addq $0xae8, %rsp            # imm = 0xAE8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2dcd8(%rip), %rdi     # 0x3c695
leaq 0x2dcd7(%rip), %rsi     # 0x3c69b
leaq 0x2dcea(%rip), %rcx     # 0x3c6b5
movl $0x694, %edx            # imm = 0x694
callq 0x6250
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0x1b19e
jmp 0xe9ea
movq %rax, %rbx
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0xea0b
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x6400
jmp 0xea0b
movq %rax, %rbx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0xea8f
movq 0x50(%rsp), %rsi
jmp 0xea77
jmp 0xea8c
jmp 0xea57
jmp 0xea8c
jmp 0xea29
movq %rax, %rbx
movq 0x4052d(%rip), %rsi     # 0x4ef60
leaq 0x90(%rsp), %rdi
callq 0x62e0
leaq 0x110(%rsp), %rdi
callq 0x6100
jmp 0xea8f
jmp 0xea8c
jmp 0xea8c
jmp 0xea8c
jmp 0xea8c
movq %rax, %rbx
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0xea8f
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x6400
jmp 0xea8f
jmp 0xea8c
jmp 0xea85
movq %rax, %rbx
jmp 0xeacc
jmp 0xea8c
movq %rax, %rbx
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xeaab
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x6400
movq 0x404ae(%rip), %rsi     # 0x4ef60
leaq 0x960(%rsp), %rdi
callq 0x62e0
leaq 0x9e0(%rsp), %rdi
callq 0x6100
leaq 0x218(%rsp), %rdi
callq 0x1b1d4
movq %rbx, %rdi
callq 0x66e0