function distribute(uint256 _percent)
        public
        isHuman()
    {
        
        require(_percent > 0 && _percent < 100, "please pick a percent between 1 and 99");
        
        
        address _pusher = msg.sender;
        uint256 _bal = address(this).balance;
        uint256 _mnPayout;
        uint256 _compressedData;
        
        
        if (
            pushers_[_pusher].tracker <= pusherTracker_.sub(100) && 
            pushers_[_pusher].time.add(1 hours) >= now              
        )
        {
            
            pushers_[_pusher].tracker = pusherTracker_;
            pusherTracker_++;
            
            
            if (P3Dcontract_.balanceOf(_pusher) >= P3Dcontract_.stakingRequirement())
                _mnPayout = (_bal / 10) / 3;
            
            
            uint256 _stop = (_bal.mul(100 - _percent)) / 100;
            
            
            P3Dcontract_.buy.value(_bal)(_pusher);
            P3Dcontract_.sell(P3Dcontract_.balanceOf(address(this)));
            
            
            uint256 _tracker = P3Dcontract_.dividendsOf(address(this));
    
            
            while (_tracker >= _stop) 
            {
                
                P3Dcontract_.reinvest();
                P3Dcontract_.sell(P3Dcontract_.balanceOf(address(this)));
                
                
                _tracker = (_tracker.mul(81)) / 100;
            }
            
            
            P3Dcontract_.withdraw();
        } else {
            _compressedData = _compressedData.insert(1, 47, 47);
        }
        
        
        pushers_[_pusher].time = now;
    
        
        _compressedData = _compressedData.insert(now, 0, 14);
        _compressedData = _compressedData.insert(pushers_[_pusher].tracker, 15, 29);
        _compressedData = _compressedData.insert(pusherTracker_, 30, 44);
        _compressedData = _compressedData.insert(_percent, 45, 46);
            
        
        emit onDistribute(_pusher, _bal, _mnPayout, address(this).balance, _compressedData);
    }