Replaced the alignment loop with a ceiling division.

The code was previously:

 		while (code_ptr % 16 != 0) {
 			code_ptr++;
 		}

I replaced that (O(n)) with this (O(1)):

 		code_ptr = ((code_ptr + 15) >>> 4) << 4;

Or more simply:

 		code_ptr = (code_ptr + 15) / 16 * 16;

That will align the code to the nearest multiple of 16 address >= the given address.