Windows Runtime Installer: Initial creation in LoaderAndTools
diff --git a/windowsRuntimeInstaller/StrRep.nsh b/windowsRuntimeInstaller/StrRep.nsh
new file mode 100644
index 0000000..97eecdc
--- /dev/null
+++ b/windowsRuntimeInstaller/StrRep.nsh
@@ -0,0 +1,69 @@
+#############################################

+; StrRep

+

+!define StrRep "!insertmacro StrRep"

+!macro StrRep output string old new

+    Push `${string}`

+    Push `${old}`

+    Push `${new}`

+    !ifdef __UNINSTALL__

+        Call un.StrRep

+    !else

+        Call StrRep

+    !endif

+    Pop ${output}

+!macroend

+ 

+!macro Func_StrRep un

+    Function ${un}StrRep

+        Exch $R2 ;new

+        Exch 1

+        Exch $R1 ;old

+        Exch 2

+        Exch $R0 ;string

+        Push $R3

+        Push $R4

+        Push $R5

+        Push $R6

+        Push $R7

+        Push $R8

+        Push $R9

+ 

+        StrCpy $R3 0

+        StrLen $R4 $R1

+        StrLen $R6 $R0

+        StrLen $R9 $R2

+        loop:

+            StrCpy $R5 $R0 $R4 $R3

+            StrCmp $R5 $R1 found

+            StrCmp $R3 $R6 done

+            IntOp $R3 $R3 + 1 ;move offset by 1 to check the next character

+            Goto loop

+        found:

+            StrCpy $R5 $R0 $R3

+            IntOp $R8 $R3 + $R4

+            StrCpy $R7 $R0 "" $R8

+            StrCpy $R0 $R5$R2$R7

+            StrLen $R6 $R0

+            IntOp $R3 $R3 + $R9 ;move offset by length of the replacement string

+            Goto loop

+        done:

+ 

+        Pop $R9

+        Pop $R8

+        Pop $R7

+        Pop $R6

+        Pop $R5

+        Pop $R4

+        Pop $R3

+        Push $R0

+        Push $R1

+        Pop $R0

+        Pop $R1

+        Pop $R0

+        Pop $R2

+        Exch $R1

+    FunctionEnd

+!macroend

+!insertmacro Func_StrRep ""

+!insertmacro Func_StrRep "un."