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