the totalFunds variable does not handle overflow. Any solidity versions < 0.8 do not throw any errors for overflows/underflows so funds would be lost.
Overflow will happen when the value is too large to be stored in the uint64 data type, usually in solidity versions < 0.8 it will be caused to wrap around (which is the case here).
Can lead to a loss of funds and potentially unexpected behaviour within your smart contract.
Manual Review
Change the variable to a uint256 data type and also use OpenZeppelins safeMath library to prevent overflow/underflow because of the version of solidity you are using (for the version of solidity your using it is actually referred to as SafeCast).
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.