user: What would the C source look like for the assembly code provided here?

```asm
<vp8cx_vertical_band_1_2_scale_c>:
  endbr64
  mov    %rdi,%rcx
  mov    %edx,%edi
  test   %edi,%edi
  je     L110
  mov    %esi,%edx
  lea    (%rsi,%rsi,1),%r8d
  lea    -0x1(%rdi),%esi
  lea    -0x1(%rdx),%rax
  cmp    $0xe,%rax
  seta   %r10b
  cmp    $0x6,%esi
  seta   %r9b
  test   %r9b,%r10b
  je     L81
  sub    %r8,%rax
  cmp    $0xe,%rax
  jbe    L81
  push   %rbx
  cmp    $0xe,%esi
  jbe    L18
  mov    %edi,%esi
  lea    (%rcx,%r8,1),%r9
  lea    (%rcx,%rdx,1),%r10
  xor    %eax,%eax
  shr    $0x4,%esi
  shl    $0x4,%rsi
L139:
  movdqu (%rcx,%rax,1),%xmm0
  movdqu (%r9,%rax,1),%xmm2
  pavgb  %xmm2,%xmm0
  movups %xmm0,(%r10,%rax,1)
  add    $0x10,%rax
  cmp    %rsi,%rax
  jne    L139
  mov    %edi,%esi
  and    $0xfffffff0,%esi
  mov    %esi,%r10d
  lea    (%rcx,%r10,1),%rax
  cmp    %esi,%edi
  je     L135
  mov    %edi,%r11d
  sub    %esi,%r11d
  lea    -0x1(%r11),%ebx
  cmp    $0x6,%ebx
  jbe    L27
L67:
  movq   (%rcx,%r10,1),%xmm0
  movq   (%r9,%r10,1),%xmm1
  lea    (%rdx,%r10,1),%rbx
  pavgb  %xmm1,%xmm0
  movq   %xmm0,(%rcx,%rbx,1)
  mov    %r11d,%ecx
  and    $0xfffffff8,%ecx
  mov    %ecx,%r9d
  add    %ecx,%esi
  add    %r9,%rax
  cmp    %ecx,%r11d
  je     L135
L27:
  movzbl (%rax),%r9d
  movzbl (%rax,%r8,1),%ecx
  lea    0x1(%r9,%rcx,1),%ecx
  shr    %ecx
  mov    %cl,(%rax,%rdx,1)
  lea    0x1(%rsi),%ecx
  cmp    %ecx,%edi
  jbe    L135
  movzbl 0x1(%rax,%r8,1),%r9d
  movzbl 0x1(%rax),%ecx
  lea    0x1(%r9,%rcx,1),%ecx
  shr    %ecx
  mov    %cl,0x1(%rax,%rdx,1)
  lea    0x2(%rsi),%ecx
  cmp    %ecx,%edi
  jbe    L135
  movzbl 0x2(%rax,%r8,1),%r9d
  movzbl 0x2(%rax),%ecx
  lea    0x1(%r9,%rcx,1),%ecx
  shr    %ecx
  mov    %cl,0x2(%rax,%rdx,1)
  lea    0x3(%rsi),%ecx
  cmp    %ecx,%edi
  jbe    L135
  movzbl 0x3(%rax,%r8,1),%r9d
  movzbl 0x3(%rax),%ecx
  lea    0x1(%r9,%rcx,1),%ecx
  shr    %ecx
  mov    %cl,0x3(%rax,%rdx,1)
  lea    0x4(%rsi),%ecx
  cmp    %ecx,%edi
  jbe    L135
  movzbl 0x4(%rax,%r8,1),%r9d
  movzbl 0x4(%rax),%ecx
  lea    0x1(%r9,%rcx,1),%ecx
  shr    %ecx
  mov    %cl,0x4(%rax,%rdx,1)
  lea    0x5(%rsi),%ecx
  cmp    %ecx,%edi
  jbe    L135
  movzbl 0x5(%rax,%r8,1),%r9d
  movzbl 0x5(%rax),%ecx
  add    $0x6,%esi
  lea    0x1(%r9,%rcx,1),%ecx
  shr    %ecx
  mov    %cl,0x5(%rax,%rdx,1)
  cmp    %esi,%edi
  jbe    L135
  movzbl 0x6(%rax,%r8,1),%esi
  movzbl 0x6(%rax),%ecx
  lea    0x1(%rsi,%rcx,1),%ecx
  shr    %ecx
  mov    %cl,0x6(%rax,%rdx,1)
L135:
  pop    %rbx
  ret
  nopl   0x0(%rax)
L81:
  add    %rcx,%rdi
  nopl   0x0(%rax,%rax,1)
L38:
  movzbl (%rcx),%esi
  movzbl (%rcx,%r8,1),%eax
  add    $0x1,%rcx
  lea    0x1(%rsi,%rax,1),%eax
  shr    %eax
  mov    %al,-0x1(%rcx,%rdx,1)
  cmp    %rdi,%rcx
  jne    L38
  ret
  nopl   0x0(%rax)
L110:
  ret
L18:
  mov    %edi,%r11d
  mov    %rcx,%rax
  xor    %esi,%esi
  xor    %r10d,%r10d
  lea    (%rcx,%r8,1),%r9
  jmp    L67
```

assistant: ```c
void vp8cx_vertical_band_1_2_scale_c(unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width) {
  unsigned int i;
  unsigned int a, b;
  unsigned char *des = dest;
  for (i = 0; i < dest_width; i++) {
    a = des[0];
    b = des[dest_pitch * 2];
    des[dest_pitch] = (unsigned char)((a + b + 1) >> 1);
    des++;
  }
}
```