```\nfunction callFunction(\n address sender,\n Account.Info calldata account,\n bytes calldata data\n) external override {\n require(msg.sender == \_dydxSoloMargin && sender == address(this), Errors.VL\_NOT\_AUTHORIZED);\n account;\n\n FlashLoan.Info memory info = abi.decode(data, (FlashLoan.Info));\n\n uint256 \_value;\n if (info.asset == \_ETH) {\n // Convert WETH to ETH and assign amount to be set as msg.value\n \_convertWethToEth(info.amount);\n \_value = info.amount;\n } else {\n // Transfer to Vault the flashloan Amount\n // \_value is 0\n IERC20(info.asset).univTransfer(payable(info.vault), info.amount);\n }\n```\n