diff --git a/Ghidra/Processors/AARCH64/certification.manifest b/Ghidra/Processors/AARCH64/certification.manifest
index 2206636499..1390a55a38 100644
--- a/Ghidra/Processors/AARCH64/certification.manifest
+++ b/Ghidra/Processors/AARCH64/certification.manifest
@@ -21,4 +21,6 @@ data/languages/AARCH64sve.sinc||GHIDRA||||END|
data/languages/AppleSilicon.ldefs||GHIDRA||||END|
data/manuals/AARCH64.idx||GHIDRA||||END|
data/patterns/AARCH64_LE_patterns.xml||GHIDRA||||END|
+data/patterns/AARCH64_win_patterns.xml||GHIDRA||||END|
data/patterns/patternconstraints.xml||GHIDRA||||END|
+data/patterns/prepatternconstraints.xml||GHIDRA||||END|
diff --git a/Ghidra/Processors/AARCH64/data/languages/AARCH64_win.cspec b/Ghidra/Processors/AARCH64/data/languages/AARCH64_win.cspec
index 156fc99d37..8e02453a7e 100644
--- a/Ghidra/Processors/AARCH64/data/languages/AARCH64_win.cspec
+++ b/Ghidra/Processors/AARCH64/data/languages/AARCH64_win.cspec
@@ -193,4 +193,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Ghidra/Processors/AARCH64/data/patterns/AARCH64_win_patterns.xml b/Ghidra/Processors/AARCH64/data/patterns/AARCH64_win_patterns.xml
new file mode 100644
index 0000000000..0f14dd7da0
--- /dev/null
+++ b/Ghidra/Processors/AARCH64/data/patterns/AARCH64_win_patterns.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ 0xff 0x43 0x00 0xd1
+ ...10001 ........ ........ 1..10000
+ 00110001 ......10 01...... 11111001
+ 0xf1 0x63 0x31 0xcb
+ 0xf1 0x07 0x00 0xf9
+ 0xc0 0x03 0x5f 0xd6
+
+
+
+
+
+
+ ...10001 ........ ........ 1..10000
+ 0xf0 0x07 0x40 0xf9
+ 00110001 ......10 01...... 11111001
+ 0xf0 0x63 0x30 0xcb
+ 0x1f 0x02 0x11 0xeb
+ ...00001 ........ ........ 01010100
+ 0xff 0x43 0x00 0x91
+ 0xc0 0x03 0x5f 0xd6
+ 0x1f 0x20 0x03 0xd5
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Ghidra/Processors/AARCH64/data/patterns/prepatternconstraints.xml b/Ghidra/Processors/AARCH64/data/patterns/prepatternconstraints.xml
new file mode 100644
index 0000000000..b7a92ce80b
--- /dev/null
+++ b/Ghidra/Processors/AARCH64/data/patterns/prepatternconstraints.xml
@@ -0,0 +1,7 @@
+
+
+
+ AARCH64_win_patterns.xml
+
+
+
\ No newline at end of file
diff --git a/Ghidra/Processors/ARM/data/languages/ARMTHUMBinstructions.sinc b/Ghidra/Processors/ARM/data/languages/ARMTHUMBinstructions.sinc
index c53819453d..e839c4f829 100644
--- a/Ghidra/Processors/ARM/data/languages/ARMTHUMBinstructions.sinc
+++ b/Ghidra/Processors/ARM/data/languages/ARMTHUMBinstructions.sinc
@@ -883,7 +883,7 @@ thsdec4: thsdec5 is thc0404=0 & thsdec5 { }
thsdec3: r3 is thc0303=1 & r3 & thc0415=0 { * mult_addr=r3; mult_addr = mult_addr - 4; }
thsdec3: r3,thsdec4 is thc0303=1 & thsdec4 & r3 { * mult_addr=r3; mult_addr = mult_addr - 4; }
thsdec3: thsdec4 is thc0303=0 & thsdec4 { }
-thsdec2: r2 is thc0202=1 & r2 & thc0415=0 { * mult_addr=r2; mult_addr = mult_addr - 4; }
+thsdec2: r2 is thc0202=1 & r2 & thc0315=0 { * mult_addr=r2; mult_addr = mult_addr - 4; }
thsdec2: r2,thsdec3 is thc0202=1 & thsdec3 & r2 { * mult_addr=r2; mult_addr = mult_addr - 4; }
thsdec2: thsdec3 is thc0202=0 & thsdec3 { }
thsdec1: r1 is thc0101=1 & r1 & thc0215=0 { * mult_addr=r1; mult_addr = mult_addr - 4; }