CmpResetKeyNodeStack

void __fastcall CmpResetKeyNodeStack(__int16 *a1){
  INT16 i; 
  _QWORD *EntryAtLayerHeight; 
  _QWORD *v4; 

  for( i = 0; i <= *a1; *((_WORD *)v4 + 14) = 0 )
  {
    EntryAtLayerHeight = (_QWORD *)CmpKeyNodeStackGetEntryAtLayerHeight((INT64)a1, i);
    v4 = EntryAtLayerHeight;
    if( EntryAtLayerHeight[2] )
      (*(void(__fastcall **)(_QWORD, _QWORD *))(*EntryAtLayerHeight + 16i64))(
        *EntryAtLayerHeight,
        EntryAtLayerHeight + 3);
    *v4 = 0i64;
    *(_QWORD *)((char *)v4 + 12) = 0i64;
    ++i;
    *((_DWORD *)v4 + 5) = 0;
    *((_DWORD *)v4 + 2) = -1;
    v4[3] = 0i64;
    *((_DWORD *)v4 + 6) = -1;
  }
}

Referenced by:

CmpKeyEnumStackReset
CmpSubtreeEnumeratorReset