It will work regardless. I've tried it, using my own volume serial of course.
There is does no check against the random bytes.
Code:
var_8020 = GetVolumeInformation("C:\", String$(256, False), 255, global_005C507C, global_005C5084, global_005C5080, String$(256, False), 255)
global_005C507C = VolumeSerial#
Code:
var_2C = Proc_23_0_565AB7(Mid(var_3C, 17, Len(var_3C)), Mid(var_3C, 1, 16), 0)
var_2C = decoded VolumeSerial# from our input
Code:
var_8050 = Proc_23_0_565AB7(Proc_24_1_56681B(GetSetting("NDataScan", "Activation", "RegCode", 10), var_CC, 80020004h), "Lilys", var_C4)
var_3C = var_8050
var_34 = Proc_23_0_565AB7(Mid(var_3C, 17, Len(var_3C)), Mid(var_3C, 1, 16), 0)
var_34 = Left(var_34, Len(var_34)(-1))
var_34 = Right(var_34, Len(var_34)(-1))
var_34 = decoded VolumeSerial# from registry, less the left and right chars
Code:
If CBool((var_2C = var_34) And (var_2C = Str(global_005C507C)) And (var_34 = Str(global_005C507C))) Then
var_40 = "NDSI has been sucessfully activated. Please restart NDSI."
check 1. -> var_2C = var_34
compare the decoded VolumeSerial# from our input with the decoded VolumeSerial# from registry, less the left and right chars.
check 2 -> var_2C = Str(global_005C507C)
compare the decoded VolumeSerial# from our input with the GetVolumeInformation VolumeSerial#
check 3 -> var_34 = Str(global_005C507C)
decoded VolumeSerial# from registry, less the left and right chars with the GetVolumeInformation VolumeSerial#
as i said before, check 3 is redundant. It will always pass as the program generated it .