FRF files are ZIP files containing either SGO (binary flash data) or ODX data.
The are encrypted with an XOR Cipher.
An example for the FRF decryption:
https://github.com/bri3d/VW_Flash/blob/master/frf/decryptfrf.py.
ODX is an XML file, which itself can contain flash data.
SGO is the predecessor of ODX, it's a fairly simple binary format, these notes should help:
Offset, name, description, type
0000 String: SGML Object File: zero-terminated string
0011 Unk_word_01: U32
0015 Unk_word_01: U32
0019 Pointer to descriptor 0x031 (xor-ed with 0xFF)
001d Pointer to something? 0x1e3
0021 Pointer to something? 0x192
0025: Pointer to something? 0x1B2
0029: Pointer to start of SA2 points to length u32 + string
002D: SGO fileLength is at offset 0x2D U32
It's the index at offset 2D which is probably what you're interested int.