VrpPreQueryKeyName
NTSTATUS __stdcall VrpPreQueryKeyName(_REG_QUERY_KEY_NAME *QueryNameInfo, _VRP_JOB_CONTEXT *JobContext){
char *ObjectContext;
__int64 *v4;
__int64 *v5;
int v6;
__int64 v7;
_WORD *v8;
__int64 v9;
unsigned int v10;
NTSTATUS v11;
char *v12;
__int64 v14[3];
_GUID ActivityId;
_EVENT_DATA_DESCRIPTOR v16[2];
int *v17;
__int64 v18;
__int64 v19;
int v20;
int v21;
__int64 *v22;
__int64 v23;
ActivityId = 0i64;
EtwActivityIdControl(3ui64, &ActivityId);
ObjectContext = (char *)QueryNameInfo->ObjectContext;
v14[1] = (__int64)ObjectContext;
if( *(&stru_140C00F40 + 1162) <= 2u )
{
v4 = &EmptyUnicodeString;
}
else
{
v4 = &EmptyUnicodeString;
v5 = (__int64 *)(ObjectContext + 16);
if( !*((_QWORD *)ObjectContext + 3) )
v5 = &EmptyUnicodeString;
v6 = *(unsigned __int16 *)v5;
v7 = v5[1];
v17 = &v20;
v18 = 2i64;
v19 = v7;
v20 = v6;
v21 = 0;
tlgWriteTransfer_EtwWriteTransfer(
(__int64)&stru_140C00F40 + 4648,
(unsigned __int8 *)byte_140023579,
&ActivityId,
0i64,
4u,
v16);
}
v8 = ObjectContext + 16;
v14[2] = (__int64)(ObjectContext + 16);
v9 = (__int64)(ObjectContext + 16);
v14[0] = (__int64)(ObjectContext + 16);
v10 = *((unsigned __int16 *)ObjectContext + 8) + 18;
*QueryNameInfo->ReturnLength = v10;
if( QueryNameInfo->Length >= v10 )
{
v12 = (char *)QueryNameInfo->ObjectNameInfo + 16;
memmove(v12, *((const VOID **)ObjectContext + 3), (unsigned __int16)*v8);
*(_WORD *)&v12[2 * ((unsigned __int64)(unsigned __int16)*v8 >> 1)] = 0;
*(_WORD *)QueryNameInfo->ObjectNameInfo = *v8;
*((_WORD *)QueryNameInfo->ObjectNameInfo + 1) = *v8;
*((_QWORD *)QueryNameInfo->ObjectNameInfo + 1) = v12;
v11 = -1073740541;
v9 = v14[0];
}
else
{
v11 = -1073741820;
}
if( *(&stru_140C00F40 + 1162) > 5u )
{
if( *((_QWORD *)ObjectContext + 3) )
v4 = (__int64 *)v9;
v17 = &v20;
v19 = v4[1];
v20 = *(unsigned __int16 *)v4;
v22 = v14;
v18 = 2i64;
v21 = 0;
LODWORD(v14[0]) = v11;
v23 = 4i64;
tlgWriteTransfer_EtwWriteTransfer(
(__int64)&stru_140C00F40 + 4648,
(unsigned __int8 *)byte_1400233F5,
&ActivityId,
0i64,
5u,
v16);
}
return v11;
}Referenced by:
VrpRegistryCallback