// File: /workspace/github_cpp_makefile_star2_O1/mhe[P]raytracerframework_cpp/lodepng.cpp
// Function: LodePNG_convert(unsigned char*, unsigned char const*, LodePNG_InfoColor*, LodePNG_InfoColor*, unsigned int, unsigned int)
unsigned LodePNG_convert(unsigned char* out, const unsigned char* in, LodePNG_InfoColor* infoOut, LodePNG_InfoColor* infoIn, unsigned w, unsigned h)
{
  const size_t numpixels = w * h; /*amount of pixels*/
  const unsigned OUT_BYTES = LodePNG_InfoColor_getBpp(infoOut) / 8; /*bytes per pixel in the output image*/
  const unsigned OUT_ALPHA = LodePNG_InfoColor_isAlphaType(infoOut); /*use 8-bit alpha channel*/
  size_t i, c, bp = 0; /*bitpointer, used by less-than-8-bit color types*/
  
  /*cases where in and out already have the same format*/
  if(LodePNG_InfoColor_equal(infoIn, infoOut))
  {
    size_t i, size = (w * h * LodePNG_InfoColor_getBpp(infoIn) + 7) / 8;
    for(i = 0; i < size; i++) out[i] = in[i];
    return 0;
  }

  if((infoOut->colorType == 2 || infoOut->colorType == 6) && infoOut->bitDepth == 8)
  {
    if(infoIn->bitDepth == 8)
    {
      switch(infoIn->colorType)
      {
        case 0: /*greyscale color*/
          for(i = 0; i < numpixels; i++)
          {
            if(OUT_ALPHA) out[OUT_BYTES * i + 3] = 255;
            out[OUT_BYTES * i + 0] = out[OUT_BYTES * i + 1] = out[OUT_BYTES * i + 2] = in[i];
            if(OUT_ALPHA && infoIn->key_defined && in[i] == infoIn->key_r) out[OUT_BYTES * i + 3] = 0;
          }
        break;
        case 2: /*RGB color*/
          for(i = 0; i < numpixels; i++)
          {
            if(OUT_ALPHA) out[OUT_BYTES * i + 3] = 255;
            for(c = 0; c < 3; c++) out[OUT_BYTES * i + c] = in[3 * i + c];
            if(OUT_ALPHA && infoIn->key_defined == 1 && in[3 * i + 0] == infoIn->key_r && in[3 * i + 1] == infoIn->key_g && in[3 * i + 2] == infoIn->key_b) out[OUT_BYTES * i + 3] = 0;
          }
        break;
        case 3: /*indexed color (palette)*/
          for(i = 0; i < numpixels; i++)
          {
            if(OUT_ALPHA) out[OUT_BYTES * i + 3] = 255;
            if(in[i] >= infoIn->palettesize) return 46;
            for(c = 0; c < OUT_BYTES; c++) out[OUT_BYTES * i + c] = infoIn->palette[4 * in[i] + c]; /*get rgb colors from the palette*/
          }
        break;
        case 4: /*greyscale with alpha*/
          for(i = 0; i < numpixels; i++)
          {
            out[OUT_BYTES * i + 0] = out[OUT_BYTES * i + 1] = out[OUT_BYTES * i + 2] = in[2 * i + 0];
            if(OUT_ALPHA) out[OUT_BYTES * i + 3] = in[2 * i + 1];
          }
        break;
        case 6: /*RGB with alpha*/
          for(i = 0; i < numpixels; i++)
          {
            for(c = 0; c < OUT_BYTES; c++) out[OUT_BYTES * i + c] = in[4 * i + c];
          }
        break;
        default: break;
      }
    }
    else if(infoIn->bitDepth == 16)
    {
      switch(infoIn->colorType)
      {
        case 0: /*greyscale color*/
          for(i = 0; i < numpixels; i++)
          {
            if(OUT_ALPHA) out[OUT_BYTES * i + 3] = 255;
            out[OUT_BYTES * i + 0] = out[OUT_BYTES * i + 1] = out[OUT_BYTES * i + 2] = in[2 * i];
            if(OUT_ALPHA && infoIn->key_defined && 256U * in[i] + in[i + 1] == infoIn->key_r) out[OUT_BYTES * i + 3] = 0;
          }
        break;
        case 2: /*RGB color*/
          for(i = 0; i < numpixels; i++)
          {
            if(OUT_ALPHA) out[OUT_BYTES * i + 3] = 255;
            for(c = 0; c < 3; c++) out[OUT_BYTES * i + c] = in[6 * i + 2 * c];
            if(OUT_ALPHA && infoIn->key_defined && 256U * in[6 * i + 0] + in[6 * i + 1] == infoIn->key_r && 256U * in[6 * i + 2] + in[6 * i + 3] == infoIn->key_g && 256U * in[6 * i + 4] + in[6 * i + 5] == infoIn->key_b) out[OUT_BYTES * i + 3] = 0;
          }
        break;
        case 4: /*greyscale with alpha*/
          for(i = 0; i < numpixels; i++)
          {
            out[OUT_BYTES * i + 0] = out[OUT_BYTES * i + 1] = out[OUT_BYTES * i + 2] = in[4 * i]; /*most significant byte*/
            if(OUT_ALPHA) out[OUT_BYTES * i + 3] = in[4 * i + 2];
          }
        break;
        case 6: /*RGB with alpha*/
          for(i = 0; i < numpixels; i++)
          {
            for(c = 0; c < OUT_BYTES; c++) out[OUT_BYTES * i + c] = in[8 * i + 2 * c];
          }
          break;
        default: break;
      }
    }
    else /*infoIn->bitDepth is less than 8 bit per channel*/
    {
      switch(infoIn->colorType)
      {
        case 0: /*greyscale color*/
          for(i = 0; i < numpixels; i++)
          {
            unsigned value = readBitsFromReversedStream(&bp, in, infoIn->bitDepth);
            if(OUT_ALPHA) out[OUT_BYTES * i + 3] = 255;
            if(OUT_ALPHA && infoIn->key_defined && value && ((1U << infoIn->bitDepth) - 1U) == infoIn->key_r && ((1U << infoIn->bitDepth) - 1U)) out[OUT_BYTES * i + 3] = 0;
            value = (value * 255) / ((1 << infoIn->bitDepth) - 1); /*scale value from 0 to 255*/
            out[OUT_BYTES * i + 0] = out[OUT_BYTES * i + 1] = out[OUT_BYTES * i + 2] = (unsigned char)(value);
          }
        break;
        case 3: /*indexed color (palette)*/
          for(i = 0; i < numpixels; i++)
          {
            unsigned value = readBitsFromReversedStream(&bp, in, infoIn->bitDepth);
            if(OUT_ALPHA) out[OUT_BYTES * i + 3] = 255;
            if(value >= infoIn->palettesize) return 47;
            for(c = 0; c < OUT_BYTES; c++) out[OUT_BYTES * i + c] = infoIn->palette[4 * value + c]; /*get rgb colors from the palette*/
          }
        break;
        default: break;
      }
    }
  }
  else if(LodePNG_InfoColor_isGreyscaleType(infoOut) && infoOut->bitDepth == 8) /*conversion from greyscale to greyscale*/
  {
    if(!LodePNG_InfoColor_isGreyscaleType(infoIn)) return 62;
    if(infoIn->bitDepth == 8)
    {
      switch(infoIn->colorType)
      {
        case 0: /*greyscale color*/
          for(i = 0; i < numpixels; i++)
          {
            if(OUT_ALPHA) out[OUT_BYTES * i + 1] = 255;
            out[OUT_BYTES * i] = in[i];
            if(OUT_ALPHA && infoIn->key_defined && in[i] == infoIn->key_r) out[OUT_BYTES * i + 1] = 0;
          }
        break;
        case 4: /*greyscale with alpha*/
          for(i = 0; i < numpixels; i++)
          {
            out[OUT_BYTES * i + 0] = in[2 * i + 0];
            if(OUT_ALPHA) out[OUT_BYTES * i + 1] = in[2 * i + 1];
          }
        break;
        default: return 31;
      }
    }
    else if(infoIn->bitDepth == 16)
    {
      switch(infoIn->colorType)
      {
        case 0: /*greyscale color*/
          for(i = 0; i < numpixels; i++)
          {
            if(OUT_ALPHA) out[OUT_BYTES * i + 1] = 255;
            out[OUT_BYTES * i] = in[2 * i];
            if(OUT_ALPHA && infoIn->key_defined && 256U * in[i] + in[i + 1] == infoIn->key_r) out[OUT_BYTES * i + 1] = 0;
          }
        break;
        case 4: /*greyscale with alpha*/
          for(i = 0; i < numpixels; i++)
          {
            out[OUT_BYTES * i] = in[4 * i]; /*most significant byte*/
            if(OUT_ALPHA) out[OUT_BYTES * i + 1] = in[4 * i + 2]; /*most significant byte*/
          }
        break;
        default: return 31;
      }
    }
    else /*infoIn->bitDepth is less than 8 bit per channel*/
    {
      if(infoIn->colorType != 0) return 31; /*colorType 0 is the only greyscale type with < 8 bits per channel*/
      for(i = 0; i < numpixels; i++)
      {
        unsigned value = readBitsFromReversedStream(&bp, in, infoIn->bitDepth);
        if(OUT_ALPHA) out[OUT_BYTES * i + 1] = 255;
        if(OUT_ALPHA && infoIn->key_defined && value && ((1U << infoIn->bitDepth) - 1U) == infoIn->key_r && ((1U << infoIn->bitDepth) - 1U)) out[OUT_BYTES * i + 1] = 0;
        value = (value * 255) / ((1 << infoIn->bitDepth) - 1); /*scale value from 0 to 255*/
        out[OUT_BYTES * i] = (unsigned char)(value);
      }
    }
  }
  else return 59;
  
  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rcx, %r10
imull %r9d, %r8d
movl (%rdx), %ebx
xorl %eax, %eax
cmpq $0x6, %rbx
ja 0x1dfee
leaq 0x13b91(%rip), %rax     # 0x31b7c
movl (%rax,%rbx,4), %eax
movl 0x4(%rdx), %r14d
movl (%r10), %r11d
cmpl %ebx, %r11d
jne 0x1e052
cmpl %r14d, 0x4(%r10)
jne 0x1e052
movl 0x4(%r10), %eax
xorl %ecx, %ecx
movl $0x0, %edx
cmpl $0x6, %r11d
ja 0x1e01c
leaq 0x13b64(%rip), %rdx     # 0x31b7c
movl (%rdx,%r11,4), %edx
imull %edx, %r8d
imull %r8d, %eax
addl $0x7, %eax
cmpl $0x8, %eax
jb 0x1e10f
shrl $0x3, %eax
cmpl $0x1, %eax
adcl $0x0, %eax
xorl %ecx, %ecx
xorl %edx, %edx
movb (%rsi,%rdx), %r8b
movb %r8b, (%rdi,%rdx)
incq %rdx
cmpq %rdx, %rax
jne 0x1e03d
jmp 0x1e10f
imull %r14d, %eax
movl %eax, %edx
shrl $0x3, %edx
movl %ebx, %r13d
shrl $0x2, %r13d
movl %ebx, %ecx
orl $0x4, %ecx
cmpl $0x6, %ecx
jne 0x1e0f0
cmpl $0x8, %r14d
jne 0x1e0f0
movl 0x4(%r10), %ecx
cmpl $0x10, %ecx
je 0x1e177
cmpl $0x8, %ecx
jne 0x1e1e9
xorl %ecx, %ecx
cmpl $0x6, %r11d
ja 0x1e10f
leaq 0x13761(%rip), %r9      # 0x317fc
movslq (%r9,%r11,4), %r11
addq %r9, %r11
jmpq *%r11
testq %r8, %r8
je 0x1e10f
addq $0x3, %rdi
movl %edx, %eax
xorl %edx, %edx
testb $0x1, %r13b
je 0x1e0bb
movb $-0x1, (%rdi)
movb (%rsi,%rdx), %cl
movb %cl, -0x1(%rdi)
movb %cl, -0x2(%rdi)
movb %cl, -0x3(%rdi)
testb $0x1, %r13b
je 0x1e0e1
cmpl $0x0, 0x18(%r10)
je 0x1e0e1
movzbl (%rsi,%rdx), %ecx
cmpl %ecx, 0x1c(%r10)
jne 0x1e0e1
movb $0x0, (%rdi)
incq %rdx
addq %rax, %rdi
xorl %ecx, %ecx
cmpq %rdx, %r8
jne 0x1e0b2
jmp 0x1e10f
andl $-0x5, %ebx
xorl $0x8, %r14d
movl $0x3b, %ecx
orl %ebx, %r14d
jne 0x1e10f
movl $0x3e, %ecx
testl $0xfffffffb, %r11d      # imm = 0xFFFFFFFB
je 0x1e11c
movl %ecx, %eax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl 0x4(%r10), %eax
cmpl $0x10, %eax
je 0x1e2e1
cmpl $0x8, %eax
jne 0x1e32d
testq %r11, %r11
je 0x1e799
movl $0x1f, %ecx
cmpl $0x4, %r11d
jne 0x1e10f
testq %r8, %r8
je 0x1e832
movl %edx, %eax
incq %rdi
xorl %edx, %edx
movb (%rsi,%rdx,2), %cl
movb %cl, -0x1(%rdi)
testb $0x1, %r13b
je 0x1e168
movb 0x1(%rsi,%rdx,2), %cl
movb %cl, (%rdi)
incq %rdx
addq %rax, %rdi
xorl %ecx, %ecx
cmpq %rdx, %r8
jne 0x1e156
jmp 0x1e10f
xorl %ecx, %ecx
cmpl $0x6, %r11d
ja 0x1e10f
leaq 0x1365a(%rip), %r9      # 0x317e0
movslq (%r9,%r11,4), %r11
addq %r9, %r11
jmpq *%r11
testq %r8, %r8
je 0x1e10f
addq $0x3, %rdi
movl %edx, %eax
xorl %edx, %edx
testb $0x1, %r13b
je 0x1e1aa
movb $-0x1, (%rdi)
movb (%rsi,%rdx,2), %cl
movb %cl, -0x1(%rdi)
movb %cl, -0x2(%rdi)
movb %cl, -0x3(%rdi)
testb $0x1, %r13b
je 0x1e1d7
cmpl $0x0, 0x18(%r10)
je 0x1e1d7
movzwl (%rsi,%rdx), %ecx
rolw $0x8, %cx
movzwl %cx, %ecx
cmpl 0x1c(%r10), %ecx
jne 0x1e1d7
movb $0x0, (%rdi)
incq %rdx
addq %rax, %rdi
xorl %ecx, %ecx
cmpq %rdx, %r8
jne 0x1e1a1
jmp 0x1e10f
xorl %ecx, %ecx
testq %r11, %r11
je 0x1e40f
cmpl $0x3, %r11d
jne 0x1e10f
testq %r8, %r8
je 0x1e10f
movl %edx, %r11d
cmpq $0x1, %r11
movq %r11, -0x38(%rbp)
adcq $0x0, %r11
xorl %ebx, %ebx
movq %rdi, %r14
xorl %r15d, %r15d
movq %r8, -0x40(%rbp)
movl %r13d, -0x2c(%rbp)
movl 0x4(%r10), %edx
xorl %r12d, %r12d
testq %rdx, %rdx
je 0x1e272
movq %rdx, %r13
movq %r15, %rcx
shrq $0x3, %rcx
movzbl (%rsi,%rcx), %ecx
movl %r15d, %r9d
notb %r9b
movzbl %r9b, %r9d
andl $0x7, %r9d
xorl %r8d, %r8d
btl %r9d, %ecx
setb %r8b
incq %r15
leaq -0x1(%r13), %rcx
shll %cl, %r8d
addl %r8d, %r12d
addq $-0x2, %r13
cmpq %rdx, %r13
movq %rcx, %r13
jb 0x1e235
testb $0x1, -0x2c(%rbp)
je 0x1e285
movq %rbx, %rcx
imulq -0x38(%rbp), %rcx
movb $-0x1, 0x3(%rdi,%rcx)
movl %r12d, %edx
movq 0x10(%r10), %r13
movl $0x2f, %ecx
cmpq %rdx, %r13
jbe 0x1e10f
cmpl $0x8, %eax
jb 0x1e2bd
shll $0x2, %r12d
xorl %r9d, %r9d
movq 0x8(%r10), %r8
addq %r12, %r8
movb (%r9,%r8), %r8b
movb %r8b, (%r14,%r9)
incq %r9
cmpq %r9, %r11
jne 0x1e2a6
cmpq %rdx, %r13
movq -0x40(%rbp), %r8
jbe 0x1e10f
incq %rbx
addq -0x38(%rbp), %r14
xorl %ecx, %ecx
cmpq %r8, %rbx
jne 0x1e226
jmp 0x1e10f
testq %r11, %r11
je 0x1e7e4
movl $0x1f, %ecx
cmpl $0x4, %r11d
jne 0x1e10f
testq %r8, %r8
je 0x1e832
movl %edx, %eax
incq %rdi
xorl %edx, %edx
movb (%rsi,%rdx,4), %cl
movb %cl, -0x1(%rdi)
testb $0x1, %r13b
je 0x1e31b
movb 0x2(%rsi,%rdx,4), %cl
movb %cl, (%rdi)
incq %rdx
addq %rax, %rdi
xorl %ecx, %ecx
cmpq %rdx, %r8
jne 0x1e309
jmp 0x1e10f
movl $0x1f, %ecx
testq %r11, %r11
jne 0x1e10f
testq %r8, %r8
je 0x1e832
movl %edx, %r11d
xorl %ebx, %ebx
xorl %r14d, %r14d
movl 0x4(%r10), %eax
xorl %edx, %edx
testq %rax, %rax
je 0x1e397
movq %rax, %r15
movq %r14, %rcx
shrq $0x3, %rcx
movzbl (%rsi,%rcx), %ecx
movl %r14d, %r9d
notb %r9b
movzbl %r9b, %r12d
andl $0x7, %r12d
xorl %r9d, %r9d
btl %r12d, %ecx
setb %r9b
incq %r14
leaq -0x1(%r15), %rcx
shll %cl, %r9d
addl %r9d, %edx
addq $-0x2, %r15
cmpq %rax, %r15
movq %rcx, %r15
jb 0x1e35a
testb $0x1, %r13b
jne 0x1e3d6
movl %edx, %eax
shll $0x8, %eax
movb 0x4(%r10), %cl
movl $0xffffffff, %r9d       # imm = 0xFFFFFFFF
shll %cl, %r9d
subl %edx, %eax
notl %r9d
xorl %ecx, %ecx
xorl %edx, %edx
divl %r9d
movq %rbx, %rdx
imulq %r11, %rdx
movb %al, (%rdi,%rdx)
incq %rbx
cmpq %r8, %rbx
jne 0x1e34c
jmp 0x1e10f
movq %rbx, %rax
imulq %r11, %rax
movb $-0x1, 0x1(%rdi,%rax)
testl %edx, %edx
je 0x1e39d
cmpl $0x0, 0x18(%r10)
je 0x1e39d
movl 0x4(%r10), %ecx
movl $0xffffffff, %r9d       # imm = 0xFFFFFFFF
shll %cl, %r9d
testl %ecx, %ecx
je 0x1e39d
xorl 0x1c(%r10), %r9d
cmpl $-0x1, %r9d
jne 0x1e39d
movb $0x0, 0x1(%rdi,%rax)
jmp 0x1e39d
testq %r8, %r8
je 0x1e10f
movl %edx, %r11d
xorl %ebx, %ebx
xorl %r14d, %r14d
movl 0x4(%r10), %eax
xorl %edx, %edx
testq %rax, %rax
je 0x1e46b
movq %rax, %r15
movq %r14, %rcx
shrq $0x3, %rcx
movzbl (%rsi,%rcx), %ecx
movl %r14d, %r9d
notb %r9b
movzbl %r9b, %r9d
andl $0x7, %r9d
xorl %r12d, %r12d
btl %r9d, %ecx
setb %r12b
incq %r14
leaq -0x1(%r15), %rcx
shll %cl, %r12d
addl %r12d, %edx
addq $-0x2, %r15
cmpq %rax, %r15
movq %rcx, %r15
jb 0x1e42e
testb $0x1, %r13b
jne 0x1e4b2
movl %edx, %eax
shll $0x8, %eax
subl %edx, %eax
movb 0x4(%r10), %cl
movl $0xffffffff, %r9d       # imm = 0xFFFFFFFF
shll %cl, %r9d
notl %r9d
xorl %ecx, %ecx
xorl %edx, %edx
divl %r9d
movq %rbx, %rdx
imulq %r11, %rdx
movb %al, 0x2(%rdi,%rdx)
movb %al, 0x1(%rdi,%rdx)
movb %al, (%rdi,%rdx)
incq %rbx
cmpq %r8, %rbx
jne 0x1e420
jmp 0x1e10f
movq %rbx, %rax
imulq %r11, %rax
movb $-0x1, 0x3(%rdi,%rax)
testl %edx, %edx
je 0x1e471
cmpl $0x0, 0x18(%r10)
je 0x1e471
movl 0x4(%r10), %ecx
movl $0xffffffff, %r9d       # imm = 0xFFFFFFFF
shll %cl, %r9d
testl %ecx, %ecx
je 0x1e471
xorl 0x1c(%r10), %r9d
cmpl $-0x1, %r9d
jne 0x1e471
movb $0x0, 0x3(%rdi,%rax)
jmp 0x1e471
testq %r8, %r8
je 0x1e10f
movl %edx, %eax
addq $0x3, %rdi
xorl %edx, %edx
movb (%rsi,%rdx,4), %cl
movb %cl, -0x1(%rdi)
movb %cl, -0x2(%rdi)
movb %cl, -0x3(%rdi)
testb $0x1, %r13b
je 0x1e514
movb 0x2(%rsi,%rdx,4), %cl
movb %cl, (%rdi)
incq %rdx
addq %rax, %rdi
xorl %ecx, %ecx
cmpq %rdx, %r8
jne 0x1e4fc
jmp 0x1e10f
testq %r8, %r8
je 0x1e10f
movl %edx, %eax
xorl %edx, %edx
movq %rdi, %r11
movq %rsi, %rbx
testb $0x1, %r13b
je 0x1e54b
movq %rdx, %rcx
imulq %rax, %rcx
movb $-0x1, 0x3(%rdi,%rcx)
xorl %ecx, %ecx
movb (%rbx,%rcx,2), %r9b
movb %r9b, (%r11,%rcx)
incq %rcx
cmpq $0x3, %rcx
jne 0x1e54d
testb $0x1, %r13b
je 0x1e5ba
cmpl $0x0, 0x18(%r10)
je 0x1e5ba
leaq (%rdx,%rdx), %rcx
leaq (%rcx,%rcx,2), %rcx
movzwl (%rsi,%rcx), %r9d
rolw $0x8, %r9w
movzwl %r9w, %r9d
cmpl 0x1c(%r10), %r9d
jne 0x1e5ba
movzwl 0x2(%rsi,%rcx), %r9d
rolw $0x8, %r9w
movzwl %r9w, %r9d
cmpl 0x20(%r10), %r9d
jne 0x1e5ba
movzwl 0x4(%rsi,%rcx), %ecx
rolw $0x8, %cx
movzwl %cx, %ecx
cmpl 0x24(%r10), %ecx
jne 0x1e5ba
movq %rdx, %rcx
imulq %rax, %rcx
movb $0x0, 0x3(%rdi,%rcx)
incq %rdx
addq $0x6, %rbx
addq %rax, %r11
xorl %ecx, %ecx
cmpq %r8, %rdx
jne 0x1e539
jmp 0x1e10f
testq %r8, %r8
je 0x1e10f
movl %edx, %edx
cmpq $0x1, %rdx
movq %rdx, %r9
adcq $0x0, %r9
xorl %r10d, %r10d
cmpl $0x8, %eax
jb 0x1e604
xorl %ecx, %ecx
movb (%rsi,%rcx,2), %r11b
movb %r11b, (%rdi,%rcx)
incq %rcx
cmpq %rcx, %r9
jne 0x1e5f4
incq %r10
addq $0x8, %rsi
addq %rdx, %rdi
xorl %ecx, %ecx
cmpq %r8, %r10
jne 0x1e5ed
jmp 0x1e10f
testq %r8, %r8
je 0x1e10f
movl %edx, %edx
cmpq $0x1, %rdx
movq %rdx, %r11
adcq $0x0, %r11
xorl %ebx, %ebx
movq %rdi, %r14
testb $0x1, %r13b
je 0x1e647
movq %rbx, %rcx
imulq %rdx, %rcx
movb $-0x1, 0x3(%rdi,%rcx)
movzbl (%rsi,%rbx), %ecx
cmpq %rcx, 0x10(%r10)
jbe 0x1e839
cmpl $0x8, %eax
jb 0x1e679
xorl %ecx, %ecx
movzbl (%rsi,%rbx), %r9d
shlq $0x2, %r9
addq 0x8(%r10), %r9
movb (%rcx,%r9), %r9b
movb %r9b, (%r14,%rcx)
incq %rcx
cmpq %rcx, %r11
jne 0x1e65c
incq %rbx
addq %rdx, %r14
xorl %ecx, %ecx
cmpq %r8, %rbx
jne 0x1e635
jmp 0x1e10f
testq %r8, %r8
je 0x1e10f
movl %edx, %eax
xorl %edx, %edx
movq %rdi, %r11
movq %rsi, %rbx
testb $0x1, %r13b
je 0x1e6b0
movq %rdx, %rcx
imulq %rax, %rcx
movb $-0x1, 0x3(%rdi,%rcx)
xorl %ecx, %ecx
movb (%rbx,%rcx), %r9b
movb %r9b, (%r11,%rcx)
incq %rcx
cmpq $0x3, %rcx
jne 0x1e6b2
testb $0x1, %r13b
je 0x1e702
cmpl $0x1, 0x18(%r10)
jne 0x1e702
leaq (%rdx,%rdx,2), %rcx
movzbl (%rsi,%rcx), %r9d
cmpl %r9d, 0x1c(%r10)
jne 0x1e702
movzbl 0x1(%rsi,%rcx), %r9d
cmpl %r9d, 0x20(%r10)
jne 0x1e702
movzbl 0x2(%rsi,%rcx), %ecx
cmpl %ecx, 0x24(%r10)
jne 0x1e702
movq %rdx, %rcx
imulq %rax, %rcx
movb $0x0, 0x3(%rdi,%rcx)
incq %rdx
addq $0x3, %rbx
addq %rax, %r11
xorl %ecx, %ecx
cmpq %r8, %rdx
jne 0x1e69e
jmp 0x1e10f
testq %r8, %r8
je 0x1e10f
movl %edx, %eax
addq $0x3, %rdi
xorl %edx, %edx
movb (%rsi,%rdx,2), %cl
movb %cl, -0x1(%rdi)
movb %cl, -0x2(%rdi)
movb %cl, -0x3(%rdi)
testb $0x1, %r13b
je 0x1e741
movb 0x1(%rsi,%rdx,2), %cl
movb %cl, (%rdi)
incq %rdx
addq %rax, %rdi
xorl %ecx, %ecx
cmpq %rdx, %r8
jne 0x1e729
jmp 0x1e10f
testq %r8, %r8
je 0x1e10f
movl %edx, %edx
cmpq $0x1, %rdx
movq %rdx, %r9
adcq $0x0, %r9
xorl %r10d, %r10d
cmpl $0x8, %eax
jb 0x1e783
xorl %ecx, %ecx
movb (%rsi,%rcx), %r11b
movb %r11b, (%rdi,%rcx)
incq %rcx
cmpq %rcx, %r9
jne 0x1e773
incq %r10
addq $0x4, %rsi
addq %rdx, %rdi
xorl %ecx, %ecx
cmpq %r8, %r10
jne 0x1e76c
jmp 0x1e10f
testq %r8, %r8
je 0x1e832
incq %rdi
movl %edx, %eax
xorl %edx, %edx
testb $0x1, %r13b
je 0x1e7b2
movb $-0x1, (%rdi)
movb (%rsi,%rdx), %cl
movb %cl, -0x1(%rdi)
testb $0x1, %r13b
je 0x1e7d2
cmpl $0x0, 0x18(%r10)
je 0x1e7d2
movzbl (%rsi,%rdx), %ecx
cmpl %ecx, 0x1c(%r10)
jne 0x1e7d2
movb $0x0, (%rdi)
incq %rdx
addq %rax, %rdi
xorl %ecx, %ecx
cmpq %rdx, %r8
jne 0x1e7a9
jmp 0x1e10f
testq %r8, %r8
je 0x1e832
incq %rdi
movl %edx, %eax
xorl %edx, %edx
testb $0x1, %r13b
je 0x1e7f9
movb $-0x1, (%rdi)
movb (%rsi,%rdx,2), %cl
movb %cl, -0x1(%rdi)
testb $0x1, %r13b
je 0x1e820
cmpl $0x0, 0x18(%r10)
je 0x1e820
movzwl (%rsi,%rdx), %ecx
rolw $0x8, %cx
movzwl %cx, %ecx
cmpl 0x1c(%r10), %ecx
jne 0x1e820
movb $0x0, (%rdi)
incq %rdx
addq %rax, %rdi
xorl %ecx, %ecx
cmpq %rdx, %r8
jne 0x1e7f0
jmp 0x1e10f
xorl %ecx, %ecx
jmp 0x1e10f
movl $0x2e, %ecx
jmp 0x1e10f