AuthzBasepRemoveSecurityAttributeFromLists

VOID __stdcall AuthzBasepRemoveSecurityAttributeFromLists(DEVICE_OBJECT *DeviceObject){
  __int64 *v1; 
  char v2; 
  char v3; 
  char v4; 
  __int64 *v5; 
  __int64 **v6; 
  __int64 v7; 
  __int64 **v8; 
  v4 = v2;
  if( v3 && (v1[7] & 2) != 0 )
  {
    v7 = v1[2];
    if( *(__int64 **)(v7 + 8) != v1 + 2 )
      goto LABEL_9;
    v8 = (__int64 **)v1[3];
    if( *v8 != v1 + 2 )
      goto LABEL_9;
    *v8 = (__int64 *)v7;
    *(_QWORD *)(v7 + 8) = v8;
    *((_DWORD *)v1 + 14) &= ~2u;
    if( DeviceObject )
      --*((_DWORD *)DeviceObject + 6);
  }
  if( v4 && (v1[7] & 1) != 0 )
  {
    v5 = (__int64 *)*v1;
    if( *(__int64 **)(*v1 + 8) == v1 )
    {
      v6 = (__int64 **)v1[1];
      if( *v6 == v1 )
      {
        *v6 = v5;
        v5[1] = (__int64)v6;
        *((_DWORD *)v1 + 14) &= ~1u;
        if( DeviceObject )
          --*(_DWORD *)DeviceObject;
        return;
      }
    }
LABEL_9:
    __fastfail(3u);
  }
}

Referenced by:

AuthzBasepCommitSecurityAttributeChanges
AuthzBasepDeleteSecurityAttribute
AuthzBasepRollbackSecurityAttributeChanges