PpmEventTraceHeteroResponse

void PpmEventTraceHeteroResponse(__int64 a1, __int64 a2, __int64 a3, ...){
  unsigned __int64 v3; 
  unsigned int v7; 
  char v8; 
  _QWORD *v9; 
  __int64 v10; 
  char v11; 
  char v12; 
  _EVENT_DATA_DESCRIPTOR UserData; 
  __int64 v14; 
  __int64 v15; 
  char *v16; 
  __int64 v17; 
  __int64 v18; 
  unsigned int v19; 
  int v20; 
  __int64 v21; 
  unsigned int v22; 
  int v23; 
  va_list v24; 
  __int64 v25; 
  __int64 v26; 
  __int64 v27; 
  char *v28; 
  __int64 v29; 
  va_list v30; 
  __int64 v31; 
  __int64 v32; 
  __int64 v33; 
  va_list v34; 
  __int64 v35; 
  unsigned __int64 v36; 
  va_list va; 
  __int64 v38; 
  va_list va1; 
  va_list va2; 

  va_start(va2, a3);
  va_start(va1, a3);
  va_start(va, a3);
  v36 = va_arg(va1, _QWORD);
  va_copy(va2, va1);
  v38 = va_arg(va2, _QWORD);
  v3 = v36;
  if( PpmEtwRegistered && EtwEventEnabled(PpmEtwHandle, &PPM_ETW_HETERO_RESPONSE) )
  {
    v7 = *(unsigned __int8 *)(a1 + 6);
    v8 = *(_BYTE *)(a1 + 148);
    v11 = *(_BYTE *)(a1 + 6);
    v12 = v8;
    if( v3 > 1 && (_BYTE)v7 )
    {
      v9 = (_QWORD *)a3;
      v10 = v7;
      do
      {
        *v9++ /= v3;
        --v10;
      }
      while( v10 );
    }
    UserData.Ptr = a1 + 4;
    *(_QWORD *)&UserData.Size = 2i64;
    v14 = a1 + 8;
    v15 = 8i64;
    v16 = &v11;
    v19 = 4 * v7;
    v22 = 8 * v7;
    va_copy(v24, va);
    v26 = a1 + 147;
    v28 = &v12;
    va_copy(v30, va1);
    v32 = a1 + 139;
    va_copy(v34, va2);
    v17 = 1i64;
    v18 = a2;
    v20 = 0;
    v21 = a3;
    v23 = 0;
    v25 = 8i64;
    v27 = 1i64;
    v29 = 1i64;
    v31 = 1i64;
    v33 = 1i64;
    v35 = 4i64;
    EtwWriteEx(PpmEtwHandle, &PPM_ETW_HETERO_RESPONSE, 0i64, 0, 0, 0, 0xBu, &UserData);
  }
}

Referenced by:

PpmCheckComputeHeteroResponse