function withdraw() public {

        uint _payout = x.dividends(msg.sender);

        if (_payout > 0) {

            if (_payout > address(this).balance) {
                nextWave();
                return;
            }

            x.updateCheckpoint(msg.sender);
            admin.transfer(_payout / 25);
            msg.sender.transfer(_payout * 24 / 25);
            emit LogIncome(msg.sender, _payout);
            payed += _payout;
        }
    }