<?xml version="1.0"?>
<def format="2">
  <platformtype name="__int8" value="char">
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="__int16" value="short">
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="__int32" value="int">
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="__int64" value="long">
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
    <long/>
  </platformtype>
  <platformtype name="ACCESS_MASK" value="long">
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
    <unsigned/>
  </platformtype>
  <platformtype name="ATOM" value="short">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="BOOL" value="int">
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="BOOLEAN" value="char">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="BYTE" value="char">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="CCHAR" value="char">
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="CHAR" value="char">
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="COLORREF" value="long">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="DWORD" value="long">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="DWORD32" value="int">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="DWORD64" value="long">
    <unsigned/>
    <long/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="DWORD_PTR" value="long">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
  </platformtype>
  <platformtype name="DWORD_PTR" value="long">
    <unsigned/>
    <long/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="FLOAT" value="float">
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HACCEL" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HANDLE" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HAGENT" value="long">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HAGENTSESSION" value="long">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HBITMAP" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HBRUSH" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HCOLORSPACE" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HCURSOR" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HCONV" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HCONVLIST" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HDC" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HDDEDATA" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HDESK" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HDROP" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HDWP" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HENHMETAFILE" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HFILE" value="int">
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HFONT" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HGDIOBJ" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HGLOBAL" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HHOOK" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HICON" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HINSTANCE" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HKEY" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HKL" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HLOCAL" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HMENU" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HMETAFILE" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HMODULE" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HMONITOR" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HPALETTE" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HPEN" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HRESULT" value="long">
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HRGN" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HRSRC" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HWND" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HSZ" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HWINSTA" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HALF_PTR" value="short">
    <platform type="win32A"/>
    <platform type="win32W"/>
  </platformtype>
  <platformtype name="HALF_PTR" value="int">
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HCALL" value="long">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HLINE" value="long">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HLINEAPP" value="long">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HPHONE" value="long">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="HPHONEAPP" value="long">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="INT" value="int">
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="INT8" value="char">
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="INT16" value="short">
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="INT32" value="int">
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="INT64" value="long">
    <long/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="INT_PTR" value="int">
    <platform type="win32A"/>
    <platform type="win32W"/>
  </platformtype>
  <platformtype name="INT_PTR" value="long">
    <long/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LANGID" value="short">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LCID" value="long">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LCTYPE" value="long">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LGRPID" value="long">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LONG" value="long">
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LONG32" value="int">
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LONG64" value="long">
    <long/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LONGLONG" value="long">
    <long/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LONG_PTR" value="long">
    <platform type="win32A"/>
    <platform type="win32W"/>
  </platformtype>
  <platformtype name="LONG_PTR" value="long">
    <long/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LPBOOL" value="int">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LPARAM" value="long">
    <platform type="win32A"/>
    <platform type="win32W"/>
  </platformtype>
  <platformtype name="LPARAM" value="long">
    <long/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LPBYTE" value="char">
    <unsigned/>
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LPCOLORREF" value="long">
    <unsigned/>
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LPCSTR" value="char">
    <const_ptr/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LPCTSTR" value="char">
    <const_ptr/>
    <platform type="win32A"/>
  </platformtype>
  <platformtype name="LPCTSTR" value="wchar_t">
    <const_ptr/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LPCVOID" value="void">
    <const_ptr/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LPCWSTR" value="wchar_t">
    <const_ptr/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LPDWORD" value="long">
    <unsigned/>
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LPINT" value="int">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LPLONG" value="long">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LPSTR" value="char">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LPTSTR" value="char">
    <pointer/>
    <platform type="win32A"/>
  </platformtype>
  <platformtype name="LPTSTR" value="wchar_t">
    <pointer/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LPVOID" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LPWORD" value="short">
    <unsigned/>
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LPWSTR" value="wchar_t">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="LRESULT" value="long">
    <platform type="win32A"/>
    <platform type="win32W"/>
  </platformtype>
  <platformtype name="LRESULT" value="long">
    <long/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="MMRESULT" value="int">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="NTSTATUS" value="long">
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="PBOOL" value="int">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="PBOOLEAN" value="char">
    <unsigned/>
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="PBYTE" value="char">
    <unsigned/>
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="PCHAR" value="char">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="PCSTR" value="char">
    <const_ptr/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="PCTSTR" value="char">
    <const_ptr/>
    <platform type="win32A"/>
  </platformtype>
  <platformtype name="PCTSTR" value="wchar_t">
    <const_ptr/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="PDWORD" value="long">
    <unsigned/>
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="PHANDLE" value="void">
    <ptr_ptr/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="PINT" value="int">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="PLONG" value="long">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="PRECT" value="RECT">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="PSTR" value="char">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="PTSTR" value="char">
    <pointer/>
    <platform type="win32A"/>
  </platformtype>
  <platformtype name="PTSTR" value="wchar_t">
    <pointer/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="PUCHAR" value="char">
    <unsigned/>
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="PULONG" value="long">
    <unsigned/>
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="PUSHORT" value="short">
    <unsigned/>
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="PVOID" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="PWCHAR" value="wchar_t">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="PWORD" value="short">
    <unsigned/>
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="PWSTR" value="wchar_t">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="QWORD" value="long">
    <unsigned/>
    <long/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="SC_LOCK" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="SC_HANDLE" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="SERVICE_STATUS_HANDLE" value="void">
    <pointer/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="SHORT" value="short">
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="SIZE_T" value="long">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
  </platformtype>
  <platformtype name="SIZE_T" value="long">
    <unsigned/>
    <long/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="SOCKET" value="int">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="SSIZE_T" value="long">
    <platform type="win32A"/>
    <platform type="win32W"/>
  </platformtype>
  <platformtype name="SSIZE_T" value="long">
    <long/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="TBYTE" value="char">
    <unsigned/>
    <platform type="win32A"/>
  </platformtype>
  <platformtype name="TBYTE" value="wchar_t">
    <unsigned/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="TCHAR" value="char">
    <platform type="win32A"/>
  </platformtype>
  <platformtype name="TCHAR" value="wchar_t">
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="UCHAR" value="char">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="u_char" value="char">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="UHALF_PTR" value="short">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
  </platformtype>
  <platformtype name="UHALF_PTR" value="int">
    <unsigned/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="UINT" value="int">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="u_int" value="int">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="UINT8" value="char">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="UINT16" value="short">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="UINT32" value="int">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="UINT64" value="long">
    <unsigned/>
    <long/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="UINT_PTR" value="int">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
  </platformtype>
  <platformtype name="UINT_PTR" value="long">
    <unsigned/>
    <long/>
    <platform type="win64"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="ULONG" value="long">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="u_long" value="long">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="ULONG32" value="int">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="ULONG64" value="long">
    <unsigned/>
    <long/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="ULONGLONG" value="long">
    <unsigned/>
    <long/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="ULONG_PTR" value="long">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
  </platformtype>
  <platformtype name="ULONG_PTR" value="long">
    <unsigned/>
    <long/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="USHORT" value="short">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="u_short" value="short">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="USN" value="long">
    <long/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="VOID" value="void">
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="WCHAR" value="wchar_t">
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="WORD" value="short">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
    <platform type="win64"/>
  </platformtype>
  <platformtype name="WPARAM" value="int">
    <unsigned/>
    <platform type="win32A"/>
    <platform type="win32W"/>
  </platformtype>
  <platformtype name="WPARAM" value="long">
    <unsigned/>
    <long/>
    <platform type="win64"/>
  </platformtype>
  <resource>
    <alloc init="true">CreatePen</alloc>
    <alloc init="true">CreateBrushIndirect</alloc>
    <alloc init="true">CreateDIBPatternBrush</alloc>
    <alloc init="true">CreateDIBPatternBrushPt</alloc>
    <alloc init="true">CreateHatchBrush</alloc>
    <alloc init="true">CreatePatternBrush</alloc>
    <alloc init="true">CreateSolidBrush</alloc>
    <alloc init="true">CreateFont</alloc>
    <alloc init="true">CreateFontIndirect</alloc>
    <alloc init="true">CreateFontIndirectEx</alloc>
    <alloc init="true">CreateBitmap</alloc>
    <alloc init="true">CreateBitmapIndirect</alloc>
    <alloc init="true">CreateCompatibleBitmap</alloc>
    <alloc init="true">CreateDIBitmap</alloc>
    <alloc init="true">CreateDIBSection</alloc>
    <alloc init="true">CreateDiscardableBitmap</alloc>
    <alloc init="true">CreateEllipticRgn</alloc>
    <alloc init="true">CreateEllipticRgnIndirect</alloc>
    <alloc init="true">CreatePolygonRgn</alloc>
    <alloc init="true">CreatePolyPolygonRgn</alloc>
    <alloc init="true">CreateRectRgn</alloc>
    <alloc init="true">CreateRectRgnIndirect</alloc>
    <alloc init="true">CreateRoundRectRgn</alloc>
    <alloc init="true">CreateHalftonePalette</alloc>
    <alloc init="true">CreatePalette</alloc>
    <dealloc>DeleteObject</dealloc>
  </resource>
  <resource>
    <dealloc>closesocket</dealloc>
    <alloc init="true">socket</alloc>
  </resource>
  <resource>
    <alloc init="true">CreateThread</alloc>
    <alloc init="true">CreateFile</alloc>
    <alloc init="true">OpenFile</alloc>
    <alloc init="true">CreateJobObject</alloc>
    <alloc init="true">CreateRemoteThread</alloc>
    <alloc init="true">CreateConsoleScreenBuffer</alloc>
    <alloc init="true">OpenBackupEventLog</alloc>
    <alloc init="true">OpenEventLog</alloc>
    <alloc init="true">CreateFileMapping</alloc>
    <alloc init="true">CreateFileMappingFromApp</alloc>
    <alloc init="true">CreateFileMappingNuma</alloc>
    <alloc init="true">CreateMemoryResourceNotification</alloc>
    <alloc init="true">OpenFileMapping</alloc>
    <alloc init="true">CreateNamedPipe</alloc>
    <alloc init="true">CreateEvent</alloc>
    <alloc init="true">CreateEventA</alloc>
    <alloc init="true">CreateEventW</alloc>
    <alloc init="true">CreateEventEx</alloc>
    <alloc init="true">CreateEventExA</alloc>
    <alloc init="true">CreateEventExW</alloc>
    <alloc init="true">CreateMutex</alloc>
    <alloc init="true">CreateMutexA</alloc>
    <alloc init="true">CreateMutexW</alloc>
    <alloc init="true">CreateMutexEx</alloc>
    <alloc init="true">CreateMutexExA</alloc>
    <alloc init="true">CreateMutexExW</alloc>
    <alloc init="true">CreateSemaphore</alloc>
    <alloc init="true">CreateSemaphoreA</alloc>
    <alloc init="true">CreateSemaphoreW</alloc>
    <alloc init="true">CreateSemaphoreEx</alloc>
    <alloc init="true">CreateSemaphoreExA</alloc>
    <alloc init="true">CreateSemaphoreExW</alloc>
    <alloc init="true">CreateTimerQueue</alloc>
    <alloc init="true">CreateWaitableTimer</alloc>
    <alloc init="true">OpenEvent</alloc>
    <alloc init="true">OpenEventA</alloc>
    <alloc init="true">OpenEventW</alloc>
    <alloc init="true">OpenMutex</alloc>
    <alloc init="true">OpenMutexA</alloc>
    <alloc init="true">OpenMutexW</alloc>
    <alloc init="true">OpenSemaphore</alloc>
    <alloc init="true">OpenSemaphoreA</alloc>
    <alloc init="true">OpenSemaphoreW</alloc>
    <alloc init="true">OpenWaitableTimer</alloc>
    <alloc init="true">OpenJobObject</alloc>
    <alloc init="true">OpenProcess</alloc>
    <alloc init="true">OpenThread</alloc>
    <alloc init="true">CreateMailslot</alloc>
    <dealloc>CloseHandle</dealloc>
  </resource>
  <resource>
    <alloc init="true">FindFirstFile</alloc>
    <alloc init="true">FindFirstFileW</alloc>
    <alloc init="true">FindFirstFileA</alloc>
    <alloc init="true">FindFirstFileEx</alloc>
    <alloc init="true">FindFirstFileExW</alloc>
    <alloc init="true">FindFirstFileExA</alloc>
    <alloc init="true">FindFirstFileNameW</alloc>
    <alloc init="true">FindFirstFileNameTransactedW</alloc>
    <alloc init="true">FindFirstStreamTransactedW</alloc>
    <alloc init="true">FindFirstFileTransacted</alloc>
    <alloc init="true">FindFirstStreamW</alloc>
    <dealloc>FindClose</dealloc>
  </resource>
  <resource>
    <alloc init="true">OpenSCManager</alloc>
    <alloc init="true">OpenService</alloc>
    <alloc init="true">CreateService</alloc>
    <dealloc>CloseServiceHandle</dealloc>
  </resource>
  <resource>
    <alloc init="true">LockServiceDatabase</alloc>
    <dealloc>UnlockServiceDatabase</dealloc>
  </resource>
  <resource>
    <alloc init="true">HeapCreate</alloc>
    <dealloc>HeapDestroy</dealloc>
  </resource>
  <resource>
    <alloc init="true">_wfopen</alloc>
    <alloc init="true">_tfopen</alloc>
    <alloc init="true" arg="1">_wfopen_s</alloc>
    <alloc init="true" arg="1">_tfopen_s</alloc>
    <dealloc>fclose</dealloc>
    <dealloc>_fcloseall</dealloc>
  </resource>
  <resource>
    <alloc init="true">_open</alloc>
    <alloc init="true">_topen</alloc>
    <alloc init="true">_wopen</alloc>
    <dealloc>_close</dealloc>
  </resource>
  <resource>
    <alloc init="true">_popen</alloc>
    <alloc init="true">_wpopen</alloc>
    <alloc init="true">_tpopen</alloc>
    <dealloc>_pclose</dealloc>
  </resource>
  <resource>
    <alloc init="true">LoadLibrary</alloc>
    <alloc init="true">LoadLibraryA</alloc>
    <alloc init="true">LoadLibraryW</alloc>
    <alloc init="true">LoadLibraryEx</alloc>
    <alloc init="true">LoadLibraryExA</alloc>
    <alloc init="true">LoadLibraryExW</alloc>
    <!--For GetModuleHandle() FreeLibrary*() should never be called.-->
    <!--For GetModuleHandleEx() FreeLibrary*() can not always be called
        (depends on the flags). So to prevent false positives it is not added
        to the allocation functions here.-->
    <dealloc>FreeLibrary</dealloc>
    <dealloc>FreeLibraryAndExitThread</dealloc>
  </resource>
  <memory>
    <alloc>ExAllocatePool</alloc>
    <alloc>ExAllocatePoolWithQuota</alloc>
    <alloc>ExAllocatePoolWithQuotaTag</alloc>
    <alloc>ExAllocatePoolWithTag</alloc>
    <alloc>ExAllocatePoolWithTagPriority</alloc>
    <dealloc>ExFreePool</dealloc>
    <dealloc>ExFreePoolWithTag</dealloc>
  </memory>
  <memory>
    <alloc>HeapAlloc</alloc>
    <alloc>HeapReAlloc</alloc>
    <dealloc arg="3">HeapFree</dealloc>
  </memory>
  <memory>
    <alloc>IoAllocateErrorLogEntry</alloc>
    <dealloc>IoWriteErrorLogEntry</dealloc>
    <dealloc>IoFreeErrorLogEntry</dealloc>
  </memory>
  <memory>
    <alloc init="true">IoAllocateIrp</alloc>
    <dealloc>IoFreeIrp</dealloc>
    <dealloc>IofCallDriver</dealloc>
    <dealloc arg="2">IoCallDriver</dealloc>
  </memory>
  <memory>
    <alloc>IoAllocateMdl</alloc>
    <dealloc>IoFreeMdl</dealloc>
  </memory>
  <memory>
    <alloc>MmAllocateContiguousMemory</alloc>
    <dealloc>MmFreeContiguousMemory</dealloc>
  </memory>
  <memory>
    <alloc>MmAllocateContiguousMemorySpecifyCache</alloc>
    <alloc>MmAllocateContiguousMemorySpecifyCacheNode</alloc>
    <dealloc>MmFreeContiguousMemorySpecifyCache</dealloc>
  </memory>
  <memory>
    <alloc>IoAllocateWorkItem</alloc>
    <dealloc>IoFreeWorkItem</dealloc>
  </memory>
  <memory>
    <alloc>RtlAllocateHeap</alloc>
    <dealloc>RtlFreeHeap</dealloc>
  </memory>
  <memory>
    <alloc>ExAllocateFromPagedLookasideList</alloc>
    <dealloc arg="2">ExFreeToPagedLookasideList</dealloc>
  </memory>
  <memory>
    <alloc>ExAllocateFromNPagedLookasideList</alloc>
    <dealloc arg="2">ExFreeToNPagedLookasideList</dealloc>
  </memory>
  <memory>
    <alloc>AllocateHeap</alloc>
    <dealloc>FreeHeap</dealloc>
  </memory>
  <memory>
    <alloc>AllocateLsaHeap</alloc>
    <dealloc>FreeLsaHeap</dealloc>
  </memory>
  <memory>
    <alloc>AllocatePrivateHeap</alloc>
    <dealloc>FreePrivateHeap</dealloc>
  </memory>
  <memory>
    <alloc>VirtualAlloc</alloc>
    <dealloc>VirtualFree</dealloc>
  </memory>
  <memory>
    <alloc>VirtualAllocEx</alloc>
    <alloc>VirtualAllocExNuma</alloc>
    <dealloc arg="2">VirtualFreeEx</dealloc>
  </memory>
  <memory>
    <alloc>LocalAlloc</alloc>
    <dealloc>LocalFree</dealloc>
  </memory>
  <memory>
    <alloc>GlobalAlloc</alloc>
    <dealloc>GlobalFree</dealloc>
    <dealloc arg="2">SetClipboardData</dealloc>
  </memory>
  <memory>
    <alloc init="true">MapViewOfFile</alloc>
    <alloc init="true">MapViewOfFileEx</alloc>
    <alloc init="true">MapViewOfFileExNuma</alloc>
    <alloc init="true">MapViewOfFileFromApp</alloc>
    <dealloc>UnmapViewOfFile</dealloc>
  </memory>
  <memory>
    <alloc init="true">RtlCreateHeap</alloc>
    <dealloc>RtlDestroyHeap</dealloc>
  </memory>
  <memory>
    <alloc init="true">wcsdup</alloc>
    <alloc init="true">_strdup</alloc>
    <alloc init="true">_wcsdup</alloc>
    <alloc init="true">_mbsdup</alloc>
    <alloc init="true">_tcsdup</alloc>
    <alloc init="true">_malloc_dbg</alloc>
    <alloc init="true">_aligned_malloc</alloc>
    <alloc init="true">_aligned_malloc_dbg</alloc>
    <alloc init="true">_aligned_offset_malloc</alloc>
    <alloc init="true">_strdup_dbg</alloc>
    <alloc init="true">_wcsdup_dbg</alloc>
    <alloc init="true">_tcsdup_dbg</alloc>
    <dealloc>free</dealloc>
  </memory>
  <memory>
    <alloc>CoTaskMemAlloc</alloc>
    <dealloc>CoTaskMemFree</dealloc>
  </memory>
  <memory>
    <alloc>_malloca</alloc>
    <!-- Do not add _alloca here. It is automatically freed! -->
    <dealloc>_freea</dealloc>
  </memory>
  <memory>
    <alloc init="true" arg="11">AllocateAndInitializeSid</alloc>
    <dealloc>FreeSid</dealloc>
  </memory>
  <!--SIZE_T RtlCompareMemory(
  _In_ const VOID   *Source1,
  _In_ const VOID   *Source2,
  _In_       SIZE_T Length);-->
  <function name="RtlCompareMemory">
    <noreturn>false</noreturn>
    <returnValue type="SIZE_T"/>
    <leak-ignore/>
    <use-retval/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="3">
      <not-bool/>
      <valid>0:</valid>
    </arg>
  </function>
  <!--VOID RtlCopyBytes(
  _Out_       PVOID  Destination,
  _In_  const VOID   *Source,
  _In_        SIZE_T Length);-->
  <function name="RtlCopyBytes">
    <noreturn>false</noreturn>
    <returnValue type="VOID"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="3">
      <not-bool/>
      <valid>0:</valid>
    </arg>
  </function>
  <function name="RtlFillBytes">
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
    </arg>
    <arg nr="2">
      <not-bool/>
      <valid>0:</valid>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <warn severity="style" reason="Obsolete" alternatives="RtlFillMemory"/>
  </function>
  <!--PVOID RtlSecureZeroMemory(
  _Out_ PVOID  ptr,
  _In_  SIZE_T cnt);-->
  <function name="RtlSecureZeroMemory">
    <noreturn>false</noreturn>
    <returnValue type="PVOID"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <minsize type="argvalue" arg="2"/>
    </arg>
    <arg nr="2">
      <not-bool/>
      <valid>0:</valid>
    </arg>
  </function>
  <function name="RtlZeroBytes">
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
    </arg>
    <arg nr="2">
      <not-bool/>
      <valid>0:</valid>
    </arg>
    <warn severity="style" reason="Obsolete" alternatives="RtlZeroMemory"/>
  </function>
  <function name="KeBugCheck">
    <noreturn>true</noreturn>
  </function>
  <function name="KeBugCheckEx">
    <noreturn>true</noreturn>
  </function>
  <!-- void CString::Format(LPCTSTR lpszFormat, ... ); -->
  <function name="CString::Format">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <leak-ignore/>
    <formatstr/>
    <arg nr="1">
      <formatstr/>
      <not-uninit/>
    </arg>
  </function>
  <!-- void CString::AppendFormat(LPCTSTR lpszFormat, ... ); -->
  <function name="CString::AppendFormat">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <leak-ignore/>
    <formatstr/>
    <arg nr="1">
      <formatstr/>
      <not-uninit/>
    </arg>
  </function>
  <!-- int printf_s(const char *format [, argument]...); -->
  <function name="printf_s">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <formatstr secure="true"/>
    <arg nr="1">
      <formatstr/>
      <not-uninit/>
      <not-null/>
    </arg>
  </function>
  <!-- int wprintf_s(const wchar_t *format [, argument]...); -->
  <function name="wprintf_s">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <formatstr secure="true"/>
    <arg nr="1">
      <formatstr/>
      <not-uninit/>
      <not-null/>
    </arg>
  </function>
  <!-- int fprintf_s(FILE *stream, const char *format [, argument ]...); -->
  <function name="fprintf_s">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <formatstr secure="true"/>
    <arg nr="2">
      <formatstr/>
      <not-uninit/>
      <not-null/>
    </arg>
  </function>
  <!-- int fwprintf_s(FILE *stream, const wchar_t *format [, argument ]...); -->
  <function name="fwprintf_s">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <formatstr secure="true"/>
    <arg nr="2">
      <formatstr/>
      <not-uninit/>
      <not-null/>
    </arg>
  </function>
  <!-- int _snprintf_s(char *buffer, size_t sizeOfBuffer, size_t count, const char *format [, argument] ...); -->
  <function name="_snprintf_s">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <formatstr secure="true"/>
    <arg nr="4">
      <formatstr/>
      <not-uninit/>
      <not-null/>
    </arg>
  </function>
  <!-- int _snwprintf_s(wchar_t *buffer, size_t sizeOfBuffer, size_t count, const wchar_t *format [, argument] ...); -->
  <function name="_snwprintf_s">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <formatstr secure="true"/>
    <arg nr="4">
      <formatstr/>
      <not-uninit/>
      <not-null/>
    </arg>
  </function>
  <function name="DbgPrint">
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <formatstr/>
      <not-uninit/>
      <not-null/>
    </arg>
  </function>
  <function name="DbgPrintEx">
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="3">
      <formatstr/>
      <not-uninit/>
      <not-null/>
    </arg>
  </function>
  <function name="vDbgPrintEx">
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="3">
      <formatstr/>
      <not-uninit/>
      <not-null/>
    </arg>
  </function>
  <function name="vDbgPrintExWithPrefix">
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="4">
      <formatstr/>
      <not-uninit/>
      <not-null/>
    </arg>
  </function>
  <!-- int scanf_s(const char *format [, argument]...); -->
  <function name="scanf_s">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <formatstr scan="true" secure="true"/>
    <arg nr="1">
      <formatstr/>
      <not-uninit/>
      <not-null/>
    </arg>
  </function>
  <!-- int wscanf_s(const wchar_t *format [, argument]...); -->
  <function name="wscanf_s">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <formatstr scan="true" secure="true"/>
    <arg nr="1">
      <formatstr/>
      <not-uninit/>
      <not-null/>
    </arg>
  </function>
  <!-- int sscanf_s(const char *buffer, const char *format [, argument ] ...); -->
  <function name="sscanf_s">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <formatstr scan="true" secure="true"/>
    <arg nr="2">
      <formatstr/>
      <not-uninit/>
      <not-null/>
    </arg>
  </function>
  <function name="fscanf_s">
    <noreturn>false</noreturn>
    <formatstr scan="true" secure="true"/>
    <arg nr="2">
      <formatstr/>
      <not-uninit/>
      <not-null/>
    </arg>
  </function>
  <function name="fwscanf_s">
    <noreturn>false</noreturn>
    <formatstr scan="true" secure="true"/>
    <arg nr="2">
      <formatstr/>
      <not-uninit/>
      <not-null/>
    </arg>
  </function>
  <!-- int swscanf_s(const wchar_t *buffer, const wchar_t *format [, argument ] ...); -->
  <function name="swscanf_s">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <formatstr scan="true" secure="true"/>
    <arg nr="2">
      <formatstr/>
      <not-uninit/>
      <not-null/>
    </arg>
  </function>
  <!-- BOOL WINAPI CloseHandle(_In_  HANDLE hObject); -->
  <function name="CloseHandle">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!--HFILE WINAPI OpenFile(
  _In_  LPCSTR     lpFileName,
  _Out_ LPOFSTRUCT lpReOpenBuff,
  _In_  UINT       uStyle);-->
  <function name="OpenFile">
    <noreturn>false</noreturn>
    <returnValue type="HFILE"/>
    <arg nr="1">
      <not-uninit/>
      <not-null/>
      <strz/>
    </arg>
    <arg nr="2"/>
    <arg nr="3">
      <not-uninit/>
    </arg>
  </function>
  <!-- BOOL WINAPI BuildCommDCB(
  _In_   LPCTSTR lpDef,
  _Out_  LPDCB lpDCB); -->
  <function name="BuildCommDCB">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2"/>
  </function>
  <!-- BOOL WINAPI BuildCommDCBAndTimeouts(
  _In_   LPCTSTR lpDef,
  _Out_  LPDCB lpDCB,
  _Out_  LPCOMMTIMEOUTS lpCommTimeouts); -->
  <function name="BuildCommDCBAndTimeouts">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2"/>
    <arg nr="3"/>
  </function>
  <!-- BOOL WINAPI WriteFile(
  _In_         HANDLE hFile,
  _In_         LPCVOID lpBuffer,
  _In_         DWORD nNumberOfBytesToWrite,
  _Out_opt_    LPDWORD lpNumberOfBytesWritten,
  _Inout_opt_  LPOVERLAPPED lpOverlapped); -->
  <function name="WriteFile">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4"/>
    <arg nr="5"/>
  </function>
  <!-- BOOL WINAPI ReadFile(
  _In_         HANDLE hFile,
  _Out_        LPVOID lpBuffer,
  _In_         DWORD nNumberOfBytesToRead,
  _Out_opt_    LPDWORD lpNumberOfBytesRead,
  _Inout_opt_  LPOVERLAPPED lpOverlapped); -->
  <function name="ReadFile">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4"/>
    <arg nr="5"/>
  </function>
  <!-- HANDLE WINAPI CreateFile(
  _In_      LPCTSTR lpFileName,
  _In_      DWORD dwDesiredAccess,
  _In_      DWORD dwShareMode,
  _In_opt_  LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  _In_      DWORD dwCreationDisposition,
  _In_      DWORD dwFlagsAndAttributes,
  _In_opt_  HANDLE hTemplateFile); -->
  <function name="CreateFile">
    <noreturn>false</noreturn>
    <returnValue type="HANDLE"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
    <arg nr="5">
      <not-uninit/>
    </arg>
    <arg nr="6">
      <not-uninit/>
    </arg>
    <arg nr="7">
      <not-uninit/>
    </arg>
  </function>
  <!-- BOOL WINAPI SetCommTimeouts(
  _In_  HANDLE hFile,
  _In_  LPCOMMTIMEOUTS lpCommTimeouts); -->
  <function name="SetCommTimeouts">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!-- BOOL WINAPI SetCommState(
  _In_  HANDLE hFile,
  _In_  LPDCB lpDCB);-->
  <function name="SetCommState">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!-- unsigned char *_mbstok(unsigned char *strToken, const unsigned char *strDelimit);  -->
  <function name="_mbstok,_tcstok">
    <pure/>
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- unsigned char *_mbstok_l(unsigned char *strToken, const unsigned char *strDelimit, _locale_t locale );  -->
  <function name="_mbstok_l">
    <pure/>
    <noreturn>false</noreturn>
    <returnValue type="unsigned char *"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
  </function>
  <!-- char *_strtok_s_l(char *strToken, const char *strDelimit, char **context,_locale_t locale ); -->
  <!-- wchar_t *_wcstok_s_l(wchar_t *strToken, const wchar_t *strDelimit, wchar_t**context,_locale_t locale); -->
  <!-- unsigned char *_mbstok_s_l(unsigned char*strToken, const unsigned char *strDelimit, char **context,_locale_t locale); -->
  <function name="_strtok_s_l,_wcstok_s_l,_mbstok_s_l,_tcstok_s_l">
    <!-- strtok may modify the first argument, so using the return value is not mandatory -->
    <noreturn>false</noreturn>
    <pure/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-null/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
  </function>
  <!-- char *strtok_s(char *strToken, const char *strDelimit, char **context); -->
  <!-- wchar_t *wcstok_s(wchar_t *strToken, const wchar_t *strDelimit, wchar_t**context); -->
  <!-- unsigned char *_mbstok_s(unsigned char*strToken, const unsigned char *strDelimit, char **context); -->
  <function name="strtok_s,wcstok_s,_mbstok_s,_tcstok_s">
    <!-- strtok may modify the first argument, so using the return value is not mandatory -->
    <noreturn>false</noreturn>
    <pure/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-null/>
    </arg>
  </function>
  <!-- char *_getcwd(char *buffer, int maxlen); -->
  <!-- wchar_t *_wgetcwd(wchar_t *buffer, int maxlen);-->
  <function name="_getcwd,_wgetcwd">
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!-- HRESULT SHGetFolderPath(
  _In_  HWND   hwndOwner,
  _In_  int    nFolder,
  _In_  HANDLE hToken,
  _In_  DWORD  dwFlags,
  _Out_ LPTSTR pszPath);-->
  <function name="SHGetFolderPath,SHGetFolderPathA,SHGetFolderPathW">
    <noreturn>false</noreturn>
    <returnValue type="HRESULT"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
    <arg nr="5">
      <not-null/>
    </arg>
  </function>
  <!-- LONG WINAPI RegQueryValueEx(
  _In_        HKEY    hKey,
  _In_opt_    LPCTSTR lpValueName,
  _Reserved_  LPDWORD lpReserved,
  _Out_opt_   LPDWORD lpType,
  _Out_opt_   LPBYTE  lpData,
  _Inout_opt_ LPDWORD lpcbData);-->
  <function name="RegQueryValueEx,RegQueryValueExA,RegQueryValueExW">
    <noreturn>false</noreturn>
    <returnValue type="LONG"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
    <arg nr="6"/>
  </function>
  <!-- LONG WINAPI RegCloseKey(_In_ HKEY hKey );-->
  <function name="RegCloseKey">
    <noreturn>false</noreturn>
    <returnValue type="LONG"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- int _stricmp_l(const char *string1, const char *string2, _locale_t locale);  -->
  <!-- int _wcsicmp_l(const wchar_t *string1, const wchar_t *string2, _locale_t locale); -->
  <!-- int _mbsicmp_l(const wchar_t *string1, const wchar_t *string2, _locale_t locale); -->
  <function name="_stricmp_l,_wcsicmp_l,_mbsicmp_l">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <not-null/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <not-null/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
  </function>
  <!-- int stricmp(const char *s1, const char *s2); -->
  <!-- int _stricmp(const char *s1, const char *s2); -->
  <!-- int wcsicmp(const wchar_t *s1, const wchar_t *s2); -->
  <!-- int _wcsicmp(const wchar_t *s1, const wchar_t *s2); -->
  <!-- int _mbsicmp(const unsigned char *string1, const unsigned char *string2); -->
  <function name="stricmp,_stricmp,wcsicmp,_wcsicmp,_mbsicmp,_tcsicmp">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <not-null/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <not-null/>
    </arg>
  </function>
  <!-- DWORD WINAPI GetFileAttributes(_In_ LPCTSTR lpFileName);-->
  <function name="GetFileAttributes,GetFileAttributesA,GetFileAttributesW">
    <noreturn>false</noreturn>
    <returnValue type="DWORD"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- LONG WINAPI RegOpenKeyEx(
  _In_     HKEY    hKey,
  _In_opt_ LPCTSTR lpSubKey,
  _In_     DWORD   ulOptions,
  _In_     REGSAM  samDesired,
  _Out_    PHKEY   phkResult); -->
  <function name="RegOpenKeyEx,RegOpenKeyExA,RegOpenKeyExW">
    <noreturn>false</noreturn>
    <returnValue type="LONG"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
    <arg nr="5"/>
  </function>
  <!-- int __cdecl wsprintf(_Out_ LPTSTR  lpOut, _In_  LPCTSTR lpFmt, _In_ ...);-->
  <function name="wsprintf,wsprintfA,wsprintfW">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <minsize type="strlen" arg="2"/>
    </arg>
    <formatstr/>
    <arg nr="2">
      <formatstr/>
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- int sprintf_s(char *buffer, size_t sizeOfBuffer, const char *format, ...);-->
  <!-- template <size_t size> int sprintf_s(char (&buffer)[size], const char *format, ...); // C++ only -->
  <!-- int swprintf_s(wchar_t *buffer, size_t sizeOfBuffer, const wchar_t *format, ...); -->
  <!-- template <size_t size> int swprintf_s(wchar_t (&buffer)[size], const wchar_t *format, ...); // C++ only -->
  <function name="sprintf_s,swprintf_s">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <!-- These functions and the format string checking is completely
    implemented in Cppcheck. It can not (yet) be configured in the configuration
    file. See #8381 -->
  </function>
  <!-- int _sprintf_s_l(char *buffer, size_t sizeOfBuffer, const char *format, locale_t locale, ... ); 
       int _swprintf_s_l(wchar_t *buffer, size_t sizeOfBuffer, const wchar_t *format, locale_t locale, ...);-->
  <function name="_sprintf_s_l,_swprintf_s_l">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <minsize type="argvalue" arg="2"/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
    <formatstr/>
    <arg nr="3">
      <formatstr/>
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
  </function>
  <!-- LONG WINAPI RegEnumKeyEx(
  _In_        HKEY      hKey,
  _In_        DWORD     dwIndex,
  _Out_       LPTSTR    lpName,
  _Inout_     LPDWORD   lpcName,
  _Reserved_  LPDWORD   lpReserved,
  _Inout_     LPTSTR    lpClass,
  _Inout_opt_ LPDWORD   lpcClass,
  _Out_opt_   PFILETIME lpftLastWriteTime); -->
  <function name="RegEnumKeyEx,RegEnumKeyExA,RegEnumKeyExW">
    <noreturn>false</noreturn>
    <returnValue type="LONG"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="8"/>
  </function>
  <!-- 
HFONT CreateFont(
  _In_  int nHeight,
  _In_  int nWidth,
  _In_  int nEscapement,
  _In_  int nOrientation,
  _In_  int fnWeight,
  _In_  DWORD fdwItalic,
  _In_  DWORD fdwUnderline,
  _In_  DWORD fdwStrikeOut,
  _In_  DWORD fdwCharSet,
  _In_  DWORD fdwOutputPrecision,
  _In_  DWORD fdwClipPrecision,
  _In_  DWORD fdwQuality,
  _In_  DWORD fdwPitchAndFamily,
  _In_  LPCTSTR lpszFace
);
-->
  <function name="CreateFont">
    <noreturn>false</noreturn>
    <returnValue type="HFONT"/>
    <arg nr="any">
      <not-uninit/>
    </arg>
    <arg nr="14"/>
  </function>
  <!-- USHORT WINAPI CaptureStackBackTrace(
  _In_      ULONG  FramesToSkip,
  _In_      ULONG  FramesToCapture,
  _Out_     PVOID  *BackTrace,
  _Out_opt_ PULONG BackTraceHash); -->
  <function name="CaptureStackBackTrace">
    <noreturn>false</noreturn>
    <returnValue type="USHORT"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="4"/>
  </function>
  <!-- int _vsnprintf(char *buffer, size_t count, const char *format, va_list argptr);
       int _vsnwprintf(wchar_t *buffer, size_t count, const wchar_t *format, va_list argptr);-->
  <function name="_vsnprintf,_vsnwprintf">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <minsize type="argvalue" arg="2"/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
    <arg nr="3">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="4"/>
  </function>
  <!-- int _vsnprintf_l (char *buffer   , size_t count, const char *format, locale_t locale,  va_list argptr); 
       int _vsnwprintf_l(wchar_t *buffer, size_t count, const wchar_t *format, locale_t locale, va_list argptr); 
       int _vswprintf_l(wchar_t *buffer,  size_t count, const wchar_t *format, locale_t locale, va_list argptr);-->
  <function name="_vsnprintf_l,_vsnwprintf_l,_vswprintf_l">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <minsize type="argvalue" arg="2"/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
    <arg nr="3">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
    <arg nr="5"/>
  </function>
  <!-- int vsnprintf_s(char *buffer, size_t sizeOfBuffer, size_t count, const char *format, va_list argptr); 
       int _vsnprintf_s( char *buffer, size_t sizeOfBuffer, size_t count, const char *format, va_list argptr);
       int _vsnwprintf_s( wchar_t *buffer, size_t sizeOfBuffer, size_t count, const wchar_t *format, va_list argptr); -->
  <function name="vsnprintf_s,_vsnprintf_s,_vsnwprintf_s">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <minsize type="argvalue" arg="2"/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
    <arg nr="4">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="5"/>
  </function>
  <!-- int _vsnprintf_s_l(char *buffer, size_t sizeOfBuffer, size_t count, const char *format, locale_t locale,  va_list argptr); 
       int _vsnwprintf_s_l(wchar_t *buffer, size_t sizeOfBuffer, size_t count, const wchar_t *format, locale_t locale, va_list argptr); -->
  <function name="_vsnprintf_s_l,_vsnwprintf_s_l">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <minsize type="argvalue" arg="2"/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
    <arg nr="4">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="5">
      <not-uninit/>
    </arg>
    <arg nr="6"/>
  </function>
  <!-- int _vsprintf_l(char *buffer, const char *format, locale_t locale, va_list argptr); 
      int __vswprintf_l(wchar_t *buffer, const wchar_t *format, locale_t locale, va_list argptr);-->
  <function name="_vsprintf_l,__vswprintf_l">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
    </arg>
    <arg nr="2">
      <not-null/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4"/>
  </function>
  <!-- char *_strdup(const char *strSource);
    wchar_t *_wcsdup(const wchar_t *strSource);
    unsigned char *_mbsdup(const unsigned char *strSource);-->
  <function name="_strdup,_wcsdup,_mbsdup,_tcsdup">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- char *_strdup_dbg(const char *strSource, int blockType, const char *filename, int linenumber );  
       wchar_t *_wcsdup_dbg(const wchar_t *strSource, int blockType, const char *filename, int linenumber);-->
  <function name="_strdup_dbg,_wcsdup_dbg,_tcsdup_dbg">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
  </function>
  <!-- int _mbscmp(const unsigned char *string1, const unsigned char *string2); -->
  <function name="_mbscmp,_tcscmp">
    <use-retval/>
    <pure/>
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
  </function>
  <!-- int _snprintf(char *s, size_t n, const char *format, ...); 
       int _snwprintf(wchar_t *buffer, size_t count, const wchar_t *format, ...);-->
  <function name="_snprintf,_snwprintf,_sntprintf">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <minsize type="argvalue" arg="2"/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
    <formatstr/>
    <arg nr="3">
      <formatstr/>
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- errno_t strcpy_s(char *strDestination, size_t numberOfElements, const char *strSource);
       errno_t wcscpy_s(wchar_t *strDestination, size_t numberOfElements, const wchar_t *strSource);
       errno_t _mbscpy_s(unsigned char *strDestination, size_t numberOfElements, const unsigned char *strSource); -->
  <function name="strcpy_s,wcscpy_s,_mbscpy_s,_tcscpy_s">
    <noreturn>false</noreturn>
    <returnValue type="errno_t"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
    <arg nr="3">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- int _CrtSetDbgFlag(int newFlag); -->
  <function name="_CrtSetDbgFlag">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- int _stat(const char *path, struct _stat *buffer);
       int _stat32(const char *path, struct __stat32 *buffer);
       int _stat64(const char *path, struct __stat64 *buffer);
       int _stati64(const char *path, struct _stati64 *buffer);
       int _stat32i64(const char *path, struct _stat32i64 *buffer);
       int _stat64i32(const char *path, struct _stat64i32 *buffer);
       int _wstat(const wchar_t *path, struct _stat *buffer);
       int _wstat32(const wchar_t *path, struct __stat32 *buffer);
       int _wstat64(const wchar_t *path, struct __stat64 *buffer);
       int _wstati64(const wchar_t *path, struct _stati64 *buffer);
       int _wstat32i64(const wchar_t *path, struct _stat32i64 *buffer);
       int _wstat64i32(const wchar_t *path, struct _stat64i32 *buffer); -->
  <function name="_stat,_tstat,_stat32,_stat64,_tstat64,_stati64,_tstati64,_stat32i64,_tstat32i64,_stat64i32,_tstat64i32,_wstat,_wstat32,_wstat64,_wstati64,_wstat32i64,_wstat64i32">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <not-null/>
    </arg>
    <arg nr="2">
      <not-null/>
    </arg>
  </function>
  <!-- int _fstat(int fd, struct _stat *buffer);
       int _fstat32(int fd, struct __stat32 *buffer);
       int _fstat64(int fd, struct __stat64 *buffer);
       int _fstati64(int fd, struct _stati64 *buffer);
       int _fstat32i64(int fd, struct _stat32i64 *buffer);
       int _fstat64i32(int fd, struct _stat64i32 *buffer);-->
  <function name="_fstat,_fstat32,_fstat64,_fstati64,_fstat32i64,_fstat64i32">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
    </arg>
  </function>
  <!-- int _fseeki64(FILE *stream, __int64 offset, int origin); -->
  <function name="_fseeki64">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
  </function>
  <!-- __int64 _ftelli64(FILE *stream); 
         long _ftell_nolock(FILE *stream);  
       __int64 _ftelli64_nolock(FILE *stream); -->
  <function name="_ftelli64,_ftell_nolock,_ftelli64_nolock">
    <noreturn>false</noreturn>
    <leak-ignore/>
    <use-retval/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- FILE *_wfopen(const wchar_t *filename, const wchar_t *mode); -->
  <function name="_wfopen,_tfopen">
    <use-retval/>
    <noreturn>false</noreturn>
    <returnValue type="FILE *"/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- size_t strnlen_s(const char *str, size_t numberOfElements);
       size_t wcsnlen_s(const wchar_t *str, size_t numberOfElements);
       size_t _mbsnlen(const unsigned char *str, size_t numberOfElements);
       size_t _mbstrnlen(const char *str, size_t numberOfElements);-->
  <function name="strnlen_s,wcsnlen_s,_mbsnlen,_mbstrnlen">
    <use-retval/>
    <noreturn>false</noreturn>
    <returnValue type="size_t"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
  </function>
  <!-- size_t _mbsnlen_l(const unsigned char *str, size_t numberOfElements, _locale_t locale);
       size_t _mbstrnlen_l(const char *str, size_t numberOfElements, _locale_t locale);-->
  <function name="_mbsnlen_l,_mbstrnlen_l">
    <use-retval/>
    <noreturn>false</noreturn>
    <returnValue type="size_t"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
  </function>
  <!-- int WideCharToMultiByte(
  _In_      UINT    CodePage,
  _In_      DWORD   dwFlags,
  _In_      LPCWSTR lpWideCharStr,
  _In_      int     cchWideChar,
  _Out_opt_ LPSTR   lpMultiByteStr,
  _In_      int     cbMultiByte,
  _In_opt_  LPCSTR  lpDefaultChar,
  _Out_opt_ LPBOOL  lpUsedDefaultChar
  ); -->
  <function name="WideCharToMultiByte">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
    <arg nr="6">
      <not-uninit/>
    </arg>
    <arg nr="7">
      <not-uninit/>
    </arg>
    <arg nr="8"/>
  </function>
  <!-- BOOL PathIsDirectory(_In_ LPCTSTR pszPath);-->
  <function name="PathIsDirectory,PathIsDirectoryA,PathIsDirectoryW">
    <use-retval/>
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- BOOL WINAPI SetConsoleTextAttribute(
  _In_ HANDLE hConsoleOutput,
  _In_ WORD   wAttributes); -->
  <function name="SetConsoleTextAttribute">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!-- errno_t _wfopen_s(FILE** pFile, const wchar_t *filename, const wchar_t *mode); -->
  <function name="_wfopen_s,_tfopen_s">
    <noreturn>false</noreturn>
    <returnValue type="errno_t"/>
    <arg nr="1">
      <not-null/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
    <arg nr="3">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- BOOL WINAPI DeleteFile(_In_ LPCTSTR lpFileName);-->
  <function name="DeleteFile,DeleteFileA,DeleteFileW">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- HANDLE WINAPI GetStdHandle(_In_ DWORD nStdHandle); -->
  <function name="GetStdHandle">
    <use-retval/>
    <noreturn>false</noreturn>
    <returnValue type="HANDLE"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- BOOL WINAPI SetStdHandle(_In_ DWORD  nStdHandle, _In_ HANDLE hHandle); -->
  <function name="SetStdHandle">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!-- int _access(const char *path, int mode);
       int _waccess(const wchar_t *path, int mode); -->
  <function name="_access,_waccess,_taccess">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!-- BOOL WINAPI PeekMessage(
  _Out_    LPMSG lpMsg,
  _In_opt_ HWND  hWnd,
  _In_     UINT  wMsgFilterMin,
  _In_     UINT  wMsgFilterMax,
  _In_     UINT  wRemoveMsg); -->
  <function name="PeekMessage,PeekMessageA,PeekMessageW">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
    <arg nr="5">
      <not-uninit/>
    </arg>
  </function>
  <!-- BOOL WINAPI GetMessage(
  _Out_    LPMSG lpMsg,
  _In_opt_ HWND  hWnd,
  _In_     UINT  wMsgFilterMin,
  _In_     UINT  wMsgFilterMax); -->
  <function name="GetMessage,GetMessageA,GetMessageW">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
  </function>
  <!-- BOOL WINAPI TranslateMessage(
  _In_ const MSG *lpMsg); -->
  <function name="TranslateMessage">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- LRESULT WINAPI DispatchMessage(
  _In_ const MSG *lpmsg); -->
  <function name="DispatchMessage,DispatchMessageA,DispatchMessageW">
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- LRESULT WINAPI SendMessage(
  _In_ HWND   hWnd,
  _In_ UINT   Msg,
  _In_ WPARAM wParam,
  _In_ LPARAM lParam); -->
  <!-- BOOL WINAPI PostMessage(
  _In_opt_ HWND   hWnd,
  _In_     UINT   Msg,
  _In_     WPARAM wParam,
  _In_     LPARAM lParam); -->
  <function name="SendMessage,SendMessageA,SendMessageW,PostMessage,PostMessageA,PostMessageW">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
  </function>
  <!-- VOID WINAPI PostQuitMessage(
  _In_ int nExitCode); -->
  <function name="PostQuitMessage">
    <noreturn>false</noreturn>
    <returnValue type="VOID"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- LRESULT WINAPI DefWindowProc(
  _In_ HWND   hWnd,
  _In_ UINT   Msg,
  _In_ WPARAM wParam,
  _In_ LPARAM lParam); -->
  <function name="DefWindowProc,DefWindowProcA,DefWindowProcW">
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
  </function>
  <!-- UINT WINAPI GetPrivateProfileInt(
  _In_ LPCTSTR lpAppName,
  _In_ LPCTSTR lpKeyName,
  _In_ INT     nDefault,
  _In_ LPCTSTR lpFileName); -->
  <function name="GetPrivateProfileInt,GetPrivateProfileIntA,GetPrivateProfileIntW">
    <noreturn>false</noreturn>
    <returnValue type="UINT"/>
    <use-retval/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
  </function>
  <!-- DWORD WINAPI GetPrivateProfileSection(
  _In_  LPCTSTR lpAppName,
  _Out_ LPTSTR  lpReturnedString,
  _In_  DWORD   nSize,
  _In_  LPCTSTR lpFileName); -->
  <function name="GetPrivateProfileSection,GetPrivateProfileSectionA,GetPrivateProfileSectionW">
    <noreturn>false</noreturn>
    <returnValue type="DWORD"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
    <arg nr="2">
      <not-null/>
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
  </function>
  <!-- DWORD WINAPI GetPrivateProfileSectionNames(
  _Out_ LPTSTR  lpszReturnBuffer,
  _In_  DWORD   nSize,
  _In_  LPCTSTR lpFileName); -->
  <function name="GetPrivateProfileSectionNames,GetPrivateProfileSectionNamesA,GetPrivateProfileSectionNamesW">
    <noreturn>false</noreturn>
    <returnValue type="DWORD"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <minsize type="argvalue" arg="2"/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
  </function>
  <!-- DWORD WINAPI GetPrivateProfileString(
  _In_  LPCTSTR lpAppName,
  _In_  LPCTSTR lpKeyName,
  _In_  LPCTSTR lpDefault,
  _Out_ LPTSTR  lpReturnedString,
  _In_  DWORD   nSize,
  _In_  LPCTSTR lpFileName); -->
  <function name="GetPrivateProfileString,GetPrivateProfileStringA,GetPrivateProfileStringW">
    <noreturn>false</noreturn>
    <returnValue type="DWORD"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <strz/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <strz/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-null/>
      <minsize type="argvalue" arg="5"/>
    </arg>
    <arg nr="5">
      <not-uninit/>
    </arg>
    <arg nr="6">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
  </function>
  <!-- BOOL WINAPI GetPrivateProfileStruct(
  _In_  LPCTSTR lpszSection,
  _In_  LPCTSTR lpszKey,
  _Out_ LPVOID  lpStruct,
  _In_  UINT    uSizeStruct,
  _In_  LPCTSTR szFile); -->
  <function name="GetPrivateProfileStruct,GetPrivateProfileStructA,GetPrivateProfileStructW">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
    <arg nr="3">
      <not-null/>
      <minsize type="argvalue" arg="4"/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
    <arg nr="5">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
  </function>
  <!-- HDC BeginPaint(
  _In_  HWND          hwnd,
  _Out_ LPPAINTSTRUCT lpPaint); -->
  <function name="BeginPaint">
    <noreturn>false</noreturn>
    <returnValue type="HDC"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
    </arg>
  </function>
  <!-- BOOL EndPaint(
  _In_       HWND        hWnd,
  _In_ const PAINTSTRUCT *lpPaint); -->
  <function name="EndPaint">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
    </arg>
  </function>
  <!-- HGDIOBJ GetStockObject(
  _In_ int fnObject); -->
  <function name="GetStockObject">
    <noreturn>false</noreturn>
    <returnValue type="HGDIOBJ"/>
    <pure/>
    <use-retval/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- HICON WINAPI LoadIcon(
  _In_opt_ HINSTANCE hInstance,
  _In_     LPCTSTR   lpIconName); -->
  <function name="LoadIcon,LoadIconA,LoadIconW">
    <noreturn>false</noreturn>
    <returnValue type="HICON"/>
    <leak-ignore/>
    <use-retval/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- HBRUSH CreateSolidBrush(
  _In_ COLORREF crColor); -->
  <function name="CreateSolidBrush">
    <noreturn>false</noreturn>
    <returnValue type="HBRUSH"/>
    <leak-ignore/>
    <use-retval/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- BOOL UpdateWindow(
  _In_ HWND hWnd); -->
  <function name="UpdateWindow">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- BOOL WINAPI EnableWindow(
  _In_ HWND hWnd,
  _In_ BOOL bEnable); -->
  <function name="EnableWindow">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!-- HWND WINAPI CreateWindow(
  _In_opt_ LPCTSTR   lpClassName,
  _In_opt_ LPCTSTR   lpWindowName,
  _In_     DWORD     dwStyle,
  _In_     int       x,
  _In_     int       y,
  _In_     int       nWidth,
  _In_     int       nHeight,
  _In_opt_ HWND      hWndParent,
  _In_opt_ HMENU     hMenu,
  _In_opt_ HINSTANCE hInstance,
  _In_opt_ LPVOID    lpParam); -->
  <function name="CreateWindow,CreateWindowA,CreateWindowW">
    <noreturn>false</noreturn>
    <returnValue type="HWND"/>
    <use-retval/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
    <arg nr="5">
      <not-uninit/>
    </arg>
    <arg nr="6">
      <not-uninit/>
    </arg>
    <arg nr="7">
      <not-uninit/>
    </arg>
    <arg nr="8">
      <not-uninit/>
    </arg>
    <arg nr="9">
      <not-uninit/>
    </arg>
    <arg nr="10">
      <not-uninit/>
    </arg>
    <arg nr="11">
      <not-uninit/>
    </arg>
  </function>
  <!-- HWND WINAPI CreateWindowEx(
  _In_     DWORD     dwExStyle,
  _In_opt_ LPCTSTR   lpClassName,
  _In_opt_ LPCTSTR   lpWindowName,
  _In_     DWORD     dwStyle,
  _In_     int       x,
  _In_     int       y,
  _In_     int       nWidth,
  _In_     int       nHeight,
  _In_opt_ HWND      hWndParent,
  _In_opt_ HMENU     hMenu,
  _In_opt_ HINSTANCE hInstance,
  _In_opt_ LPVOID    lpParam); -->
  <function name="CreateWindowEx,CreateWindowExA,CreateWindowExW">
    <noreturn>false</noreturn>
    <returnValue type="HWND"/>
    <use-retval/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
    <arg nr="5">
      <not-uninit/>
    </arg>
    <arg nr="6">
      <not-uninit/>
    </arg>
    <arg nr="7">
      <not-uninit/>
    </arg>
    <arg nr="8">
      <not-uninit/>
    </arg>
    <arg nr="9">
      <not-uninit/>
    </arg>
    <arg nr="10">
      <not-uninit/>
    </arg>
    <arg nr="11">
      <not-uninit/>
    </arg>
    <arg nr="12">
      <not-uninit/>
    </arg>
  </function>
  <!-- BOOL WINAPI SetWindowText(
  _In_     HWND    hWnd,
  _In_opt_ LPCTSTR lpString); -->
  <function name="SetWindowText,SetWindowTextA,SetWindowTextW">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- ATOM WINAPI RegisterClass(
  _In_ const WNDCLASS *lpWndClass); -->
  <!-- ATOM WINAPI RegisterClassEx(
  _In_ const WNDCLASSEX *lpwcx); -->
  <function name="RegisterClass,RegisterClassEx">
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- BOOL WINAPI UnregisterClass(
  _In_     LPCTSTR   lpClassName,
  _In_opt_ HINSTANCE hInstance); -->
  <function name="UnregisterClass,UnregisterClassA,UnregisterClassW">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!-- int WINAPI MessageBox(
  _In_opt_ HWND    hWnd,
  _In_opt_ LPCTSTR lpText,
  _In_opt_ LPCTSTR lpCaption,
  _In_     UINT    uType); -->
  <function name="MessageBox,MessageBoxA,MessageBoxW">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
  </function>
  <!-- LPVOID WINAPI GlobalLock(
  _In_ HGLOBAL hMem); -->
  <function name="GlobalLock">
    <noreturn>false</noreturn>
    <returnValue type="LPVOID"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <not-null/>
    </arg>
  </function>
  <!-- BOOL WINAPI GlobalUnlock(
  _In_ HGLOBAL hMem); -->
  <function name="GlobalUnlock">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <not-null/>
    </arg>
  </function>
  <!-- BOOL WINAPI OpenClipboard(
  _In_opt_ HWND hWndNewOwner); -->
  <function name="OpenClipboard">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- BOOL WINAPI EmptyClipboard(void); -->
  <!-- BOOL WINAPI CloseClipboard(void); -->
  <function name="EmptyClipboard,CloseClipboard">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
  </function>
  <!-- HANDLE WINAPI SetClipboardData(
  _In_     UINT   uFormat,
  _In_opt_ HANDLE hMem); -->
  <function name="SetClipboardData">
    <noreturn>false</noreturn>
    <returnValue type="HANDLE"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!-- int _rmdir(const char *dirname); 
       int _wrmdir(const wchar_t *dirname);-->
  <function name="_rmdir,_wrmdir">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- int _mkdir(const char *dirname);
       int _wmkdir(const wchar_t *dirname); -->
  <function name="_mkdir,_wmkdir">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!--__int64 _abs64( __int64 n);-->
  <function name="_abs64">
    <use-retval/>
    <pure/>
    <noreturn>false</noreturn>
    <leak-ignore/>
    <returnValue type="__int64">arg1&gt;0?arg1:-arg1</returnValue>
    <arg nr="1">
      <not-uninit/>
      <not-bool/>
    </arg>
  </function>
  <!-- HANDLE WINAPI CreateWaitableTimer(
  _In_opt_ LPSECURITY_ATTRIBUTES lpTimerAttributes,
  _In_     BOOL                  bManualReset,
  _In_opt_ LPCTSTR               lpTimerName );-->
  <function name="CreateWaitableTimer">
    <use-retval/>
    <noreturn>false</noreturn>
    <returnValue type="HANDLE"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
  </function>
  <!-- BOOL WINAPI SetWaitableTimer(
  _In_           HANDLE           hTimer,
  _In_     const LARGE_INTEGER    *pDueTime,
  _In_           LONG             lPeriod,
  _In_opt_       PTIMERAPCROUTINE pfnCompletionRoutine,
  _In_opt_       LPVOID           lpArgToCompletionRoutine,
  _In_           BOOL             fResume);-->
  <function name="SetWaitableTimer">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <not-null/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
    <arg nr="5">
      <not-uninit/>
    </arg>
    <arg nr="6">
      <not-uninit/>
    </arg>
  </function>
  <!-- DWORD WINAPI WaitForSingleObject(
  _In_ HANDLE hHandle,
  _In_ DWORD  dwMilliseconds); -->
  <function name="WaitForSingleObject">
    <noreturn>false</noreturn>
    <returnValue type="DWORD"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!-- int _pclose(FILE *stream); -->
  <function name="_pclose">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- FILE *_popen( const char *command, const char *mode ); 
       FILE *_wpopen(const wchar_t *command, const wchar_t *mode);-->
  <function name="_popen,_wpopen,_tpopen">
    <noreturn>false</noreturn>
    <returnValue type="FILE *"/>
    <use-retval/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- char *_mktemp(char *template);
       wchar_t *_wmktemp(wchar_t *template); -->
  <function name="_mktemp,_wmktemp">
    <use-retval/>
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- HANDLE WINAPI FindFirstFileEx(
  _In_       LPCTSTR            lpFileName,
  _In_       FINDEX_INFO_LEVELS fInfoLevelId,
  _Out_      LPVOID             lpFindFileData,
  _In_       FINDEX_SEARCH_OPS  fSearchOp,
  _Reserved_ LPVOID             lpSearchFilter,
  _In_       DWORD              dwAdditionalFlags
); -->
  <function name="FindFirstFileEx,FindFirstFileExA,FindFirstFileExW">
    <use-retval/>
    <noreturn>false</noreturn>
    <returnValue type="HANDLE"/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-null/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
    <arg nr="6">
      <not-uninit/>
    </arg>
  </function>
  <!-- HANDLE WINAPI FindFirstFile(
  _In_  LPCTSTR           lpFileName,
  _Out_ LPWIN32_FIND_DATA lpFindFileData); -->
  <function name="FindFirstFile,FindFirstFileW,FindFirstFileA">
    <use-retval/>
    <noreturn>false</noreturn>
    <returnValue type="HANDLE"/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
    </arg>
  </function>
  <!-- BOOL WINAPI FindClose(_Inout_ HANDLE hFindFile); -->
  <function name="FindClose">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- HANDLE WINAPI CreateThread(
  _In_opt_  LPSECURITY_ATTRIBUTES  lpThreadAttributes,
  _In_      SIZE_T                 dwStackSize,
  _In_      LPTHREAD_START_ROUTINE lpStartAddress,
  _In_opt_  LPVOID                 lpParameter,
  _In_      DWORD                  dwCreationFlags,
  _Out_opt_ LPDWORD                lpThreadId); -->
  <function name="CreateThread">
    <use-retval/>
    <noreturn>false</noreturn>
    <returnValue type="HANDLE"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
    <arg nr="5">
      <not-uninit/>
    </arg>
    <arg nr="6"/>
  </function>
  <!-- BOOL WINAPI FindNextFile(
  _In_  HANDLE            hFindFile,
  _Out_ LPWIN32_FIND_DATA lpFindFileData); -->
  <function name="FindNextFile,FindNextFileW,FindNextFileA">
    <use-retval/>
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
    </arg>
  </function>
  <!-- BOOL WINAPI SetEnvironmentVariable(
  _In_     LPCTSTR lpName,
  _In_opt_ LPCTSTR lpValue);-->
  <function name="SetEnvironmentVariable,SetEnvironmentVariableW,SetEnvironmentVariableA">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2"/>
  </function>
  <!-- DWORD WINAPI QueryDosDevice(
  _In_opt_ LPCTSTR lpDeviceName,
  _Out_    LPTSTR  lpTargetPath,
  _In_     DWORD   ucchMax);-->
  <function name="QueryDosDevice,QueryDosDeviceW,QueryDosDeviceA">
    <use-retval/>
    <noreturn>false</noreturn>
    <returnValue type="DWORD"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
  </function>
  <!-- BOOL WINAPI GetDefaultCommConfig(
  _In_    LPCTSTR      lpszName,
  _Out_   LPCOMMCONFIG lpCC,
  _Inout_ LPDWORD      lpdwSize);-->
  <function name="GetDefaultCommConfig,GetDefaultCommConfigW,GetDefaultCommConfigA">
    <use-retval/>
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
    </arg>
    <arg nr="3"/>
  </function>
  <!-- DWORD WINAPI GetTempPath(
  _In_  DWORD  nBufferLength,
  _Out_ LPTSTR lpBuffer);-->
  <function name="GetTempPath,GetTempPathW,GetTempPathA">
    <noreturn>false</noreturn>
    <returnValue type="DWORD"/>
    <leak-ignore/>
    <arg nr="1">
      <valid>0:</valid>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <minsize type="argvalue" arg="1"/>
    </arg>
  </function>
  <!-- BOOL SetupDiDestroyDeviceInfoList(_In_ HDEVINFO DeviceInfoSet);-->
  <function name="SetupDiDestroyDeviceInfoList">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- BOOL SetupDiGetDeviceInstanceId(
  _In_      HDEVINFO         DeviceInfoSet,
  _In_      PSP_DEVINFO_DATA DeviceInfoData,
  _Out_opt_ PTSTR            DeviceInstanceId,
  _In_      DWORD            DeviceInstanceIdSize,
  _Out_opt_ PDWORD           RequiredSize);-->
  <function name="SetupDiGetDeviceInstanceId">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
    <arg nr="5"/>
  </function>
  <!-- BOOL SetupDiEnumDeviceInfo(
  _In_  HDEVINFO         DeviceInfoSet,
  _In_  DWORD            MemberIndex,
  _Out_ PSP_DEVINFO_DATA DeviceInfoData);-->
  <function name="SetupDiEnumDeviceInfo">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3"/>
  </function>
  <!-- HDEVINFO SetupDiGetClassDevs(
  _In_opt_ const GUID   *ClassGuid,
  _In_opt_       PCTSTR Enumerator,
  _In_opt_       HWND   hwndParent,
  _In_           DWORD  Flags ); -->
  <function name="SetupDiGetClassDevs">
    <noreturn>false</noreturn>
    <returnValue type="HDEVINFO"/>
    <leak-ignore/>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
  </function>
  <!-- unsigned char *_mbsstr(const unsigned char *str, const unsigned char *strSearch  -->
  <function name="_mbsstr,_tcsstr">
    <use-retval/>
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
  </function>
  <!-- unsigned char *_mbsstr_l(const unsigned char *str, const unsigned char *strSearch, _locale_t locale )-->
  <function name="_mbsstr_l">
    <returnValue type="unsigned char *"/>
    <use-retval/>
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
  </function>
  <!-- void *_memccpy(void *dest, const void *src, int c, size_t n);-->
  <function name="_memccpy">
    <leak-ignore/>
    <returnValue type="void *"/>
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-null/>
      <minsize type="sizeof" arg="2"/>
      <minsize type="argvalue" arg="4"/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
    <arg nr="4">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
  </function>
  <!-- int _fcloseall( void ); -->
  <function name="_fcloseall">
    <returnValue type="int"/>
    <noreturn>false</noreturn>
  </function>
  <!-- int _open(const char *filename,  int oflag [, int pmode] );
       int _wopen(  const wchar_t *filename,  int oflag [, int pmode]); -->
  <function name="_open,_wopen,_topen">
    <use-retval/>
    <returnValue type="int"/>
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
  </function>
  <!-- int _close(int fildes); -->
  <function name="_close">
    <returnValue type="int"/>
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- void _swab(char *src, char *dest, int n);-->
  <function name="_swab">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="2">
      <not-null/>
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <not-bool/>
      <valid>0:</valid>
    </arg>
  </function>
  <!-- int _strnicmp(const char *string1, const char *string2, size_t count); -->
  <!-- int _wcsnicmp(const wchar_t *string1, const wchar_t *string2, size_t count); -->
  <!-- int _mbsnicmp(const unsigned char *string1, const unsigned char *string2, size_t count); -->
  <function name="_strnicmp,_wcsnicmp,_mbsnicmp,_tcsncicmp,_tcsnicmp">
    <use-retval/>
    <returnValue type="int"/>
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <not-bool/>
      <valid>0:</valid>
    </arg>
  </function>
  <!-- int _strnicmp_l(const char *string1, const char *string2, size_t count, _locale_t locale); -->
  <!-- int _wcsnicmp_l(const wchar_t *string1, const wchar_t *string2, size_t count, _locale_t locale); -->
  <!-- int _mbsnicmp_l(const unsigned char *string1, const unsigned char *string2, size_t count,  _locale_t locale); -->
  <function name="_strnicmp_l,_wcsnicmp_l,_mbsnicmp_l,_tcsncicmp_l">
    <use-retval/>
    <returnValue type="int"/>
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <not-bool/>
      <valid>0:</valid>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
  </function>
  <!-- void *_malloc_dbg(size_t size, int blockType, const char *filename, int linenumber); -->
  <!-- void * _aligned_malloc_dbg(size_t size, size_t alignment, const char *filename, int linenumber); -->
  <function name="_malloc_dbg,_aligned_malloc_dbg">
    <use-retval/>
    <returnValue type="void *"/>
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
  </function>
  <!-- void * _aligned_malloc(size_t size, size_t alignment); -->
  <function name="_aligned_malloc">
    <use-retval/>
    <noreturn>false</noreturn>
    <returnValue type="void *"/>
    <arg nr="1">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!-- size_t _mbslen_l( const unsigned char *str, _locale_t locale);  -->
  <!-- size_t _mbstrlen_l( const char *str, _locale_t locale ); -->
  <function name="_mbslen_l,_mbstrlen_l,_tcsclen_l">
    <use-retval/>
    <pure/>
    <noreturn>false</noreturn>
    <returnValue type="size_t"/>
    <leak-ignore/>
    <returnValue>strlen(arg1)</returnValue>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!-- size_t _mbslen( const unsigned char *str );  -->
  <!-- size_t _mbstrlen( const char *str ); -->
  <function name="_mbslen,_mbstrlen,_tcslen,_tcsclen">
    <use-retval/>
    <returnValue type="size_t"/>
    <pure/>
    <noreturn>false</noreturn>
    <leak-ignore/>
    <returnValue>strlen(arg1)</returnValue>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
  </function>
  <!-- unsigned char *_mbsrchr_l(const unsigned char *str, unsigned int c, _locale_t locale ); // C only  
       unsigned char *_mbsrchr_(unsigned char *str, unsigned int c, _locale_t locale ); // C++ only  
       const unsigned char *_mbsrchr_(const unsigned char *str, unsigned int c, _locale_t locale ); // C++ only-->
  <function name="_mbsrchr_l">
    <use-retval/>
    <noreturn>false</noreturn>
    <returnValue type="unsigned char *"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
  </function>
  <!-- unsigned char *_mbsrchr(const unsigned char *str, unsigned int c); // C only  
       unsigned char *_mbsrchr(unsigned char *str, unsigned int c); // C++ only  
       const unsigned char *_mbsrchr(const unsigned char *str, unsigned int c); // C++ only-->
  <function name="_mbsrchr,_tcsrchr">
    <use-retval/>
    <noreturn>false</noreturn>
    <returnValue type="unsigned char *"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!-- size_t _strftime_l(char *strDest, size_t maxsize, const char *format, const struct tm *timeptr, _locale_t locale); -->
  <!-- size_t _wcsftime_l(wchar_t *strDest, size_t maxsize, const wchar_t *format, const struct tm *timeptr, _locale_t locale);  -->
  <function name="_strftime_l,_wcsftime_l">
    <noreturn>false</noreturn>
    <returnValue type="size_t"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
    <arg nr="3">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="5">
      <not-uninit/>
    </arg>
  </function>
  <!-- size_t _tcsftime(char *s, size_t max, const char *fmt, const struct tm *p); -->
  <function name="_tcsftime">
    <noreturn>false</noreturn>
    <returnValue type="size_t"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
    <arg nr="3">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- errno_t _wfreopen_s(FILE** pFile, const wchar_t *path, const wchar_t *mode, FILE *stream); -->
  <function name="_wfreopen_s,_tfreopen_s">
    <noreturn>false</noreturn>
    <returnValue type="errno_t"/>
    <use-retval/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- FILE *_wfreopen(const wchar_t *path, const wchar_t *mode, FILE *stream);  -->
  <function name="_wfreopen,_tfreopen">
    <returnValue type="FILE *"/>
    <noreturn>false</noreturn>
    <use-retval/>
    <arg nr="1">
      <not-uninit/>
      <strz/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- char *_mbsncpy(unsigned char char *s, const unsigned char *ct, size_t n); -->
  <function name="_mbsncpy,_mbsnbcpy,_tcsncpy">
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <not-bool/>
      <valid>0:</valid>
    </arg>
  </function>
  <!-- char *_strncpy_l(unsigned char char *s, const unsigned char *ct, size_t n, locale_t locale ); -->
  <!-- wchar_t *_wcsncpy_l(wchar_t *strDest, const wchar_t *strSource, size_t count, locale_t locale);-->
  <!-- unsigned char *_mbsncpy_l(unsigned char *strDest, const unsigned char *strSource, size_t count, _locale_t locale);-->
  <function name="_strncpy_l,_wcsncpy_l,_mbsncpy_l,_tcsncpy_l">
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <not-bool/>
      <valid>0:</valid>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
  </function>
  <!-- errno_t _localtime32_s( struct tm* _tm, const time32_t *time);
       errno_t _localtime64_s( struct tm* _tm, const _time64_t *time); -->
  <function name="_localtime32_s,_localtime64_s">
    <returnValue type="errno_t"/>
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
    </arg>
    <arg nr="2">
      <not-null/>
    </arg>
  </function>
  <!-- BOOL WINAPI CreateDirectory(_In_ LPCTSTR lpPathName,
                                   _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes); -->
  <function name="CreateDirectory,CreateDirectoryA,CreateDirectoryW">
    <returnValue type="BOOL"/>
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2" default="0">
      <not-uninit/>
    </arg>
  </function>
  <!-- BOOL WINAPI RemoveDirectory(_In_ LPCTSTR lpPathName); -->
  <function name="RemoveDirectory,RemoveDirectoryA,RemoveDirectoryW">
    <returnValue type="BOOL"/>
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- int iswascii( wint_t c );-->
  <!-- int __isascii(int c); -->
  <function name="__isascii,iswascii">
    <returnValue type="int"/>
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- int _getch_nolock( void ); -->
  <!-- int _getchar(void); -->
  <function name="_getchar,_getch_nolock">
    <returnValue type="int"/>
    <noreturn>false</noreturn>
    <leak-ignore/>
  </function>
  <!-- wint_t _getwch_nolock( void ); -->
  <!-- wint_t _getwch(void);-->
  <function name="_getwch,_getwch_nolock">
    <returnValue type="wint_t"/>
    <noreturn>false</noreturn>
    <leak-ignore/>
  </function>
  <!--VOID WINAPI Sleep(
      _In_ DWORD dwMilliseconds);-->
  <function name="Sleep">
    <noreturn>false</noreturn>
    <returnValue type="VOID"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <not-bool/>
    </arg>
  </function>
  <!--DWORD WINAPI SleepEx(
  _In_ DWORD dwMilliseconds,
  _In_ BOOL  bAlertable);-->
  <function name="SleepEx">
    <noreturn>false</noreturn>
    <returnValue type="DWORD"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <not-bool/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!--HMODULE WINAPI LoadLibrary(
  _In_ LPCTSTR lpFileName);-->
  <function name="LoadLibrary,LoadLibraryA,LoadLibraryW">
    <noreturn>false</noreturn>
    <returnValue type="HMODULE"/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
  </function>
  <!--HMODULE WINAPI LoadLibraryEx(
  _In_       LPCTSTR lpFileName,
  _Reserved_ HANDLE  hFile,
  _In_       DWORD   dwFlags);-->
  <function name="LoadLibraryEx,LoadLibraryExA,LoadLibraryExW">
    <noreturn>false</noreturn>
    <returnValue type="HMODULE"/>
    <arg nr="1">
      <not-uninit/>
      <strz/>
    </arg>
    <arg nr="2">
      <valid>0</valid>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
  </function>
  <!--HMODULE WINAPI GetModuleHandle(
  _In_opt_ LPCTSTR lpModuleName);-->
  <function name="GetModuleHandle,GetModuleHandleA,GetModuleHandleW">
    <noreturn>false</noreturn>
    <returnValue type="HMODULE"/>
    <use-retval/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <strz/>
    </arg>
  </function>
  <!--BOOL WINAPI GetModuleHandleEx(
  _In_     DWORD   dwFlags,
  _In_opt_ LPCTSTR lpModuleName,
  _Out_    HMODULE *phModule);-->
  <function name="GetModuleHandleEx,GetModuleHandleExA,GetModuleHandleExW">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-null/>
    </arg>
  </function>
  <!--BOOL WINAPI FreeLibrary(
  _In_ HMODULE hModule);-->
  <function name="FreeLibrary">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <arg nr="1">
      <not-uninit/>
      <not-bool/>
    </arg>
  </function>
  <!--VOID WINAPI FreeLibraryAndExitThread(
  _In_ HMODULE hModule,
  _In_ DWORD   dwExitCode);-->
  <function name="FreeLibraryAndExitThread">
    <noreturn>true</noreturn>
    <returnValue type="VOID"/>
    <arg nr="1">
      <not-uninit/>
      <not-bool/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <not-bool/>
    </arg>
  </function>
  <!--FARPROC WINAPI GetProcAddress(
  _In_ HMODULE hModule,
  _In_ LPCSTR  lpProcName);-->
  <function name="GetProcAddress">
    <noreturn>false</noreturn>
    <use-retval/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <not-bool/>
      <not-null/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!--HANDLE WINAPI CreateEvent(
  _In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes,
  _In_     BOOL                  bManualReset,
  _In_     BOOL                  bInitialState,
  _In_opt_ LPCTSTR               lpName);-->
  <function name="CreateEvent,CreateEventA,CreateEventW">
    <noreturn>false</noreturn>
    <returnValue type="HANDLE"/>
    <arg nr="1">
      <not-uninit/>
      <not-bool/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
      <not-bool/>
    </arg>
  </function>
  <!--HANDLE WINAPI CreateEventEx(
  _In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes,
  _In_opt_ LPCTSTR               lpName,
  _In_     DWORD                 dwFlags,
  _In_     DWORD                 dwDesiredAccess);-->
  <function name="CreateEventEx,CreateEventExA,CreateEventExW">
    <noreturn>false</noreturn>
    <returnValue type="HANDLE"/>
    <arg nr="1">
      <not-uninit/>
      <not-bool/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <not-bool/>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <not-bool/>
    </arg>
    <arg nr="4">
      <not-uninit/>
      <not-bool/>
    </arg>
  </function>
  <!--HANDLE WINAPI OpenEvent(
  _In_ DWORD   dwDesiredAccess,
  _In_ BOOL    bInheritHandle,
  _In_ LPCTSTR lpName);-->
  <function name="OpenEvent,OpenEventA,OpenEventW">
    <noreturn>false</noreturn>
    <returnValue type="HANDLE"/>
    <arg nr="1">
      <not-uninit/>
      <not-bool/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
  </function>
  <!--BOOL WINAPI PulseEvent(
  _In_ HANDLE hEvent);-->
  <!--BOOL WINAPI ResetEvent(
  _In_ HANDLE hEvent);-->
  <!--BOOL WINAPI SetEvent(
  _In_ HANDLE hEvent);-->
  <function name="PulseEvent,ResetEvent,SetEvent">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!--void WINAPI InitializeCriticalSection(
  _Out_ LPCRITICAL_SECTION lpCriticalSection);-->
  <function name="InitializeCriticalSection">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <arg nr="1">
      <not-null/>
      <not-bool/>
    </arg>
  </function>
  <!--BOOL WINAPI InitializeCriticalSectionAndSpinCount(
  _Out_ LPCRITICAL_SECTION lpCriticalSection,
  _In_  DWORD              dwSpinCount);-->
  <function name="InitializeCriticalSectionAndSpinCount">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <arg nr="1">
      <not-null/>
      <not-bool/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <not-bool/>
    </arg>
  </function>
  <!--BOOL WINAPI InitializeCriticalSectionEx(
  _Out_ LPCRITICAL_SECTION lpCriticalSection,
  _In_  DWORD              dwSpinCount,
  _In_  DWORD              Flags);-->
  <function name="InitializeCriticalSectionEx">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <arg nr="1">
      <not-null/>
      <not-bool/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <not-bool/>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <not-bool/>
    </arg>
  </function>
  <!--DWORD WINAPI SetCriticalSectionSpinCount(
  _Inout_ LPCRITICAL_SECTION lpCriticalSection,
  _In_    DWORD              dwSpinCount);-->
  <function name="SetCriticalSectionSpinCount">
    <noreturn>false</noreturn>
    <returnValue type="DWORD"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-bool/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <not-bool/>
    </arg>
  </function>
  <!--void WINAPI DeleteCriticalSection(
  _Inout_ LPCRITICAL_SECTION lpCriticalSection);-->
  <function name="DeleteCriticalSection">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <not-bool/>
    </arg>
  </function>
  <!--void WINAPI EnterCriticalSection(
  _Inout_ LPCRITICAL_SECTION lpCriticalSection);-->
  <function name="EnterCriticalSection">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <not-bool/>
    </arg>
  </function>
  <!--BOOL WINAPI TryEnterCriticalSection(
  _Inout_ LPCRITICAL_SECTION lpCriticalSection);-->
  <function name="TryEnterCriticalSection">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <not-bool/>
    </arg>
  </function>
  <!--void WINAPI LeaveCriticalSection(
  _Inout_ LPCRITICAL_SECTION lpCriticalSection);-->
  <function name="LeaveCriticalSection">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <not-bool/>
    </arg>
  </function>
  <!--LPTSTR WINAPI lstrcat(
  _Inout_ LPTSTR lpString1,
  _In_    LPTSTR lpString2);-->
  <!-- TODO: When implemented use minsize for argument 1 to verify that the
  buffer is at least "(strlen(arg1)+strlen(arg2)+1)*sizeof(TCHAR)" bytes in size.-->
  <function name="lstrcat">
    <returnValue type="LPTSTR"/>
    <noreturn>false</noreturn>
    <leak-ignore/>
    <warn severity="style" alternatives="StringCchCat">Due to security concerns it is not recommended to use this function, see MSDN for details.</warn>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
  </function>
  <!--HANDLE WINAPI CreateSemaphore(
  _In_opt_ LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
  _In_     LONG                  lInitialCount,
  _In_     LONG                  lMaximumCount,
  _In_opt_ LPCTSTR               lpName);-->
  <function name="CreateSemaphore,CreateSemaphoreA,CreateSemaphoreW">
    <returnValue type="HANDLE"/>
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <valid>1:</valid>
    </arg>
    <arg nr="4">
      <not-uninit/>
      <not-bool/>
    </arg>
  </function>
  <!--HANDLE WINAPI CreateSemaphoreEx(
  _In_opt_   LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
  _In_       LONG                  lInitialCount,
  _In_       LONG                  lMaximumCount,
  _In_opt_   LPCTSTR               lpName,
  _Reserved_ DWORD                 dwFlags,
  _In_       DWORD                 dwDesiredAccess);-->
  <function name="CreateSemaphoreEx,CreateSemaphoreExA,CreateSemaphoreExW">
    <returnValue type="HANDLE"/>
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <valid>1:</valid>
    </arg>
    <arg nr="4">
      <not-uninit/>
      <not-bool/>
    </arg>
    <arg nr="5">
      <not-uninit/>
      <!-- dwFlags is reserved and must be 0 -->
      <valid>0</valid>
    </arg>
    <arg nr="6">
      <not-uninit/>
    </arg>
  </function>
  <!--HANDLE WINAPI OpenSemaphore(
  _In_ DWORD   dwDesiredAccess,
  _In_ BOOL    bInheritHandle,
  _In_ LPCTSTR lpName);-->
  <function name="OpenSemaphore,OpenSemaphoreA,OpenSemaphoreW">
    <returnValue type="HANDLE"/>
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <not-null/>
      <not-bool/>
      <strz/>
    </arg>
  </function>
  <!--BOOL WINAPI ReleaseSemaphore(
  _In_      HANDLE hSemaphore,
  _In_      LONG   lReleaseCount,
  _Out_opt_ LPLONG lpPreviousCount);-->
  <function name="ReleaseSemaphore">
    <returnValue type="BOOL"/>
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
      <not-bool/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <not-bool/>
      <valid>1:</valid>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <not-bool/>
    </arg>
  </function>
  <!--HANDLE WINAPI CreateMutex(
  _In_opt_ LPSECURITY_ATTRIBUTES lpMutexAttributes,
  _In_     BOOL                  bInitialOwner,
  _In_opt_ LPCTSTR               lpName);-->
  <function name="CreateMutex,CreateMutexA,CreateMutexW">
    <returnValue type="HANDLE"/>
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
      <not-bool/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <not-bool/>
    </arg>
  </function>
  <!--HANDLE WINAPI CreateMutexEx(
  _In_opt_ LPSECURITY_ATTRIBUTES lpMutexAttributes,
  _In_opt_ LPCTSTR               lpName,
  _In_     DWORD                 dwFlags,
  _In_     DWORD                 dwDesiredAccess);-->
  <function name="CreateMutexEx,CreateMutexExA,CreateMutexExW">
    <returnValue type="HANDLE"/>
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
      <not-bool/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <not-bool/>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <valid>0,1</valid>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
  </function>
  <!--HANDLE WINAPI OpenMutex(
  _In_ DWORD   dwDesiredAccess,
  _In_ BOOL    bInheritHandle,
  _In_ LPCTSTR lpName);-->
  <function name="OpenMutex,OpenMutexA,OpenMutexW">
    <returnValue type="HANDLE"/>
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <not-null/>
      <not-bool/>
      <strz/>
    </arg>
  </function>
  <!--BOOL WINAPI ReleaseMutex(
  _In_ HANDLE hMutex);-->
  <function name="ReleaseMutex">
    <returnValue type="BOOL"/>
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <not-bool/>
    </arg>
  </function>
  <!--void *_malloca(
  size_t size);-->
  <function name="_malloca">
    <returnValue type="void *"/>
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
  </function>
  <!--void *_alloca(
  size_t size);-->
  <function name="_alloca">
    <returnValue type="void *"/>
    <noreturn>false</noreturn>
    <use-retval/>
    <arg nr="1">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
  </function>
  <!--void _freea(
  void *memblock);-->
  <function name="_freea">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!--char * strlwr(_Inout_z_ char * _Str);-->
  <function name="strlwr">
    <returnValue type="char *">arg1</returnValue>
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
    <warn severity="style" reason="Obsolete" alternatives="_strlwr,_strlwr_s"/>
  </function>
  <!--char * strupr(_Inout_z_ char * _Str);-->
  <function name="strupr">
    <returnValue type="char *">arg1</returnValue>
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
    <warn severity="style" reason="Obsolete" alternatives="_strupr,_strupr_s"/>
  </function>
  <!--void WINAPI GetLocalTime(_Out_ LPSYSTEMTIME lpSystemTime);-->
  <!--void WINAPI GetSystemTime(_Out_ LPSYSTEMTIME lpSystemTime);-->
  <function name="GetLocalTime,GetSystemTime">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
    </arg>
  </function>
  <!--DWORD WINAPI GetLastError(void);-->
  <function name="GetLastError">
    <noreturn>false</noreturn>
    <returnValue type="DWORD"/>
    <use-retval/>
  </function>
  <!--void WINAPI SetLastError(_In_ DWORD dwErrCode);-->
  <function name="SetLastError">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!--BOOL WINAPI AllocateAndInitializeSid(
  _In_  PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
  _In_  BYTE                      nSubAuthorityCount,
  _In_  DWORD                     dwSubAuthority0,
  _In_  DWORD                     dwSubAuthority1,
  _In_  DWORD                     dwSubAuthority2,
  _In_  DWORD                     dwSubAuthority3,
  _In_  DWORD                     dwSubAuthority4,
  _In_  DWORD                     dwSubAuthority5,
  _In_  DWORD                     dwSubAuthority6,
  _In_  DWORD                     dwSubAuthority7,
  _Out_ PSID                      *pSid);-->
  <function name="AllocateAndInitializeSid">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <arg nr="1">
      <not-null/>
    </arg>
    <arg nr="11">
      <not-null/>
    </arg>
  </function>
  <!--PVOID WINAPI FreeSid(_In_ PSID pSid);-->
  <function name="FreeSid">
    <noreturn>false</noreturn>
    <returnValue type="PVOID"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!--LPVOID WINAPI HeapAlloc(
  _In_ HANDLE hHeap,
  _In_ DWORD  dwFlags,
  _In_ SIZE_T dwBytes);-->
  <function name="HeapAlloc">
    <noreturn>false</noreturn>
    <returnValue type="LPVOID"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
  </function>
  <!--LPVOID WINAPI HeapReAlloc(
  _In_ HANDLE hHeap,
  _In_ DWORD  dwFlags,
  _In_ LPVOID lpMem,
  _In_ SIZE_T dwBytes);-->
  <function name="HeapReAlloc">
    <noreturn>false</noreturn>
    <returnValue type="LPVOID"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
  </function>
  <!--BOOL WINAPI HeapFree(
  _In_ HANDLE hHeap,
  _In_ DWORD  dwFlags,
  _In_ LPVOID lpMem);-->
  <function name="HeapFree">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!--SIZE_T WINAPI HeapSize(
  _In_ HANDLE  hHeap,
  _In_ DWORD   dwFlags,
  _In_ LPCVOID lpMem);-->
  <function name="HeapSize">
    <noreturn>false</noreturn>
    <returnValue type="SIZE_T"/>
    <use-retval/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
  </function>
  <!--BOOL WINAPI HeapValidate(
  _In_     HANDLE  hHeap,
  _In_     DWORD   dwFlags,
  _In_opt_ LPCVOID lpMem);-->
  <function name="HeapValidate">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
  </function>
  <!--HANDLE WINAPI GetProcessHeap(void);-->
  <function name="GetProcessHeap">
    <noreturn>false</noreturn>
    <returnValue type="HANDLE"/>
    <use-retval/>
  </function>
  <!--BOOL WINAPI GetUserName(
  _Out_   LPTSTR  lpBuffer,
  _Inout_ LPDWORD lpnSize);-->
  <function name="GetUserName,GetUserNameA,GetUserNameW">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <!-- Allowed to be nullptr if variable pointed to by arg2 is 0 -->
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!--int WINAPI GetWindowText(
  _In_  HWND   hWnd,
  _Out_ LPTSTR lpString,
  _In_  int    nMaxCount);-->
  <function name="GetWindowText,GetWindowTextA,GetWindowTextW">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <!-- The function does nothing (useful) if arg1 is nullptr or arg2 is nullptr or arg3 is 0 -->
    <arg nr="1">
      <not-null/>
    </arg>
    <arg nr="2">
      <not-null/>
      <!-- TODO: #8335 arg3 is the number of characters, not bytes. -->
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <valid>1:</valid>
    </arg>
  </function>
  <!--SOCKET WSAAPI socket(
  __in  int af,
  __in  int type,
  __in  int protocol);-->
  <function name="socket">
    <noreturn>false</noreturn>
    <returnValue type="SOCKET"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
  </function>
  <!--int closesocket(
  __in  SOCKET s);-->
  <function name="closesocket">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!--SOCKET accept(
  __in     SOCKET s,
  __out    struct sockaddr *addr,
  __inout  int *addrlen);-->
  <function name="accept">
    <noreturn>false</noreturn>
    <returnValue type="SOCKET"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
  </function>
  <!--int bind(
  __in  SOCKET s,
  __in  const struct sockaddr *name,
  __in  int namelen)-->
  <function name="bind">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
  </function>
  <!--int connect(
  __in  SOCKET s,
  __in  const struct sockaddr *name,
  __in  int namelen);-->
  <function name="connect">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
  </function>
  <!--int getpeername(
  __in     SOCKET s,
  __out    struct sockaddr *name,
  __inout  int *namelen);-->
  <function name="getpeername">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
    </arg>
    <arg nr="3">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!--int getsockname(
  __in     SOCKET s,
  __out    struct sockaddr *name,
  __inout  int *namelen);-->
  <function name="getsockname">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
    </arg>
    <arg nr="3">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!--int getsockopt(
  __in     SOCKET s,
  __in     int level,
  __in     int optname,
  __out    char *optval,
  __inout  int *optlen);-->
  <function name="getsockopt">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-null/>
    </arg>
    <arg nr="5">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!--u_long WSAAPI htonl(
  __in  u_long hostlong);-->
  <function name="htonl">
    <noreturn>false</noreturn>
    <returnValue type="u_long"/>
    <leak-ignore/>
    <use-retval/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!--u_short WSAAPI htons(
  __in  u_short hostshort);-->
  <function name="htons">
    <noreturn>false</noreturn>
    <returnValue type="u_short"/>
    <leak-ignore/>
    <use-retval/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!--unsigned long inet_addr(
  __in  const char *cp);-->
  <function name="inet_addr">
    <noreturn>false</noreturn>
    <returnValue type="unsigned long"/>
    <leak-ignore/>
    <use-retval/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
  </function>
  <!--char* FAR inet_ntoa(
  __in  struct   in_addr in);-->
  <function name="inet_ntoa">
    <noreturn>false</noreturn>
    <returnValue type="char *"/>
    <leak-ignore/>
    <use-retval/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!--int ioctlsocket(
  __in     SOCKET s,
  __in     long cmd,
  __inout  u_long *argp);-->
  <function name="ioctlsocket">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-null/>
    </arg>
  </function>
  <!--int listen(
  __in  SOCKET s,
  __in  int backlog);-->
  <function name="listen">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!--u_long WSAAPI ntohl(
  __in  u_long netlong);-->
  <function name="ntohl">
    <noreturn>false</noreturn>
    <returnValue type="u_long"/>
    <leak-ignore/>
    <use-retval/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!--u_short WSAAPI ntohs(
  __in  u_short netshort);-->
  <function name="ntohs">
    <noreturn>false</noreturn>
    <returnValue type="u_short"/>
    <leak-ignore/>
    <use-retval/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!--int recv(
  __in   SOCKET s,
  __out  char *buf,
  __in   int len,
  __in   int flags);-->
  <function name="recv">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
      <minsize type="argvalue" arg="5"/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
  </function>
  <!--int recvfrom(
  __in         SOCKET s,
  __out        char *buf,
  __in         int len,
  __in         int flags,
  __out        struct sockaddr *from,
  __inout_opt  int *fromlen);-->
  <function name="recvfrom">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
      <minsize type="argvalue" arg="5"/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
    <arg nr="5">
    </arg>
    <arg nr="6">
    </arg>
  </function>
  <!--int select(
  __in     int nfds,
  __inout  fd_set *readfds,
  __inout  fd_set *writefds,
  __inout  fd_set *exceptfds,
  __in     const struct timeval *timeout);-->
  <function name="select">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <!-- ignored -->
    </arg>
    <arg nr="2">
      <!-- optional -->
    </arg>
    <arg nr="3">
      <!-- optional -->
    </arg>
    <arg nr="4">
      <!-- optional -->
    </arg>
    <arg nr="5">
      <not-uninit/>
    </arg>
  </function>
  <!--int send(
  __in  SOCKET s,
  __in  const char *buf,
  __in  int len,
  __in  int flags);-->
  <function name="send">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
  </function>
  <!--int sendto(
  __in  SOCKET s,
  __in  const char *buf,
  __in  int len,
  __in  int flags,
  __in  const struct sockaddr *to,
  __in  int tolen);-->
  <function name="sendto">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
    <arg nr="5">
      <not-uninit/>
    </arg>
    <arg nr="6">
      <not-uninit/>
    </arg>
  </function>
  <!--int setsockopt(
  __in  SOCKET s,
  __in  int level,
  __in  int optname,
  __in  const char *optval,
  __in  int optlen);-->
  <function name="setsockopt">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-null/>
      <minsize type="argvalue" arg="5"/>
    </arg>
    <arg nr="5">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
  </function>
  <!--int shutdown(
  __in  SOCKET s,
  __in  int how);-->
  <function name="shutdown">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!--int WSAStartup(
  __in   WORD wVersionRequested,
  __out  LPWSADATA lpWSAData);-->
  <function name="WSAStartup">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
    </arg>
  </function>
  <!--int WSACleanup(void);-->
  <function name="WSACleanup">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
  </function>
  <!--int WSAGetLastError(void);-->
  <function name="WSAGetLastError">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <use-retval/>
  </function>
  <!--void WSASetLastError(
  __in  int iError);-->
  <function name="WSASetLastError">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!--int _fileno(FILE *stream);-->
  <function name="_fileno">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <use-retval/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <not-bool/>
    </arg>
  </function>
  <!-- int _tolower(int c); -->
  <function name="_tolower">
    <use-retval/>
    <returnValue type="int"/>
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <valid>0:255</valid>
    </arg>
  </function>
  <!-- int _tolower_l(int c, _locale_t locale); -->
  <function name="_tolower_l">
    <use-retval/>
    <returnValue type="int"/>
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <valid>0:255</valid>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!-- int _towlower_l(wint_t c, _locale_t locale ); -->
  <function name="_towlower_l">
    <use-retval/>
    <returnValue type="int"/>
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!-- int _toupper(int c); -->
  <function name="_toupper">
    <use-retval/>
    <returnValue type="int"/>
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <valid>0:255</valid>
    </arg>
  </function>
  <!-- int _toupper_l(int c, _locale_t locale); -->
  <function name="_toupper_l">
    <use-retval/>
    <returnValue type="int"/>
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <valid>0:255</valid>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!-- int _towupper_l(wint_t c, _locale_t locale ); -->
  <function name="_towupper_l">
    <use-retval/>
    <returnValue type="int"/>
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!-- HLOCAL WINAPI LocalAlloc(
  _In_ UINT   uFlags,
  _In_ SIZE_T uBytes); -->
  <function name="LocalAlloc">
    <noreturn>false</noreturn>
    <returnValue type="HLOCAL"/>
    <arg nr="1">
      <not-uninit/>
      <not-bool/>
      <valid>0:</valid>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <not-bool/>
    </arg>
    <warn severity="style" reason="Obsolete" alternatives="HeapAlloc"/>
  </function>
  <!-- HLOCAL WINAPI LocalReAlloc(
  _In_ HLOCAL hMem,
  _In_ SIZE_T uBytes,
  _In_ UINT   uFlags); -->
  <function name="LocalReAlloc">
    <noreturn>false</noreturn>
    <returnValue type="HLOCAL"/>
    <arg nr="1">
      <not-bool/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <not-bool/>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <not-bool/>
      <valid>0:</valid>
    </arg>
  </function>
  <!-- HLOCAL WINAPI LocalFree(_In_ HLOCAL hMem); -->
  <function name="LocalFree">
    <noreturn>false</noreturn>
    <returnValue type="HLOCAL"/>
    <arg nr="1">
      <not-bool/>
    </arg>
  </function>
  <!-- UINT WINAPI LocalSize(_In_ HLOCAL hMem); -->
  <!-- UINT WINAPI LocalFlags(_In_ HLOCAL hMem); -->
  <function name="LocalSize,LocalFlags">
    <noreturn>false</noreturn>
    <returnValue type="UINT"/>
    <use-retval/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-bool/>
    </arg>
  </function>
  <!-- LPVOID WINAPI LocalLock(_In_ HLOCAL hMem); -->
  <function name="LocalLock">
    <noreturn>false</noreturn>
    <returnValue type="LPVOID"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-bool/>
    </arg>
  </function>
  <!-- BOOL WINAPI LocalUnlock(_In_ HLOCAL hMem); -->
  <function name="LocalUnlock">
    <noreturn>false</noreturn>
    <returnValue type="BOOL"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-bool/>
    </arg>
  </function>
  <!-- Intrinsic __noop https://docs.microsoft.com/en-us/cpp/intrinsics/noop -->
  <function name="__noop">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <leak-ignore/>
    <arg nr="any"/>
  </function>
  <!-- Intrinsic void __nop(); https://docs.microsoft.com/en-us/cpp/intrinsics/nop -->
  <function name="__nop">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
  </function>
  <podtype name="LARGE_INTEGER" sign="s" size="8"/>
  <podtype name="POINTER_SIGNED" sign="s"/>
  <podtype name="POINTER_UNSIGNED" sign="u"/>
  <podtype name="ULARGE_INTEGER" sign="u" size="8"/>
  <define name="afx_msg" value=""/>
  <define name="DEBUG_NEW" value="new"/>
  <define name="DECLARE_MESSAGE_MAP()" value=""/>
  <define name="DECLARE_DYNAMIC(x)" value=""/>
  <define name="DECLARE_DYNAMIC_CLASS(x)" value=""/>
  <define name="DECLARE_DYNCREATE(x)" value=""/>
  <define name="INVALID_HANDLE_VALUE" value="0"/>
  <define name="INVALID_SOCKET" value="0"/>
  <define name="WINAPI" value=""/>
  <define name="__pragma(x)" value=""/>
  <define name="TEXT(str)" value="str"/>
  <define name="_countof(_Array)" value="(sizeof(_Array) / sizeof(_Array[0]))"/>
  <define name="__wchar_t" value="wchar_t"/>
  <define name="RtlEqualMemory(Destination,Source,Length)" value="(!memcmp((Destination),(Source),(Length)))"/>
  <define name="RtlMoveMemory(Destination,Source,Length)" value="memmove((Destination),(Source),(Length))"/>
  <define name="RtlCopyMemory(Destination,Source,Length)" value="memcpy((Destination),(Source),(Length))"/>
  <define name="RtlFillMemory(Destination,Length,Fill)" value="memset((Destination),(Fill),(Length))"/>
  <define name="RtlZeroMemory(Destination,Length)" value="memset((Destination),0,(Length))"/>
  <define name="MoveMemory" value="RtlMoveMemory"/>
  <define name="CopyMemory" value="RtlCopyMemory"/>
  <define name="FillMemory" value="RtlFillMemory"/>
  <define name="ZeroMemory" value="RtlZeroMemory"/>
  <define name="SecureZeroMemory" value="RtlSecureZeroMemory"/>
  <!-- WORD MAKEWORD(BYTE bLow, BYTE bHigh); -->
  <define name="MAKEWORD(bLow, bHigh)" value="((WORD)(((BYTE)(((DWORD_PTR)(bLow)) &amp; 0xff)) | ((WORD)((BYTE)(((DWORD_PTR)(bHigh)) &amp; 0xff))) &lt;&lt; 8))"/>
  <!-- DWORD MAKELONG(WORD wLow, WORD wHigh); -->
  <define name="MAKELONG(wLow, wHigh)" value="((LONG)(((WORD)(((DWORD_PTR)(wLow)) &amp; 0xffff)) | ((DWORD)((WORD)(((DWORD_PTR)(wHigh)) &amp; 0xffff))) &lt;&lt; 16))"/>
  <!-- WORD LOWORD(DWORD dwValue); -->
  <define name="LOWORD(dwValue)" value="((WORD)(((DWORD_PTR)(dwValue)) &amp; 0xffff))"/>
  <!-- WORD HIWORD(DWORD dwValue); -->
  <define name="HIWORD(dwValue)" value="((WORD)((((DWORD_PTR)(dwValue)) &gt;&gt; 16) &amp; 0xffff))"/>
  <!-- BYTE LOBYTE(WORD wValue); -->
  <define name="LOBYTE(wValue)" value="((BYTE)(((DWORD_PTR)(wValue)) &amp; 0xff))"/>
  <!-- BYTE HIBYTE(WORD wValue); -->
  <define name="HIBYTE(wValue)" value="((BYTE)((((DWORD_PTR)(wValue)) &gt;&gt; 8) &amp; 0xff))"/>
</def>
