setGUID method
Create GUID from common {FDD39AD0-238F-46AF-ADB4-6C85480369C7} format
Implementation
void setGUID(String guidString) {
assert(guidString.length == 38);
Data1 = int.parse(guidString.substring(1, 9), radix: 16);
Data2 = int.parse(guidString.substring(10, 14), radix: 16);
Data3 = int.parse(guidString.substring(15, 19), radix: 16);
// Final component is pushed on the stack in reverse order per x64
// calling convention.
final rawString = guidString.substring(35, 37) +
guidString.substring(33, 35) +
guidString.substring(31, 33) +
guidString.substring(29, 31) +
guidString.substring(27, 29) +
guidString.substring(25, 27) +
guidString.substring(22, 24) +
guidString.substring(20, 22);
// We need to split this to avoid overflowing a signed int.parse()
Data4 = (int.parse(rawString.substring(0, 4), radix: 16) << 48) +
int.parse(rawString.substring(4, 16), radix: 16);
}