Information is collected and formed in the following byte array and sent to the server in a base-64 encoded string.

Byte array format

condition length in byte description
1 bit 7-5: version number of this structure = 0 or 1.
bit 4-3: unused = 0.
bit 2: OS supports AVX512.
bit 1: OS supports AVX2.
bit 0: unused = 0.
1 bit 7: compression 2 used
bit 6: compression 1 used
bit 5-0: brand string length N
N ascii brand string taken from cpuid leaves 0x80000002 to 0x80000004
if the leaves are not available, N = 0 is set to omit this field.
compression 1: string "Intel" "AMD" "(R)" "(TM)" "CPU" "Processor" or "GHz" is replaced by a byte of value 1 to 7.
compression 2: 2-digit string "00" to "99" is replaced by a byte of value 128 to 227.
4 cpuid leaf 0x01 ecx
bit 0: SSE3
bit 1: PCLMULQDQ
bit 9: SSSE3
bit 12: FMA
bit 19: SSE41
bit 20: SSE42
bit 25: AESNI
bit 28: AVX
etc.
4 cpuid leaf 0x01 edx
bit 23: MMX
bit 25: SSE
bit 26: SSE2
etc.
4 cpuid leaf 0x07 subleaf 0 ebx
if the subleaf is not available, 0 is set.
bit 5: AVX2
bit 16: AVX512F
bit 29: SHA
if bit 16 is set the following bits are also used:
bit 17: AVX512DQ
bit 26: AVX512PF
bit 27: AVX512ER
bit 28: AVX512CD
bit 30: AVX512BW
bit 31: AVX512VL
etc.
if version >= 1 4 cpuid leaf 0x07 subleaf 0 ecx
if the subleaf is not available, 0 is set.
Bit 1: AVX512_VBMI
Bit 6: AVX512_VBMI2
Bit 7: CET_SS
Bit 8: GFNI
Bit 9: VAES
Bit 10: VPCLMULQDQ
Bit 11: AVX512_VNNI
Bit 12: AVX512_BITALG
etc.
if version >= 1 4 cpuid leaf 0x07 subleaf 0 edx
if the subleaf is not available, 0 is set.
Bit 8: AVX512_VP2INTERSECT
Bit 22: AMX-BF16
Bit 23: AVX512_FP16
Bit 24: AMX-TILE
Bit 25: AMX-INT8
etc.
if version >= 1 4 cpuid leaf 0x07 subleaf 1 eax
if the subleaf is not available, 0 is set.
Bit 4: AVX-VNNI
Bit 5: AVX512_BF16
etc.
4 CRC32 of the bytes above.

All mutibyte values are in little endian.

top page