```\nfunction _reinvestDividendOfUser(address account) private returns (uint256) {\n    uint256 _withdrawableDividend = withdrawableDividendOf(account);\n    if (_withdrawableDividend > 0) {\n        bool success;\n\n        withdrawnDividends[account] = withdrawnDividends[account].add(_withdrawableDividend);\n\n        address[] memory path = new address[](2);\n        path[0] = uniswapV2Router.WETH();\n        path[1] = address(VenomContract);\n\n        uint256 prevBalance = VenomContract.balanceOf(address(this));\n\n        // make the swap\n        try\n            uniswapV2Router\n                .swapExactETHForTokensSupportingFeeOnTransferTokens{value: _withdrawableDividend}\n                (0, path, address(this), block.timestamp)\n        {\n            uint256 received = VenomContract.balanceOf(address(this)).sub(prevBalance);\n            if (received > 0) {\n                success = true;\n                VenomContract.transfer(account, received);\n            } \n            else {\n                success = false;\n            }\n        } catch {\n            success = false;\n        }\n\n        if (!success) {\n            withdrawnDividends[account] = withdrawnDividends[account].sub(_withdrawableDividend);\n            return 0;\n        }\n\n        return _withdrawableDividend;\n    }\n\n    return 0;\n}\n```\n