def METHOD_NAME(self, board, depth, alpha, beta):
    baseIndex = (board.hash % self.buckets) * 4
    key = (board.hash // self.buckets) & 0xFFFFFFFF
    for i in range(baseIndex, baseIndex + 4):
        tkey, search_id, hashf, tdepth, score, move = entryType.unpack_from(
            self.data, i * entryType.size
        )
        if tkey == key:
            # Mate score bounds are guaranteed to be accurate at any depth.
            if tdepth < depth and abs(score) < MATE_VALUE - MAXPLY:
                return move, score, hashfBAD
            if hashf == hashfEXACT:
                return move, score, hashf
            if hashf == hashfALPHA and score <= alpha:
                return move, alpha, hashf
            if hashf == hashfBETA and score >= beta:
                return move, beta, hashf