// File: /workspace/github_cpp_makefile_star2_O3/Lut99[P]RayTracer/src/lib/LodePNG.cpp
// Function: lodepng_convert(unsigned char*, unsigned char const*, LodePNGColorMode const*, LodePNGColorMode const*, unsigned int, unsigned int)
unsigned lodepng_convert(unsigned char* out, const unsigned char* in,
                         const LodePNGColorMode* mode_out, const LodePNGColorMode* mode_in,
                         unsigned w, unsigned h) {
  size_t i;
  ColorTree tree;
  size_t numpixels = (size_t)w * (size_t)h;
  unsigned error = 0;

  if(mode_in->colortype == LCT_PALETTE && !mode_in->palette) {
    return 107; /* error: must provide palette if input mode is palette */
  }

  if(lodepng_color_mode_equal(mode_out, mode_in)) {
    size_t numbytes = lodepng_get_raw_size(w, h, mode_in);
    for(i = 0; i != numbytes; ++i) out[i] = in[i];
    return 0;
  }

  if(mode_out->colortype == LCT_PALETTE) {
    size_t palettesize = mode_out->palettesize;
    const unsigned char* palette = mode_out->palette;
    size_t palsize = (size_t)1u << mode_out->bitdepth;
    /*if the user specified output palette but did not give the values, assume
    they want the values of the input color type (assuming that one is palette).
    Note that we never create a new palette ourselves.*/
    if(palettesize == 0) {
      palettesize = mode_in->palettesize;
      palette = mode_in->palette;
      /*if the input was also palette with same bitdepth, then the color types are also
      equal, so copy literally. This to preserve the exact indices that were in the PNG
      even in case there are duplicate colors in the palette.*/
      if (mode_in->colortype == LCT_PALETTE && mode_in->bitdepth == mode_out->bitdepth) {
        size_t numbytes = lodepng_get_raw_size(w, h, mode_in);
        for(i = 0; i != numbytes; ++i) out[i] = in[i];
        return 0;
      }
    }
    if(palettesize < palsize) palsize = palettesize;
    color_tree_init(&tree);
    for(i = 0; i != palsize; ++i) {
      const unsigned char* p = &palette[i * 4];
      color_tree_add(&tree, p[0], p[1], p[2], p[3], (unsigned)i);
    }
  }

  if(mode_in->bitdepth == 16 && mode_out->bitdepth == 16) {
    for(i = 0; i != numpixels; ++i) {
      unsigned short r = 0, g = 0, b = 0, a = 0;
      getPixelColorRGBA16(&r, &g, &b, &a, in, i, mode_in);
      rgba16ToPixel(out, i, mode_out, r, g, b, a);
    }
  } else if(mode_out->bitdepth == 8 && mode_out->colortype == LCT_RGBA) {
    getPixelColorsRGBA8(out, numpixels, in, mode_in);
  } else if(mode_out->bitdepth == 8 && mode_out->colortype == LCT_RGB) {
    getPixelColorsRGB8(out, numpixels, in, mode_in);
  } else {
    unsigned char r = 0, g = 0, b = 0, a = 0;
    for(i = 0; i != numpixels; ++i) {
      getPixelColorRGBA8(&r, &g, &b, &a, in, i, mode_in);
      error = rgba8ToPixel(out, i, mode_out, &tree, r, g, b, a);
      if (error) break;
    }
  }

  if(mode_out->colortype == LCT_PALETTE) {
    color_tree_cleanup(&tree);
  }

  return error;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
movl %r8d, %r13d
movq %rcx, %rbp
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %r14
movl (%rcx), %ebx
cmpl $0x3, %ebx
jne 0x6868f
cmpq $0x0, 0x8(%rbp)
je 0x68757
movl %r9d, 0x1c(%rsp)
movq %r15, %rdi
movq %rbp, %rsi
callq 0x692f5
testl %eax, %eax
je 0x686d7
movl 0x4(%rbp), %ecx
movl %r13d, %edi
movl 0x1c(%rsp), %esi
movl %ebx, %edx
callq 0x67ebb
testq %rax, %rax
je 0x687b1
xorl %r13d, %r13d
xorl %ecx, %ecx
movb (%r12,%rcx), %dl
movb %dl, (%r14,%rcx)
incq %rcx
cmpq %rcx, %rax
jne 0x686c2
jmp 0x68c19
movq %rbp, 0x10(%rsp)
movq %r12, 0x28(%rsp)
movq %r14, 0x20(%rsp)
movq %r15, %r14
cmpl $0x3, (%r15)
jne 0x68835
movq 0x10(%r14), %rax
movl 0x4(%r14), %ecx
movl $0x1, %ebp
shlq %cl, %rbp
testq %rax, %rax
je 0x68762
movq 0x8(%r14), %r15
cmpq %rbp, %rax
cmovbq %rax, %rbp
xorps %xmm0, %xmm0
movaps %xmm0, 0xa0(%rsp)
movaps %xmm0, 0x90(%rsp)
movaps %xmm0, 0x80(%rsp)
movaps %xmm0, 0x70(%rsp)
movaps %xmm0, 0x60(%rsp)
movaps %xmm0, 0x50(%rsp)
movaps %xmm0, 0x40(%rsp)
movaps %xmm0, 0x30(%rsp)
movl $0xffffffff, 0xb0(%rsp) # imm = 0xFFFFFFFF
jmp 0x68804
movl $0x6b, %r13d
jmp 0x68c19
movq 0x10(%rsp), %rdx
movq 0x8(%rdx), %r15
movq 0x10(%rdx), %rax
cmpl $0x3, %ebx
jne 0x687b9
cmpl %ecx, 0x4(%rdx)
jne 0x687b9
movl %r13d, %edi
movl 0x1c(%rsp), %esi
movl $0x3, %edx
callq 0x67ebb
testq %rax, %rax
je 0x687b1
xorl %r13d, %r13d
xorl %ecx, %ecx
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdi
movb (%rdi,%rcx), %dl
movb %dl, (%rsi,%rcx)
incq %rcx
cmpq %rcx, %rax
jne 0x6879e
jmp 0x68c19
xorl %r13d, %r13d
jmp 0x68c19
cmpq %rbp, %rax
cmovbq %rax, %rbp
xorps %xmm0, %xmm0
movaps %xmm0, 0xa0(%rsp)
movaps %xmm0, 0x90(%rsp)
movaps %xmm0, 0x80(%rsp)
movaps %xmm0, 0x70(%rsp)
movaps %xmm0, 0x60(%rsp)
movaps %xmm0, 0x50(%rsp)
movaps %xmm0, 0x40(%rsp)
movaps %xmm0, 0x30(%rsp)
movl $0xffffffff, 0xb0(%rsp) # imm = 0xFFFFFFFF
testq %rax, %rax
je 0x68835
xorl %ebx, %ebx
leaq 0x30(%rsp), %r12
movzbl (%r15,%rbx,4), %esi
movzbl 0x1(%r15,%rbx,4), %edx
movzbl 0x2(%r15,%rbx,4), %ecx
movzbl 0x3(%r15,%rbx,4), %r8d
movq %r12, %rdi
movl %ebx, %r9d
callq 0x69362
incq %rbx
cmpq %rbx, %rbp
jne 0x6880b
movl %r13d, %edx
movl 0x1c(%rsp), %eax
movq %rax, %r15
imulq %rdx, %r15
movq 0x10(%rsp), %rcx
movl 0x4(%rcx), %ecx
movl %ecx, %edi
xorl $0x10, %edi
movq %r14, %r12
movl 0x4(%r14), %esi
movl %esi, %r8d
xorl $0x10, %r8d
orl %edi, %r8d
jne 0x68970
xorl %r13d, %r13d
testq %r15, %r15
je 0x68c08
leaq 0x1fc1a(%rip), %r12     # 0x88494
xorl %ebx, %ebx
xorl %ebp, %ebp
movw %r13w, 0xe(%rsp)
movw %r13w, 0xc(%rsp)
movw %r13w, 0xa(%rsp)
movw %r13w, 0x8(%rsp)
movq 0x10(%rsp), %rax
movq %rax, (%rsp)
leaq 0xe(%rsp), %rdi
leaq 0xc(%rsp), %rsi
leaq 0xa(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq 0x28(%rsp), %r8
movq %rbp, %r9
callq 0x69429
movl (%r14), %esi
cmpq $0x6, %rsi
ja 0x68955
movzwl 0xe(%rsp), %eax
movzwl 0xc(%rsp), %edx
movzwl 0xa(%rsp), %edi
movzwl 0x8(%rsp), %ecx
movslq (%r12,%rsi,4), %rsi
addq %r12, %rsi
jmpq *%rsi
rolw $0x8, %ax
movq 0x20(%rsp), %rcx
movw %ax, (%rcx,%rbp,2)
jmp 0x68955
movq 0x20(%rsp), %rdx
movb %ah, (%rdx,%rbp,4)
movb %al, 0x1(%rdx,%rbp,4)
movb %ch, 0x2(%rdx,%rbp,4)
movb %cl, 0x3(%rdx,%rbp,4)
jmp 0x68955
movq 0x20(%rsp), %rcx
movb %ah, (%rcx,%rbx,2)
movb %al, 0x1(%rcx,%rbx,2)
movb %dh, 0x2(%rcx,%rbx,2)
movb %dl, 0x3(%rcx,%rbx,2)
movl %edi, %eax
movb %ah, 0x4(%rcx,%rbx,2)
movb %al, 0x5(%rcx,%rbx,2)
jmp 0x68955
movq 0x20(%rsp), %rsi
movb %ah, (%rsi,%rbp,8)
movb %al, 0x1(%rsi,%rbp,8)
movb %dh, 0x2(%rsi,%rbp,8)
movb %dl, 0x3(%rsi,%rbp,8)
movl %edi, %eax
movb %ah, 0x4(%rsi,%rbp,8)
movb %al, 0x5(%rsi,%rbp,8)
movb %ch, 0x6(%rsi,%rbp,8)
movb %cl, 0x7(%rsi,%rbp,8)
incq %rbp
addq $0x3, %rbx
cmpq %rbp, %r15
jne 0x6887e
xorl %r13d, %r13d
movq %r14, %r12
jmp 0x68c08
cmpl $0x8, %esi
movq 0x20(%rsp), %r14
movq 0x28(%rsp), %rbp
jne 0x68a2a
movl (%r12), %esi
cmpl $0x2, %esi
je 0x68c2e
cmpl $0x6, %esi
jne 0x68a2a
movq 0x10(%rsp), %rsi
movl (%rsi), %esi
xorl %r13d, %r13d
cmpq $0x6, %rsi
ja 0x68c08
leaq 0x1faa8(%rip), %rdi     # 0x8845c
movslq (%rdi,%rsi,4), %rsi
addq %rdi, %rsi
jmpq *%rsi
cmpq $0x8, %rcx
je 0x6912a
cmpl $0x10, %ecx
jne 0x691bd
testq %r15, %r15
je 0x68c08
movq 0x10(%rsp), %rax
movl 0x18(%rax), %eax
xorl %ecx, %ecx
movzbl (%rbp,%rcx,2), %edx
movb %dl, 0x2(%r14,%rcx,4)
movb %dl, 0x1(%r14,%rcx,4)
movb %dl, (%r14,%rcx,4)
testl %eax, %eax
je 0x68a13
shll $0x8, %edx
movzbl 0x1(%rbp,%rcx,2), %esi
orl %edx, %esi
movq 0x10(%rsp), %rdx
cmpl 0x1c(%rdx), %esi
setne %dl
negb %dl
jmp 0x68a15
movb $-0x1, %dl
movb %dl, 0x3(%r14,%rcx,4)
incq %rcx
xorl %r13d, %r13d
cmpq %rcx, %r15
jne 0x689e3
jmp 0x68c08
xorl %r13d, %r13d
movb %r13b, 0xe(%rsp)
movb %r13b, 0xc(%rsp)
movb %r13b, 0xa(%rsp)
movb %r13b, 0x8(%rsp)
testq %r15, %r15
je 0x68c08
xorl %r13d, %r13d
leaq 0x1fa24(%rip), %rbx     # 0x88478
movq 0x10(%rsp), %rax
movq %rax, (%rsp)
leaq 0xe(%rsp), %rdi
leaq 0xc(%rsp), %rsi
leaq 0xa(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %rbp, %r8
movq %r13, %r9
callq 0x695a8
movl (%r12), %r8d
cmpq $0x6, %r8
ja 0x68bf9
movb 0xe(%rsp), %al
movzbl %al, %esi
movb 0xc(%rsp), %dl
movb 0xa(%rsp), %cl
movb 0x8(%rsp), %dil
movslq (%rbx,%r8,4), %r8
addq %rbx, %r8
jmpq *%r8
movl 0x4(%r12), %edx
cmpl $0x10, %edx
je 0x68bb9
cmpl $0x8, %edx
jne 0x68bd9
movb %al, (%r14,%r13)
jmp 0x68bf9
movzbl %dl, %edx
movzbl %cl, %ecx
movzbl %dil, %r8d
leaq 0x30(%rsp), %rdi
callq 0x7081d
testl %eax, %eax
js 0x68c8f
movl 0x4(%r12), %edx
cmpl $0x8, %edx
jne 0x68bec
movb %al, (%r14,%r13)
jmp 0x68bf9
cmpl $0x8, 0x4(%r12)
jne 0x68b66
leaq (,%r13,2), %rsi
addq %r13, %rsi
movb %al, (%r14,%rsi)
movb %dl, 0x1(%r14,%rsi)
movb %cl, 0x2(%r14,%rsi)
jmp 0x68bf9
movl 0x4(%r12), %ecx
cmpl $0x10, %ecx
je 0x68bc4
cmpl $0x8, %ecx
jne 0x68bf9
movb %al, (%r14,%r13,2)
movb %dil, 0x1(%r14,%r13,2)
jmp 0x68bf9
cmpl $0x8, 0x4(%r12)
jne 0x68b90
movb %al, (%r14,%r13,4)
movb %dl, 0x1(%r14,%r13,4)
movb %cl, 0x2(%r14,%r13,4)
movb %dil, 0x3(%r14,%r13,4)
jmp 0x68bf9
leaq (,%r13,2), %rsi
addq %r13, %rsi
movb %al, 0x1(%r14,%rsi,2)
movb %al, (%r14,%rsi,2)
movb %dl, 0x3(%r14,%rsi,2)
movb %dl, 0x2(%r14,%rsi,2)
movb %cl, 0x5(%r14,%rsi,2)
movb %cl, 0x4(%r14,%rsi,2)
jmp 0x68bf9
movb %al, 0x1(%r14,%r13,8)
movb %al, (%r14,%r13,8)
movb %dl, 0x3(%r14,%r13,8)
movb %dl, 0x2(%r14,%r13,8)
movb %cl, 0x5(%r14,%r13,8)
movb %cl, 0x4(%r14,%r13,8)
movb %dil, 0x7(%r14,%r13,8)
movb %dil, 0x6(%r14,%r13,8)
jmp 0x68bf9
movb %al, 0x1(%r14,%r13,2)
movb %al, (%r14,%r13,2)
jmp 0x68bf9
movb %al, 0x1(%r14,%r13,4)
movb %al, (%r14,%r13,4)
movb %dil, 0x3(%r14,%r13,4)
movb %dil, 0x2(%r14,%r13,4)
jmp 0x68bf9
movb $0x8, %cl
subb %dl, %cl
shrl %cl, %esi
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %edx, %ecx
shll %cl, %eax
notl %eax
andl %esi, %eax
movq %r14, %rdi
movq %r13, %rsi
movl %eax, %ecx
callq 0x707c5
incq %r13
cmpq %r15, %r13
jne 0x68a54
xorl %r13d, %r13d
cmpl $0x3, (%r12)
jne 0x68c19
leaq 0x30(%rsp), %rdi
callq 0x6987a
movl %r13d, %eax
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x10(%rsp), %rax
movl (%rax), %eax
xorl %r13d, %r13d
cmpq $0x6, %rax
ja 0x68c08
leaq 0x1f7fb(%rip), %rdx     # 0x88440
movslq (%rdx,%rax,4), %rax
addq %rdx, %rax
jmpq *%rax
cmpq $0x8, %rcx
je 0x6918b
cmpl $0x10, %ecx
jne 0x69271
testq %r15, %r15
je 0x68c08
addq $0x2, %r14
xorl %r13d, %r13d
xorl %eax, %eax
movb (%rbp,%rax,2), %cl
movb %cl, (%r14)
movb %cl, -0x1(%r14)
movb %cl, -0x2(%r14)
incq %rax
addq $0x3, %r14
cmpq %rax, %r15
jne 0x68c6f
jmp 0x68c08
movl $0x52, %r13d
jmp 0x68c08
cmpl $0x8, %ecx
jne 0x68e9a
testq %r15, %r15
je 0x68c08
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
xorl %r13d, %r13d
xorl %ecx, %ecx
movzbl (%rbp,%rcx), %edx
movl (%rax,%rdx,4), %edx
movl %edx, (%r14,%rcx,4)
incq %rcx
cmpq %rcx, %r15
jne 0x68cba
jmp 0x68c08
cmpl $0x8, %ecx
jne 0x68f0c
testq %r15, %r15
je 0x68c08
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
xorl %r13d, %r13d
xorl %ecx, %ecx
movzbl (%rbp,%rcx), %edx
movb 0x2(%rax,%rdx,4), %sil
movb %sil, 0x2(%r14)
movzwl (%rax,%rdx,4), %edx
movw %dx, (%r14)
incq %rcx
addq $0x3, %r14
cmpq %rcx, %r15
jne 0x68cf3
jmp 0x68c08
cmpl $0x8, %ecx
jne 0x68f89
testq %r15, %r15
je 0x68c08
xorl %ecx, %ecx
leaq (%rcx,%rcx,2), %rsi
movb 0x2(%rbp,%rsi), %dil
movb %dil, 0x2(%r14)
movzwl (%rbp,%rsi), %esi
movw %si, (%r14)
movb $-0x1, 0x3(%r14)
incq %rcx
addq $0x4, %r14
cmpq %r15, %rcx
jne 0x68d2e
xorl %r13d, %r13d
movq 0x10(%rsp), %rsi
cmpl $0x0, 0x18(%rsi)
je 0x68c08
movl 0x1c(%rsi), %ecx
imulq %rdx, %rax
negq %rax
movzbl (%r14,%rax,4), %edx
cmpl %edx, %ecx
jne 0x68d96
movzbl 0x1(%r14,%rax,4), %edx
cmpl %edx, 0x20(%rsi)
jne 0x68d96
movzbl 0x2(%r14,%rax,4), %edx
cmpl %edx, 0x24(%rsi)
jne 0x68d96
movb $0x0, 0x3(%r14,%rax,4)
incq %rax
jne 0x68d71
jmp 0x68c08
cmpl $0x8, %ecx
jne 0x69018
testq %r15, %r15
je 0x68c08
leaq (%r15,%r15,2), %rdx
movq %r14, %rdi
movq %rbp, %rsi
jmp 0x68e1c
cmpl $0x8, %ecx
jne 0x6904e
testq %r15, %r15
je 0x68c08
xorl %r13d, %r13d
xorl %eax, %eax
movb (%rbp,%rax,2), %cl
movb %cl, 0x2(%r14,%rax,4)
movb %cl, 0x1(%r14,%rax,4)
movb %cl, (%r14,%rax,4)
movb 0x1(%rbp,%rax,2), %cl
movb %cl, 0x3(%r14,%rax,4)
incq %rax
cmpq %rax, %r15
jne 0x68dd5
jmp 0x68c08
cmpl $0x8, %ecx
jne 0x69084
shlq $0x2, %r15
testq %r15, %r15
je 0x68c08
movq %r14, %rdi
movq %rbp, %rsi
movq %r15, %rdx
callq 0x3a3b0
jmp 0x68c08
cmpl $0x8, %ecx
jne 0x690c2
testq %r15, %r15
je 0x68c08
addq $0x2, %r14
xorl %r13d, %r13d
xorl %eax, %eax
movb (%rbp,%rax,2), %cl
movb %cl, (%r14)
movb %cl, -0x1(%r14)
movb %cl, -0x2(%r14)
incq %rax
addq $0x3, %r14
cmpq %rax, %r15
jne 0x68e41
jmp 0x68c08
cmpl $0x8, %ecx
jne 0x690f4
testq %r15, %r15
je 0x68c08
xorl %r13d, %r13d
xorl %eax, %eax
movb 0x2(%rbp,%rax,4), %cl
movb %cl, 0x2(%r14)
movzwl (%rbp,%rax,4), %ecx
movw %cx, (%r14)
incq %rax
addq $0x3, %r14
cmpq %rax, %r15
jne 0x68e78
jmp 0x68c08
testq %r15, %r15
je 0x68c08
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
xorl %edx, %edx
xorl %esi, %esi
xorl %edi, %edi
testq %rcx, %rcx
je 0x68ef2
movq %rcx, %r8
movq %rsi, %r9
movq %r9, %r10
shrq $0x3, %r10
movzbl (%rbp,%r10), %r10d
movl %r9d, %r11d
notb %r11b
movzbl %r11b, %r11d
andl $0x7, %r11d
xorl %ebx, %ebx
btl %r11d, %r10d
setb %bl
incq %r9
leal (%rbx,%rdi,2), %edi
decq %r8
jne 0x68ebd
addq %rcx, %rsi
shll $0x2, %edi
movl (%rax,%rdi), %edi
movl %edi, (%r14)
incq %rdx
addq $0x4, %r14
xorl %r13d, %r13d
cmpq %r15, %rdx
jne 0x68eb0
jmp 0x68c08
testq %r15, %r15
je 0x68c08
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
xorl %edx, %edx
xorl %esi, %esi
xorl %edi, %edi
testq %rcx, %rcx
je 0x68f64
movq %rcx, %r8
movq %rsi, %r9
movq %r9, %r10
shrq $0x3, %r10
movzbl (%rbp,%r10), %r10d
movl %r9d, %r11d
notb %r11b
movzbl %r11b, %r11d
andl $0x7, %r11d
xorl %ebx, %ebx
btl %r11d, %r10d
setb %bl
incq %r9
leal (%rbx,%rdi,2), %edi
decq %r8
jne 0x68f2f
addq %rcx, %rsi
shll $0x2, %edi
movb 0x2(%rax,%rdi), %r8b
movb %r8b, 0x2(%r14)
movzwl (%rax,%rdi), %edi
movw %di, (%r14)
incq %rdx
addq $0x3, %r14
xorl %r13d, %r13d
cmpq %r15, %rdx
jne 0x68f22
jmp 0x68c08
testq %r15, %r15
je 0x68c08
movq 0x10(%rsp), %rax
movl 0x18(%rax), %eax
addq $0x5, %rbp
xorl %ecx, %ecx
movq 0x10(%rsp), %r10
movzbl -0x5(%rbp), %r8d
movb %r8b, (%r14,%rcx,4)
movzbl -0x3(%rbp), %edi
movb %dil, 0x1(%r14,%rcx,4)
movzbl -0x1(%rbp), %esi
movb %sil, 0x2(%r14,%rcx,4)
movb $-0x1, %dl
testl %eax, %eax
je 0x68fff
shll $0x8, %r8d
movzbl -0x4(%rbp), %r9d
orl %r8d, %r9d
cmpl 0x1c(%r10), %r9d
jne 0x68fff
shll $0x8, %edi
movzbl -0x2(%rbp), %r8d
orl %edi, %r8d
cmpl 0x20(%r10), %r8d
jne 0x68fff
shll $0x8, %esi
movzbl (%rbp), %edx
orl %esi, %edx
movq 0x10(%rsp), %rsi
cmpl 0x24(%rsi), %edx
setne %dl
negb %dl
movb %dl, 0x3(%r14,%rcx,4)
incq %rcx
addq $0x6, %rbp
xorl %r13d, %r13d
cmpq %rcx, %r15
jne 0x68fa5
jmp 0x68c08
testq %r15, %r15
je 0x68c08
xorl %r13d, %r13d
xorl %eax, %eax
movb (%rbp,%rax,2), %cl
movb %cl, (%r14,%rax)
movb 0x2(%rbp,%rax,2), %cl
movb %cl, 0x1(%r14,%rax)
movb 0x4(%rbp,%rax,2), %cl
movb %cl, 0x2(%r14,%rax)
addq $0x3, %rax
decq %r15
jne 0x69026
jmp 0x68c08
testq %r15, %r15
je 0x68c08
xorl %r13d, %r13d
xorl %eax, %eax
movb (%rbp,%rax,4), %cl
movb %cl, 0x2(%r14,%rax,4)
movb %cl, 0x1(%r14,%rax,4)
movb %cl, (%r14,%rax,4)
movb 0x2(%rbp,%rax,4), %cl
movb %cl, 0x3(%r14,%rax,4)
incq %rax
cmpq %rax, %r15
jne 0x6905c
jmp 0x68c08
testq %r15, %r15
je 0x68c08
xorl %r13d, %r13d
xorl %eax, %eax
movb (%rbp,%rax,8), %cl
movb %cl, (%r14,%rax,4)
movb 0x2(%rbp,%rax,8), %cl
movb %cl, 0x1(%r14,%rax,4)
movb 0x4(%rbp,%rax,8), %cl
movb %cl, 0x2(%r14,%rax,4)
movb 0x6(%rbp,%rax,8), %cl
movb %cl, 0x3(%r14,%rax,4)
incq %rax
cmpq %rax, %r15
jne 0x69092
jmp 0x68c08
testq %r15, %r15
je 0x68c08
addq $0x2, %r14
xorl %r13d, %r13d
xorl %eax, %eax
movb (%rbp,%rax,4), %cl
movb %cl, (%r14)
movb %cl, -0x1(%r14)
movb %cl, -0x2(%r14)
incq %rax
addq $0x3, %r14
cmpq %rax, %r15
jne 0x690d4
jmp 0x68c08
testq %r15, %r15
je 0x68c08
xorl %r13d, %r13d
xorl %eax, %eax
movb (%rbp,%rax,8), %cl
movb %cl, (%r14)
movb 0x2(%rbp,%rax,8), %cl
movb %cl, 0x1(%r14)
movb 0x4(%rbp,%rax,8), %cl
movb %cl, 0x2(%r14)
incq %rax
addq $0x3, %r14
cmpq %rax, %r15
jne 0x69102
jmp 0x68c08
testq %r15, %r15
je 0x68c08
xorl %ecx, %ecx
movb (%rbp,%rcx), %sil
movb %sil, 0x2(%r14)
movb %sil, 0x1(%r14)
movb %sil, (%r14)
movb $-0x1, 0x3(%r14)
incq %rcx
addq $0x4, %r14
cmpq %r15, %rcx
jne 0x69135
xorl %r13d, %r13d
movq 0x10(%rsp), %rcx
cmpl $0x0, 0x18(%rcx)
je 0x68c08
movl 0x1c(%rcx), %ecx
imulq %rdx, %rax
negq %rax
movzbl (%r14,%rax,4), %edx
cmpl %edx, %ecx
jne 0x69181
movb $0x0, 0x3(%r14,%rax,4)
incq %rax
jne 0x69172
jmp 0x68c08
testq %r15, %r15
je 0x68c08
addq $0x2, %r14
xorl %r13d, %r13d
xorl %eax, %eax
movb (%rbp,%rax), %cl
movb %cl, (%r14)
movb %cl, -0x1(%r14)
movb %cl, -0x2(%r14)
incq %rax
addq $0x3, %r14
cmpq %rax, %r15
jne 0x6919d
jmp 0x68c08
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
shll %cl, %esi
testq %r15, %r15
je 0x68c08
notl %esi
movq 0x10(%rsp), %rax
movl 0x18(%rax), %edi
xorl %r8d, %r8d
xorl %r9d, %r9d
testq %rcx, %rcx
je 0x69224
movq %r15, %r13
xorl %r10d, %r10d
movq %rcx, %rax
movq %r9, %rdx
movq %rdx, %r11
shrq $0x3, %r11
movzbl (%rbp,%r11), %r11d
movl %edx, %ebx
notb %bl
movzbl %bl, %ebx
andl $0x7, %ebx
xorl %r15d, %r15d
btl %ebx, %r11d
setb %r15b
incq %rdx
leal (%r15,%r10,2), %r10d
decq %rax
jne 0x691ee
addq %rcx, %r9
movq %r13, %r15
jmp 0x69227
xorl %r10d, %r10d
movl %r10d, %eax
shll $0x8, %eax
subl %r10d, %eax
xorl %edx, %edx
divl %esi
movb %al, 0x2(%r14)
movb %al, 0x1(%r14)
movb %al, (%r14)
testl %edi, %edi
je 0x69253
movq 0x10(%rsp), %rax
cmpl 0x1c(%rax), %r10d
setne %al
negb %al
jmp 0x69255
movb $-0x1, %al
movb %al, 0x3(%r14)
incq %r8
addq $0x4, %r14
xorl %r13d, %r13d
cmpq %r15, %r8
jne 0x691dd
jmp 0x68c08
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
shll %cl, %esi
testq %r15, %r15
je 0x68c08
notl %esi
xorl %edi, %edi
xorl %r8d, %r8d
testq %rcx, %rcx
je 0x692d0
xorl %edx, %edx
movq %rcx, %rax
movq %r8, %r9
movq %r9, %r10
shrq $0x3, %r10
movzbl (%rbp,%r10), %r10d
movl %r9d, %r11d
notb %r11b
movzbl %r11b, %r11d
andl $0x7, %r11d
xorl %ebx, %ebx
btl %r11d, %r10d
setb %bl
incq %r9
leal (%rbx,%rdx,2), %edx
decq %rax
jne 0x69295
addq %rcx, %r8
movl %edx, %eax
shll $0x8, %eax
subl %edx, %eax
jmp 0x692d2
xorl %eax, %eax
xorl %r13d, %r13d
xorl %edx, %edx
divl %esi
movb %al, 0x2(%r14)
movb %al, 0x1(%r14)
movb %al, (%r14)
incq %rdi
addq $0x3, %r14
cmpq %r15, %rdi
jne 0x69288
jmp 0x68c08