user: 请将以下的汇编代码转换成C语言代码:

```asm
<parseScriptCmd>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x480,%rsp
  mov    %rdi,-0x478(%rbp)
  mov    %esi,-0x47c(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    -0x3f0(%rbp),%rdx
  mov    -0x478(%rbp),%rax
  lea    D40(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sscanf@plt>
  movzbl -0x3f0(%rbp),%eax
  cmp    $0x23,%al
  je     L72
  lea    -0x3f0(%rbp),%rax
  lea    D88(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L60
  lea    -0x3f0(%rbp),%rdx
  mov    -0x478(%rbp),%rax
  lea    D118(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sscanf@plt>
  lea    -0x3f0(%rbp),%rax
  mov    $0x4,%edx
  lea    D31(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  jne    L91
  mov    -0x47c(%rbp),%eax
  mov    %eax,%esi
  lea    D120(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x0,%edi
  call   <GetResponses@plt>
  jmp    L91
L60:
  lea    -0x3f0(%rbp),%rax
  mov    $0x6,%edx
  lea    D64(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  jne    L143
  mov    -0x47c(%rbp),%eax
  mov    %eax,%esi
  lea    D2(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x47c(%rbp),%eax
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <ConvRespTrace@plt>
  jmp    L91
L143:
  lea    -0x3f0(%rbp),%rax
  lea    D135(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L109
  lea    -0x468(%rbp),%rsi
  lea    -0x46c(%rbp),%rcx
  lea    -0x460(%rbp),%rdx
  mov    -0x478(%rbp),%rax
  mov    %rsi,%r8
  lea    D6(%rip),%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sscanf@plt>
  movss  -0x468(%rbp),%xmm0
  cvtss2sd %xmm0,%xmm0
  movss  -0x46c(%rbp),%xmm1
  pxor   %xmm2,%xmm2
  cvtss2sd %xmm1,%xmm2
  movq   %xmm2,%rcx
  mov    -0x47c(%rbp),%edx
  lea    -0x460(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rcx,%xmm0
  mov    %rax,%rsi
  lea    D100(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  lea    -0x460(%rbp),%rax
  mov    $0x4,%edx
  lea    D81(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  jne    L90
  movl   $0x1,-0x464(%rbp)
  jmp    L145
L90:
  lea    -0x460(%rbp),%rax
  mov    $0x3,%edx
  lea    D41(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  jne    L0
  movl   $0x3,-0x464(%rbp)
  jmp    L145
L0:
  lea    -0x460(%rbp),%rax
  mov    $0x2,%edx
  lea    D105(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  jne    L145
  movl   $0x5,-0x464(%rbp)
L145:
  movss  -0x468(%rbp),%xmm0
  mov    -0x46c(%rbp),%ecx
  mov    -0x47c(%rbp),%edx
  mov    -0x464(%rbp),%eax
  movaps %xmm0,%xmm1
  movd   %ecx,%xmm0
  mov    $0x0,%esi
  mov    %eax,%edi
  call   <filterTrc@plt>
  jmp    L91
L109:
  mov    -0x478(%rbp),%rax
  mov    %rax,%rsi
  lea    D104(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L91
L72:
  nop
L91:
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L63
  call   <__stack_chk_fail@plt>
L63:
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: data_label: D40
type_infered: string
name: retrieve_data
arguments: data_label: D88
type_infered: string
name: retrieve_data
arguments: data_label: D118
type_infered: string
name: retrieve_data
arguments: data_label: D31
type_infered: string
name: retrieve_data
arguments: data_label: D120
type_infered: string
name: retrieve_data
arguments: data_label: D64
type_infered: string
name: retrieve_data
arguments: data_label: D2
type_infered: string
name: retrieve_data
arguments: data_label: D135
type_infered: string
name: retrieve_data
arguments: data_label: D6
type_infered: string
name: retrieve_data
arguments: data_label: D100
type_infered: string
name: retrieve_data
arguments: data_label: D81
type_infered: string
name: retrieve_data
arguments: data_label: D41
type_infered: string
name: retrieve_data
arguments: data_label: D105
type_infered: string
name: retrieve_data
arguments: data_label: D104
type_infered: string

tool: D40: %s

tool: D88: match

tool: D118: %*s %s

tool: D31: resp

tool: D120: : match response (trc #%d)


tool: D64: deconv

tool: D2: : deconvolve (trc #%d)


tool: D135: filter

tool: D6: %*s %s %f %f

tool: D100: : filter %s %f - %f Hz (trc #%d)


tool: D81: band

tool: D41: low

tool: D105: hi

tool: D104: Unrecognize line: %s


assistant: ```c
void parseScriptCmd(char *line, int itrc) {
  char cmd[1000];
  sscanf(line, "%s", cmd);
  if (*cmd == '#')
    return;
  if (!strcmp(cmd, "match")) {
    sscanf(line, "%*s %s", cmd);
    if (!strncmp(cmd, "resp", 4)) {
      printf(": match response (trc #%d)\n", itrc);
      GetResponses(NULL);
    }
  } else if (!strncmp(cmd, "deconv", 6)) {
    printf(": deconvolve (trc #%d)\n", itrc);
    ConvRespTrace(0, itrc);
  } else if (!strcmp(cmd, "filter")) {
    char name[100];
    float flo, fhi;
    int which;
    sscanf(line, "%*s %s %f %f", name, &flo, &fhi);
    printf(": filter %s %f - %f Hz (trc #%d)\n", name, flo, fhi, itrc);
    if (!strncmp(name, "band", 4)) {
      which = 1;
    } else if (!strncmp(name, "low", 3)) {
      which = 3;
    } else if (!strncmp(name, "hi", 2)) {
      which = 5;
    }
    filterTrc(which, 0, itrc, flo, fhi);
  } else {
    printf("Unrecognize line: %s\n", line);
  }
}
```