table_read.part.0 ()
{
  uint8_t i;
  uint16_t block;
  short unsigned int _2;

  <bb 5> [local count: 35755602]:
  # DEBUG D#12 s=> block
  # DEBUG block => D#12
  goto <bb 3>; [100.00%]

  <bb 2> [local count: 1037986221]:
  # DEBUG BEGIN_STMT
  _2 = (short unsigned int) i_1;
  read_table_n (_2);
  # DEBUG BEGIN_STMT
  i_3 = i_1 + 1;
  # DEBUG i => i_3

  <bb 3> [local count: 1073741824]:
  # i_1 = PHI <i_3(2), 0(5)>
  # DEBUG i => i_1
  # DEBUG BEGIN_STMT
  if (i_1 != 29)
    goto <bb 2>; [96.67%]
  else
    goto <bb 4>; [3.33%]

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

}


write_table_n.part.0 (uint16_t n)
{
  uint32_t i;
  uint32_t rdlen;
  uint32_t wrlen;
  uint32_t k;
  uint32_t r;
  volatile vuint32_t t[2];
  uint32_t ps;
  volatile vuint32_t * psr;
  volatile vuint32_t * pd4;
  volatile vuint16_t * pd2;
  volatile vuint8_t * pd1;
  int _2;
  long unsigned int _3;
  long unsigned int _4;
  long unsigned int _9;
  long unsigned int _10;
  long unsigned int _11;
  short unsigned int _14;
  long unsigned int _15;
  long unsigned int _16;
  long unsigned int _17;
  short unsigned int _18;
  long unsigned int _19;
  long unsigned int _20;
  long unsigned int _21;
  short unsigned int _22;
  long unsigned int _23;
  long unsigned int _24;
  long unsigned int _25;
  short unsigned int _27;
  long unsigned int _28;
  long unsigned int _29;
  long unsigned int _30;
  long unsigned int _33;
  long unsigned int _34;
  long unsigned int _37;
  long unsigned int _39;
  long unsigned int _42;
  unsigned char _45;
  long unsigned int _46;
  long unsigned int _47;
  long unsigned int _48;
  unsigned char _49;
  long unsigned int _52;
  long unsigned int _53;
  unsigned char _54;
  long unsigned int _57;
  long unsigned int _58;
  unsigned char _59;
  long unsigned int _60;
  long unsigned int _61;
  long unsigned int _62;
  unsigned char _63;
  long unsigned int _64;
  long unsigned int _65;
  long unsigned int _66;
  unsigned char _67;
  long unsigned int _70;
  long unsigned int _71;
  unsigned char _72;
  long unsigned int _75;
  long unsigned int _76;
  unsigned char _78;
  long unsigned int _79;
  long unsigned int _80;
  long unsigned int _81;

  <bb 18> [local count: 1073741823]:

  <bb 2> [local count: 1073741823]:
  # DEBUG BEGIN_STMT
  _2 = (int) n_1(D);
  _3 = EEP_ADDR_TABLE[_2][0];
  if (_3 == 65535)
    goto <bb 3>; [20.97%]
  else
    goto <bb 4>; [79.03%]

  <bb 3> [local count: 225163660]:
  # DEBUG BEGIN_STMT
  // predicted unlikely by early return (on trees) predictor.
  goto <bb 17>; [100.00%]

  <bb 4> [local count: 848578162]:
  # DEBUG BEGIN_STMT
  _4 = EEP_ADDR_TABLE[_2][7];
  if (_4 != 1)
    goto <bb 5>; [67.00%]
  else
    goto <bb 6>; [33.00%]

  <bb 5> [local count: 568547369]:
  # DEBUG BEGIN_STMT
  // predicted unlikely by early return (on trees) predictor.
  goto <bb 17>; [100.00%]

  <bb 6> [local count: 280030793]:
  # DEBUG BEGIN_STMT
  rdlen_5 = EEP_ADDR_TABLE[_2][1];
  # DEBUG rdlen => rdlen_5
  # DEBUG BEGIN_STMT
  rdlen_6 = rdlen_5 >> 2;
  # DEBUG rdlen => rdlen_6
  # DEBUG BEGIN_STMT
  wrlen_7 = EEP_ADDR_TABLE[_2][2];
  # DEBUG wrlen => wrlen_7
  # DEBUG BEGIN_STMT
  ps_8 = _3 + 8388608;
  # DEBUG ps => ps_8
  # DEBUG BEGIN_STMT
  # DEBUG psr => (volatile vuint32_t *) ps_8
  # DEBUG BEGIN_STMT
  monprintf ("T%2d(%08X):rlen=%04x,wlen=%04x\n\r", _2, ps_8, rdlen_6, wrlen_7);
  # DEBUG BEGIN_STMT
  _9 = EEP_ADDR_TABLE[_2][4];
  _10 = _9 + 4294967294;
  if (_10 <= 1)
    goto <bb 7>; [41.00%]
  else
    goto <bb 10>; [59.00%]

  <bb 7> [local count: 114812625]:
  # DEBUG BEGIN_STMT
  # DEBUG wrlen => wrlen_7 >> 1
  # DEBUG BEGIN_STMT
  _11 = EEP_ADDR_TABLE[_2][3];
  pd2_12 = (volatile vuint16_t *) _11;
  # DEBUG pd2 => pd2_12
  # DEBUG BEGIN_STMT
  # DEBUG i => 0
  goto <bb 9>; [100.00%]

  <bb 8> [local count: 928938517]:
  # DEBUG BEGIN_STMT
  # DEBUG D#8 => pd2_13 + 2
  # DEBUG pd2 => D#8
  _14 ={v} *pd2_13;
  _15 = (long unsigned int) _14;
  t[0] ={v} _15;
  # DEBUG BEGIN_STMT
  _16 ={v} t[0];
  _17 = _16 << 16;
  t[0] ={v} _17;
  # DEBUG BEGIN_STMT
  # DEBUG D#7 => D#8 + 2
  # DEBUG pd2 => D#7
  _18 ={v} MEM[(volatile vuint16_t *)pd2_13 + 2B];
  _19 ={v} t[0];
  _20 = (long unsigned int) _18;
  _21 = _19 + _20;
  t[0] ={v} _21;
  # DEBUG BEGIN_STMT
  # DEBUG pd2 => D#7 + 2
  _22 ={v} MEM[(volatile vuint16_t *)pd2_13 + 4B];
  _23 = (long unsigned int) _22;
  t[1] ={v} _23;
  # DEBUG BEGIN_STMT
  _24 ={v} t[1];
  _25 = _24 << 16;
  t[1] ={v} _25;
  # DEBUG BEGIN_STMT
  pd2_26 = &MEM[(void *)pd2_13 + 8B];
  # DEBUG pd2 => pd2_26
  _27 ={v} MEM[(volatile vuint16_t *)pd2_13 + 6B];
  _28 ={v} t[1];
  _29 = (long unsigned int) _27;
  _30 = _28 + _29;
  t[1] ={v} _30;
  # DEBUG BEGIN_STMT
  # DEBUG ps => NULL
  # DEBUG BEGIN_STMT
  i_32 = i_31 + 2;
  # DEBUG i => i_32

  <bb 9> [local count: 1043751143]:
  # i_31 = PHI <0(7), i_32(8)>
  # pd2_13 = PHI <pd2_12(7), pd2_26(8)>
  # DEBUG pd2 => pd2_13
  # DEBUG ps => NULL
  # DEBUG i => i_31
  # DEBUG BEGIN_STMT
  if (rdlen_6 > i_31)
    goto <bb 8>; [89.00%]
  else
    goto <bb 17>; [11.00%]

  <bb 10> [local count: 165218168]:
  # DEBUG BEGIN_STMT
  _33 = _9 + 4294967292;
  if (_33 <= 1)
    goto <bb 11>; [41.00%]
  else
    goto <bb 14>; [59.00%]

  <bb 11> [local count: 67739449]:
  # DEBUG BEGIN_STMT
  # DEBUG wrlen => wrlen_7 >> 2
  # DEBUG BEGIN_STMT
  _34 = EEP_ADDR_TABLE[_2][3];
  pd4_35 = (volatile vuint32_t *) _34;
  # DEBUG pd4 => pd4_35
  # DEBUG BEGIN_STMT
  # DEBUG i => 0
  goto <bb 13>; [100.00%]

  <bb 12> [local count: 548073726]:
  # DEBUG BEGIN_STMT
  # DEBUG pd4 => pd4_36 + 4
  _37 ={v} *pd4_36;
  t[0] ={v} _37;
  # DEBUG BEGIN_STMT
  pd4_38 = &MEM[(void *)pd4_36 + 8B];
  # DEBUG pd4 => pd4_38
  _39 ={v} MEM[(volatile vuint32_t *)pd4_36 + 4B];
  t[1] ={v} _39;
  # DEBUG BEGIN_STMT
  # DEBUG ps => NULL
  # DEBUG BEGIN_STMT
  i_41 = i_40 + 2;
  # DEBUG i => i_41

  <bb 13> [local count: 615813175]:
  # i_40 = PHI <0(11), i_41(12)>
  # pd4_36 = PHI <pd4_35(11), pd4_38(12)>
  # DEBUG pd4 => pd4_36
  # DEBUG ps => NULL
  # DEBUG i => i_40
  # DEBUG BEGIN_STMT
  if (rdlen_6 > i_40)
    goto <bb 12>; [89.00%]
  else
    goto <bb 17>; [11.00%]

  <bb 14> [local count: 97478719]:
  # DEBUG BEGIN_STMT
  _42 = EEP_ADDR_TABLE[_2][3];
  pd1_43 = (volatile vuint8_t *) _42;
  # DEBUG pd1 => pd1_43
  # DEBUG BEGIN_STMT
  # DEBUG i => 0
  goto <bb 16>; [100.00%]

  <bb 15> [local count: 788691460]:
  # DEBUG BEGIN_STMT
  # DEBUG D#6 => pd1_44 + 1
  # DEBUG pd1 => D#6
  _45 ={v} *pd1_44;
  _46 = (long unsigned int) _45;
  t[0] ={v} _46;
  # DEBUG BEGIN_STMT
  _47 ={v} t[0];
  _48 = _47 << 24;
  t[0] ={v} _48;
  # DEBUG BEGIN_STMT
  # DEBUG D#5 => D#6 + 1
  # DEBUG pd1 => D#5
  _49 ={v} MEM[(volatile vuint8_t *)pd1_44 + 1B];
  k_50 = (uint32_t) _49;
  # DEBUG k => k_50
  # DEBUG BEGIN_STMT
  k_51 = k_50 << 16;
  # DEBUG k => k_51
  # DEBUG BEGIN_STMT
  _52 ={v} t[0];
  _53 = k_51 + _52;
  t[0] ={v} _53;
  # DEBUG BEGIN_STMT
  # DEBUG D#4 => D#5 + 1
  # DEBUG pd1 => D#4
  _54 ={v} MEM[(volatile vuint8_t *)pd1_44 + 2B];
  k_55 = (uint32_t) _54;
  # DEBUG k => k_55
  # DEBUG BEGIN_STMT
  k_56 = k_55 << 8;
  # DEBUG k => k_56
  # DEBUG BEGIN_STMT
  _57 ={v} t[0];
  _58 = k_56 + _57;
  t[0] ={v} _58;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#3 => D#4 + 1
  # DEBUG pd1 => D#3
  _59 ={v} MEM[(volatile vuint8_t *)pd1_44 + 3B];
  _60 ={v} t[0];
  _61 = (long unsigned int) _59;
  _62 = _60 + _61;
  t[0] ={v} _62;
  # DEBUG BEGIN_STMT
  # DEBUG D#2 => D#3 + 1
  # DEBUG pd1 => D#2
  _63 ={v} MEM[(volatile vuint8_t *)pd1_44 + 4B];
  _64 = (long unsigned int) _63;
  t[1] ={v} _64;
  # DEBUG BEGIN_STMT
  _65 ={v} t[1];
  _66 = _65 << 24;
  t[1] ={v} _66;
  # DEBUG BEGIN_STMT
  # DEBUG D#1 => D#2 + 1
  # DEBUG pd1 => D#1
  _67 ={v} MEM[(volatile vuint8_t *)pd1_44 + 5B];
  k_68 = (uint32_t) _67;
  # DEBUG k => k_68
  # DEBUG BEGIN_STMT
  k_69 = k_68 << 16;
  # DEBUG k => k_69
  # DEBUG BEGIN_STMT
  _70 ={v} t[1];
  _71 = k_69 + _70;
  t[1] ={v} _71;
  # DEBUG BEGIN_STMT
  # DEBUG pd1 => D#1 + 1
  _72 ={v} MEM[(volatile vuint8_t *)pd1_44 + 6B];
  k_73 = (uint32_t) _72;
  # DEBUG k => k_73
  # DEBUG BEGIN_STMT
  k_74 = k_73 << 8;
  # DEBUG k => k_74
  # DEBUG BEGIN_STMT
  _75 ={v} t[1];
  _76 = k_74 + _75;
  t[1] ={v} _76;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  pd1_77 = &MEM[(void *)pd1_44 + 8B];
  # DEBUG pd1 => pd1_77
  _78 ={v} MEM[(volatile vuint8_t *)pd1_44 + 7B];
  _79 ={v} t[1];
  _80 = (long unsigned int) _78;
  _81 = _79 + _80;
  t[1] ={v} _81;
  # DEBUG BEGIN_STMT
  programDword_data_flash (ps_82, &t);
  # DEBUG r => NULL
  # DEBUG BEGIN_STMT
  ps_83 = ps_82 + 8;
  # DEBUG ps => ps_83
  # DEBUG BEGIN_STMT
  i_85 = i_84 + 2;
  # DEBUG i => i_85

  <bb 16> [local count: 886170179]:
  # i_84 = PHI <0(14), i_85(15)>
  # ps_82 = PHI <ps_8(14), ps_83(15)>
  # pd1_44 = PHI <pd1_43(14), pd1_77(15)>
  # DEBUG pd1 => pd1_44
  # DEBUG ps => ps_82
  # DEBUG i => i_84
  # DEBUG BEGIN_STMT
  if (rdlen_6 > i_84)
    goto <bb 15>; [89.00%]
  else
    goto <bb 17>; [11.00%]

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

}


init_table_setup ()
{
  short int _1;
  short int _2;

  <bb 2> [local count: 1073741823]:
  # DEBUG BEGIN_STMT
  _1 = read_sign_cs ();
  if (_1 == 1)
    goto <bb 3>; [34.00%]
  else
    goto <bb 4>; [66.00%]

  <bb 3> [local count: 365072220]:
  # DEBUG BEGIN_STMT
  # DEBUG block => 0
  # DEBUG INLINE_ENTRY table_read
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#11 => 0
  table_read.part.0 ();
  # DEBUG BEGIN_STMT
  goto <bb 7>; [100.00%]

  <bb 4> [local count: 708669604]:
  # DEBUG BEGIN_STMT
  _2 = read_sign_cs ();
  if (_2 == 1)
    goto <bb 5>; [34.00%]
  else
    goto <bb 6>; [66.00%]

  <bb 5> [local count: 240947665]:
  # DEBUG BEGIN_STMT
  # DEBUG block => 0
  # DEBUG INLINE_ENTRY table_read
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#11 => 0
  table_read.part.0 ();
  # DEBUG BEGIN_STMT
  goto <bb 7>; [100.00%]

  <bb 6> [local count: 467721938]:
  # DEBUG BEGIN_STMT
  table_write (0);
  # DEBUG BEGIN_STMT
  read_sign_cs ();

  <bb 7> [local count: 1073741824]:
  # DEBUG block => NULL
  # DEBUG i => NULL
  # DEBUG block => NULL
  # DEBUG i => NULL
  # DEBUG BEGIN_STMT
  dtc_read ();
  return;

}


read_sign_cs ()
{
  volatile vuint32_t buf[8];
  volatile vuint32_t * p;
  uint32_t i;
  long unsigned int _1;
  long unsigned int _2;
  long unsigned int _3;
  long unsigned int _4;
  long unsigned int _5;
  long unsigned int _6;
  int16_t _9;

  <bb 2> [local count: 214748364]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG p => 8388624B
  # DEBUG BEGIN_STMT
  # DEBUG i => 0
  goto <bb 4>; [100.00%]

  <bb 3> [local count: 858993459]:
  # DEBUG BEGIN_STMT
  p_16 = p_8 + 4;
  # DEBUG p => p_16
  _1 ={v} *p_8;
  buf[i_7] ={v} _1;
  # DEBUG BEGIN_STMT
  i_18 = i_7 + 1;
  # DEBUG i => i_18

  <bb 4> [local count: 1073741824]:
  # i_7 = PHI <0(2), i_18(3)>
  # p_8 = PHI <8388624B(2), p_16(3)>
  # DEBUG p => p_8
  # DEBUG i => i_7
  # DEBUG BEGIN_STMT
  if (i_7 != 4)
    goto <bb 3>; [80.00%]
  else
    goto <bb 5>; [20.00%]

  <bb 5> [local count: 214748365]:
  # DEBUG BEGIN_STMT
  _2 ={v} buf[0];
  _3 ={v} buf[1];
  _4 ={v} buf[2];
  _5 ={v} buf[3];
  monprintf ("\n\r%08X,%08X,%08X,%08X\n\r", _2, _3, _4, _5);
  # DEBUG BEGIN_STMT
  _6 ={v} buf[1];
  if (_6 == 1008)
    goto <bb 6>; [34.00%]
  else
    goto <bb 7>; [66.00%]

  <bb 6> [local count: 73014444]:
  # DEBUG BEGIN_STMT
  monprintf ("sign ok \n\r");
  # DEBUG BEGIN_STMT
  goto <bb 8>; [100.00%]

  <bb 7> [local count: 141733921]:
  # DEBUG BEGIN_STMT
  monprintf ("sign FAIL\n\n\r");
  # DEBUG BEGIN_STMT

  <bb 8> [local count: 214748365]:
  # _9 = PHI <1(6), -1(7)>
  return _9;

}


table_read (uint16_t block)
{
  uint8_t i;

  <bb 2> [local count: 71511204]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (block_4(D) == 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 3> [local count: 35755602]:
  # i_2 = PHI <0(2)>
  # DEBUG D#11 => block_4(D)
  table_read.part.0 ();

  <bb 4> [local count: 71511205]:
  # DEBUG BEGIN_STMT
  return 0;

}


table_write (uint16_t block)
{
  volatile vuint32_t p;
  volatile vuint32_t t[2];
  uint16_t i;
  long unsigned int p.25_1;

  <bb 2> [local count: 35755602]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG i => 0
  goto <bb 4>; [100.00%]

  <bb 3> [local count: 1037986221]:
  # DEBUG BEGIN_STMT
  write_table_n (i_2);
  # DEBUG BEGIN_STMT
  i_10 = i_2 + 1;
  # DEBUG i => i_10

  <bb 4> [local count: 1073741824]:
  # i_2 = PHI <0(2), i_10(3)>
  # DEBUG i => i_2
  # DEBUG BEGIN_STMT
  if (i_2 != 29)
    goto <bb 3>; [96.67%]
  else
    goto <bb 5>; [3.33%]

  <bb 5> [local count: 35755603]:
  # DEBUG BEGIN_STMT
  t[0] ={v} 2882400085;
  # DEBUG BEGIN_STMT
  t[1] ={v} 1008;
  # DEBUG BEGIN_STMT
  p ={v} 8388624;
  # DEBUG BEGIN_STMT
  p.25_1 ={v} p;
  programDword_data_flash (p.25_1, &t);
  # DEBUG i => NULL
  # DEBUG BEGIN_STMT
  return 0;

}


read_table_n (uint16_t n)
{
  volatile vuint8_t * pd1;
  volatile vuint16_t * pd2;
  volatile vuint32_t * pd4;
  volatile vuint32_t * ps;
  unsigned int k;
  unsigned int wr;
  unsigned int wrlen;
  int _1;
  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;
  unsigned int _9;
  unsigned int _10;
  volatile vuint16_t * _11;
  short unsigned int _12;
  unsigned int _13;
  volatile vuint16_t * _14;
  short unsigned int _15;
  long unsigned int _16;
  long unsigned int _17;
  unsigned int _18;
  volatile vuint32_t * _19;
  long unsigned int _20;
  unsigned int _21;
  volatile vuint8_t * _22;
  unsigned char _23;
  unsigned int _24;
  volatile vuint8_t * _25;
  unsigned char _26;
  unsigned int _27;
  volatile vuint8_t * _28;
  unsigned char _29;
  volatile vuint8_t * _30;
  unsigned char _31;

  <bb 2> [local count: 1073741823]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (n_42(D) > 28)
    goto <bb 3>; [20.24%]
  else
    goto <bb 4>; [79.76%]

  <bb 3> [local count: 217325345]:
  # DEBUG BEGIN_STMT
  _1 = (int) n_42(D);
  monprintf ("table over %d\n\r", _1);
  # DEBUG BEGIN_STMT
  goto <bb 22>; [100.00%]

  <bb 4> [local count: 856416478]:
  # DEBUG BEGIN_STMT
  _2 = (int) n_42(D);
  _3 = EEP_ADDR_TABLE[_2][0];
  if (_3 == 65535)
    goto <bb 22>; [20.97%]
  else
    goto <bb 5>; [79.03%]

  <bb 5> [local count: 676825943]:
  # DEBUG BEGIN_STMT
  _4 = EEP_ADDR_TABLE[_2][7];
  if (_4 != 1)
    goto <bb 22>; [50.00%]
  else
    goto <bb 6>; [50.00%]

  <bb 6> [local count: 338412971]:
  # DEBUG BEGIN_STMT
  _5 = EEP_ADDR_TABLE[_2][4];
  if (_5 == 7)
    goto <bb 22>; [20.97%]
  else
    goto <bb 7>; [79.03%]

  <bb 7> [local count: 267447771]:
  # DEBUG BEGIN_STMT
  # DEBUG D#10 => EEP_ADDR_TABLE[_2][1]
  # DEBUG rdlen => D#10
  # DEBUG BEGIN_STMT
  # DEBUG rdlen => D#10 >> 2
  # DEBUG BEGIN_STMT
  wrlen_44 = EEP_ADDR_TABLE[_2][2];
  # DEBUG wrlen => wrlen_44
  # DEBUG BEGIN_STMT
  _6 = _3 + 8388608;
  ps_45 = (volatile vuint32_t *) _6;
  # DEBUG ps => ps_45
  # DEBUG BEGIN_STMT
  # DEBUG wr => 0
  # DEBUG BEGIN_STMT
  _7 = _5 + 4294967294;
  if (_7 <= 1)
    goto <bb 8>; [41.00%]
  else
    goto <bb 12>; [59.00%]

  <bb 8> [local count: 109653586]:
  # DEBUG BEGIN_STMT
  wrlen_63 = wrlen_44 >> 1;
  # DEBUG wrlen => wrlen_63
  # DEBUG BEGIN_STMT
  _8 = EEP_ADDR_TABLE[_2][3];
  pd2_64 = (volatile vuint16_t *) _8;
  # DEBUG pd2 => pd2_64
  # DEBUG BEGIN_STMT
  goto <bb 11>; [100.00%]

  <bb 9> [local count: 998203895]:
  # DEBUG BEGIN_STMT
  ps_65 = ps_35 + 4;
  # DEBUG ps => ps_65
  k_66 ={v} *ps_35;
  # DEBUG k => k_66
  # DEBUG BEGIN_STMT
  _9 = k_66 >> 16;
  wr_67 = wr_32 + 1;
  # DEBUG wr => wr_67
  _10 = wr_32 * 2;
  _11 = pd2_64 + _10;
  _12 = (short unsigned int) _9;
  *_11 ={v} _12;
  # DEBUG BEGIN_STMT
  if (wrlen_63 <= wr_67)
    goto <bb 22>; [3.66%]
  else
    goto <bb 10>; [96.34%]

  <bb 10> [local count: 961669632]:
  # DEBUG BEGIN_STMT
  wr_69 = wr_32 + 2;
  # DEBUG wr => wr_69
  _13 = wr_67 * 2;
  _14 = pd2_64 + _13;
  _15 = (short unsigned int) k_66;
  *_14 ={v} _15;
  # DEBUG BEGIN_STMT
  if (wrlen_63 <= wr_69)
    goto <bb 22>; [3.66%]
  else
    goto <bb 11>; [96.34%]

  <bb 11> [local count: 1036126112]:
  # wr_32 = PHI <0(8), wr_69(10)>
  # ps_35 = PHI <ps_45(8), ps_65(10)>
  # DEBUG ps => ps_35
  # DEBUG wr => wr_32
  # DEBUG BEGIN_STMT
  if (wr_32 < wrlen_63)
    goto <bb 9>; [96.34%]
  else
    goto <bb 22>; [3.66%]

  <bb 12> [local count: 157794185]:
  # DEBUG BEGIN_STMT
  _16 = _5 + 4294967292;
  if (_16 <= 1)
    goto <bb 13>; [41.00%]
  else
    goto <bb 16>; [59.00%]

  <bb 13> [local count: 64695616]:
  # DEBUG BEGIN_STMT
  wrlen_57 = wrlen_44 >> 2;
  # DEBUG wrlen => wrlen_57
  # DEBUG BEGIN_STMT
  _17 = EEP_ADDR_TABLE[_2][3];
  pd4_58 = (volatile vuint32_t *) _17;
  # DEBUG pd4 => pd4_58
  # DEBUG BEGIN_STMT
  goto <bb 15>; [100.00%]

  <bb 14> [local count: 523446350]:
  # DEBUG BEGIN_STMT
  ps_59 = ps_36 + 4;
  # DEBUG ps => ps_59
  k_60 ={v} *ps_36;
  # DEBUG k => k_60
  # DEBUG BEGIN_STMT
  wr_61 = wr_33 + 1;
  # DEBUG wr => wr_61
  _18 = wr_33 * 4;
  _19 = pd4_58 + _18;
  *_19 ={v} k_60;

  <bb 15> [local count: 588141967]:
  # wr_33 = PHI <0(13), wr_61(14)>
  # ps_36 = PHI <ps_45(13), ps_59(14)>
  # DEBUG ps => ps_36
  # DEBUG wr => wr_33
  # DEBUG BEGIN_STMT
  if (wr_33 < wrlen_57)
    goto <bb 14>; [89.00%]
  else
    goto <bb 22>; [11.00%]

  <bb 16> [local count: 93098569]:
  # DEBUG BEGIN_STMT
  _20 = EEP_ADDR_TABLE[_2][3];
  pd1_46 = (volatile vuint8_t *) _20;
  # DEBUG pd1 => pd1_46
  # DEBUG BEGIN_STMT
  goto <bb 21>; [100.00%]

  <bb 17> [local count: 864961090]:
  # DEBUG BEGIN_STMT
  ps_47 = ps_37 + 4;
  # DEBUG ps => ps_47
  k_48 ={v} *ps_37;
  # DEBUG k => k_48
  # DEBUG BEGIN_STMT
  _21 = k_48 >> 24;
  wr_49 = wr_34 + 1;
  # DEBUG wr => wr_49
  _22 = pd1_46 + wr_34;
  _23 = (unsigned char) _21;
  *_22 ={v} _23;
  # DEBUG BEGIN_STMT
  if (wrlen_44 <= wr_49)
    goto <bb 22>; [2.20%]
  else
    goto <bb 18>; [97.80%]

  <bb 18> [local count: 845931946]:
  # DEBUG BEGIN_STMT
  _24 = k_48 >> 16;
  wr_51 = wr_34 + 2;
  # DEBUG wr => wr_51
  _25 = pd1_46 + wr_49;
  _26 = (unsigned char) _24;
  *_25 ={v} _26;
  # DEBUG BEGIN_STMT
  if (wrlen_44 <= wr_51)
    goto <bb 22>; [2.20%]
  else
    goto <bb 19>; [97.80%]

  <bb 19> [local count: 827321443]:
  # DEBUG BEGIN_STMT
  _27 = k_48 >> 8;
  wr_53 = wr_34 + 3;
  # DEBUG wr => wr_53
  _28 = pd1_46 + wr_51;
  _29 = (unsigned char) _27;
  *_28 ={v} _29;
  # DEBUG BEGIN_STMT
  if (wrlen_44 <= wr_53)
    goto <bb 22>; [2.20%]
  else
    goto <bb 20>; [97.80%]

  <bb 20> [local count: 809120371]:
  # DEBUG BEGIN_STMT
  wr_55 = wr_34 + 4;
  # DEBUG wr => wr_55
  _30 = pd1_46 + wr_53;
  _31 = (unsigned char) k_48;
  *_30 ={v} _31;
  # DEBUG BEGIN_STMT
  if (wrlen_44 <= wr_55)
    goto <bb 22>; [2.20%]
  else
    goto <bb 21>; [97.80%]

  <bb 21> [local count: 884418293]:
  # wr_34 = PHI <0(16), wr_55(20)>
  # ps_37 = PHI <ps_45(16), ps_47(20)>
  # DEBUG ps => ps_37
  # DEBUG wr => wr_34
  # DEBUG BEGIN_STMT
  if (wr_34 < wrlen_44)
    goto <bb 17>; [97.80%]
  else
    goto <bb 22>; [2.20%]

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

}


write_table_n (uint16_t n)
{
  <bb 2> [local count: 1073741823]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (n_1(D) > 28)
    goto <bb 4>; [34.00%]
  else
    goto <bb 3>; [66.00%]

  <bb 3> [local count: 708669599]:
  write_table_n.part.0 (n_1(D));

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

}


table_did_maping_write (uint16_t did)
{
  uint16_t rt;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 65535
  # DEBUG BEGIN_STMT
  switch (did_2(D)) <default: <L29> [3.33%], case 61456: <L4> [3.33%], case 61457: <L5> [3.33%], case 61458: <L6> [3.33%], case 61459: <L7> [3.33%], case 61460: <L8> [3.33%], case 61461: <L9> [3.33%], case 61462: <L10> [3.33%], case 61463: <L11> [3.33%], case 61464: <L12> [3.33%], case 61465: <L13> [3.33%], case 61466: <L14> [3.33%], case 61467: <L15> [3.33%], case 61468: <L16> [3.33%], case 61469: <L17> [3.33%], case 61470: <L18> [3.33%], case 61471: <L19> [3.33%], case 61472: <L20> [3.33%], case 61473: <L21> [3.33%], case 61474: <L22> [3.33%], case 61475: <L23> [3.33%], case 61476: <L24> [3.33%], case 61477: <L25> [3.33%], case 61478: <L26> [3.33%], case 61479: <L27> [3.33%], case 61480: <L28> [3.33%], case 61831: <L32> [3.33%], case 61832: <L1> [3.33%], case 61843: <L3> [3.33%], case 61845: <L2> [3.33%]>

  <bb 3> [local count: 35755603]:
<L1>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 1
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 4> [local count: 35755603]:
<L2>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 2
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 5> [local count: 35755603]:
<L3>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 3
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 6> [local count: 35755603]:
<L4>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 4
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 7> [local count: 35755603]:
<L5>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 5
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 8> [local count: 35755603]:
<L6>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 6
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 9> [local count: 35755603]:
<L7>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 7
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 10> [local count: 35755603]:
<L8>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 8
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 11> [local count: 35755603]:
<L9>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 9
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 12> [local count: 35755603]:
<L10>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 10
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 13> [local count: 35755603]:
<L11>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 10
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 14> [local count: 35755603]:
<L12>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 11
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 15> [local count: 35755603]:
<L13>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 12
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 16> [local count: 35755603]:
<L14>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 13
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 17> [local count: 35755603]:
<L15>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 14
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 18> [local count: 35755603]:
<L16>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 15
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 19> [local count: 35755603]:
<L17>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 16
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 20> [local count: 35755603]:
<L18>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 17
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 21> [local count: 35755603]:
<L19>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 18
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 22> [local count: 35755603]:
<L20>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 19
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 23> [local count: 35755603]:
<L21>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 20
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 24> [local count: 35755603]:
<L22>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 20
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 25> [local count: 35755603]:
<L23>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 21
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 26> [local count: 35755603]:
<L24>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 22
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 27> [local count: 35755603]:
<L25>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 23
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 28> [local count: 35755603]:
<L26>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 24
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 29> [local count: 35755603]:
<L27>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 25
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 30> [local count: 35755603]:
<L28>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 26
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 31> [local count: 35755603]:
<L29>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 65535
  # DEBUG BEGIN_STMT

  <bb 32> [local count: 1072668089]:
  # rt_1 = PHI <0(2), 1(3), 2(4), 3(5), 4(6), 5(7), 6(8), 7(9), 8(10), 9(11), 10(12), 10(13), 11(14), 12(15), 13(16), 14(17), 15(18), 16(19), 17(20), 18(21), 19(22), 20(23), 20(24), 21(25), 22(26), 23(27), 24(28), 25(29), 26(30), 65535(31)>
<L32>:
  # DEBUG rt => rt_1
  # DEBUG BEGIN_STMT
  return rt_1;

}


table_did_maping (uint16_t did)
{
  uint16_t rt;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 65535
  # DEBUG BEGIN_STMT
  switch (did_2(D)) <default: <L29> [3.33%], case 61456: <L4> [3.33%], case 61457: <L5> [3.33%], case 61458: <L6> [3.33%], case 61459: <L7> [3.33%], case 61460: <L8> [3.33%], case 61461: <L9> [3.33%], case 61462: <L10> [3.33%], case 61463: <L11> [3.33%], case 61464: <L12> [3.33%], case 61465: <L13> [3.33%], case 61466: <L14> [3.33%], case 61467: <L15> [3.33%], case 61468: <L16> [3.33%], case 61469: <L17> [3.33%], case 61470: <L18> [3.33%], case 61471: <L19> [3.33%], case 61472: <L20> [3.33%], case 61473: <L21> [3.33%], case 61474: <L22> [3.33%], case 61475: <L23> [3.33%], case 61476: <L24> [3.33%], case 61477: <L25> [3.33%], case 61478: <L26> [3.33%], case 61479: <L27> [3.33%], case 61480: <L28> [3.33%], case 61831: <L32> [3.33%], case 61832: <L1> [3.33%], case 61843: <L3> [3.33%], case 61845: <L2> [3.33%]>

  <bb 3> [local count: 35755603]:
<L1>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 1
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 4> [local count: 35755603]:
<L2>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 2
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 5> [local count: 35755603]:
<L3>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 3
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 6> [local count: 35755603]:
<L4>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 4
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 7> [local count: 35755603]:
<L5>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 5
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 8> [local count: 35755603]:
<L6>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 6
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 9> [local count: 35755603]:
<L7>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 7
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 10> [local count: 35755603]:
<L8>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 8
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 11> [local count: 35755603]:
<L9>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 9
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 12> [local count: 35755603]:
<L10>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 10
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 13> [local count: 35755603]:
<L11>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 10
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 14> [local count: 35755603]:
<L12>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 11
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 15> [local count: 35755603]:
<L13>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 12
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 16> [local count: 35755603]:
<L14>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 13
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 17> [local count: 35755603]:
<L15>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 14
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 18> [local count: 35755603]:
<L16>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 15
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 19> [local count: 35755603]:
<L17>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 16
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 20> [local count: 35755603]:
<L18>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 17
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 21> [local count: 35755603]:
<L19>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 18
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 22> [local count: 35755603]:
<L20>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 19
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 23> [local count: 35755603]:
<L21>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 20
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 24> [local count: 35755603]:
<L22>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 20
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 25> [local count: 35755603]:
<L23>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 21
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 26> [local count: 35755603]:
<L24>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 22
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 27> [local count: 35755603]:
<L25>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 23
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 28> [local count: 35755603]:
<L26>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 24
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 29> [local count: 35755603]:
<L27>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 25
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 30> [local count: 35755603]:
<L28>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 26
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 31> [local count: 35755603]:
<L29>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 65535
  # DEBUG BEGIN_STMT

  <bb 32> [local count: 1072668089]:
  # rt_1 = PHI <0(2), 1(3), 2(4), 3(5), 4(6), 5(7), 6(8), 7(9), 8(10), 9(11), 10(12), 10(13), 11(14), 12(15), 13(16), 14(17), 15(18), 16(19), 17(20), 18(21), 19(22), 20(23), 20(24), 21(25), 22(26), 23(27), 24(28), 25(29), 26(30), 65535(31)>
<L32>:
  # DEBUG rt => rt_1
  # DEBUG BEGIN_STMT
  return rt_1;

}


