/* automatically generated by clay-bindgen */

alias __builtin_va_list = Pointer[CChar];

alias uintptr_t = UInt;

alias va_list = Pointer[CChar];

alias size_t = UInt;

alias rsize_t = size_t;

alias intptr_t = Int;

alias ptrdiff_t = Int;

alias wchar_t = UShort;

alias wint_t = UShort;

alias wctype_t = UShort;

alias errno_t = Int;

alias __time32_t = CLong;

alias __time64_t = Int64;

alias time_t = __time64_t;

external (cdecl) _invalid_parameter_noinfo() : ;

external (cdecl) _invalid_parameter_noinfo_noreturn() : ;

external (cdecl) _invoke_watson(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:Pointer[wchar_t], arg3:UInt, arg4:uintptr_t) : ;

alias Struct_threadmbcinfostruct = Opaque;

alias pthreadlocinfo = Pointer[Struct_threadlocaleinfostruct];

alias pthreadmbcinfo = Pointer[Struct_threadmbcinfostruct];

alias Struct___lc_time_data = Opaque;

record Struct_localeinfo_struct (
    locinfo : pthreadlocinfo,
    mbcinfo : pthreadmbcinfo,
);

alias _locale_tstruct = Struct_localeinfo_struct;

alias _locale_t = Pointer[Struct_localeinfo_struct];

record Struct_tagLC_ID (
    wLanguage : UShort,
    wCountry : UShort,
    wCodePage : UShort,
);

alias LC_ID = Struct_tagLC_ID;

alias LPLC_ID = Pointer[Struct_tagLC_ID];

record Struct_threadlocaleinfostruct (
    refcount : Int,
    lc_codepage : UInt,
    lc_collate_cp : UInt,
    lc_handle : Array[CULong, 6],
    lc_id : Array[LC_ID, 6],
    lc_category : Array[Struct_Unnamed1, 6],
    lc_clike : Int,
    mb_cur_max : Int,
    lconv_intl_refcount : Pointer[Int],
    lconv_num_refcount : Pointer[Int],
    lconv_mon_refcount : Pointer[Int],
    lconv : Pointer[Struct_lconv],
    ctype1_refcount : Pointer[Int],
    ctype1 : Pointer[UShort],
    pctype : Pointer[UShort],
    pclmap : Pointer[CUChar],
    pcumap : Pointer[CUChar],
    lc_time_curr : Pointer[Struct___lc_time_data],
);

record Struct_Unnamed1 (
    locale : Pointer[CChar],
    wlocale : Pointer[wchar_t],
    refcount : Pointer[Int],
    wrefcount : Pointer[Int],
);

alias Struct_lconv = Opaque;

alias threadlocinfo = Struct_threadlocaleinfostruct;

record Struct__iobuf (
    _ptr : Pointer[CChar],
    _cnt : Int,
    _base : Pointer[CChar],
    _flag : Int,
    _file : Int,
    _charbuf : Int,
    _bufsiz : Int,
    _tmpfname : Pointer[CChar],
);

alias FILE = Struct__iobuf;

external (cdecl) __iob_func() : Pointer[FILE];

alias fpos_t = Int64;

external (cdecl) _filbuf(arg0:Pointer[FILE]) : Int;

external (cdecl) _flsbuf(arg0:Int, arg1:Pointer[FILE]) : Int;

external (cdecl) _fsopen(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Int) : Pointer[FILE];

external (cdecl) clearerr(arg0:Pointer[FILE]) : ;

external (cdecl) clearerr_s(arg0:Pointer[FILE]) : errno_t;

external (cdecl) fclose(arg0:Pointer[FILE]) : Int;

external (cdecl) _fcloseall() : Int;

external (cdecl) _fdopen(arg0:Int, arg1:Pointer[CChar]) : Pointer[FILE];

external (cdecl) feof(arg0:Pointer[FILE]) : Int;

external (cdecl) ferror(arg0:Pointer[FILE]) : Int;

external (cdecl) fflush(arg0:Pointer[FILE]) : Int;

external (cdecl) fgetc(arg0:Pointer[FILE]) : Int;

external (cdecl) _fgetchar() : Int;

external (cdecl) fgetpos(arg0:Pointer[FILE], arg1:Pointer[fpos_t]) : Int;

external (cdecl) fgets(arg0:Pointer[CChar], arg1:Int, arg2:Pointer[FILE]) : Pointer[CChar];

external (cdecl) _fileno(arg0:Pointer[FILE]) : Int;

external (cdecl) _tempnam(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) _flushall() : Int;

external (cdecl) fopen(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[FILE];

external (cdecl) fopen_s(arg0:Pointer[Pointer[FILE]], arg1:Pointer[CChar], arg2:Pointer[CChar]) : errno_t;

external (cdecl) fprintf(arg0:Pointer[FILE], arg1:Pointer[CChar], ..) : Int;

external (cdecl) fprintf_s(arg0:Pointer[FILE], arg1:Pointer[CChar], ..) : Int;

external (cdecl) fputc(arg0:Int, arg1:Pointer[FILE]) : Int;

external (cdecl) _fputchar(arg0:Int) : Int;

external (cdecl) fputs(arg0:Pointer[CChar], arg1:Pointer[FILE]) : Int;

external (cdecl) fread(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:Pointer[FILE]) : size_t;

external (cdecl) fread_s(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:size_t, arg4:Pointer[FILE]) : size_t;

external (cdecl) freopen(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Pointer[FILE]) : Pointer[FILE];

external (cdecl) freopen_s(arg0:Pointer[Pointer[FILE]], arg1:Pointer[CChar], arg2:Pointer[CChar], arg3:Pointer[FILE]) : errno_t;

external (cdecl) fscanf(arg0:Pointer[FILE], arg1:Pointer[CChar], ..) : Int;

external (cdecl) _fscanf_l(arg0:Pointer[FILE], arg1:Pointer[CChar], arg2:_locale_t, ..) : Int;

external (cdecl) fscanf_s(arg0:Pointer[FILE], arg1:Pointer[CChar], ..) : Int;

external (cdecl) _fscanf_s_l(arg0:Pointer[FILE], arg1:Pointer[CChar], arg2:_locale_t, ..) : Int;

external (cdecl) fsetpos(arg0:Pointer[FILE], arg1:Pointer[fpos_t]) : Int;

external (cdecl) fseek(arg0:Pointer[FILE], arg1:CLong, arg2:Int) : Int;

external (cdecl) ftell(arg0:Pointer[FILE]) : CLong;

external (cdecl) _fseeki64(arg0:Pointer[FILE], arg1:Int64, arg2:Int) : Int;

external (cdecl) _ftelli64(arg0:Pointer[FILE]) : Int64;

external (cdecl) fwrite(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:Pointer[FILE]) : size_t;

external (cdecl) getc(arg0:Pointer[FILE]) : Int;

external (cdecl) getchar() : Int;

external (cdecl) _getmaxstdio() : Int;

external (cdecl) gets_s(arg0:Pointer[CChar], arg1:rsize_t) : Pointer[CChar];

external (cdecl) gets(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) _getw(arg0:Pointer[FILE]) : Int;

external (cdecl) perror(arg0:Pointer[CChar]) : ;

external (cdecl) _pclose(arg0:Pointer[FILE]) : Int;

external (cdecl) _popen(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[FILE];

external (cdecl) printf(arg0:Pointer[CChar], ..) : Int;

external (cdecl) printf_s(arg0:Pointer[CChar], ..) : Int;

external (cdecl) putc(arg0:Int, arg1:Pointer[FILE]) : Int;

external (cdecl) putchar(arg0:Int) : Int;

external (cdecl) puts(arg0:Pointer[CChar]) : Int;

external (cdecl) _putw(arg0:Int, arg1:Pointer[FILE]) : Int;

external (cdecl) remove(arg0:Pointer[CChar]) : Int;

external (cdecl) rename(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Int;

external (cdecl) _unlink(arg0:Pointer[CChar]) : Int;

external (cdecl) unlink(arg0:Pointer[CChar]) : Int;

external (cdecl) rewind(arg0:Pointer[FILE]) : ;

external (cdecl) _rmtmp() : Int;

external (cdecl) scanf(arg0:Pointer[CChar], ..) : Int;

external (cdecl) _scanf_l(arg0:Pointer[CChar], arg1:_locale_t, ..) : Int;

external (cdecl) scanf_s(arg0:Pointer[CChar], ..) : Int;

external (cdecl) _scanf_s_l(arg0:Pointer[CChar], arg1:_locale_t, ..) : Int;

external (cdecl) setbuf(arg0:Pointer[FILE], arg1:Pointer[CChar]) : ;

external (cdecl) _setmaxstdio(arg0:Int) : Int;

external (cdecl) _set_output_format(arg0:UInt) : UInt;

external (cdecl) _get_output_format() : UInt;

external (cdecl) setvbuf(arg0:Pointer[FILE], arg1:Pointer[CChar], arg2:Int, arg3:size_t) : Int;

external (cdecl) _snprintf_s(arg0:Pointer[CChar], arg1:size_t, arg2:size_t, arg3:Pointer[CChar], ..) : Int;

external (cdecl) sprintf_s(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], ..) : Int;

external (cdecl) _scprintf(arg0:Pointer[CChar], ..) : Int;

external (cdecl) sscanf(arg0:Pointer[CChar], arg1:Pointer[CChar], ..) : Int;

external (cdecl) _sscanf_l(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:_locale_t, ..) : Int;

external (cdecl) sscanf_s(arg0:Pointer[CChar], arg1:Pointer[CChar], ..) : Int;

external (cdecl) _sscanf_s_l(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:_locale_t, ..) : Int;

external (cdecl) _snscanf(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], ..) : Int;

external (cdecl) _snscanf_l(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:_locale_t, ..) : Int;

external (cdecl) _snscanf_s(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], ..) : Int;

external (cdecl) _snscanf_s_l(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:_locale_t, ..) : Int;

external (cdecl) tmpfile() : Pointer[FILE];

external (cdecl) tmpfile_s(arg0:Pointer[Pointer[FILE]]) : errno_t;

external (cdecl) tmpnam_s(arg0:Pointer[CChar], arg1:rsize_t) : errno_t;

external (cdecl) tmpnam(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) ungetc(arg0:Int, arg1:Pointer[FILE]) : Int;

external (cdecl) vfprintf(arg0:Pointer[FILE], arg1:Pointer[CChar], arg2:va_list) : Int;

external (cdecl) vfprintf_s(arg0:Pointer[FILE], arg1:Pointer[CChar], arg2:va_list) : Int;

external (cdecl) vprintf(arg0:Pointer[CChar], arg1:va_list) : Int;

external (cdecl) vprintf_s(arg0:Pointer[CChar], arg1:va_list) : Int;

external (cdecl) vsnprintf(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:va_list) : Int;

external (cdecl) vsnprintf_s(arg0:Pointer[CChar], arg1:size_t, arg2:size_t, arg3:Pointer[CChar], arg4:va_list) : Int;

external (cdecl) _vsnprintf_s(arg0:Pointer[CChar], arg1:size_t, arg2:size_t, arg3:Pointer[CChar], arg4:va_list) : Int;

external (cdecl) _snprintf(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], ..) : Int;

external (cdecl) _vsnprintf(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:va_list) : Int;

external (cdecl) vsprintf_s(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:va_list) : Int;

external (cdecl) sprintf(arg0:Pointer[CChar], arg1:Pointer[CChar], ..) : Int;

external (cdecl) vsprintf(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:va_list) : Int;

external (cdecl) _vscprintf(arg0:Pointer[CChar], arg1:va_list) : Int;

external (cdecl) _snprintf_c(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], ..) : Int;

external (cdecl) _vsnprintf_c(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:va_list) : Int;

external (cdecl) _fprintf_p(arg0:Pointer[FILE], arg1:Pointer[CChar], ..) : Int;

external (cdecl) _printf_p(arg0:Pointer[CChar], ..) : Int;

external (cdecl) _sprintf_p(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], ..) : Int;

external (cdecl) _vfprintf_p(arg0:Pointer[FILE], arg1:Pointer[CChar], arg2:va_list) : Int;

external (cdecl) _vprintf_p(arg0:Pointer[CChar], arg1:va_list) : Int;

external (cdecl) _vsprintf_p(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:va_list) : Int;

external (cdecl) _scprintf_p(arg0:Pointer[CChar], ..) : Int;

external (cdecl) _vscprintf_p(arg0:Pointer[CChar], arg1:va_list) : Int;

external (cdecl) _set_printf_count_output(arg0:Int) : Int;

external (cdecl) _get_printf_count_output() : Int;

external (cdecl) _printf_l(arg0:Pointer[CChar], arg1:_locale_t, ..) : Int;

external (cdecl) _printf_p_l(arg0:Pointer[CChar], arg1:_locale_t, ..) : Int;

external (cdecl) _printf_s_l(arg0:Pointer[CChar], arg1:_locale_t, ..) : Int;

external (cdecl) _vprintf_l(arg0:Pointer[CChar], arg1:_locale_t, arg2:va_list) : Int;

external (cdecl) _vprintf_p_l(arg0:Pointer[CChar], arg1:_locale_t, arg2:va_list) : Int;

external (cdecl) _vprintf_s_l(arg0:Pointer[CChar], arg1:_locale_t, arg2:va_list) : Int;

external (cdecl) _fprintf_l(arg0:Pointer[FILE], arg1:Pointer[CChar], arg2:_locale_t, ..) : Int;

external (cdecl) _fprintf_p_l(arg0:Pointer[FILE], arg1:Pointer[CChar], arg2:_locale_t, ..) : Int;

external (cdecl) _fprintf_s_l(arg0:Pointer[FILE], arg1:Pointer[CChar], arg2:_locale_t, ..) : Int;

external (cdecl) _vfprintf_l(arg0:Pointer[FILE], arg1:Pointer[CChar], arg2:_locale_t, arg3:va_list) : Int;

external (cdecl) _vfprintf_p_l(arg0:Pointer[FILE], arg1:Pointer[CChar], arg2:_locale_t, arg3:va_list) : Int;

external (cdecl) _vfprintf_s_l(arg0:Pointer[FILE], arg1:Pointer[CChar], arg2:_locale_t, arg3:va_list) : Int;

external (cdecl) _sprintf_l(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:_locale_t, ..) : Int;

external (cdecl) _sprintf_p_l(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:_locale_t, ..) : Int;

external (cdecl) _sprintf_s_l(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:_locale_t, ..) : Int;

external (cdecl) _vsprintf_l(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:_locale_t, arg3:va_list) : Int;

external (cdecl) _vsprintf_p_l(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:_locale_t, arg4:va_list) : Int;

external (cdecl) _vsprintf_s_l(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:_locale_t, arg4:va_list) : Int;

external (cdecl) _scprintf_l(arg0:Pointer[CChar], arg1:_locale_t, ..) : Int;

external (cdecl) _scprintf_p_l(arg0:Pointer[CChar], arg1:_locale_t, ..) : Int;

external (cdecl) _vscprintf_l(arg0:Pointer[CChar], arg1:_locale_t, arg2:va_list) : Int;

external (cdecl) _vscprintf_p_l(arg0:Pointer[CChar], arg1:_locale_t, arg2:va_list) : Int;

external (cdecl) _snprintf_l(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:_locale_t, ..) : Int;

external (cdecl) _snprintf_c_l(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:_locale_t, ..) : Int;

external (cdecl) _snprintf_s_l(arg0:Pointer[CChar], arg1:size_t, arg2:size_t, arg3:Pointer[CChar], arg4:_locale_t, ..) : Int;

external (cdecl) _vsnprintf_l(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:_locale_t, arg4:va_list) : Int;

external (cdecl) _vsnprintf_c_l(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:_locale_t, arg4:va_list) : Int;

external (cdecl) _vsnprintf_s_l(arg0:Pointer[CChar], arg1:size_t, arg2:size_t, arg3:Pointer[CChar], arg4:_locale_t, arg5:va_list) : Int;

external (cdecl) _wfsopen(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:Int) : Pointer[FILE];

external (cdecl) fgetwc(arg0:Pointer[FILE]) : wint_t;

external (cdecl) _fgetwchar() : wint_t;

external (cdecl) fputwc(arg0:wchar_t, arg1:Pointer[FILE]) : wint_t;

external (cdecl) _fputwchar(arg0:wchar_t) : wint_t;

external (cdecl) getwc(arg0:Pointer[FILE]) : wint_t;

external (cdecl) getwchar() : wint_t;

external (cdecl) putwc(arg0:wchar_t, arg1:Pointer[FILE]) : wint_t;

external (cdecl) putwchar(arg0:wchar_t) : wint_t;

external (cdecl) ungetwc(arg0:wint_t, arg1:Pointer[FILE]) : wint_t;

external (cdecl) fgetws(arg0:Pointer[wchar_t], arg1:Int, arg2:Pointer[FILE]) : Pointer[wchar_t];

external (cdecl) fputws(arg0:Pointer[wchar_t], arg1:Pointer[FILE]) : Int;

external (cdecl) _getws_s(arg0:Pointer[wchar_t], arg1:size_t) : Pointer[wchar_t];

external (cdecl) _getws(arg0:Pointer[wchar_t]) : Pointer[wchar_t];

external (cdecl) _putws(arg0:Pointer[wchar_t]) : Int;

external (cdecl) fwprintf(arg0:Pointer[FILE], arg1:Pointer[wchar_t], ..) : Int;

external (cdecl) fwprintf_s(arg0:Pointer[FILE], arg1:Pointer[wchar_t], ..) : Int;

external (cdecl) wprintf(arg0:Pointer[wchar_t], ..) : Int;

external (cdecl) wprintf_s(arg0:Pointer[wchar_t], ..) : Int;

external (cdecl) _scwprintf(arg0:Pointer[wchar_t], ..) : Int;

external (cdecl) vfwprintf(arg0:Pointer[FILE], arg1:Pointer[wchar_t], arg2:va_list) : Int;

external (cdecl) vfwprintf_s(arg0:Pointer[FILE], arg1:Pointer[wchar_t], arg2:va_list) : Int;

external (cdecl) vwprintf(arg0:Pointer[wchar_t], arg1:va_list) : Int;

external (cdecl) vwprintf_s(arg0:Pointer[wchar_t], arg1:va_list) : Int;

external (cdecl) swprintf_s(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], ..) : Int;

external (cdecl) vswprintf_s(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], arg3:va_list) : Int;

external (cdecl) _swprintf_c(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], ..) : Int;

external (cdecl) _vswprintf_c(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], arg3:va_list) : Int;

external (cdecl) _snwprintf_s(arg0:Pointer[wchar_t], arg1:size_t, arg2:size_t, arg3:Pointer[wchar_t], ..) : Int;

external (cdecl) _vsnwprintf_s(arg0:Pointer[wchar_t], arg1:size_t, arg2:size_t, arg3:Pointer[wchar_t], arg4:va_list) : Int;

external (cdecl) _snwprintf(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], ..) : Int;

external (cdecl) _vsnwprintf(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], arg3:va_list) : Int;

external (cdecl) _fwprintf_p(arg0:Pointer[FILE], arg1:Pointer[wchar_t], ..) : Int;

external (cdecl) _wprintf_p(arg0:Pointer[wchar_t], ..) : Int;

external (cdecl) _vfwprintf_p(arg0:Pointer[FILE], arg1:Pointer[wchar_t], arg2:va_list) : Int;

external (cdecl) _vwprintf_p(arg0:Pointer[wchar_t], arg1:va_list) : Int;

external (cdecl) _swprintf_p(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], ..) : Int;

external (cdecl) _vswprintf_p(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], arg3:va_list) : Int;

external (cdecl) _scwprintf_p(arg0:Pointer[wchar_t], ..) : Int;

external (cdecl) _vscwprintf_p(arg0:Pointer[wchar_t], arg1:va_list) : Int;

external (cdecl) _wprintf_l(arg0:Pointer[wchar_t], arg1:_locale_t, ..) : Int;

external (cdecl) _wprintf_p_l(arg0:Pointer[wchar_t], arg1:_locale_t, ..) : Int;

external (cdecl) _wprintf_s_l(arg0:Pointer[wchar_t], arg1:_locale_t, ..) : Int;

external (cdecl) _vwprintf_l(arg0:Pointer[wchar_t], arg1:_locale_t, arg2:va_list) : Int;

external (cdecl) _vwprintf_p_l(arg0:Pointer[wchar_t], arg1:_locale_t, arg2:va_list) : Int;

external (cdecl) _vwprintf_s_l(arg0:Pointer[wchar_t], arg1:_locale_t, arg2:va_list) : Int;

external (cdecl) _fwprintf_l(arg0:Pointer[FILE], arg1:Pointer[wchar_t], arg2:_locale_t, ..) : Int;

external (cdecl) _fwprintf_p_l(arg0:Pointer[FILE], arg1:Pointer[wchar_t], arg2:_locale_t, ..) : Int;

external (cdecl) _fwprintf_s_l(arg0:Pointer[FILE], arg1:Pointer[wchar_t], arg2:_locale_t, ..) : Int;

external (cdecl) _vfwprintf_l(arg0:Pointer[FILE], arg1:Pointer[wchar_t], arg2:_locale_t, arg3:va_list) : Int;

external (cdecl) _vfwprintf_p_l(arg0:Pointer[FILE], arg1:Pointer[wchar_t], arg2:_locale_t, arg3:va_list) : Int;

external (cdecl) _vfwprintf_s_l(arg0:Pointer[FILE], arg1:Pointer[wchar_t], arg2:_locale_t, arg3:va_list) : Int;

external (cdecl) _swprintf_c_l(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], arg3:_locale_t, ..) : Int;

external (cdecl) _swprintf_p_l(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], arg3:_locale_t, ..) : Int;

external (cdecl) _swprintf_s_l(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], arg3:_locale_t, ..) : Int;

external (cdecl) _vswprintf_c_l(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], arg3:_locale_t, arg4:va_list) : Int;

external (cdecl) _vswprintf_p_l(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], arg3:_locale_t, arg4:va_list) : Int;

external (cdecl) _vswprintf_s_l(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], arg3:_locale_t, arg4:va_list) : Int;

external (cdecl) _scwprintf_l(arg0:Pointer[wchar_t], arg1:_locale_t, ..) : Int;

external (cdecl) _scwprintf_p_l(arg0:Pointer[wchar_t], arg1:_locale_t, ..) : Int;

external (cdecl) _vscwprintf_p_l(arg0:Pointer[wchar_t], arg1:_locale_t, arg2:va_list) : Int;

external (cdecl) _snwprintf_l(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], arg3:_locale_t, ..) : Int;

external (cdecl) _snwprintf_s_l(arg0:Pointer[wchar_t], arg1:size_t, arg2:size_t, arg3:Pointer[wchar_t], arg4:_locale_t, ..) : Int;

external (cdecl) _vsnwprintf_l(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], arg3:_locale_t, arg4:va_list) : Int;

external (cdecl) _vsnwprintf_s_l(arg0:Pointer[wchar_t], arg1:size_t, arg2:size_t, arg3:Pointer[wchar_t], arg4:_locale_t, arg5:va_list) : Int;

external (cdecl) _swprintf(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], ..) : Int;

external (cdecl) _vswprintf(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:va_list) : Int;

external (cdecl) __swprintf_l(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:_locale_t, ..) : Int;

external (cdecl) __vswprintf_l(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:_locale_t, arg3:va_list) : Int;

external (cdecl) swprintf(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], ..) : Int;

external (cdecl) vswprintf(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], arg3:va_list) : Int;

external (cdecl) _swprintf_l(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], arg3:_locale_t, ..) : Int;

external (cdecl) _vswprintf_l(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], arg3:_locale_t, arg4:va_list) : Int;

external (cdecl) _wtempnam(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t]) : Pointer[wchar_t];

external (cdecl) _vscwprintf(arg0:Pointer[wchar_t], arg1:va_list) : Int;

external (cdecl) _vscwprintf_l(arg0:Pointer[wchar_t], arg1:_locale_t, arg2:va_list) : Int;

external (cdecl) fwscanf(arg0:Pointer[FILE], arg1:Pointer[wchar_t], ..) : Int;

external (cdecl) _fwscanf_l(arg0:Pointer[FILE], arg1:Pointer[wchar_t], arg2:_locale_t, ..) : Int;

external (cdecl) fwscanf_s(arg0:Pointer[FILE], arg1:Pointer[wchar_t], ..) : Int;

external (cdecl) _fwscanf_s_l(arg0:Pointer[FILE], arg1:Pointer[wchar_t], arg2:_locale_t, ..) : Int;

external (cdecl) swscanf(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], ..) : Int;

external (cdecl) _swscanf_l(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:_locale_t, ..) : Int;

external (cdecl) swscanf_s(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], ..) : Int;

external (cdecl) _swscanf_s_l(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:_locale_t, ..) : Int;

external (cdecl) _snwscanf(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], ..) : Int;

external (cdecl) _snwscanf_l(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], arg3:_locale_t, ..) : Int;

external (cdecl) _snwscanf_s(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], ..) : Int;

external (cdecl) _snwscanf_s_l(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], arg3:_locale_t, ..) : Int;

external (cdecl) wscanf(arg0:Pointer[wchar_t], ..) : Int;

external (cdecl) _wscanf_l(arg0:Pointer[wchar_t], arg1:_locale_t, ..) : Int;

external (cdecl) wscanf_s(arg0:Pointer[wchar_t], ..) : Int;

external (cdecl) _wscanf_s_l(arg0:Pointer[wchar_t], arg1:_locale_t, ..) : Int;

external (cdecl) _wfdopen(arg0:Int, arg1:Pointer[wchar_t]) : Pointer[FILE];

external (cdecl) _wfopen(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t]) : Pointer[FILE];

external (cdecl) _wfopen_s(arg0:Pointer[Pointer[FILE]], arg1:Pointer[wchar_t], arg2:Pointer[wchar_t]) : errno_t;

external (cdecl) _wfreopen(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:Pointer[FILE]) : Pointer[FILE];

external (cdecl) _wfreopen_s(arg0:Pointer[Pointer[FILE]], arg1:Pointer[wchar_t], arg2:Pointer[wchar_t], arg3:Pointer[FILE]) : errno_t;

external (cdecl) _wperror(arg0:Pointer[wchar_t]) : ;

external (cdecl) _wpopen(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t]) : Pointer[FILE];

external (cdecl) _wremove(arg0:Pointer[wchar_t]) : Int;

external (cdecl) _wtmpnam_s(arg0:Pointer[wchar_t], arg1:size_t) : errno_t;

external (cdecl) _wtmpnam(arg0:Pointer[wchar_t]) : Pointer[wchar_t];

external (cdecl) _fgetwc_nolock(arg0:Pointer[FILE]) : wint_t;

external (cdecl) _fputwc_nolock(arg0:wchar_t, arg1:Pointer[FILE]) : wint_t;

external (cdecl) _ungetwc_nolock(arg0:wint_t, arg1:Pointer[FILE]) : wint_t;

external (cdecl) _lock_file(arg0:Pointer[FILE]) : ;

external (cdecl) _unlock_file(arg0:Pointer[FILE]) : ;

external (cdecl) _fclose_nolock(arg0:Pointer[FILE]) : Int;

external (cdecl) _fflush_nolock(arg0:Pointer[FILE]) : Int;

external (cdecl) _fread_nolock(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:Pointer[FILE]) : size_t;

external (cdecl) _fread_nolock_s(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:size_t, arg4:Pointer[FILE]) : size_t;

external (cdecl) _fseek_nolock(arg0:Pointer[FILE], arg1:CLong, arg2:Int) : Int;

external (cdecl) _ftell_nolock(arg0:Pointer[FILE]) : CLong;

external (cdecl) _fseeki64_nolock(arg0:Pointer[FILE], arg1:Int64, arg2:Int) : Int;

external (cdecl) _ftelli64_nolock(arg0:Pointer[FILE]) : Int64;

external (cdecl) _fwrite_nolock(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:Pointer[FILE]) : size_t;

external (cdecl) _ungetc_nolock(arg0:Int, arg1:Pointer[FILE]) : Int;

external (cdecl) tempnam(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) fcloseall() : Int;

external (cdecl) fdopen(arg0:Int, arg1:Pointer[CChar]) : Pointer[FILE];

external (cdecl) fgetchar() : Int;

external (cdecl) fileno(arg0:Pointer[FILE]) : Int;

external (cdecl) flushall() : Int;

external (cdecl) fputchar(arg0:Int) : Int;

external (cdecl) getw(arg0:Pointer[FILE]) : Int;

external (cdecl) putw(arg0:Int, arg1:Pointer[FILE]) : Int;

external (cdecl) rmtmp() : Int;

alias _onexit_t = CCodePointer[[],[Int]];

record Struct__div_t (
    quot : Int,
    rem : Int,
);

alias div_t = Struct__div_t;

record Struct__ldiv_t (
    quot : CLong,
    rem : CLong,
);

alias ldiv_t = Struct__ldiv_t;

record Struct__lldiv_t (
    quot : Int64,
    rem : Int64,
);

alias lldiv_t = Struct__lldiv_t;

record Struct_Unnamed2 (
    ld : Array[CUChar, 10],
);

alias _LDOUBLE = Struct_Unnamed2;

record Struct_Unnamed3 (
    x : Double,
);

alias _CRT_DOUBLE = Struct_Unnamed3;

record Struct_Unnamed4 (
    f : Float,
);

alias _CRT_FLOAT = Struct_Unnamed4;

record Struct_Unnamed5 (
    x : LongDouble,
);

alias _LONGDOUBLE = Struct_Unnamed5;

record Struct_Unnamed6 (
    ld12 : Array[CUChar, 12],
);

alias _LDBL12 = Struct_Unnamed6;

external __mb_cur_max : Int;

external (cdecl) ___mb_cur_max_func() : Int;

external (cdecl) ___mb_cur_max_l_func(arg0:_locale_t) : Int;

alias _purecall_handler = CCodePointer[[],[]];

external (cdecl) _set_purecall_handler(arg0:_purecall_handler) : _purecall_handler;

external (cdecl) _get_purecall_handler() : _purecall_handler;

alias _invalid_parameter_handler = CCodePointer[[Pointer[wchar_t], Pointer[wchar_t], Pointer[wchar_t], UInt, uintptr_t],[]];

external (cdecl) _set_invalid_parameter_handler(arg0:_invalid_parameter_handler) : _invalid_parameter_handler;

external (cdecl) _get_invalid_parameter_handler() : _invalid_parameter_handler;

external (cdecl) _errno() : Pointer[Int];

external (cdecl) _set_errno(arg0:Int) : errno_t;

external (cdecl) _get_errno(arg0:Pointer[Int]) : errno_t;

external (cdecl) __doserrno() : Pointer[CULong];

external (cdecl) _set_doserrno(arg0:CULong) : errno_t;

external (cdecl) _get_doserrno(arg0:Pointer[CULong]) : errno_t;

external (cdecl) __sys_errlist() : Pointer[Pointer[CChar]];

external (cdecl) __sys_nerr() : Pointer[Int];

external __argc : Int;

external __argv : Pointer[Pointer[CChar]];

external __wargv : Pointer[Pointer[wchar_t]];

external _environ : Pointer[Pointer[CChar]];

external _wenviron : Pointer[Pointer[wchar_t]];

external _pgmptr : Pointer[CChar];

external _wpgmptr : Pointer[wchar_t];

external (cdecl) _get_pgmptr(arg0:Pointer[Pointer[CChar]]) : errno_t;

external (cdecl) _get_wpgmptr(arg0:Pointer[Pointer[wchar_t]]) : errno_t;

external _fmode : Int;

external (cdecl) _set_fmode(arg0:Int) : errno_t;

external (cdecl) _get_fmode(arg0:Pointer[Int]) : errno_t;

external (cdecl) exit(arg0:Int) : ;

external (cdecl) _exit(arg0:Int) : ;

external (cdecl) abort() : ;

external (cdecl) _set_abort_behavior(arg0:UInt, arg1:UInt) : UInt;

external (cdecl) abs(arg0:Int) : Int;

external (cdecl) labs(arg0:CLong) : CLong;

external (cdecl) llabs(arg0:Int64) : Int64;

external (cdecl) _abs64(arg0:Int64) : Int64;

external (cdecl) atexit(arg0:CCodePointer[[],[]]) : Int;

external (cdecl) atof(arg0:Pointer[CChar]) : Double;

external (cdecl) _atof_l(arg0:Pointer[CChar], arg1:_locale_t) : Double;

external (cdecl) atoi(arg0:Pointer[CChar]) : Int;

external (cdecl) _atoi_l(arg0:Pointer[CChar], arg1:_locale_t) : Int;

external (cdecl) atol(arg0:Pointer[CChar]) : CLong;

external (cdecl) _atol_l(arg0:Pointer[CChar], arg1:_locale_t) : CLong;

external (cdecl) bsearch_s(arg0:OpaquePointer, arg1:OpaquePointer, arg2:rsize_t, arg3:rsize_t, arg4:CCodePointer[[OpaquePointer, OpaquePointer, OpaquePointer],[Int]], arg5:OpaquePointer) : OpaquePointer;

external (cdecl) bsearch(arg0:OpaquePointer, arg1:OpaquePointer, arg2:size_t, arg3:size_t, arg4:CCodePointer[[OpaquePointer, OpaquePointer],[Int]]) : OpaquePointer;

external (cdecl) qsort_s(arg0:OpaquePointer, arg1:rsize_t, arg2:rsize_t, arg3:CCodePointer[[OpaquePointer, OpaquePointer, OpaquePointer],[Int]], arg4:OpaquePointer) : ;

external (cdecl) qsort(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:CCodePointer[[OpaquePointer, OpaquePointer],[Int]]) : ;

external (cdecl) _byteswap_ushort(arg0:UShort) : UShort;

external (cdecl) _byteswap_ulong(arg0:CULong) : CULong;

external (cdecl) _byteswap_uint64(arg0:UInt64) : UInt64;

external (cdecl) div(arg0:Int, arg1:Int) : div_t;

external (cdecl) getenv(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) getenv_s(arg0:Pointer[size_t], arg1:Pointer[CChar], arg2:rsize_t, arg3:Pointer[CChar]) : errno_t;

external (cdecl) _dupenv_s(arg0:Pointer[Pointer[CChar]], arg1:Pointer[size_t], arg2:Pointer[CChar]) : errno_t;

external (cdecl) _itoa_s(arg0:Int, arg1:Pointer[CChar], arg2:size_t, arg3:Int) : errno_t;

external (cdecl) _itoa(arg0:Int, arg1:Pointer[CChar], arg2:Int) : Pointer[CChar];

external (cdecl) _i64toa_s(arg0:Int64, arg1:Pointer[CChar], arg2:size_t, arg3:Int) : errno_t;

external (cdecl) _i64toa(arg0:Int64, arg1:Pointer[CChar], arg2:Int) : Pointer[CChar];

external (cdecl) _ui64toa_s(arg0:UInt64, arg1:Pointer[CChar], arg2:size_t, arg3:Int) : errno_t;

external (cdecl) _ui64toa(arg0:UInt64, arg1:Pointer[CChar], arg2:Int) : Pointer[CChar];

external (cdecl) _atoi64(arg0:Pointer[CChar]) : Int64;

external (cdecl) _atoi64_l(arg0:Pointer[CChar], arg1:_locale_t) : Int64;

external (cdecl) _strtoi64(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]], arg2:Int) : Int64;

external (cdecl) _strtoi64_l(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]], arg2:Int, arg3:_locale_t) : Int64;

external (cdecl) _strtoui64(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]], arg2:Int) : UInt64;

external (cdecl) _strtoui64_l(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]], arg2:Int, arg3:_locale_t) : UInt64;

external (cdecl) ldiv(arg0:CLong, arg1:CLong) : ldiv_t;

external (cdecl) lldiv(arg0:Int64, arg1:Int64) : lldiv_t;

external (cdecl) _ltoa_s(arg0:CLong, arg1:Pointer[CChar], arg2:size_t, arg3:Int) : errno_t;

external (cdecl) _ltoa(arg0:CLong, arg1:Pointer[CChar], arg2:Int) : Pointer[CChar];

external (cdecl) mblen(arg0:Pointer[CChar], arg1:size_t) : Int;

external (cdecl) _mblen_l(arg0:Pointer[CChar], arg1:size_t, arg2:_locale_t) : Int;

external (cdecl) _mbstrlen(arg0:Pointer[CChar]) : size_t;

external (cdecl) _mbstrlen_l(arg0:Pointer[CChar], arg1:_locale_t) : size_t;

external (cdecl) _mbstrnlen(arg0:Pointer[CChar], arg1:size_t) : size_t;

external (cdecl) _mbstrnlen_l(arg0:Pointer[CChar], arg1:size_t, arg2:_locale_t) : size_t;

external (cdecl) mbtowc(arg0:Pointer[wchar_t], arg1:Pointer[CChar], arg2:size_t) : Int;

external (cdecl) _mbtowc_l(arg0:Pointer[wchar_t], arg1:Pointer[CChar], arg2:size_t, arg3:_locale_t) : Int;

external (cdecl) mbstowcs_s(arg0:Pointer[size_t], arg1:Pointer[wchar_t], arg2:size_t, arg3:Pointer[CChar], arg4:size_t) : errno_t;

external (cdecl) mbstowcs(arg0:Pointer[wchar_t], arg1:Pointer[CChar], arg2:size_t) : size_t;

external (cdecl) _mbstowcs_s_l(arg0:Pointer[size_t], arg1:Pointer[wchar_t], arg2:size_t, arg3:Pointer[CChar], arg4:size_t, arg5:_locale_t) : errno_t;

external (cdecl) _mbstowcs_l(arg0:Pointer[wchar_t], arg1:Pointer[CChar], arg2:size_t, arg3:_locale_t) : size_t;

external (cdecl) rand() : Int;

external (cdecl) _set_error_mode(arg0:Int) : Int;

external (cdecl) srand(arg0:UInt) : ;

external (cdecl) strtod(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]]) : Double;

external (cdecl) _strtod_l(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]], arg2:_locale_t) : Double;

external (cdecl) strtol(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]], arg2:Int) : CLong;

external (cdecl) _strtol_l(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]], arg2:Int, arg3:_locale_t) : CLong;

external (cdecl) strtoul(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]], arg2:Int) : CULong;

external (cdecl) _strtoul_l(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]], arg2:Int, arg3:_locale_t) : CULong;

external (cdecl) system(arg0:Pointer[CChar]) : Int;

external (cdecl) _ultoa_s(arg0:CULong, arg1:Pointer[CChar], arg2:size_t, arg3:Int) : errno_t;

external (cdecl) _ultoa(arg0:CULong, arg1:Pointer[CChar], arg2:Int) : Pointer[CChar];

external (cdecl) wctomb(arg0:Pointer[CChar], arg1:wchar_t) : Int;

external (cdecl) _wctomb_l(arg0:Pointer[CChar], arg1:wchar_t, arg2:_locale_t) : Int;

external (cdecl) wctomb_s(arg0:Pointer[Int], arg1:Pointer[CChar], arg2:rsize_t, arg3:wchar_t) : errno_t;

external (cdecl) _wctomb_s_l(arg0:Pointer[Int], arg1:Pointer[CChar], arg2:size_t, arg3:wchar_t, arg4:_locale_t) : errno_t;

external (cdecl) wcstombs_s(arg0:Pointer[size_t], arg1:Pointer[CChar], arg2:size_t, arg3:Pointer[wchar_t], arg4:size_t) : errno_t;

external (cdecl) wcstombs(arg0:Pointer[CChar], arg1:Pointer[wchar_t], arg2:size_t) : size_t;

external (cdecl) _wcstombs_s_l(arg0:Pointer[size_t], arg1:Pointer[CChar], arg2:size_t, arg3:Pointer[wchar_t], arg4:size_t, arg5:_locale_t) : errno_t;

external (cdecl) _wcstombs_l(arg0:Pointer[CChar], arg1:Pointer[wchar_t], arg2:size_t, arg3:_locale_t) : size_t;

external (cdecl) calloc(arg0:size_t, arg1:size_t) : OpaquePointer;

external (cdecl) free(arg0:OpaquePointer) : ;

external (cdecl) malloc(arg0:size_t) : OpaquePointer;

external (cdecl) realloc(arg0:OpaquePointer, arg1:size_t) : OpaquePointer;

external (cdecl) _recalloc(arg0:OpaquePointer, arg1:size_t, arg2:size_t) : OpaquePointer;

external (cdecl) _aligned_free(arg0:OpaquePointer) : ;

external (cdecl) _aligned_malloc(arg0:size_t, arg1:size_t) : OpaquePointer;

external (cdecl) _aligned_offset_malloc(arg0:size_t, arg1:size_t, arg2:size_t) : OpaquePointer;

external (cdecl) _aligned_realloc(arg0:OpaquePointer, arg1:size_t, arg2:size_t) : OpaquePointer;

external (cdecl) _aligned_recalloc(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:size_t) : OpaquePointer;

external (cdecl) _aligned_offset_realloc(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:size_t) : OpaquePointer;

external (cdecl) _aligned_offset_recalloc(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:size_t, arg4:size_t) : OpaquePointer;

external (cdecl) _aligned_msize(arg0:OpaquePointer, arg1:size_t, arg2:size_t) : size_t;

external (cdecl) _itow_s(arg0:Int, arg1:Pointer[wchar_t], arg2:size_t, arg3:Int) : errno_t;

external (cdecl) _itow(arg0:Int, arg1:Pointer[wchar_t], arg2:Int) : Pointer[wchar_t];

external (cdecl) _ltow_s(arg0:CLong, arg1:Pointer[wchar_t], arg2:size_t, arg3:Int) : errno_t;

external (cdecl) _ltow(arg0:CLong, arg1:Pointer[wchar_t], arg2:Int) : Pointer[wchar_t];

external (cdecl) _ultow_s(arg0:CULong, arg1:Pointer[wchar_t], arg2:size_t, arg3:Int) : errno_t;

external (cdecl) _ultow(arg0:CULong, arg1:Pointer[wchar_t], arg2:Int) : Pointer[wchar_t];

external (cdecl) wcstod(arg0:Pointer[wchar_t], arg1:Pointer[Pointer[wchar_t]]) : Double;

external (cdecl) _wcstod_l(arg0:Pointer[wchar_t], arg1:Pointer[Pointer[wchar_t]], arg2:_locale_t) : Double;

external (cdecl) wcstol(arg0:Pointer[wchar_t], arg1:Pointer[Pointer[wchar_t]], arg2:Int) : CLong;

external (cdecl) _wcstol_l(arg0:Pointer[wchar_t], arg1:Pointer[Pointer[wchar_t]], arg2:Int, arg3:_locale_t) : CLong;

external (cdecl) wcstoul(arg0:Pointer[wchar_t], arg1:Pointer[Pointer[wchar_t]], arg2:Int) : CULong;

external (cdecl) _wcstoul_l(arg0:Pointer[wchar_t], arg1:Pointer[Pointer[wchar_t]], arg2:Int, arg3:_locale_t) : CULong;

external (cdecl) _wgetenv(arg0:Pointer[wchar_t]) : Pointer[wchar_t];

external (cdecl) _wgetenv_s(arg0:Pointer[size_t], arg1:Pointer[wchar_t], arg2:size_t, arg3:Pointer[wchar_t]) : errno_t;

external (cdecl) _wdupenv_s(arg0:Pointer[Pointer[wchar_t]], arg1:Pointer[size_t], arg2:Pointer[wchar_t]) : errno_t;

external (cdecl) _wsystem(arg0:Pointer[wchar_t]) : Int;

external (cdecl) _wtof(arg0:Pointer[wchar_t]) : Double;

external (cdecl) _wtof_l(arg0:Pointer[wchar_t], arg1:_locale_t) : Double;

external (cdecl) _wtoi(arg0:Pointer[wchar_t]) : Int;

external (cdecl) _wtoi_l(arg0:Pointer[wchar_t], arg1:_locale_t) : Int;

external (cdecl) _wtol(arg0:Pointer[wchar_t]) : CLong;

external (cdecl) _wtol_l(arg0:Pointer[wchar_t], arg1:_locale_t) : CLong;

external (cdecl) _i64tow_s(arg0:Int64, arg1:Pointer[wchar_t], arg2:size_t, arg3:Int) : errno_t;

external (cdecl) _i64tow(arg0:Int64, arg1:Pointer[wchar_t], arg2:Int) : Pointer[wchar_t];

external (cdecl) _ui64tow_s(arg0:UInt64, arg1:Pointer[wchar_t], arg2:size_t, arg3:Int) : errno_t;

external (cdecl) _ui64tow(arg0:UInt64, arg1:Pointer[wchar_t], arg2:Int) : Pointer[wchar_t];

external (cdecl) _wtoi64(arg0:Pointer[wchar_t]) : Int64;

external (cdecl) _wtoi64_l(arg0:Pointer[wchar_t], arg1:_locale_t) : Int64;

external (cdecl) _wcstoi64(arg0:Pointer[wchar_t], arg1:Pointer[Pointer[wchar_t]], arg2:Int) : Int64;

external (cdecl) _wcstoi64_l(arg0:Pointer[wchar_t], arg1:Pointer[Pointer[wchar_t]], arg2:Int, arg3:_locale_t) : Int64;

external (cdecl) _wcstoui64(arg0:Pointer[wchar_t], arg1:Pointer[Pointer[wchar_t]], arg2:Int) : UInt64;

external (cdecl) _wcstoui64_l(arg0:Pointer[wchar_t], arg1:Pointer[Pointer[wchar_t]], arg2:Int, arg3:_locale_t) : UInt64;

external (cdecl) _fullpath(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : Pointer[CChar];

external (cdecl) _ecvt_s(arg0:Pointer[CChar], arg1:size_t, arg2:Double, arg3:Int, arg4:Pointer[Int], arg5:Pointer[Int]) : errno_t;

external (cdecl) _ecvt(arg0:Double, arg1:Int, arg2:Pointer[Int], arg3:Pointer[Int]) : Pointer[CChar];

external (cdecl) _fcvt_s(arg0:Pointer[CChar], arg1:size_t, arg2:Double, arg3:Int, arg4:Pointer[Int], arg5:Pointer[Int]) : errno_t;

external (cdecl) _fcvt(arg0:Double, arg1:Int, arg2:Pointer[Int], arg3:Pointer[Int]) : Pointer[CChar];

external (cdecl) _gcvt_s(arg0:Pointer[CChar], arg1:size_t, arg2:Double, arg3:Int) : errno_t;

external (cdecl) _gcvt(arg0:Double, arg1:Int, arg2:Pointer[CChar]) : Pointer[CChar];

external (cdecl) _atodbl(arg0:Pointer[_CRT_DOUBLE], arg1:Pointer[CChar]) : Int;

external (cdecl) _atoldbl(arg0:Pointer[_LDOUBLE], arg1:Pointer[CChar]) : Int;

external (cdecl) _atoflt(arg0:Pointer[_CRT_FLOAT], arg1:Pointer[CChar]) : Int;

external (cdecl) _atodbl_l(arg0:Pointer[_CRT_DOUBLE], arg1:Pointer[CChar], arg2:_locale_t) : Int;

external (cdecl) _atoldbl_l(arg0:Pointer[_LDOUBLE], arg1:Pointer[CChar], arg2:_locale_t) : Int;

external (cdecl) _atoflt_l(arg0:Pointer[_CRT_FLOAT], arg1:Pointer[CChar], arg2:_locale_t) : Int;

external (cdecl) _lrotl(arg0:CULong, arg1:Int) : CULong;

external (cdecl) _lrotr(arg0:CULong, arg1:Int) : CULong;

external (cdecl) _makepath_s(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:Pointer[CChar], arg4:Pointer[CChar], arg5:Pointer[CChar]) : errno_t;

external (cdecl) _makepath(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Pointer[CChar], arg3:Pointer[CChar], arg4:Pointer[CChar]) : ;

external (cdecl) _onexit(arg0:_onexit_t) : _onexit_t;

external (cdecl) _putenv(arg0:Pointer[CChar]) : Int;

external (cdecl) _putenv_s(arg0:Pointer[CChar], arg1:Pointer[CChar]) : errno_t;

external (cdecl) _rotl(arg0:UInt, arg1:Int) : UInt;

external (cdecl) _rotl64(arg0:UInt64, arg1:Int) : UInt64;

external (cdecl) _rotr(arg0:UInt, arg1:Int) : UInt;

external (cdecl) _rotr64(arg0:UInt64, arg1:Int) : UInt64;

external (cdecl) _searchenv_s(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Pointer[CChar], arg3:size_t) : errno_t;

external (cdecl) _searchenv(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Pointer[CChar]) : ;

external (cdecl) _splitpath(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Pointer[CChar], arg3:Pointer[CChar], arg4:Pointer[CChar]) : ;

external (cdecl) _splitpath_s(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t, arg3:Pointer[CChar], arg4:size_t, arg5:Pointer[CChar], arg6:size_t, arg7:Pointer[CChar], arg8:size_t) : errno_t;

external (cdecl) _swab(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Int) : ;

external (cdecl) _wfullpath(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:size_t) : Pointer[wchar_t];

external (cdecl) _wmakepath_s(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], arg3:Pointer[wchar_t], arg4:Pointer[wchar_t], arg5:Pointer[wchar_t]) : errno_t;

external (cdecl) _wmakepath(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:Pointer[wchar_t], arg3:Pointer[wchar_t], arg4:Pointer[wchar_t]) : ;

external (cdecl) _wputenv(arg0:Pointer[wchar_t]) : Int;

external (cdecl) _wputenv_s(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t]) : errno_t;

external (cdecl) _wsearchenv_s(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:Pointer[wchar_t], arg3:size_t) : errno_t;

external (cdecl) _wsearchenv(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:Pointer[wchar_t]) : ;

external (cdecl) _wsplitpath(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:Pointer[wchar_t], arg3:Pointer[wchar_t], arg4:Pointer[wchar_t]) : ;

external (cdecl) _wsplitpath_s(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:size_t, arg3:Pointer[wchar_t], arg4:size_t, arg5:Pointer[wchar_t], arg6:size_t, arg7:Pointer[wchar_t], arg8:size_t) : errno_t;

external (cdecl) _seterrormode(arg0:Int) : ;

external (cdecl) _beep(arg0:UInt, arg1:UInt) : ;

external (cdecl) _sleep(arg0:CULong) : ;

external (cdecl) ecvt(arg0:Double, arg1:Int, arg2:Pointer[Int], arg3:Pointer[Int]) : Pointer[CChar];

external (cdecl) fcvt(arg0:Double, arg1:Int, arg2:Pointer[Int], arg3:Pointer[Int]) : Pointer[CChar];

external (cdecl) gcvt(arg0:Double, arg1:Int, arg2:Pointer[CChar]) : Pointer[CChar];

external (cdecl) itoa(arg0:Int, arg1:Pointer[CChar], arg2:Int) : Pointer[CChar];

external (cdecl) ltoa(arg0:CLong, arg1:Pointer[CChar], arg2:Int) : Pointer[CChar];

external (cdecl) putenv(arg0:Pointer[CChar]) : Int;

external (cdecl) swab(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Int) : ;

external (cdecl) ultoa(arg0:CULong, arg1:Pointer[CChar], arg2:Int) : Pointer[CChar];

external (cdecl) onexit(arg0:_onexit_t) : _onexit_t;

external (cdecl) _memccpy(arg0:OpaquePointer, arg1:OpaquePointer, arg2:Int, arg3:size_t) : OpaquePointer;

external (cdecl) memchr(arg0:OpaquePointer, arg1:Int, arg2:size_t) : OpaquePointer;

external (cdecl) _memicmp(arg0:OpaquePointer, arg1:OpaquePointer, arg2:size_t) : Int;

external (cdecl) _memicmp_l(arg0:OpaquePointer, arg1:OpaquePointer, arg2:size_t, arg3:_locale_t) : Int;

external (cdecl) memcmp(arg0:OpaquePointer, arg1:OpaquePointer, arg2:size_t) : Int;

external (cdecl) memcpy(arg0:OpaquePointer, arg1:OpaquePointer, arg2:size_t) : OpaquePointer;

external (cdecl) memcpy_s(arg0:OpaquePointer, arg1:rsize_t, arg2:OpaquePointer, arg3:rsize_t) : errno_t;

external (cdecl) memset(arg0:OpaquePointer, arg1:Int, arg2:size_t) : OpaquePointer;

external (cdecl) memccpy(arg0:OpaquePointer, arg1:OpaquePointer, arg2:Int, arg3:size_t) : OpaquePointer;

external (cdecl) memicmp(arg0:OpaquePointer, arg1:OpaquePointer, arg2:size_t) : Int;

external (cdecl) _strset_s(arg0:Pointer[CChar], arg1:size_t, arg2:Int) : errno_t;

external (cdecl) _strset(arg0:Pointer[CChar], arg1:Int) : Pointer[CChar];

external (cdecl) strcpy_s(arg0:Pointer[CChar], arg1:rsize_t, arg2:Pointer[CChar]) : errno_t;

external (cdecl) strcpy(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strcat_s(arg0:Pointer[CChar], arg1:rsize_t, arg2:Pointer[CChar]) : errno_t;

external (cdecl) strcat(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strcmp(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Int;

external (cdecl) strlen(arg0:Pointer[CChar]) : size_t;

external (cdecl) strnlen(arg0:Pointer[CChar], arg1:size_t) : size_t;

external (cdecl) strnlen_s(arg0:Pointer[CChar], arg1:size_t) : size_t;

external (cdecl) memmove_s(arg0:OpaquePointer, arg1:rsize_t, arg2:OpaquePointer, arg3:rsize_t) : errno_t;

external (cdecl) memmove(arg0:OpaquePointer, arg1:OpaquePointer, arg2:size_t) : OpaquePointer;

external (cdecl) _strdup(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strchr(arg0:Pointer[CChar], arg1:Int) : Pointer[CChar];

external (cdecl) _stricmp(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Int;

external (cdecl) _strcmpi(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Int;

external (cdecl) _stricmp_l(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:_locale_t) : Int;

external (cdecl) strcoll(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Int;

external (cdecl) _strcoll_l(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:_locale_t) : Int;

external (cdecl) _stricoll(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Int;

external (cdecl) _stricoll_l(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:_locale_t) : Int;

external (cdecl) _strncoll(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : Int;

external (cdecl) _strncoll_l(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t, arg3:_locale_t) : Int;

external (cdecl) _strnicoll(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : Int;

external (cdecl) _strnicoll_l(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t, arg3:_locale_t) : Int;

external (cdecl) strcspn(arg0:Pointer[CChar], arg1:Pointer[CChar]) : size_t;

external (cdecl) _strerror(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) _strerror_s(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar]) : errno_t;

external (cdecl) strerror(arg0:Int) : Pointer[CChar];

external (cdecl) strerror_s(arg0:Pointer[CChar], arg1:size_t, arg2:Int) : errno_t;

external (cdecl) _strlwr_s(arg0:Pointer[CChar], arg1:size_t) : errno_t;

external (cdecl) _strlwr(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) _strlwr_s_l(arg0:Pointer[CChar], arg1:size_t, arg2:_locale_t) : errno_t;

external (cdecl) _strlwr_l(arg0:Pointer[CChar], arg1:_locale_t) : Pointer[CChar];

external (cdecl) strncat_s(arg0:Pointer[CChar], arg1:rsize_t, arg2:Pointer[CChar], arg3:rsize_t) : errno_t;

external (cdecl) strncat(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : Pointer[CChar];

external (cdecl) strncmp(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : Int;

external (cdecl) _strnicmp(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : Int;

external (cdecl) _strnicmp_l(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t, arg3:_locale_t) : Int;

external (cdecl) strncpy_s(arg0:Pointer[CChar], arg1:rsize_t, arg2:Pointer[CChar], arg3:rsize_t) : errno_t;

external (cdecl) strncpy(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : Pointer[CChar];

external (cdecl) _strnset_s(arg0:Pointer[CChar], arg1:size_t, arg2:Int, arg3:size_t) : errno_t;

external (cdecl) _strnset(arg0:Pointer[CChar], arg1:Int, arg2:size_t) : Pointer[CChar];

external (cdecl) strpbrk(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strrchr(arg0:Pointer[CChar], arg1:Int) : Pointer[CChar];

external (cdecl) _strrev(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strspn(arg0:Pointer[CChar], arg1:Pointer[CChar]) : size_t;

external (cdecl) strstr(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strtok(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strtok_s(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Pointer[Pointer[CChar]]) : Pointer[CChar];

external (cdecl) _strupr_s(arg0:Pointer[CChar], arg1:size_t) : errno_t;

external (cdecl) _strupr(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) _strupr_s_l(arg0:Pointer[CChar], arg1:size_t, arg2:_locale_t) : errno_t;

external (cdecl) _strupr_l(arg0:Pointer[CChar], arg1:_locale_t) : Pointer[CChar];

external (cdecl) strxfrm(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : size_t;

external (cdecl) _strxfrm_l(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t, arg3:_locale_t) : size_t;

external (cdecl) strdup(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strcmpi(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Int;

external (cdecl) stricmp(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Int;

external (cdecl) strlwr(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strnicmp(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : Int;

external (cdecl) strnset(arg0:Pointer[CChar], arg1:Int, arg2:size_t) : Pointer[CChar];

external (cdecl) strrev(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strset(arg0:Pointer[CChar], arg1:Int) : Pointer[CChar];

external (cdecl) strupr(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) _wcsdup(arg0:Pointer[wchar_t]) : Pointer[wchar_t];

external (cdecl) wcscat_s(arg0:Pointer[wchar_t], arg1:rsize_t, arg2:Pointer[wchar_t]) : errno_t;

external (cdecl) wcscat(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t]) : Pointer[wchar_t];

external (cdecl) wcschr(arg0:Pointer[wchar_t], arg1:wchar_t) : Pointer[wchar_t];

external (cdecl) wcscmp(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t]) : Int;

external (cdecl) wcscpy_s(arg0:Pointer[wchar_t], arg1:rsize_t, arg2:Pointer[wchar_t]) : errno_t;

external (cdecl) wcscpy(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t]) : Pointer[wchar_t];

external (cdecl) wcscspn(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t]) : size_t;

external (cdecl) wcslen(arg0:Pointer[wchar_t]) : size_t;

external (cdecl) wcsnlen(arg0:Pointer[wchar_t], arg1:size_t) : size_t;

external (cdecl) wcsnlen_s(arg0:Pointer[wchar_t], arg1:size_t) : size_t;

external (cdecl) wcsncat_s(arg0:Pointer[wchar_t], arg1:rsize_t, arg2:Pointer[wchar_t], arg3:rsize_t) : errno_t;

external (cdecl) wcsncat(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:size_t) : Pointer[wchar_t];

external (cdecl) wcsncmp(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:size_t) : Int;

external (cdecl) wcsncpy_s(arg0:Pointer[wchar_t], arg1:rsize_t, arg2:Pointer[wchar_t], arg3:rsize_t) : errno_t;

external (cdecl) wcsncpy(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:size_t) : Pointer[wchar_t];

external (cdecl) wcspbrk(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t]) : Pointer[wchar_t];

external (cdecl) wcsrchr(arg0:Pointer[wchar_t], arg1:wchar_t) : Pointer[wchar_t];

external (cdecl) wcsspn(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t]) : size_t;

external (cdecl) wcsstr(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t]) : Pointer[wchar_t];

external (cdecl) wcstok(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t]) : Pointer[wchar_t];

external (cdecl) wcstok_s(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:Pointer[Pointer[wchar_t]]) : Pointer[wchar_t];

external (cdecl) _wcserror(arg0:Int) : Pointer[wchar_t];

external (cdecl) _wcserror_s(arg0:Pointer[wchar_t], arg1:size_t, arg2:Int) : errno_t;

external (cdecl) __wcserror(arg0:Pointer[wchar_t]) : Pointer[wchar_t];

external (cdecl) __wcserror_s(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t]) : errno_t;

external (cdecl) _wcsicmp(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t]) : Int;

external (cdecl) _wcsicmp_l(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:_locale_t) : Int;

external (cdecl) _wcsnicmp(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:size_t) : Int;

external (cdecl) _wcsnicmp_l(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:size_t, arg3:_locale_t) : Int;

external (cdecl) _wcsnset_s(arg0:Pointer[wchar_t], arg1:size_t, arg2:wchar_t, arg3:size_t) : errno_t;

external (cdecl) _wcsnset(arg0:Pointer[wchar_t], arg1:wchar_t, arg2:size_t) : Pointer[wchar_t];

external (cdecl) _wcsrev(arg0:Pointer[wchar_t]) : Pointer[wchar_t];

external (cdecl) _wcsset_s(arg0:Pointer[wchar_t], arg1:size_t, arg2:wchar_t) : errno_t;

external (cdecl) _wcsset(arg0:Pointer[wchar_t], arg1:wchar_t) : Pointer[wchar_t];

external (cdecl) _wcslwr_s(arg0:Pointer[wchar_t], arg1:size_t) : errno_t;

external (cdecl) _wcslwr(arg0:Pointer[wchar_t]) : Pointer[wchar_t];

external (cdecl) _wcslwr_s_l(arg0:Pointer[wchar_t], arg1:size_t, arg2:_locale_t) : errno_t;

external (cdecl) _wcslwr_l(arg0:Pointer[wchar_t], arg1:_locale_t) : Pointer[wchar_t];

external (cdecl) _wcsupr_s(arg0:Pointer[wchar_t], arg1:size_t) : errno_t;

external (cdecl) _wcsupr(arg0:Pointer[wchar_t]) : Pointer[wchar_t];

external (cdecl) _wcsupr_s_l(arg0:Pointer[wchar_t], arg1:size_t, arg2:_locale_t) : errno_t;

external (cdecl) _wcsupr_l(arg0:Pointer[wchar_t], arg1:_locale_t) : Pointer[wchar_t];

external (cdecl) wcsxfrm(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:size_t) : size_t;

external (cdecl) _wcsxfrm_l(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:size_t, arg3:_locale_t) : size_t;

external (cdecl) wcscoll(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t]) : Int;

external (cdecl) _wcscoll_l(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:_locale_t) : Int;

external (cdecl) _wcsicoll(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t]) : Int;

external (cdecl) _wcsicoll_l(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:_locale_t) : Int;

external (cdecl) _wcsncoll(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:size_t) : Int;

external (cdecl) _wcsncoll_l(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:size_t, arg3:_locale_t) : Int;

external (cdecl) _wcsnicoll(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:size_t) : Int;

external (cdecl) _wcsnicoll_l(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:size_t, arg3:_locale_t) : Int;

external (cdecl) wcsdup(arg0:Pointer[wchar_t]) : Pointer[wchar_t];

external (cdecl) wcsicmp(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t]) : Int;

external (cdecl) wcsnicmp(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t], arg2:size_t) : Int;

external (cdecl) wcsnset(arg0:Pointer[wchar_t], arg1:wchar_t, arg2:size_t) : Pointer[wchar_t];

external (cdecl) wcsrev(arg0:Pointer[wchar_t]) : Pointer[wchar_t];

external (cdecl) wcsset(arg0:Pointer[wchar_t], arg1:wchar_t) : Pointer[wchar_t];

external (cdecl) wcslwr(arg0:Pointer[wchar_t]) : Pointer[wchar_t];

external (cdecl) wcsupr(arg0:Pointer[wchar_t]) : Pointer[wchar_t];

external (cdecl) wcsicoll(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t]) : Int;

record Struct__exception (
    type : Int,
    name : Pointer[CChar],
    arg1 : Double,
    arg2 : Double,
    retval : Double,
);

record Struct__complex (
    x : Double,
    y : Double,
);

external _HUGE : Double;

external (cdecl) acos(arg0:Double) : Double;

external (cdecl) asin(arg0:Double) : Double;

external (cdecl) atan(arg0:Double) : Double;

external (cdecl) atan2(arg0:Double, arg1:Double) : Double;

external (cdecl) _copysign(arg0:Double, arg1:Double) : Double;

external (cdecl) _chgsign(arg0:Double) : Double;

external (cdecl) cos(arg0:Double) : Double;

external (cdecl) cosh(arg0:Double) : Double;

external (cdecl) exp(arg0:Double) : Double;

external (cdecl) fabs(arg0:Double) : Double;

external (cdecl) fmod(arg0:Double, arg1:Double) : Double;

external (cdecl) log(arg0:Double) : Double;

external (cdecl) log10(arg0:Double) : Double;

external (cdecl) pow(arg0:Double, arg1:Double) : Double;

external (cdecl) sin(arg0:Double) : Double;

external (cdecl) sinh(arg0:Double) : Double;

external (cdecl) tan(arg0:Double) : Double;

external (cdecl) tanh(arg0:Double) : Double;

external (cdecl) sqrt(arg0:Double) : Double;

external (cdecl) _cabs(arg0:Struct__complex) : Double;

external (cdecl) ceil(arg0:Double) : Double;

external (cdecl) floor(arg0:Double) : Double;

external (cdecl) frexp(arg0:Double, arg1:Pointer[Int]) : Double;

external (cdecl) _hypot(arg0:Double, arg1:Double) : Double;

external (cdecl) _hypotf(arg0:Float, arg1:Float) : Float;

external (cdecl) _j0(arg0:Double) : Double;

external (cdecl) _j1(arg0:Double) : Double;

external (cdecl) _jn(arg0:Int, arg1:Double) : Double;

external (cdecl) ldexp(arg0:Double, arg1:Int) : Double;

external (cdecl) _matherr(arg0:Pointer[Struct__exception]) : Int;

external (cdecl) modf(arg0:Double, arg1:Pointer[Double]) : Double;

external (cdecl) _y0(arg0:Double) : Double;

external (cdecl) _y1(arg0:Double) : Double;

external (cdecl) _yn(arg0:Int, arg1:Double) : Double;

external (cdecl) hypot(arg0:Double, arg1:Double) : Double;

external (cdecl) hypotf(arg0:Float, arg1:Float) : Float;

external (cdecl) _set_SSE2_enable(arg0:Int) : Int;

external HUGE : Double;

external (cdecl) cabs(arg0:Struct__complex) : Double;

external (cdecl) j0(arg0:Double) : Double;

external (cdecl) j1(arg0:Double) : Double;

external (cdecl) jn(arg0:Int, arg1:Double) : Double;

external (cdecl) y0(arg0:Double) : Double;

external (cdecl) y1(arg0:Double) : Double;

external (cdecl) yn(arg0:Int, arg1:Double) : Double;

alias _fsize_t = CULong;

record Struct__finddata32_t (
    attrib : UInt,
    time_create : __time32_t,
    time_access : __time32_t,
    time_write : __time32_t,
    size : _fsize_t,
    name : Array[CChar, 260],
);

record Struct__finddata32i64_t (
    attrib : UInt,
    time_create : __time32_t,
    time_access : __time32_t,
    time_write : __time32_t,
    size : Int64,
    name : Array[CChar, 260],
);

record Struct__finddata64i32_t (
    attrib : UInt,
    time_create : __time64_t,
    time_access : __time64_t,
    time_write : __time64_t,
    size : _fsize_t,
    name : Array[CChar, 260],
);

record Struct___finddata64_t (
    attrib : UInt,
    time_create : __time64_t,
    time_access : __time64_t,
    time_write : __time64_t,
    size : Int64,
    name : Array[CChar, 260],
);

record Struct__wfinddata32_t (
    attrib : UInt,
    time_create : __time32_t,
    time_access : __time32_t,
    time_write : __time32_t,
    size : _fsize_t,
    name : Array[wchar_t, 260],
);

record Struct__wfinddata32i64_t (
    attrib : UInt,
    time_create : __time32_t,
    time_access : __time32_t,
    time_write : __time32_t,
    size : Int64,
    name : Array[wchar_t, 260],
);

record Struct__wfinddata64i32_t (
    attrib : UInt,
    time_create : __time64_t,
    time_access : __time64_t,
    time_write : __time64_t,
    size : _fsize_t,
    name : Array[wchar_t, 260],
);

record Struct__wfinddata64_t (
    attrib : UInt,
    time_create : __time64_t,
    time_access : __time64_t,
    time_write : __time64_t,
    size : Int64,
    name : Array[wchar_t, 260],
);

external (cdecl) _access(arg0:Pointer[CChar], arg1:Int) : Int;

external (cdecl) _access_s(arg0:Pointer[CChar], arg1:Int) : errno_t;

external (cdecl) _chmod(arg0:Pointer[CChar], arg1:Int) : Int;

external (cdecl) _chsize(arg0:Int, arg1:CLong) : Int;

external (cdecl) _chsize_s(arg0:Int, arg1:Int64) : errno_t;

external (cdecl) _close(arg0:Int) : Int;

external (cdecl) _commit(arg0:Int) : Int;

external (cdecl) _creat(arg0:Pointer[CChar], arg1:Int) : Int;

external (cdecl) _dup(arg0:Int) : Int;

external (cdecl) _dup2(arg0:Int, arg1:Int) : Int;

external (cdecl) _eof(arg0:Int) : Int;

external (cdecl) _filelength(arg0:Int) : CLong;

external (cdecl) _findfirst32(arg0:Pointer[CChar], arg1:Pointer[Struct__finddata32_t]) : intptr_t;

external (cdecl) _findnext32(arg0:intptr_t, arg1:Pointer[Struct__finddata32_t]) : Int;

external (cdecl) _findclose(arg0:intptr_t) : Int;

external (cdecl) _isatty(arg0:Int) : Int;

external (cdecl) _locking(arg0:Int, arg1:Int, arg2:CLong) : Int;

external (cdecl) _lseek(arg0:Int, arg1:CLong, arg2:Int) : CLong;

external (cdecl) _mktemp_s(arg0:Pointer[CChar], arg1:size_t) : errno_t;

external (cdecl) _mktemp(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) _pipe(arg0:Pointer[Int], arg1:UInt, arg2:Int) : Int;

external (cdecl) _read(arg0:Int, arg1:OpaquePointer, arg2:UInt) : Int;

external (cdecl) _setmode(arg0:Int, arg1:Int) : Int;

external (cdecl) _tell(arg0:Int) : CLong;

external (cdecl) _umask(arg0:Int) : Int;

external (cdecl) _umask_s(arg0:Int, arg1:Pointer[Int]) : errno_t;

external (cdecl) _write(arg0:Int, arg1:OpaquePointer, arg2:UInt) : Int;

external (cdecl) _filelengthi64(arg0:Int) : Int64;

external (cdecl) _findfirst32i64(arg0:Pointer[CChar], arg1:Pointer[Struct__finddata32i64_t]) : intptr_t;

external (cdecl) _findfirst64i32(arg0:Pointer[CChar], arg1:Pointer[Struct__finddata64i32_t]) : intptr_t;

external (cdecl) _findfirst64(arg0:Pointer[CChar], arg1:Pointer[Struct___finddata64_t]) : intptr_t;

external (cdecl) _findnext32i64(arg0:intptr_t, arg1:Pointer[Struct__finddata32i64_t]) : Int;

external (cdecl) _findnext64i32(arg0:intptr_t, arg1:Pointer[Struct__finddata64i32_t]) : Int;

external (cdecl) _findnext64(arg0:intptr_t, arg1:Pointer[Struct___finddata64_t]) : Int;

external (cdecl) _lseeki64(arg0:Int, arg1:Int64, arg2:Int) : Int64;

external (cdecl) _telli64(arg0:Int) : Int64;

external (cdecl) _sopen_s(arg0:Pointer[Int], arg1:Pointer[CChar], arg2:Int, arg3:Int, arg4:Int) : errno_t;

external (cdecl) _open(arg0:Pointer[CChar], arg1:Int, ..) : Int;

external (cdecl) _sopen(arg0:Pointer[CChar], arg1:Int, arg2:Int, ..) : Int;

external (cdecl) _waccess(arg0:Pointer[wchar_t], arg1:Int) : Int;

external (cdecl) _waccess_s(arg0:Pointer[wchar_t], arg1:Int) : errno_t;

external (cdecl) _wchmod(arg0:Pointer[wchar_t], arg1:Int) : Int;

external (cdecl) _wcreat(arg0:Pointer[wchar_t], arg1:Int) : Int;

external (cdecl) _wfindfirst32(arg0:Pointer[wchar_t], arg1:Pointer[Struct__wfinddata32_t]) : intptr_t;

external (cdecl) _wfindnext32(arg0:intptr_t, arg1:Pointer[Struct__wfinddata32_t]) : Int;

external (cdecl) _wunlink(arg0:Pointer[wchar_t]) : Int;

external (cdecl) _wrename(arg0:Pointer[wchar_t], arg1:Pointer[wchar_t]) : Int;

external (cdecl) _wmktemp_s(arg0:Pointer[wchar_t], arg1:size_t) : errno_t;

external (cdecl) _wmktemp(arg0:Pointer[wchar_t]) : Pointer[wchar_t];

external (cdecl) _wfindfirst32i64(arg0:Pointer[wchar_t], arg1:Pointer[Struct__wfinddata32i64_t]) : intptr_t;

external (cdecl) _wfindfirst64i32(arg0:Pointer[wchar_t], arg1:Pointer[Struct__wfinddata64i32_t]) : intptr_t;

external (cdecl) _wfindfirst64(arg0:Pointer[wchar_t], arg1:Pointer[Struct__wfinddata64_t]) : intptr_t;

external (cdecl) _wfindnext32i64(arg0:intptr_t, arg1:Pointer[Struct__wfinddata32i64_t]) : Int;

external (cdecl) _wfindnext64i32(arg0:intptr_t, arg1:Pointer[Struct__wfinddata64i32_t]) : Int;

external (cdecl) _wfindnext64(arg0:intptr_t, arg1:Pointer[Struct__wfinddata64_t]) : Int;

external (cdecl) _wsopen_s(arg0:Pointer[Int], arg1:Pointer[wchar_t], arg2:Int, arg3:Int, arg4:Int) : errno_t;

external (cdecl) _wopen(arg0:Pointer[wchar_t], arg1:Int, ..) : Int;

external (cdecl) _wsopen(arg0:Pointer[wchar_t], arg1:Int, arg2:Int, ..) : Int;

external (cdecl) __lock_fhandle(arg0:Int) : Int;

external (cdecl) _unlock_fhandle(arg0:Int) : ;

external (cdecl) _get_osfhandle(arg0:Int) : intptr_t;

external (cdecl) _open_osfhandle(arg0:intptr_t, arg1:Int) : Int;

external (cdecl) access(arg0:Pointer[CChar], arg1:Int) : Int;

external (cdecl) chmod(arg0:Pointer[CChar], arg1:Int) : Int;

external (cdecl) chsize(arg0:Int, arg1:CLong) : Int;

external (cdecl) close(arg0:Int) : Int;

external (cdecl) creat(arg0:Pointer[CChar], arg1:Int) : Int;

external (cdecl) dup(arg0:Int) : Int;

external (cdecl) dup2(arg0:Int, arg1:Int) : Int;

external (cdecl) eof(arg0:Int) : Int;

external (cdecl) filelength(arg0:Int) : CLong;

external (cdecl) isatty(arg0:Int) : Int;

external (cdecl) locking(arg0:Int, arg1:Int, arg2:CLong) : Int;

external (cdecl) lseek(arg0:Int, arg1:CLong, arg2:Int) : CLong;

external (cdecl) mktemp(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) open(arg0:Pointer[CChar], arg1:Int, ..) : Int;

external (cdecl) read(arg0:Int, arg1:OpaquePointer, arg2:UInt) : Int;

external (cdecl) setmode(arg0:Int, arg1:Int) : Int;

external (cdecl) sopen(arg0:Pointer[CChar], arg1:Int, arg2:Int, ..) : Int;

external (cdecl) tell(arg0:Int) : CLong;

external (cdecl) umask(arg0:Int) : Int;

external (cdecl) write(arg0:Int, arg1:OpaquePointer, arg2:UInt) : Int;

record Struct___JUMP_BUFFER (
    Ebp : CULong,
    Ebx : CULong,
    Edi : CULong,
    Esi : CULong,
    Esp : CULong,
    Eip : CULong,
    Registration : CULong,
    TryLevel : CULong,
    Cookie : CULong,
    UnwindFunc : CULong,
    UnwindData : Array[CULong, 6],
);

alias _JUMP_BUFFER = Struct___JUMP_BUFFER;

alias jmp_buf = Array[Int, 16];

external (cdecl) _setjmp(arg0:Pointer[Int]) : Int;

external (cdecl) longjmp(arg0:Pointer[Int], arg1:Int) : ;

alias clock_t = CLong;

record Struct_tm (
    tm_sec : Int,
    tm_min : Int,
    tm_hour : Int,
    tm_mday : Int,
    tm_mon : Int,
    tm_year : Int,
    tm_wday : Int,
    tm_yday : Int,
    tm_isdst : Int,
);

external (cdecl) __daylight() : Pointer[Int];

external (cdecl) __dstbias() : Pointer[CLong];

external (cdecl) __timezone() : Pointer[CLong];

external (cdecl) __tzname() : Pointer[Pointer[CChar]];

external (cdecl) _get_daylight(arg0:Pointer[Int]) : errno_t;

external (cdecl) _get_dstbias(arg0:Pointer[CLong]) : errno_t;

external (cdecl) _get_timezone(arg0:Pointer[CLong]) : errno_t;

external (cdecl) _get_tzname(arg0:Pointer[size_t], arg1:Pointer[CChar], arg2:size_t, arg3:Int) : errno_t;

external (cdecl) asctime(arg0:Pointer[Struct_tm]) : Pointer[CChar];

external (cdecl) asctime_s(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[Struct_tm]) : errno_t;

external (cdecl) _ctime32(arg0:Pointer[__time32_t]) : Pointer[CChar];

external (cdecl) _ctime32_s(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[__time32_t]) : errno_t;

external (cdecl) clock() : clock_t;

external (cdecl) _difftime32(arg0:__time32_t, arg1:__time32_t) : Double;

external (cdecl) _gmtime32(arg0:Pointer[__time32_t]) : Pointer[Struct_tm];

external (cdecl) _gmtime32_s(arg0:Pointer[Struct_tm], arg1:Pointer[__time32_t]) : errno_t;

external (cdecl) _localtime32(arg0:Pointer[__time32_t]) : Pointer[Struct_tm];

external (cdecl) _localtime32_s(arg0:Pointer[Struct_tm], arg1:Pointer[__time32_t]) : errno_t;

external (cdecl) strftime(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:Pointer[Struct_tm]) : size_t;

external (cdecl) _strftime_l(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:Pointer[Struct_tm], arg4:_locale_t) : size_t;

external (cdecl) _strdate_s(arg0:Pointer[CChar], arg1:size_t) : errno_t;

external (cdecl) _strdate(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) _strtime_s(arg0:Pointer[CChar], arg1:size_t) : errno_t;

external (cdecl) _strtime(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) _time32(arg0:Pointer[__time32_t]) : __time32_t;

external (cdecl) _mktime32(arg0:Pointer[Struct_tm]) : __time32_t;

external (cdecl) _mkgmtime32(arg0:Pointer[Struct_tm]) : __time32_t;

external (cdecl) _tzset() : ;

external (cdecl) _difftime64(arg0:__time64_t, arg1:__time64_t) : Double;

external (cdecl) _ctime64(arg0:Pointer[__time64_t]) : Pointer[CChar];

external (cdecl) _ctime64_s(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[__time64_t]) : errno_t;

external (cdecl) _gmtime64(arg0:Pointer[__time64_t]) : Pointer[Struct_tm];

external (cdecl) _gmtime64_s(arg0:Pointer[Struct_tm], arg1:Pointer[__time64_t]) : errno_t;

external (cdecl) _localtime64(arg0:Pointer[__time64_t]) : Pointer[Struct_tm];

external (cdecl) _localtime64_s(arg0:Pointer[Struct_tm], arg1:Pointer[__time64_t]) : errno_t;

external (cdecl) _mktime64(arg0:Pointer[Struct_tm]) : __time64_t;

external (cdecl) _mkgmtime64(arg0:Pointer[Struct_tm]) : __time64_t;

external (cdecl) _time64(arg0:Pointer[__time64_t]) : __time64_t;

external (cdecl) _getsystime(arg0:Pointer[Struct_tm]) : UInt;

external (cdecl) _setsystime(arg0:Pointer[Struct_tm], arg1:UInt) : UInt;

external (cdecl) _wasctime(arg0:Pointer[Struct_tm]) : Pointer[wchar_t];

external (cdecl) _wasctime_s(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[Struct_tm]) : errno_t;

external (cdecl) _wctime32(arg0:Pointer[__time32_t]) : Pointer[wchar_t];

external (cdecl) _wctime32_s(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[__time32_t]) : errno_t;

external (cdecl) wcsftime(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], arg3:Pointer[Struct_tm]) : size_t;

external (cdecl) _wcsftime_l(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[wchar_t], arg3:Pointer[Struct_tm], arg4:_locale_t) : size_t;

external (cdecl) _wstrdate_s(arg0:Pointer[wchar_t], arg1:size_t) : errno_t;

external (cdecl) _wstrdate(arg0:Pointer[wchar_t]) : Pointer[wchar_t];

external (cdecl) _wstrtime_s(arg0:Pointer[wchar_t], arg1:size_t) : errno_t;

external (cdecl) _wstrtime(arg0:Pointer[wchar_t]) : Pointer[wchar_t];

external (cdecl) _wctime64(arg0:Pointer[__time64_t]) : Pointer[wchar_t];

external (cdecl) _wctime64_s(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[__time64_t]) : errno_t;

external (cdecl) _wctime(arg0:Pointer[time_t]) : Pointer[wchar_t];

external (cdecl) _wctime_s(arg0:Pointer[wchar_t], arg1:size_t, arg2:Pointer[time_t]) : errno_t;

external (cdecl) difftime(arg0:time_t, arg1:time_t) : Double;

external (cdecl) ctime(arg0:Pointer[time_t]) : Pointer[CChar];

external (cdecl) ctime_s(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[time_t]) : errno_t;

external (cdecl) gmtime(arg0:Pointer[time_t]) : Pointer[Struct_tm];

external (cdecl) gmtime_s(arg0:Pointer[Struct_tm], arg1:Pointer[time_t]) : errno_t;

external (cdecl) localtime(arg0:Pointer[time_t]) : Pointer[Struct_tm];

external (cdecl) localtime_s(arg0:Pointer[Struct_tm], arg1:Pointer[time_t]) : errno_t;

external (cdecl) mktime(arg0:Pointer[Struct_tm]) : time_t;

external (cdecl) _mkgmtime(arg0:Pointer[Struct_tm]) : time_t;

external (cdecl) time(arg0:Pointer[time_t]) : time_t;

external daylight : Int;

external timezone : CLong;

external tzname : Array[Pointer[CChar], 2];

external (cdecl) tzset() : ;

