user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<FOO1>:
  endbr64
  movsd  (%rsi),%xmm0
  movsd  %xmm0,(%rdi)
  movsd  0x8(%rsi),%xmm0
  movsd  %xmm0,0x8(%rdi)
  movsd  0x10(%rsi),%xmm0
  movsd  %xmm0,0x10(%rdi)
  movsd  0x18(%rsi),%xmm0
  movsd  %xmm0,0x18(%rdi)
  movsd  0x20(%rsi),%xmm0
  movsd  %xmm0,0x20(%rdi)
  movsd  0x28(%rsi),%xmm0
  movsd  %xmm0,0x28(%rdi)
  movsd  0x30(%rsi),%xmm0
  movsd  %xmm0,0x30(%rdi)
  movsd  0x38(%rsi),%xmm0
  movsd  %xmm0,0x38(%rdi)
  movsd  0x40(%rsi),%xmm0
  movsd  %xmm0,0x40(%rdi)
  movsd  0x48(%rsi),%xmm0
  movsd  %xmm0,0x48(%rdi)
  movsd  0x50(%rsi),%xmm0
  movsd  %xmm0,0x50(%rdi)
  movsd  0x58(%rsi),%xmm0
  movsd  %xmm0,0x58(%rdi)
  movsd  0x60(%rsi),%xmm0
  movsd  %xmm0,0x60(%rdi)
  movsd  0x68(%rsi),%xmm0
  movsd  %xmm0,0x68(%rdi)
  movsd  0x70(%rsi),%xmm0
  movsd  %xmm0,0x70(%rdi)
  movsd  0x78(%rsi),%xmm0
  movsd  %xmm0,0x78(%rdi)
  movsd  0x80(%rsi),%xmm0
  movsd  %xmm0,0x80(%rdi)
  movsd  0x88(%rsi),%xmm0
  movsd  %xmm0,0x88(%rdi)
  movsd  0x90(%rsi),%xmm0
  movsd  %xmm0,0x90(%rdi)
  movsd  0x98(%rsi),%xmm0
  movsd  %xmm0,0x98(%rdi)
  movsd  0xa0(%rsi),%xmm0
  movsd  %xmm0,0xa0(%rdi)
  movsd  0xa8(%rsi),%xmm0
  movsd  %xmm0,0xa8(%rdi)
  movsd  0xb0(%rsi),%xmm0
  movsd  %xmm0,0xb0(%rdi)
  movsd  0xb8(%rsi),%xmm0
  movsd  %xmm0,0xb8(%rdi)
  movsd  0xc0(%rsi),%xmm0
  movsd  %xmm0,0xc0(%rdi)
  movsd  0xc8(%rsi),%xmm0
  movsd  %xmm0,0xc8(%rdi)
  movsd  0xd0(%rsi),%xmm0
  movsd  %xmm0,0xd0(%rdi)
  movsd  0xd8(%rsi),%xmm0
  movsd  %xmm0,0xd8(%rdi)
  movsd  0xe0(%rsi),%xmm0
  movsd  %xmm0,0xe0(%rdi)
  movsd  0xe8(%rsi),%xmm0
  movsd  %xmm0,0xe8(%rdi)
  movsd  0xf0(%rsi),%xmm0
  movsd  %xmm0,0xf0(%rdi)
  movsd  0xf8(%rsi),%xmm0
  movsd  %xmm0,0xf8(%rdi)
  movsd  0x100(%rsi),%xmm0
  movsd  %xmm0,0x100(%rdi)
  movsd  0x108(%rsi),%xmm0
  movsd  %xmm0,0x108(%rdi)
  movsd  0x110(%rsi),%xmm0
  movsd  %xmm0,0x110(%rdi)
  movsd  0x118(%rsi),%xmm0
  movsd  %xmm0,0x118(%rdi)
  movsd  0x120(%rsi),%xmm0
  movsd  %xmm0,0x120(%rdi)
  movsd  0x128(%rsi),%xmm0
  movsd  %xmm0,0x128(%rdi)
  movsd  0x130(%rsi),%xmm0
  movsd  %xmm0,0x130(%rdi)
  movsd  0x138(%rsi),%xmm0
  movsd  %xmm0,0x138(%rdi)
  movsd  0x140(%rsi),%xmm0
  movsd  %xmm0,0x140(%rdi)
  movsd  0x148(%rsi),%xmm0
  movsd  %xmm0,0x148(%rdi)
  movsd  0x150(%rsi),%xmm0
  movsd  %xmm0,0x150(%rdi)
  movsd  0x158(%rsi),%xmm0
  movsd  %xmm0,0x158(%rdi)
  movsd  0x160(%rsi),%xmm0
  movsd  %xmm0,0x160(%rdi)
  movsd  0x168(%rsi),%xmm0
  movsd  %xmm0,0x168(%rdi)
  movsd  0x170(%rsi),%xmm0
  movsd  %xmm0,0x170(%rdi)
  movsd  0x178(%rsi),%xmm0
  movsd  %xmm0,0x178(%rdi)
  mov    $0x10,%eax
  ret
```

assistant: ```c
int FOO1(double *restrict a, double *restrict b, double *restrict c) {
  int i, bytes = 16, len = 24;
  a[0] = b[0];
  a[1] = b[1];
  a[2] = b[2];
  a[3] = b[3];
  a[4] = b[4];
  a[5] = b[5];
  a[6] = b[6];
  a[7] = b[7];
  a[8] = b[8];
  a[9] = b[9];
  a[10] = b[10];
  a[11] = b[11];
  a[12] = b[12];
  a[13] = b[13];
  a[14] = b[14];
  a[15] = b[15];
  a[16] = b[16];
  a[17] = b[17];
  a[18] = b[18];
  a[19] = b[19];
  a[20] = b[20];
  a[21] = b[21];
  a[22] = b[22];
  a[23] = b[23];
  a[24] = b[24];
  a[25] = b[25];
  a[26] = b[26];
  a[27] = b[27];
  a[28] = b[28];
  a[29] = b[29];
  a[30] = b[30];
  a[31] = b[31];
  a[32] = b[32];
  a[33] = b[33];
  a[34] = b[34];
  a[35] = b[35];
  a[36] = b[36];
  a[37] = b[37];
  a[38] = b[38];
  a[39] = b[39];
  a[40] = b[40];
  a[41] = b[41];
  a[42] = b[42];
  a[43] = b[43];
  a[44] = b[44];
  a[45] = b[45];
  a[46] = b[46];
  a[47] = b[47];
  return bytes;
}
```