_wapi_error_cleanup ()
{
  unsigned int error_key.0;
  _Bool D.8943;
  long int D.8944;
  long int D.8945;
  int ret;

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


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


error_init ()
{
  _Bool D.8955;
  long int D.8956;
  long int D.8957;
  int ret;

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


SetLastError (guint32 code)
{
  int _wapi_has_shut_down.4;
  unsigned int error_key.5;
  long unsigned int D.8964;
  const void * D.8965;
  _Bool D.8966;
  long int D.8967;
  long int D.8968;
  int ret;

  _wapi_has_shut_down.4 = _wapi_has_shut_down;
  if (_wapi_has_shut_down.4 != 0) goto <D.8961>; else goto <D.8962>;
  <D.8961>:
  return;
  <D.8962>:
  mono_once (&error_key_once, error_init);
  error_key.5 = error_key;
  D.8964 = (long unsigned int) code;
  D.8965 = (const void *) D.8964;
  ret = pthread_setspecific (error_key.5, D.8965);
  D.8966 = ret != 0;
  D.8967 = (long int) D.8966;
  D.8968 = __builtin_expect (D.8967, 0);
  if (D.8968 != 0) goto <D.8969>; else goto <D.8970>;
  <D.8969>:
  monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "error.c", 75, "ret == 0");
  <D.8970>:
}


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

  result = -1;
  switch (code) <default: <D.8910>, case 0: <D.8871>, case 1: <D.8898>, case 2: <D.8905>, case 4: <D.8884>, case 9: <D.8877>, case 11: <D.8903>, case 12: <D.8891>, case 13: <D.8873>, case 14: <D.8881>, case 19: <D.8909>, case 22: <D.8885>, case 24: <D.8887>, case 25: <D.8896>, case 32: <D.8899>, case 63: <D.8893>, case 88: <D.8895>, case 89: <D.8906>, case 90: <D.8888>, case 92: <D.8892>, case 93: <D.8900>, case 94: <D.8901>, case 95: <D.8897>, case 97: <D.8875>, case 98: <D.8874>, case 99: <D.8904>, case 100: <D.8908>, case 101: <D.8889>, case 103: <D.8878>, case 104: <D.8880>, case 105: <D.8890>, case 106: <D.8886>, case 107: <D.8894>, case 110: <D.8902>, case 111: <D.8879>, case 112: <D.8907>, case 113: <D.8882>, case 114: <D.8876>, case 115: <D.8883>>
  <D.8871>:
  result = 0;
  goto <D.8872>;
  <D.8873>:
  result = 10013;
  goto <D.8872>;
  <D.8874>:
  result = 10048;
  goto <D.8872>;
  <D.8875>:
  result = 10047;
  goto <D.8872>;
  <D.8876>:
  result = 10037;
  goto <D.8872>;
  <D.8877>:
  result = 10038;
  goto <D.8872>;
  <D.8878>:
  result = 10050;
  goto <D.8872>;
  <D.8879>:
  result = 10061;
  goto <D.8872>;
  <D.8880>:
  result = 10054;
  goto <D.8872>;
  <D.8881>:
  result = 10014;
  goto <D.8872>;
  <D.8882>:
  result = 10065;
  goto <D.8872>;
  <D.8883>:
  result = 10036;
  goto <D.8872>;
  <D.8884>:
  result = 10004;
  goto <D.8872>;
  <D.8885>:
  result = 10022;
  goto <D.8872>;
  <D.8886>:
  result = 10056;
  goto <D.8872>;
  <D.8887>:
  result = 10024;
  goto <D.8872>;
  <D.8888>:
  result = 10040;
  goto <D.8872>;
  <D.8889>:
  result = 10051;
  goto <D.8872>;
  <D.8890>:
  result = 10055;
  goto <D.8872>;
  <D.8891>:
  result = 10055;
  goto <D.8872>;
  <D.8892>:
  result = 10042;
  goto <D.8872>;
  <D.8893>:
  result = 10050;
  goto <D.8872>;
  <D.8894>:
  result = 10057;
  goto <D.8872>;
  <D.8895>:
  result = 10038;
  goto <D.8872>;
  <D.8896>:
  result = 10038;
  goto <D.8872>;
  <D.8897>:
  result = 10045;
  goto <D.8872>;
  <D.8898>:
  result = 10013;
  goto <D.8872>;
  <D.8899>:
  result = 10058;
  goto <D.8872>;
  <D.8900>:
  result = 10043;
  goto <D.8872>;
  <D.8901>:
  result = 10044;
  goto <D.8872>;
  <D.8902>:
  result = 10060;
  goto <D.8872>;
  <D.8903>:
  result = 10035;
  goto <D.8872>;
  <D.8904>:
  result = 10049;
  goto <D.8872>;
  <D.8905>:
  result = 10061;
  goto <D.8872>;
  <D.8906>:
  result = 10039;
  goto <D.8872>;
  <D.8907>:
  result = 10064;
  goto <D.8872>;
  <D.8908>:
  result = 10050;
  goto <D.8872>;
  <D.8909>:
  result = 10050;
  goto <D.8872>;
  <D.8910>:
  code.6 = (int) code;
  sys_error = strerror (code.6);
  D.8973 = strlen (sys_error);
  D.8974 = (long int) D.8973;
  msg = monoeg_g_locale_to_utf8 (sys_error, D.8974, 0B, 0B, 0B);
  if (function_name == 0B) goto <D.8975>; else goto <D.8976>;
  <D.8975>:
  function_name = &__func__;
  <D.8976>:
  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.8872>:
  D.8977 = (guint32) result;
  return D.8977;
}


_wapi_get_win32_file_error (gint err)
{
  const gchar * D.8979;
  gint D.8980;
  gint ret;

  switch (err) <default: <D.8940>, case 1: <D.8917>, case 2: <D.8928>, case 4: <D.8938>, case 5: <D.8937>, case 8: <D.8932>, case 9: <D.8936>, case 11: <D.8920>, case 13: <D.8916>, case 16: <D.8921>, case 17: <D.8922>, case 20: <D.8929>, case 21: <D.8925>, case 22: <D.8923>, case 23: <D.8926>, case 24: <D.8927>, case 28: <D.8930>, case 29: <D.8924>, case 30: <D.8918>, case 32: <D.8939>, case 36: <D.8933>, case 38: <D.8935>, case 39: <D.8931>, case 115: <D.8934>>
  <D.8916>:
  <D.8917>:
  <D.8918>:
  ret = 5;
  goto <D.8919>;
  <D.8920>:
  ret = 32;
  goto <D.8919>;
  <D.8921>:
  ret = 33;
  goto <D.8919>;
  <D.8922>:
  ret = 80;
  goto <D.8919>;
  <D.8923>:
  <D.8924>:
  ret = 25;
  goto <D.8919>;
  <D.8925>:
  ret = 82;
  goto <D.8919>;
  <D.8926>:
  <D.8927>:
  ret = 4;
  goto <D.8919>;
  <D.8928>:
  <D.8929>:
  ret = 2;
  goto <D.8919>;
  <D.8930>:
  ret = 39;
  goto <D.8919>;
  <D.8931>:
  ret = 145;
  goto <D.8919>;
  <D.8932>:
  ret = 11;
  goto <D.8919>;
  <D.8933>:
  ret = 206;
  goto <D.8919>;
  <D.8934>:
  ret = 997;
  goto <D.8919>;
  <D.8935>:
  ret = 50;
  goto <D.8919>;
  <D.8936>:
  ret = 6;
  goto <D.8919>;
  <D.8937>:
  ret = 6;
  goto <D.8919>;
  <D.8938>:
  ret = 997;
  goto <D.8919>;
  <D.8939>:
  ret = 29;
  goto <D.8919>;
  <D.8940>:
  D.8979 = monoeg_g_strerror (err);
  monoeg_g_log (0B, 32, "Unknown errno: %s\n", D.8979);
  ret = 31;
  goto <D.8919>;
  <D.8919>:
  D.8980 = ret;
  return D.8980;
}


