oal_mutex_unlock.isra.0 (const oal_mutex_t ISRA.31)
{
  errno_t retval;
  short unsigned int _2;
  int _3;
  unsigned char _4;
  void (*<T4e5>) (void) _5;

  <bb 6> [local count: 1073741824]:
  # DEBUG mutex s=> mutex

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG retval => 22
  # DEBUG BEGIN_STMT
  _2 = ISRA.31_10(D);
  if (_2 <= 255)
    goto <bb 3>; [65.00%]
  else
    goto <bb 5>; [35.00%]

  <bb 3> [local count: 697932186]:
  # DEBUG BEGIN_STMT
  _3 = (int) _2;
  _4 = mutex_alloc[_3];
  if (_4 != 0)
    goto <bb 4>; [65.00%]
  else
    goto <bb 5>; [35.00%]

  <bb 4> [local count: 453655921]:
  # DEBUG BEGIN_STMT
  _5 = SchM_Exit_Eth_43_PFE_ETH_EXCLUSIVE_AREA_ID[_3];
  _5 ();
  # DEBUG BEGIN_STMT
  # DEBUG retval => 0

  <bb 5> [local count: 1073741824]:
  # retval_6 = PHI <22(2), 22(3), 0(4)>
  # DEBUG retval => retval_6
  # DEBUG BEGIN_STMT
  return retval_6;

}


oal_mutex_lock.isra.0 (const oal_mutex_t ISRA.29)
{
  errno_t retval;
  short unsigned int _2;
  int _3;
  unsigned char _4;
  void (*<T4e5>) (void) _5;

  <bb 6> [local count: 1073741824]:
  # DEBUG mutex s=> mutex

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG retval => 22
  # DEBUG BEGIN_STMT
  _2 = ISRA.29_10(D);
  if (_2 <= 255)
    goto <bb 3>; [65.00%]
  else
    goto <bb 5>; [35.00%]

  <bb 3> [local count: 697932186]:
  # DEBUG BEGIN_STMT
  _3 = (int) _2;
  _4 = mutex_alloc[_3];
  if (_4 != 0)
    goto <bb 4>; [65.00%]
  else
    goto <bb 5>; [35.00%]

  <bb 4> [local count: 453655921]:
  # DEBUG BEGIN_STMT
  _5 = SchM_Enter_Eth_43_PFE_ETH_EXCLUSIVE_AREA_ID[_3];
  _5 ();
  # DEBUG BEGIN_STMT
  # DEBUG retval => 0

  <bb 5> [local count: 1073741824]:
  # retval_6 = PHI <22(2), 22(3), 0(4)>
  # DEBUG retval => retval_6
  # DEBUG BEGIN_STMT
  return retval_6;

}


pfe_log_if_get_stats (const struct pfe_log_if_t * iface, struct pfe_ct_class_algo_stats_t * stat)
{
  errno_t ret;
  uint32_t i;
  struct pfe_class_t * _1;
  unsigned int _2;
  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;
  long unsigned int _13;
  long unsigned int _14;
  long unsigned int _15;
  long unsigned int _16;
  long unsigned int _17;
  long unsigned int _18;
  long unsigned int _19;
  long unsigned int _20;
  long unsigned int _21;
  long unsigned int _22;
  long unsigned int _23;
  long unsigned int _24;
  long unsigned int _25;
  long unsigned int _26;
  long unsigned int _27;
  long unsigned int _28;
  long unsigned int _29;
  long unsigned int _30;
  long unsigned int _31;
  long unsigned int _32;
  long unsigned int _33;
  long unsigned int _34;
  long unsigned int _35;
  long unsigned int _36;
  long unsigned int _37;
  long unsigned int _38;
  long unsigned int _39;
  long unsigned int _40;
  long unsigned int _41;
  long unsigned int _42;
  long unsigned int _43;
  long unsigned int _44;
  long unsigned int _45;
  long unsigned int _46;
  long unsigned int _47;
  long unsigned int _48;
  long unsigned int _49;
  long unsigned int _50;
  long unsigned int _51;
  struct pfe_class_t * _52;
  long unsigned int _53;
  long unsigned int _54;
  long unsigned int _55;
  long unsigned int _56;
  long unsigned int _57;
  long unsigned int _58;
  long unsigned int _59;
  long unsigned int _60;
  long unsigned int _61;
  long unsigned int _62;
  long unsigned int _63;
  long unsigned int _64;
  long unsigned int _65;
  long unsigned int _66;
  long unsigned int _67;
  long unsigned int _68;
  long unsigned int _69;
  long unsigned int _70;
  long unsigned int _71;
  long unsigned int _72;
  long unsigned int _73;
  long unsigned int _74;
  long unsigned int _75;
  long unsigned int _76;
  long unsigned int _77;
  long unsigned int _78;
  long unsigned int _79;
  long unsigned int _80;
  long unsigned int _81;
  long unsigned int _82;
  long unsigned int _83;
  long unsigned int _84;
  long unsigned int _85;
  long unsigned int _86;
  long unsigned int _87;
  long unsigned int _88;
  long unsigned int _89;
  long unsigned int _90;
  long unsigned int _91;
  long unsigned int _92;
  long unsigned int _93;

  <bb 2> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG offset => 0
  # DEBUG BEGIN_STMT
  memset (stat_97(D), 0, 16);
  # DEBUG BEGIN_STMT
  # DEBUG offset => 88
  # DEBUG BEGIN_STMT
  _1 = iface_99(D)->class;
  _2 = iface_99(D)->dmem_base;
  _3 = _2 + 88;
  ret_101 = pfe_class_gather_read_dmem (_1, &pfe_class_algo_stats, _3, 128, 16);
  # DEBUG ret => ret_101
  # DEBUG BEGIN_STMT
  # DEBUG i => 0
  goto <bb 4>; [100.00%]

  <bb 3> [local count: 955630223]:
  # DEBUG BEGIN_STMT
  _4 = stat_97(D)->accepted;
  _5 = pfe_class_algo_stats[i_94].accepted;
  _6 = _5 >> 24;
  _7 = _5 >> 8;
  _8 = _7 & 65280;
  _9 = _6 | _8;
  _10 = _5 << 8;
  _11 = _10 & 16711680;
  _12 = _9 | _11;
  _13 = _5 << 24;
  _14 = _12 | _13;
  _15 = _4 + _14;
  stat_97(D)->accepted = _15;
  # DEBUG BEGIN_STMT
  _16 = stat_97(D)->discarded;
  _17 = pfe_class_algo_stats[i_94].discarded;
  _18 = _17 >> 24;
  _19 = _17 >> 8;
  _20 = _19 & 65280;
  _21 = _18 | _20;
  _22 = _17 << 8;
  _23 = _22 & 16711680;
  _24 = _21 | _23;
  _25 = _17 << 24;
  _26 = _24 | _25;
  _27 = _16 + _26;
  stat_97(D)->discarded = _27;
  # DEBUG BEGIN_STMT
  _28 = stat_97(D)->processed;
  _29 = pfe_class_algo_stats[i_94].processed;
  _30 = _29 >> 24;
  _31 = _29 >> 8;
  _32 = _31 & 65280;
  _33 = _30 | _32;
  _34 = _29 << 8;
  _35 = _34 & 16711680;
  _36 = _33 | _35;
  _37 = _29 << 24;
  _38 = _36 | _37;
  _39 = _28 + _38;
  stat_97(D)->processed = _39;
  # DEBUG BEGIN_STMT
  _40 = stat_97(D)->rejected;
  _41 = pfe_class_algo_stats[i_94].rejected;
  _42 = _41 >> 24;
  _43 = _41 >> 8;
  _44 = _43 & 65280;
  _45 = _42 | _44;
  _46 = _41 << 8;
  _47 = _46 & 16711680;
  _48 = _45 | _47;
  _49 = _41 << 24;
  _50 = _48 | _49;
  _51 = _40 + _50;
  stat_97(D)->rejected = _51;
  # DEBUG BEGIN_STMT
  i_111 = i_94 + 1;
  # DEBUG i => i_111

  <bb 4> [local count: 1073741824]:
  # i_94 = PHI <0(2), i_111(3)>
  # DEBUG i => i_94
  # DEBUG BEGIN_STMT
  _52 = iface_99(D)->class;
  _53 = pfe_class_get_num_of_pes (_52);
  if (_53 > i_94)
    goto <bb 3>; [89.00%]
  else
    goto <bb 5>; [11.00%]

  <bb 5> [local count: 118111601]:
  # DEBUG BEGIN_STMT
  _54 = stat_97(D)->accepted;
  _55 = _54 >> 24;
  _56 = _54 >> 8;
  _57 = _56 & 65280;
  _58 = _55 | _57;
  _59 = _54 << 8;
  _60 = _59 & 16711680;
  _61 = _58 | _60;
  _62 = _54 << 24;
  _63 = _61 | _62;
  stat_97(D)->accepted = _63;
  # DEBUG BEGIN_STMT
  _64 = stat_97(D)->discarded;
  _65 = _64 >> 24;
  _66 = _64 >> 8;
  _67 = _66 & 65280;
  _68 = _65 | _67;
  _69 = _64 << 8;
  _70 = _69 & 16711680;
  _71 = _68 | _70;
  _72 = _64 << 24;
  _73 = _71 | _72;
  stat_97(D)->discarded = _73;
  # DEBUG BEGIN_STMT
  _74 = stat_97(D)->processed;
  _75 = _74 >> 24;
  _76 = _74 >> 8;
  _77 = _76 & 65280;
  _78 = _75 | _77;
  _79 = _74 << 8;
  _80 = _79 & 16711680;
  _81 = _78 | _80;
  _82 = _74 << 24;
  _83 = _81 | _82;
  stat_97(D)->processed = _83;
  # DEBUG BEGIN_STMT
  _84 = stat_97(D)->rejected;
  _85 = _84 >> 24;
  _86 = _84 >> 8;
  _87 = _86 & 65280;
  _88 = _85 | _87;
  _89 = _84 << 8;
  _90 = _89 & 16711680;
  _91 = _88 | _90;
  _92 = _84 << 24;
  _93 = _91 | _92;
  stat_97(D)->rejected = _93;
  # DEBUG BEGIN_STMT
  return ret_101;

}


__attribute__((pure))
pfe_log_if_get_name (const struct pfe_log_if_t * iface)
{
  const char_t * str;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (iface_2(D) == 0B)
    goto <bb 4>; [30.00%]
  else
    goto <bb 3>; [70.00%]

  <bb 3> [local count: 751619278]:
  # DEBUG BEGIN_STMT
  str_4 = iface_2(D)->name;
  # DEBUG str => str_4

  <bb 4> [local count: 1073741824]:
  # str_1 = PHI <"(unknown)"(2), str_4(3)>
  # DEBUG str => str_1
  # DEBUG BEGIN_STMT
  return str_1;

}


__attribute__((pure))
pfe_log_if_is_discard (struct pfe_log_if_t * iface)
{
  bool_t ret;
  <unnamed type> _1;
  long unsigned int _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;
  _Bool _13;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = iface_15(D)->log_if_class.flags;
  _2 = (long unsigned int) _1;
  _3 = _2 >> 24;
  _4 = _2 >> 8;
  _5 = _4 & 65280;
  _6 = _3 | _5;
  _7 = _2 << 8;
  _8 = _7 & 16711680;
  _9 = _6 | _8;
  _10 = _2 << 24;
  _11 = _9 | _10;
  _12 = _11 & 16;
  _13 = _12 != 0;
  ret_16 = (bool_t) _13;
  # DEBUG ret => ret_16
  # DEBUG BEGIN_STMT
  return ret_16;

}


pfe_log_if_discard_disable (struct pfe_log_if_t * iface)
{
  pfe_ct_if_flags_t tmp;
  errno_t ret;
  long unsigned int tmp.27_1;
  long unsigned int _2;
  <unnamed type> _3;
  struct pfe_ct_log_if_t * _4;
  short unsigned int _15;
  short unsigned int _16;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#51 => &iface_6(D)->lock
  _15 = MEM[(const oal_mutex_t *)iface_6(D) + 124B];
  # DEBUG D#1 => D#51
  oal_mutex_lock.isra.0 (_15);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  tmp_9 = iface_6(D)->log_if_class.flags;
  # DEBUG tmp => tmp_9
  # DEBUG BEGIN_STMT
  tmp.27_1 = (long unsigned int) tmp_9;
  _2 = tmp.27_1 & 4026531839;
  _3 = (<unnamed type>) _2;
  iface_6(D)->log_if_class.flags = _3;
  # DEBUG BEGIN_STMT
  _4 = &iface_6(D)->log_if_class;
  ret_12 = pfe_log_if_write_to_class_nostats (iface_6(D), _4);
  # DEBUG ret => ret_12
  # DEBUG BEGIN_STMT
  if (ret_12 != 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  iface_6(D)->log_if_class.flags = tmp_9;

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG D#52 => &iface_6(D)->lock
  _16 = MEM[(const oal_mutex_t *)iface_6(D) + 124B];
  # DEBUG D#2 => D#52
  oal_mutex_unlock.isra.0 (_16);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_12;

}


pfe_log_if_discard_enable (struct pfe_log_if_t * iface)
{
  pfe_ct_if_flags_t tmp;
  errno_t ret;
  long unsigned int tmp.26_1;
  long unsigned int _2;
  <unnamed type> _3;
  struct pfe_ct_log_if_t * _4;
  short unsigned int _15;
  short unsigned int _16;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#49 => &iface_6(D)->lock
  _15 = MEM[(const oal_mutex_t *)iface_6(D) + 124B];
  # DEBUG D#1 => D#49
  oal_mutex_lock.isra.0 (_15);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  tmp_9 = iface_6(D)->log_if_class.flags;
  # DEBUG tmp => tmp_9
  # DEBUG BEGIN_STMT
  tmp.26_1 = (long unsigned int) tmp_9;
  _2 = tmp.26_1 | 268435456;
  _3 = (<unnamed type>) _2;
  iface_6(D)->log_if_class.flags = _3;
  # DEBUG BEGIN_STMT
  _4 = &iface_6(D)->log_if_class;
  ret_12 = pfe_log_if_write_to_class_nostats (iface_6(D), _4);
  # DEBUG ret => ret_12
  # DEBUG BEGIN_STMT
  if (ret_12 != 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  iface_6(D)->log_if_class.flags = tmp_9;

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG D#50 => &iface_6(D)->lock
  _16 = MEM[(const oal_mutex_t *)iface_6(D) + 124B];
  # DEBUG D#2 => D#50
  oal_mutex_unlock.isra.0 (_16);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_12;

}


pfe_log_if_allmulti_disable (const struct pfe_log_if_t * iface)
{
  errno_t ret;
  struct pfe_phy_if_t * _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = iface_3(D)->parent;
  ret_5 = pfe_phy_if_allmulti_disable (_1);
  # DEBUG ret => ret_5
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_5;

}


pfe_log_if_allmulti_enable (const struct pfe_log_if_t * iface)
{
  errno_t ret;
  struct pfe_phy_if_t * _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = iface_3(D)->parent;
  ret_5 = pfe_phy_if_allmulti_enable (_1);
  # DEBUG ret => ret_5
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_5;

}


__attribute__((pure))
pfe_log_if_is_promisc (struct pfe_log_if_t * iface)
{
  bool_t ret;
  <unnamed type> _1;
  long unsigned int _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;
  _Bool _13;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = iface_15(D)->log_if_class.flags;
  _2 = (long unsigned int) _1;
  _3 = _2 >> 24;
  _4 = _2 >> 8;
  _5 = _4 & 65280;
  _6 = _3 | _5;
  _7 = _2 << 8;
  _8 = _7 & 16711680;
  _9 = _6 | _8;
  _10 = _2 << 24;
  _11 = _9 | _10;
  _12 = _11 & 2;
  _13 = _12 != 0;
  ret_16 = (bool_t) _13;
  # DEBUG ret => ret_16
  # DEBUG BEGIN_STMT
  return ret_16;

}


pfe_log_if_promisc_disable (struct pfe_log_if_t * iface)
{
  pfe_ct_if_flags_t tmp;
  errno_t ret;
  long unsigned int tmp.25_1;
  long unsigned int _2;
  <unnamed type> _3;
  struct pfe_ct_log_if_t * _4;
  short unsigned int _15;
  short unsigned int _16;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#47 => &iface_6(D)->lock
  _15 = MEM[(const oal_mutex_t *)iface_6(D) + 124B];
  # DEBUG D#1 => D#47
  oal_mutex_lock.isra.0 (_15);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  tmp_9 = iface_6(D)->log_if_class.flags;
  # DEBUG tmp => tmp_9
  # DEBUG BEGIN_STMT
  tmp.25_1 = (long unsigned int) tmp_9;
  _2 = tmp.25_1 & 4261412863;
  _3 = (<unnamed type>) _2;
  iface_6(D)->log_if_class.flags = _3;
  # DEBUG BEGIN_STMT
  _4 = &iface_6(D)->log_if_class;
  ret_12 = pfe_log_if_write_to_class_nostats (iface_6(D), _4);
  # DEBUG ret => ret_12
  # DEBUG BEGIN_STMT
  if (ret_12 != 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  iface_6(D)->log_if_class.flags = tmp_9;

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG D#48 => &iface_6(D)->lock
  _16 = MEM[(const oal_mutex_t *)iface_6(D) + 124B];
  # DEBUG D#2 => D#48
  oal_mutex_unlock.isra.0 (_16);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_12;

}


pfe_log_if_promisc_enable (struct pfe_log_if_t * iface)
{
  pfe_ct_if_flags_t tmp;
  errno_t ret;
  long unsigned int _1;
  long unsigned int _2;
  <unnamed type> _3;
  struct pfe_ct_log_if_t * _4;
  short unsigned int _15;
  short unsigned int _16;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#45 => &iface_6(D)->lock
  _15 = MEM[(const oal_mutex_t *)iface_6(D) + 124B];
  # DEBUG D#1 => D#45
  oal_mutex_lock.isra.0 (_15);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  tmp_9 = iface_6(D)->log_if_class.flags;
  # DEBUG tmp => tmp_9
  # DEBUG BEGIN_STMT
  _1 = (long unsigned int) tmp_9;
  _2 = _1 | 33554432;
  _3 = (<unnamed type>) _2;
  iface_6(D)->log_if_class.flags = _3;
  # DEBUG BEGIN_STMT
  _4 = &iface_6(D)->log_if_class;
  ret_12 = pfe_log_if_write_to_class_nostats (iface_6(D), _4);
  # DEBUG ret => ret_12
  # DEBUG BEGIN_STMT
  if (ret_12 != 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  iface_6(D)->log_if_class.flags = tmp_9;

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG D#46 => &iface_6(D)->lock
  _16 = MEM[(const oal_mutex_t *)iface_6(D) + 124B];
  # DEBUG D#2 => D#46
  oal_mutex_unlock.isra.0 (_16);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_12;

}


__attribute__((pure))
pfe_log_if_is_loopback (struct pfe_log_if_t * iface)
{
  bool_t ret;
  <unnamed type> _1;
  long unsigned int _2;
  long unsigned int _3;
  _Bool _4;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = iface_6(D)->log_if_class.flags;
  _2 = (long unsigned int) _1;
  _3 = _2 & 1024;
  _4 = _3 != 0;
  ret_7 = (bool_t) _4;
  # DEBUG ret => ret_7
  # DEBUG BEGIN_STMT
  return ret_7;

}


pfe_log_if_loopback_disable (struct pfe_log_if_t * iface)
{
  pfe_ct_if_flags_t tmp;
  errno_t ret;
  long unsigned int tmp.24_1;
  long unsigned int _2;
  <unnamed type> _3;
  struct pfe_ct_log_if_t * _4;
  struct pfe_phy_if_t * _5;
  <unnamed type> _6;
  int _7;
  short unsigned int _27;
  short unsigned int _28;
  short unsigned int _29;
  short unsigned int _30;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#41 => &iface_11(D)->lock
  _27 = MEM[(const oal_mutex_t *)iface_11(D) + 124B];
  # DEBUG D#1 => D#41
  oal_mutex_lock.isra.0 (_27);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  tmp_14 = iface_11(D)->log_if_class.flags;
  # DEBUG tmp => tmp_14
  # DEBUG BEGIN_STMT
  tmp.24_1 = (long unsigned int) tmp_14;
  _2 = tmp.24_1 & 4294966271;
  _3 = (<unnamed type>) _2;
  iface_11(D)->log_if_class.flags = _3;
  # DEBUG BEGIN_STMT
  _4 = &iface_11(D)->log_if_class;
  ret_17 = pfe_log_if_write_to_class_nostats (iface_11(D), _4);
  # DEBUG ret => ret_17
  # DEBUG BEGIN_STMT
  if (ret_17 != 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  iface_11(D)->log_if_class.flags = tmp_14;

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG D#42 => &iface_11(D)->lock
  _29 = MEM[(const oal_mutex_t *)iface_11(D) + 124B];
  # DEBUG D#2 => D#42
  oal_mutex_unlock.isra.0 (_29);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (ret_17 == 0)
    goto <bb 5>; [33.00%]
  else
    goto <bb 7>; [67.00%]

  <bb 5> [local count: 354334802]:
  # DEBUG BEGIN_STMT
  _5 = iface_11(D)->parent;
  ret_21 = pfe_phy_if_loopback_disable (_5);
  # DEBUG ret => ret_21
  # DEBUG BEGIN_STMT
  if (ret_21 != 0)
    goto <bb 6>; [33.00%]
  else
    goto <bb 7>; [67.00%]

  <bb 6> [local count: 116930485]:
  # DEBUG BEGIN_STMT
  # DEBUG D#43 => &iface_11(D)->lock
  _28 = MEM[(const oal_mutex_t *)iface_11(D) + 124B];
  # DEBUG D#1 => D#43
  oal_mutex_lock.isra.0 (_28);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _6 = iface_11(D)->log_if_class.flags;
  _7 = _6 | 1024;
  iface_11(D)->log_if_class.flags = _7;
  # DEBUG BEGIN_STMT
  ret_25 = pfe_log_if_write_to_class_nostats (iface_11(D), _4);
  # DEBUG ret => ret_25
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#44 => &iface_11(D)->lock
  _30 = MEM[(const oal_mutex_t *)iface_11(D) + 124B];
  # DEBUG D#2 => D#44
  oal_mutex_unlock.isra.0 (_30);

  <bb 7> [local count: 1073741824]:
  # ret_8 = PHI <ret_17(4), ret_21(5), ret_25(6)>
  # DEBUG ret => ret_8
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_8;

}


pfe_log_if_loopback_enable (struct pfe_log_if_t * iface)
{
  pfe_ct_if_flags_t tmp;
  errno_t ret;
  long unsigned int tmp.23_1;
  long unsigned int _2;
  <unnamed type> _3;
  struct pfe_ct_log_if_t * _4;
  struct pfe_phy_if_t * _5;
  <unnamed type> _6;
  int _7;
  short unsigned int _27;
  short unsigned int _28;
  short unsigned int _29;
  short unsigned int _30;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#37 => &iface_11(D)->lock
  _27 = MEM[(const oal_mutex_t *)iface_11(D) + 124B];
  # DEBUG D#1 => D#37
  oal_mutex_lock.isra.0 (_27);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  tmp_14 = iface_11(D)->log_if_class.flags;
  # DEBUG tmp => tmp_14
  # DEBUG BEGIN_STMT
  tmp.23_1 = (long unsigned int) tmp_14;
  _2 = tmp.23_1 | 1024;
  _3 = (<unnamed type>) _2;
  iface_11(D)->log_if_class.flags = _3;
  # DEBUG BEGIN_STMT
  _4 = &iface_11(D)->log_if_class;
  ret_17 = pfe_log_if_write_to_class_nostats (iface_11(D), _4);
  # DEBUG ret => ret_17
  # DEBUG BEGIN_STMT
  if (ret_17 != 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  iface_11(D)->log_if_class.flags = tmp_14;

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG D#38 => &iface_11(D)->lock
  _29 = MEM[(const oal_mutex_t *)iface_11(D) + 124B];
  # DEBUG D#2 => D#38
  oal_mutex_unlock.isra.0 (_29);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (ret_17 == 0)
    goto <bb 5>; [33.00%]
  else
    goto <bb 7>; [67.00%]

  <bb 5> [local count: 354334802]:
  # DEBUG BEGIN_STMT
  _5 = iface_11(D)->parent;
  ret_21 = pfe_phy_if_loopback_enable (_5);
  # DEBUG ret => ret_21
  # DEBUG BEGIN_STMT
  if (ret_21 != 0)
    goto <bb 6>; [33.00%]
  else
    goto <bb 7>; [67.00%]

  <bb 6> [local count: 116930485]:
  # DEBUG BEGIN_STMT
  # DEBUG D#39 => &iface_11(D)->lock
  _28 = MEM[(const oal_mutex_t *)iface_11(D) + 124B];
  # DEBUG D#1 => D#39
  oal_mutex_lock.isra.0 (_28);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _6 = iface_11(D)->log_if_class.flags;
  _7 = _6 & -1025;
  iface_11(D)->log_if_class.flags = _7;
  # DEBUG BEGIN_STMT
  ret_25 = pfe_log_if_write_to_class_nostats (iface_11(D), _4);
  # DEBUG ret => ret_25
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#40 => &iface_11(D)->lock
  _30 = MEM[(const oal_mutex_t *)iface_11(D) + 124B];
  # DEBUG D#2 => D#40
  oal_mutex_unlock.isra.0 (_30);

  <bb 7> [local count: 1073741824]:
  # ret_8 = PHI <ret_17(4), ret_21(5), ret_25(6)>
  # DEBUG ret => ret_8
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_8;

}


__attribute__((pure))
pfe_log_if_is_enabled (struct pfe_log_if_t * iface)
{
  bool_t ret;
  <unnamed type> _1;
  long unsigned int _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;
  _Bool _12;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = iface_14(D)->log_if_class.flags;
  _2 = (long unsigned int) _1;
  _3 = _2 >> 24;
  _4 = _2 >> 8;
  _5 = _4 & 65280;
  _6 = _3 | _5;
  _7 = _2 << 8;
  _8 = _7 & 16711680;
  _9 = _6 | _8;
  _10 = _2 << 24;
  _11 = _9 | _10;
  _12 = (_Bool) _11;
  ret_15 = (bool_t) _12;
  # DEBUG ret => ret_15
  # DEBUG BEGIN_STMT
  return ret_15;

}


pfe_log_if_disable (struct pfe_log_if_t * iface)
{
  pfe_ct_if_flags_t tmp;
  errno_t ret;
  long unsigned int tmp.21_1;
  long unsigned int _2;
  <unnamed type> _3;
  struct pfe_ct_log_if_t * _4;
  struct pfe_phy_if_t * _5;
  long unsigned int tmp.22_6;
  long unsigned int _7;
  <unnamed type> _8;
  short unsigned int _29;
  short unsigned int _30;
  short unsigned int _31;
  short unsigned int _32;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#33 => &iface_12(D)->lock
  _29 = MEM[(const oal_mutex_t *)iface_12(D) + 124B];
  # DEBUG D#1 => D#33
  oal_mutex_lock.isra.0 (_29);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  tmp_15 = iface_12(D)->log_if_class.flags;
  # DEBUG tmp => tmp_15
  # DEBUG BEGIN_STMT
  tmp.21_1 = (long unsigned int) tmp_15;
  _2 = tmp.21_1 & 4278190079;
  _3 = (<unnamed type>) _2;
  iface_12(D)->log_if_class.flags = _3;
  # DEBUG BEGIN_STMT
  _4 = &iface_12(D)->log_if_class;
  ret_18 = pfe_log_if_write_to_class_nostats (iface_12(D), _4);
  # DEBUG ret => ret_18
  # DEBUG BEGIN_STMT
  if (ret_18 != 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  iface_12(D)->log_if_class.flags = tmp_15;

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG D#34 => &iface_12(D)->lock
  _31 = MEM[(const oal_mutex_t *)iface_12(D) + 124B];
  # DEBUG D#2 => D#34
  oal_mutex_unlock.isra.0 (_31);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (ret_18 == 0)
    goto <bb 5>; [33.00%]
  else
    goto <bb 7>; [67.00%]

  <bb 5> [local count: 354334802]:
  # DEBUG BEGIN_STMT
  _5 = iface_12(D)->parent;
  ret_22 = pfe_phy_if_disable (_5);
  # DEBUG ret => ret_22
  # DEBUG BEGIN_STMT
  if (ret_22 != 0)
    goto <bb 6>; [33.00%]
  else
    goto <bb 7>; [67.00%]

  <bb 6> [local count: 116930485]:
  # DEBUG BEGIN_STMT
  # DEBUG D#35 => &iface_12(D)->lock
  _30 = MEM[(const oal_mutex_t *)iface_12(D) + 124B];
  # DEBUG D#1 => D#35
  oal_mutex_lock.isra.0 (_30);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  tmp_24 = iface_12(D)->log_if_class.flags;
  # DEBUG tmp => tmp_24
  # DEBUG BEGIN_STMT
  tmp.22_6 = (long unsigned int) tmp_24;
  _7 = tmp.22_6 | 16777216;
  _8 = (<unnamed type>) _7;
  iface_12(D)->log_if_class.flags = _8;
  # DEBUG BEGIN_STMT
  ret_27 = pfe_log_if_write_to_class_nostats (iface_12(D), _4);
  # DEBUG ret => ret_27
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#36 => &iface_12(D)->lock
  _32 = MEM[(const oal_mutex_t *)iface_12(D) + 124B];
  # DEBUG D#2 => D#36
  oal_mutex_unlock.isra.0 (_32);

  <bb 7> [local count: 1073741824]:
  # ret_9 = PHI <ret_18(4), ret_22(5), ret_27(6)>
  # DEBUG ret => ret_9
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_9;

}


pfe_log_if_enable (struct pfe_log_if_t * iface)
{
  pfe_ct_if_flags_t tmp;
  errno_t ret;
  long unsigned int tmp.19_1;
  long unsigned int _2;
  <unnamed type> _3;
  struct pfe_ct_log_if_t * _4;
  struct pfe_phy_if_t * _5;
  long unsigned int tmp.20_6;
  long unsigned int _7;
  <unnamed type> _8;
  short unsigned int _29;
  short unsigned int _30;
  short unsigned int _31;
  short unsigned int _32;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#29 => &iface_12(D)->lock
  _29 = MEM[(const oal_mutex_t *)iface_12(D) + 124B];
  # DEBUG D#1 => D#29
  oal_mutex_lock.isra.0 (_29);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  tmp_15 = iface_12(D)->log_if_class.flags;
  # DEBUG tmp => tmp_15
  # DEBUG BEGIN_STMT
  tmp.19_1 = (long unsigned int) tmp_15;
  _2 = tmp.19_1 | 16777216;
  _3 = (<unnamed type>) _2;
  iface_12(D)->log_if_class.flags = _3;
  # DEBUG BEGIN_STMT
  _4 = &iface_12(D)->log_if_class;
  ret_18 = pfe_log_if_write_to_class_nostats (iface_12(D), _4);
  # DEBUG ret => ret_18
  # DEBUG BEGIN_STMT
  if (ret_18 != 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  iface_12(D)->log_if_class.flags = tmp_15;

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG D#30 => &iface_12(D)->lock
  _31 = MEM[(const oal_mutex_t *)iface_12(D) + 124B];
  # DEBUG D#2 => D#30
  oal_mutex_unlock.isra.0 (_31);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (ret_18 == 0)
    goto <bb 5>; [33.00%]
  else
    goto <bb 7>; [67.00%]

  <bb 5> [local count: 354334802]:
  # DEBUG BEGIN_STMT
  _5 = iface_12(D)->parent;
  ret_22 = pfe_phy_if_enable (_5);
  # DEBUG ret => ret_22
  # DEBUG BEGIN_STMT
  if (ret_22 != 0)
    goto <bb 6>; [33.00%]
  else
    goto <bb 7>; [67.00%]

  <bb 6> [local count: 116930485]:
  # DEBUG BEGIN_STMT
  # DEBUG D#31 => &iface_12(D)->lock
  _30 = MEM[(const oal_mutex_t *)iface_12(D) + 124B];
  # DEBUG D#1 => D#31
  oal_mutex_lock.isra.0 (_30);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  tmp_24 = iface_12(D)->log_if_class.flags;
  # DEBUG tmp => tmp_24
  # DEBUG BEGIN_STMT
  tmp.20_6 = (long unsigned int) tmp_24;
  _7 = tmp.20_6 & 4278190079;
  _8 = (<unnamed type>) _7;
  iface_12(D)->log_if_class.flags = _8;
  # DEBUG BEGIN_STMT
  ret_27 = pfe_log_if_write_to_class_nostats (iface_12(D), _4);
  # DEBUG ret => ret_27
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#32 => &iface_12(D)->lock
  _32 = MEM[(const oal_mutex_t *)iface_12(D) + 124B];
  # DEBUG D#2 => D#32
  oal_mutex_unlock.isra.0 (_32);

  <bb 7> [local count: 1073741824]:
  # ret_9 = PHI <ret_18(4), ret_22(5), ret_27(6)>
  # DEBUG ret => ret_9
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_9;

}


pfe_log_if_del_egress_if (struct pfe_log_if_t * iface, const struct pfe_phy_if_t * phy_if)
{
  pfe_ct_phy_if_id_t phy_if_id;
  uint32_t tmp;
  errno_t ret;
  long unsigned int _1;
  long unsigned int _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;
  int _10;
  long unsigned int _11;
  long unsigned int _12;
  long unsigned int _13;
  long unsigned int _14;
  long unsigned int _15;
  long unsigned int _16;
  long unsigned int _17;
  long unsigned int _18;
  long unsigned int _19;
  long unsigned int _20;
  long unsigned int _21;
  long unsigned int _22;
  struct pfe_ct_log_if_t * _23;
  long unsigned int _24;
  long unsigned int _25;
  long unsigned int _26;
  long unsigned int _27;
  long unsigned int _28;
  long unsigned int _29;
  long unsigned int _30;
  long unsigned int _31;
  long unsigned int _32;
  short unsigned int _48;
  short unsigned int _49;
  short unsigned int _50;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#26 => &iface_36(D)->lock
  _48 = MEM[(const oal_mutex_t *)iface_36(D) + 124B];
  # DEBUG D#1 => D#26
  oal_mutex_lock.isra.0 (_48);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  phy_if_id_40 = pfe_phy_if_get_id (phy_if_39(D));
  # DEBUG phy_if_id => phy_if_id_40
  # DEBUG BEGIN_STMT
  if (phy_if_id_40 > 9)
    goto <bb 3>; [35.00%]
  else
    goto <bb 4>; [65.00%]

  <bb 3> [local count: 375809639]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#28 => &iface_36(D)->lock
  _49 = MEM[(const oal_mutex_t *)iface_36(D) + 124B];
  # DEBUG D#2 => D#28
  oal_mutex_unlock.isra.0 (_49);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 22
  goto <bb 7>; [100.00%]

  <bb 4> [local count: 697932186]:
  # DEBUG BEGIN_STMT
  _1 = iface_36(D)->log_if_class.e_phy_ifs;
  _2 = _1 >> 24;
  _3 = _1 >> 8;
  _4 = _3 & 65280;
  _5 = _2 | _4;
  _6 = _1 << 8;
  _7 = _6 & 16711680;
  _8 = _5 | _7;
  _9 = _1 << 24;
  tmp_41 = _8 | _9;
  # DEBUG tmp => tmp_41
  # DEBUG BEGIN_STMT
  _10 = (int) phy_if_id_40;
  _11 = 1 << _10;
  _12 = ~_11;
  _13 = _12 & tmp_41;
  _14 = _13 >> 24;
  _15 = _13 >> 8;
  _16 = _15 & 65280;
  _17 = _14 | _16;
  _18 = _13 << 8;
  _19 = _18 & 16711680;
  _20 = _17 | _19;
  _21 = _13 << 24;
  _22 = _20 | _21;
  iface_36(D)->log_if_class.e_phy_ifs = _22;
  # DEBUG BEGIN_STMT
  _23 = &iface_36(D)->log_if_class;
  ret_44 = pfe_log_if_write_to_class_nostats (iface_36(D), _23);
  # DEBUG ret => ret_44
  # DEBUG BEGIN_STMT
  if (ret_44 != 0)
    goto <bb 5>; [50.00%]
  else
    goto <bb 6>; [50.00%]

  <bb 5> [local count: 348966093]:
  # DEBUG BEGIN_STMT
  _24 = tmp_41 >> 24;
  _25 = tmp_41 >> 8;
  _26 = _25 & 65280;
  _27 = _24 | _26;
  _28 = tmp_41 << 8;
  _29 = _28 & 16711680;
  _30 = _27 | _29;
  _31 = tmp_41 << 24;
  _32 = _30 | _31;
  iface_36(D)->log_if_class.e_phy_ifs = _32;

  <bb 6> [local count: 697932186]:
  # DEBUG BEGIN_STMT
  # DEBUG D#27 => &iface_36(D)->lock
  _50 = MEM[(const oal_mutex_t *)iface_36(D) + 124B];
  # DEBUG D#2 => D#27
  oal_mutex_unlock.isra.0 (_50);

  <bb 7> [local count: 1073741824]:
  # ret_33 = PHI <22(3), ret_44(6)>
  # DEBUG ret => ret_33
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_33;

}


pfe_log_if_add_egress_if (struct pfe_log_if_t * iface, const struct pfe_phy_if_t * phy_if)
{
  pfe_ct_phy_if_id_t phy_if_id;
  uint32_t tmp;
  errno_t ret;
  long unsigned int _1;
  long unsigned int _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;
  int _10;
  long unsigned int _11;
  long unsigned int _12;
  long unsigned int _13;
  long unsigned int _14;
  long unsigned int _15;
  long unsigned int _16;
  long unsigned int _17;
  long unsigned int _18;
  long unsigned int _19;
  long unsigned int _20;
  long unsigned int _21;
  struct pfe_ct_log_if_t * _22;
  long unsigned int _23;
  long unsigned int _24;
  long unsigned int _25;
  long unsigned int _26;
  long unsigned int _27;
  long unsigned int _28;
  long unsigned int _29;
  long unsigned int _30;
  long unsigned int _31;
  short unsigned int _47;
  short unsigned int _48;
  short unsigned int _49;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#23 => &iface_35(D)->lock
  _47 = MEM[(const oal_mutex_t *)iface_35(D) + 124B];
  # DEBUG D#1 => D#23
  oal_mutex_lock.isra.0 (_47);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  phy_if_id_39 = pfe_phy_if_get_id (phy_if_38(D));
  # DEBUG phy_if_id => phy_if_id_39
  # DEBUG BEGIN_STMT
  if (phy_if_id_39 > 9)
    goto <bb 3>; [35.00%]
  else
    goto <bb 4>; [65.00%]

  <bb 3> [local count: 375809639]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#25 => &iface_35(D)->lock
  _48 = MEM[(const oal_mutex_t *)iface_35(D) + 124B];
  # DEBUG D#2 => D#25
  oal_mutex_unlock.isra.0 (_48);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 22
  goto <bb 7>; [100.00%]

  <bb 4> [local count: 697932186]:
  # DEBUG BEGIN_STMT
  _1 = iface_35(D)->log_if_class.e_phy_ifs;
  _2 = _1 >> 24;
  _3 = _1 >> 8;
  _4 = _3 & 65280;
  _5 = _2 | _4;
  _6 = _1 << 8;
  _7 = _6 & 16711680;
  _8 = _5 | _7;
  _9 = _1 << 24;
  tmp_40 = _8 | _9;
  # DEBUG tmp => tmp_40
  # DEBUG BEGIN_STMT
  _10 = (int) phy_if_id_39;
  _11 = 1 << _10;
  _12 = _11 | tmp_40;
  _13 = _12 >> 24;
  _14 = _12 >> 8;
  _15 = _14 & 65280;
  _16 = _13 | _15;
  _17 = _12 << 8;
  _18 = _17 & 16711680;
  _19 = _16 | _18;
  _20 = _12 << 24;
  _21 = _19 | _20;
  iface_35(D)->log_if_class.e_phy_ifs = _21;
  # DEBUG BEGIN_STMT
  _22 = &iface_35(D)->log_if_class;
  ret_43 = pfe_log_if_write_to_class_nostats (iface_35(D), _22);
  # DEBUG ret => ret_43
  # DEBUG BEGIN_STMT
  if (ret_43 != 0)
    goto <bb 5>; [50.00%]
  else
    goto <bb 6>; [50.00%]

  <bb 5> [local count: 348966093]:
  # DEBUG BEGIN_STMT
  _23 = tmp_40 >> 24;
  _24 = tmp_40 >> 8;
  _25 = _24 & 65280;
  _26 = _23 | _25;
  _27 = tmp_40 << 8;
  _28 = _27 & 16711680;
  _29 = _26 | _28;
  _30 = tmp_40 << 24;
  _31 = _29 | _30;
  iface_35(D)->log_if_class.e_phy_ifs = _31;

  <bb 6> [local count: 697932186]:
  # DEBUG BEGIN_STMT
  # DEBUG D#24 => &iface_35(D)->lock
  _49 = MEM[(const oal_mutex_t *)iface_35(D) + 124B];
  # DEBUG D#2 => D#24
  oal_mutex_unlock.isra.0 (_49);

  <bb 7> [local count: 1073741824]:
  # ret_32 = PHI <22(3), ret_43(6)>
  # DEBUG ret => ret_32
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_32;

}


pfe_log_if_set_egress_ifs (struct pfe_log_if_t * iface, uint32_t egress)
{
  errno_t ret;
  uint32_t tmp;
  long unsigned int _1;
  long unsigned int _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;
  long unsigned int _13;
  long unsigned int _14;
  long unsigned int _15;
  long unsigned int _16;
  long unsigned int _17;
  long unsigned int _18;
  struct pfe_ct_log_if_t * _19;
  long unsigned int _20;
  long unsigned int _21;
  long unsigned int _22;
  long unsigned int _23;
  long unsigned int _24;
  long unsigned int _25;
  long unsigned int _26;
  long unsigned int _27;
  long unsigned int _28;
  short unsigned int _40;
  short unsigned int _41;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#21 => &iface_30(D)->lock
  _40 = MEM[(const oal_mutex_t *)iface_30(D) + 124B];
  # DEBUG D#1 => D#21
  oal_mutex_lock.isra.0 (_40);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = iface_30(D)->log_if_class.e_phy_ifs;
  _2 = _1 >> 24;
  _3 = _1 >> 8;
  _4 = _3 & 65280;
  _5 = _2 | _4;
  _6 = _1 << 8;
  _7 = _6 & 16711680;
  _8 = _5 | _7;
  _9 = _1 << 24;
  tmp_33 = _8 | _9;
  # DEBUG tmp => tmp_33
  # DEBUG BEGIN_STMT
  _10 = egress_34(D) >> 24;
  _11 = egress_34(D) >> 8;
  _12 = _11 & 65280;
  _13 = _10 | _12;
  _14 = egress_34(D) << 8;
  _15 = _14 & 16711680;
  _16 = _13 | _15;
  _17 = egress_34(D) << 24;
  _18 = _16 | _17;
  iface_30(D)->log_if_class.e_phy_ifs = _18;
  # DEBUG BEGIN_STMT
  _19 = &iface_30(D)->log_if_class;
  ret_37 = pfe_log_if_write_to_class_nostats (iface_30(D), _19);
  # DEBUG ret => ret_37
  # DEBUG BEGIN_STMT
  if (ret_37 != 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  _20 = tmp_33 >> 24;
  _21 = tmp_33 >> 8;
  _22 = _21 & 65280;
  _23 = _20 | _22;
  _24 = tmp_33 << 8;
  _25 = _24 & 16711680;
  _26 = _23 | _25;
  _27 = tmp_33 << 24;
  _28 = _26 | _27;
  iface_30(D)->log_if_class.e_phy_ifs = _28;

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG D#22 => &iface_30(D)->lock
  _41 = MEM[(const oal_mutex_t *)iface_30(D) + 124B];
  # DEBUG D#2 => D#22
  oal_mutex_unlock.isra.0 (_41);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_37;

}


pfe_log_if_get_egress_ifs (struct pfe_log_if_t * iface, uint32_t * egress)
{
  long unsigned int _1;
  long unsigned int _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;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = iface_12(D)->log_if_class.e_phy_ifs;
  _2 = _1 >> 24;
  _3 = _1 >> 8;
  _4 = _3 & 65280;
  _5 = _2 | _4;
  _6 = _1 << 8;
  _7 = _6 & 16711680;
  _8 = _5 | _7;
  _9 = _1 << 24;
  _10 = _8 | _9;
  *egress_13(D) = _10;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_log_if_flush_mac_addrs (struct pfe_log_if_t * iface, pfe_mac_db_crit_t crit, pfe_mac_type_t type, pfe_drv_id_t owner)
{
  errno_t ret;
  struct pfe_phy_if_t * _1;
  int _2;
  struct pfe_mac_db_t * _3;
  short unsigned int _16;
  short unsigned int _17;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#19 => &iface_6(D)->lock
  _16 = MEM[(const oal_mutex_t *)iface_6(D) + 124B];
  # DEBUG D#1 => D#19
  oal_mutex_lock.isra.0 (_16);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = iface_6(D)->parent;
  _2 = pfe_phy_if_flush_mac_addrs (_1, crit_9(D), type_10(D), owner_11(D));
  if (_2 != 0)
    goto <bb 4>; [52.23%]
  else
    goto <bb 3>; [47.77%]

  <bb 3> [local count: 512926469]:
  # DEBUG BEGIN_STMT
  _3 = iface_6(D)->mac_db;
  ret_14 = pfe_mac_db_flush (_3, crit_9(D), type_10(D), owner_11(D));
  # DEBUG ret => ret_14
  # DEBUG BEGIN_STMT

  <bb 4> [local count: 1073741824]:
  # ret_4 = PHI <114(2), ret_14(3)>
  # DEBUG ret => ret_4
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#20 => &iface_6(D)->lock
  _17 = MEM[(const oal_mutex_t *)iface_6(D) + 124B];
  # DEBUG D#2 => D#20
  oal_mutex_unlock.isra.0 (_17);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_4;

}


pfe_log_if_get_mac_addr (struct pfe_log_if_t * iface, uint8_t * addr)
{
  errno_t ret;
  struct pfe_mac_db_t * _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = iface_3(D)->mac_db;
  ret_6 = pfe_mac_db_get_first_addr (_1, 3, 3, 6, addr_4(D));
  # DEBUG ret => ret_6
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_6;

}


pfe_log_if_get_mac_db (const struct pfe_log_if_t * iface)
{
  struct pfe_mac_db_t * ptr;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  ptr_3 = iface_2(D)->mac_db;
  # DEBUG ptr => ptr_3
  # DEBUG BEGIN_STMT
  return ptr_3;

}


pfe_log_if_del_mac_addr (struct pfe_log_if_t * iface, const uint8_t * addr, pfe_drv_id_t owner)
{
  errno_t ret;
  struct pfe_mac_db_t * _1;
  struct pfe_phy_if_t * _2;
  struct pfe_mac_db_t * _3;
  short unsigned int _18;
  short unsigned int _19;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#17 => &iface_6(D)->lock
  _18 = MEM[(const oal_mutex_t *)iface_6(D) + 124B];
  # DEBUG D#1 => D#17
  oal_mutex_lock.isra.0 (_18);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = iface_6(D)->mac_db;
  ret_12 = pfe_mac_db_del_addr (_1, addr_9(D), owner_10(D));
  # DEBUG ret => ret_12
  # DEBUG BEGIN_STMT
  if (ret_12 != 0)
    goto <bb 5>; [67.00%]
  else
    goto <bb 3>; [33.00%]

  <bb 3> [local count: 354334802]:
  # DEBUG BEGIN_STMT
  _2 = iface_6(D)->parent;
  ret_14 = pfe_phy_if_del_mac_addr (_2, addr_9(D), owner_10(D));
  # DEBUG ret => ret_14
  # DEBUG BEGIN_STMT
  if (ret_14 != 0)
    goto <bb 4>; [33.00%]
  else
    goto <bb 5>; [67.00%]

  <bb 4> [local count: 116930485]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _3 = iface_6(D)->mac_db;
  ret_16 = pfe_mac_db_add_addr (_3, addr_9(D), owner_10(D));
  # DEBUG ret => ret_16
  # DEBUG BEGIN_STMT

  <bb 5> [local count: 1073741824]:
  # ret_4 = PHI <ret_12(2), ret_14(3), ret_16(4)>
  # DEBUG ret => ret_4
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#18 => &iface_6(D)->lock
  _19 = MEM[(const oal_mutex_t *)iface_6(D) + 124B];
  # DEBUG D#2 => D#18
  oal_mutex_unlock.isra.0 (_19);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_4;

}


pfe_log_if_add_mac_addr (struct pfe_log_if_t * iface, const uint8_t * addr, pfe_drv_id_t owner)
{
  errno_t ret;
  struct pfe_mac_db_t * _1;
  struct pfe_phy_if_t * _2;
  int _3;
  struct pfe_mac_db_t * _4;
  short unsigned int _17;
  short unsigned int _18;

  <bb 2> [local count: 1073741823]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#15 => &iface_7(D)->lock
  _17 = MEM[(const oal_mutex_t *)iface_7(D) + 124B];
  # DEBUG D#1 => D#15
  oal_mutex_lock.isra.0 (_17);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = iface_7(D)->mac_db;
  ret_13 = pfe_mac_db_add_addr (_1, addr_10(D), owner_11(D));
  # DEBUG ret => ret_13
  # DEBUG BEGIN_STMT
  if (ret_13 == 0)
    goto <bb 3>; [33.00%]
  else
    goto <bb 5>; [67.00%]

  <bb 3> [local count: 354334802]:
  # DEBUG BEGIN_STMT
  _2 = iface_7(D)->parent;
  _3 = pfe_phy_if_add_mac_addr (_2, addr_10(D), owner_11(D));
  if (_3 != 0)
    goto <bb 4>; [20.96%]
  else
    goto <bb 5>; [79.04%]

  <bb 4> [local count: 74268574]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _4 = iface_7(D)->mac_db;
  pfe_mac_db_del_addr (_4, addr_10(D), owner_11(D));
  # DEBUG ret => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 114

  <bb 5> [local count: 1073741824]:
  # ret_5 = PHI <ret_13(2), 0(3), 114(4)>
  # DEBUG ret => ret_5
  # DEBUG BEGIN_STMT
  # DEBUG D#16 => &iface_7(D)->lock
  _18 = MEM[(const oal_mutex_t *)iface_7(D) + 124B];
  # DEBUG D#2 => D#16
  oal_mutex_unlock.isra.0 (_18);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_5;

}


pfe_log_if_get_match_rules (struct pfe_log_if_t * iface, pfe_ct_if_m_rules_t * rules, struct pfe_ct_if_m_args_t * args)
{
  <unnamed type> _1;
  long unsigned int _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;
  <unnamed type> _12;
  struct pfe_ct_if_m_args_t * _13;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = iface_16(D)->log_if_class.m_rules;
  _2 = (long unsigned int) _1;
  _3 = _2 >> 24;
  _4 = _2 >> 8;
  _5 = _4 & 65280;
  _6 = _3 | _5;
  _7 = _2 << 8;
  _8 = _7 & 16711680;
  _9 = _6 | _8;
  _10 = _2 << 24;
  _11 = _9 | _10;
  _12 = (<unnamed type>) _11;
  *rules_17(D) = _12;
  # DEBUG BEGIN_STMT
  if (args_19(D) != 0B)
    goto <bb 3>; [53.47%]
  else
    goto <bb 4>; [46.53%]

  <bb 3> [local count: 574129754]:
  # DEBUG BEGIN_STMT
  _13 = &iface_16(D)->log_if_class.m_args;
  memcpy (args_19(D), _13, 68);

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_log_if_del_match_rule (struct pfe_log_if_t * iface, pfe_ct_if_m_rules_t rule)
{
  pfe_ct_if_m_rules_t tmp;
  errno_t ret;
  long unsigned int rule.15_1;
  long unsigned int _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;
  int _12;
  int _13;
  struct pfe_ct_log_if_t * _14;
  short unsigned int _26;
  short unsigned int _27;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#13 => &iface_16(D)->lock
  _26 = MEM[(const oal_mutex_t *)iface_16(D) + 124B];
  # DEBUG D#1 => D#13
  oal_mutex_lock.isra.0 (_26);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  tmp_19 = iface_16(D)->log_if_class.m_rules;
  # DEBUG tmp => tmp_19
  # DEBUG BEGIN_STMT
  rule.15_1 = (long unsigned int) rule_20(D);
  _2 = ~rule.15_1;
  _3 = _2 >> 24;
  _4 = _2 >> 8;
  _5 = _4 & 65280;
  _6 = _3 | _5;
  _7 = _2 << 8;
  _8 = _7 & 16711680;
  _9 = _6 | _8;
  _10 = _2 << 24;
  _11 = _9 | _10;
  _12 = (int) _11;
  _13 = _12 & tmp_19;
  iface_16(D)->log_if_class.m_rules = _13;
  # DEBUG BEGIN_STMT
  _14 = &iface_16(D)->log_if_class;
  ret_23 = pfe_log_if_write_to_class_nostats (iface_16(D), _14);
  # DEBUG ret => ret_23
  # DEBUG BEGIN_STMT
  if (ret_23 != 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  iface_16(D)->log_if_class.m_rules = tmp_19;

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG D#14 => &iface_16(D)->lock
  _27 = MEM[(const oal_mutex_t *)iface_16(D) + 124B];
  # DEBUG D#2 => D#14
  oal_mutex_unlock.isra.0 (_27);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_23;

}


pfe_log_if_add_match_rule (struct pfe_log_if_t * iface, pfe_ct_if_m_rules_t rule, const void * arg, uint32_t arg_len)
{
  pfe_ct_if_m_rules_t tmp;
  errno_t ret;
  long unsigned int rule.9_1;
  long unsigned int _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;
  int _13;
  int _14;
  struct pfe_ct_log_if_t * _15;
  short unsigned int _34;
  short unsigned int _35;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (rule_20(D) == 0)
    goto <bb 8>; [35.00%]
  else
    goto <bb 3>; [65.00%]

  <bb 3> [local count: 697932186]:
  # DEBUG BEGIN_STMT
  rule.9_1 = (long unsigned int) rule_20(D);
  _2 = rule.9_1 + 4294967295;
  _3 = rule.9_1 & _2;
  if (_3 != 0)
    goto <bb 8>; [52.23%]
  else
    goto <bb 4>; [47.77%]

  <bb 4> [local count: 333402205]:
  # DEBUG BEGIN_STMT
  # DEBUG D#11 => &iface_21(D)->lock
  _34 = MEM[(const oal_mutex_t *)iface_21(D) + 124B];
  # DEBUG D#1 => D#11
  oal_mutex_lock.isra.0 (_34);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  ret_27 = pfe_log_if_add_match_rule_validate_arg (iface_21(D), rule_20(D), arg_24(D), arg_len_25(D));
  # DEBUG ret => ret_27
  # DEBUG BEGIN_STMT
  if (ret_27 != 0)
    goto <bb 7>; [67.00%]
  else
    goto <bb 5>; [33.00%]

  <bb 5> [local count: 110022728]:
  # DEBUG BEGIN_STMT
  tmp_28 = iface_21(D)->log_if_class.m_rules;
  # DEBUG tmp => tmp_28
  # DEBUG BEGIN_STMT
  _4 = rule.9_1 >> 24;
  _5 = rule.9_1 >> 8;
  _6 = _5 & 65280;
  _7 = _4 | _6;
  _8 = rule.9_1 << 8;
  _9 = _8 & 16711680;
  _10 = _7 | _9;
  _11 = rule.9_1 << 24;
  _12 = _10 | _11;
  _13 = (int) _12;
  _14 = _13 | tmp_28;
  iface_21(D)->log_if_class.m_rules = _14;
  # DEBUG BEGIN_STMT
  _15 = &iface_21(D)->log_if_class;
  ret_31 = pfe_log_if_write_to_class_nostats (iface_21(D), _15);
  # DEBUG ret => ret_31
  # DEBUG BEGIN_STMT
  if (ret_31 != 0)
    goto <bb 6>; [50.00%]
  else
    goto <bb 7>; [50.00%]

  <bb 6> [local count: 55011364]:
  # DEBUG BEGIN_STMT
  iface_21(D)->log_if_class.m_rules = tmp_28;

  <bb 7> [local count: 333402205]:
  # ret_16 = PHI <ret_27(4), ret_31(5), ret_31(6)>
  # DEBUG ret => ret_16
  # DEBUG BEGIN_STMT
  # DEBUG D#12 => &iface_21(D)->lock
  _35 = MEM[(const oal_mutex_t *)iface_21(D) + 124B];
  # DEBUG D#2 => D#12
  oal_mutex_unlock.isra.0 (_35);

  <bb 8> [local count: 1073741824]:
  # ret_17 = PHI <22(2), 22(3), ret_16(7)>
  # DEBUG ret => ret_17
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_17;

}


pfe_log_if_add_match_rule_validate_arg (struct pfe_log_if_t * iface, pfe_ct_if_m_rules_t rule, const void * arg, uint32_t arg_len)
{
  errno_t ret;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  ret_9 = pfe_log_if_match_rule1 (iface_4(D), rule_5(D), arg_6(D), arg_len_7(D));
  # DEBUG ret => ret_9
  # DEBUG BEGIN_STMT
  if (ret_9 == 22)
    goto <bb 3>; [20.24%]
  else
    goto <bb 8>; [79.76%]

  <bb 3> [local count: 217325345]:
  # DEBUG BEGIN_STMT
  ret_11 = pfe_log_if_match_rule2 (iface_4(D), rule_5(D), arg_6(D), arg_len_7(D));
  # DEBUG ret => ret_11
  # DEBUG BEGIN_STMT
  if (ret_11 == 22)
    goto <bb 4>; [20.24%]
  else
    goto <bb 8>; [79.76%]

  <bb 4> [local count: 43986650]:
  # DEBUG BEGIN_STMT
  ret_13 = pfe_log_if_match_rule3 (iface_4(D), rule_5(D), arg_6(D), arg_len_7(D));
  # DEBUG ret => ret_13
  # DEBUG BEGIN_STMT
  if (ret_13 == 22)
    goto <bb 5>; [20.24%]
  else
    goto <bb 8>; [79.76%]

  <bb 5> [local count: 8902898]:
  # DEBUG BEGIN_STMT
  ret_15 = pfe_log_if_match_rule4 (iface_4(D), rule_5(D), arg_6(D), arg_len_7(D));
  # DEBUG ret => ret_15
  # DEBUG BEGIN_STMT
  if (ret_15 == 22)
    goto <bb 6>; [34.00%]
  else
    goto <bb 8>; [66.00%]

  <bb 6> [local count: 3026985]:
  # DEBUG BEGIN_STMT
  if (arg_len_7(D) != 0)
    goto <bb 8>; [35.00%]
  else
    goto <bb 7>; [65.00%]

  <bb 7> [local count: 1967540]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0

  <bb 8> [local count: 1073741824]:
  # ret_1 = PHI <ret_9(2), ret_11(3), ret_13(4), ret_15(5), 22(6), 0(7)>
  # DEBUG ret => ret_1
  # DEBUG BEGIN_STMT
  return ret_1;

}


pfe_log_if_set_match_rules (struct pfe_log_if_t * iface, pfe_ct_if_m_rules_t rules, const struct pfe_ct_if_m_args_t * args)
{
  pfe_ct_if_m_rules_t tmp;
  errno_t ret;
  struct pfe_ct_if_m_args_t * _1;
  long unsigned int rules.5_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;
  <unnamed type> _12;
  struct pfe_ct_log_if_t * _13;
  short unsigned int _29;
  short unsigned int _30;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (args_17(D) == 0B)
    goto <bb 6>; [31.91%]
  else
    goto <bb 3>; [68.09%]

  <bb 3> [local count: 731110809]:
  # DEBUG BEGIN_STMT
  # DEBUG D#9 => &iface_18(D)->lock
  _29 = MEM[(const oal_mutex_t *)iface_18(D) + 124B];
  # DEBUG D#1 => D#9
  oal_mutex_lock.isra.0 (_29);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = &iface_18(D)->log_if_class.m_args;
  memcpy (_1, args_17(D), 68);
  # DEBUG BEGIN_STMT
  tmp_22 = iface_18(D)->log_if_class.m_rules;
  # DEBUG tmp => tmp_22
  # DEBUG BEGIN_STMT
  rules.5_2 = (long unsigned int) rules_23(D);
  _3 = rules.5_2 >> 24;
  _4 = rules.5_2 >> 8;
  _5 = _4 & 65280;
  _6 = _3 | _5;
  _7 = rules.5_2 << 8;
  _8 = _7 & 16711680;
  _9 = _6 | _8;
  _10 = rules.5_2 << 24;
  _11 = _9 | _10;
  _12 = (<unnamed type>) _11;
  iface_18(D)->log_if_class.m_rules = _12;
  # DEBUG BEGIN_STMT
  _13 = &iface_18(D)->log_if_class;
  ret_26 = pfe_log_if_write_to_class_nostats (iface_18(D), _13);
  # DEBUG ret => ret_26
  # DEBUG BEGIN_STMT
  if (ret_26 != 0)
    goto <bb 4>; [50.00%]
  else
    goto <bb 5>; [50.00%]

  <bb 4> [local count: 365555404]:
  # DEBUG BEGIN_STMT
  iface_18(D)->log_if_class.m_rules = tmp_22;

  <bb 5> [local count: 731110809]:
  # DEBUG BEGIN_STMT
  # DEBUG D#10 => &iface_18(D)->lock
  _30 = MEM[(const oal_mutex_t *)iface_18(D) + 124B];
  # DEBUG D#2 => D#10
  oal_mutex_unlock.isra.0 (_30);

  <bb 6> [local count: 1073741824]:
  # ret_14 = PHI <22(2), ret_26(5)>
  # DEBUG ret => ret_14
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_14;

}


pfe_log_if_set_match_and (struct pfe_log_if_t * iface)
{
  pfe_ct_if_flags_t tmp;
  errno_t ret;
  long unsigned int _1;
  long unsigned int _2;
  <unnamed type> _3;
  struct pfe_ct_log_if_t * _4;
  short unsigned int _15;
  short unsigned int _16;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#7 => &iface_6(D)->lock
  _15 = MEM[(const oal_mutex_t *)iface_6(D) + 124B];
  # DEBUG D#1 => D#7
  oal_mutex_lock.isra.0 (_15);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  tmp_9 = iface_6(D)->log_if_class.flags;
  # DEBUG tmp => tmp_9
  # DEBUG BEGIN_STMT
  _1 = (long unsigned int) tmp_9;
  _2 = _1 & 4160749567;
  _3 = (<unnamed type>) _2;
  iface_6(D)->log_if_class.flags = _3;
  # DEBUG BEGIN_STMT
  _4 = &iface_6(D)->log_if_class;
  ret_12 = pfe_log_if_write_to_class_nostats (iface_6(D), _4);
  # DEBUG ret => ret_12
  # DEBUG BEGIN_STMT
  if (ret_12 != 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  iface_6(D)->log_if_class.flags = tmp_9;

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG D#8 => &iface_6(D)->lock
  _16 = MEM[(const oal_mutex_t *)iface_6(D) + 124B];
  # DEBUG D#2 => D#8
  oal_mutex_unlock.isra.0 (_16);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_12;

}


pfe_log_if_set_match_or (struct pfe_log_if_t * iface)
{
  pfe_ct_if_flags_t tmp;
  errno_t ret;
  long unsigned int _1;
  long unsigned int _2;
  <unnamed type> _3;
  struct pfe_ct_log_if_t * _4;
  short unsigned int _15;
  short unsigned int _16;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#5 => &iface_6(D)->lock
  _15 = MEM[(const oal_mutex_t *)iface_6(D) + 124B];
  # DEBUG D#1 => D#5
  oal_mutex_lock.isra.0 (_15);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  tmp_9 = iface_6(D)->log_if_class.flags;
  # DEBUG tmp => tmp_9
  # DEBUG BEGIN_STMT
  _1 = (long unsigned int) tmp_9;
  _2 = _1 | 134217728;
  _3 = (<unnamed type>) _2;
  iface_6(D)->log_if_class.flags = _3;
  # DEBUG BEGIN_STMT
  _4 = &iface_6(D)->log_if_class;
  ret_12 = pfe_log_if_write_to_class_nostats (iface_6(D), _4);
  # DEBUG ret => ret_12
  # DEBUG BEGIN_STMT
  if (ret_12 != 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  iface_6(D)->log_if_class.flags = tmp_9;

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG D#6 => &iface_6(D)->lock
  _16 = MEM[(const oal_mutex_t *)iface_6(D) + 124B];
  # DEBUG D#2 => D#6
  oal_mutex_unlock.isra.0 (_16);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_12;

}


pfe_log_if_is_match_or (struct pfe_log_if_t * iface)
{
  bool_t ret;
  <unnamed type> _1;
  long unsigned int _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;
  _Bool _13;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = iface_15(D)->log_if_class.flags;
  _2 = (long unsigned int) _1;
  _3 = _2 >> 24;
  _4 = _2 >> 8;
  _5 = _4 & 65280;
  _6 = _3 | _5;
  _7 = _2 << 8;
  _8 = _7 & 16711680;
  _9 = _6 | _8;
  _10 = _2 << 24;
  _11 = _9 | _10;
  _12 = _11 & 8;
  _13 = _12 != 0;
  ret_16 = (bool_t) _13;
  # DEBUG ret => ret_16
  # DEBUG BEGIN_STMT
  return ret_16;

}


pfe_log_if_destroy (struct pfe_log_if_t * iface)
{
  struct pfe_mac_db_t * _1;
  struct pfe_phy_if_t * _2;
  char_t * _3;
  struct blalloc_t * pfe_log_if_id_pool.4_4;
  unsigned char _5;
  unsigned int _6;
  struct pfe_ct_log_if_t * _7;
  unsigned int _8;
  struct pfe_class_t * _9;
  oal_mutex_t * _10;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (iface_14(D) != 0B)
    goto <bb 3>; [53.47%]
  else
    goto <bb 8>; [46.53%]

  <bb 3> [local count: 574129754]:
  # DEBUG BEGIN_STMT
  _1 = iface_14(D)->mac_db;
  pfe_mac_db_destroy (_1);
  # DEBUG ret => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _2 = iface_14(D)->parent;
  pfe_phy_if_del_log_if (_2, iface_14(D));
  # DEBUG ret => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _3 = iface_14(D)->name;
  if (_3 != 0B)
    goto <bb 4>; [53.47%]
  else
    goto <bb 5>; [46.53%]

  <bb 4> [local count: 306987179]:
  # DEBUG BEGIN_STMT
  oal_mm_free (_3);
  # DEBUG BEGIN_STMT
  iface_14(D)->name = 0B;

  <bb 5> [local count: 574129754]:
  # DEBUG BEGIN_STMT
  pfe_log_if_id_pool.4_4 = pfe_log_if_id_pool;
  _5 = iface_14(D)->log_if_class.id;
  _6 = (unsigned int) _5;
  blalloc_free_offs (pfe_log_if_id_pool.4_4, _6);
  # DEBUG BEGIN_STMT
  _7 = &iface_14(D)->log_if_class;
  memset (_7, 0, 104);
  # DEBUG BEGIN_STMT
  pfe_log_if_write_to_class_nostats (iface_14(D), _7);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _8 = iface_14(D)->dmem_base;
  if (_8 != 0)
    goto <bb 6>; [33.00%]
  else
    goto <bb 7>; [67.00%]

  <bb 6> [local count: 189462818]:
  # DEBUG BEGIN_STMT
  _9 = iface_14(D)->class;
  pfe_class_dmem_heap_free (_9, _8);

  <bb 7> [local count: 574129754]:
  # DEBUG BEGIN_STMT
  _10 = &iface_14(D)->lock;
  oal_mutex_destroy (_10);
  # DEBUG BEGIN_STMT
  oal_mm_free (iface_14(D));

  <bb 8> [local count: 1073741824]:
  return;

}


pfe_log_if_get_dmem_base (const struct pfe_log_if_t * iface, addr_t * dmem_base)
{
  unsigned int _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = iface_3(D)->dmem_base;
  *dmem_base_4(D) = _1;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_log_if_get_next_dmem_ptr (struct pfe_log_if_t * iface, addr_t * next_dmem_ptr)
{
  long unsigned int _1;
  long unsigned int _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;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = iface_12(D)->log_if_class.next;
  _2 = _1 >> 24;
  _3 = _1 >> 8;
  _4 = _3 & 65280;
  _5 = _2 | _4;
  _6 = _1 << 8;
  _7 = _6 & 16711680;
  _8 = _5 | _7;
  _9 = _1 << 24;
  _10 = _8 | _9;
  *next_dmem_ptr_13(D) = _10;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_log_if_set_next_dmem_ptr (struct pfe_log_if_t * iface, addr_t next_dmem_ptr)
{
  errno_t ret;
  long unsigned int _1;
  long unsigned int _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;
  struct pfe_ct_log_if_t * _10;
  int _11;
  short unsigned int _20;
  short unsigned int _21;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  # DEBUG D#3 => &iface_13(D)->lock
  _20 = MEM[(const oal_mutex_t *)iface_13(D) + 124B];
  # DEBUG D#1 => D#3
  oal_mutex_lock.isra.0 (_20);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = next_dmem_ptr_16(D) >> 24;
  _2 = next_dmem_ptr_16(D) >> 8;
  _3 = _2 & 65280;
  _4 = _1 | _3;
  _5 = next_dmem_ptr_16(D) << 8;
  _6 = _5 & 16711680;
  _7 = _4 | _6;
  _8 = next_dmem_ptr_16(D) << 24;
  _9 = _7 | _8;
  iface_13(D)->log_if_class.next = _9;
  # DEBUG BEGIN_STMT
  _10 = &iface_13(D)->log_if_class;
  _11 = pfe_log_if_write_to_class_nostats (iface_13(D), _10);
  if (_11 != 0)
    goto <bb 3>; [35.00%]
  else
    goto <bb 4>; [65.00%]

  <bb 3> [local count: 375809639]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 114

  <bb 4> [local count: 1073741824]:
  # ret_12 = PHI <0(2), 114(3)>
  # DEBUG ret => ret_12
  # DEBUG BEGIN_STMT
  # DEBUG D#4 => &iface_13(D)->lock
  _21 = MEM[(const oal_mutex_t *)iface_13(D) + 124B];
  # DEBUG D#2 => D#4
  oal_mutex_unlock.isra.0 (_21);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_12;

}


__attribute__((pure))
pfe_log_if_get_parent (const struct pfe_log_if_t * iface)
{
  struct pfe_phy_if_t * ptr;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  ptr_3 = iface_2(D)->parent;
  # DEBUG ptr => ptr_3
  # DEBUG BEGIN_STMT
  return ptr_3;

}


__attribute__((pure))
pfe_log_if_get_id (const struct pfe_log_if_t * iface)
{
  uint8_t ret;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  ret_3 = iface_2(D)->log_if_class.id;
  # DEBUG ret => ret_3
  # DEBUG BEGIN_STMT
  return ret_3;

}


pfe_log_if_create (struct pfe_phy_if_t * parent, const char_t * name)
{
  addr_t id;
  struct pfe_log_if_t * iface;
  struct blalloc_t * pfe_log_if_id_pool.0_1;
  struct blalloc_t * _2;
  struct pfe_log_if_t * _3;
  struct blalloc_t * pfe_log_if_id_pool.2_4;
  int _5;
  struct pfe_class_t * _6;
  struct pfe_mac_db_t * _7;
  oal_mutex_t * _8;
  struct pfe_mac_db_t * _9;
  unsigned int _10;
  unsigned int _11;
  void * _12;
  struct pfe_mac_db_t * _13;
  struct pfe_class_t * _14;
  unsigned int _15;
  struct pfe_mac_db_t * _16;
  char_t * _17;
  struct pfe_ct_log_if_t * _18;
  unsigned int id.3_19;
  unsigned char _20;
  int _21;
  struct pfe_class_t * _22;
  unsigned int _23;
  struct pfe_mac_db_t * _24;
  char_t * _25;
  int _26;
  struct pfe_class_t * _27;
  unsigned int _28;
  struct pfe_mac_db_t * _29;
  char_t * _30;
  struct pfe_log_if_t * _31;
  int _79;

  <bb 2> [local count: 1073741823]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  pfe_log_if_id_pool.0_1 = pfe_log_if_id_pool;
  if (pfe_log_if_id_pool.0_1 == 0B)
    goto <bb 3>; [30.00%]
  else
    goto <bb 4>; [70.00%]

  <bb 3> [local count: 322122547]:
  # DEBUG BEGIN_STMT
  _2 = blalloc_create (256, 0);
  pfe_log_if_id_pool = _2;
  # DEBUG BEGIN_STMT
  if (_2 == 0B)
    goto <bb 18>; [8.27%]
  else
    goto <bb 4>; [91.73%]

  <bb 4> [local count: 1047102288]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  pfe_log_if_id_pool.2_4 = pfe_log_if_id_pool;
  _5 = blalloc_alloc_offs (pfe_log_if_id_pool.2_4, 1, 0, &id);
  if (_5 != 0)
    goto <bb 18>; [29.93%]
  else
    goto <bb 5>; [70.07%]

  <bb 5> [local count: 733704574]:
  # DEBUG BEGIN_STMT
  iface_39 = oal_mm_malloc (128);
  # DEBUG iface => iface_39
  # DEBUG BEGIN_STMT
  if (iface_39 == 0B)
    goto <bb 18>; [15.47%]
  else
    goto <bb 6>; [84.53%]

  <bb 6> [local count: 620200477]:
  # DEBUG BEGIN_STMT
  _3 = iface_39 + 4;
  memset (_3, 0, 124);
  # DEBUG BEGIN_STMT
  iface_39->parent = parent_41(D);
  # DEBUG BEGIN_STMT
  _6 = pfe_phy_if_get_class (parent_41(D));
  iface_39->class = _6;
  # DEBUG BEGIN_STMT
  _7 = pfe_mac_db_create ();
  iface_39->mac_db = _7;
  # DEBUG BEGIN_STMT
  if (_7 == 0B)
    goto <bb 7>; [8.27%]
  else
    goto <bb 8>; [91.73%]

  <bb 7> [local count: 51290579]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  oal_mm_free (iface_39);
  # DEBUG BEGIN_STMT
  goto <bb 18>; [100.00%]

  <bb 8> [local count: 568909898]:
  # DEBUG BEGIN_STMT
  iface_39->lock = 1;
  # DEBUG BEGIN_STMT
  _8 = &iface_39->lock;
  # DEBUG mutex => _8
  # DEBUG INLINE_ENTRY oal_mutex_init
  # DEBUG BEGIN_STMT
  _79 = oal_mutex_init_internal (_8);
  # DEBUG mutex => NULL
  if (_79 != 0)
    goto <bb 9>; [17.38%]
  else
    goto <bb 10>; [82.62%]

  <bb 9> [local count: 98876540]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _9 = iface_39->mac_db;
  pfe_mac_db_destroy (_9);
  # DEBUG BEGIN_STMT
  oal_mm_free (iface_39);
  # DEBUG BEGIN_STMT
  goto <bb 18>; [100.00%]

  <bb 10> [local count: 470033357]:
  # DEBUG BEGIN_STMT
  _10 = strlen (name_47(D));
  _11 = _10 + 1;
  _12 = oal_mm_malloc (_11);
  iface_39->name = _12;
  # DEBUG BEGIN_STMT
  if (_12 == 0B)
    goto <bb 11>; [8.27%]
  else
    goto <bb 12>; [91.73%]

  <bb 11> [local count: 38871759]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _13 = iface_39->mac_db;
  pfe_mac_db_destroy (_13);
  # DEBUG BEGIN_STMT
  oal_mutex_destroy (_8);
  # DEBUG BEGIN_STMT
  oal_mm_free (iface_39);
  # DEBUG BEGIN_STMT
  goto <bb 18>; [100.00%]

  <bb 12> [local count: 431161598]:
  # DEBUG BEGIN_STMT
  strcpy (_12, name_47(D));
  # DEBUG BEGIN_STMT
  _14 = iface_39->class;
  _15 = pfe_class_dmem_heap_alloc (_14, 104);
  iface_39->dmem_base = _15;
  # DEBUG BEGIN_STMT
  if (_15 == 0)
    goto <bb 13>; [17.38%]
  else
    goto <bb 14>; [82.62%]

  <bb 13> [local count: 74935886]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _16 = iface_39->mac_db;
  pfe_mac_db_destroy (_16);
  # DEBUG BEGIN_STMT
  _17 = iface_39->name;
  oal_mm_free (_17);
  # DEBUG BEGIN_STMT
  oal_mutex_destroy (_8);
  # DEBUG BEGIN_STMT
  oal_mm_free (iface_39);
  # DEBUG BEGIN_STMT
  goto <bb 18>; [100.00%]

  <bb 14> [local count: 356225713]:
  # DEBUG BEGIN_STMT
  _18 = &iface_39->log_if_class;
  memset (_18, 0, 104);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  id.3_19 = id;
  _20 = (unsigned char) id.3_19;
  iface_39->log_if_class.id = _20;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _21 = pfe_log_if_write_to_class (iface_39, _18);
  if (_21 != 0)
    goto <bb 15>; [17.38%]
  else
    goto <bb 16>; [82.62%]

  <bb 15> [local count: 61912029]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  pfe_phy_if_del_log_if (parent_41(D), iface_39);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _22 = iface_39->class;
  _23 = iface_39->dmem_base;
  pfe_class_dmem_heap_free (_22, _23);
  # DEBUG BEGIN_STMT
  _24 = iface_39->mac_db;
  pfe_mac_db_destroy (_24);
  # DEBUG BEGIN_STMT
  _25 = iface_39->name;
  oal_mm_free (_25);
  # DEBUG BEGIN_STMT
  oal_mutex_destroy (_8);
  # DEBUG BEGIN_STMT
  oal_mm_free (iface_39);
  # DEBUG BEGIN_STMT
  goto <bb 18>; [100.00%]

  <bb 16> [local count: 294313684]:
  # DEBUG BEGIN_STMT
  _26 = pfe_phy_if_add_log_if (parent_41(D), iface_39);
  if (_26 != 0)
    goto <bb 17>; [9.39%]
  else
    goto <bb 18>; [90.61%]

  <bb 17> [local count: 27636055]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _27 = iface_39->class;
  _28 = iface_39->dmem_base;
  pfe_class_dmem_heap_free (_27, _28);
  # DEBUG BEGIN_STMT
  _29 = iface_39->mac_db;
  pfe_mac_db_destroy (_29);
  # DEBUG BEGIN_STMT
  _30 = iface_39->name;
  oal_mm_free (_30);
  # DEBUG BEGIN_STMT
  oal_mutex_destroy (_8);
  # DEBUG BEGIN_STMT
  oal_mm_free (iface_39);
  # DEBUG BEGIN_STMT

  <bb 18> [local count: 1073741824]:
  # _31 = PHI <0B(3), 0B(4), 0B(5), 0B(7), 0B(9), 0B(11), 0B(13), 0B(15), 0B(17), iface_39(16)>
  id ={v} {CLOBBER};
  return _31;

}


pfe_log_if_write_to_class (const struct pfe_log_if_t * iface, const struct pfe_ct_log_if_t * class_if)
{
  errno_t ret;
  struct pfe_class_t * _1;
  unsigned int _2;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = iface_4(D)->class;
  _2 = iface_4(D)->dmem_base;
  ret_7 = pfe_class_write_dmem (_1, -1, _2, class_if_5(D), 104);
  # DEBUG ret => ret_7
  # DEBUG BEGIN_STMT
  return ret_7;

}


pfe_log_if_write_to_class_nostats (const struct pfe_log_if_t * iface, const struct pfe_ct_log_if_t * class_if)
{
  errno_t ret;
  struct pfe_class_t * _1;
  unsigned int _2;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = iface_4(D)->class;
  _2 = iface_4(D)->dmem_base;
  ret_7 = pfe_class_write_dmem (_1, -1, _2, class_if_5(D), 88);
  # DEBUG ret => ret_7
  # DEBUG BEGIN_STMT
  return ret_7;

}


pfe_log_if_match_rule2 (struct pfe_log_if_t * iface, pfe_ct_if_m_rules_t rule, const void * arg, uint32_t arg_len)
{
  errno_t ret;
  uint32_t[4] * _1;
  uint32_t[4] * _2;
  unsigned int _10;
  unsigned int _12;

  <bb 2> [local count: 1073741823]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => 22
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  switch (rule_5(D)) <default: <L16> [20.00%], case 4194304: <L0> [20.00%], case 8388608: <L3> [20.00%], case 16777216: <L6> [20.00%], case 33554432: <L9> [20.00%]>

  <bb 3> [local count: 214748364]:
<L0>:
  # DEBUG BEGIN_STMT
  if (arg_len_7(D) == 16)
    goto <bb 4>; [32.03%]
  else
    goto <bb 11>; [67.97%]

  <bb 4> [local count: 68783901]:
  # DEBUG BEGIN_STMT
  _1 = &iface_8(D)->log_if_class.m_args.ipv.v6.sip;
  memcpy (_1, arg_9(D), 16);
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  goto <bb 11>; [100.00%]

  <bb 5> [local count: 214748364]:
<L3>:
  # DEBUG BEGIN_STMT
  if (arg_len_7(D) == 16)
    goto <bb 6>; [32.03%]
  else
    goto <bb 11>; [67.97%]

  <bb 6> [local count: 68783901]:
  # DEBUG BEGIN_STMT
  _2 = &iface_8(D)->log_if_class.m_args.ipv.v6.dip;
  memcpy (_2, arg_9(D), 16);
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  goto <bb 11>; [100.00%]

  <bb 7> [local count: 214748364]:
<L6>:
  # DEBUG BEGIN_STMT
  if (arg_len_7(D) == 4)
    goto <bb 8>; [48.89%]
  else
    goto <bb 11>; [51.11%]

  <bb 8> [local count: 104990475]:
  # DEBUG BEGIN_STMT
  _12 = MEM[(char * {ref-all})arg_9(D)];
  MEM[(char * {ref-all})iface_8(D) + 44B] = _12;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  goto <bb 11>; [100.00%]

  <bb 9> [local count: 214748364]:
<L9>:
  # DEBUG BEGIN_STMT
  if (arg_len_7(D) == 4)
    goto <bb 10>; [48.89%]
  else
    goto <bb 11>; [51.11%]

  <bb 10> [local count: 104990475]:
  # DEBUG BEGIN_STMT
  _10 = MEM[(char * {ref-all})arg_9(D)];
  MEM[(char * {ref-all})iface_8(D) + 48B] = _10;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0

  <bb 11> [local count: 1073741824]:
  # ret_3 = PHI <0(4), 0(6), 0(8), 0(10), 22(2), 22(3), 22(5), 22(7), 22(9)>
<L16>:
  # DEBUG ret => ret_3
  # DEBUG BEGIN_STMT
  return ret_3;

}


pfe_log_if_match_rule4 (struct pfe_log_if_t * iface, pfe_ct_if_m_rules_t rule, const void * arg, uint32_t arg_len)
{
  errno_t ret;
  uint8_t[6] * _1;
  uint8_t[6] * _2;
  long unsigned int _3;

  <bb 2> [local count: 1073741823]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => 22
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  switch (rule_6(D)) <default: <L13> [25.00%], case -2147483648: <L6> [25.00%], case 536870912: <L0> [25.00%], case 1073741824: <L3> [25.00%]>

  <bb 3> [local count: 268435456]:
<L0>:
  # DEBUG BEGIN_STMT
  if (arg_len_8(D) == 6)
    goto <bb 4>; [32.03%]
  else
    goto <bb 9>; [67.97%]

  <bb 4> [local count: 85979876]:
  # DEBUG BEGIN_STMT
  _1 = &iface_9(D)->log_if_class.m_args.smac;
  memcpy (_1, arg_10(D), 6);
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  goto <bb 9>; [100.00%]

  <bb 5> [local count: 268435456]:
<L3>:
  # DEBUG BEGIN_STMT
  if (arg_len_8(D) == 6)
    goto <bb 6>; [32.03%]
  else
    goto <bb 9>; [67.97%]

  <bb 6> [local count: 85979876]:
  # DEBUG BEGIN_STMT
  _2 = &iface_9(D)->log_if_class.m_args.dmac;
  memcpy (_2, arg_10(D), 6);
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  goto <bb 9>; [100.00%]

  <bb 7> [local count: 268435456]:
<L6>:
  # DEBUG BEGIN_STMT
  if (arg_len_8(D) == 4)
    goto <bb 8>; [48.89%]
  else
    goto <bb 9>; [51.11%]

  <bb 8> [local count: 131238094]:
  # DEBUG BEGIN_STMT
  _3 = MEM[(uint32_t *)arg_10(D)];
  iface_9(D)->log_if_class.m_args.hif_cookie = _3;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0

  <bb 9> [local count: 1073741824]:
  # ret_4 = PHI <0(4), 0(6), 0(8), 22(2), 22(3), 22(5), 22(7)>
<L13>:
  # DEBUG ret => ret_4
  # DEBUG BEGIN_STMT
  return ret_4;

}


pfe_log_if_match_rule3 (struct pfe_log_if_t * iface, pfe_ct_if_m_rules_t rule, const void * arg, uint32_t arg_len)
{
  errno_t ret;
  short unsigned int _1;
  long unsigned int _2;
  long unsigned int _3;

  <bb 2> [local count: 1073741823]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => 22
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  switch (rule_6(D)) <default: <L13> [25.00%], case 67108864: <L0> [25.00%], case 134217728: <L3> [25.00%], case 268435456: <L6> [25.00%]>

  <bb 3> [local count: 268435456]:
<L0>:
  # DEBUG BEGIN_STMT
  if (arg_len_8(D) == 2)
    goto <bb 4>; [48.89%]
  else
    goto <bb 9>; [51.11%]

  <bb 4> [local count: 131238094]:
  # DEBUG BEGIN_STMT
  _1 = MEM[(uint16_t *)arg_9(D)];
  iface_10(D)->log_if_class.m_args.ethtype = _1;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  goto <bb 9>; [100.00%]

  <bb 5> [local count: 268435456]:
<L3>:
  # DEBUG BEGIN_STMT
  if (arg_len_8(D) == 4)
    goto <bb 6>; [48.89%]
  else
    goto <bb 9>; [51.11%]

  <bb 6> [local count: 131238094]:
  # DEBUG BEGIN_STMT
  _2 = MEM[(uint32_t *)arg_9(D)];
  iface_10(D)->log_if_class.m_args.fp0_table = _2;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  goto <bb 9>; [100.00%]

  <bb 7> [local count: 268435456]:
<L6>:
  # DEBUG BEGIN_STMT
  if (arg_len_8(D) == 4)
    goto <bb 8>; [48.89%]
  else
    goto <bb 9>; [51.11%]

  <bb 8> [local count: 131238094]:
  # DEBUG BEGIN_STMT
  _3 = MEM[(uint32_t *)arg_9(D)];
  iface_10(D)->log_if_class.m_args.fp1_table = _3;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0

  <bb 9> [local count: 1073741824]:
  # ret_4 = PHI <0(4), 0(6), 0(8), 22(2), 22(3), 22(5), 22(7)>
<L13>:
  # DEBUG ret => ret_4
  # DEBUG BEGIN_STMT
  return ret_4;

}


pfe_log_if_match_rule1 (struct pfe_log_if_t * iface, pfe_ct_if_m_rules_t rule, const void * arg, uint32_t arg_len)
{
  errno_t ret;
  short unsigned int _1;
  unsigned char _2;
  short unsigned int _3;
  short unsigned int _4;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => 22
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  switch (rule_7(D)) <default: <L16> [20.00%], case 32768: <L0> [20.00%], case 65536: <L3> [20.00%], case 1048576: <L6> [20.00%], case 2097152: <L9> [20.00%]>

  <bb 3> [local count: 214748365]:
<L0>:
  # DEBUG BEGIN_STMT
  if (arg_len_9(D) == 2)
    goto <bb 4>; [48.89%]
  else
    goto <bb 11>; [51.11%]

  <bb 4> [local count: 104990476]:
  # DEBUG BEGIN_STMT
  _1 = MEM[(uint16_t *)arg_10(D)];
  iface_11(D)->log_if_class.m_args.vlan = _1;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  goto <bb 11>; [100.00%]

  <bb 5> [local count: 214748365]:
<L3>:
  # DEBUG BEGIN_STMT
  if (arg_len_9(D) == 1)
    goto <bb 6>; [48.89%]
  else
    goto <bb 11>; [51.11%]

  <bb 6> [local count: 104990476]:
  # DEBUG BEGIN_STMT
  _2 = MEM[(uint8_t *)arg_10(D)];
  iface_11(D)->log_if_class.m_args.proto = _2;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  goto <bb 11>; [100.00%]

  <bb 7> [local count: 214748365]:
<L6>:
  # DEBUG BEGIN_STMT
  if (arg_len_9(D) == 2)
    goto <bb 8>; [48.89%]
  else
    goto <bb 11>; [51.11%]

  <bb 8> [local count: 104990476]:
  # DEBUG BEGIN_STMT
  _3 = MEM[(uint16_t *)arg_10(D)];
  iface_11(D)->log_if_class.m_args.sport = _3;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  goto <bb 11>; [100.00%]

  <bb 9> [local count: 214748365]:
<L9>:
  # DEBUG BEGIN_STMT
  if (arg_len_9(D) == 2)
    goto <bb 10>; [48.89%]
  else
    goto <bb 11>; [51.11%]

  <bb 10> [local count: 104990476]:
  # DEBUG BEGIN_STMT
  _4 = MEM[(uint16_t *)arg_10(D)];
  iface_11(D)->log_if_class.m_args.dport = _4;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0

  <bb 11> [local count: 1073741824]:
  # ret_5 = PHI <0(4), 0(6), 0(8), 0(10), 22(2), 22(3), 22(5), 22(7), 22(9)>
<L16>:
  # DEBUG ret => ret_5
  # DEBUG BEGIN_STMT
  return ret_5;

}


oal_mutex_destroy (oal_mutex_t * mutex)
{
  errno_t _4;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _4 = oal_mutex_destroy_internal (mutex_2(D));
  return _4;

}


