user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<condition_reduction>:
  endbr64
  movups (%rdi),%xmm2
  movaps %xmm0,%xmm1
  movups 0x10(%rdi),%xmm3
  shufps $0x0,%xmm1,%xmm1
  movaps %xmm2,%xmm0
  movaps %xmm2,%xmm4
  movdqa D60(%rip),%xmm2
  cmpltps %xmm1,%xmm0
  andps  %xmm0,%xmm4
  pand   %xmm0,%xmm2
  movaps %xmm3,%xmm0
  cmpltps %xmm1,%xmm0
  movaps %xmm0,%xmm5
  andps  %xmm0,%xmm3
  andnps %xmm4,%xmm5
  orps   %xmm3,%xmm5
  movdqa D48(%rip),%xmm3
  pand   %xmm0,%xmm3
  pandn  %xmm2,%xmm0
  movdqa %xmm0,%xmm2
  por    %xmm3,%xmm2
  movups 0x20(%rdi),%xmm3
  movaps %xmm3,%xmm0
  cmpltps %xmm1,%xmm0
  movaps %xmm0,%xmm4
  andps  %xmm0,%xmm3
  andnps %xmm5,%xmm4
  orps   %xmm3,%xmm4
  movdqa D36(%rip),%xmm3
  pand   %xmm0,%xmm3
  pandn  %xmm2,%xmm0
  movdqa %xmm0,%xmm2
  por    %xmm3,%xmm2
  movups 0x30(%rdi),%xmm3
  movaps %xmm3,%xmm0
  cmpltps %xmm1,%xmm0
  movaps %xmm0,%xmm5
  andps  %xmm0,%xmm3
  andnps %xmm4,%xmm5
  orps   %xmm3,%xmm5
  movdqa D74(%rip),%xmm3
  pand   %xmm0,%xmm3
  pandn  %xmm2,%xmm0
  movdqa %xmm0,%xmm2
  por    %xmm3,%xmm2
  movups 0x40(%rdi),%xmm3
  movaps %xmm3,%xmm0
  cmpltps %xmm1,%xmm0
  movaps %xmm0,%xmm4
  andps  %xmm0,%xmm3
  andnps %xmm5,%xmm4
  orps   %xmm3,%xmm4
  movdqa D73(%rip),%xmm3
  pand   %xmm0,%xmm3
  pandn  %xmm2,%xmm0
  movdqa %xmm0,%xmm2
  por    %xmm3,%xmm2
  movups 0x50(%rdi),%xmm3
  movaps %xmm3,%xmm0
  cmpltps %xmm1,%xmm0
  movaps %xmm0,%xmm5
  andps  %xmm0,%xmm3
  andnps %xmm4,%xmm5
  orps   %xmm3,%xmm5
  movdqa D41(%rip),%xmm3
  pand   %xmm0,%xmm3
  pandn  %xmm2,%xmm0
  movdqa %xmm0,%xmm2
  por    %xmm3,%xmm2
  movups 0x60(%rdi),%xmm3
  movaps %xmm3,%xmm0
  cmpltps %xmm1,%xmm0
  movaps %xmm0,%xmm4
  andps  %xmm0,%xmm3
  andnps %xmm5,%xmm4
  orps   %xmm3,%xmm4
  movdqa D21(%rip),%xmm3
  pand   %xmm0,%xmm3
  pandn  %xmm2,%xmm0
  movdqa %xmm0,%xmm2
  por    %xmm3,%xmm2
  movups 0x70(%rdi),%xmm3
  movaps %xmm3,%xmm0
  cmpltps %xmm1,%xmm0
  movaps %xmm0,%xmm1
  andps  %xmm0,%xmm3
  andnps %xmm4,%xmm1
  orps   %xmm3,%xmm1
  movdqa D30(%rip),%xmm3
  pand   %xmm0,%xmm3
  pandn  %xmm2,%xmm0
  por    %xmm3,%xmm0
  pshufd $0x55,%xmm0,%xmm2
  movd   %xmm0,%edi
  movd   %xmm2,%ecx
  movd   %xmm2,%esi
  movdqa %xmm0,%xmm2
  cmp    %ecx,%edi
  punpckhdq %xmm0,%xmm2
  pshufd $0xff,%xmm0,%xmm0
  movd   %xmm2,%edx
  movd   %xmm2,%r8d
  movd   %xmm0,%eax
  cmovae %edi,%esi
  cmp    %edx,%esi
  cmovae %esi,%r8d
  cmp    %eax,%r8d
  jb     L22
  cmp    %edx,%esi
  jae    L26
  unpckhps %xmm1,%xmm1
  movaps %xmm1,%xmm0
  ret
  nopw   0x0(%rax,%rax,1)
L22:
  shufps $0xff,%xmm1,%xmm1
L6:
  movaps %xmm1,%xmm0
  ret
L26:
  cmp    %ecx,%edi
  jae    L6
  shufps $0x55,%xmm1,%xmm1
  movaps %xmm1,%xmm0
  ret
```

tool_calls: name: read_data
arguments: data_label: D60
type_infered: byte[16]
name: read_data
arguments: data_label: D48
type_infered: byte[16]
name: read_data
arguments: data_label: D36
type_infered: byte[16]
name: read_data
arguments: data_label: D74
type_infered: byte[16]
name: read_data
arguments: data_label: D73
type_infered: byte[16]
name: read_data
arguments: data_label: D41
type_infered: byte[16]
name: read_data
arguments: data_label: D21
type_infered: byte[16]
name: read_data
arguments: data_label: D30
type_infered: byte[16]

tool: {"D60": [0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x04,0x00,0x00,0x00]}

tool: {"D48": [0x05,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x08,0x00,0x00,0x00]}

tool: {"D36": [0x09,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00]}

tool: {"D74": [0x0d,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x10,0x00,0x00,0x00]}

tool: {"D73": [0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x14,0x00,0x00,0x00]}

tool: {"D41": [0x15,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x18,0x00,0x00,0x00]}

tool: {"D21": [0x19,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1c,0x00,0x00,0x00]}

tool: {"D30": [0x1d,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00]}

assistant: ```c
float condition_reduction(float *a, float min_v) {
  float last = 0;
  for (int i = 0; i < 32; i++)
    if (a[i] < min_v)
      last = a[i];
  return last;
}
```