_wapi_error_cleanup ()
{
  unsigned int error_key.0;
  _Bool D.8107;
  long int D.8108;
  long int D.8109;
  int ret;

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


GetLastError ()
{
  int _wapi_has_shut_down.1;
  guint32 D.8115;
  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.8113>; else goto <D.8114>;
  <D.8113>:
  D.8115 = 0;
  return D.8115;
  <D.8114>:
  mono_once (&error_key_once, error_init);
  error_key.2 = error_key;
  errptr = pthread_getspecific (error_key.2);
  err = (guint32) errptr;
  D.8115 = err;
  return D.8115;
}


error_init ()
{
  _Bool D.8118;
  long int D.8119;
  long int D.8120;
  int ret;

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


SetLastError (guint32 code)
{
  int _wapi_has_shut_down.3;
  unsigned int error_key.4;
  const void * code.5;
  _Bool D.8128;
  long int D.8129;
  long int D.8130;
  int ret;

  _wapi_has_shut_down.3 = _wapi_has_shut_down;
  if (_wapi_has_shut_down.3 != 0) goto <D.8124>; else goto <D.8125>;
  <D.8124>:
  return;
  <D.8125>:
  mono_once (&error_key_once, error_init);
  error_key.4 = error_key;
  code.5 = (const void *) code;
  ret = pthread_setspecific (error_key.4, code.5);
  D.8128 = ret != 0;
  D.8129 = (long int) D.8128;
  D.8130 = __builtin_expect (D.8129, 0);
  if (D.8130 != 0) goto <D.8131>; else goto <D.8132>;
  <D.8131>:
  monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "error.c", 75, "ret == 0");
  <D.8132>:
}


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

  result = -1;
  switch (code) <default: <D.8074>, case 0: <D.8035>, case 1: <D.8062>, case 2: <D.8069>, case 4: <D.8048>, case 9: <D.8041>, case 11: <D.8067>, case 12: <D.8055>, case 13: <D.8037>, case 14: <D.8045>, case 19: <D.8073>, case 22: <D.8049>, case 24: <D.8051>, case 25: <D.8060>, case 32: <D.8063>, case 63: <D.8057>, case 95: <D.8059>, case 96: <D.8070>, case 97: <D.8052>, case 99: <D.8056>, case 120: <D.8064>, case 121: <D.8065>, case 122: <D.8061>, case 124: <D.8039>, case 125: <D.8038>, case 126: <D.8068>, case 127: <D.8072>, case 128: <D.8053>, case 130: <D.8042>, case 131: <D.8044>, case 132: <D.8054>, case 133: <D.8050>, case 134: <D.8058>, case 145: <D.8066>, case 146: <D.8043>, case 147: <D.8071>, case 148: <D.8046>, case 149: <D.8040>, case 150: <D.8047>>
  <D.8035>:
  result = 0;
  goto <D.8036>;
  <D.8037>:
  result = 10013;
  goto <D.8036>;
  <D.8038>:
  result = 10048;
  goto <D.8036>;
  <D.8039>:
  result = 10047;
  goto <D.8036>;
  <D.8040>:
  result = 10037;
  goto <D.8036>;
  <D.8041>:
  result = 10038;
  goto <D.8036>;
  <D.8042>:
  result = 10050;
  goto <D.8036>;
  <D.8043>:
  result = 10061;
  goto <D.8036>;
  <D.8044>:
  result = 10054;
  goto <D.8036>;
  <D.8045>:
  result = 10014;
  goto <D.8036>;
  <D.8046>:
  result = 10065;
  goto <D.8036>;
  <D.8047>:
  result = 10036;
  goto <D.8036>;
  <D.8048>:
  result = 10004;
  goto <D.8036>;
  <D.8049>:
  result = 10022;
  goto <D.8036>;
  <D.8050>:
  result = 10056;
  goto <D.8036>;
  <D.8051>:
  result = 10024;
  goto <D.8036>;
  <D.8052>:
  result = 10040;
  goto <D.8036>;
  <D.8053>:
  result = 10051;
  goto <D.8036>;
  <D.8054>:
  result = 10055;
  goto <D.8036>;
  <D.8055>:
  result = 10055;
  goto <D.8036>;
  <D.8056>:
  result = 10042;
  goto <D.8036>;
  <D.8057>:
  result = 10050;
  goto <D.8036>;
  <D.8058>:
  result = 10057;
  goto <D.8036>;
  <D.8059>:
  result = 10038;
  goto <D.8036>;
  <D.8060>:
  result = 10038;
  goto <D.8036>;
  <D.8061>:
  result = 10045;
  goto <D.8036>;
  <D.8062>:
  result = 10013;
  goto <D.8036>;
  <D.8063>:
  result = 10058;
  goto <D.8036>;
  <D.8064>:
  result = 10043;
  goto <D.8036>;
  <D.8065>:
  result = 10044;
  goto <D.8036>;
  <D.8066>:
  result = 10060;
  goto <D.8036>;
  <D.8067>:
  result = 10035;
  goto <D.8036>;
  <D.8068>:
  result = 10049;
  goto <D.8036>;
  <D.8069>:
  result = 10061;
  goto <D.8036>;
  <D.8070>:
  result = 10039;
  goto <D.8036>;
  <D.8071>:
  result = 10064;
  goto <D.8036>;
  <D.8072>:
  result = 10050;
  goto <D.8036>;
  <D.8073>:
  result = 10050;
  goto <D.8036>;
  <D.8074>:
  code.6 = (int) code;
  sys_error = strerror (code.6);
  D.8135 = strlen (sys_error);
  D.8136 = (int) D.8135;
  msg = monoeg_g_locale_to_utf8 (sys_error, D.8136, 0B, 0B, 0B);
  if (function_name == 0B) goto <D.8137>; else goto <D.8138>;
  <D.8137>:
  function_name = &__func__;
  <D.8138>:
  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.8036>:
  D.8139 = (guint32) result;
  return D.8139;
}


_wapi_get_win32_file_error (gint err)
{
  const gchar * D.8141;
  gint D.8142;
  gint ret;

  switch (err) <default: <D.8104>, case 1: <D.8081>, case 2: <D.8092>, case 4: <D.8102>, case 5: <D.8101>, case 8: <D.8096>, case 9: <D.8100>, case 11: <D.8084>, case 13: <D.8080>, case 16: <D.8085>, case 17: <D.8086>, case 20: <D.8093>, case 21: <D.8089>, case 22: <D.8087>, case 23: <D.8090>, case 24: <D.8091>, case 28: <D.8094>, case 29: <D.8088>, case 30: <D.8082>, case 32: <D.8103>, case 78: <D.8097>, case 89: <D.8099>, case 93: <D.8095>, case 150: <D.8098>>
  <D.8080>:
  <D.8081>:
  <D.8082>:
  ret = 5;
  goto <D.8083>;
  <D.8084>:
  ret = 32;
  goto <D.8083>;
  <D.8085>:
  ret = 33;
  goto <D.8083>;
  <D.8086>:
  ret = 80;
  goto <D.8083>;
  <D.8087>:
  <D.8088>:
  ret = 25;
  goto <D.8083>;
  <D.8089>:
  ret = 82;
  goto <D.8083>;
  <D.8090>:
  <D.8091>:
  ret = 4;
  goto <D.8083>;
  <D.8092>:
  <D.8093>:
  ret = 2;
  goto <D.8083>;
  <D.8094>:
  ret = 39;
  goto <D.8083>;
  <D.8095>:
  ret = 145;
  goto <D.8083>;
  <D.8096>:
  ret = 11;
  goto <D.8083>;
  <D.8097>:
  ret = 206;
  goto <D.8083>;
  <D.8098>:
  ret = 997;
  goto <D.8083>;
  <D.8099>:
  ret = 50;
  goto <D.8083>;
  <D.8100>:
  ret = 6;
  goto <D.8083>;
  <D.8101>:
  ret = 6;
  goto <D.8083>;
  <D.8102>:
  ret = 997;
  goto <D.8083>;
  <D.8103>:
  ret = 29;
  goto <D.8083>;
  <D.8104>:
  D.8141 = monoeg_g_strerror (err);
  monoeg_g_log (0B, 32, "Unknown errno: %s\n", D.8141);
  ret = 31;
  goto <D.8083>;
  <D.8083>:
  D.8142 = ret;
  return D.8142;
}


