mono_strtod (const char * s00, char * * se)
{
  double * rv.0;
  char D.8837;
  int D.8838;
  unsigned int D.8845;
  unsigned int c.1;
  unsigned int D.8847;
  unsigned int D.8851;
  unsigned int D.8852;
  unsigned int c.2;
  unsigned int D.8859;
  int nd.3;
  int nd.4;
  unsigned int D.8876;
  _Bool D.8877;
  _Bool D.8878;
  _Bool D.8879;
  int D.8882;
  int D.8883;
  int D.8890;
  int D.8891;
  int s.5;
  int s1.6;
  int D.8898;
  int D.8906;
  double D.8911;
  int D.8914;
  double D.8915;
  double D.8916;
  double D.8917;
  double D.8918;
  double D.8919;
  double D.8927;
  double D.8928;
  int D.8929;
  double D.8932;
  double D.8933;
  int D.8937;
  double D.8938;
  double D.8939;
  int D.8940;
  int * D.8949;
  int D.8951;
  double D.8954;
  double D.8955;
  unsigned int D.8956;
  unsigned int D.8957;
  unsigned int D.8962;
  double D.8968;
  int D.8972;
  double D.8977;
  double D.8978;
  unsigned int D.8981;
  unsigned int D.8982;
  unsigned int D.8983;
  int D.8991;
  unsigned int D.8992;
  unsigned int D.8993;
  unsigned int D.8995;
  unsigned int D.8996;
  unsigned int D.8997;
  int D.9001;
  int * D.9002;
  int * D.9003;
  int D.9004;
  unsigned int D.9005;
  unsigned int D.9006;
  unsigned int D.9007;
  int bbe.7;
  int bbbits.8;
  int D.9016;
  unsigned int D.9038;
  unsigned int D.9041;
  int D.9044;
  int D.9046;
  guint32 iftmp.9;
  unsigned int D.9059;
  unsigned int D.9060;
  int D.9061;
  unsigned int D.9064;
  int D.9072;
  unsigned int D.9076;
  int D.9077;
  unsigned int D.9078;
  unsigned int D.9079;
  double D.9083;
  double D.9084;
  double D.9086;
  double D.9087;
  double aadj1.10;
  double iftmp.11;
  double aadj1.12;
  double aadj1.13;
  double * rv0.14;
  double D.9117;
  double D.9118;
  unsigned int D.9121;
  unsigned int D.9124;
  _Bool D.9127;
  _Bool D.9128;
  _Bool D.9129;
  double iftmp.15;
  double * aadj1.16;
  unsigned int D.9141;
  unsigned int D.9142;
  unsigned int D.9143;
  double D.9144;
  double D.9149;
  double D.9160;
  double D.9161;
  double D.9168;
  double iftmp.17;
  int scale;
  int bb2;
  int bb5;
  int bbe;
  int bd2;
  int bd5;
  int bbbits;
  int bs2;
  int c;
  int dsign;
  int e;
  int e1;
  int esign;
  int i;
  int j;
  int k;
  int nd;
  int nd0;
  int nf;
  int nz;
  int nz0;
  int sign;
  const char * s;
  const char * s0;
  const char * s1;
  double aadj;
  double aadj1;
  double adj;
  double rv;
  double rv0;
  gint32 L;
  guint32 y;
  guint32 z;
  struct Bigint * bb;
  struct Bigint * bb1;
  struct Bigint * bd;
  struct Bigint * bd0;
  struct Bigint * bs;
  struct Bigint * delta;
  void break2 = <<< error >>>;
  void ret0 = <<< error >>>;
  void ret = <<< error >>>;
  void have_dig = <<< error >>>;
  void dig_done = <<< error >>>;
  void ovfl = <<< error >>>;
  void retfree = <<< error >>>;
  void undfl = <<< error >>>;
  void drop_down = <<< error >>>;
  void cont = <<< error >>>;

  try
    {
      bb = 0B;
      bd = 0B;
      bs = 0B;
      delta = 0B;
      nz = 0;
      nz0 = nz;
      sign = nz0;
      rv.0 = &rv;
      MEM[(union U *)rv.0].d = 0.0;
      s = s00;
      <D.8793>:
      D.8837 = *s;
      D.8838 = (int) D.8837;
      switch (D.8838) <default: <D.8792>, case 0: <D.8783>, case 9: <D.8785>, case 10: <D.8786>, case 11: <D.8787>, case 12: <D.8788>, case 13: <D.8789>, case 32: <D.8790>, case 43: <D.8781>, case 45: <D.8780>>
      <D.8780>:
      sign = 1;
      <D.8781>:
      s = s + 1;
      D.8837 = *s;
      if (D.8837 != 0) goto break2; else goto <D.8839>;
      <D.8839>:
      <D.8783>:
      goto ret0;
      <D.8785>:
      <D.8786>:
      <D.8787>:
      <D.8788>:
      <D.8789>:
      <D.8790>:
      // predicted unlikely by continue predictor.
      goto <D.8791>;
      <D.8792>:
      goto break2;
      <D.8791>:
      s = s + 1;
      goto <D.8793>;
      break2:
      D.8837 = *s;
      if (D.8837 == 48) goto <D.8840>; else goto <D.8841>;
      <D.8840>:
      nz0 = 1;
      goto <D.8795>;
      <D.8794>:
      <D.8795>:
      s = s + 1;
      D.8837 = *s;
      if (D.8837 == 48) goto <D.8794>; else goto <D.8796>;
      <D.8796>:
      D.8837 = *s;
      if (D.8837 == 0) goto ret; else goto <D.8842>;
      <D.8842>:
      <D.8841>:
      s0 = s;
      z = 0;
      y = z;
      nf = 0;
      nd = nf;
      goto <D.8799>;
      <D.8798>:
      if (nd <= 8) goto <D.8843>; else goto <D.8844>;
      <D.8843>:
      D.8845 = y * 10;
      c.1 = (unsigned int) c;
      D.8847 = D.8845 + c.1;
      y = D.8847 + 4294967248;
      goto <D.8848>;
      <D.8844>:
      if (nd <= 15) goto <D.8849>; else goto <D.8850>;
      <D.8849>:
      D.8851 = z * 10;
      c.1 = (unsigned int) c;
      D.8852 = D.8851 + c.1;
      z = D.8852 + 4294967248;
      <D.8850>:
      <D.8848>:
      nd = nd + 1;
      s = s + 1;
      <D.8799>:
      D.8837 = *s;
      c = (int) D.8837;
      if (c > 47) goto <D.8853>; else goto <D.8800>;
      <D.8853>:
      if (c <= 57) goto <D.8798>; else goto <D.8800>;
      <D.8800>:
      nd0 = nd;
      if (c == 46) goto <D.8854>; else goto <D.8855>;
      <D.8854>:
      s = s + 1;
      D.8837 = *s;
      c = (int) D.8837;
      if (nd == 0) goto <D.8856>; else goto <D.8857>;
      <D.8856>:
      goto <D.8802>;
      <D.8801>:
      nz = nz + 1;
      s = s + 1;
      D.8837 = *s;
      c = (int) D.8837;
      <D.8802>:
      if (c == 48) goto <D.8801>; else goto <D.8803>;
      <D.8803>:
      c.2 = (unsigned int) c;
      D.8859 = c.2 + 4294967247;
      if (D.8859 <= 8) goto <D.8860>; else goto <D.8861>;
      <D.8860>:
      s0 = s;
      nf = nf + nz;
      nz = 0;
      goto have_dig;
      <D.8861>:
      goto dig_done;
      <D.8857>:
      goto <D.8810>;
      <D.8809>:
      have_dig:
      nz = nz + 1;
      c = c + -48;
      if (c != 0) goto <D.8862>; else goto <D.8863>;
      <D.8862>:
      nf = nf + nz;
      i = 1;
      goto <D.8807>;
      <D.8806>:
      nd.3 = nd;
      nd = nd.3 + 1;
      if (nd.3 <= 8) goto <D.8865>; else goto <D.8866>;
      <D.8865>:
      y = y * 10;
      goto <D.8867>;
      <D.8866>:
      if (nd <= 16) goto <D.8868>; else goto <D.8869>;
      <D.8868>:
      z = z * 10;
      <D.8869>:
      <D.8867>:
      i = i + 1;
      <D.8807>:
      if (i < nz) goto <D.8806>; else goto <D.8808>;
      <D.8808>:
      nd.4 = nd;
      nd = nd.4 + 1;
      if (nd.4 <= 8) goto <D.8871>; else goto <D.8872>;
      <D.8871>:
      D.8845 = y * 10;
      c.1 = (unsigned int) c;
      y = D.8845 + c.1;
      goto <D.8873>;
      <D.8872>:
      if (nd <= 16) goto <D.8874>; else goto <D.8875>;
      <D.8874>:
      D.8851 = z * 10;
      c.1 = (unsigned int) c;
      z = D.8851 + c.1;
      <D.8875>:
      <D.8873>:
      nz = 0;
      <D.8863>:
      s = s + 1;
      D.8837 = *s;
      c = (int) D.8837;
      <D.8810>:
      c.2 = (unsigned int) c;
      D.8876 = c.2 + 4294967248;
      if (D.8876 <= 9) goto <D.8809>; else goto <D.8811>;
      <D.8811>:
      <D.8855>:
      dig_done:
      e = 0;
      D.8877 = c == 101;
      D.8878 = c == 69;
      D.8879 = D.8877 | D.8878;
      if (D.8879 != 0) goto <D.8880>; else goto <D.8881>;
      <D.8880>:
      D.8882 = nd | nz;
      D.8883 = D.8882 | nz0;
      if (D.8883 == 0) goto ret0; else goto <D.8884>;
      <D.8884>:
      s00 = s;
      esign = 0;
      s = s + 1;
      D.8837 = *s;
      c = (int) D.8837;
      switch (c) <default: <D.8885>, case 43: <D.8813>, case 45: <D.8812>>
      <D.8812>:
      esign = 1;
      <D.8813>:
      s = s + 1;
      D.8837 = *s;
      c = (int) D.8837;
      <D.8885>:
      c.2 = (unsigned int) c;
      D.8876 = c.2 + 4294967248;
      if (D.8876 <= 9) goto <D.8886>; else goto <D.8887>;
      <D.8886>:
      goto <D.8815>;
      <D.8814>:
      s = s + 1;
      D.8837 = *s;
      c = (int) D.8837;
      <D.8815>:
      if (c == 48) goto <D.8814>; else goto <D.8816>;
      <D.8816>:
      c.2 = (unsigned int) c;
      D.8859 = c.2 + 4294967247;
      if (D.8859 <= 8) goto <D.8888>; else goto <D.8889>;
      <D.8888>:
      L = c + -48;
      s1 = s;
      goto <D.8818>;
      <D.8817>:
      D.8890 = L * 10;
      D.8891 = D.8890 + c;
      L = D.8891 + -48;
      <D.8818>:
      s = s + 1;
      D.8837 = *s;
      c = (int) D.8837;
      if (c > 47) goto <D.8892>; else goto <D.8819>;
      <D.8892>:
      if (c <= 57) goto <D.8817>; else goto <D.8819>;
      <D.8819>:
      s.5 = (int) s;
      s1.6 = (int) s1;
      D.8898 = s.5 - s1.6;
      if (D.8898 > 8) goto <D.8893>; else goto <D.8899>;
      <D.8899>:
      if (L > 19999) goto <D.8893>; else goto <D.8894>;
      <D.8893>:
      e = 19999;
      goto <D.8895>;
      <D.8894>:
      e = L;
      <D.8895>:
      if (esign != 0) goto <D.8900>; else goto <D.8901>;
      <D.8900>:
      e = -e;
      <D.8901>:
      goto <D.8902>;
      <D.8889>:
      e = 0;
      <D.8902>:
      goto <D.8903>;
      <D.8887>:
      s = s00;
      <D.8903>:
      <D.8881>:
      if (nd == 0) goto <D.8904>; else goto <D.8905>;
      <D.8904>:
      D.8906 = nz | nz0;
      if (D.8906 == 0) goto <D.8907>; else goto <D.8908>;
      <D.8907>:
      ret0:
      s = s00;
      sign = 0;
      <D.8908>:
      goto ret;
      <D.8905>:
      e = e - nf;
      e1 = e;
      if (nd0 == 0) goto <D.8909>; else goto <D.8910>;
      <D.8909>:
      nd0 = nd;
      <D.8910>:
      k = MIN_EXPR <nd, 16>;
      rv.0 = &rv;
      D.8911 = (double) y;
      MEM[(union U *)rv.0].d = D.8911;
      if (k > 9) goto <D.8912>; else goto <D.8913>;
      <D.8912>:
      rv.0 = &rv;
      D.8914 = k + -9;
      D.8915 = tens[D.8914];
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      D.8917 = D.8915 * D.8916;
      D.8918 = (double) z;
      D.8919 = D.8917 + D.8918;
      MEM[(union U *)rv.0].d = D.8919;
      <D.8913>:
      bd0 = 0B;
      if (nd <= 15) goto <D.8920>; else goto <D.8921>;
      <D.8920>:
      if (e == 0) goto ret; else goto <D.8922>;
      <D.8922>:
      if (e > 0) goto <D.8923>; else goto <D.8924>;
      <D.8923>:
      if (e <= 22) goto <D.8925>; else goto <D.8926>;
      <D.8925>:
      rv.0 = &rv;
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      D.8927 = tens[e];
      D.8928 = D.8916 * D.8927;
      MEM[(union U *)rv.0].d = D.8928;
      goto ret;
      <D.8926>:
      i = 15 - nd;
      D.8929 = i + 22;
      if (D.8929 >= e) goto <D.8930>; else goto <D.8931>;
      <D.8930>:
      e = e - i;
      rv.0 = &rv;
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      D.8932 = tens[i];
      D.8933 = D.8916 * D.8932;
      MEM[(union U *)rv.0].d = D.8933;
      rv.0 = &rv;
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      D.8927 = tens[e];
      D.8928 = D.8916 * D.8927;
      MEM[(union U *)rv.0].d = D.8928;
      goto ret;
      <D.8931>:
      goto <D.8934>;
      <D.8924>:
      if (e >= -22) goto <D.8935>; else goto <D.8936>;
      <D.8935>:
      rv.0 = &rv;
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      D.8937 = -e;
      D.8938 = tens[D.8937];
      D.8939 = D.8916 / D.8938;
      MEM[(union U *)rv.0].d = D.8939;
      goto ret;
      <D.8936>:
      <D.8934>:
      <D.8921>:
      D.8940 = nd - k;
      e1 = D.8940 + e1;
      scale = 0;
      if (e1 > 0) goto <D.8941>; else goto <D.8942>;
      <D.8941>:
      i = e1 & 15;
      if (i != 0) goto <D.8943>; else goto <D.8944>;
      <D.8943>:
      rv.0 = &rv;
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      D.8932 = tens[i];
      D.8933 = D.8916 * D.8932;
      MEM[(union U *)rv.0].d = D.8933;
      <D.8944>:
      e1 = e1 & -16;
      if (e1 != 0) goto <D.8945>; else goto <D.8946>;
      <D.8945>:
      if (e1 > 308) goto <D.8947>; else goto <D.8948>;
      <D.8947>:
      ovfl:
      D.8949 = __errno_location ();
      *D.8949 = 34;
      rv.0 = &rv;
      MEM[(union U *)rv.0].L[1] = 2146435072;
      rv.0 = &rv;
      MEM[(union U *)rv.0].L[0] = 0;
      if (bd0 != 0B) goto retfree; else goto <D.8950>;
      <D.8950>:
      goto ret;
      <D.8948>:
      e1 = e1 >> 4;
      j = 0;
      goto <D.8823>;
      <D.8822>:
      D.8951 = e1 & 1;
      if (D.8951 != 0) goto <D.8952>; else goto <D.8953>;
      <D.8952>:
      rv.0 = &rv;
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      D.8954 = bigtens[j];
      D.8955 = D.8916 * D.8954;
      MEM[(union U *)rv.0].d = D.8955;
      <D.8953>:
      j = j + 1;
      e1 = e1 >> 1;
      <D.8823>:
      if (e1 > 1) goto <D.8822>; else goto <D.8824>;
      <D.8824>:
      rv.0 = &rv;
      rv.0 = &rv;
      D.8956 = MEM[(union U *)rv.0].L[1];
      D.8957 = D.8956 + 4239392768;
      MEM[(union U *)rv.0].L[1] = D.8957;
      rv.0 = &rv;
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      D.8954 = bigtens[j];
      D.8955 = D.8916 * D.8954;
      MEM[(union U *)rv.0].d = D.8955;
      rv.0 = &rv;
      D.8956 = MEM[(union U *)rv.0].L[1];
      z = D.8956 & 2146435072;
      if (z > 2090860544) goto ovfl; else goto <D.8958>;
      <D.8958>:
      if (z > 2089811968) goto <D.8959>; else goto <D.8960>;
      <D.8959>:
      rv.0 = &rv;
      MEM[(union U *)rv.0].L[1] = 2146435071;
      rv.0 = &rv;
      MEM[(union U *)rv.0].L[0] = 4294967295;
      goto <D.8961>;
      <D.8960>:
      rv.0 = &rv;
      rv.0 = &rv;
      D.8956 = MEM[(union U *)rv.0].L[1];
      D.8962 = D.8956 + 55574528;
      MEM[(union U *)rv.0].L[1] = D.8962;
      <D.8961>:
      <D.8946>:
      goto <D.8963>;
      <D.8942>:
      if (e1 < 0) goto <D.8964>; else goto <D.8965>;
      <D.8964>:
      e1 = -e1;
      i = e1 & 15;
      if (i != 0) goto <D.8966>; else goto <D.8967>;
      <D.8966>:
      rv.0 = &rv;
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      D.8932 = tens[i];
      D.8968 = D.8916 / D.8932;
      MEM[(union U *)rv.0].d = D.8968;
      <D.8967>:
      e1 = e1 >> 4;
      if (e1 != 0) goto <D.8969>; else goto <D.8970>;
      <D.8969>:
      if (e1 > 31) goto undfl; else goto <D.8971>;
      <D.8971>:
      D.8972 = e1 & 16;
      if (D.8972 != 0) goto <D.8973>; else goto <D.8974>;
      <D.8973>:
      scale = 106;
      <D.8974>:
      j = 0;
      goto <D.8827>;
      <D.8826>:
      D.8951 = e1 & 1;
      if (D.8951 != 0) goto <D.8975>; else goto <D.8976>;
      <D.8975>:
      rv.0 = &rv;
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      D.8977 = tinytens[j];
      D.8978 = D.8916 * D.8977;
      MEM[(union U *)rv.0].d = D.8978;
      <D.8976>:
      j = j + 1;
      e1 = e1 >> 1;
      <D.8827>:
      if (e1 > 0) goto <D.8826>; else goto <D.8828>;
      <D.8828>:
      if (scale != 0) goto <D.8979>; else goto <D.8980>;
      <D.8979>:
      rv.0 = &rv;
      D.8956 = MEM[(union U *)rv.0].L[1];
      D.8981 = D.8956 & 2146435072;
      D.8982 = D.8981 >> 20;
      D.8983 = 107 - D.8982;
      j = (int) D.8983;
      if (j > 0) goto <D.8984>; else goto <D.8985>;
      <D.8984>:
      if (j > 31) goto <D.8986>; else goto <D.8987>;
      <D.8986>:
      rv.0 = &rv;
      MEM[(union U *)rv.0].L[0] = 0;
      if (j > 52) goto <D.8988>; else goto <D.8989>;
      <D.8988>:
      rv.0 = &rv;
      MEM[(union U *)rv.0].L[1] = 57671680;
      goto <D.8990>;
      <D.8989>:
      rv.0 = &rv;
      rv.0 = &rv;
      D.8956 = MEM[(union U *)rv.0].L[1];
      D.8991 = j + -32;
      D.8992 = 4294967295 << D.8991;
      D.8993 = D.8956 & D.8992;
      MEM[(union U *)rv.0].L[1] = D.8993;
      <D.8990>:
      goto <D.8994>;
      <D.8987>:
      rv.0 = &rv;
      rv.0 = &rv;
      D.8995 = MEM[(union U *)rv.0].L[0];
      D.8996 = 4294967295 << j;
      D.8997 = D.8995 & D.8996;
      MEM[(union U *)rv.0].L[0] = D.8997;
      <D.8994>:
      <D.8985>:
      <D.8980>:
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      if (D.8916 == 0.0) goto <D.8998>; else goto <D.8999>;
      <D.8998>:
      undfl:
      rv.0 = &rv;
      MEM[(union U *)rv.0].d = 0.0;
      D.8949 = __errno_location ();
      *D.8949 = 34;
      if (bd0 != 0B) goto retfree; else goto <D.9000>;
      <D.9000>:
      goto ret;
      <D.8999>:
      <D.8970>:
      <D.8965>:
      <D.8963>:
      bd0 = s2b (s0, nd0, nd, y);
      <D.8832>:
      D.9001 = bd0->k;
      bd = Balloc (D.9001);
      D.9002 = &bd->sign;
      D.9003 = &bd0->sign;
      D.9004 = bd0->wds;
      D.9005 = (unsigned int) D.9004;
      D.9006 = D.9005 + 2;
      D.9007 = D.9006 * 4;
      memcpy (D.9002, D.9003, D.9007);
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      bb = d2b (D.8916, &bbe, &bbbits);
      bs = i2b (1);
      if (e >= 0) goto <D.9008>; else goto <D.9009>;
      <D.9008>:
      bb5 = 0;
      bb2 = bb5;
      bd5 = e;
      bd2 = bd5;
      goto <D.9010>;
      <D.9009>:
      bb5 = -e;
      bb2 = bb5;
      bd5 = 0;
      bd2 = bd5;
      <D.9010>:
      bbe.7 = bbe;
      if (bbe.7 >= 0) goto <D.9012>; else goto <D.9013>;
      <D.9012>:
      bbe.7 = bbe;
      bb2 = bb2 + bbe.7;
      goto <D.9014>;
      <D.9013>:
      bbe.7 = bbe;
      bd2 = bd2 - bbe.7;
      <D.9014>:
      bs2 = bb2;
      bbe.7 = bbe;
      j = bbe.7 - scale;
      bbbits.8 = bbbits;
      D.9016 = j + bbbits.8;
      i = D.9016 + -1;
      if (i < -1022) goto <D.9017>; else goto <D.9018>;
      <D.9017>:
      j = j + 1075;
      goto <D.9019>;
      <D.9018>:
      bbbits.8 = bbbits;
      j = 54 - bbbits.8;
      <D.9019>:
      bb2 = bb2 + j;
      bd2 = bd2 + j;
      bd2 = bd2 + scale;
      i = MIN_EXPR <bd2, bb2>;
      if (i > bs2) goto <D.9020>; else goto <D.9021>;
      <D.9020>:
      i = bs2;
      <D.9021>:
      if (i > 0) goto <D.9022>; else goto <D.9023>;
      <D.9022>:
      bb2 = bb2 - i;
      bd2 = bd2 - i;
      bs2 = bs2 - i;
      <D.9023>:
      if (bb5 > 0) goto <D.9024>; else goto <D.9025>;
      <D.9024>:
      bs = pow5mult (bs, bb5);
      bb1 = mult (bs, bb);
      Bfree (bb);
      bb = bb1;
      <D.9025>:
      if (bb2 > 0) goto <D.9026>; else goto <D.9027>;
      <D.9026>:
      bb = lshift (bb, bb2);
      <D.9027>:
      if (bd5 > 0) goto <D.9028>; else goto <D.9029>;
      <D.9028>:
      bd = pow5mult (bd, bd5);
      <D.9029>:
      if (bd2 > 0) goto <D.9030>; else goto <D.9031>;
      <D.9030>:
      bd = lshift (bd, bd2);
      <D.9031>:
      if (bs2 > 0) goto <D.9032>; else goto <D.9033>;
      <D.9032>:
      bs = lshift (bs, bs2);
      <D.9033>:
      delta = diff (bb, bd);
      dsign = delta->sign;
      delta->sign = 0;
      i = cmp (delta, bs);
      if (i < 0) goto <D.9034>; else goto <D.9035>;
      <D.9034>:
      if (dsign != 0) goto <D.8829>; else goto <D.9036>;
      <D.9036>:
      rv.0 = &rv;
      D.8995 = MEM[(union U *)rv.0].L[0];
      if (D.8995 != 0) goto <D.8829>; else goto <D.9037>;
      <D.9037>:
      rv.0 = &rv;
      D.8956 = MEM[(union U *)rv.0].L[1];
      D.9038 = D.8956 & 1048575;
      if (D.9038 != 0) goto <D.8829>; else goto <D.9039>;
      <D.9039>:
      rv.0 = &rv;
      D.8956 = MEM[(union U *)rv.0].L[1];
      D.8981 = D.8956 & 2146435072;
      if (D.8981 <= 112197632) goto <D.8829>; else goto <D.9040>;
      <D.9040>:
      D.9041 = delta->x[0];
      if (D.9041 == 0) goto <D.9042>; else goto <D.9043>;
      <D.9042>:
      D.9044 = delta->wds;
      if (D.9044 <= 1) goto <D.8829>; else goto <D.9045>;
      <D.9045>:
      <D.9043>:
      delta = lshift (delta, 1);
      D.9046 = cmp (delta, bs);
      if (D.9046 > 0) goto drop_down; else goto <D.9047>;
      <D.9047>:
      goto <D.8829>;
      <D.9035>:
      if (i == 0) goto <D.9048>; else goto <D.9049>;
      <D.9048>:
      if (dsign != 0) goto <D.9050>; else goto <D.9051>;
      <D.9050>:
      rv.0 = &rv;
      D.8956 = MEM[(union U *)rv.0].L[1];
      D.9038 = D.8956 & 1048575;
      if (D.9038 == 1048575) goto <D.9052>; else goto <D.9053>;
      <D.9052>:
      rv.0 = &rv;
      D.8995 = MEM[(union U *)rv.0].L[0];
      if (scale != 0) goto <D.9057>; else goto <D.9055>;
      <D.9057>:
      rv.0 = &rv;
      D.8956 = MEM[(union U *)rv.0].L[1];
      y = D.8956 & 2146435072;
      if (y <= 111149056) goto <D.9058>; else goto <D.9055>;
      <D.9058>:
      D.9059 = y >> 20;
      D.9060 = 107 - D.9059;
      D.9061 = (int) D.9060;
      iftmp.9 = 4294967295 << D.9061;
      goto <D.9056>;
      <D.9055>:
      iftmp.9 = 4294967295;
      <D.9056>:
      if (D.8995 == iftmp.9) goto <D.9062>; else goto <D.9063>;
      <D.9062>:
      rv.0 = &rv;
      rv.0 = &rv;
      D.8956 = MEM[(union U *)rv.0].L[1];
      D.8981 = D.8956 & 2146435072;
      D.9064 = D.8981 + 1048576;
      MEM[(union U *)rv.0].L[1] = D.9064;
      rv.0 = &rv;
      MEM[(union U *)rv.0].L[0] = 0;
      dsign = 0;
      goto <D.8829>;
      <D.9063>:
      <D.9053>:
      goto <D.9065>;
      <D.9051>:
      rv.0 = &rv;
      D.8956 = MEM[(union U *)rv.0].L[1];
      D.9038 = D.8956 & 1048575;
      if (D.9038 == 0) goto <D.9066>; else goto <D.9067>;
      <D.9066>:
      rv.0 = &rv;
      D.8995 = MEM[(union U *)rv.0].L[0];
      if (D.8995 == 0) goto <D.9068>; else goto <D.9069>;
      <D.9068>:
      drop_down:
      if (scale != 0) goto <D.9070>; else goto <D.9071>;
      <D.9070>:
      rv.0 = &rv;
      D.8956 = MEM[(union U *)rv.0].L[1];
      D.9072 = (int) D.8956;
      L = D.9072 & 2146435072;
      if (L <= 112197632) goto <D.9073>; else goto <D.9074>;
      <D.9073>:
      if (L > 57671680) goto <D.8829>; else goto <D.9075>;
      <D.9075>:
      goto undfl;
      <D.9074>:
      <D.9071>:
      rv.0 = &rv;
      D.8956 = MEM[(union U *)rv.0].L[1];
      D.8981 = D.8956 & 2146435072;
      D.9076 = D.8981 + 4293918720;
      L = (gint32) D.9076;
      rv.0 = &rv;
      D.9077 = L | 1048575;
      D.9078 = (unsigned int) D.9077;
      MEM[(union U *)rv.0].L[1] = D.9078;
      rv.0 = &rv;
      MEM[(union U *)rv.0].L[0] = 4294967295;
      goto <D.8829>;
      <D.9069>:
      <D.9067>:
      <D.9065>:
      rv.0 = &rv;
      D.8995 = MEM[(union U *)rv.0].L[0];
      D.9079 = D.8995 & 1;
      if (D.9079 == 0) goto <D.8829>; else goto <D.9080>;
      <D.9080>:
      if (dsign != 0) goto <D.9081>; else goto <D.9082>;
      <D.9081>:
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      D.9083 = ulp (D.8916);
      rv.0 = &rv;
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      D.9084 = D.8916 + D.9083;
      MEM[(union U *)rv.0].d = D.9084;
      goto <D.9085>;
      <D.9082>:
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      D.9086 = ulp (D.8916);
      rv.0 = &rv;
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      D.9087 = D.8916 - D.9086;
      MEM[(union U *)rv.0].d = D.9087;
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      if (D.8916 == 0.0) goto undfl; else goto <D.9088>;
      <D.9088>:
      <D.9085>:
      dsign = 1 - dsign;
      goto <D.8829>;
      <D.9049>:
      aadj = ratio (delta, bs);
      if (aadj <= 2.0e+0) goto <D.9089>; else goto <D.9090>;
      <D.9089>:
      if (dsign != 0) goto <D.9091>; else goto <D.9092>;
      <D.9091>:
      aadj1 = 1.0e+0;
      aadj = aadj1;
      goto <D.9093>;
      <D.9092>:
      rv.0 = &rv;
      D.8995 = MEM[(union U *)rv.0].L[0];
      if (D.8995 != 0) goto <D.9094>; else goto <D.9097>;
      <D.9097>:
      rv.0 = &rv;
      D.8956 = MEM[(union U *)rv.0].L[1];
      D.9038 = D.8956 & 1048575;
      if (D.9038 != 0) goto <D.9094>; else goto <D.9095>;
      <D.9094>:
      rv.0 = &rv;
      D.8995 = MEM[(union U *)rv.0].L[0];
      if (D.8995 == 1) goto <D.9098>; else goto <D.9099>;
      <D.9098>:
      rv.0 = &rv;
      D.8956 = MEM[(union U *)rv.0].L[1];
      if (D.8956 == 0) goto undfl; else goto <D.9100>;
      <D.9100>:
      <D.9099>:
      aadj = 1.0e+0;
      aadj1 = -1.0e+0;
      goto <D.9096>;
      <D.9095>:
      if (aadj < 1.0e+0) goto <D.9101>; else goto <D.9102>;
      <D.9101>:
      aadj = 5.0e-1;
      goto <D.9103>;
      <D.9102>:
      aadj = aadj * 5.0e-1;
      <D.9103>:
      aadj1.10 = -aadj;
      aadj1 = aadj1.10;
      <D.9096>:
      <D.9093>:
      goto <D.9105>;
      <D.9090>:
      aadj = aadj * 5.0e-1;
      if (dsign == 0) goto <D.9107>; else goto <D.9108>;
      <D.9107>:
      iftmp.11 = -aadj;
      goto <D.9109>;
      <D.9108>:
      iftmp.11 = aadj;
      <D.9109>:
      aadj1 = iftmp.11;
      if (0 != 0) goto <D.9110>; else goto <D.9111>;
      <D.9110>:
      aadj1.12 = aadj1;
      aadj1.13 = aadj1.12 + 5.0e-1;
      aadj1 = aadj1.13;
      <D.9111>:
      <D.9105>:
      rv.0 = &rv;
      D.8956 = MEM[(union U *)rv.0].L[1];
      y = D.8956 & 2146435072;
      if (y == 2145386496) goto <D.9114>; else goto <D.9115>;
      <D.9114>:
      rv0.14 = &rv0;
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      MEM[(union U *)rv0.14].d = D.8916;
      rv.0 = &rv;
      rv.0 = &rv;
      D.8956 = MEM[(union U *)rv.0].L[1];
      D.8957 = D.8956 + 4239392768;
      MEM[(union U *)rv.0].L[1] = D.8957;
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      D.9117 = ulp (D.8916);
      aadj1.12 = aadj1;
      adj = D.9117 * aadj1.12;
      rv.0 = &rv;
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      D.9118 = D.8916 + adj;
      MEM[(union U *)rv.0].d = D.9118;
      rv.0 = &rv;
      D.8956 = MEM[(union U *)rv.0].L[1];
      D.8981 = D.8956 & 2146435072;
      if (D.8981 > 2090860543) goto <D.9119>; else goto <D.9120>;
      <D.9119>:
      rv0.14 = &rv0;
      D.9121 = MEM[(union U *)rv0.14].L[1];
      if (D.9121 == 2146435071) goto <D.9122>; else goto <D.9123>;
      <D.9122>:
      rv0.14 = &rv0;
      D.9124 = MEM[(union U *)rv0.14].L[0];
      if (D.9124 == 4294967295) goto ovfl; else goto <D.9125>;
      <D.9125>:
      <D.9123>:
      rv.0 = &rv;
      MEM[(union U *)rv.0].L[1] = 2146435071;
      rv.0 = &rv;
      MEM[(union U *)rv.0].L[0] = 4294967295;
      goto cont;
      <D.9120>:
      rv.0 = &rv;
      rv.0 = &rv;
      D.8956 = MEM[(union U *)rv.0].L[1];
      D.8962 = D.8956 + 55574528;
      MEM[(union U *)rv.0].L[1] = D.8962;
      goto <D.9126>;
      <D.9115>:
      D.9127 = scale != 0;
      D.9128 = y <= 111149056;
      D.9129 = D.9127 & D.9128;
      if (D.9129 != 0) goto <D.9130>; else goto <D.9131>;
      <D.9130>:
      if (aadj <= 2.147483647e+9) goto <D.9132>; else goto <D.9133>;
      <D.9132>:
      z = (guint32) aadj;
      if (z == 0) goto <D.9134>; else goto <D.9135>;
      <D.9134>:
      z = 1;
      <D.9135>:
      aadj = (double) z;
      if (dsign == 0) goto <D.9137>; else goto <D.9138>;
      <D.9137>:
      iftmp.15 = -aadj;
      goto <D.9139>;
      <D.9138>:
      iftmp.15 = aadj;
      <D.9139>:
      aadj1 = iftmp.15;
      <D.9133>:
      aadj1.16 = &aadj1;
      aadj1.16 = &aadj1;
      D.9141 = MEM[(union U *)aadj1.16].L[1];
      D.9142 = D.9141 - y;
      D.9143 = D.9142 + 112197632;
      MEM[(union U *)aadj1.16].L[1] = D.9143;
      <D.9131>:
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      D.9144 = ulp (D.8916);
      aadj1.12 = aadj1;
      adj = D.9144 * aadj1.12;
      rv.0 = &rv;
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      D.9118 = D.8916 + adj;
      MEM[(union U *)rv.0].d = D.9118;
      <D.9126>:
      rv.0 = &rv;
      D.8956 = MEM[(union U *)rv.0].L[1];
      z = D.8956 & 2146435072;
      if (scale == 0) goto <D.9145>; else goto <D.9146>;
      <D.9145>:
      if (y == z) goto <D.9147>; else goto <D.9148>;
      <D.9147>:
      L = (gint32) aadj;
      D.9149 = (double) L;
      aadj = aadj - D.9149;
      if (dsign != 0) goto <D.9150>; else goto <D.9153>;
      <D.9153>:
      rv.0 = &rv;
      D.8995 = MEM[(union U *)rv.0].L[0];
      if (D.8995 != 0) goto <D.9150>; else goto <D.9154>;
      <D.9154>:
      rv.0 = &rv;
      D.8956 = MEM[(union U *)rv.0].L[1];
      D.9038 = D.8956 & 1048575;
      if (D.9038 != 0) goto <D.9150>; else goto <D.9151>;
      <D.9150>:
      if (aadj < 4.99999899999999997124433548378874547779560089111328125e-1) goto <D.8829>; else goto <D.9155>;
      <D.9155>:
      if (aadj > 5.0000009999999994736441522036329843103885650634765625e-1) goto <D.8829>; else goto <D.9156>;
      <D.9156>:
      goto <D.9152>;
      <D.9151>:
      if (aadj < 2.499999499999999985622167741894372738897800445556640625e-1) goto <D.8829>; else goto <D.9157>;
      <D.9157>:
      <D.9152>:
      <D.9148>:
      <D.9146>:
      cont:
      Bfree (bb);
      Bfree (bd);
      Bfree (bs);
      Bfree (delta);
      goto <D.8832>;
      <D.8829>:
      if (scale != 0) goto <D.9158>; else goto <D.9159>;
      <D.9158>:
      rv0.14 = &rv0;
      MEM[(union U *)rv0.14].L[1] = 961544192;
      rv0.14 = &rv0;
      MEM[(union U *)rv0.14].L[0] = 0;
      rv.0 = &rv;
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      rv0.14 = &rv0;
      D.9160 = MEM[(union U *)rv0.14].d;
      D.9161 = D.8916 * D.9160;
      MEM[(union U *)rv.0].d = D.9161;
      rv.0 = &rv;
      D.8956 = MEM[(union U *)rv.0].L[1];
      if (D.8956 == 0) goto <D.9162>; else goto <D.9163>;
      <D.9162>:
      rv.0 = &rv;
      D.8995 = MEM[(union U *)rv.0].L[0];
      if (D.8995 == 0) goto <D.9164>; else goto <D.9165>;
      <D.9164>:
      D.8949 = __errno_location ();
      *D.8949 = 34;
      <D.9165>:
      <D.9163>:
      <D.9159>:
      retfree:
      Bfree (bb);
      Bfree (bd);
      Bfree (bs);
      Bfree (bd0);
      Bfree (delta);
      ret:
      if (se != 0B) goto <D.9166>; else goto <D.9167>;
      <D.9166>:
      *se = s;
      <D.9167>:
      if (sign != 0) goto <D.9170>; else goto <D.9171>;
      <D.9170>:
      rv.0 = &rv;
      D.8916 = MEM[(union U *)rv.0].d;
      iftmp.17 = -D.8916;
      goto <D.9172>;
      <D.9171>:
      rv.0 = &rv;
      iftmp.17 = MEM[(union U *)rv.0].d;
      <D.9172>:
      D.9168 = iftmp.17;
      return D.9168;
    }
  finally
    {
      bbe = {CLOBBER};
      bbbits = {CLOBBER};
      aadj1 = {CLOBBER};
      rv = {CLOBBER};
      rv0 = {CLOBBER};
    }
}


s2b (const char * s, int nd0, int nd, guint32 y9)
{
  int D.9175;
  const char * s.18;
  char D.9179;
  int D.9180;
  int D.9181;
  const char * s.19;
  char D.9184;
  int D.9185;
  int D.9186;
  struct Bigint * D.9187;
  struct Bigint * b;
  int i;
  int k;
  gint32 x;
  gint32 y;

  D.9175 = nd + 8;
  x = D.9175 / 9;
  k = 0;
  y = 1;
  goto <D.8576>;
  <D.8575>:
  y = y << 1;
  k = k + 1;
  <D.8576>:
  if (x > y) goto <D.8575>; else goto <D.8577>;
  <D.8577>:
  b = Balloc (k);
  b->x[0] = y9;
  b->wds = 1;
  i = 9;
  if (nd0 > 9) goto <D.9176>; else goto <D.9177>;
  <D.9176>:
  s = s + 9;
  <D.8578>:
  s.18 = s;
  s = s.18 + 1;
  D.9179 = *s.18;
  D.9180 = (int) D.9179;
  D.9181 = D.9180 + -48;
  b = multadd (b, 10, D.9181);
  i = i + 1;
  if (i < nd0) goto <D.8578>; else goto <D.8579>;
  <D.8579>:
  s = s + 1;
  goto <D.9182>;
  <D.9177>:
  s = s + 10;
  <D.9182>:
  goto <D.8581>;
  <D.8580>:
  s.19 = s;
  s = s.19 + 1;
  D.9184 = *s.19;
  D.9185 = (int) D.9184;
  D.9186 = D.9185 + -48;
  b = multadd (b, 10, D.9186);
  i = i + 1;
  <D.8581>:
  if (i < nd) goto <D.8580>; else goto <D.8582>;
  <D.8582>:
  D.9187 = b;
  return D.9187;
}


multadd (struct Bigint * b, int m, int a)
{
  unsigned int D.9189;
  long long unsigned int D.9190;
  long long unsigned int D.9191;
  long long unsigned int D.9192;
  guint32 * x.20;
  unsigned int D.9194;
  int D.9197;
  int D.9200;
  int D.9201;
  int * D.9202;
  int * D.9203;
  int D.9204;
  unsigned int D.9205;
  unsigned int D.9206;
  unsigned int D.9207;
  int wds.21;
  unsigned int D.9209;
  struct Bigint * D.9210;
  int i;
  int wds;
  guint32 * x;
  long long unsigned int carry;
  long long unsigned int y;
  struct Bigint * b1;

  wds = b->wds;
  x = &b->x;
  i = 0;
  carry = (long long unsigned int) a;
  <D.8562>:
  D.9189 = *x;
  D.9190 = (long long unsigned int) D.9189;
  D.9191 = (long long unsigned int) m;
  D.9192 = D.9190 * D.9191;
  y = D.9192 + carry;
  carry = y >> 32;
  x.20 = x;
  x = x.20 + 4;
  D.9194 = (unsigned int) y;
  *x.20 = D.9194;
  i = i + 1;
  if (i < wds) goto <D.8562>; else goto <D.8563>;
  <D.8563>:
  if (carry != 0) goto <D.9195>; else goto <D.9196>;
  <D.9195>:
  D.9197 = b->maxwds;
  if (D.9197 <= wds) goto <D.9198>; else goto <D.9199>;
  <D.9198>:
  D.9200 = b->k;
  D.9201 = D.9200 + 1;
  b1 = Balloc (D.9201);
  D.9202 = &b1->sign;
  D.9203 = &b->sign;
  D.9204 = b->wds;
  D.9205 = (unsigned int) D.9204;
  D.9206 = D.9205 + 2;
  D.9207 = D.9206 * 4;
  memcpy (D.9202, D.9203, D.9207);
  Bfree (b);
  b = b1;
  <D.9199>:
  wds.21 = wds;
  wds = wds.21 + 1;
  D.9209 = (unsigned int) carry;
  b->x[wds.21] = D.9209;
  b->wds = wds;
  <D.9196>:
  D.9210 = b;
  return D.9210;
}


Balloc (int k)
{
  struct Bigint * D.9214;
  unsigned int x.22;
  unsigned int D.9217;
  unsigned int D.9218;
  int D.9219;
  struct Bigint * D.9220;
  int x;
  struct Bigint * rv;

  rv = freelist[k];
  if (rv != 0B) goto <D.9212>; else goto <D.9213>;
  <D.9212>:
  D.9214 = rv->next;
  freelist[k] = D.9214;
  goto <D.9215>;
  <D.9213>:
  x = 1 << k;
  x.22 = (unsigned int) x;
  D.9217 = x.22 + 5;
  D.9218 = D.9217 * 4;
  rv = malloc (D.9218);
  rv->k = k;
  rv->maxwds = x;
  <D.9215>:
  rv->wds = 0;
  D.9219 = rv->wds;
  rv->sign = D.9219;
  D.9220 = rv;
  return D.9220;
}


memcpy (void * restrict __dest, const void * restrict __src, size_t __len)
{
  void * D.9222;
  unsigned int D.9223;

  D.9223 = __builtin_object_size (__dest, 0);
  D.9222 = __builtin___memcpy_chk (__dest, __src, __len, D.9223);
  return D.9222;
}


d2b (double d, int * e, int * bits)
{
  double * d.23;
  unsigned int D.9226;
  unsigned int z.24;
  unsigned int D.9228;
  unsigned int D.9229;
  unsigned int z.25;
  unsigned int z.26;
  unsigned int y.27;
  unsigned int y.28;
  int D.9240;
  unsigned int D.9241;
  unsigned int D.9242;
  unsigned int z.29;
  int iftmp.30;
  guint32 * D.9246;
  unsigned int D.9247;
  int D.9254;
  int D.9255;
  int D.9256;
  int D.9258;
  int D.9259;
  int D.9260;
  sizetype i.31;
  sizetype D.9262;
  sizetype D.9263;
  guint32 * D.9264;
  unsigned int D.9265;
  int D.9266;
  int D.9267;
  struct Bigint * D.9268;
  struct Bigint * b;
  int de;
  int k;
  guint32 * x;
  guint32 y;
  guint32 z;
  int i;

  try
    {
      b = Balloc (1);
      x = &b->x;
      d.23 = &d;
      D.9226 = MEM[(union U *)d.23].L[1];
      z.24 = D.9226 & 1048575;
      z = z.24;
      d.23 = &d;
      d.23 = &d;
      D.9226 = MEM[(union U *)d.23].L[1];
      D.9228 = D.9226 & 2147483647;
      MEM[(union U *)d.23].L[1] = D.9228;
      d.23 = &d;
      D.9226 = MEM[(union U *)d.23].L[1];
      D.9229 = D.9226 >> 20;
      de = (int) D.9229;
      if (de != 0) goto <D.9230>; else goto <D.9231>;
      <D.9230>:
      z.25 = z;
      z.26 = z.25 | 1048576;
      z = z.26;
      <D.9231>:
      d.23 = &d;
      y.27 = MEM[(union U *)d.23].L[0];
      y = y.27;
      y.28 = y;
      if (y.28 != 0) goto <D.9236>; else goto <D.9237>;
      <D.9236>:
      k = lo0bits (&y);
      if (k != 0) goto <D.9238>; else goto <D.9239>;
      <D.9238>:
      z.25 = z;
      D.9240 = 32 - k;
      D.9241 = z.25 << D.9240;
      y.28 = y;
      D.9242 = D.9241 | y.28;
      *x = D.9242;
      z.25 = z;
      z.29 = z.25 >> k;
      z = z.29;
      goto <D.9244>;
      <D.9239>:
      y.28 = y;
      *x = y.28;
      <D.9244>:
      D.9246 = x + 4;
      z.25 = z;
      *D.9246 = z.25;
      D.9247 = *D.9246;
      if (D.9247 != 0) goto <D.9248>; else goto <D.9249>;
      <D.9248>:
      iftmp.30 = 2;
      goto <D.9250>;
      <D.9249>:
      iftmp.30 = 1;
      <D.9250>:
      b->wds = iftmp.30;
      i = b->wds;
      goto <D.9251>;
      <D.9237>:
      k = lo0bits (&z);
      z.25 = z;
      *x = z.25;
      b->wds = 1;
      i = b->wds;
      k = k + 32;
      <D.9251>:
      if (de != 0) goto <D.9252>; else goto <D.9253>;
      <D.9252>:
      D.9254 = de + -1075;
      D.9255 = D.9254 + k;
      *e = D.9255;
      D.9256 = 53 - k;
      *bits = D.9256;
      goto <D.9257>;
      <D.9253>:
      D.9258 = de + -1074;
      D.9259 = D.9258 + k;
      *e = D.9259;
      D.9260 = i * 32;
      i.31 = (sizetype) i;
      D.9262 = i.31 + 1073741823;
      D.9263 = D.9262 * 4;
      D.9264 = x + D.9263;
      D.9265 = *D.9264;
      D.9266 = hi0bits (D.9265);
      D.9267 = D.9260 - D.9266;
      *bits = D.9267;
      <D.9257>:
      D.9268 = b;
      return D.9268;
    }
  finally
    {
      y = {CLOBBER};
      z = {CLOBBER};
    }
}


lo0bits (guint32 * y)
{
  unsigned int D.9271;
  unsigned int D.9274;
  int D.9277;
  unsigned int D.9278;
  unsigned int D.9281;
  unsigned int D.9282;
  unsigned int D.9283;
  unsigned int D.9286;
  unsigned int D.9289;
  unsigned int D.9292;
  register int k;
  register guint32 x;

  x = *y;
  D.9271 = x & 7;
  if (D.9271 != 0) goto <D.9272>; else goto <D.9273>;
  <D.9272>:
  D.9274 = x & 1;
  if (D.9274 != 0) goto <D.9275>; else goto <D.9276>;
  <D.9275>:
  D.9277 = 0;
  return D.9277;
  <D.9276>:
  D.9278 = x & 2;
  if (D.9278 != 0) goto <D.9279>; else goto <D.9280>;
  <D.9279>:
  D.9281 = x >> 1;
  *y = D.9281;
  D.9277 = 1;
  return D.9277;
  <D.9280>:
  D.9282 = x >> 2;
  *y = D.9282;
  D.9277 = 2;
  return D.9277;
  <D.9273>:
  k = 0;
  D.9283 = x & 65535;
  if (D.9283 == 0) goto <D.9284>; else goto <D.9285>;
  <D.9284>:
  k = 16;
  x = x >> 16;
  <D.9285>:
  D.9286 = x & 255;
  if (D.9286 == 0) goto <D.9287>; else goto <D.9288>;
  <D.9287>:
  k = k + 8;
  x = x >> 8;
  <D.9288>:
  D.9289 = x & 15;
  if (D.9289 == 0) goto <D.9290>; else goto <D.9291>;
  <D.9290>:
  k = k + 4;
  x = x >> 4;
  <D.9291>:
  D.9292 = x & 3;
  if (D.9292 == 0) goto <D.9293>; else goto <D.9294>;
  <D.9293>:
  k = k + 2;
  x = x >> 2;
  <D.9294>:
  D.9274 = x & 1;
  if (D.9274 == 0) goto <D.9295>; else goto <D.9296>;
  <D.9295>:
  k = k + 1;
  x = x >> 1;
  if (x == 0) goto <D.9297>; else goto <D.9298>;
  <D.9297>:
  D.9277 = 32;
  return D.9277;
  <D.9298>:
  <D.9296>:
  *y = x;
  D.9277 = k;
  return D.9277;
}


hi0bits (guint32 x)
{
  unsigned int D.9300;
  unsigned int D.9303;
  unsigned int D.9306;
  unsigned int D.9309;
  signed int x.32;
  unsigned int D.9315;
  int D.9318;
  register int k;

  k = 0;
  D.9300 = x & 4294901760;
  if (D.9300 == 0) goto <D.9301>; else goto <D.9302>;
  <D.9301>:
  k = 16;
  x = x << 16;
  <D.9302>:
  D.9303 = x & 4278190080;
  if (D.9303 == 0) goto <D.9304>; else goto <D.9305>;
  <D.9304>:
  k = k + 8;
  x = x << 8;
  <D.9305>:
  D.9306 = x & 4026531840;
  if (D.9306 == 0) goto <D.9307>; else goto <D.9308>;
  <D.9307>:
  k = k + 4;
  x = x << 4;
  <D.9308>:
  D.9309 = x & 3221225472;
  if (D.9309 == 0) goto <D.9310>; else goto <D.9311>;
  <D.9310>:
  k = k + 2;
  x = x << 2;
  <D.9311>:
  x.32 = (signed int) x;
  if (x.32 >= 0) goto <D.9313>; else goto <D.9314>;
  <D.9313>:
  k = k + 1;
  D.9315 = x & 1073741824;
  if (D.9315 == 0) goto <D.9316>; else goto <D.9317>;
  <D.9316>:
  D.9318 = 32;
  return D.9318;
  <D.9317>:
  <D.9314>:
  D.9318 = k;
  return D.9318;
}


i2b (int i)
{
  unsigned int i.33;
  struct Bigint * D.9321;
  struct Bigint * b;

  b = Balloc (1);
  i.33 = (unsigned int) i;
  b->x[0] = i.33;
  b->wds = 1;
  D.9321 = b;
  return D.9321;
}


mult (struct Bigint * a, struct Bigint * b)
{
  int D.9323;
  int D.9324;
  int D.9327;
  unsigned int wc.34;
  unsigned int D.9331;
  unsigned int wa.35;
  unsigned int D.9333;
  unsigned int wb.36;
  unsigned int D.9335;
  guint32 * xb.37;
  guint32 * x.38;
  unsigned int D.9340;
  long long unsigned int D.9341;
  long long unsigned int D.9342;
  long long unsigned int D.9343;
  unsigned int D.9344;
  long long unsigned int D.9345;
  long long unsigned int D.9346;
  guint32 * xc.39;
  unsigned int D.9348;
  unsigned int D.9349;
  struct Bigint * D.9351;
  struct Bigint * c;
  int k;
  int wa;
  int wb;
  int wc;
  guint32 * x;
  guint32 * xa;
  guint32 * xae;
  guint32 * xb;
  guint32 * xbe;
  guint32 * xc;
  guint32 * xc0;
  guint32 y;
  long long unsigned int carry;
  long long unsigned int z;

  D.9323 = a->wds;
  D.9324 = b->wds;
  if (D.9323 < D.9324) goto <D.9325>; else goto <D.9326>;
  <D.9325>:
  c = a;
  a = b;
  b = c;
  <D.9326>:
  k = a->k;
  wa = a->wds;
  wb = b->wds;
  wc = wa + wb;
  D.9327 = a->maxwds;
  if (D.9327 < wc) goto <D.9328>; else goto <D.9329>;
  <D.9328>:
  k = k + 1;
  <D.9329>:
  c = Balloc (k);
  x = &c->x;
  wc.34 = (unsigned int) wc;
  D.9331 = wc.34 * 4;
  xa = x + D.9331;
  goto <D.8616>;
  <D.8615>:
  *x = 0;
  x = x + 4;
  <D.8616>:
  if (x < xa) goto <D.8615>; else goto <D.8617>;
  <D.8617>:
  xa = &a->x;
  wa.35 = (unsigned int) wa;
  D.9333 = wa.35 * 4;
  xae = xa + D.9333;
  xb = &b->x;
  wb.36 = (unsigned int) wb;
  D.9335 = wb.36 * 4;
  xbe = xb + D.9335;
  xc0 = &c->x;
  goto <D.8621>;
  <D.8620>:
  xb.37 = xb;
  xb = xb.37 + 4;
  y = *xb.37;
  if (y != 0) goto <D.9337>; else goto <D.9338>;
  <D.9337>:
  x = xa;
  xc = xc0;
  carry = 0;
  <D.8618>:
  x.38 = x;
  x = x.38 + 4;
  D.9340 = *x.38;
  D.9341 = (long long unsigned int) D.9340;
  D.9342 = (long long unsigned int) y;
  D.9343 = D.9341 * D.9342;
  D.9344 = *xc;
  D.9345 = (long long unsigned int) D.9344;
  D.9346 = D.9343 + D.9345;
  z = D.9346 + carry;
  carry = z >> 32;
  xc.39 = xc;
  xc = xc.39 + 4;
  D.9348 = (unsigned int) z;
  *xc.39 = D.9348;
  if (x < xae) goto <D.8618>; else goto <D.8619>;
  <D.8619>:
  D.9349 = (unsigned int) carry;
  *xc = D.9349;
  <D.9338>:
  xc0 = xc0 + 4;
  <D.8621>:
  if (xb < xbe) goto <D.8620>; else goto <D.8622>;
  <D.8622>:
  xc0 = &c->x;
  wc.34 = (unsigned int) wc;
  D.9331 = wc.34 * 4;
  xc = xc0 + D.9331;
  goto <D.8624>;
  <D.8623>:
  wc = wc + -1;
  <D.8624>:
  if (wc > 0) goto <D.9350>; else goto <D.8625>;
  <D.9350>:
  xc = xc + 4294967292;
  D.9344 = *xc;
  if (D.9344 == 0) goto <D.8623>; else goto <D.8625>;
  <D.8625>:
  c->wds = wc;
  D.9351 = c;
  return D.9351;
}


pow5mult (struct Bigint * b, int k)
{
  int D.9355;
  int D.9356;
  struct Bigint * D.9359;
  struct Bigint * p5s.40;
  int D.9365;
  struct Bigint * D.9373;
  struct Bigint * b1;
  struct Bigint * p5;
  struct Bigint * p51;
  int i;
  static int p05[3] = {5, 25, 125};

  i = k & 3;
  if (i != 0) goto <D.9353>; else goto <D.9354>;
  <D.9353>:
  D.9355 = i + -1;
  D.9356 = p05[D.9355];
  b = multadd (b, D.9356, 0);
  <D.9354>:
  k = k >> 2;
  if (k == 0) goto <D.9357>; else goto <D.9358>;
  <D.9357>:
  D.9359 = b;
  return D.9359;
  <D.9358>:
  p5 = p5s;
  if (p5 == 0B) goto <D.9360>; else goto <D.9361>;
  <D.9360>:
  p5 = p5s;
  if (p5 == 0B) goto <D.9362>; else goto <D.9363>;
  <D.9362>:
  p5s.40 = i2b (625);
  p5s = p5s.40;
  p5 = p5s;
  p5->next = 0B;
  <D.9363>:
  <D.9361>:
  <D.8637>:
  D.9365 = k & 1;
  if (D.9365 != 0) goto <D.9366>; else goto <D.9367>;
  <D.9366>:
  b1 = mult (b, p5);
  Bfree (b);
  b = b1;
  <D.9367>:
  k = k >> 1;
  if (k == 0) goto <D.8636>; else goto <D.9368>;
  <D.9368>:
  p51 = p5->next;
  if (p51 == 0B) goto <D.9369>; else goto <D.9370>;
  <D.9369>:
  p51 = p5->next;
  if (p51 == 0B) goto <D.9371>; else goto <D.9372>;
  <D.9371>:
  D.9373 = mult (p5, p5);
  p5->next = D.9373;
  p51 = p5->next;
  p51->next = 0B;
  <D.9372>:
  <D.9370>:
  p5 = p51;
  goto <D.8637>;
  <D.8636>:
  D.9359 = b;
  return D.9359;
}


diff (struct Bigint * a, struct Bigint * b)
{
  struct Bigint * D.9377;
  int D.9381;
  unsigned int wa.41;
  unsigned int D.9383;
  unsigned int wb.42;
  unsigned int D.9385;
  guint32 * xa.43;
  unsigned int D.9387;
  long long unsigned int D.9388;
  guint32 * xb.44;
  unsigned int D.9390;
  long long unsigned int D.9391;
  long long unsigned int D.9392;
  long long unsigned int D.9393;
  guint32 * xc.45;
  unsigned int D.9395;
  guint32 * xa.46;
  unsigned int D.9397;
  long long unsigned int D.9398;
  guint32 * xc.47;
  unsigned int D.9400;
  struct Bigint * c;
  int i;
  int wa;
  int wb;
  guint32 * xa;
  guint32 * xae;
  guint32 * xb;
  guint32 * xbe;
  guint32 * xc;
  long long unsigned int borrow;
  long long unsigned int y;

  i = cmp (a, b);
  if (i == 0) goto <D.9375>; else goto <D.9376>;
  <D.9375>:
  c = Balloc (0);
  c->wds = 1;
  c->x[0] = 0;
  D.9377 = c;
  return D.9377;
  <D.9376>:
  if (i < 0) goto <D.9378>; else goto <D.9379>;
  <D.9378>:
  c = a;
  a = b;
  b = c;
  i = 1;
  goto <D.9380>;
  <D.9379>:
  i = 0;
  <D.9380>:
  D.9381 = a->k;
  c = Balloc (D.9381);
  c->sign = i;
  wa = a->wds;
  xa = &a->x;
  wa.41 = (unsigned int) wa;
  D.9383 = wa.41 * 4;
  xae = xa + D.9383;
  wb = b->wds;
  xb = &b->x;
  wb.42 = (unsigned int) wb;
  D.9385 = wb.42 * 4;
  xbe = xb + D.9385;
  xc = &c->x;
  borrow = 0;
  <D.8688>:
  xa.43 = xa;
  xa = xa.43 + 4;
  D.9387 = *xa.43;
  D.9388 = (long long unsigned int) D.9387;
  xb.44 = xb;
  xb = xb.44 + 4;
  D.9390 = *xb.44;
  D.9391 = (long long unsigned int) D.9390;
  D.9392 = D.9388 - D.9391;
  y = D.9392 - borrow;
  D.9393 = y >> 32;
  borrow = D.9393 & 1;
  xc.45 = xc;
  xc = xc.45 + 4;
  D.9395 = (unsigned int) y;
  *xc.45 = D.9395;
  if (xb < xbe) goto <D.8688>; else goto <D.8689>;
  <D.8689>:
  goto <D.8691>;
  <D.8690>:
  xa.46 = xa;
  xa = xa.46 + 4;
  D.9397 = *xa.46;
  D.9398 = (long long unsigned int) D.9397;
  y = D.9398 - borrow;
  D.9393 = y >> 32;
  borrow = D.9393 & 1;
  xc.47 = xc;
  xc = xc.47 + 4;
  D.9395 = (unsigned int) y;
  *xc.47 = D.9395;
  <D.8691>:
  if (xa < xae) goto <D.8690>; else goto <D.8692>;
  <D.8692>:
  goto <D.8694>;
  <D.8693>:
  wa = wa + -1;
  <D.8694>:
  xc = xc + 4294967292;
  D.9400 = *xc;
  if (D.9400 == 0) goto <D.8693>; else goto <D.8695>;
  <D.8695>:
  c->wds = wa;
  D.9377 = c;
  return D.9377;
}


lshift (struct Bigint * b, int k)
{
  int D.9402;
  int D.9403;
  guint32 * x1.48;
  unsigned int D.9405;
  unsigned int D.9406;
  guint32 * x1.49;
  unsigned int D.9410;
  unsigned int D.9411;
  unsigned int D.9412;
  guint32 * x.50;
  unsigned int D.9414;
  unsigned int D.9415;
  guint32 * x1.51;
  guint32 * x.52;
  unsigned int D.9421;
  int D.9422;
  struct Bigint * D.9423;
  int i;
  int k1;
  int n;
  int n1;
  struct Bigint * b1;
  guint32 * x;
  guint32 * x1;
  guint32 * xe;
  guint32 z;

  n = k >> 5;
  k1 = b->k;
  D.9402 = b->wds;
  D.9403 = D.9402 + n;
  n1 = D.9403 + 1;
  i = b->maxwds;
  goto <D.8652>;
  <D.8651>:
  k1 = k1 + 1;
  i = i << 1;
  <D.8652>:
  if (n1 > i) goto <D.8651>; else goto <D.8653>;
  <D.8653>:
  b1 = Balloc (k1);
  x1 = &b1->x;
  i = 0;
  goto <D.8655>;
  <D.8654>:
  x1.48 = x1;
  x1 = x1.48 + 4;
  *x1.48 = 0;
  i = i + 1;
  <D.8655>:
  if (i < n) goto <D.8654>; else goto <D.8656>;
  <D.8656>:
  x = &b->x;
  D.9402 = b->wds;
  D.9405 = (unsigned int) D.9402;
  D.9406 = D.9405 * 4;
  xe = x + D.9406;
  k = k & 31;
  if (k != 0) goto <D.9407>; else goto <D.9408>;
  <D.9407>:
  k1 = 32 - k;
  z = 0;
  <D.8657>:
  x1.49 = x1;
  x1 = x1.49 + 4;
  D.9410 = *x;
  D.9411 = D.9410 << k;
  D.9412 = D.9411 | z;
  *x1.49 = D.9412;
  x.50 = x;
  x = x.50 + 4;
  D.9414 = *x.50;
  z = D.9414 >> k1;
  if (x < xe) goto <D.8657>; else goto <D.8658>;
  <D.8658>:
  *x1 = z;
  D.9415 = *x1;
  if (D.9415 != 0) goto <D.9416>; else goto <D.9417>;
  <D.9416>:
  n1 = n1 + 1;
  <D.9417>:
  goto <D.9418>;
  <D.9408>:
  <D.8659>:
  x1.51 = x1;
  x1 = x1.51 + 4;
  x.52 = x;
  x = x.52 + 4;
  D.9421 = *x.52;
  *x1.51 = D.9421;
  if (x < xe) goto <D.8659>; else goto <D.8660>;
  <D.8660>:
  <D.9418>:
  D.9422 = n1 + -1;
  b1->wds = D.9422;
  Bfree (b);
  D.9423 = b1;
  return D.9423;
}


cmp (struct Bigint * a, struct Bigint * b)
{
  int D.9427;
  unsigned int j.53;
  unsigned int D.9429;
  unsigned int D.9430;
  unsigned int D.9431;
  int iftmp.54;
  guint32 * xa;
  guint32 * xa0;
  guint32 * xb;
  guint32 * xb0;
  int i;
  int j;

  i = a->wds;
  j = b->wds;
  i = i - j;
  if (i != 0) goto <D.9425>; else goto <D.9426>;
  <D.9425>:
  D.9427 = i;
  return D.9427;
  <D.9426>:
  xa0 = &a->x;
  j.53 = (unsigned int) j;
  D.9429 = j.53 * 4;
  xa = xa0 + D.9429;
  xb0 = &b->x;
  j.53 = (unsigned int) j;
  D.9429 = j.53 * 4;
  xb = xb0 + D.9429;
  <D.8672>:
  xa = xa + 4294967292;
  D.9430 = *xa;
  xb = xb + 4294967292;
  D.9431 = *xb;
  if (D.9430 != D.9431) goto <D.9432>; else goto <D.9433>;
  <D.9432>:
  D.9430 = *xa;
  D.9431 = *xb;
  if (D.9430 < D.9431) goto <D.9435>; else goto <D.9436>;
  <D.9435>:
  iftmp.54 = -1;
  goto <D.9437>;
  <D.9436>:
  iftmp.54 = 1;
  <D.9437>:
  D.9427 = iftmp.54;
  return D.9427;
  <D.9433>:
  if (xa <= xa0) goto <D.8671>; else goto <D.9438>;
  <D.9438>:
  goto <D.8672>;
  <D.8671>:
  D.9427 = 0;
  return D.9427;
}


ratio (struct Bigint * a, struct Bigint * b)
{
  double * da.55;
  double D.9441;
  double * db.56;
  double D.9443;
  int ka.57;
  int kb.58;
  int D.9446;
  int D.9447;
  int D.9448;
  int D.9449;
  int D.9450;
  unsigned int D.9453;
  int D.9454;
  unsigned int D.9455;
  unsigned int D.9456;
  unsigned int D.9458;
  unsigned int D.9459;
  double D.9460;
  double D.9461;
  double D.9462;
  double da;
  double db;
  int k;
  int ka;
  int kb;

  try
    {
      da.55 = &da;
      D.9441 = b2d (a, &ka);
      MEM[(union U *)da.55].d = D.9441;
      db.56 = &db;
      D.9443 = b2d (b, &kb);
      MEM[(union U *)db.56].d = D.9443;
      ka.57 = ka;
      kb.58 = kb;
      D.9446 = ka.57 - kb.58;
      D.9447 = a->wds;
      D.9448 = b->wds;
      D.9449 = D.9447 - D.9448;
      D.9450 = D.9449 * 32;
      k = D.9446 + D.9450;
      if (k > 0) goto <D.9451>; else goto <D.9452>;
      <D.9451>:
      da.55 = &da;
      da.55 = &da;
      D.9453 = MEM[(union U *)da.55].L[1];
      D.9454 = k * 1048576;
      D.9455 = (unsigned int) D.9454;
      D.9456 = D.9453 + D.9455;
      MEM[(union U *)da.55].L[1] = D.9456;
      goto <D.9457>;
      <D.9452>:
      k = -k;
      db.56 = &db;
      db.56 = &db;
      D.9458 = MEM[(union U *)db.56].L[1];
      D.9454 = k * 1048576;
      D.9455 = (unsigned int) D.9454;
      D.9459 = D.9458 + D.9455;
      MEM[(union U *)db.56].L[1] = D.9459;
      <D.9457>:
      da.55 = &da;
      D.9461 = MEM[(union U *)da.55].d;
      db.56 = &db;
      D.9462 = MEM[(union U *)db.56].d;
      D.9460 = D.9461 / D.9462;
      return D.9460;
    }
  finally
    {
      da = {CLOBBER};
      db = {CLOBBER};
      ka = {CLOBBER};
      kb = {CLOBBER};
    }
}


b2d (struct Bigint * a, int * e)
{
  int D.9465;
  unsigned int D.9466;
  unsigned int D.9467;
  int D.9468;
  double * d.59;
  int D.9472;
  unsigned int D.9473;
  unsigned int D.9474;
  guint32 iftmp.60;
  int D.9479;
  unsigned int D.9480;
  unsigned int D.9481;
  unsigned int D.9482;
  guint32 iftmp.61;
  unsigned int D.9489;
  unsigned int D.9490;
  unsigned int D.9491;
  unsigned int D.9492;
  guint32 iftmp.62;
  unsigned int D.9497;
  unsigned int D.9498;
  unsigned int D.9499;
  unsigned int D.9501;
  double D.9502;
  guint32 * xa;
  guint32 * xa0;
  guint32 w;
  guint32 y;
  guint32 z;
  int k;
  double d;
  void ret_d = <<< error >>>;

  try
    {
      xa0 = &a->x;
      D.9465 = a->wds;
      D.9466 = (unsigned int) D.9465;
      D.9467 = D.9466 * 4;
      xa = xa0 + D.9467;
      xa = xa + 4294967292;
      y = *xa;
      k = hi0bits (y);
      D.9468 = 32 - k;
      *e = D.9468;
      if (k <= 10) goto <D.9469>; else goto <D.9470>;
      <D.9469>:
      d.59 = &d;
      D.9472 = 11 - k;
      D.9473 = y >> D.9472;
      D.9474 = D.9473 | 1072693248;
      MEM[(union U *)d.59].L[1] = D.9474;
      if (xa > xa0) goto <D.9476>; else goto <D.9477>;
      <D.9476>:
      xa = xa + 4294967292;
      iftmp.60 = *xa;
      goto <D.9478>;
      <D.9477>:
      iftmp.60 = 0;
      <D.9478>:
      w = iftmp.60;
      d.59 = &d;
      D.9479 = k + 21;
      D.9480 = y << D.9479;
      D.9472 = 11 - k;
      D.9481 = w >> D.9472;
      D.9482 = D.9480 | D.9481;
      MEM[(union U *)d.59].L[0] = D.9482;
      goto ret_d;
      <D.9470>:
      if (xa > xa0) goto <D.9484>; else goto <D.9485>;
      <D.9484>:
      xa = xa + 4294967292;
      iftmp.61 = *xa;
      goto <D.9486>;
      <D.9485>:
      iftmp.61 = 0;
      <D.9486>:
      z = iftmp.61;
      k = k + -11;
      if (k != 0) goto <D.9487>; else goto <D.9488>;
      <D.9487>:
      d.59 = &d;
      D.9489 = y << k;
      D.9468 = 32 - k;
      D.9490 = z >> D.9468;
      D.9491 = D.9489 | D.9490;
      D.9492 = D.9491 | 1072693248;
      MEM[(union U *)d.59].L[1] = D.9492;
      if (xa > xa0) goto <D.9494>; else goto <D.9495>;
      <D.9494>:
      xa = xa + 4294967292;
      iftmp.62 = *xa;
      goto <D.9496>;
      <D.9495>:
      iftmp.62 = 0;
      <D.9496>:
      y = iftmp.62;
      d.59 = &d;
      D.9497 = z << k;
      D.9468 = 32 - k;
      D.9498 = y >> D.9468;
      D.9499 = D.9497 | D.9498;
      MEM[(union U *)d.59].L[0] = D.9499;
      goto <D.9500>;
      <D.9488>:
      d.59 = &d;
      D.9501 = y | 1072693248;
      MEM[(union U *)d.59].L[1] = D.9501;
      d.59 = &d;
      MEM[(union U *)d.59].L[0] = z;
      <D.9500>:
      ret_d:
      d.59 = &d;
      D.9502 = MEM[(union U *)d.59].d;
      return D.9502;
    }
  finally
    {
      d = {CLOBBER};
    }
}


ulp (double x)
{
  double * x.63;
  unsigned int D.9506;
  unsigned int D.9507;
  unsigned int D.9508;
  double * a.64;
  unsigned int L.65;
  double D.9511;
  register gint32 L;
  double a;

  try
    {
      x.63 = &x;
      D.9506 = MEM[(union U *)x.63].L[1];
      D.9507 = D.9506 & 2146435072;
      D.9508 = D.9507 + 4240441344;
      L = (gint32) D.9508;
      a.64 = &a;
      L.65 = (unsigned int) L;
      MEM[(union U *)a.64].L[1] = L.65;
      a.64 = &a;
      MEM[(union U *)a.64].L[0] = 0;
      a.64 = &a;
      D.9511 = MEM[(union U *)a.64].d;
      return D.9511;
    }
  finally
    {
      a = {CLOBBER};
    }
}


Bfree (struct Bigint * v)
{
  free (v);
}


