ungetwc_nolock

wint_t __cdecl ungetwc_nolock(wint_t Ch, FILE *File){
  int flag; 
  char *ptr; 
  char *v5; 
  int v6; 
  if( !File )
  {
    xHalTimerWatchdogStop(0i64, 0i64);
    return -1;
  }
  if( Ch == 0xFFFF )
    return -1;
  flag = File->_flag;
  if( (flag & 1) == 0 && (flag & 0x82) != 0x80 )
    return -1;
  ptr = File->_ptr;
  if( File->_ptr < File->_base + 2 )
  {
    if( File->_cnt || File->_bufsiz < 2u )
      return -1;
    ptr = File->_base + 2;
  }
  v5 = ptr - 2;
  File->_ptr = v5;
  if( (flag & 0x40) != 0 )
  {
    if( *(_WORD *)v5 != Ch )
    {
      File->_ptr = v5 + 2;
      return -1;
    }
  }
  else
  {
    *(_WORD *)v5 = Ch;
  }
  v6 = File->_flag;
  File->_cnt += 2;
  File->_flag = v6 & 0xFFFFFFEE | 1;
  return Ch;
}

Referenced by:

ReadString_0
winput_s