Your array should be at least of chunk_size. That chunk_size is fixed by the demands of Spark_Save_Firmware_Chunk() - see Rick’s original code.
And you have to let go of the notion that you are dealing with strings - it’s a chunk of binary data which would break a string at any ' \0' byte.