Histogram:
Siul2_Port_Ip_GetPinConfiguration (const struct Siul2_Port_Ip_PortType * const base, struct Siul2_Port_Ip_PinSettingsConfig * config, uint16 pin)
{
  uint8 inputMuxIterator;
  uint16 u16PinIdx;
  uint32 u32MscrId;
  uint32 portNumber;
  uint32 MaxPinConfigured;
  const struct Siul2_Port_Ip_PinSettingsConfig * ConfigPtr;
  long unsigned int base.5_1;
  long unsigned int _2;
  long unsigned int _3;
  long unsigned int _4;
  const struct Siul2_Port_Ip_PinSettingsConfig * _5;
  unsigned int _6;
  const struct Siul2_Port_Ip_PinSettingsConfig * _7;
  long unsigned int _8;
  struct SIUL2_Type * _9;
  unsigned char _10;
  int _11;
  long unsigned int _12;
  <unnamed type> _13;
  long unsigned int _14;
  long unsigned int _15;

  <bb 2> [local count: 114863532]:
  # DEBUG BEGIN_STMT
  ConfigPtr_21 = pPort_Setting;
  # DEBUG ConfigPtr => ConfigPtr_21
  # DEBUG BEGIN_STMT
  MaxPinConfigured_22 = u32MaxPinConfigured;
  # DEBUG MaxPinConfigured => MaxPinConfigured_22
  # 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 u32MscrBase => 1076429376
  # DEBUG BEGIN_STMT
  base.5_1 = (long unsigned int) base_23(D);
  _2 = base.5_1 + 3218537920;
  portNumber_24 = _2 >> 6;
  # DEBUG portNumber => portNumber_24
  # DEBUG BEGIN_STMT
  _3 = portNumber_24 << 4;
  _4 = (long unsigned int) pin_25(D);
  u32MscrId_26 = _3 + _4;
  # DEBUG u32MscrId => u32MscrId_26
  # DEBUG BEGIN_STMT
  # DEBUG u16PinIdx => 0
  goto <bb 9>; [100.00%]

  <bb 3> [local count: 1014686025]:
  # DEBUG BEGIN_STMT
  _6 = _15 * 64;
  _7 = ConfigPtr_21 + _6;
  _8 = _7->pinPortIdx;
  if (_8 == u32MscrId_26)
    goto <bb 4>; [5.50%]
  else
    goto <bb 8>; [94.50%]

  <bb 4> [local count: 55807731]:
  # _5 = PHI <_7(3)>
  # _14 = PHI <_8(3)>
  # DEBUG BEGIN_STMT
  _9 = _5->base;
  config_28(D)->base = _9;
  # DEBUG BEGIN_STMT
  config_28(D)->pinPortIdx = _14;
  # DEBUG BEGIN_STMT
  _10 = _5->initValue;
  config_28(D)->initValue = _10;
  # DEBUG BEGIN_STMT
  # DEBUG inputMuxIterator => 0
  goto <bb 6>; [100.00%]

  <bb 5> [local count: 446512084]:
  # DEBUG BEGIN_STMT
  _11 = (int) inputMuxIterator_17;
  _12 = _5->inputMuxReg[_11];
  config_28(D)->inputMuxReg[_11] = _12;
  # DEBUG BEGIN_STMT
  _13 = _5->inputMux[_11];
  config_28(D)->inputMux[_11] = _13;
  # DEBUG BEGIN_STMT
  inputMuxIterator_35 = inputMuxIterator_17 + 1;
  # DEBUG inputMuxIterator => inputMuxIterator_35

  <bb 6> [local count: 502319816]:
  # inputMuxIterator_17 = PHI <0(4), inputMuxIterator_35(5)>
  # DEBUG inputMuxIterator => inputMuxIterator_17
  # DEBUG BEGIN_STMT
  if (inputMuxIterator_17 != 8)
    goto <bb 5>; [88.89%]
  else
    goto <bb 7>; [11.11%]

  <bb 7> [local count: 55807732]:
  # DEBUG BEGIN_STMT
  Siul2_Port_Ip_GetMSCRConfiguration (config_28(D), base_23(D), pin_25(D));
  # DEBUG BEGIN_STMT
  goto <bb 10>; [100.00%]

  <bb 8> [local count: 958878293]:
  # DEBUG BEGIN_STMT
  u16PinIdx_27 = u16PinIdx_16 + 1;
  # DEBUG u16PinIdx => u16PinIdx_27

  <bb 9> [local count: 1073741824]:
  # u16PinIdx_16 = PHI <0(2), u16PinIdx_27(8)>
  # DEBUG u16PinIdx => u16PinIdx_16
  # DEBUG BEGIN_STMT
  _15 = (long unsigned int) u16PinIdx_16;
  if (_15 < MaxPinConfigured_22)
    goto <bb 3>; [94.50%]
  else
    goto <bb 10>; [5.50%]

  <bb 10> [local count: 114863532]:
  return;

}


Siul2_Port_Ip_RevertPinConfiguration (const struct Siul2_Port_Ip_PortType * const base, uint16 pin)
{
  uint32 u32MscrId;
  uint32 portNumber;
  uint32 MaxPinConfigured;
  const struct Siul2_Port_Ip_PinSettingsConfig * ConfigPtr;
  uint32 u32RegVal;
  uint16 u16PinIdx;
  long unsigned int base.3_1;
  long unsigned int _2;
  long unsigned int _3;
  long unsigned int _4;
  const struct Siul2_Port_Ip_PinSettingsConfig * _5;
  unsigned int _6;
  const struct Siul2_Port_Ip_PinSettingsConfig * _7;
  long unsigned int _8;
  int _9;
  long unsigned int _10;

  <bb 2> [local count: 114863532]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG u32RegVal => 4294967295
  # DEBUG BEGIN_STMT
  ConfigPtr_15 = pPort_Setting;
  # DEBUG ConfigPtr => ConfigPtr_15
  # DEBUG BEGIN_STMT
  MaxPinConfigured_16 = u32MaxPinConfigured;
  # DEBUG MaxPinConfigured => MaxPinConfigured_16
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  base.3_1 = (long unsigned int) base_17(D);
  _2 = base.3_1 + 3218537920;
  portNumber_18 = _2 >> 6;
  # DEBUG portNumber => portNumber_18
  # DEBUG BEGIN_STMT
  _3 = portNumber_18 << 4;
  _4 = (long unsigned int) pin_19(D);
  u32MscrId_20 = _3 + _4;
  # DEBUG u32MscrId => u32MscrId_20
  # DEBUG BEGIN_STMT
  # DEBUG u16PinIdx => 0
  goto <bb 6>; [100.00%]

  <bb 3> [local count: 1014686025]:
  # DEBUG BEGIN_STMT
  _6 = _10 * 64;
  _7 = ConfigPtr_15 + _6;
  _8 = _7->pinPortIdx;
  if (_8 == u32MscrId_20)
    goto <bb 4>; [5.50%]
  else
    goto <bb 5>; [94.50%]

  <bb 4> [local count: 55807731]:
  # _5 = PHI <_7(3)>
  # DEBUG BEGIN_STMT
  Siul2_Port_Ip_PinInit (_5);
  # DEBUG BEGIN_STMT
  _9 = (int) pin_19(D);
  u32RegVal_23 ={v} base_17(D)->MSCR[_9];
  # DEBUG u32RegVal => u32RegVal_23
  # DEBUG BEGIN_STMT
  goto <bb 7>; [100.00%]

  <bb 5> [local count: 958878293]:
  # DEBUG BEGIN_STMT
  u16PinIdx_21 = u16PinIdx_11 + 1;
  # DEBUG u16PinIdx => u16PinIdx_21

  <bb 6> [local count: 1073741824]:
  # u16PinIdx_11 = PHI <0(2), u16PinIdx_21(5)>
  # DEBUG u16PinIdx => u16PinIdx_11
  # DEBUG BEGIN_STMT
  _10 = (long unsigned int) u16PinIdx_11;
  if (_10 < MaxPinConfigured_16)
    goto <bb 3>; [94.50%]
  else
    goto <bb 7>; [5.50%]

  <bb 7> [local count: 114863532]:
  # u32RegVal_12 = PHI <u32RegVal_23(4), 4294967295(6)>
  # DEBUG u32RegVal => u32RegVal_12
  # DEBUG BEGIN_STMT
  return u32RegVal_12;

}


Siul2_Port_Ip_SetPinDirection (struct Siul2_Port_Ip_PortType * const base, uint16 pin, Siul2_Port_Ip_PortDirectionType direction)
{
  int _1;
  long unsigned int _2;
  long unsigned int _3;
  long unsigned int _4;
  long unsigned int _5;
  int _6;
  long unsigned int _7;
  long unsigned int _8;
  long unsigned int _9;
  long unsigned int _10;
  int _11;
  long unsigned int _12;
  long unsigned int _13;
  int _14;
  long unsigned int _15;
  long unsigned int _16;

  <bb 2> [local count: 1073741823]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  switch (direction_18(D)) <default: <L6> [20.00%], case 0: <L0> [20.00%], case 1: <L1> [20.00%], case 2: <L2> [20.00%], case 3: <L3> [20.00%]>

  <bb 3> [local count: 214748364]:
<L0>:
  # DEBUG BEGIN_STMT
  _1 = (int) pin_20(D);
  _2 ={v} base_21(D)->MSCR[_1];
  _3 = _2 & 4292870143;
  base_21(D)->MSCR[_1] ={v} _3;
  # DEBUG BEGIN_STMT
  _4 ={v} base_21(D)->MSCR[_1];
  _5 = _4 | 524288;
  base_21(D)->MSCR[_1] ={v} _5;
  # DEBUG BEGIN_STMT
  goto <bb 7>; [100.00%]

  <bb 4> [local count: 214748364]:
<L1>:
  # DEBUG BEGIN_STMT
  _6 = (int) pin_20(D);
  _7 ={v} base_21(D)->MSCR[_6];
  _8 = _7 & 4294443007;
  base_21(D)->MSCR[_6] ={v} _8;
  # DEBUG BEGIN_STMT
  _9 ={v} base_21(D)->MSCR[_6];
  _10 = _9 | 2097152;
  base_21(D)->MSCR[_6] ={v} _10;
  # DEBUG BEGIN_STMT
  goto <bb 7>; [100.00%]

  <bb 5> [local count: 214748364]:
<L2>:
  # DEBUG BEGIN_STMT
  _11 = (int) pin_20(D);
  _12 ={v} base_21(D)->MSCR[_11];
  _13 = _12 | 2621440;
  base_21(D)->MSCR[_11] ={v} _13;
  # DEBUG BEGIN_STMT
  goto <bb 7>; [100.00%]

  <bb 6> [local count: 214748364]:
<L3>:
  # DEBUG BEGIN_STMT
  _14 = (int) pin_20(D);
  _15 ={v} base_21(D)->MSCR[_14];
  _16 = _15 & 4292345855;
  base_21(D)->MSCR[_14] ={v} _16;
  # DEBUG BEGIN_STMT

  <bb 7> [local count: 1073741824]:
<L6>:
  return;

}


Siul2_Port_Ip_SetInputBuffer (struct Siul2_Port_Ip_PortType * const base, uint16 pin, boolean enable, uint32 inputMuxReg, Siul2_Port_Ip_PortInputMux inputMux)
{
  uint32 imcrVal;
  struct SIUL2_Type * siul2Base;
  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 iftmp.2_9;
  <unnamed type> _12;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG siul2Base => 4294967295B
  # DEBUG BEGIN_STMT
  # DEBUG imcrRegIdx => inputMuxReg_13(D)
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (base_14(D) != 0B)
    goto <bb 3>; [70.00%]
  else
    goto <bb 6>; [30.00%]

  <bb 3> [local count: 751619278]:
  # DEBUG BEGIN_STMT
  _1 = (int) pin_16(D);
  _2 ={v} base_14(D)->MSCR[_1];
  _3 = _2 & 4294443007;
  base_14(D)->MSCR[_1] ={v} _3;
  # DEBUG BEGIN_STMT
  _4 ={v} base_14(D)->MSCR[_1];
  if (enable_18(D) != 0)
    goto <bb 5>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 4> [local count: 375809639]:

  <bb 5> [local count: 751619278]:
  # iftmp.2_9 = PHI <524288(3), 0(4)>
  _5 = _4 | iftmp.2_9;
  base_14(D)->MSCR[_1] ={v} _5;

  <bb 6> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  if (inputMux_20(D) != 16)
    goto <bb 7>; [66.00%]
  else
    goto <bb 10>; [34.00%]

  <bb 7> [local count: 708669605]:
  # DEBUG BEGIN_STMT
  if (inputMuxReg_13(D) <= 511)
    goto <bb 8>; [50.00%]
  else
    goto <bb 9>; [50.00%]

  <bb 8> [local count: 354334802]:
  # DEBUG BEGIN_STMT
  # DEBUG siul2Base => 1076428800B

  <bb 9> [local count: 708669605]:
  # siul2Base_8 = PHI <4294967295B(7), 1076428800B(8)>
  # DEBUG siul2Base => siul2Base_8
  # DEBUG BEGIN_STMT
  _6 = inputMuxReg_13(D) & 511;
  imcrVal_21 ={v} siul2Base_8->IMCR[_6];
  # DEBUG imcrVal => imcrVal_21
  # DEBUG BEGIN_STMT
  imcrVal_22 = imcrVal_21 & 4294967280;
  # DEBUG imcrVal => imcrVal_22
  # DEBUG BEGIN_STMT
  _12 = inputMux_20(D) & 15;
  _7 = (long unsigned int) _12;
  imcrVal_23 = _7 | imcrVal_22;
  # DEBUG imcrVal => imcrVal_23
  # DEBUG BEGIN_STMT
  siul2Base_8->IMCR[_6] ={v} imcrVal_23;

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

}


Siul2_Port_Ip_SetOutputBuffer (struct Siul2_Port_Ip_PortType * const base, uint16 pin, boolean enable, Siul2_Port_Ip_PortMux mux)
{
  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 iftmp.1_11;
  <unnamed type> _17;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = (int) pin_12(D);
  _2 ={v} base_14(D)->MSCR[_1];
  _3 = _2 & 4292870143;
  base_14(D)->MSCR[_1] ={v} _3;
  # DEBUG BEGIN_STMT
  _4 ={v} base_14(D)->MSCR[_1];
  if (enable_16(D) != 0)
    goto <bb 4>; [50.00%]
  else
    goto <bb 3>; [50.00%]

  <bb 3> [local count: 536870913]:

  <bb 4> [local count: 1073741824]:
  # iftmp.1_11 = PHI <2097152(2), 0(3)>
  _5 = _4 | iftmp.1_11;
  base_14(D)->MSCR[_1] ={v} _5;
  # DEBUG BEGIN_STMT
  _6 ={v} base_14(D)->MSCR[_1];
  _7 = _6 & 4294967288;
  base_14(D)->MSCR[_1] ={v} _7;
  # DEBUG BEGIN_STMT
  _8 ={v} base_14(D)->MSCR[_1];
  _17 = mux_20(D) & 7;
  _9 = (long unsigned int) _17;
  _10 = _8 | _9;
  base_14(D)->MSCR[_1] ={v} _10;
  return;

}


Siul2_Port_Ip_SetPullSel (struct Siul2_Port_Ip_PortType * const base, uint16 pin, Siul2_Port_Ip_PortPullConfig pullConfig)
{
  uint32 regVal;
  int _1;
  long unsigned int _2;
  long unsigned int _3;
  int _4;
  int _5;
  long unsigned int _18;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pueVal => 8192
  # DEBUG BEGIN_STMT
  # DEBUG pusVal => 2048
  # DEBUG BEGIN_STMT
  switch (pullConfig_7(D)) <default: <L5> [25.00%], case 0: <L1> [25.00%], case 1: <L2> [25.00%], case 2: <L0> [25.00%]>

  <bb 3> [local count: 268435456]:
<L0>:
  # DEBUG BEGIN_STMT
  _1 = (int) pin_9(D);
  _2 ={v} base_10(D)->MSCR[_1];
  _3 = _2 & 4294959103;
  base_10(D)->MSCR[_1] ={v} _3;
  # DEBUG BEGIN_STMT
  goto <bb 6>; [100.00%]

  <bb 4> [local count: 268435456]:
<L1>:
  # DEBUG BEGIN_STMT
  _4 = (int) pin_9(D);
  regVal_15 ={v} base_10(D)->MSCR[_4];
  # DEBUG regVal => regVal_15
  # DEBUG BEGIN_STMT
  # DEBUG regVal => regVal_15 | 8192
  # DEBUG BEGIN_STMT
  _18 = regVal_15 & 4294965247;
  regVal_16 = _18 | 8192;
  # DEBUG regVal => regVal_16
  # DEBUG BEGIN_STMT
  base_10(D)->MSCR[_4] ={v} regVal_16;
  # DEBUG BEGIN_STMT
  goto <bb 6>; [100.00%]

  <bb 5> [local count: 268435456]:
<L2>:
  # DEBUG BEGIN_STMT
  _5 = (int) pin_9(D);
  regVal_12 ={v} base_10(D)->MSCR[_5];
  # DEBUG regVal => regVal_12
  # DEBUG BEGIN_STMT
  # DEBUG regVal => regVal_12 | 8192
  # DEBUG BEGIN_STMT
  regVal_13 = regVal_12 | 10240;
  # DEBUG regVal => regVal_13
  # DEBUG BEGIN_STMT
  base_10(D)->MSCR[_5] ={v} regVal_13;
  # DEBUG BEGIN_STMT

  <bb 6> [local count: 1073741824]:
<L5>:
  return;

}


Siul2_Port_Ip_Init (uint32 pinCount, const struct Siul2_Port_Ip_PinSettingsConfig * config)
{
  uint32 i;
  long unsigned int _1;
  const struct Siul2_Port_Ip_PinSettingsConfig * _2;

  <bb 2> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  pPort_Setting = config_6(D);
  # DEBUG BEGIN_STMT
  u32MaxPinConfigured = pinCount_8(D);
  # DEBUG BEGIN_STMT
  # DEBUG i => 0
  goto <bb 4>; [100.00%]

  <bb 3> [local count: 955630223]:
  # DEBUG BEGIN_STMT
  _1 = i_3 * 64;
  _2 = config_6(D) + _1;
  Siul2_Port_Ip_PinInit (_2);
  # DEBUG BEGIN_STMT
  i_11 = i_3 + 1;
  # DEBUG i => i_11

  <bb 4> [local count: 1073741824]:
  # i_3 = PHI <0(2), i_11(3)>
  # DEBUG i => i_3
  # DEBUG BEGIN_STMT
  if (i_3 < pinCount_8(D))
    goto <bb 3>; [89.00%]
  else
    goto <bb 5>; [11.00%]

  <bb 5> [local count: 118111601]:
  # DEBUG BEGIN_STMT
  return 0;

}


Siul2_Port_Ip_SetGPDO (uint8 SiulInstance, uint16 GpdoInstance, uint8 value)
{
  short unsigned int _1;
  long unsigned int _2;
  long unsigned int _3;
  volatile uint8 * _4;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  if (value_6(D) != 2)
    goto <bb 3>; [66.00%]
  else
    goto <bb 4>; [34.00%]

  <bb 3> [local count: 708669605]:
  # DEBUG BEGIN_STMT
  _1 = GpdoInstance_9(D) ^ 3;
  _2 = (long unsigned int) _1;
  _3 = _2 + 1076433664;
  _4 = (volatile uint8 *) _3;
  *_4 ={v} value_6(D);

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

}


Siul2_Port_Ip_SetIMCR (uint8 SiulInstance, uint16 ImcrInstance, uint32 value)
{
  long unsigned int _1;
  long unsigned int _2;
  long unsigned int _3;
  volatile uint32 * _4;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _1 = (long unsigned int) ImcrInstance_6(D);
  _2 = _1 << 2;
  _3 = _2 + 1076431424;
  _4 = (volatile uint32 *) _3;
  *_4 ={v} value_8(D);
  return;

}


Siul2_Port_Ip_ReadMSCR (uint8 SiulInstance, uint16 MscrInstance)
{
  long unsigned int _1;
  long unsigned int _2;
  long unsigned int _3;
  volatile uint32 * _4;
  uint32 _8;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _1 = (long unsigned int) MscrInstance_6(D);
  _2 = _1 << 2;
  _3 = _2 + 1076429376;
  _4 = (volatile uint32 *) _3;
  _8 ={v} *_4;
  return _8;

}


Siul2_Port_Ip_SetMSCR (uint8 SiulInstance, uint16 MscrInstance, uint32 value)
{
  long unsigned int _1;
  long unsigned int _2;
  long unsigned int _3;
  volatile uint32 * _4;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _1 = (long unsigned int) MscrInstance_6(D);
  _2 = _1 << 2;
  _3 = _2 + 1076429376;
  _4 = (volatile uint32 *) _3;
  *_4 ={v} value_8(D);
  return;

}


Siul2_Port_Ip_GetMSCRConfiguration (struct Siul2_Port_Ip_PinSettingsConfig * config, const struct Siul2_Port_Ip_PortType * const base, uint16 pin)
{
  Siul2_Port_Ip_PortPullConfig pullValue;
  uint32 u32RegVal;
  int _1;
  unsigned char _2;
  unsigned char _3;
  long unsigned int _4;
  long unsigned int _5;
  <unnamed type> _6;
  long unsigned int _7;
  long unsigned int _8;
  long unsigned int _9;
  long unsigned int _10;
  long unsigned int _11;
  <unnamed type> _12;
  long unsigned int _13;
  long unsigned int _14;
  <unnamed type> _15;
  long unsigned int _16;
  long unsigned int _17;
  <unnamed type> _18;
  long unsigned int _19;
  long unsigned int _20;
  <unnamed type> _21;
  long unsigned int _22;
  long unsigned int _23;
  <unnamed type> _24;
  long unsigned int _25;
  long unsigned int _26;
  <unnamed type> _27;
  long unsigned int _28;
  long unsigned int _29;
  <unnamed type> _30;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG u32RegVal => 4294967295
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = (int) pin_32(D);
  u32RegVal_35 ={v} base_34(D)->MSCR[_1];
  # DEBUG u32RegVal => u32RegVal_35
  # DEBUG BEGIN_STMT
  _2 = (unsigned char) u32RegVal_35;
  _3 = _2 & 7;
  config_36(D)->mux = _3;
  # DEBUG BEGIN_STMT
  _4 = u32RegVal_35 >> 5;
  _5 = _4 & 1;
  _6 = (<unnamed type>) _5;
  config_36(D)->safeMode = _6;
  # DEBUG BEGIN_STMT
  _7 = u32RegVal_35 & 8192;
  if (_7 == 0)
    goto <bb 4>; [50.00%]
  else
    goto <bb 3>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  _8 = u32RegVal_35 >> 11;
  _9 = _8 & 1;
  pullValue_39 = (Siul2_Port_Ip_PortPullConfig) _9;
  # DEBUG pullValue => pullValue_39

  <bb 4> [local count: 1073741824]:
  # pullValue_31 = PHI <2(2), pullValue_39(3)>
  # DEBUG pullValue => pullValue_31
  # DEBUG BEGIN_STMT
  config_36(D)->pullConfig = pullValue_31;
  # DEBUG BEGIN_STMT
  _10 = u32RegVal_35 >> 14;
  _11 = _10 & 1;
  _12 = (<unnamed type>) _11;
  config_36(D)->slewRateCtrlSel = _12;
  # DEBUG BEGIN_STMT
  _13 = u32RegVal_35 >> 8;
  _14 = _13 & 1;
  _15 = (<unnamed type>) _14;
  config_36(D)->driveStrength = _15;
  # DEBUG BEGIN_STMT
  _16 = u32RegVal_35 >> 6;
  _17 = _16 & 1;
  _18 = (<unnamed type>) _17;
  config_36(D)->inputFilter = _18;
  # DEBUG BEGIN_STMT
  _19 = u32RegVal_35 >> 17;
  _20 = _19 & 1;
  _21 = (<unnamed type>) _20;
  config_36(D)->invert = _21;
  # DEBUG BEGIN_STMT
  _22 = u32RegVal_35 >> 16;
  _23 = _22 & 1;
  _24 = (<unnamed type>) _23;
  config_36(D)->pullKeep = _24;
  # DEBUG BEGIN_STMT
  _25 = u32RegVal_35 >> 19;
  _26 = _25 & 1;
  _27 = (<unnamed type>) _26;
  config_36(D)->inputBuffer = _27;
  # DEBUG BEGIN_STMT
  _28 = u32RegVal_35 >> 21;
  _29 = _28 & 1;
  _30 = (<unnamed type>) _29;
  config_36(D)->outputBuffer = _30;
  return;

}


Siul2_Port_Ip_PinInit (const struct Siul2_Port_Ip_PinSettingsConfig * config)
{
  uint32 imcrRegIdx;
  uint8 inputMuxIterator;
  uint32 pinsValues;
  <unnamed type> _1;
  long unsigned int _2;
  long unsigned int _3;
  long unsigned int _4;
  <unnamed type> _5;
  long unsigned int _6;
  long unsigned int _7;
  long unsigned int _8;
  <unnamed type> _9;
  long unsigned int _10;
  long unsigned int _11;
  long unsigned int _12;
  <unnamed type> _13;
  long unsigned int _14;
  long unsigned int _15;
  long unsigned int _16;
  <unnamed type> _17;
  long unsigned int _18;
  long unsigned int _19;
  long unsigned int _20;
  <unnamed type> _21;
  long unsigned int _22;
  long unsigned int _23;
  long unsigned int _24;
  <unnamed type> _25;
  long unsigned int _26;
  long unsigned int _27;
  long unsigned int _28;
  <unnamed type> _29;
  long unsigned int _30;
  long unsigned int _31;
  long unsigned int _32;
  <unnamed type> _33;
  long unsigned int _34;
  long unsigned int _35;
  short unsigned int _36;
  unsigned char _37;
  struct SIUL2_Type * _38;
  long unsigned int _39;
  <unnamed type> _40;
  int _41;
  <unnamed type> _42;
  long unsigned int _43;
  long unsigned int _44;
  <unnamed type> _51;
  <unnamed type> _52;

  <bb 2> [local count: 350860935]:
  # DEBUG BEGIN_STMT
  # DEBUG pinsValues => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG siulInstance => 0
  # DEBUG BEGIN_STMT
  # DEBUG imcrBase => 1076428800B
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG siulInstance => 0
  # DEBUG BEGIN_STMT
  _1 = config_54(D)->pullConfig;
  if (_1 != 2)
    goto <bb 3>; [66.00%]
  else
    goto <bb 4>; [34.00%]

  <bb 3> [local count: 231568217]:
  # DEBUG BEGIN_STMT
  # DEBUG pinsValues => 8192
  # DEBUG BEGIN_STMT
  _2 = (long unsigned int) _1;
  _3 = _2 << 11;
  _4 = _3 & 2048;
  pinsValues_55 = _4 | 8192;
  # DEBUG pinsValues => pinsValues_55

  <bb 4> [local count: 350860935]:
  # pinsValues_45 = PHI <0(2), pinsValues_55(3)>
  # DEBUG pinsValues => pinsValues_45
  # DEBUG BEGIN_STMT
  _5 = config_54(D)->outputBuffer;
  _6 = (long unsigned int) _5;
  _7 = _6 << 21;
  _8 = _7 & 2097152;
  pinsValues_56 = _8 | pinsValues_45;
  # DEBUG pinsValues => pinsValues_56
  # DEBUG BEGIN_STMT
  _9 = config_54(D)->invert;
  _10 = (long unsigned int) _9;
  _11 = _10 << 17;
  _12 = _11 & 131072;
  pinsValues_57 = _12 | pinsValues_56;
  # DEBUG pinsValues => pinsValues_57
  # DEBUG BEGIN_STMT
  _13 = config_54(D)->pullKeep;
  _14 = (long unsigned int) _13;
  _15 = _14 << 16;
  _16 = _15 & 65536;
  pinsValues_58 = _16 | pinsValues_57;
  # DEBUG pinsValues => pinsValues_58
  # DEBUG BEGIN_STMT
  _17 = config_54(D)->driveStrength;
  _18 = (long unsigned int) _17;
  _19 = _18 << 8;
  _20 = _19 & 256;
  pinsValues_59 = _20 | pinsValues_58;
  # DEBUG pinsValues => pinsValues_59
  # DEBUG BEGIN_STMT
  _21 = config_54(D)->inputBuffer;
  _22 = (long unsigned int) _21;
  _23 = _22 << 19;
  _24 = _23 & 524288;
  pinsValues_60 = _24 | pinsValues_59;
  # DEBUG pinsValues => pinsValues_60
  # DEBUG BEGIN_STMT
  _25 = config_54(D)->slewRateCtrlSel;
  _26 = (long unsigned int) _25;
  _27 = _26 << 14;
  _28 = _27 & 16384;
  pinsValues_61 = _28 | pinsValues_60;
  # DEBUG pinsValues => pinsValues_61
  # DEBUG BEGIN_STMT
  _29 = config_54(D)->safeMode;
  _30 = (long unsigned int) _29;
  _31 = _30 << 5;
  _32 = _31 & 32;
  pinsValues_62 = _32 | pinsValues_61;
  # DEBUG pinsValues => pinsValues_62
  # DEBUG BEGIN_STMT
  _33 = config_54(D)->mux;
  _51 = _33 & 7;
  _34 = (long unsigned int) _51;
  pinsValues_63 = _34 | pinsValues_62;
  # DEBUG pinsValues => pinsValues_63
  # DEBUG BEGIN_STMT
  if (_33 == 0)
    goto <bb 5>; [50.00%]
  else
    goto <bb 7>; [50.00%]

  <bb 5> [local count: 175430467]:
  if (_5 == 1)
    goto <bb 6>; [20.24%]
  else
    goto <bb 7>; [79.76%]

  <bb 6> [local count: 35507127]:
  # DEBUG BEGIN_STMT
  _35 = config_54(D)->pinPortIdx;
  _36 = (short unsigned int) _35;
  _37 = config_54(D)->initValue;
  Siul2_Port_Ip_SetGPDO (0, _36, _37);

  <bb 7> [local count: 350860935]:
  # DEBUG BEGIN_STMT
  _38 = config_54(D)->base;
  _39 = config_54(D)->pinPortIdx;
  _38->MSCR[_39] ={v} pinsValues_63;
  # DEBUG BEGIN_STMT
  _40 = config_54(D)->inputBuffer;
  if (_40 == 1)
    goto <bb 13>; [34.00%]
  else
    goto <bb 12>; [66.00%]

  <bb 13> [local count: 119292718]:
  goto <bb 11>; [100.00%]

  <bb 8> [local count: 954449108]:
  # DEBUG BEGIN_STMT
  _41 = (int) inputMuxIterator_46;
  _42 = config_54(D)->inputMux[_41];
  if (_42 != 16)
    goto <bb 9>; [66.00%]
  else
    goto <bb 10>; [34.00%]

  <bb 9> [local count: 629936411]:
  # DEBUG BEGIN_STMT
  imcrRegIdx_66 = config_54(D)->inputMuxReg[_41];
  # DEBUG imcrRegIdx => imcrRegIdx_66
  # DEBUG BEGIN_STMT
  # DEBUG imcrBase => 1076428800B
  # DEBUG BEGIN_STMT
  _43 = imcrRegIdx_66 & 511;
  _52 = _42 & 15;
  _44 = (long unsigned int) _52;
  MEM[(struct SIUL2_Type *)1076428800B].IMCR[_43] ={v} _44;

  <bb 10> [local count: 954449108]:
  # DEBUG imcrBase => 1076428800B
  # DEBUG BEGIN_STMT
  inputMuxIterator_68 = inputMuxIterator_46 + 1;
  # DEBUG inputMuxIterator => inputMuxIterator_68

  <bb 11> [local count: 1073741824]:
  # inputMuxIterator_46 = PHI <inputMuxIterator_68(10), 0(13)>
  # DEBUG imcrBase => 1076428800B
  # DEBUG inputMuxIterator => inputMuxIterator_46
  # DEBUG BEGIN_STMT
  if (inputMuxIterator_46 != 8)
    goto <bb 8>; [88.89%]
  else
    goto <bb 12>; [11.11%]

  <bb 12> [local count: 350860934]:
  return;

}


