the .saf is nothing more than a blob. the .sah is what they try to protect, because it defines the values you need to read the data from the .saf. if you have the offset and length of the file you want, you can write a program to seek the offset, read the bytes, and write the file.
most people still use the file count xor method. the key is in plain sight in raw format when the file count is null. in this case, you can find the key next to the folder name. some use multiple keys or different math, so don't expect it to be that easy.
anyhow, you don't have to crack their encryption. study the .sah format and the function the client uses to parse the file. it creates file and folder objects, so you can get the filename, offset, and length and append them to a .txt file (e.g. filename,12341234,1234). then, write a program to read each line, pass the filename, offset, and length to some functions, and extract the file.