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