// File: /workspace/github_cpp_makefile_star2_O3/lvandeve[P]lodepng/pngdetail.cpp
// Function: printICCDetails(unsigned char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void printICCDetails(const unsigned char* icc, size_t size, const std::string& indent) {
  // 128 for header, 4 for num tags
  if(size < 132) {
    std::cout << indent << "Invalid ICC: too small to contain header" << std::endl;
    return;
  }
  if(printableICCWord(icc, size, 36) != "acsp") {
    std::cout << indent << "Invalid ICC: does not contain signature \"acsp\"" << std::endl;
    return;
  }

  std::cout << indent << "profile size: " << getICCUint32(icc, size, 0) << std::endl;
  std::cout << indent << "CMM type: " << printableICCWord(icc, size, 4) << std::endl;

  uint32_t version = getICCUint32(icc, size, 8);
  uint16_t version_major = (version >> 24) & 255;
  uint16_t version_minor = (version >> 20) & 15;
  uint16_t version_bugfix = (version >> 16) & 15;
  std::cout << indent << "version: " << version_major << "." << version_minor
            << "." << version_bugfix << std::endl;

  std::cout << indent << "device class: " << printableICCWord(icc, size, 12) << std::endl;
  std::cout << indent << "input space: \"" << printableICCWord(icc, size, 16) << "\", ";
  std::cout << "output space: \"" << printableICCWord(icc, size, 20) << "\"" << std::endl;
  std::cout << indent;
  printf("date: %02d-%02d-%02dT%02d:%02d:%02d\n",
         getICCUint16(icc, size, 24), getICCUint16(icc, size, 26), getICCUint16(icc, size, 28),
         getICCUint16(icc, size, 30), getICCUint16(icc, size, 32), getICCUint16(icc, size, 34));
  std::cout << indent << "signature: " << printableICCWord(icc, size, 36) << std::endl;
  std::cout << indent << "platform: " << printableICCWord(icc, size, 40) << std::endl;
  std::cout << indent << "flags: " << getICCUint32(icc, size, 44) << std::endl;
  std::cout << indent << "device manufacturer: " << printableICCWord(icc, size, 48) << ", ";
  std::cout << "device model: " << printableICCWord(icc, size, 52) << ", ";
  std::cout << "device attributes: " << getICCUint32(icc, size, 56) << " "
            << getICCUint32(icc, size, 60) << std::endl;
  std::cout << indent << "rendering intent: " << getICCUint32(icc, size, 64) << std::endl;

  float pcsx = getICC15Fixed16(icc, size, 68);
  float pcsy = getICC15Fixed16(icc, size, 72);
  float pcsz = getICC15Fixed16(icc, size, 76);
  float pcsxyz = pcsx + pcsy + pcsz;
  std::cout << indent << "xyz illuminant: X:" << pcsx << ", Y:" << pcsy << ", Z:" << pcsz
            << ", xy:" << (pcsx / pcsxyz) << "," << (pcsy / pcsxyz) << std::endl;

  std::cout << indent << "creator: " << printableICCWord(icc, size, 80) << std::endl;

  // The md5 is present in v2.4 and above profiles, but it's always shown anyway. Those
  // bytes are normally all zero for older versions.
  std::cout << indent;
  printf("md5: %08x%08x%08x%08x\n", getICCUint32(icc, size, 84), getICCUint32(icc, size, 88),
                                    getICCUint32(icc, size, 92), getICCUint32(icc, size, 96));

  size_t numtags = getICCUint32(icc, size, 128);
  std::cout << indent << "num icc tags: " << numtags << std::endl;
  if(size < 128 + 4 + numtags * 12) {
    std::cout << indent << "Invalid ICC: too small to contain tag descriptions" << std::endl;
    return;
  }
  for(size_t i = 0; i < numtags; i++) {
    size_t pos = 132 + i * 12;
    std::cout << indent << "icc tag: \"" << printableICCWord(icc, size, pos) << "\"";
    size_t offset = getICCUint32(icc, size, pos + 4);
    size_t tagsize = getICCUint32(icc, size, pos + 8);
    std::cout << ", offset: " << offset << ", size: " << tagsize;
    if(offset + tagsize > size || tagsize < 4) {
      std::cout << std::endl << indent << "Invalid ICC: tag out of range" << std::endl;
      return;
    }
    std::string datatype = printableICCWord(icc, size, offset);
    std::cout << ", datatype: \"" << datatype << "\"";
    if(datatype == "XYZ ") {
      float x = getICC15Fixed16(icc, size, offset + 8);
      float y = getICC15Fixed16(icc, size, offset + 12);
      float z = getICC15Fixed16(icc, size, offset + 16);
      float xyz = x + y + z;
      std::cout << ", X:" << x << ", Y:" << y << ", Z:" << z;
      if(xyz) std::cout << ", xy:" << (x / xyz) << "," << (y / xyz);
    }
    if(datatype == "curv") {
      size_t lutsize = getICCUint32(icc, size, offset + 8);
      std::cout << ", lookup table size: " << lutsize;
      if(lutsize == 1 && offset + 14 <= size) {
        std::cout << " (gamma: " << (getICCUint16(icc, size, offset + 12) / 256.0) << ")";
      }
      if(lutsize == 0) std::cout << " (linear)";
    }
    if(datatype == "para") {
      unsigned type = getICCUint16(icc, size, offset + 8);
      float gamma = getICC15Fixed16(icc, size, offset + 12);
      int numparams = (type == 4) ? 7 : ((type >= 1 && type <= 3) ? (type + 1) : 0);
      std::cout << " type: " << type << ", gamma: " <<  gamma;
      if(numparams > 0) {
        std::cout << ", params: ";
        for(int j = 0; j < numparams; j++) {
          if(j > 0) std::cout << ", ";
          std::cout << getICC15Fixed16(icc, size, offset + 16 + j * 4);
        }
      }
    }
    if(datatype == "sf32") {
      std::cout << ":";
      for(size_t j = 8; j < tagsize; j += 4) {
        float v = getICC15Fixed16(icc, size, offset + j);
        std::cout << " " << v;
      }
    }
    if(datatype == "chrm") {
      size_t numchannels = getICCUint16(icc, size, offset + 8);
      std::cout << ": n:" << numchannels
                << " phosphor:" << getICCUint16(icc, size, offset + 10);
      for(size_t j = 0; j < numchannels; j++) {
        std::cout << " xy:" << getICC16Fixed16(icc, size, offset + 12 + j * 8)
                  << "," << getICC16Fixed16(icc, size, offset + 12 + j * 8 + 4);
      }
    }
    if(datatype == "text" || datatype == "mluc" || datatype == "desc") {
      // TODO: this is a bit of a simplification of the parse for now, e.g.
      // ignoring UTF-16, instead implicitely skipping non-ASCII bytes, and
      // potentially printing things multiple times in a row if multiple
      // variants are in desc or mluc.
      std::cout << ": ";
      for(size_t j = (datatype == "mluc" ? 28 : 8); j < tagsize; j++) {
        char c = icc[offset + j];
        if(c >= 32 && c < 127) std::cout << c;
      }
    }
    std::cout << std::endl;
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
movq %rdx, %r14
movq %rsi, %r12
cmpq $0x83, %rsi
ja 0x191cf
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq 0x11e55(%rip), %rdi     # 0x2afd0
callq 0x2290
movq %rax, %rbx
leaq 0xac80(%rip), %rsi      # 0x23e0a
movl $0x28, %edx
movq %rax, %rdi
callq 0x2290
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2170
movq %rdi, %rsi
leaq 0x20(%rsp), %rbx
movl $0x24, %ecx
movq %rbx, %rdi
movq %rsi, 0x10(%rsp)
movq %r12, %rdx
callq 0x1a718
leaq 0xac40(%rip), %rsi      # 0x23e33
movq %rbx, %rdi
callq 0x2090
movl %eax, %ebp
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x19210
callq 0x2210
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq 0x11db2(%rip), %rdi     # 0x2afd0
callq 0x2290
movq %rax, %rbx
testl %ebp, %ebp
je 0x1923e
leaq 0xac07(%rip), %rsi      # 0x23e38
movl $0x2e, %edx
movq %rbx, %rdi
jmp 0x1a687
leaq 0xac22(%rip), %rsi      # 0x23e67
movl $0xe, %edx
movq %rbx, %rdi
callq 0x2290
movq 0x10(%rsp), %r13
movl (%r13), %esi
bswapl %esi
movq %rbx, %rdi
callq 0x2160
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq 0x11d33(%rip), %rdi     # 0x2afd0
callq 0x2290
movq %rax, %rbx
leaq 0xabca(%rip), %rsi      # 0x23e76
movl $0xa, %edx
movq %rax, %rdi
callq 0x2290
leaq 0x20(%rsp), %r15
movl $0x4, %ecx
movq %r15, %rdi
movq %r13, %rsi
movq %r12, %rdx
callq 0x1a718
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq %rbx, %rdi
callq 0x2290
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq %r12, 0x18(%rsp)
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x19323
callq 0x2210
movq 0x10(%rsp), %rax
movzbl 0x8(%rax), %r15d
movzbl 0x9(%rax), %r12d
movl %r12d, %r13d
shrl $0x4, %r13d
andl $0xf, %r12d
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq 0x11c85(%rip), %rbx     # 0x2afd0
movq %rbx, %rdi
callq 0x2290
movq %rax, %rbp
leaq 0x9ff8(%rip), %rsi      # 0x23355
movl $0x9, %edx
movq %rax, %rdi
callq 0x2290
movq %rbp, %rdi
movq %r15, %rsi
callq 0x2160
movq %rax, %r15
leaq 0xaa7c(%rip), %rbp      # 0x23dfb
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x2290
movq %r15, %rdi
movq %r13, %rsi
callq 0x2160
movq %rax, %r15
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x2290
movq %r15, %rdi
movq %r12, %rsi
callq 0x2160
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %r15, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %rbx, %rdi
callq 0x2290
movq %rax, %rbx
leaq 0xaa86(%rip), %rsi      # 0x23e81
movl $0xe, %edx
movq %rax, %rdi
callq 0x2290
leaq 0x20(%rsp), %r15
movl $0xc, %ecx
movq %r15, %rdi
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %r13
movq %r13, %rdx
callq 0x1a718
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq %rbx, %rdi
callq 0x2290
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x19474
callq 0x2210
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq 0x11b4e(%rip), %rdi     # 0x2afd0
callq 0x2290
movq %rax, %rbx
leaq 0xa9ff(%rip), %rsi      # 0x23e90
movl $0xe, %edx
movq %rax, %rdi
callq 0x2290
leaq 0x20(%rsp), %r15
movl $0x10, %ecx
movq %r15, %rdi
movq 0x10(%rsp), %rsi
movq %r13, %rdx
callq 0x1a718
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq %rbx, %rdi
callq 0x2290
leaq 0xa9d1(%rip), %rsi      # 0x23e9f
movl $0x3, %edx
movq %rax, %rdi
callq 0x2290
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x194ef
callq 0x2210
movq 0x11ada(%rip), %rbx     # 0x2afd0
leaq 0xa9a6(%rip), %rsi      # 0x23ea3
movl $0xf, %edx
movq %rbx, %rdi
callq 0x2290
leaq 0x20(%rsp), %r15
movl $0x14, %ecx
movq %r15, %rdi
movq 0x10(%rsp), %rsi
movq %r13, %rdx
callq 0x1a718
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq %rbx, %rdi
callq 0x2290
movq %rax, %rbx
leaq 0xa960(%rip), %rsi      # 0x23e9d
movl $0x1, %edx
movq %rax, %rdi
callq 0x2290
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x19585
callq 0x2210
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq 0x11a3d(%rip), %rbx     # 0x2afd0
movq %rbx, %rdi
callq 0x2290
movq 0x10(%rsp), %r12
movzwl 0x18(%r12), %eax
movzwl 0x1a(%r12), %ecx
rolw $0x8, %ax
movzwl %ax, %esi
rolw $0x8, %cx
movzwl %cx, %edx
movzwl 0x1c(%r12), %eax
rolw $0x8, %ax
movzwl %ax, %ecx
movzwl 0x1e(%r12), %eax
rolw $0x8, %ax
movzwl %ax, %r8d
movzwl 0x20(%r12), %eax
rolw $0x8, %ax
movzwl %ax, %r9d
movzwl 0x22(%r12), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movl %eax, (%rsp)
leaq 0xa8b9(%rip), %rdi      # 0x23eb3
xorl %eax, %eax
callq 0x2060
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %rbx, %rdi
callq 0x2290
movq %rax, %rbx
leaq 0xa8be(%rip), %rsi      # 0x23ed8
movl $0xb, %edx
movq %rax, %rdi
callq 0x2290
leaq 0x20(%rsp), %r15
movl $0x24, %ecx
movq %r15, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x1a718
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq %rbx, %rdi
callq 0x2290
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x1968c
callq 0x2210
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq 0x11936(%rip), %rdi     # 0x2afd0
callq 0x2290
movq %rax, %rbx
leaq 0xa83b(%rip), %rsi      # 0x23ee4
movl $0xa, %edx
movq %rax, %rdi
callq 0x2290
leaq 0x20(%rsp), %r15
movl $0x28, %ecx
movq %r15, %rdi
movq 0x10(%rsp), %rsi
movq %r13, %rdx
callq 0x1a718
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq %rbx, %rdi
callq 0x2290
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x1971d
callq 0x2210
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq 0x118a5(%rip), %rbx     # 0x2afd0
movq %rbx, %rdi
callq 0x2290
movq %rax, %r15
leaq 0xa7b2(%rip), %rsi      # 0x23eef
movl $0x7, %edx
movq %rax, %rdi
callq 0x2290
movq 0x10(%rsp), %r12
movl 0x2c(%r12), %esi
bswapl %esi
movq %r15, %rdi
callq 0x2160
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %r15, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %rbx, %rdi
callq 0x2290
movq %rax, %rbx
leaq 0xa756(%rip), %rsi      # 0x23ef7
movl $0x15, %edx
movq %rax, %rdi
callq 0x2290
leaq 0x20(%rsp), %r15
movl $0x30, %ecx
movq %r15, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x1a718
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq %rbx, %rdi
callq 0x2290
leaq 0xa6c4(%rip), %rsi      # 0x23ea0
movl $0x2, %edx
movq %rax, %rdi
callq 0x2290
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x197fd
callq 0x2210
movq 0x117cc(%rip), %rbx     # 0x2afd0
leaq 0xa702(%rip), %rsi      # 0x23f0d
movl $0xe, %edx
movq %rbx, %rdi
callq 0x2290
leaq 0x20(%rsp), %r15
movl $0x34, %ecx
movq %r15, %rdi
movq 0x10(%rsp), %rsi
movq %r13, %rdx
callq 0x1a718
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq %rbx, %rdi
callq 0x2290
leaq 0xa658(%rip), %rsi      # 0x23ea0
movl $0x2, %edx
movq %rax, %rdi
callq 0x2290
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x19869
callq 0x2210
movq 0x11760(%rip), %r12     # 0x2afd0
leaq 0xa6a5(%rip), %rsi      # 0x23f1c
movl $0x13, %edx
movq %r12, %rdi
callq 0x2290
movq 0x10(%rsp), %rbp
movl 0x38(%rbp), %esi
bswapl %esi
movq %r12, %rdi
callq 0x2160
movq %rax, %rbx
leaq 0xaa6c(%rip), %rsi      # 0x2430c
movl $0x1, %edx
movq %rax, %rdi
callq 0x2290
movl 0x3c(%rbp), %esi
bswapl %esi
movq %rbx, %rdi
callq 0x2160
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %r12, %rdi
callq 0x2290
movq %rax, %rbx
leaq 0xa932(%rip), %rsi      # 0x2422f
movl $0x12, %edx
movq %rax, %rdi
callq 0x2290
movl 0x40(%rbp), %esi
bswapl %esi
movq %rbx, %rdi
callq 0x2160
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movl 0x44(%rbp), %eax
bswapl %eax
cvtsi2sd %eax, %xmm0
movsd 0x981e(%rip), %xmm1     # 0x23170
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm3
movss %xmm3, 0x60(%rsp)
movl 0x48(%rbp), %eax
bswapl %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm2
movss %xmm2, 0x48(%rsp)
movl 0x4c(%rbp), %eax
bswapl %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
mulsd %xmm1, %xmm0
xorps %xmm1, %xmm1
cvtsd2ss %xmm0, %xmm1
movss %xmm1, 0x68(%rsp)
movaps %xmm3, %xmm0
addss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x58(%rsp)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %r12, %rdi
callq 0x2290
movq %rax, %rbx
leaq 0xa56f(%rip), %rsi      # 0x23f30
movl $0x12, %edx
movq %rax, %rdi
callq 0x2290
xorps %xmm0, %xmm0
cvtss2sd 0x60(%rsp), %xmm0
movq %rbx, %rdi
callq 0x2330
movq %rax, %rbx
leaq 0xa55a(%rip), %rsi      # 0x23f43
movl $0x4, %edx
movq %rax, %rdi
callq 0x2290
xorps %xmm0, %xmm0
cvtss2sd 0x48(%rsp), %xmm0
movq %rbx, %rdi
callq 0x2330
movq %rax, %rbx
leaq 0xa537(%rip), %rsi      # 0x23f48
movl $0x4, %edx
movq %rax, %rdi
callq 0x2290
xorps %xmm0, %xmm0
cvtss2sd 0x68(%rsp), %xmm0
movq %rbx, %rdi
callq 0x2330
movq %rax, %rbx
leaq 0xa514(%rip), %rsi      # 0x23f4d
movl $0x5, %edx
movq %rax, %rdi
callq 0x2290
movss 0x60(%rsp), %xmm0
divss 0x58(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
movq %rbx, %rdi
callq 0x2330
movq %rax, %rbx
leaq 0xa4eb(%rip), %rsi      # 0x23f53
movl $0x1, %edx
movq %rax, %rdi
callq 0x2290
movss 0x48(%rsp), %xmm0
divss 0x58(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
movq %rbx, %rdi
callq 0x2330
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %r12, %rdi
callq 0x2290
movq %rax, %rbx
leaq 0xa485(%rip), %rsi      # 0x23f55
movl $0x9, %edx
movq %rax, %rdi
callq 0x2290
leaq 0x20(%rsp), %r15
movl $0x50, %ecx
movq %r15, %rdi
movq %rbp, %rsi
movq %r13, %rdx
callq 0x1a718
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq %rbx, %rdi
callq 0x2290
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x19b42
callq 0x2210
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq 0x11480(%rip), %rdi     # 0x2afd0
callq 0x2290
movq 0x10(%rsp), %r15
movl 0x54(%r15), %esi
movl 0x58(%r15), %edx
bswapl %esi
bswapl %edx
movl 0x5c(%r15), %ecx
bswapl %ecx
movl 0x60(%r15), %r8d
bswapl %r8d
leaq 0xa3e5(%rip), %rdi      # 0x23f5f
xorl %eax, %eax
callq 0x2060
movq %r14, %rbp
movzbl 0x80(%r15), %r14d
shll $0x18, %r14d
movzbl 0x81(%r15), %r12d
shll $0x10, %r12d
leaq (%r12,%r14), %rbx
movzbl 0x82(%r15), %eax
shll $0x8, %eax
movq %rax, 0x78(%rsp)
orq %rax, %rbx
movzbl 0x83(%r15), %r13d
orq %r13, %rbx
movq (%rbp), %rsi
movq 0x8(%rbp), %rdx
movq 0x11403(%rip), %rdi     # 0x2afd0
callq 0x2290
movq %rax, %r15
leaq 0xa39a(%rip), %rsi      # 0x23f76
movl $0xe, %edx
movq %rax, %rdi
callq 0x2290
movq %r15, %rdi
movq %rbx, %rsi
callq 0x2160
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %r15, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq (%rbx,%rbx,2), %rax
leaq 0x84(,%rax,4), %rax
cmpq 0x18(%rsp), %rax
jbe 0x19c59
movq (%rbp), %rsi
movq 0x8(%rbp), %rdx
movq 0x11390(%rip), %rdi     # 0x2afd0
callq 0x2290
movq %rax, %rbx
leaq 0xa336(%rip), %rsi      # 0x23f85
movl $0x32, %edx
jmp 0x1a684
movq %rbp, 0x90(%rsp)
testq %rbx, %rbx
je 0x1a6b3
orq %r12, %r14
movq 0x78(%rsp), %rax
orq %r13, %rax
orq %r14, %rax
movq %rax, 0x78(%rsp)
movq 0x10(%rsp), %rax
leaq 0x13(%rax), %rcx
movq %rcx, 0x88(%rsp)
addq $0xb, %rax
movq %rax, 0x98(%rsp)
xorl %eax, %eax
movq %rax, 0xb0(%rsp)
leaq (,%rax,4), %r14
leaq (%r14,%r14,2), %rbx
addq $0x84, %rbx
movq 0x90(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq 0x11303(%rip), %r12     # 0x2afd0
movq %r12, %rdi
callq 0x2290
movq %rax, %r15
movl $0xa, %edx
movq %rax, %rdi
leaq 0xa2d1(%rip), %rsi      # 0x23fb8
callq 0x2290
leaq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq %rbx, %rcx
callq 0x1a718
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %r15, %rdi
callq 0x2290
movl $0x1, %edx
movq %rax, %rdi
leaq 0xa179(%rip), %rsi      # 0x23e9d
callq 0x2290
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x19d3d
callq 0x2210
leaq (%r14,%r14,2), %rax
movq 0x10(%rsp), %rcx
movzbl 0x88(%rcx,%rax), %edx
shll $0x18, %edx
movzbl 0x89(%rcx,%rax), %edi
shll $0x10, %edi
movq %rdx, 0x60(%rsp)
movq %rdi, 0x68(%rsp)
leaq (%rdi,%rdx), %rbp
movzbl 0x8a(%rcx,%rax), %edx
shll $0x8, %edx
movq %rdx, 0x70(%rsp)
orq %rdx, %rbp
movzbl 0x8b(%rcx,%rax), %r14d
orq %r14, %rbp
movzbl 0x8c(%rcx,%rax), %edx
shll $0x18, %edx
movzbl 0x8d(%rcx,%rax), %esi
shll $0x10, %esi
movq %rdx, 0xa8(%rsp)
movq %rsi, 0xa0(%rsp)
leal (%rsi,%rdx), %r13d
movzbl 0x8e(%rcx,%rax), %edx
shll $0x8, %edx
movl %edx, 0x84(%rsp)
orl %edx, %r13d
movzbl 0x8f(%rcx,%rax), %eax
movl %eax, 0x80(%rsp)
orl %eax, %r13d
movl $0xa, %edx
movq %r12, %rdi
leaq 0xa1da(%rip), %rsi      # 0x23fc3
callq 0x2290
movq %r12, %rdi
movq %rbp, %rsi
callq 0x2160
movq %rax, %rbx
movl $0x8, %edx
movq %rax, %rdi
leaq 0xa1c3(%rip), %rsi      # 0x23fce
callq 0x2290
movq %rbx, %rdi
movq %r13, %rsi
callq 0x2160
cmpl $0x4, %r13d
movq 0x18(%rsp), %rdx
jb 0x1a630
movq %rbp, %rax
addq %r13, %rax
cmpq %rdx, %rax
ja 0x1a630
leaq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq %rbp, %rcx
callq 0x1a718
movl $0xd, %edx
movq %r12, %rdi
leaq 0xa19b(%rip), %rsi      # 0x23ff5
callq 0x2290
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %r12, %rdi
callq 0x2290
movl $0x1, %edx
movq %rax, %rdi
leaq 0xa01d(%rip), %rsi      # 0x23e9d
callq 0x2290
leaq 0x20(%rsp), %rdi
leaq 0xa172(%rip), %rsi      # 0x24003
callq 0x2090
testl %eax, %eax
jne 0x1a036
leaq 0xc(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0x58(%rsp)
movss %xmm0, 0x48(%rsp)
cmpq 0x18(%rsp), %rax
ja 0x19edc
movq 0x10(%rsp), %rax
movl 0x8(%rax,%rbp), %eax
bswapl %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
mulsd 0x929e(%rip), %xmm0     # 0x23170
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x48(%rsp)
leaq 0x10(%rbp), %rax
cmpq 0x18(%rsp), %rax
ja 0x19f0b
movq 0x10(%rsp), %rax
movl 0xc(%rax,%rbp), %eax
bswapl %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
mulsd 0x926f(%rip), %xmm0     # 0x23170
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x58(%rsp)
leaq 0x14(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0x54(%rsp)
cmpq 0x18(%rsp), %rax
ja 0x19f43
movq 0x10(%rsp), %rax
movl 0x10(%rax,%rbp), %eax
bswapl %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
mulsd 0x9237(%rip), %xmm0     # 0x23170
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x54(%rsp)
movl $0x4, %edx
movq %r12, %rdi
leaq 0xa0b6(%rip), %rsi      # 0x24008
callq 0x2290
xorps %xmm0, %xmm0
cvtss2sd 0x48(%rsp), %xmm0
movq %r12, %rdi
callq 0x2330
movq %rax, %rbx
movl $0x4, %edx
movq %rax, %rdi
leaq 0x9fc9(%rip), %rsi      # 0x23f43
callq 0x2290
xorps %xmm0, %xmm0
cvtss2sd 0x58(%rsp), %xmm0
movq %rbx, %rdi
callq 0x2330
movq %rax, %rbx
movl $0x4, %edx
movq %rax, %rdi
leaq 0x9fa6(%rip), %rsi      # 0x23f48
callq 0x2290
xorps %xmm0, %xmm0
cvtss2sd 0x54(%rsp), %xmm0
movq %rbx, %rdi
callq 0x2330
movss 0x48(%rsp), %xmm0
addss 0x58(%rsp), %xmm0
addss 0x54(%rsp), %xmm0
movss %xmm0, 0x54(%rsp)
ucomiss 0x91b9(%rip), %xmm0     # 0x23190
jne 0x19fdb
jnp 0x1a036
movl $0x5, %edx
movq %r12, %rdi
leaq 0x9f63(%rip), %rsi      # 0x23f4d
callq 0x2290
movss 0x48(%rsp), %xmm0
divss 0x54(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
movq %r12, %rdi
callq 0x2330
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x9f3a(%rip), %rsi      # 0x23f53
callq 0x2290
movss 0x58(%rsp), %xmm0
divss 0x54(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
movq %rbx, %rdi
callq 0x2330
leaq 0x20(%rsp), %rdi
leaq 0x9017(%rip), %rsi      # 0x23059
callq 0x2090
testl %eax, %eax
jne 0x1a0fa
leaq 0xc(%rbp), %rax
xorl %ebx, %ebx
cmpq 0x18(%rsp), %rax
ja 0x1a067
movq 0x10(%rsp), %rax
movl 0x8(%rax,%rbp), %ebx
bswapl %ebx
movl $0x15, %edx
movq %r12, %rdi
leaq 0x9f97(%rip), %rsi      # 0x2400d
callq 0x2290
movl %ebx, %esi
movq %r12, %rdi
callq 0x2160
cmpl $0x1, %ebx
jne 0x1a0df
leaq 0xe(%rbp), %rax
cmpq 0x18(%rsp), %rax
ja 0x1a0df
movl $0x9, %edx
movq %r12, %rdi
leaq 0x9f7f(%rip), %rsi      # 0x24023
callq 0x2290
movq 0x10(%rsp), %rax
movzwl 0xc(%rax,%rbp), %eax
rolw $0x8, %ax
movzwl %ax, %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
mulsd 0x90af(%rip), %xmm0     # 0x23178
movq %r12, %rdi
callq 0x2330
movl $0x1, %edx
leaq 0x8ff9(%rip), %rsi      # 0x230d6
jmp 0x1a0f2
testl %ebx, %ebx
jne 0x1a0fa
movl $0x9, %edx
movq %r12, %rax
leaq 0x9f3b(%rip), %rsi      # 0x2402d
movq %rax, %rdi
callq 0x2290
leaq 0x20(%rsp), %rdi
leaq 0x8f58(%rip), %rsi      # 0x2305e
callq 0x2090
movq %r14, 0x58(%rsp)
testl %eax, %eax
jne 0x1a28f
leaq 0xa(%rbp), %rax
xorl %ebx, %ebx
cmpq 0x18(%rsp), %rax
ja 0x1a136
movq 0x10(%rsp), %rax
movzwl 0x8(%rax,%rbp), %eax
rolw $0x8, %ax
movzwl %ax, %ebx
leaq 0x10(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x48(%rsp)
cmpq 0x18(%rsp), %rax
movq 0x10e81(%rip), %r14     # 0x2afd0
ja 0x1a179
movq 0x10(%rsp), %rax
movl 0xc(%rax,%rbp), %eax
bswapl %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
mulsd 0x9005(%rip), %xmm0     # 0x23170
cvtsd2ss %xmm0, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, 0x48(%rsp)
leal -0x1(%rbx), %eax
leal 0x1(%rbx), %r15d
cmpl $0x3, %eax
movl $0x0, %eax
cmovael %eax, %r15d
cmpl $0x4, %ebx
movl $0x7, %eax
cmovel %eax, %r15d
movl $0x7, %edx
movq %r14, %rdi
leaq 0x9cd2(%rip), %rsi      # 0x23e79
callq 0x2290
movl %ebx, %esi
movq %r14, %rdi
callq 0x2160
movq %rax, %rbx
movl $0x9, %edx
movq %rax, %rdi
leaq 0x9e6f(%rip), %rsi      # 0x24037
callq 0x2290
movq %rbx, %rdi
movsd 0x48(%rsp), %xmm0
callq 0x2330
testl %r15d, %r15d
je 0x1a28f
movl $0xa, %edx
movq 0x10de0(%rip), %rdi     # 0x2afd0
leaq 0x9e4a(%rip), %rsi      # 0x24041
callq 0x2290
movq 0x60(%rsp), %rax
movq 0x68(%rsp), %rcx
addq %rcx, %rax
addq 0x70(%rsp), %rax
movq 0x88(%rsp), %rcx
movq 0x58(%rsp), %rdx
leaq (%rcx,%rdx), %rbx
addq %rax, %rbx
leaq (%rdx,%rax), %r14
addq $0x14, %r14
shll $0x2, %r15d
xorl %r12d, %r12d
testq %r12, %r12
je 0x1a24e
movl $0x2, %edx
movq 0x10d8e(%rip), %rdi     # 0x2afd0
leaq 0x9c57(%rip), %rsi      # 0x23ea0
callq 0x2290
leaq (%r14,%r12), %rax
xorps %xmm0, %xmm0
cmpq 0x18(%rsp), %rax
ja 0x1a27a
movl -0x3(%rbx,%r12), %eax
bswapl %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
mulsd 0x8efe(%rip), %xmm0     # 0x23170
cvtsd2ss %xmm0, %xmm0
cvtss2sd %xmm0, %xmm0
movq 0x10d4f(%rip), %rdi     # 0x2afd0
callq 0x2330
addq $0x4, %r12
cmpq %r12, %r15
jne 0x1a231
leaq 0x20(%rsp), %rdi
leaq 0x9db1(%rip), %rsi      # 0x2404c
callq 0x2090
movq 0x10d29(%rip), %r12     # 0x2afd0
testl %eax, %eax
jne 0x1a365
movl $0x1, %edx
movq %r12, %rdi
leaq 0x9811(%rip), %rsi      # 0x23acf
callq 0x2290
cmpl $0x9, %r13d
jb 0x1a365
movq 0x60(%rsp), %rax
movq 0x68(%rsp), %rcx
addq %rcx, %rax
addq 0x70(%rsp), %rax
movq 0x58(%rsp), %rcx
leaq (%rax,%rcx), %rbx
addq 0x98(%rsp), %rbx
leaq (%rcx,%rax), %r14
addq $0xc, %r14
xorl %r15d, %r15d
leaq (%r14,%r15), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x48(%rsp)
cmpq 0x18(%rsp), %rax
ja 0x1a333
movl -0x3(%rbx,%r15), %eax
bswapl %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
mulsd 0x8e4b(%rip), %xmm0     # 0x23170
cvtsd2ss %xmm0, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, 0x48(%rsp)
movl $0x1, %edx
movq %r12, %rdi
leaq 0x9fca(%rip), %rsi      # 0x2430c
callq 0x2290
movq %r12, %rdi
movsd 0x48(%rsp), %xmm0
callq 0x2330
leaq 0x4(%r15), %rax
addq $0xc, %r15
cmpq %r13, %r15
movq %rax, %r15
jb 0x1a2fb
leaq 0x20(%rsp), %rdi
leaq 0x9ce0(%rip), %rsi      # 0x24051
callq 0x2090
testl %eax, %eax
jne 0x1a4e8
leaq 0xa(%rbp), %rax
cmpq 0x18(%rsp), %rax
jbe 0x1a38d
xorl %ebx, %ebx
jmp 0x1a39e
movq 0x10(%rsp), %rax
movzwl 0x8(%rax,%rbp), %eax
rolw $0x8, %ax
movzwl %ax, %ebx
movq 0x10c2b(%rip), %r14     # 0x2afd0
movl $0x4, %edx
movq %r14, %rdi
leaq 0x9ca2(%rip), %rsi      # 0x24056
callq 0x2290
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2160
movq %rax, %r15
movl $0xa, %edx
movq %rax, %rdi
leaq 0x9c85(%rip), %rsi      # 0x2405b
callq 0x2290
leaq 0xc(%rbp), %rax
cmpq 0x18(%rsp), %rax
jbe 0x1a3ea
xorl %esi, %esi
jmp 0x1a3fb
movq 0x10(%rsp), %rax
movzwl 0xa(%rax,%rbp), %eax
rolw $0x8, %ax
movzwl %ax, %esi
movq %r15, %rdi
callq 0x2160
testq %rbx, %rbx
je 0x1a4e8
shll $0x3, %ebx
movq 0x60(%rsp), %rax
movq 0x68(%rsp), %rcx
leaq (%rax,%rcx), %r15
addq 0x70(%rsp), %r15
addq 0x58(%rsp), %r15
movq 0x88(%rsp), %rax
leaq (%rax,%r15), %r12
xorl %r14d, %r14d
movl $0x4, %edx
movq 0x10b8e(%rip), %rdi     # 0x2afd0
leaq 0x9b05(%rip), %rsi      # 0x23f4e
callq 0x2290
leaq (%r15,%r14), %rax
addq $0x10, %rax
xorps %xmm0, %xmm0
cmpq 0x18(%rsp), %rax
ja 0x1a47f
movl -0x7(%r12,%r14), %eax
bswapl %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
mulsd 0x8cf9(%rip), %xmm0     # 0x23170
cvtsd2ss %xmm0, %xmm0
cvtss2sd %xmm0, %xmm0
movq 0x10b4a(%rip), %rdi     # 0x2afd0
callq 0x2330
movq %rax, %rbp
movl $0x1, %edx
movq %rax, %rdi
leaq 0x9ab6(%rip), %rsi      # 0x23f53
callq 0x2290
leaq (%r15,%r14), %rax
addq $0x14, %rax
xorps %xmm0, %xmm0
cmpq 0x18(%rsp), %rax
ja 0x1a4d3
movl -0x3(%r12,%r14), %eax
bswapl %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
mulsd 0x8ca5(%rip), %xmm0     # 0x23170
cvtsd2ss %xmm0, %xmm0
cvtss2sd %xmm0, %xmm0
movq %rbp, %rdi
callq 0x2330
addq $0x8, %r14
cmpq %r14, %rbx
jne 0x1a436
leaq 0x20(%rsp), %rdi
leaq 0x9b72(%rip), %rsi      # 0x24066
callq 0x2090
movq 0x10ad0(%rip), %r14     # 0x2afd0
movq 0x58(%rsp), %r15
testl %eax, %eax
je 0x1a537
leaq 0x20(%rsp), %rdi
leaq 0x9b56(%rip), %rsi      # 0x2406b
callq 0x2090
testl %eax, %eax
je 0x1a537
leaq 0x20(%rsp), %rdi
leaq 0x9b46(%rip), %rsi      # 0x24070
callq 0x2090
testl %eax, %eax
jne 0x1a5da
movl $0x2, %edx
movq %r14, %rdi
leaq 0x9fd2(%rip), %rsi      # 0x24518
callq 0x2290
leaq 0x20(%rsp), %rdi
leaq 0x9b14(%rip), %rsi      # 0x2406b
callq 0x2090
testl %eax, %eax
movl $0x8, %eax
movl $0x1c, %ecx
cmoveq %rcx, %rax
cmpq %r13, %rax
jae 0x1a5da
movq 0xa8(%rsp), %r12
addl 0xa0(%rsp), %r12d
addl 0x84(%rsp), %r12d
addl 0x80(%rsp), %r12d
subq %rax, %r12
movq 0x60(%rsp), %rcx
addq %rax, %rcx
addq 0x68(%rsp), %rcx
addq 0x70(%rsp), %rcx
addq 0x10(%rsp), %r15
addq %rcx, %r15
xorl %ebx, %ebx
movb (%r15,%rbx), %al
leal -0x20(%rax), %ecx
cmpb $0x5e, %cl
ja 0x1a5d2
movb %al, 0x47(%rsp)
movl $0x1, %edx
movq %r14, %rdi
leaq 0x47(%rsp), %rsi
callq 0x2290
incq %rbx
cmpq %rbx, %r12
jne 0x1a5b0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x1a615
callq 0x2210
movq 0xb0(%rsp), %rax
incq %rax
cmpq 0x78(%rsp), %rax
jne 0x19c9c
jmp 0x1a6b3
movq 0x10999(%rip), %rbx     # 0x2afd0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq 0x90(%rsp), %rcx
movq (%rcx), %rsi
movq 0x8(%rcx), %rdx
movq %rax, %rdi
callq 0x2290
movq %rax, %rbx
leaq 0x9958(%rip), %rsi      # 0x23fd7
movl $0x1d, %edx
movq %rax, %rdi
callq 0x2290
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1a6f9
jmp 0x1a6f9
jmp 0x1a6f9
movq %rax, %rbx
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
jmp 0x1a706
jmp 0x1a6f9
jmp 0x1a6f9
jmp 0x1a6f9
jmp 0x1a6f9
jmp 0x1a6f9
jmp 0x1a6f9
jmp 0x1a6f9
jmp 0x1a6f9
jmp 0x1a6f9
jmp 0x1a6f9
jmp 0x1a6f9
jmp 0x1a6f9
jmp 0x1a6f9
jmp 0x1a6f9
jmp 0x1a6f9
jmp 0x1a6f9
movq %rax, %rbx
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x1a710
callq 0x2210
movq %rbx, %rdi
callq 0x23a0