// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x8(%rbp), %rcx
movl 0x84(%rcx), %ecx
movq -0x8(%rbp), %rdx
imull 0x8c(%rdx), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
movl -0xc(%rbp), %eax
movq -0x8(%rbp), %rcx
subl 0x8c(%rcx), %eax
movl %eax, -0x1c(%rbp)
movl -0xc(%rbp), %eax
movq -0x8(%rbp), %rcx
movq 0x8(%rcx), %rcx
cmpl 0x84(%rcx), %eax
jg 0x146def
jmp 0x146e0e
leaq 0x76c56(%rip), %rdi     # 0x1bda4c
leaq 0x766ec(%rip), %rsi     # 0x1bd4e9
movl $0x32e, %edx            # imm = 0x32E
leaq 0x771a9(%rip), %rcx     # 0x1bdfb2
callq 0x598a0
cmpl $0x10, -0x1c(%rbp)
jg 0x146e16
jmp 0x146e35
leaq 0x771bf(%rip), %rdi     # 0x1bdfdc
leaq 0x766c5(%rip), %rsi     # 0x1bd4e9
movl $0x331, %edx            # imm = 0x331
leaq 0x77182(%rip), %rcx     # 0x1bdfb2
callq 0x598a0
cmpl $0x0, -0x1c(%rbp)
jle 0x14700a
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rax
movslq (%rax), %rax
shlq $0x2, %rax
movl %eax, -0x34(%rbp)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movl 0x8c(%rax), %esi
movl -0x1c(%rbp), %edx
movq -0x18(%rbp), %rcx
callq 0x148870
movq -0x28(%rbp), %rdi
movq -0x8(%rbp), %rax
movl 0x8c(%rax), %esi
movl -0xc(%rbp), %edx
movl -0x34(%rbp), %r8d
leaq -0x30(%rbp), %rcx
callq 0x148930
cmpl $0x0, %eax
jne 0x146ea7
jmp 0x147008
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movl (%rax), %edi
callq 0x146d70
cmpl $0x0, %eax
je 0x146f7a
movq -0x40(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rcx
movslq 0x94(%rcx), %rcx
movq -0x48(%rbp), %rdx
movslq 0x8(%rdx), %rdx
imulq %rdx, %rcx
addq %rcx, %rax
movq %rax, -0x50(%rbp)
movq -0x28(%rbp), %rax
cmpl $0x0, 0x88(%rax)
je 0x146f2d
movq -0x8(%rbp), %rdi
movq -0x30(%rbp), %rsi
movl -0x34(%rbp), %edx
movq -0x28(%rbp), %rax
movl 0x10(%rax), %ecx
movq -0x50(%rbp), %r8
movq -0x48(%rbp), %rax
movl 0x8(%rax), %r9d
callq 0x148a70
movl %eax, -0x58(%rbp)
jmp 0x146f5f
movq -0x40(%rbp), %rax
movl (%rax), %edi
movq -0x30(%rbp), %rsi
movl -0x34(%rbp), %edx
movq -0x28(%rbp), %rax
movl 0xc(%rax), %ecx
movq -0x28(%rbp), %rax
movl 0x10(%rax), %r8d
movq -0x50(%rbp), %r9
movq -0x48(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, (%rsp)
callq 0x148bd0
movl %eax, -0x58(%rbp)
movl -0x58(%rbp), %eax
movl %eax, -0x54(%rbp)
movl -0x54(%rbp), %ecx
movq -0x8(%rbp), %rax
addl 0x94(%rax), %ecx
movl %ecx, 0x94(%rax)
jmp 0x146fd2
movq -0x28(%rbp), %rax
cmpl $0x0, 0x88(%rax)
je 0x146fa3
movq -0x8(%rbp), %rdi
movq -0x30(%rbp), %rsi
movl -0x34(%rbp), %edx
movq -0x28(%rbp), %rax
movl 0x10(%rax), %ecx
callq 0x148c50
movl %eax, -0x5c(%rbp)
jmp 0x146fc5
movq -0x8(%rbp), %rdi
movq -0x30(%rbp), %rsi
movl -0x34(%rbp), %edx
movq -0x28(%rbp), %rax
movl 0xc(%rax), %ecx
movq -0x28(%rbp), %rax
movl 0x10(%rax), %r8d
callq 0x148d50
movl %eax, -0x5c(%rbp)
movl -0x5c(%rbp), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x94(%rax)
movq -0x8(%rbp), %rax
movl 0x94(%rax), %eax
movq -0x40(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jg 0x146fe7
jmp 0x147006
leaq 0x7700e(%rip), %rdi     # 0x1bdffc
leaq 0x764f4(%rip), %rsi     # 0x1bd4e9
movl $0x34e, %edx            # imm = 0x34E
leaq 0x76fb1(%rip), %rcx     # 0x1bdfb2
callq 0x598a0
jmp 0x147008
jmp 0x14700a
movl -0xc(%rbp), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x8c(%rax)
movq -0x8(%rbp), %rax
movl 0x8c(%rax), %eax
movq -0x8(%rbp), %rcx
cmpl 0x88(%rcx), %eax
jg 0x14702f
jmp 0x14704e
leaq 0x76feb(%rip), %rdi     # 0x1be021
leaq 0x764ac(%rip), %rsi     # 0x1bd4e9
movl $0x354, %edx            # imm = 0x354
leaq 0x76f69(%rip), %rcx     # 0x1bdfb2
callq 0x598a0
addq $0x70, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)