// File: /workspace/github_c_makefile_star2_O0/zhiyb[P]png2tlg/./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)
{
   int bytes = (depth == 16? 2 : 1);
   stbi__context *s = a->s;
   stbi__uint32 i,j,stride = x*out_n*bytes;
   stbi__uint32 img_len, img_width_bytes;
   int k;
   int img_n = s->img_n; // copy it into a local for later

   int output_bytes = out_n*bytes;
   int filter_bytes = img_n*bytes;
   int width = x;

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

   if (!stbi__mad3sizes_valid(img_n, x, depth, 7)) return stbi__err("too large", "Corrupt PNG");
   img_width_bytes = (((img_n * x * depth) + 7) >> 3);
   img_len = (img_width_bytes + 1) * y;

   // we used to check for exact match between raw_len and img_len on non-interlaced PNGs,
   // but issue #276 reported a PNG in the wild that had extra data at the end (all zeros),
   // so just check for raw_len < img_len always.
   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;
      int filter = *raw++;

      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;
      }
      prior = cur - stride; // bugfix: need to compute this after 'cur +=' computation above

      // 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 if (depth == 16) {
         if (img_n != out_n) {
            cur[filter_bytes]   = 255; // first pixel top byte
            cur[filter_bytes+1] = 255; // first pixel bottom byte
         }
         raw += filter_bytes;
         cur += output_bytes;
         prior += output_bytes;
      } 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)*filter_bytes;
         #define STBI__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;
            STBI__CASE(STBI__F_sub)          { cur[k] = STBI__BYTECAST(raw[k] + cur[k-filter_bytes]); } break;
            STBI__CASE(STBI__F_up)           { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } break;
            STBI__CASE(STBI__F_avg)          { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-filter_bytes])>>1)); } break;
            STBI__CASE(STBI__F_paeth)        { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],prior[k],prior[k-filter_bytes])); } break;
            STBI__CASE(STBI__F_avg_first)    { cur[k] = STBI__BYTECAST(raw[k] + (cur[k-filter_bytes] >> 1)); } break;
            STBI__CASE(STBI__F_paeth_first)  { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],0,0)); } break;
         }
         #undef STBI__CASE
         raw += nk;
      } else {
         STBI_ASSERT(img_n+1 == out_n);
         #define STBI__CASE(f) \
             case f:     \
                for (i=x-1; i >= 1; --i, cur[filter_bytes]=255,raw+=filter_bytes,cur+=output_bytes,prior+=output_bytes) \
                   for (k=0; k < filter_bytes; ++k)
         switch (filter) {
            STBI__CASE(STBI__F_none)         { cur[k] = raw[k]; } break;
            STBI__CASE(STBI__F_sub)          { cur[k] = STBI__BYTECAST(raw[k] + cur[k- output_bytes]); } break;
            STBI__CASE(STBI__F_up)           { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } break;
            STBI__CASE(STBI__F_avg)          { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k- output_bytes])>>1)); } break;
            STBI__CASE(STBI__F_paeth)        { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k- output_bytes],prior[k],prior[k- output_bytes])); } break;
            STBI__CASE(STBI__F_avg_first)    { cur[k] = STBI__BYTECAST(raw[k] + (cur[k- output_bytes] >> 1)); } break;
            STBI__CASE(STBI__F_paeth_first)  { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k- output_bytes],0,0)); } break;
         }
         #undef STBI__CASE

         // the loop above sets the high byte of the pixels' alpha, but for
         // 16 bit png files we also need the low byte set. we'll do that here.
         if (depth == 16) {
            cur = a->out + stride*j; // start at the beginning of the row again
            for (i=0; i < x; ++i,cur+=output_bytes) {
               cur[filter_bytes+1] = 255;
            }
         }
      }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movl 0x18(%rbp), %eax
movl 0x10(%rbp), %eax
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
movl %ecx, -0x20(%rbp)
movl %r8d, -0x24(%rbp)
movl %r9d, -0x28(%rbp)
movl 0x10(%rbp), %edx
movl $0x1, %eax
movl $0x2, %ecx
cmpl $0x10, %edx
cmovel %ecx, %eax
movl %eax, -0x2c(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x38(%rbp)
movl -0x24(%rbp), %eax
imull -0x20(%rbp), %eax
imull -0x2c(%rbp), %eax
movl %eax, -0x44(%rbp)
movq -0x38(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, -0x54(%rbp)
movl -0x20(%rbp), %eax
imull -0x2c(%rbp), %eax
movl %eax, -0x58(%rbp)
movl -0x54(%rbp), %eax
imull -0x2c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x60(%rbp)
movl -0x20(%rbp), %ecx
movq -0x38(%rbp), %rdx
movb $0x1, %al
cmpl 0x8(%rdx), %ecx
movb %al, -0xa1(%rbp)
je 0x19186
movl -0x20(%rbp), %eax
movq -0x38(%rbp), %rcx
movl 0x8(%rcx), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
sete %al
movb %al, -0xa1(%rbp)
movb -0xa1(%rbp), %al
testb $0x1, %al
jne 0x19192
jmp 0x19194
jmp 0x191b3
leaq 0x7a34(%rip), %rdi      # 0x20bcf
leaq 0x7634(%rip), %rsi      # 0x207d6
movl $0x1139, %edx           # imm = 0x1139
leaq 0x7a4a(%rip), %rcx      # 0x20bf8
callq 0x2140
movl -0x24(%rbp), %edi
movl -0x28(%rbp), %esi
movl -0x58(%rbp), %edx
xorl %ecx, %ecx
callq 0x13640
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x191ed
leaq 0x775e(%rip), %rdi      # 0x2093e
callq 0x2680
movl %eax, -0x4(%rbp)
jmp 0x1a5f7
movl -0x54(%rbp), %edi
movl -0x24(%rbp), %esi
movl 0x10(%rbp), %edx
movl $0x7, %ecx
callq 0x13400
cmpl $0x0, %eax
jne 0x19219
leaq 0x7728(%rip), %rdi      # 0x20934
callq 0x2680
movl %eax, -0x4(%rbp)
jmp 0x1a5f7
movl -0x54(%rbp), %eax
imull -0x24(%rbp), %eax
imull 0x10(%rbp), %eax
addl $0x7, %eax
shrl $0x3, %eax
movl %eax, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
imull -0x28(%rbp), %eax
movl %eax, -0x48(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0x48(%rbp), %eax
jae 0x19256
leaq 0x7a1f(%rip), %rdi      # 0x20c68
callq 0x2680
movl %eax, -0x4(%rbp)
jmp 0x1a5f7
movl $0x0, -0x40(%rbp)
movl -0x40(%rbp), %eax
cmpl -0x28(%rbp), %eax
jae 0x19dda
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl -0x44(%rbp), %ecx
imull -0x40(%rbp), %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movq -0x18(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x18(%rbp)
movzbl (%rax), %eax
movl %eax, -0x74(%rbp)
cmpl $0x4, -0x74(%rbp)
jle 0x192b0
leaq 0x79d7(%rip), %rdi      # 0x20c7a
callq 0x2680
movl %eax, -0x4(%rbp)
jmp 0x1a5f7
cmpl $0x8, 0x10(%rbp)
jge 0x19303
movl -0x4c(%rbp), %eax
cmpl -0x24(%rbp), %eax
ja 0x192c0
jmp 0x192df
leaq 0x79c2(%rip), %rdi      # 0x20c89
leaq 0x7508(%rip), %rsi      # 0x207d6
movl $0x114f, %edx           # imm = 0x114F
leaq 0x791e(%rip), %rcx      # 0x20bf8
callq 0x2140
movl -0x24(%rbp), %ecx
imull -0x20(%rbp), %ecx
subl -0x4c(%rbp), %ecx
movq -0x68(%rbp), %rax
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movl $0x1, -0x5c(%rbp)
movl -0x4c(%rbp), %eax
movl %eax, -0x60(%rbp)
movq -0x68(%rbp), %rax
movl -0x44(%rbp), %ecx
movl %ecx, %edx
xorl %ecx, %ecx
subq %rdx, %rcx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
cmpl $0x0, -0x40(%rbp)
jne 0x19330
movslq -0x74(%rbp), %rcx
leaq 0xcf90(%rip), %rax      # 0x262b9
movzbl (%rax,%rcx), %eax
movl %eax, -0x74(%rbp)
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x5c(%rbp), %eax
jge 0x19488
movl -0x74(%rbp), %eax
movq %rax, -0xb0(%rbp)
subq $0x6, %rax
ja 0x19478
movq -0xb0(%rbp), %rax
leaq 0x6e63(%rip), %rcx      # 0x201c8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x68(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb %dl, (%rax,%rcx)
jmp 0x19478
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x68(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb %dl, (%rax,%rcx)
jmp 0x19478
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movq -0x70(%rbp), %rcx
movslq -0x50(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq -0x68(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb %dl, (%rax,%rcx)
jmp 0x19478
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movq -0x70(%rbp), %rcx
movslq -0x50(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
sarl %ecx
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq -0x68(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb %dl, (%rax,%rcx)
jmp 0x19478
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0xb4(%rbp)
movq -0x70(%rbp), %rax
movslq -0x50(%rbp), %rcx
movzbl (%rax,%rcx), %esi
xorl %edx, %edx
movl %edx, %edi
callq 0x1a610
movl %eax, %ecx
movl -0xb4(%rbp), %eax
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq -0x68(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb %dl, (%rax,%rcx)
jmp 0x19478
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x68(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb %dl, (%rax,%rcx)
jmp 0x19478
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x68(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb %dl, (%rax,%rcx)
jmp 0x1947a
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x19337
cmpl $0x8, 0x10(%rbp)
jne 0x194da
movl -0x54(%rbp), %eax
cmpl -0x20(%rbp), %eax
je 0x194a2
movq -0x68(%rbp), %rax
movslq -0x54(%rbp), %rcx
movb $-0x1, (%rax,%rcx)
movl -0x54(%rbp), %ecx
movq -0x18(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
movl -0x20(%rbp), %ecx
movq -0x68(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movl -0x20(%rbp), %ecx
movq -0x70(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
jmp 0x19560
cmpl $0x10, 0x10(%rbp)
jne 0x1953a
movl -0x54(%rbp), %eax
cmpl -0x20(%rbp), %eax
je 0x19505
movq -0x68(%rbp), %rax
movslq -0x5c(%rbp), %rcx
movb $-0x1, (%rax,%rcx)
movq -0x68(%rbp), %rax
movl -0x5c(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $-0x1, (%rax,%rcx)
movl -0x5c(%rbp), %ecx
movq -0x18(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
movl -0x58(%rbp), %ecx
movq -0x68(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movl -0x58(%rbp), %ecx
movq -0x70(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
jmp 0x1955e
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movq -0x68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x68(%rbp)
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
jmp 0x19560
cmpl $0x8, 0x10(%rbp)
jl 0x19572
movl -0x54(%rbp), %eax
cmpl -0x20(%rbp), %eax
jne 0x19805
movl -0x60(%rbp), %eax
decl %eax
movl -0x5c(%rbp), %ecx
imull %ecx, %eax
movl %eax, -0x78(%rbp)
movl -0x74(%rbp), %eax
movq %rax, -0xc0(%rbp)
subq $0x6, %rax
ja 0x197ef
movq -0xc0(%rbp), %rax
leaq 0x6c0a(%rip), %rcx      # 0x201ac
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x68(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x78(%rbp), %rdx
callq 0x21b0
jmp 0x197ef
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x78(%rbp), %eax
jge 0x1960c
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movq -0x68(%rbp), %rcx
movl -0x50(%rbp), %edx
subl -0x5c(%rbp), %edx
movslq %edx, %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq -0x68(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x195c8
jmp 0x197ef
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x78(%rbp), %eax
jge 0x19657
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movq -0x70(%rbp), %rcx
movslq -0x50(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq -0x68(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x19618
jmp 0x197ef
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x78(%rbp), %eax
jge 0x196b7
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movq -0x70(%rbp), %rcx
movslq -0x50(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
movq -0x68(%rbp), %rdx
movl -0x50(%rbp), %esi
subl -0x5c(%rbp), %esi
movslq %esi, %rsi
movzbl (%rdx,%rsi), %edx
addl %edx, %ecx
sarl %ecx
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq -0x68(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x19663
jmp 0x197ef
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x78(%rbp), %eax
jge 0x19737
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0xc4(%rbp)
movq -0x68(%rbp), %rax
movl -0x50(%rbp), %ecx
subl -0x5c(%rbp), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %edi
movq -0x70(%rbp), %rax
movslq -0x50(%rbp), %rcx
movzbl (%rax,%rcx), %esi
movq -0x70(%rbp), %rax
movl -0x50(%rbp), %ecx
subl -0x5c(%rbp), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %edx
callq 0x1a610
movl %eax, %ecx
movl -0xc4(%rbp), %eax
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq -0x68(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x196c3
jmp 0x197ef
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x78(%rbp), %eax
jge 0x19789
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movq -0x68(%rbp), %rcx
movl -0x50(%rbp), %edx
subl -0x5c(%rbp), %edx
movslq %edx, %rdx
movzbl (%rcx,%rdx), %ecx
sarl %ecx
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq -0x68(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x19743
jmp 0x197ef
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x78(%rbp), %eax
jge 0x197ed
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0xc8(%rbp)
movq -0x68(%rbp), %rax
movl -0x50(%rbp), %ecx
subl -0x5c(%rbp), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %edi
xorl %edx, %edx
movl %edx, %esi
callq 0x1a610
movl %eax, %ecx
movl -0xc8(%rbp), %eax
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq -0x68(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x19792
jmp 0x197ef
movl -0x78(%rbp), %ecx
movq -0x18(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
jmp 0x19dca
movl -0x54(%rbp), %eax
addl $0x1, %eax
cmpl -0x20(%rbp), %eax
jne 0x19812
jmp 0x19831
leaq 0x7485(%rip), %rdi      # 0x20c9e
leaq 0x6fb6(%rip), %rsi      # 0x207d6
movl $0x118d, %edx           # imm = 0x118D
leaq 0x73cc(%rip), %rcx      # 0x20bf8
callq 0x2140
movl -0x74(%rbp), %eax
movq %rax, -0xd0(%rbp)
subq $0x6, %rax
ja 0x19d6c
movq -0xd0(%rbp), %rax
leaq 0x693d(%rip), %rcx      # 0x20190
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl -0x24(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x3c(%rbp)
cmpl $0x1, -0x3c(%rbp)
jb 0x198ea
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x5c(%rbp), %eax
jge 0x1989b
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x68(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x19872
jmp 0x1989d
movl -0x3c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x3c(%rbp)
movq -0x68(%rbp), %rax
movslq -0x5c(%rbp), %rcx
movb $-0x1, (%rax,%rcx)
movl -0x5c(%rbp), %ecx
movq -0x18(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
movl -0x58(%rbp), %ecx
movq -0x68(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movl -0x58(%rbp), %ecx
movq -0x70(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
jmp 0x19865
jmp 0x19d6c
movl -0x24(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x3c(%rbp)
cmpl $0x1, -0x3c(%rbp)
jb 0x1999c
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x5c(%rbp), %eax
jge 0x1994d
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movq -0x68(%rbp), %rcx
movl -0x50(%rbp), %edx
subl -0x58(%rbp), %edx
movslq %edx, %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq -0x68(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x19909
jmp 0x1994f
movl -0x3c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x3c(%rbp)
movq -0x68(%rbp), %rax
movslq -0x5c(%rbp), %rcx
movb $-0x1, (%rax,%rcx)
movl -0x5c(%rbp), %ecx
movq -0x18(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
movl -0x58(%rbp), %ecx
movq -0x68(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movl -0x58(%rbp), %ecx
movq -0x70(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
jmp 0x198f8
jmp 0x19d6c
movl -0x24(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x3c(%rbp)
cmpl $0x1, -0x3c(%rbp)
jb 0x19a49
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x5c(%rbp), %eax
jge 0x199fa
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movq -0x70(%rbp), %rcx
movslq -0x50(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq -0x68(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x199bb
jmp 0x199fc
movl -0x3c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x3c(%rbp)
movq -0x68(%rbp), %rax
movslq -0x5c(%rbp), %rcx
movb $-0x1, (%rax,%rcx)
movl -0x5c(%rbp), %ecx
movq -0x18(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
movl -0x58(%rbp), %ecx
movq -0x68(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movl -0x58(%rbp), %ecx
movq -0x70(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
jmp 0x199aa
jmp 0x19d6c
movl -0x24(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x3c(%rbp)
cmpl $0x1, -0x3c(%rbp)
jb 0x19b0b
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x5c(%rbp), %eax
jge 0x19abc
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movq -0x70(%rbp), %rcx
movslq -0x50(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
movq -0x68(%rbp), %rdx
movl -0x50(%rbp), %esi
subl -0x58(%rbp), %esi
movslq %esi, %rsi
movzbl (%rdx,%rsi), %edx
addl %edx, %ecx
sarl %ecx
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq -0x68(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x19a68
jmp 0x19abe
movl -0x3c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x3c(%rbp)
movq -0x68(%rbp), %rax
movslq -0x5c(%rbp), %rcx
movb $-0x1, (%rax,%rcx)
movl -0x5c(%rbp), %ecx
movq -0x18(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
movl -0x58(%rbp), %ecx
movq -0x68(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movl -0x58(%rbp), %ecx
movq -0x70(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
jmp 0x19a57
jmp 0x19d6c
movl -0x24(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x3c(%rbp)
cmpl $0x1, -0x3c(%rbp)
jb 0x19bed
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x5c(%rbp), %eax
jge 0x19b9e
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0xd4(%rbp)
movq -0x68(%rbp), %rax
movl -0x50(%rbp), %ecx
subl -0x58(%rbp), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %edi
movq -0x70(%rbp), %rax
movslq -0x50(%rbp), %rcx
movzbl (%rax,%rcx), %esi
movq -0x70(%rbp), %rax
movl -0x50(%rbp), %ecx
subl -0x58(%rbp), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %edx
callq 0x1a610
movl %eax, %ecx
movl -0xd4(%rbp), %eax
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq -0x68(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x19b2a
jmp 0x19ba0
movl -0x3c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x3c(%rbp)
movq -0x68(%rbp), %rax
movslq -0x5c(%rbp), %rcx
movb $-0x1, (%rax,%rcx)
movl -0x5c(%rbp), %ecx
movq -0x18(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
movl -0x58(%rbp), %ecx
movq -0x68(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movl -0x58(%rbp), %ecx
movq -0x70(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
jmp 0x19b19
jmp 0x19d6c
movl -0x24(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x3c(%rbp)
cmpl $0x1, -0x3c(%rbp)
jb 0x19ca1
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x5c(%rbp), %eax
jge 0x19c52
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movq -0x68(%rbp), %rcx
movl -0x50(%rbp), %edx
subl -0x58(%rbp), %edx
movslq %edx, %rdx
movzbl (%rcx,%rdx), %ecx
sarl %ecx
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq -0x68(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x19c0c
jmp 0x19c54
movl -0x3c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x3c(%rbp)
movq -0x68(%rbp), %rax
movslq -0x5c(%rbp), %rcx
movb $-0x1, (%rax,%rcx)
movl -0x5c(%rbp), %ecx
movq -0x18(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
movl -0x58(%rbp), %ecx
movq -0x68(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movl -0x58(%rbp), %ecx
movq -0x70(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
jmp 0x19bfb
jmp 0x19d6c
movl -0x24(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x3c(%rbp)
cmpl $0x1, -0x3c(%rbp)
jb 0x19d6a
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x5c(%rbp), %eax
jge 0x19d1b
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0xd8(%rbp)
movq -0x68(%rbp), %rax
movl -0x50(%rbp), %ecx
subl -0x58(%rbp), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %edi
xorl %edx, %edx
movl %edx, %esi
callq 0x1a610
movl %eax, %ecx
movl -0xd8(%rbp), %eax
addl %ecx, %eax
andl $0xff, %eax
movb %al, %dl
movq -0x68(%rbp), %rax
movslq -0x50(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x19cc0
jmp 0x19d1d
movl -0x3c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x3c(%rbp)
movq -0x68(%rbp), %rax
movslq -0x5c(%rbp), %rcx
movb $-0x1, (%rax,%rcx)
movl -0x5c(%rbp), %ecx
movq -0x18(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
movl -0x58(%rbp), %ecx
movq -0x68(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movl -0x58(%rbp), %ecx
movq -0x70(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
jmp 0x19caf
jmp 0x19d6c
cmpl $0x10, 0x10(%rbp)
jne 0x19dc8
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl -0x44(%rbp), %ecx
imull -0x40(%rbp), %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movl $0x0, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
cmpl -0x24(%rbp), %eax
jae 0x19dc6
movq -0x68(%rbp), %rax
movl -0x5c(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $-0x1, (%rax,%rcx)
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
movl -0x58(%rbp), %ecx
movq -0x68(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
jmp 0x19d91
jmp 0x19dc8
jmp 0x19dca
jmp 0x19dcc
movl -0x40(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
jmp 0x1925d
cmpl $0x8, 0x10(%rbp)
jge 0x1a556
movl $0x0, -0x40(%rbp)
movl -0x40(%rbp), %eax
cmpl -0x28(%rbp), %eax
jae 0x1a551
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl -0x44(%rbp), %ecx
imull -0x40(%rbp), %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0x80(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl -0x44(%rbp), %ecx
imull -0x40(%rbp), %ecx
movl %ecx, %ecx
addq %rcx, %rax
movl -0x24(%rbp), %ecx
imull -0x20(%rbp), %ecx
movl %ecx, %ecx
addq %rcx, %rax
movl -0x4c(%rbp), %ecx
movl %ecx, %edx
xorl %ecx, %ecx
subq %rdx, %rcx
addq %rcx, %rax
movq %rax, -0x88(%rbp)
cmpl $0x0, 0x18(%rbp)
jne 0x19e60
movslq 0x10(%rbp), %rcx
leaq 0x6524(%rip), %rax      # 0x20378
movzbl (%rax,%rcx), %eax
movl %eax, -0xdc(%rbp)
jmp 0x19e6d
movl $0x1, %eax
movl %eax, -0xdc(%rbp)
jmp 0x19e6d
movl -0xdc(%rbp), %eax
movb %al, -0x89(%rbp)
cmpl $0x4, 0x10(%rbp)
jne 0x19f39
movl -0x24(%rbp), %eax
imull -0x54(%rbp), %eax
movl %eax, -0x50(%rbp)
cmpl $0x2, -0x50(%rbp)
jl 0x19f04
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
sarl $0x4, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
andl $0xf, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
movl -0x50(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x50(%rbp)
movq -0x88(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x88(%rbp)
jmp 0x19e8d
cmpl $0x0, -0x50(%rbp)
jle 0x19f34
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
sarl $0x4, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
jmp 0x1a3c6
cmpl $0x2, 0x10(%rbp)
jne 0x1a0c0
movl -0x24(%rbp), %eax
imull -0x54(%rbp), %eax
movl %eax, -0x50(%rbp)
cmpl $0x4, -0x50(%rbp)
jl 0x1a025
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
sarl $0x6, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
sarl $0x4, %ecx
andl $0x3, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
sarl $0x2, %ecx
andl $0x3, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
andl $0x3, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
movl -0x50(%rbp), %eax
subl $0x4, %eax
movl %eax, -0x50(%rbp)
movq -0x88(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x88(%rbp)
jmp 0x19f4d
cmpl $0x0, -0x50(%rbp)
jle 0x1a055
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
sarl $0x6, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
cmpl $0x1, -0x50(%rbp)
jle 0x1a088
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
sarl $0x4, %ecx
andl $0x3, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
cmpl $0x2, -0x50(%rbp)
jle 0x1a0bb
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
sarl $0x2, %ecx
andl $0x3, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
jmp 0x1a3c4
cmpl $0x1, 0x10(%rbp)
jne 0x1a3c2
movl -0x24(%rbp), %eax
imull -0x54(%rbp), %eax
movl %eax, -0x50(%rbp)
cmpl $0x8, -0x50(%rbp)
jl 0x1a25f
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
sarl $0x7, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
sarl $0x6, %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
sarl $0x5, %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
sarl $0x4, %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
sarl $0x3, %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
sarl $0x2, %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
sarl %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
movl -0x50(%rbp), %eax
subl $0x8, %eax
movl %eax, -0x50(%rbp)
movq -0x88(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x88(%rbp)
jmp 0x1a0d4
cmpl $0x0, -0x50(%rbp)
jle 0x1a28f
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
sarl $0x7, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
cmpl $0x1, -0x50(%rbp)
jle 0x1a2c2
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
sarl $0x6, %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
cmpl $0x2, -0x50(%rbp)
jle 0x1a2f5
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
sarl $0x5, %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
cmpl $0x3, -0x50(%rbp)
jle 0x1a328
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
sarl $0x4, %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
cmpl $0x4, -0x50(%rbp)
jle 0x1a35b
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
sarl $0x3, %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
cmpl $0x5, -0x50(%rbp)
jle 0x1a38e
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
sarl $0x2, %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
cmpl $0x6, -0x50(%rbp)
jle 0x1a3c0
movzbl -0x89(%rbp), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
sarl %ecx
andl $0x1, %ecx
imull %ecx, %eax
movb %al, %cl
movq -0x80(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x80(%rbp)
movb %cl, (%rax)
jmp 0x1a3c2
jmp 0x1a3c4
jmp 0x1a3c6
movl -0x54(%rbp), %eax
cmpl -0x20(%rbp), %eax
je 0x1a541
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl -0x44(%rbp), %ecx
imull -0x40(%rbp), %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0x80(%rbp)
cmpl $0x1, -0x54(%rbp)
jne 0x1a454
movl -0x24(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x90(%rbp)
cmpl $0x0, -0x90(%rbp)
jl 0x1a44f
movq -0x80(%rbp), %rax
movl -0x90(%rbp), %ecx
shll %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $-0x1, (%rax,%rcx)
movq -0x80(%rbp), %rax
movslq -0x90(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x80(%rbp), %rax
movl -0x90(%rbp), %ecx
shll %ecx
addl $0x0, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0x90(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x90(%rbp)
jmp 0x1a3fc
jmp 0x1a53f
cmpl $0x3, -0x54(%rbp)
jne 0x1a45c
jmp 0x1a47b
leaq 0x684c(%rip), %rdi      # 0x20caf
leaq 0x636c(%rip), %rsi      # 0x207d6
movl $0x11e6, %edx           # imm = 0x11E6
leaq 0x6782(%rip), %rcx      # 0x20bf8
callq 0x2140
movl -0x24(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x90(%rbp)
cmpl $0x0, -0x90(%rbp)
jl 0x1a53d
movq -0x80(%rbp), %rax
movl -0x90(%rbp), %ecx
shll $0x2, %ecx
addl $0x3, %ecx
movslq %ecx, %rcx
movb $-0x1, (%rax,%rcx)
movq -0x80(%rbp), %rax
imull $0x3, -0x90(%rbp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movb (%rax,%rcx), %dl
movq -0x80(%rbp), %rax
movl -0x90(%rbp), %ecx
shll $0x2, %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movq -0x80(%rbp), %rax
imull $0x3, -0x90(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb (%rax,%rcx), %dl
movq -0x80(%rbp), %rax
movl -0x90(%rbp), %ecx
shll $0x2, %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movq -0x80(%rbp), %rax
imull $0x3, -0x90(%rbp), %ecx
addl $0x0, %ecx
movslq %ecx, %rcx
movb (%rax,%rcx), %dl
movq -0x80(%rbp), %rax
movl -0x90(%rbp), %ecx
shll $0x2, %ecx
addl $0x0, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0x90(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x90(%rbp)
jmp 0x1a487
jmp 0x1a53f
jmp 0x1a541
jmp 0x1a543
movl -0x40(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
jmp 0x19deb
jmp 0x1a5f0
cmpl $0x10, 0x10(%rbp)
jne 0x1a5ee
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0xa0(%rbp)
movl $0x0, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
movl -0x24(%rbp), %ecx
imull -0x28(%rbp), %ecx
imull -0x20(%rbp), %ecx
cmpl %ecx, %eax
jae 0x1a5ec
movq -0x98(%rbp), %rax
movzbl (%rax), %eax
shll $0x8, %eax
movq -0x98(%rbp), %rcx
movzbl 0x1(%rcx), %ecx
orl %ecx, %eax
movw %ax, %cx
movq -0xa0(%rbp), %rax
movw %cx, (%rax)
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
movq -0xa0(%rbp), %rax
addq $0x2, %rax
movq %rax, -0xa0(%rbp)
movq -0x98(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x98(%rbp)
jmp 0x1a584
jmp 0x1a5ee
jmp 0x1a5f0
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xe0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)