MiValidateControlAreaPartition

NTSTATUS __stdcall MiValidateControlAreaPartition(INT64 a1, INT64 a2){
  _MI_PARTITION *v2; 
  _MI_PARTITION **v3; 
  int v5; 

  v2 = *(_MI_PARTITION **)(*(&stru_140C4DB30 + 267) + 8i64 * (*(_WORD *)(a2 + 60) & 0x3FF));
  v3 = *(_MI_PARTITION ***)(a1 + 176);
  if( !v3 )
  {
    if( (*(_BYTE *)(a2 + 62) & 1) != 0 )
    {
      if( v2 == *(_MI_PARTITION **)(*(&stru_140C4DB30 + 267)
                                   + 8i64 * KeGetCurrentThread()->ApcState.Process->Vm.Instance.PartitionId) )
        return 0;
      if( (*(_DWORD *)a1 & 1) == 0 )
      {
        v5 = *(_DWORD *)a1 | 0x1000000;
LABEL_9:
        *(_DWORD *)a1 = v5;
        return -1073740682;
      }
    }
    else if( v2 == &Irp )
    {
      return 0;
    }
    if( (*(_DWORD *)a1 & 0x2000000) != 0 )
      return 0;
    v5 = *(_DWORD *)a1 | 0x2000000;
    goto LABEL_9;
  }
  if( *v3 == v2 && (((unsigned __int8)(*(_DWORD *)a1 >> 23) ^ *(_BYTE *)(a2 + 62)) & 1) == 0 )
    return 0;
  *(_DWORD *)a1 |= 0x1000000u;
  return -1073740682;
}

Referenced by:

MiReferenceControlArea
MiReferenceExistingControlArea
MiShareExistingControlArea