Then, insert 00 4A 10 47 XX +1 XX XX XX where XX XX XX XX is the free location you inserted it in in little endian, i.e. backwards but keeping things in 2 byte chunks, at 0xe50e8
For example: 0x12345678 in little endian is 78 56 34 12
Then, insert 00 4A 10 47 YY +1 YY YY YY where YY YY YY YY is the free location you inserted it in in little endian at 0xe50fc
Use HackMew's THUMB Editor and Assembler to do this.
In order to insert the ASM routines, open the .asm files in the THUMB Editor and Assembler, then go to "compile" -> "output to .bin"
Then open them in your hex editor and copy/paste them at the offsets you want
Also, every offset in an unexpanded FireRed you edit with a hex editor is at 0x08XXXXXX, where XXXXXX is the last 6 digits. Knowing this, you will always put 08 as the last 2 digits of little endian
One last thing, your free locations have to be at an address that is a multiple of 4
In order to enable the egg move tutor, set flag 200 using setflag 0x200 in XSE.