Well, I'm stuck on this code at the moment. The data flow just isn't making sense to me (x86 isn't my strong suit).
So as far as how I isolated the code:
1. I searched the .exe to see if there was a reference to xc2.sce (the file in question) and there was. Which made things much easier.
2. I loaded the .exe into IDA Pro to find that string and checked the cross reference.
3. I found the routine that used the string and a LZ* file functions along with CreateFile, so I knew I was on the right track.
4. I saw the reference to operator new and compared the allocation size against the file's length value and got a match.
5. I narrowed the routine down a bit into some loops and put a breakpoint just before it started and just after.
6. Debug the exe with IDA Pro and at each breakpoint, go into task manager, right click the exe, and dump memory with Create Dump File. (Can do this in Vista/Win7)
7. Opened both dumps and got lucky enough to find the entire script in the post dump and the encoded version in the pre dump.
I've been trying to use the trace feature with minimal results. The data is there, I'm just not matching my head up with it yet. IDA has features to better inspect memory than a memory dump, but I'm not familiar with how to use them.