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

```asm
<event_is_known>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %rdi,-0x18(%rbp)
  mov    -0x18(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,%edi
  call   <IIO_EVENT_CODE_EXTRACT_CHAN_TYPE@plt>
  mov    %eax,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,%edi
  call   <IIO_EVENT_CODE_EXTRACT_MODIFIER@plt>
  mov    %eax,-0xc(%rbp)
  mov    -0x18(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,%edi
  call   <IIO_EVENT_CODE_EXTRACT_TYPE@plt>
  mov    %eax,-0x8(%rbp)
  mov    -0x18(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,%edi
  call   <IIO_EVENT_CODE_EXTRACT_DIR@plt>
  mov    %eax,-0x4(%rbp)
  cmpl   $0xcb,-0x10(%rbp)
  ja     L34
  cmpl   $0xc1,-0x10(%rbp)
  jae    L32
  cmpl   $0x8b,-0x10(%rbp)
  ja     L103
  cmpl   $0x80,-0x10(%rbp)
  jae    L32
  jmp    L34
L103:
  mov    -0x10(%rbp),%eax
  sub    $0xb1,%eax
  cmp    $0x5,%eax
  jbe    L32
L34:
  mov    $0x0,%eax
  jmp    L122
L32:
  nop
  mov    -0xc(%rbp),%eax
  sub    $0x8c,%eax
  cmp    $0x24,%eax
  jbe    L62
  mov    $0x0,%eax
  jmp    L122
L62:
  nop
  mov    -0x8(%rbp),%eax
  sub    $0xb7,%eax
  cmp    $0x5,%eax
  jbe    L69
  mov    $0x0,%eax
  jmp    L122
L69:
  nop
  mov    -0x4(%rbp),%eax
  sub    $0xbd,%eax
  cmp    $0x3,%eax
  jbe    L109
  mov    $0x0,%eax
  jmp    L122
L109:
  nop
  mov    $0x1,%eax
L122:
  leave
  ret
```

assistant: ```c
bool event_is_known(struct iio_event_data *event) {
  enum iio_chan_type type = IIO_EVENT_CODE_EXTRACT_CHAN_TYPE(event->id);
  enum iio_modifier mod = IIO_EVENT_CODE_EXTRACT_MODIFIER(event->id);
  enum iio_event_type ev_type = IIO_EVENT_CODE_EXTRACT_TYPE(event->id);
  enum iio_event_direction dir = IIO_EVENT_CODE_EXTRACT_DIR(event->id);
  switch (type) {
  case IIO_VOLTAGE:
  case IIO_CURRENT:
  case IIO_POWER:
  case IIO_ACCEL:
  case IIO_ANGL_VEL:
  case IIO_MAGN:
  case IIO_LIGHT:
  case IIO_INTENSITY:
  case IIO_PROXIMITY:
  case IIO_TEMP:
  case IIO_INCLI:
  case IIO_ROT:
  case IIO_ANGL:
  case IIO_TIMESTAMP:
  case IIO_CAPACITANCE:
  case IIO_ALTVOLTAGE:
  case IIO_CCT:
  case IIO_PRESSURE:
  case IIO_HUMIDITYRELATIVE:
  case IIO_ACTIVITY:
  case IIO_STEPS:
  case IIO_ENERGY:
  case IIO_DISTANCE:
  case IIO_VELOCITY:
  case IIO_CONCENTRATION:
  case IIO_RESISTANCE:
  case IIO_PH:
  case IIO_UVINDEX:
  case IIO_GRAVITY:
    break;
  default:
    return false;
  }
  switch (mod) {
  case IIO_NO_MOD:
  case IIO_MOD_X:
  case IIO_MOD_Y:
  case IIO_MOD_Z:
  case IIO_MOD_X_AND_Y:
  case IIO_MOD_X_AND_Z:
  case IIO_MOD_Y_AND_Z:
  case IIO_MOD_X_AND_Y_AND_Z:
  case IIO_MOD_X_OR_Y:
  case IIO_MOD_X_OR_Z:
  case IIO_MOD_Y_OR_Z:
  case IIO_MOD_X_OR_Y_OR_Z:
  case IIO_MOD_LIGHT_BOTH:
  case IIO_MOD_LIGHT_IR:
  case IIO_MOD_ROOT_SUM_SQUARED_X_Y:
  case IIO_MOD_SUM_SQUARED_X_Y_Z:
  case IIO_MOD_LIGHT_CLEAR:
  case IIO_MOD_LIGHT_RED:
  case IIO_MOD_LIGHT_GREEN:
  case IIO_MOD_LIGHT_BLUE:
  case IIO_MOD_LIGHT_UV:
  case IIO_MOD_QUATERNION:
  case IIO_MOD_TEMP_AMBIENT:
  case IIO_MOD_TEMP_OBJECT:
  case IIO_MOD_NORTH_MAGN:
  case IIO_MOD_NORTH_TRUE:
  case IIO_MOD_NORTH_MAGN_TILT_COMP:
  case IIO_MOD_NORTH_TRUE_TILT_COMP:
  case IIO_MOD_RUNNING:
  case IIO_MOD_JOGGING:
  case IIO_MOD_WALKING:
  case IIO_MOD_STILL:
  case IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z:
  case IIO_MOD_I:
  case IIO_MOD_Q:
  case IIO_MOD_CO2:
  case IIO_MOD_VOC:
    break;
  default:
    return false;
  }
  switch (ev_type) {
  case IIO_EV_TYPE_THRESH:
  case IIO_EV_TYPE_MAG:
  case IIO_EV_TYPE_ROC:
  case IIO_EV_TYPE_THRESH_ADAPTIVE:
  case IIO_EV_TYPE_MAG_ADAPTIVE:
  case IIO_EV_TYPE_CHANGE:
    break;
  default:
    return false;
  }
  switch (dir) {
  case IIO_EV_DIR_EITHER:
  case IIO_EV_DIR_RISING:
  case IIO_EV_DIR_FALLING:
  case IIO_EV_DIR_NONE:
    break;
  default:
    return false;
  }
  return true;
}
```