SiValidateSystemPartition

NTSTATUS __stdcall SiValidateSystemPartition(PWCHAR SystemDevice){
  _DWORD *v1; 
  _DWORD *v2; 
  __int64 v4; 
  UINT64 v5; 
  __int64 v7; 
  NTSTATUS v8; 
  _PARTITION_INFORMATION_EX result; 
  int OutputBuffer[2]; 
  int v11; 
  __int128 v12; 
  __int128 v13; 
  __int64 v14; 
  char v15; 
  v2 = v1;
  memset((INT64)&result, 0i64);
  v11 = 0;
  LODWORD(v4) = SiGetDiskPartitionInformation(SystemDevice, &result);
  if( (int)v4 < 0 )
    return v4;
  if( v2 && result.PartitionStyle != *v2 )
  {
    LODWORD(v4) = -1073741823;
    return v4;
  }
  v4 = 3221225473i64;
  if( result.PartitionStyle != PARTITION_STYLE_GPT )
  {
    if( result.PartitionStyle == PARTITION_STYLE_MBR )
      v4 = result.Mbr.BootIndicator == 0 ? 0xC0000001 : 0;
    if( (int)v4 < 0 )
      return v4;
LABEL_8:
    if( v15 )
    {
      v11 = 0;
      OutputBuffer[0] = 0;
      OutputBuffer[1] = 0;
      v14 = 0i64;
      v12 = 0i64;
      v13 = 0i64;
      v8 = SiIssueSynchronousIoctl(SystemDevice, (PVOID)v4, OutputBuffer, v5);
      LODWORD(v4) = v8;
      if( v8 >= 0 )
      {
        if( BYTE10(v12) )
          LODWORD(v4) = -1073741436;
      }
    }
    return v4;
  }
  v7 = *(_QWORD *)&result.Mbr - *(_QWORD *)&PARTITION_SYSTEM_GUID.Data1;
  if( *(_QWORD *)&result.Mbr == *(_QWORD *)&PARTITION_SYSTEM_GUID.Data1 )
    v7 = *(_QWORD *)result.Gpt.PartitionType.Data4 - *(_QWORD *)PARTITION_SYSTEM_GUID.Data4;
  if( !v7 )
  {
    v4 = 0i64;
    goto LABEL_8;
  }
  return v4;
}

Referenced by:

SiGetBootDeviceName