WASM is meant to be executed by general purpose computers. How does the low level WASM get converted to a form that the EOS virtual machine can understand?
WASM is the form that the virtual machine understands.
WebAssembly is indeed the instruction format that the virtual machine understands.
The actual interaction between the eos library and the wasm binary is done through WebAssembly modules. Every contract thus has to export an apply function, which serves as the entrypoint. It can also import functions to interact with the eos environment. A small subset of these functions are listed here.
Finally I'm pretty sure the eos virtual machine does not support the webassembly float types.
"EOS virtual machine" == WAVM or binaryen, which is a WASM-specific VM.