MiCompareUserSidHotPatchNodes

__int64 __fastcall MiCompareUserSidHotPatchNodes(_QWORD *a1, __int64 a2){
  const VOID *v3; 
  const VOID *v4; 
  unsigned int v5; 
  unsigned int v6; 
  unsigned int v7; 

  if( *a1 < *(_QWORD *)(a2 + 32) )
    return 0xFFFFFFFFi64;
  if( *a1 <= *(_QWORD *)(a2 + 32) )
  {
    v3 = (const VOID *)a1[1];
    v4 = (const VOID *)(a2 + 40);
    v5 = RtlLengthSid((INT64)v3);
    v6 = RtlLengthSid((INT64)v4);
    if( v5 < v6 )
      return 0xFFFFFFFFi64;
    if( v5 <= v6 )
    {
      v7 = (unsigned int)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