PopDiagTraceCsResiliencyExit

NTSTATUS __stdcall PopDiagTraceCsResiliencyExit(
        INT64 a1,
        INT64 a2,
        CHAR a3,
        INT64 a4,
        INT64 a5,
        INT64 a6,
        INT64 a7,
        INT64 a8){
  unsigned __int8 v12; 
  char v13; 
  unsigned __int64 v14; 
  INT64 v15; 
  NTSTATUS EnergyDrainFromDischage; 
  int v17; 
  UINT64 v18; 
  UINT64 v19; 
  UINT64 v20; 
  UINT64 v21; 
  UINT64 v22; 
  UINT64 *v23; 
  __int64 v24; 
  INT64 v25; 
  NTSTATUS result; 
  __int128 v27; 

  DWORD1(v27) = 0;
  v12 = KeAcquireSpinLockRaiseToDpc((UINT64 *)&stru_140C23628 + 115);
  v13 = byte_140C22F48;
  v14 = v12;
  xmmword_140C22F88 = *(_OWORD *)a8;
  xmmword_140C22F98 = *(_OWORD *)(a8 + 16);
  v15 = a5;
  qword_140C22FA8 = *(_QWORD *)(a8 + 32);
  if( a5 )
  {
    EnergyDrainFromDischage = PopBatteryGetEnergyDrainFromDischage(
                                (_MMPFN *)(unsigned int)dword_140C22F44,
                                (VOID *)*(unsigned int *)(a2 + 12));
    LODWORD(v27) = xmmword_140C22F50 | *(_DWORD *)a4;
    *((_QWORD *)&v27 + 1) = *((_QWORD *)&xmmword_140C22F50 + 1) - *(_QWORD *)(a4 + 8);
  }
  else
  {
    EnergyDrainFromDischage = 0;
    *((_QWORD *)&v27 + 1) = 0i64;
    LODWORD(v27) = xmmword_140C22F50;
  }
  v17 = 0;
  if( (_BYTE)word_140C22F42 )
    v17 = 2;
  if( byte_140C22F41 )
    v17 |= 1u;
  if( !v13 || !a3 )
    v17 |= 4u;
  if( HIBYTE(word_140C22F42) )
    v17 |= 8u;
  if( byte_140C22F71 )
    v17 |= 0x10u;
  if( byte_140C22F70 )
    v17 |= 0x20u;
  *(_DWORD *)(a1 + 68) = dword_140C22F6C;
  *(_DWORD *)(a1 + 64) = dword_140C22F68;
  *(_DWORD *)(a1 + 56) = dword_140C22F60;
  *(_DWORD *)(a1 + 60) = dword_140C22F64;
  *(_QWORD *)(a1 + 72) = qword_140C22F80;
  *(_QWORD *)(a1 + 16) = a6;
  *(_DWORD *)(a1 + 32) = EnergyDrainFromDischage;
  v18 = PopQpcFrequency;
  *(_QWORD *)(a1 + 24) = a7;
  *(_DWORD *)a1 = v17;
  *(_QWORD *)(a1 + 8) = v15;
  *(_OWORD *)(a1 + 40) = v27;
  v19 = PpmConvertTime(qword_140C22FC0, v18, 0xF4240ui64);
  v20 = PopQpcFrequency;
  *(_QWORD *)(a1 + 120) = v19;
  v21 = PpmConvertTime(qword_140C22FC8, v20, 0xF4240ui64);
  v22 = PopQpcFrequency;
  *(_QWORD *)(a1 + 128) = v21;
  *(_QWORD *)(a1 + 136) = PpmConvertTime(qword_140C22FD0, v22, 0xF4240ui64);
  v23 = (UINT64 *)&unk_140C23030;
  v24 = 10i64;
  *(_DWORD *)(a1 + 144) = dword_140C22FD8;
  *(_OWORD *)(a1 + 80) = xmmword_140C22F88;
  *(_OWORD *)(a1 + 96) = xmmword_140C22F98;
  *(_QWORD *)(a1 + 112) = qword_140C22FA8;
  v25 = a1 - (_QWORD)&unk_140C23030;
  do
  {
    *(UINT64 *)((char *)v23 + v25 + 152) = PpmConvertTime(*v23, PopQpcFrequency, 0xF4240ui64);
    ++v23;
    --v24;
  }
  while( v24 );
  PopCsResiliencyStats[0] = 0;
  KxReleaseSpinLock((UINT64 *)&stru_140C23628 + 115);
  result = KiIrqlFlags;
  __writecr8(v14);
  return result;
}

Referenced by:

PopSleepstudyCaptureResiliencyStatistics