ProducerConsumerCopyToContextBuffer

VOID __stdcall ProducerConsumerCopyToContextBuffer(
        UINT8 *Buffer,
        UINT64 Size,
        _PRODUCER_CONSUMER_CONTEXT *Context,
        CHAR *ReservedBuffer){
  __int64 v6; 
  CHAR *v7; 
  size_t v8; 
  int v9; 
  __int64 v10; 

  v6 = (unsigned int)Context[2];
  v7 = &ReservedBuffer[-v6];
  if( (unsigned __int64)ReservedBuffer < v6 + *(_QWORD *)Context )
    v7 = ReservedBuffer;
  v8 = 0;
  v9 = (_DWORD)v7 - *Context;
  if( v9 + (int)Size > (unsigned int)v6 )
  {
    v8 = Size + v9 - v6;
    LODWORD(Size) = v6 - v9;
  }
  v10 = (unsigned int)Size;
  memmove(v7, Buffer, Size);
  if( v8 )
    memmove(*(VOID **)Context, &Buffer[v10], v8);
}

Referenced by:

PopCountDataAsProduced