Mono_Posix_Syscall_getpwnam (const char * name, struct Mono_Posix_Syscall__Passwd * pwbuf)
{
  int * D.6641;
  int D.6642;
  int D.6645;
  struct passwd * pw;

  if (pwbuf == 0B) goto <D.6639>; else goto <D.6640>;
  <D.6639>:
  D.6641 = __errno_location ();
  *D.6641 = 14;
  D.6642 = -1;
  return D.6642;
  <D.6640>:
  D.6641 = __errno_location ();
  *D.6641 = 0;
  pw = getpwnam (name);
  if (pw == 0B) goto <D.6643>; else goto <D.6644>;
  <D.6643>:
  D.6642 = -1;
  return D.6642;
  <D.6644>:
  D.6645 = copy_passwd (pwbuf, pw);
  if (D.6645 == -1) goto <D.6646>; else goto <D.6647>;
  <D.6646>:
  D.6641 = __errno_location ();
  *D.6641 = 12;
  D.6642 = -1;
  return D.6642;
  <D.6647>:
  D.6642 = 0;
  return D.6642;
}


copy_passwd (struct Mono_Posix_Syscall__Passwd * to, struct passwd * from)
{
  unsigned int D.6649;
  unsigned int D.6650;
  int D.6653;
  char * buf;

  buf = _mph_copy_structure_strings (to, &mph_passwd_offsets, from, &passwd_offsets, 5);
  D.6649 = from->pw_uid;
  to->pw_uid = D.6649;
  D.6650 = from->pw_gid;
  to->pw_gid = D.6650;
  to->_pw_buf_ = buf;
  if (buf == 0B) goto <D.6651>; else goto <D.6652>;
  <D.6651>:
  D.6653 = -1;
  return D.6653;
  <D.6652>:
  D.6653 = 0;
  return D.6653;
}


Mono_Posix_Syscall_getpwuid (mph_uid_t uid, struct Mono_Posix_Syscall__Passwd * pwbuf)
{
  int * D.6657;
  int D.6658;
  int D.6661;
  struct passwd * pw;

  if (pwbuf == 0B) goto <D.6655>; else goto <D.6656>;
  <D.6655>:
  D.6657 = __errno_location ();
  *D.6657 = 14;
  D.6658 = -1;
  return D.6658;
  <D.6656>:
  D.6657 = __errno_location ();
  *D.6657 = 0;
  pw = getpwuid (uid);
  if (pw == 0B) goto <D.6659>; else goto <D.6660>;
  <D.6659>:
  D.6658 = -1;
  return D.6658;
  <D.6660>:
  D.6661 = copy_passwd (pwbuf, pw);
  if (D.6661 == -1) goto <D.6662>; else goto <D.6663>;
  <D.6662>:
  D.6657 = __errno_location ();
  *D.6657 = 12;
  D.6658 = -1;
  return D.6658;
  <D.6663>:
  D.6658 = 0;
  return D.6658;
}


Mono_Posix_Syscall_getpwnam_r (const char * name, struct Mono_Posix_Syscall__Passwd * pwbuf, void * * pwbufp)
{
  int * D.6667;
  int D.6668;
  int D.6672;
  void * D.6675;
  int D.6680;
  char * buf;
  char * buf2;
  size_t buflen;
  int r;
  struct passwd _pwbuf;

  try
    {
      if (pwbuf == 0B) goto <D.6665>; else goto <D.6666>;
      <D.6665>:
      D.6667 = __errno_location ();
      *D.6667 = 14;
      D.6668 = -1;
      return D.6668;
      <D.6666>:
      buf2 = 0B;
      buf = buf2;
      buflen = 2;
      <D.6606>:
      buflen = buflen * 2;
      buf2 = realloc (buf, buflen);
      if (buf2 == 0B) goto <D.6669>; else goto <D.6670>;
      <D.6669>:
      free (buf);
      D.6667 = __errno_location ();
      *D.6667 = 12;
      D.6668 = -1;
      return D.6668;
      <D.6670>:
      buf = buf2;
      D.6667 = __errno_location ();
      *D.6667 = 0;
      r = getpwnam_r (name, &_pwbuf, buf, buflen, pwbufp);
      if (r != 0) goto <D.6671>; else goto <D.6607>;
      <D.6671>:
      D.6672 = recheck_range (r);
      if (D.6672 != 0) goto <D.6606>; else goto <D.6607>;
      <D.6607>:
      if (r == 0) goto <D.6673>; else goto <D.6674>;
      <D.6673>:
      D.6675 = *pwbufp;
      if (D.6675 == 0B) goto <D.6676>; else goto <D.6677>;
      <D.6676>:
      D.6667 = __errno_location ();
      *D.6667 = 2;
      r = *D.6667;
      <D.6677>:
      <D.6674>:
      if (r == 0) goto <D.6678>; else goto <D.6679>;
      <D.6678>:
      D.6680 = copy_passwd (pwbuf, &_pwbuf);
      if (D.6680 == -1) goto <D.6681>; else goto <D.6682>;
      <D.6681>:
      D.6667 = __errno_location ();
      *D.6667 = 12;
      r = *D.6667;
      <D.6682>:
      <D.6679>:
      free (buf);
      D.6668 = r;
      return D.6668;
    }
  finally
    {
      _pwbuf = {CLOBBER};
    }
}


recheck_range (int ret)
{
  int D.6687;
  int * D.6690;
  int D.6691;
  _Bool D.6692;

  if (ret == 34) goto <D.6685>; else goto <D.6686>;
  <D.6685>:
  D.6687 = 1;
  return D.6687;
  <D.6686>:
  if (ret == -1) goto <D.6688>; else goto <D.6689>;
  <D.6688>:
  D.6690 = __errno_location ();
  D.6691 = *D.6690;
  D.6692 = D.6691 == 34;
  D.6687 = (int) D.6692;
  return D.6687;
  <D.6689>:
  D.6687 = 0;
  return D.6687;
}


Mono_Posix_Syscall_getpwuid_r (mph_uid_t uid, struct Mono_Posix_Syscall__Passwd * pwbuf, void * * pwbufp)
{
  int * D.6696;
  int D.6697;
  int D.6701;
  void * D.6704;
  int D.6709;
  char * buf;
  char * buf2;
  size_t buflen;
  int r;
  struct passwd _pwbuf;

  try
    {
      if (pwbuf == 0B) goto <D.6694>; else goto <D.6695>;
      <D.6694>:
      D.6696 = __errno_location ();
      *D.6696 = 14;
      D.6697 = -1;
      return D.6697;
      <D.6695>:
      buf2 = 0B;
      buf = buf2;
      buflen = 2;
      <D.6618>:
      buflen = buflen * 2;
      buf2 = realloc (buf, buflen);
      if (buf2 == 0B) goto <D.6698>; else goto <D.6699>;
      <D.6698>:
      free (buf);
      D.6696 = __errno_location ();
      *D.6696 = 12;
      D.6697 = -1;
      return D.6697;
      <D.6699>:
      buf = buf2;
      D.6696 = __errno_location ();
      *D.6696 = 0;
      r = getpwuid_r (uid, &_pwbuf, buf, buflen, pwbufp);
      if (r != 0) goto <D.6700>; else goto <D.6619>;
      <D.6700>:
      D.6701 = recheck_range (r);
      if (D.6701 != 0) goto <D.6618>; else goto <D.6619>;
      <D.6619>:
      if (r == 0) goto <D.6702>; else goto <D.6703>;
      <D.6702>:
      D.6704 = *pwbufp;
      if (D.6704 == 0B) goto <D.6705>; else goto <D.6706>;
      <D.6705>:
      D.6696 = __errno_location ();
      *D.6696 = 2;
      r = *D.6696;
      <D.6706>:
      <D.6703>:
      if (r == 0) goto <D.6707>; else goto <D.6708>;
      <D.6707>:
      D.6709 = copy_passwd (pwbuf, &_pwbuf);
      if (D.6709 == -1) goto <D.6710>; else goto <D.6711>;
      <D.6710>:
      D.6696 = __errno_location ();
      *D.6696 = 12;
      r = *D.6696;
      <D.6711>:
      <D.6708>:
      free (buf);
      D.6697 = r;
      return D.6697;
    }
  finally
    {
      _pwbuf = {CLOBBER};
    }
}


Mono_Posix_Syscall_getpwent (struct Mono_Posix_Syscall__Passwd * pwbuf)
{
  int * D.6716;
  int D.6717;
  int D.6720;
  struct passwd * pw;

  if (pwbuf == 0B) goto <D.6714>; else goto <D.6715>;
  <D.6714>:
  D.6716 = __errno_location ();
  *D.6716 = 14;
  D.6717 = -1;
  return D.6717;
  <D.6715>:
  D.6716 = __errno_location ();
  *D.6716 = 0;
  pw = getpwent ();
  if (pw == 0B) goto <D.6718>; else goto <D.6719>;
  <D.6718>:
  D.6717 = -1;
  return D.6717;
  <D.6719>:
  D.6720 = copy_passwd (pwbuf, pw);
  if (D.6720 == -1) goto <D.6721>; else goto <D.6722>;
  <D.6721>:
  D.6716 = __errno_location ();
  *D.6716 = 12;
  D.6717 = -1;
  return D.6717;
  <D.6722>:
  D.6717 = 0;
  return D.6717;
}


Mono_Posix_Syscall_fgetpwent (void * stream, struct Mono_Posix_Syscall__Passwd * pwbuf)
{
  int * D.6726;
  int D.6727;
  int D.6730;
  struct passwd * pw;

  if (pwbuf == 0B) goto <D.6724>; else goto <D.6725>;
  <D.6724>:
  D.6726 = __errno_location ();
  *D.6726 = 14;
  D.6727 = -1;
  return D.6727;
  <D.6725>:
  D.6726 = __errno_location ();
  *D.6726 = 0;
  pw = fgetpwent (stream);
  if (pw == 0B) goto <D.6728>; else goto <D.6729>;
  <D.6728>:
  D.6727 = -1;
  return D.6727;
  <D.6729>:
  D.6730 = copy_passwd (pwbuf, pw);
  if (D.6730 == -1) goto <D.6731>; else goto <D.6732>;
  <D.6731>:
  D.6726 = __errno_location ();
  *D.6726 = 12;
  D.6727 = -1;
  return D.6727;
  <D.6732>:
  D.6727 = 0;
  return D.6727;
}


Mono_Posix_Syscall_setpwent ()
{
  int * D.6734;
  int D.6735;
  _Bool D.6738;
  _Bool D.6739;
  _Bool D.6740;
  _Bool D.6742;
  _Bool D.6743;
  _Bool D.6744;
  int D.6746;

  D.6734 = __errno_location ();
  *D.6734 = 0;
  <D.6632>:
  setpwent ();
  D.6734 = __errno_location ();
  D.6735 = *D.6734;
  if (D.6735 == 4) goto <D.6632>; else goto <D.6633>;
  <D.6633>:
  {
    int v;

    D.6734 = __errno_location ();
    v = *D.6734;
    D.6738 = v == 5;
    D.6739 = v == 24;
    D.6740 = D.6738 | D.6739;
    if (D.6740 != 0) goto <D.6736>; else goto <D.6741>;
    <D.6741>:
    D.6742 = v == 23;
    D.6743 = v == 12;
    D.6744 = D.6742 | D.6743;
    if (D.6744 != 0) goto <D.6736>; else goto <D.6745>;
    <D.6745>:
    if (v == 34) goto <D.6736>; else goto <D.6737>;
    <D.6736>:
    D.6746 = -1;
    return D.6746;
    <D.6737>:
  }
  D.6746 = 0;
  return D.6746;
}


Mono_Posix_Syscall_endpwent ()
{
  int * D.6748;
  int D.6749;
  int D.6752;

  D.6748 = __errno_location ();
  *D.6748 = 0;
  endpwent ();
  D.6748 = __errno_location ();
  D.6749 = *D.6748;
  if (D.6749 == 5) goto <D.6750>; else goto <D.6751>;
  <D.6750>:
  D.6752 = -1;
  return D.6752;
  <D.6751>:
  D.6752 = 0;
  return D.6752;
}


