Good catch! I didn’t realize that the value could span multiple bytes. The actual oversight is in the section “calculate and display smart attributes for current drive number” – the arrDriveRawData should be set as below.
Let me know if that works for you and gives the desired result.
arrDriveRawData(arrVendorSpecificData(i*12+2))= (arrVendorSpecificData(i*12+12)*2^40) + (arrVendorSpecificData(i*12+11)*2^32) +(arrVendorSpecificData(i*12+10)*2^24) + (arrVendorSpecificData(i*12+9)*2^16) + (arrVendorSpecificData(i*12+8)*2^8) + (arrVendorSpecificData(i*12+7))