fci_fw_features_cmd (struct fci_msg_t * msg, uint16_t * fci_ret, struct fpp_fw_features_cmd_t * reply_buf, uint32_t * reply_len)
{
  errno_t ret;
  const char * feature_name;
  const char * str;
  struct fpp_fw_features_cmd_t * fp_cmd;
  long unsigned int _1;
  short unsigned int _2;
  int _3;
  char[33] * _4;
  unsigned char _5;
  const char * feature_name.0_6;
  uint8_t * _7;
  const char * feature_name.1_8;
  uint8_t * _9;
  const char * feature_name.2_10;
  fpp_fw_feature_flags_t * _11;
  char[33] * _12;
  const char * feature_name.3_13;
  const char * feature_name.4_14;
  char[129] * _15;
  const char * str.5_16;
  const char * feature_name.6_17;
  uint8_t * _18;
  const char * feature_name.7_19;
  uint8_t * _20;
  const char * feature_name.8_21;
  fpp_fw_feature_flags_t * _22;
  char[33] * _23;
  const char * feature_name.9_24;
  const char * feature_name.10_25;
  char[129] * _26;
  const char * str.11_27;
  errno_t _97;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  *fci_ret_44(D) = 0;
  # DEBUG BEGIN_STMT
  _1 = *reply_len_46(D);
  if (_1 <= 167)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  *fci_ret_44(D) = 65535;
  # DEBUG BEGIN_STMT
  ret_96 = 22;
  # DEBUG ret => ret_96
  goto <bb 33>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  *reply_len_46(D) = 0;
  # DEBUG BEGIN_STMT
  memset (reply_buf_48(D), 0, 168);
  # DEBUG BEGIN_STMT
  fp_cmd_51 = &msg_50(D)->msg_cmd.payload;
  # DEBUG fp_cmd => fp_cmd_51
  # DEBUG BEGIN_STMT
  _2 = fp_cmd_51->action;
  _3 = (int) _2;
  switch (_3) <default: <L34> [INV], case 4: <L2> [INV], case 6: <L8> [INV], case 7: <L21> [INV]>

  <bb 5> :
<L2>:
  # DEBUG BEGIN_STMT
  _4 = &fp_cmd_51->name;
  _5 = fp_cmd_51->val;
  ret_89 = pfe_feature_mgr_set_val (_4, _5);
  # DEBUG ret => ret_89
  # DEBUG BEGIN_STMT
  if (ret_89 != 0)
    goto <bb 6>; [INV]
  else
    goto <bb 33>; [INV]

  <bb 6> :
  # DEBUG BEGIN_STMT
  if (ret_89 == 117)
    goto <bb 7>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 7> :
  # DEBUG BEGIN_STMT
  *fci_ret_44(D) = 62034;
  goto <bb 9>; [INV]

  <bb 8> :
  # DEBUG BEGIN_STMT
  *fci_ret_44(D) = 62033;

  <bb 9> :
  # DEBUG BEGIN_STMT
  ret_92 = 0;
  # DEBUG ret => ret_92
  goto <bb 33>; [INV]

  <bb 10> :
<L8>:
  # DEBUG BEGIN_STMT
  ret_71 = pfe_feature_mgr_get_first (&feature_name);
  # DEBUG ret => ret_71
  # DEBUG BEGIN_STMT
  if (ret_71 != 0)
    goto <bb 11>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 11> :
  # DEBUG BEGIN_STMT
  *fci_ret_44(D) = 62033;
  # DEBUG BEGIN_STMT
  ret_87 = 0;
  # DEBUG ret => ret_87
  goto <bb 33>; [INV]

  <bb 12> :
  # DEBUG BEGIN_STMT
  feature_name.0_6 = feature_name;
  _7 = &reply_buf_48(D)->val;
  ret_73 = pfe_feature_mgr_get_val (feature_name.0_6, _7);
  # DEBUG ret => ret_73
  # DEBUG BEGIN_STMT
  if (ret_73 == 0)
    goto <bb 13>; [INV]
  else
    goto <bb 14>; [INV]

  <bb 13> :
  # DEBUG BEGIN_STMT
  feature_name.1_8 = feature_name;
  _9 = &reply_buf_48(D)->def_val;
  ret_75 = pfe_feature_mgr_get_def_val (feature_name.1_8, _9);
  # DEBUG ret => ret_75

  <bb 14> :
  # ret_28 = PHI <ret_73(12), ret_75(13)>
  # DEBUG ret => ret_28
  # DEBUG BEGIN_STMT
  if (ret_28 == 0)
    goto <bb 15>; [INV]
  else
    goto <bb 16>; [INV]

  <bb 15> :
  # DEBUG BEGIN_STMT
  feature_name.2_10 = feature_name;
  _11 = &reply_buf_48(D)->flags;
  ret_77 = pfe_feature_mgr_get_variant (feature_name.2_10, _11);
  # DEBUG ret => ret_77

  <bb 16> :
  # ret_29 = PHI <ret_28(14), ret_77(15)>
  # DEBUG ret => ret_29
  # DEBUG BEGIN_STMT
  if (ret_29 == 0)
    goto <bb 17>; [INV]
  else
    goto <bb 18>; [INV]

  <bb 17> :
  # DEBUG BEGIN_STMT
  _12 = &reply_buf_48(D)->name;
  feature_name.3_13 = feature_name;
  strncpy (_12, feature_name.3_13, 32);
  # DEBUG BEGIN_STMT
  feature_name.4_14 = feature_name;
  ret_80 = pfe_feature_mgr_get_desc (feature_name.4_14, &str);
  # DEBUG ret => ret_80

  <bb 18> :
  # ret_30 = PHI <ret_29(16), ret_80(17)>
  # DEBUG ret => ret_30
  # DEBUG BEGIN_STMT
  if (ret_30 == 0)
    goto <bb 19>; [INV]
  else
    goto <bb 20>; [INV]

  <bb 19> :
  # DEBUG BEGIN_STMT
  _15 = &reply_buf_48(D)->desc;
  str.5_16 = str;
  strncpy (_15, str.5_16, 128);
  # DEBUG BEGIN_STMT
  *reply_len_46(D) = 168;
  # DEBUG BEGIN_STMT
  *fci_ret_44(D) = 0;
  goto <bb 33>; [INV]

  <bb 20> :
  # DEBUG BEGIN_STMT
  *reply_len_46(D) = 168;
  # DEBUG BEGIN_STMT
  *fci_ret_44(D) = 65535;
  goto <bb 33>; [INV]

  <bb 21> :
<L21>:
  # DEBUG BEGIN_STMT
  ret_53 = pfe_feature_mgr_get_next (&feature_name);
  # DEBUG ret => ret_53
  # DEBUG BEGIN_STMT
  if (ret_53 != 0)
    goto <bb 22>; [INV]
  else
    goto <bb 23>; [INV]

  <bb 22> :
  # DEBUG BEGIN_STMT
  *fci_ret_44(D) = 62033;
  # DEBUG BEGIN_STMT
  ret_69 = 0;
  # DEBUG ret => ret_69
  goto <bb 33>; [INV]

  <bb 23> :
  # DEBUG BEGIN_STMT
  feature_name.6_17 = feature_name;
  _18 = &reply_buf_48(D)->val;
  ret_55 = pfe_feature_mgr_get_val (feature_name.6_17, _18);
  # DEBUG ret => ret_55
  # DEBUG BEGIN_STMT
  if (ret_55 == 0)
    goto <bb 24>; [INV]
  else
    goto <bb 25>; [INV]

  <bb 24> :
  # DEBUG BEGIN_STMT
  feature_name.7_19 = feature_name;
  _20 = &reply_buf_48(D)->def_val;
  ret_57 = pfe_feature_mgr_get_def_val (feature_name.7_19, _20);
  # DEBUG ret => ret_57

  <bb 25> :
  # ret_31 = PHI <ret_55(23), ret_57(24)>
  # DEBUG ret => ret_31
  # DEBUG BEGIN_STMT
  if (ret_31 == 0)
    goto <bb 26>; [INV]
  else
    goto <bb 27>; [INV]

  <bb 26> :
  # DEBUG BEGIN_STMT
  feature_name.8_21 = feature_name;
  _22 = &reply_buf_48(D)->flags;
  ret_59 = pfe_feature_mgr_get_variant (feature_name.8_21, _22);
  # DEBUG ret => ret_59

  <bb 27> :
  # ret_32 = PHI <ret_31(25), ret_59(26)>
  # DEBUG ret => ret_32
  # DEBUG BEGIN_STMT
  if (ret_32 == 0)
    goto <bb 28>; [INV]
  else
    goto <bb 29>; [INV]

  <bb 28> :
  # DEBUG BEGIN_STMT
  _23 = &reply_buf_48(D)->name;
  feature_name.9_24 = feature_name;
  strncpy (_23, feature_name.9_24, 32);
  # DEBUG BEGIN_STMT
  feature_name.10_25 = feature_name;
  ret_62 = pfe_feature_mgr_get_desc (feature_name.10_25, &str);
  # DEBUG ret => ret_62

  <bb 29> :
  # ret_33 = PHI <ret_32(27), ret_62(28)>
  # DEBUG ret => ret_33
  # DEBUG BEGIN_STMT
  if (ret_33 == 0)
    goto <bb 30>; [INV]
  else
    goto <bb 31>; [INV]

  <bb 30> :
  # DEBUG BEGIN_STMT
  _26 = &reply_buf_48(D)->desc;
  str.11_27 = str;
  strncpy (_26, str.11_27, 128);
  # DEBUG BEGIN_STMT
  *reply_len_46(D) = 168;
  # DEBUG BEGIN_STMT
  *fci_ret_44(D) = 0;
  goto <bb 33>; [INV]

  <bb 31> :
  # DEBUG BEGIN_STMT
  *reply_len_46(D) = 168;
  # DEBUG BEGIN_STMT
  *fci_ret_44(D) = 65535;
  goto <bb 33>; [INV]

  <bb 32> :
<L34>:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  *fci_ret_44(D) = 4;
  # DEBUG BEGIN_STMT
  ret_94 = 0;
  # DEBUG ret => ret_94
  # DEBUG BEGIN_STMT

  <bb 33> :
  # ret_34 = PHI <ret_96(3), ret_92(9), ret_30(19), ret_33(30), ret_94(32), ret_89(5), ret_87(11), ret_30(20), ret_69(22), ret_33(31)>
  # DEBUG ret => ret_34
  # DEBUG BEGIN_STMT
  _97 = ret_34;
  str ={v} {CLOBBER};
  feature_name ={v} {CLOBBER};
  return _97;

}


