// File: /workspace/github_c_makefile_star2_O0/aap[P]pdp11/lodepng.c
// Function: unfilterScanline
static unsigned unfilterScanline(unsigned char* recon, const unsigned char* scanline, const unsigned char* precon,
                                 size_t bytewidth, unsigned char filterType, size_t length) {
  /*
  For PNG filter method 0
  unfilter a PNG image scanline by scanline. when the pixels are smaller than 1 byte,
  the filter works byte per byte (bytewidth = 1)
  precon is the previous unfiltered scanline, recon the result, scanline the current one
  the incoming scanlines do NOT include the filtertype byte, that one is given in the parameter filterType instead
  recon and scanline MAY be the same memory address! precon must be disjoint.
  */

  size_t i;
  switch(filterType) {
    case 0:
      for(i = 0; i != length; ++i) recon[i] = scanline[i];
      break;
    case 1: {
      size_t j = 0;
      for(i = 0; i != bytewidth; ++i) recon[i] = scanline[i];
      for(i = bytewidth; i != length; ++i, ++j) recon[i] = scanline[i] + recon[j];
      break;
    }
    case 2:
      if(precon) {
        for(i = 0; i != length; ++i) recon[i] = scanline[i] + precon[i];
      } else {
        for(i = 0; i != length; ++i) recon[i] = scanline[i];
      }
      break;
    case 3:
      if(precon) {
        size_t j = 0;
        for(i = 0; i != bytewidth; ++i) recon[i] = scanline[i] + (precon[i] >> 1u);
        /* Unroll independent paths of this predictor. A 6x and 8x version is also possible but that adds
        too much code. Whether this speeds up anything depends on compiler and settings. */
        if(bytewidth >= 4) {
          for(; i + 3 < length; i += 4, j += 4) {
            unsigned char s0 = scanline[i + 0], s1 = scanline[i + 1], s2 = scanline[i + 2], s3 = scanline[i + 3];
            unsigned char r0 = recon[j + 0], r1 = recon[j + 1], r2 = recon[j + 2], r3 = recon[j + 3];
            unsigned char p0 = precon[i + 0], p1 = precon[i + 1], p2 = precon[i + 2], p3 = precon[i + 3];
            recon[i + 0] = s0 + ((r0 + p0) >> 1u);
            recon[i + 1] = s1 + ((r1 + p1) >> 1u);
            recon[i + 2] = s2 + ((r2 + p2) >> 1u);
            recon[i + 3] = s3 + ((r3 + p3) >> 1u);
          }
        } else if(bytewidth >= 3) {
          for(; i + 2 < length; i += 3, j += 3) {
            unsigned char s0 = scanline[i + 0], s1 = scanline[i + 1], s2 = scanline[i + 2];
            unsigned char r0 = recon[j + 0], r1 = recon[j + 1], r2 = recon[j + 2];
            unsigned char p0 = precon[i + 0], p1 = precon[i + 1], p2 = precon[i + 2];
            recon[i + 0] = s0 + ((r0 + p0) >> 1u);
            recon[i + 1] = s1 + ((r1 + p1) >> 1u);
            recon[i + 2] = s2 + ((r2 + p2) >> 1u);
          }
        } else if(bytewidth >= 2) {
          for(; i + 1 < length; i += 2, j += 2) {
            unsigned char s0 = scanline[i + 0], s1 = scanline[i + 1];
            unsigned char r0 = recon[j + 0], r1 = recon[j + 1];
            unsigned char p0 = precon[i + 0], p1 = precon[i + 1];
            recon[i + 0] = s0 + ((r0 + p0) >> 1u);
            recon[i + 1] = s1 + ((r1 + p1) >> 1u);
          }
        }
        for(; i != length; ++i, ++j) recon[i] = scanline[i] + ((recon[j] + precon[i]) >> 1u);
      } else {
        size_t j = 0;
        for(i = 0; i != bytewidth; ++i) recon[i] = scanline[i];
        for(i = bytewidth; i != length; ++i, ++j) recon[i] = scanline[i] + (recon[j] >> 1u);
      }
      break;
    case 4:
      if(precon) {
        /* Unroll independent paths of this predictor. Whether this speeds up
        anything depends on compiler and settings. */
        if(bytewidth == 8) {
          unsigned char a0, b0 = 0, c0, d0 = 0, a1, b1 = 0, c1, d1 = 0;
          unsigned char a2, b2 = 0, c2, d2 = 0, a3, b3 = 0, c3, d3 = 0;
          unsigned char a4, b4 = 0, c4, d4 = 0, a5, b5 = 0, c5, d5 = 0;
          unsigned char a6, b6 = 0, c6, d6 = 0, a7, b7 = 0, c7, d7 = 0;
          for(i = 0; i + 7 < length; i += 8) {
            c0 = b0; c1 = b1; c2 = b2; c3 = b3;
            c4 = b4; c5 = b5; c6 = b6; c7 = b7;
            b0 = precon[i + 0]; b1 = precon[i + 1]; b2 = precon[i + 2]; b3 = precon[i + 3];
            b4 = precon[i + 4]; b5 = precon[i + 5]; b6 = precon[i + 6]; b7 = precon[i + 7];
            a0 = d0; a1 = d1; a2 = d2; a3 = d3;
            a4 = d4; a5 = d5; a6 = d6; a7 = d7;
            d0 = scanline[i + 0] + paethPredictor(a0, b0, c0);
            d1 = scanline[i + 1] + paethPredictor(a1, b1, c1);
            d2 = scanline[i + 2] + paethPredictor(a2, b2, c2);
            d3 = scanline[i + 3] + paethPredictor(a3, b3, c3);
            d4 = scanline[i + 4] + paethPredictor(a4, b4, c4);
            d5 = scanline[i + 5] + paethPredictor(a5, b5, c5);
            d6 = scanline[i + 6] + paethPredictor(a6, b6, c6);
            d7 = scanline[i + 7] + paethPredictor(a7, b7, c7);
            recon[i + 0] = d0; recon[i + 1] = d1; recon[i + 2] = d2; recon[i + 3] = d3;
            recon[i + 4] = d4; recon[i + 5] = d5; recon[i + 6] = d6; recon[i + 7] = d7;
          }
        } else if(bytewidth == 6) {
          unsigned char a0, b0 = 0, c0, d0 = 0, a1, b1 = 0, c1, d1 = 0;
          unsigned char a2, b2 = 0, c2, d2 = 0, a3, b3 = 0, c3, d3 = 0;
          unsigned char a4, b4 = 0, c4, d4 = 0, a5, b5 = 0, c5, d5 = 0;
          for(i = 0; i + 5 < length; i += 6) {
            c0 = b0; c1 = b1; c2 = b2;
            c3 = b3; c4 = b4; c5 = b5;
            b0 = precon[i + 0]; b1 = precon[i + 1]; b2 = precon[i + 2];
            b3 = precon[i + 3]; b4 = precon[i + 4]; b5 = precon[i + 5];
            a0 = d0; a1 = d1; a2 = d2;
            a3 = d3; a4 = d4; a5 = d5;
            d0 = scanline[i + 0] + paethPredictor(a0, b0, c0);
            d1 = scanline[i + 1] + paethPredictor(a1, b1, c1);
            d2 = scanline[i + 2] + paethPredictor(a2, b2, c2);
            d3 = scanline[i + 3] + paethPredictor(a3, b3, c3);
            d4 = scanline[i + 4] + paethPredictor(a4, b4, c4);
            d5 = scanline[i + 5] + paethPredictor(a5, b5, c5);
            recon[i + 0] = d0; recon[i + 1] = d1; recon[i + 2] = d2;
            recon[i + 3] = d3; recon[i + 4] = d4; recon[i + 5] = d5;
          }
        } else if(bytewidth == 4) {
          unsigned char a0, b0 = 0, c0, d0 = 0, a1, b1 = 0, c1, d1 = 0;
          unsigned char a2, b2 = 0, c2, d2 = 0, a3, b3 = 0, c3, d3 = 0;
          for(i = 0; i + 3 < length; i += 4) {
            c0 = b0; c1 = b1; c2 = b2; c3 = b3;
            b0 = precon[i + 0]; b1 = precon[i + 1]; b2 = precon[i + 2]; b3 = precon[i + 3];
            a0 = d0; a1 = d1; a2 = d2; a3 = d3;
            d0 = scanline[i + 0] + paethPredictor(a0, b0, c0);
            d1 = scanline[i + 1] + paethPredictor(a1, b1, c1);
            d2 = scanline[i + 2] + paethPredictor(a2, b2, c2);
            d3 = scanline[i + 3] + paethPredictor(a3, b3, c3);
            recon[i + 0] = d0; recon[i + 1] = d1; recon[i + 2] = d2; recon[i + 3] = d3;
          }
        } else if(bytewidth == 3) {
          unsigned char a0, b0 = 0, c0, d0 = 0;
          unsigned char a1, b1 = 0, c1, d1 = 0;
          unsigned char a2, b2 = 0, c2, d2 = 0;
          for(i = 0; i + 2 < length; i += 3) {
            c0 = b0; c1 = b1; c2 = b2;
            b0 = precon[i + 0]; b1 = precon[i + 1]; b2 = precon[i + 2];
            a0 = d0; a1 = d1; a2 = d2;
            d0 = scanline[i + 0] + paethPredictor(a0, b0, c0);
            d1 = scanline[i + 1] + paethPredictor(a1, b1, c1);
            d2 = scanline[i + 2] + paethPredictor(a2, b2, c2);
            recon[i + 0] = d0; recon[i + 1] = d1; recon[i + 2] = d2;
          }
        } else if(bytewidth == 2) {
          unsigned char a0, b0 = 0, c0, d0 = 0;
          unsigned char a1, b1 = 0, c1, d1 = 0;
          for(i = 0; i + 1 < length; i += 2) {
            c0 = b0; c1 = b1;
            b0 = precon[i + 0];
            b1 = precon[i + 1];
            a0 = d0; a1 = d1;
            d0 = scanline[i + 0] + paethPredictor(a0, b0, c0);
            d1 = scanline[i + 1] + paethPredictor(a1, b1, c1);
            recon[i + 0] = d0;
            recon[i + 1] = d1;
          }
        } else if(bytewidth == 1) {
          unsigned char a, b = 0, c, d = 0;
          for(i = 0; i != length; ++i) {
            c = b;
            b = precon[i];
            a = d;
            d = scanline[i] + paethPredictor(a, b, c);
            recon[i] = d;
          }
        } else {
          /* Normally not a possible case, but this would handle it correctly */
          for(i = 0; i != bytewidth; ++i) {
            recon[i] = (scanline[i] + precon[i]); /*paethPredictor(0, precon[i], 0) is always precon[i]*/
          }
        }
        /* finish any remaining bytes */
        for(; i != length; ++i) {
          recon[i] = (scanline[i] + paethPredictor(recon[i - bytewidth], precon[i], precon[i - bytewidth]));
        }
      } else {
        size_t j = 0;
        for(i = 0; i != bytewidth; ++i) {
          recon[i] = scanline[i];
        }
        for(i = bytewidth; i != length; ++i, ++j) {
          /*paethPredictor(recon[i - bytewidth], 0, 0) is always recon[i - bytewidth]*/
          recon[i] = (scanline[i] + recon[j]);
        }
      }
      break;
    default: return 36; /*error: invalid filter type given*/
  }
  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x150, %rsp            # imm = 0x150
movb %r8b, %al
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movb %al, -0x29(%rbp)
movq %r9, -0x38(%rbp)
movzbl -0x29(%rbp), %eax
movq %rax, -0xe8(%rbp)
subq $0x4, %rax
ja 0x1d0e6
movq -0xe8(%rbp), %rax
leaq 0x4fe8(%rip), %rcx      # 0x20ad0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq $0x0, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpq -0x38(%rbp), %rax
je 0x1bb27
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x1baf9
jmp 0x1d0ef
movq $0x0, -0x48(%rbp)
movq $0x0, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpq -0x28(%rbp), %rax
je 0x1bb6a
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x1bb3c
movq -0x28(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpq -0x38(%rbp), %rax
je 0x1bbbd
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movq -0x10(%rbp), %rcx
movq -0x48(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
movq -0x48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x48(%rbp)
jmp 0x1bb72
jmp 0x1d0ef
cmpq $0x0, -0x20(%rbp)
je 0x1bc12
movq $0x0, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpq -0x38(%rbp), %rax
je 0x1bc10
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movq -0x20(%rbp), %rcx
movq -0x40(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x1bbd1
jmp 0x1bc4a
movq $0x0, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpq -0x38(%rbp), %rax
je 0x1bc48
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x1bc1a
jmp 0x1bc4a
jmp 0x1d0ef
cmpq $0x0, -0x20(%rbp)
je 0x1c07a
movq $0x0, -0x50(%rbp)
movq $0x0, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpq -0x28(%rbp), %rax
je 0x1bcab
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movq -0x20(%rbp), %rcx
movq -0x40(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
sarl %ecx
addl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x1bc6a
cmpq $0x4, -0x28(%rbp)
jb 0x1be1c
jmp 0x1bcb8
movq -0x40(%rbp), %rax
addq $0x3, %rax
cmpq -0x38(%rbp), %rax
jae 0x1be17
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0x51(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x1(%rax,%rcx), %al
movb %al, -0x52(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x2(%rax,%rcx), %al
movb %al, -0x53(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x3(%rax,%rcx), %al
movb %al, -0x54(%rbp)
movq -0x10(%rbp), %rax
movq -0x50(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0x55(%rbp)
movq -0x10(%rbp), %rax
movq -0x50(%rbp), %rcx
movb 0x1(%rax,%rcx), %al
movb %al, -0x56(%rbp)
movq -0x10(%rbp), %rax
movq -0x50(%rbp), %rcx
movb 0x2(%rax,%rcx), %al
movb %al, -0x57(%rbp)
movq -0x10(%rbp), %rax
movq -0x50(%rbp), %rcx
movb 0x3(%rax,%rcx), %al
movb %al, -0x58(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0x59(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x1(%rax,%rcx), %al
movb %al, -0x5a(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x2(%rax,%rcx), %al
movb %al, -0x5b(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x3(%rax,%rcx), %al
movb %al, -0x5c(%rbp)
movzbl -0x51(%rbp), %eax
movzbl -0x55(%rbp), %ecx
movzbl -0x59(%rbp), %edx
addl %edx, %ecx
sarl %ecx
addl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, (%rax,%rcx)
movzbl -0x52(%rbp), %eax
movzbl -0x56(%rbp), %ecx
movzbl -0x5a(%rbp), %edx
addl %edx, %ecx
sarl %ecx
addl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x1(%rax,%rcx)
movzbl -0x53(%rbp), %eax
movzbl -0x57(%rbp), %ecx
movzbl -0x5b(%rbp), %edx
addl %edx, %ecx
sarl %ecx
addl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x2(%rax,%rcx)
movzbl -0x54(%rbp), %eax
movzbl -0x58(%rbp), %ecx
movzbl -0x5c(%rbp), %edx
addl %edx, %ecx
sarl %ecx
addl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x3(%rax,%rcx)
movq -0x40(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x40(%rbp)
movq -0x50(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x50(%rbp)
jmp 0x1bcb8
jmp 0x1c018
cmpq $0x3, -0x28(%rbp)
jb 0x1bf40
jmp 0x1be29
movq -0x40(%rbp), %rax
addq $0x2, %rax
cmpq -0x38(%rbp), %rax
jae 0x1bf3b
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0x5d(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x1(%rax,%rcx), %al
movb %al, -0x5e(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x2(%rax,%rcx), %al
movb %al, -0x5f(%rbp)
movq -0x10(%rbp), %rax
movq -0x50(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0x60(%rbp)
movq -0x10(%rbp), %rax
movq -0x50(%rbp), %rcx
movb 0x1(%rax,%rcx), %al
movb %al, -0x61(%rbp)
movq -0x10(%rbp), %rax
movq -0x50(%rbp), %rcx
movb 0x2(%rax,%rcx), %al
movb %al, -0x62(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0x63(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x1(%rax,%rcx), %al
movb %al, -0x64(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x2(%rax,%rcx), %al
movb %al, -0x65(%rbp)
movzbl -0x5d(%rbp), %eax
movzbl -0x60(%rbp), %ecx
movzbl -0x63(%rbp), %edx
addl %edx, %ecx
sarl %ecx
addl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, (%rax,%rcx)
movzbl -0x5e(%rbp), %eax
movzbl -0x61(%rbp), %ecx
movzbl -0x64(%rbp), %edx
addl %edx, %ecx
sarl %ecx
addl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x1(%rax,%rcx)
movzbl -0x5f(%rbp), %eax
movzbl -0x62(%rbp), %ecx
movzbl -0x65(%rbp), %edx
addl %edx, %ecx
sarl %ecx
addl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x2(%rax,%rcx)
movq -0x40(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x40(%rbp)
movq -0x50(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x50(%rbp)
jmp 0x1be29
jmp 0x1c016
cmpq $0x2, -0x28(%rbp)
jb 0x1c014
jmp 0x1bf4d
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq -0x38(%rbp), %rax
jae 0x1c012
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0x66(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x1(%rax,%rcx), %al
movb %al, -0x67(%rbp)
movq -0x10(%rbp), %rax
movq -0x50(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0x68(%rbp)
movq -0x10(%rbp), %rax
movq -0x50(%rbp), %rcx
movb 0x1(%rax,%rcx), %al
movb %al, -0x69(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0x6a(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x1(%rax,%rcx), %al
movb %al, -0x6b(%rbp)
movzbl -0x66(%rbp), %eax
movzbl -0x68(%rbp), %ecx
movzbl -0x6a(%rbp), %edx
addl %edx, %ecx
sarl %ecx
addl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, (%rax,%rcx)
movzbl -0x67(%rbp), %eax
movzbl -0x69(%rbp), %ecx
movzbl -0x6b(%rbp), %edx
addl %edx, %ecx
sarl %ecx
addl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x1(%rax,%rcx)
movq -0x40(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x40(%rbp)
movq -0x50(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x50(%rbp)
jmp 0x1bf4d
jmp 0x1c014
jmp 0x1c016
jmp 0x1c018
jmp 0x1c01a
movq -0x40(%rbp), %rax
cmpq -0x38(%rbp), %rax
je 0x1c075
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movq -0x10(%rbp), %rcx
movq -0x50(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
movq -0x20(%rbp), %rdx
movq -0x40(%rbp), %rsi
movzbl (%rdx,%rsi), %edx
addl %edx, %ecx
sarl %ecx
addl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
movq -0x50(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x50(%rbp)
jmp 0x1c01a
jmp 0x1c10f
movq $0x0, -0x78(%rbp)
movq $0x0, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpq -0x28(%rbp), %rax
je 0x1c0b8
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x1c08a
movq -0x28(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpq -0x38(%rbp), %rax
je 0x1c10d
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movq -0x10(%rbp), %rcx
movq -0x78(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
sarl %ecx
addl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
movq -0x78(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x78(%rbp)
jmp 0x1c0c0
jmp 0x1c10f
jmp 0x1d0ef
cmpq $0x0, -0x20(%rbp)
je 0x1d045
cmpq $0x8, -0x28(%rbp)
jne 0x1c57f
movb $0x0, -0x7a(%rbp)
movb $0x0, -0x7c(%rbp)
movb $0x0, -0x7e(%rbp)
movb $0x0, -0x80(%rbp)
movb $0x0, -0x82(%rbp)
movb $0x0, -0x84(%rbp)
movb $0x0, -0x86(%rbp)
movb $0x0, -0x88(%rbp)
movb $0x0, -0x8a(%rbp)
movb $0x0, -0x8c(%rbp)
movb $0x0, -0x8e(%rbp)
movb $0x0, -0x90(%rbp)
movb $0x0, -0x92(%rbp)
movb $0x0, -0x94(%rbp)
movb $0x0, -0x96(%rbp)
movb $0x0, -0x98(%rbp)
movq $0x0, -0x40(%rbp)
movq -0x40(%rbp), %rax
addq $0x7, %rax
cmpq -0x38(%rbp), %rax
jae 0x1c57a
movb -0x7a(%rbp), %al
movb %al, -0x7b(%rbp)
movb -0x7e(%rbp), %al
movb %al, -0x7f(%rbp)
movb -0x82(%rbp), %al
movb %al, -0x83(%rbp)
movb -0x86(%rbp), %al
movb %al, -0x87(%rbp)
movb -0x8a(%rbp), %al
movb %al, -0x8b(%rbp)
movb -0x8e(%rbp), %al
movb %al, -0x8f(%rbp)
movb -0x92(%rbp), %al
movb %al, -0x93(%rbp)
movb -0x96(%rbp), %al
movb %al, -0x97(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0x7a(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x1(%rax,%rcx), %al
movb %al, -0x7e(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x2(%rax,%rcx), %al
movb %al, -0x82(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x3(%rax,%rcx), %al
movb %al, -0x86(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x4(%rax,%rcx), %al
movb %al, -0x8a(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x5(%rax,%rcx), %al
movb %al, -0x8e(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x6(%rax,%rcx), %al
movb %al, -0x92(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x7(%rax,%rcx), %al
movb %al, -0x96(%rbp)
movb -0x7c(%rbp), %al
movb %al, -0x79(%rbp)
movb -0x80(%rbp), %al
movb %al, -0x7d(%rbp)
movb -0x84(%rbp), %al
movb %al, -0x81(%rbp)
movb -0x88(%rbp), %al
movb %al, -0x85(%rbp)
movb -0x8c(%rbp), %al
movb %al, -0x89(%rbp)
movb -0x90(%rbp), %al
movb %al, -0x8d(%rbp)
movb -0x94(%rbp), %al
movb %al, -0x91(%rbp)
movb -0x98(%rbp), %al
movb %al, -0x95(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0x108(%rbp)
movb -0x79(%rbp), %cl
movb -0x7a(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0x7b(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0x108(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0x7c(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl 0x1(%rax,%rcx), %eax
movl %eax, -0x104(%rbp)
movb -0x7d(%rbp), %cl
movb -0x7e(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0x7f(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0x104(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0x80(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl 0x2(%rax,%rcx), %eax
movl %eax, -0x100(%rbp)
movb -0x81(%rbp), %cl
movb -0x82(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0x83(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0x100(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0x84(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl 0x3(%rax,%rcx), %eax
movl %eax, -0xfc(%rbp)
movb -0x85(%rbp), %cl
movb -0x86(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0x87(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0xfc(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0x88(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl 0x4(%rax,%rcx), %eax
movl %eax, -0xf8(%rbp)
movb -0x89(%rbp), %cl
movb -0x8a(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0x8b(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0xf8(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0x8c(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl 0x5(%rax,%rcx), %eax
movl %eax, -0xf4(%rbp)
movb -0x8d(%rbp), %cl
movb -0x8e(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0x8f(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0xf4(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0x90(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl 0x6(%rax,%rcx), %eax
movl %eax, -0xf0(%rbp)
movb -0x91(%rbp), %cl
movb -0x92(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0x93(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0xf0(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0x94(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl 0x7(%rax,%rcx), %eax
movl %eax, -0xec(%rbp)
movb -0x95(%rbp), %cl
movb -0x96(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0x97(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0xec(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0x98(%rbp)
movb -0x7c(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, (%rax,%rcx)
movb -0x80(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x1(%rax,%rcx)
movb -0x84(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x2(%rax,%rcx)
movb -0x88(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x3(%rax,%rcx)
movb -0x8c(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x4(%rax,%rcx)
movb -0x90(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x5(%rax,%rcx)
movb -0x94(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x6(%rax,%rcx)
movb -0x98(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x7(%rax,%rcx)
movq -0x40(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x40(%rbp)
jmp 0x1c196
jmp 0x1cfc3
cmpq $0x6, -0x28(%rbp)
jne 0x1c90b
movb $0x0, -0x9a(%rbp)
movb $0x0, -0x9c(%rbp)
movb $0x0, -0x9e(%rbp)
movb $0x0, -0xa0(%rbp)
movb $0x0, -0xa2(%rbp)
movb $0x0, -0xa4(%rbp)
movb $0x0, -0xa6(%rbp)
movb $0x0, -0xa8(%rbp)
movb $0x0, -0xaa(%rbp)
movb $0x0, -0xac(%rbp)
movb $0x0, -0xae(%rbp)
movb $0x0, -0xb0(%rbp)
movq $0x0, -0x40(%rbp)
movq -0x40(%rbp), %rax
addq $0x5, %rax
cmpq -0x38(%rbp), %rax
jae 0x1c906
movb -0x9a(%rbp), %al
movb %al, -0x9b(%rbp)
movb -0x9e(%rbp), %al
movb %al, -0x9f(%rbp)
movb -0xa2(%rbp), %al
movb %al, -0xa3(%rbp)
movb -0xa6(%rbp), %al
movb %al, -0xa7(%rbp)
movb -0xaa(%rbp), %al
movb %al, -0xab(%rbp)
movb -0xae(%rbp), %al
movb %al, -0xaf(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0x9a(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x1(%rax,%rcx), %al
movb %al, -0x9e(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x2(%rax,%rcx), %al
movb %al, -0xa2(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x3(%rax,%rcx), %al
movb %al, -0xa6(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x4(%rax,%rcx), %al
movb %al, -0xaa(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x5(%rax,%rcx), %al
movb %al, -0xae(%rbp)
movb -0x9c(%rbp), %al
movb %al, -0x99(%rbp)
movb -0xa0(%rbp), %al
movb %al, -0x9d(%rbp)
movb -0xa4(%rbp), %al
movb %al, -0xa1(%rbp)
movb -0xa8(%rbp), %al
movb %al, -0xa5(%rbp)
movb -0xac(%rbp), %al
movb %al, -0xa9(%rbp)
movb -0xb0(%rbp), %al
movb %al, -0xad(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0x120(%rbp)
movb -0x99(%rbp), %cl
movb -0x9a(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0x9b(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0x120(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0x9c(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl 0x1(%rax,%rcx), %eax
movl %eax, -0x11c(%rbp)
movb -0x9d(%rbp), %cl
movb -0x9e(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0x9f(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0x11c(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0xa0(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl 0x2(%rax,%rcx), %eax
movl %eax, -0x118(%rbp)
movb -0xa1(%rbp), %cl
movb -0xa2(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0xa3(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0x118(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0xa4(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl 0x3(%rax,%rcx), %eax
movl %eax, -0x114(%rbp)
movb -0xa5(%rbp), %cl
movb -0xa6(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0xa7(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0x114(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0xa8(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl 0x4(%rax,%rcx), %eax
movl %eax, -0x110(%rbp)
movb -0xa9(%rbp), %cl
movb -0xaa(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0xab(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0x110(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0xac(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl 0x5(%rax,%rcx), %eax
movl %eax, -0x10c(%rbp)
movb -0xad(%rbp), %cl
movb -0xae(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0xaf(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0x10c(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0xb0(%rbp)
movb -0x9c(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, (%rax,%rcx)
movb -0xa0(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x1(%rax,%rcx)
movb -0xa4(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x2(%rax,%rcx)
movb -0xa8(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x3(%rax,%rcx)
movb -0xac(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x4(%rax,%rcx)
movb -0xb0(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x5(%rax,%rcx)
movq -0x40(%rbp), %rax
addq $0x6, %rax
movq %rax, -0x40(%rbp)
jmp 0x1c5e6
jmp 0x1cfc1
cmpq $0x4, -0x28(%rbp)
jne 0x1cb7b
movb $0x0, -0xb2(%rbp)
movb $0x0, -0xb4(%rbp)
movb $0x0, -0xb6(%rbp)
movb $0x0, -0xb8(%rbp)
movb $0x0, -0xba(%rbp)
movb $0x0, -0xbc(%rbp)
movb $0x0, -0xbe(%rbp)
movb $0x0, -0xc0(%rbp)
movq $0x0, -0x40(%rbp)
movq -0x40(%rbp), %rax
addq $0x3, %rax
cmpq -0x38(%rbp), %rax
jae 0x1cb76
movb -0xb2(%rbp), %al
movb %al, -0xb3(%rbp)
movb -0xb6(%rbp), %al
movb %al, -0xb7(%rbp)
movb -0xba(%rbp), %al
movb %al, -0xbb(%rbp)
movb -0xbe(%rbp), %al
movb %al, -0xbf(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0xb2(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x1(%rax,%rcx), %al
movb %al, -0xb6(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x2(%rax,%rcx), %al
movb %al, -0xba(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x3(%rax,%rcx), %al
movb %al, -0xbe(%rbp)
movb -0xb4(%rbp), %al
movb %al, -0xb1(%rbp)
movb -0xb8(%rbp), %al
movb %al, -0xb5(%rbp)
movb -0xbc(%rbp), %al
movb %al, -0xb9(%rbp)
movb -0xc0(%rbp), %al
movb %al, -0xbd(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0x130(%rbp)
movb -0xb1(%rbp), %cl
movb -0xb2(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0xb3(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0x130(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0xb4(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl 0x1(%rax,%rcx), %eax
movl %eax, -0x12c(%rbp)
movb -0xb5(%rbp), %cl
movb -0xb6(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0xb7(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0x12c(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0xb8(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl 0x2(%rax,%rcx), %eax
movl %eax, -0x128(%rbp)
movb -0xb9(%rbp), %cl
movb -0xba(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0xbb(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0x128(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0xbc(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl 0x3(%rax,%rcx), %eax
movl %eax, -0x124(%rbp)
movb -0xbd(%rbp), %cl
movb -0xbe(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0xbf(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0x124(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0xc0(%rbp)
movb -0xb4(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, (%rax,%rcx)
movb -0xb8(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x1(%rax,%rcx)
movb -0xbc(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x2(%rax,%rcx)
movb -0xc0(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x3(%rax,%rcx)
movq -0x40(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x40(%rbp)
jmp 0x1c956
jmp 0x1cfbf
cmpq $0x3, -0x28(%rbp)
jne 0x1cd5d
movb $0x0, -0xc2(%rbp)
movb $0x0, -0xc4(%rbp)
movb $0x0, -0xc6(%rbp)
movb $0x0, -0xc8(%rbp)
movb $0x0, -0xca(%rbp)
movb $0x0, -0xcc(%rbp)
movq $0x0, -0x40(%rbp)
movq -0x40(%rbp), %rax
addq $0x2, %rax
cmpq -0x38(%rbp), %rax
jae 0x1cd58
movb -0xc2(%rbp), %al
movb %al, -0xc3(%rbp)
movb -0xc6(%rbp), %al
movb %al, -0xc7(%rbp)
movb -0xca(%rbp), %al
movb %al, -0xcb(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0xc2(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x1(%rax,%rcx), %al
movb %al, -0xc6(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x2(%rax,%rcx), %al
movb %al, -0xca(%rbp)
movb -0xc4(%rbp), %al
movb %al, -0xc1(%rbp)
movb -0xc8(%rbp), %al
movb %al, -0xc5(%rbp)
movb -0xcc(%rbp), %al
movb %al, -0xc9(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0x13c(%rbp)
movb -0xc1(%rbp), %cl
movb -0xc2(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0xc3(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0x13c(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0xc4(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl 0x1(%rax,%rcx), %eax
movl %eax, -0x138(%rbp)
movb -0xc5(%rbp), %cl
movb -0xc6(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0xc7(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0x138(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0xc8(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl 0x2(%rax,%rcx), %eax
movl %eax, -0x134(%rbp)
movb -0xc9(%rbp), %cl
movb -0xca(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0xcb(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0x134(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0xcc(%rbp)
movb -0xc4(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, (%rax,%rcx)
movb -0xc8(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x1(%rax,%rcx)
movb -0xcc(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x2(%rax,%rcx)
movq -0x40(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x40(%rbp)
jmp 0x1cbb8
jmp 0x1cfbd
cmpq $0x2, -0x28(%rbp)
jne 0x1ceb1
movb $0x0, -0xce(%rbp)
movb $0x0, -0xd0(%rbp)
movb $0x0, -0xd2(%rbp)
movb $0x0, -0xd4(%rbp)
movq $0x0, -0x40(%rbp)
movq -0x40(%rbp), %rax
addq $0x1, %rax
cmpq -0x38(%rbp), %rax
jae 0x1ceac
movb -0xce(%rbp), %al
movb %al, -0xcf(%rbp)
movb -0xd2(%rbp), %al
movb %al, -0xd3(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0xce(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb 0x1(%rax,%rcx), %al
movb %al, -0xd2(%rbp)
movb -0xd0(%rbp), %al
movb %al, -0xcd(%rbp)
movb -0xd4(%rbp), %al
movb %al, -0xd1(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0x144(%rbp)
movb -0xcd(%rbp), %cl
movb -0xce(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0xcf(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0x144(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0xd0(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl 0x1(%rax,%rcx), %eax
movl %eax, -0x140(%rbp)
movb -0xd1(%rbp), %cl
movb -0xd2(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0xd3(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0x140(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0xd4(%rbp)
movb -0xd0(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, (%rax,%rcx)
movb -0xd4(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, 0x1(%rax,%rcx)
movq -0x40(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x40(%rbp)
jmp 0x1cd8c
jmp 0x1cfbb
cmpq $0x1, -0x28(%rbp)
jne 0x1cf70
movb $0x0, -0xd6(%rbp)
movb $0x0, -0xd8(%rbp)
movq $0x0, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpq -0x38(%rbp), %rax
je 0x1cf6e
movb -0xd6(%rbp), %al
movb %al, -0xd7(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0xd6(%rbp)
movb -0xd8(%rbp), %al
movb %al, -0xd5(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0x148(%rbp)
movb -0xd5(%rbp), %cl
movb -0xd6(%rbp), %al
movzbl %cl, %edi
movzbl %al, %esi
movzbl -0xd7(%rbp), %edx
callq 0x1d110
movb %al, %cl
movl -0x148(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, -0xd8(%rbp)
movb -0xd8(%rbp), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x1ced2
jmp 0x1cfb9
movq $0x0, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpq -0x28(%rbp), %rax
je 0x1cfb7
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movq -0x20(%rbp), %rcx
movq -0x40(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x1cf78
jmp 0x1cfb9
jmp 0x1cfbb
jmp 0x1cfbd
jmp 0x1cfbf
jmp 0x1cfc1
jmp 0x1cfc3
jmp 0x1cfc5
movq -0x40(%rbp), %rax
cmpq -0x38(%rbp), %rax
je 0x1d040
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0x14c(%rbp)
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
subq -0x28(%rbp), %rcx
movb (%rax,%rcx), %sil
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
subq -0x28(%rbp), %rcx
movzbl %sil, %edi
movzbl %dl, %esi
movzbl (%rax,%rcx), %edx
callq 0x1d110
movb %al, %cl
movl -0x14c(%rbp), %eax
movzbl %cl, %ecx
addl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x1cfc5
jmp 0x1d0e4
movq $0x0, -0xe0(%rbp)
movq $0x0, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpq -0x28(%rbp), %rax
je 0x1d086
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x1d058
movq -0x28(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpq -0x38(%rbp), %rax
je 0x1d0e2
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movq -0x10(%rbp), %rcx
movq -0xe0(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq -0x40(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
movq -0xe0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xe0(%rbp)
jmp 0x1d08e
jmp 0x1d0e4
jmp 0x1d0ef
movl $0x24, -0x4(%rbp)
jmp 0x1d0f6
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x150, %rsp            # imm = 0x150
popq %rbp
retq
nopw %cs:(%rax,%rax)