```\nfunction withdrawTo(address payable withdrawAddress, uint256 withdrawAmount) external {\n    DepositInfo storage info = deposits[msg.sender];\n    require(withdrawAmount <= info.deposit, "Withdraw amount too large");\n    info.deposit = uint112(info.deposit - withdrawAmount);\n    emit Withdrawn(msg.sender, withdrawAddress, withdrawAmount);\n    (bool success,) = withdrawAddress.call{value : withdrawAmount}("");\n    require(success, "failed to withdraw");\n}\n```\n