// File: /workspace/github_c_makefile_star2_O0/patriciogonzalezvivo[P]tprint/include/std/stb_image.h
// Function: stbi__bmp_load(stbi__context*, int*, int*, int*, int)
static stbi_uc *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp)
{
   stbi_uc *out;
   unsigned int mr=0,mg=0,mb=0,ma=0, fake_a=0;
   stbi_uc pal[256][4];
   int psize=0,i,j,compress=0,width;
   int bpp, flip_vertically, pad, target, offset, hsz;
   if (stbi__get8(s) != 'B' || stbi__get8(s) != 'M') return stbi__errpuc("not BMP", "Corrupt BMP");
   stbi__get32le(s); // discard filesize
   stbi__get16le(s); // discard reserved
   stbi__get16le(s); // discard reserved
   offset = stbi__get32le(s);
   hsz = stbi__get32le(s);
   if (hsz != 12 && hsz != 40 && hsz != 56 && hsz != 108 && hsz != 124) return stbi__errpuc("unknown BMP", "BMP type not supported: unknown");
   if (hsz == 12) {
      s->img_x = stbi__get16le(s);
      s->img_y = stbi__get16le(s);
   } else {
      s->img_x = stbi__get32le(s);
      s->img_y = stbi__get32le(s);
   }
   if (stbi__get16le(s) != 1) return stbi__errpuc("bad BMP", "bad BMP");
   bpp = stbi__get16le(s);
   if (bpp == 1) return stbi__errpuc("monochrome", "BMP type not supported: 1-bit");
   flip_vertically = ((int) s->img_y) > 0;
   s->img_y = abs((int) s->img_y);
   if (hsz == 12) {
      if (bpp < 24)
         psize = (offset - 14 - 24) / 3;
   } else {
      compress = stbi__get32le(s);
      if (compress == 1 || compress == 2) return stbi__errpuc("BMP RLE", "BMP type not supported: RLE");
      stbi__get32le(s); // discard sizeof
      stbi__get32le(s); // discard hres
      stbi__get32le(s); // discard vres
      stbi__get32le(s); // discard colorsused
      stbi__get32le(s); // discard max important
      if (hsz == 40 || hsz == 56) {
         if (hsz == 56) {
            stbi__get32le(s);
            stbi__get32le(s);
            stbi__get32le(s);
            stbi__get32le(s);
         }
         if (bpp == 16 || bpp == 32) {
            mr = mg = mb = 0;
            if (compress == 0) {
               if (bpp == 32) {
                  mr = 0xffu << 16;
                  mg = 0xffu <<  8;
                  mb = 0xffu <<  0;
                  ma = 0xffu << 24;
                  fake_a = 1; // @TODO: check for cases like alpha value is all 0 and switch it to 255
                  STBI_NOTUSED(fake_a);
               } else {
                  mr = 31u << 10;
                  mg = 31u <<  5;
                  mb = 31u <<  0;
               }
            } else if (compress == 3) {
               mr = stbi__get32le(s);
               mg = stbi__get32le(s);
               mb = stbi__get32le(s);
               // not documented, but generated by photoshop and handled by mspaint
               if (mr == mg && mg == mb) {
                  // ?!?!?
                  return stbi__errpuc("bad BMP", "bad BMP");
               }
            } else
               return stbi__errpuc("bad BMP", "bad BMP");
         }
      } else {
         STBI_ASSERT(hsz == 108 || hsz == 124);
         mr = stbi__get32le(s);
         mg = stbi__get32le(s);
         mb = stbi__get32le(s);
         ma = stbi__get32le(s);
         stbi__get32le(s); // discard color space
         for (i=0; i < 12; ++i)
            stbi__get32le(s); // discard color space parameters
         if (hsz == 124) {
            stbi__get32le(s); // discard rendering intent
            stbi__get32le(s); // discard offset of profile data
            stbi__get32le(s); // discard size of profile data
            stbi__get32le(s); // discard reserved
         }
      }
      if (bpp < 16)
         psize = (offset - 14 - hsz) >> 2;
   }
   s->img_n = ma ? 4 : 3;
   if (req_comp && req_comp >= 3) // we can directly decode 3 or 4
      target = req_comp;
   else
      target = s->img_n; // if they want monochrome, we'll post-convert
   out = (stbi_uc *) stbi__malloc(target * s->img_x * s->img_y);
   if (!out) return stbi__errpuc("outofmem", "Out of memory");
   if (bpp < 16) {
      int z=0;
      if (psize == 0 || psize > 256) { STBI_FREE(out); return stbi__errpuc("invalid", "Corrupt BMP"); }
      for (i=0; i < psize; ++i) {
         pal[i][2] = stbi__get8(s);
         pal[i][1] = stbi__get8(s);
         pal[i][0] = stbi__get8(s);
         if (hsz != 12) stbi__get8(s);
         pal[i][3] = 255;
      }
      stbi__skip(s, offset - 14 - hsz - psize * (hsz == 12 ? 3 : 4));
      if (bpp == 4) width = (s->img_x + 1) >> 1;
      else if (bpp == 8) width = s->img_x;
      else { STBI_FREE(out); return stbi__errpuc("bad bpp", "Corrupt BMP"); }
      pad = (-width)&3;
      for (j=0; j < (int) s->img_y; ++j) {
         for (i=0; i < (int) s->img_x; i += 2) {
            int v=stbi__get8(s),v2=0;
            if (bpp == 4) {
               v2 = v & 15;
               v >>= 4;
            }
            out[z++] = pal[v][0];
            out[z++] = pal[v][1];
            out[z++] = pal[v][2];
            if (target == 4) out[z++] = 255;
            if (i+1 == (int) s->img_x) break;
            v = (bpp == 8) ? stbi__get8(s) : v2;
            out[z++] = pal[v][0];
            out[z++] = pal[v][1];
            out[z++] = pal[v][2];
            if (target == 4) out[z++] = 255;
         }
         stbi__skip(s, pad);
      }
   } else {
      int rshift=0,gshift=0,bshift=0,ashift=0,rcount=0,gcount=0,bcount=0,acount=0;
      int z = 0;
      int easy=0;
      stbi__skip(s, offset - 14 - hsz);
      if (bpp == 24) width = 3 * s->img_x;
      else if (bpp == 16) width = 2*s->img_x;
      else /* bpp = 32 and pad = 0 */ width=0;
      pad = (-width) & 3;
      if (bpp == 24) {
         easy = 1;
      } else if (bpp == 32) {
         if (mb == 0xff && mg == 0xff00 && mr == 0x00ff0000 && ma == 0xff000000)
            easy = 2;
      }
      if (!easy) {
         if (!mr || !mg || !mb) { STBI_FREE(out); return stbi__errpuc("bad masks", "Corrupt BMP"); }
         // right shift amt to put high bit in position #7
         rshift = stbi__high_bit(mr)-7; rcount = stbi__bitcount(mr);
         gshift = stbi__high_bit(mg)-7; gcount = stbi__bitcount(mg);
         bshift = stbi__high_bit(mb)-7; bcount = stbi__bitcount(mb);
         ashift = stbi__high_bit(ma)-7; acount = stbi__bitcount(ma);
      }
      for (j=0; j < (int) s->img_y; ++j) {
         if (easy) {
            for (i=0; i < (int) s->img_x; ++i) {
               unsigned char a;
               out[z+2] = stbi__get8(s);
               out[z+1] = stbi__get8(s);
               out[z+0] = stbi__get8(s);
               z += 3;
               a = (easy == 2 ? stbi__get8(s) : 255);
               if (target == 4) out[z++] = a;
            }
         } else {
            for (i=0; i < (int) s->img_x; ++i) {
               stbi__uint32 v = (bpp == 16 ? (stbi__uint32) stbi__get16le(s) : stbi__get32le(s));
               int a;
               out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mr, rshift, rcount));
               out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mg, gshift, gcount));
               out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mb, bshift, bcount));
               a = (ma ? stbi__shiftsigned(v & ma, ashift, acount) : 255);
               if (target == 4) out[z++] = STBI__BYTECAST(a);
            }
         }
         stbi__skip(s, pad);
      }
   }
   if (flip_vertically) {
      stbi_uc t;
      for (j=0; j < (int) s->img_y>>1; ++j) {
         stbi_uc *p1 = out +      j     *s->img_x*target;
         stbi_uc *p2 = out + (s->img_y-1-j)*s->img_x*target;
         for (i=0; i < (int) s->img_x*target; ++i) {
            t = p1[i], p1[i] = p2[i], p2[i] = t;
         }
      }
   }

   if (req_comp && req_comp != target) {
      out = stbi__convert_format(out, target, req_comp, s->img_x, s->img_y);
      if (out == NULL) return out; // stbi__convert_format frees input on failure
   }

   *x = s->img_x;
   *y = s->img_y;
   if (comp) *comp = s->img_n;
   return out;
}

// Assembly:
subq $0x4f8, %rsp            # imm = 0x4F8
movq %rdi, 0x4e8(%rsp)
movq %rsi, 0x4e0(%rsp)
movq %rdx, 0x4d8(%rsp)
movq %rcx, 0x4d0(%rsp)
movl %r8d, 0x4cc(%rsp)
movl $0x0, 0x4bc(%rsp)
movl $0x0, 0x4b8(%rsp)
movl $0x0, 0x4b4(%rsp)
movl $0x0, 0x4b0(%rsp)
movl $0x0, 0x4ac(%rsp)
movl $0x0, 0x9c(%rsp)
movl $0x0, 0x90(%rsp)
movq 0x4e8(%rsp), %rdi
callq 0x21530
movzbl %al, %eax
cmpl $0x42, %eax
jne 0x1cc36
movq 0x4e8(%rsp), %rdi
callq 0x21530
movzbl %al, %eax
cmpl $0x4d, %eax
je 0x1cc5a
leaq 0x11392(%rip), %rdi     # 0x2dfcf
callq 0x1a190
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
cmovneq %rax, %rax
movq %rax, 0x4f0(%rsp)
jmp 0x1dd5a
movq 0x4e8(%rsp), %rdi
callq 0x28920
movq 0x4e8(%rsp), %rdi
callq 0x28960
movq 0x4e8(%rsp), %rdi
callq 0x28960
movq 0x4e8(%rsp), %rdi
callq 0x28920
movl %eax, 0x78(%rsp)
movq 0x4e8(%rsp), %rdi
callq 0x28920
movl %eax, 0x74(%rsp)
cmpl $0xc, 0x74(%rsp)
je 0x1ccea
cmpl $0x28, 0x74(%rsp)
je 0x1ccea
cmpl $0x38, 0x74(%rsp)
je 0x1ccea
cmpl $0x6c, 0x74(%rsp)
je 0x1ccea
cmpl $0x7c, 0x74(%rsp)
je 0x1ccea
leaq 0x1130a(%rip), %rdi     # 0x2dfd7
callq 0x1a190
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
cmovneq %rax, %rax
movq %rax, 0x4f0(%rsp)
jmp 0x1dd5a
cmpl $0xc, 0x74(%rsp)
jne 0x1cd26
movq 0x4e8(%rsp), %rdi
callq 0x28960
movl %eax, %ecx
movq 0x4e8(%rsp), %rax
movl %ecx, (%rax)
movq 0x4e8(%rsp), %rdi
callq 0x28960
movl %eax, %ecx
movq 0x4e8(%rsp), %rax
movl %ecx, 0x4(%rax)
jmp 0x1cd59
movq 0x4e8(%rsp), %rdi
callq 0x28920
movl %eax, %ecx
movq 0x4e8(%rsp), %rax
movl %ecx, (%rax)
movq 0x4e8(%rsp), %rdi
callq 0x28920
movl %eax, %ecx
movq 0x4e8(%rsp), %rax
movl %ecx, 0x4(%rax)
movq 0x4e8(%rsp), %rdi
callq 0x28960
cmpl $0x1, %eax
je 0x1cd8f
leaq 0x11271(%rip), %rdi     # 0x2dfe3
callq 0x1a190
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
cmovneq %rax, %rax
movq %rax, 0x4f0(%rsp)
jmp 0x1dd5a
movq 0x4e8(%rsp), %rdi
callq 0x28960
movl %eax, 0x88(%rsp)
cmpl $0x1, 0x88(%rsp)
jne 0x1cdd1
leaq 0x11237(%rip), %rdi     # 0x2dfeb
callq 0x1a190
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
cmovneq %rax, %rax
movq %rax, 0x4f0(%rsp)
jmp 0x1dd5a
movq 0x4e8(%rsp), %rax
cmpl $0x0, 0x4(%rax)
setg %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, 0x84(%rsp)
movq 0x4e8(%rsp), %rax
movl 0x4(%rax), %ecx
movl %ecx, %eax
negl %eax
cmovnsl %eax, %ecx
movq 0x4e8(%rsp), %rax
movl %ecx, 0x4(%rax)
cmpl $0xc, 0x74(%rsp)
jne 0x1ce38
cmpl $0x18, 0x88(%rsp)
jge 0x1ce33
movl 0x78(%rsp), %eax
subl $0xe, %eax
subl $0x18, %eax
movl $0x3, %ecx
cltd
idivl %ecx
movl %eax, 0x9c(%rsp)
jmp 0x1d1af
movq 0x4e8(%rsp), %rdi
callq 0x28920
movl %eax, 0x90(%rsp)
cmpl $0x1, 0x90(%rsp)
je 0x1ce60
cmpl $0x2, 0x90(%rsp)
jne 0x1ce84
leaq 0x1118f(%rip), %rdi     # 0x2dff6
callq 0x1a190
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
cmovneq %rax, %rax
movq %rax, 0x4f0(%rsp)
jmp 0x1dd5a
movq 0x4e8(%rsp), %rdi
callq 0x28920
movq 0x4e8(%rsp), %rdi
callq 0x28920
movq 0x4e8(%rsp), %rdi
callq 0x28920
movq 0x4e8(%rsp), %rdi
callq 0x28920
movq 0x4e8(%rsp), %rdi
callq 0x28920
cmpl $0x28, 0x74(%rsp)
je 0x1ced7
cmpl $0x38, 0x74(%rsp)
jne 0x1d07b
cmpl $0x38, 0x74(%rsp)
jne 0x1cf12
movq 0x4e8(%rsp), %rdi
callq 0x28920
movq 0x4e8(%rsp), %rdi
callq 0x28920
movq 0x4e8(%rsp), %rdi
callq 0x28920
movq 0x4e8(%rsp), %rdi
callq 0x28920
cmpl $0x10, 0x88(%rsp)
je 0x1cf2a
cmpl $0x20, 0x88(%rsp)
jne 0x1d076
movl $0x0, 0x4b4(%rsp)
movl $0x0, 0x4b8(%rsp)
movl $0x0, 0x4bc(%rsp)
cmpl $0x0, 0x90(%rsp)
jne 0x1cfbe
cmpl $0x20, 0x88(%rsp)
jne 0x1cf98
movl $0xff0000, 0x4bc(%rsp) # imm = 0xFF0000
movl $0xff00, 0x4b8(%rsp) # imm = 0xFF00
movl $0xff, 0x4b4(%rsp)
movl $0xff000000, 0x4b0(%rsp) # imm = 0xFF000000
movl $0x1, 0x4ac(%rsp)
jmp 0x1cfb9
movl $0x7c00, 0x4bc(%rsp) # imm = 0x7C00
movl $0x3e0, 0x4b8(%rsp) # imm = 0x3E0
movl $0x1f, 0x4b4(%rsp)
jmp 0x1d074
cmpl $0x3, 0x90(%rsp)
jne 0x1d04e
movq 0x4e8(%rsp), %rdi
callq 0x28920
movl %eax, 0x4bc(%rsp)
movq 0x4e8(%rsp), %rdi
callq 0x28920
movl %eax, 0x4b8(%rsp)
movq 0x4e8(%rsp), %rdi
callq 0x28920
movl %eax, 0x4b4(%rsp)
movl 0x4bc(%rsp), %eax
cmpl 0x4b8(%rsp), %eax
jne 0x1d04c
movl 0x4b8(%rsp), %eax
cmpl 0x4b4(%rsp), %eax
jne 0x1d04c
leaq 0x10fb4(%rip), %rdi     # 0x2dfe3
callq 0x1a190
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
cmovneq %rax, %rax
movq %rax, 0x4f0(%rsp)
jmp 0x1dd5a
jmp 0x1d072
leaq 0x10f8e(%rip), %rdi     # 0x2dfe3
callq 0x1a190
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
cmovneq %rax, %rax
movq %rax, 0x4f0(%rsp)
jmp 0x1dd5a
jmp 0x1d074
jmp 0x1d076
jmp 0x1d18e
movb $0x1, %al
cmpl $0x6c, 0x74(%rsp)
movb %al, 0x1f(%rsp)
je 0x1d094
cmpl $0x7c, 0x74(%rsp)
sete %al
movb %al, 0x1f(%rsp)
movb 0x1f(%rsp), %al
testb $0x1, %al
jne 0x1d09e
jmp 0x1d0a0
jmp 0x1d0bf
leaq 0x10f57(%rip), %rdi     # 0x2dffe
leaq 0x10b65(%rip), %rsi     # 0x2dc13
movl $0x1229, %edx           # imm = 0x1229
leaq 0x10f5d(%rip), %rcx     # 0x2e017
callq 0xd270
movq 0x4e8(%rsp), %rdi
callq 0x28920
movl %eax, 0x4bc(%rsp)
movq 0x4e8(%rsp), %rdi
callq 0x28920
movl %eax, 0x4b8(%rsp)
movq 0x4e8(%rsp), %rdi
callq 0x28920
movl %eax, 0x4b4(%rsp)
movq 0x4e8(%rsp), %rdi
callq 0x28920
movl %eax, 0x4b0(%rsp)
movq 0x4e8(%rsp), %rdi
callq 0x28920
movl $0x0, 0x98(%rsp)
cmpl $0xc, 0x98(%rsp)
jge 0x1d151
movq 0x4e8(%rsp), %rdi
callq 0x28920
movl 0x98(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x98(%rsp)
jmp 0x1d127
cmpl $0x7c, 0x74(%rsp)
jne 0x1d18c
movq 0x4e8(%rsp), %rdi
callq 0x28920
movq 0x4e8(%rsp), %rdi
callq 0x28920
movq 0x4e8(%rsp), %rdi
callq 0x28920
movq 0x4e8(%rsp), %rdi
callq 0x28920
jmp 0x1d18e
cmpl $0x10, 0x88(%rsp)
jge 0x1d1ad
movl 0x78(%rsp), %eax
subl $0xe, %eax
subl 0x74(%rsp), %eax
sarl $0x2, %eax
movl %eax, 0x9c(%rsp)
jmp 0x1d1af
movl 0x4b0(%rsp), %edx
movl $0x3, %ecx
movl $0x4, %eax
cmpl $0x0, %edx
cmovnel %eax, %ecx
movq 0x4e8(%rsp), %rax
movl %ecx, 0x8(%rax)
cmpl $0x0, 0x4cc(%rsp)
je 0x1d1f2
cmpl $0x3, 0x4cc(%rsp)
jl 0x1d1f2
movl 0x4cc(%rsp), %eax
movl %eax, 0x7c(%rsp)
jmp 0x1d201
movq 0x4e8(%rsp), %rax
movl 0x8(%rax), %eax
movl %eax, 0x7c(%rsp)
movl 0x7c(%rsp), %eax
movq 0x4e8(%rsp), %rcx
imull (%rcx), %eax
movq 0x4e8(%rsp), %rcx
imull 0x4(%rcx), %eax
movl %eax, %eax
movl %eax, %edi
callq 0x1ac80
movq %rax, 0x4c0(%rsp)
cmpq $0x0, 0x4c0(%rsp)
jne 0x1d25c
leaq 0x10904(%rip), %rdi     # 0x2db43
callq 0x1a190
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
cmovneq %rax, %rax
movq %rax, 0x4f0(%rsp)
jmp 0x1dd5a
cmpl $0x10, 0x88(%rsp)
jge 0x1d66f
movl $0x0, 0x70(%rsp)
cmpl $0x0, 0x9c(%rsp)
je 0x1d289
cmpl $0x100, 0x9c(%rsp) # imm = 0x100
jle 0x1d2ba
movq 0x4c0(%rsp), %rdi
callq 0xd4e0
leaq 0x10dbd(%rip), %rdi     # 0x2e05a
callq 0x1a190
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
cmovneq %rax, %rax
movq %rax, 0x4f0(%rsp)
jmp 0x1dd5a
movl $0x0, 0x98(%rsp)
movl 0x98(%rsp), %eax
cmpl 0x9c(%rsp), %eax
jge 0x1d36d
movq 0x4e8(%rsp), %rdi
callq 0x21530
movb %al, %cl
movslq 0x98(%rsp), %rax
movb %cl, 0xa2(%rsp,%rax,4)
movq 0x4e8(%rsp), %rdi
callq 0x21530
movb %al, %cl
movslq 0x98(%rsp), %rax
movb %cl, 0xa1(%rsp,%rax,4)
movq 0x4e8(%rsp), %rdi
callq 0x21530
movb %al, %cl
movslq 0x98(%rsp), %rax
movb %cl, 0xa0(%rsp,%rax,4)
cmpl $0xc, 0x74(%rsp)
je 0x1d347
movq 0x4e8(%rsp), %rdi
callq 0x21530
movslq 0x98(%rsp), %rax
movb $-0x1, 0xa3(%rsp,%rax,4)
movl 0x98(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x98(%rsp)
jmp 0x1d2c5
movq 0x4e8(%rsp), %rdi
movl 0x78(%rsp), %esi
subl $0xe, %esi
subl 0x74(%rsp), %esi
movl 0x9c(%rsp), %eax
movl 0x74(%rsp), %r8d
movl $0x4, %ecx
movl $0x3, %edx
cmpl $0xc, %r8d
cmovel %edx, %ecx
imull %ecx, %eax
subl %eax, %esi
callq 0x21ab0
cmpl $0x4, 0x88(%rsp)
jne 0x1d3c9
movq 0x4e8(%rsp), %rax
movl (%rax), %eax
addl $0x1, %eax
shrl %eax
movl %eax, 0x8c(%rsp)
jmp 0x1d419
cmpl $0x8, 0x88(%rsp)
jne 0x1d3e6
movq 0x4e8(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x8c(%rsp)
jmp 0x1d417
movq 0x4c0(%rsp), %rdi
callq 0xd4e0
leaq 0x10c68(%rip), %rdi     # 0x2e062
callq 0x1a190
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
cmovneq %rax, %rax
movq %rax, 0x4f0(%rsp)
jmp 0x1dd5a
jmp 0x1d419
xorl %eax, %eax
subl 0x8c(%rsp), %eax
andl $0x3, %eax
movl %eax, 0x80(%rsp)
movl $0x0, 0x94(%rsp)
movl 0x94(%rsp), %eax
movq 0x4e8(%rsp), %rcx
cmpl 0x4(%rcx), %eax
jge 0x1d66a
movl $0x0, 0x98(%rsp)
movl 0x98(%rsp), %eax
movq 0x4e8(%rsp), %rcx
cmpl (%rcx), %eax
jge 0x1d640
movq 0x4e8(%rsp), %rdi
callq 0x21530
movzbl %al, %eax
movl %eax, 0x6c(%rsp)
movl $0x0, 0x68(%rsp)
cmpl $0x4, 0x88(%rsp)
jne 0x1d4ad
movl 0x6c(%rsp), %eax
andl $0xf, %eax
movl %eax, 0x68(%rsp)
movl 0x6c(%rsp), %eax
sarl $0x4, %eax
movl %eax, 0x6c(%rsp)
movslq 0x6c(%rsp), %rax
movb 0xa0(%rsp,%rax,4), %dl
movq 0x4c0(%rsp), %rax
movl 0x70(%rsp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, 0x70(%rsp)
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movslq 0x6c(%rsp), %rax
movb 0xa1(%rsp,%rax,4), %dl
movq 0x4c0(%rsp), %rax
movl 0x70(%rsp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, 0x70(%rsp)
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movslq 0x6c(%rsp), %rax
movb 0xa2(%rsp,%rax,4), %dl
movq 0x4c0(%rsp), %rax
movl 0x70(%rsp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, 0x70(%rsp)
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
cmpl $0x4, 0x7c(%rsp)
jne 0x1d545
movq 0x4c0(%rsp), %rax
movl 0x70(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0x70(%rsp)
movslq %ecx, %rcx
movb $-0x1, (%rax,%rcx)
movl 0x98(%rsp), %eax
addl $0x1, %eax
movq 0x4e8(%rsp), %rcx
cmpl (%rcx), %eax
jne 0x1d560
jmp 0x1d640
cmpl $0x8, 0x88(%rsp)
jne 0x1d580
movq 0x4e8(%rsp), %rdi
callq 0x21530
movzbl %al, %eax
movl %eax, 0x18(%rsp)
jmp 0x1d588
movl 0x68(%rsp), %eax
movl %eax, 0x18(%rsp)
movl 0x18(%rsp), %eax
movl %eax, 0x6c(%rsp)
movslq 0x6c(%rsp), %rax
movb 0xa0(%rsp,%rax,4), %dl
movq 0x4c0(%rsp), %rax
movl 0x70(%rsp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, 0x70(%rsp)
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movslq 0x6c(%rsp), %rax
movb 0xa1(%rsp,%rax,4), %dl
movq 0x4c0(%rsp), %rax
movl 0x70(%rsp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, 0x70(%rsp)
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movslq 0x6c(%rsp), %rax
movb 0xa2(%rsp,%rax,4), %dl
movq 0x4c0(%rsp), %rax
movl 0x70(%rsp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, 0x70(%rsp)
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
cmpl $0x4, 0x7c(%rsp)
jne 0x1d628
movq 0x4c0(%rsp), %rax
movl 0x70(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0x70(%rsp)
movslq %ecx, %rcx
movb $-0x1, (%rax,%rcx)
jmp 0x1d62a
movl 0x98(%rsp), %eax
addl $0x2, %eax
movl %eax, 0x98(%rsp)
jmp 0x1d45a
movq 0x4e8(%rsp), %rdi
movl 0x80(%rsp), %esi
callq 0x21ab0
movl 0x94(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
jmp 0x1d437
jmp 0x1db66
movl $0x0, 0x64(%rsp)
movl $0x0, 0x60(%rsp)
movl $0x0, 0x5c(%rsp)
movl $0x0, 0x58(%rsp)
movl $0x0, 0x54(%rsp)
movl $0x0, 0x50(%rsp)
movl $0x0, 0x4c(%rsp)
movl $0x0, 0x48(%rsp)
movl $0x0, 0x44(%rsp)
movl $0x0, 0x40(%rsp)
movq 0x4e8(%rsp), %rdi
movl 0x78(%rsp), %esi
subl $0xe, %esi
subl 0x74(%rsp), %esi
callq 0x21ab0
cmpl $0x18, 0x88(%rsp)
jne 0x1d6f5
movq 0x4e8(%rsp), %rax
imull $0x3, (%rax), %eax
movl %eax, 0x8c(%rsp)
jmp 0x1d721
cmpl $0x10, 0x88(%rsp)
jne 0x1d714
movq 0x4e8(%rsp), %rax
movl (%rax), %eax
shll %eax
movl %eax, 0x8c(%rsp)
jmp 0x1d71f
movl $0x0, 0x8c(%rsp)
jmp 0x1d721
xorl %eax, %eax
subl 0x8c(%rsp), %eax
andl $0x3, %eax
movl %eax, 0x80(%rsp)
cmpl $0x18, 0x88(%rsp)
jne 0x1d748
movl $0x1, 0x40(%rsp)
jmp 0x1d792
cmpl $0x20, 0x88(%rsp)
jne 0x1d790
cmpl $0xff, 0x4b4(%rsp)
jne 0x1d78e
cmpl $0xff00, 0x4b8(%rsp) # imm = 0xFF00
jne 0x1d78e
cmpl $0xff0000, 0x4bc(%rsp) # imm = 0xFF0000
jne 0x1d78e
cmpl $0xff000000, 0x4b0(%rsp) # imm = 0xFF000000
jne 0x1d78e
movl $0x2, 0x40(%rsp)
jmp 0x1d790
jmp 0x1d792
cmpl $0x0, 0x40(%rsp)
jne 0x1d878
cmpl $0x0, 0x4bc(%rsp)
je 0x1d7bb
cmpl $0x0, 0x4b8(%rsp)
je 0x1d7bb
cmpl $0x0, 0x4b4(%rsp)
jne 0x1d7ec
movq 0x4c0(%rsp), %rdi
callq 0xd4e0
leaq 0x1089b(%rip), %rdi     # 0x2e06a
callq 0x1a190
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
cmovneq %rax, %rax
movq %rax, 0x4f0(%rsp)
jmp 0x1dd5a
movl 0x4bc(%rsp), %edi
callq 0x289a0
subl $0x7, %eax
movl %eax, 0x64(%rsp)
movl 0x4bc(%rsp), %edi
callq 0x28a70
movl %eax, 0x54(%rsp)
movl 0x4b8(%rsp), %edi
callq 0x289a0
subl $0x7, %eax
movl %eax, 0x60(%rsp)
movl 0x4b8(%rsp), %edi
callq 0x28a70
movl %eax, 0x50(%rsp)
movl 0x4b4(%rsp), %edi
callq 0x289a0
subl $0x7, %eax
movl %eax, 0x5c(%rsp)
movl 0x4b4(%rsp), %edi
callq 0x28a70
movl %eax, 0x4c(%rsp)
movl 0x4b0(%rsp), %edi
callq 0x289a0
subl $0x7, %eax
movl %eax, 0x58(%rsp)
movl 0x4b0(%rsp), %edi
callq 0x28a70
movl %eax, 0x48(%rsp)
movl $0x0, 0x94(%rsp)
movl 0x94(%rsp), %eax
movq 0x4e8(%rsp), %rcx
cmpl 0x4(%rcx), %eax
jge 0x1db64
cmpl $0x0, 0x40(%rsp)
je 0x1d9b2
movl $0x0, 0x98(%rsp)
movl 0x98(%rsp), %eax
movq 0x4e8(%rsp), %rcx
cmpl (%rcx), %eax
jge 0x1d9ad
movq 0x4e8(%rsp), %rdi
callq 0x21530
movb %al, %dl
movq 0x4c0(%rsp), %rax
movl 0x44(%rsp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movq 0x4e8(%rsp), %rdi
callq 0x21530
movb %al, %dl
movq 0x4c0(%rsp), %rax
movl 0x44(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movq 0x4e8(%rsp), %rdi
callq 0x21530
movb %al, %dl
movq 0x4c0(%rsp), %rax
movl 0x44(%rsp), %ecx
addl $0x0, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl 0x44(%rsp), %eax
addl $0x3, %eax
movl %eax, 0x44(%rsp)
cmpl $0x2, 0x40(%rsp)
jne 0x1d95c
movq 0x4e8(%rsp), %rdi
callq 0x21530
movzbl %al, %eax
movl %eax, 0x14(%rsp)
jmp 0x1d967
movl $0xff, %eax
movl %eax, 0x14(%rsp)
jmp 0x1d967
movl 0x14(%rsp), %eax
movb %al, 0x3f(%rsp)
cmpl $0x4, 0x7c(%rsp)
jne 0x1d995
movb 0x3f(%rsp), %dl
movq 0x4c0(%rsp), %rax
movl 0x44(%rsp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, 0x44(%rsp)
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
jmp 0x1d997
movl 0x98(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x98(%rsp)
jmp 0x1d8b1
jmp 0x1db3a
movl $0x0, 0x98(%rsp)
movl 0x98(%rsp), %eax
movq 0x4e8(%rsp), %rcx
cmpl (%rcx), %eax
jge 0x1db38
cmpl $0x10, 0x88(%rsp)
jne 0x1d9f1
movq 0x4e8(%rsp), %rdi
callq 0x28960
movl %eax, 0x10(%rsp)
jmp 0x1da02
movq 0x4e8(%rsp), %rdi
callq 0x28920
movl %eax, 0x10(%rsp)
movl 0x10(%rsp), %eax
movl %eax, 0x38(%rsp)
movl 0x38(%rsp), %edi
andl 0x4bc(%rsp), %edi
movl 0x64(%rsp), %esi
movl 0x54(%rsp), %edx
callq 0x28af0
andl $0xff, %eax
movb %al, %dl
movq 0x4c0(%rsp), %rax
movl 0x44(%rsp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, 0x44(%rsp)
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl 0x38(%rsp), %edi
andl 0x4b8(%rsp), %edi
movl 0x60(%rsp), %esi
movl 0x50(%rsp), %edx
callq 0x28af0
andl $0xff, %eax
movb %al, %dl
movq 0x4c0(%rsp), %rax
movl 0x44(%rsp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, 0x44(%rsp)
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl 0x38(%rsp), %edi
andl 0x4b4(%rsp), %edi
movl 0x5c(%rsp), %esi
movl 0x4c(%rsp), %edx
callq 0x28af0
andl $0xff, %eax
movb %al, %dl
movq 0x4c0(%rsp), %rax
movl 0x44(%rsp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, 0x44(%rsp)
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
cmpl $0x0, 0x4b0(%rsp)
je 0x1dae0
movl 0x38(%rsp), %edi
andl 0x4b0(%rsp), %edi
movl 0x58(%rsp), %esi
movl 0x48(%rsp), %edx
callq 0x28af0
movl %eax, 0xc(%rsp)
jmp 0x1daeb
movl $0xff, %eax
movl %eax, 0xc(%rsp)
jmp 0x1daeb
movl 0xc(%rsp), %eax
movl %eax, 0x34(%rsp)
cmpl $0x4, 0x7c(%rsp)
jne 0x1db20
movl 0x34(%rsp), %eax
andl $0xff, %eax
movb %al, %dl
movq 0x4c0(%rsp), %rax
movl 0x44(%rsp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, 0x44(%rsp)
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
jmp 0x1db22
movl 0x98(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x98(%rsp)
jmp 0x1d9bd
jmp 0x1db3a
movq 0x4e8(%rsp), %rdi
movl 0x80(%rsp), %esi
callq 0x21ab0
movl 0x94(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
jmp 0x1d883
jmp 0x1db66
cmpl $0x0, 0x84(%rsp)
je 0x1dc95
movl $0x0, 0x94(%rsp)
movl 0x94(%rsp), %eax
movq 0x4e8(%rsp), %rcx
movl 0x4(%rcx), %ecx
sarl %ecx
cmpl %ecx, %eax
jge 0x1dc93
movq 0x4c0(%rsp), %rax
movl 0x94(%rsp), %ecx
movq 0x4e8(%rsp), %rdx
imull (%rdx), %ecx
imull 0x7c(%rsp), %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, 0x28(%rsp)
movq 0x4c0(%rsp), %rax
movq 0x4e8(%rsp), %rcx
movl 0x4(%rcx), %ecx
subl $0x1, %ecx
subl 0x94(%rsp), %ecx
movq 0x4e8(%rsp), %rdx
imull (%rdx), %ecx
imull 0x7c(%rsp), %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, 0x20(%rsp)
movl $0x0, 0x98(%rsp)
movl 0x98(%rsp), %eax
movq 0x4e8(%rsp), %rcx
movl (%rcx), %ecx
imull 0x7c(%rsp), %ecx
cmpl %ecx, %eax
jge 0x1dc7b
movq 0x28(%rsp), %rax
movslq 0x98(%rsp), %rcx
movb (%rax,%rcx), %al
movb %al, 0x33(%rsp)
movq 0x20(%rsp), %rax
movslq 0x98(%rsp), %rcx
movb (%rax,%rcx), %dl
movq 0x28(%rsp), %rax
movslq 0x98(%rsp), %rcx
movb %dl, (%rax,%rcx)
movb 0x33(%rsp), %dl
movq 0x20(%rsp), %rax
movslq 0x98(%rsp), %rcx
movb %dl, (%rax,%rcx)
movl 0x98(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x98(%rsp)
jmp 0x1dc06
jmp 0x1dc7d
movl 0x94(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
jmp 0x1db7f
jmp 0x1dc95
cmpl $0x0, 0x4cc(%rsp)
je 0x1dd01
movl 0x4cc(%rsp), %eax
cmpl 0x7c(%rsp), %eax
je 0x1dd01
movq 0x4c0(%rsp), %rdi
movl 0x7c(%rsp), %esi
movl 0x4cc(%rsp), %edx
movq 0x4e8(%rsp), %rax
movl (%rax), %ecx
movq 0x4e8(%rsp), %rax
movl 0x4(%rax), %r8d
callq 0x25b30
movq %rax, 0x4c0(%rsp)
cmpq $0x0, 0x4c0(%rsp)
jne 0x1dcff
movq 0x4c0(%rsp), %rax
movq %rax, 0x4f0(%rsp)
jmp 0x1dd5a
jmp 0x1dd01
movq 0x4e8(%rsp), %rax
movl (%rax), %ecx
movq 0x4e0(%rsp), %rax
movl %ecx, (%rax)
movq 0x4e8(%rsp), %rax
movl 0x4(%rax), %ecx
movq 0x4d8(%rsp), %rax
movl %ecx, (%rax)
cmpq $0x0, 0x4d0(%rsp)
je 0x1dd4a
movq 0x4e8(%rsp), %rax
movl 0x8(%rax), %ecx
movq 0x4d0(%rsp), %rax
movl %ecx, (%rax)
movq 0x4c0(%rsp), %rax
movq %rax, 0x4f0(%rsp)
movq 0x4f0(%rsp), %rax
addq $0x4f8, %rsp            # imm = 0x4F8
retq
nopw (%rax,%rax)