// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/libraries/libwebp/src/dec/io_dec.c
// Function: ExportRGB
static int ExportRGB(WebPDecParams* const p, int y_pos) {
  const WebPYUV444Converter convert =
      WebPYUV444Converters[p->output->colorspace];
  const WebPRGBABuffer* const buf = &p->output->u.RGBA;
  uint8_t* dst = buf->rgba + (size_t)y_pos * buf->stride;
  int num_lines_out = 0;
  // For RGB rescaling, because of the YUV420, current scan position
  // U/V can be +1/-1 line from the Y one.  Hence the double test.
  while (WebPRescalerHasPendingOutput(p->scaler_y) &&
         WebPRescalerHasPendingOutput(p->scaler_u)) {
    assert(y_pos + num_lines_out < p->output->height);
    assert(p->scaler_u->y_accum == p->scaler_v->y_accum);
    WebPRescalerExportRow(p->scaler_y);
    WebPRescalerExportRow(p->scaler_u);
    WebPRescalerExportRow(p->scaler_v);
    convert(p->scaler_y->dst, p->scaler_u->dst, p->scaler_v->dst,
            dst, p->scaler_y->dst_width);
    dst += buf->stride;
    ++num_lines_out;
  }
  return num_lines_out;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movl (%rax), %eax
movl %eax, %ecx
leaq 0xd759f(%rip), %rax     # 0x2192c0
movq (%rax,%rcx,8), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
addq $0x10, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq (%rax), %rax
movslq -0xc(%rbp), %rcx
movq -0x20(%rbp), %rdx
movslq 0x8(%rdx), %rdx
imulq %rdx, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movl $0x0, -0x2c(%rbp)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x141ea0
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x2d(%rbp)
je 0x141d8c
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x141ea0
cmpl $0x0, %eax
setne %al
movb %al, -0x2d(%rbp)
movb -0x2d(%rbp), %al
testb $0x1, %al
jne 0x141d98
jmp 0x141e88
movl -0xc(%rbp), %eax
addl -0x2c(%rbp), %eax
movq -0x8(%rbp), %rcx
movq (%rcx), %rcx
cmpl 0x8(%rcx), %eax
jge 0x141dac
jmp 0x141dcb
leaq 0x7afe2(%rip), %rdi     # 0x1bcd95
leaq 0x7af56(%rip), %rsi     # 0x1bcd10
movl $0x173, %edx            # imm = 0x173
leaq 0x7aff9(%rip), %rcx     # 0x1bcdbf
callq 0x598a0
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movl 0x18(%rax), %eax
movq -0x8(%rbp), %rcx
movq 0x40(%rcx), %rcx
cmpl 0x18(%rcx), %eax
jne 0x141de5
jmp 0x141e04
leaq 0x7affc(%rip), %rdi     # 0x1bcde8
leaq 0x7af1d(%rip), %rsi     # 0x1bcd10
movl $0x174, %edx            # imm = 0x174
leaq 0x7afc0(%rip), %rcx     # 0x1bcdbf
callq 0x598a0
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x1511b0
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x1511b0
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rdi
callq 0x1511b0
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
movq 0x30(%rcx), %rcx
movq 0x48(%rcx), %rdi
movq -0x8(%rbp), %rcx
movq 0x38(%rcx), %rcx
movq 0x48(%rcx), %rsi
movq -0x8(%rbp), %rcx
movq 0x40(%rcx), %rcx
movq 0x48(%rcx), %rdx
movq -0x28(%rbp), %rcx
movq -0x8(%rbp), %r8
movq 0x30(%r8), %r8
movl 0x34(%r8), %r8d
callq *%rax
movq -0x20(%rbp), %rax
movl 0x8(%rax), %ecx
movq -0x28(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x141d5d
movl -0x2c(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)