user: 下面的汇编指令对应的C源代码是什么:

```asm
<parseScriptCmd>:
  endbr64
  push   %r13
  mov    %esi,%r13d
  lea    D17(%rip),%rsi
  push   %r12
  push   %rbp
  mov    %rdi,%rbp
  sub    $0x470,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x468(%rsp)
  xor    %eax,%eax
  lea    0x80(%rsp),%r12
  mov    %r12,%rdx
  call   <sscanf@plt>
  cmpb   $0x23,0x80(%rsp)
  je     L128
  cmpl   $0x6374616d,0x80(%rsp)
  je     L41
L18:
  mov    $0x6,%edx
  lea    D44(%rip),%rsi
  mov    %r12,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  je     L113
  cmpl   $0x746c6966,0x80(%rsp)
  je     L56
L115:
  mov    %rbp,%rsi
  lea    D106(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
L128:
  mov    0x468(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L105
  add    $0x470,%rsp
  pop    %rbp
  pop    %r12
  pop    %r13
  ret
  nopl   0x0(%rax)
L41:
  cmpw   $0x68,0x84(%rsp)
  jne    L18
  mov    %r12,%rdx
  lea    D61(%rip),%rsi
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <sscanf@plt>
  mov    $0x4,%edx
  lea    D58(%rip),%rsi
  mov    %r12,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  jne    L128
  mov    %r13d,%esi
  lea    D2(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  xor    %edi,%edi
  call   <GetResponses@plt>
  jmp    L128
  nopl   0x0(%rax)
L113:
  mov    %r13d,%esi
  lea    D59(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    %r13d,%esi
  xor    %edi,%edi
  call   <ConvRespTrace@plt>
  jmp    L128
  nopl   0x0(%rax,%rax,1)
L56:
  cmpw   $0x7265,0x84(%rsp)
  jne    L115
  cmpb   $0x0,0x86(%rsp)
  jne    L115
  lea    0x10(%rsp),%r12
  lea    0x8(%rsp),%rcx
  mov    %rbp,%rdi
  xor    %eax,%eax
  lea    0xc(%rsp),%r8
  mov    %r12,%rdx
  mov    $0x1,%ebp
  lea    D0(%rip),%rsi
  call   <sscanf@plt>
  mov    %r13d,%edx
  mov    %r12,%rsi
  pxor   %xmm0,%xmm0
  lea    D66(%rip),%rdi
  pxor   %xmm1,%xmm1
  mov    $0x2,%eax
  cvtss2sd 0x8(%rsp),%xmm0
  cvtss2sd 0xc(%rsp),%xmm1
  call   <printf@plt>
  mov    $0x4,%edx
  lea    D38(%rip),%rsi
  mov    %r12,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  jne    L133
  nopl   0x0(%rax)
L159:
  movss  0xc(%rsp),%xmm1
  movss  0x8(%rsp),%xmm0
  xor    %esi,%esi
  mov    %ebp,%edi
  mov    %r13d,%edx
  call   <filterTrc@plt>
  jmp    L128
L133:
  mov    $0x3,%edx
  lea    D23(%rip),%rsi
  mov    %r12,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  jne    L39
  mov    $0x3,%ebp
  jmp    L159
  nopl   0x0(%rax)
L39:
  mov    $0x2,%edx
  lea    D31(%rip),%rsi
  mov    %r12,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  mov    $0x5,%eax
  cmove  %eax,%ebp
  jmp    L159
L105:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: read_data
arguments: data_label: D17
type: string
name: read_data
arguments: data_label: D44
type: string
name: read_data
arguments: data_label: D106
type: string
name: read_data
arguments: data_label: D61
type: string
name: read_data
arguments: data_label: D58
type: string
name: read_data
arguments: data_label: D2
type: string
name: read_data
arguments: data_label: D59
type: string
name: read_data
arguments: data_label: D0
type: string
name: read_data
arguments: data_label: D66
type: string
name: read_data
arguments: data_label: D38
type: string
name: read_data
arguments: data_label: D23
type: string
name: read_data
arguments: data_label: D31
type: string

tool: D17: %s

tool: D44: deconv

tool: D106: Unrecognize line: %s


tool: D61: %*s %s

tool: D58: resp

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


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


tool: D0: %*s %s %f %f

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


tool: D38: band

tool: D23: low

tool: D31: hi

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