EtwpConstructIptData

NTSTATUS __stdcall EtwpConstructIptData(INT64 a1){
  UINT64 *v1; 
  UINT64 v2; 
  UINT8 *v3; 
  NTSTATUS Driver; 
  VOID **PoolWithTag; 
  VOID *ExtensionTable; 
  UINT64 v9; 

  Driver = ZwLoadDriver(aNp_0, v1, v2, v3, v9);
  if( (int)(Driver + 0x80000000) >= 0 && Driver != -1073741554 )
    return -1073741204;
  PoolWithTag = ExAllocatePoolWithTag(0x200ui64, 0x28ui64, 1769436229i64);
  if( !PoolWithTag )
    return -1073741801;
  *(_OWORD *)PoolWithTag = 0i64;
  *((_OWORD *)PoolWithTag + 1) = 0i64;
  PoolWithTag[4] = 0i64;
  ExtensionTable = ExGetExtensionTable(*(&ExBootDevicesRemovedEvent + 147));
  PoolWithTag[2] = ExtensionTable;
  if( !ExtensionTable )
  {
    ExFreePoolWithTag(PoolWithTag, 0);
    return -1073741204;
  }
  *(_QWORD *)(a1 + 1016) = PoolWithTag;
  return 0;
}

Referenced by:

EtwpUpdateProcessorTraceConfiguration