The resource size table is an ares file format managed by ares::ResourceSizeTable. It contains an array of sorted file path Crc32b hashes + file resource heap size pairs, the earliest revision has no header. Since succeeded by a version with a 0xc byte header and an optional additional array of fixed 128 byte file paths + file resource heap size pairs for file paths that would produce a hash collision. Since succeeded by version with a new 0x16 byte header, the 0x6 byte magic makes all subsequent u32 values unaligned.
Offset
|
Size
|
Type
|
Description
|
0x0
|
0x4
|
u32
|
Magic ("RSTB" in big-endian)
|
0x4
|
0x4
|
u32
|
Crc32b resource size pair count
|
0x8
|
0x4
|
u32
|
Path resource size pair count
|
Offset
|
Size
|
Type
|
Description
|
0x0
|
0x6
|
u32
|
Magic ("RESTBL" in big-endian)
|
0x6
|
0x4
|
u32
|
Version?
|
0xa
|
0x4
|
u32
|
Reserved
|
0xe
|
0x4
|
u32
|
Crc32b resource size pair count
|
0x12
|
0x4
|
u32
|
Path resource size pair count
|
Crc32b Array
Array of hash + size pairs immediately following the header, if the header exists. Sorted by hash.
Offset
|
Size
|
Type
|
Description
|
0x0
|
0x4
|
u32
|
Crc32b of 128-byte file path
|
0x4
|
0x4
|
u32
|
Size required by file resource in ares
|
Path Array
Array of path + size pairs immediately following the Crc32b array, if the file path array exists. Sorted by path.
Offset
|
Size
|
Type
|
Description
|
0x0
|
0x80
|
const char[0x80]
|
128-byte file path
|
0x80
|
0x4
|
u32
|
Size required by file resource in ares
|