user: Please show me the C implementation that matches the assembly code listed below:

```asm
<parseScriptCmd>:
  endbr64
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x470,%rsp
  mov    %rdi,%rbx
  mov    %esi,%ebp
  mov    %fs:0x28,%rax
  mov    %rax,0x468(%rsp)
  xor    %eax,%eax
  lea    0x80(%rsp),%rdx
  lea    D66(%rip),%rsi
  call   <sscanf@plt>
  cmpb   $0x23,0x80(%rsp)
  je     L49
  lea    0x80(%rsp),%rdi
  lea    D132(%rip),%rsi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L72
  lea    0x80(%rsp),%r12
  mov    %r12,%rdx
  lea    D55(%rip),%rsi
  mov    %rbx,%rdi
  call   <sscanf@plt>
  mov    $0x4,%edx
  lea    D117(%rip),%rsi
  mov    %r12,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  je     L70
L49:
  mov    0x468(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L87
  add    $0x470,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
L70:
  mov    %ebp,%esi
  lea    D125(%rip),%rdi
  call   <printf@plt>
  mov    $0x0,%edi
  call   <GetResponses@plt>
  jmp    L49
L72:
  lea    0x80(%rsp),%rdi
  mov    $0x6,%edx
  lea    D8(%rip),%rsi
  call   <strncmp@plt>
  test   %eax,%eax
  je     L83
  lea    0x80(%rsp),%rdi
  lea    D63(%rip),%rsi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L97
  lea    0x8(%rsp),%rcx
  lea    0x10(%rsp),%r12
  lea    0xc(%rsp),%r8
  mov    %r12,%rdx
  lea    D16(%rip),%rsi
  mov    %rbx,%rdi
  call   <sscanf@plt>
  pxor   %xmm0,%xmm0
  cvtss2sd 0x8(%rsp),%xmm0
  mov    %ebp,%edx
  pxor   %xmm1,%xmm1
  cvtss2sd 0xc(%rsp),%xmm1
  mov    %r12,%rsi
  lea    D88(%rip),%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  mov    $0x4,%edx
  lea    D77(%rip),%rsi
  mov    %r12,%rdi
  call   <strncmp@plt>
  mov    $0x1,%ebx
  test   %eax,%eax
  jne    L5
L66:
  movss  0xc(%rsp),%xmm1
  movss  0x8(%rsp),%xmm0
  mov    %ebp,%edx
  mov    $0x0,%esi
  mov    %ebx,%edi
  call   <filterTrc@plt>
  jmp    L49
L83:
  mov    %ebp,%esi
  lea    D9(%rip),%rdi
  call   <printf@plt>
  mov    %ebp,%esi
  mov    $0x0,%edi
  call   <ConvRespTrace@plt>
  jmp    L49
L5:
  mov    %r12,%rdi
  mov    $0x3,%edx
  lea    D119(%rip),%rsi
  call   <strncmp@plt>
  test   %eax,%eax
  jne    L84
  mov    $0x3,%ebx
  jmp    L66
L84:
  mov    %r12,%rdi
  mov    $0x2,%edx
  lea    D84(%rip),%rsi
  call   <strncmp@plt>
  test   %eax,%eax
  mov    $0x5,%eax
  cmove  %eax,%ebx
  jmp    L66
L97:
  mov    %rbx,%rsi
  lea    D114(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L49
L87:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: label: D66
type_infered: string
name: extract_symbolic_data
arguments: label: D132
type_infered: string
name: extract_symbolic_data
arguments: label: D55
type_infered: string
name: extract_symbolic_data
arguments: label: D117
type_infered: string
name: extract_symbolic_data
arguments: label: D125
type_infered: string
name: extract_symbolic_data
arguments: label: D8
type_infered: string
name: extract_symbolic_data
arguments: label: D63
type_infered: string
name: extract_symbolic_data
arguments: label: D16
type_infered: string
name: extract_symbolic_data
arguments: label: D88
type_infered: string
name: extract_symbolic_data
arguments: label: D77
type_infered: string
name: extract_symbolic_data
arguments: label: D9
type_infered: string
name: extract_symbolic_data
arguments: label: D119
type_infered: string
name: extract_symbolic_data
arguments: label: D84
type_infered: string
name: extract_symbolic_data
arguments: label: D114
type_infered: string

tool: D66: %s

tool: D132: match

tool: D55: %*s %s

tool: D117: resp

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


tool: D8: deconv

tool: D63: filter

tool: D16: %*s %s %f %f

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


tool: D77: band

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


tool: D119: low

tool: D84: hi

tool: D114: 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);
  }
}
```