CmpIsKeyStackDeleted

CHAR __fastcall CmpIsKeyStackDeleted(INT64 a1, INT64 a2){
  __int16 v2; 
  __int64 v4; 
  __int64 v5; 
  __int64 v6; 
  LIST_ENTRY *v7; 
  int v8; 
  LIST_ENTRY *ListIterator; 

  v2 = *(_WORD *)(a1 + 2);
  for( ListIterator = 0i64; v2 >= 0; --v2 )
  {
    v4 = v2 >= 2 ? *(_QWORD *)(*(_QWORD *)(a1 + 24) + 8i64 * v2 - 16) : *(_QWORD *)(a1 + 8i64 * v2 + 8);
    if( *(_WORD *)(v4 + 66) && *(_BYTE *)(v4 + 65) == 1 )
      break;
    if( *(_DWORD *)(v4 + 40) != -1 )
    {
      if( !a2 )
        goto LABEL_7;
      LODWORD(v5) = CmListGetNextElement((LIST_ENTRY *)(*(_QWORD *)(a1 + 8) + 208i64), &ListIterator, 32i64);
      if( !v5 )
        goto LABEL_7;
      while( 1 )
      {
        v8 = *(_DWORD *)(v5 + 68);
        if( v8 == 2 || v8 == 11 )
          break;
        LODWORD(v5) = CmListGetNextElement(v7 + 13, &ListIterator, 32i64);
        if( !v5 )
          return v5;
      }
      if( !CmEqualTrans(*(_QWORD *)(v5 + 56), v6) )
      {
LABEL_7:
        LOBYTE(v5) = 0;
        return v5;
      }
      break;
    }
  }
  LOBYTE(v5) = 1;
  return v5;
}

Referenced by:

CmpCheckOpenAccessOnKeyBody
CmpCreateChild
CmpCreateKeyBody
CmpDoParseKey
CmpDoWritethroughReparse
CmpGetSymbolicLinkTarget
CmpIsKeyDeleted
CmpPromoteKey