import binascii

def insert_crc(i_filename, fbi_mode=False, o_filename=None):
	if o_filename is None:
		o_filename = i_filename

	with open(i_filename, 'rb') as f:
		fdata = f.read()
	fcrc = binascii.crc32(fdata).to_bytes(4, byteorder="big")
	flength = len(fdata).to_bytes(4, byteorder="big")

	with open(o_filename, 'wb') as f:
		if fbi_mode:
			f.write(flength)
			f.write(fcrc)
			f.write(fdata)
		else:
			f.write(fdata)
			f.write(fcrc)