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

```asm
<is_a_fast_interface_type>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %rdi,-0x18(%rbp)
  mov    -0x18(%rbp),%rax
  mov    %rax,%rdi
  call   <make_lower_temp@plt>
  mov    %eax,%edx
  lea    D51(%rip),%rax
  mov    %rax,%rsi
  mov    %edx,%edi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L99
  mov    -0x18(%rbp),%rax
  mov    %rax,%rdi
  call   <make_lower_temp@plt>
  mov    %eax,%edx
  lea    D82(%rip),%rax
  mov    %rax,%rsi
  mov    %edx,%edi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L99
  mov    -0x18(%rbp),%rax
  mov    %rax,%rdi
  call   <make_lower_temp@plt>
  mov    %eax,%edx
  lea    D106(%rip),%rax
  mov    %rax,%rsi
  mov    %edx,%edi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L99
  mov    -0x18(%rbp),%rax
  mov    %rax,%rdi
  call   <make_lower_temp@plt>
  mov    %eax,%edx
  lea    D139(%rip),%rax
  mov    %rax,%rsi
  mov    %edx,%edi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L99
  mov    -0x18(%rbp),%rax
  mov    %rax,%rdi
  call   <make_lower_temp@plt>
  mov    %eax,%edx
  lea    D79(%rip),%rax
  mov    %rax,%rsi
  mov    %edx,%edi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L99
  mov    -0x18(%rbp),%rax
  mov    %rax,%rdi
  call   <make_lower_temp@plt>
  mov    %eax,%edx
  lea    D55(%rip),%rax
  mov    %rax,%rsi
  mov    %edx,%edi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L99
  mov    -0x18(%rbp),%rax
  mov    %rax,%rdi
  call   <make_lower_temp@plt>
  mov    %eax,%edx
  lea    D129(%rip),%rax
  mov    %rax,%rsi
  mov    %edx,%edi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L99
  mov    -0x18(%rbp),%rax
  mov    %rax,%rdi
  call   <make_lower_temp@plt>
  mov    %eax,%edx
  lea    D110(%rip),%rax
  mov    %rax,%rsi
  mov    %edx,%edi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L99
  mov    -0x18(%rbp),%rax
  mov    %rax,%rdi
  call   <make_lower_temp@plt>
  mov    %eax,%edx
  lea    D86(%rip),%rax
  mov    %rax,%rsi
  mov    %edx,%edi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L99
  mov    -0x18(%rbp),%rax
  mov    %rax,%rdi
  call   <make_lower_temp@plt>
  mov    %eax,%edx
  lea    D17(%rip),%rax
  mov    %rax,%rsi
  mov    %edx,%edi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L99
  mov    -0x18(%rbp),%rax
  mov    %rax,%rdi
  call   <make_lower_temp@plt>
  mov    %eax,%edx
  lea    D15(%rip),%rax
  mov    %rax,%rsi
  mov    %edx,%edi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L99
  mov    -0x18(%rbp),%rax
  mov    %rax,%rdi
  call   <make_lower_temp@plt>
  mov    %eax,%edx
  lea    D80(%rip),%rax
  mov    %rax,%rsi
  mov    %edx,%edi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L99
  mov    -0x18(%rbp),%rax
  mov    %rax,%rdi
  call   <make_lower_temp@plt>
  mov    %eax,%edx
  lea    D135(%rip),%rax
  mov    %rax,%rsi
  mov    %edx,%edi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L99
  mov    -0x18(%rbp),%rax
  mov    %rax,%rdi
  call   <make_lower_temp@plt>
  mov    %eax,%edx
  lea    D89(%rip),%rax
  mov    %rax,%rsi
  mov    %edx,%edi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L50
L99:
  mov    $0x1,%eax
  jmp    L87
L50:
  mov    $0x0,%eax
L87:
  mov    %eax,-0x4(%rbp)
  mov    -0x4(%rbp),%eax
  leave
  ret
```

tool_calls: name: parse_data
arguments: data_tag: D51
datatype: string
name: parse_data
arguments: data_tag: D82
datatype: string
name: parse_data
arguments: data_tag: D106
datatype: string
name: parse_data
arguments: data_tag: D139
datatype: string
name: parse_data
arguments: data_tag: D79
datatype: string
name: parse_data
arguments: data_tag: D55
datatype: string
name: parse_data
arguments: data_tag: D129
datatype: string
name: parse_data
arguments: data_tag: D110
datatype: string
name: parse_data
arguments: data_tag: D86
datatype: string
name: parse_data
arguments: data_tag: D17
datatype: string
name: parse_data
arguments: data_tag: D15
datatype: string
name: parse_data
arguments: data_tag: D80
datatype: string
name: parse_data
arguments: data_tag: D135
datatype: string
name: parse_data
arguments: data_tag: D89
datatype: string

tool: D51: initinputtype

tool: D82: initoutputtype

tool: D106: inputtype

tool: D139: outputtype

tool: D79: continuousstatetype

tool: D55: discretestatetype

tool: D129: constraintstatetype

tool: D110: otherstatetype

tool: D86: parametertype

tool: D17: miscvartype

tool: D15: partialoutputpinputtype

tool: D80: partialcontstatepinputtype

tool: D135: partialdiscstatepinputtype

tool: D89: partialconstrstatepinputtype

assistant: ```c
int is_a_fast_interface_type(char *str) {
  int retval;
  retval = (!strcmp(make_lower_temp(str), "initinputtype") || !strcmp(make_lower_temp(str), "initoutputtype") || !strcmp(make_lower_temp(str), "inputtype") || !strcmp(make_lower_temp(str), "outputtype") || !strcmp(make_lower_temp(str), "continuousstatetype") || !strcmp(make_lower_temp(str), "discretestatetype") || !strcmp(make_lower_temp(str), "constraintstatetype") || !strcmp(make_lower_temp(str), "otherstatetype") || !strcmp(make_lower_temp(str), "parametertype") || !strcmp(make_lower_temp(str), "miscvartype") || !strcmp(make_lower_temp(str), "partialoutputpinputtype") || !strcmp(make_lower_temp(str), "partialcontstatepinputtype") || !strcmp(make_lower_temp(str), "partialdiscstatepinputtype") || !strcmp(make_lower_temp(str), "partialconstrstatepinputtype") || 0);
  return (retval);
}
```