PopAvlFindOrMakeStatsForPowerRequest

CHAR *__stdcall PopAvlFindOrMakeStatsForPowerRequest(INT64 a1){
  __int16 v2; 
  char *v3; 
  char *inserted; 
  char NewElement[16]; 
  _QWORD Buffer[28]; 

  NewElement[0] = 0;
  memset(Buffer, 0i64, 0xD8u);
  v3 = *(char **)(a1 + 144);
  if( !v3 && PopAvlGetPowerRequestKey(a1, (_UNICODE_STRING *)&Buffer[1], v2) >= 0 )
  {
    v3 = (char *)RtlLookupElementGenericTableAvl(&PowerRequestStatsDatabase, Buffer);
    if( !v3 )
    {
      inserted = (char *)RtlInsertElementGenericTableAvl(
                           &PowerRequestStatsDatabase,
                           Buffer,
                           0xD8ui64,
                           (UINT8 *)NewElement);
      v3 = inserted;
      if( inserted )
      {
        if( NewElement[0] )
        {
          memset(inserted, 0i64, 0xD8u);
          if( PopUnicodeStringDeepCopy((PUNICODE_STRING)(v3 + 8), (PCUNICODE_STRING)&Buffer[1]) < 0 )
          {
            RtlDeleteElementGenericTableAvl(&PowerRequestStatsDatabase, Buffer);
            v3 = 0i64;
          }
        }
      }
    }
  }
  PopFreeUnicodeString((INT64)&Buffer[1]);
  return v3;
}

Referenced by:

PopStatsCreatePowerRequest