Hi habran!
If you are working in 64 bit, I think there is no gain in solve the 32 bit issue, just the challenge (perhaps some future boring time).
In the example code I see some opcodes I don't see in hll.c HJWAsm source (AAM). Apparenty there is some kind of displacement ¿in .endswitch? and perhaps directions became opcodes.
00401060 57 PUSH EDI
00401061 8BF0 MOV ESI,EAX
00401063 BB 05000000 MOV EBX,5
00401068 33C9 XOR ECX,ECX
0040106A 8D3D BC104000 LEA EDI,DWORD PTR DS:[4010BC]
00401070 85DB TEST EBX,EBX
00401072 ^78 E3 JS SHORT hab1c.00401057
00401074 8D040B LEA EAX,DWORD PTR DS:[EBX+ECX]
00401077 99 CDQ
00401078 2BC2 SUB EAX,EDX
0040107A D1F8 SAR EAX,1
0040107C 393487 CMP DWORD PTR DS:[EDI+EAX*4],ESI
0040107F 74 07 JE SHORT hab1c.00401088
00401081 7D 11 JGE SHORT hab1c.00401094
00401083 8D48 01 LEA ECX,DWORD PTR DS:[EAX+1]
00401086 EB 0F JMP SHORT hab1c.00401097
00401088 8D15 A0104000 LEA EDX,DWORD PTR DS:[4010A0]
0040108E 5F POP EDI
0040108F 5E POP ESI
00401090 5B POP EBX
00401091 FF2482 JMP DWORD PTR DS:[EDX+EAX*4]
00401094 8D58 FF LEA EBX,DWORD PTR DS:[EAX-1]
00401097 3BCB CMP ECX,EBX
00401099 ^7E D9 JLE SHORT hab1c.00401074
0040109B 5F POP EDI
0040109C 5E POP ESI
0040109D 5B POP EBX
0040109E ^EB B7 JMP SHORT hab1c.00401057 <<< last correct line
004010A0 D4 10 AAM 10
004010A2 40 INC EAX
004010A3 00D4 ADD AH,DL
004010A5 1040 00 ADC BYTE PTR DS:[EAX],AL
004010A8 D4 10 AAM 10
004010AA 40 INC EAX
004010AB 00D4 ADD AH,DL
004010AD 1040 00 ADC BYTE PTR DS:[EAX],AL
004010B0 D4 10 AAM 10
004010B2 40 INC EAX
004010B3 00D4 ADD AH,DL
004010B5 1040 00 ADC BYTE PTR DS:[EAX],AL
004010B8 57 PUSH EDI
004010B9 1040 00 ADC BYTE PTR DS:[EAX],AL
004010BC 17 POP SS ; Modification of segment register
004010BD FB STI
004010BE F3: PREFIX REP: ; Superfluous prefix
004010BF FF21 JMP DWORD PTR DS:[ECX]
004010C1 FB STI
004010C2 F3: PREFIX REP: ; Superfluous prefix
004010C3 FF35 FBF3FF53 PUSH DWORD PTR DS:[53FFF3FB]
004010C9 FB STI
004010CA F3: PREFIX REP: ; Superfluous prefix
004010CB FF5D FB CALL FAR FWORD PTR SS:[EBP-5] ; Far call
004010CE F3: PREFIX REP: ; Superfluous prefix
004010CF FF87 26F4FFCC INC DWORD PTR DS:[EDI+CCFFF426]
<<<< Here I put INT 3 ¿where is my line?
Added to previous instruccion
004010D5 50 PUSH EAX
004010D6 58 POP EAX
004010D7 CC INT3