// File: /workspace/github_c_makefile_star2_O3/zhiyb[P]png2tlg/./stb_image.h
// Function: stbi__psd_load(stbi__context*, int*, int*, int*, int, stbi__result_info*, int)
static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc)
{
   int pixelCount;
   int channelCount, compression;
   int channel, i;
   int bitdepth;
   int w,h;
   stbi_uc *out;
   STBI_NOTUSED(ri);

   // Check identifier
   if (stbi__get32be(s) != 0x38425053)   // "8BPS"
      return stbi__errpuc("not PSD", "Corrupt PSD image");

   // Check file type version.
   if (stbi__get16be(s) != 1)
      return stbi__errpuc("wrong version", "Unsupported version of PSD image");

   // Skip 6 reserved bytes.
   stbi__skip(s, 6 );

   // Read the number of channels (R, G, B, A, etc).
   channelCount = stbi__get16be(s);
   if (channelCount < 0 || channelCount > 16)
      return stbi__errpuc("wrong channel count", "Unsupported number of channels in PSD image");

   // Read the rows and columns of the image.
   h = stbi__get32be(s);
   w = stbi__get32be(s);

   // Make sure the depth is 8 bits.
   bitdepth = stbi__get16be(s);
   if (bitdepth != 8 && bitdepth != 16)
      return stbi__errpuc("unsupported bit depth", "PSD bit depth is not 8 or 16 bit");

   // Make sure the color mode is RGB.
   // Valid options are:
   //   0: Bitmap
   //   1: Grayscale
   //   2: Indexed color
   //   3: RGB color
   //   4: CMYK color
   //   7: Multichannel
   //   8: Duotone
   //   9: Lab color
   if (stbi__get16be(s) != 3)
      return stbi__errpuc("wrong color format", "PSD is not in RGB color format");

   // Skip the Mode Data.  (It's the palette for indexed color; other info for other modes.)
   stbi__skip(s,stbi__get32be(s) );

   // Skip the image resources.  (resolution, pen tool paths, etc)
   stbi__skip(s, stbi__get32be(s) );

   // Skip the reserved data.
   stbi__skip(s, stbi__get32be(s) );

   // Find out if the data is compressed.
   // Known values:
   //   0: no compression
   //   1: RLE compressed
   compression = stbi__get16be(s);
   if (compression > 1)
      return stbi__errpuc("bad compression", "PSD has an unknown compression format");

   // Check size
   if (!stbi__mad3sizes_valid(4, w, h, 0))
      return stbi__errpuc("too large", "Corrupt PSD");

   // Create the destination image.

   if (!compression && bitdepth == 16 && bpc == 16) {
      out = (stbi_uc *) stbi__malloc_mad3(8, w, h, 0);
      ri->bits_per_channel = 16;
   } else
      out = (stbi_uc *) stbi__malloc(4 * w*h);

   if (!out) return stbi__errpuc("outofmem", "Out of memory");
   pixelCount = w*h;

   // Initialize the data to zero.
   //memset( out, 0, pixelCount * 4 );

   // Finally, the image data.
   if (compression) {
      // RLE as used by .PSD and .TIFF
      // Loop until you get the number of unpacked bytes you are expecting:
      //     Read the next source byte into n.
      //     If n is between 0 and 127 inclusive, copy the next n+1 bytes literally.
      //     Else if n is between -127 and -1 inclusive, copy the next byte -n+1 times.
      //     Else if n is 128, noop.
      // Endloop

      // The RLE-compressed data is preceded by a 2-byte data count for each row in the data,
      // which we're going to just skip.
      stbi__skip(s, h * channelCount * 2 );

      // Read the RLE data by channel.
      for (channel = 0; channel < 4; channel++) {
         stbi_uc *p;

         p = out+channel;
         if (channel >= channelCount) {
            // Fill this channel with default data.
            for (i = 0; i < pixelCount; i++, p += 4)
               *p = (channel == 3 ? 255 : 0);
         } else {
            // Read the RLE data.
            if (!stbi__psd_decode_rle(s, p, pixelCount)) {
               STBI_FREE(out);
               return stbi__errpuc("corrupt", "bad RLE data");
            }
         }
      }

   } else {
      // We're at the raw image data.  It's each channel in order (Red, Green, Blue, Alpha, ...)
      // where each channel consists of an 8-bit (or 16-bit) value for each pixel in the image.

      // Read the data by channel.
      for (channel = 0; channel < 4; channel++) {
         if (channel >= channelCount) {
            // Fill this channel with default data.
            if (bitdepth == 16 && bpc == 16) {
               stbi__uint16 *q = ((stbi__uint16 *) out) + channel;
               stbi__uint16 val = channel == 3 ? 65535 : 0;
               for (i = 0; i < pixelCount; i++, q += 4)
                  *q = val;
            } else {
               stbi_uc *p = out+channel;
               stbi_uc val = channel == 3 ? 255 : 0;
               for (i = 0; i < pixelCount; i++, p += 4)
                  *p = val;
            }
         } else {
            if (ri->bits_per_channel == 16) {    // output bpc
               stbi__uint16 *q = ((stbi__uint16 *) out) + channel;
               for (i = 0; i < pixelCount; i++, q += 4)
                  *q = (stbi__uint16) stbi__get16be(s);
            } else {
               stbi_uc *p = out+channel;
               if (bitdepth == 16) {  // input bpc
                  for (i = 0; i < pixelCount; i++, p += 4)
                     *p = (stbi_uc) (stbi__get16be(s) >> 8);
               } else {
                  for (i = 0; i < pixelCount; i++, p += 4)
                     *p = stbi__get8(s);
               }
            }
         }
      }
   }

   // remove weird white matte from PSD
   if (channelCount >= 4) {
      if (ri->bits_per_channel == 16) {
         for (i=0; i < w*h; ++i) {
            stbi__uint16 *pixel = (stbi__uint16 *) out + 4*i;
            if (pixel[3] != 0 && pixel[3] != 65535) {
               float a = pixel[3] / 65535.0f;
               float ra = 1.0f / a;
               float inv_a = 65535.0f * (1 - ra);
               pixel[0] = (stbi__uint16) (pixel[0]*ra + inv_a);
               pixel[1] = (stbi__uint16) (pixel[1]*ra + inv_a);
               pixel[2] = (stbi__uint16) (pixel[2]*ra + inv_a);
            }
         }
      } else {
         for (i=0; i < w*h; ++i) {
            unsigned char *pixel = out + 4*i;
            if (pixel[3] != 0 && pixel[3] != 255) {
               float a = pixel[3] / 255.0f;
               float ra = 1.0f / a;
               float inv_a = 255.0f * (1 - ra);
               pixel[0] = (unsigned char) (pixel[0]*ra + inv_a);
               pixel[1] = (unsigned char) (pixel[1]*ra + inv_a);
               pixel[2] = (unsigned char) (pixel[2]*ra + inv_a);
            }
         }
      }
   }

   // convert to desired output format
   if (req_comp && req_comp != 4) {
      if (ri->bits_per_channel == 16)
         out = (stbi_uc *) stbi__convert_format16((stbi__uint16 *) out, 4, req_comp, w, h);
      else
         out = stbi__convert_format(out, 4, req_comp, w, h);
      if (out == NULL) return out; // stbi__convert_format frees input on failure
   }

   if (comp) *comp = 4;
   *y = h;
   *x = w;

   return out;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc8, %rsp
movq %r9, 0x80(%rsp)
movl %r8d, %r14d
movq %rcx, %rbp
movq %rdx, %r12
movq %rsi, %r15
movq %rdi, %r13
callq 0xfc21
movl %eax, %ebx
shll $0x10, %ebx
movq %r13, %rdi
callq 0xfc21
orl %ebx, %eax
cmpl $0x38425053, %eax       # imm = 0x38425053
jne 0xa8c0
movq %r13, %rdi
callq 0xfc21
cmpl $0x1, %eax
jne 0xa8cc
cmpq $0x0, 0x10(%r13)
je 0xa8d8
movq 0xb8(%r13), %rax
movq 0xc0(%r13), %rdx
movl %edx, %ecx
subl %eax, %ecx
cmpl $0x5, %ecx
jg 0xa8df
movq %rdx, 0xb8(%r13)
movq 0x28(%r13), %rdi
movl $0x6, %esi
subl %ecx, %esi
callq *0x18(%r13)
jmp 0xa8ea
leaq 0xe906(%rip), %rax      # 0x191cd
jmp 0xa9f6
leaq 0xe902(%rip), %rax      # 0x191d5
jmp 0xa9f6
movq 0xb8(%r13), %rax
addq $0x6, %rax
movq %rax, 0xb8(%r13)
movq %r13, %rdi
callq 0xfc21
cmpl $0x11, %eax
jb 0xa903
leaq 0xe8e5(%rip), %rax      # 0x191e3
jmp 0xa9f6
movl %eax, 0x1c(%rsp)
movq %r13, %rdi
callq 0xfc21
movq %rax, 0x28(%rsp)
movq %r13, %rdi
callq 0xfc21
movl %eax, %ebx
movq %r13, %rdi
callq 0xfc21
movq %rax, 0x20(%rsp)
movq %r13, %rdi
callq 0xfc21
movq %rax, 0x48(%rsp)
movq %r13, %rdi
callq 0xfc21
cmpl $0x8, %eax
je 0xa94e
cmpl $0x10, %eax
jne 0xa9ef
movl %eax, 0x40(%rsp)
movq %r13, %rdi
callq 0xfc21
cmpl $0x3, %eax
jne 0xa9e6
movq %rbx, 0x38(%rsp)
movl %r14d, 0x18(%rsp)
movq %r13, %rdi
callq 0xfc21
movl %eax, %ebx
shll $0x10, %ebx
movq %r13, %rdi
callq 0xfc21
orl %eax, %ebx
movq %r13, %rdi
movl %ebx, %esi
callq 0xfe58
movq %r13, %rdi
callq 0xfc21
movl %eax, %ebx
shll $0x10, %ebx
movq %r13, %rdi
callq 0xfc21
orl %eax, %ebx
movq %r13, %rdi
movl %ebx, %esi
callq 0xfe58
movq %r13, %rdi
callq 0xfc21
movl %eax, %ebx
shll $0x10, %ebx
movq %r13, %rdi
callq 0xfc21
orl %eax, %ebx
movq %r13, %rdi
movl %ebx, %esi
callq 0xfe58
movq %r13, %rdi
callq 0xfc21
cmpl $0x2, %eax
jb 0xaa14
leaq 0xe83c(%rip), %rax      # 0x19220
jmp 0xa9f6
leaq 0xe820(%rip), %rax      # 0x1920d
jmp 0xa9f6
leaq 0xe801(%rip), %rax      # 0x191f7
movq %rax, 0x127fb(%rip)     # 0x1d1f8
xorl %edi, %edi
movq %rdi, %rax
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl %eax, %r14d
movq 0x28(%rsp), %rcx
shll $0x10, %ecx
movq 0x38(%rsp), %rax
movq %rcx, 0x28(%rsp)
leal (%rcx,%rax), %edx
movq 0x20(%rsp), %rcx
shll $0x10, %ecx
movq 0x48(%rsp), %rax
movq %rcx, 0x20(%rsp)
leal (%rcx,%rax), %esi
movl $0x4, %edi
movl %esi, 0x8(%rsp)
movl %edx, 0xc(%rsp)
xorl %ecx, %ecx
callq 0xfeae
testl %eax, %eax
je 0xaa98
movl 0x100(%rsp), %ebx
cmpl $0x10, %ebx
jne 0xaaa4
cmpl $0x10, 0x40(%rsp)
jne 0xaaa4
testl %r14d, %r14d
jne 0xaaa4
movl $0x8, %edi
movl 0x8(%rsp), %esi
movl 0xc(%rsp), %edx
xorl %ecx, %ecx
callq 0xffc2
movq %rax, %rcx
movq 0x80(%rsp), %rax
movl $0x10, (%rax)
jmp 0xaabb
leaq 0xe100(%rip), %rax      # 0x18b9f
jmp 0xa9f6
movl 0xc(%rsp), %eax
imull 0x8(%rsp), %eax
shll $0x2, %eax
movslq %eax, %rdi
callq 0x2200
movq %rax, %rcx
movq %rcx, 0x30(%rsp)
testq %rcx, %rcx
je 0xb25a
movq %rbp, 0xa0(%rsp)
movq %r12, 0xa8(%rsp)
movq %r15, 0xb0(%rsp)
movl 0x8(%rsp), %ecx
movl 0xc(%rsp), %eax
imull %eax, %ecx
movl %ecx, (%rsp)
testl %r14d, %r14d
je 0xb27c
movl 0x1c(%rsp), %ebx
movl %ebx, %esi
imull %eax, %esi
addl %esi, %esi
movq %r13, %rdi
callq 0xfe58
leaq 0x38(%r13), %r14
leaq 0x39(%r13), %rax
movq %rax, 0x60(%rsp)
movl %ebx, %eax
movq %rax, 0x40(%rsp)
movq 0x48(%rsp), %rdi
movl %edi, %eax
movq 0x20(%rsp), %r8
orl %r8d, %eax
movq 0x38(%rsp), %rdx
movl %edx, %ecx
movq 0x28(%rsp), %rsi
orl %esi, %ecx
imull %eax, %ecx
decq %rcx
movq %rcx, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
movdqa %xmm0, 0x90(%rsp)
movq 0x30(%rsp), %rax
leaq 0x3c(%rax), %rbp
leal (%rdi,%r8), %eax
leal (%rdx,%rsi), %r15d
imull %eax, %r15d
addq $0xf, %r15
andq $-0x10, %r15
xorl %eax, %eax
movdqa 0xd544(%rip), %xmm7     # 0x180c0
pcmpeqd %xmm8, %xmm8
movq %r14, 0x58(%rsp)
movq %r15, 0x78(%rsp)
movq %rax, 0x50(%rsp)
cmpq 0x40(%rsp), %rax
jae 0xadc6
cmpl $0x0, (%rsp)
jle 0xb240
movq 0x30(%rsp), %rax
movq 0x50(%rsp), %rcx
leaq (%rax,%rcx), %r12
xorl %eax, %eax
movl (%rsp), %ebx
movl %eax, 0x10(%rsp)
movq 0xb8(%r13), %rdx
movq 0xc0(%r13), %rax
cmpq %rax, %rdx
jae 0xabde
leaq 0x1(%rdx), %rcx
movq %rcx, 0xb8(%r13)
movb (%rdx), %dl
jmp 0xac3e
cmpl $0x0, 0x30(%r13)
je 0xac07
movq 0x28(%r13), %rdi
movl 0x34(%r13), %edx
movq %r14, %rsi
callq *0x10(%r13)
testl %eax, %eax
je 0xac0c
cltq
addq %r14, %rax
movb (%r14), %dl
movq 0x60(%rsp), %rcx
jmp 0xac23
xorl %r15d, %r15d
jmp 0xac61
movl $0x0, 0x30(%r13)
movb $0x0, 0x38(%r13)
xorl %edx, %edx
movq 0x60(%rsp), %rcx
movq %rcx, %rax
movq %rax, 0xc0(%r13)
movq %rcx, 0xb8(%r13)
movdqa 0xd487(%rip), %xmm7     # 0x180c0
pcmpeqd %xmm8, %xmm8
cmpb $-0x80, %dl
jne 0xac4c
movl 0x10(%rsp), %eax
jmp 0xadb6
movzbl %dl, %r15d
testb %dl, %dl
js 0xad07
cmpl %r15d, %ebx
jbe 0xb266
incl %r15d
movl %r15d, %ebx
movq 0x58(%rsp), %r14
movq 0xb8(%r13), %rax
cmpq 0xc0(%r13), %rax
jae 0xac8b
leaq 0x1(%rax), %rcx
movq %rcx, 0xb8(%r13)
movb (%rax), %al
jmp 0xaceb
cmpl $0x0, 0x30(%r13)
je 0xacb5
movq 0x28(%r13), %rdi
movl 0x34(%r13), %edx
movq %r14, %rsi
callq *0x10(%r13)
testl %eax, %eax
je 0xacb9
movslq %eax, %rcx
addq %r14, %rcx
movb (%r14), %al
movq 0x60(%rsp), %rdx
jmp 0xacd0
xorl %eax, %eax
jmp 0xaceb
movl $0x0, 0x30(%r13)
movb $0x0, 0x38(%r13)
xorl %eax, %eax
movq 0x60(%rsp), %rdx
movq %rdx, %rcx
movdqa 0xd3e8(%rip), %xmm7     # 0x180c0
pcmpeqd %xmm8, %xmm8
movq %rcx, 0xc0(%r13)
movq %rdx, 0xb8(%r13)
movb %al, (%r12)
addq $0x4, %r12
decl %ebx
jne 0xac6c
movl 0x10(%rsp), %eax
addl %r15d, %eax
jmp 0xadb1
movl $0x101, %r14d           # imm = 0x101
subl %r15d, %r14d
cmpl %ebx, %r14d
ja 0xb266
cmpq %rax, %rcx
jae 0xad2d
leaq 0x1(%rcx), %rax
movq %rax, 0xb8(%r13)
movb (%rcx), %al
jmp 0xad91
cmpl $0x0, 0x30(%r13)
je 0xad5b
movq 0x28(%r13), %rdi
movl 0x34(%r13), %edx
movq 0x58(%rsp), %rbx
movq %rbx, %rsi
callq *0x10(%r13)
testl %eax, %eax
je 0xad5f
movslq %eax, %rcx
addq %rbx, %rcx
movb (%rbx), %al
movq 0x60(%rsp), %rdx
jmp 0xad76
xorl %eax, %eax
jmp 0xad91
movl $0x0, 0x30(%r13)
movb $0x0, 0x38(%r13)
xorl %eax, %eax
movq 0x60(%rsp), %rdx
movq %rdx, %rcx
movdqa 0xd342(%rip), %xmm7     # 0x180c0
pcmpeqd %xmm8, %xmm8
movq %rcx, 0xc0(%r13)
movq %rdx, 0xb8(%r13)
addl $0xfffffeff, %r15d      # imm = 0xFFFFFEFF
movb %al, (%r12)
addq $0x4, %r12
incl %r15d
jne 0xad98
movl 0x10(%rsp), %eax
addl %r14d, %eax
movq 0x58(%rsp), %r14
movq 0x78(%rsp), %r15
movl (%rsp), %ebx
subl %eax, %ebx
jg 0xabb8
jmp 0xb240
cmpl $0x0, (%rsp)
jle 0xb240
cmpq $0x3, 0x50(%rsp)
sete %al
negb %al
xorl %ecx, %ecx
movq %rcx, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
movdqa %xmm0, %xmm2
por 0xd2bd(%rip), %xmm2     # 0x180b0
movdqa 0x90(%rsp), %xmm1
pxor %xmm7, %xmm1
pxor %xmm7, %xmm2
movdqa %xmm2, %xmm4
pcmpgtd %xmm1, %xmm4
pshufd $0xa0, %xmm4, %xmm3     # xmm3 = xmm4[0,0,2,2]
pshuflw $0xe8, %xmm3, %xmm5     # xmm5 = xmm3[0,2,2,3,4,5,6,7]
pcmpeqd %xmm1, %xmm2
pshufd $0xf5, %xmm2, %xmm2     # xmm2 = xmm2[1,1,3,3]
pshuflw $0xe8, %xmm2, %xmm6     # xmm6 = xmm2[0,2,2,3,4,5,6,7]
pand %xmm5, %xmm6
pshufd $0xf5, %xmm4, %xmm4     # xmm4 = xmm4[1,1,3,3]
pshuflw $0xe8, %xmm4, %xmm5     # xmm5 = xmm4[0,2,2,3,4,5,6,7]
por %xmm6, %xmm5
pxor %xmm8, %xmm5
packssdw %xmm5, %xmm5
movd %xmm5, %edx
testb $0x1, %dl
je 0xae4c
movb %al, -0x3c(%rbp,%rcx,4)
pand %xmm3, %xmm2
por %xmm4, %xmm2
packssdw %xmm2, %xmm2
pxor %xmm8, %xmm2
packssdw %xmm2, %xmm2
packsswb %xmm2, %xmm2
movd %xmm2, %edx
shrl $0x8, %edx
testb $0x1, %dl
je 0xae75
movb %al, -0x38(%rbp,%rcx,4)
movdqa %xmm0, %xmm3
por 0xd21f(%rip), %xmm3     # 0x180a0
pxor %xmm7, %xmm3
movdqa %xmm3, %xmm4
pcmpgtd %xmm1, %xmm4
pshufd $0xa0, %xmm4, %xmm2     # xmm2 = xmm4[0,0,2,2]
pcmpeqd %xmm1, %xmm3
pshufd $0xf5, %xmm3, %xmm3     # xmm3 = xmm3[1,1,3,3]
movdqa %xmm3, %xmm5
pand %xmm2, %xmm5
pshufd $0xf5, %xmm4, %xmm4     # xmm4 = xmm4[1,1,3,3]
por %xmm4, %xmm5
packssdw %xmm5, %xmm5
pxor %xmm8, %xmm5
packssdw %xmm5, %xmm5
packsswb %xmm5, %xmm5
movd %xmm5, %edx
shrl $0x10, %edx
testb $0x1, %dl
je 0xaecd
movb %al, -0x34(%rbp,%rcx,4)
pshufhw $0x84, %xmm2, %xmm2     # xmm2 = xmm2[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm3, %xmm3     # xmm3 = xmm3[0,1,2,3,4,5,4,6]
pand %xmm2, %xmm3
pshufhw $0x84, %xmm4, %xmm2     # xmm2 = xmm4[0,1,2,3,4,5,4,6]
por %xmm3, %xmm2
pxor %xmm8, %xmm2
packssdw %xmm2, %xmm2
packsswb %xmm2, %xmm2
movd %xmm2, %edx
shrl $0x18, %edx
testb $0x1, %dl
je 0xaf01
movb %al, -0x30(%rbp,%rcx,4)
movdqa %xmm0, %xmm2
por 0xd183(%rip), %xmm2     # 0x18090
pxor %xmm7, %xmm2
movdqa %xmm2, %xmm4
pcmpgtd %xmm1, %xmm4
pshufd $0xa0, %xmm4, %xmm3     # xmm3 = xmm4[0,0,2,2]
pshuflw $0xe8, %xmm3, %xmm5     # xmm5 = xmm3[0,2,2,3,4,5,6,7]
pcmpeqd %xmm1, %xmm2
pshufd $0xf5, %xmm2, %xmm2     # xmm2 = xmm2[1,1,3,3]
pshuflw $0xe8, %xmm2, %xmm6     # xmm6 = xmm2[0,2,2,3,4,5,6,7]
pand %xmm5, %xmm6
pshufd $0xf5, %xmm4, %xmm4     # xmm4 = xmm4[1,1,3,3]
pshuflw $0xe8, %xmm4, %xmm5     # xmm5 = xmm4[0,2,2,3,4,5,6,7]
por %xmm6, %xmm5
pxor %xmm8, %xmm5
packssdw %xmm5, %xmm5
packsswb %xmm5, %xmm5
pextrw $0x2, %xmm5, %edx
testb $0x1, %dl
je 0xaf5e
movb %al, -0x2c(%rbp,%rcx,4)
pand %xmm3, %xmm2
por %xmm4, %xmm2
packssdw %xmm2, %xmm2
pxor %xmm8, %xmm2
packssdw %xmm2, %xmm2
packsswb %xmm2, %xmm2
pextrw $0x2, %xmm2, %edx
shrl $0x8, %edx
testb $0x1, %dl
je 0xaf88
movb %al, -0x28(%rbp,%rcx,4)
movdqa %xmm0, %xmm3
por 0xd0ec(%rip), %xmm3     # 0x18080
pxor %xmm7, %xmm3
movdqa %xmm3, %xmm4
pcmpgtd %xmm1, %xmm4
pshufd $0xa0, %xmm4, %xmm2     # xmm2 = xmm4[0,0,2,2]
pcmpeqd %xmm1, %xmm3
pshufd $0xf5, %xmm3, %xmm3     # xmm3 = xmm3[1,1,3,3]
movdqa %xmm3, %xmm5
pand %xmm2, %xmm5
pshufd $0xf5, %xmm4, %xmm4     # xmm4 = xmm4[1,1,3,3]
por %xmm4, %xmm5
packssdw %xmm5, %xmm5
pxor %xmm8, %xmm5
packssdw %xmm5, %xmm5
packsswb %xmm5, %xmm5
pextrw $0x3, %xmm5, %edx
testb $0x1, %dl
je 0xafde
movb %al, -0x24(%rbp,%rcx,4)
pshufhw $0x84, %xmm2, %xmm2     # xmm2 = xmm2[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm3, %xmm3     # xmm3 = xmm3[0,1,2,3,4,5,4,6]
pand %xmm2, %xmm3
pshufhw $0x84, %xmm4, %xmm2     # xmm2 = xmm4[0,1,2,3,4,5,4,6]
por %xmm3, %xmm2
pxor %xmm8, %xmm2
packssdw %xmm2, %xmm2
packsswb %xmm2, %xmm2
pextrw $0x3, %xmm2, %edx
shrl $0x8, %edx
testb $0x1, %dl
je 0xb013
movb %al, -0x20(%rbp,%rcx,4)
movdqa %xmm0, %xmm2
por 0xd051(%rip), %xmm2     # 0x18070
pxor %xmm7, %xmm2
movdqa %xmm2, %xmm4
pcmpgtd %xmm1, %xmm4
pshufd $0xa0, %xmm4, %xmm3     # xmm3 = xmm4[0,0,2,2]
pshuflw $0xe8, %xmm3, %xmm5     # xmm5 = xmm3[0,2,2,3,4,5,6,7]
pcmpeqd %xmm1, %xmm2
pshufd $0xf5, %xmm2, %xmm2     # xmm2 = xmm2[1,1,3,3]
pshuflw $0xe8, %xmm2, %xmm6     # xmm6 = xmm2[0,2,2,3,4,5,6,7]
pand %xmm5, %xmm6
pshufd $0xf5, %xmm4, %xmm4     # xmm4 = xmm4[1,1,3,3]
pshuflw $0xe8, %xmm4, %xmm5     # xmm5 = xmm4[0,2,2,3,4,5,6,7]
por %xmm6, %xmm5
pxor %xmm8, %xmm5
packssdw %xmm5, %xmm5
packsswb %xmm5, %xmm5
pextrw $0x4, %xmm5, %edx
testb $0x1, %dl
je 0xb070
movb %al, -0x1c(%rbp,%rcx,4)
pand %xmm3, %xmm2
por %xmm4, %xmm2
packssdw %xmm2, %xmm2
pxor %xmm8, %xmm2
packssdw %xmm2, %xmm2
packsswb %xmm2, %xmm2
pextrw $0x4, %xmm2, %edx
shrl $0x8, %edx
testb $0x1, %dl
je 0xb09a
movb %al, -0x18(%rbp,%rcx,4)
movdqa %xmm0, %xmm3
por 0xcfba(%rip), %xmm3     # 0x18060
pxor %xmm7, %xmm3
movdqa %xmm3, %xmm4
pcmpgtd %xmm1, %xmm4
pshufd $0xa0, %xmm4, %xmm2     # xmm2 = xmm4[0,0,2,2]
pcmpeqd %xmm1, %xmm3
pshufd $0xf5, %xmm3, %xmm3     # xmm3 = xmm3[1,1,3,3]
movdqa %xmm3, %xmm5
pand %xmm2, %xmm5
pshufd $0xf5, %xmm4, %xmm4     # xmm4 = xmm4[1,1,3,3]
por %xmm4, %xmm5
packssdw %xmm5, %xmm5
pxor %xmm8, %xmm5
packssdw %xmm5, %xmm5
packsswb %xmm5, %xmm5
pextrw $0x5, %xmm5, %edx
testb $0x1, %dl
je 0xb0f0
movb %al, -0x14(%rbp,%rcx,4)
pshufhw $0x84, %xmm2, %xmm2     # xmm2 = xmm2[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm3, %xmm3     # xmm3 = xmm3[0,1,2,3,4,5,4,6]
pand %xmm2, %xmm3
pshufhw $0x84, %xmm4, %xmm2     # xmm2 = xmm4[0,1,2,3,4,5,4,6]
por %xmm3, %xmm2
pxor %xmm8, %xmm2
packssdw %xmm2, %xmm2
packsswb %xmm2, %xmm2
pextrw $0x5, %xmm2, %edx
shrl $0x8, %edx
testb $0x1, %dl
je 0xb125
movb %al, -0x10(%rbp,%rcx,4)
movdqa %xmm0, %xmm2
por 0xcf1f(%rip), %xmm2     # 0x18050
pxor %xmm7, %xmm2
movdqa %xmm2, %xmm4
pcmpgtd %xmm1, %xmm4
pshufd $0xa0, %xmm4, %xmm3     # xmm3 = xmm4[0,0,2,2]
pshuflw $0xe8, %xmm3, %xmm5     # xmm5 = xmm3[0,2,2,3,4,5,6,7]
pcmpeqd %xmm1, %xmm2
pshufd $0xf5, %xmm2, %xmm2     # xmm2 = xmm2[1,1,3,3]
pshuflw $0xe8, %xmm2, %xmm6     # xmm6 = xmm2[0,2,2,3,4,5,6,7]
pand %xmm5, %xmm6
pshufd $0xf5, %xmm4, %xmm4     # xmm4 = xmm4[1,1,3,3]
pshuflw $0xe8, %xmm4, %xmm5     # xmm5 = xmm4[0,2,2,3,4,5,6,7]
por %xmm6, %xmm5
pxor %xmm8, %xmm5
packssdw %xmm5, %xmm5
packsswb %xmm5, %xmm5
pextrw $0x6, %xmm5, %edx
testb $0x1, %dl
je 0xb182
movb %al, -0xc(%rbp,%rcx,4)
pand %xmm3, %xmm2
por %xmm4, %xmm2
packssdw %xmm2, %xmm2
pxor %xmm8, %xmm2
packssdw %xmm2, %xmm2
packsswb %xmm2, %xmm2
pextrw $0x6, %xmm2, %edx
shrl $0x8, %edx
testb $0x1, %dl
je 0xb1ac
movb %al, -0x8(%rbp,%rcx,4)
por 0xce8c(%rip), %xmm0     # 0x18040
pxor %xmm7, %xmm0
movdqa %xmm0, %xmm3
pcmpgtd %xmm1, %xmm3
pshufd $0xa0, %xmm3, %xmm2     # xmm2 = xmm3[0,0,2,2]
pcmpeqd %xmm1, %xmm0
pshufd $0xf5, %xmm0, %xmm0     # xmm0 = xmm0[1,1,3,3]
movdqa %xmm0, %xmm4
pand %xmm2, %xmm4
pshufd $0xf5, %xmm3, %xmm1     # xmm1 = xmm3[1,1,3,3]
por %xmm1, %xmm4
packssdw %xmm4, %xmm3
pxor %xmm8, %xmm3
packssdw %xmm3, %xmm3
packsswb %xmm3, %xmm3
pextrw $0x7, %xmm3, %edx
testb $0x1, %dl
je 0xb1fe
movb %al, -0x4(%rbp,%rcx,4)
pshufhw $0x84, %xmm2, %xmm2     # xmm2 = xmm2[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm0, %xmm0     # xmm0 = xmm0[0,1,2,3,4,5,4,6]
pand %xmm2, %xmm0
pshufhw $0x84, %xmm1, %xmm1     # xmm1 = xmm1[0,1,2,3,4,5,4,6]
por %xmm0, %xmm1
pxor %xmm8, %xmm1
packssdw %xmm1, %xmm0
packsswb %xmm0, %xmm0
pextrw $0x7, %xmm0, %edx
shrl $0x8, %edx
testb $0x1, %dl
je 0xb233
movb %al, (%rbp,%rcx,4)
addq $0x10, %rcx
cmpq %rcx, %r15
jne 0xaddd
movq 0x50(%rsp), %rax
incq %rax
incq %rbp
cmpq $0x4, %rax
jne 0xab8b
jmp 0xbb7e
leaq 0xd948(%rip), %rax      # 0x18ba9
jmp 0xa9f6
movq 0x30(%rsp), %rdi
callq 0x21d0
leaq 0xe1fe(%rip), %rax      # 0x19475
jmp 0xa9f6
xorl $0x10, %ebx
movl 0x40(%rsp), %eax
xorl $0x10, %eax
orl %ebx, %eax
sete 0x7(%rsp)
leaq 0x38(%r13), %rax
movq %rax, 0xb8(%rsp)
leaq 0x39(%r13), %rax
movq %rax, 0x88(%rsp)
movl 0x1c(%rsp), %eax
movq %rax, 0xc0(%rsp)
movq 0x48(%rsp), %rdi
movl %edi, %eax
movq 0x20(%rsp), %r8
orl %r8d, %eax
movq 0x38(%rsp), %rdx
movl %edx, %ecx
movq 0x28(%rsp), %rsi
orl %esi, %ecx
imull %eax, %ecx
decq %rcx
movq %rcx, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
movdqa %xmm0, 0x60(%rsp)
movq 0x30(%rsp), %rbp
leaq 0x3c(%rbp), %r14
leal (%rdi,%r8), %eax
leal (%rdx,%rsi), %ecx
imull %eax, %ecx
leaq 0xf(%rcx), %rax
andq $-0x10, %rax
movq %rax, 0x58(%rsp)
leaq 0x38(%rbp), %r12
movq %rcx, 0x10(%rsp)
leaq 0x7(%rcx), %rax
andq $-0x8, %rax
movq %rax, 0x78(%rsp)
xorl %ecx, %ecx
movdqa 0xcd9c(%rip), %xmm7     # 0x180c0
pcmpeqd %xmm8, %xmm8
movq %rbp, 0x90(%rsp)
cmpq 0xc0(%rsp), %rcx
movq %rcx, 0x50(%rsp)
jae 0xb38f
movq 0x80(%rsp), %rax
cmpl $0x10, (%rax)
jne 0xb5df
cmpl $0x0, (%rsp)
jle 0xbb59
xorl %r15d, %r15d
movq %r13, %rdi
callq 0xfc21
pcmpeqd %xmm8, %xmm8
movdqa 0xcd4d(%rip), %xmm7     # 0x180c0
movq 0x90(%rsp), %rcx
movw %ax, (%rcx,%r15,8)
incq %r15
cmpl %r15d, 0x10(%rsp)
jne 0xb35e
jmp 0xbb59
cmpb $0x0, 0x7(%rsp)
je 0xb61d
xorl %eax, %eax
cmpq $0x3, %rcx
sete %cl
cmpl $0x0, (%rsp)
jle 0xbb59
movb %cl, %al
negl %eax
xorl %ecx, %ecx
movq %rcx, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
movdqa %xmm0, %xmm2
por 0xcce7(%rip), %xmm2     # 0x180b0
movdqa 0x60(%rsp), %xmm1
pxor %xmm7, %xmm1
pxor %xmm7, %xmm2
movdqa %xmm2, %xmm4
pcmpgtd %xmm1, %xmm4
pshufd $0xa0, %xmm4, %xmm3     # xmm3 = xmm4[0,0,2,2]
pshuflw $0xe8, %xmm3, %xmm5     # xmm5 = xmm3[0,2,2,3,4,5,6,7]
pcmpeqd %xmm1, %xmm2
pshufd $0xf5, %xmm2, %xmm2     # xmm2 = xmm2[1,1,3,3]
pshuflw $0xe8, %xmm2, %xmm6     # xmm6 = xmm2[0,2,2,3,4,5,6,7]
pand %xmm5, %xmm6
pshufd $0xf5, %xmm4, %xmm4     # xmm4 = xmm4[1,1,3,3]
pshuflw $0xe8, %xmm4, %xmm5     # xmm5 = xmm4[0,2,2,3,4,5,6,7]
por %xmm6, %xmm5
pxor %xmm8, %xmm5
packssdw %xmm5, %xmm5
movd %xmm5, %edx
testb $0x1, %dl
je 0xb421
movw %ax, -0x38(%r12,%rcx,8)
pand %xmm3, %xmm2
por %xmm4, %xmm2
packssdw %xmm2, %xmm2
pxor %xmm8, %xmm2
packssdw %xmm2, %xmm2
movd %xmm2, %edx
shrl $0x10, %edx
testb $0x1, %dl
je 0xb448
movw %ax, -0x30(%r12,%rcx,8)
movdqa %xmm0, %xmm3
por 0xcc4c(%rip), %xmm3     # 0x180a0
pxor %xmm7, %xmm3
movdqa %xmm3, %xmm4
pcmpgtd %xmm1, %xmm4
pshufd $0xa0, %xmm4, %xmm2     # xmm2 = xmm4[0,0,2,2]
pcmpeqd %xmm1, %xmm3
pshufd $0xf5, %xmm3, %xmm3     # xmm3 = xmm3[1,1,3,3]
movdqa %xmm3, %xmm5
pand %xmm2, %xmm5
pshufd $0xf5, %xmm4, %xmm4     # xmm4 = xmm4[1,1,3,3]
por %xmm4, %xmm5
packssdw %xmm5, %xmm5
pxor %xmm8, %xmm5
packssdw %xmm5, %xmm5
pextrw $0x2, %xmm5, %edx
testb $0x1, %dl
je 0xb49c
movw %ax, -0x28(%r12,%rcx,8)
pshufhw $0x84, %xmm2, %xmm2     # xmm2 = xmm2[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm3, %xmm3     # xmm3 = xmm3[0,1,2,3,4,5,4,6]
pand %xmm2, %xmm3
pshufhw $0x84, %xmm4, %xmm2     # xmm2 = xmm4[0,1,2,3,4,5,4,6]
por %xmm3, %xmm2
pxor %xmm8, %xmm2
packssdw %xmm2, %xmm2
pextrw $0x3, %xmm2, %edx
testb $0x1, %dl
je 0xb4cc
movw %ax, -0x20(%r12,%rcx,8)
movdqa %xmm0, %xmm2
por 0xcbb8(%rip), %xmm2     # 0x18090
pxor %xmm7, %xmm2
movdqa %xmm2, %xmm4
pcmpgtd %xmm1, %xmm4
pshufd $0xa0, %xmm4, %xmm3     # xmm3 = xmm4[0,0,2,2]
pshuflw $0xe8, %xmm3, %xmm5     # xmm5 = xmm3[0,2,2,3,4,5,6,7]
pcmpeqd %xmm1, %xmm2
pshufd $0xf5, %xmm2, %xmm2     # xmm2 = xmm2[1,1,3,3]
pshuflw $0xe8, %xmm2, %xmm6     # xmm6 = xmm2[0,2,2,3,4,5,6,7]
pand %xmm5, %xmm6
pshufd $0xf5, %xmm4, %xmm4     # xmm4 = xmm4[1,1,3,3]
pshuflw $0xe8, %xmm4, %xmm5     # xmm5 = xmm4[0,2,2,3,4,5,6,7]
por %xmm6, %xmm5
pxor %xmm8, %xmm5
packssdw %xmm5, %xmm5
pextrw $0x4, %xmm5, %edx
testb $0x1, %dl
je 0xb527
movw %ax, -0x18(%r12,%rcx,8)
pand %xmm3, %xmm2
por %xmm4, %xmm2
packssdw %xmm2, %xmm2
pxor %xmm8, %xmm2
packssdw %xmm2, %xmm2
pextrw $0x5, %xmm2, %edx
testb $0x1, %dl
je 0xb54c
movw %ax, -0x10(%r12,%rcx,8)
por 0xcb2c(%rip), %xmm0     # 0x18080
pxor %xmm7, %xmm0
movdqa %xmm0, %xmm3
pcmpgtd %xmm1, %xmm3
pshufd $0xa0, %xmm3, %xmm2     # xmm2 = xmm3[0,0,2,2]
pcmpeqd %xmm1, %xmm0
pshufd $0xf5, %xmm0, %xmm0     # xmm0 = xmm0[1,1,3,3]
movdqa %xmm0, %xmm4
pand %xmm2, %xmm4
pshufd $0xf5, %xmm3, %xmm1     # xmm1 = xmm3[1,1,3,3]
por %xmm1, %xmm4
packssdw %xmm4, %xmm3
pxor %xmm8, %xmm3
packssdw %xmm3, %xmm3
pextrw $0x6, %xmm3, %edx
testb $0x1, %dl
je 0xb59c
movw %ax, -0x8(%r12,%rcx,8)
pshufhw $0x84, %xmm2, %xmm2     # xmm2 = xmm2[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm0, %xmm0     # xmm0 = xmm0[0,1,2,3,4,5,4,6]
pand %xmm2, %xmm0
pshufhw $0x84, %xmm1, %xmm1     # xmm1 = xmm1[0,1,2,3,4,5,4,6]
por %xmm0, %xmm1
pxor %xmm8, %xmm1
packssdw %xmm1, %xmm0
pextrw $0x7, %xmm0, %edx
testb $0x1, %dl
je 0xb5cb
movw %ax, (%r12,%rcx,8)
addq $0x8, %rcx
cmpq %rcx, 0x78(%rsp)
jne 0xb3b3
jmp 0xbb59
cmpl $0x10, 0x40(%rsp)
jne 0xbaa8
cmpl $0x0, (%rsp)
jle 0xbb59
xorl %ebx, %ebx
movq %r13, %rdi
callq 0xfc21
pcmpeqd %xmm8, %xmm8
movdqa 0xcab5(%rip), %xmm7     # 0x180c0
movb %ah, (%rbp,%rbx,4)
incq %rbx
cmpl %ebx, 0x10(%rsp)
jne 0xb5f6
jmp 0xbb59
cmpq $0x3, %rcx
sete %al
cmpl $0x0, (%rsp)
jle 0xbb59
negb %al
xorl %ecx, %ecx
movq %rcx, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
movdqa %xmm0, %xmm2
por 0xca68(%rip), %xmm2     # 0x180b0
movdqa 0x60(%rsp), %xmm1
pxor %xmm7, %xmm1
pxor %xmm7, %xmm2
movdqa %xmm2, %xmm4
pcmpgtd %xmm1, %xmm4
pshufd $0xa0, %xmm4, %xmm3     # xmm3 = xmm4[0,0,2,2]
pshuflw $0xe8, %xmm3, %xmm5     # xmm5 = xmm3[0,2,2,3,4,5,6,7]
pcmpeqd %xmm1, %xmm2
pshufd $0xf5, %xmm2, %xmm2     # xmm2 = xmm2[1,1,3,3]
pshuflw $0xe8, %xmm2, %xmm6     # xmm6 = xmm2[0,2,2,3,4,5,6,7]
pand %xmm5, %xmm6
pshufd $0xf5, %xmm4, %xmm4     # xmm4 = xmm4[1,1,3,3]
pshuflw $0xe8, %xmm4, %xmm5     # xmm5 = xmm4[0,2,2,3,4,5,6,7]
por %xmm6, %xmm5
pxor %xmm8, %xmm5
packssdw %xmm5, %xmm5
movd %xmm5, %edx
testb $0x1, %dl
je 0xb69f
movb %al, -0x3c(%r14,%rcx,4)
pand %xmm3, %xmm2
por %xmm4, %xmm2
packssdw %xmm2, %xmm2
pxor %xmm8, %xmm2
packssdw %xmm2, %xmm2
packsswb %xmm2, %xmm2
movd %xmm2, %edx
shrl $0x8, %edx
testb $0x1, %dl
je 0xb6c9
movb %al, -0x38(%r14,%rcx,4)
movdqa %xmm0, %xmm3
por 0xc9cb(%rip), %xmm3     # 0x180a0
pxor %xmm7, %xmm3
movdqa %xmm3, %xmm4
pcmpgtd %xmm1, %xmm4
pshufd $0xa0, %xmm4, %xmm2     # xmm2 = xmm4[0,0,2,2]
pcmpeqd %xmm1, %xmm3
pshufd $0xf5, %xmm3, %xmm3     # xmm3 = xmm3[1,1,3,3]
movdqa %xmm3, %xmm5
pand %xmm2, %xmm5
pshufd $0xf5, %xmm4, %xmm4     # xmm4 = xmm4[1,1,3,3]
por %xmm4, %xmm5
packssdw %xmm5, %xmm5
pxor %xmm8, %xmm5
packssdw %xmm5, %xmm5
packsswb %xmm5, %xmm5
movd %xmm5, %edx
shrl $0x10, %edx
testb $0x1, %dl
je 0xb722
movb %al, -0x34(%r14,%rcx,4)
pshufhw $0x84, %xmm2, %xmm2     # xmm2 = xmm2[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm3, %xmm3     # xmm3 = xmm3[0,1,2,3,4,5,4,6]
pand %xmm2, %xmm3
pshufhw $0x84, %xmm4, %xmm2     # xmm2 = xmm4[0,1,2,3,4,5,4,6]
por %xmm3, %xmm2
pxor %xmm8, %xmm2
packssdw %xmm2, %xmm2
packsswb %xmm2, %xmm2
movd %xmm2, %edx
shrl $0x18, %edx
testb $0x1, %dl
je 0xb757
movb %al, -0x30(%r14,%rcx,4)
movdqa %xmm0, %xmm2
por 0xc92d(%rip), %xmm2     # 0x18090
pxor %xmm7, %xmm2
movdqa %xmm2, %xmm4
pcmpgtd %xmm1, %xmm4
pshufd $0xa0, %xmm4, %xmm3     # xmm3 = xmm4[0,0,2,2]
pshuflw $0xe8, %xmm3, %xmm5     # xmm5 = xmm3[0,2,2,3,4,5,6,7]
pcmpeqd %xmm1, %xmm2
pshufd $0xf5, %xmm2, %xmm2     # xmm2 = xmm2[1,1,3,3]
pshuflw $0xe8, %xmm2, %xmm6     # xmm6 = xmm2[0,2,2,3,4,5,6,7]
pand %xmm5, %xmm6
pshufd $0xf5, %xmm4, %xmm4     # xmm4 = xmm4[1,1,3,3]
pshuflw $0xe8, %xmm4, %xmm5     # xmm5 = xmm4[0,2,2,3,4,5,6,7]
por %xmm6, %xmm5
pxor %xmm8, %xmm5
packssdw %xmm5, %xmm5
packsswb %xmm5, %xmm5
pextrw $0x2, %xmm5, %edx
testb $0x1, %dl
je 0xb7b5
movb %al, -0x2c(%r14,%rcx,4)
pand %xmm3, %xmm2
por %xmm4, %xmm2
packssdw %xmm2, %xmm2
pxor %xmm8, %xmm2
packssdw %xmm2, %xmm2
packsswb %xmm2, %xmm2
pextrw $0x2, %xmm2, %edx
shrl $0x8, %edx
testb $0x1, %dl
je 0xb7e0
movb %al, -0x28(%r14,%rcx,4)
movdqa %xmm0, %xmm3
por 0xc894(%rip), %xmm3     # 0x18080
pxor %xmm7, %xmm3
movdqa %xmm3, %xmm4
pcmpgtd %xmm1, %xmm4
pshufd $0xa0, %xmm4, %xmm2     # xmm2 = xmm4[0,0,2,2]
pcmpeqd %xmm1, %xmm3
pshufd $0xf5, %xmm3, %xmm3     # xmm3 = xmm3[1,1,3,3]
movdqa %xmm3, %xmm5
pand %xmm2, %xmm5
pshufd $0xf5, %xmm4, %xmm4     # xmm4 = xmm4[1,1,3,3]
por %xmm4, %xmm5
packssdw %xmm5, %xmm5
pxor %xmm8, %xmm5
packssdw %xmm5, %xmm5
packsswb %xmm5, %xmm5
pextrw $0x3, %xmm5, %edx
testb $0x1, %dl
je 0xb837
movb %al, -0x24(%r14,%rcx,4)
pshufhw $0x84, %xmm2, %xmm2     # xmm2 = xmm2[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm3, %xmm3     # xmm3 = xmm3[0,1,2,3,4,5,4,6]
pand %xmm2, %xmm3
pshufhw $0x84, %xmm4, %xmm2     # xmm2 = xmm4[0,1,2,3,4,5,4,6]
por %xmm3, %xmm2
pxor %xmm8, %xmm2
packssdw %xmm2, %xmm2
packsswb %xmm2, %xmm2
pextrw $0x3, %xmm2, %edx
shrl $0x8, %edx
testb $0x1, %dl
je 0xb86d
movb %al, -0x20(%r14,%rcx,4)
movdqa %xmm0, %xmm2
por 0xc7f7(%rip), %xmm2     # 0x18070
pxor %xmm7, %xmm2
movdqa %xmm2, %xmm4
pcmpgtd %xmm1, %xmm4
pshufd $0xa0, %xmm4, %xmm3     # xmm3 = xmm4[0,0,2,2]
pshuflw $0xe8, %xmm3, %xmm5     # xmm5 = xmm3[0,2,2,3,4,5,6,7]
pcmpeqd %xmm1, %xmm2
pshufd $0xf5, %xmm2, %xmm2     # xmm2 = xmm2[1,1,3,3]
pshuflw $0xe8, %xmm2, %xmm6     # xmm6 = xmm2[0,2,2,3,4,5,6,7]
pand %xmm5, %xmm6
pshufd $0xf5, %xmm4, %xmm4     # xmm4 = xmm4[1,1,3,3]
pshuflw $0xe8, %xmm4, %xmm5     # xmm5 = xmm4[0,2,2,3,4,5,6,7]
por %xmm6, %xmm5
pxor %xmm8, %xmm5
packssdw %xmm5, %xmm5
packsswb %xmm5, %xmm5
pextrw $0x4, %xmm5, %edx
testb $0x1, %dl
je 0xb8cb
movb %al, -0x1c(%r14,%rcx,4)
pand %xmm3, %xmm2
por %xmm4, %xmm2
packssdw %xmm2, %xmm2
pxor %xmm8, %xmm2
packssdw %xmm2, %xmm2
packsswb %xmm2, %xmm2
pextrw $0x4, %xmm2, %edx
shrl $0x8, %edx
testb $0x1, %dl
je 0xb8f6
movb %al, -0x18(%r14,%rcx,4)
movdqa %xmm0, %xmm3
por 0xc75e(%rip), %xmm3     # 0x18060
pxor %xmm7, %xmm3
movdqa %xmm3, %xmm4
pcmpgtd %xmm1, %xmm4
pshufd $0xa0, %xmm4, %xmm2     # xmm2 = xmm4[0,0,2,2]
pcmpeqd %xmm1, %xmm3
pshufd $0xf5, %xmm3, %xmm3     # xmm3 = xmm3[1,1,3,3]
movdqa %xmm3, %xmm5
pand %xmm2, %xmm5
pshufd $0xf5, %xmm4, %xmm4     # xmm4 = xmm4[1,1,3,3]
por %xmm4, %xmm5
packssdw %xmm5, %xmm5
pxor %xmm8, %xmm5
packssdw %xmm5, %xmm5
packsswb %xmm5, %xmm5
pextrw $0x5, %xmm5, %edx
testb $0x1, %dl
je 0xb94d
movb %al, -0x14(%r14,%rcx,4)
pshufhw $0x84, %xmm2, %xmm2     # xmm2 = xmm2[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm3, %xmm3     # xmm3 = xmm3[0,1,2,3,4,5,4,6]
pand %xmm2, %xmm3
pshufhw $0x84, %xmm4, %xmm2     # xmm2 = xmm4[0,1,2,3,4,5,4,6]
por %xmm3, %xmm2
pxor %xmm8, %xmm2
packssdw %xmm2, %xmm2
packsswb %xmm2, %xmm2
pextrw $0x5, %xmm2, %edx
shrl $0x8, %edx
testb $0x1, %dl
je 0xb983
movb %al, -0x10(%r14,%rcx,4)
movdqa %xmm0, %xmm2
por 0xc6c1(%rip), %xmm2     # 0x18050
pxor %xmm7, %xmm2
movdqa %xmm2, %xmm4
pcmpgtd %xmm1, %xmm4
pshufd $0xa0, %xmm4, %xmm3     # xmm3 = xmm4[0,0,2,2]
pshuflw $0xe8, %xmm3, %xmm5     # xmm5 = xmm3[0,2,2,3,4,5,6,7]
pcmpeqd %xmm1, %xmm2
pshufd $0xf5, %xmm2, %xmm2     # xmm2 = xmm2[1,1,3,3]
pshuflw $0xe8, %xmm2, %xmm6     # xmm6 = xmm2[0,2,2,3,4,5,6,7]
pand %xmm5, %xmm6
pshufd $0xf5, %xmm4, %xmm4     # xmm4 = xmm4[1,1,3,3]
pshuflw $0xe8, %xmm4, %xmm5     # xmm5 = xmm4[0,2,2,3,4,5,6,7]
por %xmm6, %xmm5
pxor %xmm8, %xmm5
packssdw %xmm5, %xmm5
packsswb %xmm5, %xmm5
pextrw $0x6, %xmm5, %edx
testb $0x1, %dl
je 0xb9e1
movb %al, -0xc(%r14,%rcx,4)
pand %xmm3, %xmm2
por %xmm4, %xmm2
packssdw %xmm2, %xmm2
pxor %xmm8, %xmm2
packssdw %xmm2, %xmm2
packsswb %xmm2, %xmm2
pextrw $0x6, %xmm2, %edx
shrl $0x8, %edx
testb $0x1, %dl
je 0xba0c
movb %al, -0x8(%r14,%rcx,4)
por 0xc62c(%rip), %xmm0     # 0x18040
pxor %xmm7, %xmm0
movdqa %xmm0, %xmm3
pcmpgtd %xmm1, %xmm3
pshufd $0xa0, %xmm3, %xmm2     # xmm2 = xmm3[0,0,2,2]
pcmpeqd %xmm1, %xmm0
pshufd $0xf5, %xmm0, %xmm0     # xmm0 = xmm0[1,1,3,3]
movdqa %xmm0, %xmm4
pand %xmm2, %xmm4
pshufd $0xf5, %xmm3, %xmm1     # xmm1 = xmm3[1,1,3,3]
por %xmm1, %xmm4
packssdw %xmm4, %xmm3
pxor %xmm8, %xmm3
packssdw %xmm3, %xmm3
packsswb %xmm3, %xmm3
pextrw $0x7, %xmm3, %edx
testb $0x1, %dl
je 0xba5f
movb %al, -0x4(%r14,%rcx,4)
pshufhw $0x84, %xmm2, %xmm2     # xmm2 = xmm2[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm0, %xmm0     # xmm0 = xmm0[0,1,2,3,4,5,4,6]
pand %xmm2, %xmm0
pshufhw $0x84, %xmm1, %xmm1     # xmm1 = xmm1[0,1,2,3,4,5,4,6]
por %xmm0, %xmm1
pxor %xmm8, %xmm1
packssdw %xmm1, %xmm0
packsswb %xmm0, %xmm0
pextrw $0x7, %xmm0, %edx
shrl $0x8, %edx
testb $0x1, %dl
je 0xba94
movb %al, (%r14,%rcx,4)
addq $0x10, %rcx
cmpq %rcx, 0x58(%rsp)
jne 0xb632
jmp 0xbb59
cmpl $0x0, (%rsp)
jle 0xbb59
movq 0xb8(%r13), %rcx
movq 0xc0(%r13), %rax
xorl %r15d, %r15d
cmpq %rax, %rcx
jae 0xbada
leaq 0x1(%rcx), %rsi
movq %rsi, 0xb8(%r13)
movb (%rcx), %dl
movq %rsi, %rcx
jmp 0xbb46
cmpl $0x0, 0x30(%r13)
je 0xbb0d
movq 0x28(%r13), %rdi
movl 0x34(%r13), %edx
movq 0xb8(%rsp), %rbx
movq %rbx, %rsi
callq *0x10(%r13)
testl %eax, %eax
je 0xbb11
cltq
addq %rbx, %rax
movb (%rbx), %dl
movq 0x88(%rsp), %rcx
jmp 0xbb2b
xorl %edx, %edx
jmp 0xbb46
movl $0x0, 0x30(%r13)
movb $0x0, 0x38(%r13)
xorl %edx, %edx
movq 0x88(%rsp), %rcx
movq %rcx, %rax
movdqa 0xc58d(%rip), %xmm7     # 0x180c0
pcmpeqd %xmm8, %xmm8
movq %rax, 0xc0(%r13)
movq %rcx, 0xb8(%r13)
movb %dl, (%rbp,%r15,4)
incq %r15
cmpl %r15d, 0x10(%rsp)
jne 0xbac3
movq 0x50(%rsp), %rcx
incq %rcx
incq %r14
addq $0x2, %r12
incq %rbp
addq $0x2, 0x90(%rsp)
cmpq $0x4, %rcx
jne 0xb331
cmpl $0x4, 0x1c(%rsp)
movq 0xb0(%rsp), %rbx
movq 0xa8(%rsp), %r14
movq 0xa0(%rsp), %r15
movq 0x30(%rsp), %rdi
jb 0xbd39
movq 0x80(%rsp), %rax
cmpl $0x10, (%rax)
jne 0xbc79
cmpl $0x0, (%rsp)
jle 0xbd39
movq 0x48(%rsp), %rax
addl 0x20(%rsp), %eax
movq 0x38(%rsp), %rdx
addl 0x28(%rsp), %edx
imull %eax, %edx
xorl %eax, %eax
movss 0xc42c(%rip), %xmm0     # 0x1800c
movss 0xc420(%rip), %xmm1     # 0x18008
pxor %xmm2, %xmm2
movzwl 0x6(%rdi,%rax,8), %ecx
testl %ecx, %ecx
je 0xbc68
cmpl $0xffff, %ecx           # imm = 0xFFFF
je 0xbc68
movzwl %cx, %ecx
xorps %xmm3, %xmm3
cvtsi2ss %ecx, %xmm3
divss %xmm0, %xmm3
movaps %xmm1, %xmm4
divss %xmm3, %xmm4
movaps %xmm1, %xmm3
subss %xmm4, %xmm3
mulss %xmm0, %xmm3
movd (%rdi,%rax,8), %xmm5
punpcklwd %xmm2, %xmm5    # xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1],xmm5[2],xmm2[2],xmm5[3],xmm2[3]
cvtdq2ps %xmm5, %xmm5
movaps %xmm4, %xmm6
shufps $0x0, %xmm4, %xmm6      # xmm6 = xmm6[0,0],xmm4[0,0]
mulps %xmm5, %xmm6
movaps %xmm3, %xmm5
shufps $0x0, %xmm3, %xmm5      # xmm5 = xmm5[0,0],xmm3[0,0]
addps %xmm6, %xmm5
cvttps2dq %xmm5, %xmm5
pshuflw $0xe8, %xmm5, %xmm5     # xmm5 = xmm5[0,2,2,3,4,5,6,7]
movd %xmm5, (%rdi,%rax,8)
movzwl 0x4(%rdi,%rax,8), %ecx
xorps %xmm5, %xmm5
cvtsi2ss %ecx, %xmm5
mulss %xmm4, %xmm5
addss %xmm3, %xmm5
cvttss2si %xmm5, %ecx
movw %cx, 0x4(%rdi,%rax,8)
incq %rax
cmpq %rax, %rdx
jne 0xbbec
jmp 0xbd39
cmpl $0x0, (%rsp)
jle 0xbd39
movq 0x48(%rsp), %rax
addl 0x20(%rsp), %eax
movq 0x38(%rsp), %rdx
addl 0x28(%rsp), %edx
imull %eax, %edx
xorl %eax, %eax
movss 0xc362(%rip), %xmm0     # 0x18004
movss 0xc35e(%rip), %xmm1     # 0x18008
movzbl 0x3(%rdi,%rax,4), %ecx
testl %ecx, %ecx
je 0xbd2d
cmpl $0xff, %ecx
je 0xbd2d
movzbl %cl, %ecx
xorps %xmm2, %xmm2
cvtsi2ss %ecx, %xmm2
divss %xmm0, %xmm2
movaps %xmm1, %xmm3
divss %xmm2, %xmm3
movaps %xmm1, %xmm2
subss %xmm3, %xmm2
mulss %xmm0, %xmm2
movzbl (%rdi,%rax,4), %ecx
xorps %xmm4, %xmm4
cvtsi2ss %ecx, %xmm4
mulss %xmm3, %xmm4
addss %xmm2, %xmm4
cvttss2si %xmm4, %ecx
movb %cl, (%rdi,%rax,4)
movzbl 0x1(%rdi,%rax,4), %ecx
xorps %xmm4, %xmm4
cvtsi2ss %ecx, %xmm4
mulss %xmm3, %xmm4
addss %xmm2, %xmm4
cvttss2si %xmm4, %ecx
movb %cl, 0x1(%rdi,%rax,4)
movzbl 0x2(%rdi,%rax,4), %ecx
xorps %xmm4, %xmm4
cvtsi2ss %ecx, %xmm4
mulss %xmm3, %xmm4
addss %xmm2, %xmm4
cvttss2si %xmm4, %ecx
movb %cl, 0x2(%rdi,%rax,4)
incq %rax
cmpq %rax, %rdx
jne 0xbcaa
testl $0xfffffffb, 0x18(%rsp) # imm = 0xFFFFFFFB
je 0xbd6b
movq 0x80(%rsp), %rax
cmpl $0x10, (%rax)
movl 0xc(%rsp), %ebp
movl $0x4, %esi
jne 0xbd71
movl 0x18(%rsp), %edx
movl 0x8(%rsp), %ecx
movl %ebp, %r8d
callq 0x1227f
jmp 0xbd81
movl 0xc(%rsp), %ebp
jmp 0xbd8d
movl 0x18(%rsp), %edx
movl 0x8(%rsp), %ecx
movl %ebp, %r8d
callq 0x11e4d
movq %rax, %rdi
testq %rax, %rax
je 0xa9fd
testq %r15, %r15
je 0xbd99
movl $0x4, (%r15)
movl %ebp, (%r14)
movl 0x8(%rsp), %eax
movl %eax, (%rbx)
jmp 0xa9ff