IidAreIdsStrictlyEqual

BOOL __stdcall IidAreIdsStrictlyEqual(INT64 *a1, INT64 a2){
  BOOL v2; 
  int v3; 
  int v5; 
  int v6; 
  unsigned __int8 *v9; 
  __int64 v10; 
  int v11; 
  int v12; 

  v2 = 0;
  if( !a1 || !a2 )
    return 0;
  v3 = *(_DWORD *)a1;
  if( (unsigned int)(*(_DWORD *)a1 - 1) > 5 || (unsigned int)(*(_DWORD *)a2 - 1) > 5 || v3 != *(_DWORD *)a2 )
    return 0;
  v5 = v3 - 1;
  if( v5 )
  {
    v6 = v5 - 1;
    if( !v6 )
    {
      v9 = (unsigned __int8 *)a1[1];
      v10 = *(_QWORD *)(a2 + 8) - (_QWORD)v9;
      do
      {
        v11 = v9[v10];
        v12 = *v9 - v11;
        if( v12 )
          break;
        ++v9;
      }
      while( v11 );
      return v12 == 0;
    }
    if( v6 == 4 )
      return a1[1] == *(_QWORD *)(a2 + 8);
    return 0;
  }
  if( *((_WORD *)a1 + 4) == *(_WORD *)(a2 + 8) && (*((_BYTE *)a1 + 10) & 4) == 0 && (*(_BYTE *)(a2 + 10) & 4) == 0 )
    return *((_WORD *)a1 + 6) == *(_WORD *)(a2 + 12);
  return v2;
}

Referenced by:

HalpDmaFindAdapterByDeviceId
HalpIommuCreateDevice
HalpIommuCreateIncreaseAliasTrack
HalpIommuDecreaseAliasTrack
HalpIommuDeleteDevice
HalpIommuGetReservedRanges