diff --git a/vm/comp/cpu.c b/vm/comp/cpu.c
index 3220f8ff7c65fa626270ec4c1bc65703fdd7c39f..4c61996264e4957f4035dd9d60b73e9f5669759b 100755
--- a/vm/comp/cpu.c
+++ b/vm/comp/cpu.c
@@ -828,6 +828,13 @@ cpu_step(void *_cpu_state) {
 			cpu_write_word_in_reg(src, &(cpu_state->ebp));
 		}
 
+		case 0x46: {
+			/* Increment doubleword register esi by 1 */
+			uint32_t src = cpu_read_word_from_reg(&(cpu_state->esi));
+			src++;
+			cpu_write_word_in_reg(src, &(cpu_state->esi));
+		}
+
 		case 0x0f: {
 			/* The opcode is two bytes long */
 			uint8_t op_code_2 = cpu_read_byte_from_mem(cpu_state);