Moved all functions to their own private ASM module