You can use nested DBFunctionCalls. The rtrim, tolower, etc on the parameter value could be done in memory. Example:
var ltrimExpr = new DbFunctionCall("LTRIM", new object[] { AssetFields.ThirdPartyId });
var rtrimExpr = new DbFunctionCall("RTRIM", new object[] { ltrimExpr });
var lowerExpr = new DbFunctionCall("LOWER", new object[] { rtrimExpr });
var expField = new EntityField("customComapny", lowerExpr);
var filter = new PredicateExpression();
filter.Add(AssetFields.AssetTypeId == paramToFilter);
filter.Add(expField == paramToFilter.Trim().ToLower());
AssetCollection assets = new AssetCollection();
assets .GetMulti(filter);