Sou um dos autores do OrcaFlex. Com absolutamente nenhuma garantia, o seguinte código Python irá cortar o que você precisa.
import struct
def readModelStateText(fileName):
with open(fileName, 'rb') as f:
content = f.read(0x4000) # hope that the text appears this early in the file
signature = b'\xff\xfa\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
index = content.find(signature)
if index == -1:
return '<model state not found>'
index += len(signature) + 2 # skip over block length
stringLength = struct.unpack('<H', content[index:index + 2])[0]
index += 2
return content[index:index + stringLength].decode('utf-8')
Isso procura um bloco específico no arquivo com conhecimento da assinatura do cabeçalho do bloco. É plausível (muito improvável, suspeito) que o código encontre o corpo de um bloco anterior que corresponda à assinatura. E há outras maneiras de esse código falhar.
Só estou oferecendo porque é possivelmente útil, mas com um robusto aviso de advertência.