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

```asm
<RGB_to_YUV>:
  endbr64
  push   %r15
  mov    %rsi,%r10
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  mov    0x40(%rsp),%r12
  mov    0x38(%rsp),%rsi
  test   %r12,%r12
  jle    L21
  movsd  D56(%rip),%xmm11
  mov    %rdx,%r11
  mov    %rcx,%rbx
  xor    %ebp,%ebp
  movsd  D109(%rip),%xmm7
  movsd  D57(%rip),%xmm6
  movsd  D71(%rip),%xmm5
  movsd  D3(%rip),%xmm1
  movsd  D24(%rip),%xmm4
  movsd  D20(%rip),%xmm3
  movsd  D93(%rip),%xmm10
  movsd  D29(%rip),%xmm9
  movsd  D99(%rip),%xmm8
L14:
  test   %rsi,%rsi
  jle    L32
  movsd  D17(%rip),%xmm2
  lea    0x0(,%rbp,4),%rdx
  xor    %eax,%eax
  nopl   0x0(%rax,%rax,1)
L39:
  mov    (%rdi,%rax,8),%r15
  mov    (%r10,%rax,8),%r14
  pxor   %xmm0,%xmm0
  pxor   %xmm12,%xmm12
  mov    (%r11,%rax,8),%r13
  mov    (%rbx,%rax,8),%rcx
  add    %rdx,%r15
  add    %rdx,%r14
  cvtss2sd (%r15),%xmm0
  cvtss2sd (%r14),%xmm12
  mulsd  %xmm11,%xmm0
  add    %rdx,%r13
  mulsd  %xmm10,%xmm12
  addsd  %xmm12,%xmm0
  pxor   %xmm12,%xmm12
  cvtss2sd 0x0(%r13),%xmm12
  mulsd  %xmm9,%xmm12
  addsd  %xmm12,%xmm0
  pxor   %xmm12,%xmm12
  addsd  %xmm8,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rcx,%rdx,1)
  pxor   %xmm0,%xmm0
  mov    (%r8,%rax,8),%rcx
  cvtss2sd (%r15),%xmm0
  cvtss2sd (%r14),%xmm12
  mulsd  %xmm7,%xmm0
  mulsd  %xmm6,%xmm12
  subsd  %xmm12,%xmm0
  pxor   %xmm12,%xmm12
  cvtss2sd 0x0(%r13),%xmm12
  mulsd  %xmm5,%xmm12
  addsd  %xmm12,%xmm0
  pxor   %xmm12,%xmm12
  addsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rcx,%rdx,1)
  pxor   %xmm0,%xmm0
  mov    (%r9,%rax,8),%rcx
  cvtss2sd (%r15),%xmm0
  cvtss2sd (%r14),%xmm12
  mulsd  %xmm4,%xmm0
  add    $0x1,%rax
  mulsd  %xmm3,%xmm12
  subsd  %xmm12,%xmm0
  pxor   %xmm12,%xmm12
  cvtss2sd 0x0(%r13),%xmm12
  mulsd  %xmm2,%xmm12
  subsd  %xmm12,%xmm0
  addsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rcx,%rdx,1)
  cmp    %rax,%rsi
  jne    L39
L32:
  add    $0x1,%rbp
  cmp    %rbp,%r12
  jne    L14
L21:
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D56
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D109
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D57
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D71
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D3
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D24
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D20
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D93
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D29
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D99
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D17
type_guessed: f64

tool: D56: 0.1277

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

tool: D57: 0.3007

tool: D71: 0.3744

tool: D3: 128

tool: D24: 0.5334

tool: D20: 0.3802

tool: D93: 0.5212

tool: D29: 0.21

tool: D99: 16

tool: D17: 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;
}
```