```\nfunction decreaseCollateral(address asset, uint8 id, uint88 amount)\n    external\n    isNotFrozen(asset)\n    nonReentrant\n    onlyValidShortRecord(asset, msg.sender, id)\n{\n    STypes.ShortRecord storage short = s.shortRecords[asset][msg.sender][id];\n    short.updateErcDebt(asset);\n    if (amount > short.collateral) revert Errors.InsufficientCollateral();\n    short.collateral -= amount;\n❌  uint256 cRatio = short.getCollateralRatio(asset);\n    if (cRatio < LibAsset.initialMargin(asset)) {\n        revert Errors.CollateralLowerThanMin();\n    }\n    uint256 vault = s.asset[asset].vault;\n    s.vaultUser[vault][msg.sender].ethEscrowed += amount;\n    LibShortRecord.disburseCollateral(\n        asset, msg.sender, amount, short.zethYieldRate, short.updatedAt\n    );\n    emit Events.DecreaseCollateral(asset, msg.sender, id, amount);\n}\n```\n