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

```asm
<lpfilt>:
  endbr64
  mov    %rdx,%rax
  sub    %rcx,%rax
  cmp    %rax,%rdx
  jbe    L8
  lea    0x0(,%rax,4),%r8
  lea    (%rdi,%r8,1),%rax
  lea    (%rsi,%r8,1),%rcx
  lea    (%rdi,%rdx,4),%rdx
  movss  D150(%rip),%xmm11
  movss  D134(%rip),%xmm10
  movss  D64(%rip),%xmm9
  movss  D90(%rip),%xmm8
  movss  D155(%rip),%xmm7
  movss  D145(%rip),%xmm6
  movss  D33(%rip),%xmm5
  movss  D114(%rip),%xmm4
  movss  D69(%rip),%xmm3
  movss  D130(%rip),%xmm2
L4:
  movss  (%rax),%xmm0
  addss  -0x78(%rax),%xmm0
  mulss  %xmm11,%xmm0
  movss  -0x4(%rax),%xmm1
  addss  -0x74(%rax),%xmm1
  mulss  %xmm10,%xmm1
  addss  %xmm0,%xmm1
  movss  -0x8(%rax),%xmm0
  addss  -0x70(%rax),%xmm0
  mulss  %xmm9,%xmm0
  addss  %xmm1,%xmm0
  movss  -0xc(%rax),%xmm1
  addss  -0x6c(%rax),%xmm1
  mulss  %xmm8,%xmm1
  addss  %xmm0,%xmm1
  movss  -0x10(%rax),%xmm0
  addss  -0x68(%rax),%xmm0
  mulss  %xmm7,%xmm0
  addss  %xmm1,%xmm0
  movss  -0x14(%rax),%xmm1
  addss  -0x64(%rax),%xmm1
  mulss  %xmm6,%xmm1
  addss  %xmm0,%xmm1
  movss  -0x18(%rax),%xmm0
  addss  -0x60(%rax),%xmm0
  mulss  %xmm5,%xmm0
  addss  %xmm1,%xmm0
  movss  -0x1c(%rax),%xmm1
  addss  -0x5c(%rax),%xmm1
  mulss  %xmm4,%xmm1
  addss  %xmm0,%xmm1
  movss  -0x20(%rax),%xmm0
  addss  -0x58(%rax),%xmm0
  mulss  %xmm3,%xmm0
  addss  %xmm1,%xmm0
  movss  -0x24(%rax),%xmm1
  addss  -0x54(%rax),%xmm1
  mulss  %xmm2,%xmm1
  addss  %xmm0,%xmm1
  movss  -0x28(%rax),%xmm0
  addss  -0x50(%rax),%xmm0
  mulss  D31(%rip),%xmm0
  addss  %xmm1,%xmm0
  movss  -0x2c(%rax),%xmm1
  addss  -0x4c(%rax),%xmm1
  mulss  D75(%rip),%xmm1
  addss  %xmm0,%xmm1
  movss  -0x30(%rax),%xmm0
  addss  -0x48(%rax),%xmm0
  mulss  D121(%rip),%xmm0
  addss  %xmm1,%xmm0
  movss  -0x34(%rax),%xmm1
  addss  -0x44(%rax),%xmm1
  mulss  D124(%rip),%xmm1
  addss  %xmm0,%xmm1
  movss  -0x38(%rax),%xmm0
  addss  -0x40(%rax),%xmm0
  mulss  D137(%rip),%xmm0
  addss  %xmm1,%xmm0
  movss  D116(%rip),%xmm1
  mulss  -0x3c(%rax),%xmm1
  addss  %xmm0,%xmm1
  movss  %xmm1,(%rcx)
  add    $0x4,%rax
  add    $0x4,%rcx
  cmp    %rdx,%rax
  jne    L4
L8:
  ret
```

tool_calls: name: parse_data
arguments: data_label: D150
data_type: byte[4]
name: parse_data
arguments: data_label: D134
data_type: byte[4]
name: parse_data
arguments: data_label: D64
data_type: byte[4]
name: parse_data
arguments: data_label: D90
data_type: byte[4]
name: parse_data
arguments: data_label: D155
data_type: byte[4]
name: parse_data
arguments: data_label: D145
data_type: byte[4]
name: parse_data
arguments: data_label: D33
data_type: byte[4]
name: parse_data
arguments: data_label: D114
data_type: byte[4]
name: parse_data
arguments: data_label: D69
data_type: byte[4]
name: parse_data
arguments: data_label: D130
data_type: byte[4]
name: parse_data
arguments: data_label: D31
data_type: byte[4]
name: parse_data
arguments: data_label: D75
data_type: byte[4]
name: parse_data
arguments: data_label: D121
data_type: byte[4]
name: parse_data
arguments: data_label: D124
data_type: byte[4]
name: parse_data
arguments: data_label: D137
data_type: byte[4]
name: parse_data
arguments: data_label: D116
data_type: byte[4]

tool: {"D150": [0x78,0x41,0x1f,0xbc]}

tool: {"D134": [0xaf,0x53,0x2c,0xbc]}

tool: {"D64": [0xe7,0xc5,0x08,0xbc]}

tool: {"D90": [0xfd,0xa2,0x19,0x3a]}

tool: {"D155": [0x1f,0x74,0x56,0x3c]}

tool: {"D145": [0x27,0xcf,0xb1,0x3c]}

tool: {"D33": [0x6a,0xdd,0x96,0x3c]}

tool: {"D114": [0xd9,0x1c,0xb2,0x39]}

tool: {"D69": [0x1d,0xa5,0xd5,0xbc]}

tool: {"D130": [0x51,0x99,0x3a,0xbd]}

tool: {"D31": [0xcd,0x18,0x25,0xbd]}

tool: {"D75": [0xa7,0xda,0x03,0x3a]}

tool: {"D121": [0x61,0x5a,0x95,0x3d]}

tool: {"D124": [0x45,0xf9,0x20,0x3e]}

tool: {"D137": [0x53,0x1f,0x66,0x3e]}

tool: {"D116": [0x40,0x46,0x80,0x3e]}

assistant: ```c
void lpfilt(float inbuf[], float lpbuf[], int32_t len, int32_t nsamp) {
  int32_t j;
  float t;
  for (j = len - nsamp; j < len; j++) {
    t = (inbuf[j] + inbuf[j - 30]) * -0.0097201988f;
    t += (inbuf[j - 1] + inbuf[j - 29]) * -0.0105179986f;
    t += (inbuf[j - 2] + inbuf[j - 28]) * -0.0083479648f;
    t += (inbuf[j - 3] + inbuf[j - 27]) * 5.860774e-4f;
    t += (inbuf[j - 4] + inbuf[j - 26]) * 0.0130892089f;
    t += (inbuf[j - 5] + inbuf[j - 25]) * 0.0217052232f;
    t += (inbuf[j - 6] + inbuf[j - 24]) * 0.0184161253f;
    t += (inbuf[j - 7] + inbuf[j - 23]) * 3.39723e-4f;
    t += (inbuf[j - 8] + inbuf[j - 22]) * -0.0260797087f;
    t += (inbuf[j - 9] + inbuf[j - 21]) * -0.0455563702f;
    t += (inbuf[j - 10] + inbuf[j - 20]) * -0.040306855f;
    t += (inbuf[j - 11] + inbuf[j - 19]) * 5.029835e-4f;
    t += (inbuf[j - 12] + inbuf[j - 18]) * 0.0729262903f;
    t += (inbuf[j - 13] + inbuf[j - 17]) * 0.1572008878f;
    t += (inbuf[j - 14] + inbuf[j - 16]) * 0.2247288674f;
    t += inbuf[j - 15] * 0.250535965f;
    lpbuf[j] = t;
  }
}
```