PipHardwareConfigTriggerRespecialize

NTSTATUS __stdcall PipHardwareConfigTriggerRespecialize(VOID *SysprepHandle){
  PVOID v1; 
  NTSTATUS v2; 
  NTSTATUS v3; 
  VOID *Data; 
  UINT64 DataSize; 
  _UNICODE_STRING KeyName; 
  int v8; 
  PVOID Handle; 

  v8 = 0;
  v1 = 0i64;
  *(_DWORD *)(&KeyName.MaximumLength + 1) = 0;
  Handle = 0i64;
  if( !SysprepHandle )
  {
    LODWORD(Data) = 0;
    KeyName.Buffer = (wchar_t *)L"\\Registry\\Machine\\System\\Setup";
    *(_DWORD *)&KeyName.Length = 4063292;
    v2 = IopCreateRegistryKeyEx(&Handle, 0i64, &KeyName, 0xF003Fui64, (UINT64)Data, 0i64);
    v1 = Handle;
    v3 = v2;
    if( v2 < 0 )
      goto LABEL_5;
    SysprepHandle = Handle;
  }
  v8 = 1;
  KeyName.Buffer = L"Respecialize";
  *(_DWORD *)&KeyName.Length = 1703960;
  LODWORD(DataSize) = 4;
  v3 = ZwSetValueKey(SysprepHandle, &KeyName, 0i64, 4ui64, &v8, DataSize);
LABEL_5:
  if( v1 )
    ZwClose((_HANDLE)v1);
  return v3;
}

Referenced by:

PipHardwareConfigInit