ClockTimeoutExpired (uint32 * startTimeInOut, uint32 * elapsedTimeInOut, uint32 TimeoutTicks)
{
  long unsigned int _1;
  long unsigned int _2;
  long unsigned int _6;
  boolean _10;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _6 = OsIf_GetElapsed (startTimeInOut_4(D), 0);
  _1 = *elapsedTimeInOut_7(D);
  _2 = _1 + _6;
  *elapsedTimeInOut_7(D) = _2;
  # DEBUG BEGIN_STMT
  _10 = _2 >= TimeoutTicks_9(D);
  return _10;

}


ClockStartTimeout (uint32 * startTimeOut, uint32 * elapsedTimeOut, uint32 * timeoutTicksOut, uint32 timeoutUs)
{
  long unsigned int _1;
  long unsigned int _2;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _1 = OsIf_GetCounter (0);
  *startTimeOut_5(D) = _1;
  # DEBUG BEGIN_STMT
  *elapsedTimeOut_7(D) = 0;
  # DEBUG BEGIN_STMT
  _2 = OsIf_MicrosToTicks (timeoutUs_9(D), 0);
  *timeoutTicksOut_11(D) = _2;
  return;

}


ReportClockErrors (Clock_Ip_ClockNotificationType error, Clock_Ip_NameType clockName)
{
  void (*<T2cc>) (Clock_Ip_ClockNotificationType, Clock_Ip_NameType) clockNotificationsCallback.21_1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  clockNotificationsCallback.21_1 = clockNotificationsCallback;
  clockNotificationsCallback.21_1 (error_3(D), clockName_4(D));
  return;

}


ClockNotificatonsEmptyCallback (Clock_Ip_ClockNotificationType notification, Clock_Ip_NameType clockName)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return;

}


Clock_Ip_TimeDelay ()
{
  unsigned char ClockCalcFreqCallIdx.17_1;
  int _2;
  void (*<T4af>) (void) _3;
  unsigned char ClockCalcFreqCallIdx.18_4;
  unsigned char _5;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  ClockCalcFreqCallIdx.17_1 = ClockCalcFreqCallIdx;
  _2 = (int) ClockCalcFreqCallIdx.17_1;
  _3 = calcFreqCallbacks[_2];
  _3 ();
  # DEBUG BEGIN_STMT
  ClockCalcFreqCallIdx.18_4 = ClockCalcFreqCallIdx;
  if (ClockCalcFreqCallIdx.18_4 <= 33)
    goto <bb 3>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  _5 = ClockCalcFreqCallIdx.18_4 + 1;
  ClockCalcFreqCallIdx = _5;

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

}


Clock_Ip_Sleep ()
{
  int _1;
  void (*<T4af>) (void) _2;
  unsigned char ClockCalcFreqCallIdx.4_3;
  unsigned char _4;
  unsigned char ClockCalcFreqCallIdx.6_5;

  <bb 2> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  goto <bb 4>; [100.00%]

  <bb 3> [local count: 955630223]:
  # DEBUG BEGIN_STMT
  _1 = (int) ClockCalcFreqCallIdx.6_5;
  _2 = calcFreqCallbacks[_1];
  _2 ();
  # DEBUG BEGIN_STMT
  ClockCalcFreqCallIdx.4_3 = ClockCalcFreqCallIdx;
  _4 = ClockCalcFreqCallIdx.4_3 + 1;
  ClockCalcFreqCallIdx = _4;

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  ClockCalcFreqCallIdx.6_5 = ClockCalcFreqCallIdx;
  if (ClockCalcFreqCallIdx.6_5 <= 33)
    goto <bb 3>; [89.00%]
  else
    goto <bb 5>; [11.00%]

  <bb 5> [local count: 118111601]:
  return;

}


Clock_Ip_GetClockFrequency (Clock_Ip_NameType clockName)
{
  uint32 frequency;
  long unsigned int _1;
  long unsigned int _2;
  uint32 (*<T4ac>) (void) _3;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (clockName_6(D) > 21)
    goto <bb 3>; [67.00%]
  else
    goto <bb 4>; [33.00%]

  <bb 3> [local count: 719407023]:
  # DEBUG BEGIN_STMT
  _1 = (long unsigned int) clockName_6(D);
  _2 = _1 + 4294967274;
  _3 = consumerClockCallbacks[_2];
  frequency_11 = _3 ();
  # DEBUG frequency => frequency_11
  goto <bb 5>; [100.00%]

  <bb 4> [local count: 354334802]:
  # DEBUG BEGIN_STMT
  frequency_9 = GetProducerClockFreq (clockName_6(D));
  # DEBUG frequency => frequency_9

  <bb 5> [local count: 1073741824]:
  # frequency_4 = PHI <frequency_11(3), frequency_9(4)>
  # DEBUG frequency => frequency_4
  # DEBUG BEGIN_STMT
  return frequency_4;

}


Clock_Ip_EnableModuleClock (Clock_Ip_NameType clockName)
{
  uint32 callbackIndex;
  int _1;
  unsigned char _2;
  int _3;
  unsigned char _4;
  void (*<T489>) (Clock_Ip_NameType, boolean) _5;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = (int) clockName_6(D);
  _2 = clockFeatures[_1][1];
  _3 = (int) _2;
  _4 = gateCallbackIndex[_3];
  callbackIndex_8 = (uint32) _4;
  # DEBUG callbackIndex => callbackIndex_8
  # DEBUG BEGIN_STMT
  _5 = gateCallbacks[callbackIndex_8].Update;
  _5 (clockName_6(D), 0);
  return;

}


Clock_Ip_DisableModuleClock (Clock_Ip_NameType clockName)
{
  uint32 callbackIndex;
  int _1;
  unsigned char _2;
  int _3;
  unsigned char _4;
  void (*<T489>) (Clock_Ip_NameType, boolean) _5;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = (int) clockName_6(D);
  _2 = clockFeatures[_1][1];
  _3 = (int) _2;
  _4 = gateCallbackIndex[_3];
  callbackIndex_8 = (uint32) _4;
  # DEBUG callbackIndex => callbackIndex_8
  # DEBUG BEGIN_STMT
  _5 = gateCallbacks[callbackIndex_8].Update;
  _5 (clockName_6(D), 1);
  return;

}


Clock_Ip_InstallNotificationsCallback (void (*Clock_Ip_NotificationsCallbackType) (Clock_Ip_ClockNotificationType, Clock_Ip_NameType) callback)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  clockNotificationsCallback = callback_2(D);
  return;

}


Clock_Ip_PowerModeChangeNotification (power_modes_t powerMode, power_notification_t notification)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  UpdateFrequencies (powerMode_2(D));
  return;

}


Clock_Ip_ClearClockMonitorStatus (Clock_Ip_NameType clockName)
{
  uint32 callbackIndex;
  int _1;
  unsigned char _2;
  int _3;
  unsigned char _4;
  void (*<T498>) (Clock_Ip_NameType) _5;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = (int) clockName_6(D);
  _2 = clockFeatures[_1][1];
  _3 = (int) _2;
  _4 = cmuCallbackIndex[_3];
  callbackIndex_8 = (uint32) _4;
  # DEBUG callbackIndex => callbackIndex_8
  # DEBUG BEGIN_STMT
  _5 = cmuCallbacks[callbackIndex_8].Clear;
  _5 (clockName_6(D));
  return;

}


Clock_Ip_GetClockMonitorStatus (Clock_Ip_NameType clockName)
{
  uint32 callbackIndex;
  int _1;
  unsigned char _2;
  int _3;
  unsigned char _4;
  Clock_Ip_CmuStatusType (*<T49c>) (Clock_Ip_NameType) _5;
  Clock_Ip_CmuStatusType _10;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = (int) clockName_6(D);
  _2 = clockFeatures[_1][1];
  _3 = (int) _2;
  _4 = cmuCallbackIndex[_3];
  callbackIndex_8 = (uint32) _4;
  # DEBUG callbackIndex => callbackIndex_8
  # DEBUG BEGIN_STMT
  _5 = cmuCallbacks[callbackIndex_8].GetStatus;
  _10 = _5 (clockName_6(D));
  return _10;

}


Clock_Ip_DisableClockMonitor (Clock_Ip_NameType clockName)
{
  uint32 callbackIndex;
  int _1;
  unsigned char _2;
  int _3;
  unsigned char _4;
  void (*<T498>) (Clock_Ip_NameType) _5;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = (int) clockName_6(D);
  _2 = clockFeatures[_1][1];
  _3 = (int) _2;
  _4 = cmuCallbackIndex[_3];
  callbackIndex_8 = (uint32) _4;
  # DEBUG callbackIndex => callbackIndex_8
  # DEBUG BEGIN_STMT
  _5 = cmuCallbacks[callbackIndex_8].Disable;
  _5 (clockName_6(D));
  return;

}


Clock_Ip_DistributePll ()
{
  uint32 callbackIndex;
  uint32 i;
  const struct Clock_Ip_ClockConfigType * clockConfig.7_1;
  <unnamed type> _2;
  int _3;
  <unnamed type> _4;
  <unnamed type> _5;
  int _6;
  unsigned char _7;
  int _8;
  unsigned char _9;
  void (*<T478>) (const struct Clock_Ip_SelectorConfigType *) _10;
  const struct Clock_Ip_SelectorConfigType * _11;
  const struct Clock_Ip_ClockConfigType * clockConfig.11_12;
  unsigned char _13;
  long unsigned int _14;
  _Bool clockTreeIsConsumingPll.12_15;
  const struct Clock_Ip_ClockConfigType * clockConfig.11_16;
  const struct Clock_IP_SpecificPeriphConfigType * _17;
  <unnamed type> _18;
  int _19;
  unsigned char _20;
  int _21;
  unsigned char _22;
  void (*<T494>) (const struct Clock_Ip_CmuConfigType *) _23;
  const struct Clock_Ip_CmuConfigType * _24;
  const struct Clock_Ip_ClockConfigType * clockConfig.16_25;
  unsigned char _26;
  long unsigned int _27;

  <bb 2> [local count: 168730860]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  clockConfig.7_1 = clockConfig;
  if (clockConfig.7_1 != 0B)
    goto <bb 12>; [70.00%]
  else
    goto <bb 11>; [30.00%]

  <bb 12> [local count: 118111602]:
  goto <bb 6>; [100.00%]

  <bb 3> [local count: 955630224]:
  # DEBUG BEGIN_STMT
  _2 = clockConfig.11_12->selectors[i_28].value;
  _3 = (int) _2;
  _4 = clockName_sourceType[_3];
  if (_4 != 1)
    goto <bb 4>; [66.00%]
  else
    goto <bb 5>; [34.00%]

  <bb 4> [local count: 630715948]:
  # DEBUG BEGIN_STMT
  _5 = clockConfig.11_12->selectors[i_28].name;
  _6 = (int) _5;
  _7 = clockFeatures[_6][1];
  _8 = (int) _7;
  _9 = selectorCallbackIndex[_8];
  callbackIndex_39 = (uint32) _9;
  # DEBUG callbackIndex => callbackIndex_39
  # DEBUG BEGIN_STMT
  _10 = selectorCallbacks[callbackIndex_39].Set;
  _11 = &clockConfig.11_12->selectors[i_28];
  _10 (_11);

  <bb 5> [local count: 955630224]:
  # DEBUG BEGIN_STMT
  i_41 = i_28 + 1;
  # DEBUG i => i_41

  <bb 6> [local count: 1073741824]:
  # i_28 = PHI <i_41(5), 0(12)>
  # DEBUG i => i_28
  # DEBUG BEGIN_STMT
  clockConfig.11_12 = clockConfig;
  _13 = clockConfig.11_12->selectorsCount;
  _14 = (long unsigned int) _13;
  if (_14 > i_28)
    goto <bb 3>; [89.00%]
  else
    goto <bb 7>; [11.00%]

  <bb 7> [local count: 118111601]:
  # clockConfig.11_16 = PHI <clockConfig.11_12(6)>
  # DEBUG BEGIN_STMT
  clockTreeIsConsumingPll.12_15 = clockTreeIsConsumingPll;
  if (clockTreeIsConsumingPll.12_15 != 0)
    goto <bb 8>; [33.00%]
  else
    goto <bb 11>; [67.00%]

  <bb 8> [local count: 38976828]:
  # DEBUG BEGIN_STMT
  _17 = &clockConfig.11_16->specificPeriphalConfiguration;
  SpecificPeripheralClockInitialization (_17);
  # DEBUG BEGIN_STMT
  # DEBUG i => 0
  goto <bb 10>; [100.00%]

  <bb 9> [local count: 155907314]:
  # DEBUG BEGIN_STMT
  _18 = clockConfig.16_25->cmus[i_29].name;
  _19 = (int) _18;
  _20 = clockFeatures[_19][1];
  _21 = (int) _20;
  _22 = cmuCallbackIndex[_21];
  callbackIndex_36 = (uint32) _22;
  # DEBUG callbackIndex => callbackIndex_36
  # DEBUG BEGIN_STMT
  _23 = cmuCallbacks[callbackIndex_36].Set;
  _24 = &clockConfig.16_25->cmus[i_29];
  _23 (_24);
  # DEBUG BEGIN_STMT
  i_38 = i_29 + 1;
  # DEBUG i => i_38

  <bb 10> [local count: 194884142]:
  # i_29 = PHI <0(8), i_38(9)>
  # DEBUG i => i_29
  # DEBUG BEGIN_STMT
  clockConfig.16_25 = clockConfig;
  _26 = clockConfig.16_25->cmusCount;
  _27 = (long unsigned int) _26;
  if (_27 > i_29)
    goto <bb 9>; [80.00%]
  else
    goto <bb 11>; [20.00%]

  <bb 11> [local count: 168730859]:
  # DEBUG BEGIN_STMT
  UpdateFrequencies (0);
  return;

}


Clock_Ip_GetPllStatus ()
{
  uint32 callbackIndex;
  uint32 i;
  clock_pll_status_t pllStatus;
  Clock_Ip_PllStatusType retValue;
  <unnamed type> _1;
  int _2;
  unsigned char _3;
  int _4;
  unsigned char _5;
  clock_pll_status_t (*<T46d>) (Clock_Ip_NameType) _6;

  <bb 2> [local count: 114863532]:
  # DEBUG BEGIN_STMT
  # DEBUG retValue => 2
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG i => 0
  goto <bb 7>; [100.00%]

  <bb 3> [local count: 1014686025]:
  # DEBUG BEGIN_STMT
  _1 = HwPllName[0];
  _2 = (int) _1;
  _3 = clockFeatures[_2][1];
  _4 = (int) _3;
  _5 = pllCallbackIndex[_4];
  callbackIndex_14 = (uint32) _5;
  # DEBUG callbackIndex => callbackIndex_14
  # DEBUG BEGIN_STMT
  _6 = pllCallbacks[callbackIndex_14].Complete;
  pllStatus_16 = _6 (_1);
  # DEBUG pllStatus => pllStatus_16
  # DEBUG BEGIN_STMT
  if (pllStatus_16 == 1)
    goto <bb 8>; [5.50%]
  else
    goto <bb 4>; [94.50%]

  <bb 4> [local count: 958878293]:
  # DEBUG BEGIN_STMT
  if (pllStatus_16 == 2)
    goto <bb 5>; [34.00%]
  else
    goto <bb 6>; [66.00%]

  <bb 5> [local count: 326018619]:
  # DEBUG BEGIN_STMT
  # DEBUG retValue => 0

  <bb 6> [local count: 958878293]:
  # retValue_7 = PHI <retValue_8(4), 0(5)>
  # i_17 = PHI <1(4), 1(5)>

  <bb 7> [local count: 1073741824]:
  # retValue_8 = PHI <retValue_7(6), 2(2)>
  # i_10 = PHI <i_17(6), 0(2)>
  # DEBUG i => i_10
  # DEBUG retValue => retValue_8
  # DEBUG BEGIN_STMT
  if (i_10 == 0)
    goto <bb 3>; [94.50%]
  else
    goto <bb 8>; [5.50%]

  <bb 8> [local count: 114863532]:
  # retValue_9 = PHI <1(3), retValue_8(7)>
  # DEBUG retValue => retValue_9
  # DEBUG BEGIN_STMT
  return retValue_9;

}


Clock_Ip_InitClock (const struct Clock_Ip_ClockConfigType * config)
{
  uint32 i;
  uint32 callbackIndex;
  const struct Clock_Ip_ClockConfigType * clockConfig.1_1;
  <unnamed type> _2;
  int _3;
  unsigned char _4;
  int _5;
  unsigned char _6;
  void (*<T494>) (const struct Clock_Ip_CmuConfigType *) _7;
  const struct Clock_Ip_CmuConfigType * _8;
  unsigned char _9;
  long unsigned int _10;
  <unnamed type> _11;
  int _12;
  unsigned char _13;
  int _14;
  unsigned char _15;
  void (*<T478>) (const struct Clock_Ip_SelectorConfigType *) _16;
  const struct Clock_Ip_SelectorConfigType * _17;
  unsigned char _18;
  long unsigned int _19;
  <unnamed type> _20;
  int _21;
  unsigned char _22;
  int _23;
  unsigned char _24;
  void (*<T456>) (const struct Clock_Ip_FracDivConfigType *) _25;
  const struct Clock_Ip_FracDivConfigType * _26;
  unsigned char _27;
  long unsigned int _28;
  <unnamed type> _29;
  int _30;
  unsigned char _31;
  int _32;
  unsigned char _33;
  void (*<T467>) (const struct Clock_Ip_PllConfigType *) _34;
  const struct Clock_Ip_PllConfigType * _35;
  unsigned char _36;
  long unsigned int _37;
  <unnamed type> _38;
  int _39;
  unsigned char _40;
  int _41;
  unsigned char _42;
  void (*<T433>) (const struct Clock_Ip_XoscConfigType *) _43;
  const struct Clock_Ip_XoscConfigType * _44;
  unsigned char _45;
  long unsigned int _46;
  <unnamed type> _47;
  int _48;
  unsigned char _49;
  int _50;
  unsigned char _51;
  void (*<T428>) (const struct Clock_Ip_IrcoscConfigType *) _52;
  const struct Clock_Ip_IrcoscConfigType * _53;
  unsigned char _54;
  long unsigned int _55;
  <unnamed type> _56;
  int _57;
  unsigned char _58;
  int _59;
  unsigned char _60;
  void (*<T433>) (const struct Clock_Ip_XoscConfigType *) _61;
  const struct Clock_Ip_XoscConfigType * _62;
  unsigned char _63;
  long unsigned int _64;
  <unnamed type> _65;
  int _66;
  unsigned char _67;
  int _68;
  unsigned char _69;
  void (*<T4a7>) (const struct Clock_Ip_PcfsConfigType *) _70;
  const struct Clock_Ip_PcfsConfigType * _71;
  unsigned char _72;
  long unsigned int _73;
  <unnamed type> _74;
  int _75;
  unsigned char _76;
  int _77;
  unsigned char _78;
  void (*<T44a>) (const struct Clock_Ip_DividerTriggerConfigType *) _79;
  const struct Clock_Ip_DividerTriggerConfigType * _80;
  unsigned char _81;
  long unsigned int _82;
  <unnamed type> _83;
  int _84;
  unsigned char _85;
  int _86;
  unsigned char _87;
  void (*<T43f>) (const struct Clock_Ip_DividerConfigType *) _88;
  const struct Clock_Ip_DividerConfigType * _89;
  unsigned char _90;
  long unsigned int _91;
  <unnamed type> _92;
  int _93;
  unsigned char _94;
  int _95;
  unsigned char _96;
  void (*<T44a>) (const struct Clock_Ip_DividerTriggerConfigType *) _97;
  const struct Clock_Ip_DividerTriggerConfigType * _98;
  unsigned char _99;
  long unsigned int _100;
  <unnamed type> _101;
  int _102;
  unsigned char _103;
  int _104;
  unsigned char _105;
  void (*<T467>) (const struct Clock_Ip_PllConfigType *) _106;
  const struct Clock_Ip_PllConfigType * _107;
  unsigned char _108;
  long unsigned int _109;
  <unnamed type> _110;
  int _111;
  unsigned char _112;
  int _113;
  unsigned char _114;
  void (*<T456>) (const struct Clock_Ip_FracDivConfigType *) _115;
  const struct Clock_Ip_FracDivConfigType * _116;
  unsigned char _117;
  long unsigned int _118;
  <unnamed type> _119;
  int _120;
  <unnamed type> _121;
  <unnamed type> _122;
  int _123;
  unsigned char _124;
  int _125;
  unsigned char _126;
  void (*<T478>) (const struct Clock_Ip_SelectorConfigType *) _127;
  const struct Clock_Ip_SelectorConfigType * _128;
  unsigned char _129;
  long unsigned int _130;
  <unnamed type> _131;
  int _132;
  unsigned char _133;
  int _134;
  unsigned char _135;
  void (*<T484>) (const struct Clock_Ip_GateConfigType *) _136;
  const struct Clock_Ip_GateConfigType * _137;
  unsigned char _138;
  long unsigned int _139;
  _Bool clockTreeIsConsumingPll.2_140;
  const struct Clock_IP_SpecificPeriphConfigType * _141;
  <unnamed type> _142;
  int _143;
  unsigned char _144;
  int _145;
  unsigned char _146;
  void (*<T494>) (const struct Clock_Ip_CmuConfigType *) _147;
  const struct Clock_Ip_CmuConfigType * _148;
  unsigned char _149;
  long unsigned int _150;

  <bb 2> [local count: 118111599]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  ClockCalcFreqCallIdx = 0;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  clockConfig.1_1 = clockConfig;
  if (clockConfig.1_1 != 0B)
    goto <bb 55>; [70.00%]
  else
    goto <bb 5>; [30.00%]

  <bb 55> [local count: 82678119]:
  goto <bb 4>; [100.00%]

  <bb 3> [local count: 330712479]:
  # DEBUG BEGIN_STMT
  _2 = config_188(D)->cmus[i_151].name;
  _3 = (int) _2;
  _4 = clockFeatures[_3][1];
  _5 = (int) _4;
  _6 = cmuCallbackIndex[_5];
  callbackIndex_189 = (uint32) _6;
  # DEBUG callbackIndex => callbackIndex_189
  # DEBUG BEGIN_STMT
  _7 = cmuCallbacks[callbackIndex_189].Reset;
  _8 = &config_188(D)->cmus[i_151];
  _7 (_8);
  # DEBUG BEGIN_STMT
  i_191 = i_151 + 1;
  # DEBUG i => i_191

  <bb 4> [local count: 413390598]:
  # i_151 = PHI <i_191(3), 0(55)>
  # DEBUG i => i_151
  # DEBUG BEGIN_STMT
  _9 = config_188(D)->cmusCount;
  _10 = (long unsigned int) _9;
  if (_10 > i_151)
    goto <bb 3>; [80.00%]
  else
    goto <bb 5>; [20.00%]

  <bb 5> [local count: 118111599]:
  # DEBUG BEGIN_STMT
  clockConfig = config_188(D);
  # DEBUG BEGIN_STMT
  SpecificPlatformInitClock (config_188(D));
  # DEBUG BEGIN_STMT
  # DEBUG i => 0
  goto <bb 7>; [100.00%]

  <bb 6> [local count: 955630217]:
  # DEBUG BEGIN_STMT
  _11 = config_188(D)->selectors[i_152].name;
  _12 = (int) _11;
  _13 = clockFeatures[_12][1];
  _14 = (int) _13;
  _15 = selectorCallbackIndex[_14];
  callbackIndex_241 = (uint32) _15;
  # DEBUG callbackIndex => callbackIndex_241
  # DEBUG BEGIN_STMT
  _16 = selectorCallbacks[callbackIndex_241].Reset;
  _17 = &config_188(D)->selectors[i_152];
  _16 (_17);
  # DEBUG BEGIN_STMT
  i_243 = i_152 + 1;
  # DEBUG i => i_243

  <bb 7> [local count: 1073741818]:
  # i_152 = PHI <0(5), i_243(6)>
  # DEBUG i => i_152
  # DEBUG BEGIN_STMT
  _18 = config_188(D)->selectorsCount;
  _19 = (long unsigned int) _18;
  if (_19 > i_152)
    goto <bb 6>; [89.00%]
  else
    goto <bb 54>; [11.00%]

  <bb 54> [local count: 118111600]:
  goto <bb 9>; [100.00%]

  <bb 8> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  _20 = config_188(D)->fracDivs[i_153].name;
  _21 = (int) _20;
  _22 = clockFeatures[_21][1];
  _23 = (int) _22;
  _24 = fractional_dividerCallbackIndex[_23];
  callbackIndex_238 = (uint32) _24;
  # DEBUG callbackIndex => callbackIndex_238
  # DEBUG BEGIN_STMT
  _25 = fracDivCallbacks[callbackIndex_238].Reset;
  _26 = &config_188(D)->fracDivs[i_153];
  _25 (_26);
  # DEBUG BEGIN_STMT
  i_240 = i_153 + 1;
  # DEBUG i => i_240

  <bb 9> [local count: 236223200]:
  # i_153 = PHI <i_240(8), 0(54)>
  # DEBUG i => i_153
  # DEBUG BEGIN_STMT
  _27 = config_188(D)->fracDivsCount;
  _28 = (long unsigned int) _27;
  if (_28 > i_153)
    goto <bb 8>; [50.00%]
  else
    goto <bb 53>; [50.00%]

  <bb 53> [local count: 118111600]:
  goto <bb 11>; [100.00%]

  <bb 10> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  _29 = config_188(D)->plls[i_154].name;
  _30 = (int) _29;
  _31 = clockFeatures[_30][1];
  _32 = (int) _31;
  _33 = pllCallbackIndex[_32];
  callbackIndex_235 = (uint32) _33;
  # DEBUG callbackIndex => callbackIndex_235
  # DEBUG BEGIN_STMT
  _34 = pllCallbacks[callbackIndex_235].Reset;
  _35 = &config_188(D)->plls[i_154];
  _34 (_35);
  # DEBUG BEGIN_STMT
  i_237 = i_154 + 1;
  # DEBUG i => i_237

  <bb 11> [local count: 236223200]:
  # i_154 = PHI <i_237(10), 0(53)>
  # DEBUG i => i_154
  # DEBUG BEGIN_STMT
  _36 = config_188(D)->pllsCount;
  _37 = (long unsigned int) _36;
  if (_37 > i_154)
    goto <bb 10>; [50.00%]
  else
    goto <bb 52>; [50.00%]

  <bb 52> [local count: 118111600]:
  goto <bb 13>; [100.00%]

  <bb 12> [local count: 236258637]:
  # DEBUG BEGIN_STMT
  _38 = config_188(D)->xoscs[i_155].name;
  _39 = (int) _38;
  _40 = clockFeatures[_39][1];
  _41 = (int) _40;
  _42 = xoscCallbackIndex[_41];
  callbackIndex_232 = (uint32) _42;
  # DEBUG callbackIndex => callbackIndex_232
  # DEBUG BEGIN_STMT
  _43 = extOscCallbacks[callbackIndex_232].Reset;
  _44 = &config_188(D)->xoscs[i_155];
  _43 (_44);
  # DEBUG BEGIN_STMT
  i_234 = i_155 + 1;
  # DEBUG i => i_234

  <bb 13> [local count: 354370237]:
  # i_155 = PHI <i_234(12), 0(52)>
  # DEBUG i => i_155
  # DEBUG BEGIN_STMT
  _45 = config_188(D)->xoscsCount;
  _46 = (long unsigned int) _45;
  if (_46 > i_155)
    goto <bb 12>; [66.67%]
  else
    goto <bb 51>; [33.33%]

  <bb 51> [local count: 118111600]:
  goto <bb 15>; [100.00%]

  <bb 14> [local count: 236258637]:
  # DEBUG BEGIN_STMT
  _47 = config_188(D)->ircoscs[i_156].name;
  _48 = (int) _47;
  _49 = clockFeatures[_48][1];
  _50 = (int) _49;
  _51 = ircoscCallbackIndex[_50];
  callbackIndex_229 = (uint32) _51;
  # DEBUG callbackIndex => callbackIndex_229
  # DEBUG BEGIN_STMT
  _52 = intOscCallbacks[callbackIndex_229].Set;
  _53 = &config_188(D)->ircoscs[i_156];
  _52 (_53);
  # DEBUG BEGIN_STMT
  i_231 = i_156 + 1;
  # DEBUG i => i_231

  <bb 15> [local count: 354370237]:
  # i_156 = PHI <i_231(14), 0(51)>
  # DEBUG i => i_156
  # DEBUG BEGIN_STMT
  _54 = config_188(D)->ircoscsCount;
  _55 = (long unsigned int) _54;
  if (_55 > i_156)
    goto <bb 14>; [66.67%]
  else
    goto <bb 50>; [33.33%]

  <bb 50> [local count: 118111600]:
  goto <bb 17>; [100.00%]

  <bb 16> [local count: 236258637]:
  # DEBUG BEGIN_STMT
  _56 = config_188(D)->xoscs[i_157].name;
  _57 = (int) _56;
  _58 = clockFeatures[_57][1];
  _59 = (int) _58;
  _60 = xoscCallbackIndex[_59];
  callbackIndex_226 = (uint32) _60;
  # DEBUG callbackIndex => callbackIndex_226
  # DEBUG BEGIN_STMT
  _61 = extOscCallbacks[callbackIndex_226].Set;
  _62 = &config_188(D)->xoscs[i_157];
  _61 (_62);
  # DEBUG BEGIN_STMT
  i_228 = i_157 + 1;
  # DEBUG i => i_228

  <bb 17> [local count: 354370237]:
  # i_157 = PHI <i_228(16), 0(50)>
  # DEBUG i => i_157
  # DEBUG BEGIN_STMT
  _63 = config_188(D)->xoscsCount;
  _64 = (long unsigned int) _63;
  if (_64 > i_157)
    goto <bb 16>; [66.67%]
  else
    goto <bb 18>; [33.33%]

  <bb 18> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  Clock_Ip_Sleep ();
  # DEBUG BEGIN_STMT
  # DEBUG i => 0
  goto <bb 20>; [100.00%]

  <bb 19> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  _65 = config_188(D)->pcfs[i_158].name;
  _66 = (int) _65;
  _67 = clockFeatures[_66][1];
  _68 = (int) _67;
  _69 = pcfsCallbackIndex[_68];
  callbackIndex_223 = (uint32) _69;
  # DEBUG callbackIndex => callbackIndex_223
  # DEBUG BEGIN_STMT
  _70 = pcfsCallbacks[callbackIndex_223].Set;
  _71 = &config_188(D)->pcfs[i_158];
  _70 (_71);
  # DEBUG BEGIN_STMT
  i_225 = i_158 + 1;
  # DEBUG i => i_225

  <bb 20> [local count: 236223200]:
  # i_158 = PHI <0(18), i_225(19)>
  # DEBUG i => i_158
  # DEBUG BEGIN_STMT
  _72 = config_188(D)->pcfsCount;
  _73 = (long unsigned int) _72;
  if (_73 > i_158)
    goto <bb 19>; [50.00%]
  else
    goto <bb 49>; [50.00%]

  <bb 49> [local count: 118111600]:
  goto <bb 22>; [100.00%]

  <bb 21> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  _74 = config_188(D)->dividerTriggers[i_159].name;
  _75 = (int) _74;
  _76 = clockFeatures[_75][1];
  _77 = (int) _76;
  _78 = dividertriggerCallbackIndex[_77];
  callbackIndex_220 = (uint32) _78;
  # DEBUG callbackIndex => callbackIndex_220
  # DEBUG BEGIN_STMT
  _79 = dividerTriggerCallbacks[callbackIndex_220].Configure;
  _80 = &config_188(D)->dividerTriggers[i_159];
  _79 (_80);
  # DEBUG BEGIN_STMT
  i_222 = i_159 + 1;
  # DEBUG i => i_222

  <bb 22> [local count: 236223200]:
  # i_159 = PHI <i_222(21), 0(49)>
  # DEBUG i => i_159
  # DEBUG BEGIN_STMT
  _81 = config_188(D)->dividerTriggersCount;
  _82 = (long unsigned int) _81;
  if (_82 > i_159)
    goto <bb 21>; [50.00%]
  else
    goto <bb 48>; [50.00%]

  <bb 48> [local count: 118111600]:
  goto <bb 24>; [100.00%]

  <bb 23> [local count: 955630224]:
  # DEBUG BEGIN_STMT
  _83 = config_188(D)->dividers[i_160].name;
  _84 = (int) _83;
  _85 = clockFeatures[_84][1];
  _86 = (int) _85;
  _87 = dividerCallbackIndex[_86];
  callbackIndex_217 = (uint32) _87;
  # DEBUG callbackIndex => callbackIndex_217
  # DEBUG BEGIN_STMT
  _88 = dividerCallbacks[callbackIndex_217].Set;
  _89 = &config_188(D)->dividers[i_160];
  _88 (_89);
  # DEBUG BEGIN_STMT
  i_219 = i_160 + 1;
  # DEBUG i => i_219

  <bb 24> [local count: 1073741824]:
  # i_160 = PHI <i_219(23), 0(48)>
  # DEBUG i => i_160
  # DEBUG BEGIN_STMT
  _90 = config_188(D)->dividersCount;
  _91 = (long unsigned int) _90;
  if (_91 > i_160)
    goto <bb 23>; [89.00%]
  else
    goto <bb 47>; [11.00%]

  <bb 47> [local count: 118111601]:
  goto <bb 26>; [100.00%]

  <bb 25> [local count: 118111601]:
  # DEBUG BEGIN_STMT
  _92 = config_188(D)->dividerTriggers[i_161].name;
  _93 = (int) _92;
  _94 = clockFeatures[_93][1];
  _95 = (int) _94;
  _96 = dividertriggerCallbackIndex[_95];
  callbackIndex_214 = (uint32) _96;
  # DEBUG callbackIndex => callbackIndex_214
  # DEBUG BEGIN_STMT
  _97 = dividerTriggerCallbacks[callbackIndex_214].TriggerUpdate;
  _98 = &config_188(D)->dividerTriggers[i_161];
  _97 (_98);
  # DEBUG BEGIN_STMT
  i_216 = i_161 + 1;
  # DEBUG i => i_216

  <bb 26> [local count: 236223201]:
  # i_161 = PHI <i_216(25), 0(47)>
  # DEBUG i => i_161
  # DEBUG BEGIN_STMT
  _99 = config_188(D)->dividerTriggersCount;
  _100 = (long unsigned int) _99;
  if (_100 > i_161)
    goto <bb 25>; [50.00%]
  else
    goto <bb 46>; [50.00%]

  <bb 46> [local count: 118111601]:
  goto <bb 28>; [100.00%]

  <bb 27> [local count: 118111601]:
  # DEBUG BEGIN_STMT
  _101 = config_188(D)->plls[i_162].name;
  _102 = (int) _101;
  _103 = clockFeatures[_102][1];
  _104 = (int) _103;
  _105 = pllCallbackIndex[_104];
  callbackIndex_211 = (uint32) _105;
  # DEBUG callbackIndex => callbackIndex_211
  # DEBUG BEGIN_STMT
  _106 = pllCallbacks[callbackIndex_211].Set;
  _107 = &config_188(D)->plls[i_162];
  _106 (_107);
  # DEBUG BEGIN_STMT
  i_213 = i_162 + 1;
  # DEBUG i => i_213

  <bb 28> [local count: 236223201]:
  # i_162 = PHI <i_213(27), 0(46)>
  # DEBUG i => i_162
  # DEBUG BEGIN_STMT
  _108 = config_188(D)->pllsCount;
  _109 = (long unsigned int) _108;
  if (_109 > i_162)
    goto <bb 27>; [50.00%]
  else
    goto <bb 45>; [50.00%]

  <bb 45> [local count: 118111601]:
  goto <bb 30>; [100.00%]

  <bb 29> [local count: 118111601]:
  # DEBUG BEGIN_STMT
  _110 = config_188(D)->fracDivs[i_163].name;
  _111 = (int) _110;
  _112 = clockFeatures[_111][1];
  _113 = (int) _112;
  _114 = fractional_dividerCallbackIndex[_113];
  callbackIndex_208 = (uint32) _114;
  # DEBUG callbackIndex => callbackIndex_208
  # DEBUG BEGIN_STMT
  _115 = fracDivCallbacks[callbackIndex_208].Set;
  _116 = &config_188(D)->fracDivs[i_163];
  _115 (_116);
  # DEBUG BEGIN_STMT
  i_210 = i_163 + 1;
  # DEBUG i => i_210

  <bb 30> [local count: 236223201]:
  # i_163 = PHI <i_210(29), 0(45)>
  # DEBUG i => i_163
  # DEBUG BEGIN_STMT
  _117 = config_188(D)->fracDivsCount;
  _118 = (long unsigned int) _117;
  if (_118 > i_163)
    goto <bb 29>; [50.00%]
  else
    goto <bb 31>; [50.00%]

  <bb 31> [local count: 118111601]:
  # DEBUG BEGIN_STMT
  clockTreeIsConsumingPll = 0;
  # DEBUG BEGIN_STMT
  # DEBUG i => 0
  goto <bb 36>; [100.00%]

  <bb 32> [local count: 955630214]:
  # DEBUG BEGIN_STMT
  _119 = config_188(D)->selectors[i_164].value;
  _120 = (int) _119;
  _121 = clockName_sourceType[_120];
  if (_121 == 1)
    goto <bb 33>; [34.00%]
  else
    goto <bb 34>; [66.00%]

  <bb 33> [local count: 324914273]:
  # DEBUG BEGIN_STMT
  _122 = config_188(D)->selectors[i_164].name;
  _123 = (int) _122;
  _124 = clockFeatures[_123][1];
  _125 = (int) _124;
  _126 = selectorCallbackIndex[_125];
  callbackIndex_205 = (uint32) _126;
  # DEBUG callbackIndex => callbackIndex_205
  # DEBUG BEGIN_STMT
  _127 = selectorCallbacks[callbackIndex_205].Set;
  _128 = &config_188(D)->selectors[i_164];
  _127 (_128);
  goto <bb 35>; [100.00%]

  <bb 34> [local count: 630715942]:
  # DEBUG BEGIN_STMT
  clockTreeIsConsumingPll = 1;

  <bb 35> [local count: 955630216]:
  # DEBUG BEGIN_STMT
  i_207 = i_164 + 1;
  # DEBUG i => i_207

  <bb 36> [local count: 1073741813]:
  # i_164 = PHI <0(31), i_207(35)>
  # DEBUG i => i_164
  # DEBUG BEGIN_STMT
  _129 = config_188(D)->selectorsCount;
  _130 = (long unsigned int) _129;
  if (_130 > i_164)
    goto <bb 32>; [89.00%]
  else
    goto <bb 44>; [11.00%]

  <bb 44> [local count: 118111599]:
  goto <bb 38>; [100.00%]

  <bb 37> [local count: 955630217]:
  # DEBUG BEGIN_STMT
  _131 = config_188(D)->gates[i_165].name;
  _132 = (int) _131;
  _133 = clockFeatures[_132][1];
  _134 = (int) _133;
  _135 = gateCallbackIndex[_134];
  callbackIndex_201 = (uint32) _135;
  # DEBUG callbackIndex => callbackIndex_201
  # DEBUG BEGIN_STMT
  _136 = gateCallbacks[callbackIndex_201].Set;
  _137 = &config_188(D)->gates[i_165];
  _136 (_137);
  # DEBUG BEGIN_STMT
  i_203 = i_165 + 1;
  # DEBUG i => i_203

  <bb 38> [local count: 1073741818]:
  # i_165 = PHI <i_203(37), 0(44)>
  # DEBUG i => i_165
  # DEBUG BEGIN_STMT
  _138 = config_188(D)->gatesCount;
  _139 = (long unsigned int) _138;
  if (_139 > i_165)
    goto <bb 37>; [89.00%]
  else
    goto <bb 39>; [11.00%]

  <bb 39> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  clockTreeIsConsumingPll.2_140 = clockTreeIsConsumingPll;
  if (clockTreeIsConsumingPll.2_140 != 0)
    goto <bb 43>; [67.00%]
  else
    goto <bb 40>; [33.00%]

  <bb 40> [local count: 38976828]:
  # DEBUG BEGIN_STMT
  _141 = &config_188(D)->specificPeriphalConfiguration;
  SpecificPeripheralClockInitialization (_141);
  # DEBUG BEGIN_STMT
  # DEBUG i => 0
  goto <bb 42>; [100.00%]

  <bb 41> [local count: 155907313]:
  # DEBUG BEGIN_STMT
  _142 = config_188(D)->cmus[i_166].name;
  _143 = (int) _142;
  _144 = clockFeatures[_143][1];
  _145 = (int) _144;
  _146 = cmuCallbackIndex[_145];
  callbackIndex_197 = (uint32) _146;
  # DEBUG callbackIndex => callbackIndex_197
  # DEBUG BEGIN_STMT
  _147 = cmuCallbacks[callbackIndex_197].Set;
  _148 = &config_188(D)->cmus[i_166];
  _147 (_148);
  # DEBUG BEGIN_STMT
  i_199 = i_166 + 1;
  # DEBUG i => i_199

  <bb 42> [local count: 194884141]:
  # i_166 = PHI <0(40), i_199(41)>
  # DEBUG i => i_166
  # DEBUG BEGIN_STMT
  _149 = config_188(D)->cmusCount;
  _150 = (long unsigned int) _149;
  if (_150 > i_166)
    goto <bb 41>; [80.00%]
  else
    goto <bb 43>; [20.00%]

  <bb 43> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  UpdateFrequencies (0);
  return;

}


Clock_Ip_Init (const struct Clock_Ip_ClockConfigType * config)
{
  Clock_Ip_PllStatusType pllStatus;
  Clock_Ip_StatusType clockStatus;
  _Bool clockTreeIsConsumingPll.0_1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG clockStatus => 1
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  Clock_Ip_InitClock (config_5(D));
  # DEBUG BEGIN_STMT
  clockTreeIsConsumingPll.0_1 = clockTreeIsConsumingPll;
  if (clockTreeIsConsumingPll.0_1 != 0)
    goto <bb 3>; [33.00%]
  else
    goto <bb 5>; [67.00%]

  <bb 3> [local count: 354334802]:
  # DEBUG BEGIN_STMT
  pllStatus_8 = Clock_Ip_GetPllStatus ();
  # DEBUG pllStatus => pllStatus_8
  # DEBUG BEGIN_STMT
  if (pllStatus_8 == 0)
    goto <bb 4>; [33.00%]
  else
    goto <bb 5>; [67.00%]

  <bb 4> [local count: 116930485]:
  # DEBUG BEGIN_STMT
  Clock_Ip_DistributePll ();
  # DEBUG BEGIN_STMT
  # DEBUG clockStatus => 0

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

}


