_wapi_error_cleanup ()
{
  unsigned int error_key.0;
  _Bool D.8079;
  long int D.8080;
  long int D.8081;
  int ret;

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


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

  _wapi_has_shut_down.1 = _wapi_has_shut_down;
  if (_wapi_has_shut_down.1 != 0) goto <D.8085>; else goto <D.8086>;
  <D.8085>:
  D.8087 = 0;
  return D.8087;
  <D.8086>:
  mono_once (&error_key_once, error_init);
  error_key.2 = error_key;
  errptr = pthread_getspecific (error_key.2);
  err = (guint32) errptr;
  D.8087 = err;
  return D.8087;
}


error_init ()
{
  _Bool D.8090;
  long int D.8091;
  long int D.8092;
  int ret;

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


SetLastError (guint32 code)
{
  int _wapi_has_shut_down.3;
  const void * code.4;
  unsigned int error_key.5;
  _Bool D.8100;
  long int D.8101;
  long int D.8102;
  int ret;

  _wapi_has_shut_down.3 = _wapi_has_shut_down;
  if (_wapi_has_shut_down.3 != 0) goto <D.8096>; else goto <D.8097>;
  <D.8096>:
  return;
  <D.8097>:
  mono_once (&error_key_once, error_init);
  code.4 = (const void *) code;
  error_key.5 = error_key;
  ret = pthread_setspecific (error_key.5, code.4);
  D.8100 = ret != 0;
  D.8101 = (long int) D.8100;
  D.8102 = __builtin_expect (D.8101, 0);
  if (D.8102 != 0) goto <D.8103>; else goto <D.8104>;
  <D.8103>:
  monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "error.c", 75, "ret == 0");
  <D.8104>:
}


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

  result = -1;
  switch (code) <default: <D.8046>, case 0: <D.8007>, case 1: <D.8034>, case 2: <D.8041>, case 4: <D.8020>, case 9: <D.8013>, case 11: <D.8039>, case 12: <D.8027>, case 13: <D.8009>, case 14: <D.8017>, case 19: <D.8045>, case 22: <D.8021>, case 24: <D.8023>, case 25: <D.8032>, case 32: <D.8035>, case 63: <D.8029>, case 88: <D.8031>, case 89: <D.8042>, case 90: <D.8024>, case 92: <D.8028>, case 93: <D.8036>, case 94: <D.8037>, case 95: <D.8033>, case 97: <D.8011>, case 98: <D.8010>, case 99: <D.8040>, case 100: <D.8044>, case 101: <D.8025>, case 103: <D.8014>, case 104: <D.8016>, case 105: <D.8026>, case 106: <D.8022>, case 107: <D.8030>, case 110: <D.8038>, case 111: <D.8015>, case 112: <D.8043>, case 113: <D.8018>, case 114: <D.8012>, case 115: <D.8019>>
  <D.8007>:
  result = 0;
  goto <D.8008>;
  <D.8009>:
  result = 10013;
  goto <D.8008>;
  <D.8010>:
  result = 10048;
  goto <D.8008>;
  <D.8011>:
  result = 10047;
  goto <D.8008>;
  <D.8012>:
  result = 10037;
  goto <D.8008>;
  <D.8013>:
  result = 10038;
  goto <D.8008>;
  <D.8014>:
  result = 10050;
  goto <D.8008>;
  <D.8015>:
  result = 10061;
  goto <D.8008>;
  <D.8016>:
  result = 10054;
  goto <D.8008>;
  <D.8017>:
  result = 10014;
  goto <D.8008>;
  <D.8018>:
  result = 10065;
  goto <D.8008>;
  <D.8019>:
  result = 10036;
  goto <D.8008>;
  <D.8020>:
  result = 10004;
  goto <D.8008>;
  <D.8021>:
  result = 10022;
  goto <D.8008>;
  <D.8022>:
  result = 10056;
  goto <D.8008>;
  <D.8023>:
  result = 10024;
  goto <D.8008>;
  <D.8024>:
  result = 10040;
  goto <D.8008>;
  <D.8025>:
  result = 10051;
  goto <D.8008>;
  <D.8026>:
  result = 10055;
  goto <D.8008>;
  <D.8027>:
  result = 10055;
  goto <D.8008>;
  <D.8028>:
  result = 10042;
  goto <D.8008>;
  <D.8029>:
  result = 10050;
  goto <D.8008>;
  <D.8030>:
  result = 10057;
  goto <D.8008>;
  <D.8031>:
  result = 10038;
  goto <D.8008>;
  <D.8032>:
  result = 10038;
  goto <D.8008>;
  <D.8033>:
  result = 10045;
  goto <D.8008>;
  <D.8034>:
  result = 10013;
  goto <D.8008>;
  <D.8035>:
  result = 10058;
  goto <D.8008>;
  <D.8036>:
  result = 10043;
  goto <D.8008>;
  <D.8037>:
  result = 10044;
  goto <D.8008>;
  <D.8038>:
  result = 10060;
  goto <D.8008>;
  <D.8039>:
  result = 10035;
  goto <D.8008>;
  <D.8040>:
  result = 10049;
  goto <D.8008>;
  <D.8041>:
  result = 10061;
  goto <D.8008>;
  <D.8042>:
  result = 10039;
  goto <D.8008>;
  <D.8043>:
  result = 10064;
  goto <D.8008>;
  <D.8044>:
  result = 10050;
  goto <D.8008>;
  <D.8045>:
  result = 10050;
  goto <D.8008>;
  <D.8046>:
  code.6 = (int) code;
  sys_error = strerror (code.6);
  D.8107 = strlen (sys_error);
  D.8108 = (int) D.8107;
  msg = monoeg_g_locale_to_utf8 (sys_error, D.8108, 0B, 0B, 0B);
  if (function_name == 0B) goto <D.8109>; else goto <D.8110>;
  <D.8109>:
  function_name = &__func__;
  <D.8110>:
  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.8008>:
  D.8111 = (guint32) result;
  return D.8111;
}


_wapi_get_win32_file_error (gint err)
{
  const gchar * D.8113;
  gint D.8114;
  gint ret;

  switch (err) <default: <D.8076>, case 1: <D.8053>, case 2: <D.8064>, case 4: <D.8074>, case 5: <D.8073>, case 8: <D.8068>, case 9: <D.8072>, case 11: <D.8056>, case 13: <D.8052>, case 16: <D.8057>, case 17: <D.8058>, case 20: <D.8065>, case 21: <D.8061>, case 22: <D.8059>, case 23: <D.8062>, case 24: <D.8063>, case 28: <D.8066>, case 29: <D.8060>, case 30: <D.8054>, case 32: <D.8075>, case 36: <D.8069>, case 38: <D.8071>, case 39: <D.8067>, case 115: <D.8070>>
  <D.8052>:
  <D.8053>:
  <D.8054>:
  ret = 5;
  goto <D.8055>;
  <D.8056>:
  ret = 32;
  goto <D.8055>;
  <D.8057>:
  ret = 33;
  goto <D.8055>;
  <D.8058>:
  ret = 80;
  goto <D.8055>;
  <D.8059>:
  <D.8060>:
  ret = 25;
  goto <D.8055>;
  <D.8061>:
  ret = 82;
  goto <D.8055>;
  <D.8062>:
  <D.8063>:
  ret = 4;
  goto <D.8055>;
  <D.8064>:
  <D.8065>:
  ret = 2;
  goto <D.8055>;
  <D.8066>:
  ret = 39;
  goto <D.8055>;
  <D.8067>:
  ret = 145;
  goto <D.8055>;
  <D.8068>:
  ret = 11;
  goto <D.8055>;
  <D.8069>:
  ret = 206;
  goto <D.8055>;
  <D.8070>:
  ret = 997;
  goto <D.8055>;
  <D.8071>:
  ret = 50;
  goto <D.8055>;
  <D.8072>:
  ret = 6;
  goto <D.8055>;
  <D.8073>:
  ret = 6;
  goto <D.8055>;
  <D.8074>:
  ret = 997;
  goto <D.8055>;
  <D.8075>:
  ret = 29;
  goto <D.8055>;
  <D.8076>:
  D.8113 = monoeg_g_strerror (err);
  monoeg_g_log (0B, 32, "Unknown errno: %s\n", D.8113);
  ret = 31;
  goto <D.8055>;
  <D.8055>:
  D.8114 = ret;
  return D.8114;
}


