#Java, <s>127</s> 111 bytes

    (s,r)->{StringBuilder b = new StringBuilder(s).reverse();for(int i=0;i++<s.length();)r+=b.reverse();return r;};
 
#Ungolfed test program

    	public static void main(String[] args) {

		    BiFunction<String, String, String> func = (s, r) -> {
			StringBuilder b = new StringBuilder(s).reverse();
			for (int i = 0; i++ < s.length();) {
				r += b.reverse();
			}
			return r;
		};

		System.out.println(func.apply("Hello!", ""));
	}