MiCompareUserSidHotPatchNodes

INT64 __fastcall MiCompareUserSidHotPatchNodes(_QWORD *a1, INT64 a2){
  void *v3; 
  void *v4; 
  unsigned int v5; 
  unsigned int v6; 
  unsigned int v7; 
  if( *a1 < *(_QWORD *)(a2 + 32) )
    return 0xFFFFFFFFi64;
  if( *a1 <= *(_QWORD *)(a2 + 32) )
  {
    v3 = (void *)a1[1];
    v4 = (void *)(a2 + 40);
    v5 = RtlLengthSid(v3);
    v6 = RtlLengthSid(v4);
    if( v5 < v6 )
      return 0xFFFFFFFFi64;
    if( v5 <= v6 )
    {
      v7 = RtlCompareMemory(v3, v4, v5);
      if( v7 == v5 )
        return 0i64;
      if( *(_BYTE *)(v7 + a1[1]) < *((_BYTE *)v4 + v7) )
        return 0xFFFFFFFFi64;
    }
  }
  return 1i64;
}

Referenced by:

MiFindUserSidHotPatchContext
MiLoadHotPatchForUserSid