user: 下面的汇编指令对应的C源代码是什么：

```asm
<v4lconvert_border_bayer_line_to_y>:
  endbr64
  push   %r12
  mov    %rdx,%rax
  push   %rbp
  push   %rbx
  sub    $0x18,%rsp
  movzbl 0x1(%rdi),%edx
  movzbl (%rsi),%r11d
  movzbl (%rdi),%r10d
  test   %r8d,%r8d
  je     L194
  imul   $0x40d2,%r10d,%r10d
  lea    0x2(%rax),%r8
  test   %r9d,%r9d
  jne    L34
  imul   $0x2105,%edx,%edx
  imul   $0xc97,%r11d,%r11d
  add    %r10d,%edx
  lea    0x80000(%rdx,%r11,1),%edx
  sar    $0xf,%edx
  mov    %dl,(%rax)
  movzbl 0x2(%rdi),%r10d
  movzbl (%rdi),%edx
  movzbl 0x2(%rsi),%r11d
  add    %r10d,%edx
  movzbl 0x1(%rsi),%r10d
  add    %r10d,%edx
  movzbl 0x1(%rdi),%r10d
  imul   $0x159b,%edx,%edx
  imul   $0x2105,%r10d,%r10d
  add    %r10d,%edx
  movzbl (%rsi),%r10d
  add    %r11d,%r10d
  imul   $0x64b,%r10d,%r10d
  lea    0x80000(%rdx,%r10,1),%edx
  sar    $0xf,%edx
L100:
  mov    %dl,0x1(%rax)
  add    $0x1,%rdi
  add    $0x1,%rsi
  sub    $0x2,%ecx
  test   %r9d,%r9d
  je     L79
L66:
  cmp    $0x2,%ecx
  jle    L73
  lea    0x22(%rdi),%rbp
  lea    0x20(%r8),%r9
  cmp    %rbp,%r8
  lea    -0x3(%rcx),%ebx
  lea    0x1(%rsi),%rdx
  setae  %al
  cmp    %r9,%rdi
  setae  %r10b
  or     %r10d,%eax
  cmp    $0x1f,%ebx
  seta   %r10b
  test   %r10b,%al
  je     L169
  lea    0x22(%rsi),%rax
  cmp    %rax,%r8
  setae  %al
  cmp    %rdx,%r9
  setbe  %r9b
  or     %r9b,%al
  je     L169
  mov    %ebx,%r11d
  lea    0x2(%rdi),%rax
  pxor   %xmm15,%xmm15
  mov    %r8,%r9
  movdqa D159(%rip),%xmm7
  shr    $0x5,%r11d
  movdqa D108(%rip),%xmm14
  movdqa D118(%rip),%xmm13
  lea    -0x1(%r11),%r10d
  movaps %xmm7,-0x38(%rsp)
  movdqa D83(%rip),%xmm7
  shl    $0x5,%r10
  add    %rbp,%r10
  movaps %xmm7,-0x78(%rsp)
  movdqa D16(%rip),%xmm7
  movaps %xmm7,-0x68(%rsp)
  movdqa D94(%rip),%xmm7
  movaps %xmm7,-0x28(%rsp)
  movdqa D54(%rip),%xmm7
  movaps %xmm7,-0x58(%rsp)
  movdqa D158(%rip),%xmm7
  movaps %xmm7,-0x48(%rsp)
  nopw   0x0(%rax,%rax,1)
L200:
  movdqu -0x2(%rax),%xmm3
  movdqu 0xe(%rax),%xmm0
  add    $0x20,%rax
  add    $0x20,%rdx
  movdqu -0x22(%rax),%xmm1
  movdqu -0x10(%rax),%xmm2
  add    $0x20,%r9
  pand   %xmm14,%xmm0
  pand   %xmm14,%xmm3
  movdqu -0x20(%rax),%xmm4
  movdqa -0x68(%rsp),%xmm12
  packuswb %xmm0,%xmm3
  movdqu -0x12(%rax),%xmm0
  psrlw  $0x8,%xmm1
  pand   %xmm14,%xmm2
  psrlw  $0x8,%xmm4
  movdqa %xmm3,%xmm5
  punpckhbw %xmm15,%xmm3
  psrlw  $0x8,%xmm0
  movdqa %xmm4,%xmm7
  movdqu -0x20(%rdx),%xmm4
  punpcklbw %xmm15,%xmm5
  packuswb %xmm0,%xmm1
  movdqu -0x20(%rax),%xmm0
  psrlw  $0x8,%xmm4
  pand   %xmm14,%xmm0
  packuswb %xmm2,%xmm0
  movdqu -0x10(%rax),%xmm2
  movdqa %xmm0,%xmm6
  punpckhbw %xmm15,%xmm0
  psrlw  $0x8,%xmm2
  movaps %xmm0,-0x8(%rsp)
  movdqu -0x20(%rdx),%xmm0
  punpcklbw %xmm15,%xmm6
  packuswb %xmm2,%xmm7
  movdqu -0x10(%rdx),%xmm2
  paddw  %xmm6,%xmm5
  paddw  -0x8(%rsp),%xmm3
  pand   %xmm14,%xmm0
  movaps %xmm7,0x8(%rsp)
  pand   %xmm14,%xmm2
  packuswb %xmm2,%xmm0
  movdqu -0x10(%rdx),%xmm2
  movdqa %xmm0,%xmm10
  punpckhbw %xmm15,%xmm0
  movaps %xmm0,-0x18(%rsp)
  movdqa -0x38(%rsp),%xmm0
  psrlw  $0x8,%xmm2
  punpcklbw %xmm15,%xmm10
  packuswb %xmm2,%xmm4
  movdqa %xmm1,%xmm2
  punpckhbw %xmm15,%xmm1
  movdqa %xmm0,%xmm9
  movdqa %xmm0,%xmm11
  movdqa -0x78(%rsp),%xmm0
  punpcklbw %xmm15,%xmm2
  pmullw %xmm10,%xmm9
  pmulhuw %xmm10,%xmm11
  movdqa %xmm2,%xmm7
  movdqa %xmm0,%xmm2
  pmullw %xmm7,%xmm2
  pmulhuw %xmm0,%xmm7
  movdqa %xmm9,%xmm8
  punpckhwd %xmm11,%xmm9
  punpcklwd %xmm11,%xmm8
  movdqa -0x68(%rsp),%xmm11
  movdqa %xmm2,%xmm0
  punpckhwd %xmm7,%xmm2
  punpcklwd %xmm7,%xmm0
  paddd  %xmm9,%xmm2
  movdqa -0x18(%rsp),%xmm9
  paddd  %xmm8,%xmm0
  movdqa %xmm12,%xmm8
  pmullw %xmm5,%xmm8
  pmulhuw %xmm12,%xmm5
  movdqa %xmm8,%xmm12
  punpckhwd %xmm5,%xmm8
  punpcklwd %xmm5,%xmm12
  paddd  %xmm8,%xmm2
  paddd  %xmm12,%xmm0
  paddd  %xmm13,%xmm2
  movdqa %xmm9,%xmm12
  paddd  %xmm13,%xmm0
  psrad  $0xf,%xmm2
  psrad  $0xf,%xmm0
  movdqa %xmm0,%xmm5
  punpcklwd %xmm2,%xmm0
  punpckhwd %xmm2,%xmm5
  movdqa %xmm0,%xmm2
  punpckhwd %xmm5,%xmm2
  punpcklwd %xmm5,%xmm0
  movdqa -0x38(%rsp),%xmm5
  punpcklwd %xmm2,%xmm0
  movdqa -0x78(%rsp),%xmm2
  movdqa %xmm5,%xmm8
  pmulhuw %xmm5,%xmm12
  pand   %xmm14,%xmm0
  pmullw %xmm9,%xmm8
  movdqa %xmm8,%xmm5
  punpckhwd %xmm12,%xmm8
  punpcklwd %xmm12,%xmm5
  movdqa %xmm5,%xmm7
  movdqa %xmm2,%xmm5
  pmullw %xmm1,%xmm5
  pmulhuw %xmm2,%xmm1
  movdqa %xmm5,%xmm2
  punpckhwd %xmm1,%xmm5
  punpcklwd %xmm1,%xmm2
  paddd  %xmm8,%xmm5
  paddd  %xmm7,%xmm2
  movdqa %xmm11,%xmm7
  pmullw %xmm3,%xmm7
  pmulhuw %xmm11,%xmm3
  movdqa %xmm7,%xmm11
  punpckhwd %xmm3,%xmm7
  punpcklwd %xmm3,%xmm11
  paddd  %xmm7,%xmm5
  movdqa 0x8(%rsp),%xmm7
  paddd  %xmm11,%xmm2
  paddd  %xmm13,%xmm5
  movdqa -0x28(%rsp),%xmm11
  paddd  %xmm13,%xmm2
  psrad  $0xf,%xmm5
  psrad  $0xf,%xmm2
  movdqa %xmm11,%xmm8
  movdqa %xmm2,%xmm1
  punpcklwd %xmm5,%xmm2
  punpckhwd %xmm5,%xmm1
  movdqa %xmm2,%xmm3
  punpckhwd %xmm1,%xmm3
  punpcklwd %xmm1,%xmm2
  movdqu -0x21(%rax),%xmm1
  punpcklwd %xmm3,%xmm2
  pand   %xmm14,%xmm2
  pand   %xmm14,%xmm1
  packuswb %xmm2,%xmm0
  movdqu -0x11(%rax),%xmm2
  pand   %xmm14,%xmm2
  packuswb %xmm2,%xmm1
  movdqa %xmm7,%xmm2
  punpckhbw %xmm15,%xmm7
  movdqa %xmm1,%xmm5
  punpcklbw %xmm15,%xmm2
  punpckhbw %xmm15,%xmm1
  punpcklbw %xmm15,%xmm5
  paddw  %xmm2,%xmm5
  movdqa %xmm4,%xmm2
  punpckhbw %xmm15,%xmm4
  punpcklbw %xmm15,%xmm2
  paddw  %xmm2,%xmm5
  movdqa %xmm7,%xmm2
  paddw  %xmm1,%xmm2
  movdqu -0xe(%rdx),%xmm1
  paddw  %xmm2,%xmm4
  movdqu -0x1e(%rdx),%xmm2
  pand   %xmm14,%xmm1
  pand   %xmm14,%xmm2
  packuswb %xmm1,%xmm2
  movdqa -0x58(%rsp),%xmm1
  movdqa %xmm2,%xmm7
  punpckhbw %xmm15,%xmm2
  paddw  -0x18(%rsp),%xmm2
  movdqa %xmm1,%xmm3
  punpcklbw %xmm15,%xmm7
  pmullw %xmm5,%xmm3
  pmulhuw %xmm1,%xmm5
  paddw  %xmm10,%xmm7
  pmullw %xmm7,%xmm8
  pmulhuw %xmm11,%xmm7
  movdqa %xmm3,%xmm10
  punpckhwd %xmm5,%xmm3
  punpcklwd %xmm5,%xmm10
  movdqa %xmm8,%xmm9
  punpckhwd %xmm7,%xmm8
  movdqa %xmm10,%xmm1
  punpcklwd %xmm7,%xmm9
  paddd  %xmm8,%xmm3
  movdqa -0x48(%rsp),%xmm10
  paddd  %xmm9,%xmm1
  movdqa -0x58(%rsp),%xmm7
  movdqa %xmm11,%xmm8
  movdqa %xmm10,%xmm9
  pmullw %xmm2,%xmm8
  pmullw %xmm6,%xmm9
  pmulhuw %xmm10,%xmm6
  movdqa -0x48(%rsp),%xmm10
  pmulhuw %xmm11,%xmm2
  movdqa %xmm9,%xmm12
  punpckhwd %xmm6,%xmm9
  punpcklwd %xmm6,%xmm12
  paddd  %xmm9,%xmm3
  movdqa %xmm8,%xmm6
  paddd  %xmm12,%xmm1
  paddd  %xmm13,%xmm3
  punpcklwd %xmm2,%xmm6
  paddd  %xmm13,%xmm1
  psrad  $0xf,%xmm3
  punpckhwd %xmm2,%xmm8
  psrad  $0xf,%xmm1
  movdqa %xmm1,%xmm5
  punpcklwd %xmm3,%xmm1
  punpckhwd %xmm3,%xmm5
  movdqa %xmm1,%xmm3
  punpckhwd %xmm5,%xmm3
  punpcklwd %xmm5,%xmm1
  movdqa %xmm7,%xmm5
  pmullw %xmm4,%xmm5
  pmulhuw %xmm7,%xmm4
  punpcklwd %xmm3,%xmm1
  movdqa %xmm10,%xmm7
  pand   %xmm14,%xmm1
  movdqa %xmm5,%xmm3
  punpckhwd %xmm4,%xmm5
  punpcklwd %xmm4,%xmm3
  paddd  %xmm8,%xmm5
  paddd  %xmm6,%xmm3
  movdqa -0x8(%rsp),%xmm6
  pmullw %xmm6,%xmm7
  pmulhuw %xmm10,%xmm6
  movdqa %xmm7,%xmm9
  punpckhwd %xmm6,%xmm7
  punpcklwd %xmm6,%xmm9
  paddd  %xmm7,%xmm5
  paddd  %xmm9,%xmm3
  paddd  %xmm13,%xmm5
  paddd  %xmm13,%xmm3
  psrad  $0xf,%xmm5
  psrad  $0xf,%xmm3
  movdqa %xmm3,%xmm2
  punpcklwd %xmm5,%xmm3
  punpckhwd %xmm5,%xmm2
  movdqa %xmm3,%xmm4
  punpckhwd %xmm2,%xmm4
  punpcklwd %xmm2,%xmm3
  movdqa %xmm0,%xmm2
  punpcklwd %xmm4,%xmm3
  pand   %xmm14,%xmm3
  packuswb %xmm3,%xmm1
  punpcklbw %xmm1,%xmm2
  punpckhbw %xmm1,%xmm0
  movups %xmm2,-0x20(%r9)
  movups %xmm0,-0x10(%r9)
  cmp    %rax,%r10
  jne    L200
  mov    %r11d,%eax
  shl    $0x4,%eax
  mov    %eax,%edx
  neg    %eax
  add    %rdx,%rdx
  lea    (%rcx,%rax,2),%eax
  lea    (%rsi,%rdx,1),%r9
  lea    (%r8,%rdx,1),%r11
  add    %rdi,%rdx
  lea    (%rax,%rdx,1),%ebp
  nopl   0x0(%rax)
L173:
  movzbl 0x1(%rdx),%eax
  add    $0x2,%r11
  add    $0x2,%rdx
  movzbl (%rdx),%r12d
  movzbl 0x1(%r9),%r10d
  add    $0x2,%r9
  imul   $0x40d2,%eax,%eax
  imul   $0x2105,%r10d,%r10d
  add    %eax,%r10d
  movzbl -0x2(%rdx),%eax
  add    %r12d,%eax
  imul   $0x64b,%eax,%eax
  lea    0x80000(%r10,%rax,1),%eax
  sar    $0xf,%eax
  mov    %al,-0x2(%r11)
  movzbl 0x1(%rdx),%r10d
  movzbl -0x1(%rdx),%eax
  movzbl 0x1(%r9),%r12d
  add    %r10d,%eax
  movzbl (%r9),%r10d
  add    %r10d,%eax
  movzbl -0x1(%r9),%r10d
  imul   $0x159b,%eax,%eax
  add    %r12d,%r10d
  imul   $0x1082,%r10d,%r10d
  add    %r10d,%eax
  movzbl (%rdx),%r10d
  imul   $0xc97,%r10d,%r10d
  lea    0x80000(%rax,%r10,1),%eax
  sar    $0xf,%eax
  mov    %al,-0x1(%r11)
  mov    %ebp,%eax
  sub    %edx,%eax
  cmp    $0x2,%eax
  jg     L173
L108:
  shr    %ebx
  lea    0x1(%rbx),%eax
  neg    %ebx
  add    %rax,%rax
  lea    -0x2(%rcx,%rbx,2),%ecx
  add    %rax,%rdi
  add    %rax,%rsi
  add    %rax,%r8
L73:
  movzbl 0x1(%rsi),%eax
  movzbl 0x1(%rdi),%edx
  imul   $0x2105,%eax,%eax
  imul   $0x40d2,%edx,%edx
  add    %edx,%eax
  movzbl (%rdi),%edx
  cmp    $0x2,%ecx
  je     L159
  imul   $0xc97,%edx,%edx
  lea    0x80000(%rax,%rdx,1),%eax
  sar    $0xf,%eax
  mov    %al,(%r8)
  add    $0x18,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
  nopl   0x0(%rax)
L194:
  add    %r11d,%edx
  movzbl 0x1(%rsi),%r8d
  imul   $0x2069,%edx,%edx
  test   %r9d,%r9d
  jne    L41
  imul   $0x2105,%r10d,%r10d
  imul   $0xc97,%r8d,%r8d
  add    %edx,%r10d
  lea    0x80000(%r10,%r8,1),%edx
  sar    $0xf,%edx
L150:
  mov    %dl,(%rax)
  lea    0x1(%rax),%r8
  sub    $0x1,%ecx
  test   %r9d,%r9d
  jne    L66
L79:
  cmp    $0x2,%ecx
  jle    L1
  lea    0x22(%rdi),%rbp
  lea    0x20(%r8),%r9
  cmp    %rbp,%r8
  lea    -0x3(%rcx),%r11d
  lea    0x1(%rsi),%rdx
  setae  %al
  cmp    %r9,%rdi
  setae  %r10b
  or     %r10d,%eax
  cmp    $0x1f,%r11d
  seta   %r10b
  test   %r10b,%al
  je     L191
  lea    0x22(%rsi),%rax
  cmp    %rax,%r8
  setae  %al
  cmp    %rdx,%r9
  setbe  %r9b
  or     %r9b,%al
  je     L191
  mov    %r11d,%ebx
  lea    0x2(%rdi),%rax
  pxor   %xmm15,%xmm15
  mov    %r8,%r9
  movdqa D159(%rip),%xmm7
  shr    $0x5,%ebx
  movdqa D108(%rip),%xmm14
  movdqa D118(%rip),%xmm13
  lea    -0x1(%rbx),%r10d
  movaps %xmm7,-0x38(%rsp)
  movdqa D83(%rip),%xmm7
  shl    $0x5,%r10
  add    %rbp,%r10
  movaps %xmm7,-0x78(%rsp)
  movdqa D16(%rip),%xmm7
  movaps %xmm7,-0x68(%rsp)
  movdqa D94(%rip),%xmm7
  movaps %xmm7,-0x28(%rsp)
  movdqa D54(%rip),%xmm7
  movaps %xmm7,-0x58(%rsp)
  movdqa D158(%rip),%xmm7
  movaps %xmm7,-0x48(%rsp)
  cs nopw 0x0(%rax,%rax,1)
L154:
  movdqu (%rax),%xmm5
  movdqu (%rax),%xmm1
  add    $0x20,%rax
  add    $0x20,%rdx
  movdqu -0x22(%rax),%xmm4
  movdqu -0x12(%rax),%xmm0
  add    $0x20,%r9
  movdqu -0x22(%rax),%xmm2
  pand   %xmm14,%xmm5
  psrlw  $0x8,%xmm1
  movdqu -0x10(%rdx),%xmm3
  pand   %xmm14,%xmm0
  pand   %xmm14,%xmm4
  movdqa %xmm1,%xmm10
  movdqu -0x20(%rdx),%xmm9
  packuswb %xmm0,%xmm4
  movdqu -0x12(%rax),%xmm0
  psrlw  $0x8,%xmm2
  pand   %xmm14,%xmm3
  psrlw  $0x8,%xmm9
  movdqa %xmm4,%xmm6
  punpckhbw %xmm15,%xmm4
  psrlw  $0x8,%xmm0
  movdqa %xmm9,%xmm12
  punpcklbw %xmm15,%xmm6
  packuswb %xmm0,%xmm2
  movdqu -0x10(%rax),%xmm0
  movdqa %xmm2,%xmm8
  punpckhbw %xmm15,%xmm2
  pand   %xmm14,%xmm0
  punpcklbw %xmm15,%xmm8
  packuswb %xmm0,%xmm5
  movdqu -0x10(%rax),%xmm0
  movdqa %xmm5,%xmm7
  punpckhbw %xmm15,%xmm5
  psrlw  $0x8,%xmm0
  punpcklbw %xmm15,%xmm7
  paddw  %xmm5,%xmm4
  packuswb %xmm0,%xmm10
  movdqu -0x20(%rdx),%xmm0
  paddw  %xmm7,%xmm6
  movaps %xmm10,-0x18(%rsp)
  pand   %xmm14,%xmm0
  packuswb %xmm3,%xmm0
  movdqu -0x10(%rdx),%xmm3
  psrlw  $0x8,%xmm3
  packuswb %xmm3,%xmm12
  movdqa %xmm0,%xmm3
  punpckhbw %xmm15,%xmm0
  movaps %xmm12,-0x8(%rsp)
  punpcklbw %xmm15,%xmm3
  movdqa %xmm0,%xmm12
  movdqa -0x78(%rsp),%xmm0
  movdqa %xmm3,%xmm1
  movdqa -0x28(%rsp),%xmm3
  movdqa %xmm0,%xmm11
  movaps %xmm1,0x8(%rsp)
  pmullw %xmm8,%xmm11
  pmulhuw %xmm0,%xmm8
  movdqa %xmm3,%xmm10
  pmullw %xmm6,%xmm10
  pmulhuw %xmm3,%xmm6
  movdqa %xmm11,%xmm3
  punpcklwd %xmm8,%xmm11
  movdqa %xmm10,%xmm9
  movdqa %xmm11,%xmm0
  punpckhwd %xmm6,%xmm10
  movdqa -0x48(%rsp),%xmm11
  punpcklwd %xmm6,%xmm9
  punpckhwd %xmm8,%xmm3
  paddd  %xmm9,%xmm0
  movdqa %xmm11,%xmm9
  paddd  %xmm10,%xmm3
  pmullw %xmm1,%xmm9
  pmulhuw %xmm11,%xmm1
  movdqa %xmm1,%xmm11
  movdqa %xmm9,%xmm1
  punpcklwd %xmm11,%xmm1
  punpckhwd %xmm11,%xmm9
  movdqa -0x48(%rsp),%xmm11
  paddd  %xmm1,%xmm0
  paddd  %xmm9,%xmm3
  paddd  %xmm13,%xmm0
  paddd  %xmm13,%xmm3
  psrad  $0xf,%xmm0
  psrad  $0xf,%xmm3
  movdqa %xmm0,%xmm6
  punpcklwd %xmm3,%xmm0
  punpckhwd %xmm3,%xmm6
  movdqa -0x28(%rsp),%xmm3
  movdqa %xmm0,%xmm1
  punpckhwd %xmm6,%xmm1
  punpcklwd %xmm6,%xmm0
  movdqa %xmm3,%xmm9
  punpcklwd %xmm1,%xmm0
  pmullw %xmm4,%xmm9
  pmulhuw %xmm3,%xmm4
  movdqa -0x78(%rsp),%xmm3
  pand   %xmm14,%xmm0
  movdqa %xmm3,%xmm6
  pmullw %xmm2,%xmm6
  pmulhuw %xmm3,%xmm2
  movdqa %xmm9,%xmm8
  punpckhwd %xmm4,%xmm9
  punpcklwd %xmm4,%xmm8
  movdqa %xmm6,%xmm3
  punpckhwd %xmm2,%xmm6
  punpcklwd %xmm2,%xmm3
  paddd  %xmm9,%xmm6
  paddd  %xmm8,%xmm3
  movdqa %xmm11,%xmm8
  pmullw %xmm12,%xmm8
  pmulhuw %xmm12,%xmm11
  movdqa %xmm11,%xmm10
  movdqa %xmm8,%xmm11
  punpcklwd %xmm10,%xmm11
  punpckhwd %xmm10,%xmm8
  movdqa -0x18(%rsp),%xmm10
  paddd  %xmm11,%xmm3
  paddd  %xmm8,%xmm6
  movdqa -0x58(%rsp),%xmm11
  paddd  %xmm13,%xmm3
  paddd  %xmm13,%xmm6
  movdqa %xmm10,%xmm1
  psrad  $0xf,%xmm6
  psrad  $0xf,%xmm3
  punpcklbw %xmm15,%xmm1
  movdqa %xmm3,%xmm2
  punpcklwd %xmm6,%xmm3
  punpckhwd %xmm6,%xmm2
  movdqa %xmm3,%xmm4
  movdqa -0x8(%rsp),%xmm6
  punpckhwd %xmm2,%xmm4
  punpcklwd %xmm2,%xmm3
  movdqu -0x11(%rax),%xmm2
  punpcklwd %xmm4,%xmm3
  movdqa %xmm6,%xmm4
  punpckhbw %xmm15,%xmm6
  pand   %xmm14,%xmm3
  pand   %xmm14,%xmm2
  punpcklbw %xmm15,%xmm4
  packuswb %xmm3,%xmm0
  movdqu -0x21(%rax),%xmm3
  pand   %xmm14,%xmm3
  packuswb %xmm2,%xmm3
  movdqa %xmm3,%xmm2
  punpckhbw %xmm15,%xmm3
  punpcklbw %xmm15,%xmm2
  paddw  %xmm1,%xmm2
  movdqa %xmm10,%xmm1
  punpckhbw %xmm15,%xmm1
  paddw  %xmm4,%xmm2
  movdqu -0xe(%rdx),%xmm4
  paddw  %xmm3,%xmm1
  movdqu -0x1e(%rdx),%xmm3
  pand   %xmm14,%xmm4
  paddw  %xmm6,%xmm1
  pand   %xmm14,%xmm3
  packuswb %xmm4,%xmm3
  movdqa %xmm11,%xmm4
  movdqa %xmm3,%xmm6
  pmullw %xmm2,%xmm4
  punpckhbw %xmm15,%xmm3
  paddw  %xmm12,%xmm3
  pmulhuw %xmm11,%xmm2
  punpcklbw %xmm15,%xmm6
  movdqa -0x38(%rsp),%xmm12
  movdqa -0x68(%rsp),%xmm11
  paddw  0x8(%rsp),%xmm6
  movdqa %xmm12,%xmm9
  pmullw %xmm7,%xmm9
  pmulhuw %xmm12,%xmm7
  movdqa %xmm2,%xmm10
  movdqa %xmm4,%xmm2
  punpcklwd %xmm10,%xmm2
  punpckhwd %xmm10,%xmm4
  movdqa %xmm9,%xmm8
  punpckhwd %xmm7,%xmm9
  punpcklwd %xmm7,%xmm8
  paddd  %xmm9,%xmm4
  paddd  %xmm8,%xmm2
  movdqa %xmm11,%xmm8
  pmullw %xmm6,%xmm8
  pmulhuw %xmm11,%xmm6
  movdqa %xmm8,%xmm11
  punpckhwd %xmm6,%xmm8
  punpcklwd %xmm6,%xmm11
  paddd  %xmm8,%xmm4
  movdqa %xmm12,%xmm8
  paddd  %xmm11,%xmm2
  paddd  %xmm13,%xmm4
  pmullw %xmm5,%xmm8
  movdqa -0x58(%rsp),%xmm11
  psrad  $0xf,%xmm4
  pmulhuw %xmm12,%xmm5
  paddd  %xmm13,%xmm2
  movdqa -0x68(%rsp),%xmm12
  psrad  $0xf,%xmm2
  movdqa %xmm2,%xmm6
  punpcklwd %xmm4,%xmm2
  punpckhwd %xmm4,%xmm6
  movdqa %xmm2,%xmm4
  punpckhwd %xmm6,%xmm4
  punpcklwd %xmm6,%xmm2
  movdqa %xmm11,%xmm6
  pmullw %xmm1,%xmm6
  pmulhuw %xmm11,%xmm1
  punpcklwd %xmm4,%xmm2
  movdqa %xmm8,%xmm7
  punpckhwd %xmm5,%xmm8
  pand   %xmm14,%xmm2
  punpcklwd %xmm5,%xmm7
  movdqa %xmm6,%xmm4
  punpckhwd %xmm1,%xmm6
  punpcklwd %xmm1,%xmm4
  paddd  %xmm8,%xmm6
  paddd  %xmm7,%xmm4
  movdqa %xmm12,%xmm7
  pmullw %xmm3,%xmm7
  pmulhuw %xmm12,%xmm3
  movdqa %xmm7,%xmm9
  punpckhwd %xmm3,%xmm7
  punpcklwd %xmm3,%xmm9
  paddd  %xmm7,%xmm6
  paddd  %xmm9,%xmm4
  paddd  %xmm13,%xmm6
  paddd  %xmm13,%xmm4
  psrad  $0xf,%xmm6
  psrad  $0xf,%xmm4
  movdqa %xmm4,%xmm1
  punpcklwd %xmm6,%xmm4
  punpckhwd %xmm6,%xmm1
  movdqa %xmm4,%xmm3
  punpckhwd %xmm1,%xmm3
  punpcklwd %xmm1,%xmm4
  movdqa %xmm0,%xmm1
  punpcklwd %xmm3,%xmm4
  pand   %xmm14,%xmm4
  packuswb %xmm4,%xmm2
  punpcklbw %xmm2,%xmm1
  punpckhbw %xmm2,%xmm0
  movups %xmm1,-0x20(%r9)
  movups %xmm0,-0x10(%r9)
  cmp    %rax,%r10
  jne    L154
  mov    %ebx,%eax
  shl    $0x4,%eax
  mov    %eax,%edx
  neg    %eax
  add    %rdx,%rdx
  lea    (%rcx,%rax,2),%eax
  lea    (%rsi,%rdx,1),%r9
  lea    (%r8,%rdx,1),%r10
  add    %rdi,%rdx
  lea    (%rax,%rdx,1),%ebx
  nopw   0x0(%rax,%rax,1)
L60:
  movzbl 0x2(%rdx),%ebp
  movzbl (%rdx),%eax
  add    $0x2,%r10
  add    $0x2,%rdx
  add    $0x2,%r9
  add    %ebp,%eax
  movzbl -0x1(%rdx),%ebp
  imul   $0x1082,%eax,%eax
  imul   $0x40d2,%ebp,%ebp
  add    %ebp,%eax
  movzbl -0x1(%r9),%ebp
  imul   $0xc97,%ebp,%ebp
  lea    0x80000(%rax,%rbp,1),%eax
  sar    $0xf,%eax
  mov    %al,-0x2(%r10)
  movzbl 0x1(%rdx),%ebp
  movzbl -0x1(%rdx),%eax
  movzbl 0x1(%r9),%r12d
  add    %ebp,%eax
  movzbl (%r9),%ebp
  add    %ebp,%eax
  movzbl (%rdx),%ebp
  imul   $0x159b,%eax,%eax
  imul   $0x2105,%ebp,%ebp
  add    %ebp,%eax
  movzbl -0x1(%r9),%ebp
  add    %r12d,%ebp
  imul   $0x64b,%ebp,%ebp
  lea    0x80000(%rax,%rbp,1),%eax
  sar    $0xf,%eax
  mov    %al,-0x1(%r10)
  mov    %ebx,%eax
  sub    %edx,%eax
  cmp    $0x2,%eax
  jg     L60
L29:
  shr    %r11d
  lea    0x1(%r11),%eax
  neg    %r11d
  add    %rax,%rax
  lea    -0x2(%rcx,%r11,2),%ecx
  add    %rax,%rdi
  add    %rax,%rsi
  add    %rax,%r8
L1:
  movzbl 0x1(%rdi),%edx
  movzbl (%rdi),%eax
  imul   $0x40d2,%edx,%r9d
  movzbl 0x1(%rsi),%edx
  imul   $0xc97,%edx,%edx
  cmp    $0x2,%ecx
  je     L23
  imul   $0x2105,%eax,%eax
  add    %r9d,%eax
  lea    0x80000(%rdx,%rax,1),%eax
  sar    $0xf,%eax
  mov    %al,(%r8)
  add    $0x18,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
  nopw   0x0(%rax,%rax,1)
L41:
  imul   $0x2105,%r8d,%r8d
  imul   $0xc97,%r10d,%r10d
  add    %edx,%r8d
  lea    0x80000(%r8,%r10,1),%edx
  sar    $0xf,%edx
  jmp    L150
  nopl   0x0(%rax)
L34:
  imul   $0x2105,%r11d,%r11d
  imul   $0xc97,%edx,%edx
  add    %r10d,%r11d
  lea    0x80000(%r11,%rdx,1),%edx
  sar    $0xf,%edx
  mov    %dl,(%rax)
  movzbl 0x2(%rdi),%r10d
  movzbl (%rdi),%edx
  movzbl 0x2(%rsi),%r11d
  add    %r10d,%edx
  movzbl 0x1(%rsi),%r10d
  add    %r10d,%edx
  movzbl (%rsi),%r10d
  imul   $0x159b,%edx,%edx
  add    %r11d,%r10d
  imul   $0x1082,%r10d,%r10d
  add    %r10d,%edx
  movzbl 0x1(%rdi),%r10d
  imul   $0xc97,%r10d,%r10d
  lea    0x80000(%rdx,%r10,1),%edx
  sar    $0xf,%edx
  jmp    L100
  nopl   0x0(%rax,%rax,1)
L23:
  movzbl 0x2(%rdi),%ecx
  add    %ecx,%eax
  imul   $0x1082,%eax,%eax
  add    %r9d,%eax
  lea    0x80000(%rdx,%rax,1),%eax
  sar    $0xf,%eax
  mov    %al,(%r8)
  movzbl 0x2(%rsi),%edx
  movzbl 0x1(%rdi),%eax
  add    %edx,%eax
  movzbl 0x2(%rdi),%edx
  imul   $0x2069,%eax,%eax
  imul   $0x2105,%edx,%edx
  add    %edx,%eax
  movzbl 0x1(%rsi),%edx
  imul   $0xc97,%edx,%edx
  lea    0x80000(%rax,%rdx,1),%eax
  sar    $0xf,%eax
  mov    %al,0x1(%r8)
  add    $0x18,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
  nopl   0x0(%rax)
L159:
  movzbl 0x2(%rdi),%ecx
  add    %ecx,%edx
  imul   $0x64b,%edx,%edx
  lea    0x80000(%rax,%rdx,1),%eax
  sar    $0xf,%eax
  mov    %al,(%r8)
  movzbl 0x2(%rsi),%edx
  movzbl 0x1(%rdi),%eax
  add    %edx,%eax
  movzbl 0x1(%rsi),%edx
  imul   $0x2069,%eax,%eax
  imul   $0x2105,%edx,%edx
  add    %edx,%eax
  movzbl 0x2(%rdi),%edx
  imul   $0xc97,%edx,%edx
  lea    0x80000(%rax,%rdx,1),%eax
  sar    $0xf,%eax
  mov    %al,0x1(%r8)
  add    $0x18,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
  cs nopw 0x0(%rax,%rax,1)
L191:
  mov    %r11d,%eax
  mov    %r8,%r10
  mov    %rsi,%r9
  mov    %rdi,%rdx
  shr    %eax
  add    $0x1,%eax
  lea    (%rdi,%rax,2),%rbx
  nopl   (%rax)
L103:
  movzbl 0x2(%rdx),%ebp
  movzbl (%rdx),%eax
  add    $0x2,%r10
  add    $0x2,%rdx
  add    $0x2,%r9
  add    %ebp,%eax
  movzbl -0x1(%rdx),%ebp
  imul   $0x1082,%eax,%eax
  imul   $0x40d2,%ebp,%ebp
  add    %ebp,%eax
  movzbl -0x1(%r9),%ebp
  imul   $0xc97,%ebp,%ebp
  lea    0x80000(%rax,%rbp,1),%eax
  sar    $0xf,%eax
  mov    %al,-0x2(%r10)
  movzbl 0x1(%rdx),%ebp
  movzbl -0x1(%rdx),%eax
  movzbl 0x1(%r9),%r12d
  add    %ebp,%eax
  movzbl (%r9),%ebp
  add    %ebp,%eax
  movzbl (%rdx),%ebp
  imul   $0x159b,%eax,%eax
  imul   $0x2105,%ebp,%ebp
  add    %ebp,%eax
  movzbl -0x1(%r9),%ebp
  add    %r12d,%ebp
  imul   $0x64b,%ebp,%ebp
  lea    0x80000(%rax,%rbp,1),%eax
  sar    $0xf,%eax
  mov    %al,-0x1(%r10)
  cmp    %rbx,%rdx
  jne    L103
  jmp    L29
  nopl   0x0(%rax,%rax,1)
L169:
  mov    %ebx,%eax
  mov    %r8,%r11
  mov    %rsi,%r9
  mov    %rdi,%rdx
  shr    %eax
  add    $0x1,%eax
  lea    (%rdi,%rax,2),%rbp
  nopl   0x0(%rax)
L65:
  movzbl 0x1(%rdx),%eax
  add    $0x2,%r11
  add    $0x2,%rdx
  movzbl (%rdx),%r12d
  movzbl 0x1(%r9),%r10d
  add    $0x2,%r9
  imul   $0x40d2,%eax,%eax
  imul   $0x2105,%r10d,%r10d
  add    %eax,%r10d
  movzbl -0x2(%rdx),%eax
  add    %r12d,%eax
  imul   $0x64b,%eax,%eax
  lea    0x80000(%r10,%rax,1),%eax
  sar    $0xf,%eax
  mov    %al,-0x2(%r11)
  movzbl 0x1(%rdx),%r10d
  movzbl -0x1(%rdx),%eax
  movzbl 0x1(%r9),%r12d
  add    %r10d,%eax
  movzbl (%r9),%r10d
  add    %r10d,%eax
  movzbl -0x1(%r9),%r10d
  imul   $0x159b,%eax,%eax
  add    %r12d,%r10d
  imul   $0x1082,%r10d,%r10d
  add    %r10d,%eax
  movzbl (%rdx),%r10d
  imul   $0xc97,%r10d,%r10d
  lea    0x80000(%rax,%r10,1),%eax
  sar    $0xf,%eax
  mov    %al,-0x1(%r11)
  cmp    %rbp,%rdx
  jne    L65
  jmp    L108
```

tool_calls: name: extract_symbolic_data
arguments: label: D159
type_infered: byte[16]
name: extract_symbolic_data
arguments: label: D108
type_infered: byte[16]
name: extract_symbolic_data
arguments: label: D118
type_infered: byte[16]
name: extract_symbolic_data
arguments: label: D83
type_infered: byte[16]
name: extract_symbolic_data
arguments: label: D16
type_infered: byte[16]
name: extract_symbolic_data
arguments: label: D94
type_infered: byte[16]
name: extract_symbolic_data
arguments: label: D54
type_infered: byte[16]
name: extract_symbolic_data
arguments: label: D158
type_infered: byte[16]

tool: {"D159": [0x05,0x21,0x05,0x21,0x05,0x21,0x05,0x21,0x05,0x21,0x05,0x21,0x05,0x21,0x05,0x21]}

tool: {"D108": [0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00]}

tool: {"D118": [0x00,0x00,0x08,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x08,0x00]}

tool: {"D83": [0xd2,0x40,0xd2,0x40,0xd2,0x40,0xd2,0x40,0xd2,0x40,0xd2,0x40,0xd2,0x40,0xd2,0x40]}

tool: {"D16": [0x4b,0x06,0x4b,0x06,0x4b,0x06,0x4b,0x06,0x4b,0x06,0x4b,0x06,0x4b,0x06,0x4b,0x06]}

tool: {"D94": [0x82,0x10,0x82,0x10,0x82,0x10,0x82,0x10,0x82,0x10,0x82,0x10,0x82,0x10,0x82,0x10]}

tool: {"D54": [0x9b,0x15,0x9b,0x15,0x9b,0x15,0x9b,0x15,0x9b,0x15,0x9b,0x15,0x9b,0x15,0x9b,0x15]}

tool: {"D158": [0x97,0x0c,0x97,0x0c,0x97,0x0c,0x97,0x0c,0x97,0x0c,0x97,0x0c,0x97,0x0c,0x97,0x0c]}

assistant: ```c
void v4lconvert_border_bayer_line_to_y(const unsigned char *bayer, const unsigned char *adjacent_bayer, unsigned char *y, int width, int start_with_green, int blue_line) {
  int t0, t1;
  if (start_with_green) {
    if (blue_line) {
      *y++ = (8453 * adjacent_bayer[0] + 16594 * bayer[0] + 3223 * bayer[1] + 524288) >> 15;
    } else {
      *y++ = (8453 * bayer[1] + 16594 * bayer[0] + 3223 * adjacent_bayer[0] + 524288) >> 15;
    }
    t0 = bayer[0] + bayer[2] + adjacent_bayer[1];
    t1 = adjacent_bayer[0] + adjacent_bayer[2];
    if (blue_line) {
      *y++ = (4226 * t1 + 5531 * t0 + 3223 * bayer[1] + 524288) >> 15;
    } else {
      *y++ = (8453 * bayer[1] + 5531 * t0 + 1611 * t1 + 524288) >> 15;
    }
    bayer++;
    adjacent_bayer++;
    width -= 2;
  } else {
    t0 = bayer[1] + adjacent_bayer[0];
    if (blue_line) {
      *y++ = (8453 * adjacent_bayer[1] + 8297 * t0 + 3223 * bayer[0] + 524288) >> 15;
    } else {
      *y++ = (8453 * bayer[0] + 8297 * t0 + 3223 * adjacent_bayer[1] + 524288) >> 15;
    }
    width--;
  }
  if (blue_line) {
    for (; width > 2; width -= 2) {
      t0 = bayer[0] + bayer[2];
      *y++ = (8453 * adjacent_bayer[1] + 16594 * bayer[1] + 1611 * t0 + 524288) >> 15;
      bayer++;
      adjacent_bayer++;
      t0 = bayer[0] + bayer[2] + adjacent_bayer[1];
      t1 = adjacent_bayer[0] + adjacent_bayer[2];
      *y++ = (4226 * t1 + 5531 * t0 + 3223 * bayer[1] + 524288) >> 15;
      bayer++;
      adjacent_bayer++;
    }
  } else {
    for (; width > 2; width -= 2) {
      t0 = bayer[0] + bayer[2];
      *y++ = (4226 * t0 + 16594 * bayer[1] + 3223 * adjacent_bayer[1] + 524288) >> 15;
      bayer++;
      adjacent_bayer++;
      t0 = bayer[0] + bayer[2] + adjacent_bayer[1];
      t1 = adjacent_bayer[0] + adjacent_bayer[2];
      *y++ = (8453 * bayer[1] + 5531 * t0 + 1611 * t1 + 524288) >> 15;
      bayer++;
      adjacent_bayer++;
    }
  }
  if (width == 2) {
    t0 = bayer[0] + bayer[2];
    if (blue_line) {
      *y++ = (8453 * adjacent_bayer[1] + 16594 * bayer[1] + 1611 * t0 + 524288) >> 15;
    } else {
      *y++ = (4226 * t0 + 16594 * bayer[1] + 3223 * adjacent_bayer[1] + 524288) >> 15;
    }
    t0 = bayer[1] + adjacent_bayer[2];
    if (blue_line) {
      *y++ = (8453 * adjacent_bayer[1] + 8297 * t0 + 3223 * bayer[2] + 524288) >> 15;
    } else {
      *y++ = (8453 * bayer[2] + 8297 * t0 + 3223 * adjacent_bayer[1] + 524288) >> 15;
    }
  } else {
    if (blue_line) {
      *y++ = (8453 * adjacent_bayer[1] + 16594 * bayer[1] + 3223 * bayer[0] + 524288) >> 15;
    } else {
      *y++ = (8453 * bayer[0] + 16594 * bayer[1] + 3223 * adjacent_bayer[1] + 524288) >> 15;
    }
  }
}
```