Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
case ADD|RRR:
case ADD_RRR:
if (code[ip+1]==code[ip+2]) {
a.mov(eax, dword_ptr(edi, code[ip+3]*4));
a.add(dword_ptr(edi, code[ip+1]*4), eax);
} else {
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.add(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
}
ip += 4;
break;
case ADD|RRP:
if (code[ip+1]==code[ip+2]) {
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(eax, dword_ptr(ecx));
a.add(dword_ptr(edi, code[ip+1]*4), eax);
} else {
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.add(eax, dword_ptr(ecx));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
}
ip += 4;
break;
case ADD|RRV:
case ADD_RRV:
if (code[ip+1]==code[ip+2]) {
a.add(dword_ptr(edi, code[ip+1]*4), imm(code[ip+3]));
} else {
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.add(eax, imm(code[ip+3]));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
}
ip += 4;
break;
case ADD|RRS:
if (code[ip+1]==code[ip+2]) {
a.add(dword_ptr(edi, code[ip+1]*4), ecx);
} else {
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.add(eax, ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
}
ip += 4;
break;
case ADD|RPR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.add(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case ADD|RPP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.add(eax, dword_ptr(ecx));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case ADD|RPV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.add(eax, imm(code[ip+3]));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case ADD|RPS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.add(eax, ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case ADD|RVR:
a.mov(eax, imm(code[ip+2]));
a.add(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case ADD|RVP:
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.add(eax, dword_ptr(ecx));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case ADD|RVV:
a.mov(eax, imm(code[ip+2]));
a.add(eax, imm(code[ip+3]));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case ADD|RVS:
a.mov(eax, imm(code[ip+2]));
a.add(eax, ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case ADD|RSR:
a.add(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case ADD|RSP:
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.add(eax, dword_ptr(ecx));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case ADD|RSV:
a.add(eax, imm(code[ip+3]));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case ADD|RSS:
a.add(eax, ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case ADD|PRR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.add(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case ADD|PRP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.add(eax, dword_ptr(ecx));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case ADD|PRV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.add(eax, imm(code[ip+3]));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case ADD|PRS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.add(eax, ecx);
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case ADD|PPR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.add(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case ADD|PPP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.add(eax, dword_ptr(ecx));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case ADD|PPV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.add(eax, imm(code[ip+3]));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case ADD|PPS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.add(eax, ecx);
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case ADD|PVR:
a.mov(eax, imm(code[ip+2]));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.add(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case ADD|PVP:
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.add(eax, dword_ptr(ecx));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case ADD|PVV:
a.mov(eax, imm(code[ip+2]));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.add(eax, imm(code[ip+3]));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case ADD|PVS:
a.mov(eax, imm(code[ip+2]));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.add(eax, ecx);
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case ADD|PSR:
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.add(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case ADD|PSP:
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.add(eax, dword_ptr(ecx));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case ADD|PSV:
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.add(eax, imm(code[ip+3]));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case ADD|PSS:
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.add(eax, ecx);
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case ADD|ARR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.add(eax, dword_ptr(edi, code[ip+3]*4));
ip += 4;
break;
case ADD|ARP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.add(eax, dword_ptr(ecx));
ip += 4;
break;
case ADD|ARV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.add(eax, imm(code[ip+3]));
ip += 4;
break;
case ADD|ARS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.add(eax, ecx);
ip += 4;
break;
case ADD|APR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.add(eax, dword_ptr(edi, code[ip+3]*4));
ip += 4;
break;
case ADD|APP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.add(eax, dword_ptr(ecx));
ip += 4;
break;
case ADD|APV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.add(eax, imm(code[ip+3]));
ip += 4;
break;
case ADD|APS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.add(eax, ecx);
ip += 4;
break;
case ADD|AVR:
a.mov(eax, imm(code[ip+2]));
a.add(eax, dword_ptr(edi, code[ip+3]*4));
ip += 4;
break;
case ADD|AVP:
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.add(eax, dword_ptr(ecx));
ip += 4;
break;
case ADD|AVV:
a.mov(eax, imm(code[ip+2]));
a.add(eax, imm(code[ip+3]));
ip += 4;
break;
case ADD|AVS:
a.mov(eax, imm(code[ip+2]));
a.add(eax, ecx);
ip += 4;
break;
case ADD|ASR:
a.add(eax, dword_ptr(edi, code[ip+3]*4));
ip += 4;
break;
case ADD|ASP:
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.add(eax, dword_ptr(ecx));
ip += 4;
break;
case ADD|ASV:
a.add(eax, imm(code[ip+3]));
ip += 4;
break;
case ADD|ASS:
a.add(eax, ecx);
ip += 4;
break;
case ADD|BRR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.add(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, eax);
ip += 4;
break;
case ADD|BRP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.add(eax, dword_ptr(ecx));
a.mov(ecx, eax);
ip += 4;
break;
case ADD|BRV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.add(eax, imm(code[ip+3]));
a.mov(ecx, eax);
ip += 4;
break;
case ADD|BRS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.add(eax, ecx);
a.mov(ecx, eax);
ip += 4;
break;
case ADD|BPR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.add(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, eax);
ip += 4;
break;
case ADD|BPP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.add(eax, dword_ptr(ecx));
a.mov(ecx, eax);
ip += 4;
break;
case ADD|BPV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.add(eax, imm(code[ip+3]));
a.mov(ecx, eax);
ip += 4;
break;
case ADD|BPS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.add(eax, ecx);
a.mov(ecx, eax);
ip += 4;
break;
case ADD|BVR:
a.mov(eax, imm(code[ip+2]));
a.add(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, eax);
ip += 4;
break;
case ADD|BVP:
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.add(eax, dword_ptr(ecx));
a.mov(ecx, eax);
ip += 4;
break;
case ADD|BVV:
a.mov(eax, imm(code[ip+2]));
a.add(eax, imm(code[ip+3]));
a.mov(ecx, eax);
ip += 4;
break;
case ADD|BVS:
a.mov(eax, imm(code[ip+2]));
a.add(eax, ecx);
a.mov(ecx, eax);
ip += 4;
break;
case ADD|BSR:
a.add(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, eax);
ip += 4;
break;
case ADD|BSP:
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.add(eax, dword_ptr(ecx));
a.mov(ecx, eax);
ip += 4;
break;
case ADD|BSV:
a.add(eax, imm(code[ip+3]));
a.mov(ecx, eax);
ip += 4;
break;
case ADD|BSS:
a.add(eax, ecx);
a.mov(ecx, eax);
ip += 4;
break;
case SUB|RRR:
if (code[ip+1]==code[ip+2]) {
a.mov(eax, dword_ptr(edi, code[ip+3]*4));
a.sub(dword_ptr(edi, code[ip+1]*4), eax);
} else {
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.sub(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
}
ip += 4;
break;
case SUB|RRP:
if (code[ip+1]==code[ip+2]) {
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(eax, dword_ptr(ecx));
a.sub(dword_ptr(edi, code[ip+1]*4), eax);
} else {
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.sub(eax, dword_ptr(ecx));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
}
ip += 4;
break;
case SUB|RRV:
if (code[ip+1]==code[ip+2]) {
a.sub(dword_ptr(edi, code[ip+1]*4), imm(code[ip+3]));
} else {
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.sub(eax, imm(code[ip+3]));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
}
ip += 4;
break;
case SUB|RRS:
if (code[ip+1]==code[ip+2]) {
a.sub(dword_ptr(edi, code[ip+1]*4), ecx);
} else {
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.sub(eax, ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
}
ip += 4;
break;
case SUB|RPR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.sub(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case SUB|RPP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.sub(eax, dword_ptr(ecx));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case SUB|RPV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.sub(eax, imm(code[ip+3]));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case SUB|RPS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.sub(eax, ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case SUB|RVR:
a.mov(eax, imm(code[ip+2]));
a.sub(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case SUB|RVP:
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.sub(eax, dword_ptr(ecx));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case SUB|RVV:
a.mov(eax, imm(code[ip+2]));
a.sub(eax, imm(code[ip+3]));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case SUB|RVS:
a.mov(eax, imm(code[ip+2]));
a.sub(eax, ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case SUB|RSR:
a.sub(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case SUB|RSP:
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.sub(eax, dword_ptr(ecx));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case SUB|RSV:
a.sub(eax, imm(code[ip+3]));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case SUB|RSS:
a.sub(eax, ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case SUB|PRR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.sub(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case SUB|PRP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.sub(eax, dword_ptr(ecx));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case SUB|PRV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.sub(eax, imm(code[ip+3]));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case SUB|PRS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.sub(eax, ecx);
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case SUB|PPR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.sub(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case SUB|PPP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.sub(eax, dword_ptr(ecx));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case SUB|PPV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.sub(eax, imm(code[ip+3]));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case SUB|PPS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.sub(eax, ecx);
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case SUB|PVR:
a.mov(eax, imm(code[ip+2]));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.sub(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case SUB|PVP:
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.sub(eax, dword_ptr(ecx));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case SUB|PVV:
a.mov(eax, imm(code[ip+2]));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.sub(eax, imm(code[ip+3]));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case SUB|PVS:
a.mov(eax, imm(code[ip+2]));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.sub(eax, ecx);
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case SUB|PSR:
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.sub(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case SUB|PSP:
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.sub(eax, dword_ptr(ecx));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case SUB|PSV:
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.sub(eax, imm(code[ip+3]));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case SUB|PSS:
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.sub(eax, ecx);
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case SUB|ARR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.sub(eax, dword_ptr(edi, code[ip+3]*4));
ip += 4;
break;
case SUB|ARP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.sub(eax, dword_ptr(ecx));
ip += 4;
break;
case SUB|ARV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.sub(eax, imm(code[ip+3]));
ip += 4;
break;
case SUB|ARS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.sub(eax, ecx);
ip += 4;
break;
case SUB|APR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.sub(eax, dword_ptr(edi, code[ip+3]*4));
ip += 4;
break;
case SUB|APP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.sub(eax, dword_ptr(ecx));
ip += 4;
break;
case SUB|APV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.sub(eax, imm(code[ip+3]));
ip += 4;
break;
case SUB|APS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.sub(eax, ecx);
ip += 4;
break;
case SUB|AVR:
a.mov(eax, imm(code[ip+2]));
a.sub(eax, dword_ptr(edi, code[ip+3]*4));
ip += 4;
break;
case SUB|AVP:
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.sub(eax, dword_ptr(ecx));
ip += 4;
break;
case SUB|AVV:
a.mov(eax, imm(code[ip+2]));
a.sub(eax, imm(code[ip+3]));
ip += 4;
break;
case SUB|AVS:
a.mov(eax, imm(code[ip+2]));
a.sub(eax, ecx);
ip += 4;
break;
case SUB|ASR:
a.sub(eax, dword_ptr(edi, code[ip+3]*4));
ip += 4;
break;
case SUB|ASP:
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.sub(eax, dword_ptr(ecx));
ip += 4;
break;
case SUB|ASV:
a.sub(eax, imm(code[ip+3]));
ip += 4;
break;
case SUB|ASS:
a.sub(eax, ecx);
ip += 4;
break;
case SUB|BRR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.sub(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, eax);
ip += 4;
break;
case SUB|BRP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.sub(eax, dword_ptr(ecx));
a.mov(ecx, eax);
ip += 4;
break;
case SUB|BRV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.sub(eax, imm(code[ip+3]));
a.mov(ecx, eax);
ip += 4;
break;
case SUB|BRS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.sub(eax, ecx);
a.mov(ecx, eax);
ip += 4;
break;
case SUB|BPR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.sub(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, eax);
ip += 4;
break;
case SUB|BPP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.sub(eax, dword_ptr(ecx));
a.mov(ecx, eax);
ip += 4;
break;
case SUB|BPV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.sub(eax, imm(code[ip+3]));
a.mov(ecx, eax);
ip += 4;
break;
case SUB|BPS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.sub(eax, ecx);
a.mov(ecx, eax);
ip += 4;
break;
case SUB|BVR:
a.mov(eax, imm(code[ip+2]));
a.sub(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, eax);
ip += 4;
break;
case SUB|BVP:
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.sub(eax, dword_ptr(ecx));
a.mov(ecx, eax);
ip += 4;
break;
case SUB|BVV:
a.mov(eax, imm(code[ip+2]));
a.sub(eax, imm(code[ip+3]));
a.mov(ecx, eax);
ip += 4;
break;
case SUB|BVS:
a.mov(eax, imm(code[ip+2]));
a.sub(eax, ecx);
a.mov(ecx, eax);
ip += 4;
break;
case SUB|BSR:
a.sub(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, eax);
ip += 4;
break;
case SUB|BSP:
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.sub(eax, dword_ptr(ecx));
a.mov(ecx, eax);
ip += 4;
break;
case SUB|BSV:
a.sub(eax, imm(code[ip+3]));
a.mov(ecx, eax);
ip += 4;
break;
case SUB|BSS:
a.sub(eax, ecx);
a.mov(ecx, eax);
ip += 4;
break;
case XOR|RRR:
if (code[ip+1]==code[ip+2]) {
a.mov(eax, dword_ptr(edi, code[ip+3]*4));
a.xor_(dword_ptr(edi, code[ip+1]*4), eax);
} else {
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.xor_(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
}
ip += 4;
break;
case XOR|RRP:
if (code[ip+1]==code[ip+2]) {
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(eax, dword_ptr(ecx));
a.xor_(dword_ptr(edi, code[ip+1]*4), eax);
} else {
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.xor_(eax, dword_ptr(ecx));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
}
ip += 4;
break;
case XOR|RRV:
if (code[ip+1]==code[ip+2]) {
a.xor_(dword_ptr(edi, code[ip+1]*4), imm(code[ip+3]));
} else {
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.xor_(eax, imm(code[ip+3]));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
}
ip += 4;
break;
case XOR|RRS:
if (code[ip+1]==code[ip+2]) {
a.xor_(dword_ptr(edi, code[ip+1]*4), ecx);
} else {
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.xor_(eax, ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
}
ip += 4;
break;
case XOR|RPR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.xor_(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case XOR|RPP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.xor_(eax, dword_ptr(ecx));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case XOR|RPV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.xor_(eax, imm(code[ip+3]));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case XOR|RPS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.xor_(eax, ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case XOR|RVR:
a.mov(eax, imm(code[ip+2]));
a.xor_(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case XOR|RVP:
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.xor_(eax, dword_ptr(ecx));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case XOR|RVV:
a.mov(eax, imm(code[ip+2]));
a.xor_(eax, imm(code[ip+3]));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case XOR|RVS:
a.mov(eax, imm(code[ip+2]));
a.xor_(eax, ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case XOR|RSR:
a.xor_(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case XOR|RSP:
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.xor_(eax, dword_ptr(ecx));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case XOR|RSV:
a.xor_(eax, imm(code[ip+3]));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case XOR|RSS:
a.xor_(eax, ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case XOR|PRR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.xor_(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case XOR|PRP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.xor_(eax, dword_ptr(ecx));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case XOR|PRV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.xor_(eax, imm(code[ip+3]));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case XOR|PRS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.xor_(eax, ecx);
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case XOR|PPR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.xor_(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case XOR|PPP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.xor_(eax, dword_ptr(ecx));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case XOR|PPV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.xor_(eax, imm(code[ip+3]));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case XOR|PPS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.xor_(eax, ecx);
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case XOR|PVR:
a.mov(eax, imm(code[ip+2]));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.xor_(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case XOR|PVP:
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.xor_(eax, dword_ptr(ecx));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case XOR|PVV:
a.mov(eax, imm(code[ip+2]));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.xor_(eax, imm(code[ip+3]));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case XOR|PVS:
a.mov(eax, imm(code[ip+2]));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.xor_(eax, ecx);
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case XOR|PSR:
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.xor_(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case XOR|PSP:
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.xor_(eax, dword_ptr(ecx));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case XOR|PSV:
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.xor_(eax, imm(code[ip+3]));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case XOR|PSS:
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.xor_(eax, ecx);
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case XOR|ARR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.xor_(eax, dword_ptr(edi, code[ip+3]*4));
ip += 4;
break;
case XOR|ARP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.xor_(eax, dword_ptr(ecx));
ip += 4;
break;
case XOR|ARV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.xor_(eax, imm(code[ip+3]));
ip += 4;
break;
case XOR|ARS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.xor_(eax, ecx);
ip += 4;
break;
case XOR|APR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.xor_(eax, dword_ptr(edi, code[ip+3]*4));
ip += 4;
break;
case XOR|APP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.xor_(eax, dword_ptr(ecx));
ip += 4;
break;
case XOR|APV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.xor_(eax, imm(code[ip+3]));
ip += 4;
break;
case XOR|APS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.xor_(eax, ecx);
ip += 4;
break;
case XOR|AVR:
a.mov(eax, imm(code[ip+2]));
a.xor_(eax, dword_ptr(edi, code[ip+3]*4));
ip += 4;
break;
case XOR|AVP:
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.xor_(eax, dword_ptr(ecx));
ip += 4;
break;
case XOR|AVV:
a.mov(eax, imm(code[ip+2]));
a.xor_(eax, imm(code[ip+3]));
ip += 4;
break;
case XOR|AVS:
a.mov(eax, imm(code[ip+2]));
a.xor_(eax, ecx);
ip += 4;
break;
case XOR|ASR:
a.xor_(eax, dword_ptr(edi, code[ip+3]*4));
ip += 4;
break;
case XOR|ASP:
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.xor_(eax, dword_ptr(ecx));
ip += 4;
break;
case XOR|ASV:
a.xor_(eax, imm(code[ip+3]));
ip += 4;
break;
case XOR|ASS:
a.xor_(eax, ecx);
ip += 4;
break;
case XOR|BRR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.xor_(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, eax);
ip += 4;
break;
case XOR|BRP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.xor_(eax, dword_ptr(ecx));
a.mov(ecx, eax);
ip += 4;
break;
case XOR|BRV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.xor_(eax, imm(code[ip+3]));
a.mov(ecx, eax);
ip += 4;
break;
case XOR|BRS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.xor_(eax, ecx);
a.mov(ecx, eax);
ip += 4;
break;
case XOR|BPR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.xor_(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, eax);
ip += 4;
break;
case XOR|BPP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.xor_(eax, dword_ptr(ecx));
a.mov(ecx, eax);
ip += 4;
break;
case XOR|BPV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.xor_(eax, imm(code[ip+3]));
a.mov(ecx, eax);
ip += 4;
break;
case XOR|BPS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.xor_(eax, ecx);
a.mov(ecx, eax);
ip += 4;
break;
case XOR|BVR:
a.mov(eax, imm(code[ip+2]));
a.xor_(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, eax);
ip += 4;
break;
case XOR|BVP:
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.xor_(eax, dword_ptr(ecx));
a.mov(ecx, eax);
ip += 4;
break;
case XOR|BVV:
a.mov(eax, imm(code[ip+2]));
a.xor_(eax, imm(code[ip+3]));
a.mov(ecx, eax);
ip += 4;
break;
case XOR|BVS:
a.mov(eax, imm(code[ip+2]));
a.xor_(eax, ecx);
a.mov(ecx, eax);
ip += 4;
break;
case XOR|BSR:
a.xor_(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, eax);
ip += 4;
break;
case XOR|BSP:
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.xor_(eax, dword_ptr(ecx));
a.mov(ecx, eax);
ip += 4;
break;
case XOR|BSV:
a.xor_(eax, imm(code[ip+3]));
a.mov(ecx, eax);
ip += 4;
break;
case XOR|BSS:
a.xor_(eax, ecx);
a.mov(ecx, eax);
ip += 4;
break;
case MUL|RRR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.imul(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case MUL|RRP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.imul(eax, dword_ptr(ecx));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case MUL|RRV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.imul(eax, imm(code[ip+3]));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case MUL|RRS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.imul(eax, ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case MUL|RPR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.imul(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case MUL|RPP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.imul(eax, dword_ptr(ecx));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case MUL|RPV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.imul(eax, imm(code[ip+3]));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case MUL|RPS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.imul(eax, ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case MUL|RVR:
a.mov(eax, imm(code[ip+2]));
a.imul(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case MUL|RVP:
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.imul(eax, dword_ptr(ecx));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case MUL|RVV:
a.mov(eax, imm(code[ip+2]));
a.imul(eax, imm(code[ip+3]));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case MUL|RVS:
a.mov(eax, imm(code[ip+2]));
a.imul(eax, ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case MUL|RSR:
a.imul(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case MUL|RSP:
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.imul(eax, dword_ptr(ecx));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case MUL|RSV:
a.imul(eax, imm(code[ip+3]));
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case MUL|RSS:
a.imul(eax, ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case MUL|PRR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.imul(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case MUL|PRP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.imul(eax, dword_ptr(ecx));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case MUL|PRV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.imul(eax, imm(code[ip+3]));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case MUL|PRS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.imul(eax, ecx);
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case MUL|PPR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.imul(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case MUL|PPP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.imul(eax, dword_ptr(ecx));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case MUL|PPV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.imul(eax, imm(code[ip+3]));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case MUL|PPS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.imul(eax, ecx);
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case MUL|PVR:
a.mov(eax, imm(code[ip+2]));
a.imul(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case MUL|PVP:
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.imul(eax, dword_ptr(ecx));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case MUL|PVV:
a.mov(eax, imm(code[ip+2]));
a.imul(eax, imm(code[ip+3]));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case MUL|PVS:
a.mov(eax, imm(code[ip+2]));
a.imul(eax, ecx);
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case MUL|PSR:
a.imul(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case MUL|PSP:
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.imul(eax, dword_ptr(ecx));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case MUL|PSV:
a.imul(eax, imm(code[ip+3]));
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case MUL|PSS:
a.imul(eax, ecx);
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case MUL|ARR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.imul(eax, dword_ptr(edi, code[ip+3]*4));
ip += 4;
break;
case MUL|ARP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.imul(eax, dword_ptr(ecx));
ip += 4;
break;
case MUL|ARV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.imul(eax, imm(code[ip+3]));
ip += 4;
break;
case MUL|ARS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.imul(eax, ecx);
ip += 4;
break;
case MUL|APR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.imul(eax, dword_ptr(edi, code[ip+3]*4));
ip += 4;
break;
case MUL|APP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.imul(eax, dword_ptr(ecx));
ip += 4;
break;
case MUL|APV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.imul(eax, imm(code[ip+3]));
ip += 4;
break;
case MUL|APS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.imul(eax, ecx);
ip += 4;
break;
case MUL|AVR:
a.mov(eax, imm(code[ip+2]));
a.imul(eax, dword_ptr(edi, code[ip+3]*4));
ip += 4;
break;
case MUL|AVP:
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.imul(eax, dword_ptr(ecx));
ip += 4;
break;
case MUL|AVV:
a.mov(eax, imm(code[ip+2]));
a.imul(eax, imm(code[ip+3]));
ip += 4;
break;
case MUL|AVS:
a.mov(eax, imm(code[ip+2]));
a.imul(eax, ecx);
ip += 4;
break;
case MUL|ASR:
a.imul(eax, dword_ptr(edi, code[ip+3]*4));
ip += 4;
break;
case MUL|ASP:
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.imul(eax, dword_ptr(ecx));
ip += 4;
break;
case MUL|ASV:
a.imul(eax, imm(code[ip+3]));
ip += 4;
break;
case MUL|ASS:
a.imul(eax, ecx);
ip += 4;
break;
case MUL|BRR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.imul(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, eax);
ip += 4;
break;
case MUL|BRP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.imul(eax, dword_ptr(ecx));
a.mov(ecx, eax);
ip += 4;
break;
case MUL|BRV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.imul(eax, imm(code[ip+3]));
a.mov(ecx, eax);
ip += 4;
break;
case MUL|BRS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.imul(eax, ecx);
a.mov(ecx, eax);
ip += 4;
break;
case MUL|BPR:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.imul(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, eax);
ip += 4;
break;
case MUL|BPP:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.imul(eax, dword_ptr(ecx));
a.mov(ecx, eax);
ip += 4;
break;
case MUL|BPV:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.imul(eax, imm(code[ip+3]));
a.mov(ecx, eax);
ip += 4;
break;
case MUL|BPS:
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.imul(eax, ecx);
a.mov(ecx, eax);
ip += 4;
break;
case MUL|BVR:
a.mov(eax, imm(code[ip+2]));
a.imul(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, eax);
ip += 4;
break;
case MUL|BVP:
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.imul(eax, dword_ptr(ecx));
a.mov(ecx, eax);
ip += 4;
break;
case MUL|BVV:
a.mov(eax, imm(code[ip+2]));
a.imul(eax, imm(code[ip+3]));
a.mov(ecx, eax);
ip += 4;
break;
case MUL|BVS:
a.mov(eax, imm(code[ip+2]));
a.imul(eax, ecx);
a.mov(ecx, eax);
ip += 4;
break;
case MUL|BSR:
a.imul(eax, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, eax);
ip += 4;
break;
case MUL|BSP:
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.imul(eax, dword_ptr(ecx));
a.mov(ecx, eax);
ip += 4;
break;
case MUL|BSV:
a.imul(eax, imm(code[ip+3]));
a.mov(ecx, eax);
ip += 4;
break;
case MUL|BSS:
a.imul(eax, ecx);
a.mov(ecx, eax);
ip += 4;
break;
case DIV|RRR:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.idiv(ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case DIV|RRP:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, dword_ptr(ecx));
a.idiv(ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case DIV|RRV:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, imm(code[ip+3]));
a.idiv(ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case DIV|RRS:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.idiv(ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case DIV|RPR:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.idiv(ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case DIV|RPP:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, dword_ptr(ecx));
a.idiv(ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case DIV|RPV:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, imm(code[ip+3]));
a.idiv(ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case DIV|RPS:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.idiv(ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case DIV|RVR:
a.xor_(edx,edx);
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.idiv(ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case DIV|RVP:
a.xor_(edx,edx);
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, dword_ptr(ecx));
a.idiv(ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case DIV|RVV:
a.xor_(edx,edx);
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, imm(code[ip+3]));
a.idiv(ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case DIV|RVS:
a.xor_(edx,edx);
a.mov(eax, imm(code[ip+2]));
a.idiv(ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case DIV|RSR:
a.xor_(edx,edx);
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.idiv(ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case DIV|RSP:
a.xor_(edx,edx);
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, dword_ptr(ecx));
a.idiv(ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case DIV|RSV:
a.xor_(edx,edx);
a.mov(ecx, imm(code[ip+3]));
a.idiv(ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case DIV|RSS:
a.xor_(edx,edx);
a.idiv(ecx);
a.mov(dword_ptr(edi, code[ip+1]*4), eax);
ip += 4;
break;
case DIV|PRR:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.idiv(ecx);
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case DIV|PRP:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, dword_ptr(ecx));
a.idiv(ecx);
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case DIV|PRV:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, imm(code[ip+3]));
a.idiv(ecx);
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case DIV|PRS:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.idiv(ecx);
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case DIV|PPR:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.idiv(ecx);
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case DIV|PPP:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, dword_ptr(ecx));
a.idiv(ecx);
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case DIV|PPV:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, imm(code[ip+3]));
a.idiv(ecx);
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case DIV|PPS:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.idiv(ecx);
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case DIV|PVR:
a.xor_(edx,edx);
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.idiv(ecx);
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case DIV|PVP:
a.xor_(edx,edx);
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, dword_ptr(ecx));
a.idiv(ecx);
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case DIV|PVV:
a.xor_(edx,edx);
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, imm(code[ip+3]));
a.idiv(ecx);
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case DIV|PVS:
a.xor_(edx,edx);
a.mov(eax, imm(code[ip+2]));
a.idiv(ecx);
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case DIV|PSR:
a.xor_(edx,edx);
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.idiv(ecx);
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case DIV|PSP:
a.xor_(edx,edx);
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, dword_ptr(ecx));
a.idiv(ecx);
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case DIV|PSV:
a.xor_(edx,edx);
a.mov(ecx, imm(code[ip+3]));
a.idiv(ecx);
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case DIV|PSS:
a.xor_(edx,edx);
a.idiv(ecx);
a.mov(edx, dword_ptr(edi, code[ip+1]*4));
a.mov(dword_ptr(edx), eax);
ip += 4;
break;
case DIV|ARR:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.idiv(ecx);
ip += 4;
break;
case DIV|ARP:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, dword_ptr(ecx));
a.idiv(ecx);
ip += 4;
break;
case DIV|ARV:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, imm(code[ip+3]));
a.idiv(ecx);
ip += 4;
break;
case DIV|ARS:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.idiv(ecx);
ip += 4;
break;
case DIV|APR:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.idiv(ecx);
ip += 4;
break;
case DIV|APP:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, dword_ptr(ecx));
a.idiv(ecx);
ip += 4;
break;
case DIV|APV:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, imm(code[ip+3]));
a.idiv(ecx);
ip += 4;
break;
case DIV|APS:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.idiv(ecx);
ip += 4;
break;
case DIV|AVR:
a.xor_(edx,edx);
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.idiv(ecx);
ip += 4;
break;
case DIV|AVP:
a.xor_(edx,edx);
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, dword_ptr(ecx));
a.idiv(ecx);
ip += 4;
break;
case DIV|AVV:
a.xor_(edx,edx);
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, imm(code[ip+3]));
a.idiv(ecx);
ip += 4;
break;
case DIV|AVS:
a.xor_(edx,edx);
a.mov(eax, imm(code[ip+2]));
a.idiv(ecx);
ip += 4;
break;
case DIV|ASR:
a.xor_(edx,edx);
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.idiv(ecx);
ip += 4;
break;
case DIV|ASP:
a.xor_(edx,edx);
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, dword_ptr(ecx));
a.idiv(ecx);
ip += 4;
break;
case DIV|ASV:
a.xor_(edx,edx);
a.mov(ecx, imm(code[ip+3]));
a.idiv(ecx);
ip += 4;
break;
case DIV|ASS:
a.xor_(edx,edx);
a.idiv(ecx);
ip += 4;
break;
case DIV|BRR:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.idiv(ecx);
a.mov(ecx, eax);
ip += 4;
break;
case DIV|BRP:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, dword_ptr(ecx));
a.idiv(ecx);
a.mov(ecx, eax);
ip += 4;
break;
case DIV|BRV:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(ecx, imm(code[ip+3]));
a.idiv(ecx);
a.mov(ecx, eax);
ip += 4;
break;
case DIV|BRS:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.idiv(ecx);
a.mov(ecx, eax);
ip += 4;
break;
case DIV|BPR:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.idiv(ecx);
a.mov(ecx, eax);
ip += 4;
break;
case DIV|BPP:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, dword_ptr(ecx));
a.idiv(ecx);
a.mov(ecx, eax);
ip += 4;
break;
case DIV|BPV:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.mov(ecx, imm(code[ip+3]));
a.idiv(ecx);
a.mov(ecx, eax);
ip += 4;
break;
case DIV|BPS:
a.xor_(edx,edx);
a.mov(eax, dword_ptr(edi, code[ip+2]*4));
a.mov(eax, dword_ptr(eax));
a.idiv(ecx);
a.mov(ecx, eax);
ip += 4;
break;
case DIV|BVR:
a.xor_(edx,edx);
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.idiv(ecx);
a.mov(ecx, eax);
ip += 4;
break;
case DIV|BVP:
a.xor_(edx,edx);
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, dword_ptr(edi, code[ip+3]*4));
a.mov(ecx, dword_ptr(ecx));
a.idiv(ecx);
a.mov(ecx, eax);
ip += 4;
break;
case DIV|BVV:
a.xor_(edx,edx);
a.mov(eax, imm(code[ip+2]));
a.mov(ecx, imm(code[ip+3]));
a.idiv(ecx);
a.mov(ecx, eax);
ip += 4;
break;