The descriptions of what the fuses do are in the datasheet - they set things that need to be set before any code runs - the clock source, BOD (brown-out detect) configuration, and a few other things.
The lockbits determine whether you can read out the sketch binary; on the official boards they are set to permit this (this is required since the IDE verifies the sketch after upload). So you can read out the binary and get the .hex file.
Note that it is not possible to regenerate the sketch source code from the .hex file (the .hex file is the compiled binary - it is to arduino sketches what the executable is for an application for a computer; you can't get the source code back). The source code contains information that is not present in the .hex file (a lot of it, actually). Unless you can read AVR machine code, all you can do with the .hex file is copy the sketch to another arduino with the same processor.