PipHardwareConfigTriggerRespecialize

INT64 __stdcall PipHardwareConfigTriggerRespecialize(PVOID SysprepHandle){
  HANDLE v1; 
  NTSTATUS v2; 
  unsigned int v3; 
  PVOID Data; 
  UINT64 DataSize; 
  struct _UNICODE_STRING ValueName; 
  int v8; 
  HANDLE KeyHandle; 
  v8 = 0;
  v1 = 0i64;
  *(_DWORD *)(&ValueName.MaximumLength + 1) = 0;
  KeyHandle = 0i64;
  if( !SysprepHandle )
  {
    LODWORD(Data) = 0;
    ValueName.Buffer = (wchar_t *)L"\\Registry\\Machine\\System\\Setup";
    *(_DWORD *)&ValueName.Length = 4063292;
    v2 = IopCreateRegistryKeyEx(&KeyHandle, 0i64, &ValueName, 0xF003Fui64, (UINT64)Data, 0i64);
    v1 = KeyHandle;
    v3 = v2;
    if( v2 < 0 )
      goto LABEL_5;
    SysprepHandle = KeyHandle;
  }
  v8 = 1;
  ValueName.Buffer = L"Respecialize";
  *(_DWORD *)&ValueName.Length = 1703960;
  LODWORD(DataSize) = 4;
  v3 = ZwSetValueKey(SysprepHandle, &ValueName, 0i64, 4ui64, &v8, DataSize);
LABEL_5:
  if( v1 )
    ZwClose(v1);
  return v3;
}

Referenced by:

PipHardwareConfigInit