If you look at the parity trace for the transaction, you can see that it runs out of gas on a call from 0x4ceda7906a5ed2179785cd3a40a69ee8bc99c466 to 0x092988fc1090ff8f924b8f9cc71350e90ca446cd, which only received 2411 gas.
When contracts make sub calls, they are allows to only pass on a subset of the gas available to the entire transaction.
It seems like the contract you are using for the swaps limits certain external calls to 4999 gas.
Thus, when you the balanceOf function is invoked on the token, it receives only 4999 gas. This particular token seems to be using another contract to track the balances, and then makes a second internal call to retrieve the balance from there. This call only receives 2411 gas (which is all that's left of the 4999 gas from the initial balanceOf call), which is not enough to complete the read and return operation, and thus runs out of gas.
There is likely no way you can fix this without updating the token swaps contract.