_wapi_error_cleanup ()
{
  unsigned int error_key.0;
  _Bool D.8429;
  long int D.8430;
  long int D.8431;
  int ret;

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


GetLastError ()
{
  int _wapi_has_shut_down.1;
  guint32 D.8437;
  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.8435>; else goto <D.8436>;
  <D.8435>:
  D.8437 = 0;
  return D.8437;
  <D.8436>:
  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.8437 = err;
  return D.8437;
}


error_init ()
{
  _Bool D.8441;
  long int D.8442;
  long int D.8443;
  int ret;

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


SetLastError (guint32 code)
{
  int _wapi_has_shut_down.4;
  long unsigned int D.8449;
  const void * D.8450;
  unsigned int error_key.5;
  _Bool D.8452;
  long int D.8453;
  long int D.8454;
  int ret;

  _wapi_has_shut_down.4 = _wapi_has_shut_down;
  if (_wapi_has_shut_down.4 != 0) goto <D.8447>; else goto <D.8448>;
  <D.8447>:
  return;
  <D.8448>:
  mono_once (&error_key_once, error_init);
  D.8449 = (long unsigned int) code;
  D.8450 = (const void *) D.8449;
  error_key.5 = error_key;
  ret = pthread_setspecific (error_key.5, D.8450);
  D.8452 = ret != 0;
  D.8453 = (long int) D.8452;
  D.8454 = __builtin_expect (D.8453, 0);
  if (D.8454 != 0) goto <D.8455>; else goto <D.8456>;
  <D.8455>:
  monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "error.c", 75, "ret == 0");
  <D.8456>:
}


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

  result = -1;
  switch (code) <default: <D.8396>, case 0: <D.8357>, case 1: <D.8384>, case 2: <D.8391>, case 4: <D.8370>, case 9: <D.8363>, case 11: <D.8389>, case 12: <D.8377>, case 13: <D.8359>, case 14: <D.8367>, case 19: <D.8395>, case 22: <D.8371>, case 24: <D.8373>, case 25: <D.8382>, case 32: <D.8385>, case 63: <D.8379>, case 88: <D.8381>, case 89: <D.8392>, case 90: <D.8374>, case 92: <D.8378>, case 93: <D.8386>, case 94: <D.8387>, case 95: <D.8383>, case 97: <D.8361>, case 98: <D.8360>, case 99: <D.8390>, case 100: <D.8394>, case 101: <D.8375>, case 103: <D.8364>, case 104: <D.8366>, case 105: <D.8376>, case 106: <D.8372>, case 107: <D.8380>, case 110: <D.8388>, case 111: <D.8365>, case 112: <D.8393>, case 113: <D.8368>, case 114: <D.8362>, case 115: <D.8369>>
  <D.8357>:
  result = 0;
  goto <D.8358>;
  <D.8359>:
  result = 10013;
  goto <D.8358>;
  <D.8360>:
  result = 10048;
  goto <D.8358>;
  <D.8361>:
  result = 10047;
  goto <D.8358>;
  <D.8362>:
  result = 10037;
  goto <D.8358>;
  <D.8363>:
  result = 10038;
  goto <D.8358>;
  <D.8364>:
  result = 10050;
  goto <D.8358>;
  <D.8365>:
  result = 10061;
  goto <D.8358>;
  <D.8366>:
  result = 10054;
  goto <D.8358>;
  <D.8367>:
  result = 10014;
  goto <D.8358>;
  <D.8368>:
  result = 10065;
  goto <D.8358>;
  <D.8369>:
  result = 10036;
  goto <D.8358>;
  <D.8370>:
  result = 10004;
  goto <D.8358>;
  <D.8371>:
  result = 10022;
  goto <D.8358>;
  <D.8372>:
  result = 10056;
  goto <D.8358>;
  <D.8373>:
  result = 10024;
  goto <D.8358>;
  <D.8374>:
  result = 10040;
  goto <D.8358>;
  <D.8375>:
  result = 10051;
  goto <D.8358>;
  <D.8376>:
  result = 10055;
  goto <D.8358>;
  <D.8377>:
  result = 10055;
  goto <D.8358>;
  <D.8378>:
  result = 10042;
  goto <D.8358>;
  <D.8379>:
  result = 10050;
  goto <D.8358>;
  <D.8380>:
  result = 10057;
  goto <D.8358>;
  <D.8381>:
  result = 10038;
  goto <D.8358>;
  <D.8382>:
  result = 10038;
  goto <D.8358>;
  <D.8383>:
  result = 10045;
  goto <D.8358>;
  <D.8384>:
  result = 10013;
  goto <D.8358>;
  <D.8385>:
  result = 10058;
  goto <D.8358>;
  <D.8386>:
  result = 10043;
  goto <D.8358>;
  <D.8387>:
  result = 10044;
  goto <D.8358>;
  <D.8388>:
  result = 10060;
  goto <D.8358>;
  <D.8389>:
  result = 10035;
  goto <D.8358>;
  <D.8390>:
  result = 10049;
  goto <D.8358>;
  <D.8391>:
  result = 10061;
  goto <D.8358>;
  <D.8392>:
  result = 10039;
  goto <D.8358>;
  <D.8393>:
  result = 10064;
  goto <D.8358>;
  <D.8394>:
  result = 10050;
  goto <D.8358>;
  <D.8395>:
  result = 10050;
  goto <D.8358>;
  <D.8396>:
  code.6 = (int) code;
  sys_error = strerror (code.6);
  D.8459 = strlen (sys_error);
  D.8460 = (long int) D.8459;
  msg = monoeg_g_locale_to_utf8 (sys_error, D.8460, 0B, 0B, 0B);
  if (function_name == 0B) goto <D.8461>; else goto <D.8462>;
  <D.8461>:
  function_name = &__func__;
  <D.8462>:
  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.8358>:
  D.8463 = (guint32) result;
  return D.8463;
}


_wapi_get_win32_file_error (gint err)
{
  const gchar * D.8465;
  gint D.8466;
  gint ret;

  switch (err) <default: <D.8426>, case 1: <D.8403>, case 2: <D.8414>, case 4: <D.8424>, case 5: <D.8423>, case 8: <D.8418>, case 9: <D.8422>, case 11: <D.8406>, case 13: <D.8402>, case 16: <D.8407>, case 17: <D.8408>, case 20: <D.8415>, case 21: <D.8411>, case 22: <D.8409>, case 23: <D.8412>, case 24: <D.8413>, case 28: <D.8416>, case 29: <D.8410>, case 30: <D.8404>, case 32: <D.8425>, case 36: <D.8419>, case 38: <D.8421>, case 39: <D.8417>, case 115: <D.8420>>
  <D.8402>:
  <D.8403>:
  <D.8404>:
  ret = 5;
  goto <D.8405>;
  <D.8406>:
  ret = 32;
  goto <D.8405>;
  <D.8407>:
  ret = 33;
  goto <D.8405>;
  <D.8408>:
  ret = 80;
  goto <D.8405>;
  <D.8409>:
  <D.8410>:
  ret = 25;
  goto <D.8405>;
  <D.8411>:
  ret = 82;
  goto <D.8405>;
  <D.8412>:
  <D.8413>:
  ret = 4;
  goto <D.8405>;
  <D.8414>:
  <D.8415>:
  ret = 2;
  goto <D.8405>;
  <D.8416>:
  ret = 39;
  goto <D.8405>;
  <D.8417>:
  ret = 145;
  goto <D.8405>;
  <D.8418>:
  ret = 11;
  goto <D.8405>;
  <D.8419>:
  ret = 206;
  goto <D.8405>;
  <D.8420>:
  ret = 997;
  goto <D.8405>;
  <D.8421>:
  ret = 50;
  goto <D.8405>;
  <D.8422>:
  ret = 6;
  goto <D.8405>;
  <D.8423>:
  ret = 6;
  goto <D.8405>;
  <D.8424>:
  ret = 997;
  goto <D.8405>;
  <D.8425>:
  ret = 29;
  goto <D.8405>;
  <D.8426>:
  D.8465 = monoeg_g_strerror (err);
  monoeg_g_log (0B, 32, "Unknown errno: %s\n", D.8465);
  ret = 31;
  goto <D.8405>;
  <D.8405>:
  D.8466 = ret;
  return D.8466;
}


