user: What is the c source code of the assembly code below:

```asm
<RGB_to_YUV>:
  endbr64
  push   %r14
  push   %r12
  push   %rbp
  push   %rbx
  mov    0x28(%rsp),%r11
  mov    0x30(%rsp),%r12
  test   %r12,%r12
  jle    L14
  mov    %rdx,%r10
  mov    %rcx,%rbx
  mov    $0x0,%ebp
  movsd  D77(%rip),%xmm10
  movsd  D25(%rip),%xmm9
  movsd  D104(%rip),%xmm8
  movsd  D46(%rip),%xmm7
  movsd  D76(%rip),%xmm6
  movsd  D6(%rip),%xmm5
  movsd  D96(%rip),%xmm4
  movsd  D70(%rip),%xmm1
  movsd  D52(%rip),%xmm3
  movsd  D3(%rip),%xmm2
  jmp    L34
L13:
  mov    (%rbx,%rax,8),%rcx
  mov    (%rdi,%rax,8),%r14
  pxor   %xmm0,%xmm0
  cvtss2sd (%r14,%rdx,1),%xmm0
  mulsd  %xmm10,%xmm0
  mov    (%rsi,%rax,8),%r14
  pxor   %xmm11,%xmm11
  cvtss2sd (%r14,%rdx,1),%xmm11
  mulsd  %xmm9,%xmm11
  addsd  %xmm11,%xmm0
  mov    (%r10,%rax,8),%r14
  pxor   %xmm11,%xmm11
  cvtss2sd (%r14,%rdx,1),%xmm11
  mulsd  %xmm8,%xmm11
  addsd  %xmm11,%xmm0
  addsd  %xmm7,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rcx,%rdx,1)
  mov    (%r8,%rax,8),%rcx
  mov    (%rdi,%rax,8),%r14
  pxor   %xmm0,%xmm0
  cvtss2sd (%r14,%rdx,1),%xmm0
  mulsd  %xmm6,%xmm0
  mov    (%rsi,%rax,8),%r14
  pxor   %xmm11,%xmm11
  cvtss2sd (%r14,%rdx,1),%xmm11
  mulsd  %xmm5,%xmm11
  subsd  %xmm11,%xmm0
  mov    (%r10,%rax,8),%r14
  pxor   %xmm11,%xmm11
  cvtss2sd (%r14,%rdx,1),%xmm11
  mulsd  %xmm4,%xmm11
  addsd  %xmm11,%xmm0
  addsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rcx,%rdx,1)
  mov    (%r9,%rax,8),%rcx
  mov    (%rdi,%rax,8),%r14
  pxor   %xmm0,%xmm0
  cvtss2sd (%r14,%rdx,1),%xmm0
  mulsd  %xmm3,%xmm0
  mov    (%rsi,%rax,8),%r14
  pxor   %xmm11,%xmm11
  cvtss2sd (%r14,%rdx,1),%xmm11
  mulsd  %xmm2,%xmm11
  subsd  %xmm11,%xmm0
  mov    (%r10,%rax,8),%r14
  pxor   %xmm11,%xmm11
  cvtss2sd (%r14,%rdx,1),%xmm11
  mulsd  D109(%rip),%xmm11
  subsd  %xmm11,%xmm0
  addsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rcx,%rdx,1)
  add    $0x1,%rax
  cmp    %rax,%r11
  jne    L13
L40:
  add    $0x1,%rbp
  cmp    %rbp,%r12
  je     L14
L34:
  lea    0x0(,%rbp,4),%rdx
  mov    $0x0,%eax
  test   %r11,%r11
  jg     L13
  jmp    L40
L14:
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r14
  ret
```

tool_calls: name: extract_symbolic_data
arguments: label: D77
datatype: f64
name: extract_symbolic_data
arguments: label: D25
datatype: f64
name: extract_symbolic_data
arguments: label: D104
datatype: f64
name: extract_symbolic_data
arguments: label: D46
datatype: f64
name: extract_symbolic_data
arguments: label: D76
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D6
datatype: f64
name: extract_symbolic_data
arguments: label: D96
datatype: f64
name: extract_symbolic_data
arguments: label: D70
datatype: f64
name: extract_symbolic_data
arguments: label: D52
datatype: f64
name: extract_symbolic_data
arguments: label: D3
datatype: f64
name: extract_symbolic_data
arguments: label: D109
datatype: f64

tool: D77: 0.1277

tool: D25: 0.5212

tool: D104: 0.21

tool: D46: 16

tool: {"D76": [0x59,0x17,0xb7,0xd1,0x00,0xde,0xb2,0xbf]}

tool: D6: 0.3007

tool: D96: 0.3744

tool: D70: 128

tool: D52: 0.5334

tool: D3: 0.3802

tool: D109: 0.1532

assistant: ```c
void RGB_to_YUV(float **R, float **G, float **B, float **Y, float **U, float **V, long nx, long ny) {
  long i, j;
  for (j = 0; j < ny; j++)
    for (i = 0; i < nx; i++) {
      Y[i][j] = (0.1277 * R[i][j] + 0.5212 * G[i][j] + 0.21 * B[i][j]) + 16.0;
      U[i][j] = ((-0.0737 * R[i][j] - 0.3007 * G[i][j] + 0.3744 * B[i][j])) + 128.0;
      V[i][j] = ((0.5334 * R[i][j] - 0.3802 * G[i][j] - 0.1532 * B[i][j])) + 128.0;
    }
  return;
}
```