ObpInsertCallbackByAltitude

__int64 __fastcall ObpInsertCallbackByAltitude(__int64 a1, _QWORD *a2){
  _ETHREAD *CurrentThread; 
  _QWORD *v3; 
  unsigned int v4; 
  UINT64 v6; 
  _QWORD *v7; 
  __int64 *v8; 
  __int64 v9; 
  UNICODE_STRING *v11; 
  NTSTATUS v12; 
  bool v13; 
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  v3 = (_QWORD *)(a1 + 200);
  v4 = 0;
  --*((_WORD *)CurrentThread + 243);
  v6 = a1 + 184;
  ExAcquirePushLockExclusiveEx(a1 + 184, 0i64);
  v7 = (_QWORD *)*v3;
  if( (_QWORD *)*v3 == v3 )
    goto LABEL_2;
  v11 = (UNICODE_STRING *)a2[3];
  while( 1 )
  {
    v12 = RtlCompareAltitudes((UNICODE_STRING *)(v7[3] + 16i64), v11 + 1);
    v13 = v12 == 0;
    if( v12 <= 0 )
      break;
    v7 = (_QWORD *)*v7;
    if( v7 == v3 )
    {
      v13 = v12 == 0;
      break;
    }
  }
  if( !v13 )
  {
LABEL_2:
    v8 = (__int64 *)v7[1];
    v9 = *v8;
    if( *(__int64 **)(*v8 + 8) != v8 )
      __fastfail(3u);
    *a2 = v9;
    a2[1] = v8;
    *(_QWORD *)(v9 + 8) = a2;
    *v8 = (__int64)a2;
  }
  else
  {
    v4 = -1071906799;
  }
  ExReleasePushLockEx(v6, 0i64);
  KiLeaveGuardedRegionUnsafe((__int64)KeGetCurrentThread());
  return v4;
}

Referenced by:

ObRegisterCallbacks