From a7e97e45ee22f733dffb6ef7b792e6f8200ee0d2 Mon Sep 17 00:00:00 2001
From: pottzman <pottzman@hotmail.com>
Date: Thu, 7 Sep 2023 17:16:00 +1000
Subject: [PATCH 1/4] Update confid.cpp

---
 src/libumskt/confid/confid.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/libumskt/confid/confid.cpp b/src/libumskt/confid/confid.cpp
index e460aee..69605a5 100644
--- a/src/libumskt/confid/confid.cpp
+++ b/src/libumskt/confid/confid.cpp
@@ -940,8 +940,7 @@ int ConfirmationID::Generate(const char* installation_id_str, char confirmation_
 			for (; *p; p++) {
 				*p = toupper((unsigned char)*p);
 			}
-			p = &channelid[0];
-			if (strcmp(p, "OEM") == 0) {
+			if (strcmp(&channelid[0], "OEM") == 0) {
 				productID[3] = ((stoi(productid.substr(10,2))) * 1000) + productID[3];
 			} else {
 				productID[3] = ((stoi(productid.substr(18,2))) * 1000) + productID[3];

From f3472313624fc5070ef45554631c0f40090dd60c Mon Sep 17 00:00:00 2001
From: pottzman <pottzman@hotmail.com>
Date: Thu, 7 Sep 2023 17:29:07 +1000
Subject: [PATCH 2/4] Update confid.cpp

---
 src/libumskt/confid/confid.cpp | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/libumskt/confid/confid.cpp b/src/libumskt/confid/confid.cpp
index 69605a5..b4a4bc0 100644
--- a/src/libumskt/confid/confid.cpp
+++ b/src/libumskt/confid/confid.cpp
@@ -690,7 +690,7 @@ void ConfirmationID::decode_iid_new_version(unsigned char* iid, unsigned char* h
     QWORD hardwareIDVal = ((QWORD)v1 << 32) | v2;
     for (i = 0; i < 8; ++i)
         hwid[i] = (hardwareIDVal >> (8 * i)) & 0xFF;
-    DWORD v3 = ((buffer[0] & 0xFFFFFF80) >> 7) & 0xFFFFFFFF;
+    /*DWORD v3 = ((buffer[0] & 0xFFFFFF80) >> 7) & 0xFFFFFFFF;
     DWORD v4 = v3 & 0xFFFFF800;
     DWORD v5 = buffer[1] & 0x7F;
     DWORD v6 = buffer[1] >> 7;
@@ -705,7 +705,7 @@ void ConfirmationID::decode_iid_new_version(unsigned char* iid, unsigned char* h
     DWORD v14 = v13 | v12;
     productID[2] = v14 & 0x000FFFFF;
     productID[2] = calculateCheckDigit(productID[2]);
-    productID[3] = (v14 & 0x3FF00000) >> 20;
+    productID[3] = (v14 & 0x3FF00000) >> 20;*/
     *version = buffer[0] & 7;
 }
 
@@ -941,10 +941,16 @@ int ConfirmationID::Generate(const char* installation_id_str, char confirmation_
 				*p = toupper((unsigned char)*p);
 			}
 			if (strcmp(&channelid[0], "OEM") == 0) {
+				productID[1] = stoi(productid.substr(12,3));
+				productID[2] = (stoi(productid.substr(15,1)) * 1000000) + stoi(productid.substr(18,5));
+				productID[2] = calculateCheckDigit(productID[2]);
 				productID[3] = ((stoi(productid.substr(10,2))) * 1000) + productID[3];
 			} else {
-				productID[3] = ((stoi(productid.substr(18,2))) * 1000) + productID[3];
+				productID[1] = stoi(productid.substr(6,3));
+				productID[2] = stoi(productid.substr(10,7));
+				productID[3] = stoi(productid.substr(18,5));
 			}
+		fmt::print("ProductID: {}-{}-{}-{} \n", productID[0], productID[1], productID[2], productID[3]);
 	}
 	
 	unsigned char keybuf[16];

From 6c06732331a1ae674fe639b5635c18dc034dc132 Mon Sep 17 00:00:00 2001
From: pottzman <pottzman@hotmail.com>
Date: Thu, 7 Sep 2023 18:05:58 +1000
Subject: [PATCH 3/4] Update confid.cpp

---
 src/libumskt/confid/confid.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/libumskt/confid/confid.cpp b/src/libumskt/confid/confid.cpp
index b4a4bc0..5325ccd 100644
--- a/src/libumskt/confid/confid.cpp
+++ b/src/libumskt/confid/confid.cpp
@@ -942,7 +942,7 @@ int ConfirmationID::Generate(const char* installation_id_str, char confirmation_
 			}
 			if (strcmp(&channelid[0], "OEM") == 0) {
 				productID[1] = stoi(productid.substr(12,3));
-				productID[2] = (stoi(productid.substr(15,1)) * 1000000) + stoi(productid.substr(18,5));
+				productID[2] = (stoi(productid.substr(15,1)) * 100000) + stoi(productid.substr(18,5));
 				productID[2] = calculateCheckDigit(productID[2]);
 				productID[3] = ((stoi(productid.substr(10,2))) * 1000) + productID[3];
 			} else {

From 1d5e233c19fb9feddda6e8cf3088b6e311bc1d5e Mon Sep 17 00:00:00 2001
From: pottzman <pottzman@hotmail.com>
Date: Thu, 7 Sep 2023 18:44:47 +1000
Subject: [PATCH 4/4] Update confid.cpp

---
 src/libumskt/confid/confid.cpp | 18 +-----------------
 1 file changed, 1 insertion(+), 17 deletions(-)

diff --git a/src/libumskt/confid/confid.cpp b/src/libumskt/confid/confid.cpp
index 5325ccd..2eb6b42 100644
--- a/src/libumskt/confid/confid.cpp
+++ b/src/libumskt/confid/confid.cpp
@@ -690,22 +690,6 @@ void ConfirmationID::decode_iid_new_version(unsigned char* iid, unsigned char* h
     QWORD hardwareIDVal = ((QWORD)v1 << 32) | v2;
     for (i = 0; i < 8; ++i)
         hwid[i] = (hardwareIDVal >> (8 * i)) & 0xFF;
-    /*DWORD v3 = ((buffer[0] & 0xFFFFFF80) >> 7) & 0xFFFFFFFF;
-    DWORD v4 = v3 & 0xFFFFF800;
-    DWORD v5 = buffer[1] & 0x7F;
-    DWORD v6 = buffer[1] >> 7;
-    DWORD v7 = ((v5 << 25) | v4) >> 11;
-    productID[1] = v7 & 0x000003FF;
-    DWORD v8 = v7 & 0xFFFFFC00;
-    DWORD v9 = (v6 >> 11) & 0x00001FFF;
-    DWORD v10 = v9 & 0x00001C00;
-    DWORD v11 = v9 & 0x000003FF;
-    DWORD v12 = (((v6 << 21) & 0xFFFFFFFF) | v8) >> 10;
-    DWORD v13 = (v11 << 22) & 0xFFFFFFFF;
-    DWORD v14 = v13 | v12;
-    productID[2] = v14 & 0x000FFFFF;
-    productID[2] = calculateCheckDigit(productID[2]);
-    productID[3] = (v14 & 0x3FF00000) >> 20;*/
     *version = buffer[0] & 7;
 }
 
@@ -950,7 +934,7 @@ int ConfirmationID::Generate(const char* installation_id_str, char confirmation_
 				productID[2] = stoi(productid.substr(10,7));
 				productID[3] = stoi(productid.substr(18,5));
 			}
-		fmt::print("ProductID: {}-{}-{}-{} \n", productID[0], productID[1], productID[2], productID[3]);
+		//fmt::print("ProductID: {}-{}-{}-{} \n", productID[0], productID[1], productID[2], productID[3]);
 	}
 	
 	unsigned char keybuf[16];