// File: /workspace/github_cpp_makefile_star2_O2/lvandeve[P]lodepng/lodepng.cpp
// Function: unfilter(unsigned char*, unsigned char const*, unsigned int, unsigned int, unsigned int)
static unsigned unfilter(unsigned char* out, const unsigned char* in, unsigned w, unsigned h, unsigned bpp) {
  /*
  For PNG filter method 0
  this function unfilters a single image (e.g. without interlacing this is called once, with Adam7 seven times)
  out must have enough bytes allocated already, in must have the scanlines + 1 filtertype byte per scanline
  w and h are image dimensions or dimensions of reduced image, bpp is bits per pixel
  in and out are allowed to be the same memory address (but aren't the same size since in has the extra filter bytes)
  */

  unsigned y;
  unsigned char* prevline = 0;

  /*bytewidth is used for filtering, is 1 when bpp < 8, number of bytes per pixel otherwise*/
  size_t bytewidth = (bpp + 7u) / 8u;
  /*the width of a scanline in bytes, not including the filter type*/
  size_t linebytes = lodepng_get_raw_size_idat(w, 1, bpp) - 1u;

  for(y = 0; y < h; ++y) {
    size_t outindex = linebytes * y;
    size_t inindex = (1 + linebytes) * y; /*the extra filterbyte added to each row*/
    unsigned char filterType = in[inindex];

    CERROR_TRY_RETURN(unfilterScanline(&out[outindex], &in[inindex + 1], prevline, bytewidth, filterType, linebytes));

    prevline = &out[outindex];
  }

  return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xf8, %rsp
movq %rdi, %r12
leal 0x7(%r8), %eax
movl %eax, 0x6c(%rsp)
movl %eax, %r15d
shrl $0x3, %r15d
movl %edx, %eax
shrl $0x3, %eax
movl %r8d, %edi
imulq %rax, %rdi
andl $0x7, %edx
imull %r8d, %edx
addl $0x7, %edx
shrl $0x3, %edx
leaq (%rdi,%rdx), %r10
leaq (%rdi,%rdx), %rax
incq %rax
movl %ecx, %ecx
movq %rcx, 0xd0(%rsp)
leaq 0x1(%rsi), %r13
movq %r15, %rcx
negq %rcx
movq %rcx, 0xa0(%rsp)
movq %r12, %rcx
subq %r15, %rcx
movq %rcx, 0x98(%rsp)
leaq (%r12,%r15), %rcx
movq %rcx, 0x78(%rsp)
leaq (%rsi,%r15), %rcx
incq %rcx
movq %rcx, 0x70(%rsp)
movq %r10, %rcx
subq %r15, %rcx
movq %rcx, 0xf0(%rsp)
leaq 0x3(%rsi), %rdi
movq %r15, %r11
subq %r10, %r11
movq %rsi, 0xc8(%rsp)
leaq 0x4(%rsi), %r8
movq %r12, 0xc0(%rsp)
xorl %edx, %edx
xorl %r14d, %r14d
movq %r15, 0xb8(%rsp)
movq %r10, 0x50(%rsp)
movq %rax, 0xb0(%rsp)
movq %r11, 0x48(%rsp)
cmpq 0xd0(%rsp), %rdx
je 0xdb45
imulq %rdx, %rax
movq 0xc8(%rsp), %rcx
movzbl (%rcx,%rax), %eax
cmpq $0x4, %rax
ja 0xdb59
leaq 0x4f15c(%rip), %rcx     # 0x5c1d8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
movq %rdi, 0xe8(%rsp)
movq %r8, 0xe0(%rsp)
movq %rdx, 0xd8(%rsp)
jmpq *%rax
xorl %eax, %eax
cmpq %rax, %r10
je 0xd145
movb (%r13,%rax), %cl
movb %cl, (%r12,%rax)
incq %rax
jmp 0xd09f
testq %r14, %r14
je 0xd2a5
leal -0x1(%r15), %eax
cmpl $0x7, %eax
ja 0xd701
leaq 0x4f119(%rip), %rcx     # 0x5c1ec
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
xorl %ebx, %ebx
xorl %ecx, %ecx
xorl %eax, %eax
cmpq %rbx, %r10
je 0xd6f9
movb (%r14,%rbx), %bpl
movb (%r13,%rbx), %r15b
movzbl %bpl, %esi
movzbl %al, %edi
movzbl %cl, %edx
callq 0xdd04
movq 0x50(%rsp), %r10
addb %r15b, %al
movb %al, (%r12,%rbx)
incq %rbx
movl %ebp, %ecx
jmp 0xd0e2
xorl %eax, %eax
testq %r14, %r14
je 0xd140
cmpq %rax, %r10
je 0xd145
movb (%r14,%rax), %cl
addb (%r13,%rax), %cl
movb %cl, (%r12,%rax)
incq %rax
jmp 0xd11d
movb (%r13,%rax), %cl
movb %cl, (%r12,%rax)
incq %rax
cmpq %rax, %r10
jne 0xd134
movq %r10, %r14
movq 0xd8(%rsp), %rdx
imulq %rdx, %r14
addq 0xc0(%rsp), %r14
incq %rdx
addq %r10, %r12
movq 0xb0(%rsp), %rax
addq %rax, %r13
addq %r10, 0x98(%rsp)
addq %r10, 0x78(%rsp)
addq %rax, 0x70(%rsp)
movq 0xe8(%rsp), %rdi
addq %rax, %rdi
movq 0xe0(%rsp), %r8
addq %rax, %r8
movq 0xb8(%rsp), %r15
jmp 0xd04d
xorl %eax, %eax
testq %r14, %r14
je 0xd1d2
cmpq %rax, %r15
je 0xd23d
movb (%r14,%rax), %cl
shrb %cl
addb (%r13,%rax), %cl
movb %cl, (%r12,%rax)
incq %rax
jmp 0xd1a9
movb (%r13,%rax), %cl
movb %cl, (%r12,%rax)
incq %rax
cmpq %rax, %r15
jne 0xd1c6
leaq (%r12,%r15), %rax
leaq (%r15,%r13), %rcx
xorl %edx, %edx
movq %r11, %rsi
addq %rdx, %rsi
je 0xd145
movb (%r12,%rdx), %sil
shrb %sil
addb (%rcx,%rdx), %sil
movb %sil, (%rax,%rdx)
incq %rdx
jmp 0xd1e1
xorl %eax, %eax
cmpq %rax, %r15
je 0xd216
movb (%r13,%rax), %cl
movb %cl, (%r12,%rax)
incq %rax
jmp 0xd203
leaq (%r12,%r15), %rax
leaq (%r15,%r13), %rcx
xorl %edx, %edx
movq %r11, %rsi
addq %rdx, %rsi
je 0xd145
movb (%r12,%rdx), %sil
addb (%rcx,%rdx), %sil
movb %sil, (%rax,%rdx)
incq %rdx
jmp 0xd220
cmpl $0x20, 0x6c(%rsp)
jb 0xd2e3
leaq (%r14,%r15), %rax
xorl %ecx, %ecx
leaq (%r15,%rcx), %rdx
addq $0x3, %rdx
cmpq %r10, %rdx
jae 0xd34b
movq 0x70(%rsp), %rdx
movd (%rdx,%rcx), %xmm0
movd (%r12,%rcx), %xmm1
movd (%rax,%rcx), %xmm2
movdqa %xmm2, %xmm3
pand %xmm1, %xmm3
paddb %xmm0, %xmm3
pxor %xmm1, %xmm2
psrlw $0x1, %xmm2
pand 0x4edaf(%rip), %xmm2    # 0x5c040
paddb %xmm3, %xmm2
movq 0x78(%rsp), %rdx
movd %xmm2, (%rdx,%rcx)
addq $0x4, %rcx
jmp 0xd24e
xorl %eax, %eax
cmpq %rax, %r15
je 0xd2ba
movb (%r13,%rax), %cl
movb %cl, (%r12,%rax)
incq %rax
jmp 0xd2a7
xorl %eax, %eax
cmpq %rax, 0xf0(%rsp)
je 0xd145
movb (%r12,%rax), %cl
movq 0x70(%rsp), %rdx
addb (%rdx,%rax), %cl
movq 0x78(%rsp), %rdx
movb %cl, (%rdx,%rax)
incq %rax
jmp 0xd2bc
cmpl $0x3, %r15d
jne 0xd354
pushq $0x3
popq %rax
leaq 0x2(%rax), %rcx
cmpq %r10, %rcx
jae 0xd3a6
movzbl -0x3(%r12,%rax), %ecx
movzbl -0x2(%r12,%rax), %edx
movzbl -0x1(%r12,%rax), %esi
movzbl (%r14,%rax), %edi
addl %ecx, %edi
movzbl 0x1(%r14,%rax), %ecx
addl %edx, %ecx
shrl %edi
addb -0x3(%r8,%rax), %dil
movzbl 0x2(%r14,%rax), %edx
shrl %ecx
addb -0x2(%r8,%rax), %cl
addl %esi, %edx
shrl %edx
addb -0x1(%r8,%rax), %dl
movb %dil, (%r12,%rax)
movb %cl, 0x1(%r12,%rax)
movb %dl, 0x2(%r12,%rax)
addq $0x3, %rax
jmp 0xd2ec
leaq (%r15,%rcx), %rax
jmp 0xdb09
cmpl $0x10, 0x6c(%rsp)
jb 0xdafe
pushq $0x2
popq %rax
leaq 0x1(%rax), %rcx
cmpq %r10, %rcx
jae 0xdb05
movzbl -0x2(%r12,%rax), %ecx
movzbl -0x1(%r12,%rax), %edx
movzbl (%r14,%rax), %esi
addl %ecx, %esi
movzbl 0x1(%r14,%rax), %ecx
shrl %esi
addb -0x2(%rdi,%rax), %sil
addl %edx, %ecx
shrl %ecx
addb -0x1(%rdi,%rax), %cl
movb %sil, (%r12,%rax)
movb %cl, 0x1(%r12,%rax)
addq $0x2, %rax
jmp 0xd362
leaq -0x3(%rax), %rcx
jmp 0xdb09
xorl %edx, %edx
xorl %ebp, %ebp
xorl %edi, %edi
movq $0x0, 0x10(%rsp)
xorl %esi, %esi
xorl %eax, %eax
xorl %r15d, %r15d
leaq 0x2(%r15), %rcx
cmpq %r10, %rcx
jae 0xdaad
movq %rdi, 0x38(%rsp)
movb (%r14,%r15), %dil
movb %dil, 0x4(%rsp)
movb 0x1(%r14,%r15), %bl
movb %bl, 0x8(%rsp)
movb 0x2(%r14,%r15), %cl
movb %cl, (%rsp)
movb (%r13,%r15), %cl
movb %cl, 0xc(%rsp)
movq %rsi, 0x40(%rsp)
movzbl %dil, %esi
movzbl %bpl, %edi
movq %rax, 0x28(%rsp)
movzbl %dl, %edx
callq 0xdd04
movl %eax, %ebp
addb 0xc(%rsp), %bpl
movb 0x1(%r13,%r15), %al
movb %al, 0xc(%rsp)
movzbl %bl, %esi
movzbl 0x10(%rsp), %edi
movzbl 0x38(%rsp), %edx
callq 0xdd04
movl %eax, %ebx
addb 0xc(%rsp), %bl
movb 0x2(%r13,%r15), %al
movb %al, 0x10(%rsp)
movzbl (%rsp), %esi
movzbl 0x28(%rsp), %edi
movzbl 0x40(%rsp), %edx
callq 0xdd04
movq 0x50(%rsp), %r10
addb 0x10(%rsp), %al
movb %bpl, (%r12,%r15)
movq %rbx, 0x10(%rsp)
movb %bl, 0x1(%r12,%r15)
movb %al, 0x2(%r12,%r15)
addq $0x3, %r15
movb 0x4(%rsp), %cl
movl %ecx, %edx
movb 0x8(%rsp), %cl
movl %ecx, %edi
movb (%rsp), %cl
movl %ecx, %esi
jmp 0xd3c5
xorl %eax, %eax
pushq $0x7
popq %r15
xorl %esi, %esi
movl $0x0, 0x20(%rsp)
xorl %edi, %edi
movl $0x0, 0x1c(%rsp)
xorl %r8d, %r8d
movl $0x0, (%rsp)
xorl %r9d, %r9d
movl $0x0, 0x10(%rsp)
xorl %r11d, %r11d
movl $0x0, 0x4(%rsp)
xorl %ebx, %ebx
movl $0x0, 0x8(%rsp)
xorl %ebp, %ebp
xorl %edx, %edx
xorl %ecx, %ecx
cmpq %r10, %r15
jae 0xd6f0
movl %r8d, 0x90(%rsp)
movb -0x7(%r14,%r15), %r8b
movb %r8b, 0x68(%rsp)
movl %ebx, 0x88(%rsp)
movb -0x6(%r14,%r15), %bl
movb %bl, 0x34(%rsp)
movl %r9d, 0x8c(%rsp)
movb -0x5(%r14,%r15), %r9b
movb %r9b, 0x40(%rsp)
movb -0x4(%r14,%r15), %r9b
movb %r9b, 0x28(%rsp)
movb -0x3(%r14,%r15), %r9b
movb %r9b, 0x38(%rsp)
movb -0x2(%r14,%r15), %r9b
movb %r9b, 0xc(%rsp)
movb -0x1(%r14,%r15), %r9b
movb %r9b, 0x24(%rsp)
movb (%r14,%r15), %r9b
movb %r9b, 0x30(%rsp)
movl %ebp, 0x80(%rsp)
movb -0x7(%r13,%r15), %bpl
movl %esi, 0x64(%rsp)
movzbl %r8b, %esi
movl %edi, 0x94(%rsp)
movzbl %dl, %edi
movzbl %cl, %edx
movl %eax, 0x5c(%rsp)
movl %r11d, 0x84(%rsp)
callq 0xdd04
addb %bpl, %al
movl %eax, 0x60(%rsp)
movb -0x6(%r13,%r15), %bpl
movzbl %bl, %esi
movzbl 0x8(%rsp), %edi
movzbl 0x80(%rsp), %edx
callq 0xdd04
addb %bpl, %al
movl %eax, 0x8(%rsp)
movb -0x5(%r13,%r15), %bpl
movzbl 0x40(%rsp), %esi
movzbl 0x4(%rsp), %edi
movzbl 0x88(%rsp), %edx
callq 0xdd04
addb %bpl, %al
movl %eax, 0x4(%rsp)
movb -0x4(%r13,%r15), %bpl
movzbl 0x28(%rsp), %esi
movzbl 0x10(%rsp), %edi
movzbl 0x84(%rsp), %edx
callq 0xdd04
addb %bpl, %al
movl %eax, 0x10(%rsp)
movb -0x3(%r13,%r15), %bpl
movzbl 0x38(%rsp), %esi
movzbl (%rsp), %edi
movzbl 0x8c(%rsp), %edx
callq 0xdd04
addb %bpl, %al
movl %eax, (%rsp)
movb -0x2(%r13,%r15), %bl
movzbl 0xc(%rsp), %esi
movzbl 0x1c(%rsp), %edi
movzbl 0x90(%rsp), %edx
callq 0xdd04
movl %eax, %ebp
addb %bl, %bpl
movb -0x1(%r13,%r15), %al
movb %al, 0x1c(%rsp)
movzbl 0x24(%rsp), %esi
movzbl 0x20(%rsp), %edi
movzbl 0x94(%rsp), %edx
callq 0xdd04
movl %eax, %ebx
addb 0x1c(%rsp), %bl
movb (%r13,%r15), %al
movb %al, 0x20(%rsp)
movzbl 0x30(%rsp), %esi
movzbl 0x5c(%rsp), %edi
movzbl 0x64(%rsp), %edx
callq 0xdd04
movl 0x60(%rsp), %edx
movq 0x50(%rsp), %r10
addb 0x20(%rsp), %al
movb %dl, -0x7(%r12,%r15)
movl 0x8(%rsp), %ecx
movb %cl, -0x6(%r12,%r15)
movl 0x4(%rsp), %ecx
movb %cl, -0x5(%r12,%r15)
movl 0x10(%rsp), %ecx
movb %cl, -0x4(%r12,%r15)
movl (%rsp), %ecx
movb %cl, -0x3(%r12,%r15)
movl %ebp, 0x1c(%rsp)
movb %bpl, -0x2(%r12,%r15)
movl %ebx, 0x20(%rsp)
movb %bl, -0x1(%r12,%r15)
movb %al, (%r12,%r15)
addq $0x8, %r15
movb 0x30(%rsp), %cl
movl %ecx, %esi
movb 0x24(%rsp), %cl
movl %ecx, %edi
movb 0xc(%rsp), %cl
movl %ecx, %r8d
movb 0x38(%rsp), %cl
movl %ecx, %r9d
movb 0x28(%rsp), %cl
movl %ecx, %r11d
movb 0x40(%rsp), %cl
movl %ecx, %ebx
movb 0x34(%rsp), %cl
movl %ecx, %ebp
movb 0x68(%rsp), %cl
jmp 0xd4d8
addq $-0x7, %r15
jmp 0xdaad
movq %r10, %r15
jmp 0xdaad
xorl %eax, %eax
cmpq %rax, %r15
je 0xdab2
movb (%r14,%rax), %cl
addb (%r13,%rax), %cl
movb %cl, (%r12,%rax)
incq %rax
jmp 0xd703
xorl %eax, %eax
pushq $0x1
popq %r15
xorl %ebx, %ebx
xorl %ecx, %ecx
xorl %ebp, %ebp
cmpq %r10, %r15
jae 0xd79f
movb -0x1(%r14,%r15), %sil
movb %sil, 0x10(%rsp)
movb (%r14,%r15), %dl
movb %dl, (%rsp)
movb -0x1(%r13,%r15), %dl
movb %dl, 0x4(%rsp)
movzbl %sil, %esi
movzbl %bl, %edi
movzbl %al, %edx
movl %ecx, 0x8(%rsp)
callq 0xdd04
movl %eax, %ebx
addb 0x4(%rsp), %bl
movb (%r13,%r15), %al
movb %al, 0x4(%rsp)
movzbl (%rsp), %esi
movzbl %bpl, %edi
movzbl 0x8(%rsp), %edx
callq 0xdd04
movq 0x50(%rsp), %r10
movl %eax, %ebp
addb 0x4(%rsp), %bpl
movb %bl, -0x1(%r12,%r15)
movb %bpl, (%r12,%r15)
addq $0x2, %r15
movb 0x10(%rsp), %al
movb (%rsp), %cl
jmp 0xd72a
decq %r15
jmp 0xdaad
xorl %edx, %edx
pushq $0x3
popq %r15
xorl %ecx, %ecx
xorl %r8d, %r8d
movl $0x0, 0x10(%rsp)
xorl %edi, %edi
movl $0x0, 0x4(%rsp)
xorl %esi, %esi
xorl %eax, %eax
cmpq %r10, %r15
jae 0xd8d8
movl %r8d, 0x20(%rsp)
movb -0x3(%r14,%r15), %r8b
movb %r8b, 0x8(%rsp)
movb -0x2(%r14,%r15), %bl
movb %bl, 0x40(%rsp)
movb -0x1(%r14,%r15), %bpl
movb %bpl, 0xc(%rsp)
movl %edi, 0x30(%rsp)
movb (%r14,%r15), %dil
movb %dil, (%rsp)
movb -0x3(%r13,%r15), %dil
movb %dil, 0x24(%rsp)
movl %esi, 0x28(%rsp)
movzbl %r8b, %esi
movzbl %cl, %edi
movl %eax, 0x38(%rsp)
movzbl %dl, %edx
callq 0xdd04
addb 0x24(%rsp), %al
movl %eax, 0x24(%rsp)
movb -0x2(%r13,%r15), %al
movb %al, 0x1c(%rsp)
movzbl %bl, %esi
movzbl 0x10(%rsp), %edi
movzbl 0x20(%rsp), %edx
callq 0xdd04
movl %eax, %ebx
addb 0x1c(%rsp), %bl
movb -0x1(%r13,%r15), %al
movb %al, 0x10(%rsp)
movzbl %bpl, %esi
movzbl 0x4(%rsp), %edi
movzbl 0x30(%rsp), %edx
callq 0xdd04
movq %r13, %rbp
movl %eax, %r13d
addb 0x10(%rsp), %r13b
movb (%rbp,%r15), %al
movb %al, 0x10(%rsp)
movzbl (%rsp), %esi
movzbl 0x38(%rsp), %edi
movzbl 0x28(%rsp), %edx
callq 0xdd04
movl 0x24(%rsp), %ecx
movq 0x50(%rsp), %r10
addb 0x10(%rsp), %al
movb %cl, -0x3(%r12,%r15)
movl %ebx, 0x10(%rsp)
movb %bl, -0x2(%r12,%r15)
movl %r13d, 0x4(%rsp)
movb %r13b, -0x1(%r12,%r15)
movq %rbp, %r13
movb %al, (%r12,%r15)
addq $0x4, %r15
movb 0x8(%rsp), %dl
movb 0x40(%rsp), %sil
movl %esi, %r8d
movb 0xc(%rsp), %sil
movl %esi, %edi
movb (%rsp), %sil
jmp 0xd7c8
addq $-0x3, %r15
jmp 0xdaad
movl $0x0, 0x28(%rsp)
pushq $0x5
popq %r15
xorl %r9d, %r9d
xorl %r8d, %r8d
movl $0x0, (%rsp)
movl $0x0, 0x38(%rsp)
xorl %ebp, %ebp
xorl %edi, %edi
xorl %ecx, %ecx
movl $0x0, 0xc(%rsp)
xorl %edx, %edx
xorl %esi, %esi
xorl %eax, %eax
movq %r14, 0xa8(%rsp)
cmpq %r10, %r15
jae 0xdaa9
movl %edi, 0x68(%rsp)
movb -0x5(%r14,%r15), %dil
movb %dil, 0x24(%rsp)
movb -0x4(%r14,%r15), %bl
movb %bl, 0x30(%rsp)
movl %r8d, 0x64(%rsp)
movb -0x3(%r14,%r15), %r8b
movb %r8b, 0x8(%rsp)
movb -0x2(%r14,%r15), %r8b
movb %r8b, 0x40(%rsp)
movb -0x1(%r14,%r15), %r8b
movb %r8b, 0x4(%rsp)
movb (%r14,%r15), %r8b
movb %r8b, 0x10(%rsp)
movb -0x5(%r13,%r15), %r8b
movb %r8b, 0x34(%rsp)
movl %esi, 0x20(%rsp)
movzbl %dil, %esi
movzbl %cl, %edi
movl %eax, 0x1c(%rsp)
movzbl %dl, %edx
movl %r9d, 0x60(%rsp)
callq 0xdd04
addb 0x34(%rsp), %al
movl %eax, 0x34(%rsp)
movb -0x4(%r13,%r15), %al
movb %al, 0x5c(%rsp)
movzbl %bl, %esi
movzbl (%rsp), %edi
movzbl %bpl, %edx
callq 0xdd04
addb 0x5c(%rsp), %al
movl %eax, (%rsp)
movb -0x3(%r13,%r15), %bl
movzbl 0x8(%rsp), %esi
movzbl 0x28(%rsp), %edi
movzbl 0x60(%rsp), %edx
callq 0xdd04
movl %eax, %ebp
addb %bl, %bpl
movb -0x2(%r13,%r15), %al
movb %al, 0x28(%rsp)
movzbl 0x40(%rsp), %esi
movzbl 0x38(%rsp), %edi
movzbl 0x64(%rsp), %edx
callq 0xdd04
movl %eax, %ebx
addb 0x28(%rsp), %bl
movb -0x1(%r13,%r15), %al
movb %al, 0x28(%rsp)
movzbl 0x4(%rsp), %esi
movzbl 0xc(%rsp), %edi
movzbl 0x68(%rsp), %edx
callq 0xdd04
movl %eax, %r14d
addb 0x28(%rsp), %r14b
movb (%r13,%r15), %al
movb %al, 0x28(%rsp)
movzbl 0x10(%rsp), %esi
movzbl 0x1c(%rsp), %edi
movzbl 0x20(%rsp), %edx
callq 0xdd04
movl 0x34(%rsp), %ecx
movq 0x50(%rsp), %r10
addb 0x28(%rsp), %al
movb %cl, -0x5(%r12,%r15)
movl (%rsp), %edx
movb %dl, -0x4(%r12,%r15)
movl %ebp, 0x28(%rsp)
movb %bpl, -0x3(%r12,%r15)
movl %ebx, 0x38(%rsp)
movb %bl, -0x2(%r12,%r15)
movl %r14d, 0xc(%rsp)
movb %r14b, -0x1(%r12,%r15)
movq 0xa8(%rsp), %r14
movb %al, (%r12,%r15)
addq $0x6, %r15
movb 0x8(%rsp), %dl
movl %edx, %r9d
movb 0x40(%rsp), %dl
movl %edx, %r8d
movb 0x30(%rsp), %dl
movl %edx, %ebp
movb 0x4(%rsp), %dl
movl %edx, %edi
movb 0x24(%rsp), %dl
movb 0x10(%rsp), %sil
jmp 0xd91e
addq $-0x5, %r15
movq 0x48(%rsp), %r11
movq 0xa0(%rsp), %rax
leaq (%r14,%rax), %rbx
cmpq %r15, %r10
je 0xd145
movb (%r13,%r15), %bpl
movq 0x98(%rsp), %rax
movzbl (%rax,%r15), %edi
movzbl (%r14,%r15), %esi
movzbl (%rbx,%r15), %edx
callq 0xdd04
movq 0x48(%rsp), %r11
movq 0x50(%rsp), %r10
addb %bpl, %al
movb %al, (%r12,%r15)
incq %r15
jmp 0xdabe
xorl %ecx, %ecx
movq %r15, %rax
jmp 0xdb09
leaq -0x2(%rax), %rcx
addq %r12, %rcx
leaq (%r12,%rax), %rdx
addq %rax, %r14
leaq (%rax,%r13), %rsi
movq %r10, %rdi
subq %rax, %rdi
xorl %eax, %eax
cmpq %rax, %rdi
je 0xd145
movzbl (%rcx,%rax), %r8d
movzbl (%r14,%rax), %r9d
addl %r8d, %r9d
shrl %r9d
addb (%rsi,%rax), %r9b
movb %r9b, (%rdx,%rax)
incq %rax
jmp 0xdb1f
xorl %eax, %eax
addq $0xf8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x24
popq %rax
jmp 0xdb47