_wapi_error_cleanup ()
{
  unsigned int error_key.0;
  _Bool D.8602;
  long int D.8603;
  long int D.8604;
  int ret;

  error_key.0 = error_key;
  ret = pthread_key_delete (error_key.0);
  D.8602 = ret != 0;
  D.8603 = (long int) D.8602;
  D.8604 = __builtin_expect (D.8603, 0);
  if (D.8604 != 0) goto <D.8605>; else goto <D.8606>;
  <D.8605>:
  monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "error.c", 35, "ret == 0");
  <D.8606>:
}


GetLastError ()
{
  int _wapi_has_shut_down.1;
  guint32 D.8610;
  unsigned int error_key.2;
  long int errptr.3;
  guint32 err;
  void * errptr;

  _wapi_has_shut_down.1 = _wapi_has_shut_down;
  if (_wapi_has_shut_down.1 != 0) goto <D.8608>; else goto <D.8609>;
  <D.8608>:
  D.8610 = 0;
  return D.8610;
  <D.8609>:
  mono_once (&error_key_once, error_init);
  error_key.2 = error_key;
  errptr = pthread_getspecific (error_key.2);
  errptr.3 = (long int) errptr;
  err = (guint32) errptr.3;
  D.8610 = err;
  return D.8610;
}


error_init ()
{
  _Bool D.8614;
  long int D.8615;
  long int D.8616;
  int ret;

  ret = pthread_key_create (&error_key, 0B);
  D.8614 = ret != 0;
  D.8615 = (long int) D.8614;
  D.8616 = __builtin_expect (D.8615, 0);
  if (D.8616 != 0) goto <D.8617>; else goto <D.8618>;
  <D.8617>:
  monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "error.c", 27, "ret == 0");
  <D.8618>:
}


SetLastError (guint32 code)
{
  int _wapi_has_shut_down.4;
  unsigned int error_key.5;
  long unsigned int D.8623;
  const void * D.8624;
  _Bool D.8625;
  long int D.8626;
  long int D.8627;
  int ret;

  _wapi_has_shut_down.4 = _wapi_has_shut_down;
  if (_wapi_has_shut_down.4 != 0) goto <D.8620>; else goto <D.8621>;
  <D.8620>:
  return;
  <D.8621>:
  mono_once (&error_key_once, error_init);
  error_key.5 = error_key;
  D.8623 = (long unsigned int) code;
  D.8624 = (const void *) D.8623;
  ret = pthread_setspecific (error_key.5, D.8624);
  D.8625 = ret != 0;
  D.8626 = (long int) D.8625;
  D.8627 = __builtin_expect (D.8626, 0);
  if (D.8627 != 0) goto <D.8628>; else goto <D.8629>;
  <D.8628>:
  monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "error.c", 75, "ret == 0");
  <D.8629>:
}


errno_to_WSA (guint32 code, const gchar * function_name)
{
  int code.6;
  long unsigned int D.8632;
  long int D.8633;
  guint32 D.8636;
  gint result;
  char * sys_error;
  gchar * msg;
  static const char __func__[13] = "errno_to_WSA";

  result = -1;
  switch (code) <default: <D.8569>, case 0: <D.8530>, case 1: <D.8557>, case 2: <D.8564>, case 4: <D.8543>, case 9: <D.8536>, case 11: <D.8562>, case 12: <D.8550>, case 13: <D.8532>, case 14: <D.8540>, case 19: <D.8568>, case 22: <D.8544>, case 24: <D.8546>, case 25: <D.8555>, case 32: <D.8558>, case 63: <D.8552>, case 88: <D.8554>, case 89: <D.8565>, case 90: <D.8547>, case 92: <D.8551>, case 93: <D.8559>, case 94: <D.8560>, case 95: <D.8556>, case 97: <D.8534>, case 98: <D.8533>, case 99: <D.8563>, case 100: <D.8567>, case 101: <D.8548>, case 103: <D.8537>, case 104: <D.8539>, case 105: <D.8549>, case 106: <D.8545>, case 107: <D.8553>, case 110: <D.8561>, case 111: <D.8538>, case 112: <D.8566>, case 113: <D.8541>, case 114: <D.8535>, case 115: <D.8542>>
  <D.8530>:
  result = 0;
  goto <D.8531>;
  <D.8532>:
  result = 10013;
  goto <D.8531>;
  <D.8533>:
  result = 10048;
  goto <D.8531>;
  <D.8534>:
  result = 10047;
  goto <D.8531>;
  <D.8535>:
  result = 10037;
  goto <D.8531>;
  <D.8536>:
  result = 10038;
  goto <D.8531>;
  <D.8537>:
  result = 10050;
  goto <D.8531>;
  <D.8538>:
  result = 10061;
  goto <D.8531>;
  <D.8539>:
  result = 10054;
  goto <D.8531>;
  <D.8540>:
  result = 10014;
  goto <D.8531>;
  <D.8541>:
  result = 10065;
  goto <D.8531>;
  <D.8542>:
  result = 10036;
  goto <D.8531>;
  <D.8543>:
  result = 10004;
  goto <D.8531>;
  <D.8544>:
  result = 10022;
  goto <D.8531>;
  <D.8545>:
  result = 10056;
  goto <D.8531>;
  <D.8546>:
  result = 10024;
  goto <D.8531>;
  <D.8547>:
  result = 10040;
  goto <D.8531>;
  <D.8548>:
  result = 10051;
  goto <D.8531>;
  <D.8549>:
  result = 10055;
  goto <D.8531>;
  <D.8550>:
  result = 10055;
  goto <D.8531>;
  <D.8551>:
  result = 10042;
  goto <D.8531>;
  <D.8552>:
  result = 10050;
  goto <D.8531>;
  <D.8553>:
  result = 10057;
  goto <D.8531>;
  <D.8554>:
  result = 10038;
  goto <D.8531>;
  <D.8555>:
  result = 10038;
  goto <D.8531>;
  <D.8556>:
  result = 10045;
  goto <D.8531>;
  <D.8557>:
  result = 10013;
  goto <D.8531>;
  <D.8558>:
  result = 10058;
  goto <D.8531>;
  <D.8559>:
  result = 10043;
  goto <D.8531>;
  <D.8560>:
  result = 10044;
  goto <D.8531>;
  <D.8561>:
  result = 10060;
  goto <D.8531>;
  <D.8562>:
  result = 10035;
  goto <D.8531>;
  <D.8563>:
  result = 10049;
  goto <D.8531>;
  <D.8564>:
  result = 10061;
  goto <D.8531>;
  <D.8565>:
  result = 10039;
  goto <D.8531>;
  <D.8566>:
  result = 10064;
  goto <D.8531>;
  <D.8567>:
  result = 10050;
  goto <D.8531>;
  <D.8568>:
  result = 10050;
  goto <D.8531>;
  <D.8569>:
  code.6 = (int) code;
  sys_error = strerror (code.6);
  D.8632 = __strlen_g (sys_error);
  D.8633 = (long int) D.8632;
  msg = monoeg_g_locale_to_utf8 (sys_error, D.8633, 0B, 0B, 0B);
  if (function_name == 0B) goto <D.8634>; else goto <D.8635>;
  <D.8634>:
  function_name = &__func__;
  <D.8635>:
  monoeg_g_log (0B, 16, "%s: Need to translate %d [%s] into winsock error", function_name, code, msg);
  monoeg_g_free (msg);
  result = 10107;
  <D.8531>:
  D.8636 = (guint32) result;
  return D.8636;
}


__attribute__((__gnu_inline__))
__strlen_g (const char * __str)
{
  size_t D.8638;
  long int __ptr.7;
  long int __str.8;
  long int D.8641;
  char * __ptr;
  char * __tmp;

  __ptr = 0B;
  __tmp = __str;
  __asm__ __volatile__("   la    0,0
0: srst  %0,%1
   jo    0b
" : "=&a" __ptr, "=&a" __tmp : "0" __ptr, "1" __tmp : "0", "memory", "cc");
  __ptr.7 = (long int) __ptr;
  __str.8 = (long int) __str;
  D.8641 = __ptr.7 - __str.8;
  D.8638 = (size_t) D.8641;
  return D.8638;
}


_wapi_get_win32_file_error (gint err)
{
  const gchar * D.8643;
  gint D.8644;
  gint ret;

  switch (err) <default: <D.8599>, case 1: <D.8576>, case 2: <D.8587>, case 4: <D.8597>, case 5: <D.8596>, case 8: <D.8591>, case 9: <D.8595>, case 11: <D.8579>, case 13: <D.8575>, case 16: <D.8580>, case 17: <D.8581>, case 20: <D.8588>, case 21: <D.8584>, case 22: <D.8582>, case 23: <D.8585>, case 24: <D.8586>, case 28: <D.8589>, case 29: <D.8583>, case 30: <D.8577>, case 32: <D.8598>, case 36: <D.8592>, case 38: <D.8594>, case 39: <D.8590>, case 115: <D.8593>>
  <D.8575>:
  <D.8576>:
  <D.8577>:
  ret = 5;
  goto <D.8578>;
  <D.8579>:
  ret = 32;
  goto <D.8578>;
  <D.8580>:
  ret = 33;
  goto <D.8578>;
  <D.8581>:
  ret = 80;
  goto <D.8578>;
  <D.8582>:
  <D.8583>:
  ret = 25;
  goto <D.8578>;
  <D.8584>:
  ret = 82;
  goto <D.8578>;
  <D.8585>:
  <D.8586>:
  ret = 4;
  goto <D.8578>;
  <D.8587>:
  <D.8588>:
  ret = 2;
  goto <D.8578>;
  <D.8589>:
  ret = 39;
  goto <D.8578>;
  <D.8590>:
  ret = 145;
  goto <D.8578>;
  <D.8591>:
  ret = 11;
  goto <D.8578>;
  <D.8592>:
  ret = 206;
  goto <D.8578>;
  <D.8593>:
  ret = 997;
  goto <D.8578>;
  <D.8594>:
  ret = 50;
  goto <D.8578>;
  <D.8595>:
  ret = 6;
  goto <D.8578>;
  <D.8596>:
  ret = 6;
  goto <D.8578>;
  <D.8597>:
  ret = 997;
  goto <D.8578>;
  <D.8598>:
  ret = 29;
  goto <D.8578>;
  <D.8599>:
  D.8643 = monoeg_g_strerror (err);
  monoeg_g_log (0B, 32, "Unknown errno: %s\n", D.8643);
  ret = 31;
  goto <D.8578>;
  <D.8578>:
  D.8644 = ret;
  return D.8644;
}


