user: 这段汇编代码用C语言表示是什么样的？

```asm
<deBayerBL>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %rbx
  sub    $0x38,%rsp
  mov    %rdi,-0x28(%rbp)
  mov    %rsi,-0x30(%rbp)
  mov    %edx,-0x34(%rbp)
  mov    %ecx,-0x38(%rbp)
  movl   $0x0,-0x14(%rbp)
  jmp    L10
L2:
  movl   $0x0,-0x18(%rbp)
  jmp    L31
L13:
  mov    -0x38(%rbp),%edi
  mov    -0x34(%rbp),%ecx
  mov    -0x14(%rbp),%edx
  mov    -0x18(%rbp),%esi
  mov    -0x28(%rbp),%rax
  mov    $0x0,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  mov    %eax,%ebx
  mov    -0x18(%rbp),%eax
  lea    -0x1(%rax),%esi
  mov    -0x38(%rbp),%edi
  mov    -0x34(%rbp),%ecx
  mov    -0x14(%rbp),%edx
  mov    -0x28(%rbp),%rax
  mov    $0x0,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  add    %eax,%ebx
  mov    -0x14(%rbp),%eax
  lea    -0x1(%rax),%edi
  mov    -0x38(%rbp),%ecx
  mov    -0x34(%rbp),%edx
  mov    -0x18(%rbp),%esi
  mov    -0x28(%rbp),%rax
  mov    $0x0,%r9d
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  add    %eax,%ebx
  mov    -0x14(%rbp),%eax
  lea    -0x1(%rax),%edi
  mov    -0x18(%rbp),%eax
  lea    -0x1(%rax),%esi
  mov    -0x38(%rbp),%ecx
  mov    -0x34(%rbp),%edx
  mov    -0x28(%rbp),%rax
  mov    $0x0,%r9d
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  add    %ebx,%eax
  lea    0x3(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x2,%eax
  mov    %eax,%r8d
  mov    -0x14(%rbp),%eax
  lea    (%rax,%rax,1),%edi
  mov    -0x18(%rbp),%eax
  lea    (%rax,%rax,1),%esi
  mov    -0x38(%rbp),%ecx
  mov    -0x34(%rbp),%edx
  mov    -0x30(%rbp),%rax
  sub    $0x8,%rsp
  push   %r8
  mov    $0x0,%r9d
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %rax,%rdi
  call   <setPixelBounds@plt>
  add    $0x10,%rsp
  mov    -0x38(%rbp),%edi
  mov    -0x34(%rbp),%ecx
  mov    -0x14(%rbp),%edx
  mov    -0x18(%rbp),%esi
  mov    -0x28(%rbp),%rax
  mov    $0x2,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  mov    %eax,%ebx
  mov    -0x18(%rbp),%eax
  lea    -0x1(%rax),%esi
  mov    -0x38(%rbp),%edi
  mov    -0x34(%rbp),%ecx
  mov    -0x14(%rbp),%edx
  mov    -0x28(%rbp),%rax
  mov    $0x2,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  add    %eax,%ebx
  mov    -0x38(%rbp),%edi
  mov    -0x34(%rbp),%ecx
  mov    -0x14(%rbp),%edx
  mov    -0x18(%rbp),%esi
  mov    -0x28(%rbp),%rax
  mov    $0x1,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  add    %eax,%ebx
  mov    -0x14(%rbp),%eax
  lea    -0x1(%rax),%edi
  mov    -0x38(%rbp),%ecx
  mov    -0x34(%rbp),%edx
  mov    -0x18(%rbp),%esi
  mov    -0x28(%rbp),%rax
  mov    $0x1,%r9d
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  add    %ebx,%eax
  lea    0x3(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x2,%eax
  mov    %eax,%r8d
  mov    -0x14(%rbp),%eax
  lea    (%rax,%rax,1),%edi
  mov    -0x18(%rbp),%eax
  lea    (%rax,%rax,1),%esi
  mov    -0x38(%rbp),%ecx
  mov    -0x34(%rbp),%edx
  mov    -0x30(%rbp),%rax
  sub    $0x8,%rsp
  push   %r8
  mov    $0x1,%r9d
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %rax,%rdi
  call   <setPixelBounds@plt>
  add    $0x10,%rsp
  mov    -0x38(%rbp),%edi
  mov    -0x34(%rbp),%ecx
  mov    -0x14(%rbp),%edx
  mov    -0x18(%rbp),%esi
  mov    -0x28(%rbp),%rax
  mov    $0x3,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  mov    %eax,%ecx
  mov    -0x14(%rbp),%eax
  lea    (%rax,%rax,1),%edi
  mov    -0x18(%rbp),%eax
  lea    (%rax,%rax,1),%esi
  mov    -0x38(%rbp),%r8d
  mov    -0x34(%rbp),%edx
  mov    -0x30(%rbp),%rax
  sub    $0x8,%rsp
  push   %rcx
  mov    $0x2,%r9d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %rax,%rdi
  call   <setPixelBounds@plt>
  add    $0x10,%rsp
  mov    -0x38(%rbp),%edi
  mov    -0x34(%rbp),%ecx
  mov    -0x14(%rbp),%edx
  mov    -0x18(%rbp),%esi
  mov    -0x28(%rbp),%rax
  mov    $0x0,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  mov    %eax,%ebx
  mov    -0x14(%rbp),%eax
  lea    -0x1(%rax),%edi
  mov    -0x38(%rbp),%ecx
  mov    -0x34(%rbp),%edx
  mov    -0x18(%rbp),%esi
  mov    -0x28(%rbp),%rax
  mov    $0x0,%r9d
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  add    %ebx,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%r8d
  mov    -0x14(%rbp),%eax
  lea    (%rax,%rax,1),%edi
  mov    -0x18(%rbp),%eax
  add    %eax,%eax
  lea    0x1(%rax),%esi
  mov    -0x38(%rbp),%ecx
  mov    -0x34(%rbp),%edx
  mov    -0x30(%rbp),%rax
  sub    $0x8,%rsp
  push   %r8
  mov    $0x0,%r9d
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %rax,%rdi
  call   <setPixelBounds@plt>
  add    $0x10,%rsp
  mov    -0x38(%rbp),%edi
  mov    -0x34(%rbp),%ecx
  mov    -0x14(%rbp),%edx
  mov    -0x18(%rbp),%esi
  mov    -0x28(%rbp),%rax
  mov    $0x2,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  mov    %eax,%ecx
  mov    -0x14(%rbp),%eax
  lea    (%rax,%rax,1),%edi
  mov    -0x18(%rbp),%eax
  add    %eax,%eax
  lea    0x1(%rax),%esi
  mov    -0x38(%rbp),%r8d
  mov    -0x34(%rbp),%edx
  mov    -0x30(%rbp),%rax
  sub    $0x8,%rsp
  push   %rcx
  mov    $0x1,%r9d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %rax,%rdi
  call   <setPixelBounds@plt>
  add    $0x10,%rsp
  mov    -0x38(%rbp),%edi
  mov    -0x34(%rbp),%ecx
  mov    -0x14(%rbp),%edx
  mov    -0x18(%rbp),%esi
  mov    -0x28(%rbp),%rax
  mov    $0x3,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  mov    %eax,%ebx
  mov    -0x18(%rbp),%eax
  lea    0x1(%rax),%esi
  mov    -0x38(%rbp),%edi
  mov    -0x34(%rbp),%ecx
  mov    -0x14(%rbp),%edx
  mov    -0x28(%rbp),%rax
  mov    $0x3,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  add    %ebx,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%r8d
  mov    -0x14(%rbp),%eax
  lea    (%rax,%rax,1),%edi
  mov    -0x18(%rbp),%eax
  add    %eax,%eax
  lea    0x1(%rax),%esi
  mov    -0x38(%rbp),%ecx
  mov    -0x34(%rbp),%edx
  mov    -0x30(%rbp),%rax
  sub    $0x8,%rsp
  push   %r8
  mov    $0x2,%r9d
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %rax,%rdi
  call   <setPixelBounds@plt>
  add    $0x10,%rsp
  mov    -0x38(%rbp),%edi
  mov    -0x34(%rbp),%ecx
  mov    -0x14(%rbp),%edx
  mov    -0x18(%rbp),%esi
  mov    -0x28(%rbp),%rax
  mov    $0x0,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  mov    %eax,%ebx
  mov    -0x18(%rbp),%eax
  lea    -0x1(%rax),%esi
  mov    -0x38(%rbp),%edi
  mov    -0x34(%rbp),%ecx
  mov    -0x14(%rbp),%edx
  mov    -0x28(%rbp),%rax
  mov    $0x0,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  add    %ebx,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%r8d
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  lea    0x1(%rax),%edi
  mov    -0x18(%rbp),%eax
  lea    (%rax,%rax,1),%esi
  mov    -0x38(%rbp),%ecx
  mov    -0x34(%rbp),%edx
  mov    -0x30(%rbp),%rax
  sub    $0x8,%rsp
  push   %r8
  mov    $0x0,%r9d
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %rax,%rdi
  call   <setPixelBounds@plt>
  add    $0x10,%rsp
  mov    -0x38(%rbp),%edi
  mov    -0x34(%rbp),%ecx
  mov    -0x14(%rbp),%edx
  mov    -0x18(%rbp),%esi
  mov    -0x28(%rbp),%rax
  mov    $0x1,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  mov    %eax,%ecx
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  lea    0x1(%rax),%edi
  mov    -0x18(%rbp),%eax
  lea    (%rax,%rax,1),%esi
  mov    -0x38(%rbp),%r8d
  mov    -0x34(%rbp),%edx
  mov    -0x30(%rbp),%rax
  sub    $0x8,%rsp
  push   %rcx
  mov    $0x1,%r9d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %rax,%rdi
  call   <setPixelBounds@plt>
  add    $0x10,%rsp
  mov    -0x38(%rbp),%edi
  mov    -0x34(%rbp),%ecx
  mov    -0x14(%rbp),%edx
  mov    -0x18(%rbp),%esi
  mov    -0x28(%rbp),%rax
  mov    $0x3,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  mov    %eax,%ebx
  mov    -0x14(%rbp),%eax
  lea    0x1(%rax),%edi
  mov    -0x38(%rbp),%ecx
  mov    -0x34(%rbp),%edx
  mov    -0x18(%rbp),%esi
  mov    -0x28(%rbp),%rax
  mov    $0x3,%r9d
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  add    %ebx,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%r8d
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  lea    0x1(%rax),%edi
  mov    -0x18(%rbp),%eax
  lea    (%rax,%rax,1),%esi
  mov    -0x38(%rbp),%ecx
  mov    -0x34(%rbp),%edx
  mov    -0x30(%rbp),%rax
  sub    $0x8,%rsp
  push   %r8
  mov    $0x2,%r9d
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %rax,%rdi
  call   <setPixelBounds@plt>
  add    $0x10,%rsp
  mov    -0x38(%rbp),%edi
  mov    -0x34(%rbp),%ecx
  mov    -0x14(%rbp),%edx
  mov    -0x18(%rbp),%esi
  mov    -0x28(%rbp),%rax
  mov    $0x0,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  mov    %eax,%ecx
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  lea    0x1(%rax),%edi
  mov    -0x18(%rbp),%eax
  add    %eax,%eax
  lea    0x1(%rax),%esi
  mov    -0x38(%rbp),%r8d
  mov    -0x34(%rbp),%edx
  mov    -0x30(%rbp),%rax
  sub    $0x8,%rsp
  push   %rcx
  mov    $0x0,%r9d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %rax,%rdi
  call   <setPixelBounds@plt>
  add    $0x10,%rsp
  mov    -0x38(%rbp),%edi
  mov    -0x34(%rbp),%ecx
  mov    -0x14(%rbp),%edx
  mov    -0x18(%rbp),%esi
  mov    -0x28(%rbp),%rax
  mov    $0x2,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  mov    %eax,%ebx
  mov    -0x14(%rbp),%eax
  lea    0x1(%rax),%edi
  mov    -0x38(%rbp),%ecx
  mov    -0x34(%rbp),%edx
  mov    -0x18(%rbp),%esi
  mov    -0x28(%rbp),%rax
  mov    $0x2,%r9d
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  add    %eax,%ebx
  mov    -0x38(%rbp),%edi
  mov    -0x34(%rbp),%ecx
  mov    -0x14(%rbp),%edx
  mov    -0x18(%rbp),%esi
  mov    -0x28(%rbp),%rax
  mov    $0x1,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  add    %eax,%ebx
  mov    -0x18(%rbp),%eax
  lea    0x1(%rax),%esi
  mov    -0x38(%rbp),%edi
  mov    -0x34(%rbp),%ecx
  mov    -0x14(%rbp),%edx
  mov    -0x28(%rbp),%rax
  mov    $0x1,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  add    %ebx,%eax
  lea    0x3(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x2,%eax
  mov    %eax,%r8d
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  lea    0x1(%rax),%edi
  mov    -0x18(%rbp),%eax
  add    %eax,%eax
  lea    0x1(%rax),%esi
  mov    -0x38(%rbp),%ecx
  mov    -0x34(%rbp),%edx
  mov    -0x30(%rbp),%rax
  sub    $0x8,%rsp
  push   %r8
  mov    $0x1,%r9d
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %rax,%rdi
  call   <setPixelBounds@plt>
  add    $0x10,%rsp
  mov    -0x38(%rbp),%edi
  mov    -0x34(%rbp),%ecx
  mov    -0x14(%rbp),%edx
  mov    -0x18(%rbp),%esi
  mov    -0x28(%rbp),%rax
  mov    $0x3,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  mov    %eax,%ebx
  mov    -0x18(%rbp),%eax
  lea    0x1(%rax),%esi
  mov    -0x38(%rbp),%edi
  mov    -0x34(%rbp),%ecx
  mov    -0x14(%rbp),%edx
  mov    -0x28(%rbp),%rax
  mov    $0x3,%r9d
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  add    %eax,%ebx
  mov    -0x14(%rbp),%eax
  lea    0x1(%rax),%edi
  mov    -0x38(%rbp),%ecx
  mov    -0x34(%rbp),%edx
  mov    -0x18(%rbp),%esi
  mov    -0x28(%rbp),%rax
  mov    $0x3,%r9d
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  add    %eax,%ebx
  mov    -0x14(%rbp),%eax
  lea    0x1(%rax),%edi
  mov    -0x18(%rbp),%eax
  lea    0x1(%rax),%esi
  mov    -0x38(%rbp),%ecx
  mov    -0x34(%rbp),%edx
  mov    -0x28(%rbp),%rax
  mov    $0x3,%r9d
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %rax,%rdi
  call   <getBayerPixelCol@plt>
  add    %ebx,%eax
  lea    0x3(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x2,%eax
  mov    %eax,%r8d
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  lea    0x1(%rax),%edi
  mov    -0x18(%rbp),%eax
  add    %eax,%eax
  lea    0x1(%rax),%esi
  mov    -0x38(%rbp),%ecx
  mov    -0x34(%rbp),%edx
  mov    -0x30(%rbp),%rax
  sub    $0x8,%rsp
  push   %r8
  mov    $0x2,%r9d
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %rax,%rdi
  call   <setPixelBounds@plt>
  add    $0x10,%rsp
  addl   $0x1,-0x18(%rbp)
L31:
  mov    -0x34(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  cmp    %eax,-0x18(%rbp)
  jl     L13
  addl   $0x1,-0x14(%rbp)
L10:
  mov    -0x38(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  cmp    %eax,-0x14(%rbp)
  jl     L2
  nop
  nop
  mov    -0x8(%rbp),%rbx
  leave
  ret
```

assistant: ```c
void deBayerBL(uint8_t *in, uint8_t *out, uint32_t img_w, uint32_t img_h) {
  int32_t x, y;
  for (y = 0; y < img_h / 2; ++y) {
    for (x = 0; x < img_w / 2; ++x) {
      setPixelBounds(out, x * 2, y * 2, img_w, img_h, 0, (getBayerPixelCol(in, x, y, img_w, img_h, 0) + getBayerPixelCol(in, x - 1, y, img_w, img_h, 0) + getBayerPixelCol(in, x, y - 1, img_w, img_h, 0) + getBayerPixelCol(in, x - 1, y - 1, img_w, img_h, 0)) / 4);
      setPixelBounds(out, x * 2, y * 2, img_w, img_h, 1, (getBayerPixelCol(in, x, y, img_w, img_h, 2) + getBayerPixelCol(in, x - 1, y, img_w, img_h, 2) + getBayerPixelCol(in, x, y, img_w, img_h, 1) + getBayerPixelCol(in, x, y - 1, img_w, img_h, 1)) / 4);
      setPixelBounds(out, x * 2, y * 2, img_w, img_h, 2, getBayerPixelCol(in, x, y, img_w, img_h, 3));
      setPixelBounds(out, x * 2 + 1, y * 2, img_w, img_h, 0, (getBayerPixelCol(in, x, y, img_w, img_h, 0) + getBayerPixelCol(in, x, y - 1, img_w, img_h, 0)) / 2);
      setPixelBounds(out, x * 2 + 1, y * 2, img_w, img_h, 1, getBayerPixelCol(in, x, y, img_w, img_h, 2));
      setPixelBounds(out, x * 2 + 1, y * 2, img_w, img_h, 2, (getBayerPixelCol(in, x, y, img_w, img_h, 3) + getBayerPixelCol(in, x + 1, y, img_w, img_h, 3)) / 2);
      setPixelBounds(out, x * 2, y * 2 + 1, img_w, img_h, 0, (getBayerPixelCol(in, x, y, img_w, img_h, 0) + getBayerPixelCol(in, x - 1, y, img_w, img_h, 0)) / 2);
      setPixelBounds(out, x * 2, y * 2 + 1, img_w, img_h, 1, getBayerPixelCol(in, x, y, img_w, img_h, 1));
      setPixelBounds(out, x * 2, y * 2 + 1, img_w, img_h, 2, (getBayerPixelCol(in, x, y, img_w, img_h, 3) + getBayerPixelCol(in, x, y + 1, img_w, img_h, 3)) / 2);
      setPixelBounds(out, x * 2 + 1, y * 2 + 1, img_w, img_h, 0, getBayerPixelCol(in, x, y, img_w, img_h, 0));
      setPixelBounds(out, x * 2 + 1, y * 2 + 1, img_w, img_h, 1, (getBayerPixelCol(in, x, y, img_w, img_h, 2) + getBayerPixelCol(in, x, y + 1, img_w, img_h, 2) + getBayerPixelCol(in, x, y, img_w, img_h, 1) + getBayerPixelCol(in, x + 1, y, img_w, img_h, 1)) / 4);
      setPixelBounds(out, x * 2 + 1, y * 2 + 1, img_w, img_h, 2, (getBayerPixelCol(in, x, y, img_w, img_h, 3) + getBayerPixelCol(in, x + 1, y, img_w, img_h, 3) + getBayerPixelCol(in, x, y + 1, img_w, img_h, 3) + getBayerPixelCol(in, x + 1, y + 1, img_w, img_h, 3)) / 4);
    }
  }
}
```