Visual Studio code analysis picked this up, a C6246.
In function putdic, at line 442:
int ret;
...shadows int ret from 435. I don't think that's what was intended.
C6246
Local declaration of 'ret' hides declaration of the same name in outer scope.
For additional information, see previous declaration at line '435'