"""One Flat (Ib) decompiler by nm 2005-11-13, MIT License, see oneflat.txt

Usage:  deone executable source.one"""

__version__ = "1.0"

import struct, sys

if len(sys.argv[1:]) < 2:
      sys.exit(__doc__)
inFileName = sys.argv[1]
outFileName = sys.argv[2]

try:
    revmeFile = open(inFileName, 'rb')
except:
    sys.exit('FATAL ERROR: Cannot open ' + inFileName + ' for reading.')
all = revmeFile.read()
codeNumber = 0
place = 1
print '"' + all + '"'
for i in range(len(all)-1,-1,-1):
    (byte,) = struct.unpack('B',all[i])
    print byte
    codeNumber += byte * place
    place *= 256
print "Code number:", codeNumber
try:
    oneFile = open(outFileName, 'w')
except:
    sys.exit('FATAL ERROR: Cannot open ' + outFileName + ' for writing.')
i = 0
while i < codeNumber:
    oneFile.write('I')
    i += 1
oneFile.write('\n')
