This conversion is designed to help human hand work's conversion. Although I have completed the converter 0.1, I knew that the output is too meaningless to reuse.
But I got a new hint at last. It may generate half conversion codes for useful conversion work.
Here is sample of conversion 0.1.
After conversion:
void _0cee_25e5()
{
//push bp
bp = sp;
//push si
si = pp06;
//^0CEE:25EC
if (si != 0xFFFF) goto _25f5;
//xor ax,ax
goto _2611;
_25f5:
al = pp08;
//push ax
//push 000B
//push si
//push cs
_0cee_241b();
//pop cx
//push ax
//push si
//push cs
_0cee_23de();
//pop cx
//push ax
_3e74_189b();
sp += 0x0008;
//pop si
//pop bp
}
Before conversion:
0CEE:25E5 55 push bp 0CEE:25E6 8BEC mov bp,sp 0CEE:25E8 56 push si 0CEE:25E9 8B7606 mov si,[bp+06] 0CEE:25EC 83FEFF cmp si,FFFF 0CEE:25EF 7504 jne 000025F5 ($+4) 0CEE:25F1 33C0 xor ax,ax 0CEE:25F3 EB1C jmp short 00002611 ($+1c) 0CEE:25F5 8A4608 mov al,[bp+08] 0CEE:25F8 50 push ax 0CEE:25F9 6A0B push 000B 0CEE:25FB 56 push si 0CEE:25FC 0E push cs 0CEE:25FD E81BFE call 0000241B ($-1e5) 0CEE:2600 59 pop cx 0CEE:2601 50 push ax 0CEE:2602 56 push si 0CEE:2603 0E push cs 0CEE:2604 E8D7FD call 000023DE ($-229) 0CEE:2607 59 pop cx 0CEE:2608 50 push ax 0CEE:2609 9A9B18743E call 3E74:189B 0CEE:260E 83C408 add sp,0008 0CEE:2611 5E pop si 0CEE:2612 5D pop bp 0CEE:2613 CB retf