// File: /workspace/github_c_makefile_star2_O0/patriciogonzalezvivo[P]tprint/include/std/stb_image.h
// Function: stbi__create_png_image_raw(stbi__png*, unsigned char*, unsigned int, int, unsigned int, unsigned int, int, int)
static int stbi__create_png_image_raw(stbi__png *a, stbi_uc *raw, stbi__uint32 raw_len, int out_n, stbi__uint32 x, stbi__uint32 y, int depth, int color)
{
   stbi__context *s = a->s;
   stbi__uint32 i,j,stride = x*out_n;
   stbi__uint32 img_len, img_width_bytes;
   int k;
   int img_n = s->img_n; // copy it into a local for later

   STBI_ASSERT(out_n == s->img_n || out_n == s->img_n+1);
   a->out = (stbi_uc *) stbi__malloc(x * y * out_n); // extra bytes to write off the end into
   if (!a->out) return stbi__err("outofmem", "Out of memory");

   img_width_bytes = (((img_n * x * depth) + 7) >> 3);
   img_len = (img_width_bytes + 1) * y;
   if (s->img_x == x && s->img_y == y) {
      if (raw_len != img_len) return stbi__err("not enough pixels","Corrupt PNG");
   } else { // interlaced:
      if (raw_len < img_len) return stbi__err("not enough pixels","Corrupt PNG");
   }

   for (j=0; j < y; ++j) {
      stbi_uc *cur = a->out + stride*j;
      stbi_uc *prior = cur - stride;
      int filter = *raw++;
      int filter_bytes = img_n;
      int width = x;
      if (filter > 4)
         return stbi__err("invalid filter","Corrupt PNG");

      if (depth < 8) {
         STBI_ASSERT(img_width_bytes <= x);
         cur += x*out_n - img_width_bytes; // store output to the rightmost img_len bytes, so we can decode in place
         filter_bytes = 1;
         width = img_width_bytes;
      }

      // if first row, use special filter that doesn't sample previous row
      if (j == 0) filter = first_row_filter[filter];

      // handle first byte explicitly
      for (k=0; k < filter_bytes; ++k) {
         switch (filter) {
            case STBI__F_none       : cur[k] = raw[k]; break;
            case STBI__F_sub        : cur[k] = raw[k]; break;
            case STBI__F_up         : cur[k] = STBI__BYTECAST(raw[k] + prior[k]); break;
            case STBI__F_avg        : cur[k] = STBI__BYTECAST(raw[k] + (prior[k]>>1)); break;
            case STBI__F_paeth      : cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(0,prior[k],0)); break;
            case STBI__F_avg_first  : cur[k] = raw[k]; break;
            case STBI__F_paeth_first: cur[k] = raw[k]; break;
         }
      }

      if (depth == 8) {
         if (img_n != out_n)
            cur[img_n] = 255; // first pixel
         raw += img_n;
         cur += out_n;
         prior += out_n;
      } else {
         raw += 1;
         cur += 1;
         prior += 1;
      }

      // this is a little gross, so that we don't switch per-pixel or per-component
      if (depth < 8 || img_n == out_n) {
         int nk = (width - 1)*img_n;
         #define CASE(f) \
             case f:     \
                for (k=0; k < nk; ++k)
         switch (filter) {
            // "none" filter turns into a memcpy here; make that explicit.
            case STBI__F_none:         memcpy(cur, raw, nk); break;
            CASE(STBI__F_sub)          cur[k] = STBI__BYTECAST(raw[k] + cur[k-filter_bytes]); break;
            CASE(STBI__F_up)           cur[k] = STBI__BYTECAST(raw[k] + prior[k]); break;
            CASE(STBI__F_avg)          cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-filter_bytes])>>1)); break;
            CASE(STBI__F_paeth)        cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],prior[k],prior[k-filter_bytes])); break;
            CASE(STBI__F_avg_first)    cur[k] = STBI__BYTECAST(raw[k] + (cur[k-filter_bytes] >> 1)); break;
            CASE(STBI__F_paeth_first)  cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],0,0)); break;
         }
         #undef CASE
         raw += nk;
      } else {
         STBI_ASSERT(img_n+1 == out_n);
         #define CASE(f) \
             case f:     \
                for (i=x-1; i >= 1; --i, cur[img_n]=255,raw+=img_n,cur+=out_n,prior+=out_n) \
                   for (k=0; k < img_n; ++k)
         switch (filter) {
            CASE(STBI__F_none)         cur[k] = raw[k]; break;
            CASE(STBI__F_sub)          cur[k] = STBI__BYTECAST(raw[k] + cur[k-out_n]); break;
            CASE(STBI__F_up)           cur[k] = STBI__BYTECAST(raw[k] + prior[k]); break;
            CASE(STBI__F_avg)          cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-out_n])>>1)); break;
            CASE(STBI__F_paeth)        cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-out_n],prior[k],prior[k-out_n])); break;
            CASE(STBI__F_avg_first)    cur[k] = STBI__BYTECAST(raw[k] + (cur[k-out_n] >> 1)); break;
            CASE(STBI__F_paeth_first)  cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-out_n],0,0)); break;
         }
         #undef CASE
      }
   }

   // we make a separate pass to expand bits to pixels; for performance,
   // this could run two scanlines behind the above code, so it won't
   // intefere with filtering but will still be in the cache.
   if (depth < 8) {
      for (j=0; j < y; ++j) {
         stbi_uc *cur = a->out + stride*j;
         stbi_uc *in  = a->out + stride*j + x*out_n - img_width_bytes;
         // unpack 1/2/4-bit into a 8-bit buffer. allows us to keep the common 8-bit path optimal at minimal cost for 1/2/4-bit
         // png guarante byte alignment, if width is not multiple of 8/4/2 we'll decode dummy trailing data that will be skipped in the later loop
         stbi_uc scale = (color == 0) ? stbi__depth_scale_table[depth] : 1; // scale grayscale values to 0..255 range

         // note that the final byte might overshoot and write more data than desired.
         // we can allocate enough data that this never writes out of memory, but it
         // could also overwrite the next scanline. can it overwrite non-empty data
         // on the next scanline? yes, consider 1-pixel-wide scanlines with 1-bit-per-pixel.
         // so we need to explicitly clamp the final ones

         if (depth == 4) {
            for (k=x*img_n; k >= 2; k-=2, ++in) {
               *cur++ = scale * ((*in >> 4)       );
               *cur++ = scale * ((*in     ) & 0x0f);
            }
            if (k > 0) *cur++ = scale * ((*in >> 4)       );
         } else if (depth == 2) {
            for (k=x*img_n; k >= 4; k-=4, ++in) {
               *cur++ = scale * ((*in >> 6)       );
               *cur++ = scale * ((*in >> 4) & 0x03);
               *cur++ = scale * ((*in >> 2) & 0x03);
               *cur++ = scale * ((*in     ) & 0x03);
            }
            if (k > 0) *cur++ = scale * ((*in >> 6)       );
            if (k > 1) *cur++ = scale * ((*in >> 4) & 0x03);
            if (k > 2) *cur++ = scale * ((*in >> 2) & 0x03);
         } else if (depth == 1) {
            for (k=x*img_n; k >= 8; k-=8, ++in) {
               *cur++ = scale * ((*in >> 7)       );
               *cur++ = scale * ((*in >> 6) & 0x01);
               *cur++ = scale * ((*in >> 5) & 0x01);
               *cur++ = scale * ((*in >> 4) & 0x01);
               *cur++ = scale * ((*in >> 3) & 0x01);
               *cur++ = scale * ((*in >> 2) & 0x01);
               *cur++ = scale * ((*in >> 1) & 0x01);
               *cur++ = scale * ((*in     ) & 0x01);
            }
            if (k > 0) *cur++ = scale * ((*in >> 7)       );
            if (k > 1) *cur++ = scale * ((*in >> 6) & 0x01);
            if (k > 2) *cur++ = scale * ((*in >> 5) & 0x01);
            if (k > 3) *cur++ = scale * ((*in >> 4) & 0x01);
            if (k > 4) *cur++ = scale * ((*in >> 3) & 0x01);
            if (k > 5) *cur++ = scale * ((*in >> 2) & 0x01);
            if (k > 6) *cur++ = scale * ((*in >> 1) & 0x01);
         }
         if (img_n != out_n) {
            // insert alpha = 255
            stbi_uc *cur = a->out + stride*j;
            int i;
            if (img_n == 1) {
               for (i=x-1; i >= 0; --i) {
                  cur[i*2+1] = 255;
                  cur[i*2+0] = cur[i];
               }
            } else {
               STBI_ASSERT(img_n == 3);
               for (i=x-1; i >= 0; --i) {
                  cur[i*4+3] = 255;
                  cur[i*4+2] = cur[i*3+2];
                  cur[i*4+1] = cur[i*3+1];
                  cur[i*4+0] = cur[i*3+0];
               }
            }
         }
      }
   }

   return 1;
}

// Assembly:
subq $0xd8, %rsp
movl 0xe8(%rsp), %eax
movl 0xe0(%rsp), %eax
movq %rdi, 0xc8(%rsp)
movq %rsi, 0xc0(%rsp)
movl %edx, 0xbc(%rsp)
movl %ecx, 0xb8(%rsp)
movl %r8d, 0xb4(%rsp)
movl %r9d, 0xb0(%rsp)
movq 0xc8(%rsp), %rax
movq (%rax), %rax
movq %rax, 0xa8(%rsp)
movl 0xb4(%rsp), %eax
imull 0xb8(%rsp), %eax
movl %eax, 0x9c(%rsp)
movq 0xa8(%rsp), %rax
movl 0x8(%rax), %eax
movl %eax, 0x8c(%rsp)
movl 0xb8(%rsp), %ecx
movq 0xa8(%rsp), %rdx
movb $0x1, %al
cmpl 0x8(%rdx), %ecx
movb %al, 0x43(%rsp)
je 0x26de6
movl 0xb8(%rsp), %eax
movq 0xa8(%rsp), %rcx
movl 0x8(%rcx), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
sete %al
movb %al, 0x43(%rsp)
movb 0x43(%rsp), %al
testb $0x1, %al
jne 0x26df0
jmp 0x26df2
jmp 0x26e11
leaq 0x6fe8(%rip), %rdi      # 0x2dde1
leaq 0x6e13(%rip), %rsi      # 0x2dc13
movl $0xf7d, %edx            # imm = 0xF7D
leaq 0x6ffe(%rip), %rcx      # 0x2de0a
callq 0xd270
movl 0xb4(%rsp), %eax
imull 0xb0(%rsp), %eax
imull 0xb8(%rsp), %eax
movl %eax, %eax
movl %eax, %edi
callq 0x1ac80
movq %rax, %rcx
movq 0xc8(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0xc8(%rsp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x26e67
leaq 0x6ced(%rip), %rdi      # 0x2db43
callq 0x1a190
movl %eax, 0xd4(%rsp)
jmp 0x2875a
movl 0x8c(%rsp), %eax
imull 0xb4(%rsp), %eax
imull 0xe0(%rsp), %eax
addl $0x7, %eax
shrl $0x3, %eax
movl %eax, 0x94(%rsp)
movl 0x94(%rsp), %eax
addl $0x1, %eax
imull 0xb0(%rsp), %eax
movl %eax, 0x98(%rsp)
movq 0xa8(%rsp), %rax
movl (%rax), %eax
cmpl 0xb4(%rsp), %eax
jne 0x26ef5
movq 0xa8(%rsp), %rax
movl 0x4(%rax), %eax
cmpl 0xb0(%rsp), %eax
jne 0x26ef5
movl 0xbc(%rsp), %eax
cmpl 0x98(%rsp), %eax
je 0x26ef3
leaq 0x6f98(%rip), %rdi      # 0x2de7a
callq 0x1a190
movl %eax, 0xd4(%rsp)
jmp 0x2875a
jmp 0x26f1f
movl 0xbc(%rsp), %eax
cmpl 0x98(%rsp), %eax
jae 0x26f1d
leaq 0x6f6e(%rip), %rdi      # 0x2de7a
callq 0x1a190
movl %eax, 0xd4(%rsp)
jmp 0x2875a
jmp 0x26f1f
movl $0x0, 0xa0(%rsp)
movl 0xa0(%rsp), %eax
cmpl 0xb0(%rsp), %eax
jae 0x27f4e
movq 0xc8(%rsp), %rax
movq 0x18(%rax), %rax
movl 0x9c(%rsp), %ecx
imull 0xa0(%rsp), %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, 0x80(%rsp)
movq 0x80(%rsp), %rax
movl 0x9c(%rsp), %ecx
movl %ecx, %edx
xorl %ecx, %ecx
subq %rdx, %rcx
addq %rcx, %rax
movq %rax, 0x78(%rsp)
movq 0xc0(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0xc0(%rsp)
movzbl (%rax), %eax
movl %eax, 0x74(%rsp)
movl 0x8c(%rsp), %eax
movl %eax, 0x70(%rsp)
movl 0xb4(%rsp), %eax
movl %eax, 0x6c(%rsp)
cmpl $0x4, 0x74(%rsp)
jle 0x26fd7
leaq 0x6ec6(%rip), %rdi      # 0x2de8c
callq 0x1a190
movl %eax, 0xd4(%rsp)
jmp 0x2875a
cmpl $0x8, 0xe0(%rsp)
jge 0x27050
movl 0x94(%rsp), %eax
cmpl 0xb4(%rsp), %eax
ja 0x26ff3
jmp 0x27012
leaq 0x6ea1(%rip), %rdi      # 0x2de9b
leaq 0x6c12(%rip), %rsi      # 0x2dc13
movl $0xf93, %edx            # imm = 0xF93
leaq 0x6dfd(%rip), %rcx      # 0x2de0a
callq 0xd270
movl 0xb4(%rsp), %ecx
imull 0xb8(%rsp), %ecx
subl 0x94(%rsp), %ecx
movq 0x80(%rsp), %rax
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, 0x80(%rsp)
movl $0x1, 0x70(%rsp)
movl 0x94(%rsp), %eax
movl %eax, 0x6c(%rsp)
cmpl $0x0, 0xa0(%rsp)
jne 0x2706e
movslq 0x74(%rsp), %rcx
leaq 0xf4d3(%rip), %rax      # 0x36539
movzbl (%rax,%rcx), %eax
movl %eax, 0x74(%rsp)
movl $0x0, 0x90(%rsp)
movl 0x90(%rsp), %eax
cmpl 0x70(%rsp), %eax
jge 0x27252
movl 0x74(%rsp), %eax
movq %rax, 0x38(%rsp)
subq $0x6, %rax
ja 0x2723a
movq 0x38(%rsp), %rax
leaq 0x6887(%rip), %rcx      # 0x2d930
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0xc0(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb (%rax,%rcx), %dl
movq 0x80(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb %dl, (%rax,%rcx)
jmp 0x2723a
movq 0xc0(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb (%rax,%rcx), %dl
movq 0x80(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb %dl, (%rax,%rcx)
jmp 0x2723a
movq 0xc0(%rsp), %rax
movslq 0x90(%rsp), %rcx
movzbl (%rax,%rcx), %eax
movq 0x78(%rsp), %rcx
movslq 0x90(%rsp), %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq 0x80(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb %dl, (%rax,%rcx)
jmp 0x2723a
movq 0xc0(%rsp), %rax
movslq 0x90(%rsp), %rcx
movzbl (%rax,%rcx), %eax
movq 0x78(%rsp), %rcx
movslq 0x90(%rsp), %rdx
movzbl (%rcx,%rdx), %ecx
sarl %ecx
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq 0x80(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb %dl, (%rax,%rcx)
jmp 0x2723a
movq 0xc0(%rsp), %rax
movslq 0x90(%rsp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, 0x34(%rsp)
movq 0x78(%rsp), %rax
movslq 0x90(%rsp), %rcx
movzbl (%rax,%rcx), %esi
xorl %edx, %edx
movl %edx, %edi
callq 0x28770
movl %eax, %ecx
movl 0x34(%rsp), %eax
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq 0x80(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb %dl, (%rax,%rcx)
jmp 0x2723a
movq 0xc0(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb (%rax,%rcx), %dl
movq 0x80(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb %dl, (%rax,%rcx)
jmp 0x2723a
movq 0xc0(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb (%rax,%rcx), %dl
movq 0x80(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb %dl, (%rax,%rcx)
jmp 0x2723c
movl 0x90(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x90(%rsp)
jmp 0x27079
cmpl $0x8, 0xe0(%rsp)
jne 0x272d3
movl 0x8c(%rsp), %eax
cmpl 0xb8(%rsp), %eax
je 0x27280
movq 0x80(%rsp), %rax
movslq 0x8c(%rsp), %rcx
movb $-0x1, (%rax,%rcx)
movl 0x8c(%rsp), %ecx
movq 0xc0(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0xc0(%rsp)
movl 0xb8(%rsp), %ecx
movq 0x80(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x80(%rsp)
movl 0xb8(%rsp), %ecx
movq 0x78(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x78(%rsp)
jmp 0x27309
movq 0xc0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xc0(%rsp)
movq 0x80(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x80(%rsp)
movq 0x78(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x78(%rsp)
cmpl $0x8, 0xe0(%rsp)
jl 0x27327
movl 0x8c(%rsp), %eax
cmpl 0xb8(%rsp), %eax
jne 0x276d9
movl 0x6c(%rsp), %eax
decl %eax
movl 0x8c(%rsp), %ecx
imull %ecx, %eax
movl %eax, 0x68(%rsp)
movl 0x74(%rsp), %eax
movq %rax, 0x28(%rsp)
subq $0x6, %rax
ja 0x276ba
movq 0x28(%rsp), %rax
leaq 0x65ba(%rip), %rcx      # 0x2d914
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x80(%rsp), %rdi
movq 0xc0(%rsp), %rsi
movslq 0x68(%rsp), %rdx
callq 0xd330
jmp 0x276ba
movl $0x0, 0x90(%rsp)
movl 0x90(%rsp), %eax
cmpl 0x68(%rsp), %eax
jge 0x273f7
movq 0xc0(%rsp), %rax
movslq 0x90(%rsp), %rcx
movzbl (%rax,%rcx), %eax
movq 0x80(%rsp), %rcx
movl 0x90(%rsp), %edx
subl 0x70(%rsp), %edx
movslq %edx, %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq 0x80(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb %dl, (%rax,%rcx)
movl 0x90(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x90(%rsp)
jmp 0x2738d
jmp 0x276ba
movl $0x0, 0x90(%rsp)
movl 0x90(%rsp), %eax
cmpl 0x68(%rsp), %eax
jge 0x27468
movq 0xc0(%rsp), %rax
movslq 0x90(%rsp), %rcx
movzbl (%rax,%rcx), %eax
movq 0x78(%rsp), %rcx
movslq 0x90(%rsp), %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq 0x80(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb %dl, (%rax,%rcx)
movl 0x90(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x90(%rsp)
jmp 0x27407
jmp 0x276ba
movl $0x0, 0x90(%rsp)
movl 0x90(%rsp), %eax
cmpl 0x68(%rsp), %eax
jge 0x274f7
movq 0xc0(%rsp), %rax
movslq 0x90(%rsp), %rcx
movzbl (%rax,%rcx), %eax
movq 0x78(%rsp), %rcx
movslq 0x90(%rsp), %rdx
movzbl (%rcx,%rdx), %ecx
movq 0x80(%rsp), %rdx
movl 0x90(%rsp), %esi
subl 0x70(%rsp), %esi
movslq %esi, %rsi
movzbl (%rdx,%rsi), %edx
addl %edx, %ecx
sarl %ecx
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq 0x80(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb %dl, (%rax,%rcx)
movl 0x90(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x90(%rsp)
jmp 0x27478
jmp 0x276ba
movl $0x0, 0x90(%rsp)
movl 0x90(%rsp), %eax
cmpl 0x68(%rsp), %eax
jge 0x275af
movq 0xc0(%rsp), %rax
movslq 0x90(%rsp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, 0x24(%rsp)
movq 0x80(%rsp), %rax
movl 0x90(%rsp), %ecx
subl 0x70(%rsp), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %edi
movq 0x78(%rsp), %rax
movslq 0x90(%rsp), %rcx
movzbl (%rax,%rcx), %esi
movq 0x78(%rsp), %rax
movl 0x90(%rsp), %ecx
subl 0x70(%rsp), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %edx
callq 0x28770
movl %eax, %ecx
movl 0x24(%rsp), %eax
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq 0x80(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb %dl, (%rax,%rcx)
movl 0x90(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x90(%rsp)
jmp 0x27507
jmp 0x276ba
movl $0x0, 0x90(%rsp)
movl 0x90(%rsp), %eax
cmpl 0x68(%rsp), %eax
jge 0x2762b
movq 0xc0(%rsp), %rax
movslq 0x90(%rsp), %rcx
movzbl (%rax,%rcx), %eax
movq 0x80(%rsp), %rcx
movl 0x90(%rsp), %edx
subl 0x70(%rsp), %edx
movslq %edx, %rdx
movzbl (%rcx,%rdx), %ecx
sarl %ecx
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq 0x80(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb %dl, (%rax,%rcx)
movl 0x90(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x90(%rsp)
jmp 0x275bf
jmp 0x276ba
movl $0x0, 0x90(%rsp)
movl 0x90(%rsp), %eax
cmpl 0x68(%rsp), %eax
jge 0x276b8
movq 0xc0(%rsp), %rax
movslq 0x90(%rsp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, 0x20(%rsp)
movq 0x80(%rsp), %rax
movl 0x90(%rsp), %ecx
subl 0x70(%rsp), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %edi
xorl %edx, %edx
movl %edx, %esi
callq 0x28770
movl %eax, %ecx
movl 0x20(%rsp), %eax
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq 0x80(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb %dl, (%rax,%rcx)
movl 0x90(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x90(%rsp)
jmp 0x2763b
jmp 0x276ba
movl 0x68(%rsp), %ecx
movq 0xc0(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0xc0(%rsp)
jmp 0x27f36
movl 0x8c(%rsp), %eax
addl $0x1, %eax
cmpl 0xb8(%rsp), %eax
jne 0x276ee
jmp 0x2770d
leaq 0x67bb(%rip), %rdi      # 0x2deb0
leaq 0x6517(%rip), %rsi      # 0x2dc13
movl $0xfc8, %edx            # imm = 0xFC8
leaq 0x6702(%rip), %rcx      # 0x2de0a
callq 0xd270
movl 0x74(%rsp), %eax
movq %rax, 0x18(%rsp)
subq $0x6, %rax
ja 0x27f34
movq 0x18(%rsp), %rax
leaq 0x61cc(%rip), %rcx      # 0x2d8f8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl 0xb4(%rsp), %eax
subl $0x1, %eax
movl %eax, 0xa4(%rsp)
cmpl $0x1, 0xa4(%rsp)
jb 0x27825
movl $0x0, 0x90(%rsp)
movl 0x90(%rsp), %eax
cmpl 0x8c(%rsp), %eax
jge 0x277a8
movq 0xc0(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb (%rax,%rcx), %dl
movq 0x80(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb %dl, (%rax,%rcx)
movl 0x90(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x90(%rsp)
jmp 0x2775f
jmp 0x277aa
movl 0xa4(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0xa4(%rsp)
movq 0x80(%rsp), %rax
movslq 0x8c(%rsp), %rcx
movb $-0x1, (%rax,%rcx)
movl 0x8c(%rsp), %ecx
movq 0xc0(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0xc0(%rsp)
movl 0xb8(%rsp), %ecx
movq 0x80(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x80(%rsp)
movl 0xb8(%rsp), %ecx
movq 0x78(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x78(%rsp)
jmp 0x27746
jmp 0x27f34
movl 0xb4(%rsp), %eax
subl $0x1, %eax
movl %eax, 0xa4(%rsp)
cmpl $0x1, 0xa4(%rsp)
jb 0x27941
movl $0x0, 0x90(%rsp)
movl 0x90(%rsp), %eax
cmpl 0x8c(%rsp), %eax
jge 0x278c4
movq 0xc0(%rsp), %rax
movslq 0x90(%rsp), %rcx
movzbl (%rax,%rcx), %eax
movq 0x80(%rsp), %rcx
movl 0x90(%rsp), %edx
subl 0xb8(%rsp), %edx
movslq %edx, %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq 0x80(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb %dl, (%rax,%rcx)
movl 0x90(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x90(%rsp)
jmp 0x27854
jmp 0x278c6
movl 0xa4(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0xa4(%rsp)
movq 0x80(%rsp), %rax
movslq 0x8c(%rsp), %rcx
movb $-0x1, (%rax,%rcx)
movl 0x8c(%rsp), %ecx
movq 0xc0(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0xc0(%rsp)
movl 0xb8(%rsp), %ecx
movq 0x80(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x80(%rsp)
movl 0xb8(%rsp), %ecx
movq 0x78(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x78(%rsp)
jmp 0x2783b
jmp 0x27f34
movl 0xb4(%rsp), %eax
subl $0x1, %eax
movl %eax, 0xa4(%rsp)
cmpl $0x1, 0xa4(%rsp)
jb 0x27a51
movl $0x0, 0x90(%rsp)
movl 0x90(%rsp), %eax
cmpl 0x8c(%rsp), %eax
jge 0x279d4
movq 0xc0(%rsp), %rax
movslq 0x90(%rsp), %rcx
movzbl (%rax,%rcx), %eax
movq 0x78(%rsp), %rcx
movslq 0x90(%rsp), %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq 0x80(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb %dl, (%rax,%rcx)
movl 0x90(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x90(%rsp)
jmp 0x27970
jmp 0x279d6
movl 0xa4(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0xa4(%rsp)
movq 0x80(%rsp), %rax
movslq 0x8c(%rsp), %rcx
movb $-0x1, (%rax,%rcx)
movl 0x8c(%rsp), %ecx
movq 0xc0(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0xc0(%rsp)
movl 0xb8(%rsp), %ecx
movq 0x80(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x80(%rsp)
movl 0xb8(%rsp), %ecx
movq 0x78(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x78(%rsp)
jmp 0x27957
jmp 0x27f34
movl 0xb4(%rsp), %eax
subl $0x1, %eax
movl %eax, 0xa4(%rsp)
cmpl $0x1, 0xa4(%rsp)
jb 0x27b85
movl $0x0, 0x90(%rsp)
movl 0x90(%rsp), %eax
cmpl 0x8c(%rsp), %eax
jge 0x27b08
movq 0xc0(%rsp), %rax
movslq 0x90(%rsp), %rcx
movzbl (%rax,%rcx), %eax
movq 0x78(%rsp), %rcx
movslq 0x90(%rsp), %rdx
movzbl (%rcx,%rdx), %ecx
movq 0x80(%rsp), %rdx
movl 0x90(%rsp), %esi
subl 0xb8(%rsp), %esi
movslq %esi, %rsi
movzbl (%rdx,%rsi), %edx
addl %edx, %ecx
sarl %ecx
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq 0x80(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb %dl, (%rax,%rcx)
movl 0x90(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x90(%rsp)
jmp 0x27a80
jmp 0x27b0a
movl 0xa4(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0xa4(%rsp)
movq 0x80(%rsp), %rax
movslq 0x8c(%rsp), %rcx
movb $-0x1, (%rax,%rcx)
movl 0x8c(%rsp), %ecx
movq 0xc0(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0xc0(%rsp)
movl 0xb8(%rsp), %ecx
movq 0x80(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x80(%rsp)
movl 0xb8(%rsp), %ecx
movq 0x78(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x78(%rsp)
jmp 0x27a67
jmp 0x27f34
movl 0xb4(%rsp), %eax
subl $0x1, %eax
movl %eax, 0xa4(%rsp)
cmpl $0x1, 0xa4(%rsp)
jb 0x27ce2
movl $0x0, 0x90(%rsp)
movl 0x90(%rsp), %eax
cmpl 0x8c(%rsp), %eax
jge 0x27c65
movq 0xc0(%rsp), %rax
movslq 0x90(%rsp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, 0x14(%rsp)
movq 0x80(%rsp), %rax
movl 0x90(%rsp), %ecx
subl 0xb8(%rsp), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %edi
movq 0x78(%rsp), %rax
movslq 0x90(%rsp), %rcx
movzbl (%rax,%rcx), %esi
movq 0x78(%rsp), %rax
movl 0x90(%rsp), %ecx
subl 0xb8(%rsp), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %edx
callq 0x28770
movl %eax, %ecx
movl 0x14(%rsp), %eax
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq 0x80(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb %dl, (%rax,%rcx)
movl 0x90(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x90(%rsp)
jmp 0x27bb4
jmp 0x27c67
movl 0xa4(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0xa4(%rsp)
movq 0x80(%rsp), %rax
movslq 0x8c(%rsp), %rcx
movb $-0x1, (%rax,%rcx)
movl 0x8c(%rsp), %ecx
movq 0xc0(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0xc0(%rsp)
movl 0xb8(%rsp), %ecx
movq 0x80(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x80(%rsp)
movl 0xb8(%rsp), %ecx
movq 0x78(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x78(%rsp)
jmp 0x27b9b
jmp 0x27f34
movl 0xb4(%rsp), %eax
subl $0x1, %eax
movl %eax, 0xa4(%rsp)
cmpl $0x1, 0xa4(%rsp)
jb 0x27e00
movl $0x0, 0x90(%rsp)
movl 0x90(%rsp), %eax
cmpl 0x8c(%rsp), %eax
jge 0x27d83
movq 0xc0(%rsp), %rax
movslq 0x90(%rsp), %rcx
movzbl (%rax,%rcx), %eax
movq 0x80(%rsp), %rcx
movl 0x90(%rsp), %edx
subl 0xb8(%rsp), %edx
movslq %edx, %rdx
movzbl (%rcx,%rdx), %ecx
sarl %ecx
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq 0x80(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb %dl, (%rax,%rcx)
movl 0x90(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x90(%rsp)
jmp 0x27d11
jmp 0x27d85
movl 0xa4(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0xa4(%rsp)
movq 0x80(%rsp), %rax
movslq 0x8c(%rsp), %rcx
movb $-0x1, (%rax,%rcx)
movl 0x8c(%rsp), %ecx
movq 0xc0(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0xc0(%rsp)
movl 0xb8(%rsp), %ecx
movq 0x80(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x80(%rsp)
movl 0xb8(%rsp), %ecx
movq 0x78(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x78(%rsp)
jmp 0x27cf8
jmp 0x27f34
movl 0xb4(%rsp), %eax
subl $0x1, %eax
movl %eax, 0xa4(%rsp)
cmpl $0x1, 0xa4(%rsp)
jb 0x27f32
movl $0x0, 0x90(%rsp)
movl 0x90(%rsp), %eax
cmpl 0x8c(%rsp), %eax
jge 0x27eb5
movq 0xc0(%rsp), %rax
movslq 0x90(%rsp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, 0x10(%rsp)
movq 0x80(%rsp), %rax
movl 0x90(%rsp), %ecx
subl 0xb8(%rsp), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %edi
xorl %edx, %edx
movl %edx, %esi
callq 0x28770
movl %eax, %ecx
movl 0x10(%rsp), %eax
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq 0x80(%rsp), %rax
movslq 0x90(%rsp), %rcx
movb %dl, (%rax,%rcx)
movl 0x90(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x90(%rsp)
jmp 0x27e2f
jmp 0x27eb7
movl 0xa4(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0xa4(%rsp)
movq 0x80(%rsp), %rax
movslq 0x8c(%rsp), %rcx
movb $-0x1, (%rax,%rcx)
movl 0x8c(%rsp), %ecx
movq 0xc0(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0xc0(%rsp)
movl 0xb8(%rsp), %ecx
movq 0x80(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x80(%rsp)
movl 0xb8(%rsp), %ecx
movq 0x78(%rsp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x78(%rsp)
jmp 0x27e16
jmp 0x27f34
jmp 0x27f36
jmp 0x27f38
movl 0xa0(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xa0(%rsp)
jmp 0x26f2a
cmpl $0x8, 0xe0(%rsp)
jge 0x2874f
movl $0x0, 0xa0(%rsp)
movl 0xa0(%rsp), %eax
cmpl 0xb0(%rsp), %eax
jae 0x2874d
movq 0xc8(%rsp), %rax
movq 0x18(%rax), %rax
movl 0x9c(%rsp), %ecx
imull 0xa0(%rsp), %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, 0x60(%rsp)
movq 0xc8(%rsp), %rax
movq 0x18(%rax), %rax
movl 0x9c(%rsp), %ecx
imull 0xa0(%rsp), %ecx
movl %ecx, %ecx
addq %rcx, %rax
movl 0xb4(%rsp), %ecx
imull 0xb8(%rsp), %ecx
movl %ecx, %ecx
addq %rcx, %rax
movl 0x94(%rsp), %ecx
movl %ecx, %edx
xorl %ecx, %ecx
subq %rdx, %rcx
addq %rcx, %rax
movq %rax, 0x58(%rsp)
cmpl $0x0, 0xe8(%rsp)
jne 0x2800d
movslq 0xe0(%rsp), %rcx
leaq 0xe509(%rip), %rax      # 0x3650c
movzbl (%rax,%rcx), %eax
movl %eax, 0xc(%rsp)
jmp 0x28018
movl $0x1, %eax
movl %eax, 0xc(%rsp)
jmp 0x28018
movl 0xc(%rsp), %eax
movb %al, 0x57(%rsp)
cmpl $0x4, 0xe0(%rsp)
jne 0x280f6
movl 0xb4(%rsp), %eax
imull 0x8c(%rsp), %eax
movl %eax, 0x90(%rsp)
cmpl $0x2, 0x90(%rsp)
jl 0x280bf
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
sarl $0x4, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
andl $0xf, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
movl 0x90(%rsp), %eax
subl $0x2, %eax
movl %eax, 0x90(%rsp)
movq 0x58(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x58(%rsp)
jmp 0x28044
cmpl $0x0, 0x90(%rsp)
jle 0x280f1
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
sarl $0x4, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
jmp 0x285af
cmpl $0x2, 0xe0(%rsp)
jne 0x28293
movl 0xb4(%rsp), %eax
imull 0x8c(%rsp), %eax
movl %eax, 0x90(%rsp)
cmpl $0x4, 0x90(%rsp)
jl 0x281f2
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
sarl $0x6, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
sarl $0x4, %ecx
andl $0x3, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
sarl $0x2, %ecx
andl $0x3, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
andl $0x3, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
movl 0x90(%rsp), %eax
subl $0x4, %eax
movl %eax, 0x90(%rsp)
movq 0x58(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x58(%rsp)
jmp 0x2811a
cmpl $0x0, 0x90(%rsp)
jle 0x28224
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
sarl $0x6, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
cmpl $0x1, 0x90(%rsp)
jle 0x28259
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
sarl $0x4, %ecx
andl $0x3, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
cmpl $0x2, 0x90(%rsp)
jle 0x2828e
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
sarl $0x2, %ecx
andl $0x3, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
jmp 0x285ad
cmpl $0x1, 0xe0(%rsp)
jne 0x285ab
movl 0xb4(%rsp), %eax
imull 0x8c(%rsp), %eax
movl %eax, 0x90(%rsp)
cmpl $0x8, 0x90(%rsp)
jl 0x2843a
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
sarl $0x7, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
sarl $0x6, %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
sarl $0x5, %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
sarl $0x4, %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
sarl $0x3, %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
sarl $0x2, %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
sarl %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
movl 0x90(%rsp), %eax
subl $0x8, %eax
movl %eax, 0x90(%rsp)
movq 0x58(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x58(%rsp)
jmp 0x282b7
cmpl $0x0, 0x90(%rsp)
jle 0x2846c
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
sarl $0x7, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
cmpl $0x1, 0x90(%rsp)
jle 0x284a1
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
sarl $0x6, %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
cmpl $0x2, 0x90(%rsp)
jle 0x284d6
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
sarl $0x5, %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
cmpl $0x3, 0x90(%rsp)
jle 0x2850b
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
sarl $0x4, %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
cmpl $0x4, 0x90(%rsp)
jle 0x28540
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
sarl $0x3, %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
cmpl $0x5, 0x90(%rsp)
jle 0x28575
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
sarl $0x2, %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
cmpl $0x6, 0x90(%rsp)
jle 0x285a9
movzbl 0x57(%rsp), %eax
movq 0x58(%rsp), %rcx
movzbl (%rcx), %ecx
sarl %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq 0x60(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x60(%rsp)
movb %cl, (%rax)
jmp 0x285ab
jmp 0x285ad
jmp 0x285af
movl 0x8c(%rsp), %eax
cmpl 0xb8(%rsp), %eax
je 0x28735
movq 0xc8(%rsp), %rax
movq 0x18(%rax), %rax
movl 0x9c(%rsp), %ecx
imull 0xa0(%rsp), %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, 0x48(%rsp)
cmpl $0x1, 0x8c(%rsp)
jne 0x2864f
movl 0xb4(%rsp), %eax
subl $0x1, %eax
movl %eax, 0x44(%rsp)
cmpl $0x0, 0x44(%rsp)
jl 0x2864a
movq 0x48(%rsp), %rax
movl 0x44(%rsp), %ecx
shll %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $-0x1, (%rax,%rcx)
movq 0x48(%rsp), %rax
movslq 0x44(%rsp), %rcx
movb (%rax,%rcx), %dl
movq 0x48(%rsp), %rax
movl 0x44(%rsp), %ecx
shll %ecx
addl $0x0, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl 0x44(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x44(%rsp)
jmp 0x28600
jmp 0x28733
cmpl $0x3, 0x8c(%rsp)
jne 0x2865b
jmp 0x2867a
leaq 0x585f(%rip), %rdi      # 0x2dec1
leaq 0x55aa(%rip), %rsi      # 0x2dc13
movl $0x1018, %edx           # imm = 0x1018
leaq 0x5795(%rip), %rcx      # 0x2de0a
callq 0xd270
movl 0xb4(%rsp), %eax
subl $0x1, %eax
movl %eax, 0x44(%rsp)
cmpl $0x0, 0x44(%rsp)
jl 0x28731
movq 0x48(%rsp), %rax
movl 0x44(%rsp), %ecx
shll $0x2, %ecx
addl $0x3, %ecx
movslq %ecx, %rcx
movb $-0x1, (%rax,%rcx)
movq 0x48(%rsp), %rax
imull $0x3, 0x44(%rsp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movb (%rax,%rcx), %dl
movq 0x48(%rsp), %rax
movl 0x44(%rsp), %ecx
shll $0x2, %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movq 0x48(%rsp), %rax
imull $0x3, 0x44(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb (%rax,%rcx), %dl
movq 0x48(%rsp), %rax
movl 0x44(%rsp), %ecx
shll $0x2, %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movq 0x48(%rsp), %rax
imull $0x3, 0x44(%rsp), %ecx
addl $0x0, %ecx
movslq %ecx, %rcx
movb (%rax,%rcx), %dl
movq 0x48(%rsp), %rax
movl 0x44(%rsp), %ecx
shll $0x2, %ecx
addl $0x0, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl 0x44(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x44(%rsp)
jmp 0x28688
jmp 0x28733
jmp 0x28735
jmp 0x28737
movl 0xa0(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xa0(%rsp)
jmp 0x27f67
jmp 0x2874f
movl $0x1, 0xd4(%rsp)
movl 0xd4(%rsp), %eax
addq $0xd8, %rsp
retq
nopl (%rax)