RunLengthEncode

UINT8 __stdcall RunLengthEncode(UINT64 *Buffer, UINT64 a2){
  int v2; 
  int v3; 
  unsigned int v4; 
  _DWORD *i; 
  if( (_DWORD)a2 && ((unsigned __int8)Buffer & 3) == 0 && (a2 & 3) == 0 )
  {
    v2 = *(_DWORD *)Buffer;
    v3 = 1;
    v4 = (unsigned int)a2 >> 2;
    if( v4 <= 1 )
      return 1;
    for( i = (_DWORD *)Buffer + 1; *i == v2; ++i )
    {
      if( ++v3 >= v4 )
        return 1;
    }
  }
  return 0;
}

Referenced by:

KdpReadPhysicalMemory