ProducerConsumerCopyFromContextBuffer
VOID __stdcall ProducerConsumerCopyFromContextBuffer(
CHAR *Buffer,
UINT64 Size,
_PRODUCER_CONSUMER_CONTEXT *Context,
CHAR *ReservedBuffer){
__int64 v4;
unsigned int v5;
size_t v6;
__int64 v9;
v4 = (unsigned int)Context[2];
v5 = (_DWORD)ReservedBuffer - *Context;
v6 = 0;
if( v5 >= (unsigned int)v4 )
{
v5 -= v4;
ReservedBuffer -= v4;
}
if( v5 + (unsigned int)Size > (unsigned int)v4 )
{
v6 = Size + v5 - v4;
LODWORD(Size) = v4 - v5;
}
v9 = (unsigned int)Size;
memmove(Buffer, ReservedBuffer, Size);
if( v6 )
memmove(&Buffer[v9], *(const VOID **)Context, v6);
}Referenced by:
PopDecompressHiberBlocks
PopReadProducerConsumerBuffer