Natural fails to allocate the required memory. You could try increasing the REGION size of your job step. The maximum array size in Natural is 1G. The maximum LOCAL storage is also 1G. That is, if you fill the X-array to 1G, there will be no storage left for WK-FILE, CONTADDR, and I.
How many records are you trying to load into the X-array? Repeatedly searching a large array will be CPU intensive. I suggest you sort the first file into a temporary dataset and then perform a sequential match against the second file. Search the forums for “sequential match” for more information.