I disagree, at least about the asm part (can't comment about C really, it all seems bad to me!) - it seems like it was written under heavy drug abuse. Personally I'd run it and set a breakpoint in the end to see the result than trying to understand what the code is doing...
I don't know, if you read the theory, it follows it quite straightforward (I haven't analyzed the efficiency or size).
But basically, it's like that:
1. Create environment variable (list of null terminated strings, terminated with null), probably take it from parent
2. Append 'ARGV=<any value>' at the end
3. Append name of child (argv[0])
4. Append anything you like as command line arguments
Use this variable as classic envp pointer. Better read that doc, I might messed up something.