RtlRbInsertNodeEx

INT8 __fastcall RtlRbInsertNodeEx(UINT64 *a1, UINT64 a2, BOOL a3, UINT64 a4){
  unsigned __int8 v4; 
  char v6; 
  UINT64 v7; 
  UINT64 v8; 
  UINT64 v9; 
  char v10; 
  unsigned __int64 v11; 
  char v12; 
  __int64 v13; 
  _BOOL8 v14; 
  UINT64 v15; 
  __int64 v16; 
  unsigned __int64 v17; 
  int v18; 
  __int64 v19; 
  __int64 v20; 
  unsigned __int64 v21; 
  UINT64 *v22; 
  UINT64 v23; 
  UINT64 v24; 
  UINT64 v25; 
  UINT64 v26; 
  UINT64 v27; 
  UINT64 v28; 
  __int64 v29; 
  unsigned __int64 v30; 
  int v31; 
  __int64 v32; 
  __int64 *v33; 
  __int64 v34; 
  unsigned __int64 v35; 
  __int64 v36; 
  UINT64 v37; 
  __int64 v38; 
  UINT64 v39; 
  UINT64 v40; 
  unsigned __int64 v41; 
  unsigned __int64 v42; 
  __int64 v43; 
  unsigned __int64 v44; 
  unsigned __int64 v45; 
  __int64 v46; 
  UINT64 v47; 
  __int64 v48; 
  unsigned __int64 v49; 
  UINT64 v50; 

  v4 = a3;
  *(_QWORD *)a4 = 0i64;
  *(_QWORD *)(a4 + 8) = 0i64;
  v6 = *((_BYTE *)a1 + 8);
  LOBYTE(v7) = v6 & 1;
  if( !a2 )
  {
    v42 = (unsigned __int64)a1 ^ a4;
    if( (_BYTE)v7 )
      *a1 = v42;
    else
      *a1 = a4;
    if( (v6 & 1) != 0 )
    {
      a1[1] = v42;
      *((_BYTE *)a1 + 8) = v42 | 1;
    }
    else
    {
      a1[1] = a4;
    }
    *(_QWORD *)(a4 + 16) = 0i64;
    return v7;
  }
  v8 = a4;
  if( (_BYTE)v7 )
    v8 = a4 ^ a2;
  *(_QWORD *)(a2 + 8i64 * a3) = v8;
  v9 = a2;
  if( (a1[1] & 1) != 0 )
    v9 = a4 ^ a2;
  *(_QWORD *)(a4 + 16) = v9 | 1;
  if( !a3 )
  {
    v7 = a1[1];
    if( (v7 & 1) != 0 )
      v41 = v7 == 1 ? 0i64 : v7 ^ ((unsigned __int64)a1 | 1);
    else
      v41 = a1[1];
    if( a2 == v41 )
    {
      if( (v7 & 1) != 0 )
      {
        a1[1] = a4 ^ (unsigned __int64)a1;
        LOBYTE(v7) = a4 ^ (unsigned __int8)a1 | 1;
        *((_BYTE *)a1 + 8) = v7;
      }
      else
      {
        a1[1] = a4;
      }
    }
  }
  if( (*(_BYTE *)(a2 + 16) & 1) != 0 )
  {
    v10 = *((_BYTE *)a1 + 8);
    while( 1 )
    {
      v11 = *(_QWORD *)(a2 + 16) & 0xFFFFFFFFFFFFFFFCui64;
      v12 = v10 & 1;
      if( (v10 & 1) != 0 && v11 )
        v11 ^= a2;
      v13 = *(_QWORD *)v11;
      if( v12 && v13 )
        v13 ^= v11;
      v7 = v13 != a2;
      v14 = v13 == a2;
      v15 = v7;
      v16 = *(_QWORD *)(v11 + 8 * v14);
      if( v12 )
      {
        if( !v16 )
          break;
        v16 ^= v11;
      }
      if( !v16 || (*(_BYTE *)(v16 + 16) & 1) == 0 )
        break;
      *(_BYTE *)(a2 + 16) &= ~1u;
      a4 = v11;
      *(_BYTE *)(v16 + 16) &= ~1u;
      a2 = *(_QWORD *)(v11 + 16) & 0xFFFFFFFFFFFFFFFCui64;
      if( (a1[1] & 1) != 0 )
      {
        if( !a2 )
          return v7;
        a2 ^= v11;
      }
      if( a2 )
      {
        *(_BYTE *)(v11 + 16) = *(_QWORD *)(v11 + 16) | 1;
        v10 = *((_BYTE *)a1 + 8);
        v7 = *(_QWORD *)a2;
        if( (v10 & 1) != 0 && v7 )
          v7 ^= a2;
        v4 = v11 != v7;
        if( (*(_BYTE *)(a2 + 16) & 1) != 0 )
          continue;
      }
      return v7;
    }
    if( v4 == (_DWORD)v7 )
    {
LABEL_41:
      v28 = *a1;
      if( (a1[1] & 1) != 0 )
      {
        if( v28 )
          v28 ^= (unsigned __int64)a1;
        else
          v28 = 0i64;
      }
      v29 = (unsigned int)v15 ^ 1;
      v30 = *(_QWORD *)(a2 + 16) & 0xFFFFFFFFFFFFFFFCui64;
      v31 = a1[1] & 1;
      if( (a1[1] & 1) != 0 && v30 )
        v30 ^= a2;
      if( v30 != v11 )
        goto LABEL_144;
      v32 = (unsigned int)v29;
      v33 = (__int64 *)(v11 + 8 * ((unsigned int)v29 ^ 1i64));
      v34 = *v33;
      if( (a1[1] & 1) != 0 && v34 )
        v34 ^= v11;
      if( v34 != a2 )
        goto LABEL_144;
      v35 = *(_QWORD *)(v11 + 16) & 0xFFFFFFFFFFFFFFFCui64;
      if( (a1[1] & 1) != 0 )
      {
        if( !v35 )
          goto LABEL_89;
        v35 ^= v11;
      }
      if( v35 )
      {
        v36 = *(_QWORD *)(v35 + 8);
        if( (a1[1] & 1) != 0 && v36 )
          v36 ^= v35;
        if( v36 == v11 )
        {
          v37 = v35 ^ a2;
          if( (a1[1] & 1) == 0 )
            v37 = a2;
          *(_QWORD *)(v35 + 8) = v37;
        }
        else
        {
          v46 = *(_QWORD *)v35;
          if( (a1[1] & 1) != 0 && v46 )
            v46 ^= v35;
          if( v46 != v11 )
            goto LABEL_144;
          v47 = v35 ^ a2;
          if( (a1[1] & 1) == 0 )
            v47 = a2;
          *(_QWORD *)v35 = v47;
        }
        goto LABEL_53;
      }
LABEL_89:
      if( v28 != v11 )
        goto LABEL_144;
      v28 = a2;
LABEL_53:
      if( v31 && v35 )
        v35 ^= a2;
      *(_QWORD *)(a2 + 16) = v35 | *(_DWORD *)(a2 + 16) & 3;
      v38 = *(_QWORD *)(a2 + 8 * v29);
      if( v31 )
      {
        if( !v38 )
        {
LABEL_56:
          if( v31 && v38 )
            v38 ^= v11;
          *v33 = v38;
          v39 = v11 ^ a2;
          v40 = v11 ^ a2;
          if( !v31 )
            v40 = v11;
          if( !v31 )
            v39 = a2;
          *(_QWORD *)(a2 + 8 * v32) = v40;
          v7 = v28;
          *(_QWORD *)(v11 + 16) = *(_DWORD *)(v11 + 16) & 3 | v39;
          if( (a1[1] & 1) != 0 )
          {
            v7 = (unsigned __int64)a1 ^ v28;
            if( !v28 )
              v7 = 0i64;
          }
          *a1 = v7;
          *(_BYTE *)(v11 + 16) |= 1u;
          *(_BYTE *)(a2 + 16) &= ~1u;
          return v7;
        }
        v38 ^= a2;
      }
      if( !v38 )
        goto LABEL_56;
      v43 = *(_QWORD *)(v38 + 16);
      v44 = v43 & 0xFFFFFFFFFFFFFFFCui64;
      if( v31 && v44 )
        v44 ^= v38;
      if( v44 == a2 )
      {
        v45 = v38 ^ v11;
        if( !v31 )
          v45 = v11;
        *(_QWORD *)(v38 + 16) = v43 & 3 | v45;
        goto LABEL_56;
      }
LABEL_144:
      __fastfail(0x1Du);
    }
    v17 = *(_QWORD *)(a4 + 16) & 0xFFFFFFFFFFFFFFFCui64;
    v18 = v10 & 1;
    if( (v10 & 1) != 0 && v17 )
      v17 ^= a4;
    if( v17 != a2 )
      goto LABEL_144;
    v19 = *(_QWORD *)(a2 + 8 * v14);
    if( (v10 & 1) != 0 && v19 )
      v19 ^= a2;
    if( v19 != a4 )
      goto LABEL_144;
    v20 = *(_QWORD *)(v11 + 8 * v15);
    if( (v10 & 1) != 0 && v20 )
      v20 ^= v11;
    if( v20 != a2 )
      goto LABEL_144;
    v21 = *(_QWORD *)(a2 + 16) & 0xFFFFFFFFFFFFFFFCui64;
    if( (v10 & 1) != 0 && v21 )
      v21 ^= a2;
    if( v21 != v11 )
      goto LABEL_144;
    v22 = (UINT64 *)(a4 + 8 * v15);
    v23 = v11 ^ a4;
    v24 = v11 ^ a4;
    if( !v18 )
      v24 = a4;
    if( !v18 )
      v23 = v11;
    *(_QWORD *)(v11 + 8 * v15) = v24;
    *(_QWORD *)(a4 + 16) = *(_DWORD *)(a4 + 16) & 3 | v23;
    v25 = *v22;
    if( v18 )
    {
      if( !v25 )
      {
LABEL_35:
        if( v18 && v25 )
          v25 ^= a2;
        *(_QWORD *)(a2 + 8 * v14) = v25;
        v26 = a4 ^ a2;
        v27 = a4 ^ a2;
        if( !v18 )
          v27 = a2;
        if( !v18 )
          v26 = a4;
        *v22 = v27;
        *(_QWORD *)(a2 + 16) = *(_DWORD *)(a2 + 16) & 3 | v26;
        a2 = a4;
        goto LABEL_41;
      }
      v25 ^= a4;
    }
    if( v25 )
    {
      v48 = *(_QWORD *)(v25 + 16);
      v49 = v48 & 0xFFFFFFFFFFFFFFFCui64;
      if( v18 && v49 )
        v49 ^= v25;
      if( v49 != a4 )
        goto LABEL_144;
      v50 = a2 ^ v25;
      if( !v18 )
        v50 = a2;
      *(_QWORD *)(v25 + 16) = v48 & 3 | v50;
    }
    goto LABEL_35;
  }
  return v7;
}

Referenced by:

EtwpRegisterPrivateSession
EtwpSetProviderTraitsCommon
HalpAllocateCommonBufferThin
HalpAllocateDomainCommonBufferInternal
HvpViewMapCreateViewsForRegion
HvpViewMapPromoteRangeToMapping
IoStartDiskIoAttributionForContext
KeInitializeClock
KiAbEntryGetLockedHeadEntry
KiAbEntryUpdateOwnerTreePosition
KiAbEntryUpdateWaiterTreePosition
KiGetSystemServiceTraceTable
KiInsertSchedulingGroupQueue
KiInsertTimer2WithCollectionLockHeld
KiSetClockInterval
MiBitmapsCachedEntryLengthChanged
MiGetHotPatchEntry
MiInsertSlabEntry
MiInvalidatePageFileBitmapsCache
MiRescanPageFileBitmapPortion
PfSnGetFileInformation
PspJobIoRateVolumeEntryInsert
RtlpHpLargeAlloc
RtlpHpSegFreeRangeInsert
RtlpHpSegPageRangeShrink
RtlpHpVaMgrFree
RtlpHpVsChunkSplit
RtlpHpVsContextFree
RtlpHpVsFreeChunkInsert
VmpFaultEntryInsert
VmpInsertMemoryRange
VmpSplitMemoryRange