CmpInsertCallbackInListByAltitude

INT64 __fastcall CmpInsertCallbackInListByAltitude(INT64 a1, CHAR a2){
  _ETHREAD *CurrentThread; 
  unsigned int v3; 
  _UNICODE_STRING *v6; 
  NTSTATUS v7; 
  INT64 *Buffer; 
  INT64 v9; 

  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  v3 = 0;
  --CurrentThread->Tcb.KernelApcDisable;
  ExAcquirePushLockExclusiveEx((_EX_PUSH_LOCK *)&CmpDummyThreadEvent + 251, 0i64);
  *(_QWORD *)(a1 + 24) = ++*(&CmpDummyThreadEvent + 256);
  v6 = (_UNICODE_STRING *)*(&CmpDummyThreadEvent + 252);
  if( (_UNKNOWN *)*(&CmpDummyThreadEvent + 252) != (_UNKNOWN *)((char *)&CmpDummyThreadEvent + 2016) )
  {
    do
    {
      v7 = RtlCompareAltitudes(v6 + 3, (_UNICODE_STRING *)(a1 + 48));
      if( v7 )
      {
        if( v7 < 0 )
          break;
      }
      else if( !a2 )
      {
        goto LABEL_12;
      }
      v6 = *(_UNICODE_STRING **)&v6->Length;
    }
    while( v6 != (_UNICODE_STRING *)((char *)&CmpDummyThreadEvent + 2016) );
    if( !v7 && !a2 )
    {
LABEL_12:
      v3 = -1071906799;
      goto LABEL_8;
    }
  }
  Buffer = (INT64 *)v6->Buffer;
  v9 = *Buffer;
  if( *(INT64 **)(*Buffer + 8) != Buffer )
    __fastfail(3u);
  *(_QWORD *)a1 = v9;
  *(_QWORD *)(a1 + 8) = Buffer;
  *(_QWORD *)(v9 + 8) = a1;
  *Buffer = a1;
  _InterlockedIncrement(&dword_140C5083C);
LABEL_8:
  ExReleasePushLockEx((ULONG_PTR)&CmpDummyThreadEvent + 2008, 0);
  KeLeaveCriticalRegionThread(KeGetCurrentThread());
  return v3;
}

Referenced by:

CmpRegisterCallbackInternal