// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/libraries/libwebp/src/dec/vp8l_dec.c
// Function: ProcessRows
static void ProcessRows(VP8LDecoder* const dec, int row) {
  const uint32_t* const rows = dec->pixels_ + dec->width_ * dec->last_row_;
  const int num_rows = row - dec->last_row_;

  assert(row <= dec->io_->crop_bottom);
  // We can't process more than NUM_ARGB_CACHE_ROWS at a time (that's the size
  // of argb_cache_), but we currently don't need more than that.
  assert(num_rows <= NUM_ARGB_CACHE_ROWS);
  if (num_rows > 0) {    // Emit output.
    VP8Io* const io = dec->io_;
    uint8_t* rows_data = (uint8_t*)dec->argb_cache_;
    const int in_stride = io->width * sizeof(uint32_t);  // in unit of RGBA
    ApplyInverseTransforms(dec, dec->last_row_, num_rows, rows);
    if (!SetCropWindow(io, dec->last_row_, row, &rows_data, in_stride)) {
      // Nothing to output (this time).
    } else {
      const WebPDecBuffer* const output = dec->output_;
      if (WebPIsRGBMode(output->colorspace)) {  // convert to RGBA
        const WebPRGBABuffer* const buf = &output->u.RGBA;
        uint8_t* const rgba =
            buf->rgba + (int64_t)dec->last_out_row_ * buf->stride;
        const int num_rows_out =
#if !defined(WEBP_REDUCE_SIZE)
         io->use_scaling ?
            EmitRescaledRowsRGBA(dec, rows_data, in_stride, io->mb_h,
                                 rgba, buf->stride) :
#endif  // WEBP_REDUCE_SIZE
            EmitRows(output->colorspace, rows_data, in_stride,
                     io->mb_w, io->mb_h, rgba, buf->stride);
        // Update 'last_out_row_'.
        dec->last_out_row_ += num_rows_out;
      } else {                              // convert to YUVA
        dec->last_out_row_ = io->use_scaling ?
            EmitRescaledRowsYUVA(dec, rows_data, in_stride, io->mb_h) :
            EmitRowsYUVA(dec, rows_data, in_stride, io->mb_w, io->mb_h);
      }
      assert(dec->last_out_row_ <= output->height);
    }
  }

  // Update 'last_row_'.
  dec->last_row_ = row;
  assert(dec->last_row_ <= dec->height_);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq 0x8(%rdi), %rbx
cmpl %esi, 0x84(%rbx)
jl 0xce3f7
movl %esi, %r15d
movq %rdi, %r13
movslq 0x8c(%rdi), %rsi
movl %r15d, %edx
subl %esi, %edx
cmpl $0x11, %edx
jge 0xce416
testl %edx, %edx
jle 0xce377
movslq 0x84(%r13), %rax
movq %rsi, %rcx
imulq %rax, %rcx
shlq $0x2, %rcx
addq 0x18(%r13), %rcx
movq 0x20(%r13), %r14
movl (%rbx), %ebp
movq %r13, %rdi
callq 0xce7f6
movl 0x8c(%r13), %ecx
cmpl %r15d, %ecx
jge 0xce454
movslq 0x78(%rbx), %rax
movl 0x7c(%rbx), %edx
cmpl %eax, %edx
jle 0xce473
movl %edx, %r9d
movl 0x80(%rbx), %edx
movl 0x84(%rbx), %r12d
cmpl %r15d, %r12d
cmovgel %r15d, %r12d
movl %edx, %edi
subl %ecx, %edi
movl %ecx, %esi
cmovgl %edx, %esi
subl %esi, %r12d
jle 0xce377
shll $0x2, %ebp
movl %ebp, (%rsp)
imull %ebp, %edi
xorl %r8d, %r8d
cmpl %ecx, %edx
cmovgl %edi, %r8d
movslq %r8d, %rcx
addq %rcx, %r14
leaq (%r14,%rax,4), %rcx
movq %rcx, 0x10(%rsp)
subl %edx, %esi
movl %esi, 0x8(%rbx)
subl %eax, %r9d
movl %r9d, 0x28(%rsp)
movl %r9d, 0xc(%rbx)
movl %r12d, 0x10(%rbx)
movq 0x10(%r13), %rax
movl (%rax), %ecx
movl %ecx, 0xc(%rsp)
cmpl $0xa, %ecx
movq %r13, 0x20(%rsp)
movq %rax, 0x38(%rsp)
jbe 0xce187
cmpl $0x0, 0x88(%rbx)
movl 0x94(%r13), %ebp
je 0xce2dd
movl %r12d, 0x8(%rsp)
movl %r15d, 0x1c(%rsp)
xorl %ebx, %ebx
movl 0x8(%rsp), %r15d
subl %ebx, %r15d
jle 0xce2cc
movl %ebx, 0xc(%rsp)
movq 0x188(%r13), %rdi
movl %r15d, %esi
callq 0xc7ab5
movl %eax, %r14d
movq 0x188(%r13), %rax
movl 0x2c(%rax), %edx
movq %r13, %r12
movq 0x10(%rsp), %r13
movq %r13, %rdi
movl (%rsp), %ebx
movl %ebx, %esi
movl %r14d, %ecx
xorl %r8d, %r8d
callq 0xcea42
movq 0x188(%r12), %rdi
movl %r15d, %esi
movl %ebx, %r15d
movq %r13, %rdx
movl %ebx, %ecx
callq 0xc7ac8
cmpl %r14d, %eax
jne 0xce39a
movl 0xc(%rsp), %ebx
addl %r14d, %ebx
imull %r15d, %r14d
movslq %r14d, %rax
addq %rax, %r13
movq %r13, 0x10(%rsp)
movq 0x188(%r12), %r14
movq 0x48(%r14), %r15
movl 0x34(%r14), %r13d
leaq 0xa327b(%rip), %r12     # 0x1713b8
movl 0x40(%r14), %eax
cmpl 0x38(%r14), %eax
jge 0xce17d
cmpl $0x0, 0x18(%r14)
jg 0xce17d
movq %r14, %rdi
callq 0xd345e
movq %r15, %rdi
movl %r13d, %esi
pushq $0x1
popq %rdx
callq *(%r12)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rcx
movq %r15, %rdi
movl %r13d, %esi
movl %ebp, %edx
callq 0xce88a
incl %ebp
jmp 0xce13d
movq 0x20(%rsp), %r13
jmp 0xce0a6
movslq 0x94(%r13), %rcx
movslq 0x18(%rax), %r13
imulq %r13, %rcx
addq 0x10(%rax), %rcx
movq %rcx, 0x30(%rsp)
cmpl $0x0, 0x88(%rbx)
je 0xce30c
movq %r13, 0x40(%rsp)
movl %r15d, 0x1c(%rsp)
movslq (%rsp), %rax
movq %rax, 0x28(%rsp)
xorl %ebp, %ebp
xorl %r13d, %r13d
movl %r12d, 0x8(%rsp)
movl %r12d, %r15d
subl %r13d, %r15d
jle 0xce2d6
movq 0x20(%rsp), %rax
movq 0x188(%rax), %rdi
movl %r15d, %esi
callq 0xc7ab5
testl %eax, %eax
jle 0xce3b9
movl %eax, %r12d
cmpl %r15d, %eax
jg 0xce3b9
movl %r13d, %ebx
movq 0x28(%rsp), %rsi
imulq %rsi, %rbx
addq 0x10(%rsp), %rbx
movq 0x20(%rsp), %r14
movq 0x188(%r14), %rax
movl 0x2c(%rax), %edx
movq %rbx, %rdi
movl %r12d, %ecx
xorl %r8d, %r8d
callq 0xcea42
movq 0x188(%r14), %rdi
movl %r15d, %esi
movq %rbx, %rdx
movq 0x28(%rsp), %rcx
callq 0xc7ac8
cmpl %r12d, %eax
jne 0xce3d8
movl %ebp, %r15d
movq 0x40(%rsp), %rax
imulq %rax, %r15
addq 0x30(%rsp), %r15
addl %r12d, %r13d
movl %r13d, (%rsp)
movq %rax, %r13
movq 0x188(%r14), %r12
movq 0x48(%r12), %rbx
movl 0x34(%r12), %r14d
movl 0x40(%r12), %eax
cmpl 0x38(%r12), %eax
jge 0xce2be
cmpl $0x0, 0x18(%r12)
jg 0xce2be
movq %r12, %rdi
callq 0xd345e
movq %rbx, %rdi
movl %r14d, %esi
pushq $0x1
popq %rdx
leaq 0xa3115(%rip), %rax     # 0x1713b8
callq *(%rax)
movq %rbx, %rdi
movl %r14d, %esi
movl 0xc(%rsp), %edx
movq %r15, %rcx
callq 0xd22a0
addq %r13, %r15
incl %ebp
jmp 0xce277
movl 0x8(%rsp), %r12d
movl (%rsp), %r13d
jmp 0xce1c9
movl 0x1c(%rsp), %r15d
jmp 0xce362
movl 0x1c(%rsp), %r15d
jmp 0xce356
movslq (%rsp), %rbx
testl %r12d, %r12d
jle 0xce362
decl %r12d
movq 0x10(%r13), %rcx
movq 0x10(%rsp), %r14
movq %r14, %rdi
movl 0x28(%rsp), %esi
movl %ebp, %edx
callq 0xce88a
addq %rbx, %r14
movq %r14, 0x10(%rsp)
incl %ebp
jmp 0xce2e1
movslq (%rsp), %rax
movq %rax, (%rsp)
movl %r12d, %ebp
testl %ebp, %ebp
jle 0xce353
decl %ebp
movq 0x10(%rsp), %r14
movq %r14, %rdi
movl 0x28(%rsp), %esi
movl 0xc(%rsp), %edx
movl %r15d, %ebx
movq 0x30(%rsp), %r15
movq %r15, %rcx
callq 0xd22a0
addq (%rsp), %r14
movq %r14, 0x10(%rsp)
addq %r13, %r15
movq %r15, 0x30(%rsp)
movl %ebx, %r15d
jmp 0xce317
movl %r12d, %ebp
movq 0x20(%rsp), %r13
addl 0x94(%r13), %ebp
movl %ebp, 0x94(%r13)
movq 0x38(%rsp), %rax
cmpl 0x8(%rax), %ebp
jg 0xce492
movl %r15d, 0x8c(%r13)
cmpl %r15d, 0x88(%r13)
jl 0xce435
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x4be45(%rip), %rdi     # 0x11a1e6
leaq 0x4b271(%rip), %rsi     # 0x119619
leaq 0x4be56(%rip), %rcx     # 0x11a205
movl $0x2cc, %edx            # imm = 0x2CC
callq 0x56770
leaq 0x4bd9a(%rip), %rdi     # 0x11a15a
leaq 0x4b252(%rip), %rsi     # 0x119619
leaq 0x4bdbb(%rip), %rcx     # 0x11a189
movl $0x278, %edx            # imm = 0x278
callq 0x56770
leaq 0x4be07(%rip), %rdi     # 0x11a1e6
leaq 0x4b233(%rip), %rsi     # 0x119619
leaq 0x4bd9c(%rip), %rcx     # 0x11a189
movl $0x27d, %edx            # imm = 0x27D
callq 0x56770
leaq 0x4b759(%rip), %rdi     # 0x119b57
leaq 0x4b214(%rip), %rsi     # 0x119619
leaq 0x4bc51(%rip), %rcx     # 0x11a05d
movl $0x32e, %edx            # imm = 0x32E
callq 0x56770
leaq 0x4bc6a(%rip), %rdi     # 0x11a087
leaq 0x4b1f5(%rip), %rsi     # 0x119619
leaq 0x4bc32(%rip), %rcx     # 0x11a05d
movl $0x331, %edx            # imm = 0x331
callq 0x56770
leaq 0x4bc90(%rip), %rdi     # 0x11a0cc
leaq 0x4b1d6(%rip), %rsi     # 0x119619
leaq 0x4bc13(%rip), %rcx     # 0x11a05d
movl $0x354, %edx            # imm = 0x354
callq 0x56770
leaq 0x4bc90(%rip), %rdi     # 0x11a0eb
leaq 0x4b1b7(%rip), %rsi     # 0x119619
leaq 0x4bc92(%rip), %rcx     # 0x11a0fb
movl $0x2ea, %edx            # imm = 0x2EA
callq 0x56770
leaq 0x4bcc1(%rip), %rdi     # 0x11a13b
leaq 0x4b198(%rip), %rsi     # 0x119619
leaq 0x4bc73(%rip), %rcx     # 0x11a0fb
movl $0x2eb, %edx            # imm = 0x2EB
callq 0x56770
leaq 0x4bc0e(%rip), %rdi     # 0x11a0a7
leaq 0x4b179(%rip), %rsi     # 0x119619
leaq 0x4bbb6(%rip), %rcx     # 0x11a05d
movl $0x34e, %edx            # imm = 0x34E
callq 0x56770