CmpFreeKeyBody

CHAR __fastcall CmpFreeKeyBody(UINT64 a1, INT64 a2){
  ULONG_PTR v2; 
  __int64 v4; 
  __int64 v5; 
  ULONG_PTR v6; 
  int v8; 
  int v9; 

  v8 = -1;
  v2 = a2;
  v9 = 0;
  v4 = (*(__int64(__fastcall **)(UINT64, INT64, int *))(a1 + 8))(a1, a2, &v8);
  v5 = v4;
  if( v4 )
  {
    if( (*(_BYTE *)(v4 + 2) & 2) == 0 )
    {
      v6 = *(_DWORD *)(v4 + 44);
      if( v6 != -1 )
        HvFreeCell(a1, v6);
      if( *(_WORD *)(v5 + 74) )
        HvFreeCell(a1, *(_DWORD *)(v5 + 48));
    }
    (*(void(__fastcall **)(UINT64, int *))(a1 + 16))(a1, &v8);
    HvFreeCell(a1, v2);
    LOBYTE(v4) = 1;
  }
  return v4;
}

Referenced by:

CmpFreeKeyByCell