user: Converte this assembly snippet into its equivalent C code:

```asm
<aligned_block_copy_pf32>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x50,%rsp
  mov    %rdi,-0x38(%rbp)
  mov    %rsi,-0x40(%rbp)
  mov    %edx,-0x44(%rbp)
  mov    -0x38(%rbp),%rax
  mov    %rax,-0x28(%rbp)
  jmp    L11
L6:
  mov    -0x40(%rbp),%rax
  add    $0x100,%rax
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    %rax,%rdi
  call   <__builtin_prefetch@plt>
  mov    -0x40(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x40(%rbp)
  mov    (%rax),%rax
  mov    %rax,-0x20(%rbp)
  mov    -0x40(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x40(%rbp)
  mov    (%rax),%rax
  mov    %rax,-0x18(%rbp)
  mov    -0x40(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x40(%rbp)
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
  mov    -0x40(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x40(%rbp)
  mov    (%rax),%rax
  mov    %rax,-0x8(%rbp)
  mov    -0x28(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x28(%rbp)
  mov    -0x20(%rbp),%rdx
  mov    %rdx,(%rax)
  mov    -0x28(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x28(%rbp)
  mov    -0x18(%rbp),%rdx
  mov    %rdx,(%rax)
  mov    -0x28(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x28(%rbp)
  mov    -0x10(%rbp),%rdx
  mov    %rdx,(%rax)
  mov    -0x28(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x28(%rbp)
  mov    -0x8(%rbp),%rdx
  mov    %rdx,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x100,%rax
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    %rax,%rdi
  call   <__builtin_prefetch@plt>
  mov    -0x40(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x40(%rbp)
  mov    (%rax),%rax
  mov    %rax,-0x20(%rbp)
  mov    -0x40(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x40(%rbp)
  mov    (%rax),%rax
  mov    %rax,-0x18(%rbp)
  mov    -0x40(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x40(%rbp)
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
  mov    -0x40(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x40(%rbp)
  mov    (%rax),%rax
  mov    %rax,-0x8(%rbp)
  mov    -0x28(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x28(%rbp)
  mov    -0x20(%rbp),%rdx
  mov    %rdx,(%rax)
  mov    -0x28(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x28(%rbp)
  mov    -0x18(%rbp),%rdx
  mov    %rdx,(%rax)
  mov    -0x28(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x28(%rbp)
  mov    -0x10(%rbp),%rdx
  mov    %rdx,(%rax)
  mov    -0x28(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x28(%rbp)
  mov    -0x8(%rbp),%rdx
  mov    %rdx,(%rax)
L11:
  subl   $0x40,-0x44(%rbp)
  cmpl   $0x0,-0x44(%rbp)
  jns    L6
  nop
  nop
  leave
  ret
```

assistant: ```c
void aligned_block_copy_pf32(int64_t *__restrict dst_, int64_t *__restrict src, int size) {
  volatile int64_t *dst = dst_;
  int64_t t1, t2, t3, t4;
  while ((size -= 64) >= 0) {
    __builtin_prefetch(src + 32, 0, 0);
    t1 = *src++;
    t2 = *src++;
    t3 = *src++;
    t4 = *src++;
    *dst++ = t1;
    *dst++ = t2;
    *dst++ = t3;
    *dst++ = t4;
    __builtin_prefetch(src + 32, 0, 0);
    t1 = *src++;
    t2 = *src++;
    t3 = *src++;
    t4 = *src++;
    *dst++ = t1;
    *dst++ = t2;
    *dst++ = t3;
    *dst++ = t4;
  }
}
```