RtlpLfhIncrementDataSlot
NTSTATUS __stdcall RtlpLfhIncrementDataSlot(){
_ETHREAD *CurrentThread;
unsigned __int16 HeapData_high;
__int16 v2;
__int16 v3;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
HeapData_high = (unsigned __int8)HIWORD(CurrentThread->HeapData);
if( HeapData_high == HIBYTE(HIWORD(CurrentThread->HeapData)) )
{
v2 = ExGenRandom(ExGenRandomDomainUserVisible);
v3 = (v2 << 8) | (unsigned __int8)(v2 + 1);
}
else
{
v3 = (unsigned __int8)(HIWORD(CurrentThread->HeapData) ^ (HeapData_high + 1)) ^ HIWORD(CurrentThread->HeapData);
}
HIWORD(CurrentThread->HeapData) = v3;
return HeapData_high;
}Referenced by:
RtlpHpLfhSlotAllocate