exp00240 conversion 0.2 sample

I think 0.2 is superior than 0.1.

Summarize the reasons.

What I need = convert jump opecodes to equivalent "if" or "while" clause. It helps me to know program's work flow easily. It is very important to shorten codes conversion costs.

What I need not = convert primitive opecodes such as convert from "mov  si,[bp+06]" to "si = pp06". I prefer to convert these codes in hand work.

After conversion:

void _0cee_241b()
{
	//^0CEE:241B  C8040000             enter 0004,00
	//^0CEE:241F  837E06FF             cmp  word [bp+06],FFFF          if word [bp+06] != FFFF
	//^0CEE:2423  7503                 jne  00002428 ($+3)             then JMP _2428
	if (true) //^0CEE:2425  E9CD00               jmp  000024F5 ($+cd)            else JMP _24f5
	_2428:
	//^0CEE:2428  837E0680             cmp  word [bp+06],FF80          if word [bp+06] >= FF80
	//^0CEE:242C  7310                 jnc  0000243E ($+10)            then JMP _243e
	if (true) {
		//^0CEE:242E  FF7606               push word [bp+06]
		//^0CEE:2431  0E                   push cs
		//^0CEE:2432  E8A6E5               call 000009DB ($-1a5a)          call 0CEE:09DB
		//^0CEE:2435  59                   pop  cx
		//^0CEE:2436  8946FC               mov  [bp-04],ax
		//^0CEE:2439  8956FE               mov  [bp-02],dx
		//^0CEE:243C  EB08                 jmp  short 00002446 ($+8)       JMP _2446
	}
	_243e:
	//^0CEE:243E  8A4606               mov  al,[bp+06]
	//^0CEE:2441  2C80                 sub  al,80
	//^0CEE:2443  E9B100               jmp  000024F7 ($+b1)            JMP _24f7
	if (true) {
		_2446:
		//^0CEE:2446  8B5E06               mov  bx,[bp+06]
		//^0CEE:2449  81E3003C             and  bx,3C00
		//^0CEE:244D  C1EB0A               shr  bx,0A
		//^0CEE:2450  4B                   dec  bx
		//^0CEE:2451  4B                   dec  bx
		//^0CEE:2452  83FB0D               cmp  bx,000D                    if BX <= 000D
		//^0CEE:2455  7603                 jbe  0000245A ($+3)             then JMP _245a
		if (true) //^0CEE:2457  E99B00               jmp  000024F5 ($+9b)            else JMP _24f5
		_245a:
		//^0CEE:245A  D1E3                 shl  bx,1
		//^0CEE:245C  2EFFA7F924           jmp  near word cs:[bx+24F9]     JMP _ffffffff
		_24f5:
		//^0CEE:24F5  B0FF                 mov  al,FF
	}
	_24f7:
	//^0CEE:24F7  C9                   leave
	//^0CEE:24F8  CB                   retf
}

Before conversion:

0CEE:241B  C8040000             enter 0004,00
0CEE:241F  837E06FF             cmp  word [bp+06],FFFF
0CEE:2423  7503                 jne  00002428 ($+3)
0CEE:2425  E9CD00               jmp  000024F5 ($+cd)
0CEE:2428  837E0680             cmp  word [bp+06],FF80
0CEE:242C  7310                 jnc  0000243E ($+10)
0CEE:242E  FF7606               push word [bp+06]
0CEE:2431  0E                   push cs
0CEE:2432  E8A6E5               call 000009DB ($-1a5a)
0CEE:2435  59                   pop  cx
0CEE:2436  8946FC               mov  [bp-04],ax
0CEE:2439  8956FE               mov  [bp-02],dx
0CEE:243C  EB08                 jmp  short 00002446 ($+8)
0CEE:243E  8A4606               mov  al,[bp+06]
0CEE:2441  2C80                 sub  al,80
0CEE:2443  E9B100               jmp  000024F7 ($+b1)
0CEE:2446  8B5E06               mov  bx,[bp+06]
0CEE:2449  81E3003C             and  bx,3C00
0CEE:244D  C1EB0A               shr  bx,0A
0CEE:2450  4B                   dec  bx
0CEE:2451  4B                   dec  bx
0CEE:2452  83FB0D               cmp  bx,000D
0CEE:2455  7603                 jbe  0000245A ($+3)
0CEE:2457  E99B00               jmp  000024F5 ($+9b)
0CEE:245A  D1E3                 shl  bx,1
0CEE:245C  2EFFA7F924           jmp  near word cs:[bx+24F9]
0CEE:24F5  B0FF                 mov  al,FF
0CEE:24F7  C9                   leave
0CEE:24F8  CB                   retf