RtlpLfhIncrementDataSlot

INT64 __stdcall RtlpLfhIncrementDataSlot(){
  _ETHREAD *CurrentThread; 
  unsigned __int16 v1; 
  __int16 v2; 
  __int16 v3; 
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  v1 = (unsigned __int8)*((_WORD *)CurrentThread + 787);
  if( v1 == HIBYTE(*((_WORD *)CurrentThread + 787)) )
  {
    v2 = ExGenRandom(1i64);
    v3 = (v2 << 8) | (unsigned __int8)(v2 + 1);
  }
  else
  {
    v3 = (unsigned __int8)(*((_WORD *)CurrentThread + 787) ^ (v1 + 1)) ^ *((_WORD *)CurrentThread + 787);
  }
  *((_WORD *)CurrentThread + 787) = v3;
  return v1;
}

Referenced by:

RtlpHpLfhSlotAllocate