SeCreateClientSecurityFromSubjectContextEx

__int64 __fastcall SeCreateClientSecurityFromSubjectContextEx(__int64 a1, __int64 a2, char a3, __int64 a4){
  VOID *v4; 
  VOID **v5; 
  char v6; 
  int v11; 
  VOID **v12; 
  NTSTATUS ClientSecurity; 
  UINT8 pbDominate; 

  v4 = *(VOID **)a1;
  v5 = 0i64;
  v6 = 0;
  pbDominate = 0;
  if( !v4 )
    v4 = *(VOID **)(a1 + 16);
  ObfReferenceObjectWithTag(v4, 0x746C6644ui64);
  if( *(_QWORD *)a1 )
  {
    v11 = 2;
    RtlSidDominatesForTrust(
      *(VOID **)(*(_QWORD *)(a1 + 16) + 1104i64),
      *(VOID **)(*(_QWORD *)a1 + 1104i64),
      &pbDominate);
    if( !pbDominate )
    {
      v6 = 1;
      v5 = v12;
    }
  }
  else
  {
    v11 = 1;
  }
  ClientSecurity = SepCreateClientSecurityEx(v4, a2, a3, v11, 0, *(_DWORD *)(a1 + 8), 1, 0i64, v6, v5, a4);
  if( ClientSecurity < 0 || !*(_BYTE *)(a4 + 8) )
    ObfDereferenceObjectWithTag(v4, 0x746C6644ui64);
  return(unsigned int)ClientSecurity;
}

Referenced by:

No references.