pfe_fw_feature_set_val (const struct pfe_fw_feature_t * feature, uint8_t val)
{
  errno_t ret;
  errno_t (*<T6a5>) (void *, int32_t, addr_t, const void *, uint32_t) _1;
  void * _2;
  struct pfe_ct_feature_desc_t * _3;
  long unsigned int _4;
  long unsigned int _5;
  long unsigned int _6;
  long unsigned int _7;
  long unsigned int _8;
  long unsigned int _9;
  long unsigned int _10;
  long unsigned int _11;
  long unsigned int _12;
  long unsigned int _13;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = feature_15(D)->dmem_write_func;
  _2 = feature_15(D)->dmem_rw_func_data;
  _3 = feature_15(D)->ll_data;
  _4 = _3->position;
  _5 = _4 >> 24;
  _6 = _4 >> 8;
  _7 = _6 & 65280;
  _8 = _5 | _7;
  _9 = _4 << 8;
  _10 = _9 & 16711680;
  _11 = _8 | _10;
  _12 = _4 << 24;
  _13 = _11 | _12;
  ret_17 = _1 (_2, -1, _13, &val, 1);
  # DEBUG ret => ret_17
  # DEBUG BEGIN_STMT
  return ret_17;

}


pfe_fw_feature_enabled (const struct pfe_fw_feature_t * feature)
{
  bool_t feature_enabled;
  errno_t ret;
  uint8_t val;
  unsigned char val.2_1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  ret_6 = pfe_fw_feature_get_val (feature_4(D), &val);
  # DEBUG ret => ret_6
  # DEBUG BEGIN_STMT
  if (ret_6 != 0)
    goto <bb 5>; [50.00%]
  else
    goto <bb 3>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  val.2_1 = val;
  if (val.2_1 != 0)
    goto <bb 5>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 4> [local count: 268435456]:
  # DEBUG BEGIN_STMT
  # DEBUG feature_enabled => 0

  <bb 5> [local count: 1073741824]:
  # feature_enabled_2 = PHI <0(2), 1(3), 0(4)>
  # DEBUG feature_enabled => feature_enabled_2
  # DEBUG BEGIN_STMT
  val ={v} {CLOBBER};
  return feature_enabled_2;

}


pfe_fw_feature_get_val (const struct pfe_fw_feature_t * feature, uint8_t * val)
{
  errno_t ret;
  errno_t (*<T6a0>) (void *, int32_t, void *, addr_t, uint32_t) _1;
  void * _2;
  struct pfe_ct_feature_desc_t * _3;
  long unsigned int _4;
  long unsigned int _5;
  long unsigned int _6;
  long unsigned int _7;
  long unsigned int _8;
  long unsigned int _9;
  long unsigned int _10;
  long unsigned int _11;
  long unsigned int _12;
  long unsigned int _13;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = feature_15(D)->dmem_read_func;
  _2 = feature_15(D)->dmem_rw_func_data;
  _3 = feature_15(D)->ll_data;
  _4 = _3->position;
  _5 = _4 >> 24;
  _6 = _4 >> 8;
  _7 = _6 & 65280;
  _8 = _5 | _7;
  _9 = _4 << 8;
  _10 = _9 & 16711680;
  _11 = _8 | _10;
  _12 = _4 << 24;
  _13 = _11 | _12;
  ret_18 = _1 (_2, 0, val_16(D), _13, 1);
  # DEBUG ret => ret_18
  # DEBUG BEGIN_STMT
  return ret_18;

}


pfe_fw_feature_get_def_val (const struct pfe_fw_feature_t * feature, uint8_t * def_val)
{
  struct pfe_ct_feature_desc_t * _1;
  unsigned char _2;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = feature_4(D)->ll_data;
  _2 = _1->def_val;
  *def_val_5(D) = _2;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_fw_feature_is_in_util (const struct pfe_fw_feature_t * feature)
{
  bool_t ret;
  _Bool _1;
  struct pfe_ct_feature_desc_t * _5;
  <unnamed type> _6;
  <unnamed type> _7;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG flags => 0
  # DEBUG BEGIN_STMT
  # DEBUG feature => feature_3(D)
  # DEBUG flags => &flags
  # DEBUG INLINE_ENTRY pfe_fw_feature_get_flags
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _5 = feature_3(D)->ll_data;
  _6 = _5->flags;
  # DEBUG flags => _6
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  # DEBUG feature => NULL
  # DEBUG flags => NULL
  # DEBUG BEGIN_STMT
  _7 = _6 & 64;
  _1 = _7 != 0;
  ret_4 = (bool_t) _1;
  # DEBUG ret => ret_4
  # DEBUG BEGIN_STMT
  # DEBUG D#2 => {CLOBBER}
  # DEBUG flags => D#2
  return ret_4;

}


pfe_fw_feature_is_in_class (const struct pfe_fw_feature_t * feature)
{
  bool_t ret;
  _Bool _1;
  struct pfe_ct_feature_desc_t * _5;
  <unnamed type> _6;
  <unnamed type> _7;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG flags => 0
  # DEBUG BEGIN_STMT
  # DEBUG feature => feature_3(D)
  # DEBUG flags => &flags
  # DEBUG INLINE_ENTRY pfe_fw_feature_get_flags
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _5 = feature_3(D)->ll_data;
  _6 = _5->flags;
  # DEBUG flags => _6
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  # DEBUG feature => NULL
  # DEBUG flags => NULL
  # DEBUG BEGIN_STMT
  _7 = _6 & 32;
  _1 = _7 != 0;
  ret_4 = (bool_t) _1;
  # DEBUG ret => ret_4
  # DEBUG BEGIN_STMT
  # DEBUG D#1 => {CLOBBER}
  # DEBUG flags => D#1
  return ret_4;

}


pfe_fw_feature_get_flags (const struct pfe_fw_feature_t * feature, pfe_ct_feature_flags_t * flags)
{
  struct pfe_ct_feature_desc_t * _1;
  <unnamed type> _2;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = feature_4(D)->ll_data;
  _2 = _1->flags;
  *flags_5(D) = _2;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_fw_feature_get_desc (const struct pfe_fw_feature_t * feature, const char * * desc)
{
  const char * _1;
  struct pfe_ct_feature_desc_t * _2;
  long unsigned int _3;
  long unsigned int _4;
  long unsigned int _5;
  long unsigned int _6;
  long unsigned int _7;
  long unsigned int _8;
  long unsigned int _9;
  long unsigned int _10;
  long unsigned int _11;
  long unsigned int _12;
  const char * _13;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = feature_15(D)->string_base;
  _2 = feature_15(D)->ll_data;
  _3 = _2->description;
  _4 = _3 >> 24;
  _5 = _3 >> 8;
  _6 = _5 & 65280;
  _7 = _4 | _6;
  _8 = _3 << 8;
  _9 = _8 & 16711680;
  _10 = _7 | _9;
  _11 = _3 << 24;
  _12 = _10 | _11;
  _13 = _1 + _12;
  *desc_16(D) = _13;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_fw_feature_get_name (const struct pfe_fw_feature_t * feature, const char * * name)
{
  const char * _1;
  struct pfe_ct_feature_desc_t * _2;
  long unsigned int _3;
  long unsigned int _4;
  long unsigned int _5;
  long unsigned int _6;
  long unsigned int _7;
  long unsigned int _8;
  long unsigned int _9;
  long unsigned int _10;
  long unsigned int _11;
  long unsigned int _12;
  const char * _13;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = feature_15(D)->string_base;
  _2 = feature_15(D)->ll_data;
  _3 = _2->name;
  _4 = _3 >> 24;
  _5 = _3 >> 8;
  _6 = _5 & 65280;
  _7 = _4 | _6;
  _8 = _3 << 8;
  _9 = _8 & 16711680;
  _10 = _7 | _9;
  _11 = _3 << 24;
  _12 = _10 | _11;
  _13 = _1 + _12;
  *name_16(D) = _13;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_fw_feature_set_dmem_funcs (struct pfe_fw_feature_t * feature, errno_t (*dmem_read_func_t) (void *, int32_t, void *, addr_t, uint32_t) read_func, errno_t (*dmem_write_func_t) (void *, int32_t, addr_t, const void *, uint32_t) write_func, void * data)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  feature_2(D)->dmem_read_func = read_func_3(D);
  # DEBUG BEGIN_STMT
  feature_2(D)->dmem_write_func = write_func_5(D);
  # DEBUG BEGIN_STMT
  feature_2(D)->dmem_rw_func_data = data_7(D);
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_fw_feature_set_string_base (struct pfe_fw_feature_t * feature, const char * string_base)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  feature_2(D)->string_base = string_base_3(D);
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_fw_feature_set_ll_data (struct pfe_fw_feature_t * feature, struct pfe_ct_feature_desc_t * ll_data)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  feature_2(D)->ll_data = ll_data_3(D);
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_fw_feature_destroy (const struct pfe_fw_feature_t * feature)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  return;

}


pfe_fw_feature_create (struct pfe_fw_feature_t * feature)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  memset (feature_2(D), 0, 20);
  # DEBUG BEGIN_STMT
  return feature_2(D);

}


