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

```asm
<fisGetMfParaN>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  lea    D74(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L32
  mov    $0x3,%eax
  jmp    L127
L32:
  mov    -0x8(%rbp),%rax
  lea    D109(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L150
  mov    $0x4,%eax
  jmp    L127
L150:
  mov    -0x8(%rbp),%rax
  lea    D85(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L108
  mov    $0x2,%eax
  jmp    L127
L108:
  mov    -0x8(%rbp),%rax
  lea    D82(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L101
  mov    $0x4,%eax
  jmp    L127
L101:
  mov    -0x8(%rbp),%rax
  lea    D90(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L44
  mov    $0x2,%eax
  jmp    L127
L44:
  mov    -0x8(%rbp),%rax
  lea    D117(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L94
  mov    $0x4,%eax
  jmp    L127
L94:
  mov    -0x8(%rbp),%rax
  lea    D91(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L22
  mov    $0x4,%eax
  jmp    L127
L22:
  mov    -0x8(%rbp),%rax
  lea    D103(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L17
  mov    $0x3,%eax
  jmp    L127
L17:
  mov    -0x8(%rbp),%rax
  lea    D3(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L191
  mov    $0x2,%eax
  jmp    L127
L191:
  mov    -0x8(%rbp),%rax
  lea    D42(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L97
  mov    $0x2,%eax
  jmp    L127
L97:
  mov    -0x8(%rbp),%rax
  lea    D96(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L178
  mov    $0x4,%eax
  jmp    L127
L178:
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  lea    D34(%rip),%rax
  mov    %rax,%rdi
  call   <PRINTF@plt>
  mov    $0x1,%edi
  call   <exit@plt>
  mov    $0x0,%eax
L127:
  leave
  ret
```

tool_calls: name: unpack_data
arguments: data_tag: D74
datatype: string
name: unpack_data
arguments: data_tag: D109
datatype: string
name: unpack_data
arguments: data_tag: D85
datatype: string
name: unpack_data
arguments: data_tag: D82
datatype: string
name: unpack_data
arguments: data_tag: D90
datatype: string
name: unpack_data
arguments: data_tag: D117
datatype: string
name: unpack_data
arguments: data_tag: D91
datatype: string
name: unpack_data
arguments: data_tag: D103
datatype: string
name: unpack_data
arguments: data_tag: D3
datatype: string
name: unpack_data
arguments: data_tag: D42
datatype: string
name: unpack_data
arguments: data_tag: D96
datatype: string
name: unpack_data
arguments: data_tag: D34
datatype: string

tool: D74: trimf

tool: D109: trapmf

tool: D85: gaussmf

tool: D82: gauss2mf

tool: D90: sigmf

tool: D117: dsigmf

tool: D91: psigmf

tool: D103: gbellmf

tool: D3: smf

tool: D42: zmf

tool: D96: pimf

tool: D34: Given MF type (%s) is unknown.


assistant: ```c
int fisGetMfParaN(char *mfType) {
  if (strcmp(mfType, "trimf") == 0)
    return (3);
  if (strcmp(mfType, "trapmf") == 0)
    return (4);
  if (strcmp(mfType, "gaussmf") == 0)
    return (2);
  if (strcmp(mfType, "gauss2mf") == 0)
    return (4);
  if (strcmp(mfType, "sigmf") == 0)
    return (2);
  if (strcmp(mfType, "dsigmf") == 0)
    return (4);
  if (strcmp(mfType, "psigmf") == 0)
    return (4);
  if (strcmp(mfType, "gbellmf") == 0)
    return (3);
  if (strcmp(mfType, "smf") == 0)
    return (2);
  if (strcmp(mfType, "zmf") == 0)
    return (2);
  if (strcmp(mfType, "pimf") == 0)
    return (4);
  PRINTF("Given MF type (%s) is unknown.\n", mfType);
  exit(1);
  return (0);
}
```