FTP should migrate to Windows Internet (WinINet) API.
This action will provide several advantages: first of all, the entire source code will be reduced greatly. The entire protocol is fully implemented outside the utility and the code will be reduced to few functions to call.
Then, this will be very helpful for adding features not provided by the current application, because the abstraction provided by WinINet API. For example, you will be able to support IPv6 Literals.