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

```asm
<fst3_64>:
  endbr64
  movups (%rdi),%xmm0
  movups 0xf0(%rdi),%xmm1
  push   %rbx
  mov    %rdi,%rbx
  shufps $0x1b,%xmm1,%xmm1
  shufps $0x1b,%xmm0,%xmm0
  movups %xmm1,(%rdi)
  movups 0xe0(%rdi),%xmm1
  movups %xmm0,0xf0(%rdi)
  movups 0x10(%rdi),%xmm0
  shufps $0x1b,%xmm1,%xmm1
  movups %xmm1,0x10(%rdi)
  movups 0xd0(%rdi),%xmm1
  shufps $0x1b,%xmm0,%xmm0
  movups %xmm0,0xe0(%rdi)
  movups 0x20(%rdi),%xmm0
  shufps $0x1b,%xmm1,%xmm1
  movups %xmm1,0x20(%rdi)
  movups 0xc0(%rdi),%xmm1
  shufps $0x1b,%xmm0,%xmm0
  movups %xmm0,0xd0(%rdi)
  movups 0x30(%rdi),%xmm0
  shufps $0x1b,%xmm1,%xmm1
  movups %xmm1,0x30(%rdi)
  movups 0xb0(%rdi),%xmm1
  shufps $0x1b,%xmm0,%xmm0
  movups %xmm0,0xc0(%rdi)
  movups 0x40(%rdi),%xmm0
  shufps $0x1b,%xmm1,%xmm1
  movups %xmm1,0x40(%rdi)
  movups 0xa0(%rdi),%xmm1
  shufps $0x1b,%xmm0,%xmm0
  movups %xmm0,0xb0(%rdi)
  movups 0x50(%rdi),%xmm0
  shufps $0x1b,%xmm1,%xmm1
  movups %xmm1,0x50(%rdi)
  movups 0x90(%rdi),%xmm1
  shufps $0x1b,%xmm0,%xmm0
  movups %xmm0,0xa0(%rdi)
  movups 0x60(%rdi),%xmm0
  shufps $0x1b,%xmm1,%xmm1
  movups %xmm1,0x60(%rdi)
  movups 0x80(%rdi),%xmm1
  shufps $0x1b,%xmm0,%xmm0
  movups %xmm0,0x90(%rdi)
  movups 0x70(%rdi),%xmm0
  shufps $0x1b,%xmm1,%xmm1
  movups %xmm1,0x70(%rdi)
  shufps $0x1b,%xmm0,%xmm0
  movups %xmm0,0x80(%rdi)
  call   <fct3_64@plt>
  movaps D2(%rip),%xmm1
  movups 0x4(%rbx),%xmm0
  movups 0x14(%rbx),%xmm6
  movups 0x34(%rbx),%xmm7
  movups 0x54(%rbx),%xmm3
  movups 0x74(%rbx),%xmm4
  shufps $0x88,%xmm6,%xmm0
  xorps  %xmm1,%xmm0
  movups 0x94(%rbx),%xmm5
  movaps %xmm0,%xmm2
  movss  %xmm0,0x4(%rbx)
  shufps $0x55,%xmm0,%xmm2
  movss  %xmm2,0xc(%rbx)
  movaps %xmm0,%xmm2
  unpckhps %xmm0,%xmm2
  shufps $0xff,%xmm0,%xmm0
  movss  %xmm0,0x1c(%rbx)
  movups 0x24(%rbx),%xmm0
  movss  %xmm2,0x14(%rbx)
  shufps $0x88,%xmm7,%xmm0
  xorps  %xmm1,%xmm0
  movaps %xmm0,%xmm2
  movss  %xmm0,0x24(%rbx)
  shufps $0x55,%xmm0,%xmm2
  movss  %xmm2,0x2c(%rbx)
  movaps %xmm0,%xmm2
  unpckhps %xmm0,%xmm2
  shufps $0xff,%xmm0,%xmm0
  movss  %xmm0,0x3c(%rbx)
  movups 0x44(%rbx),%xmm0
  movss  %xmm2,0x34(%rbx)
  shufps $0x88,%xmm3,%xmm0
  xorps  %xmm1,%xmm0
  movaps %xmm0,%xmm2
  movss  %xmm0,0x44(%rbx)
  shufps $0x55,%xmm0,%xmm2
  movss  %xmm2,0x4c(%rbx)
  movaps %xmm0,%xmm2
  unpckhps %xmm0,%xmm2
  shufps $0xff,%xmm0,%xmm0
  movss  %xmm0,0x5c(%rbx)
  movups 0x64(%rbx),%xmm0
  movss  %xmm2,0x54(%rbx)
  shufps $0x88,%xmm4,%xmm0
  xorps  %xmm1,%xmm0
  movaps %xmm0,%xmm2
  movss  %xmm0,0x64(%rbx)
  shufps $0x55,%xmm0,%xmm2
  movss  %xmm2,0x6c(%rbx)
  movaps %xmm0,%xmm2
  unpckhps %xmm0,%xmm2
  shufps $0xff,%xmm0,%xmm0
  movss  %xmm0,0x7c(%rbx)
  movups 0x84(%rbx),%xmm0
  movss  %xmm2,0x74(%rbx)
  shufps $0x88,%xmm5,%xmm0
  xorps  %xmm1,%xmm0
  movaps %xmm0,%xmm2
  movss  %xmm0,0x84(%rbx)
  shufps $0x55,%xmm0,%xmm2
  movss  %xmm2,0x8c(%rbx)
  movaps %xmm0,%xmm2
  unpckhps %xmm0,%xmm2
  shufps $0xff,%xmm0,%xmm0
  movss  %xmm0,0x9c(%rbx)
  movups 0xa4(%rbx),%xmm0
  movss  %xmm2,0x94(%rbx)
  movups 0xb4(%rbx),%xmm6
  movups 0xd4(%rbx),%xmm7
  shufps $0x88,%xmm6,%xmm0
  xorps  %xmm1,%xmm0
  movaps %xmm0,%xmm2
  movss  %xmm0,0xa4(%rbx)
  shufps $0x55,%xmm0,%xmm2
  movss  %xmm2,0xac(%rbx)
  movaps %xmm0,%xmm2
  unpckhps %xmm0,%xmm2
  shufps $0xff,%xmm0,%xmm0
  movss  %xmm0,0xbc(%rbx)
  movups 0xc4(%rbx),%xmm0
  movss  %xmm2,0xb4(%rbx)
  shufps $0x88,%xmm7,%xmm0
  xorps  %xmm1,%xmm0
  movaps %xmm0,%xmm1
  movss  %xmm0,0xc4(%rbx)
  shufps $0x55,%xmm0,%xmm1
  movss  %xmm1,0xcc(%rbx)
  movaps %xmm0,%xmm1
  unpckhps %xmm0,%xmm1
  shufps $0xff,%xmm0,%xmm0
  movss  %xmm0,0xdc(%rbx)
  movss  D10(%rip),%xmm0
  movss  %xmm1,0xd4(%rbx)
  movss  0xe4(%rbx),%xmm1
  xorps  %xmm0,%xmm1
  movss  %xmm1,0xe4(%rbx)
  movss  0xec(%rbx),%xmm1
  xorps  %xmm0,%xmm1
  movss  %xmm1,0xec(%rbx)
  movss  0xf4(%rbx),%xmm1
  xorps  %xmm0,%xmm1
  movss  %xmm1,0xf4(%rbx)
  movss  0xfc(%rbx),%xmm1
  xorps  %xmm0,%xmm1
  movss  %xmm1,0xfc(%rbx)
  pop    %rbx
  ret
```

tool_calls: name: read_data
arguments: label: D2
type_guessed: byte[16]
name: read_data
arguments: label: D10
type_guessed: byte[4]

tool: {"D2": [0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80]}

tool: {"D10": [0x00,0x00,0x00,0x80]}

assistant: ```c
void fst3_64(float *a) {
  int k;
  float xp;
  ;
  ;
  for (k = 0; k < 32; k++) {
    ;
    xp = a[k];
    a[k] = a[63 - k];
    a[63 - k] = xp;
  };
  fct3_64(a);
  ;
  for (k = 1; k < 64; k += 2) {
    ;
    ;
    a[k] = -a[k];
  };
}
```