typedef unsigned char byte;
typedef unsigned short int u16;
typedef unsigned long int u32;
typedef unsigned long long int u64;
struct header_s
{
char magic[4]; //2UX# =}
uint h1; //unk }
uint h2; //unk } Same for each sabs file
uint h3; //unk }
uint h4; //unk =}
uint unk[9];
byte hash[16]; //128 bit hash possible: Snefru, MD2, MD4, MD5
};
struct nameTable_e
{
char name[0x40];
};
struct table_t
{
u16 mag; // 0xFFFB
byte* data; //length is probably in entryCount usually 0x120, 0x150, 0x4E0 (divisible by 0x10)
};
struct sab_file
{
header_s header;
nameTable_e* nameTable; // entryCount
// padding or something? idk nullbytes to 0x800
table_t* entryTable;
};