void c_blit_write(char *framebuffer, short screen_width, short screen_height,
                  unsigned int bytes_per_line, short xoffset, short yoffset,
                  char *blit_data, short x, short y, short w, short h,
                  unsigned char bytes_per_pixel, unsigned char draw_mode,
                  unsigned char alpha, unsigned int bcolor, short x_clip,
                  short y_clip, short xx_clip, short yy_clip) {
  short fb_x = xoffset + x;
  short fb_y = yoffset + y;
  short xx = x + w;
  short yy = y + h;
  short horizontal;
  short vertical;
  unsigned int bline = w * bytes_per_pixel;
  if (draw_mode == 0 && x >= x_clip && xx <= xx_clip && y >= y_clip &&
      yy <= yy_clip) {
    unsigned char *source = blit_data;
    unsigned char *dest =
        &framebuffer[(fb_y * bytes_per_line) + (fb_x * bytes_per_pixel)];
    for (vertical = 0; vertical < h; vertical++) {
      memcpy(dest, source, bline);
      source += bline;
      dest += bytes_per_line;
    }
  } else {
    switch (draw_mode) {
    case 0:
      switch (bytes_per_pixel) {
      case 4:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *((unsigned int *)(framebuffer + xhbp_yvbl)) =
                    *((unsigned int *)(blit_data + vhz));
              }
            }
          }
        }
        break;
      case 3:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *(framebuffer + xhbp_yvbl) = *(blit_data + vhz);
                *(framebuffer + xhbp_yvbl + 1) = *(blit_data + vhz + 1);
                *(framebuffer + xhbp_yvbl + 2) = *(blit_data + vhz + 2);
              }
            }
          }
        }
        break;
      case 2:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *((unsigned short *)(framebuffer + xhbp_yvbl)) =
                    *((unsigned short *)(blit_data + vhz));
              }
            }
          }
        }
        break;
      }
      break;
    case 1:
      switch (bytes_per_pixel) {
      case 4:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *((unsigned int *)(framebuffer + xhbp_yvbl)) ^=
                    *((unsigned int *)(blit_data + vhz));
              }
            }
          }
        }
        break;
      case 3:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *(framebuffer + xhbp_yvbl) ^= *(blit_data + vhz);
                *(framebuffer + xhbp_yvbl + 1) ^= *(blit_data + vhz + 1);
                *(framebuffer + xhbp_yvbl + 2) ^= *(blit_data + vhz + 2);
              }
            }
          }
        }
        break;
      case 2:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *((unsigned short *)(framebuffer + xhbp_yvbl)) ^=
                    *((unsigned short *)(blit_data + vhz));
              }
            }
          }
        }
        break;
      }
      break;
    case 2:
      switch (bytes_per_pixel) {
      case 4:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *((unsigned int *)(framebuffer + xhbp_yvbl)) |=
                    *((unsigned int *)(blit_data + vhz));
              }
            }
          }
        }
        break;
      case 3:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *(framebuffer + xhbp_yvbl) |= *(blit_data + vhz);
                *(framebuffer + xhbp_yvbl + 1) |= *(blit_data + vhz + 1);
                *(framebuffer + xhbp_yvbl + 2) |= *(blit_data + vhz + 2);
              }
            }
          }
        }
        break;
      case 2:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *((unsigned short *)(framebuffer + xhbp_yvbl)) |=
                    *((unsigned short *)(blit_data + vhz));
              }
            }
          }
        }
        break;
      }
      break;
    case 3:
      switch (bytes_per_pixel) {
      case 4:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *((unsigned int *)(framebuffer + xhbp_yvbl)) &=
                    *((unsigned int *)(blit_data + vhz));
              }
            }
          }
        }
        break;
      case 3:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *(framebuffer + xhbp_yvbl) &= *(blit_data + vhz);
                *(framebuffer + xhbp_yvbl + 1) &= *(blit_data + vhz + 1);
                *(framebuffer + xhbp_yvbl + 2) &= *(blit_data + vhz + 2);
              }
            }
          }
        }
        break;
      case 2:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *((unsigned short *)(framebuffer + xhbp_yvbl)) &=
                    *((unsigned short *)(blit_data + vhz));
              }
            }
          }
        }
        break;
      }
      break;
    case 4:
      switch (bytes_per_pixel) {
      case 4:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                unsigned int rgb = *((unsigned int *)(blit_data + vhz));
                if ((rgb & 0xFFFFFF00) != (bcolor & 0xFFFFFF00)) {
                  *((unsigned int *)(framebuffer + xhbp_yvbl)) = rgb;
                }
              }
            }
          }
        }
        break;
      case 3:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                if ((*((unsigned int *)(blit_data + vhz)) & 0xFFFFFF00) !=
                    (bcolor & 0xFFFFFF00)) {
                  *(framebuffer + xhbp_yvbl) = *(blit_data + vhz);
                  *(framebuffer + xhbp_yvbl + 1) = *(blit_data + vhz + 1);
                  *(framebuffer + xhbp_yvbl + 2) = *(blit_data + vhz + 2);
                }
              }
            }
          }
        }
        break;
      case 2:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                unsigned int rgb = *((unsigned short *)(blit_data + vhz));
                if (rgb != (bcolor & 0xFFFF)) {
                  *((unsigned short *)(framebuffer + xhbp_yvbl)) = rgb;
                }
              }
            }
          }
        }
        break;
      }
      break;
    case 5:
      switch (bytes_per_pixel) {
      case 4:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                if ((*((unsigned int *)(framebuffer + xhbp_yvbl)) &
                     0xFFFFFF00) == (bcolor & 0xFFFFFF00)) {
                  *((unsigned int *)(framebuffer + xhbp_yvbl)) =
                      *((unsigned int *)(blit_data + vhz));
                }
              }
            }
          }
        }
        break;
      case 3:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                if (*((unsigned int *)(framebuffer + xhbp + yvhz)) ==
                    (bcolor & 0xFFFFFF00)) {
                  *(framebuffer + xhbp_yvbl) = *(blit_data + vhz);
                  *(framebuffer + xhbp_yvbl + 1) = *(blit_data + vhz + 1);
                  *(framebuffer + xhbp_yvbl + 2) = *(blit_data + vhz + 2);
                }
              }
            }
          }
        }
        break;
      case 2:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                if (*((unsigned short *)(framebuffer + xhbp + yvhz)) ==
                    (bcolor & 0xFFFF)) {
                  *((unsigned short *)(framebuffer + xhbp_yvbl)) =
                      *((unsigned short *)(blit_data + vhz));
                }
              }
            }
          }
        }
        break;
      }
      break;
    case 6:
      switch (bytes_per_pixel) {
      case 4:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                unsigned int fb_rgb =
                    *((unsigned int *)(framebuffer + xhbp_yvbl));
                unsigned char fb_r = fb_rgb & 255;
                unsigned char fb_g = (fb_rgb >> 8) & 255;
                unsigned char fb_b = (fb_rgb >> 16) & 255;
                unsigned int blit_rgb = *((unsigned int *)(blit_data + vhz));
                unsigned char R = blit_rgb & 255;
                unsigned char G = (blit_rgb >> 8) & 255;
                unsigned char B = (blit_rgb >> 16) & 255;
                unsigned char A = (blit_rgb >> 24) & 255;
                unsigned char invA = (255 - A);
                fb_r = ((R * A) + (fb_r * invA)) >> 8;
                fb_g = ((G * A) + (fb_g * invA)) >> 8;
                fb_b = ((B * A) + (fb_b * invA)) >> 8;
                *((unsigned int *)(framebuffer + xhbp_yvbl)) =
                    fb_r | (fb_g << 8) | (fb_b << 16) | (A << 24);
              }
            }
          }
        }
        break;
      case 3:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                unsigned char fb_r = *(framebuffer + xhbp_yvbl);
                unsigned char fb_g = *(framebuffer + xhbp_yvbl + 1);
                unsigned char fb_b = *(framebuffer + xhbp_yvbl + 2);
                unsigned char R = *(blit_data + vhz);
                unsigned char G = *(blit_data + vhz + 1);
                unsigned char B = *(blit_data + vhz + 2);
                unsigned char invA = (255 - alpha);
                fb_r = ((R * alpha) + (fb_r * invA)) >> 8;
                fb_g = ((G * alpha) + (fb_g * invA)) >> 8;
                fb_b = ((B * alpha) + (fb_b * invA)) >> 8;
                *(framebuffer + xhbp_yvbl) = fb_r;
                *(framebuffer + xhbp_yvbl + 1) = fb_g;
                *(framebuffer + xhbp_yvbl + 2) = fb_b;
              }
            }
          }
        }
        break;
      case 2:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                unsigned short rgb565 =
                    *((unsigned short *)(framebuffer + xhbp_yvbl));
                unsigned short fb_r = rgb565 & 31;
                unsigned short fb_g = (rgb565 >> 5) & 63;
                unsigned short fb_b = (rgb565 >> 11) & 31;
                rgb565 = *((unsigned short *)(blit_data + vhz));
                unsigned short R = rgb565 & 31;
                unsigned short G = (rgb565 >> 5) & 63;
                unsigned short B = (rgb565 >> 11) & 31;
                unsigned char invA = (255 - alpha);
                fb_r = ((R * alpha) + (fb_r * invA)) >> 8;
                fb_g = ((G * alpha) + (fb_g * invA)) >> 8;
                fb_b = ((B * alpha) + (fb_b * invA)) >> 8;
                *((unsigned short *)(framebuffer + xhbp_yvbl)) =
                    (fb_b << 11) | (fb_g << 5) | fb_r;
              }
            }
          }
        }
        break;
      }
      break;
    case 7:
      switch (bytes_per_pixel) {
      case 4:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *((unsigned int *)(framebuffer + xhbp_yvbl)) +=
                    *((unsigned int *)(blit_data + vhz));
              }
            }
          }
        }
        break;
      case 3:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *(framebuffer + xhbp_yvbl) += *(blit_data + vhz);
                *(framebuffer + xhbp_yvbl + 1) += *(blit_data + vhz + 1);
                *(framebuffer + xhbp_yvbl + 2) += *(blit_data + vhz + 2);
              }
            }
          }
        }
        break;
      case 2:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *((unsigned short *)(framebuffer + xhbp_yvbl)) +=
                    *((unsigned short *)(blit_data + vhz));
              }
            }
          }
        }
        break;
      }
      break;
    case 8:
      switch (bytes_per_pixel) {
      case 4:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *((unsigned int *)(framebuffer + xhbp_yvbl)) -=
                    *((unsigned int *)(blit_data + vhz));
              }
            }
          }
        }
        break;
      case 3:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *(framebuffer + xhbp_yvbl) -= *(blit_data + vhz);
                *(framebuffer + xhbp_yvbl + 1) -= *(blit_data + vhz + 1);
                *(framebuffer + xhbp_yvbl + 2) -= *(blit_data + vhz + 2);
              }
            }
          }
        }
        break;
      case 2:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *((unsigned short *)(framebuffer + xhbp_yvbl)) -=
                    *((unsigned short *)(blit_data + vhz));
              }
            }
          }
        }
        break;
      }
      break;
    case 9:
      switch (bytes_per_pixel) {
      case 4:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *((unsigned int *)(framebuffer + xhbp_yvbl)) *=
                    *((unsigned int *)(blit_data + vhz));
              }
            }
          }
        }
        break;
      case 3:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *(framebuffer + xhbp_yvbl) *= *(blit_data + vhz);
                *(framebuffer + xhbp_yvbl + 1) *= *(blit_data + vhz + 1);
                *(framebuffer + xhbp_yvbl + 2) *= *(blit_data + vhz + 2);
              }
            }
          }
        }
        break;
      case 2:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *((unsigned short *)(framebuffer + xhbp_yvbl)) *=
                    *((unsigned short *)(blit_data + vhz));
              }
            }
          }
        }
        break;
      }
      break;
    case 10:
      switch (bytes_per_pixel) {
      case 4:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *((unsigned int *)(framebuffer + xhbp_yvbl)) /=
                    *((unsigned int *)(blit_data + vhz));
              }
            }
          }
        }
        break;
      case 3:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *(framebuffer + xhbp_yvbl) /= *(blit_data + vhz);
                *(framebuffer + xhbp_yvbl + 1) /= *(blit_data + vhz + 1);
                *(framebuffer + xhbp_yvbl + 2) /= *(blit_data + vhz + 2);
              }
            }
          }
        }
        break;
      case 2:
        for (vertical = 0; vertical < h; vertical++) {
          unsigned int vbl = vertical * bline;
          unsigned short yv = fb_y + vertical;
          unsigned int yvbl = yv * bytes_per_line;
          if (yv >= (yoffset + y_clip) && yv <= (yoffset + yy_clip)) {
            for (horizontal = 0; horizontal < w; horizontal++) {
              unsigned short xh = fb_x + horizontal;
              unsigned int xhbp = xh * bytes_per_pixel;
              if (xh >= (xoffset + x_clip) && xh <= (xoffset + xx_clip)) {
                unsigned int hzpixel = horizontal * bytes_per_pixel;
                unsigned int vhz = vbl + hzpixel;
                unsigned int yvhz = yvbl + hzpixel;
                unsigned int xhbp_yvbl = xhbp + yvbl;
                *((unsigned short *)(framebuffer + xhbp_yvbl)) /=
                    *((unsigned short *)(blit_data + vhz));
              }
            }
          }
        }
        break;
      }
      break;
    }
  }
}


x86 assembly (clang, -O0):
<c_blit_write>:
push   %rbp
mov    %rsp,%rbp
sub    $0x580,%rsp
mov    %r8d,-0x520(%rbp)
mov    %ecx,%eax
mov    -0x520(%rbp),%ecx
mov    %eax,-0x51c(%rbp)
mov    %edx,%eax
mov    -0x51c(%rbp),%edx
mov    %eax,-0x518(%rbp)
mov    %esi,%eax
mov    -0x518(%rbp),%esi
mov    %eax,-0x514(%rbp)
mov    %rdi,%r8
mov    -0x514(%rbp),%edi
mov    %r9w,%ax
mov    0x70(%rbp),%r9w
mov    0x68(%rbp),%r9w
mov    0x60(%rbp),%r9w
mov    0x58(%rbp),%r9w
mov    0x50(%rbp),%r9d
mov    0x48(%rbp),%r9b
mov    0x40(%rbp),%r9b
mov    0x38(%rbp),%r9b
mov    0x30(%rbp),%r9w
mov    0x28(%rbp),%r9w
mov    0x20(%rbp),%r9w
mov    0x18(%rbp),%r9w
mov    0x10(%rbp),%r9
mov    %r8,-0x8(%rbp)
mov    %di,-0xa(%rbp)
mov    %si,-0xc(%rbp)
mov    %edx,-0x10(%rbp)
mov    %cx,-0x12(%rbp)
mov    %ax,-0x14(%rbp)
movswl -0x12(%rbp),%eax
movswl 0x18(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x16(%rbp)
movswl -0x14(%rbp),%eax
movswl 0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x18(%rbp)
movswl 0x18(%rbp),%eax
movswl 0x28(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x1a(%rbp)
movswl 0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x1c(%rbp)
movswl 0x28(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x24(%rbp)
movzbl 0x40(%rbp),%eax
cmp    $0x0,%eax
jne    12c7 <c_blit_write+0x1b7>
movswl 0x18(%rbp),%eax
movswl 0x58(%rbp),%ecx
cmp    %ecx,%eax
jl     12c7 <c_blit_write+0x1b7>
movswl -0x1a(%rbp),%eax
movswl 0x68(%rbp),%ecx
cmp    %ecx,%eax
jg     12c7 <c_blit_write+0x1b7>
movswl 0x20(%rbp),%eax
movswl 0x60(%rbp),%ecx
cmp    %ecx,%eax
jl     12c7 <c_blit_write+0x1b7>
movswl -0x1c(%rbp),%eax
movswl 0x70(%rbp),%ecx
cmp    %ecx,%eax
jg     12c7 <c_blit_write+0x1b7>
mov    0x10(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x8(%rbp),%rax
movswl -0x18(%rbp),%ecx
imul   -0x10(%rbp),%ecx
movswl -0x16(%rbp),%edx
movzbl 0x38(%rbp),%esi
imul   %esi,%edx
add    %edx,%ecx
mov    %ecx,%ecx
add    %rcx,%rax
mov    %rax,-0x38(%rbp)
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    12c2 <c_blit_write+0x1b2>
mov    -0x38(%rbp),%rdi
mov    -0x30(%rbp),%rsi
mov    -0x24(%rbp),%eax
mov    %eax,%edx
call   1030 <memcpy@plt>
mov    -0x24(%rbp),%ecx
mov    -0x30(%rbp),%rax
mov    %ecx,%ecx
add    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%ecx
mov    -0x38(%rbp),%rax
mov    %ecx,%ecx
add    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    126f <c_blit_write+0x15f>
jmp    4ea8 <c_blit_write+0x3d98>
movzbl 0x40(%rbp),%eax
mov    %rax,-0x528(%rbp)
sub    $0xa,%rax
ja     4ea3 <c_blit_write+0x3d93>
mov    -0x528(%rbp),%rax
lea    0x3d16(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movzbl 0x38(%rbp),%eax
mov    %eax,-0x52c(%rbp)
sub    $0x2,%eax
je     15cd <c_blit_write+0x4bd>
jmp    130b <c_blit_write+0x1fb>
mov    -0x52c(%rbp),%eax
sub    $0x3,%eax
je     146a <c_blit_write+0x35a>
jmp    131f <c_blit_write+0x20f>
mov    -0x52c(%rbp),%eax
sub    $0x4,%eax
jne    174b <c_blit_write+0x63b>
jmp    1333 <c_blit_write+0x223>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    1465 <c_blit_write+0x355>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x3c(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x3e(%rbp)
movzwl -0x3e(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x44(%rbp)
movzwl -0x3e(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     144f <c_blit_write+0x33f>
movzwl -0x3e(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     144f <c_blit_write+0x33f>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    144a <c_blit_write+0x33a>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x46(%rbp)
movzwl -0x46(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x4c(%rbp)
movzwl -0x46(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     1434 <c_blit_write+0x324>
movzwl -0x46(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     1434 <c_blit_write+0x324>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x50(%rbp)
mov    -0x3c(%rbp),%eax
add    -0x50(%rbp),%eax
mov    %eax,-0x54(%rbp)
mov    -0x44(%rbp),%eax
add    -0x50(%rbp),%eax
mov    %eax,-0x58(%rbp)
mov    -0x4c(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    0x10(%rbp),%rax
mov    -0x54(%rbp),%ecx
mov    (%rax,%rcx,1),%edx
mov    -0x8(%rbp),%rax
mov    -0x5c(%rbp),%ecx
mov    %edx,(%rax,%rcx,1)
jmp    1439 <c_blit_write+0x329>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    139f <c_blit_write+0x28f>
jmp    144f <c_blit_write+0x33f>
jmp    1454 <c_blit_write+0x344>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    1339 <c_blit_write+0x229>
jmp    174b <c_blit_write+0x63b>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    15c8 <c_blit_write+0x4b8>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x60(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x62(%rbp)
movzwl -0x62(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x68(%rbp)
movzwl -0x62(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     15b2 <c_blit_write+0x4a2>
movzwl -0x62(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     15b2 <c_blit_write+0x4a2>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    15ad <c_blit_write+0x49d>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x6a(%rbp)
movzwl -0x6a(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x70(%rbp)
movzwl -0x6a(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     1597 <c_blit_write+0x487>
movzwl -0x6a(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     1597 <c_blit_write+0x487>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x74(%rbp)
mov    -0x60(%rbp),%eax
add    -0x74(%rbp),%eax
mov    %eax,-0x78(%rbp)
mov    -0x68(%rbp),%eax
add    -0x74(%rbp),%eax
mov    %eax,-0x7c(%rbp)
mov    -0x70(%rbp),%eax
add    -0x68(%rbp),%eax
mov    %eax,-0x80(%rbp)
mov    0x10(%rbp),%rax
mov    -0x78(%rbp),%ecx
mov    (%rax,%rcx,1),%dl
mov    -0x8(%rbp),%rax
mov    -0x80(%rbp),%ecx
mov    %dl,(%rax,%rcx,1)
mov    0x10(%rbp),%rax
mov    -0x78(%rbp),%ecx
mov    0x1(%rax,%rcx,1),%dl
mov    -0x8(%rbp),%rax
mov    -0x80(%rbp),%ecx
mov    %dl,0x1(%rax,%rcx,1)
mov    0x10(%rbp),%rax
mov    -0x78(%rbp),%ecx
mov    0x2(%rax,%rcx,1),%dl
mov    -0x8(%rbp),%rax
mov    -0x80(%rbp),%ecx
mov    %dl,0x2(%rax,%rcx,1)
jmp    159c <c_blit_write+0x48c>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    14d6 <c_blit_write+0x3c6>
jmp    15b2 <c_blit_write+0x4a2>
jmp    15b7 <c_blit_write+0x4a7>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    1470 <c_blit_write+0x360>
jmp    174b <c_blit_write+0x63b>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    1746 <c_blit_write+0x636>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x84(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x86(%rbp)
movzwl -0x86(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x8c(%rbp)
movzwl -0x86(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     1730 <c_blit_write+0x620>
movzwl -0x86(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     1730 <c_blit_write+0x620>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    172b <c_blit_write+0x61b>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x8e(%rbp)
movzwl -0x8e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x94(%rbp)
movzwl -0x8e(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     1715 <c_blit_write+0x605>
movzwl -0x8e(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     1715 <c_blit_write+0x605>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x98(%rbp)
mov    -0x84(%rbp),%eax
add    -0x98(%rbp),%eax
mov    %eax,-0x9c(%rbp)
mov    -0x8c(%rbp),%eax
add    -0x98(%rbp),%eax
mov    %eax,-0xa0(%rbp)
mov    -0x94(%rbp),%eax
add    -0x8c(%rbp),%eax
mov    %eax,-0xa4(%rbp)
mov    0x10(%rbp),%rax
mov    -0x9c(%rbp),%ecx
mov    (%rax,%rcx,1),%dx
mov    -0x8(%rbp),%rax
mov    -0xa4(%rbp),%ecx
mov    %dx,(%rax,%rcx,1)
jmp    171a <c_blit_write+0x60a>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    164b <c_blit_write+0x53b>
jmp    1730 <c_blit_write+0x620>
jmp    1735 <c_blit_write+0x625>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    15d3 <c_blit_write+0x4c3>
jmp    174b <c_blit_write+0x63b>
jmp    4ea3 <c_blit_write+0x3d93>
movzbl 0x38(%rbp),%eax
mov    %eax,-0x530(%rbp)
sub    $0x2,%eax
je     1ada <c_blit_write+0x9ca>
jmp    1768 <c_blit_write+0x658>
mov    -0x530(%rbp),%eax
sub    $0x3,%eax
je     190f <c_blit_write+0x7ff>
jmp    177c <c_blit_write+0x66c>
mov    -0x530(%rbp),%eax
sub    $0x4,%eax
jne    1c5e <c_blit_write+0xb4e>
jmp    1790 <c_blit_write+0x680>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    190a <c_blit_write+0x7fa>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0xa8(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0xaa(%rbp)
movzwl -0xaa(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0xb0(%rbp)
movzwl -0xaa(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     18f4 <c_blit_write+0x7e4>
movzwl -0xaa(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     18f4 <c_blit_write+0x7e4>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    18ef <c_blit_write+0x7df>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0xb2(%rbp)
movzwl -0xb2(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0xb8(%rbp)
movzwl -0xb2(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     18d9 <c_blit_write+0x7c9>
movzwl -0xb2(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     18d9 <c_blit_write+0x7c9>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0xbc(%rbp)
mov    -0xa8(%rbp),%eax
add    -0xbc(%rbp),%eax
mov    %eax,-0xc0(%rbp)
mov    -0xb0(%rbp),%eax
add    -0xbc(%rbp),%eax
mov    %eax,-0xc4(%rbp)
mov    -0xb8(%rbp),%eax
add    -0xb0(%rbp),%eax
mov    %eax,-0xc8(%rbp)
mov    0x10(%rbp),%rax
mov    -0xc0(%rbp),%ecx
mov    (%rax,%rcx,1),%edx
mov    -0x8(%rbp),%rax
mov    -0xc8(%rbp),%ecx
xor    (%rax,%rcx,1),%edx
mov    %edx,(%rax,%rcx,1)
jmp    18de <c_blit_write+0x7ce>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    180e <c_blit_write+0x6fe>
jmp    18f4 <c_blit_write+0x7e4>
jmp    18f9 <c_blit_write+0x7e9>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    1796 <c_blit_write+0x686>
jmp    1c5e <c_blit_write+0xb4e>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    1ad5 <c_blit_write+0x9c5>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0xcc(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0xce(%rbp)
movzwl -0xce(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0xd4(%rbp)
movzwl -0xce(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     1abf <c_blit_write+0x9af>
movzwl -0xce(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     1abf <c_blit_write+0x9af>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    1aba <c_blit_write+0x9aa>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0xd6(%rbp)
movzwl -0xd6(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0xdc(%rbp)
movzwl -0xd6(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     1aa4 <c_blit_write+0x994>
movzwl -0xd6(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     1aa4 <c_blit_write+0x994>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0xe0(%rbp)
mov    -0xcc(%rbp),%eax
add    -0xe0(%rbp),%eax
mov    %eax,-0xe4(%rbp)
mov    -0xd4(%rbp),%eax
add    -0xe0(%rbp),%eax
mov    %eax,-0xe8(%rbp)
mov    -0xdc(%rbp),%eax
add    -0xd4(%rbp),%eax
mov    %eax,-0xec(%rbp)
mov    0x10(%rbp),%rax
mov    -0xe4(%rbp),%ecx
movsbl (%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0xec(%rbp),%ecx
movsbl (%rax,%rcx,1),%edx
xor    %esi,%edx
mov    %dl,(%rax,%rcx,1)
mov    0x10(%rbp),%rax
mov    -0xe4(%rbp),%ecx
movsbl 0x1(%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0xec(%rbp),%ecx
movsbl 0x1(%rax,%rcx,1),%edx
xor    %esi,%edx
mov    %dl,0x1(%rax,%rcx,1)
mov    0x10(%rbp),%rax
mov    -0xe4(%rbp),%ecx
movsbl 0x2(%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0xec(%rbp),%ecx
movsbl 0x2(%rax,%rcx,1),%edx
xor    %esi,%edx
mov    %dl,0x2(%rax,%rcx,1)
jmp    1aa9 <c_blit_write+0x999>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    198d <c_blit_write+0x87d>
jmp    1abf <c_blit_write+0x9af>
jmp    1ac4 <c_blit_write+0x9b4>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    1915 <c_blit_write+0x805>
jmp    1c5e <c_blit_write+0xb4e>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    1c59 <c_blit_write+0xb49>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0xf0(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0xf2(%rbp)
movzwl -0xf2(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0xf8(%rbp)
movzwl -0xf2(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     1c43 <c_blit_write+0xb33>
movzwl -0xf2(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     1c43 <c_blit_write+0xb33>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    1c3e <c_blit_write+0xb2e>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0xfa(%rbp)
movzwl -0xfa(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x100(%rbp)
movzwl -0xfa(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     1c28 <c_blit_write+0xb18>
movzwl -0xfa(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     1c28 <c_blit_write+0xb18>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x104(%rbp)
mov    -0xf0(%rbp),%eax
add    -0x104(%rbp),%eax
mov    %eax,-0x108(%rbp)
mov    -0xf8(%rbp),%eax
add    -0x104(%rbp),%eax
mov    %eax,-0x10c(%rbp)
mov    -0x100(%rbp),%eax
add    -0xf8(%rbp),%eax
mov    %eax,-0x110(%rbp)
mov    0x10(%rbp),%rax
mov    -0x108(%rbp),%ecx
movzwl (%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0x110(%rbp),%ecx
movzwl (%rax,%rcx,1),%edx
xor    %esi,%edx
mov    %dx,(%rax,%rcx,1)
jmp    1c2d <c_blit_write+0xb1d>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    1b58 <c_blit_write+0xa48>
jmp    1c43 <c_blit_write+0xb33>
jmp    1c48 <c_blit_write+0xb38>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    1ae0 <c_blit_write+0x9d0>
jmp    1c5e <c_blit_write+0xb4e>
jmp    4ea3 <c_blit_write+0x3d93>
movzbl 0x38(%rbp),%eax
mov    %eax,-0x534(%rbp)
sub    $0x2,%eax
je     1fed <c_blit_write+0xedd>
jmp    1c7b <c_blit_write+0xb6b>
mov    -0x534(%rbp),%eax
sub    $0x3,%eax
je     1e22 <c_blit_write+0xd12>
jmp    1c8f <c_blit_write+0xb7f>
mov    -0x534(%rbp),%eax
sub    $0x4,%eax
jne    2171 <c_blit_write+0x1061>
jmp    1ca3 <c_blit_write+0xb93>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    1e1d <c_blit_write+0xd0d>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x114(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x116(%rbp)
movzwl -0x116(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x11c(%rbp)
movzwl -0x116(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     1e07 <c_blit_write+0xcf7>
movzwl -0x116(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     1e07 <c_blit_write+0xcf7>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    1e02 <c_blit_write+0xcf2>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x11e(%rbp)
movzwl -0x11e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x124(%rbp)
movzwl -0x11e(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     1dec <c_blit_write+0xcdc>
movzwl -0x11e(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     1dec <c_blit_write+0xcdc>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x128(%rbp)
mov    -0x114(%rbp),%eax
add    -0x128(%rbp),%eax
mov    %eax,-0x12c(%rbp)
mov    -0x11c(%rbp),%eax
add    -0x128(%rbp),%eax
mov    %eax,-0x130(%rbp)
mov    -0x124(%rbp),%eax
add    -0x11c(%rbp),%eax
mov    %eax,-0x134(%rbp)
mov    0x10(%rbp),%rax
mov    -0x12c(%rbp),%ecx
mov    (%rax,%rcx,1),%edx
mov    -0x8(%rbp),%rax
mov    -0x134(%rbp),%ecx
or     (%rax,%rcx,1),%edx
mov    %edx,(%rax,%rcx,1)
jmp    1df1 <c_blit_write+0xce1>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    1d21 <c_blit_write+0xc11>
jmp    1e07 <c_blit_write+0xcf7>
jmp    1e0c <c_blit_write+0xcfc>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    1ca9 <c_blit_write+0xb99>
jmp    2171 <c_blit_write+0x1061>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    1fe8 <c_blit_write+0xed8>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x138(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x13a(%rbp)
movzwl -0x13a(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x140(%rbp)
movzwl -0x13a(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     1fd2 <c_blit_write+0xec2>
movzwl -0x13a(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     1fd2 <c_blit_write+0xec2>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    1fcd <c_blit_write+0xebd>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x142(%rbp)
movzwl -0x142(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x148(%rbp)
movzwl -0x142(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     1fb7 <c_blit_write+0xea7>
movzwl -0x142(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     1fb7 <c_blit_write+0xea7>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x14c(%rbp)
mov    -0x138(%rbp),%eax
add    -0x14c(%rbp),%eax
mov    %eax,-0x150(%rbp)
mov    -0x140(%rbp),%eax
add    -0x14c(%rbp),%eax
mov    %eax,-0x154(%rbp)
mov    -0x148(%rbp),%eax
add    -0x140(%rbp),%eax
mov    %eax,-0x158(%rbp)
mov    0x10(%rbp),%rax
mov    -0x150(%rbp),%ecx
movsbl (%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0x158(%rbp),%ecx
movsbl (%rax,%rcx,1),%edx
or     %esi,%edx
mov    %dl,(%rax,%rcx,1)
mov    0x10(%rbp),%rax
mov    -0x150(%rbp),%ecx
movsbl 0x1(%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0x158(%rbp),%ecx
movsbl 0x1(%rax,%rcx,1),%edx
or     %esi,%edx
mov    %dl,0x1(%rax,%rcx,1)
mov    0x10(%rbp),%rax
mov    -0x150(%rbp),%ecx
movsbl 0x2(%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0x158(%rbp),%ecx
movsbl 0x2(%rax,%rcx,1),%edx
or     %esi,%edx
mov    %dl,0x2(%rax,%rcx,1)
jmp    1fbc <c_blit_write+0xeac>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    1ea0 <c_blit_write+0xd90>
jmp    1fd2 <c_blit_write+0xec2>
jmp    1fd7 <c_blit_write+0xec7>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    1e28 <c_blit_write+0xd18>
jmp    2171 <c_blit_write+0x1061>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    216c <c_blit_write+0x105c>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x15c(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x15e(%rbp)
movzwl -0x15e(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x164(%rbp)
movzwl -0x15e(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     2156 <c_blit_write+0x1046>
movzwl -0x15e(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     2156 <c_blit_write+0x1046>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    2151 <c_blit_write+0x1041>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x166(%rbp)
movzwl -0x166(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x16c(%rbp)
movzwl -0x166(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     213b <c_blit_write+0x102b>
movzwl -0x166(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     213b <c_blit_write+0x102b>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x170(%rbp)
mov    -0x15c(%rbp),%eax
add    -0x170(%rbp),%eax
mov    %eax,-0x174(%rbp)
mov    -0x164(%rbp),%eax
add    -0x170(%rbp),%eax
mov    %eax,-0x178(%rbp)
mov    -0x16c(%rbp),%eax
add    -0x164(%rbp),%eax
mov    %eax,-0x17c(%rbp)
mov    0x10(%rbp),%rax
mov    -0x174(%rbp),%ecx
movzwl (%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0x17c(%rbp),%ecx
movzwl (%rax,%rcx,1),%edx
or     %esi,%edx
mov    %dx,(%rax,%rcx,1)
jmp    2140 <c_blit_write+0x1030>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    206b <c_blit_write+0xf5b>
jmp    2156 <c_blit_write+0x1046>
jmp    215b <c_blit_write+0x104b>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    1ff3 <c_blit_write+0xee3>
jmp    2171 <c_blit_write+0x1061>
jmp    4ea3 <c_blit_write+0x3d93>
movzbl 0x38(%rbp),%eax
mov    %eax,-0x538(%rbp)
sub    $0x2,%eax
je     2500 <c_blit_write+0x13f0>
jmp    218e <c_blit_write+0x107e>
mov    -0x538(%rbp),%eax
sub    $0x3,%eax
je     2335 <c_blit_write+0x1225>
jmp    21a2 <c_blit_write+0x1092>
mov    -0x538(%rbp),%eax
sub    $0x4,%eax
jne    2684 <c_blit_write+0x1574>
jmp    21b6 <c_blit_write+0x10a6>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    2330 <c_blit_write+0x1220>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x180(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x182(%rbp)
movzwl -0x182(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x188(%rbp)
movzwl -0x182(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     231a <c_blit_write+0x120a>
movzwl -0x182(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     231a <c_blit_write+0x120a>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    2315 <c_blit_write+0x1205>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x18a(%rbp)
movzwl -0x18a(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x190(%rbp)
movzwl -0x18a(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     22ff <c_blit_write+0x11ef>
movzwl -0x18a(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     22ff <c_blit_write+0x11ef>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x194(%rbp)
mov    -0x180(%rbp),%eax
add    -0x194(%rbp),%eax
mov    %eax,-0x198(%rbp)
mov    -0x188(%rbp),%eax
add    -0x194(%rbp),%eax
mov    %eax,-0x19c(%rbp)
mov    -0x190(%rbp),%eax
add    -0x188(%rbp),%eax
mov    %eax,-0x1a0(%rbp)
mov    0x10(%rbp),%rax
mov    -0x198(%rbp),%ecx
mov    (%rax,%rcx,1),%edx
mov    -0x8(%rbp),%rax
mov    -0x1a0(%rbp),%ecx
and    (%rax,%rcx,1),%edx
mov    %edx,(%rax,%rcx,1)
jmp    2304 <c_blit_write+0x11f4>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    2234 <c_blit_write+0x1124>
jmp    231a <c_blit_write+0x120a>
jmp    231f <c_blit_write+0x120f>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    21bc <c_blit_write+0x10ac>
jmp    2684 <c_blit_write+0x1574>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    24fb <c_blit_write+0x13eb>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x1a4(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x1a6(%rbp)
movzwl -0x1a6(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x1ac(%rbp)
movzwl -0x1a6(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     24e5 <c_blit_write+0x13d5>
movzwl -0x1a6(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     24e5 <c_blit_write+0x13d5>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    24e0 <c_blit_write+0x13d0>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x1ae(%rbp)
movzwl -0x1ae(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x1b4(%rbp)
movzwl -0x1ae(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     24ca <c_blit_write+0x13ba>
movzwl -0x1ae(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     24ca <c_blit_write+0x13ba>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x1b8(%rbp)
mov    -0x1a4(%rbp),%eax
add    -0x1b8(%rbp),%eax
mov    %eax,-0x1bc(%rbp)
mov    -0x1ac(%rbp),%eax
add    -0x1b8(%rbp),%eax
mov    %eax,-0x1c0(%rbp)
mov    -0x1b4(%rbp),%eax
add    -0x1ac(%rbp),%eax
mov    %eax,-0x1c4(%rbp)
mov    0x10(%rbp),%rax
mov    -0x1bc(%rbp),%ecx
movsbl (%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0x1c4(%rbp),%ecx
movsbl (%rax,%rcx,1),%edx
and    %esi,%edx
mov    %dl,(%rax,%rcx,1)
mov    0x10(%rbp),%rax
mov    -0x1bc(%rbp),%ecx
movsbl 0x1(%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0x1c4(%rbp),%ecx
movsbl 0x1(%rax,%rcx,1),%edx
and    %esi,%edx
mov    %dl,0x1(%rax,%rcx,1)
mov    0x10(%rbp),%rax
mov    -0x1bc(%rbp),%ecx
movsbl 0x2(%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0x1c4(%rbp),%ecx
movsbl 0x2(%rax,%rcx,1),%edx
and    %esi,%edx
mov    %dl,0x2(%rax,%rcx,1)
jmp    24cf <c_blit_write+0x13bf>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    23b3 <c_blit_write+0x12a3>
jmp    24e5 <c_blit_write+0x13d5>
jmp    24ea <c_blit_write+0x13da>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    233b <c_blit_write+0x122b>
jmp    2684 <c_blit_write+0x1574>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    267f <c_blit_write+0x156f>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x1c8(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x1ca(%rbp)
movzwl -0x1ca(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x1d0(%rbp)
movzwl -0x1ca(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     2669 <c_blit_write+0x1559>
movzwl -0x1ca(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     2669 <c_blit_write+0x1559>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    2664 <c_blit_write+0x1554>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x1d2(%rbp)
movzwl -0x1d2(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x1d8(%rbp)
movzwl -0x1d2(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     264e <c_blit_write+0x153e>
movzwl -0x1d2(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     264e <c_blit_write+0x153e>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x1dc(%rbp)
mov    -0x1c8(%rbp),%eax
add    -0x1dc(%rbp),%eax
mov    %eax,-0x1e0(%rbp)
mov    -0x1d0(%rbp),%eax
add    -0x1dc(%rbp),%eax
mov    %eax,-0x1e4(%rbp)
mov    -0x1d8(%rbp),%eax
add    -0x1d0(%rbp),%eax
mov    %eax,-0x1e8(%rbp)
mov    0x10(%rbp),%rax
mov    -0x1e0(%rbp),%ecx
movzwl (%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0x1e8(%rbp),%ecx
movzwl (%rax,%rcx,1),%edx
and    %esi,%edx
mov    %dx,(%rax,%rcx,1)
jmp    2653 <c_blit_write+0x1543>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    257e <c_blit_write+0x146e>
jmp    2669 <c_blit_write+0x1559>
jmp    266e <c_blit_write+0x155e>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    2506 <c_blit_write+0x13f6>
jmp    2684 <c_blit_write+0x1574>
jmp    4ea3 <c_blit_write+0x3d93>
movzbl 0x38(%rbp),%eax
mov    %eax,-0x53c(%rbp)
sub    $0x2,%eax
je     2a4e <c_blit_write+0x193e>
jmp    26a1 <c_blit_write+0x1591>
mov    -0x53c(%rbp),%eax
sub    $0x3,%eax
je     2872 <c_blit_write+0x1762>
jmp    26b5 <c_blit_write+0x15a5>
mov    -0x53c(%rbp),%eax
sub    $0x4,%eax
jne    2bf7 <c_blit_write+0x1ae7>
jmp    26c9 <c_blit_write+0x15b9>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    286d <c_blit_write+0x175d>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x1ec(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x1ee(%rbp)
movzwl -0x1ee(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x1f4(%rbp)
movzwl -0x1ee(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     2857 <c_blit_write+0x1747>
movzwl -0x1ee(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     2857 <c_blit_write+0x1747>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    2852 <c_blit_write+0x1742>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x1f6(%rbp)
movzwl -0x1f6(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x1fc(%rbp)
movzwl -0x1f6(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     283c <c_blit_write+0x172c>
movzwl -0x1f6(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     283c <c_blit_write+0x172c>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x200(%rbp)
mov    -0x1ec(%rbp),%eax
add    -0x200(%rbp),%eax
mov    %eax,-0x204(%rbp)
mov    -0x1f4(%rbp),%eax
add    -0x200(%rbp),%eax
mov    %eax,-0x208(%rbp)
mov    -0x1fc(%rbp),%eax
add    -0x1f4(%rbp),%eax
mov    %eax,-0x20c(%rbp)
mov    0x10(%rbp),%rax
mov    -0x204(%rbp),%ecx
mov    (%rax,%rcx,1),%eax
mov    %eax,-0x210(%rbp)
mov    -0x210(%rbp),%eax
and    $0xffffff00,%eax
mov    0x50(%rbp),%ecx
and    $0xffffff00,%ecx
cmp    %ecx,%eax
je     2837 <c_blit_write+0x1727>
mov    -0x210(%rbp),%edx
mov    -0x8(%rbp),%rax
mov    -0x20c(%rbp),%ecx
mov    %edx,(%rax,%rcx,1)
jmp    283c <c_blit_write+0x172c>
jmp    2841 <c_blit_write+0x1731>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    2747 <c_blit_write+0x1637>
jmp    2857 <c_blit_write+0x1747>
jmp    285c <c_blit_write+0x174c>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    26cf <c_blit_write+0x15bf>
jmp    2bf7 <c_blit_write+0x1ae7>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    2a49 <c_blit_write+0x1939>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x214(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x216(%rbp)
movzwl -0x216(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x21c(%rbp)
movzwl -0x216(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     2a33 <c_blit_write+0x1923>
movzwl -0x216(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     2a33 <c_blit_write+0x1923>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    2a2e <c_blit_write+0x191e>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x21e(%rbp)
movzwl -0x21e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x224(%rbp)
movzwl -0x21e(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     2a18 <c_blit_write+0x1908>
movzwl -0x21e(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     2a18 <c_blit_write+0x1908>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x228(%rbp)
mov    -0x214(%rbp),%eax
add    -0x228(%rbp),%eax
mov    %eax,-0x22c(%rbp)
mov    -0x21c(%rbp),%eax
add    -0x228(%rbp),%eax
mov    %eax,-0x230(%rbp)
mov    -0x224(%rbp),%eax
add    -0x21c(%rbp),%eax
mov    %eax,-0x234(%rbp)
mov    0x10(%rbp),%rax
mov    -0x22c(%rbp),%ecx
mov    (%rax,%rcx,1),%eax
and    $0xffffff00,%eax
mov    0x50(%rbp),%ecx
and    $0xffffff00,%ecx
cmp    %ecx,%eax
je     2a13 <c_blit_write+0x1903>
mov    0x10(%rbp),%rax
mov    -0x22c(%rbp),%ecx
mov    (%rax,%rcx,1),%dl
mov    -0x8(%rbp),%rax
mov    -0x234(%rbp),%ecx
mov    %dl,(%rax,%rcx,1)
mov    0x10(%rbp),%rax
mov    -0x22c(%rbp),%ecx
mov    0x1(%rax,%rcx,1),%dl
mov    -0x8(%rbp),%rax
mov    -0x234(%rbp),%ecx
mov    %dl,0x1(%rax,%rcx,1)
mov    0x10(%rbp),%rax
mov    -0x22c(%rbp),%ecx
mov    0x2(%rax,%rcx,1),%dl
mov    -0x8(%rbp),%rax
mov    -0x234(%rbp),%ecx
mov    %dl,0x2(%rax,%rcx,1)
jmp    2a18 <c_blit_write+0x1908>
jmp    2a1d <c_blit_write+0x190d>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    28f0 <c_blit_write+0x17e0>
jmp    2a33 <c_blit_write+0x1923>
jmp    2a38 <c_blit_write+0x1928>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    2878 <c_blit_write+0x1768>
jmp    2bf7 <c_blit_write+0x1ae7>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    2bf2 <c_blit_write+0x1ae2>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x238(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x23a(%rbp)
movzwl -0x23a(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x240(%rbp)
movzwl -0x23a(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     2bdc <c_blit_write+0x1acc>
movzwl -0x23a(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     2bdc <c_blit_write+0x1acc>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    2bd7 <c_blit_write+0x1ac7>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x242(%rbp)
movzwl -0x242(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x248(%rbp)
movzwl -0x242(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     2bc1 <c_blit_write+0x1ab1>
movzwl -0x242(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     2bc1 <c_blit_write+0x1ab1>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x24c(%rbp)
mov    -0x238(%rbp),%eax
add    -0x24c(%rbp),%eax
mov    %eax,-0x250(%rbp)
mov    -0x240(%rbp),%eax
add    -0x24c(%rbp),%eax
mov    %eax,-0x254(%rbp)
mov    -0x248(%rbp),%eax
add    -0x240(%rbp),%eax
mov    %eax,-0x258(%rbp)
mov    0x10(%rbp),%rax
mov    -0x250(%rbp),%ecx
movzwl (%rax,%rcx,1),%eax
mov    %eax,-0x25c(%rbp)
mov    -0x25c(%rbp),%eax
mov    0x50(%rbp),%ecx
and    $0xffff,%ecx
cmp    %ecx,%eax
je     2bbc <c_blit_write+0x1aac>
mov    -0x25c(%rbp),%eax
mov    %ax,%dx
mov    -0x8(%rbp),%rax
mov    -0x258(%rbp),%ecx
mov    %dx,(%rax,%rcx,1)
jmp    2bc1 <c_blit_write+0x1ab1>
jmp    2bc6 <c_blit_write+0x1ab6>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    2acc <c_blit_write+0x19bc>
jmp    2bdc <c_blit_write+0x1acc>
jmp    2be1 <c_blit_write+0x1ad1>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    2a54 <c_blit_write+0x1944>
jmp    2bf7 <c_blit_write+0x1ae7>
jmp    4ea3 <c_blit_write+0x3d93>
movzbl 0x38(%rbp),%eax
mov    %eax,-0x540(%rbp)
sub    $0x2,%eax
je     2fc0 <c_blit_write+0x1eb0>
jmp    2c14 <c_blit_write+0x1b04>
mov    -0x540(%rbp),%eax
sub    $0x3,%eax
je     2de0 <c_blit_write+0x1cd0>
jmp    2c28 <c_blit_write+0x1b18>
mov    -0x540(%rbp),%eax
sub    $0x4,%eax
jne    316b <c_blit_write+0x205b>
jmp    2c3c <c_blit_write+0x1b2c>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    2ddb <c_blit_write+0x1ccb>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x260(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x262(%rbp)
movzwl -0x262(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x268(%rbp)
movzwl -0x262(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     2dc5 <c_blit_write+0x1cb5>
movzwl -0x262(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     2dc5 <c_blit_write+0x1cb5>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    2dc0 <c_blit_write+0x1cb0>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x26a(%rbp)
movzwl -0x26a(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x270(%rbp)
movzwl -0x26a(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     2daa <c_blit_write+0x1c9a>
movzwl -0x26a(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     2daa <c_blit_write+0x1c9a>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x274(%rbp)
mov    -0x260(%rbp),%eax
add    -0x274(%rbp),%eax
mov    %eax,-0x278(%rbp)
mov    -0x268(%rbp),%eax
add    -0x274(%rbp),%eax
mov    %eax,-0x27c(%rbp)
mov    -0x270(%rbp),%eax
add    -0x268(%rbp),%eax
mov    %eax,-0x280(%rbp)
mov    -0x8(%rbp),%rax
mov    -0x280(%rbp),%ecx
mov    (%rax,%rcx,1),%eax
and    $0xffffff00,%eax
mov    0x50(%rbp),%ecx
and    $0xffffff00,%ecx
cmp    %ecx,%eax
jne    2da5 <c_blit_write+0x1c95>
mov    0x10(%rbp),%rax
mov    -0x278(%rbp),%ecx
mov    (%rax,%rcx,1),%edx
mov    -0x8(%rbp),%rax
mov    -0x280(%rbp),%ecx
mov    %edx,(%rax,%rcx,1)
jmp    2daa <c_blit_write+0x1c9a>
jmp    2daf <c_blit_write+0x1c9f>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    2cba <c_blit_write+0x1baa>
jmp    2dc5 <c_blit_write+0x1cb5>
jmp    2dca <c_blit_write+0x1cba>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    2c42 <c_blit_write+0x1b32>
jmp    316b <c_blit_write+0x205b>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    2fbb <c_blit_write+0x1eab>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x284(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x286(%rbp)
movzwl -0x286(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x28c(%rbp)
movzwl -0x286(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     2fa5 <c_blit_write+0x1e95>
movzwl -0x286(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     2fa5 <c_blit_write+0x1e95>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    2fa0 <c_blit_write+0x1e90>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x28e(%rbp)
movzwl -0x28e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x294(%rbp)
movzwl -0x28e(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     2f8a <c_blit_write+0x1e7a>
movzwl -0x28e(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     2f8a <c_blit_write+0x1e7a>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x298(%rbp)
mov    -0x284(%rbp),%eax
add    -0x298(%rbp),%eax
mov    %eax,-0x29c(%rbp)
mov    -0x28c(%rbp),%eax
add    -0x298(%rbp),%eax
mov    %eax,-0x2a0(%rbp)
mov    -0x294(%rbp),%eax
add    -0x28c(%rbp),%eax
mov    %eax,-0x2a4(%rbp)
mov    -0x8(%rbp),%rax
mov    -0x294(%rbp),%ecx
add    %rcx,%rax
mov    -0x2a0(%rbp),%ecx
mov    (%rax,%rcx,1),%eax
mov    0x50(%rbp),%ecx
and    $0xffffff00,%ecx
cmp    %ecx,%eax
jne    2f85 <c_blit_write+0x1e75>
mov    0x10(%rbp),%rax
mov    -0x29c(%rbp),%ecx
mov    (%rax,%rcx,1),%dl
mov    -0x8(%rbp),%rax
mov    -0x2a4(%rbp),%ecx
mov    %dl,(%rax,%rcx,1)
mov    0x10(%rbp),%rax
mov    -0x29c(%rbp),%ecx
mov    0x1(%rax,%rcx,1),%dl
mov    -0x8(%rbp),%rax
mov    -0x2a4(%rbp),%ecx
mov    %dl,0x1(%rax,%rcx,1)
mov    0x10(%rbp),%rax
mov    -0x29c(%rbp),%ecx
mov    0x2(%rax,%rcx,1),%dl
mov    -0x8(%rbp),%rax
mov    -0x2a4(%rbp),%ecx
mov    %dl,0x2(%rax,%rcx,1)
jmp    2f8a <c_blit_write+0x1e7a>
jmp    2f8f <c_blit_write+0x1e7f>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    2e5e <c_blit_write+0x1d4e>
jmp    2fa5 <c_blit_write+0x1e95>
jmp    2faa <c_blit_write+0x1e9a>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    2de6 <c_blit_write+0x1cd6>
jmp    316b <c_blit_write+0x205b>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    3166 <c_blit_write+0x2056>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x2a8(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x2aa(%rbp)
movzwl -0x2aa(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x2b0(%rbp)
movzwl -0x2aa(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     3150 <c_blit_write+0x2040>
movzwl -0x2aa(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     3150 <c_blit_write+0x2040>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    314b <c_blit_write+0x203b>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x2b2(%rbp)
movzwl -0x2b2(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x2b8(%rbp)
movzwl -0x2b2(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     3135 <c_blit_write+0x2025>
movzwl -0x2b2(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     3135 <c_blit_write+0x2025>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x2bc(%rbp)
mov    -0x2a8(%rbp),%eax
add    -0x2bc(%rbp),%eax
mov    %eax,-0x2c0(%rbp)
mov    -0x2b0(%rbp),%eax
add    -0x2bc(%rbp),%eax
mov    %eax,-0x2c4(%rbp)
mov    -0x2b8(%rbp),%eax
add    -0x2b0(%rbp),%eax
mov    %eax,-0x2c8(%rbp)
mov    -0x8(%rbp),%rax
mov    -0x2b8(%rbp),%ecx
add    %rcx,%rax
mov    -0x2c4(%rbp),%ecx
movzwl (%rax,%rcx,1),%eax
mov    0x50(%rbp),%ecx
and    $0xffff,%ecx
cmp    %ecx,%eax
jne    3130 <c_blit_write+0x2020>
mov    0x10(%rbp),%rax
mov    -0x2c0(%rbp),%ecx
mov    (%rax,%rcx,1),%dx
mov    -0x8(%rbp),%rax
mov    -0x2c8(%rbp),%ecx
mov    %dx,(%rax,%rcx,1)
jmp    3135 <c_blit_write+0x2025>
jmp    313a <c_blit_write+0x202a>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    303e <c_blit_write+0x1f2e>
jmp    3150 <c_blit_write+0x2040>
jmp    3155 <c_blit_write+0x2045>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    2fc6 <c_blit_write+0x1eb6>
jmp    316b <c_blit_write+0x205b>
jmp    4ea3 <c_blit_write+0x3d93>
movzbl 0x38(%rbp),%eax
mov    %eax,-0x544(%rbp)
sub    $0x2,%eax
je     3733 <c_blit_write+0x2623>
jmp    3188 <c_blit_write+0x2078>
mov    -0x544(%rbp),%eax
sub    $0x3,%eax
je     3491 <c_blit_write+0x2381>
jmp    319c <c_blit_write+0x208c>
mov    -0x544(%rbp),%eax
sub    $0x4,%eax
jne    39f3 <c_blit_write+0x28e3>
jmp    31b0 <c_blit_write+0x20a0>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    348c <c_blit_write+0x237c>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x2cc(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x2ce(%rbp)
movzwl -0x2ce(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x2d4(%rbp)
movzwl -0x2ce(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     3476 <c_blit_write+0x2366>
movzwl -0x2ce(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     3476 <c_blit_write+0x2366>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    3471 <c_blit_write+0x2361>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x2d6(%rbp)
movzwl -0x2d6(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x2dc(%rbp)
movzwl -0x2d6(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     345b <c_blit_write+0x234b>
movzwl -0x2d6(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     345b <c_blit_write+0x234b>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x2e0(%rbp)
mov    -0x2cc(%rbp),%eax
add    -0x2e0(%rbp),%eax
mov    %eax,-0x2e4(%rbp)
mov    -0x2d4(%rbp),%eax
add    -0x2e0(%rbp),%eax
mov    %eax,-0x2e8(%rbp)
mov    -0x2dc(%rbp),%eax
add    -0x2d4(%rbp),%eax
mov    %eax,-0x2ec(%rbp)
mov    -0x8(%rbp),%rax
mov    -0x2ec(%rbp),%ecx
mov    (%rax,%rcx,1),%eax
mov    %eax,-0x2f0(%rbp)
mov    -0x2f0(%rbp),%eax
and    $0xff,%eax
mov    %al,-0x2f1(%rbp)
mov    -0x2f0(%rbp),%eax
shr    $0x8,%eax
and    $0xff,%eax
mov    %al,-0x2f2(%rbp)
mov    -0x2f0(%rbp),%eax
shr    $0x10,%eax
and    $0xff,%eax
mov    %al,-0x2f3(%rbp)
mov    0x10(%rbp),%rax
mov    -0x2e4(%rbp),%ecx
mov    (%rax,%rcx,1),%eax
mov    %eax,-0x2f8(%rbp)
mov    -0x2f8(%rbp),%eax
and    $0xff,%eax
mov    %al,-0x2f9(%rbp)
mov    -0x2f8(%rbp),%eax
shr    $0x8,%eax
and    $0xff,%eax
mov    %al,-0x2fa(%rbp)
mov    -0x2f8(%rbp),%eax
shr    $0x10,%eax
and    $0xff,%eax
mov    %al,-0x2fb(%rbp)
mov    -0x2f8(%rbp),%eax
shr    $0x18,%eax
and    $0xff,%eax
mov    %al,-0x2fc(%rbp)
movzbl -0x2fc(%rbp),%ecx
mov    $0xff,%eax
sub    %ecx,%eax
mov    %al,-0x2fd(%rbp)
movzbl -0x2f9(%rbp),%eax
movzbl -0x2fc(%rbp),%ecx
imul   %ecx,%eax
movzbl -0x2f1(%rbp),%ecx
movzbl -0x2fd(%rbp),%edx
imul   %edx,%ecx
add    %ecx,%eax
sar    $0x8,%eax
mov    %al,-0x2f1(%rbp)
movzbl -0x2fa(%rbp),%eax
movzbl -0x2fc(%rbp),%ecx
imul   %ecx,%eax
movzbl -0x2f2(%rbp),%ecx
movzbl -0x2fd(%rbp),%edx
imul   %edx,%ecx
add    %ecx,%eax
sar    $0x8,%eax
mov    %al,-0x2f2(%rbp)
movzbl -0x2fb(%rbp),%eax
movzbl -0x2fc(%rbp),%ecx
imul   %ecx,%eax
movzbl -0x2f3(%rbp),%ecx
movzbl -0x2fd(%rbp),%edx
imul   %edx,%ecx
add    %ecx,%eax
sar    $0x8,%eax
mov    %al,-0x2f3(%rbp)
movzbl -0x2f1(%rbp),%edx
movzbl -0x2f2(%rbp),%eax
shl    $0x8,%eax
or     %eax,%edx
movzbl -0x2f3(%rbp),%eax
shl    $0x10,%eax
or     %eax,%edx
movzbl -0x2fc(%rbp),%eax
shl    $0x18,%eax
or     %eax,%edx
mov    -0x8(%rbp),%rax
mov    -0x2ec(%rbp),%ecx
mov    %edx,(%rax,%rcx,1)
jmp    3460 <c_blit_write+0x2350>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    322e <c_blit_write+0x211e>
jmp    3476 <c_blit_write+0x2366>
jmp    347b <c_blit_write+0x236b>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    31b6 <c_blit_write+0x20a6>
jmp    39f3 <c_blit_write+0x28e3>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    372e <c_blit_write+0x261e>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x304(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x306(%rbp)
movzwl -0x306(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x30c(%rbp)
movzwl -0x306(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     3718 <c_blit_write+0x2608>
movzwl -0x306(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     3718 <c_blit_write+0x2608>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    3713 <c_blit_write+0x2603>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x30e(%rbp)
movzwl -0x30e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x314(%rbp)
movzwl -0x30e(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     36fd <c_blit_write+0x25ed>
movzwl -0x30e(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     36fd <c_blit_write+0x25ed>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x318(%rbp)
mov    -0x304(%rbp),%eax
add    -0x318(%rbp),%eax
mov    %eax,-0x31c(%rbp)
mov    -0x30c(%rbp),%eax
add    -0x318(%rbp),%eax
mov    %eax,-0x320(%rbp)
mov    -0x314(%rbp),%eax
add    -0x30c(%rbp),%eax
mov    %eax,-0x324(%rbp)
mov    -0x8(%rbp),%rax
mov    -0x324(%rbp),%ecx
mov    (%rax,%rcx,1),%al
mov    %al,-0x325(%rbp)
mov    -0x8(%rbp),%rax
mov    -0x324(%rbp),%ecx
mov    0x1(%rax,%rcx,1),%al
mov    %al,-0x326(%rbp)
mov    -0x8(%rbp),%rax
mov    -0x324(%rbp),%ecx
mov    0x2(%rax,%rcx,1),%al
mov    %al,-0x327(%rbp)
mov    0x10(%rbp),%rax
mov    -0x31c(%rbp),%ecx
mov    (%rax,%rcx,1),%al
mov    %al,-0x328(%rbp)
mov    0x10(%rbp),%rax
mov    -0x31c(%rbp),%ecx
mov    0x1(%rax,%rcx,1),%al
mov    %al,-0x329(%rbp)
mov    0x10(%rbp),%rax
mov    -0x31c(%rbp),%ecx
mov    0x2(%rax,%rcx,1),%al
mov    %al,-0x32a(%rbp)
movzbl 0x48(%rbp),%ecx
mov    $0xff,%eax
sub    %ecx,%eax
mov    %al,-0x32b(%rbp)
movzbl -0x328(%rbp),%eax
movzbl 0x48(%rbp),%ecx
imul   %ecx,%eax
movzbl -0x325(%rbp),%ecx
movzbl -0x32b(%rbp),%edx
imul   %edx,%ecx
add    %ecx,%eax
sar    $0x8,%eax
mov    %al,-0x325(%rbp)
movzbl -0x329(%rbp),%eax
movzbl 0x48(%rbp),%ecx
imul   %ecx,%eax
movzbl -0x326(%rbp),%ecx
movzbl -0x32b(%rbp),%edx
imul   %edx,%ecx
add    %ecx,%eax
sar    $0x8,%eax
mov    %al,-0x326(%rbp)
movzbl -0x32a(%rbp),%eax
movzbl 0x48(%rbp),%ecx
imul   %ecx,%eax
movzbl -0x327(%rbp),%ecx
movzbl -0x32b(%rbp),%edx
imul   %edx,%ecx
add    %ecx,%eax
sar    $0x8,%eax
mov    %al,-0x327(%rbp)
mov    -0x325(%rbp),%dl
mov    -0x8(%rbp),%rax
mov    -0x324(%rbp),%ecx
mov    %dl,(%rax,%rcx,1)
mov    -0x326(%rbp),%dl
mov    -0x8(%rbp),%rax
mov    -0x324(%rbp),%ecx
mov    %dl,0x1(%rax,%rcx,1)
mov    -0x327(%rbp),%dl
mov    -0x8(%rbp),%rax
mov    -0x324(%rbp),%ecx
mov    %dl,0x2(%rax,%rcx,1)
jmp    3702 <c_blit_write+0x25f2>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    350f <c_blit_write+0x23ff>
jmp    3718 <c_blit_write+0x2608>
jmp    371d <c_blit_write+0x260d>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    3497 <c_blit_write+0x2387>
jmp    39f3 <c_blit_write+0x28e3>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    39ee <c_blit_write+0x28de>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x330(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x332(%rbp)
movzwl -0x332(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x338(%rbp)
movzwl -0x332(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     39d8 <c_blit_write+0x28c8>
movzwl -0x332(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     39d8 <c_blit_write+0x28c8>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    39d3 <c_blit_write+0x28c3>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x33a(%rbp)
movzwl -0x33a(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x340(%rbp)
movzwl -0x33a(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     39bd <c_blit_write+0x28ad>
movzwl -0x33a(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     39bd <c_blit_write+0x28ad>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x344(%rbp)
mov    -0x330(%rbp),%eax
add    -0x344(%rbp),%eax
mov    %eax,-0x348(%rbp)
mov    -0x338(%rbp),%eax
add    -0x344(%rbp),%eax
mov    %eax,-0x34c(%rbp)
mov    -0x340(%rbp),%eax
add    -0x338(%rbp),%eax
mov    %eax,-0x350(%rbp)
mov    -0x8(%rbp),%rax
mov    -0x350(%rbp),%ecx
mov    (%rax,%rcx,1),%ax
mov    %ax,-0x352(%rbp)
movzwl -0x352(%rbp),%eax
and    $0x1f,%eax
mov    %ax,-0x354(%rbp)
movzwl -0x352(%rbp),%eax
sar    $0x5,%eax
and    $0x3f,%eax
mov    %ax,-0x356(%rbp)
movzwl -0x352(%rbp),%eax
sar    $0xb,%eax
and    $0x1f,%eax
mov    %ax,-0x358(%rbp)
mov    0x10(%rbp),%rax
mov    -0x348(%rbp),%ecx
mov    (%rax,%rcx,1),%ax
mov    %ax,-0x352(%rbp)
movzwl -0x352(%rbp),%eax
and    $0x1f,%eax
mov    %ax,-0x35a(%rbp)
movzwl -0x352(%rbp),%eax
sar    $0x5,%eax
and    $0x3f,%eax
mov    %ax,-0x35c(%rbp)
movzwl -0x352(%rbp),%eax
sar    $0xb,%eax
and    $0x1f,%eax
mov    %ax,-0x35e(%rbp)
movzbl 0x48(%rbp),%ecx
mov    $0xff,%eax
sub    %ecx,%eax
mov    %al,-0x35f(%rbp)
movzwl -0x35a(%rbp),%eax
movzbl 0x48(%rbp),%ecx
imul   %ecx,%eax
movzwl -0x354(%rbp),%ecx
movzbl -0x35f(%rbp),%edx
imul   %edx,%ecx
add    %ecx,%eax
sar    $0x8,%eax
mov    %ax,-0x354(%rbp)
movzwl -0x35c(%rbp),%eax
movzbl 0x48(%rbp),%ecx
imul   %ecx,%eax
movzwl -0x356(%rbp),%ecx
movzbl -0x35f(%rbp),%edx
imul   %edx,%ecx
add    %ecx,%eax
sar    $0x8,%eax
mov    %ax,-0x356(%rbp)
movzwl -0x35e(%rbp),%eax
movzbl 0x48(%rbp),%ecx
imul   %ecx,%eax
movzwl -0x358(%rbp),%ecx
movzbl -0x35f(%rbp),%edx
imul   %edx,%ecx
add    %ecx,%eax
sar    $0x8,%eax
mov    %ax,-0x358(%rbp)
movzwl -0x358(%rbp),%eax
shl    $0xb,%eax
movzwl -0x356(%rbp),%ecx
shl    $0x5,%ecx
or     %ecx,%eax
movzwl -0x354(%rbp),%ecx
or     %ecx,%eax
mov    %ax,%dx
mov    -0x8(%rbp),%rax
mov    -0x350(%rbp),%ecx
mov    %dx,(%rax,%rcx,1)
jmp    39c2 <c_blit_write+0x28b2>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    37b1 <c_blit_write+0x26a1>
jmp    39d8 <c_blit_write+0x28c8>
jmp    39dd <c_blit_write+0x28cd>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    3739 <c_blit_write+0x2629>
jmp    39f3 <c_blit_write+0x28e3>
jmp    4ea3 <c_blit_write+0x3d93>
movzbl 0x38(%rbp),%eax
mov    %eax,-0x548(%rbp)
sub    $0x2,%eax
je     3d82 <c_blit_write+0x2c72>
jmp    3a10 <c_blit_write+0x2900>
mov    -0x548(%rbp),%eax
sub    $0x3,%eax
je     3bb7 <c_blit_write+0x2aa7>
jmp    3a24 <c_blit_write+0x2914>
mov    -0x548(%rbp),%eax
sub    $0x4,%eax
jne    3f06 <c_blit_write+0x2df6>
jmp    3a38 <c_blit_write+0x2928>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    3bb2 <c_blit_write+0x2aa2>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x364(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x366(%rbp)
movzwl -0x366(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x36c(%rbp)
movzwl -0x366(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     3b9c <c_blit_write+0x2a8c>
movzwl -0x366(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     3b9c <c_blit_write+0x2a8c>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    3b97 <c_blit_write+0x2a87>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x36e(%rbp)
movzwl -0x36e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x374(%rbp)
movzwl -0x36e(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     3b81 <c_blit_write+0x2a71>
movzwl -0x36e(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     3b81 <c_blit_write+0x2a71>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x378(%rbp)
mov    -0x364(%rbp),%eax
add    -0x378(%rbp),%eax
mov    %eax,-0x37c(%rbp)
mov    -0x36c(%rbp),%eax
add    -0x378(%rbp),%eax
mov    %eax,-0x380(%rbp)
mov    -0x374(%rbp),%eax
add    -0x36c(%rbp),%eax
mov    %eax,-0x384(%rbp)
mov    0x10(%rbp),%rax
mov    -0x37c(%rbp),%ecx
mov    (%rax,%rcx,1),%edx
mov    -0x8(%rbp),%rax
mov    -0x384(%rbp),%ecx
add    (%rax,%rcx,1),%edx
mov    %edx,(%rax,%rcx,1)
jmp    3b86 <c_blit_write+0x2a76>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    3ab6 <c_blit_write+0x29a6>
jmp    3b9c <c_blit_write+0x2a8c>
jmp    3ba1 <c_blit_write+0x2a91>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    3a3e <c_blit_write+0x292e>
jmp    3f06 <c_blit_write+0x2df6>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    3d7d <c_blit_write+0x2c6d>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x388(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x38a(%rbp)
movzwl -0x38a(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x390(%rbp)
movzwl -0x38a(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     3d67 <c_blit_write+0x2c57>
movzwl -0x38a(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     3d67 <c_blit_write+0x2c57>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    3d62 <c_blit_write+0x2c52>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x392(%rbp)
movzwl -0x392(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x398(%rbp)
movzwl -0x392(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     3d4c <c_blit_write+0x2c3c>
movzwl -0x392(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     3d4c <c_blit_write+0x2c3c>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x39c(%rbp)
mov    -0x388(%rbp),%eax
add    -0x39c(%rbp),%eax
mov    %eax,-0x3a0(%rbp)
mov    -0x390(%rbp),%eax
add    -0x39c(%rbp),%eax
mov    %eax,-0x3a4(%rbp)
mov    -0x398(%rbp),%eax
add    -0x390(%rbp),%eax
mov    %eax,-0x3a8(%rbp)
mov    0x10(%rbp),%rax
mov    -0x3a0(%rbp),%ecx
movsbl (%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0x3a8(%rbp),%ecx
movsbl (%rax,%rcx,1),%edx
add    %esi,%edx
mov    %dl,(%rax,%rcx,1)
mov    0x10(%rbp),%rax
mov    -0x3a0(%rbp),%ecx
movsbl 0x1(%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0x3a8(%rbp),%ecx
movsbl 0x1(%rax,%rcx,1),%edx
add    %esi,%edx
mov    %dl,0x1(%rax,%rcx,1)
mov    0x10(%rbp),%rax
mov    -0x3a0(%rbp),%ecx
movsbl 0x2(%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0x3a8(%rbp),%ecx
movsbl 0x2(%rax,%rcx,1),%edx
add    %esi,%edx
mov    %dl,0x2(%rax,%rcx,1)
jmp    3d51 <c_blit_write+0x2c41>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    3c35 <c_blit_write+0x2b25>
jmp    3d67 <c_blit_write+0x2c57>
jmp    3d6c <c_blit_write+0x2c5c>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    3bbd <c_blit_write+0x2aad>
jmp    3f06 <c_blit_write+0x2df6>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    3f01 <c_blit_write+0x2df1>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x3ac(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x3ae(%rbp)
movzwl -0x3ae(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x3b4(%rbp)
movzwl -0x3ae(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     3eeb <c_blit_write+0x2ddb>
movzwl -0x3ae(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     3eeb <c_blit_write+0x2ddb>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    3ee6 <c_blit_write+0x2dd6>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x3b6(%rbp)
movzwl -0x3b6(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x3bc(%rbp)
movzwl -0x3b6(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     3ed0 <c_blit_write+0x2dc0>
movzwl -0x3b6(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     3ed0 <c_blit_write+0x2dc0>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x3c0(%rbp)
mov    -0x3ac(%rbp),%eax
add    -0x3c0(%rbp),%eax
mov    %eax,-0x3c4(%rbp)
mov    -0x3b4(%rbp),%eax
add    -0x3c0(%rbp),%eax
mov    %eax,-0x3c8(%rbp)
mov    -0x3bc(%rbp),%eax
add    -0x3b4(%rbp),%eax
mov    %eax,-0x3cc(%rbp)
mov    0x10(%rbp),%rax
mov    -0x3c4(%rbp),%ecx
movzwl (%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0x3cc(%rbp),%ecx
movzwl (%rax,%rcx,1),%edx
add    %esi,%edx
mov    %dx,(%rax,%rcx,1)
jmp    3ed5 <c_blit_write+0x2dc5>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    3e00 <c_blit_write+0x2cf0>
jmp    3eeb <c_blit_write+0x2ddb>
jmp    3ef0 <c_blit_write+0x2de0>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    3d88 <c_blit_write+0x2c78>
jmp    3f06 <c_blit_write+0x2df6>
jmp    4ea3 <c_blit_write+0x3d93>
movzbl 0x38(%rbp),%eax
mov    %eax,-0x54c(%rbp)
sub    $0x2,%eax
je     4297 <c_blit_write+0x3187>
jmp    3f23 <c_blit_write+0x2e13>
mov    -0x54c(%rbp),%eax
sub    $0x3,%eax
je     40cc <c_blit_write+0x2fbc>
jmp    3f37 <c_blit_write+0x2e27>
mov    -0x54c(%rbp),%eax
sub    $0x4,%eax
jne    441b <c_blit_write+0x330b>
jmp    3f4b <c_blit_write+0x2e3b>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    40c7 <c_blit_write+0x2fb7>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x3d0(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x3d2(%rbp)
movzwl -0x3d2(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x3d8(%rbp)
movzwl -0x3d2(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     40b1 <c_blit_write+0x2fa1>
movzwl -0x3d2(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     40b1 <c_blit_write+0x2fa1>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    40ac <c_blit_write+0x2f9c>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x3da(%rbp)
movzwl -0x3da(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x3e0(%rbp)
movzwl -0x3da(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     4096 <c_blit_write+0x2f86>
movzwl -0x3da(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     4096 <c_blit_write+0x2f86>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x3e4(%rbp)
mov    -0x3d0(%rbp),%eax
add    -0x3e4(%rbp),%eax
mov    %eax,-0x3e8(%rbp)
mov    -0x3d8(%rbp),%eax
add    -0x3e4(%rbp),%eax
mov    %eax,-0x3ec(%rbp)
mov    -0x3e0(%rbp),%eax
add    -0x3d8(%rbp),%eax
mov    %eax,-0x3f0(%rbp)
mov    0x10(%rbp),%rax
mov    -0x3e8(%rbp),%ecx
mov    (%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0x3f0(%rbp),%ecx
mov    (%rax,%rcx,1),%edx
sub    %esi,%edx
mov    %edx,(%rax,%rcx,1)
jmp    409b <c_blit_write+0x2f8b>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    3fc9 <c_blit_write+0x2eb9>
jmp    40b1 <c_blit_write+0x2fa1>
jmp    40b6 <c_blit_write+0x2fa6>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    3f51 <c_blit_write+0x2e41>
jmp    441b <c_blit_write+0x330b>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    4292 <c_blit_write+0x3182>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x3f4(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x3f6(%rbp)
movzwl -0x3f6(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x3fc(%rbp)
movzwl -0x3f6(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     427c <c_blit_write+0x316c>
movzwl -0x3f6(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     427c <c_blit_write+0x316c>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    4277 <c_blit_write+0x3167>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x3fe(%rbp)
movzwl -0x3fe(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x404(%rbp)
movzwl -0x3fe(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     4261 <c_blit_write+0x3151>
movzwl -0x3fe(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     4261 <c_blit_write+0x3151>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x408(%rbp)
mov    -0x3f4(%rbp),%eax
add    -0x408(%rbp),%eax
mov    %eax,-0x40c(%rbp)
mov    -0x3fc(%rbp),%eax
add    -0x408(%rbp),%eax
mov    %eax,-0x410(%rbp)
mov    -0x404(%rbp),%eax
add    -0x3fc(%rbp),%eax
mov    %eax,-0x414(%rbp)
mov    0x10(%rbp),%rax
mov    -0x40c(%rbp),%ecx
movsbl (%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0x414(%rbp),%ecx
movsbl (%rax,%rcx,1),%edx
sub    %esi,%edx
mov    %dl,(%rax,%rcx,1)
mov    0x10(%rbp),%rax
mov    -0x40c(%rbp),%ecx
movsbl 0x1(%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0x414(%rbp),%ecx
movsbl 0x1(%rax,%rcx,1),%edx
sub    %esi,%edx
mov    %dl,0x1(%rax,%rcx,1)
mov    0x10(%rbp),%rax
mov    -0x40c(%rbp),%ecx
movsbl 0x2(%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0x414(%rbp),%ecx
movsbl 0x2(%rax,%rcx,1),%edx
sub    %esi,%edx
mov    %dl,0x2(%rax,%rcx,1)
jmp    4266 <c_blit_write+0x3156>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    414a <c_blit_write+0x303a>
jmp    427c <c_blit_write+0x316c>
jmp    4281 <c_blit_write+0x3171>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    40d2 <c_blit_write+0x2fc2>
jmp    441b <c_blit_write+0x330b>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    4416 <c_blit_write+0x3306>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x418(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x41a(%rbp)
movzwl -0x41a(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x420(%rbp)
movzwl -0x41a(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     4400 <c_blit_write+0x32f0>
movzwl -0x41a(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     4400 <c_blit_write+0x32f0>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    43fb <c_blit_write+0x32eb>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x422(%rbp)
movzwl -0x422(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x428(%rbp)
movzwl -0x422(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     43e5 <c_blit_write+0x32d5>
movzwl -0x422(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     43e5 <c_blit_write+0x32d5>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x42c(%rbp)
mov    -0x418(%rbp),%eax
add    -0x42c(%rbp),%eax
mov    %eax,-0x430(%rbp)
mov    -0x420(%rbp),%eax
add    -0x42c(%rbp),%eax
mov    %eax,-0x434(%rbp)
mov    -0x428(%rbp),%eax
add    -0x420(%rbp),%eax
mov    %eax,-0x438(%rbp)
mov    0x10(%rbp),%rax
mov    -0x430(%rbp),%ecx
movzwl (%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0x438(%rbp),%ecx
movzwl (%rax,%rcx,1),%edx
sub    %esi,%edx
mov    %dx,(%rax,%rcx,1)
jmp    43ea <c_blit_write+0x32da>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    4315 <c_blit_write+0x3205>
jmp    4400 <c_blit_write+0x32f0>
jmp    4405 <c_blit_write+0x32f5>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    429d <c_blit_write+0x318d>
jmp    441b <c_blit_write+0x330b>
jmp    4ea3 <c_blit_write+0x3d93>
movzbl 0x38(%rbp),%eax
mov    %eax,-0x550(%rbp)
sub    $0x2,%eax
je     47ae <c_blit_write+0x369e>
jmp    4438 <c_blit_write+0x3328>
mov    -0x550(%rbp),%eax
sub    $0x3,%eax
je     45e0 <c_blit_write+0x34d0>
jmp    444c <c_blit_write+0x333c>
mov    -0x550(%rbp),%eax
sub    $0x4,%eax
jne    4933 <c_blit_write+0x3823>
jmp    4460 <c_blit_write+0x3350>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    45db <c_blit_write+0x34cb>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x43c(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x43e(%rbp)
movzwl -0x43e(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x444(%rbp)
movzwl -0x43e(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     45c5 <c_blit_write+0x34b5>
movzwl -0x43e(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     45c5 <c_blit_write+0x34b5>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    45c0 <c_blit_write+0x34b0>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x446(%rbp)
movzwl -0x446(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x44c(%rbp)
movzwl -0x446(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     45aa <c_blit_write+0x349a>
movzwl -0x446(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     45aa <c_blit_write+0x349a>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x450(%rbp)
mov    -0x43c(%rbp),%eax
add    -0x450(%rbp),%eax
mov    %eax,-0x454(%rbp)
mov    -0x444(%rbp),%eax
add    -0x450(%rbp),%eax
mov    %eax,-0x458(%rbp)
mov    -0x44c(%rbp),%eax
add    -0x444(%rbp),%eax
mov    %eax,-0x45c(%rbp)
mov    0x10(%rbp),%rax
mov    -0x454(%rbp),%ecx
mov    (%rax,%rcx,1),%edx
mov    -0x8(%rbp),%rax
mov    -0x45c(%rbp),%ecx
imul   (%rax,%rcx,1),%edx
mov    %edx,(%rax,%rcx,1)
jmp    45af <c_blit_write+0x349f>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    44de <c_blit_write+0x33ce>
jmp    45c5 <c_blit_write+0x34b5>
jmp    45ca <c_blit_write+0x34ba>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    4466 <c_blit_write+0x3356>
jmp    4933 <c_blit_write+0x3823>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    47a9 <c_blit_write+0x3699>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x460(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x462(%rbp)
movzwl -0x462(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x468(%rbp)
movzwl -0x462(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     4793 <c_blit_write+0x3683>
movzwl -0x462(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     4793 <c_blit_write+0x3683>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    478e <c_blit_write+0x367e>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x46a(%rbp)
movzwl -0x46a(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x470(%rbp)
movzwl -0x46a(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     4778 <c_blit_write+0x3668>
movzwl -0x46a(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     4778 <c_blit_write+0x3668>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x474(%rbp)
mov    -0x460(%rbp),%eax
add    -0x474(%rbp),%eax
mov    %eax,-0x478(%rbp)
mov    -0x468(%rbp),%eax
add    -0x474(%rbp),%eax
mov    %eax,-0x47c(%rbp)
mov    -0x470(%rbp),%eax
add    -0x468(%rbp),%eax
mov    %eax,-0x480(%rbp)
mov    0x10(%rbp),%rax
mov    -0x478(%rbp),%ecx
movsbl (%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0x480(%rbp),%ecx
movsbl (%rax,%rcx,1),%edx
imul   %esi,%edx
mov    %dl,(%rax,%rcx,1)
mov    0x10(%rbp),%rax
mov    -0x478(%rbp),%ecx
movsbl 0x1(%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0x480(%rbp),%ecx
movsbl 0x1(%rax,%rcx,1),%edx
imul   %esi,%edx
mov    %dl,0x1(%rax,%rcx,1)
mov    0x10(%rbp),%rax
mov    -0x478(%rbp),%ecx
movsbl 0x2(%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0x480(%rbp),%ecx
movsbl 0x2(%rax,%rcx,1),%edx
imul   %esi,%edx
mov    %dl,0x2(%rax,%rcx,1)
jmp    477d <c_blit_write+0x366d>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    465e <c_blit_write+0x354e>
jmp    4793 <c_blit_write+0x3683>
jmp    4798 <c_blit_write+0x3688>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    45e6 <c_blit_write+0x34d6>
jmp    4933 <c_blit_write+0x3823>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    492e <c_blit_write+0x381e>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x484(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x486(%rbp)
movzwl -0x486(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x48c(%rbp)
movzwl -0x486(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     4918 <c_blit_write+0x3808>
movzwl -0x486(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     4918 <c_blit_write+0x3808>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    4913 <c_blit_write+0x3803>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x48e(%rbp)
movzwl -0x48e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x494(%rbp)
movzwl -0x48e(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     48fd <c_blit_write+0x37ed>
movzwl -0x48e(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     48fd <c_blit_write+0x37ed>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x498(%rbp)
mov    -0x484(%rbp),%eax
add    -0x498(%rbp),%eax
mov    %eax,-0x49c(%rbp)
mov    -0x48c(%rbp),%eax
add    -0x498(%rbp),%eax
mov    %eax,-0x4a0(%rbp)
mov    -0x494(%rbp),%eax
add    -0x48c(%rbp),%eax
mov    %eax,-0x4a4(%rbp)
mov    0x10(%rbp),%rax
mov    -0x49c(%rbp),%ecx
movzwl (%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    -0x4a4(%rbp),%ecx
movzwl (%rax,%rcx,1),%edx
imul   %esi,%edx
mov    %dx,(%rax,%rcx,1)
jmp    4902 <c_blit_write+0x37f2>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    482c <c_blit_write+0x371c>
jmp    4918 <c_blit_write+0x3808>
jmp    491d <c_blit_write+0x380d>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    47b4 <c_blit_write+0x36a4>
jmp    4933 <c_blit_write+0x3823>
jmp    4ea3 <c_blit_write+0x3d93>
movzbl 0x38(%rbp),%eax
mov    %eax,-0x554(%rbp)
sub    $0x2,%eax
je     4d09 <c_blit_write+0x3bf9>
jmp    4950 <c_blit_write+0x3840>
mov    -0x554(%rbp),%eax
sub    $0x3,%eax
je     4b0b <c_blit_write+0x39fb>
jmp    4964 <c_blit_write+0x3854>
mov    -0x554(%rbp),%eax
sub    $0x4,%eax
jne    4e9e <c_blit_write+0x3d8e>
jmp    4978 <c_blit_write+0x3868>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    4b06 <c_blit_write+0x39f6>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x4a8(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x4aa(%rbp)
movzwl -0x4aa(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x4b0(%rbp)
movzwl -0x4aa(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     4af0 <c_blit_write+0x39e0>
movzwl -0x4aa(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     4af0 <c_blit_write+0x39e0>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    4aeb <c_blit_write+0x39db>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x4b2(%rbp)
movzwl -0x4b2(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x4b8(%rbp)
movzwl -0x4b2(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     4ad5 <c_blit_write+0x39c5>
movzwl -0x4b2(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     4ad5 <c_blit_write+0x39c5>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x4bc(%rbp)
mov    -0x4a8(%rbp),%eax
add    -0x4bc(%rbp),%eax
mov    %eax,-0x4c0(%rbp)
mov    -0x4b0(%rbp),%eax
add    -0x4bc(%rbp),%eax
mov    %eax,-0x4c4(%rbp)
mov    -0x4b8(%rbp),%eax
add    -0x4b0(%rbp),%eax
mov    %eax,-0x4c8(%rbp)
mov    0x10(%rbp),%rax
mov    -0x4c0(%rbp),%ecx
mov    (%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    %rax,-0x560(%rbp)
mov    -0x4c8(%rbp),%ecx
mov    (%rax,%rcx,1),%eax
xor    %edx,%edx
div    %esi
mov    %eax,%edx
mov    -0x560(%rbp),%rax
mov    %edx,(%rax,%rcx,1)
jmp    4ada <c_blit_write+0x39ca>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    49f6 <c_blit_write+0x38e6>
jmp    4af0 <c_blit_write+0x39e0>
jmp    4af5 <c_blit_write+0x39e5>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    497e <c_blit_write+0x386e>
jmp    4e9e <c_blit_write+0x3d8e>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    4d04 <c_blit_write+0x3bf4>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x4cc(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x4ce(%rbp)
movzwl -0x4ce(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x4d4(%rbp)
movzwl -0x4ce(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     4cee <c_blit_write+0x3bde>
movzwl -0x4ce(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     4cee <c_blit_write+0x3bde>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    4ce9 <c_blit_write+0x3bd9>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x4d6(%rbp)
movzwl -0x4d6(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x4dc(%rbp)
movzwl -0x4d6(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     4cd3 <c_blit_write+0x3bc3>
movzwl -0x4d6(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     4cd3 <c_blit_write+0x3bc3>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x4e0(%rbp)
mov    -0x4cc(%rbp),%eax
add    -0x4e0(%rbp),%eax
mov    %eax,-0x4e4(%rbp)
mov    -0x4d4(%rbp),%eax
add    -0x4e0(%rbp),%eax
mov    %eax,-0x4e8(%rbp)
mov    -0x4dc(%rbp),%eax
add    -0x4d4(%rbp),%eax
mov    %eax,-0x4ec(%rbp)
mov    0x10(%rbp),%rax
mov    -0x4e4(%rbp),%ecx
movsbl (%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    %rax,-0x578(%rbp)
mov    -0x4ec(%rbp),%ecx
movsbl (%rax,%rcx,1),%eax
cltd
idiv   %esi
mov    %eax,%edx
mov    -0x578(%rbp),%rax
mov    %dl,(%rax,%rcx,1)
mov    0x10(%rbp),%rax
mov    -0x4e4(%rbp),%ecx
movsbl 0x1(%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    %rax,-0x570(%rbp)
mov    -0x4ec(%rbp),%ecx
movsbl 0x1(%rax,%rcx,1),%eax
cltd
idiv   %esi
mov    %eax,%edx
mov    -0x570(%rbp),%rax
mov    %dl,0x1(%rax,%rcx,1)
mov    0x10(%rbp),%rax
mov    -0x4e4(%rbp),%ecx
movsbl 0x2(%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    %rax,-0x568(%rbp)
mov    -0x4ec(%rbp),%ecx
movsbl 0x2(%rax,%rcx,1),%eax
cltd
idiv   %esi
mov    %eax,%edx
mov    -0x568(%rbp),%rax
mov    %dl,0x2(%rax,%rcx,1)
jmp    4cd8 <c_blit_write+0x3bc8>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    4b89 <c_blit_write+0x3a79>
jmp    4cee <c_blit_write+0x3bde>
jmp    4cf3 <c_blit_write+0x3be3>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    4b11 <c_blit_write+0x3a01>
jmp    4e9e <c_blit_write+0x3d8e>
movw   $0x0,-0x20(%rbp)
movswl -0x20(%rbp),%eax
movswl 0x30(%rbp),%ecx
cmp    %ecx,%eax
jge    4e99 <c_blit_write+0x3d89>
movswl -0x20(%rbp),%eax
imul   -0x24(%rbp),%eax
mov    %eax,-0x4f0(%rbp)
movswl -0x18(%rbp),%eax
movswl -0x20(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x4f2(%rbp)
movzwl -0x4f2(%rbp),%eax
imul   -0x10(%rbp),%eax
mov    %eax,-0x4f8(%rbp)
movzwl -0x4f2(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x60(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     4e83 <c_blit_write+0x3d73>
movzwl -0x4f2(%rbp),%eax
movswl -0x14(%rbp),%ecx
movswl 0x70(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     4e83 <c_blit_write+0x3d73>
movw   $0x0,-0x1e(%rbp)
movswl -0x1e(%rbp),%eax
movswl 0x28(%rbp),%ecx
cmp    %ecx,%eax
jge    4e7e <c_blit_write+0x3d6e>
movswl -0x16(%rbp),%eax
movswl -0x1e(%rbp),%ecx
add    %ecx,%eax
mov    %ax,-0x4fa(%rbp)
movzwl -0x4fa(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x500(%rbp)
movzwl -0x4fa(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x58(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jl     4e68 <c_blit_write+0x3d58>
movzwl -0x4fa(%rbp),%eax
movswl -0x12(%rbp),%ecx
movswl 0x68(%rbp),%edx
add    %edx,%ecx
cmp    %ecx,%eax
jg     4e68 <c_blit_write+0x3d58>
movswl -0x1e(%rbp),%eax
movzbl 0x38(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x504(%rbp)
mov    -0x4f0(%rbp),%eax
add    -0x504(%rbp),%eax
mov    %eax,-0x508(%rbp)
mov    -0x4f8(%rbp),%eax
add    -0x504(%rbp),%eax
mov    %eax,-0x50c(%rbp)
mov    -0x500(%rbp),%eax
add    -0x4f8(%rbp),%eax
mov    %eax,-0x510(%rbp)
mov    0x10(%rbp),%rax
mov    -0x508(%rbp),%ecx
movzwl (%rax,%rcx,1),%esi
mov    -0x8(%rbp),%rax
mov    %rax,-0x580(%rbp)
mov    -0x510(%rbp),%ecx
movzwl (%rax,%rcx,1),%eax
cltd
idiv   %esi
mov    %eax,%edx
mov    -0x580(%rbp),%rax
mov    %dx,(%rax,%rcx,1)
jmp    4e6d <c_blit_write+0x3d5d>
mov    -0x1e(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x1e(%rbp)
jmp    4d87 <c_blit_write+0x3c77>
jmp    4e83 <c_blit_write+0x3d73>
jmp    4e88 <c_blit_write+0x3d78>
mov    -0x20(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x20(%rbp)
jmp    4d0f <c_blit_write+0x3bff>
jmp    4e9e <c_blit_write+0x3d8e>
jmp    4ea3 <c_blit_write+0x3d93>
jmp    4ea8 <c_blit_write+0x3d98>
add    $0x580,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<c_blit_write>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x68,%rsp
mov    %ecx,0x4(%rsp)
mov    %rdi,0x10(%rsp)
mov    0xc0(%rsp),%r15d
mov    0xb0(%rsp),%ebp
mov    0xa8(%rsp),%eax
mov    0xb8(%rsp),%edx
movzwl 0x100(%rsp),%r13d
movzwl 0xf8(%rsp),%r14d
mov    0xd0(%rsp),%cl
mov    0xc8(%rsp),%bl
movswl %dx,%edi
mov    %r15d,%esi
add    %ebp,%esi
mov    %ebp,%edx
add    %r9d,%edx
mov    %rdx,0x20(%rsp)
movzbl %bl,%edx
imul   %edx,%edi
mov    %edi,0x28(%rsp)
movzwl 0xf0(%rsp),%r10d
movzwl 0xe8(%rsp),%r11d
mov    0xa0(%rsp),%rdi
mov    %rdi,0x58(%rsp)
cmp    %r13w,%si
jg     1314 <c_blit_write+0x204>
cmp    %r10w,%bp
jl     1314 <c_blit_write+0x204>
test   %cl,%cl
jne    1314 <c_blit_write+0x204>
cmp    %r11w,%ax
jl     1314 <c_blit_write+0x204>
mov    0xb8(%rsp),%esi
add    %eax,%esi
cmp    %r14w,%si
jg     1314 <c_blit_write+0x204>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
add    %r8d,%eax
cwtl
imul   %eax,%edx
movswl 0x20(%rsp),%eax
mov    0x4(%rsp),%esi
imul   %esi,%eax
add    %edx,%eax
mov    0x10(%rsp),%rbp
add    %rax,%rbp
mov    0x28(%rsp),%r12d
mov    %esi,%eax
mov    %rax,0x10(%rsp)
lea    -0x1(%r15),%eax
mov    %r15d,%r13d
and    $0x3,%r13d
cmp    $0x3,%ax
jb     12d1 <c_blit_write+0x1c1>
mov    %r13d,0x4(%rsp)
and    $0xfffc,%r15d
lea    (%r12,%r12,2),%rax
mov    %rax,0x28(%rsp)
lea    (%r12,%r12,1),%rax
mov    %rax,0x20(%rsp)
mov    %r15,%rbx
mov    %rbp,%r15
mov    0xa0(%rsp),%rbp
mov    0x10(%rsp),%r13
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    %r15,%rdi
mov    %rbp,%rsi
mov    %r12,%rdx
call   1030 <memcpy@plt>
mov    %rbp,%r14
add    %r12,%rbp
add    %r13,%r15
mov    %r15,%rdi
mov    %rbp,%rsi
mov    %r12,%rdx
call   1030 <memcpy@plt>
add    %r12,%rbp
mov    0x20(%rsp),%rax
lea    (%r14,%rax,1),%rsi
add    %r13,%r15
mov    %r15,%rdi
mov    %r12,%rdx
call   1030 <memcpy@plt>
add    %r12,%rbp
add    0x28(%rsp),%r14
add    %r13,%r15
mov    %r15,%rdi
mov    %r14,%rsi
mov    %r12,%rdx
call   1030 <memcpy@plt>
add    %r12,%rbp
add    %r13,%r15
add    $0xfffc,%bx
jne    1260 <c_blit_write+0x150>
mov    %rbp,0x58(%rsp)
mov    %r15,%rbp
mov    0x4(%rsp),%r13d
test   %r13w,%r13w
mov    0x10(%rsp),%r14
je     1305 <c_blit_write+0x1f5>
nopl   0x0(%rax)
mov    %rbp,%rdi
mov    0x58(%rsp),%rbx
mov    %rbx,%rsi
mov    %r12,%rdx
call   1030 <memcpy@plt>
add    %r12,%rbx
mov    %rbx,0x58(%rsp)
add    %r14,%rbp
add    $0xffff,%r13w
jne    12e0 <c_blit_write+0x1d0>
add    $0x68,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
cmp    $0xa,%cl
ja     1305 <c_blit_write+0x1f5>
mov    0xe0(%rsp),%r12d
movzbl %cl,%ecx
lea    0x2cd5(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
cmp    $0x4,%bl
je     1e8c <c_blit_write+0xd7c>
cmp    $0x3,%bl
je     1f65 <c_blit_write+0xe55>
cmp    $0x2,%bl
jne    1305 <c_blit_write+0x1f5>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%r10d
add    %r9d,%r10d
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
movswl %r11w,%r11d
add    %r8d,%r11d
movswl %r14w,%r14d
add    %r8d,%r14d
movzwl %r15w,%r15d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x8(%rsp)
add    %eax,%r8d
xor    %r12d,%r12d
xor    %r13d,%r13d
jmp    13a2 <c_blit_write+0x292>
xchg   %ax,%ax
add    $0x1,%r13d
add    0x28(%rsp),%r12d
cmp    %r15d,%r13d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
lea    (%rax,%r13,1),%ecx
movzwl %cx,%edx
cmp    %edx,%r10d
jg     1390 <c_blit_write+0x280>
cmp    %edx,(%rsp)
jl     1390 <c_blit_write+0x280>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    1390 <c_blit_write+0x280>
imul   0x4(%rsp),%edx
mov    %r8d,%ecx
mov    0x8(%rsp),%rbp
mov    %r12d,%ebx
jmp    13ec <c_blit_write+0x2dc>
cs nopw 0x0(%rax,%rax,1)
add    $0x2,%ebx
add    $0x1,%ecx
add    $0xffffffffffffffff,%rbp
je     1390 <c_blit_write+0x280>
movzwl %cx,%ecx
cmp    %ecx,%r11d
jg     13e0 <c_blit_write+0x2d0>
cmp    %ecx,%r14d
jl     13e0 <c_blit_write+0x2d0>
lea    (%rdx,%rcx,2),%eax
mov    %ebx,%r9d
mov    0xa0(%rsp),%rsi
movzwl (%rsi,%r9,1),%edi
mov    0x10(%rsp),%rsi
mov    %di,(%rsi,%rax,1)
jmp    13e0 <c_blit_write+0x2d0>
cmp    $0x4,%bl
je     2059 <c_blit_write+0xf49>
cmp    $0x3,%bl
je     2125 <c_blit_write+0x1015>
cmp    $0x2,%bl
jne    1305 <c_blit_write+0x1f5>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%r10d
add    %r9d,%r10d
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
movswl %r11w,%r11d
add    %r8d,%r11d
movswl %r14w,%r14d
add    %r8d,%r14d
movzwl %r15w,%r15d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x8(%rsp)
add    %eax,%r8d
xor    %r12d,%r12d
xor    %r13d,%r13d
jmp    1492 <c_blit_write+0x382>
nopl   0x0(%rax)
add    $0x1,%r13d
add    0x28(%rsp),%r12d
cmp    %r15d,%r13d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
lea    (%rax,%r13,1),%ecx
movzwl %cx,%edx
cmp    %edx,%r10d
jg     1480 <c_blit_write+0x370>
cmp    %edx,(%rsp)
jl     1480 <c_blit_write+0x370>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    1480 <c_blit_write+0x370>
imul   0x4(%rsp),%edx
mov    %r8d,%ecx
mov    0x8(%rsp),%rbp
mov    %r12d,%ebx
jmp    14dc <c_blit_write+0x3cc>
cs nopw 0x0(%rax,%rax,1)
add    $0x2,%ebx
add    $0x1,%ecx
add    $0xffffffffffffffff,%rbp
je     1480 <c_blit_write+0x370>
movzwl %cx,%ecx
cmp    %ecx,%r11d
jg     14d0 <c_blit_write+0x3c0>
cmp    %ecx,%r14d
jl     14d0 <c_blit_write+0x3c0>
lea    (%rdx,%rcx,2),%eax
mov    %ebx,%r9d
mov    0xa0(%rsp),%rsi
movzwl (%rsi,%r9,1),%edi
mov    0x10(%rsp),%rsi
xor    %di,(%rsi,%rax,1)
jmp    14d0 <c_blit_write+0x3c0>
cmp    $0x4,%bl
je     2219 <c_blit_write+0x1109>
cmp    $0x3,%bl
je     22e5 <c_blit_write+0x11d5>
cmp    $0x2,%bl
jne    1305 <c_blit_write+0x1f5>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%r10d
add    %r9d,%r10d
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
movswl %r11w,%r11d
add    %r8d,%r11d
movswl %r14w,%r14d
add    %r8d,%r14d
movzwl %r15w,%r15d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x8(%rsp)
add    %eax,%r8d
xor    %r12d,%r12d
xor    %r13d,%r13d
jmp    1582 <c_blit_write+0x472>
nopl   0x0(%rax)
add    $0x1,%r13d
add    0x28(%rsp),%r12d
cmp    %r15d,%r13d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
lea    (%rax,%r13,1),%ecx
movzwl %cx,%edx
cmp    %edx,%r10d
jg     1570 <c_blit_write+0x460>
cmp    %edx,(%rsp)
jl     1570 <c_blit_write+0x460>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    1570 <c_blit_write+0x460>
imul   0x4(%rsp),%edx
mov    %r8d,%ecx
mov    0x8(%rsp),%rbp
mov    %r12d,%ebx
jmp    15cc <c_blit_write+0x4bc>
cs nopw 0x0(%rax,%rax,1)
add    $0x2,%ebx
add    $0x1,%ecx
add    $0xffffffffffffffff,%rbp
je     1570 <c_blit_write+0x460>
movzwl %cx,%ecx
cmp    %ecx,%r11d
jg     15c0 <c_blit_write+0x4b0>
cmp    %ecx,%r14d
jl     15c0 <c_blit_write+0x4b0>
lea    (%rdx,%rcx,2),%eax
mov    %ebx,%r9d
mov    0xa0(%rsp),%rsi
movzwl (%rsi,%r9,1),%edi
mov    0x10(%rsp),%rsi
or     %di,(%rsi,%rax,1)
jmp    15c0 <c_blit_write+0x4b0>
cmp    $0x4,%bl
je     23d9 <c_blit_write+0x12c9>
cmp    $0x3,%bl
je     24a5 <c_blit_write+0x1395>
cmp    $0x2,%bl
jne    1305 <c_blit_write+0x1f5>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%r10d
add    %r9d,%r10d
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
movswl %r11w,%r11d
add    %r8d,%r11d
movswl %r14w,%r14d
add    %r8d,%r14d
movzwl %r15w,%r15d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x8(%rsp)
add    %eax,%r8d
xor    %r12d,%r12d
xor    %r13d,%r13d
jmp    1672 <c_blit_write+0x562>
nopl   0x0(%rax)
add    $0x1,%r13d
add    0x28(%rsp),%r12d
cmp    %r15d,%r13d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
lea    (%rax,%r13,1),%ecx
movzwl %cx,%edx
cmp    %edx,%r10d
jg     1660 <c_blit_write+0x550>
cmp    %edx,(%rsp)
jl     1660 <c_blit_write+0x550>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    1660 <c_blit_write+0x550>
imul   0x4(%rsp),%edx
mov    %r8d,%ecx
mov    0x8(%rsp),%rbp
mov    %r12d,%ebx
jmp    16bc <c_blit_write+0x5ac>
cs nopw 0x0(%rax,%rax,1)
add    $0x2,%ebx
add    $0x1,%ecx
add    $0xffffffffffffffff,%rbp
je     1660 <c_blit_write+0x550>
movzwl %cx,%ecx
cmp    %ecx,%r11d
jg     16b0 <c_blit_write+0x5a0>
cmp    %ecx,%r14d
jl     16b0 <c_blit_write+0x5a0>
lea    (%rdx,%rcx,2),%eax
mov    %ebx,%r9d
mov    0xa0(%rsp),%rsi
movzwl (%rsi,%r9,1),%edi
mov    0x10(%rsp),%rsi
and    %di,(%rsi,%rax,1)
jmp    16b0 <c_blit_write+0x5a0>
cmp    $0x4,%bl
je     2599 <c_blit_write+0x1489>
cmp    $0x3,%bl
je     2688 <c_blit_write+0x1578>
cmp    $0x2,%bl
jne    1305 <c_blit_write+0x1f5>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
mov    %r14d,%ecx
movswl %r10w,%r14d
add    %r9d,%r14d
movswl %r13w,%edx
add    %r9d,%edx
mov    %edx,(%rsp)
movswl %r11w,%edi
add    %r8d,%edi
movswl %cx,%ebp
add    %r8d,%ebp
movzwl %r15w,%r10d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x8(%rsp)
add    %r8d,%eax
mov    %eax,0x18(%rsp)
xor    %r15d,%r15d
xor    %r13d,%r13d
jmp    1762 <c_blit_write+0x652>
nop
add    $0x1,%r13d
add    0x28(%rsp),%r15d
cmp    %r10d,%r13d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
add    %r13d,%eax
movzwl %ax,%r11d
cmp    %r11d,%r14d
jg     1750 <c_blit_write+0x640>
cmp    %r11d,(%rsp)
jl     1750 <c_blit_write+0x640>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    1750 <c_blit_write+0x640>
imul   0x4(%rsp),%r11d
mov    0x18(%rsp),%ebx
mov    0x8(%rsp),%rdx
mov    %r15d,%eax
jmp    17ac <c_blit_write+0x69c>
nopl   0x0(%rax)
add    $0x2,%eax
add    $0x1,%ebx
add    $0xffffffffffffffff,%rdx
je     1750 <c_blit_write+0x640>
movzwl %bx,%r9d
cmp    %r9d,%edi
jg     17a0 <c_blit_write+0x690>
cmp    %r9d,%ebp
jl     17a0 <c_blit_write+0x690>
mov    %eax,%esi
mov    0xa0(%rsp),%rcx
movzwl (%rcx,%rsi,1),%r8d
cmp    %r12w,%r8w
je     17a0 <c_blit_write+0x690>
add    %r9d,%r9d
add    %r11d,%r9d
mov    0x10(%rsp),%rsi
mov    %r8w,(%rsi,%r9,1)
jmp    17a0 <c_blit_write+0x690>
cmp    $0x4,%bl
je     27b0 <c_blit_write+0x16a0>
cmp    $0x3,%bl
je     289b <c_blit_write+0x178b>
cmp    $0x2,%bl
jne    1305 <c_blit_write+0x1f5>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,0x18(%rsp)
movswl %r11w,%ebx
add    %r8d,%ebx
movswl %r14w,%edi
add    %r8d,%edi
movzwl %r15w,%ecx
mov    %ecx,0x8(%rsp)
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x30(%rsp)
add    %ebp,%r9d
add    %r8d,%eax
mov    %eax,0x40(%rsp)
xor    %r8d,%r8d
xor    %r11d,%r11d
jmp    1878 <c_blit_write+0x768>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
add    $0x1,%r11d
add    $0x1,%r9d
add    0x28(%rsp),%r8d
cmp    0x8(%rsp),%r11d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
add    %r11d,%eax
movzwl %ax,%r10d
cmp    %r10d,(%rsp)
jg     1860 <c_blit_write+0x750>
cmp    %r10d,0x18(%rsp)
jl     1860 <c_blit_write+0x750>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    1860 <c_blit_write+0x750>
movzwl %r9w,%ebp
mov    0x4(%rsp),%eax
imul   %eax,%ebp
imul   %eax,%r10d
mov    0x40(%rsp),%eax
mov    0x30(%rsp),%r15
mov    %r8d,%r14d
jmp    18d0 <c_blit_write+0x7c0>
nopw   0x0(%rax,%rax,1)
add    $0x2,%ebp
add    $0x2,%r14d
add    $0x1,%eax
add    $0xffffffffffffffff,%r15
je     1860 <c_blit_write+0x750>
movzwl %ax,%edx
cmp    %edx,%ebx
jg     18c0 <c_blit_write+0x7b0>
cmp    %edx,%edi
jl     18c0 <c_blit_write+0x7b0>
add    %rdx,%rdx
mov    0x10(%rsp),%rsi
add    %rdx,%rsi
mov    %ebp,%r13d
cmp    %r12w,0x0(%r13,%rsi,1)
jne    18c0 <c_blit_write+0x7b0>
add    %r10d,%edx
mov    %r14d,%esi
mov    0xa0(%rsp),%rcx
movzwl (%rcx,%rsi,1),%esi
mov    0x10(%rsp),%rcx
mov    %si,(%rcx,%rdx,1)
jmp    18c0 <c_blit_write+0x7b0>
cmp    $0x4,%bl
je     29ec <c_blit_write+0x18dc>
mov    0xd8(%rsp),%dl
cmp    $0x3,%bl
je     2b65 <c_blit_write+0x1a55>
cmp    $0x2,%bl
jne    1305 <c_blit_write+0x1f5>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%ecx
add    %r9d,%ecx
mov    %ecx,0x40(%rsp)
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,0x50(%rsp)
movswl %r11w,%ebx
add    %r8d,%ebx
movswl %r14w,%ecx
add    %r8d,%ecx
mov    %ecx,(%rsp)
movzbl %dl,%edx
mov    %edx,%ecx
not    %cl
movzbl %cl,%esi
movzwl %r15w,%ecx
mov    %ecx,0x3c(%rsp)
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x48(%rsp)
add    %r8d,%eax
mov    %eax,0x64(%rsp)
movl   $0x0,0x18(%rsp)
xor    %ecx,%ecx
mov    0x10(%rsp),%r11
jmp    19be <c_blit_write+0x8ae>
nopw   0x0(%rax,%rax,1)
mov    0x30(%rsp),%rcx
add    $0x1,%ecx
mov    0x18(%rsp),%eax
add    0x28(%rsp),%eax
mov    %eax,0x18(%rsp)
cmp    0x3c(%rsp),%ecx
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
mov    %rcx,0x30(%rsp)
add    %ecx,%eax
movzwl %ax,%eax
mov    %rax,0x8(%rsp)
cmp    %eax,0x40(%rsp)
jg     19a0 <c_blit_write+0x890>
mov    0x8(%rsp),%rax
cmp    %eax,0x50(%rsp)
jl     19a0 <c_blit_write+0x890>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    19a0 <c_blit_write+0x890>
mov    0x8(%rsp),%rax
imul   0x4(%rsp),%eax
mov    %rax,0x8(%rsp)
mov    0x64(%rsp),%eax
mov    %eax,%ebp
mov    0x48(%rsp),%r15
mov    0x18(%rsp),%r12d
jmp    1a1d <c_blit_write+0x90d>
add    $0x2,%r12d
add    $0x1,%ebp
add    $0xffffffffffffffff,%r15
je     19a0 <c_blit_write+0x890>
movzwl %bp,%ebp
cmp    %ebp,%ebx
jg     1a10 <c_blit_write+0x900>
cmp    %ebp,(%rsp)
jl     1a10 <c_blit_write+0x900>
mov    0x8(%rsp),%rax
lea    (%rax,%rbp,2),%eax
movzwl (%r11,%rax,1),%r13d
mov    %r13d,%r10d
and    $0x1f,%r10d
mov    %r13d,%r9d
shr    $0x5,%r9d
and    $0x3f,%r9d
shr    $0xb,%r13d
mov    %r12d,%edi
mov    0xa0(%rsp),%rcx
movzwl (%rcx,%rdi,1),%r14d
mov    %r14d,%edi
and    $0x1f,%edi
mov    %r14d,%r8d
shr    $0x5,%r8d
and    $0x3f,%r8d
shr    $0xb,%r14d
imul   %edx,%edi
imul   %esi,%r10d
add    %edi,%r10d
shr    $0x8,%r10d
imul   %edx,%r8d
imul   %esi,%r9d
add    %r8d,%r9d
imul   %edx,%r14d
imul   %esi,%r13d
add    %r14d,%r13d
and    $0x1f00,%r13d
shr    $0x3,%r9d
and    $0xffffffe0,%r9d
lea    (%r10,%r13,8),%edi
or     %r9d,%edi
mov    %di,(%r11,%rax,1)
jmp    1a10 <c_blit_write+0x900>
cmp    $0x4,%bl
je     2cda <c_blit_write+0x1bca>
cmp    $0x3,%bl
je     2daf <c_blit_write+0x1c9f>
cmp    $0x2,%bl
jne    1305 <c_blit_write+0x1f5>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%r10d
add    %r9d,%r10d
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
mov    %r14d,%ecx
movswl %r11w,%r14d
add    %r8d,%r14d
movswl %cx,%r13d
add    %r8d,%r13d
movzwl %r15w,%r15d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x8(%rsp)
add    %eax,%r8d
xor    %r12d,%r12d
xor    %r11d,%r11d
mov    0x10(%rsp),%r9
jmp    1b32 <c_blit_write+0xa22>
nop
add    $0x1,%r11d
add    0x28(%rsp),%r12d
cmp    %r15d,%r11d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
lea    (%rax,%r11,1),%ecx
movzwl %cx,%edx
cmp    %edx,%r10d
jg     1b20 <c_blit_write+0xa10>
cmp    %edx,(%rsp)
jl     1b20 <c_blit_write+0xa10>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    1b20 <c_blit_write+0xa10>
imul   0x4(%rsp),%edx
mov    %r8d,%ecx
mov    0x8(%rsp),%rbp
mov    %r12d,%ebx
jmp    1b7c <c_blit_write+0xa6c>
cs nopw 0x0(%rax,%rax,1)
add    $0x2,%ebx
add    $0x1,%ecx
add    $0xffffffffffffffff,%rbp
je     1b20 <c_blit_write+0xa10>
movzwl %cx,%ecx
cmp    %ecx,%r14d
jg     1b70 <c_blit_write+0xa60>
cmp    %ecx,%r13d
jl     1b70 <c_blit_write+0xa60>
lea    (%rdx,%rcx,2),%eax
mov    %ebx,%edi
mov    0xa0(%rsp),%rsi
movzwl (%rsi,%rdi,1),%edi
add    %di,(%r9,%rax,1)
jmp    1b70 <c_blit_write+0xa60>
cmp    $0x4,%bl
je     2eaa <c_blit_write+0x1d9a>
cmp    $0x3,%bl
je     2f7f <c_blit_write+0x1e6f>
cmp    $0x2,%bl
jne    1305 <c_blit_write+0x1f5>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%r10d
add    %r9d,%r10d
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
mov    %r14d,%ecx
movswl %r11w,%r14d
add    %r8d,%r14d
movswl %cx,%r13d
add    %r8d,%r13d
movzwl %r15w,%r15d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x8(%rsp)
add    %eax,%r8d
xor    %r12d,%r12d
xor    %r11d,%r11d
mov    0x10(%rsp),%r9
jmp    1c22 <c_blit_write+0xb12>
nopl   0x0(%rax,%rax,1)
add    $0x1,%r11d
add    0x28(%rsp),%r12d
cmp    %r15d,%r11d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
lea    (%rax,%r11,1),%ecx
movzwl %cx,%edx
cmp    %edx,%r10d
jg     1c10 <c_blit_write+0xb00>
cmp    %edx,(%rsp)
jl     1c10 <c_blit_write+0xb00>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    1c10 <c_blit_write+0xb00>
imul   0x4(%rsp),%edx
mov    %r8d,%ecx
mov    0x8(%rsp),%rbp
mov    %r12d,%ebx
jmp    1c6c <c_blit_write+0xb5c>
cs nopw 0x0(%rax,%rax,1)
add    $0x2,%ebx
add    $0x1,%ecx
add    $0xffffffffffffffff,%rbp
je     1c10 <c_blit_write+0xb00>
movzwl %cx,%ecx
cmp    %ecx,%r14d
jg     1c60 <c_blit_write+0xb50>
cmp    %ecx,%r13d
jl     1c60 <c_blit_write+0xb50>
lea    (%rdx,%rcx,2),%eax
mov    %ebx,%edi
mov    0xa0(%rsp),%rsi
movzwl (%rsi,%rdi,1),%edi
sub    %di,(%r9,%rax,1)
jmp    1c60 <c_blit_write+0xb50>
cmp    $0x4,%bl
je     307a <c_blit_write+0x1f6a>
cmp    $0x3,%bl
je     3155 <c_blit_write+0x2045>
cmp    $0x2,%bl
jne    1305 <c_blit_write+0x1f5>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%r10d
add    %r9d,%r10d
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
mov    %r14d,%ecx
movswl %r11w,%r14d
add    %r8d,%r14d
movswl %cx,%r13d
add    %r8d,%r13d
movzwl %r15w,%r15d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x8(%rsp)
add    %r8d,%eax
mov    %eax,0x18(%rsp)
xor    %r12d,%r12d
xor    %r11d,%r11d
mov    0x10(%rsp),%rsi
jmp    1d12 <c_blit_write+0xc02>
nop
add    $0x1,%r11d
add    0x28(%rsp),%r12d
cmp    %r15d,%r11d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
lea    (%rax,%r11,1),%ecx
movzwl %cx,%edx
cmp    %edx,%r10d
jg     1d00 <c_blit_write+0xbf0>
cmp    %edx,(%rsp)
jl     1d00 <c_blit_write+0xbf0>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    1d00 <c_blit_write+0xbf0>
imul   0x4(%rsp),%edx
mov    0x18(%rsp),%eax
mov    %eax,%ecx
mov    0x8(%rsp),%rbp
mov    %r12d,%ebx
jmp    1d5c <c_blit_write+0xc4c>
nopl   0x0(%rax)
add    $0x2,%ebx
add    $0x1,%ecx
add    $0xffffffffffffffff,%rbp
je     1d00 <c_blit_write+0xbf0>
movzwl %cx,%ecx
cmp    %ecx,%r14d
jg     1d50 <c_blit_write+0xc40>
cmp    %ecx,%r13d
jl     1d50 <c_blit_write+0xc40>
lea    (%rdx,%rcx,2),%eax
mov    %ebx,%edi
movzwl (%rsi,%rax,1),%r9d
mov    0xa0(%rsp),%r8
imul   (%r8,%rdi,1),%r9w
mov    %r9w,(%rsi,%rax,1)
jmp    1d50 <c_blit_write+0xc40>
cmp    $0x4,%bl
je     3260 <c_blit_write+0x2150>
cmp    $0x3,%bl
je     334c <c_blit_write+0x223c>
cmp    $0x2,%bl
jne    1305 <c_blit_write+0x1f5>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,0x8(%rsp)
movswl %r11w,%edi
add    %r8d,%edi
movswl %r14w,%r11d
add    %r8d,%r11d
movzwl %r15w,%r15d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x18(%rsp)
add    %r8d,%eax
mov    %eax,0x30(%rsp)
xor    %r9d,%r9d
xor    %r14d,%r14d
mov    0x10(%rsp),%r13
jmp    1e12 <c_blit_write+0xd02>
nopw   0x0(%rax,%rax,1)
add    $0x1,%r14d
add    0x28(%rsp),%r9d
cmp    %r15d,%r14d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
add    %r14d,%eax
movzwl %ax,%ebx
cmp    %ebx,(%rsp)
jg     1e00 <c_blit_write+0xcf0>
cmp    %ebx,0x8(%rsp)
jl     1e00 <c_blit_write+0xcf0>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    1e00 <c_blit_write+0xcf0>
imul   0x4(%rsp),%ebx
mov    0x30(%rsp),%eax
mov    %eax,%esi
mov    0x18(%rsp),%rcx
mov    %r9d,%r10d
jmp    1e5d <c_blit_write+0xd4d>
nopl   0x0(%rax)
add    $0x2,%r10d
add    $0x1,%esi
add    $0xffffffffffffffff,%rcx
je     1e00 <c_blit_write+0xcf0>
movzwl %si,%esi
cmp    %esi,%edi
jg     1e50 <c_blit_write+0xd40>
cmp    %esi,%r11d
jl     1e50 <c_blit_write+0xd40>
lea    (%rbx,%rsi,2),%ebp
mov    %r10d,%r8d
movzwl 0x0(%r13,%rbp,1),%eax
xor    %edx,%edx
mov    0xa0(%rsp),%r12
divw   (%r12,%r8,1)
mov    %ax,0x0(%r13,%rbp,1)
jmp    1e50 <c_blit_write+0xd40>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%r10d
add    %r9d,%r10d
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
movswl %r11w,%r11d
add    %r8d,%r11d
movswl %r14w,%r14d
add    %r8d,%r14d
movzwl %r15w,%r15d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x8(%rsp)
add    %eax,%r8d
xor    %r12d,%r12d
xor    %r13d,%r13d
jmp    1ef2 <c_blit_write+0xde2>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
add    $0x1,%r13d
add    0x28(%rsp),%r12d
cmp    %r15d,%r13d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
lea    (%rax,%r13,1),%ecx
movzwl %cx,%edx
cmp    %edx,%r10d
jg     1ee0 <c_blit_write+0xdd0>
cmp    %edx,(%rsp)
jl     1ee0 <c_blit_write+0xdd0>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    1ee0 <c_blit_write+0xdd0>
imul   0x4(%rsp),%edx
mov    0x8(%rsp),%rcx
mov    %r12d,%ebx
mov    %r8d,%ebp
jmp    1f3c <c_blit_write+0xe2c>
cs nopw 0x0(%rax,%rax,1)
add    $0x1,%ebp
add    $0x4,%ebx
add    $0xffffffffffffffff,%rcx
je     1ee0 <c_blit_write+0xdd0>
movzwl %bp,%ebp
cmp    %ebp,%r11d
jg     1f30 <c_blit_write+0xe20>
cmp    %ebp,%r14d
jl     1f30 <c_blit_write+0xe20>
lea    (%rdx,%rbp,4),%eax
mov    %ebx,%r9d
mov    0xa0(%rsp),%rsi
mov    (%rsi,%r9,1),%edi
mov    0x10(%rsp),%rsi
mov    %edi,(%rsi,%rax,1)
jmp    1f30 <c_blit_write+0xe20>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,0x8(%rsp)
movswl %r11w,%esi
add    %r8d,%esi
movswl %r14w,%r11d
add    %r8d,%r11d
movzwl %r15w,%r14d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x18(%rsp)
add    %r8d,%eax
mov    %eax,0x30(%rsp)
xor    %r12d,%r12d
xor    %r13d,%r13d
mov    0x10(%rsp),%rdi
jmp    1fd2 <c_blit_write+0xec2>
nopl   0x0(%rax)
add    $0x1,%r13d
add    0x28(%rsp),%r12d
cmp    %r14d,%r13d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
lea    (%rax,%r13,1),%ecx
movzwl %cx,%r15d
cmp    %r15d,(%rsp)
jg     1fc0 <c_blit_write+0xeb0>
cmp    %r15d,0x8(%rsp)
jl     1fc0 <c_blit_write+0xeb0>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    1fc0 <c_blit_write+0xeb0>
imul   0x4(%rsp),%r15d
mov    0x18(%rsp),%rcx
mov    %r12d,%ebx
mov    0x30(%rsp),%eax
mov    %eax,%ebp
jmp    201c <c_blit_write+0xf0c>
xchg   %ax,%ax
add    $0x1,%ebp
add    $0x3,%ebx
add    $0xffffffffffffffff,%rcx
je     1fc0 <c_blit_write+0xeb0>
movzwl %bp,%ebp
cmp    %ebp,%esi
jg     2010 <c_blit_write+0xf00>
cmp    %ebp,%r11d
jl     2010 <c_blit_write+0xf00>
lea    0x0(%rbp,%rbp,2),%eax
add    %r15d,%eax
mov    %ebx,%r9d
mov    0xa0(%rsp),%r10
movzbl (%r10,%r9,1),%r8d
mov    %r8b,(%rdi,%rax,1)
movzbl 0x1(%r10,%r9,1),%edx
mov    %dl,0x1(%rdi,%rax,1)
movzbl 0x2(%r10,%r9,1),%edx
mov    %dl,0x2(%rdi,%rax,1)
jmp    2010 <c_blit_write+0xf00>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%r10d
add    %r9d,%r10d
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
movswl %r11w,%r11d
add    %r8d,%r11d
movswl %r14w,%r14d
add    %r8d,%r14d
movzwl %r15w,%r15d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x8(%rsp)
add    %eax,%r8d
xor    %r12d,%r12d
xor    %r13d,%r13d
jmp    20b2 <c_blit_write+0xfa2>
add    $0x1,%r13d
add    0x28(%rsp),%r12d
cmp    %r15d,%r13d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
lea    (%rax,%r13,1),%ecx
movzwl %cx,%edx
cmp    %edx,%r10d
jg     20a0 <c_blit_write+0xf90>
cmp    %edx,(%rsp)
jl     20a0 <c_blit_write+0xf90>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    20a0 <c_blit_write+0xf90>
imul   0x4(%rsp),%edx
mov    0x8(%rsp),%rcx
mov    %r12d,%ebx
mov    %r8d,%ebp
jmp    20fc <c_blit_write+0xfec>
cs nopw 0x0(%rax,%rax,1)
add    $0x1,%ebp
add    $0x4,%ebx
add    $0xffffffffffffffff,%rcx
je     20a0 <c_blit_write+0xf90>
movzwl %bp,%ebp
cmp    %ebp,%r11d
jg     20f0 <c_blit_write+0xfe0>
cmp    %ebp,%r14d
jl     20f0 <c_blit_write+0xfe0>
lea    (%rdx,%rbp,4),%eax
mov    %ebx,%r9d
mov    0xa0(%rsp),%rsi
mov    (%rsi,%r9,1),%edi
mov    0x10(%rsp),%rsi
xor    %edi,(%rsi,%rax,1)
jmp    20f0 <c_blit_write+0xfe0>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,0x8(%rsp)
movswl %r11w,%esi
add    %r8d,%esi
movswl %r14w,%r11d
add    %r8d,%r11d
movzwl %r15w,%r14d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x18(%rsp)
add    %r8d,%eax
mov    %eax,0x30(%rsp)
xor    %r12d,%r12d
xor    %r13d,%r13d
mov    0x10(%rsp),%rdi
jmp    2192 <c_blit_write+0x1082>
nopl   0x0(%rax)
add    $0x1,%r13d
add    0x28(%rsp),%r12d
cmp    %r14d,%r13d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
lea    (%rax,%r13,1),%ecx
movzwl %cx,%r15d
cmp    %r15d,(%rsp)
jg     2180 <c_blit_write+0x1070>
cmp    %r15d,0x8(%rsp)
jl     2180 <c_blit_write+0x1070>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    2180 <c_blit_write+0x1070>
imul   0x4(%rsp),%r15d
mov    0x18(%rsp),%rcx
mov    %r12d,%ebx
mov    0x30(%rsp),%eax
mov    %eax,%ebp
jmp    21dc <c_blit_write+0x10cc>
xchg   %ax,%ax
add    $0x1,%ebp
add    $0x3,%ebx
add    $0xffffffffffffffff,%rcx
je     2180 <c_blit_write+0x1070>
movzwl %bp,%ebp
cmp    %ebp,%esi
jg     21d0 <c_blit_write+0x10c0>
cmp    %ebp,%r11d
jl     21d0 <c_blit_write+0x10c0>
lea    0x0(%rbp,%rbp,2),%eax
add    %r15d,%eax
mov    %ebx,%r9d
mov    0xa0(%rsp),%r10
movzbl (%r10,%r9,1),%r8d
xor    %r8b,(%rdi,%rax,1)
movzbl 0x1(%r10,%r9,1),%edx
xor    %dl,0x1(%rdi,%rax,1)
movzbl 0x2(%r10,%r9,1),%edx
xor    %dl,0x2(%rdi,%rax,1)
jmp    21d0 <c_blit_write+0x10c0>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%r10d
add    %r9d,%r10d
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
movswl %r11w,%r11d
add    %r8d,%r11d
movswl %r14w,%r14d
add    %r8d,%r14d
movzwl %r15w,%r15d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x8(%rsp)
add    %eax,%r8d
xor    %r12d,%r12d
xor    %r13d,%r13d
jmp    2272 <c_blit_write+0x1162>
add    $0x1,%r13d
add    0x28(%rsp),%r12d
cmp    %r15d,%r13d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
lea    (%rax,%r13,1),%ecx
movzwl %cx,%edx
cmp    %edx,%r10d
jg     2260 <c_blit_write+0x1150>
cmp    %edx,(%rsp)
jl     2260 <c_blit_write+0x1150>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    2260 <c_blit_write+0x1150>
imul   0x4(%rsp),%edx
mov    0x8(%rsp),%rcx
mov    %r12d,%ebx
mov    %r8d,%ebp
jmp    22bc <c_blit_write+0x11ac>
cs nopw 0x0(%rax,%rax,1)
add    $0x1,%ebp
add    $0x4,%ebx
add    $0xffffffffffffffff,%rcx
je     2260 <c_blit_write+0x1150>
movzwl %bp,%ebp
cmp    %ebp,%r11d
jg     22b0 <c_blit_write+0x11a0>
cmp    %ebp,%r14d
jl     22b0 <c_blit_write+0x11a0>
lea    (%rdx,%rbp,4),%eax
mov    %ebx,%r9d
mov    0xa0(%rsp),%rsi
mov    (%rsi,%r9,1),%edi
mov    0x10(%rsp),%rsi
or     %edi,(%rsi,%rax,1)
jmp    22b0 <c_blit_write+0x11a0>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,0x8(%rsp)
movswl %r11w,%esi
add    %r8d,%esi
movswl %r14w,%r11d
add    %r8d,%r11d
movzwl %r15w,%r14d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x18(%rsp)
add    %r8d,%eax
mov    %eax,0x30(%rsp)
xor    %r12d,%r12d
xor    %r13d,%r13d
mov    0x10(%rsp),%rdi
jmp    2352 <c_blit_write+0x1242>
nopl   0x0(%rax)
add    $0x1,%r13d
add    0x28(%rsp),%r12d
cmp    %r14d,%r13d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
lea    (%rax,%r13,1),%ecx
movzwl %cx,%r15d
cmp    %r15d,(%rsp)
jg     2340 <c_blit_write+0x1230>
cmp    %r15d,0x8(%rsp)
jl     2340 <c_blit_write+0x1230>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    2340 <c_blit_write+0x1230>
imul   0x4(%rsp),%r15d
mov    0x18(%rsp),%rcx
mov    %r12d,%ebx
mov    0x30(%rsp),%eax
mov    %eax,%ebp
jmp    239c <c_blit_write+0x128c>
xchg   %ax,%ax
add    $0x1,%ebp
add    $0x3,%ebx
add    $0xffffffffffffffff,%rcx
je     2340 <c_blit_write+0x1230>
movzwl %bp,%ebp
cmp    %ebp,%esi
jg     2390 <c_blit_write+0x1280>
cmp    %ebp,%r11d
jl     2390 <c_blit_write+0x1280>
lea    0x0(%rbp,%rbp,2),%eax
add    %r15d,%eax
mov    %ebx,%r9d
mov    0xa0(%rsp),%r10
movzbl (%r10,%r9,1),%r8d
or     %r8b,(%rdi,%rax,1)
movzbl 0x1(%r10,%r9,1),%edx
or     %dl,0x1(%rdi,%rax,1)
movzbl 0x2(%r10,%r9,1),%edx
or     %dl,0x2(%rdi,%rax,1)
jmp    2390 <c_blit_write+0x1280>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%r10d
add    %r9d,%r10d
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
movswl %r11w,%r11d
add    %r8d,%r11d
movswl %r14w,%r14d
add    %r8d,%r14d
movzwl %r15w,%r15d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x8(%rsp)
add    %eax,%r8d
xor    %r12d,%r12d
xor    %r13d,%r13d
jmp    2432 <c_blit_write+0x1322>
add    $0x1,%r13d
add    0x28(%rsp),%r12d
cmp    %r15d,%r13d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
lea    (%rax,%r13,1),%ecx
movzwl %cx,%edx
cmp    %edx,%r10d
jg     2420 <c_blit_write+0x1310>
cmp    %edx,(%rsp)
jl     2420 <c_blit_write+0x1310>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    2420 <c_blit_write+0x1310>
imul   0x4(%rsp),%edx
mov    0x8(%rsp),%rcx
mov    %r12d,%ebx
mov    %r8d,%ebp
jmp    247c <c_blit_write+0x136c>
cs nopw 0x0(%rax,%rax,1)
add    $0x1,%ebp
add    $0x4,%ebx
add    $0xffffffffffffffff,%rcx
je     2420 <c_blit_write+0x1310>
movzwl %bp,%ebp
cmp    %ebp,%r11d
jg     2470 <c_blit_write+0x1360>
cmp    %ebp,%r14d
jl     2470 <c_blit_write+0x1360>
lea    (%rdx,%rbp,4),%eax
mov    %ebx,%r9d
mov    0xa0(%rsp),%rsi
mov    (%rsi,%r9,1),%edi
mov    0x10(%rsp),%rsi
and    %edi,(%rsi,%rax,1)
jmp    2470 <c_blit_write+0x1360>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,0x8(%rsp)
movswl %r11w,%esi
add    %r8d,%esi
movswl %r14w,%r11d
add    %r8d,%r11d
movzwl %r15w,%r14d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x18(%rsp)
add    %r8d,%eax
mov    %eax,0x30(%rsp)
xor    %r12d,%r12d
xor    %r13d,%r13d
mov    0x10(%rsp),%rdi
jmp    2512 <c_blit_write+0x1402>
nopl   0x0(%rax)
add    $0x1,%r13d
add    0x28(%rsp),%r12d
cmp    %r14d,%r13d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
lea    (%rax,%r13,1),%ecx
movzwl %cx,%r15d
cmp    %r15d,(%rsp)
jg     2500 <c_blit_write+0x13f0>
cmp    %r15d,0x8(%rsp)
jl     2500 <c_blit_write+0x13f0>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    2500 <c_blit_write+0x13f0>
imul   0x4(%rsp),%r15d
mov    0x18(%rsp),%rcx
mov    %r12d,%ebx
mov    0x30(%rsp),%eax
mov    %eax,%ebp
jmp    255c <c_blit_write+0x144c>
xchg   %ax,%ax
add    $0x1,%ebp
add    $0x3,%ebx
add    $0xffffffffffffffff,%rcx
je     2500 <c_blit_write+0x13f0>
movzwl %bp,%ebp
cmp    %ebp,%esi
jg     2550 <c_blit_write+0x1440>
cmp    %ebp,%r11d
jl     2550 <c_blit_write+0x1440>
lea    0x0(%rbp,%rbp,2),%eax
add    %r15d,%eax
mov    %ebx,%r9d
mov    0xa0(%rsp),%r10
movzbl (%r10,%r9,1),%r8d
and    %r8b,(%rdi,%rax,1)
movzbl 0x1(%r10,%r9,1),%edx
and    %dl,0x1(%rdi,%rax,1)
movzbl 0x2(%r10,%r9,1),%edx
and    %dl,0x2(%rdi,%rax,1)
jmp    2550 <c_blit_write+0x1440>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
mov    %r15,%rcx
movswl %r10w,%r15d
add    %r9d,%r15d
movswl %r13w,%edx
add    %r9d,%edx
mov    %edx,(%rsp)
movswl %r11w,%edi
add    %r8d,%edi
movswl %r14w,%ebp
add    %r8d,%ebp
movzwl %cx,%r10d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x8(%rsp)
add    %r8d,%eax
mov    %eax,0x18(%rsp)
xor    %r14d,%r14d
xor    %r13d,%r13d
jmp    2602 <c_blit_write+0x14f2>
nopw   0x0(%rax,%rax,1)
add    $0x1,%r13d
add    0x28(%rsp),%r14d
cmp    %r10d,%r13d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
add    %r13d,%eax
movzwl %ax,%r11d
cmp    %r11d,%r15d
jg     25f0 <c_blit_write+0x14e0>
cmp    %r11d,(%rsp)
jl     25f0 <c_blit_write+0x14e0>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    25f0 <c_blit_write+0x14e0>
imul   0x4(%rsp),%r11d
mov    0x8(%rsp),%rbx
mov    %r14d,%eax
mov    0x18(%rsp),%edx
jmp    264c <c_blit_write+0x153c>
nopl   0x0(%rax)
add    $0x1,%edx
add    $0x4,%eax
add    $0xffffffffffffffff,%rbx
je     25f0 <c_blit_write+0x14e0>
movzwl %dx,%r9d
cmp    %r9d,%edi
jg     2640 <c_blit_write+0x1530>
cmp    %r9d,%ebp
jl     2640 <c_blit_write+0x1530>
mov    %eax,%esi
mov    0xa0(%rsp),%rcx
mov    (%rcx,%rsi,1),%r8d
mov    %r8d,%esi
xor    %r12d,%esi
cmp    $0x100,%esi
jb     2640 <c_blit_write+0x1530>
shl    $0x2,%r9d
add    %r11d,%r9d
mov    0x10(%rsp),%rsi
mov    %r8d,(%rsi,%r9,1)
jmp    2640 <c_blit_write+0x1530>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%ecx
add    %r9d,%ecx
mov    %ecx,0x8(%rsp)
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,0x30(%rsp)
movswl %r11w,%edi
add    %r8d,%edi
mov    %r15,%rcx
movswl %r14w,%r15d
add    %r8d,%r15d
movzwl %cx,%ecx
mov    %ecx,0x18(%rsp)
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x40(%rsp)
add    %r8d,%eax
mov    %eax,0x3c(%rsp)
movl   $0x0,(%rsp)
xor    %r11d,%r11d
mov    0x10(%rsp),%rsi
jmp    2709 <c_blit_write+0x15f9>
nopw   0x0(%rax,%rax,1)
add    $0x1,%r11d
mov    (%rsp),%eax
add    0x28(%rsp),%eax
mov    %eax,(%rsp)
cmp    0x18(%rsp),%r11d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
add    %r11d,%eax
movzwl %ax,%r14d
cmp    %r14d,0x8(%rsp)
jg     26f0 <c_blit_write+0x15e0>
cmp    %r14d,0x30(%rsp)
jl     26f0 <c_blit_write+0x15e0>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    26f0 <c_blit_write+0x15e0>
imul   0x4(%rsp),%r14d
mov    0x40(%rsp),%rbx
mov    (%rsp),%eax
mov    0x3c(%rsp),%r8d
jmp    275d <c_blit_write+0x164d>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
add    $0x1,%r8d
add    $0x3,%eax
add    $0xffffffffffffffff,%rbx
je     26f0 <c_blit_write+0x15e0>
movzwl %r8w,%edx
cmp    %edx,%edi
jg     2750 <c_blit_write+0x1640>
cmp    %edx,%r15d
jl     2750 <c_blit_write+0x1640>
mov    %eax,%r9d
mov    0xa0(%rsp),%rcx
mov    (%rcx,%r9,1),%r10d
mov    %r10d,%r13d
xor    %r12d,%r13d
cmp    $0x100,%r13d
jb     2750 <c_blit_write+0x1640>
lea    (%rdx,%rdx,2),%edx
add    %r14d,%edx
mov    %r10b,(%rsi,%rdx,1)
mov    0xa0(%rsp),%rbp
movzbl 0x1(%rbp,%r9,1),%ecx
mov    %cl,0x1(%rsi,%rdx,1)
movzbl 0x2(%rbp,%r9,1),%ecx
mov    %cl,0x2(%rsi,%rdx,1)
jmp    2750 <c_blit_write+0x1640>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
mov    %r14d,%ecx
movswl %r10w,%r14d
add    %r9d,%r14d
movswl %r13w,%edx
add    %r9d,%edx
mov    %edx,(%rsp)
movswl %r11w,%edi
add    %r8d,%edi
movswl %cx,%r11d
add    %r8d,%r11d
movzwl %r15w,%r10d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x8(%rsp)
add    %r8d,%eax
mov    %eax,0x18(%rsp)
xor    %r15d,%r15d
xor    %r13d,%r13d
jmp    2812 <c_blit_write+0x1702>
xchg   %ax,%ax
add    $0x1,%r13d
add    0x28(%rsp),%r15d
cmp    %r10d,%r13d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
add    %r13d,%eax
movzwl %ax,%ecx
cmp    %ecx,%r14d
jg     2800 <c_blit_write+0x16f0>
cmp    %ecx,(%rsp)
jl     2800 <c_blit_write+0x16f0>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    2800 <c_blit_write+0x16f0>
imul   0x4(%rsp),%ecx
mov    0x8(%rsp),%rbx
mov    %r15d,%eax
mov    0x18(%rsp),%edx
jmp    285c <c_blit_write+0x174c>
cs nopw 0x0(%rax,%rax,1)
add    $0x1,%edx
add    $0x4,%eax
add    $0xffffffffffffffff,%rbx
je     2800 <c_blit_write+0x16f0>
movzwl %dx,%edx
cmp    %edx,%edi
jg     2850 <c_blit_write+0x1740>
cmp    %edx,%r11d
jl     2850 <c_blit_write+0x1740>
lea    (%rcx,%rdx,4),%r9d
mov    0x10(%rsp),%rsi
mov    (%rsi,%r9,1),%r8d
xor    %r12d,%r8d
cmp    $0xff,%r8d
ja     2850 <c_blit_write+0x1740>
mov    %eax,%esi
mov    0xa0(%rsp),%rbp
mov    0x0(%rbp,%rsi,1),%esi
mov    0x10(%rsp),%rbp
mov    %esi,0x0(%rbp,%r9,1)
jmp    2850 <c_blit_write+0x1740>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%ecx
add    %r9d,%ecx
mov    %ecx,0x30(%rsp)
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,0x3c(%rsp)
mov    %r15,%rcx
movswl %r11w,%r15d
add    %r8d,%r15d
movswl %r14w,%r11d
add    %r8d,%r11d
and    $0xffffff00,%r12d
movzwl %cx,%ecx
mov    %ecx,0x40(%rsp)
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x50(%rsp)
add    %r8d,%eax
mov    %eax,0x48(%rsp)
lea    (%r9,%rbp,1),%eax
mov    %eax,0x18(%rsp)
movl   $0x0,(%rsp)
xor    %ecx,%ecx
jmp    2931 <c_blit_write+0x1821>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
mov    0x8(%rsp),%rcx
add    $0x1,%ecx
addl   $0x1,0x18(%rsp)
mov    (%rsp),%eax
add    0x28(%rsp),%eax
mov    %eax,(%rsp)
cmp    0x40(%rsp),%ecx
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
mov    %rcx,0x8(%rsp)
add    %ecx,%eax
movzwl %ax,%r9d
cmp    %r9d,0x30(%rsp)
mov    0x10(%rsp),%rbx
jg     2910 <c_blit_write+0x1800>
cmp    %r9d,0x3c(%rsp)
jl     2910 <c_blit_write+0x1800>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    2910 <c_blit_write+0x1800>
movzwl 0x18(%rsp),%ebp
mov    0x4(%rsp),%eax
imul   %eax,%ebp
imul   %eax,%r9d
mov    0x50(%rsp),%rax
mov    (%rsp),%r14d
mov    0x48(%rsp),%r8d
jmp    2995 <c_blit_write+0x1885>
add    $0x1,%r8d
add    $0x3,%ebp
add    $0x3,%r14d
add    $0xffffffffffffffff,%rax
je     2910 <c_blit_write+0x1800>
movzwl %r8w,%edx
cmp    %edx,%r15d
jg     2980 <c_blit_write+0x1870>
cmp    %edx,%r11d
jl     2980 <c_blit_write+0x1870>
lea    (%rdx,%rdx,2),%rdx
lea    (%rbx,%rdx,1),%r13
mov    %ebp,%r10d
cmp    %r12d,(%r10,%r13,1)
jne    2980 <c_blit_write+0x1870>
add    %r9d,%edx
mov    %r14d,%ecx
mov    0xa0(%rsp),%rdi
movzbl (%rdi,%rcx,1),%ebx
mov    0x10(%rsp),%rsi
mov    %bl,(%rsi,%rdx,1)
movzbl 0x1(%rdi,%rcx,1),%ebx
mov    0x10(%rsp),%rsi
mov    %bl,0x1(%rsi,%rdx,1)
mov    0x10(%rsp),%rbx
movzbl 0x2(%rdi,%rcx,1),%ecx
mov    %cl,0x2(%rbx,%rdx,1)
jmp    2980 <c_blit_write+0x1870>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%ecx
add    %r9d,%ecx
mov    %ecx,0x30(%rsp)
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,0x3c(%rsp)
movswl %r11w,%r11d
add    %r8d,%r11d
movswl %r14w,%ecx
add    %r8d,%ecx
mov    %ecx,(%rsp)
movzwl %r15w,%ecx
mov    %ecx,0x40(%rsp)
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x50(%rsp)
add    %r8d,%eax
mov    %eax,0x48(%rsp)
movl   $0x0,0x8(%rsp)
xor    %ecx,%ecx
jmp    2a6e <c_blit_write+0x195e>
nopw   0x0(%rax,%rax,1)
mov    0x18(%rsp),%rcx
add    $0x1,%ecx
mov    0x8(%rsp),%eax
add    0x28(%rsp),%eax
mov    %eax,0x8(%rsp)
cmp    0x40(%rsp),%ecx
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
mov    %rcx,0x18(%rsp)
add    %ecx,%eax
movzwl %ax,%r8d
cmp    %r8d,0x30(%rsp)
mov    0x10(%rsp),%rbx
jg     2a50 <c_blit_write+0x1940>
cmp    %r8d,0x3c(%rsp)
jl     2a50 <c_blit_write+0x1940>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    2a50 <c_blit_write+0x1940>
imul   0x4(%rsp),%r8d
mov    0x50(%rsp),%r10
mov    0x8(%rsp),%r14d
mov    0x48(%rsp),%eax
mov    %eax,%edx
jmp    2acd <c_blit_write+0x19bd>
cs nopw 0x0(%rax,%rax,1)
nop
add    $0x1,%edx
add    $0x4,%r14d
add    $0xffffffffffffffff,%r10
je     2a50 <c_blit_write+0x1940>
movzwl %dx,%edx
cmp    %edx,%r11d
jg     2ac0 <c_blit_write+0x19b0>
cmp    %edx,(%rsp)
jl     2ac0 <c_blit_write+0x19b0>
lea    (%r8,%rdx,4),%r9d
mov    (%rbx,%r9,1),%eax
movzbl %al,%ebx
movzbl %ah,%edi
mov    %eax,%r15d
shr    $0x10,%r15d
mov    %r14d,%eax
mov    0xa0(%rsp),%rcx
mov    (%rcx,%rax,1),%eax
mov    %eax,%r13d
shr    $0x10,%r13d
mov    %eax,%ecx
shr    $0x18,%ecx
movzbl %al,%r12d
imul   %ecx,%r12d
movzbl %ah,%esi
imul   %ecx,%esi
movzbl %r13b,%r13d
imul   %ecx,%r13d
xor    $0xff,%ecx
imul   %ecx,%ebx
imul   %ecx,%edi
movzbl %r15b,%ebp
imul   %ecx,%ebp
add    %r12d,%ebx
movzbl %bh,%ecx
mov    0x10(%rsp),%rbx
add    %esi,%edi
add    %r13d,%ebp
and    $0xff00,%edi
shl    $0x8,%ebp
and    $0xff0000,%ebp
and    $0xff000000,%eax
or     %edi,%eax
or     %ecx,%eax
or     %ebp,%eax
mov    %eax,(%rbx,%r9,1)
jmp    2ac0 <c_blit_write+0x19b0>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%ecx
add    %r9d,%ecx
mov    %ecx,0x30(%rsp)
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,0x3c(%rsp)
movswl %r11w,%r11d
add    %r8d,%r11d
movswl %r14w,%ecx
add    %r8d,%ecx
mov    %ecx,(%rsp)
movzbl %dl,%ebp
not    %dl
movzbl %dl,%r13d
movzwl %r15w,%ecx
mov    %ecx,0x40(%rsp)
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x50(%rsp)
add    %r8d,%eax
mov    %eax,0x48(%rsp)
movl   $0x0,0x8(%rsp)
xor    %ecx,%ecx
jmp    2bee <c_blit_write+0x1ade>
nopl   0x0(%rax)
mov    0x18(%rsp),%rcx
add    $0x1,%ecx
mov    0x8(%rsp),%eax
add    0x28(%rsp),%eax
mov    %eax,0x8(%rsp)
cmp    0x40(%rsp),%ecx
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
mov    %rcx,0x18(%rsp)
add    %ecx,%eax
movzwl %ax,%r10d
cmp    %r10d,0x30(%rsp)
mov    0x10(%rsp),%rcx
jg     2bd0 <c_blit_write+0x1ac0>
cmp    %r10d,0x3c(%rsp)
jl     2bd0 <c_blit_write+0x1ac0>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    2bd0 <c_blit_write+0x1ac0>
imul   0x4(%rsp),%r10d
mov    0x50(%rsp),%rax
mov    0x8(%rsp),%r12d
mov    0x48(%rsp),%edx
mov    %edx,%r8d
jmp    2c4e <c_blit_write+0x1b3e>
cs nopw 0x0(%rax,%rax,1)
add    $0x1,%r8d
add    $0x3,%r12d
add    $0xffffffffffffffff,%rax
je     2bd0 <c_blit_write+0x1ac0>
movzwl %r8w,%r8d
cmp    %r8d,%r11d
jg     2c40 <c_blit_write+0x1b30>
cmp    %r8d,(%rsp)
jl     2c40 <c_blit_write+0x1b30>
lea    (%r8,%r8,2),%edx
add    %r10d,%edx
movzbl (%rcx,%rdx,1),%ecx
mov    0x10(%rsp),%rdi
movzbl 0x1(%rdi,%rdx,1),%ebx
mov    0x10(%rsp),%rdi
movzbl 0x2(%rdi,%rdx,1),%r14d
mov    %r12d,%edi
mov    0xa0(%rsp),%rsi
movzbl (%rsi,%rdi,1),%r15d
movzbl 0x1(%rsi,%rdi,1),%r9d
movzbl 0x2(%rsi,%rdi,1),%edi
imul   %ebp,%r15d
imul   %r13d,%ecx
add    %r15d,%ecx
imul   %ebp,%r9d
imul   %r13d,%ebx
add    %r9d,%ebx
imul   %ebp,%edi
imul   %r13d,%r14d
add    %edi,%r14d
mov    0x10(%rsp),%rdi
mov    %ch,(%rdi,%rdx,1)
mov    0x10(%rsp),%rcx
mov    %bh,0x1(%rcx,%rdx,1)
mov    0x10(%rsp),%rcx
mov    %r14d,%ebx
mov    %bh,0x2(%rcx,%rdx,1)
jmp    2c40 <c_blit_write+0x1b30>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%r10d
add    %r9d,%r10d
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
mov    %r14d,%ecx
movswl %r11w,%r14d
add    %r8d,%r14d
movswl %cx,%r13d
add    %r8d,%r13d
movzwl %r15w,%r15d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x8(%rsp)
add    %eax,%r8d
xor    %r12d,%r12d
xor    %r11d,%r11d
mov    0x10(%rsp),%r9
jmp    2d42 <c_blit_write+0x1c32>
nopl   0x0(%rax)
add    $0x1,%r11d
add    0x28(%rsp),%r12d
cmp    %r15d,%r11d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
lea    (%rax,%r11,1),%ecx
movzwl %cx,%edx
cmp    %edx,%r10d
jg     2d30 <c_blit_write+0x1c20>
cmp    %edx,(%rsp)
jl     2d30 <c_blit_write+0x1c20>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    2d30 <c_blit_write+0x1c20>
imul   0x4(%rsp),%edx
mov    0x8(%rsp),%rcx
mov    %r12d,%ebx
mov    %r8d,%ebp
jmp    2d8c <c_blit_write+0x1c7c>
cs nopw 0x0(%rax,%rax,1)
add    $0x1,%ebp
add    $0x4,%ebx
add    $0xffffffffffffffff,%rcx
je     2d30 <c_blit_write+0x1c20>
movzwl %bp,%ebp
cmp    %ebp,%r14d
jg     2d80 <c_blit_write+0x1c70>
cmp    %ebp,%r13d
jl     2d80 <c_blit_write+0x1c70>
lea    (%rdx,%rbp,4),%eax
mov    %ebx,%edi
mov    0xa0(%rsp),%rsi
mov    (%rsi,%rdi,1),%edi
add    %edi,(%r9,%rax,1)
jmp    2d80 <c_blit_write+0x1c70>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,0x8(%rsp)
movswl %r11w,%esi
add    %r8d,%esi
movswl %r14w,%r13d
add    %r8d,%r13d
movzwl %r15w,%r14d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x18(%rsp)
add    %r8d,%eax
mov    %eax,0x30(%rsp)
xor    %r12d,%r12d
xor    %r11d,%r11d
mov    0x10(%rsp),%r15
jmp    2e22 <c_blit_write+0x1d12>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
add    $0x1,%r11d
add    0x28(%rsp),%r12d
cmp    %r14d,%r11d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
lea    (%rax,%r11,1),%ecx
movzwl %cx,%r8d
cmp    %r8d,(%rsp)
jg     2e10 <c_blit_write+0x1d00>
cmp    %r8d,0x8(%rsp)
jl     2e10 <c_blit_write+0x1d00>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    2e10 <c_blit_write+0x1d00>
imul   0x4(%rsp),%r8d
mov    0x18(%rsp),%rcx
mov    %r12d,%ebx
mov    0x30(%rsp),%eax
mov    %eax,%ebp
jmp    2e6c <c_blit_write+0x1d5c>
xchg   %ax,%ax
add    $0x1,%ebp
add    $0x3,%ebx
add    $0xffffffffffffffff,%rcx
je     2e10 <c_blit_write+0x1d00>
movzwl %bp,%ebp
cmp    %ebp,%esi
jg     2e60 <c_blit_write+0x1d50>
cmp    %ebp,%r13d
jl     2e60 <c_blit_write+0x1d50>
lea    0x0(%rbp,%rbp,2),%eax
add    %r8d,%eax
mov    %ebx,%edi
mov    0xa0(%rsp),%r10
movzbl (%r10,%rdi,1),%r9d
add    %r9b,(%r15,%rax,1)
movzbl 0x1(%r10,%rdi,1),%edx
add    %dl,0x1(%r15,%rax,1)
movzbl 0x2(%r10,%rdi,1),%edx
add    %dl,0x2(%r15,%rax,1)
jmp    2e60 <c_blit_write+0x1d50>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%r10d
add    %r9d,%r10d
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
mov    %r14d,%ecx
movswl %r11w,%r14d
add    %r8d,%r14d
movswl %cx,%r13d
add    %r8d,%r13d
movzwl %r15w,%r15d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x8(%rsp)
add    %eax,%r8d
xor    %r12d,%r12d
xor    %r11d,%r11d
mov    0x10(%rsp),%r9
jmp    2f12 <c_blit_write+0x1e02>
nopl   0x0(%rax)
add    $0x1,%r11d
add    0x28(%rsp),%r12d
cmp    %r15d,%r11d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
lea    (%rax,%r11,1),%ecx
movzwl %cx,%edx
cmp    %edx,%r10d
jg     2f00 <c_blit_write+0x1df0>
cmp    %edx,(%rsp)
jl     2f00 <c_blit_write+0x1df0>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    2f00 <c_blit_write+0x1df0>
imul   0x4(%rsp),%edx
mov    0x8(%rsp),%rcx
mov    %r12d,%ebx
mov    %r8d,%ebp
jmp    2f5c <c_blit_write+0x1e4c>
cs nopw 0x0(%rax,%rax,1)
add    $0x1,%ebp
add    $0x4,%ebx
add    $0xffffffffffffffff,%rcx
je     2f00 <c_blit_write+0x1df0>
movzwl %bp,%ebp
cmp    %ebp,%r14d
jg     2f50 <c_blit_write+0x1e40>
cmp    %ebp,%r13d
jl     2f50 <c_blit_write+0x1e40>
lea    (%rdx,%rbp,4),%eax
mov    %ebx,%edi
mov    0xa0(%rsp),%rsi
mov    (%rsi,%rdi,1),%edi
sub    %edi,(%r9,%rax,1)
jmp    2f50 <c_blit_write+0x1e40>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,0x8(%rsp)
movswl %r11w,%esi
add    %r8d,%esi
movswl %r14w,%r13d
add    %r8d,%r13d
movzwl %r15w,%r14d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x18(%rsp)
add    %r8d,%eax
mov    %eax,0x30(%rsp)
xor    %r12d,%r12d
xor    %r11d,%r11d
mov    0x10(%rsp),%r15
jmp    2ff2 <c_blit_write+0x1ee2>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
add    $0x1,%r11d
add    0x28(%rsp),%r12d
cmp    %r14d,%r11d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
lea    (%rax,%r11,1),%ecx
movzwl %cx,%r8d
cmp    %r8d,(%rsp)
jg     2fe0 <c_blit_write+0x1ed0>
cmp    %r8d,0x8(%rsp)
jl     2fe0 <c_blit_write+0x1ed0>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    2fe0 <c_blit_write+0x1ed0>
imul   0x4(%rsp),%r8d
mov    0x18(%rsp),%rcx
mov    %r12d,%ebx
mov    0x30(%rsp),%eax
mov    %eax,%ebp
jmp    303c <c_blit_write+0x1f2c>
xchg   %ax,%ax
add    $0x1,%ebp
add    $0x3,%ebx
add    $0xffffffffffffffff,%rcx
je     2fe0 <c_blit_write+0x1ed0>
movzwl %bp,%ebp
cmp    %ebp,%esi
jg     3030 <c_blit_write+0x1f20>
cmp    %ebp,%r13d
jl     3030 <c_blit_write+0x1f20>
lea    0x0(%rbp,%rbp,2),%eax
add    %r8d,%eax
mov    %ebx,%edi
mov    0xa0(%rsp),%r10
movzbl (%r10,%rdi,1),%r9d
sub    %r9b,(%r15,%rax,1)
movzbl 0x1(%r10,%rdi,1),%edx
sub    %dl,0x1(%r15,%rax,1)
movzbl 0x2(%r10,%rdi,1),%edx
sub    %dl,0x2(%r15,%rax,1)
jmp    3030 <c_blit_write+0x1f20>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%r10d
add    %r9d,%r10d
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
mov    %r14d,%ecx
movswl %r11w,%r14d
add    %r8d,%r14d
movswl %cx,%r13d
add    %r8d,%r13d
movzwl %r15w,%r15d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x8(%rsp)
add    %r8d,%eax
mov    %eax,0x18(%rsp)
xor    %r12d,%r12d
xor    %r11d,%r11d
mov    0x10(%rsp),%rsi
jmp    30e2 <c_blit_write+0x1fd2>
nopl   (%rax)
add    $0x1,%r11d
add    0x28(%rsp),%r12d
cmp    %r15d,%r11d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
lea    (%rax,%r11,1),%ecx
movzwl %cx,%edx
cmp    %edx,%r10d
jg     30d0 <c_blit_write+0x1fc0>
cmp    %edx,(%rsp)
jl     30d0 <c_blit_write+0x1fc0>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    30d0 <c_blit_write+0x1fc0>
imul   0x4(%rsp),%edx
mov    0x8(%rsp),%rcx
mov    %r12d,%ebx
mov    0x18(%rsp),%eax
mov    %eax,%ebp
jmp    312c <c_blit_write+0x201c>
nopl   0x0(%rax)
add    $0x1,%ebp
add    $0x4,%ebx
add    $0xffffffffffffffff,%rcx
je     30d0 <c_blit_write+0x1fc0>
movzwl %bp,%ebp
cmp    %ebp,%r14d
jg     3120 <c_blit_write+0x2010>
cmp    %ebp,%r13d
jl     3120 <c_blit_write+0x2010>
lea    (%rdx,%rbp,4),%eax
mov    %ebx,%edi
mov    (%rsi,%rax,1),%r9d
mov    0xa0(%rsp),%r8
imul   (%r8,%rdi,1),%r9d
mov    %r9d,(%rsi,%rax,1)
jmp    3120 <c_blit_write+0x2010>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,0x18(%rsp)
mov    %r15,%rcx
movswl %r11w,%r15d
add    %r8d,%r15d
movswl %r14w,%r11d
add    %r8d,%r11d
movzwl %cx,%ecx
mov    %ecx,0x8(%rsp)
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x30(%rsp)
add    %r8d,%eax
mov    %eax,0x40(%rsp)
xor    %r9d,%r9d
xor    %r10d,%r10d
mov    0x10(%rsp),%r13
jmp    31c4 <c_blit_write+0x20b4>
nop
add    $0x1,%r10d
add    0x28(%rsp),%r9d
cmp    0x8(%rsp),%r10d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
add    %r10d,%eax
movzwl %ax,%ebx
cmp    %ebx,(%rsp)
jg     31b0 <c_blit_write+0x20a0>
cmp    %ebx,0x18(%rsp)
jl     31b0 <c_blit_write+0x20a0>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    31b0 <c_blit_write+0x20a0>
imul   0x4(%rsp),%ebx
mov    0x30(%rsp),%rsi
mov    %r9d,%r14d
mov    0x40(%rsp),%eax
mov    %eax,%r8d
jmp    320e <c_blit_write+0x20fe>
nopl   0x0(%rax)
add    $0x1,%r8d
add    $0x3,%r14d
add    $0xffffffffffffffff,%rsi
je     31b0 <c_blit_write+0x20a0>
movzwl %r8w,%r8d
cmp    %r8d,%r15d
jg     3200 <c_blit_write+0x20f0>
cmp    %r8d,%r11d
jl     3200 <c_blit_write+0x20f0>
lea    (%r8,%r8,2),%ecx
add    %ebx,%ecx
mov    %r14d,%ebp
movzbl 0x0(%r13,%rcx,1),%eax
movzbl 0x1(%r13,%rcx,1),%edx
mov    0xa0(%rsp),%r12
mulb   (%r12,%rbp,1)
mov    %al,0x0(%r13,%rcx,1)
mov    %edx,%eax
mulb   0x1(%r12,%rbp,1)
mov    %al,0x1(%r13,%rcx,1)
movzbl 0x2(%r13,%rcx,1),%eax
mulb   0x2(%r12,%rbp,1)
mov    %al,0x2(%r13,%rcx,1)
jmp    3200 <c_blit_write+0x20f0>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,0x8(%rsp)
movswl %r11w,%edi
add    %r8d,%edi
movswl %r14w,%r11d
add    %r8d,%r11d
movzwl %r15w,%r14d
mov    0xb8(%rsp),%ecx
movzwl %cx,%ecx
mov    %rcx,0x18(%rsp)
add    %r8d,%eax
mov    %eax,0x30(%rsp)
xor    %r10d,%r10d
xor    %r15d,%r15d
mov    0x10(%rsp),%r13
jmp    32d2 <c_blit_write+0x21c2>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
add    $0x1,%r15d
add    0x28(%rsp),%r10d
cmp    %r14d,%r15d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
add    %r15d,%eax
movzwl %ax,%ebx
cmp    %ebx,(%rsp)
jg     32c0 <c_blit_write+0x21b0>
cmp    %ebx,0x8(%rsp)
jl     32c0 <c_blit_write+0x21b0>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    32c0 <c_blit_write+0x21b0>
imul   0x4(%rsp),%ebx
mov    0x18(%rsp),%rsi
mov    %r10d,%ecx
mov    0x30(%rsp),%eax
mov    %eax,%r9d
jmp    331d <c_blit_write+0x220d>
nopw   0x0(%rax,%rax,1)
add    $0x1,%r9d
add    $0x4,%ecx
add    $0xffffffffffffffff,%rsi
je     32c0 <c_blit_write+0x21b0>
movzwl %r9w,%r9d
cmp    %r9d,%edi
jg     3310 <c_blit_write+0x2200>
cmp    %r9d,%r11d
jl     3310 <c_blit_write+0x2200>
lea    (%rbx,%r9,4),%ebp
mov    %ecx,%r8d
mov    0x0(%r13,%rbp,1),%eax
xor    %edx,%edx
mov    0xa0(%rsp),%r12
divl   (%r12,%r8,1)
mov    %eax,0x0(%r13,%rbp,1)
jmp    3310 <c_blit_write+0x2200>
test   %r15w,%r15w
jle    1305 <c_blit_write+0x1f5>
movswl %r10w,%ecx
add    %r9d,%ecx
mov    %ecx,(%rsp)
movswl %r13w,%ecx
add    %r9d,%ecx
mov    %ecx,0x18(%rsp)
movswl %r11w,%ecx
add    %r8d,%ecx
movswl %r14w,%r11d
add    %r8d,%r11d
movzwl %r15w,%edx
mov    %edx,0x8(%rsp)
mov    0xb8(%rsp),%edx
movzwl %dx,%edx
mov    %rdx,0x30(%rsp)
add    %r8d,%eax
mov    %eax,0x40(%rsp)
xor    %r9d,%r9d
xor    %r10d,%r10d
mov    0x10(%rsp),%r13
jmp    33c4 <c_blit_write+0x22b4>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
add    $0x1,%r10d
add    0x28(%rsp),%r9d
cmp    0x8(%rsp),%r10d
je     1305 <c_blit_write+0x1f5>
mov    0x20(%rsp),%rax
add    %r10d,%eax
movzwl %ax,%r14d
cmp    %r14d,(%rsp)
jg     33b0 <c_blit_write+0x22a0>
cmp    %r14d,0x18(%rsp)
jl     33b0 <c_blit_write+0x22a0>
mov    0xb8(%rsp),%eax
test   %ax,%ax
jle    33b0 <c_blit_write+0x22a0>
imul   0x4(%rsp),%r14d
mov    0x30(%rsp),%rdi
mov    %r9d,%r12d
mov    0x40(%rsp),%eax
mov    %eax,%r8d
jmp    340e <c_blit_write+0x22fe>
add    $0x1,%r8d
add    $0x3,%r12d
add    $0xffffffffffffffff,%rdi
je     33b0 <c_blit_write+0x22a0>
movzwl %r8w,%r8d
cmp    %r8d,%ecx
jg     3400 <c_blit_write+0x22f0>
cmp    %r8d,%r11d
jl     3400 <c_blit_write+0x22f0>
lea    (%r8,%r8,2),%esi
add    %r14d,%esi
mov    %r12d,%ebp
mov    0xa0(%rsp),%r15
movsbl (%r15,%rbp,1),%ebx
movsbl 0x0(%r13,%rsi,1),%eax
cwtd
idiv   %bx
mov    %al,0x0(%r13,%rsi,1)
movsbl 0x1(%r15,%rbp,1),%ebx
movsbl 0x1(%r13,%rsi,1),%eax
cwtd
idiv   %bx
mov    %al,0x1(%r13,%rsi,1)
movsbl 0x2(%r15,%rbp,1),%ebx
movsbl 0x2(%r13,%rsi,1),%eax
cwtd
idiv   %bx
mov    %al,0x2(%r13,%rsi,1)
jmp    3400 <c_blit_write+0x22f0>

LLVM IR (-O0):
define void @c_blit_write(i8* %0, i16 signext %1, i16 signext %2, i32 %3, i16 signext %4, i16 signext %5, i8* %6, i16 signext %7, i16 signext %8, i16 signext %9, i16 signext %10, i8 zeroext %11, i8 zeroext %12, i8 zeroext %13, i32 %14, i16 signext %15, i16 signext %16, i16 signext %17, i16 signext %18) {
%20 = alloca i8*
%21 = alloca i16
%22 = alloca i16
%23 = alloca i32
%24 = alloca i16
%25 = alloca i16
%26 = alloca i8*
%27 = alloca i16
%28 = alloca i16
%29 = alloca i16
%30 = alloca i16
%31 = alloca i8
%32 = alloca i8
%33 = alloca i8
%34 = alloca i32
%35 = alloca i16
%36 = alloca i16
%37 = alloca i16
%38 = alloca i16
%39 = alloca i16
%40 = alloca i16
%41 = alloca i16
%42 = alloca i16
%43 = alloca i16
%44 = alloca i16
%45 = alloca i32
%46 = alloca i8*
%47 = alloca i8*
%48 = alloca i32
%49 = alloca i16
%50 = alloca i32
%51 = alloca i16
%52 = alloca i32
%53 = alloca i32
%54 = alloca i32
%55 = alloca i32
%56 = alloca i32
%57 = alloca i32
%58 = alloca i16
%59 = alloca i32
%60 = alloca i16
%61 = alloca i32
%62 = alloca i32
%63 = alloca i32
%64 = alloca i32
%65 = alloca i32
%66 = alloca i32
%67 = alloca i16
%68 = alloca i32
%69 = alloca i16
%70 = alloca i32
%71 = alloca i32
%72 = alloca i32
%73 = alloca i32
%74 = alloca i32
%75 = alloca i32
%76 = alloca i16
%77 = alloca i32
%78 = alloca i16
%79 = alloca i32
%80 = alloca i32
%81 = alloca i32
%82 = alloca i32
%83 = alloca i32
%84 = alloca i32
%85 = alloca i16
%86 = alloca i32
%87 = alloca i16
%88 = alloca i32
%89 = alloca i32
%90 = alloca i32
%91 = alloca i32
%92 = alloca i32
%93 = alloca i32
%94 = alloca i16
%95 = alloca i32
%96 = alloca i16
%97 = alloca i32
%98 = alloca i32
%99 = alloca i32
%100 = alloca i32
%101 = alloca i32
%102 = alloca i32
%103 = alloca i16
%104 = alloca i32
%105 = alloca i16
%106 = alloca i32
%107 = alloca i32
%108 = alloca i32
%109 = alloca i32
%110 = alloca i32
%111 = alloca i32
%112 = alloca i16
%113 = alloca i32
%114 = alloca i16
%115 = alloca i32
%116 = alloca i32
%117 = alloca i32
%118 = alloca i32
%119 = alloca i32
%120 = alloca i32
%121 = alloca i16
%122 = alloca i32
%123 = alloca i16
%124 = alloca i32
%125 = alloca i32
%126 = alloca i32
%127 = alloca i32
%128 = alloca i32
%129 = alloca i32
%130 = alloca i16
%131 = alloca i32
%132 = alloca i16
%133 = alloca i32
%134 = alloca i32
%135 = alloca i32
%136 = alloca i32
%137 = alloca i32
%138 = alloca i32
%139 = alloca i16
%140 = alloca i32
%141 = alloca i16
%142 = alloca i32
%143 = alloca i32
%144 = alloca i32
%145 = alloca i32
%146 = alloca i32
%147 = alloca i32
%148 = alloca i16
%149 = alloca i32
%150 = alloca i16
%151 = alloca i32
%152 = alloca i32
%153 = alloca i32
%154 = alloca i32
%155 = alloca i32
%156 = alloca i32
%157 = alloca i16
%158 = alloca i32
%159 = alloca i16
%160 = alloca i32
%161 = alloca i32
%162 = alloca i32
%163 = alloca i32
%164 = alloca i32
%165 = alloca i32
%166 = alloca i32
%167 = alloca i16
%168 = alloca i32
%169 = alloca i16
%170 = alloca i32
%171 = alloca i32
%172 = alloca i32
%173 = alloca i32
%174 = alloca i32
%175 = alloca i32
%176 = alloca i16
%177 = alloca i32
%178 = alloca i16
%179 = alloca i32
%180 = alloca i32
%181 = alloca i32
%182 = alloca i32
%183 = alloca i32
%184 = alloca i32
%185 = alloca i32
%186 = alloca i16
%187 = alloca i32
%188 = alloca i16
%189 = alloca i32
%190 = alloca i32
%191 = alloca i32
%192 = alloca i32
%193 = alloca i32
%194 = alloca i32
%195 = alloca i16
%196 = alloca i32
%197 = alloca i16
%198 = alloca i32
%199 = alloca i32
%200 = alloca i32
%201 = alloca i32
%202 = alloca i32
%203 = alloca i32
%204 = alloca i16
%205 = alloca i32
%206 = alloca i16
%207 = alloca i32
%208 = alloca i32
%209 = alloca i32
%210 = alloca i32
%211 = alloca i32
%212 = alloca i32
%213 = alloca i16
%214 = alloca i32
%215 = alloca i16
%216 = alloca i32
%217 = alloca i32
%218 = alloca i32
%219 = alloca i32
%220 = alloca i32
%221 = alloca i32
%222 = alloca i8
%223 = alloca i8
%224 = alloca i8
%225 = alloca i32
%226 = alloca i8
%227 = alloca i8
%228 = alloca i8
%229 = alloca i8
%230 = alloca i8
%231 = alloca i32
%232 = alloca i16
%233 = alloca i32
%234 = alloca i16
%235 = alloca i32
%236 = alloca i32
%237 = alloca i32
%238 = alloca i32
%239 = alloca i32
%240 = alloca i8
%241 = alloca i8
%242 = alloca i8
%243 = alloca i8
%244 = alloca i8
%245 = alloca i8
%246 = alloca i8
%247 = alloca i32
%248 = alloca i16
%249 = alloca i32
%250 = alloca i16
%251 = alloca i32
%252 = alloca i32
%253 = alloca i32
%254 = alloca i32
%255 = alloca i32
%256 = alloca i16
%257 = alloca i16
%258 = alloca i16
%259 = alloca i16
%260 = alloca i16
%261 = alloca i16
%262 = alloca i16
%263 = alloca i8
%264 = alloca i32
%265 = alloca i16
%266 = alloca i32
%267 = alloca i16
%268 = alloca i32
%269 = alloca i32
%270 = alloca i32
%271 = alloca i32
%272 = alloca i32
%273 = alloca i32
%274 = alloca i16
%275 = alloca i32
%276 = alloca i16
%277 = alloca i32
%278 = alloca i32
%279 = alloca i32
%280 = alloca i32
%281 = alloca i32
%282 = alloca i32
%283 = alloca i16
%284 = alloca i32
%285 = alloca i16
%286 = alloca i32
%287 = alloca i32
%288 = alloca i32
%289 = alloca i32
%290 = alloca i32
%291 = alloca i32
%292 = alloca i16
%293 = alloca i32
%294 = alloca i16
%295 = alloca i32
%296 = alloca i32
%297 = alloca i32
%298 = alloca i32
%299 = alloca i32
%300 = alloca i32
%301 = alloca i16
%302 = alloca i32
%303 = alloca i16
%304 = alloca i32
%305 = alloca i32
%306 = alloca i32
%307 = alloca i32
%308 = alloca i32
%309 = alloca i32
%310 = alloca i16
%311 = alloca i32
%312 = alloca i16
%313 = alloca i32
%314 = alloca i32
%315 = alloca i32
%316 = alloca i32
%317 = alloca i32
%318 = alloca i32
%319 = alloca i16
%320 = alloca i32
%321 = alloca i16
%322 = alloca i32
%323 = alloca i32
%324 = alloca i32
%325 = alloca i32
%326 = alloca i32
%327 = alloca i32
%328 = alloca i16
%329 = alloca i32
%330 = alloca i16
%331 = alloca i32
%332 = alloca i32
%333 = alloca i32
%334 = alloca i32
%335 = alloca i32
%336 = alloca i32
%337 = alloca i16
%338 = alloca i32
%339 = alloca i16
%340 = alloca i32
%341 = alloca i32
%342 = alloca i32
%343 = alloca i32
%344 = alloca i32
%345 = alloca i32
%346 = alloca i16
%347 = alloca i32
%348 = alloca i16
%349 = alloca i32
%350 = alloca i32
%351 = alloca i32
%352 = alloca i32
%353 = alloca i32
%354 = alloca i32
%355 = alloca i16
%356 = alloca i32
%357 = alloca i16
%358 = alloca i32
%359 = alloca i32
%360 = alloca i32
%361 = alloca i32
%362 = alloca i32
%363 = alloca i32
%364 = alloca i16
%365 = alloca i32
%366 = alloca i16
%367 = alloca i32
%368 = alloca i32
%369 = alloca i32
%370 = alloca i32
%371 = alloca i32
store i8* %0, i8** %20
store i16 %1, i16* %21
store i16 %2, i16* %22
store i32 %3, i32* %23
store i16 %4, i16* %24
store i16 %5, i16* %25
store i8* %6, i8** %26
store i16 %7, i16* %27
store i16 %8, i16* %28
store i16 %9, i16* %29
store i16 %10, i16* %30
store i8 %11, i8* %31
store i8 %12, i8* %32
store i8 %13, i8* %33
store i32 %14, i32* %34
store i16 %15, i16* %35
store i16 %16, i16* %36
store i16 %17, i16* %37
store i16 %18, i16* %38
%372 = load i16, i16* %24
%373 = sext i16 %372 to i32
%374 = load i16, i16* %27
%375 = sext i16 %374 to i32
%376 = add nsw i32 %373, %375
%377 = trunc i32 %376 to i16
store i16 %377, i16* %39
%378 = load i16, i16* %25
%379 = sext i16 %378 to i32
%380 = load i16, i16* %28
%381 = sext i16 %380 to i32
%382 = add nsw i32 %379, %381
%383 = trunc i32 %382 to i16
store i16 %383, i16* %40
%384 = load i16, i16* %27
%385 = sext i16 %384 to i32
%386 = load i16, i16* %29
%387 = sext i16 %386 to i32
%388 = add nsw i32 %385, %387
%389 = trunc i32 %388 to i16
store i16 %389, i16* %41
%390 = load i16, i16* %28
%391 = sext i16 %390 to i32
%392 = load i16, i16* %30
%393 = sext i16 %392 to i32
%394 = add nsw i32 %391, %393
%395 = trunc i32 %394 to i16
store i16 %395, i16* %42
%396 = load i16, i16* %29
%397 = sext i16 %396 to i32
%398 = load i8, i8* %31
%399 = zext i8 %398 to i32
%400 = mul nsw i32 %397, %399
store i32 %400, i32* %45
%401 = load i8, i8* %32
%402 = zext i8 %401 to i32
%403 = icmp eq i32 %402, 0
br i1 %403, label %404, label %466
404: ; preds = %19
%405 = load i16, i16* %27
%406 = sext i16 %405 to i32
%407 = load i16, i16* %35
%408 = sext i16 %407 to i32
%409 = icmp sge i32 %406, %408
br i1 %409, label %410, label %466
410: ; preds = %404
%411 = load i16, i16* %41
%412 = sext i16 %411 to i32
%413 = load i16, i16* %37
%414 = sext i16 %413 to i32
%415 = icmp sle i32 %412, %414
br i1 %415, label %416, label %466
416: ; preds = %410
%417 = load i16, i16* %28
%418 = sext i16 %417 to i32
%419 = load i16, i16* %36
%420 = sext i16 %419 to i32
%421 = icmp sge i32 %418, %420
br i1 %421, label %422, label %466
422: ; preds = %416
%423 = load i16, i16* %42
%424 = sext i16 %423 to i32
%425 = load i16, i16* %38
%426 = sext i16 %425 to i32
%427 = icmp sle i32 %424, %426
br i1 %427, label %428, label %466
428: ; preds = %422
%429 = load i8*, i8** %26
store i8* %429, i8** %46
%430 = load i8*, i8** %20
%431 = load i16, i16* %40
%432 = sext i16 %431 to i32
%433 = load i32, i32* %23
%434 = mul i32 %432, %433
%435 = load i16, i16* %39
%436 = sext i16 %435 to i32
%437 = load i8, i8* %31
%438 = zext i8 %437 to i32
%439 = mul nsw i32 %436, %438
%440 = add i32 %434, %439
%441 = zext i32 %440 to i64
%442 = getelementptr inbounds i8, i8* %430, i64 %441
store i8* %442, i8** %47
store i16 0, i16* %44
br label %443
443: ; preds = %462, %428
%444 = load i16, i16* %44
%445 = sext i16 %444 to i32
%446 = load i16, i16* %30
%447 = sext i16 %446 to i32
%448 = icmp slt i32 %445, %447
br i1 %448, label %449, label %465
449: ; preds = %443
%450 = load i8*, i8** %47
%451 = load i8*, i8** %46
%452 = load i32, i32* %45
%453 = zext i32 %452 to i64
%454 = load i32, i32* %45
%455 = load i8*, i8** %46
%456 = zext i32 %454 to i64
%457 = getelementptr inbounds i8, i8* %455, i64 %456
store i8* %457, i8** %46
%458 = load i32, i32* %23
%459 = load i8*, i8** %47
%460 = zext i32 %458 to i64
%461 = getelementptr inbounds i8, i8* %459, i64 %460
store i8* %461, i8** %47
br label %462
462: ; preds = %449
%463 = load i16, i16* %44
%464 = add i16 %463, 1
store i16 %464, i16* %44
br label %443
465: ; preds = %443
br label %4861
466: ; preds = %422, %416, %410, %404, %19
%467 = load i8, i8* %32
%468 = zext i8 %467 to i32
switch i32 %468, label %4860 [
i32 0, label %469
i32 1, label %826
i32 2, label %1205
i32 3, label %1584
i32 4, label %1963
i32 5, label %2349
i32 6, label %2747
i32 7, label %3344
i32 8, label %3723
i32 9, label %4102
i32 10, label %4481
]
469: ; preds = %466
%470 = load i8, i8* %31
%471 = zext i8 %470 to i32
switch i32 %471, label %825 [
i32 4, label %472
i32 3, label %583
i32 2, label %714
]
472: ; preds = %469
store i16 0, i16* %44
br label %473
473: ; preds = %579, %472
%474 = load i16, i16* %44
%475 = sext i16 %474 to i32
%476 = load i16, i16* %30
%477 = sext i16 %476 to i32
%478 = icmp slt i32 %475, %477
br i1 %478, label %479, label %582
479: ; preds = %473
%480 = load i16, i16* %44
%481 = sext i16 %480 to i32
%482 = load i32, i32* %45
%483 = mul i32 %481, %482
store i32 %483, i32* %48
%484 = load i16, i16* %40
%485 = sext i16 %484 to i32
%486 = load i16, i16* %44
%487 = sext i16 %486 to i32
%488 = add nsw i32 %485, %487
%489 = trunc i32 %488 to i16
store i16 %489, i16* %49
%490 = load i16, i16* %49
%491 = zext i16 %490 to i32
%492 = load i32, i32* %23
%493 = mul i32 %491, %492
store i32 %493, i32* %50
%494 = load i16, i16* %49
%495 = zext i16 %494 to i32
%496 = load i16, i16* %25
%497 = sext i16 %496 to i32
%498 = load i16, i16* %36
%499 = sext i16 %498 to i32
%500 = add nsw i32 %497, %499
%501 = icmp sge i32 %495, %500
br i1 %501, label %502, label %578
502: ; preds = %479
%503 = load i16, i16* %49
%504 = zext i16 %503 to i32
%505 = load i16, i16* %25
%506 = sext i16 %505 to i32
%507 = load i16, i16* %38
%508 = sext i16 %507 to i32
%509 = add nsw i32 %506, %508
%510 = icmp sle i32 %504, %509
br i1 %510, label %511, label %578
511: ; preds = %502
store i16 0, i16* %43
br label %512
512: ; preds = %574, %511
%513 = load i16, i16* %43
%514 = sext i16 %513 to i32
%515 = load i16, i16* %29
%516 = sext i16 %515 to i32
%517 = icmp slt i32 %514, %516
br i1 %517, label %518, label %577
518: ; preds = %512
%519 = load i16, i16* %39
%520 = sext i16 %519 to i32
%521 = load i16, i16* %43
%522 = sext i16 %521 to i32
%523 = add nsw i32 %520, %522
%524 = trunc i32 %523 to i16
store i16 %524, i16* %51
%525 = load i16, i16* %51
%526 = zext i16 %525 to i32
%527 = load i8, i8* %31
%528 = zext i8 %527 to i32
%529 = mul nsw i32 %526, %528
store i32 %529, i32* %52
%530 = load i16, i16* %51
%531 = zext i16 %530 to i32
%532 = load i16, i16* %24
%533 = sext i16 %532 to i32
%534 = load i16, i16* %35
%535 = sext i16 %534 to i32
%536 = add nsw i32 %533, %535
%537 = icmp sge i32 %531, %536
br i1 %537, label %538, label %573
538: ; preds = %518
%539 = load i16, i16* %51
%540 = zext i16 %539 to i32
%541 = load i16, i16* %24
%542 = sext i16 %541 to i32
%543 = load i16, i16* %37
%544 = sext i16 %543 to i32
%545 = add nsw i32 %542, %544
%546 = icmp sle i32 %540, %545
br i1 %546, label %547, label %573
547: ; preds = %538
%548 = load i16, i16* %43
%549 = sext i16 %548 to i32
%550 = load i8, i8* %31
%551 = zext i8 %550 to i32
%552 = mul nsw i32 %549, %551
store i32 %552, i32* %53
%553 = load i32, i32* %48
%554 = load i32, i32* %53
%555 = add i32 %553, %554
store i32 %555, i32* %54
%556 = load i32, i32* %50
%557 = load i32, i32* %53
%558 = add i32 %556, %557
store i32 %558, i32* %55
%559 = load i32, i32* %52
%560 = load i32, i32* %50
%561 = add i32 %559, %560
store i32 %561, i32* %56
%562 = load i8*, i8** %26
%563 = load i32, i32* %54
%564 = zext i32 %563 to i64
%565 = getelementptr inbounds i8, i8* %562, i64 %564
%566 = bitcast i8* %565 to i32*
%567 = load i32, i32* %566
%568 = load i8*, i8** %20
%569 = load i32, i32* %56
%570 = zext i32 %569 to i64
%571 = getelementptr inbounds i8, i8* %568, i64 %570
%572 = bitcast i8* %571 to i32*
store i32 %567, i32* %572
br label %573
573: ; preds = %547, %538, %518
br label %574
574: ; preds = %573
%575 = load i16, i16* %43
%576 = add i16 %575, 1
store i16 %576, i16* %43
br label %512
577: ; preds = %512
br label %578
578: ; preds = %577, %502, %479
br label %579
579: ; preds = %578
%580 = load i16, i16* %44
%581 = add i16 %580, 1
store i16 %581, i16* %44
br label %473
582: ; preds = %473
br label %825
583: ; preds = %469
store i16 0, i16* %44
br label %584
584: ; preds = %710, %583
%585 = load i16, i16* %44
%586 = sext i16 %585 to i32
%587 = load i16, i16* %30
%588 = sext i16 %587 to i32
%589 = icmp slt i32 %586, %588
br i1 %589, label %590, label %713
590: ; preds = %584
%591 = load i16, i16* %44
%592 = sext i16 %591 to i32
%593 = load i32, i32* %45
%594 = mul i32 %592, %593
store i32 %594, i32* %57
%595 = load i16, i16* %40
%596 = sext i16 %595 to i32
%597 = load i16, i16* %44
%598 = sext i16 %597 to i32
%599 = add nsw i32 %596, %598
%600 = trunc i32 %599 to i16
store i16 %600, i16* %58
%601 = load i16, i16* %58
%602 = zext i16 %601 to i32
%603 = load i32, i32* %23
%604 = mul i32 %602, %603
store i32 %604, i32* %59
%605 = load i16, i16* %58
%606 = zext i16 %605 to i32
%607 = load i16, i16* %25
%608 = sext i16 %607 to i32
%609 = load i16, i16* %36
%610 = sext i16 %609 to i32
%611 = add nsw i32 %608, %610
%612 = icmp sge i32 %606, %611
br i1 %612, label %613, label %709
613: ; preds = %590
%614 = load i16, i16* %58
%615 = zext i16 %614 to i32
%616 = load i16, i16* %25
%617 = sext i16 %616 to i32
%618 = load i16, i16* %38
%619 = sext i16 %618 to i32
%620 = add nsw i32 %617, %619
%621 = icmp sle i32 %615, %620
br i1 %621, label %622, label %709
622: ; preds = %613
store i16 0, i16* %43
br label %623
623: ; preds = %705, %622
%624 = load i16, i16* %43
%625 = sext i16 %624 to i32
%626 = load i16, i16* %29
%627 = sext i16 %626 to i32
%628 = icmp slt i32 %625, %627
br i1 %628, label %629, label %708
629: ; preds = %623
%630 = load i16, i16* %39
%631 = sext i16 %630 to i32
%632 = load i16, i16* %43
%633 = sext i16 %632 to i32
%634 = add nsw i32 %631, %633
%635 = trunc i32 %634 to i16
store i16 %635, i16* %60
%636 = load i16, i16* %60
%637 = zext i16 %636 to i32
%638 = load i8, i8* %31
%639 = zext i8 %638 to i32
%640 = mul nsw i32 %637, %639
store i32 %640, i32* %61
%641 = load i16, i16* %60
%642 = zext i16 %641 to i32
%643 = load i16, i16* %24
%644 = sext i16 %643 to i32
%645 = load i16, i16* %35
%646 = sext i16 %645 to i32
%647 = add nsw i32 %644, %646
%648 = icmp sge i32 %642, %647
br i1 %648, label %649, label %704
649: ; preds = %629
%650 = load i16, i16* %60
%651 = zext i16 %650 to i32
%652 = load i16, i16* %24
%653 = sext i16 %652 to i32
%654 = load i16, i16* %37
%655 = sext i16 %654 to i32
%656 = add nsw i32 %653, %655
%657 = icmp sle i32 %651, %656
br i1 %657, label %658, label %704
658: ; preds = %649
%659 = load i16, i16* %43
%660 = sext i16 %659 to i32
%661 = load i8, i8* %31
%662 = zext i8 %661 to i32
%663 = mul nsw i32 %660, %662
store i32 %663, i32* %62
%664 = load i32, i32* %57
%665 = load i32, i32* %62
%666 = add i32 %664, %665
store i32 %666, i32* %63
%667 = load i32, i32* %59
%668 = load i32, i32* %62
%669 = add i32 %667, %668
store i32 %669, i32* %64
%670 = load i32, i32* %61
%671 = load i32, i32* %59
%672 = add i32 %670, %671
store i32 %672, i32* %65
%673 = load i8*, i8** %26
%674 = load i32, i32* %63
%675 = zext i32 %674 to i64
%676 = getelementptr inbounds i8, i8* %673, i64 %675
%677 = load i8, i8* %676
%678 = load i8*, i8** %20
%679 = load i32, i32* %65
%680 = zext i32 %679 to i64
%681 = getelementptr inbounds i8, i8* %678, i64 %680
store i8 %677, i8* %681
%682 = load i8*, i8** %26
%683 = load i32, i32* %63
%684 = zext i32 %683 to i64
%685 = getelementptr inbounds i8, i8* %682, i64 %684
%686 = getelementptr inbounds i8, i8* %685, i64 1
%687 = load i8, i8* %686
%688 = load i8*, i8** %20
%689 = load i32, i32* %65
%690 = zext i32 %689 to i64
%691 = getelementptr inbounds i8, i8* %688, i64 %690
%692 = getelementptr inbounds i8, i8* %691, i64 1
store i8 %687, i8* %692
%693 = load i8*, i8** %26
%694 = load i32, i32* %63
%695 = zext i32 %694 to i64
%696 = getelementptr inbounds i8, i8* %693, i64 %695
%697 = getelementptr inbounds i8, i8* %696, i64 2
%698 = load i8, i8* %697
%699 = load i8*, i8** %20
%700 = load i32, i32* %65
%701 = zext i32 %700 to i64
%702 = getelementptr inbounds i8, i8* %699, i64 %701
%703 = getelementptr inbounds i8, i8* %702, i64 2
store i8 %698, i8* %703
br label %704
704: ; preds = %658, %649, %629
br label %705
705: ; preds = %704
%706 = load i16, i16* %43
%707 = add i16 %706, 1
store i16 %707, i16* %43
br label %623
708: ; preds = %623
br label %709
709: ; preds = %708, %613, %590
br label %710
710: ; preds = %709
%711 = load i16, i16* %44
%712 = add i16 %711, 1
store i16 %712, i16* %44
br label %584
713: ; preds = %584
br label %825
714: ; preds = %469
store i16 0, i16* %44
br label %715
715: ; preds = %821, %714
%716 = load i16, i16* %44
%717 = sext i16 %716 to i32
%718 = load i16, i16* %30
%719 = sext i16 %718 to i32
%720 = icmp slt i32 %717, %719
br i1 %720, label %721, label %824
721: ; preds = %715
%722 = load i16, i16* %44
%723 = sext i16 %722 to i32
%724 = load i32, i32* %45
%725 = mul i32 %723, %724
store i32 %725, i32* %66
%726 = load i16, i16* %40
%727 = sext i16 %726 to i32
%728 = load i16, i16* %44
%729 = sext i16 %728 to i32
%730 = add nsw i32 %727, %729
%731 = trunc i32 %730 to i16
store i16 %731, i16* %67
%732 = load i16, i16* %67
%733 = zext i16 %732 to i32
%734 = load i32, i32* %23
%735 = mul i32 %733, %734
store i32 %735, i32* %68
%736 = load i16, i16* %67
%737 = zext i16 %736 to i32
%738 = load i16, i16* %25
%739 = sext i16 %738 to i32
%740 = load i16, i16* %36
%741 = sext i16 %740 to i32
%742 = add nsw i32 %739, %741
%743 = icmp sge i32 %737, %742
br i1 %743, label %744, label %820
744: ; preds = %721
%745 = load i16, i16* %67
%746 = zext i16 %745 to i32
%747 = load i16, i16* %25
%748 = sext i16 %747 to i32
%749 = load i16, i16* %38
%750 = sext i16 %749 to i32
%751 = add nsw i32 %748, %750
%752 = icmp sle i32 %746, %751
br i1 %752, label %753, label %820
753: ; preds = %744
store i16 0, i16* %43
br label %754
754: ; preds = %816, %753
%755 = load i16, i16* %43
%756 = sext i16 %755 to i32
%757 = load i16, i16* %29
%758 = sext i16 %757 to i32
%759 = icmp slt i32 %756, %758
br i1 %759, label %760, label %819
760: ; preds = %754
%761 = load i16, i16* %39
%762 = sext i16 %761 to i32
%763 = load i16, i16* %43
%764 = sext i16 %763 to i32
%765 = add nsw i32 %762, %764
%766 = trunc i32 %765 to i16
store i16 %766, i16* %69
%767 = load i16, i16* %69
%768 = zext i16 %767 to i32
%769 = load i8, i8* %31
%770 = zext i8 %769 to i32
%771 = mul nsw i32 %768, %770
store i32 %771, i32* %70
%772 = load i16, i16* %69
%773 = zext i16 %772 to i32
%774 = load i16, i16* %24
%775 = sext i16 %774 to i32
%776 = load i16, i16* %35
%777 = sext i16 %776 to i32
%778 = add nsw i32 %775, %777
%779 = icmp sge i32 %773, %778
br i1 %779, label %780, label %815
780: ; preds = %760
%781 = load i16, i16* %69
%782 = zext i16 %781 to i32
%783 = load i16, i16* %24
%784 = sext i16 %783 to i32
%785 = load i16, i16* %37
%786 = sext i16 %785 to i32
%787 = add nsw i32 %784, %786
%788 = icmp sle i32 %782, %787
br i1 %788, label %789, label %815
789: ; preds = %780
%790 = load i16, i16* %43
%791 = sext i16 %790 to i32
%792 = load i8, i8* %31
%793 = zext i8 %792 to i32
%794 = mul nsw i32 %791, %793
store i32 %794, i32* %71
%795 = load i32, i32* %66
%796 = load i32, i32* %71
%797 = add i32 %795, %796
store i32 %797, i32* %72
%798 = load i32, i32* %68
%799 = load i32, i32* %71
%800 = add i32 %798, %799
store i32 %800, i32* %73
%801 = load i32, i32* %70
%802 = load i32, i32* %68
%803 = add i32 %801, %802
store i32 %803, i32* %74
%804 = load i8*, i8** %26
%805 = load i32, i32* %72
%806 = zext i32 %805 to i64
%807 = getelementptr inbounds i8, i8* %804, i64 %806
%808 = bitcast i8* %807 to i16*
%809 = load i16, i16* %808
%810 = load i8*, i8** %20
%811 = load i32, i32* %74
%812 = zext i32 %811 to i64
%813 = getelementptr inbounds i8, i8* %810, i64 %812
%814 = bitcast i8* %813 to i16*
store i16 %809, i16* %814
br label %815
815: ; preds = %789, %780, %760
br label %816
816: ; preds = %815
%817 = load i16, i16* %43
%818 = add i16 %817, 1
store i16 %818, i16* %43
br label %754
819: ; preds = %754
br label %820
820: ; preds = %819, %744, %721
br label %821
821: ; preds = %820
%822 = load i16, i16* %44
%823 = add i16 %822, 1
store i16 %823, i16* %44
br label %715
824: ; preds = %715
br label %825
825: ; preds = %469, %824, %713, %582
br label %4860
826: ; preds = %466
%827 = load i8, i8* %31
%828 = zext i8 %827 to i32
switch i32 %828, label %1204 [
i32 4, label %829
i32 3, label %942
i32 2, label %1088
]
829: ; preds = %826
store i16 0, i16* %44
br label %830
830: ; preds = %938, %829
%831 = load i16, i16* %44
%832 = sext i16 %831 to i32
%833 = load i16, i16* %30
%834 = sext i16 %833 to i32
%835 = icmp slt i32 %832, %834
br i1 %835, label %836, label %941
836: ; preds = %830
%837 = load i16, i16* %44
%838 = sext i16 %837 to i32
%839 = load i32, i32* %45
%840 = mul i32 %838, %839
store i32 %840, i32* %75
%841 = load i16, i16* %40
%842 = sext i16 %841 to i32
%843 = load i16, i16* %44
%844 = sext i16 %843 to i32
%845 = add nsw i32 %842, %844
%846 = trunc i32 %845 to i16
store i16 %846, i16* %76
%847 = load i16, i16* %76
%848 = zext i16 %847 to i32
%849 = load i32, i32* %23
%850 = mul i32 %848, %849
store i32 %850, i32* %77
%851 = load i16, i16* %76
%852 = zext i16 %851 to i32
%853 = load i16, i16* %25
%854 = sext i16 %853 to i32
%855 = load i16, i16* %36
%856 = sext i16 %855 to i32
%857 = add nsw i32 %854, %856
%858 = icmp sge i32 %852, %857
br i1 %858, label %859, label %937
859: ; preds = %836
%860 = load i16, i16* %76
%861 = zext i16 %860 to i32
%862 = load i16, i16* %25
%863 = sext i16 %862 to i32
%864 = load i16, i16* %38
%865 = sext i16 %864 to i32
%866 = add nsw i32 %863, %865
%867 = icmp sle i32 %861, %866
br i1 %867, label %868, label %937
868: ; preds = %859
store i16 0, i16* %43
br label %869
869: ; preds = %933, %868
%870 = load i16, i16* %43
%871 = sext i16 %870 to i32
%872 = load i16, i16* %29
%873 = sext i16 %872 to i32
%874 = icmp slt i32 %871, %873
br i1 %874, label %875, label %936
875: ; preds = %869
%876 = load i16, i16* %39
%877 = sext i16 %876 to i32
%878 = load i16, i16* %43
%879 = sext i16 %878 to i32
%880 = add nsw i32 %877, %879
%881 = trunc i32 %880 to i16
store i16 %881, i16* %78
%882 = load i16, i16* %78
%883 = zext i16 %882 to i32
%884 = load i8, i8* %31
%885 = zext i8 %884 to i32
%886 = mul nsw i32 %883, %885
store i32 %886, i32* %79
%887 = load i16, i16* %78
%888 = zext i16 %887 to i32
%889 = load i16, i16* %24
%890 = sext i16 %889 to i32
%891 = load i16, i16* %35
%892 = sext i16 %891 to i32
%893 = add nsw i32 %890, %892
%894 = icmp sge i32 %888, %893
br i1 %894, label %895, label %932
895: ; preds = %875
%896 = load i16, i16* %78
%897 = zext i16 %896 to i32
%898 = load i16, i16* %24
%899 = sext i16 %898 to i32
%900 = load i16, i16* %37
%901 = sext i16 %900 to i32
%902 = add nsw i32 %899, %901
%903 = icmp sle i32 %897, %902
br i1 %903, label %904, label %932
904: ; preds = %895
%905 = load i16, i16* %43
%906 = sext i16 %905 to i32
%907 = load i8, i8* %31
%908 = zext i8 %907 to i32
%909 = mul nsw i32 %906, %908
store i32 %909, i32* %80
%910 = load i32, i32* %75
%911 = load i32, i32* %80
%912 = add i32 %910, %911
store i32 %912, i32* %81
%913 = load i32, i32* %77
%914 = load i32, i32* %80
%915 = add i32 %913, %914
store i32 %915, i32* %82
%916 = load i32, i32* %79
%917 = load i32, i32* %77
%918 = add i32 %916, %917
store i32 %918, i32* %83
%919 = load i8*, i8** %26
%920 = load i32, i32* %81
%921 = zext i32 %920 to i64
%922 = getelementptr inbounds i8, i8* %919, i64 %921
%923 = bitcast i8* %922 to i32*
%924 = load i32, i32* %923
%925 = load i8*, i8** %20
%926 = load i32, i32* %83
%927 = zext i32 %926 to i64
%928 = getelementptr inbounds i8, i8* %925, i64 %927
%929 = bitcast i8* %928 to i32*
%930 = load i32, i32* %929
%931 = xor i32 %930, %924
store i32 %931, i32* %929
br label %932
932: ; preds = %904, %895, %875
br label %933
933: ; preds = %932
%934 = load i16, i16* %43
%935 = add i16 %934, 1
store i16 %935, i16* %43
br label %869
936: ; preds = %869
br label %937
937: ; preds = %936, %859, %836
br label %938
938: ; preds = %937
%939 = load i16, i16* %44
%940 = add i16 %939, 1
store i16 %940, i16* %44
br label %830
941: ; preds = %830
br label %1204
942: ; preds = %826
store i16 0, i16* %44
br label %943
943: ; preds = %1084, %942
%944 = load i16, i16* %44
%945 = sext i16 %944 to i32
%946 = load i16, i16* %30
%947 = sext i16 %946 to i32
%948 = icmp slt i32 %945, %947
br i1 %948, label %949, label %1087
949: ; preds = %943
%950 = load i16, i16* %44
%951 = sext i16 %950 to i32
%952 = load i32, i32* %45
%953 = mul i32 %951, %952
store i32 %953, i32* %84
%954 = load i16, i16* %40
%955 = sext i16 %954 to i32
%956 = load i16, i16* %44
%957 = sext i16 %956 to i32
%958 = add nsw i32 %955, %957
%959 = trunc i32 %958 to i16
store i16 %959, i16* %85
%960 = load i16, i16* %85
%961 = zext i16 %960 to i32
%962 = load i32, i32* %23
%963 = mul i32 %961, %962
store i32 %963, i32* %86
%964 = load i16, i16* %85
%965 = zext i16 %964 to i32
%966 = load i16, i16* %25
%967 = sext i16 %966 to i32
%968 = load i16, i16* %36
%969 = sext i16 %968 to i32
%970 = add nsw i32 %967, %969
%971 = icmp sge i32 %965, %970
br i1 %971, label %972, label %1083
972: ; preds = %949
%973 = load i16, i16* %85
%974 = zext i16 %973 to i32
%975 = load i16, i16* %25
%976 = sext i16 %975 to i32
%977 = load i16, i16* %38
%978 = sext i16 %977 to i32
%979 = add nsw i32 %976, %978
%980 = icmp sle i32 %974, %979
br i1 %980, label %981, label %1083
981: ; preds = %972
store i16 0, i16* %43
br label %982
982: ; preds = %1079, %981
%983 = load i16, i16* %43
%984 = sext i16 %983 to i32
%985 = load i16, i16* %29
%986 = sext i16 %985 to i32
%987 = icmp slt i32 %984, %986
br i1 %987, label %988, label %1082
988: ; preds = %982
%989 = load i16, i16* %39
%990 = sext i16 %989 to i32
%991 = load i16, i16* %43
%992 = sext i16 %991 to i32
%993 = add nsw i32 %990, %992
%994 = trunc i32 %993 to i16
store i16 %994, i16* %87
%995 = load i16, i16* %87
%996 = zext i16 %995 to i32
%997 = load i8, i8* %31
%998 = zext i8 %997 to i32
%999 = mul nsw i32 %996, %998
store i32 %999, i32* %88
%1000 = load i16, i16* %87
%1001 = zext i16 %1000 to i32
%1002 = load i16, i16* %24
%1003 = sext i16 %1002 to i32
%1004 = load i16, i16* %35
%1005 = sext i16 %1004 to i32
%1006 = add nsw i32 %1003, %1005
%1007 = icmp sge i32 %1001, %1006
br i1 %1007, label %1008, label %1078
1008: ; preds = %988
%1009 = load i16, i16* %87
%1010 = zext i16 %1009 to i32
%1011 = load i16, i16* %24
%1012 = sext i16 %1011 to i32
%1013 = load i16, i16* %37
%1014 = sext i16 %1013 to i32
%1015 = add nsw i32 %1012, %1014
%1016 = icmp sle i32 %1010, %1015
br i1 %1016, label %1017, label %1078
1017: ; preds = %1008
%1018 = load i16, i16* %43
%1019 = sext i16 %1018 to i32
%1020 = load i8, i8* %31
%1021 = zext i8 %1020 to i32
%1022 = mul nsw i32 %1019, %1021
store i32 %1022, i32* %89
%1023 = load i32, i32* %84
%1024 = load i32, i32* %89
%1025 = add i32 %1023, %1024
store i32 %1025, i32* %90
%1026 = load i32, i32* %86
%1027 = load i32, i32* %89
%1028 = add i32 %1026, %1027
store i32 %1028, i32* %91
%1029 = load i32, i32* %88
%1030 = load i32, i32* %86
%1031 = add i32 %1029, %1030
store i32 %1031, i32* %92
%1032 = load i8*, i8** %26
%1033 = load i32, i32* %90
%1034 = zext i32 %1033 to i64
%1035 = getelementptr inbounds i8, i8* %1032, i64 %1034
%1036 = load i8, i8* %1035
%1037 = sext i8 %1036 to i32
%1038 = load i8*, i8** %20
%1039 = load i32, i32* %92
%1040 = zext i32 %1039 to i64
%1041 = getelementptr inbounds i8, i8* %1038, i64 %1040
%1042 = load i8, i8* %1041
%1043 = sext i8 %1042 to i32
%1044 = xor i32 %1043, %1037
%1045 = trunc i32 %1044 to i8
store i8 %1045, i8* %1041
%1046 = load i8*, i8** %26
%1047 = load i32, i32* %90
%1048 = zext i32 %1047 to i64
%1049 = getelementptr inbounds i8, i8* %1046, i64 %1048
%1050 = getelementptr inbounds i8, i8* %1049, i64 1
%1051 = load i8, i8* %1050
%1052 = sext i8 %1051 to i32
%1053 = load i8*, i8** %20
%1054 = load i32, i32* %92
%1055 = zext i32 %1054 to i64
%1056 = getelementptr inbounds i8, i8* %1053, i64 %1055
%1057 = getelementptr inbounds i8, i8* %1056, i64 1
%1058 = load i8, i8* %1057
%1059 = sext i8 %1058 to i32
%1060 = xor i32 %1059, %1052
%1061 = trunc i32 %1060 to i8
store i8 %1061, i8* %1057
%1062 = load i8*, i8** %26
%1063 = load i32, i32* %90
%1064 = zext i32 %1063 to i64
%1065 = getelementptr inbounds i8, i8* %1062, i64 %1064
%1066 = getelementptr inbounds i8, i8* %1065, i64 2
%1067 = load i8, i8* %1066
%1068 = sext i8 %1067 to i32
%1069 = load i8*, i8** %20
%1070 = load i32, i32* %92
%1071 = zext i32 %1070 to i64
%1072 = getelementptr inbounds i8, i8* %1069, i64 %1071
%1073 = getelementptr inbounds i8, i8* %1072, i64 2
%1074 = load i8, i8* %1073
%1075 = sext i8 %1074 to i32
%1076 = xor i32 %1075, %1068
%1077 = trunc i32 %1076 to i8
store i8 %1077, i8* %1073
br label %1078
1078: ; preds = %1017, %1008, %988
br label %1079
1079: ; preds = %1078
%1080 = load i16, i16* %43
%1081 = add i16 %1080, 1
store i16 %1081, i16* %43
br label %982
1082: ; preds = %982
br label %1083
1083: ; preds = %1082, %972, %949
br label %1084
1084: ; preds = %1083
%1085 = load i16, i16* %44
%1086 = add i16 %1085, 1
store i16 %1086, i16* %44
br label %943
1087: ; preds = %943
br label %1204
1088: ; preds = %826
store i16 0, i16* %44
br label %1089
1089: ; preds = %1200, %1088
%1090 = load i16, i16* %44
%1091 = sext i16 %1090 to i32
%1092 = load i16, i16* %30
%1093 = sext i16 %1092 to i32
%1094 = icmp slt i32 %1091, %1093
br i1 %1094, label %1095, label %1203
1095: ; preds = %1089
%1096 = load i16, i16* %44
%1097 = sext i16 %1096 to i32
%1098 = load i32, i32* %45
%1099 = mul i32 %1097, %1098
store i32 %1099, i32* %93
%1100 = load i16, i16* %40
%1101 = sext i16 %1100 to i32
%1102 = load i16, i16* %44
%1103 = sext i16 %1102 to i32
%1104 = add nsw i32 %1101, %1103
%1105 = trunc i32 %1104 to i16
store i16 %1105, i16* %94
%1106 = load i16, i16* %94
%1107 = zext i16 %1106 to i32
%1108 = load i32, i32* %23
%1109 = mul i32 %1107, %1108
store i32 %1109, i32* %95
%1110 = load i16, i16* %94
%1111 = zext i16 %1110 to i32
%1112 = load i16, i16* %25
%1113 = sext i16 %1112 to i32
%1114 = load i16, i16* %36
%1115 = sext i16 %1114 to i32
%1116 = add nsw i32 %1113, %1115
%1117 = icmp sge i32 %1111, %1116
br i1 %1117, label %1118, label %1199
1118: ; preds = %1095
%1119 = load i16, i16* %94
%1120 = zext i16 %1119 to i32
%1121 = load i16, i16* %25
%1122 = sext i16 %1121 to i32
%1123 = load i16, i16* %38
%1124 = sext i16 %1123 to i32
%1125 = add nsw i32 %1122, %1124
%1126 = icmp sle i32 %1120, %1125
br i1 %1126, label %1127, label %1199
1127: ; preds = %1118
store i16 0, i16* %43
br label %1128
1128: ; preds = %1195, %1127
%1129 = load i16, i16* %43
%1130 = sext i16 %1129 to i32
%1131 = load i16, i16* %29
%1132 = sext i16 %1131 to i32
%1133 = icmp slt i32 %1130, %1132
br i1 %1133, label %1134, label %1198
1134: ; preds = %1128
%1135 = load i16, i16* %39
%1136 = sext i16 %1135 to i32
%1137 = load i16, i16* %43
%1138 = sext i16 %1137 to i32
%1139 = add nsw i32 %1136, %1138
%1140 = trunc i32 %1139 to i16
store i16 %1140, i16* %96
%1141 = load i16, i16* %96
%1142 = zext i16 %1141 to i32
%1143 = load i8, i8* %31
%1144 = zext i8 %1143 to i32
%1145 = mul nsw i32 %1142, %1144
store i32 %1145, i32* %97
%1146 = load i16, i16* %96
%1147 = zext i16 %1146 to i32
%1148 = load i16, i16* %24
%1149 = sext i16 %1148 to i32
%1150 = load i16, i16* %35
%1151 = sext i16 %1150 to i32
%1152 = add nsw i32 %1149, %1151
%1153 = icmp sge i32 %1147, %1152
br i1 %1153, label %1154, label %1194
1154: ; preds = %1134
%1155 = load i16, i16* %96
%1156 = zext i16 %1155 to i32
%1157 = load i16, i16* %24
%1158 = sext i16 %1157 to i32
%1159 = load i16, i16* %37
%1160 = sext i16 %1159 to i32
%1161 = add nsw i32 %1158, %1160
%1162 = icmp sle i32 %1156, %1161
br i1 %1162, label %1163, label %1194
1163: ; preds = %1154
%1164 = load i16, i16* %43
%1165 = sext i16 %1164 to i32
%1166 = load i8, i8* %31
%1167 = zext i8 %1166 to i32
%1168 = mul nsw i32 %1165, %1167
store i32 %1168, i32* %98
%1169 = load i32, i32* %93
%1170 = load i32, i32* %98
%1171 = add i32 %1169, %1170
store i32 %1171, i32* %99
%1172 = load i32, i32* %95
%1173 = load i32, i32* %98
%1174 = add i32 %1172, %1173
store i32 %1174, i32* %100
%1175 = load i32, i32* %97
%1176 = load i32, i32* %95
%1177 = add i32 %1175, %1176
store i32 %1177, i32* %101
%1178 = load i8*, i8** %26
%1179 = load i32, i32* %99
%1180 = zext i32 %1179 to i64
%1181 = getelementptr inbounds i8, i8* %1178, i64 %1180
%1182 = bitcast i8* %1181 to i16*
%1183 = load i16, i16* %1182
%1184 = zext i16 %1183 to i32
%1185 = load i8*, i8** %20
%1186 = load i32, i32* %101
%1187 = zext i32 %1186 to i64
%1188 = getelementptr inbounds i8, i8* %1185, i64 %1187
%1189 = bitcast i8* %1188 to i16*
%1190 = load i16, i16* %1189
%1191 = zext i16 %1190 to i32
%1192 = xor i32 %1191, %1184
%1193 = trunc i32 %1192 to i16
store i16 %1193, i16* %1189
br label %1194
1194: ; preds = %1163, %1154, %1134
br label %1195
1195: ; preds = %1194
%1196 = load i16, i16* %43
%1197 = add i16 %1196, 1
store i16 %1197, i16* %43
br label %1128
1198: ; preds = %1128
br label %1199
1199: ; preds = %1198, %1118, %1095
br label %1200
1200: ; preds = %1199
%1201 = load i16, i16* %44
%1202 = add i16 %1201, 1
store i16 %1202, i16* %44
br label %1089
1203: ; preds = %1089
br label %1204
1204: ; preds = %826, %1203, %1087, %941
br label %4860
1205: ; preds = %466
%1206 = load i8, i8* %31
%1207 = zext i8 %1206 to i32
switch i32 %1207, label %1583 [
i32 4, label %1208
i32 3, label %1321
i32 2, label %1467
]
1208: ; preds = %1205
store i16 0, i16* %44
br label %1209
1209: ; preds = %1317, %1208
%1210 = load i16, i16* %44
%1211 = sext i16 %1210 to i32
%1212 = load i16, i16* %30
%1213 = sext i16 %1212 to i32
%1214 = icmp slt i32 %1211, %1213
br i1 %1214, label %1215, label %1320
1215: ; preds = %1209
%1216 = load i16, i16* %44
%1217 = sext i16 %1216 to i32
%1218 = load i32, i32* %45
%1219 = mul i32 %1217, %1218
store i32 %1219, i32* %102
%1220 = load i16, i16* %40
%1221 = sext i16 %1220 to i32
%1222 = load i16, i16* %44
%1223 = sext i16 %1222 to i32
%1224 = add nsw i32 %1221, %1223
%1225 = trunc i32 %1224 to i16
store i16 %1225, i16* %103
%1226 = load i16, i16* %103
%1227 = zext i16 %1226 to i32
%1228 = load i32, i32* %23
%1229 = mul i32 %1227, %1228
store i32 %1229, i32* %104
%1230 = load i16, i16* %103
%1231 = zext i16 %1230 to i32
%1232 = load i16, i16* %25
%1233 = sext i16 %1232 to i32
%1234 = load i16, i16* %36
%1235 = sext i16 %1234 to i32
%1236 = add nsw i32 %1233, %1235
%1237 = icmp sge i32 %1231, %1236
br i1 %1237, label %1238, label %1316
1238: ; preds = %1215
%1239 = load i16, i16* %103
%1240 = zext i16 %1239 to i32
%1241 = load i16, i16* %25
%1242 = sext i16 %1241 to i32
%1243 = load i16, i16* %38
%1244 = sext i16 %1243 to i32
%1245 = add nsw i32 %1242, %1244
%1246 = icmp sle i32 %1240, %1245
br i1 %1246, label %1247, label %1316
1247: ; preds = %1238
store i16 0, i16* %43
br label %1248
1248: ; preds = %1312, %1247
%1249 = load i16, i16* %43
%1250 = sext i16 %1249 to i32
%1251 = load i16, i16* %29
%1252 = sext i16 %1251 to i32
%1253 = icmp slt i32 %1250, %1252
br i1 %1253, label %1254, label %1315
1254: ; preds = %1248
%1255 = load i16, i16* %39
%1256 = sext i16 %1255 to i32
%1257 = load i16, i16* %43
%1258 = sext i16 %1257 to i32
%1259 = add nsw i32 %1256, %1258
%1260 = trunc i32 %1259 to i16
store i16 %1260, i16* %105
%1261 = load i16, i16* %105
%1262 = zext i16 %1261 to i32
%1263 = load i8, i8* %31
%1264 = zext i8 %1263 to i32
%1265 = mul nsw i32 %1262, %1264
store i32 %1265, i32* %106
%1266 = load i16, i16* %105
%1267 = zext i16 %1266 to i32
%1268 = load i16, i16* %24
%1269 = sext i16 %1268 to i32
%1270 = load i16, i16* %35
%1271 = sext i16 %1270 to i32
%1272 = add nsw i32 %1269, %1271
%1273 = icmp sge i32 %1267, %1272
br i1 %1273, label %1274, label %1311
1274: ; preds = %1254
%1275 = load i16, i16* %105
%1276 = zext i16 %1275 to i32
%1277 = load i16, i16* %24
%1278 = sext i16 %1277 to i32
%1279 = load i16, i16* %37
%1280 = sext i16 %1279 to i32
%1281 = add nsw i32 %1278, %1280
%1282 = icmp sle i32 %1276, %1281
br i1 %1282, label %1283, label %1311
1283: ; preds = %1274
%1284 = load i16, i16* %43
%1285 = sext i16 %1284 to i32
%1286 = load i8, i8* %31
%1287 = zext i8 %1286 to i32
%1288 = mul nsw i32 %1285, %1287
store i32 %1288, i32* %107
%1289 = load i32, i32* %102
%1290 = load i32, i32* %107
%1291 = add i32 %1289, %1290
store i32 %1291, i32* %108
%1292 = load i32, i32* %104
%1293 = load i32, i32* %107
%1294 = add i32 %1292, %1293
store i32 %1294, i32* %109
%1295 = load i32, i32* %106
%1296 = load i32, i32* %104
%1297 = add i32 %1295, %1296
store i32 %1297, i32* %110
%1298 = load i8*, i8** %26
%1299 = load i32, i32* %108
%1300 = zext i32 %1299 to i64
%1301 = getelementptr inbounds i8, i8* %1298, i64 %1300
%1302 = bitcast i8* %1301 to i32*
%1303 = load i32, i32* %1302
%1304 = load i8*, i8** %20
%1305 = load i32, i32* %110
%1306 = zext i32 %1305 to i64
%1307 = getelementptr inbounds i8, i8* %1304, i64 %1306
%1308 = bitcast i8* %1307 to i32*
%1309 = load i32, i32* %1308
%1310 = or i32 %1309, %1303
store i32 %1310, i32* %1308
br label %1311
1311: ; preds = %1283, %1274, %1254
br label %1312
1312: ; preds = %1311
%1313 = load i16, i16* %43
%1314 = add i16 %1313, 1
store i16 %1314, i16* %43
br label %1248
1315: ; preds = %1248
br label %1316
1316: ; preds = %1315, %1238, %1215
br label %1317
1317: ; preds = %1316
%1318 = load i16, i16* %44
%1319 = add i16 %1318, 1
store i16 %1319, i16* %44
br label %1209
1320: ; preds = %1209
br label %1583
1321: ; preds = %1205
store i16 0, i16* %44
br label %1322
1322: ; preds = %1463, %1321
%1323 = load i16, i16* %44
%1324 = sext i16 %1323 to i32
%1325 = load i16, i16* %30
%1326 = sext i16 %1325 to i32
%1327 = icmp slt i32 %1324, %1326
br i1 %1327, label %1328, label %1466
1328: ; preds = %1322
%1329 = load i16, i16* %44
%1330 = sext i16 %1329 to i32
%1331 = load i32, i32* %45
%1332 = mul i32 %1330, %1331
store i32 %1332, i32* %111
%1333 = load i16, i16* %40
%1334 = sext i16 %1333 to i32
%1335 = load i16, i16* %44
%1336 = sext i16 %1335 to i32
%1337 = add nsw i32 %1334, %1336
%1338 = trunc i32 %1337 to i16
store i16 %1338, i16* %112
%1339 = load i16, i16* %112
%1340 = zext i16 %1339 to i32
%1341 = load i32, i32* %23
%1342 = mul i32 %1340, %1341
store i32 %1342, i32* %113
%1343 = load i16, i16* %112
%1344 = zext i16 %1343 to i32
%1345 = load i16, i16* %25
%1346 = sext i16 %1345 to i32
%1347 = load i16, i16* %36
%1348 = sext i16 %1347 to i32
%1349 = add nsw i32 %1346, %1348
%1350 = icmp sge i32 %1344, %1349
br i1 %1350, label %1351, label %1462
1351: ; preds = %1328
%1352 = load i16, i16* %112
%1353 = zext i16 %1352 to i32
%1354 = load i16, i16* %25
%1355 = sext i16 %1354 to i32
%1356 = load i16, i16* %38
%1357 = sext i16 %1356 to i32
%1358 = add nsw i32 %1355, %1357
%1359 = icmp sle i32 %1353, %1358
br i1 %1359, label %1360, label %1462
1360: ; preds = %1351
store i16 0, i16* %43
br label %1361
1361: ; preds = %1458, %1360
%1362 = load i16, i16* %43
%1363 = sext i16 %1362 to i32
%1364 = load i16, i16* %29
%1365 = sext i16 %1364 to i32
%1366 = icmp slt i32 %1363, %1365
br i1 %1366, label %1367, label %1461
1367: ; preds = %1361
%1368 = load i16, i16* %39
%1369 = sext i16 %1368 to i32
%1370 = load i16, i16* %43
%1371 = sext i16 %1370 to i32
%1372 = add nsw i32 %1369, %1371
%1373 = trunc i32 %1372 to i16
store i16 %1373, i16* %114
%1374 = load i16, i16* %114
%1375 = zext i16 %1374 to i32
%1376 = load i8, i8* %31
%1377 = zext i8 %1376 to i32
%1378 = mul nsw i32 %1375, %1377
store i32 %1378, i32* %115
%1379 = load i16, i16* %114
%1380 = zext i16 %1379 to i32
%1381 = load i16, i16* %24
%1382 = sext i16 %1381 to i32
%1383 = load i16, i16* %35
%1384 = sext i16 %1383 to i32
%1385 = add nsw i32 %1382, %1384
%1386 = icmp sge i32 %1380, %1385
br i1 %1386, label %1387, label %1457
1387: ; preds = %1367
%1388 = load i16, i16* %114
%1389 = zext i16 %1388 to i32
%1390 = load i16, i16* %24
%1391 = sext i16 %1390 to i32
%1392 = load i16, i16* %37
%1393 = sext i16 %1392 to i32
%1394 = add nsw i32 %1391, %1393
%1395 = icmp sle i32 %1389, %1394
br i1 %1395, label %1396, label %1457
1396: ; preds = %1387
%1397 = load i16, i16* %43
%1398 = sext i16 %1397 to i32
%1399 = load i8, i8* %31
%1400 = zext i8 %1399 to i32
%1401 = mul nsw i32 %1398, %1400
store i32 %1401, i32* %116
%1402 = load i32, i32* %111
%1403 = load i32, i32* %116
%1404 = add i32 %1402, %1403
store i32 %1404, i32* %117
%1405 = load i32, i32* %113
%1406 = load i32, i32* %116
%1407 = add i32 %1405, %1406
store i32 %1407, i32* %118
%1408 = load i32, i32* %115
%1409 = load i32, i32* %113
%1410 = add i32 %1408, %1409
store i32 %1410, i32* %119
%1411 = load i8*, i8** %26
%1412 = load i32, i32* %117
%1413 = zext i32 %1412 to i64
%1414 = getelementptr inbounds i8, i8* %1411, i64 %1413
%1415 = load i8, i8* %1414
%1416 = sext i8 %1415 to i32
%1417 = load i8*, i8** %20
%1418 = load i32, i32* %119
%1419 = zext i32 %1418 to i64
%1420 = getelementptr inbounds i8, i8* %1417, i64 %1419
%1421 = load i8, i8* %1420
%1422 = sext i8 %1421 to i32
%1423 = or i32 %1422, %1416
%1424 = trunc i32 %1423 to i8
store i8 %1424, i8* %1420
%1425 = load i8*, i8** %26
%1426 = load i32, i32* %117
%1427 = zext i32 %1426 to i64
%1428 = getelementptr inbounds i8, i8* %1425, i64 %1427
%1429 = getelementptr inbounds i8, i8* %1428, i64 1
%1430 = load i8, i8* %1429
%1431 = sext i8 %1430 to i32
%1432 = load i8*, i8** %20
%1433 = load i32, i32* %119
%1434 = zext i32 %1433 to i64
%1435 = getelementptr inbounds i8, i8* %1432, i64 %1434
%1436 = getelementptr inbounds i8, i8* %1435, i64 1
%1437 = load i8, i8* %1436
%1438 = sext i8 %1437 to i32
%1439 = or i32 %1438, %1431
%1440 = trunc i32 %1439 to i8
store i8 %1440, i8* %1436
%1441 = load i8*, i8** %26
%1442 = load i32, i32* %117
%1443 = zext i32 %1442 to i64
%1444 = getelementptr inbounds i8, i8* %1441, i64 %1443
%1445 = getelementptr inbounds i8, i8* %1444, i64 2
%1446 = load i8, i8* %1445
%1447 = sext i8 %1446 to i32
%1448 = load i8*, i8** %20
%1449 = load i32, i32* %119
%1450 = zext i32 %1449 to i64
%1451 = getelementptr inbounds i8, i8* %1448, i64 %1450
%1452 = getelementptr inbounds i8, i8* %1451, i64 2
%1453 = load i8, i8* %1452
%1454 = sext i8 %1453 to i32
%1455 = or i32 %1454, %1447
%1456 = trunc i32 %1455 to i8
store i8 %1456, i8* %1452
br label %1457
1457: ; preds = %1396, %1387, %1367
br label %1458
1458: ; preds = %1457
%1459 = load i16, i16* %43
%1460 = add i16 %1459, 1
store i16 %1460, i16* %43
br label %1361
1461: ; preds = %1361
br label %1462
1462: ; preds = %1461, %1351, %1328
br label %1463
1463: ; preds = %1462
%1464 = load i16, i16* %44
%1465 = add i16 %1464, 1
store i16 %1465, i16* %44
br label %1322
1466: ; preds = %1322
br label %1583
1467: ; preds = %1205
store i16 0, i16* %44
br label %1468
1468: ; preds = %1579, %1467
%1469 = load i16, i16* %44
%1470 = sext i16 %1469 to i32
%1471 = load i16, i16* %30
%1472 = sext i16 %1471 to i32
%1473 = icmp slt i32 %1470, %1472
br i1 %1473, label %1474, label %1582
1474: ; preds = %1468
%1475 = load i16, i16* %44
%1476 = sext i16 %1475 to i32
%1477 = load i32, i32* %45
%1478 = mul i32 %1476, %1477
store i32 %1478, i32* %120
%1479 = load i16, i16* %40
%1480 = sext i16 %1479 to i32
%1481 = load i16, i16* %44
%1482 = sext i16 %1481 to i32
%1483 = add nsw i32 %1480, %1482
%1484 = trunc i32 %1483 to i16
store i16 %1484, i16* %121
%1485 = load i16, i16* %121
%1486 = zext i16 %1485 to i32
%1487 = load i32, i32* %23
%1488 = mul i32 %1486, %1487
store i32 %1488, i32* %122
%1489 = load i16, i16* %121
%1490 = zext i16 %1489 to i32
%1491 = load i16, i16* %25
%1492 = sext i16 %1491 to i32
%1493 = load i16, i16* %36
%1494 = sext i16 %1493 to i32
%1495 = add nsw i32 %1492, %1494
%1496 = icmp sge i32 %1490, %1495
br i1 %1496, label %1497, label %1578
1497: ; preds = %1474
%1498 = load i16, i16* %121
%1499 = zext i16 %1498 to i32
%1500 = load i16, i16* %25
%1501 = sext i16 %1500 to i32
%1502 = load i16, i16* %38
%1503 = sext i16 %1502 to i32
%1504 = add nsw i32 %1501, %1503
%1505 = icmp sle i32 %1499, %1504
br i1 %1505, label %1506, label %1578
1506: ; preds = %1497
store i16 0, i16* %43
br label %1507
1507: ; preds = %1574, %1506
%1508 = load i16, i16* %43
%1509 = sext i16 %1508 to i32
%1510 = load i16, i16* %29
%1511 = sext i16 %1510 to i32
%1512 = icmp slt i32 %1509, %1511
br i1 %1512, label %1513, label %1577
1513: ; preds = %1507
%1514 = load i16, i16* %39
%1515 = sext i16 %1514 to i32
%1516 = load i16, i16* %43
%1517 = sext i16 %1516 to i32
%1518 = add nsw i32 %1515, %1517
%1519 = trunc i32 %1518 to i16
store i16 %1519, i16* %123
%1520 = load i16, i16* %123
%1521 = zext i16 %1520 to i32
%1522 = load i8, i8* %31
%1523 = zext i8 %1522 to i32
%1524 = mul nsw i32 %1521, %1523
store i32 %1524, i32* %124
%1525 = load i16, i16* %123
%1526 = zext i16 %1525 to i32
%1527 = load i16, i16* %24
%1528 = sext i16 %1527 to i32
%1529 = load i16, i16* %35
%1530 = sext i16 %1529 to i32
%1531 = add nsw i32 %1528, %1530
%1532 = icmp sge i32 %1526, %1531
br i1 %1532, label %1533, label %1573
1533: ; preds = %1513
%1534 = load i16, i16* %123
%1535 = zext i16 %1534 to i32
%1536 = load i16, i16* %24
%1537 = sext i16 %1536 to i32
%1538 = load i16, i16* %37
%1539 = sext i16 %1538 to i32
%1540 = add nsw i32 %1537, %1539
%1541 = icmp sle i32 %1535, %1540
br i1 %1541, label %1542, label %1573
1542: ; preds = %1533
%1543 = load i16, i16* %43
%1544 = sext i16 %1543 to i32
%1545 = load i8, i8* %31
%1546 = zext i8 %1545 to i32
%1547 = mul nsw i32 %1544, %1546
store i32 %1547, i32* %125
%1548 = load i32, i32* %120
%1549 = load i32, i32* %125
%1550 = add i32 %1548, %1549
store i32 %1550, i32* %126
%1551 = load i32, i32* %122
%1552 = load i32, i32* %125
%1553 = add i32 %1551, %1552
store i32 %1553, i32* %127
%1554 = load i32, i32* %124
%1555 = load i32, i32* %122
%1556 = add i32 %1554, %1555
store i32 %1556, i32* %128
%1557 = load i8*, i8** %26
%1558 = load i32, i32* %126
%1559 = zext i32 %1558 to i64
%1560 = getelementptr inbounds i8, i8* %1557, i64 %1559
%1561 = bitcast i8* %1560 to i16*
%1562 = load i16, i16* %1561
%1563 = zext i16 %1562 to i32
%1564 = load i8*, i8** %20
%1565 = load i32, i32* %128
%1566 = zext i32 %1565 to i64
%1567 = getelementptr inbounds i8, i8* %1564, i64 %1566
%1568 = bitcast i8* %1567 to i16*
%1569 = load i16, i16* %1568
%1570 = zext i16 %1569 to i32
%1571 = or i32 %1570, %1563
%1572 = trunc i32 %1571 to i16
store i16 %1572, i16* %1568
br label %1573
1573: ; preds = %1542, %1533, %1513
br label %1574
1574: ; preds = %1573
%1575 = load i16, i16* %43
%1576 = add i16 %1575, 1
store i16 %1576, i16* %43
br label %1507
1577: ; preds = %1507
br label %1578
1578: ; preds = %1577, %1497, %1474
br label %1579
1579: ; preds = %1578
%1580 = load i16, i16* %44
%1581 = add i16 %1580, 1
store i16 %1581, i16* %44
br label %1468
1582: ; preds = %1468
br label %1583
1583: ; preds = %1205, %1582, %1466, %1320
br label %4860
1584: ; preds = %466
%1585 = load i8, i8* %31
%1586 = zext i8 %1585 to i32
switch i32 %1586, label %1962 [
i32 4, label %1587
i32 3, label %1700
i32 2, label %1846
]
1587: ; preds = %1584
store i16 0, i16* %44
br label %1588
1588: ; preds = %1696, %1587
%1589 = load i16, i16* %44
%1590 = sext i16 %1589 to i32
%1591 = load i16, i16* %30
%1592 = sext i16 %1591 to i32
%1593 = icmp slt i32 %1590, %1592
br i1 %1593, label %1594, label %1699
1594: ; preds = %1588
%1595 = load i16, i16* %44
%1596 = sext i16 %1595 to i32
%1597 = load i32, i32* %45
%1598 = mul i32 %1596, %1597
store i32 %1598, i32* %129
%1599 = load i16, i16* %40
%1600 = sext i16 %1599 to i32
%1601 = load i16, i16* %44
%1602 = sext i16 %1601 to i32
%1603 = add nsw i32 %1600, %1602
%1604 = trunc i32 %1603 to i16
store i16 %1604, i16* %130
%1605 = load i16, i16* %130
%1606 = zext i16 %1605 to i32
%1607 = load i32, i32* %23
%1608 = mul i32 %1606, %1607
store i32 %1608, i32* %131
%1609 = load i16, i16* %130
%1610 = zext i16 %1609 to i32
%1611 = load i16, i16* %25
%1612 = sext i16 %1611 to i32
%1613 = load i16, i16* %36
%1614 = sext i16 %1613 to i32
%1615 = add nsw i32 %1612, %1614
%1616 = icmp sge i32 %1610, %1615
br i1 %1616, label %1617, label %1695
1617: ; preds = %1594
%1618 = load i16, i16* %130
%1619 = zext i16 %1618 to i32
%1620 = load i16, i16* %25
%1621 = sext i16 %1620 to i32
%1622 = load i16, i16* %38
%1623 = sext i16 %1622 to i32
%1624 = add nsw i32 %1621, %1623
%1625 = icmp sle i32 %1619, %1624
br i1 %1625, label %1626, label %1695
1626: ; preds = %1617
store i16 0, i16* %43
br label %1627
1627: ; preds = %1691, %1626
%1628 = load i16, i16* %43
%1629 = sext i16 %1628 to i32
%1630 = load i16, i16* %29
%1631 = sext i16 %1630 to i32
%1632 = icmp slt i32 %1629, %1631
br i1 %1632, label %1633, label %1694
1633: ; preds = %1627
%1634 = load i16, i16* %39
%1635 = sext i16 %1634 to i32
%1636 = load i16, i16* %43
%1637 = sext i16 %1636 to i32
%1638 = add nsw i32 %1635, %1637
%1639 = trunc i32 %1638 to i16
store i16 %1639, i16* %132
%1640 = load i16, i16* %132
%1641 = zext i16 %1640 to i32
%1642 = load i8, i8* %31
%1643 = zext i8 %1642 to i32
%1644 = mul nsw i32 %1641, %1643
store i32 %1644, i32* %133
%1645 = load i16, i16* %132
%1646 = zext i16 %1645 to i32
%1647 = load i16, i16* %24
%1648 = sext i16 %1647 to i32
%1649 = load i16, i16* %35
%1650 = sext i16 %1649 to i32
%1651 = add nsw i32 %1648, %1650
%1652 = icmp sge i32 %1646, %1651
br i1 %1652, label %1653, label %1690
1653: ; preds = %1633
%1654 = load i16, i16* %132
%1655 = zext i16 %1654 to i32
%1656 = load i16, i16* %24
%1657 = sext i16 %1656 to i32
%1658 = load i16, i16* %37
%1659 = sext i16 %1658 to i32
%1660 = add nsw i32 %1657, %1659
%1661 = icmp sle i32 %1655, %1660
br i1 %1661, label %1662, label %1690
1662: ; preds = %1653
%1663 = load i16, i16* %43
%1664 = sext i16 %1663 to i32
%1665 = load i8, i8* %31
%1666 = zext i8 %1665 to i32
%1667 = mul nsw i32 %1664, %1666
store i32 %1667, i32* %134
%1668 = load i32, i32* %129
%1669 = load i32, i32* %134
%1670 = add i32 %1668, %1669
store i32 %1670, i32* %135
%1671 = load i32, i32* %131
%1672 = load i32, i32* %134
%1673 = add i32 %1671, %1672
store i32 %1673, i32* %136
%1674 = load i32, i32* %133
%1675 = load i32, i32* %131
%1676 = add i32 %1674, %1675
store i32 %1676, i32* %137
%1677 = load i8*, i8** %26
%1678 = load i32, i32* %135
%1679 = zext i32 %1678 to i64
%1680 = getelementptr inbounds i8, i8* %1677, i64 %1679
%1681 = bitcast i8* %1680 to i32*
%1682 = load i32, i32* %1681
%1683 = load i8*, i8** %20
%1684 = load i32, i32* %137
%1685 = zext i32 %1684 to i64
%1686 = getelementptr inbounds i8, i8* %1683, i64 %1685
%1687 = bitcast i8* %1686 to i32*
%1688 = load i32, i32* %1687
%1689 = and i32 %1688, %1682
store i32 %1689, i32* %1687
br label %1690
1690: ; preds = %1662, %1653, %1633
br label %1691
1691: ; preds = %1690
%1692 = load i16, i16* %43
%1693 = add i16 %1692, 1
store i16 %1693, i16* %43
br label %1627
1694: ; preds = %1627
br label %1695
1695: ; preds = %1694, %1617, %1594
br label %1696
1696: ; preds = %1695
%1697 = load i16, i16* %44
%1698 = add i16 %1697, 1
store i16 %1698, i16* %44
br label %1588
1699: ; preds = %1588
br label %1962
1700: ; preds = %1584
store i16 0, i16* %44
br label %1701
1701: ; preds = %1842, %1700
%1702 = load i16, i16* %44
%1703 = sext i16 %1702 to i32
%1704 = load i16, i16* %30
%1705 = sext i16 %1704 to i32
%1706 = icmp slt i32 %1703, %1705
br i1 %1706, label %1707, label %1845
1707: ; preds = %1701
%1708 = load i16, i16* %44
%1709 = sext i16 %1708 to i32
%1710 = load i32, i32* %45
%1711 = mul i32 %1709, %1710
store i32 %1711, i32* %138
%1712 = load i16, i16* %40
%1713 = sext i16 %1712 to i32
%1714 = load i16, i16* %44
%1715 = sext i16 %1714 to i32
%1716 = add nsw i32 %1713, %1715
%1717 = trunc i32 %1716 to i16
store i16 %1717, i16* %139
%1718 = load i16, i16* %139
%1719 = zext i16 %1718 to i32
%1720 = load i32, i32* %23
%1721 = mul i32 %1719, %1720
store i32 %1721, i32* %140
%1722 = load i16, i16* %139
%1723 = zext i16 %1722 to i32
%1724 = load i16, i16* %25
%1725 = sext i16 %1724 to i32
%1726 = load i16, i16* %36
%1727 = sext i16 %1726 to i32
%1728 = add nsw i32 %1725, %1727
%1729 = icmp sge i32 %1723, %1728
br i1 %1729, label %1730, label %1841
1730: ; preds = %1707
%1731 = load i16, i16* %139
%1732 = zext i16 %1731 to i32
%1733 = load i16, i16* %25
%1734 = sext i16 %1733 to i32
%1735 = load i16, i16* %38
%1736 = sext i16 %1735 to i32
%1737 = add nsw i32 %1734, %1736
%1738 = icmp sle i32 %1732, %1737
br i1 %1738, label %1739, label %1841
1739: ; preds = %1730
store i16 0, i16* %43
br label %1740
1740: ; preds = %1837, %1739
%1741 = load i16, i16* %43
%1742 = sext i16 %1741 to i32
%1743 = load i16, i16* %29
%1744 = sext i16 %1743 to i32
%1745 = icmp slt i32 %1742, %1744
br i1 %1745, label %1746, label %1840
1746: ; preds = %1740
%1747 = load i16, i16* %39
%1748 = sext i16 %1747 to i32
%1749 = load i16, i16* %43
%1750 = sext i16 %1749 to i32
%1751 = add nsw i32 %1748, %1750
%1752 = trunc i32 %1751 to i16
store i16 %1752, i16* %141
%1753 = load i16, i16* %141
%1754 = zext i16 %1753 to i32
%1755 = load i8, i8* %31
%1756 = zext i8 %1755 to i32
%1757 = mul nsw i32 %1754, %1756
store i32 %1757, i32* %142
%1758 = load i16, i16* %141
%1759 = zext i16 %1758 to i32
%1760 = load i16, i16* %24
%1761 = sext i16 %1760 to i32
%1762 = load i16, i16* %35
%1763 = sext i16 %1762 to i32
%1764 = add nsw i32 %1761, %1763
%1765 = icmp sge i32 %1759, %1764
br i1 %1765, label %1766, label %1836
1766: ; preds = %1746
%1767 = load i16, i16* %141
%1768 = zext i16 %1767 to i32
%1769 = load i16, i16* %24
%1770 = sext i16 %1769 to i32
%1771 = load i16, i16* %37
%1772 = sext i16 %1771 to i32
%1773 = add nsw i32 %1770, %1772
%1774 = icmp sle i32 %1768, %1773
br i1 %1774, label %1775, label %1836
1775: ; preds = %1766
%1776 = load i16, i16* %43
%1777 = sext i16 %1776 to i32
%1778 = load i8, i8* %31
%1779 = zext i8 %1778 to i32
%1780 = mul nsw i32 %1777, %1779
store i32 %1780, i32* %143
%1781 = load i32, i32* %138
%1782 = load i32, i32* %143
%1783 = add i32 %1781, %1782
store i32 %1783, i32* %144
%1784 = load i32, i32* %140
%1785 = load i32, i32* %143
%1786 = add i32 %1784, %1785
store i32 %1786, i32* %145
%1787 = load i32, i32* %142
%1788 = load i32, i32* %140
%1789 = add i32 %1787, %1788
store i32 %1789, i32* %146
%1790 = load i8*, i8** %26
%1791 = load i32, i32* %144
%1792 = zext i32 %1791 to i64
%1793 = getelementptr inbounds i8, i8* %1790, i64 %1792
%1794 = load i8, i8* %1793
%1795 = sext i8 %1794 to i32
%1796 = load i8*, i8** %20
%1797 = load i32, i32* %146
%1798 = zext i32 %1797 to i64
%1799 = getelementptr inbounds i8, i8* %1796, i64 %1798
%1800 = load i8, i8* %1799
%1801 = sext i8 %1800 to i32
%1802 = and i32 %1801, %1795
%1803 = trunc i32 %1802 to i8
store i8 %1803, i8* %1799
%1804 = load i8*, i8** %26
%1805 = load i32, i32* %144
%1806 = zext i32 %1805 to i64
%1807 = getelementptr inbounds i8, i8* %1804, i64 %1806
%1808 = getelementptr inbounds i8, i8* %1807, i64 1
%1809 = load i8, i8* %1808
%1810 = sext i8 %1809 to i32
%1811 = load i8*, i8** %20
%1812 = load i32, i32* %146
%1813 = zext i32 %1812 to i64
%1814 = getelementptr inbounds i8, i8* %1811, i64 %1813
%1815 = getelementptr inbounds i8, i8* %1814, i64 1
%1816 = load i8, i8* %1815
%1817 = sext i8 %1816 to i32
%1818 = and i32 %1817, %1810
%1819 = trunc i32 %1818 to i8
store i8 %1819, i8* %1815
%1820 = load i8*, i8** %26
%1821 = load i32, i32* %144
%1822 = zext i32 %1821 to i64
%1823 = getelementptr inbounds i8, i8* %1820, i64 %1822
%1824 = getelementptr inbounds i8, i8* %1823, i64 2
%1825 = load i8, i8* %1824
%1826 = sext i8 %1825 to i32
%1827 = load i8*, i8** %20
%1828 = load i32, i32* %146
%1829 = zext i32 %1828 to i64
%1830 = getelementptr inbounds i8, i8* %1827, i64 %1829
%1831 = getelementptr inbounds i8, i8* %1830, i64 2
%1832 = load i8, i8* %1831
%1833 = sext i8 %1832 to i32
%1834 = and i32 %1833, %1826
%1835 = trunc i32 %1834 to i8
store i8 %1835, i8* %1831
br label %1836
1836: ; preds = %1775, %1766, %1746
br label %1837
1837: ; preds = %1836
%1838 = load i16, i16* %43
%1839 = add i16 %1838, 1
store i16 %1839, i16* %43
br label %1740
1840: ; preds = %1740
br label %1841
1841: ; preds = %1840, %1730, %1707
br label %1842
1842: ; preds = %1841
%1843 = load i16, i16* %44
%1844 = add i16 %1843, 1
store i16 %1844, i16* %44
br label %1701
1845: ; preds = %1701
br label %1962
1846: ; preds = %1584
store i16 0, i16* %44
br label %1847
1847: ; preds = %1958, %1846
%1848 = load i16, i16* %44
%1849 = sext i16 %1848 to i32
%1850 = load i16, i16* %30
%1851 = sext i16 %1850 to i32
%1852 = icmp slt i32 %1849, %1851
br i1 %1852, label %1853, label %1961
1853: ; preds = %1847
%1854 = load i16, i16* %44
%1855 = sext i16 %1854 to i32
%1856 = load i32, i32* %45
%1857 = mul i32 %1855, %1856
store i32 %1857, i32* %147
%1858 = load i16, i16* %40
%1859 = sext i16 %1858 to i32
%1860 = load i16, i16* %44
%1861 = sext i16 %1860 to i32
%1862 = add nsw i32 %1859, %1861
%1863 = trunc i32 %1862 to i16
store i16 %1863, i16* %148
%1864 = load i16, i16* %148
%1865 = zext i16 %1864 to i32
%1866 = load i32, i32* %23
%1867 = mul i32 %1865, %1866
store i32 %1867, i32* %149
%1868 = load i16, i16* %148
%1869 = zext i16 %1868 to i32
%1870 = load i16, i16* %25
%1871 = sext i16 %1870 to i32
%1872 = load i16, i16* %36
%1873 = sext i16 %1872 to i32
%1874 = add nsw i32 %1871, %1873
%1875 = icmp sge i32 %1869, %1874
br i1 %1875, label %1876, label %1957
1876: ; preds = %1853
%1877 = load i16, i16* %148
%1878 = zext i16 %1877 to i32
%1879 = load i16, i16* %25
%1880 = sext i16 %1879 to i32
%1881 = load i16, i16* %38
%1882 = sext i16 %1881 to i32
%1883 = add nsw i32 %1880, %1882
%1884 = icmp sle i32 %1878, %1883
br i1 %1884, label %1885, label %1957
1885: ; preds = %1876
store i16 0, i16* %43
br label %1886
1886: ; preds = %1953, %1885
%1887 = load i16, i16* %43
%1888 = sext i16 %1887 to i32
%1889 = load i16, i16* %29
%1890 = sext i16 %1889 to i32
%1891 = icmp slt i32 %1888, %1890
br i1 %1891, label %1892, label %1956
1892: ; preds = %1886
%1893 = load i16, i16* %39
%1894 = sext i16 %1893 to i32
%1895 = load i16, i16* %43
%1896 = sext i16 %1895 to i32
%1897 = add nsw i32 %1894, %1896
%1898 = trunc i32 %1897 to i16
store i16 %1898, i16* %150
%1899 = load i16, i16* %150
%1900 = zext i16 %1899 to i32
%1901 = load i8, i8* %31
%1902 = zext i8 %1901 to i32
%1903 = mul nsw i32 %1900, %1902
store i32 %1903, i32* %151
%1904 = load i16, i16* %150
%1905 = zext i16 %1904 to i32
%1906 = load i16, i16* %24
%1907 = sext i16 %1906 to i32
%1908 = load i16, i16* %35
%1909 = sext i16 %1908 to i32
%1910 = add nsw i32 %1907, %1909
%1911 = icmp sge i32 %1905, %1910
br i1 %1911, label %1912, label %1952
1912: ; preds = %1892
%1913 = load i16, i16* %150
%1914 = zext i16 %1913 to i32
%1915 = load i16, i16* %24
%1916 = sext i16 %1915 to i32
%1917 = load i16, i16* %37
%1918 = sext i16 %1917 to i32
%1919 = add nsw i32 %1916, %1918
%1920 = icmp sle i32 %1914, %1919
br i1 %1920, label %1921, label %1952
1921: ; preds = %1912
%1922 = load i16, i16* %43
%1923 = sext i16 %1922 to i32
%1924 = load i8, i8* %31
%1925 = zext i8 %1924 to i32
%1926 = mul nsw i32 %1923, %1925
store i32 %1926, i32* %152
%1927 = load i32, i32* %147
%1928 = load i32, i32* %152
%1929 = add i32 %1927, %1928
store i32 %1929, i32* %153
%1930 = load i32, i32* %149
%1931 = load i32, i32* %152
%1932 = add i32 %1930, %1931
store i32 %1932, i32* %154
%1933 = load i32, i32* %151
%1934 = load i32, i32* %149
%1935 = add i32 %1933, %1934
store i32 %1935, i32* %155
%1936 = load i8*, i8** %26
%1937 = load i32, i32* %153
%1938 = zext i32 %1937 to i64
%1939 = getelementptr inbounds i8, i8* %1936, i64 %1938
%1940 = bitcast i8* %1939 to i16*
%1941 = load i16, i16* %1940
%1942 = zext i16 %1941 to i32
%1943 = load i8*, i8** %20
%1944 = load i32, i32* %155
%1945 = zext i32 %1944 to i64
%1946 = getelementptr inbounds i8, i8* %1943, i64 %1945
%1947 = bitcast i8* %1946 to i16*
%1948 = load i16, i16* %1947
%1949 = zext i16 %1948 to i32
%1950 = and i32 %1949, %1942
%1951 = trunc i32 %1950 to i16
store i16 %1951, i16* %1947
br label %1952
1952: ; preds = %1921, %1912, %1892
br label %1953
1953: ; preds = %1952
%1954 = load i16, i16* %43
%1955 = add i16 %1954, 1
store i16 %1955, i16* %43
br label %1886
1956: ; preds = %1886
br label %1957
1957: ; preds = %1956, %1876, %1853
br label %1958
1958: ; preds = %1957
%1959 = load i16, i16* %44
%1960 = add i16 %1959, 1
store i16 %1960, i16* %44
br label %1847
1961: ; preds = %1847
br label %1962
1962: ; preds = %1584, %1961, %1845, %1699
br label %4860
1963: ; preds = %466
%1964 = load i8, i8* %31
%1965 = zext i8 %1964 to i32
switch i32 %1965, label %2348 [
i32 4, label %1966
i32 3, label %2085
i32 2, label %2228
]
1966: ; preds = %1963
store i16 0, i16* %44
br label %1967
1967: ; preds = %2081, %1966
%1968 = load i16, i16* %44
%1969 = sext i16 %1968 to i32
%1970 = load i16, i16* %30
%1971 = sext i16 %1970 to i32
%1972 = icmp slt i32 %1969, %1971
br i1 %1972, label %1973, label %2084
1973: ; preds = %1967
%1974 = load i16, i16* %44
%1975 = sext i16 %1974 to i32
%1976 = load i32, i32* %45
%1977 = mul i32 %1975, %1976
store i32 %1977, i32* %156
%1978 = load i16, i16* %40
%1979 = sext i16 %1978 to i32
%1980 = load i16, i16* %44
%1981 = sext i16 %1980 to i32
%1982 = add nsw i32 %1979, %1981
%1983 = trunc i32 %1982 to i16
store i16 %1983, i16* %157
%1984 = load i16, i16* %157
%1985 = zext i16 %1984 to i32
%1986 = load i32, i32* %23
%1987 = mul i32 %1985, %1986
store i32 %1987, i32* %158
%1988 = load i16, i16* %157
%1989 = zext i16 %1988 to i32
%1990 = load i16, i16* %25
%1991 = sext i16 %1990 to i32
%1992 = load i16, i16* %36
%1993 = sext i16 %1992 to i32
%1994 = add nsw i32 %1991, %1993
%1995 = icmp sge i32 %1989, %1994
br i1 %1995, label %1996, label %2080
1996: ; preds = %1973
%1997 = load i16, i16* %157
%1998 = zext i16 %1997 to i32
%1999 = load i16, i16* %25
%2000 = sext i16 %1999 to i32
%2001 = load i16, i16* %38
%2002 = sext i16 %2001 to i32
%2003 = add nsw i32 %2000, %2002
%2004 = icmp sle i32 %1998, %2003
br i1 %2004, label %2005, label %2080
2005: ; preds = %1996
store i16 0, i16* %43
br label %2006
2006: ; preds = %2076, %2005
%2007 = load i16, i16* %43
%2008 = sext i16 %2007 to i32
%2009 = load i16, i16* %29
%2010 = sext i16 %2009 to i32
%2011 = icmp slt i32 %2008, %2010
br i1 %2011, label %2012, label %2079
2012: ; preds = %2006
%2013 = load i16, i16* %39
%2014 = sext i16 %2013 to i32
%2015 = load i16, i16* %43
%2016 = sext i16 %2015 to i32
%2017 = add nsw i32 %2014, %2016
%2018 = trunc i32 %2017 to i16
store i16 %2018, i16* %159
%2019 = load i16, i16* %159
%2020 = zext i16 %2019 to i32
%2021 = load i8, i8* %31
%2022 = zext i8 %2021 to i32
%2023 = mul nsw i32 %2020, %2022
store i32 %2023, i32* %160
%2024 = load i16, i16* %159
%2025 = zext i16 %2024 to i32
%2026 = load i16, i16* %24
%2027 = sext i16 %2026 to i32
%2028 = load i16, i16* %35
%2029 = sext i16 %2028 to i32
%2030 = add nsw i32 %2027, %2029
%2031 = icmp sge i32 %2025, %2030
br i1 %2031, label %2032, label %2075
2032: ; preds = %2012
%2033 = load i16, i16* %159
%2034 = zext i16 %2033 to i32
%2035 = load i16, i16* %24
%2036 = sext i16 %2035 to i32
%2037 = load i16, i16* %37
%2038 = sext i16 %2037 to i32
%2039 = add nsw i32 %2036, %2038
%2040 = icmp sle i32 %2034, %2039
br i1 %2040, label %2041, label %2075
2041: ; preds = %2032
%2042 = load i16, i16* %43
%2043 = sext i16 %2042 to i32
%2044 = load i8, i8* %31
%2045 = zext i8 %2044 to i32
%2046 = mul nsw i32 %2043, %2045
store i32 %2046, i32* %161
%2047 = load i32, i32* %156
%2048 = load i32, i32* %161
%2049 = add i32 %2047, %2048
store i32 %2049, i32* %162
%2050 = load i32, i32* %158
%2051 = load i32, i32* %161
%2052 = add i32 %2050, %2051
store i32 %2052, i32* %163
%2053 = load i32, i32* %160
%2054 = load i32, i32* %158
%2055 = add i32 %2053, %2054
store i32 %2055, i32* %164
%2056 = load i8*, i8** %26
%2057 = load i32, i32* %162
%2058 = zext i32 %2057 to i64
%2059 = getelementptr inbounds i8, i8* %2056, i64 %2058
%2060 = bitcast i8* %2059 to i32*
%2061 = load i32, i32* %2060
store i32 %2061, i32* %165
%2062 = load i32, i32* %165
%2063 = and i32 %2062, -256
%2064 = load i32, i32* %34
%2065 = and i32 %2064, -256
%2066 = icmp ne i32 %2063, %2065
br i1 %2066, label %2067, label %2074
2067: ; preds = %2041
%2068 = load i32, i32* %165
%2069 = load i8*, i8** %20
%2070 = load i32, i32* %164
%2071 = zext i32 %2070 to i64
%2072 = getelementptr inbounds i8, i8* %2069, i64 %2071
%2073 = bitcast i8* %2072 to i32*
store i32 %2068, i32* %2073
br label %2074
2074: ; preds = %2067, %2041
br label %2075
2075: ; preds = %2074, %2032, %2012
br label %2076
2076: ; preds = %2075
%2077 = load i16, i16* %43
%2078 = add i16 %2077, 1
store i16 %2078, i16* %43
br label %2006
2079: ; preds = %2006
br label %2080
2080: ; preds = %2079, %1996, %1973
br label %2081
2081: ; preds = %2080
%2082 = load i16, i16* %44
%2083 = add i16 %2082, 1
store i16 %2083, i16* %44
br label %1967
2084: ; preds = %1967
br label %2348
2085: ; preds = %1963
store i16 0, i16* %44
br label %2086
2086: ; preds = %2224, %2085
%2087 = load i16, i16* %44
%2088 = sext i16 %2087 to i32
%2089 = load i16, i16* %30
%2090 = sext i16 %2089 to i32
%2091 = icmp slt i32 %2088, %2090
br i1 %2091, label %2092, label %2227
2092: ; preds = %2086
%2093 = load i16, i16* %44
%2094 = sext i16 %2093 to i32
%2095 = load i32, i32* %45
%2096 = mul i32 %2094, %2095
store i32 %2096, i32* %166
%2097 = load i16, i16* %40
%2098 = sext i16 %2097 to i32
%2099 = load i16, i16* %44
%2100 = sext i16 %2099 to i32
%2101 = add nsw i32 %2098, %2100
%2102 = trunc i32 %2101 to i16
store i16 %2102, i16* %167
%2103 = load i16, i16* %167
%2104 = zext i16 %2103 to i32
%2105 = load i32, i32* %23
%2106 = mul i32 %2104, %2105
store i32 %2106, i32* %168
%2107 = load i16, i16* %167
%2108 = zext i16 %2107 to i32
%2109 = load i16, i16* %25
%2110 = sext i16 %2109 to i32
%2111 = load i16, i16* %36
%2112 = sext i16 %2111 to i32
%2113 = add nsw i32 %2110, %2112
%2114 = icmp sge i32 %2108, %2113
br i1 %2114, label %2115, label %2223
2115: ; preds = %2092
%2116 = load i16, i16* %167
%2117 = zext i16 %2116 to i32
%2118 = load i16, i16* %25
%2119 = sext i16 %2118 to i32
%2120 = load i16, i16* %38
%2121 = sext i16 %2120 to i32
%2122 = add nsw i32 %2119, %2121
%2123 = icmp sle i32 %2117, %2122
br i1 %2123, label %2124, label %2223
2124: ; preds = %2115
store i16 0, i16* %43
br label %2125
2125: ; preds = %2219, %2124
%2126 = load i16, i16* %43
%2127 = sext i16 %2126 to i32
%2128 = load i16, i16* %29
%2129 = sext i16 %2128 to i32
%2130 = icmp slt i32 %2127, %2129
br i1 %2130, label %2131, label %2222
2131: ; preds = %2125
%2132 = load i16, i16* %39
%2133 = sext i16 %2132 to i32
%2134 = load i16, i16* %43
%2135 = sext i16 %2134 to i32
%2136 = add nsw i32 %2133, %2135
%2137 = trunc i32 %2136 to i16
store i16 %2137, i16* %169
%2138 = load i16, i16* %169
%2139 = zext i16 %2138 to i32
%2140 = load i8, i8* %31
%2141 = zext i8 %2140 to i32
%2142 = mul nsw i32 %2139, %2141
store i32 %2142, i32* %170
%2143 = load i16, i16* %169
%2144 = zext i16 %2143 to i32
%2145 = load i16, i16* %24
%2146 = sext i16 %2145 to i32
%2147 = load i16, i16* %35
%2148 = sext i16 %2147 to i32
%2149 = add nsw i32 %2146, %2148
%2150 = icmp sge i32 %2144, %2149
br i1 %2150, label %2151, label %2218
2151: ; preds = %2131
%2152 = load i16, i16* %169
%2153 = zext i16 %2152 to i32
%2154 = load i16, i16* %24
%2155 = sext i16 %2154 to i32
%2156 = load i16, i16* %37
%2157 = sext i16 %2156 to i32
%2158 = add nsw i32 %2155, %2157
%2159 = icmp sle i32 %2153, %2158
br i1 %2159, label %2160, label %2218
2160: ; preds = %2151
%2161 = load i16, i16* %43
%2162 = sext i16 %2161 to i32
%2163 = load i8, i8* %31
%2164 = zext i8 %2163 to i32
%2165 = mul nsw i32 %2162, %2164
store i32 %2165, i32* %171
%2166 = load i32, i32* %166
%2167 = load i32, i32* %171
%2168 = add i32 %2166, %2167
store i32 %2168, i32* %172
%2169 = load i32, i32* %168
%2170 = load i32, i32* %171
%2171 = add i32 %2169, %2170
store i32 %2171, i32* %173
%2172 = load i32, i32* %170
%2173 = load i32, i32* %168
%2174 = add i32 %2172, %2173
store i32 %2174, i32* %174
%2175 = load i8*, i8** %26
%2176 = load i32, i32* %172
%2177 = zext i32 %2176 to i64
%2178 = getelementptr inbounds i8, i8* %2175, i64 %2177
%2179 = bitcast i8* %2178 to i32*
%2180 = load i32, i32* %2179
%2181 = and i32 %2180, -256
%2182 = load i32, i32* %34
%2183 = and i32 %2182, -256
%2184 = icmp ne i32 %2181, %2183
br i1 %2184, label %2185, label %2217
2185: ; preds = %2160
%2186 = load i8*, i8** %26
%2187 = load i32, i32* %172
%2188 = zext i32 %2187 to i64
%2189 = getelementptr inbounds i8, i8* %2186, i64 %2188
%2190 = load i8, i8* %2189
%2191 = load i8*, i8** %20
%2192 = load i32, i32* %174
%2193 = zext i32 %2192 to i64
%2194 = getelementptr inbounds i8, i8* %2191, i64 %2193
store i8 %2190, i8* %2194
%2195 = load i8*, i8** %26
%2196 = load i32, i32* %172
%2197 = zext i32 %2196 to i64
%2198 = getelementptr inbounds i8, i8* %2195, i64 %2197
%2199 = getelementptr inbounds i8, i8* %2198, i64 1
%2200 = load i8, i8* %2199
%2201 = load i8*, i8** %20
%2202 = load i32, i32* %174
%2203 = zext i32 %2202 to i64
%2204 = getelementptr inbounds i8, i8* %2201, i64 %2203
%2205 = getelementptr inbounds i8, i8* %2204, i64 1
store i8 %2200, i8* %2205
%2206 = load i8*, i8** %26
%2207 = load i32, i32* %172
%2208 = zext i32 %2207 to i64
%2209 = getelementptr inbounds i8, i8* %2206, i64 %2208
%2210 = getelementptr inbounds i8, i8* %2209, i64 2
%2211 = load i8, i8* %2210
%2212 = load i8*, i8** %20
%2213 = load i32, i32* %174
%2214 = zext i32 %2213 to i64
%2215 = getelementptr inbounds i8, i8* %2212, i64 %2214
%2216 = getelementptr inbounds i8, i8* %2215, i64 2
store i8 %2211, i8* %2216
br label %2217
2217: ; preds = %2185, %2160
br label %2218
2218: ; preds = %2217, %2151, %2131
br label %2219
2219: ; preds = %2218
%2220 = load i16, i16* %43
%2221 = add i16 %2220, 1
store i16 %2221, i16* %43
br label %2125
2222: ; preds = %2125
br label %2223
2223: ; preds = %2222, %2115, %2092
br label %2224
2224: ; preds = %2223
%2225 = load i16, i16* %44
%2226 = add i16 %2225, 1
store i16 %2226, i16* %44
br label %2086
2227: ; preds = %2086
br label %2348
2228: ; preds = %1963
store i16 0, i16* %44
br label %2229
2229: ; preds = %2344, %2228
%2230 = load i16, i16* %44
%2231 = sext i16 %2230 to i32
%2232 = load i16, i16* %30
%2233 = sext i16 %2232 to i32
%2234 = icmp slt i32 %2231, %2233
br i1 %2234, label %2235, label %2347
2235: ; preds = %2229
%2236 = load i16, i16* %44
%2237 = sext i16 %2236 to i32
%2238 = load i32, i32* %45
%2239 = mul i32 %2237, %2238
store i32 %2239, i32* %175
%2240 = load i16, i16* %40
%2241 = sext i16 %2240 to i32
%2242 = load i16, i16* %44
%2243 = sext i16 %2242 to i32
%2244 = add nsw i32 %2241, %2243
%2245 = trunc i32 %2244 to i16
store i16 %2245, i16* %176
%2246 = load i16, i16* %176
%2247 = zext i16 %2246 to i32
%2248 = load i32, i32* %23
%2249 = mul i32 %2247, %2248
store i32 %2249, i32* %177
%2250 = load i16, i16* %176
%2251 = zext i16 %2250 to i32
%2252 = load i16, i16* %25
%2253 = sext i16 %2252 to i32
%2254 = load i16, i16* %36
%2255 = sext i16 %2254 to i32
%2256 = add nsw i32 %2253, %2255
%2257 = icmp sge i32 %2251, %2256
br i1 %2257, label %2258, label %2343
2258: ; preds = %2235
%2259 = load i16, i16* %176
%2260 = zext i16 %2259 to i32
%2261 = load i16, i16* %25
%2262 = sext i16 %2261 to i32
%2263 = load i16, i16* %38
%2264 = sext i16 %2263 to i32
%2265 = add nsw i32 %2262, %2264
%2266 = icmp sle i32 %2260, %2265
br i1 %2266, label %2267, label %2343
2267: ; preds = %2258
store i16 0, i16* %43
br label %2268
2268: ; preds = %2339, %2267
%2269 = load i16, i16* %43
%2270 = sext i16 %2269 to i32
%2271 = load i16, i16* %29
%2272 = sext i16 %2271 to i32
%2273 = icmp slt i32 %2270, %2272
br i1 %2273, label %2274, label %2342
2274: ; preds = %2268
%2275 = load i16, i16* %39
%2276 = sext i16 %2275 to i32
%2277 = load i16, i16* %43
%2278 = sext i16 %2277 to i32
%2279 = add nsw i32 %2276, %2278
%2280 = trunc i32 %2279 to i16
store i16 %2280, i16* %178
%2281 = load i16, i16* %178
%2282 = zext i16 %2281 to i32
%2283 = load i8, i8* %31
%2284 = zext i8 %2283 to i32
%2285 = mul nsw i32 %2282, %2284
store i32 %2285, i32* %179
%2286 = load i16, i16* %178
%2287 = zext i16 %2286 to i32
%2288 = load i16, i16* %24
%2289 = sext i16 %2288 to i32
%2290 = load i16, i16* %35
%2291 = sext i16 %2290 to i32
%2292 = add nsw i32 %2289, %2291
%2293 = icmp sge i32 %2287, %2292
br i1 %2293, label %2294, label %2338
2294: ; preds = %2274
%2295 = load i16, i16* %178
%2296 = zext i16 %2295 to i32
%2297 = load i16, i16* %24
%2298 = sext i16 %2297 to i32
%2299 = load i16, i16* %37
%2300 = sext i16 %2299 to i32
%2301 = add nsw i32 %2298, %2300
%2302 = icmp sle i32 %2296, %2301
br i1 %2302, label %2303, label %2338
2303: ; preds = %2294
%2304 = load i16, i16* %43
%2305 = sext i16 %2304 to i32
%2306 = load i8, i8* %31
%2307 = zext i8 %2306 to i32
%2308 = mul nsw i32 %2305, %2307
store i32 %2308, i32* %180
%2309 = load i32, i32* %175
%2310 = load i32, i32* %180
%2311 = add i32 %2309, %2310
store i32 %2311, i32* %181
%2312 = load i32, i32* %177
%2313 = load i32, i32* %180
%2314 = add i32 %2312, %2313
store i32 %2314, i32* %182
%2315 = load i32, i32* %179
%2316 = load i32, i32* %177
%2317 = add i32 %2315, %2316
store i32 %2317, i32* %183
%2318 = load i8*, i8** %26
%2319 = load i32, i32* %181
%2320 = zext i32 %2319 to i64
%2321 = getelementptr inbounds i8, i8* %2318, i64 %2320
%2322 = bitcast i8* %2321 to i16*
%2323 = load i16, i16* %2322
%2324 = zext i16 %2323 to i32
store i32 %2324, i32* %184
%2325 = load i32, i32* %184
%2326 = load i32, i32* %34
%2327 = and i32 %2326, 65535
%2328 = icmp ne i32 %2325, %2327
br i1 %2328, label %2329, label %2337
2329: ; preds = %2303
%2330 = load i32, i32* %184
%2331 = trunc i32 %2330 to i16
%2332 = load i8*, i8** %20
%2333 = load i32, i32* %183
%2334 = zext i32 %2333 to i64
%2335 = getelementptr inbounds i8, i8* %2332, i64 %2334
%2336 = bitcast i8* %2335 to i16*
store i16 %2331, i16* %2336
br label %2337
2337: ; preds = %2329, %2303
br label %2338
2338: ; preds = %2337, %2294, %2274
br label %2339
2339: ; preds = %2338
%2340 = load i16, i16* %43
%2341 = add i16 %2340, 1
store i16 %2341, i16* %43
br label %2268
2342: ; preds = %2268
br label %2343
2343: ; preds = %2342, %2258, %2235
br label %2344
2344: ; preds = %2343
%2345 = load i16, i16* %44
%2346 = add i16 %2345, 1
store i16 %2346, i16* %44
br label %2229
2347: ; preds = %2229
br label %2348
2348: ; preds = %1963, %2347, %2227, %2084
br label %4860
2349: ; preds = %466
%2350 = load i8, i8* %31
%2351 = zext i8 %2350 to i32
switch i32 %2351, label %2746 [
i32 4, label %2352
i32 3, label %2475
i32 2, label %2620
]
2352: ; preds = %2349
store i16 0, i16* %44
br label %2353
2353: ; preds = %2471, %2352
%2354 = load i16, i16* %44
%2355 = sext i16 %2354 to i32
%2356 = load i16, i16* %30
%2357 = sext i16 %2356 to i32
%2358 = icmp slt i32 %2355, %2357
br i1 %2358, label %2359, label %2474
2359: ; preds = %2353
%2360 = load i16, i16* %44
%2361 = sext i16 %2360 to i32
%2362 = load i32, i32* %45
%2363 = mul i32 %2361, %2362
store i32 %2363, i32* %185
%2364 = load i16, i16* %40
%2365 = sext i16 %2364 to i32
%2366 = load i16, i16* %44
%2367 = sext i16 %2366 to i32
%2368 = add nsw i32 %2365, %2367
%2369 = trunc i32 %2368 to i16
store i16 %2369, i16* %186
%2370 = load i16, i16* %186
%2371 = zext i16 %2370 to i32
%2372 = load i32, i32* %23
%2373 = mul i32 %2371, %2372
store i32 %2373, i32* %187
%2374 = load i16, i16* %186
%2375 = zext i16 %2374 to i32
%2376 = load i16, i16* %25
%2377 = sext i16 %2376 to i32
%2378 = load i16, i16* %36
%2379 = sext i16 %2378 to i32
%2380 = add nsw i32 %2377, %2379
%2381 = icmp sge i32 %2375, %2380
br i1 %2381, label %2382, label %2470
2382: ; preds = %2359
%2383 = load i16, i16* %186
%2384 = zext i16 %2383 to i32
%2385 = load i16, i16* %25
%2386 = sext i16 %2385 to i32
%2387 = load i16, i16* %38
%2388 = sext i16 %2387 to i32
%2389 = add nsw i32 %2386, %2388
%2390 = icmp sle i32 %2384, %2389
br i1 %2390, label %2391, label %2470
2391: ; preds = %2382
store i16 0, i16* %43
br label %2392
2392: ; preds = %2466, %2391
%2393 = load i16, i16* %43
%2394 = sext i16 %2393 to i32
%2395 = load i16, i16* %29
%2396 = sext i16 %2395 to i32
%2397 = icmp slt i32 %2394, %2396
br i1 %2397, label %2398, label %2469
2398: ; preds = %2392
%2399 = load i16, i16* %39
%2400 = sext i16 %2399 to i32
%2401 = load i16, i16* %43
%2402 = sext i16 %2401 to i32
%2403 = add nsw i32 %2400, %2402
%2404 = trunc i32 %2403 to i16
store i16 %2404, i16* %188
%2405 = load i16, i16* %188
%2406 = zext i16 %2405 to i32
%2407 = load i8, i8* %31
%2408 = zext i8 %2407 to i32
%2409 = mul nsw i32 %2406, %2408
store i32 %2409, i32* %189
%2410 = load i16, i16* %188
%2411 = zext i16 %2410 to i32
%2412 = load i16, i16* %24
%2413 = sext i16 %2412 to i32
%2414 = load i16, i16* %35
%2415 = sext i16 %2414 to i32
%2416 = add nsw i32 %2413, %2415
%2417 = icmp sge i32 %2411, %2416
br i1 %2417, label %2418, label %2465
2418: ; preds = %2398
%2419 = load i16, i16* %188
%2420 = zext i16 %2419 to i32
%2421 = load i16, i16* %24
%2422 = sext i16 %2421 to i32
%2423 = load i16, i16* %37
%2424 = sext i16 %2423 to i32
%2425 = add nsw i32 %2422, %2424
%2426 = icmp sle i32 %2420, %2425
br i1 %2426, label %2427, label %2465
2427: ; preds = %2418
%2428 = load i16, i16* %43
%2429 = sext i16 %2428 to i32
%2430 = load i8, i8* %31
%2431 = zext i8 %2430 to i32
%2432 = mul nsw i32 %2429, %2431
store i32 %2432, i32* %190
%2433 = load i32, i32* %185
%2434 = load i32, i32* %190
%2435 = add i32 %2433, %2434
store i32 %2435, i32* %191
%2436 = load i32, i32* %187
%2437 = load i32, i32* %190
%2438 = add i32 %2436, %2437
store i32 %2438, i32* %192
%2439 = load i32, i32* %189
%2440 = load i32, i32* %187
%2441 = add i32 %2439, %2440
store i32 %2441, i32* %193
%2442 = load i8*, i8** %20
%2443 = load i32, i32* %193
%2444 = zext i32 %2443 to i64
%2445 = getelementptr inbounds i8, i8* %2442, i64 %2444
%2446 = bitcast i8* %2445 to i32*
%2447 = load i32, i32* %2446
%2448 = and i32 %2447, -256
%2449 = load i32, i32* %34
%2450 = and i32 %2449, -256
%2451 = icmp eq i32 %2448, %2450
br i1 %2451, label %2452, label %2464
2452: ; preds = %2427
%2453 = load i8*, i8** %26
%2454 = load i32, i32* %191
%2455 = zext i32 %2454 to i64
%2456 = getelementptr inbounds i8, i8* %2453, i64 %2455
%2457 = bitcast i8* %2456 to i32*
%2458 = load i32, i32* %2457
%2459 = load i8*, i8** %20
%2460 = load i32, i32* %193
%2461 = zext i32 %2460 to i64
%2462 = getelementptr inbounds i8, i8* %2459, i64 %2461
%2463 = bitcast i8* %2462 to i32*
store i32 %2458, i32* %2463
br label %2464
2464: ; preds = %2452, %2427
br label %2465
2465: ; preds = %2464, %2418, %2398
br label %2466
2466: ; preds = %2465
%2467 = load i16, i16* %43
%2468 = add i16 %2467, 1
store i16 %2468, i16* %43
br label %2392
2469: ; preds = %2392
br label %2470
2470: ; preds = %2469, %2382, %2359
br label %2471
2471: ; preds = %2470
%2472 = load i16, i16* %44
%2473 = add i16 %2472, 1
store i16 %2473, i16* %44
br label %2353
2474: ; preds = %2353
br label %2746
2475: ; preds = %2349
store i16 0, i16* %44
br label %2476
2476: ; preds = %2616, %2475
%2477 = load i16, i16* %44
%2478 = sext i16 %2477 to i32
%2479 = load i16, i16* %30
%2480 = sext i16 %2479 to i32
%2481 = icmp slt i32 %2478, %2480
br i1 %2481, label %2482, label %2619
2482: ; preds = %2476
%2483 = load i16, i16* %44
%2484 = sext i16 %2483 to i32
%2485 = load i32, i32* %45
%2486 = mul i32 %2484, %2485
store i32 %2486, i32* %194
%2487 = load i16, i16* %40
%2488 = sext i16 %2487 to i32
%2489 = load i16, i16* %44
%2490 = sext i16 %2489 to i32
%2491 = add nsw i32 %2488, %2490
%2492 = trunc i32 %2491 to i16
store i16 %2492, i16* %195
%2493 = load i16, i16* %195
%2494 = zext i16 %2493 to i32
%2495 = load i32, i32* %23
%2496 = mul i32 %2494, %2495
store i32 %2496, i32* %196
%2497 = load i16, i16* %195
%2498 = zext i16 %2497 to i32
%2499 = load i16, i16* %25
%2500 = sext i16 %2499 to i32
%2501 = load i16, i16* %36
%2502 = sext i16 %2501 to i32
%2503 = add nsw i32 %2500, %2502
%2504 = icmp sge i32 %2498, %2503
br i1 %2504, label %2505, label %2615
2505: ; preds = %2482
%2506 = load i16, i16* %195
%2507 = zext i16 %2506 to i32
%2508 = load i16, i16* %25
%2509 = sext i16 %2508 to i32
%2510 = load i16, i16* %38
%2511 = sext i16 %2510 to i32
%2512 = add nsw i32 %2509, %2511
%2513 = icmp sle i32 %2507, %2512
br i1 %2513, label %2514, label %2615
2514: ; preds = %2505
store i16 0, i16* %43
br label %2515
2515: ; preds = %2611, %2514
%2516 = load i16, i16* %43
%2517 = sext i16 %2516 to i32
%2518 = load i16, i16* %29
%2519 = sext i16 %2518 to i32
%2520 = icmp slt i32 %2517, %2519
br i1 %2520, label %2521, label %2614
2521: ; preds = %2515
%2522 = load i16, i16* %39
%2523 = sext i16 %2522 to i32
%2524 = load i16, i16* %43
%2525 = sext i16 %2524 to i32
%2526 = add nsw i32 %2523, %2525
%2527 = trunc i32 %2526 to i16
store i16 %2527, i16* %197
%2528 = load i16, i16* %197
%2529 = zext i16 %2528 to i32
%2530 = load i8, i8* %31
%2531 = zext i8 %2530 to i32
%2532 = mul nsw i32 %2529, %2531
store i32 %2532, i32* %198
%2533 = load i16, i16* %197
%2534 = zext i16 %2533 to i32
%2535 = load i16, i16* %24
%2536 = sext i16 %2535 to i32
%2537 = load i16, i16* %35
%2538 = sext i16 %2537 to i32
%2539 = add nsw i32 %2536, %2538
%2540 = icmp sge i32 %2534, %2539
br i1 %2540, label %2541, label %2610
2541: ; preds = %2521
%2542 = load i16, i16* %197
%2543 = zext i16 %2542 to i32
%2544 = load i16, i16* %24
%2545 = sext i16 %2544 to i32
%2546 = load i16, i16* %37
%2547 = sext i16 %2546 to i32
%2548 = add nsw i32 %2545, %2547
%2549 = icmp sle i32 %2543, %2548
br i1 %2549, label %2550, label %2610
2550: ; preds = %2541
%2551 = load i16, i16* %43
%2552 = sext i16 %2551 to i32
%2553 = load i8, i8* %31
%2554 = zext i8 %2553 to i32
%2555 = mul nsw i32 %2552, %2554
store i32 %2555, i32* %199
%2556 = load i32, i32* %194
%2557 = load i32, i32* %199
%2558 = add i32 %2556, %2557
store i32 %2558, i32* %200
%2559 = load i32, i32* %196
%2560 = load i32, i32* %199
%2561 = add i32 %2559, %2560
store i32 %2561, i32* %201
%2562 = load i32, i32* %198
%2563 = load i32, i32* %196
%2564 = add i32 %2562, %2563
store i32 %2564, i32* %202
%2565 = load i8*, i8** %20
%2566 = load i32, i32* %198
%2567 = zext i32 %2566 to i64
%2568 = getelementptr inbounds i8, i8* %2565, i64 %2567
%2569 = load i32, i32* %201
%2570 = zext i32 %2569 to i64
%2571 = getelementptr inbounds i8, i8* %2568, i64 %2570
%2572 = bitcast i8* %2571 to i32*
%2573 = load i32, i32* %2572
%2574 = load i32, i32* %34
%2575 = and i32 %2574, -256
%2576 = icmp eq i32 %2573, %2575
br i1 %2576, label %2577, label %2609
2577: ; preds = %2550
%2578 = load i8*, i8** %26
%2579 = load i32, i32* %200
%2580 = zext i32 %2579 to i64
%2581 = getelementptr inbounds i8, i8* %2578, i64 %2580
%2582 = load i8, i8* %2581
%2583 = load i8*, i8** %20
%2584 = load i32, i32* %202
%2585 = zext i32 %2584 to i64
%2586 = getelementptr inbounds i8, i8* %2583, i64 %2585
store i8 %2582, i8* %2586
%2587 = load i8*, i8** %26
%2588 = load i32, i32* %200
%2589 = zext i32 %2588 to i64
%2590 = getelementptr inbounds i8, i8* %2587, i64 %2589
%2591 = getelementptr inbounds i8, i8* %2590, i64 1
%2592 = load i8, i8* %2591
%2593 = load i8*, i8** %20
%2594 = load i32, i32* %202
%2595 = zext i32 %2594 to i64
%2596 = getelementptr inbounds i8, i8* %2593, i64 %2595
%2597 = getelementptr inbounds i8, i8* %2596, i64 1
store i8 %2592, i8* %2597
%2598 = load i8*, i8** %26
%2599 = load i32, i32* %200
%2600 = zext i32 %2599 to i64
%2601 = getelementptr inbounds i8, i8* %2598, i64 %2600
%2602 = getelementptr inbounds i8, i8* %2601, i64 2
%2603 = load i8, i8* %2602
%2604 = load i8*, i8** %20
%2605 = load i32, i32* %202
%2606 = zext i32 %2605 to i64
%2607 = getelementptr inbounds i8, i8* %2604, i64 %2606
%2608 = getelementptr inbounds i8, i8* %2607, i64 2
store i8 %2603, i8* %2608
br label %2609
2609: ; preds = %2577, %2550
br label %2610
2610: ; preds = %2609, %2541, %2521
br label %2611
2611: ; preds = %2610
%2612 = load i16, i16* %43
%2613 = add i16 %2612, 1
store i16 %2613, i16* %43
br label %2515
2614: ; preds = %2515
br label %2615
2615: ; preds = %2614, %2505, %2482
br label %2616
2616: ; preds = %2615
%2617 = load i16, i16* %44
%2618 = add i16 %2617, 1
store i16 %2618, i16* %44
br label %2476
2619: ; preds = %2476
br label %2746
2620: ; preds = %2349
store i16 0, i16* %44
br label %2621
2621: ; preds = %2742, %2620
%2622 = load i16, i16* %44
%2623 = sext i16 %2622 to i32
%2624 = load i16, i16* %30
%2625 = sext i16 %2624 to i32
%2626 = icmp slt i32 %2623, %2625
br i1 %2626, label %2627, label %2745
2627: ; preds = %2621
%2628 = load i16, i16* %44
%2629 = sext i16 %2628 to i32
%2630 = load i32, i32* %45
%2631 = mul i32 %2629, %2630
store i32 %2631, i32* %203
%2632 = load i16, i16* %40
%2633 = sext i16 %2632 to i32
%2634 = load i16, i16* %44
%2635 = sext i16 %2634 to i32
%2636 = add nsw i32 %2633, %2635
%2637 = trunc i32 %2636 to i16
store i16 %2637, i16* %204
%2638 = load i16, i16* %204
%2639 = zext i16 %2638 to i32
%2640 = load i32, i32* %23
%2641 = mul i32 %2639, %2640
store i32 %2641, i32* %205
%2642 = load i16, i16* %204
%2643 = zext i16 %2642 to i32
%2644 = load i16, i16* %25
%2645 = sext i16 %2644 to i32
%2646 = load i16, i16* %36
%2647 = sext i16 %2646 to i32
%2648 = add nsw i32 %2645, %2647
%2649 = icmp sge i32 %2643, %2648
br i1 %2649, label %2650, label %2741
2650: ; preds = %2627
%2651 = load i16, i16* %204
%2652 = zext i16 %2651 to i32
%2653 = load i16, i16* %25
%2654 = sext i16 %2653 to i32
%2655 = load i16, i16* %38
%2656 = sext i16 %2655 to i32
%2657 = add nsw i32 %2654, %2656
%2658 = icmp sle i32 %2652, %2657
br i1 %2658, label %2659, label %2741
2659: ; preds = %2650
store i16 0, i16* %43
br label %2660
2660: ; preds = %2737, %2659
%2661 = load i16, i16* %43
%2662 = sext i16 %2661 to i32
%2663 = load i16, i16* %29
%2664 = sext i16 %2663 to i32
%2665 = icmp slt i32 %2662, %2664
br i1 %2665, label %2666, label %2740
2666: ; preds = %2660
%2667 = load i16, i16* %39
%2668 = sext i16 %2667 to i32
%2669 = load i16, i16* %43
%2670 = sext i16 %2669 to i32
%2671 = add nsw i32 %2668, %2670
%2672 = trunc i32 %2671 to i16
store i16 %2672, i16* %206
%2673 = load i16, i16* %206
%2674 = zext i16 %2673 to i32
%2675 = load i8, i8* %31
%2676 = zext i8 %2675 to i32
%2677 = mul nsw i32 %2674, %2676
store i32 %2677, i32* %207
%2678 = load i16, i16* %206
%2679 = zext i16 %2678 to i32
%2680 = load i16, i16* %24
%2681 = sext i16 %2680 to i32
%2682 = load i16, i16* %35
%2683 = sext i16 %2682 to i32
%2684 = add nsw i32 %2681, %2683
%2685 = icmp sge i32 %2679, %2684
br i1 %2685, label %2686, label %2736
2686: ; preds = %2666
%2687 = load i16, i16* %206
%2688 = zext i16 %2687 to i32
%2689 = load i16, i16* %24
%2690 = sext i16 %2689 to i32
%2691 = load i16, i16* %37
%2692 = sext i16 %2691 to i32
%2693 = add nsw i32 %2690, %2692
%2694 = icmp sle i32 %2688, %2693
br i1 %2694, label %2695, label %2736
2695: ; preds = %2686
%2696 = load i16, i16* %43
%2697 = sext i16 %2696 to i32
%2698 = load i8, i8* %31
%2699 = zext i8 %2698 to i32
%2700 = mul nsw i32 %2697, %2699
store i32 %2700, i32* %208
%2701 = load i32, i32* %203
%2702 = load i32, i32* %208
%2703 = add i32 %2701, %2702
store i32 %2703, i32* %209
%2704 = load i32, i32* %205
%2705 = load i32, i32* %208
%2706 = add i32 %2704, %2705
store i32 %2706, i32* %210
%2707 = load i32, i32* %207
%2708 = load i32, i32* %205
%2709 = add i32 %2707, %2708
store i32 %2709, i32* %211
%2710 = load i8*, i8** %20
%2711 = load i32, i32* %207
%2712 = zext i32 %2711 to i64
%2713 = getelementptr inbounds i8, i8* %2710, i64 %2712
%2714 = load i32, i32* %210
%2715 = zext i32 %2714 to i64
%2716 = getelementptr inbounds i8, i8* %2713, i64 %2715
%2717 = bitcast i8* %2716 to i16*
%2718 = load i16, i16* %2717
%2719 = zext i16 %2718 to i32
%2720 = load i32, i32* %34
%2721 = and i32 %2720, 65535
%2722 = icmp eq i32 %2719, %2721
br i1 %2722, label %2723, label %2735
2723: ; preds = %2695
%2724 = load i8*, i8** %26
%2725 = load i32, i32* %209
%2726 = zext i32 %2725 to i64
%2727 = getelementptr inbounds i8, i8* %2724, i64 %2726
%2728 = bitcast i8* %2727 to i16*
%2729 = load i16, i16* %2728
%2730 = load i8*, i8** %20
%2731 = load i32, i32* %211
%2732 = zext i32 %2731 to i64
%2733 = getelementptr inbounds i8, i8* %2730, i64 %2732
%2734 = bitcast i8* %2733 to i16*
store i16 %2729, i16* %2734
br label %2735
2735: ; preds = %2723, %2695
br label %2736
2736: ; preds = %2735, %2686, %2666
br label %2737
2737: ; preds = %2736
%2738 = load i16, i16* %43
%2739 = add i16 %2738, 1
store i16 %2739, i16* %43
br label %2660
2740: ; preds = %2660
br label %2741
2741: ; preds = %2740, %2650, %2627
br label %2742
2742: ; preds = %2741
%2743 = load i16, i16* %44
%2744 = add i16 %2743, 1
store i16 %2744, i16* %44
br label %2621
2745: ; preds = %2621
br label %2746
2746: ; preds = %2349, %2745, %2619, %2474
br label %4860
2747: ; preds = %466
%2748 = load i8, i8* %31
%2749 = zext i8 %2748 to i32
switch i32 %2749, label %3343 [
i32 4, label %2750
i32 3, label %2950
i32 2, label %3144
]
2750: ; preds = %2747
store i16 0, i16* %44
br label %2751
2751: ; preds = %2946, %2750
%2752 = load i16, i16* %44
%2753 = sext i16 %2752 to i32
%2754 = load i16, i16* %30
%2755 = sext i16 %2754 to i32
%2756 = icmp slt i32 %2753, %2755
br i1 %2756, label %2757, label %2949
2757: ; preds = %2751
%2758 = load i16, i16* %44
%2759 = sext i16 %2758 to i32
%2760 = load i32, i32* %45
%2761 = mul i32 %2759, %2760
store i32 %2761, i32* %212
%2762 = load i16, i16* %40
%2763 = sext i16 %2762 to i32
%2764 = load i16, i16* %44
%2765 = sext i16 %2764 to i32
%2766 = add nsw i32 %2763, %2765
%2767 = trunc i32 %2766 to i16
store i16 %2767, i16* %213
%2768 = load i16, i16* %213
%2769 = zext i16 %2768 to i32
%2770 = load i32, i32* %23
%2771 = mul i32 %2769, %2770
store i32 %2771, i32* %214
%2772 = load i16, i16* %213
%2773 = zext i16 %2772 to i32
%2774 = load i16, i16* %25
%2775 = sext i16 %2774 to i32
%2776 = load i16, i16* %36
%2777 = sext i16 %2776 to i32
%2778 = add nsw i32 %2775, %2777
%2779 = icmp sge i32 %2773, %2778
br i1 %2779, label %2780, label %2945
2780: ; preds = %2757
%2781 = load i16, i16* %213
%2782 = zext i16 %2781 to i32
%2783 = load i16, i16* %25
%2784 = sext i16 %2783 to i32
%2785 = load i16, i16* %38
%2786 = sext i16 %2785 to i32
%2787 = add nsw i32 %2784, %2786
%2788 = icmp sle i32 %2782, %2787
br i1 %2788, label %2789, label %2945
2789: ; preds = %2780
store i16 0, i16* %43
br label %2790
2790: ; preds = %2941, %2789
%2791 = load i16, i16* %43
%2792 = sext i16 %2791 to i32
%2793 = load i16, i16* %29
%2794 = sext i16 %2793 to i32
%2795 = icmp slt i32 %2792, %2794
br i1 %2795, label %2796, label %2944
2796: ; preds = %2790
%2797 = load i16, i16* %39
%2798 = sext i16 %2797 to i32
%2799 = load i16, i16* %43
%2800 = sext i16 %2799 to i32
%2801 = add nsw i32 %2798, %2800
%2802 = trunc i32 %2801 to i16
store i16 %2802, i16* %215
%2803 = load i16, i16* %215
%2804 = zext i16 %2803 to i32
%2805 = load i8, i8* %31
%2806 = zext i8 %2805 to i32
%2807 = mul nsw i32 %2804, %2806
store i32 %2807, i32* %216
%2808 = load i16, i16* %215
%2809 = zext i16 %2808 to i32
%2810 = load i16, i16* %24
%2811 = sext i16 %2810 to i32
%2812 = load i16, i16* %35
%2813 = sext i16 %2812 to i32
%2814 = add nsw i32 %2811, %2813
%2815 = icmp sge i32 %2809, %2814
br i1 %2815, label %2816, label %2940
2816: ; preds = %2796
%2817 = load i16, i16* %215
%2818 = zext i16 %2817 to i32
%2819 = load i16, i16* %24
%2820 = sext i16 %2819 to i32
%2821 = load i16, i16* %37
%2822 = sext i16 %2821 to i32
%2823 = add nsw i32 %2820, %2822
%2824 = icmp sle i32 %2818, %2823
br i1 %2824, label %2825, label %2940
2825: ; preds = %2816
%2826 = load i16, i16* %43
%2827 = sext i16 %2826 to i32
%2828 = load i8, i8* %31
%2829 = zext i8 %2828 to i32
%2830 = mul nsw i32 %2827, %2829
store i32 %2830, i32* %217
%2831 = load i32, i32* %212
%2832 = load i32, i32* %217
%2833 = add i32 %2831, %2832
store i32 %2833, i32* %218
%2834 = load i32, i32* %214
%2835 = load i32, i32* %217
%2836 = add i32 %2834, %2835
store i32 %2836, i32* %219
%2837 = load i32, i32* %216
%2838 = load i32, i32* %214
%2839 = add i32 %2837, %2838
store i32 %2839, i32* %220
%2840 = load i8*, i8** %20
%2841 = load i32, i32* %220
%2842 = zext i32 %2841 to i64
%2843 = getelementptr inbounds i8, i8* %2840, i64 %2842
%2844 = bitcast i8* %2843 to i32*
%2845 = load i32, i32* %2844
store i32 %2845, i32* %221
%2846 = load i32, i32* %221
%2847 = and i32 %2846, 255
%2848 = trunc i32 %2847 to i8
store i8 %2848, i8* %222
%2849 = load i32, i32* %221
%2850 = lshr i32 %2849, 8
%2851 = and i32 %2850, 255
%2852 = trunc i32 %2851 to i8
store i8 %2852, i8* %223
%2853 = load i32, i32* %221
%2854 = lshr i32 %2853, 16
%2855 = and i32 %2854, 255
%2856 = trunc i32 %2855 to i8
store i8 %2856, i8* %224
%2857 = load i8*, i8** %26
%2858 = load i32, i32* %218
%2859 = zext i32 %2858 to i64
%2860 = getelementptr inbounds i8, i8* %2857, i64 %2859
%2861 = bitcast i8* %2860 to i32*
%2862 = load i32, i32* %2861
store i32 %2862, i32* %225
%2863 = load i32, i32* %225
%2864 = and i32 %2863, 255
%2865 = trunc i32 %2864 to i8
store i8 %2865, i8* %226
%2866 = load i32, i32* %225
%2867 = lshr i32 %2866, 8
%2868 = and i32 %2867, 255
%2869 = trunc i32 %2868 to i8
store i8 %2869, i8* %227
%2870 = load i32, i32* %225
%2871 = lshr i32 %2870, 16
%2872 = and i32 %2871, 255
%2873 = trunc i32 %2872 to i8
store i8 %2873, i8* %228
%2874 = load i32, i32* %225
%2875 = lshr i32 %2874, 24
%2876 = and i32 %2875, 255
%2877 = trunc i32 %2876 to i8
store i8 %2877, i8* %229
%2878 = load i8, i8* %229
%2879 = zext i8 %2878 to i32
%2880 = sub nsw i32 255, %2879
%2881 = trunc i32 %2880 to i8
store i8 %2881, i8* %230
%2882 = load i8, i8* %226
%2883 = zext i8 %2882 to i32
%2884 = load i8, i8* %229
%2885 = zext i8 %2884 to i32
%2886 = mul nsw i32 %2883, %2885
%2887 = load i8, i8* %222
%2888 = zext i8 %2887 to i32
%2889 = load i8, i8* %230
%2890 = zext i8 %2889 to i32
%2891 = mul nsw i32 %2888, %2890
%2892 = add nsw i32 %2886, %2891
%2893 = ashr i32 %2892, 8
%2894 = trunc i32 %2893 to i8
store i8 %2894, i8* %222
%2895 = load i8, i8* %227
%2896 = zext i8 %2895 to i32
%2897 = load i8, i8* %229
%2898 = zext i8 %2897 to i32
%2899 = mul nsw i32 %2896, %2898
%2900 = load i8, i8* %223
%2901 = zext i8 %2900 to i32
%2902 = load i8, i8* %230
%2903 = zext i8 %2902 to i32
%2904 = mul nsw i32 %2901, %2903
%2905 = add nsw i32 %2899, %2904
%2906 = ashr i32 %2905, 8
%2907 = trunc i32 %2906 to i8
store i8 %2907, i8* %223
%2908 = load i8, i8* %228
%2909 = zext i8 %2908 to i32
%2910 = load i8, i8* %229
%2911 = zext i8 %2910 to i32
%2912 = mul nsw i32 %2909, %2911
%2913 = load i8, i8* %224
%2914 = zext i8 %2913 to i32
%2915 = load i8, i8* %230
%2916 = zext i8 %2915 to i32
%2917 = mul nsw i32 %2914, %2916
%2918 = add nsw i32 %2912, %2917
%2919 = ashr i32 %2918, 8
%2920 = trunc i32 %2919 to i8
store i8 %2920, i8* %224
%2921 = load i8, i8* %222
%2922 = zext i8 %2921 to i32
%2923 = load i8, i8* %223
%2924 = zext i8 %2923 to i32
%2925 = shl i32 %2924, 8
%2926 = or i32 %2922, %2925
%2927 = load i8, i8* %224
%2928 = zext i8 %2927 to i32
%2929 = shl i32 %2928, 16
%2930 = or i32 %2926, %2929
%2931 = load i8, i8* %229
%2932 = zext i8 %2931 to i32
%2933 = shl i32 %2932, 24
%2934 = or i32 %2930, %2933
%2935 = load i8*, i8** %20
%2936 = load i32, i32* %220
%2937 = zext i32 %2936 to i64
%2938 = getelementptr inbounds i8, i8* %2935, i64 %2937
%2939 = bitcast i8* %2938 to i32*
store i32 %2934, i32* %2939
br label %2940
2940: ; preds = %2825, %2816, %2796
br label %2941
2941: ; preds = %2940
%2942 = load i16, i16* %43
%2943 = add i16 %2942, 1
store i16 %2943, i16* %43
br label %2790
2944: ; preds = %2790
br label %2945
2945: ; preds = %2944, %2780, %2757
br label %2946
2946: ; preds = %2945
%2947 = load i16, i16* %44
%2948 = add i16 %2947, 1
store i16 %2948, i16* %44
br label %2751
2949: ; preds = %2751
br label %3343
2950: ; preds = %2747
store i16 0, i16* %44
br label %2951
2951: ; preds = %3140, %2950
%2952 = load i16, i16* %44
%2953 = sext i16 %2952 to i32
%2954 = load i16, i16* %30
%2955 = sext i16 %2954 to i32
%2956 = icmp slt i32 %2953, %2955
br i1 %2956, label %2957, label %3143
2957: ; preds = %2951
%2958 = load i16, i16* %44
%2959 = sext i16 %2958 to i32
%2960 = load i32, i32* %45
%2961 = mul i32 %2959, %2960
store i32 %2961, i32* %231
%2962 = load i16, i16* %40
%2963 = sext i16 %2962 to i32
%2964 = load i16, i16* %44
%2965 = sext i16 %2964 to i32
%2966 = add nsw i32 %2963, %2965
%2967 = trunc i32 %2966 to i16
store i16 %2967, i16* %232
%2968 = load i16, i16* %232
%2969 = zext i16 %2968 to i32
%2970 = load i32, i32* %23
%2971 = mul i32 %2969, %2970
store i32 %2971, i32* %233
%2972 = load i16, i16* %232
%2973 = zext i16 %2972 to i32
%2974 = load i16, i16* %25
%2975 = sext i16 %2974 to i32
%2976 = load i16, i16* %36
%2977 = sext i16 %2976 to i32
%2978 = add nsw i32 %2975, %2977
%2979 = icmp sge i32 %2973, %2978
br i1 %2979, label %2980, label %3139
2980: ; preds = %2957
%2981 = load i16, i16* %232
%2982 = zext i16 %2981 to i32
%2983 = load i16, i16* %25
%2984 = sext i16 %2983 to i32
%2985 = load i16, i16* %38
%2986 = sext i16 %2985 to i32
%2987 = add nsw i32 %2984, %2986
%2988 = icmp sle i32 %2982, %2987
br i1 %2988, label %2989, label %3139
2989: ; preds = %2980
store i16 0, i16* %43
br label %2990
2990: ; preds = %3135, %2989
%2991 = load i16, i16* %43
%2992 = sext i16 %2991 to i32
%2993 = load i16, i16* %29
%2994 = sext i16 %2993 to i32
%2995 = icmp slt i32 %2992, %2994
br i1 %2995, label %2996, label %3138
2996: ; preds = %2990
%2997 = load i16, i16* %39
%2998 = sext i16 %2997 to i32
%2999 = load i16, i16* %43
%3000 = sext i16 %2999 to i32
%3001 = add nsw i32 %2998, %3000
%3002 = trunc i32 %3001 to i16
store i16 %3002, i16* %234
%3003 = load i16, i16* %234
%3004 = zext i16 %3003 to i32
%3005 = load i8, i8* %31
%3006 = zext i8 %3005 to i32
%3007 = mul nsw i32 %3004, %3006
store i32 %3007, i32* %235
%3008 = load i16, i16* %234
%3009 = zext i16 %3008 to i32
%3010 = load i16, i16* %24
%3011 = sext i16 %3010 to i32
%3012 = load i16, i16* %35
%3013 = sext i16 %3012 to i32
%3014 = add nsw i32 %3011, %3013
%3015 = icmp sge i32 %3009, %3014
br i1 %3015, label %3016, label %3134
3016: ; preds = %2996
%3017 = load i16, i16* %234
%3018 = zext i16 %3017 to i32
%3019 = load i16, i16* %24
%3020 = sext i16 %3019 to i32
%3021 = load i16, i16* %37
%3022 = sext i16 %3021 to i32
%3023 = add nsw i32 %3020, %3022
%3024 = icmp sle i32 %3018, %3023
br i1 %3024, label %3025, label %3134
3025: ; preds = %3016
%3026 = load i16, i16* %43
%3027 = sext i16 %3026 to i32
%3028 = load i8, i8* %31
%3029 = zext i8 %3028 to i32
%3030 = mul nsw i32 %3027, %3029
store i32 %3030, i32* %236
%3031 = load i32, i32* %231
%3032 = load i32, i32* %236
%3033 = add i32 %3031, %3032
store i32 %3033, i32* %237
%3034 = load i32, i32* %233
%3035 = load i32, i32* %236
%3036 = add i32 %3034, %3035
store i32 %3036, i32* %238
%3037 = load i32, i32* %235
%3038 = load i32, i32* %233
%3039 = add i32 %3037, %3038
store i32 %3039, i32* %239
%3040 = load i8*, i8** %20
%3041 = load i32, i32* %239
%3042 = zext i32 %3041 to i64
%3043 = getelementptr inbounds i8, i8* %3040, i64 %3042
%3044 = load i8, i8* %3043
store i8 %3044, i8* %240
%3045 = load i8*, i8** %20
%3046 = load i32, i32* %239
%3047 = zext i32 %3046 to i64
%3048 = getelementptr inbounds i8, i8* %3045, i64 %3047
%3049 = getelementptr inbounds i8, i8* %3048, i64 1
%3050 = load i8, i8* %3049
store i8 %3050, i8* %241
%3051 = load i8*, i8** %20
%3052 = load i32, i32* %239
%3053 = zext i32 %3052 to i64
%3054 = getelementptr inbounds i8, i8* %3051, i64 %3053
%3055 = getelementptr inbounds i8, i8* %3054, i64 2
%3056 = load i8, i8* %3055
store i8 %3056, i8* %242
%3057 = load i8*, i8** %26
%3058 = load i32, i32* %237
%3059 = zext i32 %3058 to i64
%3060 = getelementptr inbounds i8, i8* %3057, i64 %3059
%3061 = load i8, i8* %3060
store i8 %3061, i8* %243
%3062 = load i8*, i8** %26
%3063 = load i32, i32* %237
%3064 = zext i32 %3063 to i64
%3065 = getelementptr inbounds i8, i8* %3062, i64 %3064
%3066 = getelementptr inbounds i8, i8* %3065, i64 1
%3067 = load i8, i8* %3066
store i8 %3067, i8* %244
%3068 = load i8*, i8** %26
%3069 = load i32, i32* %237
%3070 = zext i32 %3069 to i64
%3071 = getelementptr inbounds i8, i8* %3068, i64 %3070
%3072 = getelementptr inbounds i8, i8* %3071, i64 2
%3073 = load i8, i8* %3072
store i8 %3073, i8* %245
%3074 = load i8, i8* %33
%3075 = zext i8 %3074 to i32
%3076 = sub nsw i32 255, %3075
%3077 = trunc i32 %3076 to i8
store i8 %3077, i8* %246
%3078 = load i8, i8* %243
%3079 = zext i8 %3078 to i32
%3080 = load i8, i8* %33
%3081 = zext i8 %3080 to i32
%3082 = mul nsw i32 %3079, %3081
%3083 = load i8, i8* %240
%3084 = zext i8 %3083 to i32
%3085 = load i8, i8* %246
%3086 = zext i8 %3085 to i32
%3087 = mul nsw i32 %3084, %3086
%3088 = add nsw i32 %3082, %3087
%3089 = ashr i32 %3088, 8
%3090 = trunc i32 %3089 to i8
store i8 %3090, i8* %240
%3091 = load i8, i8* %244
%3092 = zext i8 %3091 to i32
%3093 = load i8, i8* %33
%3094 = zext i8 %3093 to i32
%3095 = mul nsw i32 %3092, %3094
%3096 = load i8, i8* %241
%3097 = zext i8 %3096 to i32
%3098 = load i8, i8* %246
%3099 = zext i8 %3098 to i32
%3100 = mul nsw i32 %3097, %3099
%3101 = add nsw i32 %3095, %3100
%3102 = ashr i32 %3101, 8
%3103 = trunc i32 %3102 to i8
store i8 %3103, i8* %241
%3104 = load i8, i8* %245
%3105 = zext i8 %3104 to i32
%3106 = load i8, i8* %33
%3107 = zext i8 %3106 to i32
%3108 = mul nsw i32 %3105, %3107
%3109 = load i8, i8* %242
%3110 = zext i8 %3109 to i32
%3111 = load i8, i8* %246
%3112 = zext i8 %3111 to i32
%3113 = mul nsw i32 %3110, %3112
%3114 = add nsw i32 %3108, %3113
%3115 = ashr i32 %3114, 8
%3116 = trunc i32 %3115 to i8
store i8 %3116, i8* %242
%3117 = load i8, i8* %240
%3118 = load i8*, i8** %20
%3119 = load i32, i32* %239
%3120 = zext i32 %3119 to i64
%3121 = getelementptr inbounds i8, i8* %3118, i64 %3120
store i8 %3117, i8* %3121
%3122 = load i8, i8* %241
%3123 = load i8*, i8** %20
%3124 = load i32, i32* %239
%3125 = zext i32 %3124 to i64
%3126 = getelementptr inbounds i8, i8* %3123, i64 %3125
%3127 = getelementptr inbounds i8, i8* %3126, i64 1
store i8 %3122, i8* %3127
%3128 = load i8, i8* %242
%3129 = load i8*, i8** %20
%3130 = load i32, i32* %239
%3131 = zext i32 %3130 to i64
%3132 = getelementptr inbounds i8, i8* %3129, i64 %3131
%3133 = getelementptr inbounds i8, i8* %3132, i64 2
store i8 %3128, i8* %3133
br label %3134
3134: ; preds = %3025, %3016, %2996
br label %3135
3135: ; preds = %3134
%3136 = load i16, i16* %43
%3137 = add i16 %3136, 1
store i16 %3137, i16* %43
br label %2990
3138: ; preds = %2990
br label %3139
3139: ; preds = %3138, %2980, %2957
br label %3140
3140: ; preds = %3139
%3141 = load i16, i16* %44
%3142 = add i16 %3141, 1
store i16 %3142, i16* %44
br label %2951
3143: ; preds = %2951
br label %3343
3144: ; preds = %2747
store i16 0, i16* %44
br label %3145
3145: ; preds = %3339, %3144
%3146 = load i16, i16* %44
%3147 = sext i16 %3146 to i32
%3148 = load i16, i16* %30
%3149 = sext i16 %3148 to i32
%3150 = icmp slt i32 %3147, %3149
br i1 %3150, label %3151, label %3342
3151: ; preds = %3145
%3152 = load i16, i16* %44
%3153 = sext i16 %3152 to i32
%3154 = load i32, i32* %45
%3155 = mul i32 %3153, %3154
store i32 %3155, i32* %247
%3156 = load i16, i16* %40
%3157 = sext i16 %3156 to i32
%3158 = load i16, i16* %44
%3159 = sext i16 %3158 to i32
%3160 = add nsw i32 %3157, %3159
%3161 = trunc i32 %3160 to i16
store i16 %3161, i16* %248
%3162 = load i16, i16* %248
%3163 = zext i16 %3162 to i32
%3164 = load i32, i32* %23
%3165 = mul i32 %3163, %3164
store i32 %3165, i32* %249
%3166 = load i16, i16* %248
%3167 = zext i16 %3166 to i32
%3168 = load i16, i16* %25
%3169 = sext i16 %3168 to i32
%3170 = load i16, i16* %36
%3171 = sext i16 %3170 to i32
%3172 = add nsw i32 %3169, %3171
%3173 = icmp sge i32 %3167, %3172
br i1 %3173, label %3174, label %3338
3174: ; preds = %3151
%3175 = load i16, i16* %248
%3176 = zext i16 %3175 to i32
%3177 = load i16, i16* %25
%3178 = sext i16 %3177 to i32
%3179 = load i16, i16* %38
%3180 = sext i16 %3179 to i32
%3181 = add nsw i32 %3178, %3180
%3182 = icmp sle i32 %3176, %3181
br i1 %3182, label %3183, label %3338
3183: ; preds = %3174
store i16 0, i16* %43
br label %3184
3184: ; preds = %3334, %3183
%3185 = load i16, i16* %43
%3186 = sext i16 %3185 to i32
%3187 = load i16, i16* %29
%3188 = sext i16 %3187 to i32
%3189 = icmp slt i32 %3186, %3188
br i1 %3189, label %3190, label %3337
3190: ; preds = %3184
%3191 = load i16, i16* %39
%3192 = sext i16 %3191 to i32
%3193 = load i16, i16* %43
%3194 = sext i16 %3193 to i32
%3195 = add nsw i32 %3192, %3194
%3196 = trunc i32 %3195 to i16
store i16 %3196, i16* %250
%3197 = load i16, i16* %250
%3198 = zext i16 %3197 to i32
%3199 = load i8, i8* %31
%3200 = zext i8 %3199 to i32
%3201 = mul nsw i32 %3198, %3200
store i32 %3201, i32* %251
%3202 = load i16, i16* %250
%3203 = zext i16 %3202 to i32
%3204 = load i16, i16* %24
%3205 = sext i16 %3204 to i32
%3206 = load i16, i16* %35
%3207 = sext i16 %3206 to i32
%3208 = add nsw i32 %3205, %3207
%3209 = icmp sge i32 %3203, %3208
br i1 %3209, label %3210, label %3333
3210: ; preds = %3190
%3211 = load i16, i16* %250
%3212 = zext i16 %3211 to i32
%3213 = load i16, i16* %24
%3214 = sext i16 %3213 to i32
%3215 = load i16, i16* %37
%3216 = sext i16 %3215 to i32
%3217 = add nsw i32 %3214, %3216
%3218 = icmp sle i32 %3212, %3217
br i1 %3218, label %3219, label %3333
3219: ; preds = %3210
%3220 = load i16, i16* %43
%3221 = sext i16 %3220 to i32
%3222 = load i8, i8* %31
%3223 = zext i8 %3222 to i32
%3224 = mul nsw i32 %3221, %3223
store i32 %3224, i32* %252
%3225 = load i32, i32* %247
%3226 = load i32, i32* %252
%3227 = add i32 %3225, %3226
store i32 %3227, i32* %253
%3228 = load i32, i32* %249
%3229 = load i32, i32* %252
%3230 = add i32 %3228, %3229
store i32 %3230, i32* %254
%3231 = load i32, i32* %251
%3232 = load i32, i32* %249
%3233 = add i32 %3231, %3232
store i32 %3233, i32* %255
%3234 = load i8*, i8** %20
%3235 = load i32, i32* %255
%3236 = zext i32 %3235 to i64
%3237 = getelementptr inbounds i8, i8* %3234, i64 %3236
%3238 = bitcast i8* %3237 to i16*
%3239 = load i16, i16* %3238
store i16 %3239, i16* %256
%3240 = load i16, i16* %256
%3241 = zext i16 %3240 to i32
%3242 = and i32 %3241, 31
%3243 = trunc i32 %3242 to i16
store i16 %3243, i16* %257
%3244 = load i16, i16* %256
%3245 = zext i16 %3244 to i32
%3246 = ashr i32 %3245, 5
%3247 = and i32 %3246, 63
%3248 = trunc i32 %3247 to i16
store i16 %3248, i16* %258
%3249 = load i16, i16* %256
%3250 = zext i16 %3249 to i32
%3251 = ashr i32 %3250, 11
%3252 = and i32 %3251, 31
%3253 = trunc i32 %3252 to i16
store i16 %3253, i16* %259
%3254 = load i8*, i8** %26
%3255 = load i32, i32* %253
%3256 = zext i32 %3255 to i64
%3257 = getelementptr inbounds i8, i8* %3254, i64 %3256
%3258 = bitcast i8* %3257 to i16*
%3259 = load i16, i16* %3258
store i16 %3259, i16* %256
%3260 = load i16, i16* %256
%3261 = zext i16 %3260 to i32
%3262 = and i32 %3261, 31
%3263 = trunc i32 %3262 to i16
store i16 %3263, i16* %260
%3264 = load i16, i16* %256
%3265 = zext i16 %3264 to i32
%3266 = ashr i32 %3265, 5
%3267 = and i32 %3266, 63
%3268 = trunc i32 %3267 to i16
store i16 %3268, i16* %261
%3269 = load i16, i16* %256
%3270 = zext i16 %3269 to i32
%3271 = ashr i32 %3270, 11
%3272 = and i32 %3271, 31
%3273 = trunc i32 %3272 to i16
store i16 %3273, i16* %262
%3274 = load i8, i8* %33
%3275 = zext i8 %3274 to i32
%3276 = sub nsw i32 255, %3275
%3277 = trunc i32 %3276 to i8
store i8 %3277, i8* %263
%3278 = load i16, i16* %260
%3279 = zext i16 %3278 to i32
%3280 = load i8, i8* %33
%3281 = zext i8 %3280 to i32
%3282 = mul nsw i32 %3279, %3281
%3283 = load i16, i16* %257
%3284 = zext i16 %3283 to i32
%3285 = load i8, i8* %263
%3286 = zext i8 %3285 to i32
%3287 = mul nsw i32 %3284, %3286
%3288 = add nsw i32 %3282, %3287
%3289 = ashr i32 %3288, 8
%3290 = trunc i32 %3289 to i16
store i16 %3290, i16* %257
%3291 = load i16, i16* %261
%3292 = zext i16 %3291 to i32
%3293 = load i8, i8* %33
%3294 = zext i8 %3293 to i32
%3295 = mul nsw i32 %3292, %3294
%3296 = load i16, i16* %258
%3297 = zext i16 %3296 to i32
%3298 = load i8, i8* %263
%3299 = zext i8 %3298 to i32
%3300 = mul nsw i32 %3297, %3299
%3301 = add nsw i32 %3295, %3300
%3302 = ashr i32 %3301, 8
%3303 = trunc i32 %3302 to i16
store i16 %3303, i16* %258
%3304 = load i16, i16* %262
%3305 = zext i16 %3304 to i32
%3306 = load i8, i8* %33
%3307 = zext i8 %3306 to i32
%3308 = mul nsw i32 %3305, %3307
%3309 = load i16, i16* %259
%3310 = zext i16 %3309 to i32
%3311 = load i8, i8* %263
%3312 = zext i8 %3311 to i32
%3313 = mul nsw i32 %3310, %3312
%3314 = add nsw i32 %3308, %3313
%3315 = ashr i32 %3314, 8
%3316 = trunc i32 %3315 to i16
store i16 %3316, i16* %259
%3317 = load i16, i16* %259
%3318 = zext i16 %3317 to i32
%3319 = shl i32 %3318, 11
%3320 = load i16, i16* %258
%3321 = zext i16 %3320 to i32
%3322 = shl i32 %3321, 5
%3323 = or i32 %3319, %3322
%3324 = load i16, i16* %257
%3325 = zext i16 %3324 to i32
%3326 = or i32 %3323, %3325
%3327 = trunc i32 %3326 to i16
%3328 = load i8*, i8** %20
%3329 = load i32, i32* %255
%3330 = zext i32 %3329 to i64
%3331 = getelementptr inbounds i8, i8* %3328, i64 %3330
%3332 = bitcast i8* %3331 to i16*
store i16 %3327, i16* %3332
br label %3333
3333: ; preds = %3219, %3210, %3190
br label %3334
3334: ; preds = %3333
%3335 = load i16, i16* %43
%3336 = add i16 %3335, 1
store i16 %3336, i16* %43
br label %3184
3337: ; preds = %3184
br label %3338
3338: ; preds = %3337, %3174, %3151
br label %3339
3339: ; preds = %3338
%3340 = load i16, i16* %44
%3341 = add i16 %3340, 1
store i16 %3341, i16* %44
br label %3145
3342: ; preds = %3145
br label %3343
3343: ; preds = %2747, %3342, %3143, %2949
br label %4860
3344: ; preds = %466
%3345 = load i8, i8* %31
%3346 = zext i8 %3345 to i32
switch i32 %3346, label %3722 [
i32 4, label %3347
i32 3, label %3460
i32 2, label %3606
]
3347: ; preds = %3344
store i16 0, i16* %44
br label %3348
3348: ; preds = %3456, %3347
%3349 = load i16, i16* %44
%3350 = sext i16 %3349 to i32
%3351 = load i16, i16* %30
%3352 = sext i16 %3351 to i32
%3353 = icmp slt i32 %3350, %3352
br i1 %3353, label %3354, label %3459
3354: ; preds = %3348
%3355 = load i16, i16* %44
%3356 = sext i16 %3355 to i32
%3357 = load i32, i32* %45
%3358 = mul i32 %3356, %3357
store i32 %3358, i32* %264
%3359 = load i16, i16* %40
%3360 = sext i16 %3359 to i32
%3361 = load i16, i16* %44
%3362 = sext i16 %3361 to i32
%3363 = add nsw i32 %3360, %3362
%3364 = trunc i32 %3363 to i16
store i16 %3364, i16* %265
%3365 = load i16, i16* %265
%3366 = zext i16 %3365 to i32
%3367 = load i32, i32* %23
%3368 = mul i32 %3366, %3367
store i32 %3368, i32* %266
%3369 = load i16, i16* %265
%3370 = zext i16 %3369 to i32
%3371 = load i16, i16* %25
%3372 = sext i16 %3371 to i32
%3373 = load i16, i16* %36
%3374 = sext i16 %3373 to i32
%3375 = add nsw i32 %3372, %3374
%3376 = icmp sge i32 %3370, %3375
br i1 %3376, label %3377, label %3455
3377: ; preds = %3354
%3378 = load i16, i16* %265
%3379 = zext i16 %3378 to i32
%3380 = load i16, i16* %25
%3381 = sext i16 %3380 to i32
%3382 = load i16, i16* %38
%3383 = sext i16 %3382 to i32
%3384 = add nsw i32 %3381, %3383
%3385 = icmp sle i32 %3379, %3384
br i1 %3385, label %3386, label %3455
3386: ; preds = %3377
store i16 0, i16* %43
br label %3387
3387: ; preds = %3451, %3386
%3388 = load i16, i16* %43
%3389 = sext i16 %3388 to i32
%3390 = load i16, i16* %29
%3391 = sext i16 %3390 to i32
%3392 = icmp slt i32 %3389, %3391
br i1 %3392, label %3393, label %3454
3393: ; preds = %3387
%3394 = load i16, i16* %39
%3395 = sext i16 %3394 to i32
%3396 = load i16, i16* %43
%3397 = sext i16 %3396 to i32
%3398 = add nsw i32 %3395, %3397
%3399 = trunc i32 %3398 to i16
store i16 %3399, i16* %267
%3400 = load i16, i16* %267
%3401 = zext i16 %3400 to i32
%3402 = load i8, i8* %31
%3403 = zext i8 %3402 to i32
%3404 = mul nsw i32 %3401, %3403
store i32 %3404, i32* %268
%3405 = load i16, i16* %267
%3406 = zext i16 %3405 to i32
%3407 = load i16, i16* %24
%3408 = sext i16 %3407 to i32
%3409 = load i16, i16* %35
%3410 = sext i16 %3409 to i32
%3411 = add nsw i32 %3408, %3410
%3412 = icmp sge i32 %3406, %3411
br i1 %3412, label %3413, label %3450
3413: ; preds = %3393
%3414 = load i16, i16* %267
%3415 = zext i16 %3414 to i32
%3416 = load i16, i16* %24
%3417 = sext i16 %3416 to i32
%3418 = load i16, i16* %37
%3419 = sext i16 %3418 to i32
%3420 = add nsw i32 %3417, %3419
%3421 = icmp sle i32 %3415, %3420
br i1 %3421, label %3422, label %3450
3422: ; preds = %3413
%3423 = load i16, i16* %43
%3424 = sext i16 %3423 to i32
%3425 = load i8, i8* %31
%3426 = zext i8 %3425 to i32
%3427 = mul nsw i32 %3424, %3426
store i32 %3427, i32* %269
%3428 = load i32, i32* %264
%3429 = load i32, i32* %269
%3430 = add i32 %3428, %3429
store i32 %3430, i32* %270
%3431 = load i32, i32* %266
%3432 = load i32, i32* %269
%3433 = add i32 %3431, %3432
store i32 %3433, i32* %271
%3434 = load i32, i32* %268
%3435 = load i32, i32* %266
%3436 = add i32 %3434, %3435
store i32 %3436, i32* %272
%3437 = load i8*, i8** %26
%3438 = load i32, i32* %270
%3439 = zext i32 %3438 to i64
%3440 = getelementptr inbounds i8, i8* %3437, i64 %3439
%3441 = bitcast i8* %3440 to i32*
%3442 = load i32, i32* %3441
%3443 = load i8*, i8** %20
%3444 = load i32, i32* %272
%3445 = zext i32 %3444 to i64
%3446 = getelementptr inbounds i8, i8* %3443, i64 %3445
%3447 = bitcast i8* %3446 to i32*
%3448 = load i32, i32* %3447
%3449 = add i32 %3448, %3442
store i32 %3449, i32* %3447
br label %3450
3450: ; preds = %3422, %3413, %3393
br label %3451
3451: ; preds = %3450
%3452 = load i16, i16* %43
%3453 = add i16 %3452, 1
store i16 %3453, i16* %43
br label %3387
3454: ; preds = %3387
br label %3455
3455: ; preds = %3454, %3377, %3354
br label %3456
3456: ; preds = %3455
%3457 = load i16, i16* %44
%3458 = add i16 %3457, 1
store i16 %3458, i16* %44
br label %3348
3459: ; preds = %3348
br label %3722
3460: ; preds = %3344
store i16 0, i16* %44
br label %3461
3461: ; preds = %3602, %3460
%3462 = load i16, i16* %44
%3463 = sext i16 %3462 to i32
%3464 = load i16, i16* %30
%3465 = sext i16 %3464 to i32
%3466 = icmp slt i32 %3463, %3465
br i1 %3466, label %3467, label %3605
3467: ; preds = %3461
%3468 = load i16, i16* %44
%3469 = sext i16 %3468 to i32
%3470 = load i32, i32* %45
%3471 = mul i32 %3469, %3470
store i32 %3471, i32* %273
%3472 = load i16, i16* %40
%3473 = sext i16 %3472 to i32
%3474 = load i16, i16* %44
%3475 = sext i16 %3474 to i32
%3476 = add nsw i32 %3473, %3475
%3477 = trunc i32 %3476 to i16
store i16 %3477, i16* %274
%3478 = load i16, i16* %274
%3479 = zext i16 %3478 to i32
%3480 = load i32, i32* %23
%3481 = mul i32 %3479, %3480
store i32 %3481, i32* %275
%3482 = load i16, i16* %274
%3483 = zext i16 %3482 to i32
%3484 = load i16, i16* %25
%3485 = sext i16 %3484 to i32
%3486 = load i16, i16* %36
%3487 = sext i16 %3486 to i32
%3488 = add nsw i32 %3485, %3487
%3489 = icmp sge i32 %3483, %3488
br i1 %3489, label %3490, label %3601
3490: ; preds = %3467
%3491 = load i16, i16* %274
%3492 = zext i16 %3491 to i32
%3493 = load i16, i16* %25
%3494 = sext i16 %3493 to i32
%3495 = load i16, i16* %38
%3496 = sext i16 %3495 to i32
%3497 = add nsw i32 %3494, %3496
%3498 = icmp sle i32 %3492, %3497
br i1 %3498, label %3499, label %3601
3499: ; preds = %3490
store i16 0, i16* %43
br label %3500
3500: ; preds = %3597, %3499
%3501 = load i16, i16* %43
%3502 = sext i16 %3501 to i32
%3503 = load i16, i16* %29
%3504 = sext i16 %3503 to i32
%3505 = icmp slt i32 %3502, %3504
br i1 %3505, label %3506, label %3600
3506: ; preds = %3500
%3507 = load i16, i16* %39
%3508 = sext i16 %3507 to i32
%3509 = load i16, i16* %43
%3510 = sext i16 %3509 to i32
%3511 = add nsw i32 %3508, %3510
%3512 = trunc i32 %3511 to i16
store i16 %3512, i16* %276
%3513 = load i16, i16* %276
%3514 = zext i16 %3513 to i32
%3515 = load i8, i8* %31
%3516 = zext i8 %3515 to i32
%3517 = mul nsw i32 %3514, %3516
store i32 %3517, i32* %277
%3518 = load i16, i16* %276
%3519 = zext i16 %3518 to i32
%3520 = load i16, i16* %24
%3521 = sext i16 %3520 to i32
%3522 = load i16, i16* %35
%3523 = sext i16 %3522 to i32
%3524 = add nsw i32 %3521, %3523
%3525 = icmp sge i32 %3519, %3524
br i1 %3525, label %3526, label %3596
3526: ; preds = %3506
%3527 = load i16, i16* %276
%3528 = zext i16 %3527 to i32
%3529 = load i16, i16* %24
%3530 = sext i16 %3529 to i32
%3531 = load i16, i16* %37
%3532 = sext i16 %3531 to i32
%3533 = add nsw i32 %3530, %3532
%3534 = icmp sle i32 %3528, %3533
br i1 %3534, label %3535, label %3596
3535: ; preds = %3526
%3536 = load i16, i16* %43
%3537 = sext i16 %3536 to i32
%3538 = load i8, i8* %31
%3539 = zext i8 %3538 to i32
%3540 = mul nsw i32 %3537, %3539
store i32 %3540, i32* %278
%3541 = load i32, i32* %273
%3542 = load i32, i32* %278
%3543 = add i32 %3541, %3542
store i32 %3543, i32* %279
%3544 = load i32, i32* %275
%3545 = load i32, i32* %278
%3546 = add i32 %3544, %3545
store i32 %3546, i32* %280
%3547 = load i32, i32* %277
%3548 = load i32, i32* %275
%3549 = add i32 %3547, %3548
store i32 %3549, i32* %281
%3550 = load i8*, i8** %26
%3551 = load i32, i32* %279
%3552 = zext i32 %3551 to i64
%3553 = getelementptr inbounds i8, i8* %3550, i64 %3552
%3554 = load i8, i8* %3553
%3555 = sext i8 %3554 to i32
%3556 = load i8*, i8** %20
%3557 = load i32, i32* %281
%3558 = zext i32 %3557 to i64
%3559 = getelementptr inbounds i8, i8* %3556, i64 %3558
%3560 = load i8, i8* %3559
%3561 = sext i8 %3560 to i32
%3562 = add nsw i32 %3561, %3555
%3563 = trunc i32 %3562 to i8
store i8 %3563, i8* %3559
%3564 = load i8*, i8** %26
%3565 = load i32, i32* %279
%3566 = zext i32 %3565 to i64
%3567 = getelementptr inbounds i8, i8* %3564, i64 %3566
%3568 = getelementptr inbounds i8, i8* %3567, i64 1
%3569 = load i8, i8* %3568
%3570 = sext i8 %3569 to i32
%3571 = load i8*, i8** %20
%3572 = load i32, i32* %281
%3573 = zext i32 %3572 to i64
%3574 = getelementptr inbounds i8, i8* %3571, i64 %3573
%3575 = getelementptr inbounds i8, i8* %3574, i64 1
%3576 = load i8, i8* %3575
%3577 = sext i8 %3576 to i32
%3578 = add nsw i32 %3577, %3570
%3579 = trunc i32 %3578 to i8
store i8 %3579, i8* %3575
%3580 = load i8*, i8** %26
%3581 = load i32, i32* %279
%3582 = zext i32 %3581 to i64
%3583 = getelementptr inbounds i8, i8* %3580, i64 %3582
%3584 = getelementptr inbounds i8, i8* %3583, i64 2
%3585 = load i8, i8* %3584
%3586 = sext i8 %3585 to i32
%3587 = load i8*, i8** %20
%3588 = load i32, i32* %281
%3589 = zext i32 %3588 to i64
%3590 = getelementptr inbounds i8, i8* %3587, i64 %3589
%3591 = getelementptr inbounds i8, i8* %3590, i64 2
%3592 = load i8, i8* %3591
%3593 = sext i8 %3592 to i32
%3594 = add nsw i32 %3593, %3586
%3595 = trunc i32 %3594 to i8
store i8 %3595, i8* %3591
br label %3596
3596: ; preds = %3535, %3526, %3506
br label %3597
3597: ; preds = %3596
%3598 = load i16, i16* %43
%3599 = add i16 %3598, 1
store i16 %3599, i16* %43
br label %3500
3600: ; preds = %3500
br label %3601
3601: ; preds = %3600, %3490, %3467
br label %3602
3602: ; preds = %3601
%3603 = load i16, i16* %44
%3604 = add i16 %3603, 1
store i16 %3604, i16* %44
br label %3461
3605: ; preds = %3461
br label %3722
3606: ; preds = %3344
store i16 0, i16* %44
br label %3607
3607: ; preds = %3718, %3606
%3608 = load i16, i16* %44
%3609 = sext i16 %3608 to i32
%3610 = load i16, i16* %30
%3611 = sext i16 %3610 to i32
%3612 = icmp slt i32 %3609, %3611
br i1 %3612, label %3613, label %3721
3613: ; preds = %3607
%3614 = load i16, i16* %44
%3615 = sext i16 %3614 to i32
%3616 = load i32, i32* %45
%3617 = mul i32 %3615, %3616
store i32 %3617, i32* %282
%3618 = load i16, i16* %40
%3619 = sext i16 %3618 to i32
%3620 = load i16, i16* %44
%3621 = sext i16 %3620 to i32
%3622 = add nsw i32 %3619, %3621
%3623 = trunc i32 %3622 to i16
store i16 %3623, i16* %283
%3624 = load i16, i16* %283
%3625 = zext i16 %3624 to i32
%3626 = load i32, i32* %23
%3627 = mul i32 %3625, %3626
store i32 %3627, i32* %284
%3628 = load i16, i16* %283
%3629 = zext i16 %3628 to i32
%3630 = load i16, i16* %25
%3631 = sext i16 %3630 to i32
%3632 = load i16, i16* %36
%3633 = sext i16 %3632 to i32
%3634 = add nsw i32 %3631, %3633
%3635 = icmp sge i32 %3629, %3634
br i1 %3635, label %3636, label %3717
3636: ; preds = %3613
%3637 = load i16, i16* %283
%3638 = zext i16 %3637 to i32
%3639 = load i16, i16* %25
%3640 = sext i16 %3639 to i32
%3641 = load i16, i16* %38
%3642 = sext i16 %3641 to i32
%3643 = add nsw i32 %3640, %3642
%3644 = icmp sle i32 %3638, %3643
br i1 %3644, label %3645, label %3717
3645: ; preds = %3636
store i16 0, i16* %43
br label %3646
3646: ; preds = %3713, %3645
%3647 = load i16, i16* %43
%3648 = sext i16 %3647 to i32
%3649 = load i16, i16* %29
%3650 = sext i16 %3649 to i32
%3651 = icmp slt i32 %3648, %3650
br i1 %3651, label %3652, label %3716
3652: ; preds = %3646
%3653 = load i16, i16* %39
%3654 = sext i16 %3653 to i32
%3655 = load i16, i16* %43
%3656 = sext i16 %3655 to i32
%3657 = add nsw i32 %3654, %3656
%3658 = trunc i32 %3657 to i16
store i16 %3658, i16* %285
%3659 = load i16, i16* %285
%3660 = zext i16 %3659 to i32
%3661 = load i8, i8* %31
%3662 = zext i8 %3661 to i32
%3663 = mul nsw i32 %3660, %3662
store i32 %3663, i32* %286
%3664 = load i16, i16* %285
%3665 = zext i16 %3664 to i32
%3666 = load i16, i16* %24
%3667 = sext i16 %3666 to i32
%3668 = load i16, i16* %35
%3669 = sext i16 %3668 to i32
%3670 = add nsw i32 %3667, %3669
%3671 = icmp sge i32 %3665, %3670
br i1 %3671, label %3672, label %3712
3672: ; preds = %3652
%3673 = load i16, i16* %285
%3674 = zext i16 %3673 to i32
%3675 = load i16, i16* %24
%3676 = sext i16 %3675 to i32
%3677 = load i16, i16* %37
%3678 = sext i16 %3677 to i32
%3679 = add nsw i32 %3676, %3678
%3680 = icmp sle i32 %3674, %3679
br i1 %3680, label %3681, label %3712
3681: ; preds = %3672
%3682 = load i16, i16* %43
%3683 = sext i16 %3682 to i32
%3684 = load i8, i8* %31
%3685 = zext i8 %3684 to i32
%3686 = mul nsw i32 %3683, %3685
store i32 %3686, i32* %287
%3687 = load i32, i32* %282
%3688 = load i32, i32* %287
%3689 = add i32 %3687, %3688
store i32 %3689, i32* %288
%3690 = load i32, i32* %284
%3691 = load i32, i32* %287
%3692 = add i32 %3690, %3691
store i32 %3692, i32* %289
%3693 = load i32, i32* %286
%3694 = load i32, i32* %284
%3695 = add i32 %3693, %3694
store i32 %3695, i32* %290
%3696 = load i8*, i8** %26
%3697 = load i32, i32* %288
%3698 = zext i32 %3697 to i64
%3699 = getelementptr inbounds i8, i8* %3696, i64 %3698
%3700 = bitcast i8* %3699 to i16*
%3701 = load i16, i16* %3700
%3702 = zext i16 %3701 to i32
%3703 = load i8*, i8** %20
%3704 = load i32, i32* %290
%3705 = zext i32 %3704 to i64
%3706 = getelementptr inbounds i8, i8* %3703, i64 %3705
%3707 = bitcast i8* %3706 to i16*
%3708 = load i16, i16* %3707
%3709 = zext i16 %3708 to i32
%3710 = add nsw i32 %3709, %3702
%3711 = trunc i32 %3710 to i16
store i16 %3711, i16* %3707
br label %3712
3712: ; preds = %3681, %3672, %3652
br label %3713
3713: ; preds = %3712
%3714 = load i16, i16* %43
%3715 = add i16 %3714, 1
store i16 %3715, i16* %43
br label %3646
3716: ; preds = %3646
br label %3717
3717: ; preds = %3716, %3636, %3613
br label %3718
3718: ; preds = %3717
%3719 = load i16, i16* %44
%3720 = add i16 %3719, 1
store i16 %3720, i16* %44
br label %3607
3721: ; preds = %3607
br label %3722
3722: ; preds = %3344, %3721, %3605, %3459
br label %4860
3723: ; preds = %466
%3724 = load i8, i8* %31
%3725 = zext i8 %3724 to i32
switch i32 %3725, label %4101 [
i32 4, label %3726
i32 3, label %3839
i32 2, label %3985
]
3726: ; preds = %3723
store i16 0, i16* %44
br label %3727
3727: ; preds = %3835, %3726
%3728 = load i16, i16* %44
%3729 = sext i16 %3728 to i32
%3730 = load i16, i16* %30
%3731 = sext i16 %3730 to i32
%3732 = icmp slt i32 %3729, %3731
br i1 %3732, label %3733, label %3838
3733: ; preds = %3727
%3734 = load i16, i16* %44
%3735 = sext i16 %3734 to i32
%3736 = load i32, i32* %45
%3737 = mul i32 %3735, %3736
store i32 %3737, i32* %291
%3738 = load i16, i16* %40
%3739 = sext i16 %3738 to i32
%3740 = load i16, i16* %44
%3741 = sext i16 %3740 to i32
%3742 = add nsw i32 %3739, %3741
%3743 = trunc i32 %3742 to i16
store i16 %3743, i16* %292
%3744 = load i16, i16* %292
%3745 = zext i16 %3744 to i32
%3746 = load i32, i32* %23
%3747 = mul i32 %3745, %3746
store i32 %3747, i32* %293
%3748 = load i16, i16* %292
%3749 = zext i16 %3748 to i32
%3750 = load i16, i16* %25
%3751 = sext i16 %3750 to i32
%3752 = load i16, i16* %36
%3753 = sext i16 %3752 to i32
%3754 = add nsw i32 %3751, %3753
%3755 = icmp sge i32 %3749, %3754
br i1 %3755, label %3756, label %3834
3756: ; preds = %3733
%3757 = load i16, i16* %292
%3758 = zext i16 %3757 to i32
%3759 = load i16, i16* %25
%3760 = sext i16 %3759 to i32
%3761 = load i16, i16* %38
%3762 = sext i16 %3761 to i32
%3763 = add nsw i32 %3760, %3762
%3764 = icmp sle i32 %3758, %3763
br i1 %3764, label %3765, label %3834
3765: ; preds = %3756
store i16 0, i16* %43
br label %3766
3766: ; preds = %3830, %3765
%3767 = load i16, i16* %43
%3768 = sext i16 %3767 to i32
%3769 = load i16, i16* %29
%3770 = sext i16 %3769 to i32
%3771 = icmp slt i32 %3768, %3770
br i1 %3771, label %3772, label %3833
3772: ; preds = %3766
%3773 = load i16, i16* %39
%3774 = sext i16 %3773 to i32
%3775 = load i16, i16* %43
%3776 = sext i16 %3775 to i32
%3777 = add nsw i32 %3774, %3776
%3778 = trunc i32 %3777 to i16
store i16 %3778, i16* %294
%3779 = load i16, i16* %294
%3780 = zext i16 %3779 to i32
%3781 = load i8, i8* %31
%3782 = zext i8 %3781 to i32
%3783 = mul nsw i32 %3780, %3782
store i32 %3783, i32* %295
%3784 = load i16, i16* %294
%3785 = zext i16 %3784 to i32
%3786 = load i16, i16* %24
%3787 = sext i16 %3786 to i32
%3788 = load i16, i16* %35
%3789 = sext i16 %3788 to i32
%3790 = add nsw i32 %3787, %3789
%3791 = icmp sge i32 %3785, %3790
br i1 %3791, label %3792, label %3829
3792: ; preds = %3772
%3793 = load i16, i16* %294
%3794 = zext i16 %3793 to i32
%3795 = load i16, i16* %24
%3796 = sext i16 %3795 to i32
%3797 = load i16, i16* %37
%3798 = sext i16 %3797 to i32
%3799 = add nsw i32 %3796, %3798
%3800 = icmp sle i32 %3794, %3799
br i1 %3800, label %3801, label %3829
3801: ; preds = %3792
%3802 = load i16, i16* %43
%3803 = sext i16 %3802 to i32
%3804 = load i8, i8* %31
%3805 = zext i8 %3804 to i32
%3806 = mul nsw i32 %3803, %3805
store i32 %3806, i32* %296
%3807 = load i32, i32* %291
%3808 = load i32, i32* %296
%3809 = add i32 %3807, %3808
store i32 %3809, i32* %297
%3810 = load i32, i32* %293
%3811 = load i32, i32* %296
%3812 = add i32 %3810, %3811
store i32 %3812, i32* %298
%3813 = load i32, i32* %295
%3814 = load i32, i32* %293
%3815 = add i32 %3813, %3814
store i32 %3815, i32* %299
%3816 = load i8*, i8** %26
%3817 = load i32, i32* %297
%3818 = zext i32 %3817 to i64
%3819 = getelementptr inbounds i8, i8* %3816, i64 %3818
%3820 = bitcast i8* %3819 to i32*
%3821 = load i32, i32* %3820
%3822 = load i8*, i8** %20
%3823 = load i32, i32* %299
%3824 = zext i32 %3823 to i64
%3825 = getelementptr inbounds i8, i8* %3822, i64 %3824
%3826 = bitcast i8* %3825 to i32*
%3827 = load i32, i32* %3826
%3828 = sub i32 %3827, %3821
store i32 %3828, i32* %3826
br label %3829
3829: ; preds = %3801, %3792, %3772
br label %3830
3830: ; preds = %3829
%3831 = load i16, i16* %43
%3832 = add i16 %3831, 1
store i16 %3832, i16* %43
br label %3766
3833: ; preds = %3766
br label %3834
3834: ; preds = %3833, %3756, %3733
br label %3835
3835: ; preds = %3834
%3836 = load i16, i16* %44
%3837 = add i16 %3836, 1
store i16 %3837, i16* %44
br label %3727
3838: ; preds = %3727
br label %4101
3839: ; preds = %3723
store i16 0, i16* %44
br label %3840
3840: ; preds = %3981, %3839
%3841 = load i16, i16* %44
%3842 = sext i16 %3841 to i32
%3843 = load i16, i16* %30
%3844 = sext i16 %3843 to i32
%3845 = icmp slt i32 %3842, %3844
br i1 %3845, label %3846, label %3984
3846: ; preds = %3840
%3847 = load i16, i16* %44
%3848 = sext i16 %3847 to i32
%3849 = load i32, i32* %45
%3850 = mul i32 %3848, %3849
store i32 %3850, i32* %300
%3851 = load i16, i16* %40
%3852 = sext i16 %3851 to i32
%3853 = load i16, i16* %44
%3854 = sext i16 %3853 to i32
%3855 = add nsw i32 %3852, %3854
%3856 = trunc i32 %3855 to i16
store i16 %3856, i16* %301
%3857 = load i16, i16* %301
%3858 = zext i16 %3857 to i32
%3859 = load i32, i32* %23
%3860 = mul i32 %3858, %3859
store i32 %3860, i32* %302
%3861 = load i16, i16* %301
%3862 = zext i16 %3861 to i32
%3863 = load i16, i16* %25
%3864 = sext i16 %3863 to i32
%3865 = load i16, i16* %36
%3866 = sext i16 %3865 to i32
%3867 = add nsw i32 %3864, %3866
%3868 = icmp sge i32 %3862, %3867
br i1 %3868, label %3869, label %3980
3869: ; preds = %3846
%3870 = load i16, i16* %301
%3871 = zext i16 %3870 to i32
%3872 = load i16, i16* %25
%3873 = sext i16 %3872 to i32
%3874 = load i16, i16* %38
%3875 = sext i16 %3874 to i32
%3876 = add nsw i32 %3873, %3875
%3877 = icmp sle i32 %3871, %3876
br i1 %3877, label %3878, label %3980
3878: ; preds = %3869
store i16 0, i16* %43
br label %3879
3879: ; preds = %3976, %3878
%3880 = load i16, i16* %43
%3881 = sext i16 %3880 to i32
%3882 = load i16, i16* %29
%3883 = sext i16 %3882 to i32
%3884 = icmp slt i32 %3881, %3883
br i1 %3884, label %3885, label %3979
3885: ; preds = %3879
%3886 = load i16, i16* %39
%3887 = sext i16 %3886 to i32
%3888 = load i16, i16* %43
%3889 = sext i16 %3888 to i32
%3890 = add nsw i32 %3887, %3889
%3891 = trunc i32 %3890 to i16
store i16 %3891, i16* %303
%3892 = load i16, i16* %303
%3893 = zext i16 %3892 to i32
%3894 = load i8, i8* %31
%3895 = zext i8 %3894 to i32
%3896 = mul nsw i32 %3893, %3895
store i32 %3896, i32* %304
%3897 = load i16, i16* %303
%3898 = zext i16 %3897 to i32
%3899 = load i16, i16* %24
%3900 = sext i16 %3899 to i32
%3901 = load i16, i16* %35
%3902 = sext i16 %3901 to i32
%3903 = add nsw i32 %3900, %3902
%3904 = icmp sge i32 %3898, %3903
br i1 %3904, label %3905, label %3975
3905: ; preds = %3885
%3906 = load i16, i16* %303
%3907 = zext i16 %3906 to i32
%3908 = load i16, i16* %24
%3909 = sext i16 %3908 to i32
%3910 = load i16, i16* %37
%3911 = sext i16 %3910 to i32
%3912 = add nsw i32 %3909, %3911
%3913 = icmp sle i32 %3907, %3912
br i1 %3913, label %3914, label %3975
3914: ; preds = %3905
%3915 = load i16, i16* %43
%3916 = sext i16 %3915 to i32
%3917 = load i8, i8* %31
%3918 = zext i8 %3917 to i32
%3919 = mul nsw i32 %3916, %3918
store i32 %3919, i32* %305
%3920 = load i32, i32* %300
%3921 = load i32, i32* %305
%3922 = add i32 %3920, %3921
store i32 %3922, i32* %306
%3923 = load i32, i32* %302
%3924 = load i32, i32* %305
%3925 = add i32 %3923, %3924
store i32 %3925, i32* %307
%3926 = load i32, i32* %304
%3927 = load i32, i32* %302
%3928 = add i32 %3926, %3927
store i32 %3928, i32* %308
%3929 = load i8*, i8** %26
%3930 = load i32, i32* %306
%3931 = zext i32 %3930 to i64
%3932 = getelementptr inbounds i8, i8* %3929, i64 %3931
%3933 = load i8, i8* %3932
%3934 = sext i8 %3933 to i32
%3935 = load i8*, i8** %20
%3936 = load i32, i32* %308
%3937 = zext i32 %3936 to i64
%3938 = getelementptr inbounds i8, i8* %3935, i64 %3937
%3939 = load i8, i8* %3938
%3940 = sext i8 %3939 to i32
%3941 = sub nsw i32 %3940, %3934
%3942 = trunc i32 %3941 to i8
store i8 %3942, i8* %3938
%3943 = load i8*, i8** %26
%3944 = load i32, i32* %306
%3945 = zext i32 %3944 to i64
%3946 = getelementptr inbounds i8, i8* %3943, i64 %3945
%3947 = getelementptr inbounds i8, i8* %3946, i64 1
%3948 = load i8, i8* %3947
%3949 = sext i8 %3948 to i32
%3950 = load i8*, i8** %20
%3951 = load i32, i32* %308
%3952 = zext i32 %3951 to i64
%3953 = getelementptr inbounds i8, i8* %3950, i64 %3952
%3954 = getelementptr inbounds i8, i8* %3953, i64 1
%3955 = load i8, i8* %3954
%3956 = sext i8 %3955 to i32
%3957 = sub nsw i32 %3956, %3949
%3958 = trunc i32 %3957 to i8
store i8 %3958, i8* %3954
%3959 = load i8*, i8** %26
%3960 = load i32, i32* %306
%3961 = zext i32 %3960 to i64
%3962 = getelementptr inbounds i8, i8* %3959, i64 %3961
%3963 = getelementptr inbounds i8, i8* %3962, i64 2
%3964 = load i8, i8* %3963
%3965 = sext i8 %3964 to i32
%3966 = load i8*, i8** %20
%3967 = load i32, i32* %308
%3968 = zext i32 %3967 to i64
%3969 = getelementptr inbounds i8, i8* %3966, i64 %3968
%3970 = getelementptr inbounds i8, i8* %3969, i64 2
%3971 = load i8, i8* %3970
%3972 = sext i8 %3971 to i32
%3973 = sub nsw i32 %3972, %3965
%3974 = trunc i32 %3973 to i8
store i8 %3974, i8* %3970
br label %3975
3975: ; preds = %3914, %3905, %3885
br label %3976
3976: ; preds = %3975
%3977 = load i16, i16* %43
%3978 = add i16 %3977, 1
store i16 %3978, i16* %43
br label %3879
3979: ; preds = %3879
br label %3980
3980: ; preds = %3979, %3869, %3846
br label %3981
3981: ; preds = %3980
%3982 = load i16, i16* %44
%3983 = add i16 %3982, 1
store i16 %3983, i16* %44
br label %3840
3984: ; preds = %3840
br label %4101
3985: ; preds = %3723
store i16 0, i16* %44
br label %3986
3986: ; preds = %4097, %3985
%3987 = load i16, i16* %44
%3988 = sext i16 %3987 to i32
%3989 = load i16, i16* %30
%3990 = sext i16 %3989 to i32
%3991 = icmp slt i32 %3988, %3990
br i1 %3991, label %3992, label %4100
3992: ; preds = %3986
%3993 = load i16, i16* %44
%3994 = sext i16 %3993 to i32
%3995 = load i32, i32* %45
%3996 = mul i32 %3994, %3995
store i32 %3996, i32* %309
%3997 = load i16, i16* %40
%3998 = sext i16 %3997 to i32
%3999 = load i16, i16* %44
%4000 = sext i16 %3999 to i32
%4001 = add nsw i32 %3998, %4000
%4002 = trunc i32 %4001 to i16
store i16 %4002, i16* %310
%4003 = load i16, i16* %310
%4004 = zext i16 %4003 to i32
%4005 = load i32, i32* %23
%4006 = mul i32 %4004, %4005
store i32 %4006, i32* %311
%4007 = load i16, i16* %310
%4008 = zext i16 %4007 to i32
%4009 = load i16, i16* %25
%4010 = sext i16 %4009 to i32
%4011 = load i16, i16* %36
%4012 = sext i16 %4011 to i32
%4013 = add nsw i32 %4010, %4012
%4014 = icmp sge i32 %4008, %4013
br i1 %4014, label %4015, label %4096
4015: ; preds = %3992
%4016 = load i16, i16* %310
%4017 = zext i16 %4016 to i32
%4018 = load i16, i16* %25
%4019 = sext i16 %4018 to i32
%4020 = load i16, i16* %38
%4021 = sext i16 %4020 to i32
%4022 = add nsw i32 %4019, %4021
%4023 = icmp sle i32 %4017, %4022
br i1 %4023, label %4024, label %4096
4024: ; preds = %4015
store i16 0, i16* %43
br label %4025
4025: ; preds = %4092, %4024
%4026 = load i16, i16* %43
%4027 = sext i16 %4026 to i32
%4028 = load i16, i16* %29
%4029 = sext i16 %4028 to i32
%4030 = icmp slt i32 %4027, %4029
br i1 %4030, label %4031, label %4095
4031: ; preds = %4025
%4032 = load i16, i16* %39
%4033 = sext i16 %4032 to i32
%4034 = load i16, i16* %43
%4035 = sext i16 %4034 to i32
%4036 = add nsw i32 %4033, %4035
%4037 = trunc i32 %4036 to i16
store i16 %4037, i16* %312
%4038 = load i16, i16* %312
%4039 = zext i16 %4038 to i32
%4040 = load i8, i8* %31
%4041 = zext i8 %4040 to i32
%4042 = mul nsw i32 %4039, %4041
store i32 %4042, i32* %313
%4043 = load i16, i16* %312
%4044 = zext i16 %4043 to i32
%4045 = load i16, i16* %24
%4046 = sext i16 %4045 to i32
%4047 = load i16, i16* %35
%4048 = sext i16 %4047 to i32
%4049 = add nsw i32 %4046, %4048
%4050 = icmp sge i32 %4044, %4049
br i1 %4050, label %4051, label %4091
4051: ; preds = %4031
%4052 = load i16, i16* %312
%4053 = zext i16 %4052 to i32
%4054 = load i16, i16* %24
%4055 = sext i16 %4054 to i32
%4056 = load i16, i16* %37
%4057 = sext i16 %4056 to i32
%4058 = add nsw i32 %4055, %4057
%4059 = icmp sle i32 %4053, %4058
br i1 %4059, label %4060, label %4091
4060: ; preds = %4051
%4061 = load i16, i16* %43
%4062 = sext i16 %4061 to i32
%4063 = load i8, i8* %31
%4064 = zext i8 %4063 to i32
%4065 = mul nsw i32 %4062, %4064
store i32 %4065, i32* %314
%4066 = load i32, i32* %309
%4067 = load i32, i32* %314
%4068 = add i32 %4066, %4067
store i32 %4068, i32* %315
%4069 = load i32, i32* %311
%4070 = load i32, i32* %314
%4071 = add i32 %4069, %4070
store i32 %4071, i32* %316
%4072 = load i32, i32* %313
%4073 = load i32, i32* %311
%4074 = add i32 %4072, %4073
store i32 %4074, i32* %317
%4075 = load i8*, i8** %26
%4076 = load i32, i32* %315
%4077 = zext i32 %4076 to i64
%4078 = getelementptr inbounds i8, i8* %4075, i64 %4077
%4079 = bitcast i8* %4078 to i16*
%4080 = load i16, i16* %4079
%4081 = zext i16 %4080 to i32
%4082 = load i8*, i8** %20
%4083 = load i32, i32* %317
%4084 = zext i32 %4083 to i64
%4085 = getelementptr inbounds i8, i8* %4082, i64 %4084
%4086 = bitcast i8* %4085 to i16*
%4087 = load i16, i16* %4086
%4088 = zext i16 %4087 to i32
%4089 = sub nsw i32 %4088, %4081
%4090 = trunc i32 %4089 to i16
store i16 %4090, i16* %4086
br label %4091
4091: ; preds = %4060, %4051, %4031
br label %4092
4092: ; preds = %4091
%4093 = load i16, i16* %43
%4094 = add i16 %4093, 1
store i16 %4094, i16* %43
br label %4025
4095: ; preds = %4025
br label %4096
4096: ; preds = %4095, %4015, %3992
br label %4097
4097: ; preds = %4096
%4098 = load i16, i16* %44
%4099 = add i16 %4098, 1
store i16 %4099, i16* %44
br label %3986
4100: ; preds = %3986
br label %4101
4101: ; preds = %3723, %4100, %3984, %3838
br label %4860
4102: ; preds = %466
%4103 = load i8, i8* %31
%4104 = zext i8 %4103 to i32
switch i32 %4104, label %4480 [
i32 4, label %4105
i32 3, label %4218
i32 2, label %4364
]
4105: ; preds = %4102
store i16 0, i16* %44
br label %4106
4106: ; preds = %4214, %4105
%4107 = load i16, i16* %44
%4108 = sext i16 %4107 to i32
%4109 = load i16, i16* %30
%4110 = sext i16 %4109 to i32
%4111 = icmp slt i32 %4108, %4110
br i1 %4111, label %4112, label %4217
4112: ; preds = %4106
%4113 = load i16, i16* %44
%4114 = sext i16 %4113 to i32
%4115 = load i32, i32* %45
%4116 = mul i32 %4114, %4115
store i32 %4116, i32* %318
%4117 = load i16, i16* %40
%4118 = sext i16 %4117 to i32
%4119 = load i16, i16* %44
%4120 = sext i16 %4119 to i32
%4121 = add nsw i32 %4118, %4120
%4122 = trunc i32 %4121 to i16
store i16 %4122, i16* %319
%4123 = load i16, i16* %319
%4124 = zext i16 %4123 to i32
%4125 = load i32, i32* %23
%4126 = mul i32 %4124, %4125
store i32 %4126, i32* %320
%4127 = load i16, i16* %319
%4128 = zext i16 %4127 to i32
%4129 = load i16, i16* %25
%4130 = sext i16 %4129 to i32
%4131 = load i16, i16* %36
%4132 = sext i16 %4131 to i32
%4133 = add nsw i32 %4130, %4132
%4134 = icmp sge i32 %4128, %4133
br i1 %4134, label %4135, label %4213
4135: ; preds = %4112
%4136 = load i16, i16* %319
%4137 = zext i16 %4136 to i32
%4138 = load i16, i16* %25
%4139 = sext i16 %4138 to i32
%4140 = load i16, i16* %38
%4141 = sext i16 %4140 to i32
%4142 = add nsw i32 %4139, %4141
%4143 = icmp sle i32 %4137, %4142
br i1 %4143, label %4144, label %4213
4144: ; preds = %4135
store i16 0, i16* %43
br label %4145
4145: ; preds = %4209, %4144
%4146 = load i16, i16* %43
%4147 = sext i16 %4146 to i32
%4148 = load i16, i16* %29
%4149 = sext i16 %4148 to i32
%4150 = icmp slt i32 %4147, %4149
br i1 %4150, label %4151, label %4212
4151: ; preds = %4145
%4152 = load i16, i16* %39
%4153 = sext i16 %4152 to i32
%4154 = load i16, i16* %43
%4155 = sext i16 %4154 to i32
%4156 = add nsw i32 %4153, %4155
%4157 = trunc i32 %4156 to i16
store i16 %4157, i16* %321
%4158 = load i16, i16* %321
%4159 = zext i16 %4158 to i32
%4160 = load i8, i8* %31
%4161 = zext i8 %4160 to i32
%4162 = mul nsw i32 %4159, %4161
store i32 %4162, i32* %322
%4163 = load i16, i16* %321
%4164 = zext i16 %4163 to i32
%4165 = load i16, i16* %24
%4166 = sext i16 %4165 to i32
%4167 = load i16, i16* %35
%4168 = sext i16 %4167 to i32
%4169 = add nsw i32 %4166, %4168
%4170 = icmp sge i32 %4164, %4169
br i1 %4170, label %4171, label %4208
4171: ; preds = %4151
%4172 = load i16, i16* %321
%4173 = zext i16 %4172 to i32
%4174 = load i16, i16* %24
%4175 = sext i16 %4174 to i32
%4176 = load i16, i16* %37
%4177 = sext i16 %4176 to i32
%4178 = add nsw i32 %4175, %4177
%4179 = icmp sle i32 %4173, %4178
br i1 %4179, label %4180, label %4208
4180: ; preds = %4171
%4181 = load i16, i16* %43
%4182 = sext i16 %4181 to i32
%4183 = load i8, i8* %31
%4184 = zext i8 %4183 to i32
%4185 = mul nsw i32 %4182, %4184
store i32 %4185, i32* %323
%4186 = load i32, i32* %318
%4187 = load i32, i32* %323
%4188 = add i32 %4186, %4187
store i32 %4188, i32* %324
%4189 = load i32, i32* %320
%4190 = load i32, i32* %323
%4191 = add i32 %4189, %4190
store i32 %4191, i32* %325
%4192 = load i32, i32* %322
%4193 = load i32, i32* %320
%4194 = add i32 %4192, %4193
store i32 %4194, i32* %326
%4195 = load i8*, i8** %26
%4196 = load i32, i32* %324
%4197 = zext i32 %4196 to i64
%4198 = getelementptr inbounds i8, i8* %4195, i64 %4197
%4199 = bitcast i8* %4198 to i32*
%4200 = load i32, i32* %4199
%4201 = load i8*, i8** %20
%4202 = load i32, i32* %326
%4203 = zext i32 %4202 to i64
%4204 = getelementptr inbounds i8, i8* %4201, i64 %4203
%4205 = bitcast i8* %4204 to i32*
%4206 = load i32, i32* %4205
%4207 = mul i32 %4206, %4200
store i32 %4207, i32* %4205
br label %4208
4208: ; preds = %4180, %4171, %4151
br label %4209
4209: ; preds = %4208
%4210 = load i16, i16* %43
%4211 = add i16 %4210, 1
store i16 %4211, i16* %43
br label %4145
4212: ; preds = %4145
br label %4213
4213: ; preds = %4212, %4135, %4112
br label %4214
4214: ; preds = %4213
%4215 = load i16, i16* %44
%4216 = add i16 %4215, 1
store i16 %4216, i16* %44
br label %4106
4217: ; preds = %4106
br label %4480
4218: ; preds = %4102
store i16 0, i16* %44
br label %4219
4219: ; preds = %4360, %4218
%4220 = load i16, i16* %44
%4221 = sext i16 %4220 to i32
%4222 = load i16, i16* %30
%4223 = sext i16 %4222 to i32
%4224 = icmp slt i32 %4221, %4223
br i1 %4224, label %4225, label %4363
4225: ; preds = %4219
%4226 = load i16, i16* %44
%4227 = sext i16 %4226 to i32
%4228 = load i32, i32* %45
%4229 = mul i32 %4227, %4228
store i32 %4229, i32* %327
%4230 = load i16, i16* %40
%4231 = sext i16 %4230 to i32
%4232 = load i16, i16* %44
%4233 = sext i16 %4232 to i32
%4234 = add nsw i32 %4231, %4233
%4235 = trunc i32 %4234 to i16
store i16 %4235, i16* %328
%4236 = load i16, i16* %328
%4237 = zext i16 %4236 to i32
%4238 = load i32, i32* %23
%4239 = mul i32 %4237, %4238
store i32 %4239, i32* %329
%4240 = load i16, i16* %328
%4241 = zext i16 %4240 to i32
%4242 = load i16, i16* %25
%4243 = sext i16 %4242 to i32
%4244 = load i16, i16* %36
%4245 = sext i16 %4244 to i32
%4246 = add nsw i32 %4243, %4245
%4247 = icmp sge i32 %4241, %4246
br i1 %4247, label %4248, label %4359
4248: ; preds = %4225
%4249 = load i16, i16* %328
%4250 = zext i16 %4249 to i32
%4251 = load i16, i16* %25
%4252 = sext i16 %4251 to i32
%4253 = load i16, i16* %38
%4254 = sext i16 %4253 to i32
%4255 = add nsw i32 %4252, %4254
%4256 = icmp sle i32 %4250, %4255
br i1 %4256, label %4257, label %4359
4257: ; preds = %4248
store i16 0, i16* %43
br label %4258
4258: ; preds = %4355, %4257
%4259 = load i16, i16* %43
%4260 = sext i16 %4259 to i32
%4261 = load i16, i16* %29
%4262 = sext i16 %4261 to i32
%4263 = icmp slt i32 %4260, %4262
br i1 %4263, label %4264, label %4358
4264: ; preds = %4258
%4265 = load i16, i16* %39
%4266 = sext i16 %4265 to i32
%4267 = load i16, i16* %43
%4268 = sext i16 %4267 to i32
%4269 = add nsw i32 %4266, %4268
%4270 = trunc i32 %4269 to i16
store i16 %4270, i16* %330
%4271 = load i16, i16* %330
%4272 = zext i16 %4271 to i32
%4273 = load i8, i8* %31
%4274 = zext i8 %4273 to i32
%4275 = mul nsw i32 %4272, %4274
store i32 %4275, i32* %331
%4276 = load i16, i16* %330
%4277 = zext i16 %4276 to i32
%4278 = load i16, i16* %24
%4279 = sext i16 %4278 to i32
%4280 = load i16, i16* %35
%4281 = sext i16 %4280 to i32
%4282 = add nsw i32 %4279, %4281
%4283 = icmp sge i32 %4277, %4282
br i1 %4283, label %4284, label %4354
4284: ; preds = %4264
%4285 = load i16, i16* %330
%4286 = zext i16 %4285 to i32
%4287 = load i16, i16* %24
%4288 = sext i16 %4287 to i32
%4289 = load i16, i16* %37
%4290 = sext i16 %4289 to i32
%4291 = add nsw i32 %4288, %4290
%4292 = icmp sle i32 %4286, %4291
br i1 %4292, label %4293, label %4354
4293: ; preds = %4284
%4294 = load i16, i16* %43
%4295 = sext i16 %4294 to i32
%4296 = load i8, i8* %31
%4297 = zext i8 %4296 to i32
%4298 = mul nsw i32 %4295, %4297
store i32 %4298, i32* %332
%4299 = load i32, i32* %327
%4300 = load i32, i32* %332
%4301 = add i32 %4299, %4300
store i32 %4301, i32* %333
%4302 = load i32, i32* %329
%4303 = load i32, i32* %332
%4304 = add i32 %4302, %4303
store i32 %4304, i32* %334
%4305 = load i32, i32* %331
%4306 = load i32, i32* %329
%4307 = add i32 %4305, %4306
store i32 %4307, i32* %335
%4308 = load i8*, i8** %26
%4309 = load i32, i32* %333
%4310 = zext i32 %4309 to i64
%4311 = getelementptr inbounds i8, i8* %4308, i64 %4310
%4312 = load i8, i8* %4311
%4313 = sext i8 %4312 to i32
%4314 = load i8*, i8** %20
%4315 = load i32, i32* %335
%4316 = zext i32 %4315 to i64
%4317 = getelementptr inbounds i8, i8* %4314, i64 %4316
%4318 = load i8, i8* %4317
%4319 = sext i8 %4318 to i32
%4320 = mul nsw i32 %4319, %4313
%4321 = trunc i32 %4320 to i8
store i8 %4321, i8* %4317
%4322 = load i8*, i8** %26
%4323 = load i32, i32* %333
%4324 = zext i32 %4323 to i64
%4325 = getelementptr inbounds i8, i8* %4322, i64 %4324
%4326 = getelementptr inbounds i8, i8* %4325, i64 1
%4327 = load i8, i8* %4326
%4328 = sext i8 %4327 to i32
%4329 = load i8*, i8** %20
%4330 = load i32, i32* %335
%4331 = zext i32 %4330 to i64
%4332 = getelementptr inbounds i8, i8* %4329, i64 %4331
%4333 = getelementptr inbounds i8, i8* %4332, i64 1
%4334 = load i8, i8* %4333
%4335 = sext i8 %4334 to i32
%4336 = mul nsw i32 %4335, %4328
%4337 = trunc i32 %4336 to i8
store i8 %4337, i8* %4333
%4338 = load i8*, i8** %26
%4339 = load i32, i32* %333
%4340 = zext i32 %4339 to i64
%4341 = getelementptr inbounds i8, i8* %4338, i64 %4340
%4342 = getelementptr inbounds i8, i8* %4341, i64 2
%4343 = load i8, i8* %4342
%4344 = sext i8 %4343 to i32
%4345 = load i8*, i8** %20
%4346 = load i32, i32* %335
%4347 = zext i32 %4346 to i64
%4348 = getelementptr inbounds i8, i8* %4345, i64 %4347
%4349 = getelementptr inbounds i8, i8* %4348, i64 2
%4350 = load i8, i8* %4349
%4351 = sext i8 %4350 to i32
%4352 = mul nsw i32 %4351, %4344
%4353 = trunc i32 %4352 to i8
store i8 %4353, i8* %4349
br label %4354
4354: ; preds = %4293, %4284, %4264
br label %4355
4355: ; preds = %4354
%4356 = load i16, i16* %43
%4357 = add i16 %4356, 1
store i16 %4357, i16* %43
br label %4258
4358: ; preds = %4258
br label %4359
4359: ; preds = %4358, %4248, %4225
br label %4360
4360: ; preds = %4359
%4361 = load i16, i16* %44
%4362 = add i16 %4361, 1
store i16 %4362, i16* %44
br label %4219
4363: ; preds = %4219
br label %4480
4364: ; preds = %4102
store i16 0, i16* %44
br label %4365
4365: ; preds = %4476, %4364
%4366 = load i16, i16* %44
%4367 = sext i16 %4366 to i32
%4368 = load i16, i16* %30
%4369 = sext i16 %4368 to i32
%4370 = icmp slt i32 %4367, %4369
br i1 %4370, label %4371, label %4479
4371: ; preds = %4365
%4372 = load i16, i16* %44
%4373 = sext i16 %4372 to i32
%4374 = load i32, i32* %45
%4375 = mul i32 %4373, %4374
store i32 %4375, i32* %336
%4376 = load i16, i16* %40
%4377 = sext i16 %4376 to i32
%4378 = load i16, i16* %44
%4379 = sext i16 %4378 to i32
%4380 = add nsw i32 %4377, %4379
%4381 = trunc i32 %4380 to i16
store i16 %4381, i16* %337
%4382 = load i16, i16* %337
%4383 = zext i16 %4382 to i32
%4384 = load i32, i32* %23
%4385 = mul i32 %4383, %4384
store i32 %4385, i32* %338
%4386 = load i16, i16* %337
%4387 = zext i16 %4386 to i32
%4388 = load i16, i16* %25
%4389 = sext i16 %4388 to i32
%4390 = load i16, i16* %36
%4391 = sext i16 %4390 to i32
%4392 = add nsw i32 %4389, %4391
%4393 = icmp sge i32 %4387, %4392
br i1 %4393, label %4394, label %4475
4394: ; preds = %4371
%4395 = load i16, i16* %337
%4396 = zext i16 %4395 to i32
%4397 = load i16, i16* %25
%4398 = sext i16 %4397 to i32
%4399 = load i16, i16* %38
%4400 = sext i16 %4399 to i32
%4401 = add nsw i32 %4398, %4400
%4402 = icmp sle i32 %4396, %4401
br i1 %4402, label %4403, label %4475
4403: ; preds = %4394
store i16 0, i16* %43
br label %4404
4404: ; preds = %4471, %4403
%4405 = load i16, i16* %43
%4406 = sext i16 %4405 to i32
%4407 = load i16, i16* %29
%4408 = sext i16 %4407 to i32
%4409 = icmp slt i32 %4406, %4408
br i1 %4409, label %4410, label %4474
4410: ; preds = %4404
%4411 = load i16, i16* %39
%4412 = sext i16 %4411 to i32
%4413 = load i16, i16* %43
%4414 = sext i16 %4413 to i32
%4415 = add nsw i32 %4412, %4414
%4416 = trunc i32 %4415 to i16
store i16 %4416, i16* %339
%4417 = load i16, i16* %339
%4418 = zext i16 %4417 to i32
%4419 = load i8, i8* %31
%4420 = zext i8 %4419 to i32
%4421 = mul nsw i32 %4418, %4420
store i32 %4421, i32* %340
%4422 = load i16, i16* %339
%4423 = zext i16 %4422 to i32
%4424 = load i16, i16* %24
%4425 = sext i16 %4424 to i32
%4426 = load i16, i16* %35
%4427 = sext i16 %4426 to i32
%4428 = add nsw i32 %4425, %4427
%4429 = icmp sge i32 %4423, %4428
br i1 %4429, label %4430, label %4470
4430: ; preds = %4410
%4431 = load i16, i16* %339
%4432 = zext i16 %4431 to i32
%4433 = load i16, i16* %24
%4434 = sext i16 %4433 to i32
%4435 = load i16, i16* %37
%4436 = sext i16 %4435 to i32
%4437 = add nsw i32 %4434, %4436
%4438 = icmp sle i32 %4432, %4437
br i1 %4438, label %4439, label %4470
4439: ; preds = %4430
%4440 = load i16, i16* %43
%4441 = sext i16 %4440 to i32
%4442 = load i8, i8* %31
%4443 = zext i8 %4442 to i32
%4444 = mul nsw i32 %4441, %4443
store i32 %4444, i32* %341
%4445 = load i32, i32* %336
%4446 = load i32, i32* %341
%4447 = add i32 %4445, %4446
store i32 %4447, i32* %342
%4448 = load i32, i32* %338
%4449 = load i32, i32* %341
%4450 = add i32 %4448, %4449
store i32 %4450, i32* %343
%4451 = load i32, i32* %340
%4452 = load i32, i32* %338
%4453 = add i32 %4451, %4452
store i32 %4453, i32* %344
%4454 = load i8*, i8** %26
%4455 = load i32, i32* %342
%4456 = zext i32 %4455 to i64
%4457 = getelementptr inbounds i8, i8* %4454, i64 %4456
%4458 = bitcast i8* %4457 to i16*
%4459 = load i16, i16* %4458
%4460 = zext i16 %4459 to i32
%4461 = load i8*, i8** %20
%4462 = load i32, i32* %344
%4463 = zext i32 %4462 to i64
%4464 = getelementptr inbounds i8, i8* %4461, i64 %4463
%4465 = bitcast i8* %4464 to i16*
%4466 = load i16, i16* %4465
%4467 = zext i16 %4466 to i32
%4468 = mul nsw i32 %4467, %4460
%4469 = trunc i32 %4468 to i16
store i16 %4469, i16* %4465
br label %4470
4470: ; preds = %4439, %4430, %4410
br label %4471
4471: ; preds = %4470
%4472 = load i16, i16* %43
%4473 = add i16 %4472, 1
store i16 %4473, i16* %43
br label %4404
4474: ; preds = %4404
br label %4475
4475: ; preds = %4474, %4394, %4371
br label %4476
4476: ; preds = %4475
%4477 = load i16, i16* %44
%4478 = add i16 %4477, 1
store i16 %4478, i16* %44
br label %4365
4479: ; preds = %4365
br label %4480
4480: ; preds = %4102, %4479, %4363, %4217
br label %4860
4481: ; preds = %466
%4482 = load i8, i8* %31
%4483 = zext i8 %4482 to i32
switch i32 %4483, label %4859 [
i32 4, label %4484
i32 3, label %4597
i32 2, label %4743
]
4484: ; preds = %4481
store i16 0, i16* %44
br label %4485
4485: ; preds = %4593, %4484
%4486 = load i16, i16* %44
%4487 = sext i16 %4486 to i32
%4488 = load i16, i16* %30
%4489 = sext i16 %4488 to i32
%4490 = icmp slt i32 %4487, %4489
br i1 %4490, label %4491, label %4596
4491: ; preds = %4485
%4492 = load i16, i16* %44
%4493 = sext i16 %4492 to i32
%4494 = load i32, i32* %45
%4495 = mul i32 %4493, %4494
store i32 %4495, i32* %345
%4496 = load i16, i16* %40
%4497 = sext i16 %4496 to i32
%4498 = load i16, i16* %44
%4499 = sext i16 %4498 to i32
%4500 = add nsw i32 %4497, %4499
%4501 = trunc i32 %4500 to i16
store i16 %4501, i16* %346
%4502 = load i16, i16* %346
%4503 = zext i16 %4502 to i32
%4504 = load i32, i32* %23
%4505 = mul i32 %4503, %4504
store i32 %4505, i32* %347
%4506 = load i16, i16* %346
%4507 = zext i16 %4506 to i32
%4508 = load i16, i16* %25
%4509 = sext i16 %4508 to i32
%4510 = load i16, i16* %36
%4511 = sext i16 %4510 to i32
%4512 = add nsw i32 %4509, %4511
%4513 = icmp sge i32 %4507, %4512
br i1 %4513, label %4514, label %4592
4514: ; preds = %4491
%4515 = load i16, i16* %346
%4516 = zext i16 %4515 to i32
%4517 = load i16, i16* %25
%4518 = sext i16 %4517 to i32
%4519 = load i16, i16* %38
%4520 = sext i16 %4519 to i32
%4521 = add nsw i32 %4518, %4520
%4522 = icmp sle i32 %4516, %4521
br i1 %4522, label %4523, label %4592
4523: ; preds = %4514
store i16 0, i16* %43
br label %4524
4524: ; preds = %4588, %4523
%4525 = load i16, i16* %43
%4526 = sext i16 %4525 to i32
%4527 = load i16, i16* %29
%4528 = sext i16 %4527 to i32
%4529 = icmp slt i32 %4526, %4528
br i1 %4529, label %4530, label %4591
4530: ; preds = %4524
%4531 = load i16, i16* %39
%4532 = sext i16 %4531 to i32
%4533 = load i16, i16* %43
%4534 = sext i16 %4533 to i32
%4535 = add nsw i32 %4532, %4534
%4536 = trunc i32 %4535 to i16
store i16 %4536, i16* %348
%4537 = load i16, i16* %348
%4538 = zext i16 %4537 to i32
%4539 = load i8, i8* %31
%4540 = zext i8 %4539 to i32
%4541 = mul nsw i32 %4538, %4540
store i32 %4541, i32* %349
%4542 = load i16, i16* %348
%4543 = zext i16 %4542 to i32
%4544 = load i16, i16* %24
%4545 = sext i16 %4544 to i32
%4546 = load i16, i16* %35
%4547 = sext i16 %4546 to i32
%4548 = add nsw i32 %4545, %4547
%4549 = icmp sge i32 %4543, %4548
br i1 %4549, label %4550, label %4587
4550: ; preds = %4530
%4551 = load i16, i16* %348
%4552 = zext i16 %4551 to i32
%4553 = load i16, i16* %24
%4554 = sext i16 %4553 to i32
%4555 = load i16, i16* %37
%4556 = sext i16 %4555 to i32
%4557 = add nsw i32 %4554, %4556
%4558 = icmp sle i32 %4552, %4557
br i1 %4558, label %4559, label %4587
4559: ; preds = %4550
%4560 = load i16, i16* %43
%4561 = sext i16 %4560 to i32
%4562 = load i8, i8* %31
%4563 = zext i8 %4562 to i32
%4564 = mul nsw i32 %4561, %4563
store i32 %4564, i32* %350
%4565 = load i32, i32* %345
%4566 = load i32, i32* %350
%4567 = add i32 %4565, %4566
store i32 %4567, i32* %351
%4568 = load i32, i32* %347
%4569 = load i32, i32* %350
%4570 = add i32 %4568, %4569
store i32 %4570, i32* %352
%4571 = load i32, i32* %349
%4572 = load i32, i32* %347
%4573 = add i32 %4571, %4572
store i32 %4573, i32* %353
%4574 = load i8*, i8** %26
%4575 = load i32, i32* %351
%4576 = zext i32 %4575 to i64
%4577 = getelementptr inbounds i8, i8* %4574, i64 %4576
%4578 = bitcast i8* %4577 to i32*
%4579 = load i32, i32* %4578
%4580 = load i8*, i8** %20
%4581 = load i32, i32* %353
%4582 = zext i32 %4581 to i64
%4583 = getelementptr inbounds i8, i8* %4580, i64 %4582
%4584 = bitcast i8* %4583 to i32*
%4585 = load i32, i32* %4584
%4586 = udiv i32 %4585, %4579
store i32 %4586, i32* %4584
br label %4587
4587: ; preds = %4559, %4550, %4530
br label %4588
4588: ; preds = %4587
%4589 = load i16, i16* %43
%4590 = add i16 %4589, 1
store i16 %4590, i16* %43
br label %4524
4591: ; preds = %4524
br label %4592
4592: ; preds = %4591, %4514, %4491
br label %4593
4593: ; preds = %4592
%4594 = load i16, i16* %44
%4595 = add i16 %4594, 1
store i16 %4595, i16* %44
br label %4485
4596: ; preds = %4485
br label %4859
4597: ; preds = %4481
store i16 0, i16* %44
br label %4598
4598: ; preds = %4739, %4597
%4599 = load i16, i16* %44
%4600 = sext i16 %4599 to i32
%4601 = load i16, i16* %30
%4602 = sext i16 %4601 to i32
%4603 = icmp slt i32 %4600, %4602
br i1 %4603, label %4604, label %4742
4604: ; preds = %4598
%4605 = load i16, i16* %44
%4606 = sext i16 %4605 to i32
%4607 = load i32, i32* %45
%4608 = mul i32 %4606, %4607
store i32 %4608, i32* %354
%4609 = load i16, i16* %40
%4610 = sext i16 %4609 to i32
%4611 = load i16, i16* %44
%4612 = sext i16 %4611 to i32
%4613 = add nsw i32 %4610, %4612
%4614 = trunc i32 %4613 to i16
store i16 %4614, i16* %355
%4615 = load i16, i16* %355
%4616 = zext i16 %4615 to i32
%4617 = load i32, i32* %23
%4618 = mul i32 %4616, %4617
store i32 %4618, i32* %356
%4619 = load i16, i16* %355
%4620 = zext i16 %4619 to i32
%4621 = load i16, i16* %25
%4622 = sext i16 %4621 to i32
%4623 = load i16, i16* %36
%4624 = sext i16 %4623 to i32
%4625 = add nsw i32 %4622, %4624
%4626 = icmp sge i32 %4620, %4625
br i1 %4626, label %4627, label %4738
4627: ; preds = %4604
%4628 = load i16, i16* %355
%4629 = zext i16 %4628 to i32
%4630 = load i16, i16* %25
%4631 = sext i16 %4630 to i32
%4632 = load i16, i16* %38
%4633 = sext i16 %4632 to i32
%4634 = add nsw i32 %4631, %4633
%4635 = icmp sle i32 %4629, %4634
br i1 %4635, label %4636, label %4738
4636: ; preds = %4627
store i16 0, i16* %43
br label %4637
4637: ; preds = %4734, %4636
%4638 = load i16, i16* %43
%4639 = sext i16 %4638 to i32
%4640 = load i16, i16* %29
%4641 = sext i16 %4640 to i32
%4642 = icmp slt i32 %4639, %4641
br i1 %4642, label %4643, label %4737
4643: ; preds = %4637
%4644 = load i16, i16* %39
%4645 = sext i16 %4644 to i32
%4646 = load i16, i16* %43
%4647 = sext i16 %4646 to i32
%4648 = add nsw i32 %4645, %4647
%4649 = trunc i32 %4648 to i16
store i16 %4649, i16* %357
%4650 = load i16, i16* %357
%4651 = zext i16 %4650 to i32
%4652 = load i8, i8* %31
%4653 = zext i8 %4652 to i32
%4654 = mul nsw i32 %4651, %4653
store i32 %4654, i32* %358
%4655 = load i16, i16* %357
%4656 = zext i16 %4655 to i32
%4657 = load i16, i16* %24
%4658 = sext i16 %4657 to i32
%4659 = load i16, i16* %35
%4660 = sext i16 %4659 to i32
%4661 = add nsw i32 %4658, %4660
%4662 = icmp sge i32 %4656, %4661
br i1 %4662, label %4663, label %4733
4663: ; preds = %4643
%4664 = load i16, i16* %357
%4665 = zext i16 %4664 to i32
%4666 = load i16, i16* %24
%4667 = sext i16 %4666 to i32
%4668 = load i16, i16* %37
%4669 = sext i16 %4668 to i32
%4670 = add nsw i32 %4667, %4669
%4671 = icmp sle i32 %4665, %4670
br i1 %4671, label %4672, label %4733
4672: ; preds = %4663
%4673 = load i16, i16* %43
%4674 = sext i16 %4673 to i32
%4675 = load i8, i8* %31
%4676 = zext i8 %4675 to i32
%4677 = mul nsw i32 %4674, %4676
store i32 %4677, i32* %359
%4678 = load i32, i32* %354
%4679 = load i32, i32* %359
%4680 = add i32 %4678, %4679
store i32 %4680, i32* %360
%4681 = load i32, i32* %356
%4682 = load i32, i32* %359
%4683 = add i32 %4681, %4682
store i32 %4683, i32* %361
%4684 = load i32, i32* %358
%4685 = load i32, i32* %356
%4686 = add i32 %4684, %4685
store i32 %4686, i32* %362
%4687 = load i8*, i8** %26
%4688 = load i32, i32* %360
%4689 = zext i32 %4688 to i64
%4690 = getelementptr inbounds i8, i8* %4687, i64 %4689
%4691 = load i8, i8* %4690
%4692 = sext i8 %4691 to i32
%4693 = load i8*, i8** %20
%4694 = load i32, i32* %362
%4695 = zext i32 %4694 to i64
%4696 = getelementptr inbounds i8, i8* %4693, i64 %4695
%4697 = load i8, i8* %4696
%4698 = sext i8 %4697 to i32
%4699 = sdiv i32 %4698, %4692
%4700 = trunc i32 %4699 to i8
store i8 %4700, i8* %4696
%4701 = load i8*, i8** %26
%4702 = load i32, i32* %360
%4703 = zext i32 %4702 to i64
%4704 = getelementptr inbounds i8, i8* %4701, i64 %4703
%4705 = getelementptr inbounds i8, i8* %4704, i64 1
%4706 = load i8, i8* %4705
%4707 = sext i8 %4706 to i32
%4708 = load i8*, i8** %20
%4709 = load i32, i32* %362
%4710 = zext i32 %4709 to i64
%4711 = getelementptr inbounds i8, i8* %4708, i64 %4710
%4712 = getelementptr inbounds i8, i8* %4711, i64 1
%4713 = load i8, i8* %4712
%4714 = sext i8 %4713 to i32
%4715 = sdiv i32 %4714, %4707
%4716 = trunc i32 %4715 to i8
store i8 %4716, i8* %4712
%4717 = load i8*, i8** %26
%4718 = load i32, i32* %360
%4719 = zext i32 %4718 to i64
%4720 = getelementptr inbounds i8, i8* %4717, i64 %4719
%4721 = getelementptr inbounds i8, i8* %4720, i64 2
%4722 = load i8, i8* %4721
%4723 = sext i8 %4722 to i32
%4724 = load i8*, i8** %20
%4725 = load i32, i32* %362
%4726 = zext i32 %4725 to i64
%4727 = getelementptr inbounds i8, i8* %4724, i64 %4726
%4728 = getelementptr inbounds i8, i8* %4727, i64 2
%4729 = load i8, i8* %4728
%4730 = sext i8 %4729 to i32
%4731 = sdiv i32 %4730, %4723
%4732 = trunc i32 %4731 to i8
store i8 %4732, i8* %4728
br label %4733
4733: ; preds = %4672, %4663, %4643
br label %4734
4734: ; preds = %4733
%4735 = load i16, i16* %43
%4736 = add i16 %4735, 1
store i16 %4736, i16* %43
br label %4637
4737: ; preds = %4637
br label %4738
4738: ; preds = %4737, %4627, %4604
br label %4739
4739: ; preds = %4738
%4740 = load i16, i16* %44
%4741 = add i16 %4740, 1
store i16 %4741, i16* %44
br label %4598
4742: ; preds = %4598
br label %4859
4743: ; preds = %4481
store i16 0, i16* %44
br label %4744
4744: ; preds = %4855, %4743
%4745 = load i16, i16* %44
%4746 = sext i16 %4745 to i32
%4747 = load i16, i16* %30
%4748 = sext i16 %4747 to i32
%4749 = icmp slt i32 %4746, %4748
br i1 %4749, label %4750, label %4858
4750: ; preds = %4744
%4751 = load i16, i16* %44
%4752 = sext i16 %4751 to i32
%4753 = load i32, i32* %45
%4754 = mul i32 %4752, %4753
store i32 %4754, i32* %363
%4755 = load i16, i16* %40
%4756 = sext i16 %4755 to i32
%4757 = load i16, i16* %44
%4758 = sext i16 %4757 to i32
%4759 = add nsw i32 %4756, %4758
%4760 = trunc i32 %4759 to i16
store i16 %4760, i16* %364
%4761 = load i16, i16* %364
%4762 = zext i16 %4761 to i32
%4763 = load i32, i32* %23
%4764 = mul i32 %4762, %4763
store i32 %4764, i32* %365
%4765 = load i16, i16* %364
%4766 = zext i16 %4765 to i32
%4767 = load i16, i16* %25
%4768 = sext i16 %4767 to i32
%4769 = load i16, i16* %36
%4770 = sext i16 %4769 to i32
%4771 = add nsw i32 %4768, %4770
%4772 = icmp sge i32 %4766, %4771
br i1 %4772, label %4773, label %4854
4773: ; preds = %4750
%4774 = load i16, i16* %364
%4775 = zext i16 %4774 to i32
%4776 = load i16, i16* %25
%4777 = sext i16 %4776 to i32
%4778 = load i16, i16* %38
%4779 = sext i16 %4778 to i32
%4780 = add nsw i32 %4777, %4779
%4781 = icmp sle i32 %4775, %4780
br i1 %4781, label %4782, label %4854
4782: ; preds = %4773
store i16 0, i16* %43
br label %4783
4783: ; preds = %4850, %4782
%4784 = load i16, i16* %43
%4785 = sext i16 %4784 to i32
%4786 = load i16, i16* %29
%4787 = sext i16 %4786 to i32
%4788 = icmp slt i32 %4785, %4787
br i1 %4788, label %4789, label %4853
4789: ; preds = %4783
%4790 = load i16, i16* %39
%4791 = sext i16 %4790 to i32
%4792 = load i16, i16* %43
%4793 = sext i16 %4792 to i32
%4794 = add nsw i32 %4791, %4793
%4795 = trunc i32 %4794 to i16
store i16 %4795, i16* %366
%4796 = load i16, i16* %366
%4797 = zext i16 %4796 to i32
%4798 = load i8, i8* %31
%4799 = zext i8 %4798 to i32
%4800 = mul nsw i32 %4797, %4799
store i32 %4800, i32* %367
%4801 = load i16, i16* %366
%4802 = zext i16 %4801 to i32
%4803 = load i16, i16* %24
%4804 = sext i16 %4803 to i32
%4805 = load i16, i16* %35
%4806 = sext i16 %4805 to i32
%4807 = add nsw i32 %4804, %4806
%4808 = icmp sge i32 %4802, %4807
br i1 %4808, label %4809, label %4849
4809: ; preds = %4789
%4810 = load i16, i16* %366
%4811 = zext i16 %4810 to i32
%4812 = load i16, i16* %24
%4813 = sext i16 %4812 to i32
%4814 = load i16, i16* %37
%4815 = sext i16 %4814 to i32
%4816 = add nsw i32 %4813, %4815
%4817 = icmp sle i32 %4811, %4816
br i1 %4817, label %4818, label %4849
4818: ; preds = %4809
%4819 = load i16, i16* %43
%4820 = sext i16 %4819 to i32
%4821 = load i8, i8* %31
%4822 = zext i8 %4821 to i32
%4823 = mul nsw i32 %4820, %4822
store i32 %4823, i32* %368
%4824 = load i32, i32* %363
%4825 = load i32, i32* %368
%4826 = add i32 %4824, %4825
store i32 %4826, i32* %369
%4827 = load i32, i32* %365
%4828 = load i32, i32* %368
%4829 = add i32 %4827, %4828
store i32 %4829, i32* %370
%4830 = load i32, i32* %367
%4831 = load i32, i32* %365
%4832 = add i32 %4830, %4831
store i32 %4832, i32* %371
%4833 = load i8*, i8** %26
%4834 = load i32, i32* %369
%4835 = zext i32 %4834 to i64
%4836 = getelementptr inbounds i8, i8* %4833, i64 %4835
%4837 = bitcast i8* %4836 to i16*
%4838 = load i16, i16* %4837
%4839 = zext i16 %4838 to i32
%4840 = load i8*, i8** %20
%4841 = load i32, i32* %371
%4842 = zext i32 %4841 to i64
%4843 = getelementptr inbounds i8, i8* %4840, i64 %4842
%4844 = bitcast i8* %4843 to i16*
%4845 = load i16, i16* %4844
%4846 = zext i16 %4845 to i32
%4847 = sdiv i32 %4846, %4839
%4848 = trunc i32 %4847 to i16
store i16 %4848, i16* %4844
br label %4849
4849: ; preds = %4818, %4809, %4789
br label %4850
4850: ; preds = %4849
%4851 = load i16, i16* %43
%4852 = add i16 %4851, 1
store i16 %4852, i16* %43
br label %4783
4853: ; preds = %4783
br label %4854
4854: ; preds = %4853, %4773, %4750
br label %4855
4855: ; preds = %4854
%4856 = load i16, i16* %44
%4857 = add i16 %4856, 1
store i16 %4857, i16* %44
br label %4744
4858: ; preds = %4744
br label %4859
4859: ; preds = %4481, %4858, %4742, %4596
br label %4860
4860: ; preds = %466, %4859, %4480, %4101, %3722, %3343, %2746, %2348, %1962, %1583, %1204, %825
br label %4861
4861: ; preds = %4860, %465
ret void
}

LLVM IR (-O2):
define void @c_blit_write(i8* %0, i16 signext %1, i16 signext %2, i32 %3, i16 signext %4, i16 signext %5, i8* %6, i16 signext %7, i16 signext %8, i16 signext %9, i16 signext %10, i8 zeroext %11, i8 zeroext %12, i8 zeroext %13, i32 %14, i16 signext %15, i16 signext %16, i16 signext %17, i16 signext %18) {
%20 = sext i16 %4 to i32
%21 = add i16 %7, %4
%22 = sext i16 %5 to i32
%23 = add i16 %8, %5
%24 = sext i16 %9 to i32
%25 = add i16 %9, %7
%26 = add i16 %10, %8
%27 = zext i8 %11 to i32
%28 = mul nsw i32 %27, %24
%29 = icmp ne i8 %12, 0
%30 = icmp slt i16 %7, %15
%31 = or i1 %29, %30
%32 = icmp sgt i16 %25, %17
%33 = or i1 %31, %32
%34 = icmp slt i16 %8, %16
%35 = or i1 %34, %33
%36 = icmp sgt i16 %26, %18
%37 = or i1 %36, %35
br i1 %37, label %69, label %38
38: ; preds = %19
%39 = icmp sgt i16 %10, 0
br i1 %39, label %40, label %2126
40: ; preds = %38
%41 = sext i16 %21 to i32
%42 = mul nsw i32 %27, %41
%43 = sext i16 %23 to i32
%44 = mul i32 %43, %3
%45 = add i32 %42, %44
%46 = zext i32 %45 to i64
%47 = getelementptr inbounds i8, i8* %0, i64 %46
%48 = zext i32 %28 to i64
%49 = zext i32 %3 to i64
%50 = add i16 %10, -1
%51 = and i16 %10, 3
%52 = icmp ult i16 %50, 3
br i1 %52, label %2114, label %53
53: ; preds = %40
%54 = and i16 %10, -4
br label %55
55: ; preds = %55, %53
%56 = phi i8* [ %6, %53 ], [ %65, %55 ]
%57 = phi i8* [ %47, %53 ], [ %66, %55 ]
%58 = phi i16 [ 0, %53 ], [ %67, %55 ]
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %57, i8* align 1 %56, i64 %48, i1 false)
%59 = getelementptr inbounds i8, i8* %56, i64 %48
%60 = getelementptr inbounds i8, i8* %57, i64 %49
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %60, i8* align 1 %59, i64 %48, i1 false)
%61 = getelementptr inbounds i8, i8* %59, i64 %48
%62 = getelementptr inbounds i8, i8* %60, i64 %49
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %62, i8* align 1 %61, i64 %48, i1 false)
%63 = getelementptr inbounds i8, i8* %61, i64 %48
%64 = getelementptr inbounds i8, i8* %62, i64 %49
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %64, i8* align 1 %63, i64 %48, i1 false)
%65 = getelementptr inbounds i8, i8* %63, i64 %48
%66 = getelementptr inbounds i8, i8* %64, i64 %49
%67 = add i16 %58, 4
%68 = icmp eq i16 %67, %54
br i1 %68, label %2114, label %55
69: ; preds = %19
switch i8 %12, label %2126 [
i8 0, label %70
i8 1, label %237
i8 2, label %414
i8 3, label %591
i8 4, label %768
i8 5, label %946
i8 6, label %1137
i8 7, label %1397
i8 8, label %1574
i8 9, label %1751
i8 10, label %1928
]
70: ; preds = %69
switch i8 %11, label %2126 [
i8 4, label %99
i8 3, label %85
i8 2, label %71
]
71: ; preds = %70
%72 = icmp sgt i16 %10, 0
br i1 %72, label %73, label %2126
73: ; preds = %71
%74 = sext i16 %16 to i32
%75 = add nsw i32 %74, %22
%76 = sext i16 %18 to i32
%77 = add nsw i32 %76, %22
%78 = icmp slt i16 %9, 1
%79 = sext i16 %15 to i32
%80 = add nsw i32 %79, %20
%81 = sext i16 %17 to i32
%82 = add nsw i32 %81, %20
%83 = zext i16 %10 to i32
%84 = zext i16 %9 to i64
br label %197
85: ; preds = %70
%86 = icmp sgt i16 %10, 0
br i1 %86, label %87, label %2126
87: ; preds = %85
%88 = sext i16 %16 to i32
%89 = add nsw i32 %88, %22
%90 = sext i16 %18 to i32
%91 = add nsw i32 %90, %22
%92 = icmp slt i16 %9, 1
%93 = sext i16 %15 to i32
%94 = add nsw i32 %93, %20
%95 = sext i16 %17 to i32
%96 = add nsw i32 %95, %20
%97 = zext i16 %10 to i32
%98 = zext i16 %9 to i64
br label %153
99: ; preds = %70
%100 = icmp sgt i16 %10, 0
br i1 %100, label %101, label %2126
101: ; preds = %99
%102 = sext i16 %16 to i32
%103 = add nsw i32 %102, %22
%104 = sext i16 %18 to i32
%105 = add nsw i32 %104, %22
%106 = icmp slt i16 %9, 1
%107 = sext i16 %15 to i32
%108 = add nsw i32 %107, %20
%109 = sext i16 %17 to i32
%110 = add nsw i32 %109, %20
%111 = zext i16 %10 to i32
%112 = zext i16 %9 to i64
br label %113
113: ; preds = %101, %150
%114 = phi i32 [ 0, %101 ], [ %151, %150 ]
%115 = mul i32 %28, %114
%116 = trunc i32 %114 to i16
%117 = add i16 %23, %116
%118 = zext i16 %117 to i32
%119 = mul i32 %118, %3
%120 = icmp sgt i32 %103, %118
%121 = icmp slt i32 %105, %118
%122 = select i1 %120, i1 true, i1 %121
%123 = or i1 %122, %106
br i1 %123, label %150, label %124
124: ; preds = %113, %146
%125 = phi i32 [ %147, %146 ], [ 0, %113 ]
%126 = phi i64 [ %148, %146 ], [ 0, %113 ]
%127 = trunc i32 %125 to i16
%128 = add i16 %21, %127
%129 = zext i16 %128 to i32
%130 = icmp sgt i32 %108, %129
%131 = icmp slt i32 %110, %129
%132 = select i1 %130, i1 true, i1 %131
br i1 %132, label %146, label %133
133: ; preds = %124
%134 = shl nuw nsw i32 %129, 2
%135 = trunc i64 %126 to i32
%136 = shl i32 %135, 2
%137 = add i32 %136, %115
%138 = add i32 %134, %119
%139 = zext i32 %137 to i64
%140 = getelementptr inbounds i8, i8* %6, i64 %139
%141 = bitcast i8* %140 to i32*
%142 = load i32, i32* %141
%143 = zext i32 %138 to i64
%144 = getelementptr inbounds i8, i8* %0, i64 %143
%145 = bitcast i8* %144 to i32*
store i32 %142, i32* %145
br label %146
146: ; preds = %133, %124
%147 = add nuw nsw i32 %125, 1
%148 = add nuw nsw i64 %126, 1
%149 = icmp eq i64 %148, %112
br i1 %149, label %150, label %124
150: ; preds = %146, %113
%151 = add nuw nsw i32 %114, 1
%152 = icmp eq i32 %151, %111
br i1 %152, label %2126, label %113
153: ; preds = %87, %194
%154 = phi i32 [ 0, %87 ], [ %195, %194 ]
%155 = mul i32 %28, %154
%156 = trunc i32 %154 to i16
%157 = add i16 %23, %156
%158 = zext i16 %157 to i32
%159 = mul i32 %158, %3
%160 = icmp sgt i32 %89, %158
%161 = icmp slt i32 %91, %158
%162 = select i1 %160, i1 true, i1 %161
%163 = or i1 %162, %92
br i1 %163, label %194, label %164
164: ; preds = %153, %190
%165 = phi i32 [ %191, %190 ], [ 0, %153 ]
%166 = phi i64 [ %192, %190 ], [ 0, %153 ]
%167 = trunc i32 %165 to i16
%168 = add i16 %21, %167
%169 = zext i16 %168 to i32
%170 = icmp sgt i32 %94, %169
%171 = icmp slt i32 %96, %169
%172 = select i1 %170, i1 true, i1 %171
br i1 %172, label %190, label %173
173: ; preds = %164
%174 = mul nuw nsw i32 %169, 3
%175 = trunc i64 %166 to i32
%176 = mul i32 %175, 3
%177 = add i32 %176, %155
%178 = add i32 %174, %159
%179 = zext i32 %177 to i64
%180 = getelementptr inbounds i8, i8* %6, i64 %179
%181 = load i8, i8* %180
%182 = zext i32 %178 to i64
%183 = getelementptr inbounds i8, i8* %0, i64 %182
store i8 %181, i8* %183
%184 = getelementptr inbounds i8, i8* %180, i64 1
%185 = load i8, i8* %184
%186 = getelementptr inbounds i8, i8* %183, i64 1
store i8 %185, i8* %186
%187 = getelementptr inbounds i8, i8* %180, i64 2
%188 = load i8, i8* %187
%189 = getelementptr inbounds i8, i8* %183, i64 2
store i8 %188, i8* %189
br label %190
190: ; preds = %173, %164
%191 = add nuw nsw i32 %165, 1
%192 = add nuw nsw i64 %166, 1
%193 = icmp eq i64 %192, %98
br i1 %193, label %194, label %164
194: ; preds = %190, %153
%195 = add nuw nsw i32 %154, 1
%196 = icmp eq i32 %195, %97
br i1 %196, label %2126, label %153
197: ; preds = %73, %234
%198 = phi i32 [ 0, %73 ], [ %235, %234 ]
%199 = mul i32 %28, %198
%200 = trunc i32 %198 to i16
%201 = add i16 %23, %200
%202 = zext i16 %201 to i32
%203 = mul i32 %202, %3
%204 = icmp sgt i32 %75, %202
%205 = icmp slt i32 %77, %202
%206 = select i1 %204, i1 true, i1 %205
%207 = or i1 %206, %78
br i1 %207, label %234, label %208
208: ; preds = %197, %230
%209 = phi i64 [ %231, %230 ], [ 0, %197 ]
%210 = phi i32 [ %232, %230 ], [ 0, %197 ]
%211 = trunc i32 %210 to i16
%212 = add i16 %21, %211
%213 = zext i16 %212 to i32
%214 = icmp sgt i32 %80, %213
%215 = icmp slt i32 %82, %213
%216 = select i1 %214, i1 true, i1 %215
br i1 %216, label %230, label %217
217: ; preds = %208
%218 = shl nuw nsw i32 %213, 1
%219 = trunc i64 %209 to i32
%220 = shl i32 %219, 1
%221 = add i32 %199, %220
%222 = add i32 %218, %203
%223 = zext i32 %221 to i64
%224 = getelementptr inbounds i8, i8* %6, i64 %223
%225 = bitcast i8* %224 to i16*
%226 = load i16, i16* %225
%227 = zext i32 %222 to i64
%228 = getelementptr inbounds i8, i8* %0, i64 %227
%229 = bitcast i8* %228 to i16*
store i16 %226, i16* %229
br label %230
230: ; preds = %217, %208
%231 = add nuw nsw i64 %209, 1
%232 = add nuw nsw i32 %210, 1
%233 = icmp eq i64 %231, %84
br i1 %233, label %234, label %208
234: ; preds = %230, %197
%235 = add nuw nsw i32 %198, 1
%236 = icmp eq i32 %235, %83
br i1 %236, label %2126, label %197
237: ; preds = %69
switch i8 %11, label %2126 [
i8 4, label %266
i8 3, label %252
i8 2, label %238
]
238: ; preds = %237
%239 = icmp sgt i16 %10, 0
br i1 %239, label %240, label %2126
240: ; preds = %238
%241 = sext i16 %16 to i32
%242 = add nsw i32 %241, %22
%243 = sext i16 %18 to i32
%244 = add nsw i32 %243, %22
%245 = icmp slt i16 %9, 1
%246 = sext i16 %15 to i32
%247 = add nsw i32 %246, %20
%248 = sext i16 %17 to i32
%249 = add nsw i32 %248, %20
%250 = zext i16 %10 to i32
%251 = zext i16 %9 to i64
br label %372
252: ; preds = %237
%253 = icmp sgt i16 %10, 0
br i1 %253, label %254, label %2126
254: ; preds = %252
%255 = sext i16 %16 to i32
%256 = add nsw i32 %255, %22
%257 = sext i16 %18 to i32
%258 = add nsw i32 %257, %22
%259 = icmp slt i16 %9, 1
%260 = sext i16 %15 to i32
%261 = add nsw i32 %260, %20
%262 = sext i16 %17 to i32
%263 = add nsw i32 %262, %20
%264 = zext i16 %10 to i32
%265 = zext i16 %9 to i64
br label %322
266: ; preds = %237
%267 = icmp sgt i16 %10, 0
br i1 %267, label %268, label %2126
268: ; preds = %266
%269 = sext i16 %16 to i32
%270 = add nsw i32 %269, %22
%271 = sext i16 %18 to i32
%272 = add nsw i32 %271, %22
%273 = icmp slt i16 %9, 1
%274 = sext i16 %15 to i32
%275 = add nsw i32 %274, %20
%276 = sext i16 %17 to i32
%277 = add nsw i32 %276, %20
%278 = zext i16 %10 to i32
%279 = zext i16 %9 to i64
br label %280
280: ; preds = %268, %319
%281 = phi i32 [ 0, %268 ], [ %320, %319 ]
%282 = mul i32 %28, %281
%283 = trunc i32 %281 to i16
%284 = add i16 %23, %283
%285 = zext i16 %284 to i32
%286 = mul i32 %285, %3
%287 = icmp sgt i32 %270, %285
%288 = icmp slt i32 %272, %285
%289 = select i1 %287, i1 true, i1 %288
%290 = or i1 %289, %273
br i1 %290, label %319, label %291
291: ; preds = %280, %315
%292 = phi i32 [ %316, %315 ], [ 0, %280 ]
%293 = phi i64 [ %317, %315 ], [ 0, %280 ]
%294 = trunc i32 %292 to i16
%295 = add i16 %21, %294
%296 = zext i16 %295 to i32
%297 = icmp sgt i32 %275, %296
%298 = icmp slt i32 %277, %296
%299 = select i1 %297, i1 true, i1 %298
br i1 %299, label %315, label %300
300: ; preds = %291
%301 = shl nuw nsw i32 %296, 2
%302 = trunc i64 %293 to i32
%303 = shl i32 %302, 2
%304 = add i32 %303, %282
%305 = add i32 %301, %286
%306 = zext i32 %304 to i64
%307 = getelementptr inbounds i8, i8* %6, i64 %306
%308 = bitcast i8* %307 to i32*
%309 = load i32, i32* %308
%310 = zext i32 %305 to i64
%311 = getelementptr inbounds i8, i8* %0, i64 %310
%312 = bitcast i8* %311 to i32*
%313 = load i32, i32* %312
%314 = xor i32 %313, %309
store i32 %314, i32* %312
br label %315
315: ; preds = %300, %291
%316 = add nuw nsw i32 %292, 1
%317 = add nuw nsw i64 %293, 1
%318 = icmp eq i64 %317, %279
br i1 %318, label %319, label %291
319: ; preds = %315, %280
%320 = add nuw nsw i32 %281, 1
%321 = icmp eq i32 %320, %278
br i1 %321, label %2126, label %280
322: ; preds = %254, %369
%323 = phi i32 [ 0, %254 ], [ %370, %369 ]
%324 = mul i32 %28, %323
%325 = trunc i32 %323 to i16
%326 = add i16 %23, %325
%327 = zext i16 %326 to i32
%328 = mul i32 %327, %3
%329 = icmp sgt i32 %256, %327
%330 = icmp slt i32 %258, %327
%331 = select i1 %329, i1 true, i1 %330
%332 = or i1 %331, %259
br i1 %332, label %369, label %333
333: ; preds = %322, %365
%334 = phi i32 [ %366, %365 ], [ 0, %322 ]
%335 = phi i64 [ %367, %365 ], [ 0, %322 ]
%336 = trunc i32 %334 to i16
%337 = add i16 %21, %336
%338 = zext i16 %337 to i32
%339 = icmp sgt i32 %261, %338
%340 = icmp slt i32 %263, %338
%341 = select i1 %339, i1 true, i1 %340
br i1 %341, label %365, label %342
342: ; preds = %333
%343 = mul nuw nsw i32 %338, 3
%344 = trunc i64 %335 to i32
%345 = mul i32 %344, 3
%346 = add i32 %345, %324
%347 = add i32 %343, %328
%348 = zext i32 %346 to i64
%349 = getelementptr inbounds i8, i8* %6, i64 %348
%350 = load i8, i8* %349
%351 = zext i32 %347 to i64
%352 = getelementptr inbounds i8, i8* %0, i64 %351
%353 = load i8, i8* %352
%354 = xor i8 %353, %350
store i8 %354, i8* %352
%355 = getelementptr inbounds i8, i8* %349, i64 1
%356 = load i8, i8* %355
%357 = getelementptr inbounds i8, i8* %352, i64 1
%358 = load i8, i8* %357
%359 = xor i8 %358, %356
store i8 %359, i8* %357
%360 = getelementptr inbounds i8, i8* %349, i64 2
%361 = load i8, i8* %360
%362 = getelementptr inbounds i8, i8* %352, i64 2
%363 = load i8, i8* %362
%364 = xor i8 %363, %361
store i8 %364, i8* %362
br label %365
365: ; preds = %342, %333
%366 = add nuw nsw i32 %334, 1
%367 = add nuw nsw i64 %335, 1
%368 = icmp eq i64 %367, %265
br i1 %368, label %369, label %333
369: ; preds = %365, %322
%370 = add nuw nsw i32 %323, 1
%371 = icmp eq i32 %370, %264
br i1 %371, label %2126, label %322
372: ; preds = %240, %411
%373 = phi i32 [ 0, %240 ], [ %412, %411 ]
%374 = mul i32 %28, %373
%375 = trunc i32 %373 to i16
%376 = add i16 %23, %375
%377 = zext i16 %376 to i32
%378 = mul i32 %377, %3
%379 = icmp sgt i32 %242, %377
%380 = icmp slt i32 %244, %377
%381 = select i1 %379, i1 true, i1 %380
%382 = or i1 %381, %245
br i1 %382, label %411, label %383
383: ; preds = %372, %407
%384 = phi i64 [ %408, %407 ], [ 0, %372 ]
%385 = phi i32 [ %409, %407 ], [ 0, %372 ]
%386 = trunc i32 %385 to i16
%387 = add i16 %21, %386
%388 = zext i16 %387 to i32
%389 = icmp sgt i32 %247, %388
%390 = icmp slt i32 %249, %388
%391 = select i1 %389, i1 true, i1 %390
br i1 %391, label %407, label %392
392: ; preds = %383
%393 = shl nuw nsw i32 %388, 1
%394 = trunc i64 %384 to i32
%395 = shl i32 %394, 1
%396 = add i32 %374, %395
%397 = add i32 %393, %378
%398 = zext i32 %396 to i64
%399 = getelementptr inbounds i8, i8* %6, i64 %398
%400 = bitcast i8* %399 to i16*
%401 = load i16, i16* %400
%402 = zext i32 %397 to i64
%403 = getelementptr inbounds i8, i8* %0, i64 %402
%404 = bitcast i8* %403 to i16*
%405 = load i16, i16* %404
%406 = xor i16 %405, %401
store i16 %406, i16* %404
br label %407
407: ; preds = %392, %383
%408 = add nuw nsw i64 %384, 1
%409 = add nuw nsw i32 %385, 1
%410 = icmp eq i64 %408, %251
br i1 %410, label %411, label %383
411: ; preds = %407, %372
%412 = add nuw nsw i32 %373, 1
%413 = icmp eq i32 %412, %250
br i1 %413, label %2126, label %372
414: ; preds = %69
switch i8 %11, label %2126 [
i8 4, label %443
i8 3, label %429
i8 2, label %415
]
415: ; preds = %414
%416 = icmp sgt i16 %10, 0
br i1 %416, label %417, label %2126
417: ; preds = %415
%418 = sext i16 %16 to i32
%419 = add nsw i32 %418, %22
%420 = sext i16 %18 to i32
%421 = add nsw i32 %420, %22
%422 = icmp slt i16 %9, 1
%423 = sext i16 %15 to i32
%424 = add nsw i32 %423, %20
%425 = sext i16 %17 to i32
%426 = add nsw i32 %425, %20
%427 = zext i16 %10 to i32
%428 = zext i16 %9 to i64
br label %549
429: ; preds = %414
%430 = icmp sgt i16 %10, 0
br i1 %430, label %431, label %2126
431: ; preds = %429
%432 = sext i16 %16 to i32
%433 = add nsw i32 %432, %22
%434 = sext i16 %18 to i32
%435 = add nsw i32 %434, %22
%436 = icmp slt i16 %9, 1
%437 = sext i16 %15 to i32
%438 = add nsw i32 %437, %20
%439 = sext i16 %17 to i32
%440 = add nsw i32 %439, %20
%441 = zext i16 %10 to i32
%442 = zext i16 %9 to i64
br label %499
443: ; preds = %414
%444 = icmp sgt i16 %10, 0
br i1 %444, label %445, label %2126
445: ; preds = %443
%446 = sext i16 %16 to i32
%447 = add nsw i32 %446, %22
%448 = sext i16 %18 to i32
%449 = add nsw i32 %448, %22
%450 = icmp slt i16 %9, 1
%451 = sext i16 %15 to i32
%452 = add nsw i32 %451, %20
%453 = sext i16 %17 to i32
%454 = add nsw i32 %453, %20
%455 = zext i16 %10 to i32
%456 = zext i16 %9 to i64
br label %457
457: ; preds = %445, %496
%458 = phi i32 [ 0, %445 ], [ %497, %496 ]
%459 = mul i32 %28, %458
%460 = trunc i32 %458 to i16
%461 = add i16 %23, %460
%462 = zext i16 %461 to i32
%463 = mul i32 %462, %3
%464 = icmp sgt i32 %447, %462
%465 = icmp slt i32 %449, %462
%466 = select i1 %464, i1 true, i1 %465
%467 = or i1 %466, %450
br i1 %467, label %496, label %468
468: ; preds = %457, %492
%469 = phi i32 [ %493, %492 ], [ 0, %457 ]
%470 = phi i64 [ %494, %492 ], [ 0, %457 ]
%471 = trunc i32 %469 to i16
%472 = add i16 %21, %471
%473 = zext i16 %472 to i32
%474 = icmp sgt i32 %452, %473
%475 = icmp slt i32 %454, %473
%476 = select i1 %474, i1 true, i1 %475
br i1 %476, label %492, label %477
477: ; preds = %468
%478 = shl nuw nsw i32 %473, 2
%479 = trunc i64 %470 to i32
%480 = shl i32 %479, 2
%481 = add i32 %480, %459
%482 = add i32 %478, %463
%483 = zext i32 %481 to i64
%484 = getelementptr inbounds i8, i8* %6, i64 %483
%485 = bitcast i8* %484 to i32*
%486 = load i32, i32* %485
%487 = zext i32 %482 to i64
%488 = getelementptr inbounds i8, i8* %0, i64 %487
%489 = bitcast i8* %488 to i32*
%490 = load i32, i32* %489
%491 = or i32 %490, %486
store i32 %491, i32* %489
br label %492
492: ; preds = %477, %468
%493 = add nuw nsw i32 %469, 1
%494 = add nuw nsw i64 %470, 1
%495 = icmp eq i64 %494, %456
br i1 %495, label %496, label %468
496: ; preds = %492, %457
%497 = add nuw nsw i32 %458, 1
%498 = icmp eq i32 %497, %455
br i1 %498, label %2126, label %457
499: ; preds = %431, %546
%500 = phi i32 [ 0, %431 ], [ %547, %546 ]
%501 = mul i32 %28, %500
%502 = trunc i32 %500 to i16
%503 = add i16 %23, %502
%504 = zext i16 %503 to i32
%505 = mul i32 %504, %3
%506 = icmp sgt i32 %433, %504
%507 = icmp slt i32 %435, %504
%508 = select i1 %506, i1 true, i1 %507
%509 = or i1 %508, %436
br i1 %509, label %546, label %510
510: ; preds = %499, %542
%511 = phi i32 [ %543, %542 ], [ 0, %499 ]
%512 = phi i64 [ %544, %542 ], [ 0, %499 ]
%513 = trunc i32 %511 to i16
%514 = add i16 %21, %513
%515 = zext i16 %514 to i32
%516 = icmp sgt i32 %438, %515
%517 = icmp slt i32 %440, %515
%518 = select i1 %516, i1 true, i1 %517
br i1 %518, label %542, label %519
519: ; preds = %510
%520 = mul nuw nsw i32 %515, 3
%521 = trunc i64 %512 to i32
%522 = mul i32 %521, 3
%523 = add i32 %522, %501
%524 = add i32 %520, %505
%525 = zext i32 %523 to i64
%526 = getelementptr inbounds i8, i8* %6, i64 %525
%527 = load i8, i8* %526
%528 = zext i32 %524 to i64
%529 = getelementptr inbounds i8, i8* %0, i64 %528
%530 = load i8, i8* %529
%531 = or i8 %530, %527
store i8 %531, i8* %529
%532 = getelementptr inbounds i8, i8* %526, i64 1
%533 = load i8, i8* %532
%534 = getelementptr inbounds i8, i8* %529, i64 1
%535 = load i8, i8* %534
%536 = or i8 %535, %533
store i8 %536, i8* %534
%537 = getelementptr inbounds i8, i8* %526, i64 2
%538 = load i8, i8* %537
%539 = getelementptr inbounds i8, i8* %529, i64 2
%540 = load i8, i8* %539
%541 = or i8 %540, %538
store i8 %541, i8* %539
br label %542
542: ; preds = %519, %510
%543 = add nuw nsw i32 %511, 1
%544 = add nuw nsw i64 %512, 1
%545 = icmp eq i64 %544, %442
br i1 %545, label %546, label %510
546: ; preds = %542, %499
%547 = add nuw nsw i32 %500, 1
%548 = icmp eq i32 %547, %441
br i1 %548, label %2126, label %499
549: ; preds = %417, %588
%550 = phi i32 [ 0, %417 ], [ %589, %588 ]
%551 = mul i32 %28, %550
%552 = trunc i32 %550 to i16
%553 = add i16 %23, %552
%554 = zext i16 %553 to i32
%555 = mul i32 %554, %3
%556 = icmp sgt i32 %419, %554
%557 = icmp slt i32 %421, %554
%558 = select i1 %556, i1 true, i1 %557
%559 = or i1 %558, %422
br i1 %559, label %588, label %560
560: ; preds = %549, %584
%561 = phi i64 [ %585, %584 ], [ 0, %549 ]
%562 = phi i32 [ %586, %584 ], [ 0, %549 ]
%563 = trunc i32 %562 to i16
%564 = add i16 %21, %563
%565 = zext i16 %564 to i32
%566 = icmp sgt i32 %424, %565
%567 = icmp slt i32 %426, %565
%568 = select i1 %566, i1 true, i1 %567
br i1 %568, label %584, label %569
569: ; preds = %560
%570 = shl nuw nsw i32 %565, 1
%571 = trunc i64 %561 to i32
%572 = shl i32 %571, 1
%573 = add i32 %551, %572
%574 = add i32 %570, %555
%575 = zext i32 %573 to i64
%576 = getelementptr inbounds i8, i8* %6, i64 %575
%577 = bitcast i8* %576 to i16*
%578 = load i16, i16* %577
%579 = zext i32 %574 to i64
%580 = getelementptr inbounds i8, i8* %0, i64 %579
%581 = bitcast i8* %580 to i16*
%582 = load i16, i16* %581
%583 = or i16 %582, %578
store i16 %583, i16* %581
br label %584
584: ; preds = %569, %560
%585 = add nuw nsw i64 %561, 1
%586 = add nuw nsw i32 %562, 1
%587 = icmp eq i64 %585, %428
br i1 %587, label %588, label %560
588: ; preds = %584, %549
%589 = add nuw nsw i32 %550, 1
%590 = icmp eq i32 %589, %427
br i1 %590, label %2126, label %549
591: ; preds = %69
switch i8 %11, label %2126 [
i8 4, label %620
i8 3, label %606
i8 2, label %592
]
592: ; preds = %591
%593 = icmp sgt i16 %10, 0
br i1 %593, label %594, label %2126
594: ; preds = %592
%595 = sext i16 %16 to i32
%596 = add nsw i32 %595, %22
%597 = sext i16 %18 to i32
%598 = add nsw i32 %597, %22
%599 = icmp slt i16 %9, 1
%600 = sext i16 %15 to i32
%601 = add nsw i32 %600, %20
%602 = sext i16 %17 to i32
%603 = add nsw i32 %602, %20
%604 = zext i16 %10 to i32
%605 = zext i16 %9 to i64
br label %726
606: ; preds = %591
%607 = icmp sgt i16 %10, 0
br i1 %607, label %608, label %2126
608: ; preds = %606
%609 = sext i16 %16 to i32
%610 = add nsw i32 %609, %22
%611 = sext i16 %18 to i32
%612 = add nsw i32 %611, %22
%613 = icmp slt i16 %9, 1
%614 = sext i16 %15 to i32
%615 = add nsw i32 %614, %20
%616 = sext i16 %17 to i32
%617 = add nsw i32 %616, %20
%618 = zext i16 %10 to i32
%619 = zext i16 %9 to i64
br label %676
620: ; preds = %591
%621 = icmp sgt i16 %10, 0
br i1 %621, label %622, label %2126
622: ; preds = %620
%623 = sext i16 %16 to i32
%624 = add nsw i32 %623, %22
%625 = sext i16 %18 to i32
%626 = add nsw i32 %625, %22
%627 = icmp slt i16 %9, 1
%628 = sext i16 %15 to i32
%629 = add nsw i32 %628, %20
%630 = sext i16 %17 to i32
%631 = add nsw i32 %630, %20
%632 = zext i16 %10 to i32
%633 = zext i16 %9 to i64
br label %634
634: ; preds = %622, %673
%635 = phi i32 [ 0, %622 ], [ %674, %673 ]
%636 = mul i32 %28, %635
%637 = trunc i32 %635 to i16
%638 = add i16 %23, %637
%639 = zext i16 %638 to i32
%640 = mul i32 %639, %3
%641 = icmp sgt i32 %624, %639
%642 = icmp slt i32 %626, %639
%643 = select i1 %641, i1 true, i1 %642
%644 = or i1 %643, %627
br i1 %644, label %673, label %645
645: ; preds = %634, %669
%646 = phi i32 [ %670, %669 ], [ 0, %634 ]
%647 = phi i64 [ %671, %669 ], [ 0, %634 ]
%648 = trunc i32 %646 to i16
%649 = add i16 %21, %648
%650 = zext i16 %649 to i32
%651 = icmp sgt i32 %629, %650
%652 = icmp slt i32 %631, %650
%653 = select i1 %651, i1 true, i1 %652
br i1 %653, label %669, label %654
654: ; preds = %645
%655 = shl nuw nsw i32 %650, 2
%656 = trunc i64 %647 to i32
%657 = shl i32 %656, 2
%658 = add i32 %657, %636
%659 = add i32 %655, %640
%660 = zext i32 %658 to i64
%661 = getelementptr inbounds i8, i8* %6, i64 %660
%662 = bitcast i8* %661 to i32*
%663 = load i32, i32* %662
%664 = zext i32 %659 to i64
%665 = getelementptr inbounds i8, i8* %0, i64 %664
%666 = bitcast i8* %665 to i32*
%667 = load i32, i32* %666
%668 = and i32 %667, %663
store i32 %668, i32* %666
br label %669
669: ; preds = %654, %645
%670 = add nuw nsw i32 %646, 1
%671 = add nuw nsw i64 %647, 1
%672 = icmp eq i64 %671, %633
br i1 %672, label %673, label %645
673: ; preds = %669, %634
%674 = add nuw nsw i32 %635, 1
%675 = icmp eq i32 %674, %632
br i1 %675, label %2126, label %634
676: ; preds = %608, %723
%677 = phi i32 [ 0, %608 ], [ %724, %723 ]
%678 = mul i32 %28, %677
%679 = trunc i32 %677 to i16
%680 = add i16 %23, %679
%681 = zext i16 %680 to i32
%682 = mul i32 %681, %3
%683 = icmp sgt i32 %610, %681
%684 = icmp slt i32 %612, %681
%685 = select i1 %683, i1 true, i1 %684
%686 = or i1 %685, %613
br i1 %686, label %723, label %687
687: ; preds = %676, %719
%688 = phi i32 [ %720, %719 ], [ 0, %676 ]
%689 = phi i64 [ %721, %719 ], [ 0, %676 ]
%690 = trunc i32 %688 to i16
%691 = add i16 %21, %690
%692 = zext i16 %691 to i32
%693 = icmp sgt i32 %615, %692
%694 = icmp slt i32 %617, %692
%695 = select i1 %693, i1 true, i1 %694
br i1 %695, label %719, label %696
696: ; preds = %687
%697 = mul nuw nsw i32 %692, 3
%698 = trunc i64 %689 to i32
%699 = mul i32 %698, 3
%700 = add i32 %699, %678
%701 = add i32 %697, %682
%702 = zext i32 %700 to i64
%703 = getelementptr inbounds i8, i8* %6, i64 %702
%704 = load i8, i8* %703
%705 = zext i32 %701 to i64
%706 = getelementptr inbounds i8, i8* %0, i64 %705
%707 = load i8, i8* %706
%708 = and i8 %707, %704
store i8 %708, i8* %706
%709 = getelementptr inbounds i8, i8* %703, i64 1
%710 = load i8, i8* %709
%711 = getelementptr inbounds i8, i8* %706, i64 1
%712 = load i8, i8* %711
%713 = and i8 %712, %710
store i8 %713, i8* %711
%714 = getelementptr inbounds i8, i8* %703, i64 2
%715 = load i8, i8* %714
%716 = getelementptr inbounds i8, i8* %706, i64 2
%717 = load i8, i8* %716
%718 = and i8 %717, %715
store i8 %718, i8* %716
br label %719
719: ; preds = %696, %687
%720 = add nuw nsw i32 %688, 1
%721 = add nuw nsw i64 %689, 1
%722 = icmp eq i64 %721, %619
br i1 %722, label %723, label %687
723: ; preds = %719, %676
%724 = add nuw nsw i32 %677, 1
%725 = icmp eq i32 %724, %618
br i1 %725, label %2126, label %676
726: ; preds = %594, %765
%727 = phi i32 [ 0, %594 ], [ %766, %765 ]
%728 = mul i32 %28, %727
%729 = trunc i32 %727 to i16
%730 = add i16 %23, %729
%731 = zext i16 %730 to i32
%732 = mul i32 %731, %3
%733 = icmp sgt i32 %596, %731
%734 = icmp slt i32 %598, %731
%735 = select i1 %733, i1 true, i1 %734
%736 = or i1 %735, %599
br i1 %736, label %765, label %737
737: ; preds = %726, %761
%738 = phi i64 [ %762, %761 ], [ 0, %726 ]
%739 = phi i32 [ %763, %761 ], [ 0, %726 ]
%740 = trunc i32 %739 to i16
%741 = add i16 %21, %740
%742 = zext i16 %741 to i32
%743 = icmp sgt i32 %601, %742
%744 = icmp slt i32 %603, %742
%745 = select i1 %743, i1 true, i1 %744
br i1 %745, label %761, label %746
746: ; preds = %737
%747 = shl nuw nsw i32 %742, 1
%748 = trunc i64 %738 to i32
%749 = shl i32 %748, 1
%750 = add i32 %728, %749
%751 = add i32 %747, %732
%752 = zext i32 %750 to i64
%753 = getelementptr inbounds i8, i8* %6, i64 %752
%754 = bitcast i8* %753 to i16*
%755 = load i16, i16* %754
%756 = zext i32 %751 to i64
%757 = getelementptr inbounds i8, i8* %0, i64 %756
%758 = bitcast i8* %757 to i16*
%759 = load i16, i16* %758
%760 = and i16 %759, %755
store i16 %760, i16* %758
br label %761
761: ; preds = %746, %737
%762 = add nuw nsw i64 %738, 1
%763 = add nuw nsw i32 %739, 1
%764 = icmp eq i64 %762, %605
br i1 %764, label %765, label %737
765: ; preds = %761, %726
%766 = add nuw nsw i32 %727, 1
%767 = icmp eq i32 %766, %604
br i1 %767, label %2126, label %726
768: ; preds = %69
switch i8 %11, label %2126 [
i8 4, label %798
i8 3, label %784
i8 2, label %769
]
769: ; preds = %768
%770 = icmp sgt i16 %10, 0
br i1 %770, label %771, label %2126
771: ; preds = %769
%772 = sext i16 %16 to i32
%773 = add nsw i32 %772, %22
%774 = sext i16 %18 to i32
%775 = add nsw i32 %774, %22
%776 = icmp slt i16 %9, 1
%777 = sext i16 %15 to i32
%778 = add nsw i32 %777, %20
%779 = sext i16 %17 to i32
%780 = add nsw i32 %779, %20
%781 = trunc i32 %14 to i16
%782 = zext i16 %10 to i32
%783 = zext i16 %9 to i64
br label %904
784: ; preds = %768
%785 = icmp sgt i16 %10, 0
br i1 %785, label %786, label %2126
786: ; preds = %784
%787 = sext i16 %16 to i32
%788 = add nsw i32 %787, %22
%789 = sext i16 %18 to i32
%790 = add nsw i32 %789, %22
%791 = icmp slt i16 %9, 1
%792 = sext i16 %15 to i32
%793 = add nsw i32 %792, %20
%794 = sext i16 %17 to i32
%795 = add nsw i32 %794, %20
%796 = zext i16 %10 to i32
%797 = zext i16 %9 to i64
br label %855
798: ; preds = %768
%799 = icmp sgt i16 %10, 0
br i1 %799, label %800, label %2126
800: ; preds = %798
%801 = sext i16 %16 to i32
%802 = add nsw i32 %801, %22
%803 = sext i16 %18 to i32
%804 = add nsw i32 %803, %22
%805 = icmp slt i16 %9, 1
%806 = sext i16 %15 to i32
%807 = add nsw i32 %806, %20
%808 = sext i16 %17 to i32
%809 = add nsw i32 %808, %20
%810 = zext i16 %10 to i32
%811 = zext i16 %9 to i64
br label %812
812: ; preds = %800, %852
%813 = phi i32 [ 0, %800 ], [ %853, %852 ]
%814 = mul i32 %28, %813
%815 = trunc i32 %813 to i16
%816 = add i16 %23, %815
%817 = zext i16 %816 to i32
%818 = mul i32 %817, %3
%819 = icmp sgt i32 %802, %817
%820 = icmp slt i32 %804, %817
%821 = select i1 %819, i1 true, i1 %820
%822 = or i1 %821, %805
br i1 %822, label %852, label %823
823: ; preds = %812, %848
%824 = phi i32 [ %849, %848 ], [ 0, %812 ]
%825 = phi i64 [ %850, %848 ], [ 0, %812 ]
%826 = trunc i32 %824 to i16
%827 = add i16 %21, %826
%828 = zext i16 %827 to i32
%829 = shl nuw nsw i32 %828, 2
%830 = icmp sgt i32 %807, %828
%831 = icmp slt i32 %809, %828
%832 = select i1 %830, i1 true, i1 %831
br i1 %832, label %848, label %833
833: ; preds = %823
%834 = trunc i64 %825 to i32
%835 = shl i32 %834, 2
%836 = add i32 %835, %814
%837 = zext i32 %836 to i64
%838 = getelementptr inbounds i8, i8* %6, i64 %837
%839 = bitcast i8* %838 to i32*
%840 = load i32, i32* %839
%841 = xor i32 %840, %14
%842 = icmp ult i32 %841, 256
br i1 %842, label %848, label %843
843: ; preds = %833
%844 = add i32 %829, %818
%845 = zext i32 %844 to i64
%846 = getelementptr inbounds i8, i8* %0, i64 %845
%847 = bitcast i8* %846 to i32*
store i32 %840, i32* %847
br label %848
848: ; preds = %833, %843, %823
%849 = add nuw nsw i32 %824, 1
%850 = add nuw nsw i64 %825, 1
%851 = icmp eq i64 %850, %811
br i1 %851, label %852, label %823
852: ; preds = %848, %812
%853 = add nuw nsw i32 %813, 1
%854 = icmp eq i32 %853, %810
br i1 %854, label %2126, label %812
855: ; preds = %786, %901
%856 = phi i32 [ 0, %786 ], [ %902, %901 ]
%857 = mul i32 %28, %856
%858 = trunc i32 %856 to i16
%859 = add i16 %23, %858
%860 = zext i16 %859 to i32
%861 = mul i32 %860, %3
%862 = icmp sgt i32 %788, %860
%863 = icmp slt i32 %790, %860
%864 = select i1 %862, i1 true, i1 %863
%865 = or i1 %864, %791
br i1 %865, label %901, label %866
866: ; preds = %855, %897
%867 = phi i32 [ %898, %897 ], [ 0, %855 ]
%868 = phi i64 [ %899, %897 ], [ 0, %855 ]
%869 = trunc i32 %867 to i16
%870 = add i16 %21, %869
%871 = zext i16 %870 to i32
%872 = mul nuw nsw i32 %871, 3
%873 = icmp sgt i32 %793, %871
%874 = icmp slt i32 %795, %871
%875 = select i1 %873, i1 true, i1 %874
br i1 %875, label %897, label %876
876: ; preds = %866
%877 = trunc i64 %868 to i32
%878 = mul i32 %877, 3
%879 = add i32 %878, %857
%880 = zext i32 %879 to i64
%881 = getelementptr inbounds i8, i8* %6, i64 %880
%882 = bitcast i8* %881 to i32*
%883 = load i32, i32* %882
%884 = xor i32 %883, %14
%885 = icmp ult i32 %884, 256
br i1 %885, label %897, label %886
886: ; preds = %876
%887 = trunc i32 %883 to i8
%888 = add i32 %872, %861
%889 = zext i32 %888 to i64
%890 = getelementptr inbounds i8, i8* %0, i64 %889
store i8 %887, i8* %890
%891 = getelementptr inbounds i8, i8* %881, i64 1
%892 = load i8, i8* %891
%893 = getelementptr inbounds i8, i8* %890, i64 1
store i8 %892, i8* %893
%894 = getelementptr inbounds i8, i8* %881, i64 2
%895 = load i8, i8* %894
%896 = getelementptr inbounds i8, i8* %890, i64 2
store i8 %895, i8* %896
br label %897
897: ; preds = %876, %886, %866
%898 = add nuw nsw i32 %867, 1
%899 = add nuw nsw i64 %868, 1
%900 = icmp eq i64 %899, %797
br i1 %900, label %901, label %866
901: ; preds = %897, %855
%902 = add nuw nsw i32 %856, 1
%903 = icmp eq i32 %902, %796
br i1 %903, label %2126, label %855
904: ; preds = %771, %943
%905 = phi i32 [ 0, %771 ], [ %944, %943 ]
%906 = mul i32 %28, %905
%907 = trunc i32 %905 to i16
%908 = add i16 %23, %907
%909 = zext i16 %908 to i32
%910 = mul i32 %909, %3
%911 = icmp sgt i32 %773, %909
%912 = icmp slt i32 %775, %909
%913 = select i1 %911, i1 true, i1 %912
%914 = or i1 %913, %776
br i1 %914, label %943, label %915
915: ; preds = %904, %939
%916 = phi i64 [ %940, %939 ], [ 0, %904 ]
%917 = phi i32 [ %941, %939 ], [ 0, %904 ]
%918 = trunc i32 %917 to i16
%919 = add i16 %21, %918
%920 = zext i16 %919 to i32
%921 = shl nuw nsw i32 %920, 1
%922 = icmp sgt i32 %778, %920
%923 = icmp slt i32 %780, %920
%924 = select i1 %922, i1 true, i1 %923
br i1 %924, label %939, label %925
925: ; preds = %915
%926 = trunc i64 %916 to i32
%927 = shl i32 %926, 1
%928 = add i32 %906, %927
%929 = zext i32 %928 to i64
%930 = getelementptr inbounds i8, i8* %6, i64 %929
%931 = bitcast i8* %930 to i16*
%932 = load i16, i16* %931
%933 = icmp eq i16 %932, %781
br i1 %933, label %939, label %934
934: ; preds = %925
%935 = add i32 %921, %910
%936 = zext i32 %935 to i64
%937 = getelementptr inbounds i8, i8* %0, i64 %936
%938 = bitcast i8* %937 to i16*
store i16 %932, i16* %938
br label %939
939: ; preds = %925, %934, %915
%940 = add nuw nsw i64 %916, 1
%941 = add nuw nsw i32 %917, 1
%942 = icmp eq i64 %940, %783
br i1 %942, label %943, label %915
943: ; preds = %939, %904
%944 = add nuw nsw i32 %905, 1
%945 = icmp eq i32 %944, %782
br i1 %945, label %2126, label %904
946: ; preds = %69
switch i8 %11, label %2126 [
i8 4, label %977
i8 3, label %962
i8 2, label %947
]
947: ; preds = %946
%948 = icmp sgt i16 %10, 0
br i1 %948, label %949, label %2126
949: ; preds = %947
%950 = sext i16 %16 to i32
%951 = add nsw i32 %950, %22
%952 = sext i16 %18 to i32
%953 = add nsw i32 %952, %22
%954 = icmp slt i16 %9, 1
%955 = sext i16 %15 to i32
%956 = add nsw i32 %955, %20
%957 = sext i16 %17 to i32
%958 = add nsw i32 %957, %20
%959 = trunc i32 %14 to i16
%960 = zext i16 %10 to i32
%961 = zext i16 %9 to i64
br label %1088
962: ; preds = %946
%963 = icmp sgt i16 %10, 0
br i1 %963, label %964, label %2126
964: ; preds = %962
%965 = sext i16 %16 to i32
%966 = add nsw i32 %965, %22
%967 = sext i16 %18 to i32
%968 = add nsw i32 %967, %22
%969 = icmp slt i16 %9, 1
%970 = sext i16 %15 to i32
%971 = add nsw i32 %970, %20
%972 = sext i16 %17 to i32
%973 = add nsw i32 %972, %20
%974 = and i32 %14, -256
%975 = zext i16 %10 to i32
%976 = zext i16 %9 to i64
br label %1035
977: ; preds = %946
%978 = icmp sgt i16 %10, 0
br i1 %978, label %979, label %2126
979: ; preds = %977
%980 = sext i16 %16 to i32
%981 = add nsw i32 %980, %22
%982 = sext i16 %18 to i32
%983 = add nsw i32 %982, %22
%984 = icmp slt i16 %9, 1
%985 = sext i16 %15 to i32
%986 = add nsw i32 %985, %20
%987 = sext i16 %17 to i32
%988 = add nsw i32 %987, %20
%989 = zext i16 %10 to i32
%990 = zext i16 %9 to i64
br label %991
991: ; preds = %979, %1032
%992 = phi i32 [ 0, %979 ], [ %1033, %1032 ]
%993 = mul i32 %28, %992
%994 = trunc i32 %992 to i16
%995 = add i16 %23, %994
%996 = zext i16 %995 to i32
%997 = mul i32 %996, %3
%998 = icmp sgt i32 %981, %996
%999 = icmp slt i32 %983, %996
%1000 = select i1 %998, i1 true, i1 %999
%1001 = or i1 %1000, %984
br i1 %1001, label %1032, label %1002
1002: ; preds = %991, %1028
%1003 = phi i32 [ %1029, %1028 ], [ 0, %991 ]
%1004 = phi i64 [ %1030, %1028 ], [ 0, %991 ]
%1005 = trunc i32 %1003 to i16
%1006 = add i16 %21, %1005
%1007 = zext i16 %1006 to i32
%1008 = icmp sgt i32 %986, %1007
%1009 = icmp slt i32 %988, %1007
%1010 = select i1 %1008, i1 true, i1 %1009
br i1 %1010, label %1028, label %1011
1011: ; preds = %1002
%1012 = shl nuw nsw i32 %1007, 2
%1013 = add i32 %1012, %997
%1014 = zext i32 %1013 to i64
%1015 = getelementptr inbounds i8, i8* %0, i64 %1014
%1016 = bitcast i8* %1015 to i32*
%1017 = load i32, i32* %1016
%1018 = xor i32 %1017, %14
%1019 = icmp ult i32 %1018, 256
br i1 %1019, label %1020, label %1028
1020: ; preds = %1011
%1021 = trunc i64 %1004 to i32
%1022 = shl i32 %1021, 2
%1023 = add i32 %1022, %993
%1024 = zext i32 %1023 to i64
%1025 = getelementptr inbounds i8, i8* %6, i64 %1024
%1026 = bitcast i8* %1025 to i32*
%1027 = load i32, i32* %1026
store i32 %1027, i32* %1016
br label %1028
1028: ; preds = %1011, %1020, %1002
%1029 = add nuw nsw i32 %1003, 1
%1030 = add nuw nsw i64 %1004, 1
%1031 = icmp eq i64 %1030, %990
br i1 %1031, label %1032, label %1002
1032: ; preds = %1028, %991
%1033 = add nuw nsw i32 %992, 1
%1034 = icmp eq i32 %1033, %989
br i1 %1034, label %2126, label %991
1035: ; preds = %964, %1085
%1036 = phi i32 [ 0, %964 ], [ %1086, %1085 ]
%1037 = mul i32 %28, %1036
%1038 = trunc i32 %1036 to i16
%1039 = add i16 %23, %1038
%1040 = zext i16 %1039 to i32
%1041 = mul i32 %1040, %3
%1042 = icmp sgt i32 %966, %1040
%1043 = icmp slt i32 %968, %1040
%1044 = select i1 %1042, i1 true, i1 %1043
%1045 = or i1 %1044, %969
br i1 %1045, label %1085, label %1046
1046: ; preds = %1035, %1081
%1047 = phi i32 [ %1082, %1081 ], [ 0, %1035 ]
%1048 = phi i64 [ %1083, %1081 ], [ 0, %1035 ]
%1049 = trunc i32 %1047 to i16
%1050 = add i16 %21, %1049
%1051 = zext i16 %1050 to i32
%1052 = mul nuw nsw i32 %1051, 3
%1053 = icmp sgt i32 %971, %1051
%1054 = icmp slt i32 %973, %1051
%1055 = select i1 %1053, i1 true, i1 %1054
br i1 %1055, label %1081, label %1056
1056: ; preds = %1046
%1057 = trunc i64 %1048 to i32
%1058 = mul i32 %1057, 3
%1059 = add i32 %1058, %1041
%1060 = zext i32 %1052 to i64
%1061 = getelementptr inbounds i8, i8* %0, i64 %1060
%1062 = zext i32 %1059 to i64
%1063 = getelementptr inbounds i8, i8* %1061, i64 %1062
%1064 = bitcast i8* %1063 to i32*
%1065 = load i32, i32* %1064
%1066 = icmp eq i32 %1065, %974
br i1 %1066, label %1067, label %1081
1067: ; preds = %1056
%1068 = add i32 %1052, %1041
%1069 = add i32 %1058, %1037
%1070 = zext i32 %1069 to i64
%1071 = getelementptr inbounds i8, i8* %6, i64 %1070
%1072 = load i8, i8* %1071
%1073 = zext i32 %1068 to i64
%1074 = getelementptr inbounds i8, i8* %0, i64 %1073
store i8 %1072, i8* %1074
%1075 = getelementptr inbounds i8, i8* %1071, i64 1
%1076 = load i8, i8* %1075
%1077 = getelementptr inbounds i8, i8* %1074, i64 1
store i8 %1076, i8* %1077
%1078 = getelementptr inbounds i8, i8* %1071, i64 2
%1079 = load i8, i8* %1078
%1080 = getelementptr inbounds i8, i8* %1074, i64 2
store i8 %1079, i8* %1080
br label %1081
1081: ; preds = %1056, %1067, %1046
%1082 = add nuw nsw i32 %1047, 1
%1083 = add nuw nsw i64 %1048, 1
%1084 = icmp eq i64 %1083, %976
br i1 %1084, label %1085, label %1046
1085: ; preds = %1081, %1035
%1086 = add nuw nsw i32 %1036, 1
%1087 = icmp eq i32 %1086, %975
br i1 %1087, label %2126, label %1035
1088: ; preds = %949, %1134
%1089 = phi i32 [ 0, %949 ], [ %1135, %1134 ]
%1090 = mul i32 %28, %1089
%1091 = trunc i32 %1089 to i16
%1092 = add i16 %23, %1091
%1093 = zext i16 %1092 to i32
%1094 = mul i32 %1093, %3
%1095 = icmp sgt i32 %951, %1093
%1096 = icmp slt i32 %953, %1093
%1097 = select i1 %1095, i1 true, i1 %1096
%1098 = or i1 %1097, %954
br i1 %1098, label %1134, label %1099
1099: ; preds = %1088, %1130
%1100 = phi i64 [ %1131, %1130 ], [ 0, %1088 ]
%1101 = phi i32 [ %1132, %1130 ], [ 0, %1088 ]
%1102 = trunc i32 %1101 to i16
%1103 = add i16 %21, %1102
%1104 = zext i16 %1103 to i32
%1105 = shl nuw nsw i32 %1104, 1
%1106 = icmp sgt i32 %956, %1104
%1107 = icmp slt i32 %958, %1104
%1108 = select i1 %1106, i1 true, i1 %1107
br i1 %1108, label %1130, label %1109
1109: ; preds = %1099
%1110 = trunc i64 %1100 to i32
%1111 = shl i32 %1110, 1
%1112 = add i32 %1094, %1111
%1113 = zext i32 %1105 to i64
%1114 = getelementptr inbounds i8, i8* %0, i64 %1113
%1115 = zext i32 %1112 to i64
%1116 = getelementptr inbounds i8, i8* %1114, i64 %1115
%1117 = bitcast i8* %1116 to i16*
%1118 = load i16, i16* %1117
%1119 = icmp eq i16 %1118, %959
br i1 %1119, label %1120, label %1130
1120: ; preds = %1109
%1121 = add i32 %1105, %1094
%1122 = add i32 %1090, %1111
%1123 = zext i32 %1122 to i64
%1124 = getelementptr inbounds i8, i8* %6, i64 %1123
%1125 = bitcast i8* %1124 to i16*
%1126 = load i16, i16* %1125
%1127 = zext i32 %1121 to i64
%1128 = getelementptr inbounds i8, i8* %0, i64 %1127
%1129 = bitcast i8* %1128 to i16*
store i16 %1126, i16* %1129
br label %1130
1130: ; preds = %1109, %1120, %1099
%1131 = add nuw nsw i64 %1100, 1
%1132 = add nuw nsw i32 %1101, 1
%1133 = icmp eq i64 %1131, %961
br i1 %1133, label %1134, label %1099
1134: ; preds = %1130, %1088
%1135 = add nuw nsw i32 %1089, 1
%1136 = icmp eq i32 %1135, %960
br i1 %1136, label %2126, label %1088
1137: ; preds = %69
switch i8 %11, label %2126 [
i8 4, label %1172
i8 3, label %1155
i8 2, label %1138
]
1138: ; preds = %1137
%1139 = icmp sgt i16 %10, 0
br i1 %1139, label %1140, label %2126
1140: ; preds = %1138
%1141 = sext i16 %16 to i32
%1142 = add nsw i32 %1141, %22
%1143 = sext i16 %18 to i32
%1144 = add nsw i32 %1143, %22
%1145 = icmp slt i16 %9, 1
%1146 = sext i16 %15 to i32
%1147 = add nsw i32 %1146, %20
%1148 = sext i16 %17 to i32
%1149 = add nsw i32 %1148, %20
%1150 = zext i8 %13 to i32
%1151 = xor i8 %13, -1
%1152 = zext i8 %1151 to i32
%1153 = zext i16 %10 to i32
%1154 = zext i16 %9 to i64
br label %1325
1155: ; preds = %1137
%1156 = icmp sgt i16 %10, 0
br i1 %1156, label %1157, label %2126
1157: ; preds = %1155
%1158 = sext i16 %16 to i32
%1159 = add nsw i32 %1158, %22
%1160 = sext i16 %18 to i32
%1161 = add nsw i32 %1160, %22
%1162 = icmp slt i16 %9, 1
%1163 = sext i16 %15 to i32
%1164 = add nsw i32 %1163, %20
%1165 = sext i16 %17 to i32
%1166 = add nsw i32 %1165, %20
%1167 = zext i8 %13 to i32
%1168 = xor i8 %13, -1
%1169 = zext i8 %1168 to i32
%1170 = zext i16 %10 to i32
%1171 = zext i16 %9 to i64
br label %1257
1172: ; preds = %1137
%1173 = icmp sgt i16 %10, 0
br i1 %1173, label %1174, label %2126
1174: ; preds = %1172
%1175 = sext i16 %16 to i32
%1176 = add nsw i32 %1175, %22
%1177 = sext i16 %18 to i32
%1178 = add nsw i32 %1177, %22
%1179 = icmp slt i16 %9, 1
%1180 = sext i16 %15 to i32
%1181 = add nsw i32 %1180, %20
%1182 = sext i16 %17 to i32
%1183 = add nsw i32 %1182, %20
%1184 = zext i16 %10 to i32
%1185 = zext i16 %9 to i64
br label %1186
1186: ; preds = %1174, %1254
%1187 = phi i32 [ 0, %1174 ], [ %1255, %1254 ]
%1188 = mul i32 %28, %1187
%1189 = trunc i32 %1187 to i16
%1190 = add i16 %23, %1189
%1191 = zext i16 %1190 to i32
%1192 = mul i32 %1191, %3
%1193 = icmp sgt i32 %1176, %1191
%1194 = icmp slt i32 %1178, %1191
%1195 = select i1 %1193, i1 true, i1 %1194
%1196 = or i1 %1195, %1179
br i1 %1196, label %1254, label %1197
1197: ; preds = %1186, %1250
%1198 = phi i32 [ %1251, %1250 ], [ 0, %1186 ]
%1199 = phi i64 [ %1252, %1250 ], [ 0, %1186 ]
%1200 = trunc i32 %1198 to i16
%1201 = add i16 %21, %1200
%1202 = zext i16 %1201 to i32
%1203 = icmp sgt i32 %1181, %1202
%1204 = icmp slt i32 %1183, %1202
%1205 = select i1 %1203, i1 true, i1 %1204
br i1 %1205, label %1250, label %1206
1206: ; preds = %1197
%1207 = shl nuw nsw i32 %1202, 2
%1208 = trunc i64 %1199 to i32
%1209 = shl i32 %1208, 2
%1210 = add i32 %1209, %1188
%1211 = add i32 %1207, %1192
%1212 = zext i32 %1211 to i64
%1213 = getelementptr inbounds i8, i8* %0, i64 %1212
%1214 = bitcast i8* %1213 to i32*
%1215 = load i32, i32* %1214
%1216 = lshr i32 %1215, 8
%1217 = lshr i32 %1215, 16
%1218 = zext i32 %1210 to i64
%1219 = getelementptr inbounds i8, i8* %6, i64 %1218
%1220 = bitcast i8* %1219 to i32*
%1221 = load i32, i32* %1220
%1222 = lshr i32 %1221, 8
%1223 = lshr i32 %1221, 16
%1224 = lshr i32 %1221, 24
%1225 = xor i32 %1224, 255
%1226 = and i32 %1221, 255
%1227 = mul nuw nsw i32 %1226, %1224
%1228 = and i32 %1215, 255
%1229 = mul nuw nsw i32 %1225, %1228
%1230 = add nuw nsw i32 %1229, %1227
%1231 = lshr i32 %1230, 8
%1232 = and i32 %1222, 255
%1233 = mul nuw nsw i32 %1232, %1224
%1234 = and i32 %1216, 255
%1235 = mul nuw nsw i32 %1225, %1234
%1236 = add nuw nsw i32 %1233, %1235
%1237 = and i32 %1223, 255
%1238 = mul nuw nsw i32 %1237, %1224
%1239 = and i32 %1217, 255
%1240 = mul nuw nsw i32 %1225, %1239
%1241 = add nuw nsw i32 %1238, %1240
%1242 = and i32 %1231, 255
%1243 = and i32 %1236, 65280
%1244 = shl nuw nsw i32 %1241, 8
%1245 = and i32 %1244, 16711680
%1246 = and i32 %1221, -16777216
%1247 = or i32 %1243, %1246
%1248 = or i32 %1247, %1242
%1249 = or i32 %1248, %1245
store i32 %1249, i32* %1214
br label %1250
1250: ; preds = %1206, %1197
%1251 = add nuw nsw i32 %1198, 1
%1252 = add nuw nsw i64 %1199, 1
%1253 = icmp eq i64 %1252, %1185
br i1 %1253, label %1254, label %1197
1254: ; preds = %1250, %1186
%1255 = add nuw nsw i32 %1187, 1
%1256 = icmp eq i32 %1255, %1184
br i1 %1256, label %2126, label %1186
1257: ; preds = %1157, %1322
%1258 = phi i32 [ 0, %1157 ], [ %1323, %1322 ]
%1259 = mul i32 %28, %1258
%1260 = trunc i32 %1258 to i16
%1261 = add i16 %23, %1260
%1262 = zext i16 %1261 to i32
%1263 = mul i32 %1262, %3
%1264 = icmp sgt i32 %1159, %1262
%1265 = icmp slt i32 %1161, %1262
%1266 = select i1 %1264, i1 true, i1 %1265
%1267 = or i1 %1266, %1162
br i1 %1267, label %1322, label %1268
1268: ; preds = %1257, %1318
%1269 = phi i32 [ %1319, %1318 ], [ 0, %1257 ]
%1270 = phi i64 [ %1320, %1318 ], [ 0, %1257 ]
%1271 = trunc i32 %1269 to i16
%1272 = add i16 %21, %1271
%1273 = zext i16 %1272 to i32
%1274 = icmp sgt i32 %1164, %1273
%1275 = icmp slt i32 %1166, %1273
%1276 = select i1 %1274, i1 true, i1 %1275
br i1 %1276, label %1318, label %1277
1277: ; preds = %1268
%1278 = mul nuw nsw i32 %1273, 3
%1279 = trunc i64 %1270 to i32
%1280 = mul i32 %1279, 3
%1281 = add i32 %1280, %1259
%1282 = add i32 %1278, %1263
%1283 = zext i32 %1282 to i64
%1284 = getelementptr inbounds i8, i8* %0, i64 %1283
%1285 = load i8, i8* %1284
%1286 = getelementptr inbounds i8, i8* %1284, i64 1
%1287 = load i8, i8* %1286
%1288 = getelementptr inbounds i8, i8* %1284, i64 2
%1289 = load i8, i8* %1288
%1290 = zext i32 %1281 to i64
%1291 = getelementptr inbounds i8, i8* %6, i64 %1290
%1292 = load i8, i8* %1291
%1293 = getelementptr inbounds i8, i8* %1291, i64 1
%1294 = load i8, i8* %1293
%1295 = getelementptr inbounds i8, i8* %1291, i64 2
%1296 = load i8, i8* %1295
%1297 = zext i8 %1292 to i32
%1298 = mul nuw nsw i32 %1297, %1167
%1299 = zext i8 %1285 to i32
%1300 = mul nuw nsw i32 %1299, %1169
%1301 = add nuw nsw i32 %1298, %1300
%1302 = lshr i32 %1301, 8
%1303 = trunc i32 %1302 to i8
%1304 = zext i8 %1294 to i32
%1305 = mul nuw nsw i32 %1304, %1167
%1306 = zext i8 %1287 to i32
%1307 = mul nuw nsw i32 %1306, %1169
%1308 = add nuw nsw i32 %1305, %1307
%1309 = lshr i32 %1308, 8
%1310 = trunc i32 %1309 to i8
%1311 = zext i8 %1296 to i32
%1312 = mul nuw nsw i32 %1311, %1167
%1313 = zext i8 %1289 to i32
%1314 = mul nuw nsw i32 %1313, %1169
%1315 = add nuw nsw i32 %1312, %1314
%1316 = lshr i32 %1315, 8
%1317 = trunc i32 %1316 to i8
store i8 %1303, i8* %1284
store i8 %1310, i8* %1286
store i8 %1317, i8* %1288
br label %1318
1318: ; preds = %1277, %1268
%1319 = add nuw nsw i32 %1269, 1
%1320 = add nuw nsw i64 %1270, 1
%1321 = icmp eq i64 %1320, %1171
br i1 %1321, label %1322, label %1268
1322: ; preds = %1318, %1257
%1323 = add nuw nsw i32 %1258, 1
%1324 = icmp eq i32 %1323, %1170
br i1 %1324, label %2126, label %1257
1325: ; preds = %1140, %1394
%1326 = phi i32 [ 0, %1140 ], [ %1395, %1394 ]
%1327 = mul i32 %28, %1326
%1328 = trunc i32 %1326 to i16
%1329 = add i16 %23, %1328
%1330 = zext i16 %1329 to i32
%1331 = mul i32 %1330, %3
%1332 = icmp sgt i32 %1142, %1330
%1333 = icmp slt i32 %1144, %1330
%1334 = select i1 %1332, i1 true, i1 %1333
%1335 = or i1 %1334, %1145
br i1 %1335, label %1394, label %1336
1336: ; preds = %1325, %1390
%1337 = phi i64 [ %1391, %1390 ], [ 0, %1325 ]
%1338 = phi i32 [ %1392, %1390 ], [ 0, %1325 ]
%1339 = trunc i32 %1338 to i16
%1340 = add i16 %21, %1339
%1341 = zext i16 %1340 to i32
%1342 = icmp sgt i32 %1147, %1341
%1343 = icmp slt i32 %1149, %1341
%1344 = select i1 %1342, i1 true, i1 %1343
br i1 %1344, label %1390, label %1345
1345: ; preds = %1336
%1346 = shl nuw nsw i32 %1341, 1
%1347 = trunc i64 %1337 to i32
%1348 = shl i32 %1347, 1
%1349 = add i32 %1327, %1348
%1350 = add i32 %1346, %1331
%1351 = zext i32 %1350 to i64
%1352 = getelementptr inbounds i8, i8* %0, i64 %1351
%1353 = bitcast i8* %1352 to i16*
%1354 = load i16, i16* %1353
%1355 = and i16 %1354, 31
%1356 = lshr i16 %1354, 5
%1357 = and i16 %1356, 63
%1358 = lshr i16 %1354, 11
%1359 = zext i32 %1349 to i64
%1360 = getelementptr inbounds i8, i8* %6, i64 %1359
%1361 = bitcast i8* %1360 to i16*
%1362 = load i16, i16* %1361
%1363 = and i16 %1362, 31
%1364 = lshr i16 %1362, 5
%1365 = and i16 %1364, 63
%1366 = lshr i16 %1362, 11
%1367 = zext i16 %1363 to i32
%1368 = mul nuw nsw i32 %1367, %1150
%1369 = zext i16 %1355 to i32
%1370 = mul nuw nsw i32 %1369, %1152
%1371 = add nuw nsw i32 %1368, %1370
%1372 = lshr i32 %1371, 8
%1373 = zext i16 %1365 to i32
%1374 = mul nuw nsw i32 %1373, %1150
%1375 = zext i16 %1357 to i32
%1376 = mul nuw nsw i32 %1375, %1152
%1377 = add nuw nsw i32 %1374, %1376
%1378 = zext i16 %1366 to i32
%1379 = mul nuw nsw i32 %1378, %1150
%1380 = zext i16 %1358 to i32
%1381 = mul nuw nsw i32 %1380, %1152
%1382 = add nuw nsw i32 %1379, %1381
%1383 = shl nuw nsw i32 %1382, 3
%1384 = and i32 %1383, 63488
%1385 = lshr i32 %1377, 3
%1386 = and i32 %1385, 4064
%1387 = or i32 %1384, %1372
%1388 = or i32 %1387, %1386
%1389 = trunc i32 %1388 to i16
store i16 %1389, i16* %1353
br label %1390
1390: ; preds = %1345, %1336
%1391 = add nuw nsw i64 %1337, 1
%1392 = add nuw nsw i32 %1338, 1
%1393 = icmp eq i64 %1391, %1154
br i1 %1393, label %1394, label %1336
1394: ; preds = %1390, %1325
%1395 = add nuw nsw i32 %1326, 1
%1396 = icmp eq i32 %1395, %1153
br i1 %1396, label %2126, label %1325
1397: ; preds = %69
switch i8 %11, label %2126 [
i8 4, label %1426
i8 3, label %1412
i8 2, label %1398
]
1398: ; preds = %1397
%1399 = icmp sgt i16 %10, 0
br i1 %1399, label %1400, label %2126
1400: ; preds = %1398
%1401 = sext i16 %16 to i32
%1402 = add nsw i32 %1401, %22
%1403 = sext i16 %18 to i32
%1404 = add nsw i32 %1403, %22
%1405 = icmp slt i16 %9, 1
%1406 = sext i16 %15 to i32
%1407 = add nsw i32 %1406, %20
%1408 = sext i16 %17 to i32
%1409 = add nsw i32 %1408, %20
%1410 = zext i16 %10 to i32
%1411 = zext i16 %9 to i64
br label %1532
1412: ; preds = %1397
%1413 = icmp sgt i16 %10, 0
br i1 %1413, label %1414, label %2126
1414: ; preds = %1412
%1415 = sext i16 %16 to i32
%1416 = add nsw i32 %1415, %22
%1417 = sext i16 %18 to i32
%1418 = add nsw i32 %1417, %22
%1419 = icmp slt i16 %9, 1
%1420 = sext i16 %15 to i32
%1421 = add nsw i32 %1420, %20
%1422 = sext i16 %17 to i32
%1423 = add nsw i32 %1422, %20
%1424 = zext i16 %10 to i32
%1425 = zext i16 %9 to i64
br label %1482
1426: ; preds = %1397
%1427 = icmp sgt i16 %10, 0
br i1 %1427, label %1428, label %2126
1428: ; preds = %1426
%1429 = sext i16 %16 to i32
%1430 = add nsw i32 %1429, %22
%1431 = sext i16 %18 to i32
%1432 = add nsw i32 %1431, %22
%1433 = icmp slt i16 %9, 1
%1434 = sext i16 %15 to i32
%1435 = add nsw i32 %1434, %20
%1436 = sext i16 %17 to i32
%1437 = add nsw i32 %1436, %20
%1438 = zext i16 %10 to i32
%1439 = zext i16 %9 to i64
br label %1440
1440: ; preds = %1428, %1479
%1441 = phi i32 [ 0, %1428 ], [ %1480, %1479 ]
%1442 = mul i32 %28, %1441
%1443 = trunc i32 %1441 to i16
%1444 = add i16 %23, %1443
%1445 = zext i16 %1444 to i32
%1446 = mul i32 %1445, %3
%1447 = icmp sgt i32 %1430, %1445
%1448 = icmp slt i32 %1432, %1445
%1449 = select i1 %1447, i1 true, i1 %1448
%1450 = or i1 %1449, %1433
br i1 %1450, label %1479, label %1451
1451: ; preds = %1440, %1475
%1452 = phi i32 [ %1476, %1475 ], [ 0, %1440 ]
%1453 = phi i64 [ %1477, %1475 ], [ 0, %1440 ]
%1454 = trunc i32 %1452 to i16
%1455 = add i16 %21, %1454
%1456 = zext i16 %1455 to i32
%1457 = icmp sgt i32 %1435, %1456
%1458 = icmp slt i32 %1437, %1456
%1459 = select i1 %1457, i1 true, i1 %1458
br i1 %1459, label %1475, label %1460
1460: ; preds = %1451
%1461 = shl nuw nsw i32 %1456, 2
%1462 = trunc i64 %1453 to i32
%1463 = shl i32 %1462, 2
%1464 = add i32 %1463, %1442
%1465 = add i32 %1461, %1446
%1466 = zext i32 %1464 to i64
%1467 = getelementptr inbounds i8, i8* %6, i64 %1466
%1468 = bitcast i8* %1467 to i32*
%1469 = load i32, i32* %1468
%1470 = zext i32 %1465 to i64
%1471 = getelementptr inbounds i8, i8* %0, i64 %1470
%1472 = bitcast i8* %1471 to i32*
%1473 = load i32, i32* %1472
%1474 = add i32 %1473, %1469
store i32 %1474, i32* %1472
br label %1475
1475: ; preds = %1460, %1451
%1476 = add nuw nsw i32 %1452, 1
%1477 = add nuw nsw i64 %1453, 1
%1478 = icmp eq i64 %1477, %1439
br i1 %1478, label %1479, label %1451
1479: ; preds = %1475, %1440
%1480 = add nuw nsw i32 %1441, 1
%1481 = icmp eq i32 %1480, %1438
br i1 %1481, label %2126, label %1440
1482: ; preds = %1414, %1529
%1483 = phi i32 [ 0, %1414 ], [ %1530, %1529 ]
%1484 = mul i32 %28, %1483
%1485 = trunc i32 %1483 to i16
%1486 = add i16 %23, %1485
%1487 = zext i16 %1486 to i32
%1488 = mul i32 %1487, %3
%1489 = icmp sgt i32 %1416, %1487
%1490 = icmp slt i32 %1418, %1487
%1491 = select i1 %1489, i1 true, i1 %1490
%1492 = or i1 %1491, %1419
br i1 %1492, label %1529, label %1493
1493: ; preds = %1482, %1525
%1494 = phi i32 [ %1526, %1525 ], [ 0, %1482 ]
%1495 = phi i64 [ %1527, %1525 ], [ 0, %1482 ]
%1496 = trunc i32 %1494 to i16
%1497 = add i16 %21, %1496
%1498 = zext i16 %1497 to i32
%1499 = icmp sgt i32 %1421, %1498
%1500 = icmp slt i32 %1423, %1498
%1501 = select i1 %1499, i1 true, i1 %1500
br i1 %1501, label %1525, label %1502
1502: ; preds = %1493
%1503 = mul nuw nsw i32 %1498, 3
%1504 = trunc i64 %1495 to i32
%1505 = mul i32 %1504, 3
%1506 = add i32 %1505, %1484
%1507 = add i32 %1503, %1488
%1508 = zext i32 %1506 to i64
%1509 = getelementptr inbounds i8, i8* %6, i64 %1508
%1510 = load i8, i8* %1509
%1511 = zext i32 %1507 to i64
%1512 = getelementptr inbounds i8, i8* %0, i64 %1511
%1513 = load i8, i8* %1512
%1514 = add i8 %1513, %1510
store i8 %1514, i8* %1512
%1515 = getelementptr inbounds i8, i8* %1509, i64 1
%1516 = load i8, i8* %1515
%1517 = getelementptr inbounds i8, i8* %1512, i64 1
%1518 = load i8, i8* %1517
%1519 = add i8 %1518, %1516
store i8 %1519, i8* %1517
%1520 = getelementptr inbounds i8, i8* %1509, i64 2
%1521 = load i8, i8* %1520
%1522 = getelementptr inbounds i8, i8* %1512, i64 2
%1523 = load i8, i8* %1522
%1524 = add i8 %1523, %1521
store i8 %1524, i8* %1522
br label %1525
1525: ; preds = %1502, %1493
%1526 = add nuw nsw i32 %1494, 1
%1527 = add nuw nsw i64 %1495, 1
%1528 = icmp eq i64 %1527, %1425
br i1 %1528, label %1529, label %1493
1529: ; preds = %1525, %1482
%1530 = add nuw nsw i32 %1483, 1
%1531 = icmp eq i32 %1530, %1424
br i1 %1531, label %2126, label %1482
1532: ; preds = %1400, %1571
%1533 = phi i32 [ 0, %1400 ], [ %1572, %1571 ]
%1534 = mul i32 %28, %1533
%1535 = trunc i32 %1533 to i16
%1536 = add i16 %23, %1535
%1537 = zext i16 %1536 to i32
%1538 = mul i32 %1537, %3
%1539 = icmp sgt i32 %1402, %1537
%1540 = icmp slt i32 %1404, %1537
%1541 = select i1 %1539, i1 true, i1 %1540
%1542 = or i1 %1541, %1405
br i1 %1542, label %1571, label %1543
1543: ; preds = %1532, %1567
%1544 = phi i64 [ %1568, %1567 ], [ 0, %1532 ]
%1545 = phi i32 [ %1569, %1567 ], [ 0, %1532 ]
%1546 = trunc i32 %1545 to i16
%1547 = add i16 %21, %1546
%1548 = zext i16 %1547 to i32
%1549 = icmp sgt i32 %1407, %1548
%1550 = icmp slt i32 %1409, %1548
%1551 = select i1 %1549, i1 true, i1 %1550
br i1 %1551, label %1567, label %1552
1552: ; preds = %1543
%1553 = shl nuw nsw i32 %1548, 1
%1554 = trunc i64 %1544 to i32
%1555 = shl i32 %1554, 1
%1556 = add i32 %1534, %1555
%1557 = add i32 %1553, %1538
%1558 = zext i32 %1556 to i64
%1559 = getelementptr inbounds i8, i8* %6, i64 %1558
%1560 = bitcast i8* %1559 to i16*
%1561 = load i16, i16* %1560
%1562 = zext i32 %1557 to i64
%1563 = getelementptr inbounds i8, i8* %0, i64 %1562
%1564 = bitcast i8* %1563 to i16*
%1565 = load i16, i16* %1564
%1566 = add i16 %1565, %1561
store i16 %1566, i16* %1564
br label %1567
1567: ; preds = %1552, %1543
%1568 = add nuw nsw i64 %1544, 1
%1569 = add nuw nsw i32 %1545, 1
%1570 = icmp eq i64 %1568, %1411
br i1 %1570, label %1571, label %1543
1571: ; preds = %1567, %1532
%1572 = add nuw nsw i32 %1533, 1
%1573 = icmp eq i32 %1572, %1410
br i1 %1573, label %2126, label %1532
1574: ; preds = %69
switch i8 %11, label %2126 [
i8 4, label %1603
i8 3, label %1589
i8 2, label %1575
]
1575: ; preds = %1574
%1576 = icmp sgt i16 %10, 0
br i1 %1576, label %1577, label %2126
1577: ; preds = %1575
%1578 = sext i16 %16 to i32
%1579 = add nsw i32 %1578, %22
%1580 = sext i16 %18 to i32
%1581 = add nsw i32 %1580, %22
%1582 = icmp slt i16 %9, 1
%1583 = sext i16 %15 to i32
%1584 = add nsw i32 %1583, %20
%1585 = sext i16 %17 to i32
%1586 = add nsw i32 %1585, %20
%1587 = zext i16 %10 to i32
%1588 = zext i16 %9 to i64
br label %1709
1589: ; preds = %1574
%1590 = icmp sgt i16 %10, 0
br i1 %1590, label %1591, label %2126
1591: ; preds = %1589
%1592 = sext i16 %16 to i32
%1593 = add nsw i32 %1592, %22
%1594 = sext i16 %18 to i32
%1595 = add nsw i32 %1594, %22
%1596 = icmp slt i16 %9, 1
%1597 = sext i16 %15 to i32
%1598 = add nsw i32 %1597, %20
%1599 = sext i16 %17 to i32
%1600 = add nsw i32 %1599, %20
%1601 = zext i16 %10 to i32
%1602 = zext i16 %9 to i64
br label %1659
1603: ; preds = %1574
%1604 = icmp sgt i16 %10, 0
br i1 %1604, label %1605, label %2126
1605: ; preds = %1603
%1606 = sext i16 %16 to i32
%1607 = add nsw i32 %1606, %22
%1608 = sext i16 %18 to i32
%1609 = add nsw i32 %1608, %22
%1610 = icmp slt i16 %9, 1
%1611 = sext i16 %15 to i32
%1612 = add nsw i32 %1611, %20
%1613 = sext i16 %17 to i32
%1614 = add nsw i32 %1613, %20
%1615 = zext i16 %10 to i32
%1616 = zext i16 %9 to i64
br label %1617
1617: ; preds = %1605, %1656
%1618 = phi i32 [ 0, %1605 ], [ %1657, %1656 ]
%1619 = mul i32 %28, %1618
%1620 = trunc i32 %1618 to i16
%1621 = add i16 %23, %1620
%1622 = zext i16 %1621 to i32
%1623 = mul i32 %1622, %3
%1624 = icmp sgt i32 %1607, %1622
%1625 = icmp slt i32 %1609, %1622
%1626 = select i1 %1624, i1 true, i1 %1625
%1627 = or i1 %1626, %1610
br i1 %1627, label %1656, label %1628
1628: ; preds = %1617, %1652
%1629 = phi i32 [ %1653, %1652 ], [ 0, %1617 ]
%1630 = phi i64 [ %1654, %1652 ], [ 0, %1617 ]
%1631 = trunc i32 %1629 to i16
%1632 = add i16 %21, %1631
%1633 = zext i16 %1632 to i32
%1634 = icmp sgt i32 %1612, %1633
%1635 = icmp slt i32 %1614, %1633
%1636 = select i1 %1634, i1 true, i1 %1635
br i1 %1636, label %1652, label %1637
1637: ; preds = %1628
%1638 = shl nuw nsw i32 %1633, 2
%1639 = trunc i64 %1630 to i32
%1640 = shl i32 %1639, 2
%1641 = add i32 %1640, %1619
%1642 = add i32 %1638, %1623
%1643 = zext i32 %1641 to i64
%1644 = getelementptr inbounds i8, i8* %6, i64 %1643
%1645 = bitcast i8* %1644 to i32*
%1646 = load i32, i32* %1645
%1647 = zext i32 %1642 to i64
%1648 = getelementptr inbounds i8, i8* %0, i64 %1647
%1649 = bitcast i8* %1648 to i32*
%1650 = load i32, i32* %1649
%1651 = sub i32 %1650, %1646
store i32 %1651, i32* %1649
br label %1652
1652: ; preds = %1637, %1628
%1653 = add nuw nsw i32 %1629, 1
%1654 = add nuw nsw i64 %1630, 1
%1655 = icmp eq i64 %1654, %1616
br i1 %1655, label %1656, label %1628
1656: ; preds = %1652, %1617
%1657 = add nuw nsw i32 %1618, 1
%1658 = icmp eq i32 %1657, %1615
br i1 %1658, label %2126, label %1617
1659: ; preds = %1591, %1706
%1660 = phi i32 [ 0, %1591 ], [ %1707, %1706 ]
%1661 = mul i32 %28, %1660
%1662 = trunc i32 %1660 to i16
%1663 = add i16 %23, %1662
%1664 = zext i16 %1663 to i32
%1665 = mul i32 %1664, %3
%1666 = icmp sgt i32 %1593, %1664
%1667 = icmp slt i32 %1595, %1664
%1668 = select i1 %1666, i1 true, i1 %1667
%1669 = or i1 %1668, %1596
br i1 %1669, label %1706, label %1670
1670: ; preds = %1659, %1702
%1671 = phi i32 [ %1703, %1702 ], [ 0, %1659 ]
%1672 = phi i64 [ %1704, %1702 ], [ 0, %1659 ]
%1673 = trunc i32 %1671 to i16
%1674 = add i16 %21, %1673
%1675 = zext i16 %1674 to i32
%1676 = icmp sgt i32 %1598, %1675
%1677 = icmp slt i32 %1600, %1675
%1678 = select i1 %1676, i1 true, i1 %1677
br i1 %1678, label %1702, label %1679
1679: ; preds = %1670
%1680 = mul nuw nsw i32 %1675, 3
%1681 = trunc i64 %1672 to i32
%1682 = mul i32 %1681, 3
%1683 = add i32 %1682, %1661
%1684 = add i32 %1680, %1665
%1685 = zext i32 %1683 to i64
%1686 = getelementptr inbounds i8, i8* %6, i64 %1685
%1687 = load i8, i8* %1686
%1688 = zext i32 %1684 to i64
%1689 = getelementptr inbounds i8, i8* %0, i64 %1688
%1690 = load i8, i8* %1689
%1691 = sub i8 %1690, %1687
store i8 %1691, i8* %1689
%1692 = getelementptr inbounds i8, i8* %1686, i64 1
%1693 = load i8, i8* %1692
%1694 = getelementptr inbounds i8, i8* %1689, i64 1
%1695 = load i8, i8* %1694
%1696 = sub i8 %1695, %1693
store i8 %1696, i8* %1694
%1697 = getelementptr inbounds i8, i8* %1686, i64 2
%1698 = load i8, i8* %1697
%1699 = getelementptr inbounds i8, i8* %1689, i64 2
%1700 = load i8, i8* %1699
%1701 = sub i8 %1700, %1698
store i8 %1701, i8* %1699
br label %1702
1702: ; preds = %1679, %1670
%1703 = add nuw nsw i32 %1671, 1
%1704 = add nuw nsw i64 %1672, 1
%1705 = icmp eq i64 %1704, %1602
br i1 %1705, label %1706, label %1670
1706: ; preds = %1702, %1659
%1707 = add nuw nsw i32 %1660, 1
%1708 = icmp eq i32 %1707, %1601
br i1 %1708, label %2126, label %1659
1709: ; preds = %1577, %1748
%1710 = phi i32 [ 0, %1577 ], [ %1749, %1748 ]
%1711 = mul i32 %28, %1710
%1712 = trunc i32 %1710 to i16
%1713 = add i16 %23, %1712
%1714 = zext i16 %1713 to i32
%1715 = mul i32 %1714, %3
%1716 = icmp sgt i32 %1579, %1714
%1717 = icmp slt i32 %1581, %1714
%1718 = select i1 %1716, i1 true, i1 %1717
%1719 = or i1 %1718, %1582
br i1 %1719, label %1748, label %1720
1720: ; preds = %1709, %1744
%1721 = phi i64 [ %1745, %1744 ], [ 0, %1709 ]
%1722 = phi i32 [ %1746, %1744 ], [ 0, %1709 ]
%1723 = trunc i32 %1722 to i16
%1724 = add i16 %21, %1723
%1725 = zext i16 %1724 to i32
%1726 = icmp sgt i32 %1584, %1725
%1727 = icmp slt i32 %1586, %1725
%1728 = select i1 %1726, i1 true, i1 %1727
br i1 %1728, label %1744, label %1729
1729: ; preds = %1720
%1730 = shl nuw nsw i32 %1725, 1
%1731 = trunc i64 %1721 to i32
%1732 = shl i32 %1731, 1
%1733 = add i32 %1711, %1732
%1734 = add i32 %1730, %1715
%1735 = zext i32 %1733 to i64
%1736 = getelementptr inbounds i8, i8* %6, i64 %1735
%1737 = bitcast i8* %1736 to i16*
%1738 = load i16, i16* %1737
%1739 = zext i32 %1734 to i64
%1740 = getelementptr inbounds i8, i8* %0, i64 %1739
%1741 = bitcast i8* %1740 to i16*
%1742 = load i16, i16* %1741
%1743 = sub i16 %1742, %1738
store i16 %1743, i16* %1741
br label %1744
1744: ; preds = %1729, %1720
%1745 = add nuw nsw i64 %1721, 1
%1746 = add nuw nsw i32 %1722, 1
%1747 = icmp eq i64 %1745, %1588
br i1 %1747, label %1748, label %1720
1748: ; preds = %1744, %1709
%1749 = add nuw nsw i32 %1710, 1
%1750 = icmp eq i32 %1749, %1587
br i1 %1750, label %2126, label %1709
1751: ; preds = %69
switch i8 %11, label %2126 [
i8 4, label %1780
i8 3, label %1766
i8 2, label %1752
]
1752: ; preds = %1751
%1753 = icmp sgt i16 %10, 0
br i1 %1753, label %1754, label %2126
1754: ; preds = %1752
%1755 = sext i16 %16 to i32
%1756 = add nsw i32 %1755, %22
%1757 = sext i16 %18 to i32
%1758 = add nsw i32 %1757, %22
%1759 = icmp slt i16 %9, 1
%1760 = sext i16 %15 to i32
%1761 = add nsw i32 %1760, %20
%1762 = sext i16 %17 to i32
%1763 = add nsw i32 %1762, %20
%1764 = zext i16 %10 to i32
%1765 = zext i16 %9 to i64
br label %1886
1766: ; preds = %1751
%1767 = icmp sgt i16 %10, 0
br i1 %1767, label %1768, label %2126
1768: ; preds = %1766
%1769 = sext i16 %16 to i32
%1770 = add nsw i32 %1769, %22
%1771 = sext i16 %18 to i32
%1772 = add nsw i32 %1771, %22
%1773 = icmp slt i16 %9, 1
%1774 = sext i16 %15 to i32
%1775 = add nsw i32 %1774, %20
%1776 = sext i16 %17 to i32
%1777 = add nsw i32 %1776, %20
%1778 = zext i16 %10 to i32
%1779 = zext i16 %9 to i64
br label %1836
1780: ; preds = %1751
%1781 = icmp sgt i16 %10, 0
br i1 %1781, label %1782, label %2126
1782: ; preds = %1780
%1783 = sext i16 %16 to i32
%1784 = add nsw i32 %1783, %22
%1785 = sext i16 %18 to i32
%1786 = add nsw i32 %1785, %22
%1787 = icmp slt i16 %9, 1
%1788 = sext i16 %15 to i32
%1789 = add nsw i32 %1788, %20
%1790 = sext i16 %17 to i32
%1791 = add nsw i32 %1790, %20
%1792 = zext i16 %10 to i32
%1793 = zext i16 %9 to i64
br label %1794
1794: ; preds = %1782, %1833
%1795 = phi i32 [ 0, %1782 ], [ %1834, %1833 ]
%1796 = mul i32 %28, %1795
%1797 = trunc i32 %1795 to i16
%1798 = add i16 %23, %1797
%1799 = zext i16 %1798 to i32
%1800 = mul i32 %1799, %3
%1801 = icmp sgt i32 %1784, %1799
%1802 = icmp slt i32 %1786, %1799
%1803 = select i1 %1801, i1 true, i1 %1802
%1804 = or i1 %1803, %1787
br i1 %1804, label %1833, label %1805
1805: ; preds = %1794, %1829
%1806 = phi i32 [ %1830, %1829 ], [ 0, %1794 ]
%1807 = phi i64 [ %1831, %1829 ], [ 0, %1794 ]
%1808 = trunc i32 %1806 to i16
%1809 = add i16 %21, %1808
%1810 = zext i16 %1809 to i32
%1811 = icmp sgt i32 %1789, %1810
%1812 = icmp slt i32 %1791, %1810
%1813 = select i1 %1811, i1 true, i1 %1812
br i1 %1813, label %1829, label %1814
1814: ; preds = %1805
%1815 = shl nuw nsw i32 %1810, 2
%1816 = trunc i64 %1807 to i32
%1817 = shl i32 %1816, 2
%1818 = add i32 %1817, %1796
%1819 = add i32 %1815, %1800
%1820 = zext i32 %1818 to i64
%1821 = getelementptr inbounds i8, i8* %6, i64 %1820
%1822 = bitcast i8* %1821 to i32*
%1823 = load i32, i32* %1822
%1824 = zext i32 %1819 to i64
%1825 = getelementptr inbounds i8, i8* %0, i64 %1824
%1826 = bitcast i8* %1825 to i32*
%1827 = load i32, i32* %1826
%1828 = mul i32 %1827, %1823
store i32 %1828, i32* %1826
br label %1829
1829: ; preds = %1814, %1805
%1830 = add nuw nsw i32 %1806, 1
%1831 = add nuw nsw i64 %1807, 1
%1832 = icmp eq i64 %1831, %1793
br i1 %1832, label %1833, label %1805
1833: ; preds = %1829, %1794
%1834 = add nuw nsw i32 %1795, 1
%1835 = icmp eq i32 %1834, %1792
br i1 %1835, label %2126, label %1794
1836: ; preds = %1768, %1883
%1837 = phi i32 [ 0, %1768 ], [ %1884, %1883 ]
%1838 = mul i32 %28, %1837
%1839 = trunc i32 %1837 to i16
%1840 = add i16 %23, %1839
%1841 = zext i16 %1840 to i32
%1842 = mul i32 %1841, %3
%1843 = icmp sgt i32 %1770, %1841
%1844 = icmp slt i32 %1772, %1841
%1845 = select i1 %1843, i1 true, i1 %1844
%1846 = or i1 %1845, %1773
br i1 %1846, label %1883, label %1847
1847: ; preds = %1836, %1879
%1848 = phi i32 [ %1880, %1879 ], [ 0, %1836 ]
%1849 = phi i64 [ %1881, %1879 ], [ 0, %1836 ]
%1850 = trunc i32 %1848 to i16
%1851 = add i16 %21, %1850
%1852 = zext i16 %1851 to i32
%1853 = icmp sgt i32 %1775, %1852
%1854 = icmp slt i32 %1777, %1852
%1855 = select i1 %1853, i1 true, i1 %1854
br i1 %1855, label %1879, label %1856
1856: ; preds = %1847
%1857 = mul nuw nsw i32 %1852, 3
%1858 = trunc i64 %1849 to i32
%1859 = mul i32 %1858, 3
%1860 = add i32 %1859, %1838
%1861 = add i32 %1857, %1842
%1862 = zext i32 %1860 to i64
%1863 = getelementptr inbounds i8, i8* %6, i64 %1862
%1864 = load i8, i8* %1863
%1865 = zext i32 %1861 to i64
%1866 = getelementptr inbounds i8, i8* %0, i64 %1865
%1867 = load i8, i8* %1866
%1868 = mul i8 %1867, %1864
store i8 %1868, i8* %1866
%1869 = getelementptr inbounds i8, i8* %1863, i64 1
%1870 = load i8, i8* %1869
%1871 = getelementptr inbounds i8, i8* %1866, i64 1
%1872 = load i8, i8* %1871
%1873 = mul i8 %1872, %1870
store i8 %1873, i8* %1871
%1874 = getelementptr inbounds i8, i8* %1863, i64 2
%1875 = load i8, i8* %1874
%1876 = getelementptr inbounds i8, i8* %1866, i64 2
%1877 = load i8, i8* %1876
%1878 = mul i8 %1877, %1875
store i8 %1878, i8* %1876
br label %1879
1879: ; preds = %1856, %1847
%1880 = add nuw nsw i32 %1848, 1
%1881 = add nuw nsw i64 %1849, 1
%1882 = icmp eq i64 %1881, %1779
br i1 %1882, label %1883, label %1847
1883: ; preds = %1879, %1836
%1884 = add nuw nsw i32 %1837, 1
%1885 = icmp eq i32 %1884, %1778
br i1 %1885, label %2126, label %1836
1886: ; preds = %1754, %1925
%1887 = phi i32 [ 0, %1754 ], [ %1926, %1925 ]
%1888 = mul i32 %28, %1887
%1889 = trunc i32 %1887 to i16
%1890 = add i16 %23, %1889
%1891 = zext i16 %1890 to i32
%1892 = mul i32 %1891, %3
%1893 = icmp sgt i32 %1756, %1891
%1894 = icmp slt i32 %1758, %1891
%1895 = select i1 %1893, i1 true, i1 %1894
%1896 = or i1 %1895, %1759
br i1 %1896, label %1925, label %1897
1897: ; preds = %1886, %1921
%1898 = phi i64 [ %1922, %1921 ], [ 0, %1886 ]
%1899 = phi i32 [ %1923, %1921 ], [ 0, %1886 ]
%1900 = trunc i32 %1899 to i16
%1901 = add i16 %21, %1900
%1902 = zext i16 %1901 to i32
%1903 = icmp sgt i32 %1761, %1902
%1904 = icmp slt i32 %1763, %1902
%1905 = select i1 %1903, i1 true, i1 %1904
br i1 %1905, label %1921, label %1906
1906: ; preds = %1897
%1907 = shl nuw nsw i32 %1902, 1
%1908 = trunc i64 %1898 to i32
%1909 = shl i32 %1908, 1
%1910 = add i32 %1888, %1909
%1911 = add i32 %1907, %1892
%1912 = zext i32 %1910 to i64
%1913 = getelementptr inbounds i8, i8* %6, i64 %1912
%1914 = bitcast i8* %1913 to i16*
%1915 = load i16, i16* %1914
%1916 = zext i32 %1911 to i64
%1917 = getelementptr inbounds i8, i8* %0, i64 %1916
%1918 = bitcast i8* %1917 to i16*
%1919 = load i16, i16* %1918
%1920 = mul i16 %1919, %1915
store i16 %1920, i16* %1918
br label %1921
1921: ; preds = %1906, %1897
%1922 = add nuw nsw i64 %1898, 1
%1923 = add nuw nsw i32 %1899, 1
%1924 = icmp eq i64 %1922, %1765
br i1 %1924, label %1925, label %1897
1925: ; preds = %1921, %1886
%1926 = add nuw nsw i32 %1887, 1
%1927 = icmp eq i32 %1926, %1764
br i1 %1927, label %2126, label %1886
1928: ; preds = %69
switch i8 %11, label %2126 [
i8 4, label %1957
i8 3, label %1943
i8 2, label %1929
]
1929: ; preds = %1928
%1930 = icmp sgt i16 %10, 0
br i1 %1930, label %1931, label %2126
1931: ; preds = %1929
%1932 = sext i16 %16 to i32
%1933 = add nsw i32 %1932, %22
%1934 = sext i16 %18 to i32
%1935 = add nsw i32 %1934, %22
%1936 = icmp slt i16 %9, 1
%1937 = sext i16 %15 to i32
%1938 = add nsw i32 %1937, %20
%1939 = sext i16 %17 to i32
%1940 = add nsw i32 %1939, %20
%1941 = zext i16 %10 to i32
%1942 = zext i16 %9 to i64
br label %2072
1943: ; preds = %1928
%1944 = icmp sgt i16 %10, 0
br i1 %1944, label %1945, label %2126
1945: ; preds = %1943
%1946 = sext i16 %16 to i32
%1947 = add nsw i32 %1946, %22
%1948 = sext i16 %18 to i32
%1949 = add nsw i32 %1948, %22
%1950 = icmp slt i16 %9, 1
%1951 = sext i16 %15 to i32
%1952 = add nsw i32 %1951, %20
%1953 = sext i16 %17 to i32
%1954 = add nsw i32 %1953, %20
%1955 = zext i16 %10 to i32
%1956 = zext i16 %9 to i64
br label %2013
1957: ; preds = %1928
%1958 = icmp sgt i16 %10, 0
br i1 %1958, label %1959, label %2126
1959: ; preds = %1957
%1960 = sext i16 %16 to i32
%1961 = add nsw i32 %1960, %22
%1962 = sext i16 %18 to i32
%1963 = add nsw i32 %1962, %22
%1964 = icmp slt i16 %9, 1
%1965 = sext i16 %15 to i32
%1966 = add nsw i32 %1965, %20
%1967 = sext i16 %17 to i32
%1968 = add nsw i32 %1967, %20
%1969 = zext i16 %10 to i32
%1970 = zext i16 %9 to i64
br label %1971
1971: ; preds = %1959, %2010
%1972 = phi i32 [ 0, %1959 ], [ %2011, %2010 ]
%1973 = mul i32 %28, %1972
%1974 = trunc i32 %1972 to i16
%1975 = add i16 %23, %1974
%1976 = zext i16 %1975 to i32
%1977 = mul i32 %1976, %3
%1978 = icmp sgt i32 %1961, %1976
%1979 = icmp slt i32 %1963, %1976
%1980 = select i1 %1978, i1 true, i1 %1979
%1981 = or i1 %1980, %1964
br i1 %1981, label %2010, label %1982
1982: ; preds = %1971, %2006
%1983 = phi i32 [ %2007, %2006 ], [ 0, %1971 ]
%1984 = phi i64 [ %2008, %2006 ], [ 0, %1971 ]
%1985 = trunc i32 %1983 to i16
%1986 = add i16 %21, %1985
%1987 = zext i16 %1986 to i32
%1988 = icmp sgt i32 %1966, %1987
%1989 = icmp slt i32 %1968, %1987
%1990 = select i1 %1988, i1 true, i1 %1989
br i1 %1990, label %2006, label %1991
1991: ; preds = %1982
%1992 = shl nuw nsw i32 %1987, 2
%1993 = trunc i64 %1984 to i32
%1994 = shl i32 %1993, 2
%1995 = add i32 %1994, %1973
%1996 = add i32 %1992, %1977
%1997 = zext i32 %1995 to i64
%1998 = getelementptr inbounds i8, i8* %6, i64 %1997
%1999 = bitcast i8* %1998 to i32*
%2000 = load i32, i32* %1999
%2001 = zext i32 %1996 to i64
%2002 = getelementptr inbounds i8, i8* %0, i64 %2001
%2003 = bitcast i8* %2002 to i32*
%2004 = load i32, i32* %2003
%2005 = udiv i32 %2004, %2000
store i32 %2005, i32* %2003
br label %2006
2006: ; preds = %1991, %1982
%2007 = add nuw nsw i32 %1983, 1
%2008 = add nuw nsw i64 %1984, 1
%2009 = icmp eq i64 %2008, %1970
br i1 %2009, label %2010, label %1982
2010: ; preds = %2006, %1971
%2011 = add nuw nsw i32 %1972, 1
%2012 = icmp eq i32 %2011, %1969
br i1 %2012, label %2126, label %1971
2013: ; preds = %1945, %2069
%2014 = phi i32 [ 0, %1945 ], [ %2070, %2069 ]
%2015 = mul i32 %28, %2014
%2016 = trunc i32 %2014 to i16
%2017 = add i16 %23, %2016
%2018 = zext i16 %2017 to i32
%2019 = mul i32 %2018, %3
%2020 = icmp sgt i32 %1947, %2018
%2021 = icmp slt i32 %1949, %2018
%2022 = select i1 %2020, i1 true, i1 %2021
%2023 = or i1 %2022, %1950
br i1 %2023, label %2069, label %2024
2024: ; preds = %2013, %2065
%2025 = phi i32 [ %2066, %2065 ], [ 0, %2013 ]
%2026 = phi i64 [ %2067, %2065 ], [ 0, %2013 ]
%2027 = trunc i32 %2025 to i16
%2028 = add i16 %21, %2027
%2029 = zext i16 %2028 to i32
%2030 = icmp sgt i32 %1952, %2029
%2031 = icmp slt i32 %1954, %2029
%2032 = select i1 %2030, i1 true, i1 %2031
br i1 %2032, label %2065, label %2033
2033: ; preds = %2024
%2034 = mul nuw nsw i32 %2029, 3
%2035 = trunc i64 %2026 to i32
%2036 = mul i32 %2035, 3
%2037 = add i32 %2036, %2015
%2038 = add i32 %2034, %2019
%2039 = zext i32 %2037 to i64
%2040 = getelementptr inbounds i8, i8* %6, i64 %2039
%2041 = load i8, i8* %2040
%2042 = zext i32 %2038 to i64
%2043 = getelementptr inbounds i8, i8* %0, i64 %2042
%2044 = load i8, i8* %2043
%2045 = sext i8 %2044 to i16
%2046 = sext i8 %2041 to i16
%2047 = sdiv i16 %2045, %2046
%2048 = trunc i16 %2047 to i8
store i8 %2048, i8* %2043
%2049 = getelementptr inbounds i8, i8* %2040, i64 1
%2050 = load i8, i8* %2049
%2051 = getelementptr inbounds i8, i8* %2043, i64 1
%2052 = load i8, i8* %2051
%2053 = sext i8 %2052 to i16
%2054 = sext i8 %2050 to i16
%2055 = sdiv i16 %2053, %2054
%2056 = trunc i16 %2055 to i8
store i8 %2056, i8* %2051
%2057 = getelementptr inbounds i8, i8* %2040, i64 2
%2058 = load i8, i8* %2057
%2059 = getelementptr inbounds i8, i8* %2043, i64 2
%2060 = load i8, i8* %2059
%2061 = sext i8 %2060 to i16
%2062 = sext i8 %2058 to i16
%2063 = sdiv i16 %2061, %2062
%2064 = trunc i16 %2063 to i8
store i8 %2064, i8* %2059
br label %2065
2065: ; preds = %2033, %2024
%2066 = add nuw nsw i32 %2025, 1
%2067 = add nuw nsw i64 %2026, 1
%2068 = icmp eq i64 %2067, %1956
br i1 %2068, label %2069, label %2024
2069: ; preds = %2065, %2013
%2070 = add nuw nsw i32 %2014, 1
%2071 = icmp eq i32 %2070, %1955
br i1 %2071, label %2126, label %2013
2072: ; preds = %1931, %2111
%2073 = phi i32 [ 0, %1931 ], [ %2112, %2111 ]
%2074 = mul i32 %28, %2073
%2075 = trunc i32 %2073 to i16
%2076 = add i16 %23, %2075
%2077 = zext i16 %2076 to i32
%2078 = mul i32 %2077, %3
%2079 = icmp sgt i32 %1933, %2077
%2080 = icmp slt i32 %1935, %2077
%2081 = select i1 %2079, i1 true, i1 %2080
%2082 = or i1 %2081, %1936
br i1 %2082, label %2111, label %2083
2083: ; preds = %2072, %2107
%2084 = phi i64 [ %2108, %2107 ], [ 0, %2072 ]
%2085 = phi i32 [ %2109, %2107 ], [ 0, %2072 ]
%2086 = trunc i32 %2085 to i16
%2087 = add i16 %21, %2086
%2088 = zext i16 %2087 to i32
%2089 = icmp sgt i32 %1938, %2088
%2090 = icmp slt i32 %1940, %2088
%2091 = select i1 %2089, i1 true, i1 %2090
br i1 %2091, label %2107, label %2092
2092: ; preds = %2083
%2093 = shl nuw nsw i32 %2088, 1
%2094 = trunc i64 %2084 to i32
%2095 = shl i32 %2094, 1
%2096 = add i32 %2074, %2095
%2097 = add i32 %2093, %2078
%2098 = zext i32 %2096 to i64
%2099 = getelementptr inbounds i8, i8* %6, i64 %2098
%2100 = bitcast i8* %2099 to i16*
%2101 = load i16, i16* %2100
%2102 = zext i32 %2097 to i64
%2103 = getelementptr inbounds i8, i8* %0, i64 %2102
%2104 = bitcast i8* %2103 to i16*
%2105 = load i16, i16* %2104
%2106 = udiv i16 %2105, %2101
store i16 %2106, i16* %2104
br label %2107
2107: ; preds = %2092, %2083
%2108 = add nuw nsw i64 %2084, 1
%2109 = add nuw nsw i32 %2085, 1
%2110 = icmp eq i64 %2108, %1942
br i1 %2110, label %2111, label %2083
2111: ; preds = %2107, %2072
%2112 = add nuw nsw i32 %2073, 1
%2113 = icmp eq i32 %2112, %1941
br i1 %2113, label %2126, label %2072
2114: ; preds = %55, %40
%2115 = phi i8* [ %6, %40 ], [ %65, %55 ]
%2116 = phi i8* [ %47, %40 ], [ %66, %55 ]
%2117 = icmp eq i16 %51, 0
br i1 %2117, label %2126, label %2118
2118: ; preds = %2114, %2118
%2119 = phi i8* [ %2122, %2118 ], [ %2115, %2114 ]
%2120 = phi i8* [ %2123, %2118 ], [ %2116, %2114 ]
%2121 = phi i16 [ %2124, %2118 ], [ 0, %2114 ]
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %2120, i8* align 1 %2119, i64 %48, i1 false)
%2122 = getelementptr inbounds i8, i8* %2119, i64 %48
%2123 = getelementptr inbounds i8, i8* %2120, i64 %49
%2124 = add i16 %2121, 1
%2125 = icmp eq i16 %2124, %51
br i1 %2125, label %2126, label %2118
2126: ; preds = %2114, %2118, %2111, %2069, %2010, %1925, %1883, %1833, %1748, %1706, %1656, %1571, %1529, %1479, %1394, %1322, %1254, %1134, %1085, %1032, %943, %901, %852, %765, %723, %673, %588, %546, %496, %411, %369, %319, %234, %194, %150, %38, %1929, %1943, %1957, %1752, %1766, %1780, %1575, %1589, %1603, %1398, %1412, %1426, %1138, %1155, %1172, %947, %962, %977, %769, %784, %798, %592, %606, %620, %415, %429, %443, %238, %252, %266, %71, %85, %99, %69, %70, %237, %414, %591, %768, %946, %1137, %1397, %1574, %1751, %1928
ret void
}