It's a little odd to see ELF show up - such a complex format being used to do little more than wrap some bytes intended for the GPU to execute.
(Does the usefulness of writing FunctionName+0xnnnn in call/jump targets seem a bit odd? The addresses given on the left are absolute ones, so it would make sense to give those first, maybe with the relative one in parentheses; the relative one helps little in figuring out where exactly the call/jump goes...)
archive.org: https://web.archive.org/web/20150215195350/http://www.joshba...
Google Cache: https://webcache.googleusercontent.com/search?q=cache:1XzrZ3...