PopUmpoSendPowerRequestOverrideQuery

NTSTATUS __stdcall PopUmpoSendPowerRequestOverrideQuery(_PO_POWER_REQUEST *PowerRequestObject){
  size_t v2; 
  VOID **PoolWithTag; 
  VOID **v4; 
  int v5; 
  UINT64 BufferSizePointer; 

  BufferSizePointer = 0i64;
  PoStoreRequester(*((_DIAGNOSTIC_CONTEXT **)PowerRequestObject + 10), 0i64, &BufferSizePointer, 1u);
  v2 = BufferSizePointer + 16;
  PoolWithTag = ExAllocatePoolWithTag(1ui64, BufferSizePointer + 16, 1869638997i64);
  v4 = PoolWithTag;
  if( !PoolWithTag )
    return -1073741670;
  memset(PoolWithTag, 0i64, v2);
  v5 = PoStoreRequester(
         *((_DIAGNOSTIC_CONTEXT **)PowerRequestObject + 10),
         (_DIAGNOSTIC_BUFFER *)(v4 + 2),
         &BufferSizePointer,
         1u);
  if( v5 >= 0 )
  {
    *(_DWORD *)v4 = 8;
    *((_DWORD *)v4 + 2) = PowerRequestObject[7];
    v5 = PopUmpoSendPowerMessage(v4, v2, 0);
  }
  ExFreePoolWithTag(v4, 0x6F706D55u);
  return v5;
}

Referenced by:

PopCreateKernelPowerRequest
PopCreateUserPowerRequest
PopPowerRequestOverrideInitialize