PopEtGetProcessAppId
NTSTATUS __stdcall PopEtGetProcessAppId(INT64 rcx0, INT64 *rdx0){
_UNICODE_STRING *p_DestinationString;
int v5;
INT64 v6;
unsigned __int64 i;
WCHAR v9;
INT64 v10;
INT64 v11;
_UNICODE_STRING DestinationString;
INT64 v13[2];
__int128 v14;
INT64 *v15;
wchar_t *Buffer;
__int16 *v17;
__int16 *v18;
_DWORD *v19;
__int16 v20;
__int16 v21;
__int16 v22;
__int16 v23;
_DWORD v24[20];
__int16 v25[200];
WCHAR SourceString[16];
v11 = 0i64;
v10 = 0i64;
DestinationString = 0i64;
memset(v25, 0i64, 0x188u);
memset(v24, 0i64, 0x44u);
p_DestinationString = *(_UNICODE_STRING **)(rcx0 + 1472);
if( !p_DestinationString || !p_DestinationString->Length )
{
for( i = 0i64; i < 0xF; ++i )
{
v9 = *(unsigned __int8 *)(rcx0 + i + 1448);
SourceString[i] = v9;
if( !(_BYTE)v9 )
break;
}
SourceString[14] = 0;
RtlInitUnicodeString(&DestinationString, SourceString);
p_DestinationString = &DestinationString;
}
PopEtGetProcessImageInfo(rcx0, (INT64)&v11);
PopEtGetProcessSidAndPackageIdentity((_EPROCESS *)rcx0, v24, (__int64)v25);
v13[0] = 0i64;
v15 = &v11;
v13[1] = 0i64;
v19 = v24;
v14 = 0i64;
v23 = 4 * (BYTE1(v24[0]) + 2);
Buffer = p_DestinationString->Buffer;
v20 = p_DestinationString->Length >> 1;
v17 = &v25[2];
v21 = v25[0];
v18 = &v25[130];
v22 = v25[1];
v5 = PopEtAppIdIntern((INT64)v13, &v10);
if( v5 < 0 )
{
v6 = v10;
}
else
{
v6 = 0i64;
*rdx0 = v10;
v5 = 0;
}
if( v6 )
PopEtAppIdDereference(v6);
return v5;
}Referenced by:
PoEnergyContextStart