PopCountDataAsProduced

CHAR __fastcall PopCountDataAsProduced(INT64 a1, CHAR *a2, CHAR *a3, CHAR *a4, INT64 a5, CHAR a6){
  INT64 v7; 
  unsigned int v11; 
  unsigned int v12; 
  CHAR *Buffer; 
  CHAR result; 
  unsigned __int64 v15; 
  unsigned __int64 v16; 
  v7 = qword_140C234D8;
  v11 = 8 * (unsigned __int8)*(_DWORD *)a3;
  v12 = ((*(_DWORD *)a3 >> 8) & 0x3FFFFF) + v11;
  Buffer = (CHAR *)ProducerGetBuffer(qword_140C234D8, v12 + 4, (unsigned int)((_DWORD)a5 << 12), a6);
  result = 0;
  if( Buffer )
  {
    ProducerConsumerCopyToContextBuffer(a3, 4ui64, v7, Buffer);
    ProducerConsumerCopyToContextBuffer(a4, v11, v7, Buffer + 4);
    ProducerConsumerCopyToContextBuffer(a2, (*(_DWORD *)a3 >> 8) & 0x3FFFFF, v7, &Buffer[v11 + 4]);
    v15 = __rdtsc();
    ProducerConsumerBufferComplete(v7, v7 + 32, (int)Buffer, v12 + 4);
    v16 = __rdtsc();
    *(_QWORD *)(a1 + 80) += (((unsigned __int64)HIDWORD(v16) << 32) | (unsigned int)v16) - v15;
    return 1;
  }
  return result;
}

Referenced by:

PopCompressHiberBlocks
PopWriteHiberImage