// File: tomfunkhouser[P]gaps/pkgs/png/pngrtran.c
// Function: png_do_gamma
void /* PRIVATE */
png_do_gamma(png_row_infop row_info, png_bytep row,
   png_bytep gamma_table, png_uint_16pp gamma_16_table,
   int gamma_shift)
{
   png_bytep sp;
   png_uint_32 i;
   png_uint_32 row_width=row_info->width;

   png_debug(1, "in png_do_gamma");

   if (
       ((row_info->bit_depth <= 8 && gamma_table != NULL) ||
        (row_info->bit_depth == 16 && gamma_16_table != NULL)))
   {
      switch (row_info->color_type)
      {
         case PNG_COLOR_TYPE_RGB:
         {
            if (row_info->bit_depth == 8)
            {
               sp = row;
               for (i = 0; i < row_width; i++)
               {
                  *sp = gamma_table[*sp];
                  sp++;
                  *sp = gamma_table[*sp];
                  sp++;
                  *sp = gamma_table[*sp];
                  sp++;
               }
            }
            else /* if (row_info->bit_depth == 16) */
            {
               sp = row;
               for (i = 0; i < row_width; i++)
               {
                  png_uint_16 v;

                  v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp];
                  *sp = (png_byte)((v >> 8) & 0xff);
                  *(sp + 1) = (png_byte)(v & 0xff);
                  sp += 2;
                  v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp];
                  *sp = (png_byte)((v >> 8) & 0xff);
                  *(sp + 1) = (png_byte)(v & 0xff);
                  sp += 2;
                  v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp];
                  *sp = (png_byte)((v >> 8) & 0xff);
                  *(sp + 1) = (png_byte)(v & 0xff);
                  sp += 2;
               }
            }
            break;
         }

         case PNG_COLOR_TYPE_RGB_ALPHA:
         {
            if (row_info->bit_depth == 8)
            {
               sp = row;
               for (i = 0; i < row_width; i++)
               {
                  *sp = gamma_table[*sp];
                  sp++;
                  *sp = gamma_table[*sp];
                  sp++;
                  *sp = gamma_table[*sp];
                  sp++;
                  sp++;
               }
            }
            else /* if (row_info->bit_depth == 16) */
            {
               sp = row;
               for (i = 0; i < row_width; i++)
               {
                  png_uint_16 v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp];
                  *sp = (png_byte)((v >> 8) & 0xff);
                  *(sp + 1) = (png_byte)(v & 0xff);
                  sp += 2;
                  v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp];
                  *sp = (png_byte)((v >> 8) & 0xff);
                  *(sp + 1) = (png_byte)(v & 0xff);
                  sp += 2;
                  v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp];
                  *sp = (png_byte)((v >> 8) & 0xff);
                  *(sp + 1) = (png_byte)(v & 0xff);
                  sp += 4;
               }
            }
            break;
         }

         case PNG_COLOR_TYPE_GRAY_ALPHA:
         {
            if (row_info->bit_depth == 8)
            {
               sp = row;
               for (i = 0; i < row_width; i++)
               {
                  *sp = gamma_table[*sp];
                  sp += 2;
               }
            }
            else /* if (row_info->bit_depth == 16) */
            {
               sp = row;
               for (i = 0; i < row_width; i++)
               {
                  png_uint_16 v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp];
                  *sp = (png_byte)((v >> 8) & 0xff);
                  *(sp + 1) = (png_byte)(v & 0xff);
                  sp += 4;
               }
            }
            break;
         }

         case PNG_COLOR_TYPE_GRAY:
         {
            if (row_info->bit_depth == 2)
            {
               sp = row;
               for (i = 0; i < row_width; i += 4)
               {
                  int a = *sp & 0xc0;
                  int b = *sp & 0x30;
                  int c = *sp & 0x0c;
                  int d = *sp & 0x03;

                  *sp = (png_byte)(
                      ((((int)gamma_table[a|(a>>2)|(a>>4)|(a>>6)])   ) & 0xc0)|
                      ((((int)gamma_table[(b<<2)|b|(b>>2)|(b>>4)])>>2) & 0x30)|
                      ((((int)gamma_table[(c<<4)|(c<<2)|c|(c>>2)])>>4) & 0x0c)|
                      ((((int)gamma_table[(d<<6)|(d<<4)|(d<<2)|d])>>6) ));
                  sp++;
               }
            }

            if (row_info->bit_depth == 4)
            {
               sp = row;
               for (i = 0; i < row_width; i += 2)
               {
                  int msb = *sp & 0xf0;
                  int lsb = *sp & 0x0f;

                  *sp = (png_byte)((((int)gamma_table[msb | (msb >> 4)]) & 0xf0)
                      | (((int)gamma_table[(lsb << 4) | lsb]) >> 4));
                  sp++;
               }
            }

            else if (row_info->bit_depth == 8)
            {
               sp = row;
               for (i = 0; i < row_width; i++)
               {
                  *sp = gamma_table[*sp];
                  sp++;
               }
            }

            else if (row_info->bit_depth == 16)
            {
               sp = row;
               for (i = 0; i < row_width; i++)
               {
                  png_uint_16 v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp];
                  *sp = (png_byte)((v >> 8) & 0xff);
                  *(sp + 1) = (png_byte)(v & 0xff);
                  sp += 2;
               }
            }
            break;
         }
      }
   }
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq %rsi, -0x10(%rsp)
movq %rdx, -0x18(%rsp)
movq %rcx, -0x20(%rsp)
movl %r8d, -0x24(%rsp)
movq -0x8(%rsp), %rax
movl (%rax), %eax
movl %eax, -0x38(%rsp)
movq -0x8(%rsp), %rax
movzbl 0x11(%rax), %eax
cmpl $0x8, %eax
jg 0x10f62a
cmpq $0x0, -0x18(%rsp)
jne 0x10f648
movq -0x8(%rsp), %rax
movzbl 0x11(%rax), %eax
cmpl $0x10, %eax
jne 0x10fed1
cmpq $0x0, -0x20(%rsp)
je 0x10fed1
movq -0x8(%rsp), %rax
movzbl 0x10(%rax), %eax
movq %rax, -0x68(%rsp)
subq $0x6, %rax
ja 0x10fecf
movq -0x68(%rsp), %rax
leaq 0x2a040(%rip), %rcx     # 0x1396ac
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x8(%rsp), %rax
movzbl 0x11(%rax), %eax
cmpl $0x8, %eax
jne 0x10f727
movq -0x10(%rsp), %rax
movq %rax, -0x30(%rsp)
movl $0x0, -0x34(%rsp)
movl -0x34(%rsp), %eax
cmpl -0x38(%rsp), %eax
jae 0x10f722
movq -0x18(%rsp), %rax
movq -0x30(%rsp), %rcx
movzbl (%rcx), %ecx
movb (%rax,%rcx), %cl
movq -0x30(%rsp), %rax
movb %cl, (%rax)
movq -0x30(%rsp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rsp)
movq -0x18(%rsp), %rax
movq -0x30(%rsp), %rcx
movzbl (%rcx), %ecx
movb (%rax,%rcx), %cl
movq -0x30(%rsp), %rax
movb %cl, (%rax)
movq -0x30(%rsp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rsp)
movq -0x18(%rsp), %rax
movq -0x30(%rsp), %rcx
movzbl (%rcx), %ecx
movb (%rax,%rcx), %cl
movq -0x30(%rsp), %rax
movb %cl, (%rax)
movq -0x30(%rsp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rsp)
movl -0x34(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rsp)
jmp 0x10f699
jmp 0x10f88b
movq -0x10(%rsp), %rax
movq %rax, -0x30(%rsp)
movl $0x0, -0x34(%rsp)
movl -0x34(%rsp), %eax
cmpl -0x38(%rsp), %eax
jae 0x10f889
movq -0x20(%rsp), %rax
movq -0x30(%rsp), %rcx
movzbl 0x1(%rcx), %edx
movl -0x24(%rsp), %ecx
sarl %cl, %edx
movl %edx, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movq -0x30(%rsp), %rcx
movzbl (%rcx), %ecx
movw (%rax,%rcx,2), %ax
movw %ax, -0x3a(%rsp)
movzwl -0x3a(%rsp), %eax
sarl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x30(%rsp), %rax
movb %cl, (%rax)
movzwl -0x3a(%rsp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x30(%rsp), %rax
movb %cl, 0x1(%rax)
movq -0x30(%rsp), %rax
addq $0x2, %rax
movq %rax, -0x30(%rsp)
movq -0x20(%rsp), %rax
movq -0x30(%rsp), %rcx
movzbl 0x1(%rcx), %edx
movl -0x24(%rsp), %ecx
sarl %cl, %edx
movl %edx, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movq -0x30(%rsp), %rcx
movzbl (%rcx), %ecx
movw (%rax,%rcx,2), %ax
movw %ax, -0x3a(%rsp)
movzwl -0x3a(%rsp), %eax
sarl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x30(%rsp), %rax
movb %cl, (%rax)
movzwl -0x3a(%rsp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x30(%rsp), %rax
movb %cl, 0x1(%rax)
movq -0x30(%rsp), %rax
addq $0x2, %rax
movq %rax, -0x30(%rsp)
movq -0x20(%rsp), %rax
movq -0x30(%rsp), %rcx
movzbl 0x1(%rcx), %edx
movl -0x24(%rsp), %ecx
sarl %cl, %edx
movl %edx, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movq -0x30(%rsp), %rcx
movzbl (%rcx), %ecx
movw (%rax,%rcx,2), %ax
movw %ax, -0x3a(%rsp)
movzwl -0x3a(%rsp), %eax
sarl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x30(%rsp), %rax
movb %cl, (%rax)
movzwl -0x3a(%rsp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x30(%rsp), %rax
movb %cl, 0x1(%rax)
movq -0x30(%rsp), %rax
addq $0x2, %rax
movq %rax, -0x30(%rsp)
movl -0x34(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rsp)
jmp 0x10f739
jmp 0x10f88b
jmp 0x10fecf
movq -0x8(%rsp), %rax
movzbl 0x11(%rax), %eax
cmpl $0x8, %eax
jne 0x10f954
movq -0x10(%rsp), %rax
movq %rax, -0x30(%rsp)
movl $0x0, -0x34(%rsp)
movl -0x34(%rsp), %eax
cmpl -0x38(%rsp), %eax
jae 0x10f94f
movq -0x18(%rsp), %rax
movq -0x30(%rsp), %rcx
movzbl (%rcx), %ecx
movb (%rax,%rcx), %cl
movq -0x30(%rsp), %rax
movb %cl, (%rax)
movq -0x30(%rsp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rsp)
movq -0x18(%rsp), %rax
movq -0x30(%rsp), %rcx
movzbl (%rcx), %ecx
movb (%rax,%rcx), %cl
movq -0x30(%rsp), %rax
movb %cl, (%rax)
movq -0x30(%rsp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rsp)
movq -0x18(%rsp), %rax
movq -0x30(%rsp), %rcx
movzbl (%rcx), %ecx
movb (%rax,%rcx), %cl
movq -0x30(%rsp), %rax
movb %cl, (%rax)
movq -0x30(%rsp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rsp)
movq -0x30(%rsp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rsp)
movl -0x34(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rsp)
jmp 0x10f8b4
jmp 0x10fab8
movq -0x10(%rsp), %rax
movq %rax, -0x30(%rsp)
movl $0x0, -0x34(%rsp)
movl -0x34(%rsp), %eax
cmpl -0x38(%rsp), %eax
jae 0x10fab6
movq -0x20(%rsp), %rax
movq -0x30(%rsp), %rcx
movzbl 0x1(%rcx), %edx
movl -0x24(%rsp), %ecx
sarl %cl, %edx
movl %edx, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movq -0x30(%rsp), %rcx
movzbl (%rcx), %ecx
movw (%rax,%rcx,2), %ax
movw %ax, -0x3c(%rsp)
movzwl -0x3c(%rsp), %eax
sarl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x30(%rsp), %rax
movb %cl, (%rax)
movzwl -0x3c(%rsp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x30(%rsp), %rax
movb %cl, 0x1(%rax)
movq -0x30(%rsp), %rax
addq $0x2, %rax
movq %rax, -0x30(%rsp)
movq -0x20(%rsp), %rax
movq -0x30(%rsp), %rcx
movzbl 0x1(%rcx), %edx
movl -0x24(%rsp), %ecx
sarl %cl, %edx
movl %edx, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movq -0x30(%rsp), %rcx
movzbl (%rcx), %ecx
movw (%rax,%rcx,2), %ax
movw %ax, -0x3c(%rsp)
movzwl -0x3c(%rsp), %eax
sarl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x30(%rsp), %rax
movb %cl, (%rax)
movzwl -0x3c(%rsp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x30(%rsp), %rax
movb %cl, 0x1(%rax)
movq -0x30(%rsp), %rax
addq $0x2, %rax
movq %rax, -0x30(%rsp)
movq -0x20(%rsp), %rax
movq -0x30(%rsp), %rcx
movzbl 0x1(%rcx), %edx
movl -0x24(%rsp), %ecx
sarl %cl, %edx
movl %edx, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movq -0x30(%rsp), %rcx
movzbl (%rcx), %ecx
movw (%rax,%rcx,2), %ax
movw %ax, -0x3c(%rsp)
movzwl -0x3c(%rsp), %eax
sarl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x30(%rsp), %rax
movb %cl, (%rax)
movzwl -0x3c(%rsp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x30(%rsp), %rax
movb %cl, 0x1(%rax)
movq -0x30(%rsp), %rax
addq $0x4, %rax
movq %rax, -0x30(%rsp)
movl -0x34(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rsp)
jmp 0x10f966
jmp 0x10fab8
jmp 0x10fecf
movq -0x8(%rsp), %rax
movzbl 0x11(%rax), %eax
cmpl $0x8, %eax
jne 0x10fb1e
movq -0x10(%rsp), %rax
movq %rax, -0x30(%rsp)
movl $0x0, -0x34(%rsp)
movl -0x34(%rsp), %eax
cmpl -0x38(%rsp), %eax
jae 0x10fb19
movq -0x18(%rsp), %rax
movq -0x30(%rsp), %rcx
movzbl (%rcx), %ecx
movb (%rax,%rcx), %cl
movq -0x30(%rsp), %rax
movb %cl, (%rax)
movq -0x30(%rsp), %rax
addq $0x2, %rax
movq %rax, -0x30(%rsp)
movl -0x34(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rsp)
jmp 0x10fadd
jmp 0x10fbaf
movq -0x10(%rsp), %rax
movq %rax, -0x30(%rsp)
movl $0x0, -0x34(%rsp)
movl -0x34(%rsp), %eax
cmpl -0x38(%rsp), %eax
jae 0x10fbad
movq -0x20(%rsp), %rax
movq -0x30(%rsp), %rcx
movzbl 0x1(%rcx), %edx
movl -0x24(%rsp), %ecx
sarl %cl, %edx
movl %edx, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movq -0x30(%rsp), %rcx
movzbl (%rcx), %ecx
movw (%rax,%rcx,2), %ax
movw %ax, -0x3e(%rsp)
movzwl -0x3e(%rsp), %eax
sarl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x30(%rsp), %rax
movb %cl, (%rax)
movzwl -0x3e(%rsp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x30(%rsp), %rax
movb %cl, 0x1(%rax)
movq -0x30(%rsp), %rax
addq $0x4, %rax
movq %rax, -0x30(%rsp)
movl -0x34(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rsp)
jmp 0x10fb30
jmp 0x10fbaf
jmp 0x10fecf
movq -0x8(%rsp), %rax
movzbl 0x11(%rax), %eax
cmpl $0x2, %eax
jne 0x10fd0d
movq -0x10(%rsp), %rax
movq %rax, -0x30(%rsp)
movl $0x0, -0x34(%rsp)
movl -0x34(%rsp), %eax
cmpl -0x38(%rsp), %eax
jae 0x10fd0b
movq -0x30(%rsp), %rax
movzbl (%rax), %eax
andl $0xc0, %eax
movl %eax, -0x44(%rsp)
movq -0x30(%rsp), %rax
movzbl (%rax), %eax
andl $0x30, %eax
movl %eax, -0x48(%rsp)
movq -0x30(%rsp), %rax
movzbl (%rax), %eax
andl $0xc, %eax
movl %eax, -0x4c(%rsp)
movq -0x30(%rsp), %rax
movzbl (%rax), %eax
andl $0x3, %eax
movl %eax, -0x50(%rsp)
movq -0x18(%rsp), %rax
movl -0x44(%rsp), %ecx
movl -0x44(%rsp), %edx
sarl $0x2, %edx
orl %edx, %ecx
movl -0x44(%rsp), %edx
sarl $0x4, %edx
orl %edx, %ecx
movl -0x44(%rsp), %edx
sarl $0x6, %edx
orl %edx, %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
andl $0xc0, %eax
movq -0x18(%rsp), %rcx
movl -0x48(%rsp), %edx
shll $0x2, %edx
orl -0x48(%rsp), %edx
movl -0x48(%rsp), %esi
sarl $0x2, %esi
orl %esi, %edx
movl -0x48(%rsp), %esi
sarl $0x4, %esi
orl %esi, %edx
movslq %edx, %rdx
movzbl (%rcx,%rdx), %ecx
sarl $0x2, %ecx
andl $0x30, %ecx
orl %ecx, %eax
movq -0x18(%rsp), %rcx
movl -0x4c(%rsp), %edx
shll $0x4, %edx
movl -0x4c(%rsp), %esi
shll $0x2, %esi
orl %esi, %edx
orl -0x4c(%rsp), %edx
movl -0x4c(%rsp), %esi
sarl $0x2, %esi
orl %esi, %edx
movslq %edx, %rdx
movzbl (%rcx,%rdx), %ecx
sarl $0x4, %ecx
andl $0xc, %ecx
orl %ecx, %eax
movq -0x18(%rsp), %rcx
movl -0x50(%rsp), %edx
shll $0x6, %edx
movl -0x50(%rsp), %esi
shll $0x4, %esi
orl %esi, %edx
movl -0x50(%rsp), %esi
shll $0x2, %esi
orl %esi, %edx
orl -0x50(%rsp), %edx
movslq %edx, %rdx
movzbl (%rcx,%rdx), %ecx
sarl $0x6, %ecx
orl %ecx, %eax
movb %al, %cl
movq -0x30(%rsp), %rax
movb %cl, (%rax)
movq -0x30(%rsp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rsp)
movl -0x34(%rsp), %eax
addl $0x4, %eax
movl %eax, -0x34(%rsp)
jmp 0x10fbd8
jmp 0x10fd0d
movq -0x8(%rsp), %rax
movzbl 0x11(%rax), %eax
cmpl $0x4, %eax
jne 0x10fdc5
movq -0x10(%rsp), %rax
movq %rax, -0x30(%rsp)
movl $0x0, -0x34(%rsp)
movl -0x34(%rsp), %eax
cmpl -0x38(%rsp), %eax
jae 0x10fdc0
movq -0x30(%rsp), %rax
movzbl (%rax), %eax
andl $0xf0, %eax
movl %eax, -0x54(%rsp)
movq -0x30(%rsp), %rax
movzbl (%rax), %eax
andl $0xf, %eax
movl %eax, -0x58(%rsp)
movq -0x18(%rsp), %rax
movl -0x54(%rsp), %ecx
movl -0x54(%rsp), %edx
sarl $0x4, %edx
orl %edx, %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
andl $0xf0, %eax
movq -0x18(%rsp), %rcx
movl -0x58(%rsp), %edx
shll $0x4, %edx
orl -0x58(%rsp), %edx
movslq %edx, %rdx
movzbl (%rcx,%rdx), %ecx
sarl $0x4, %ecx
orl %ecx, %eax
movb %al, %cl
movq -0x30(%rsp), %rax
movb %cl, (%rax)
movq -0x30(%rsp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rsp)
movl -0x34(%rsp), %eax
addl $0x2, %eax
movl %eax, -0x34(%rsp)
jmp 0x10fd31
jmp 0x10fecd
movq -0x8(%rsp), %rax
movzbl 0x11(%rax), %eax
cmpl $0x8, %eax
jne 0x10fe26
movq -0x10(%rsp), %rax
movq %rax, -0x30(%rsp)
movl $0x0, -0x34(%rsp)
movl -0x34(%rsp), %eax
cmpl -0x38(%rsp), %eax
jae 0x10fe21
movq -0x18(%rsp), %rax
movq -0x30(%rsp), %rcx
movzbl (%rcx), %ecx
movb (%rax,%rcx), %cl
movq -0x30(%rsp), %rax
movb %cl, (%rax)
movq -0x30(%rsp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rsp)
movl -0x34(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rsp)
jmp 0x10fde5
jmp 0x10fecb
movq -0x8(%rsp), %rax
movzbl 0x11(%rax), %eax
cmpl $0x10, %eax
jne 0x10fec9
movq -0x10(%rsp), %rax
movq %rax, -0x30(%rsp)
movl $0x0, -0x34(%rsp)
movl -0x34(%rsp), %eax
cmpl -0x38(%rsp), %eax
jae 0x10fec7
movq -0x20(%rsp), %rax
movq -0x30(%rsp), %rcx
movzbl 0x1(%rcx), %edx
movl -0x24(%rsp), %ecx
sarl %cl, %edx
movl %edx, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movq -0x30(%rsp), %rcx
movzbl (%rcx), %ecx
movw (%rax,%rcx,2), %ax
movw %ax, -0x5a(%rsp)
movzwl -0x5a(%rsp), %eax
sarl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x30(%rsp), %rax
movb %cl, (%rax)
movzwl -0x5a(%rsp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x30(%rsp), %rax
movb %cl, 0x1(%rax)
movq -0x30(%rsp), %rax
addq $0x2, %rax
movq %rax, -0x30(%rsp)
movl -0x34(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rsp)
jmp 0x10fe4a
jmp 0x10fec9
jmp 0x10fecb
jmp 0x10fecd
jmp 0x10fecf
jmp 0x10fed1
retq
nopw %cs:(%rax,%rax)