// File: /workspace/github_cpp_makefile_star2_O3/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 $0xaf8, %rsp            # imm = 0xAF8
movq %rcx, 0x78(%rsp)
movq %rdx, %r12
movq %rsi, 0x20(%rsp)
movq %rdi, 0x70(%rsp)
leaq 0x238(%rsp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x2a8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x2c8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x2e8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x308(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x328(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x348(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x368(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x388(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x3e8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x448(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x4a8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x508(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x568(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x5c8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x628(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x688(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x6c8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x6e8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x708(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x728(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x748(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x7a8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x808(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x868(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x8c8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x928(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x948(%rsp), %rcx
movl $0x0, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq 0x228(%rsp), %rdi
callq 0xe806
leaq 0x970(%rsp), %rdi
callq 0x62a0
leaq 0x38(%rsp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x28(%rsp), %rbp
leaq 0x2f6e3(%rip), %r13     # 0x3c7e8
leaq 0xa0(%rsp), %r15
xorl %ebx, %ebx
movl $0x0, 0x18(%rsp)
movl $0x0, 0x14(%rsp)
incq %rbx
movq %r12, %rdi
callq 0x6140
cmpl $-0x1, %eax
je 0xe594
movq %r12, %rdi
movq %rbp, %rsi
callq 0xebdc
cmpq $0x0, 0x30(%rsp)
je 0xd11f
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 0xa0(%rsp), %rdi
leaq 0xb0(%rsp), %rax
cmpq %rax, %rdi
je 0xd19e
movq 0xb0(%rsp), %rsi
incq %rsi
callq 0x6400
movq 0x30(%rsp), %rax
testq %rax, %rax
je 0xd11f
movq 0x28(%rsp), %rcx
cmpb $0xa, -0x1(%rcx,%rax)
jne 0xd1d2
decq %rax
movq %rax, 0x30(%rsp)
movb $0x0, (%rcx,%rax)
movq 0x30(%rsp), %rax
testq %rax, %rax
je 0xd11f
movq 0x28(%rsp), %r14
cmpb $0xd, -0x1(%r14,%rax)
jne 0xd216
decq %rax
movq %rax, 0x30(%rsp)
movb $0x0, (%r14,%rax)
cmpq $0x0, 0x30(%rsp)
je 0xd11f
movq 0x28(%rsp), %r14
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
testq %r14, %r14
je 0xe6d2
addq %rax, %r14
jmp 0xd227
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %r14, %rax
movq %rax, %r14
movq %r14, (%rsp)
movzbl (%r14), %r14d
testl %r14d, %r14d
je 0xd11f
cmpl $0x23, %r14d
je 0xd11f
movl $0x6, %edx
movq (%rsp), %rdi
leaq 0x2f66f(%rip), %rsi     # 0x3c8c1
callq 0x61c0
testl %eax, %eax
je 0xd2c2
cmpl $0x54, %r14d
je 0xd368
cmpl $0x4e, %r14d
je 0xd2e1
cmpl $0x4b, %r14d
jne 0xd936
movq (%rsp), %rax
movzbl 0x1(%rax), %eax
xorl %ecx, %ecx
cmpl $0x64, %eax
jle 0xd483
cmpl $0x65, %eax
je 0xd60f
cmpl $0x73, %eax
je 0xd71c
cmpl $0x74, %eax
jne 0xd938
movq (%rsp), %rax
movzbl 0x2(%rax), %eax
cmpl $0x9, %eax
je 0xd38a
cmpl $0x20, %eax
je 0xd38a
jmp 0xd936
movq (%rsp), %rax
movzbl 0x6(%rax), %eax
cmpl $0x20, %eax
je 0xe45a
cmpl $0x9, %eax
je 0xe45a
jmp 0xd25b
movq (%rsp), %rax
movzbl 0x1(%rax), %eax
cmpl $0x73, %eax
je 0xd5a2
cmpl $0x69, %eax
jne 0xd936
movq (%rsp), %rax
movzbl 0x2(%rax), %eax
cmpl $0x20, %eax
je 0xd311
cmpl $0x9, %eax
jne 0xd936
movq (%rsp), %r14
addq $0x2, %r14
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2faac(%rip), %rsi     # 0x3cddd
callq 0x6060
leaq (%rax,%r14), %rsi
movq $0x0, 0xa0(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1a505
cvtsd2ss 0xa0(%rsp), %xmm0
movss %xmm0, 0x288(%rsp)
jmp 0xd11f
movb $0x1, %cl
movq (%rsp), %rax
cmpb $0x66, 0x1(%rax)
jne 0xd938
movzbl 0x2(%rax), %eax
cmpl $0x20, %eax
je 0xd38a
cmpl $0x9, %eax
jne 0xd938
movq (%rsp), %r14
leaq 0x2(%r14), %rdi
movq %r13, %rsi
callq 0x6190
leaq (%r14,%rax), %rdi
addq $0x2, %rdi
movq %rdi, %r14
leaq 0x2fa31(%rip), %rsi     # 0x3cddd
callq 0x6060
movq %r14, %rdi
addq %rax, %r14
xorl %eax, %eax
movq %rax, 0xa0(%rsp)
movq %r14, %rsi
movq %r15, %rdx
callq 0x1a505
movsd 0xa0(%rsp), %xmm0
movaps %xmm0, (%rsp)
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f9ec(%rip), %rsi     # 0x3cddd
callq 0x6060
leaq (%rax,%r14), %rcx
xorl %eax, %eax
movq %rax, 0xa0(%rsp)
movq %r14, %rdi
movq %rcx, %r14
movq %rcx, %rsi
movq %r15, %rdx
callq 0x1a505
movaps (%rsp), %xmm0
movhps 0xa0(%rsp), %xmm0       # xmm0 = xmm0[0,1],mem[0,1]
movaps %xmm0, (%rsp)
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f9a0(%rip), %rsi     # 0x3cddd
callq 0x6060
leaq (%rax,%r14), %rsi
xorl %eax, %eax
movq %rax, 0xa0(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1a505
xorps %xmm0, %xmm0
cvtsd2ss 0xa0(%rsp), %xmm0
cvtpd2ps (%rsp), %xmm1
movlpd %xmm1, 0x26c(%rsp)
movss %xmm0, 0x274(%rsp)
jmp 0xd11f
cmpl $0x61, %eax
je 0xd829
cmpl $0x64, %eax
jne 0xd938
movq (%rsp), %rax
movzbl 0x2(%rax), %eax
cmpl $0x20, %eax
je 0xd4ab
cmpl $0x9, %eax
jne 0xd936
movq (%rsp), %r14
addq $0x2, %r14
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f912(%rip), %rsi     # 0x3cddd
callq 0x6060
leaq (%rax,%r14), %rcx
xorl %eax, %eax
movq %rax, 0xa0(%rsp)
movq %r14, %rdi
movq %rcx, %r14
movq %rcx, %rsi
movq %r15, %rdx
callq 0x1a505
movsd 0xa0(%rsp), %xmm0
movaps %xmm0, (%rsp)
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f8c9(%rip), %rsi     # 0x3cddd
callq 0x6060
movq %r14, %rdi
addq %rax, %r14
xorl %eax, %eax
movq %rax, 0xa0(%rsp)
movq %r14, %rsi
movq %r15, %rdx
callq 0x1a505
movaps (%rsp), %xmm0
movhps 0xa0(%rsp), %xmm0       # xmm0 = xmm0[0,1],mem[0,1]
movaps %xmm0, (%rsp)
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f881(%rip), %rsi     # 0x3cddd
callq 0x6060
leaq (%rax,%r14), %rsi
xorl %eax, %eax
movq %rax, 0xa0(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1a505
xorps %xmm0, %xmm0
cvtsd2ss 0xa0(%rsp), %xmm0
cvtpd2ps (%rsp), %xmm1
movlpd %xmm1, 0x254(%rsp)
movss %xmm0, 0x25c(%rsp)
jmp 0xd11f
movq (%rsp), %rax
movzbl 0x2(%rax), %eax
cmpl $0x20, %eax
je 0xd5b8
cmpl $0x9, %eax
jne 0xd936
movq (%rsp), %r14
addq $0x2, %r14
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f805(%rip), %rsi     # 0x3cddd
callq 0x6060
leaq (%rax,%r14), %rsi
movq $0x0, 0xa0(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1a505
cvtsd2ss 0xa0(%rsp), %xmm0
movss %xmm0, 0x284(%rsp)
jmp 0xd11f
movq (%rsp), %rax
movzbl 0x2(%rax), %eax
cmpl $0x20, %eax
je 0xd625
cmpl $0x9, %eax
jne 0xd936
movq (%rsp), %r14
addq $0x2, %r14
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f798(%rip), %rsi     # 0x3cddd
callq 0x6060
leaq (%rax,%r14), %rcx
xorl %eax, %eax
movq %rax, 0xa0(%rsp)
movq %r14, %rdi
movq %rcx, %r14
movq %rcx, %rsi
movq %r15, %rdx
callq 0x1a505
movsd 0xa0(%rsp), %xmm0
movaps %xmm0, (%rsp)
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f74f(%rip), %rsi     # 0x3cddd
callq 0x6060
movq %r14, %rdi
addq %rax, %r14
xorl %eax, %eax
movq %rax, 0xa0(%rsp)
movq %r14, %rsi
movq %r15, %rdx
callq 0x1a505
movaps (%rsp), %xmm0
movhps 0xa0(%rsp), %xmm0       # xmm0 = xmm0[0,1],mem[0,1]
movaps %xmm0, (%rsp)
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f707(%rip), %rsi     # 0x3cddd
callq 0x6060
leaq (%rax,%r14), %rsi
xorl %eax, %eax
movq %rax, 0xa0(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1a505
xorps %xmm0, %xmm0
cvtsd2ss 0xa0(%rsp), %xmm0
cvtpd2ps (%rsp), %xmm1
movlpd %xmm1, 0x278(%rsp)
movss %xmm0, 0x280(%rsp)
jmp 0xd11f
movq (%rsp), %rax
movzbl 0x2(%rax), %eax
cmpl $0x20, %eax
je 0xd732
cmpl $0x9, %eax
jne 0xd936
movq (%rsp), %r14
addq $0x2, %r14
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f68b(%rip), %rsi     # 0x3cddd
callq 0x6060
leaq (%rax,%r14), %rcx
xorl %eax, %eax
movq %rax, 0xa0(%rsp)
movq %r14, %rdi
movq %rcx, %r14
movq %rcx, %rsi
movq %r15, %rdx
callq 0x1a505
movsd 0xa0(%rsp), %xmm0
movaps %xmm0, (%rsp)
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f642(%rip), %rsi     # 0x3cddd
callq 0x6060
movq %r14, %rdi
addq %rax, %r14
xorl %eax, %eax
movq %rax, 0xa0(%rsp)
movq %r14, %rsi
movq %r15, %rdx
callq 0x1a505
movaps (%rsp), %xmm0
movhps 0xa0(%rsp), %xmm0       # xmm0 = xmm0[0,1],mem[0,1]
movaps %xmm0, (%rsp)
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f5fa(%rip), %rsi     # 0x3cddd
callq 0x6060
leaq (%rax,%r14), %rsi
xorl %eax, %eax
movq %rax, 0xa0(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1a505
xorps %xmm0, %xmm0
cvtsd2ss 0xa0(%rsp), %xmm0
cvtpd2ps (%rsp), %xmm1
movlpd %xmm1, 0x260(%rsp)
movss %xmm0, 0x268(%rsp)
jmp 0xd11f
movq (%rsp), %rax
movzbl 0x2(%rax), %eax
cmpl $0x20, %eax
je 0xd83f
cmpl $0x9, %eax
jne 0xd936
movq (%rsp), %r14
addq $0x2, %r14
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f57e(%rip), %rsi     # 0x3cddd
callq 0x6060
leaq (%rax,%r14), %rcx
xorl %eax, %eax
movq %rax, 0xa0(%rsp)
movq %r14, %rdi
movq %rcx, %r14
movq %rcx, %rsi
movq %r15, %rdx
callq 0x1a505
movsd 0xa0(%rsp), %xmm0
movaps %xmm0, (%rsp)
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f535(%rip), %rsi     # 0x3cddd
callq 0x6060
movq %r14, %rdi
addq %rax, %r14
xorl %eax, %eax
movq %rax, 0xa0(%rsp)
movq %r14, %rsi
movq %r15, %rdx
callq 0x1a505
movaps (%rsp), %xmm0
movhps 0xa0(%rsp), %xmm0       # xmm0 = xmm0[0,1],mem[0,1]
movaps %xmm0, (%rsp)
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f4ed(%rip), %rsi     # 0x3cddd
callq 0x6060
leaq (%rax,%r14), %rsi
xorl %eax, %eax
movq %rax, 0xa0(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1a505
xorps %xmm0, %xmm0
cvtsd2ss 0xa0(%rsp), %xmm0
cvtpd2ps (%rsp), %xmm1
movlpd %xmm1, 0x248(%rsp)
movss %xmm0, 0x250(%rsp)
jmp 0xd11f
xorl %ecx, %ecx
movl %ecx, 0x4c(%rsp)
movl $0x5, %edx
movq (%rsp), %rdi
leaq 0x2ef7c(%rip), %rsi     # 0x3c8c8
callq 0x61c0
testl %eax, %eax
je 0xdbe0
cmpl $0x64, %r14d
jne 0xda6b
movq (%rsp), %rax
movzbl 0x1(%rax), %eax
cmpl $0x20, %eax
je 0xd979
cmpl $0x9, %eax
jne 0xda6b
movq (%rsp), %r14
incq %r14
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f445(%rip), %rsi     # 0x3cddd
callq 0x6060
leaq (%rax,%r14), %rsi
movq $0x0, 0xa0(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1a505
cvtsd2ss 0xa0(%rsp), %xmm0
movss %xmm0, 0x28c(%rsp)
movb $0x1, %al
movl %eax, 0x14(%rsp)
testb $0x1, 0x18(%rsp)
movl $0x0, 0x18(%rsp)
je 0xd11f
movl $0x2a, %edx
leaq 0x980(%rsp), %rdi
leaq 0x2eed7(%rip), %rsi     # 0x3c8ce
callq 0x6470
movq 0x228(%rsp), %rsi
movq 0x230(%rsp), %rdx
leaq 0x980(%rsp), %rdi
callq 0x6470
movq %rax, %r14
movl $0x2b, %edx
movq %rax, %rdi
leaq 0x2eece(%rip), %rsi     # 0x3c8f9
callq 0x6470
movq %r14, %rdi
movq %rbx, %rsi
callq 0x6270
movq %rax, %r14
movl $0xa, %edx
movq %rax, %rdi
leaq 0x2eed8(%rip), %rsi     # 0x3c925
callq 0x6470
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x63d0
jmp 0xdb28
cmpb $0x0, 0x4c(%rsp)
je 0xdb4c
movq (%rsp), %rax
cmpb $0x72, 0x1(%rax)
jne 0xdb4c
movq (%rsp), %rax
movzbl 0x2(%rax), %eax
cmpl $0x20, %eax
je 0xda9a
cmpl $0x9, %eax
jne 0xdb4c
testb $0x1, 0x14(%rsp)
je 0xe3f1
movl $0x2a, %edx
leaq 0x980(%rsp), %rdi
leaq 0x2ee15(%rip), %rsi     # 0x3c8ce
callq 0x6470
movq 0x228(%rsp), %rsi
movq 0x230(%rsp), %rdx
leaq 0x980(%rsp), %rdi
callq 0x6470
movq %rax, %r14
movl $0x2b, %edx
movq %rax, %rdi
leaq 0x2ee0c(%rip), %rsi     # 0x3c8f9
callq 0x6470
movq %r14, %rdi
movq %rbx, %rsi
callq 0x6270
movq %rax, %r14
movl $0xa, %edx
movq %rax, %rdi
leaq 0x2ee16(%rip), %rsi     # 0x3c925
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, 0x18(%rsp)
movq %rax, %rdi
callq 0x6280
movb $0x1, %al
movl %eax, 0x14(%rsp)
jmp 0xd11f
cmpl $0x50, %r14d
movq (%rsp), %r14
jne 0xddd0
movzbl 0x1(%r14), %eax
cmpl $0x71, %eax
jg 0xdc1f
cmpl $0x63, %eax
je 0xdc97
cmpl $0x6d, %eax
jne 0xdd5f
movzbl 0x2(%r14), %eax
cmpl $0x20, %eax
je 0xdb8d
cmpl $0x9, %eax
jne 0xdd5f
addq $0x2, %r14
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f234(%rip), %rsi     # 0x3cddd
callq 0x6060
leaq (%rax,%r14), %rsi
movq $0x0, 0xa0(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1a505
cvtsd2ss 0xa0(%rsp), %xmm0
movss %xmm0, 0x69c(%rsp)
jmp 0xd11f
movq (%rsp), %rax
movzbl 0x5(%rax), %eax
cmpl $0x20, %eax
je 0xdbf6
cmpl $0x9, %eax
jne 0xd959
movq (%rsp), %r14
leaq 0x6(%r14), %rdi
movq %r13, %rsi
callq 0x6190
leaq (%r14,%rax), %rdi
addq $0x6, %rdi
callq 0x65e0
movl %eax, 0x290(%rsp)
jmp 0xd11f
cmpl $0x73, %eax
je 0xdcfd
cmpl $0x72, %eax
jne 0xdd5f
movzbl 0x2(%r14), %eax
cmpl $0x20, %eax
je 0xdc44
cmpl $0x9, %eax
jne 0xdd5f
addq $0x2, %r14
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f17d(%rip), %rsi     # 0x3cddd
callq 0x6060
leaq (%rax,%r14), %rsi
movq $0x0, 0xa0(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1a505
cvtsd2ss 0xa0(%rsp), %xmm0
movss %xmm0, 0x698(%rsp)
jmp 0xd11f
movzbl 0x2(%r14), %eax
cmpl $0x20, %eax
je 0xdcaa
cmpl $0x9, %eax
jne 0xdd5f
addq $0x2, %r14
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f117(%rip), %rsi     # 0x3cddd
callq 0x6060
leaq (%rax,%r14), %rsi
movq $0x0, 0xa0(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1a505
cvtsd2ss 0xa0(%rsp), %xmm0
movss %xmm0, 0x6a4(%rsp)
jmp 0xd11f
movzbl 0x2(%r14), %eax
cmpl $0x20, %eax
je 0xdd0c
cmpl $0x9, %eax
jne 0xdd5f
addq $0x2, %r14
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2f0b5(%rip), %rsi     # 0x3cddd
callq 0x6060
leaq (%rax,%r14), %rsi
movq $0x0, 0xa0(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1a505
cvtsd2ss 0xa0(%rsp), %xmm0
movss %xmm0, 0x6a0(%rsp)
jmp 0xd11f
cmpb $0x63, 0x1(%r14)
jne 0xddd0
cmpb $0x72, 0x2(%r14)
jne 0xddd0
movzbl 0x3(%r14), %eax
cmpl $0x20, %eax
je 0xdd7c
cmpl $0x9, %eax
jne 0xddd0
leaq 0x4(%r14), %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
addq $0x4, %r14
movq %r14, %rdi
leaq 0x2f044(%rip), %rsi     # 0x3cddd
callq 0x6060
leaq (%rax,%r14), %rsi
movq $0x0, 0xa0(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1a505
cvtsd2ss 0xa0(%rsp), %xmm0
movss %xmm0, 0x6a8(%rsp)
jmp 0xd11f
movl $0x5, %edx
movq %r14, %rdi
leaq 0x2eb51(%rip), %rsi     # 0x3c930
callq 0x61c0
testl %eax, %eax
je 0xdfca
movl $0x6, %edx
movq %r14, %rdi
leaq 0x2eb3b(%rip), %rsi     # 0x3c936
callq 0x61c0
testl %eax, %eax
je 0xe031
movl $0x6, %edx
movq %r14, %rdi
leaq 0x2eb26(%rip), %rsi     # 0x3c93d
callq 0x61c0
testl %eax, %eax
je 0xe098
movl $0x6, %edx
movq %r14, %rdi
leaq 0x2eb11(%rip), %rsi     # 0x3c944
callq 0x61c0
testl %eax, %eax
je 0xe0c4
movl $0x6, %edx
movq %r14, %rdi
leaq 0x2eafc(%rip), %rsi     # 0x3c94b
callq 0x61c0
testl %eax, %eax
je 0xe0f0
movl $0x6, %edx
movq %r14, %rdi
leaq 0x2eae7(%rip), %rsi     # 0x3c952
callq 0x61c0
testl %eax, %eax
je 0xe119
movl $0x8, %edx
movq %r14, %rdi
leaq 0x2ead2(%rip), %rsi     # 0x3c959
callq 0x61c0
testl %eax, %eax
je 0xe142
movl $0x8, %edx
movq %r14, %rdi
leaq 0x2eabf(%rip), %rsi     # 0x3c962
callq 0x61c0
testl %eax, %eax
je 0xe156
movl $0x4, %edx
movq %r14, %rdi
leaq 0x2ea9e(%rip), %rsi     # 0x3c95d
callq 0x61c0
testl %eax, %eax
je 0xe16f
movl $0x5, %edx
movq %r14, %rdi
leaq 0x2ea90(%rip), %rsi     # 0x3c96b
callq 0x61c0
testl %eax, %eax
je 0xe1a3
movl $0x4, %edx
movq %r14, %rdi
leaq 0x2ea7a(%rip), %rsi     # 0x3c971
callq 0x61c0
testl %eax, %eax
je 0xe1dc
movl $0x4, %edx
movq %r14, %rdi
leaq 0x2ea63(%rip), %rsi     # 0x3c976
callq 0x61c0
testl %eax, %eax
je 0xe205
movl $0x6, %edx
movq %r14, %rdi
leaq 0x2ea4c(%rip), %rsi     # 0x3c97b
callq 0x61c0
testl %eax, %eax
je 0xe231
movl $0x6, %edx
movq %r14, %rdi
leaq 0x2ea37(%rip), %rsi     # 0x3c982
callq 0x61c0
testl %eax, %eax
je 0xe25d
movl $0x6, %edx
movq %r14, %rdi
leaq 0x2ea22(%rip), %rsi     # 0x3c989
callq 0x61c0
testl %eax, %eax
je 0xe289
movl $0x6, %edx
movq %r14, %rdi
leaq 0x2ea0d(%rip), %rsi     # 0x3c990
callq 0x61c0
testl %eax, %eax
je 0xe2b5
movl $0x4, %edx
movq %r14, %rdi
leaq 0x2e9f8(%rip), %rsi     # 0x3c997
callq 0x61c0
testl %eax, %eax
je 0xe2e1
movq %r14, %rdi
movl $0x20, %esi
callq 0x6120
testq %rax, %rax
je 0xe30d
movq %rax, %rcx
jmp 0xe32a
movzbl 0x5(%r14), %eax
cmpl $0x20, %eax
je 0xdfdd
cmpl $0x9, %eax
jne 0xddec
leaq 0x6(%r14), %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
addq $0x6, %r14
movq %r14, %rdi
leaq 0x2ede3(%rip), %rsi     # 0x3cddd
callq 0x6060
leaq (%rax,%r14), %rsi
movq $0x0, 0xa0(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1a505
cvtsd2ss 0xa0(%rsp), %xmm0
movss %xmm0, 0x6ac(%rsp)
jmp 0xd11f
movzbl 0x6(%r14), %eax
cmpl $0x20, %eax
je 0xe044
cmpl $0x9, %eax
jne 0xde08
leaq 0x7(%r14), %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
addq $0x7, %r14
movq %r14, %rdi
leaq 0x2ed7c(%rip), %rsi     # 0x3cddd
callq 0x6060
leaq (%rax,%r14), %rsi
movq $0x0, 0xa0(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1a505
cvtsd2ss 0xa0(%rsp), %xmm0
movss %xmm0, 0x6b0(%rsp)
jmp 0xd11f
movzbl 0x6(%r14), %eax
cmpl $0x20, %eax
je 0xe0ab
cmpl $0x9, %eax
jne 0xde24
addq $0x7, %r14
leaq 0x298(%rsp), %rdi
leaq 0x398(%rsp), %rsi
jmp 0xe196
movzbl 0x6(%r14), %eax
cmpl $0x20, %eax
je 0xe0d7
cmpl $0x9, %eax
jne 0xde40
addq $0x7, %r14
leaq 0x2b8(%rsp), %rdi
leaq 0x3f8(%rsp), %rsi
jmp 0xe196
movzbl 0x6(%r14), %eax
cmpl $0x20, %eax
je 0xe103
cmpl $0x9, %eax
jne 0xde5c
addq $0x7, %r14
leaq 0x2d8(%rsp), %rdi
leaq 0x458(%rsp), %rsi
jmp 0xe196
movzbl 0x6(%r14), %eax
cmpl $0x20, %eax
je 0xe12c
cmpl $0x9, %eax
jne 0xde78
addq $0x7, %r14
leaq 0x2f8(%rsp), %rdi
leaq 0x4b8(%rsp), %rsi
jmp 0xe196
movzbl 0x8(%r14), %eax
cmpl $0x20, %eax
je 0xe169
cmpl $0x9, %eax
je 0xe169
jmp 0xde94
movzbl 0x8(%r14), %eax
cmpl $0x20, %eax
je 0xe169
cmpl $0x9, %eax
jne 0xdeb0
addq $0x9, %r14
jmp 0xe186
movzbl 0x4(%r14), %eax
cmpl $0x20, %eax
je 0xe182
cmpl $0x9, %eax
jne 0xdecc
addq $0x5, %r14
leaq 0x318(%rsp), %rdi
leaq 0x518(%rsp), %rsi
movq %r14, %rdx
callq 0xc412
jmp 0xd11f
movzbl 0x5(%r14), %eax
cmpl $0x20, %eax
je 0xe1b6
cmpl $0x9, %eax
jne 0xdee8
addq $0x6, %r14
movq %r14, %rsi
leaq 0x358(%rsp), %rdi
callq 0x64e0
leaq 0x358(%rsp), %rdi
leaq 0x5d8(%rsp), %rsi
jmp 0xe196
movzbl 0x4(%r14), %eax
cmpl $0x20, %eax
je 0xe1ef
cmpl $0x9, %eax
jne 0xdf04
addq $0x5, %r14
leaq 0x338(%rsp), %rdi
leaq 0x578(%rsp), %rsi
jmp 0xe196
movzbl 0x4(%r14), %eax
cmpl $0x20, %eax
je 0xe218
cmpl $0x9, %eax
jne 0xdf20
addq $0x5, %r14
leaq 0x378(%rsp), %rdi
leaq 0x638(%rsp), %rsi
jmp 0xe196
movzbl 0x6(%r14), %eax
cmpl $0x20, %eax
je 0xe244
cmpl $0x9, %eax
jne 0xdf3c
addq $0x7, %r14
leaq 0x6b8(%rsp), %rdi
leaq 0x758(%rsp), %rsi
jmp 0xe196
movzbl 0x6(%r14), %eax
cmpl $0x20, %eax
je 0xe270
cmpl $0x9, %eax
jne 0xdf58
addq $0x7, %r14
leaq 0x6d8(%rsp), %rdi
leaq 0x7b8(%rsp), %rsi
jmp 0xe196
movzbl 0x6(%r14), %eax
cmpl $0x20, %eax
je 0xe29c
cmpl $0x9, %eax
jne 0xdf74
addq $0x7, %r14
leaq 0x6f8(%rsp), %rdi
leaq 0x818(%rsp), %rsi
jmp 0xe196
movzbl 0x6(%r14), %eax
cmpl $0x20, %eax
je 0xe2c8
cmpl $0x9, %eax
jne 0xdf90
addq $0x7, %r14
leaq 0x718(%rsp), %rdi
leaq 0x878(%rsp), %rsi
jmp 0xe196
movzbl 0x4(%r14), %eax
cmpl $0x20, %eax
je 0xe2f4
cmpl $0x9, %eax
jne 0xdfac
addq $0x5, %r14
leaq 0x738(%rsp), %rdi
leaq 0x8d8(%rsp), %rsi
jmp 0xe196
movq %r14, %rdi
movl $0x9, %esi
callq 0x6120
testq %rax, %rax
je 0xd11f
movq %rax, %rcx
movq (%rsp), %r14
leaq 0x60(%rsp), %rax
movq %rax, 0x50(%rsp)
leaq 0x50(%rsp), %rdi
movq %r14, %rsi
movq %rcx, %r14
movq %rcx, %rdx
callq 0x1b32e
leaq 0x1(%r14), %rdi
movq %rdi, (%rsp)
leaq 0x90(%rsp), %rax
movq %rax, 0x80(%rsp)
callq 0x61a0
leaq (%r14,%rax), %rdx
incq %rdx
leaq 0x80(%rsp), %r14
movq %r14, %rdi
movq (%rsp), %rsi
callq 0x1b32e
movq %r15, %rdi
leaq 0x50(%rsp), %rsi
movq %r14, %rdx
callq 0x1a7ca
leaq 0x940(%rsp), %rdi
movq %r15, %rsi
callq 0x1ec1c
movq %r15, %rdi
callq 0x1a82e
movq 0x80(%rsp), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0xe3cc
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x6400
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0xd11f
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x6400
jmp 0xd11f
movq (%rsp), %r14
addq $0x2, %r14
movq %r14, %rdi
movq %r13, %rsi
callq 0x6190
addq %rax, %r14
movq %r14, %rdi
leaq 0x2e9cc(%rip), %rsi     # 0x3cddd
callq 0x6060
leaq (%rax,%r14), %rsi
movq $0x0, 0xa0(%rsp)
movq %r14, %rdi
movq %r15, %rdx
callq 0x1a505
cvtsd2ss 0xa0(%rsp), %xmm0
movss 0x2ddc2(%rip), %xmm1    # 0x3c204
subss %xmm0, %xmm1
movss %xmm1, 0x28c(%rsp)
movb $0x1, %al
movl %eax, 0x18(%rsp)
jmp 0xd117
movq 0x230(%rsp), %rdx
testq %rdx, %rdx
je 0xe4fa
movq 0x20(%rsp), %rax
movq (%rax), %rcx
movq %rcx, 0x18(%rsp)
movq 0x8(%rax), %r14
leaq 0xb0(%rsp), %rax
movq %rax, 0xa0(%rsp)
movq 0x228(%rsp), %rsi
addq %rsi, %rdx
movq %r15, %rdi
callq 0x1c6de
subq 0x18(%rsp), %r14
shrq $0x3, %r14
imull $0x1fdcd759, %r14d, %eax # imm = 0x1FDCD759
movl %eax, 0xc0(%rsp)
movq 0x70(%rsp), %rdi
movq %r15, %rsi
callq 0x1cb24
movq 0xa0(%rsp), %rdi
leaq 0xb0(%rsp), %rax
cmpq %rax, %rdi
je 0xe4e8
movq 0xb0(%rsp), %rsi
incq %rsi
callq 0x6400
movq 0x20(%rsp), %rdi
leaq 0x228(%rsp), %rsi
callq 0x1a79a
leaq 0x228(%rsp), %rdi
callq 0xe806
movq %r15, %rdi
callq 0x62a0
movq (%rsp), %r14
addq $0x7, %r14
movq %r14, %rdi
callq 0x61a0
leaq 0xb0(%rsp), %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x6470
leaq 0x50(%rsp), %r14
movq %r14, %rdi
leaq 0xb8(%rsp), %rsi
callq 0x6620
leaq 0x228(%rsp), %rdi
movq %r14, %rsi
callq 0x64a0
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0xe573
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x6400
movq %r15, %rdi
movq 0x409e3(%rip), %rsi     # 0x4ef60
callq 0x62e0
leaq 0x120(%rsp), %rdi
callq 0x6100
jmp 0xd10f
movq 0x20(%rsp), %rax
movq (%rax), %r14
movq 0x8(%rax), %rbx
leaq 0xa0(%rsp), %rdi
leaq 0xb0(%rsp), %rax
movq %rax, (%rdi)
movq 0x228(%rsp), %rsi
movq 0x230(%rsp), %rdx
addq %rsi, %rdx
callq 0x1c6de
subq %r14, %rbx
shrq $0x3, %rbx
imull $0x1fdcd759, %ebx, %eax # imm = 0x1FDCD759
leaq 0xa0(%rsp), %rsi
movl %eax, 0x20(%rsi)
movq 0x70(%rsp), %rdi
callq 0x1cb24
movq 0xa0(%rsp), %rdi
leaq 0xb0(%rsp), %rax
cmpq %rax, %rdi
je 0xe612
movq 0xb0(%rsp), %rsi
incq %rsi
callq 0x6400
leaq 0x228(%rsp), %rsi
movq 0x20(%rsp), %rdi
callq 0x1a79a
cmpq $0x0, 0x78(%rsp)
je 0xe676
leaq 0x988(%rsp), %rsi
leaq 0xa0(%rsp), %rdi
callq 0x6620
leaq 0xa0(%rsp), %rbx
movq 0x78(%rsp), %rdi
movq %rbx, %rsi
callq 0x64a0
movq (%rbx), %rdi
leaq 0xb0(%rsp), %rax
cmpq %rax, %rdi
je 0xe676
movq 0xb0(%rsp), %rsi
incq %rsi
callq 0x6400
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0xe692
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6400
movq 0x408c7(%rip), %rsi     # 0x4ef60
leaq 0x970(%rsp), %rdi
callq 0x62e0
leaq 0x9f0(%rsp), %rdi
callq 0x6100
leaq 0x228(%rsp), %rdi
callq 0x1a864
addq $0xaf8, %rsp            # imm = 0xAF8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2e14b(%rip), %rdi     # 0x3c824
leaq 0x2e14a(%rip), %rsi     # 0x3c82a
leaq 0x2e15d(%rip), %rcx     # 0x3c844
movl $0x694, %edx            # imm = 0x694
callq 0x6250
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0x1a82e
jmp 0xe706
movq %rax, %rbx
movq 0x80(%rsp), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0xe730
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x6400
jmp 0xe730
movq %rax, %rbx
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0xe7b4
movq 0x60(%rsp), %rsi
jmp 0xe79c
jmp 0xe7b1
jmp 0xe77c
jmp 0xe7b1
jmp 0xe74e
movq %rax, %rbx
movq 0x40808(%rip), %rsi     # 0x4ef60
leaq 0xa0(%rsp), %rdi
callq 0x62e0
leaq 0x120(%rsp), %rdi
callq 0x6100
jmp 0xe7b4
jmp 0xe7b1
jmp 0xe7b1
jmp 0xe7b1
jmp 0xe7b1
movq %rax, %rbx
movq 0xa0(%rsp), %rdi
leaq 0xb0(%rsp), %rax
cmpq %rax, %rdi
je 0xe7b4
movq 0xb0(%rsp), %rsi
incq %rsi
callq 0x6400
jmp 0xe7b4
jmp 0xe7b1
jmp 0xe7aa
movq %rax, %rbx
jmp 0xe7f1
jmp 0xe7b1
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0xe7d0
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x6400
movq 0x40789(%rip), %rsi     # 0x4ef60
leaq 0x970(%rsp), %rdi
callq 0x62e0
leaq 0x9f0(%rsp), %rdi
callq 0x6100
leaq 0x228(%rsp), %rdi
callq 0x1a864
movq %rbx, %rdi
callq 0x66e0