SepFreeCapturedTokenSecurityAttributesInformation

VOID __stdcall SepFreeCapturedTokenSecurityAttributesInformation(
        _TOKEN_SECURITY_ATTRIBUTES_INFORMATION *CapturedAttributesInfo){
  PVOID *v1; 
  unsigned int i; 
  unsigned __int16 v4; 

  v1 = (PVOID *)*((_QWORD *)CapturedAttributesInfo + 1);
  for( i = 0; i < CapturedAttributesInfo[1]; ++i )
  {
    ExFreePoolWithTag(v1[5 * i + 1], 0);
    if( LODWORD(v1[5 * i + 3]) )
    {
      v4 = (unsigned __int16)v1[5 * i + 2];
      if( v4 )
      {
        if( v4 <= 2u || v4 == 3 || v4 == 4 || v4 == 5 || v4 == 6 || v4 == 16 )
          ExFreePoolWithTag(v1[5 * i + 4], 0);
      }
    }
  }
  if( v1 )
    ExFreePoolWithTag(v1, 0);
  ExFreePoolWithTag(CapturedAttributesInfo, 0);
}

Referenced by:

NtCreateTokenEx
SepCaptureTokenSecurityAttributesAndOperationsInformation
SepReleaseTokenSecurityAttributesAndOperationsInformation