This does the actual decryption.

def _hilink_decrypt(self, encrypted_firmware):
        '''
        This does the actual decryption.
        '''
        cipher = DES.new(self.DES_KEY, DES.MODE_ECB)

        p1 = encrypted_firmware[0:3]
        p2 = encrypted_firmware[3:]
        p2 += b"\x00" * (8 - (len(p2) % 8))

        d1 = p1 + cipher.decrypt(p2)
        d1 += b"\x00" * (8 - (len(d1) % 8))

        return cipher.decrypt(d1)