RtlpFcUpdateFeature

NTSTATUS __stdcall RtlpFcUpdateFeature(INT64 a1, INT64 a2){
  int v2; 
  int v5; 
  int v6; 
  NTSTATUS result; 

  v2 = *(_DWORD *)(a2 + 28);
  if( (v2 & 1) != 0 )
  {
    *(_DWORD *)(a1 + 4) ^= (*(_DWORD *)(a1 + 4) ^ (16 * *(_DWORD *)(a2 + 8))) & 0x30;
    v2 = *(_DWORD *)(a2 + 28);
  }
  if( (v2 & 2) != 0 )
  {
    *(_DWORD *)(a1 + 4) ^= (*(_DWORD *)(a1 + 4) ^ (*(unsigned __int8 *)(a2 + 16) << 8)) & 0x3F00;
    v5 = *(_DWORD *)(a1 + 4);
    *(_DWORD *)(a1 + 8) = *(_DWORD *)(a2 + 24);
    v6 = v5 ^ ((unsigned __int16)v5 ^ (unsigned __int16)((unsigned __int16)*(_DWORD *)(a2 + 20) << 14)) & 0xC000;
    *(_DWORD *)(a1 + 4) = v6;
  }
  else
  {
    v6 = *(_DWORD *)(a1 + 4);
  }
  result = v6 ^ ((unsigned __int8)v6 ^ (unsigned __int8)((unsigned __int8)*(_DWORD *)(a2 + 12) << 6)) & 0x40;
  *(_DWORD *)(a1 + 4) = result;
  return result;
}

Referenced by:

RtlpFcApplyUpdateAndAddFeature
RtlpFcCalculateRequiredSizeForNewFeatureTable
RtlpFcCreateAndAddFeatureFromUpdate