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