```\nfunction pullTokens(\n    address \_token,\n    address \_from,\n    uint256 \_amount\n) internal returns (uint256) {\n    // handle max uint amount\n    if (\_amount == type(uint256).max) {\n        uint256 allowance = IERC20(\_token).allowance(address(this), \_from);\n        uint256 balance = getBalance(\_token, \_from);\n\n        \_amount = (balance > allowance) ? allowance : balance;\n    }\n\n    if (\_from != address(0) && \_from != address(this) && \_token != ETH\_ADDR && \_amount != 0) {\n        IERC20(\_token).safeTransferFrom(\_from, address(this), \_amount);\n    }\n\n    return \_amount;\n}\n```\n