PopAvlFindOrMakeStatsForPowerRequest

CHAR *__fastcall PopAvlFindOrMakeStatsForPowerRequest(INT64 a1){
  INT16 v2; 
  char *v3; 
  char *v4; 
  char *inserted; 
  char NewElement[16]; 
  char Buffer[8]; 
  UNICODE_STRING SourceString; 
  NewElement[0] = 0;
  memset((INT64)Buffer, 0i64);
  v3 = *(char **)(a1 + 144);
  if( !v3 && PopAvlGetPowerRequestKey(a1, &SourceString, v2) >= 0 )
  {
    LODWORD(v4) = RtlLookupElementGenericTableAvl(&PowerRequestStatsDatabase, Buffer);
    v3 = v4;
    if( !v4 )
    {
      inserted = (char *)RtlInsertElementGenericTableAvl(
                           &PowerRequestStatsDatabase,
                           Buffer,
                           0xD8ui64,
                           (UINT8 *)NewElement);
      v3 = inserted;
      if( inserted )
      {
        if( NewElement[0] )
        {
          memset((INT64)inserted, 0i64);
          if( PopUnicodeStringDeepCopy((PUNICODE_STRING)(v3 + 8), &SourceString) < 0 )
          {
            RtlDeleteElementGenericTableAvl(&PowerRequestStatsDatabase, Buffer);
            v3 = 0i64;
          }
        }
      }
    }
  }
  PopFreeUnicodeString((INT64)&SourceString);
  return v3;
}

Referenced by:

PopStatsCreatePowerRequest