me parece muy interesante el codigo pero yo creo que en la zona donde haces uso de muchos condicionales if podrias haber usado in switch y hacer el codigo mas eficiente ya que solo entraria en uno de esos if pero la comprobacion seria en todos y con el switch no es asi. Otro detalle es como se lo tomaran los antivirus jejeje.