.DATA EXTRN _AllocExch FWORD EXTRN _DeAllocExch FWORD EXTRN _GetTSSExch FWORD EXTRN _SetPriority FWORD EXTRN _NewTask FWORD EXTRN _SpawnTask FWORD EXTRN _SendMsg FWORD EXTRN _ISendMsg FWORD EXTRN _WaitMsg FWORD EXTRN _CheckMsg FWORD EXTRN _Request FWORD EXTRN _MoveRequest FWORD EXTRN _Respond FWORD EXTRN _AllocPage FWORD EXTRN _AllocOSPage FWORD EXTRN _AllocDMAPage FWORD EXTRN _DeAllocPage FWORD EXTRN _QueryPages FWORD EXTRN _GetPhyAdd FWORD EXTRN _AliasMem FWORD EXTRN _DeAliasMem FWORD EXTRN _CopyData FWORD EXTRN _FillData FWORD EXTRN _CompareNCS FWORD EXTRN _Compare FWORD EXTRN _OutByte FWORD EXTRN _OutWord FWORD EXTRN _InByte FWORD EXTRN _InWord FWORD EXTRN _ReadCMOS FWORD EXTRN _Alarm FWORD EXTRN _KillAlarm FWORD EXTRN _Sleep FWORD EXTRN _MicroDelay FWORD EXTRN _GetCMOSTime FWORD EXTRN _GetCMOSDate FWORD EXTRN _GetTimerTick FWORD EXTRN _Tone FWORD EXTRN _Beep FWORD EXTRN _SetVidOwner FWORD EXTRN _SetNormVid FWORD EXTRN _GetNormVid FWORD EXTRN _ClrScr FWORD EXTRN _GetVidChar FWORD EXTRN _SetXY FWORD EXTRN _PutVidAttrs FWORD EXTRN _PutVidChars FWORD EXTRN _GetVidOwner FWORD EXTRN _GetXY FWORD EXTRN _ScrollVid FWORD EXTRN _TTYOut FWORD EXTRN _EditLine FWORD EXTRN _ReadKbd FWORD EXTRN _GetpJCB FWORD EXTRN _GetJobNum FWORD EXTRN _LoadNewJob FWORD EXTRN _Chain FWORD EXTRN _ExitJob FWORD EXTRN _KillJob FWORD EXTRN _SetUserName FWORD EXTRN _GetUserName FWORD EXTRN _SetCmdLine FWORD EXTRN _GetCmdLine FWORD EXTRN _SetPath FWORD EXTRN _GetPath FWORD EXTRN _SetExitJob FWORD EXTRN _GetExitJob FWORD EXTRN _SetSysIn FWORD EXTRN _GetSysIn FWORD EXTRN _SetSysOut FWORD EXTRN _GetSysOut FWORD EXTRN _SetJobName FWORD EXTRN _RegisterSvc FWORD EXTRN _UnRegisterSvc FWORD EXTRN _GetSystemDisk FWORD EXTRN _CreateFile FWORD EXTRN _CreateDir FWORD EXTRN _DeleteDir FWORD EXTRN _OpenFile FWORD EXTRN _RenameFile FWORD EXTRN _GetFileSize FWORD EXTRN _SetFileSize FWORD EXTRN _ReadBlock FWORD EXTRN _WriteBlock FWORD EXTRN _ReadBytes FWORD EXTRN _WriteBytes FWORD EXTRN _GetFileLFA FWORD EXTRN _SetFileLFA FWORD EXTRN _CloseFile FWORD EXTRN _DeleteFile FWORD EXTRN _GetDirSector FWORD PUBLIC _cbCmd DD 0 L_lit DB 69,114,114,111,114,32,37,48,53,100,32,111,99,99,117,114 DB 101,100,32,111,110,32,79,112,101,110,70,105,108,101,0,69 DB 114,114,111,114,32,37,48,53,100,32,111,99,99,117,114,101 DB 100,32,111,110,32,82,101,97,100,66,121,116,101,115,0,69 DB 114,114,111,114,32,37,48,53,100,32,111,99,99,117,114,101 DB 100,32,111,110,32,87,114,105,116,101,66,121,116,101,115,0 DB 69,114,114,111,114,32,37,48,53,100,32,111,99,99,117,114 DB 101,100,32,111,110,32,67,114,101,97,116,101,70,105,108,101 DB 0,69,114,114,111,114,32,37,48,53,100,32,111,99,99,117 DB 114,101,100,32,111,110,32,83,101,116,70,105,108,101,83,105 DB 122,101,0,69,114,114,111,114,32,37,48,53,100,32,111,99 DB 99,117,114,101,100,32,111,110,32,83,101,116,70,105,108,101 DB 76,70,65,0,69,114,114,111,114,32,37,48,53,100,32,111 DB 99,99,117,114,101,100,32,111,110,32,82,101,97,100,75,98 DB 100,0,69,114,114,111,114,32,37,48,53,100,32,111,99,99 DB 117,114,101,100,32,111,110,32,108,97,115,116,32,99,111,109 DB 109,97,110,100,0,84,104,105,115,32,102,105,108,101,32,104 DB 97,115,32,98,101,101,110,32,109,111,100,105,102,105,101,100 DB 46,32,83,65,86,69,32,73,84,63,32,40,89,47,78,41 DB 0,68,79,78,69,46,46,46,32,32,32,0,70,105,108,101 DB 110,97,109,101,58,32,0,70,105,108,101,32,105,115,32,116 DB 111,111,32,108,97,114,103,101,32,116,111,32,101,100,105,116 DB 46,0,68,111,101,115,110,39,116,32,101,120,105,115,116,46 DB 32,67,114,101,97,116,101,63,63,32,40,89,47,78,41,0 DB 67,58,32,37,48,50,100,32,32,76,58,32,37,48,53,100 DB 32,32,110,67,104,97,114,115,58,32,37,48,53,100,0,79 DB 86,82,0,73,78,83,0,69,100,105,116,111,114,0 PUBLIC _EdRec DB 178 DUP(0) PUBLIC _pEdit DD 0h PUBLIC _pBuf1 DD 0h PUBLIC _pBuf2 DD 0h PUBLIC _b DB 0h PUBLIC _b1 DB 0h PUBLIC _erc DD 0h PUBLIC _fh DD 0h PUBLIC _fModified DB 0h PUBLIC _fOvertype DB 0h PUBLIC _aStat DB 80 DUP(0) PUBLIC _aStat1 DB 80 DUP(0) PUBLIC _aCmd DB 80 DUP(0) PUBLIC _apParam DD 13 DUP(0) PUBLIC _acbParam DD 13 DUP(0) PUBLIC _Filename DB 60 DUP(0) PUBLIC _cbFilename DD 0h PUBLIC _filler DB 100 DUP(0) .CODE EXTRN _fopen: NEAR EXTRN _fclose: NEAR EXTRN _remove: NEAR EXTRN _rename: NEAR EXTRN _fgetc: NEAR EXTRN _fgets: NEAR EXTRN _fputs: NEAR EXTRN _fputc: NEAR EXTRN _printf: NEAR EXTRN _sprintf: NEAR EXTRN _fprintf: NEAR EXTRN _ftell: NEAR EXTRN _rewind: NEAR EXTRN _fseek: NEAR EXTRN _fread: NEAR EXTRN _fwrite: NEAR EXTRN _strcpy: NEAR EXTRN _strncpy: NEAR EXTRN _strcat: NEAR EXTRN _strncat: NEAR EXTRN _strcmp: NEAR EXTRN _strncmp: NEAR EXTRN _strlen: NEAR EXTRN _strchr: NEAR EXTRN _iscntrl: NEAR EXTRN _isspace: NEAR EXTRN _isdigit: NEAR EXTRN _isupper: NEAR EXTRN _islower: NEAR EXTRN _ispunct: NEAR EXTRN _isalpha: NEAR EXTRN _isxdigit: NEAR EXTRN _isalnum: NEAR EXTRN _isgraph: NEAR EXTRN _toupper: NEAR EXTRN _tolower: NEAR PUBLIC _CheckErc: PUSH EBP MOV EBP,ESP SUB ESP,44 MOV EAX,DWORD PTR [EBP+8] AND EAX,EAX JZ L_1 LEA EAX,DWORD PTR [EBP-40] PUSH EAX PUSH 40 XOR EAX,EAX PUSH EAX CALL FWORD PTR _FillData CALL FWORD PTR _Beep MOV EAX,DWORD PTR [EBP+12] JMP L_3 L_4: LEA EAX,DWORD PTR [EBP-40] PUSH EAX PUSH OFFSET L_lit+0 PUSH DWORD PTR [EBP+8] MOV EDI, 4 CALL _sprintf ADD ESP,12 JMP L_2 L_5: LEA EAX,DWORD PTR [EBP-40] PUSH EAX PUSH OFFSET L_lit+31 PUSH DWORD PTR [EBP+8] MOV EDI, 4 CALL _sprintf ADD ESP,12 JMP L_2 L_6: LEA EAX,DWORD PTR [EBP-40] PUSH EAX PUSH OFFSET L_lit+63 PUSH DWORD PTR [EBP+8] MOV EDI, 4 CALL _sprintf ADD ESP,12 JMP L_2 L_7: LEA EAX,DWORD PTR [EBP-40] PUSH EAX PUSH OFFSET L_lit+96 PUSH DWORD PTR [EBP+8] MOV EDI, 4 CALL _sprintf ADD ESP,12 JMP L_2 L_8: LEA EAX,DWORD PTR [EBP-40] PUSH EAX PUSH OFFSET L_lit+129 PUSH DWORD PTR [EBP+8] MOV EDI, 4 CALL _sprintf ADD ESP,12 JMP L_2 L_9: LEA EAX,DWORD PTR [EBP-40] PUSH EAX PUSH OFFSET L_lit+163 PUSH DWORD PTR [EBP+8] MOV EDI, 4 CALL _sprintf ADD ESP,12 JMP L_2 L_10: LEA EAX,DWORD PTR [EBP-40] PUSH EAX PUSH OFFSET L_lit+196 PUSH DWORD PTR [EBP+8] MOV EDI, 4 CALL _sprintf ADD ESP,12 JMP L_2 L_11: LEA EAX,DWORD PTR [EBP-40] PUSH EAX PUSH OFFSET L_lit+226 PUSH DWORD PTR [EBP+8] MOV EDI, 4 CALL _sprintf ADD ESP,12 JMP L_2 L_3: CMP EAX,7 JE L_10 CMP EAX,6 JE L_9 CMP EAX,5 JE L_8 CMP EAX,4 JE L_7 CMP EAX,3 JE L_6 CMP EAX,2 JE L_5 CMP EAX,1 JE L_4 JMP L_11 L_2: XOR EAX,EAX MOV DWORD PTR [EBP-44], EAX L_12: MOV EAX,DWORD PTR [EBP-44] CMP EAX,40 SETL AL AND AL,AL JZ L_13 JMP SHORT L_14 L_15: MOV EAX,DWORD PTR [EBP-44] INC DWORD PTR [EBP-44] JMP SHORT L_12 L_14: MOV EAX,DWORD PTR [EBP-44] LEA ESI,BYTE PTR [EBP-40] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JNZ L_16 MOV EAX,DWORD PTR [EBP-44] LEA ESI,BYTE PTR [EBP-40] ADD ESI,EAX MOV EAX,32 MOV BYTE PTR [ESI], AL L_16: JMP L_15 L_13: PUSH 40 PUSH 24 LEA EAX,DWORD PTR [EBP-40] PUSH EAX PUSH 39 PUSH 48 CALL FWORD PTR _PutVidChars L_1: MOV EAX,DWORD PTR [EBP+8] L_17: MOV ESP,EBP POP EBP RETN 8 PUBLIC _ClearStatus: PUSH EBP MOV EBP,ESP SUB ESP,80 LEA EAX,DWORD PTR [EBP-80] PUSH EAX PUSH 80 XOR EAX,EAX PUSH EAX CALL FWORD PTR _FillData XOR EAX,EAX PUSH EAX PUSH 24 LEA EAX,DWORD PTR [EBP-80] PUSH EAX PUSH 80 PUSH 7 CALL FWORD PTR _PutVidChars MOV ESP,EBP POP EBP RETN PUBLIC _SaveFile: PUSH EBP MOV EBP,ESP SUB ESP,16 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-16], EAX MOV EAX,_fh AND EAX,EAX JZ L_18 MOVSX EAX,_fModified L_18: AND EAX,EAX JZ L_19 MOV ESI,_pEdit XOR EAX,EAX MOV AL,BYTE PTR [ESI+137] AND EAX,EAX JZ L_20 XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX L_21: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [ESI+112] SETBE AL AND AL,AL JZ L_22 JMP SHORT L_23 L_24: MOV EAX,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] JMP SHORT L_21 L_23: MOV EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-16] ADD ESI,EAX XOR EAX,EAX MOV AL,BYTE PTR [ESI] CMP EAX,7 SETE AL AND AL,AL JZ L_25 MOV EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-16] ADD ESI,EAX MOV EAX,32 MOV BYTE PTR [ESI], AL L_25: JMP L_24 L_22: MOV ESI,_pEdit XOR EAX,EAX MOV BYTE PTR [ESI+137], AL L_20: MOV EAX,1 MOV DWORD PTR [EBP-12], EAX MOVSX EAX,WORD PTR [EBP+12] AND EAX,EAX JZ L_26 CALL _ClearStatus XOR EAX,EAX PUSH EAX PUSH 24 CALL FWORD PTR _SetXY PUSH OFFSET L_lit+261 PUSH 43 PUSH 48 CALL FWORD PTR _TTYOut LEA EAX,DWORD PTR [EBP-8] PUSH EAX PUSH 1 CALL FWORD PTR _ReadKbd MOV EAX,DWORD PTR [EBP-8] AND EAX,255 CMP EAX,78 SETE AL AND AL,AL JNZ L_27 MOV EAX,DWORD PTR [EBP-8] AND EAX,255 CMP EAX,110 SETE AL AND AL,AL L_27: JZ L_28 XOR EAX,EAX MOV DWORD PTR [EBP-12], EAX CALL _ClearStatus L_28: L_26: MOV EAX,DWORD PTR [EBP-12] AND EAX,EAX JZ L_29 PUSH 6 PUSH _fh XOR EAX,EAX PUSH EAX CALL FWORD PTR _SetFileLFA PUSH EAX CALL _CheckErc MOV _erc, EAX MOV EAX,_erc AND EAX,EAX JNZ L_30 PUSH 5 PUSH _fh MOV ESI,_pEdit PUSH DWORD PTR [ESI+166] CALL FWORD PTR _SetFileSize PUSH EAX CALL _CheckErc MOV _erc, EAX L_30: MOV EAX,_erc AND EAX,EAX JNZ L_31 PUSH 3 PUSH _fh PUSH _pBuf1 MOV ESI,_pEdit PUSH DWORD PTR [ESI+166] LEA EAX,DWORD PTR [EBP-4] PUSH EAX CALL FWORD PTR _WriteBytes PUSH EAX CALL _CheckErc MOV _erc, EAX L_31: XOR EAX,EAX MOV _fModified, AL CALL _ClearStatus XOR EAX,EAX PUSH EAX PUSH 24 PUSH OFFSET L_lit+305 PUSH 10 PUSH 48 CALL FWORD PTR _PutVidChars PUSH 150 CALL FWORD PTR _Sleep CALL _ClearStatus L_29: L_19: MOV EAX,_fh AND EAX,EAX JZ L_32 MOVSX EAX,WORD PTR [EBP+8] L_32: AND EAX,EAX JZ L_33 PUSH _fh CALL FWORD PTR _CloseFile XOR EAX,EAX MOV _fh, EAX XOR EAX,EAX MOV _cbFilename, EAX CALL _clearbuf L_33: MOV ESP,EBP POP EBP RETN 8 PUBLIC _OpenAFile: PUSH EBP MOV EBP,ESP SUB ESP,12 XOR EAX,EAX MOV _erc, EAX XOR EAX,EAX MOV _cbFilename, EAX MOV EAX,DWORD PTR [EBP+8] AND EAX,EAX JNZ L_34 XOR EAX,EAX PUSH EAX PUSH 24 CALL FWORD PTR _SetXY XOR EAX,EAX PUSH EAX PUSH 24 PUSH OFFSET L_lit+316 PUSH 10 PUSH 112 CALL FWORD PTR _PutVidChars PUSH 10 PUSH 24 CALL FWORD PTR _SetXY PUSH OFFSET _Filename XOR EAX,EAX PUSH EAX PUSH 60 PUSH OFFSET _cbFilename PUSH OFFSET _b1 PUSH 48 CALL FWORD PTR _EditLine XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX CALL FWORD PTR _SetXY JMP L_35 L_34: MOV EAX,13 MOV _b1, AL PUSH OFFSET _Filename PUSH DWORD PTR [EBP+8] PUSH 13 CALL _strncpy PUSH OFFSET _Filename CALL _strlen MOV _cbFilename, EAX L_35: XOR EAX,EAX MOV AL,_b1 CMP EAX,13 SETE AL AND AL,AL JZ L_36 MOV EAX,_cbFilename L_36: AND EAX,EAX JZ L_37 PUSH OFFSET _Filename PUSH _cbFilename PUSH 1 PUSH 1 PUSH OFFSET _fh CALL FWORD PTR _OpenFile MOV _erc, EAX MOV EAX,_erc AND EAX,EAX JNZ L_38 PUSH _fh LEA EAX,DWORD PTR [EBP-4] PUSH EAX CALL FWORD PTR _GetFileSize MOV EAX,DWORD PTR [EBP-4] CMP EAX,131000 SETB AL AND AL,AL JZ L_39 PUSH _fh PUSH _pBuf1 PUSH DWORD PTR [EBP-4] LEA EAX,DWORD PTR [EBP-8] PUSH EAX CALL FWORD PTR _ReadBytes MOV _erc, EAX MOV EAX,_erc CMP EAX,1 SETG AL AND AL,AL JZ L_40 PUSH 2 PUSH _erc CALL _CheckErc MOV _erc, EAX JMP L_41 L_40: XOR EAX,EAX MOV _erc, EAX L_41: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] MOV DWORD PTR [ESI+166], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] MOV ESI,_pBuf1 ADD ESI,EAX MOV EAX,15 MOV BYTE PTR [ESI], AL JMP L_42 L_39: PUSH _fh CALL FWORD PTR _CloseFile XOR EAX,EAX MOV _fh, EAX CALL FWORD PTR _Beep PUSH 50 PUSH 24 CALL FWORD PTR _SetXY PUSH OFFSET L_lit+327 PUSH 26 PUSH 48 CALL FWORD PTR _TTYOut LEA EAX,DWORD PTR [EBP-12] PUSH EAX PUSH 1 CALL FWORD PTR _ReadKbd L_42: JMP L_43 L_38: MOV EAX,_erc CMP EAX,203 SETE AL AND AL,AL JZ L_44 CALL FWORD PTR _Beep PUSH 50 PUSH 24 CALL FWORD PTR _SetXY PUSH OFFSET L_lit+354 PUSH 29 PUSH 48 CALL FWORD PTR _TTYOut LEA EAX,DWORD PTR [EBP-12] PUSH EAX PUSH 1 CALL FWORD PTR _ReadKbd MOV EAX,DWORD PTR [EBP-12] AND EAX,255 CMP EAX,89 SETE AL AND AL,AL JNZ L_45 MOV EAX,DWORD PTR [EBP-12] AND EAX,255 CMP EAX,121 SETE AL AND AL,AL L_45: JZ L_46 PUSH 4 PUSH OFFSET _Filename PUSH _cbFilename XOR EAX,EAX PUSH EAX CALL FWORD PTR _CreateFile PUSH EAX CALL _CheckErc MOV _erc, EAX MOV EAX,_erc AND EAX,EAX JNZ L_47 PUSH 1 PUSH OFFSET _Filename PUSH _cbFilename PUSH 1 PUSH 1 PUSH OFFSET _fh CALL FWORD PTR _OpenFile PUSH EAX CALL _CheckErc MOV _erc, EAX L_47: MOV EAX,_erc AND EAX,EAX JZ L_48 XOR EAX,EAX MOV _fh, EAX XOR EAX,EAX MOV _cbFilename, EAX L_48: JMP L_49 L_46: XOR EAX,EAX MOV _cbFilename, EAX CALL _ClearStatus L_49: JMP L_50 L_44: PUSH 1 PUSH _erc CALL _CheckErc L_50: L_43: L_37: MOV EAX,_erc AND EAX,EAX JNZ L_51 CALL _ClearStatus L_51: MOV ESP,EBP POP EBP RETN 4 PUBLIC _CountEols: PUSH EBP MOV EBP,ESP SUB ESP,12 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-12], EAX XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX XOR EAX,EAX MOV DWORD PTR [EBP-8], EAX L_52: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] CMP EAX,DWORD PTR [ESI+150] SETB AL AND AL,AL JZ L_53 MOV EAX,DWORD PTR [EBP-8] INC DWORD PTR [EBP-8] MOV ESI,DWORD PTR [EBP-12] ADD ESI,EAX XOR EAX,EAX MOV AL,BYTE PTR [ESI] CMP EAX,10 SETE AL AND AL,AL JZ L_54 MOV EAX,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] L_54: JMP L_52 L_53: MOV EAX,DWORD PTR [EBP-4] MOV ESP,EBP POP EBP RETN PUBLIC _findEol: PUSH EBP MOV EBP,ESP SUB ESP,12 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-12], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP+8] ADD EAX,DWORD PTR [ESI+132] SUB EAX,1 MOV DWORD PTR [EBP-8], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] CMP EAX,DWORD PTR [ESI+166] SETA AL AND AL,AL JZ L_56 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] MOV DWORD PTR [EBP-8], EAX L_56: MOV EAX,DWORD PTR [EBP+8] MOV DWORD PTR [EBP-4], EAX L_57: MOV EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-12] ADD ESI,EAX XOR EAX,EAX MOV AL,BYTE PTR [ESI] CMP EAX,10 SETNE AL AND AL,AL JZ L_59 MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [EBP-8] SETB AL AND AL,AL L_59: JZ L_58 MOV EAX,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] JMP L_57 L_58: MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [EBP-8] SETE AL AND AL,AL JZ L_60 MOV EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-12] ADD ESI,EAX XOR EAX,EAX MOV AL,BYTE PTR [ESI] CMP EAX,10 SETNE AL AND AL,AL L_60: JZ L_61 MOV EAX,DWORD PTR [EBP-8] MOV DWORD PTR [EBP-4], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] CMP EAX,DWORD PTR [ESI+166] SETB AL AND AL,AL JZ L_62 L_63: MOV EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-12] ADD ESI,EAX MOV EBX,ESI MOV ESI,_pEdit XOR EAX,EAX MOV AL,BYTE PTR [EBX] XOR ECX,ECX MOV CL,BYTE PTR [ESI+136] CMP EAX,ECX SETNE AL AND AL,AL JZ L_65 MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [EBP+8] SETA AL AND AL,AL L_65: JZ L_64 MOV EAX,DWORD PTR [EBP-4] DEC DWORD PTR [EBP-4] JMP L_63 L_64: MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [EBP+8] SETA AL AND AL,AL JZ L_66 MOV EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-12] ADD ESI,EAX MOV EBX,ESI MOV ESI,_pEdit XOR EAX,EAX MOV AL,BYTE PTR [EBX] XOR ECX,ECX MOV CL,BYTE PTR [ESI+136] CMP EAX,ECX SETE AL AND AL,AL JZ L_67 MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [EBP-8] SETE AL AND AL,AL L_67: L_66: JZ L_68 MOV EAX,DWORD PTR [EBP-4] SUB EAX,1 MOV ESI,DWORD PTR [EBP-12] ADD ESI,EAX MOV EBX,ESI MOV ESI,_pEdit XOR EAX,EAX MOV AL,BYTE PTR [EBX] XOR ECX,ECX MOV CL,BYTE PTR [ESI+136] CMP EAX,ECX SETE AL AND AL,AL JNZ L_69 MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [EBP-8] SETE AL AND AL,AL JZ L_70 MOV EAX,DWORD PTR [EBP-4] ADD EAX,1 MOV ESI,DWORD PTR [EBP-12] ADD ESI,EAX MOV EBX,ESI MOV ESI,_pEdit XOR EAX,EAX MOV AL,BYTE PTR [EBX] XOR ECX,ECX MOV CL,BYTE PTR [ESI+136] CMP EAX,ECX SETE AL AND AL,AL L_70: L_69: JZ L_71 L_72: MOV EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-12] ADD ESI,EAX MOV EBX,ESI MOV ESI,_pEdit XOR EAX,EAX MOV AL,BYTE PTR [EBX] XOR ECX,ECX MOV CL,BYTE PTR [ESI+136] CMP EAX,ECX SETE AL AND AL,AL JZ L_74 MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [EBP+8] SETA AL AND AL,AL L_74: JZ L_73 MOV EAX,DWORD PTR [EBP-4] DEC DWORD PTR [EBP-4] JMP L_72 L_73: L_75: MOV EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-12] ADD ESI,EAX MOV EBX,ESI MOV ESI,_pEdit XOR EAX,EAX MOV AL,BYTE PTR [EBX] XOR ECX,ECX MOV CL,BYTE PTR [ESI+136] CMP EAX,ECX SETNE AL AND AL,AL JZ L_77 MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [EBP+8] SETA AL AND AL,AL L_77: JZ L_76 MOV EAX,DWORD PTR [EBP-4] DEC DWORD PTR [EBP-4] JMP L_75 L_76: L_71: L_68: MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [EBP+8] SETE AL AND AL,AL JZ L_78 MOV EAX,DWORD PTR [EBP+8] MOV ESI,DWORD PTR [EBP-12] ADD ESI,EAX XOR EAX,EAX MOV AL,BYTE PTR [ESI] XOR ECX,ECX CMP EAX,ECX SETA AL AND AL,AL JZ L_79 MOV EAX,DWORD PTR [EBP-8] MOV ESI,DWORD PTR [EBP-12] ADD ESI,EAX XOR EAX,EAX MOV AL,BYTE PTR [ESI] XOR ECX,ECX CMP EAX,ECX SETA AL AND AL,AL L_79: L_78: JZ L_80 MOV EAX,DWORD PTR [EBP-8] MOV DWORD PTR [EBP-4], EAX L_80: L_62: L_61: MOV EAX,DWORD PTR [EBP-4] MOV ESP,EBP POP EBP RETN 4 PUBLIC _findPrevLine: PUSH EBP MOV EBP,ESP SUB ESP,12 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-12], EAX XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP+8] AND EAX,EAX JZ L_82 MOV EAX,DWORD PTR [EBP+8] SUB EAX,1 MOV DWORD PTR [EBP-4], EAX L_82: L_83: MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JZ L_85 MOV EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-12] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] CMP EAX,10 SETNE AL AND AL,AL L_85: JZ L_84 MOV EAX,DWORD PTR [EBP-4] DEC DWORD PTR [EBP-4] JMP L_83 L_84: MOV EAX,DWORD PTR [EBP-4] CMP EAX,0 SETA AL AND AL,AL JZ L_86 MOV EAX,DWORD PTR [EBP-4] DEC DWORD PTR [EBP-4] L_86: L_87: MOV EAX,DWORD PTR [EBP-4] CMP EAX,0 SETA AL AND AL,AL JZ L_89 MOV EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-12] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] CMP EAX,10 SETNE AL AND AL,AL L_89: JZ L_88 MOV EAX,DWORD PTR [EBP-4] DEC DWORD PTR [EBP-4] JMP L_87 L_88: MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JZ L_90 MOV EAX,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] L_90: L_91: MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [EBP-8], EAX PUSH DWORD PTR [EBP-8] CALL _findEol ADD EAX,1 MOV DWORD PTR [EBP-4], EAX L_92: MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [EBP+8] SETB AL AND AL,AL JNZ L_91 L_93: MOV EAX,DWORD PTR [EBP-8] MOV ESP,EBP POP EBP RETN 4 PUBLIC _doMark: PUSH EBP MOV EBP,ESP SUB ESP,16 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] CMP EAX,99999 SETB AL AND AL,AL JZ L_95 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+170] CMP EAX,DWORD PTR [ESI+174] SETBE AL AND AL,AL JZ L_96 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] MOV DWORD PTR [EBP-12], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+174] MOV DWORD PTR [EBP-16], EAX JMP L_97 L_96: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+174] MOV DWORD PTR [EBP-12], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] MOV DWORD PTR [EBP-16], EAX L_97: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP+8] SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [EBP-12] CMP EAX,DWORD PTR [ESI+8] SETAE AL AND AL,AL JZ L_98 MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP+8] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [EBP-12] CMP EAX,DWORD PTR [ESI+8] SETB AL AND AL,AL L_98: JNZ L_99 MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP+8] SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [EBP-16] CMP EAX,DWORD PTR [ESI+8] SETAE AL AND AL,AL JZ L_100 MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP+8] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [EBP-16] CMP EAX,DWORD PTR [ESI+8] SETB AL AND AL,AL L_100: JNZ L_101 MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP+8] SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [EBP-12] CMP EAX,DWORD PTR [ESI+8] SETB AL AND AL,AL JZ L_102 MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP+8] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [EBP-16] CMP EAX,DWORD PTR [ESI+8] SETAE AL AND AL,AL L_102: L_101: L_99: JZ L_103 MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP+8] SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [EBP-12] CMP EAX,DWORD PTR [ESI+8] SETAE AL AND AL,AL JZ L_104 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+116] ADD EAX,DWORD PTR [EBP-12] MOV EBX,EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP+8] SHL EAX,2 ADD ESI,EAX MOV EAX,EBX SUB EAX,DWORD PTR [ESI+8] MOV DWORD PTR [EBP-4], EAX JMP L_105 L_104: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+116] MOV DWORD PTR [EBP-4], EAX L_105: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP+8] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [EBP-16] CMP EAX,DWORD PTR [ESI+8] SETB AL AND AL,AL JZ L_106 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+116] ADD EAX,DWORD PTR [EBP-16] MOV EBX,EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP+8] SHL EAX,2 ADD ESI,EAX MOV EAX,EBX SUB EAX,DWORD PTR [ESI+8] MOV DWORD PTR [EBP-8], EAX JMP L_107 L_106: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP+8] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [EBX+116] ADD EAX,DWORD PTR [ESI+8] MOV EBX,EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP+8] SHL EAX,2 ADD ESI,EAX MOV EAX,EBX SUB EAX,DWORD PTR [ESI+8] SUB EAX,1 MOV DWORD PTR [EBP-8], EAX L_107: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [ESI+116] SETA AL AND AL,AL JZ L_108 MOV ESI,_pEdit PUSH DWORD PTR [ESI+116] PUSH DWORD PTR [EBP+8] MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] SUB EAX,DWORD PTR [ESI+116] PUSH EAX MOV ESI,_pEdit PUSH DWORD PTR [ESI+142] CALL FWORD PTR _PutVidAttrs L_108: PUSH DWORD PTR [EBP-4] PUSH DWORD PTR [EBP+8] MOV EAX,DWORD PTR [EBP-8] SUB EAX,DWORD PTR [EBP-4] ADD EAX,1 PUSH EAX MOV ESI,_pEdit PUSH DWORD PTR [ESI+138] CALL FWORD PTR _PutVidAttrs MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] CMP EAX,DWORD PTR [ESI+124] SETB AL AND AL,AL JZ L_109 MOV EAX,DWORD PTR [EBP-8] ADD EAX,1 PUSH EAX PUSH DWORD PTR [EBP+8] MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+124] SUB EAX,DWORD PTR [EBP-8] PUSH EAX MOV ESI,_pEdit PUSH DWORD PTR [ESI+142] CALL FWORD PTR _PutVidAttrs L_109: JMP L_110 L_103: MOV ESI,_pEdit PUSH DWORD PTR [ESI+116] PUSH DWORD PTR [EBP+8] MOV ESI,_pEdit PUSH DWORD PTR [ESI+132] MOV ESI,_pEdit PUSH DWORD PTR [ESI+142] CALL FWORD PTR _PutVidAttrs L_110: L_95: MOV ESP,EBP POP EBP RETN 4 PUBLIC _putInBuf: PUSH EBP MOV EBP,ESP SUB ESP,9 MOV EAX,1 MOV _fModified, AL MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-9], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+162] CMP EAX,DWORD PTR [ESI+112] SETB AL AND AL,AL JZ L_111 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+166] CMP EAX,DWORD PTR [ESI+112] SETB AL AND AL,AL JNZ L_112 MOVSX EAX,BYTE PTR [EBP+12] AND EAX,EAX JZ L_113 MOVSX EAX,BYTE PTR [EBP+8] AND EAX,EAX SETZ AL AND AL,AL L_113: L_112: L_111: JZ L_114 MOV EAX,1 MOV BYTE PTR [EBP-5], AL MOVSX EAX,BYTE PTR [EBP+12] AND EAX,EAX JZ L_115 MOVSX EAX,BYTE PTR [EBP+8] AND EAX,EAX SETZ AL AND AL,AL L_115: JZ L_116 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] MOV ESI,DWORD PTR [EBP-9] ADD ESI,EAX XOR EAX,EAX MOV AL,BYTE PTR [EBP+16] MOV BYTE PTR [ESI], AL MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+166] CMP EAX,DWORD PTR [ESI+162] SETE AL AND AL,AL JZ L_117 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] INC DWORD PTR [ESI+166] L_117: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] INC DWORD PTR [ESI+162] JMP L_118 L_116: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+166] SUB EAX,DWORD PTR [ESI+162] ADD EAX,1 MOV DWORD PTR [EBP-4], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] MOV ESI,DWORD PTR [EBP-9] ADD ESI,EAX PUSH ESI MOV ESI,_pEdit PUSH DWORD PTR [ESI+4] PUSH DWORD PTR [EBP-4] CALL FWORD PTR _CopyData MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] MOV ESI,DWORD PTR [EBP-9] ADD ESI,EAX XOR EAX,EAX MOV AL,BYTE PTR [EBP+16] MOV BYTE PTR [ESI], AL MOV ESI,_pEdit PUSH DWORD PTR [ESI+4] MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] ADD EAX,1 MOV ESI,DWORD PTR [EBP-9] ADD ESI,EAX PUSH ESI PUSH DWORD PTR [EBP-4] CALL FWORD PTR _CopyData MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] INC DWORD PTR [ESI+166] MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] INC DWORD PTR [ESI+162] MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] CMP EAX,99999 SETB AL AND AL,AL JZ L_119 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] SUB EAX,1 MOV EBX,EAX MOV ESI,_pEdit MOV EAX,EBX CMP EAX,DWORD PTR [ESI+170] SETB AL AND AL,AL JZ L_120 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] INC DWORD PTR [ESI+170] L_120: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] SUB EAX,1 MOV EBX,EAX MOV ESI,_pEdit MOV EAX,EBX CMP EAX,DWORD PTR [ESI+174] SETBE AL AND AL,AL JZ L_121 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+174] INC DWORD PTR [ESI+174] L_121: L_119: L_118: JMP L_122 L_114: XOR EAX,EAX MOV BYTE PTR [EBP-5], AL CALL FWORD PTR _Beep MOV EAX,40400 MOV _erc, EAX L_122: MOVSX EAX,BYTE PTR [EBP-5] MOV ESP,EBP POP EBP RETN 12 PUBLIC _moveData: PUSH EBP MOV EBP,ESP SUB ESP,20 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-16], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+4] MOV DWORD PTR [EBP-20], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] CMP EAX,99999 SETB AL AND AL,AL JZ L_124 MOV EAX,1 MOV _fModified, AL MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+170] CMP EAX,DWORD PTR [ESI+174] SETBE AL AND AL,AL JZ L_125 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] MOV DWORD PTR [EBP-8], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+174] MOV DWORD PTR [EBP-12], EAX JMP L_126 L_125: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] MOV DWORD PTR [EBP-12], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+174] MOV DWORD PTR [EBP-8], EAX L_126: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] CMP EAX,DWORD PTR [EBP-8] SETB AL AND AL,AL JNZ L_127 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] CMP EAX,DWORD PTR [EBP-12] SETA AL AND AL,AL L_127: JZ L_128 XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX L_129: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [ESI+166] SETBE AL AND AL,AL JZ L_130 JMP SHORT L_131 L_132: MOV EAX,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] JMP SHORT L_129 L_131: MOV EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-20] ADD ESI,EAX MOV EAX,DWORD PTR [EBP-4] MOV EBX,ESI MOV ESI,DWORD PTR [EBP-16] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL JMP L_132 L_130: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] CMP EAX,DWORD PTR [EBP-8] SETB AL AND AL,AL JZ L_133 XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX L_134: MOV EAX,DWORD PTR [EBP-12] SUB EAX,DWORD PTR [EBP-8] CMP EAX,DWORD PTR [EBP-4] SETAE AL AND AL,AL JZ L_135 JMP SHORT L_136 L_137: MOV EAX,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] JMP SHORT L_134 L_136: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] ADD EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-16] ADD ESI,EAX MOV EAX,DWORD PTR [EBP-8] ADD EAX,DWORD PTR [EBP-4] MOV EBX,ESI MOV ESI,DWORD PTR [EBP-20] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL JMP L_137 L_135: XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX L_138: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] SUB EAX,DWORD PTR [ESI+162] SUB EAX,1 CMP EAX,DWORD PTR [EBP-4] SETAE AL AND AL,AL JZ L_139 JMP SHORT L_140 L_141: MOV EAX,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] JMP SHORT L_138 L_140: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] ADD EAX,DWORD PTR [EBP-12] SUB EAX,DWORD PTR [EBP-8] ADD EAX,1 ADD EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-16] ADD ESI,EAX MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] ADD EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-20] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL JMP L_141 L_139: L_133: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] CMP EAX,DWORD PTR [EBP-12] SETA AL AND AL,AL JZ L_142 XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX L_143: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] SUB EAX,DWORD PTR [EBP-12] SUB EAX,1 JZ L_144 JMP SHORT L_145 L_146: MOV EAX,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] JMP SHORT L_143 L_145: MOV EAX,DWORD PTR [EBP-8] ADD EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-16] ADD ESI,EAX MOV EAX,DWORD PTR [EBP-12] ADD EAX,1 ADD EAX,DWORD PTR [EBP-4] MOV EBX,ESI MOV ESI,DWORD PTR [EBP-20] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL JMP L_146 L_144: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] SUB EAX,DWORD PTR [EBP-12] ADD EAX,DWORD PTR [EBP-8] SUB EAX,1 MOV DWORD PTR [EBX+162], EAX XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX L_147: MOV EAX,DWORD PTR [EBP-12] SUB EAX,DWORD PTR [EBP-8] CMP EAX,DWORD PTR [EBP-4] SETAE AL AND AL,AL JZ L_148 JMP SHORT L_149 L_150: MOV EAX,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] JMP SHORT L_147 L_149: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] ADD EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-16] ADD ESI,EAX MOV EAX,DWORD PTR [EBP-8] ADD EAX,DWORD PTR [EBP-4] MOV EBX,ESI MOV ESI,DWORD PTR [EBP-20] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL JMP L_150 L_148: L_142: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] ADD EAX,DWORD PTR [EBP-12] SUB EAX,DWORD PTR [EBP-8] MOV DWORD PTR [EBP-12], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] MOV DWORD PTR [EBP-8], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+174] CMP EAX,DWORD PTR [ESI+170] SETA AL AND AL,AL JZ L_151 MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-12] MOV DWORD PTR [ESI+174], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] MOV DWORD PTR [ESI+170], EAX JMP L_152 L_151: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-12] MOV DWORD PTR [ESI+170], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] MOV DWORD PTR [ESI+174], EAX L_152: L_128: JMP L_153 L_124: CALL FWORD PTR _Beep L_153: MOV ESP,EBP POP EBP RETN PUBLIC _CopyIt: PUSH EBP MOV EBP,ESP SUB ESP,16 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-12], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+4] MOV DWORD PTR [EBP-16], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] CMP EAX,99999 SETB AL AND AL,AL JZ L_154 MOV EAX,1 MOV _fModified, AL MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+170] CMP EAX,DWORD PTR [ESI+174] SETBE AL AND AL,AL JZ L_155 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] MOV DWORD PTR [EBP-4], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+174] MOV DWORD PTR [EBP-8], EAX JMP L_156 L_155: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] MOV DWORD PTR [EBP-8], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+174] MOV DWORD PTR [EBP-4], EAX L_156: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] ADD EAX,DWORD PTR [EBP-8] SUB EAX,DWORD PTR [EBP-4] ADD EAX,1 MOV EBX,EAX MOV ESI,_pEdit MOV EAX,EBX CMP EAX,DWORD PTR [ESI+112] SETB AL AND AL,AL JZ L_157 PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-16] MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] ADD EAX,1 PUSH EAX CALL FWORD PTR _CopyData MOV EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-16] ADD ESI,EAX PUSH ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] MOV ESI,DWORD PTR [EBP-12] ADD ESI,EAX PUSH ESI MOV EAX,DWORD PTR [EBP-8] SUB EAX,DWORD PTR [EBP-4] ADD EAX,1 PUSH EAX CALL FWORD PTR _CopyData MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+166] CMP EAX,DWORD PTR [ESI+162] SETAE AL AND AL,AL JZ L_158 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] MOV ESI,DWORD PTR [EBP-16] ADD ESI,EAX PUSH ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] ADD EAX,DWORD PTR [EBP-8] SUB EAX,DWORD PTR [EBP-4] ADD EAX,1 MOV ESI,DWORD PTR [EBP-12] ADD ESI,EAX PUSH ESI MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+166] SUB EAX,DWORD PTR [ESI+162] ADD EAX,1 PUSH EAX CALL FWORD PTR _CopyData L_158: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] ADD EAX,DWORD PTR [EBP-8] SUB EAX,DWORD PTR [EBP-4] MOV DWORD PTR [EBP-8], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] MOV DWORD PTR [EBP-4], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] ADD EAX,DWORD PTR [EBP-8] SUB EAX,DWORD PTR [EBP-4] ADD EAX,1 MOV DWORD PTR [EBX+162], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] ADD EAX,DWORD PTR [EBP-8] SUB EAX,DWORD PTR [EBP-4] ADD EAX,1 MOV DWORD PTR [EBX+166], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+174] CMP EAX,DWORD PTR [ESI+170] SETA AL AND AL,AL JZ L_159 MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] MOV DWORD PTR [ESI+174], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [ESI+170], EAX JMP L_160 L_159: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] MOV DWORD PTR [ESI+170], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [ESI+174], EAX L_160: L_157: JMP L_161 L_154: CALL FWORD PTR _Beep L_161: MOV ESP,EBP POP EBP RETN PUBLIC _normAttr: PUSH EBP MOV EBP,ESP SUB ESP,4 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+120] MOV DWORD PTR [EBP-4], EAX L_162: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [ESI+128] SETBE AL AND AL,AL JZ L_163 JMP SHORT L_164 L_165: MOV EAX,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] JMP SHORT L_162 L_164: MOV ESI,_pEdit PUSH DWORD PTR [ESI+116] PUSH DWORD PTR [EBP-4] MOV ESI,_pEdit PUSH DWORD PTR [ESI+132] MOV ESI,_pEdit PUSH DWORD PTR [ESI+142] CALL FWORD PTR _PutVidAttrs JMP L_165 L_163: MOV ESP,EBP POP EBP RETN PUBLIC _nullMarkBound: PUSH EBP MOV EBP,ESP MOV ESI,_pEdit MOV EAX,99999 MOV DWORD PTR [ESI+170], EAX MOV ESI,_pEdit MOV EAX,99999 MOV DWORD PTR [ESI+174], EAX CALL _normAttr POP EBP RETN PUBLIC _deleteData: PUSH EBP MOV EBP,ESP SUB ESP,21 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-17], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+4] MOV DWORD PTR [EBP-21], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] CMP EAX,99999 SETB AL AND AL,AL JZ L_166 MOV EAX,1 MOV _fModified, AL MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+170] CMP EAX,DWORD PTR [ESI+174] SETBE AL AND AL,AL JZ L_167 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] MOV DWORD PTR [EBP-8], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+174] MOV DWORD PTR [EBP-12], EAX JMP L_168 L_167: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] MOV DWORD PTR [EBP-12], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+174] MOV DWORD PTR [EBP-8], EAX L_168: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+150] CMP EAX,DWORD PTR [EBP-8] SETAE AL AND AL,AL JZ L_169 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+150] CMP EAX,DWORD PTR [EBP-12] SETBE AL AND AL,AL L_169: JZ L_170 MOV EAX,1 MOV BYTE PTR [EBP-13], AL JMP L_171 L_170: XOR EAX,EAX MOV BYTE PTR [EBP-13], AL L_171: MOV EAX,DWORD PTR [EBP-12] ADD EAX,1 MOV ESI,DWORD PTR [EBP-17] ADD ESI,EAX PUSH ESI MOV EAX,DWORD PTR [EBP-8] MOV ESI,DWORD PTR [EBP-17] ADD ESI,EAX PUSH ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] SUB EAX,DWORD PTR [EBP-12] PUSH EAX CALL FWORD PTR _CopyData MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] SUB EAX,DWORD PTR [EBP-12] ADD EAX,DWORD PTR [EBP-8] SUB EAX,1 MOV DWORD PTR [EBX+166], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] CMP EAX,DWORD PTR [EBP-12] SETA AL AND AL,AL JZ L_172 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] SUB EAX,DWORD PTR [EBP-12] ADD EAX,DWORD PTR [EBP-8] MOV DWORD PTR [EBX+162], EAX JMP L_173 L_172: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] CMP EAX,DWORD PTR [EBP-8] SETA AL AND AL,AL JZ L_174 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] CMP EAX,DWORD PTR [EBP-12] SETBE AL AND AL,AL L_174: JZ L_175 MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] MOV DWORD PTR [ESI+162], EAX L_175: L_173: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+162] CMP EAX,DWORD PTR [ESI+166] SETA AL AND AL,AL JZ L_176 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] MOV DWORD PTR [EBX+162], EAX L_176: MOVSX EAX,BYTE PTR [EBP-13] AND EAX,EAX JZ L_177 MOV ESI,_pEdit PUSH DWORD PTR [ESI+162] CALL _findPrevLine MOV DWORD PTR [EBP-4], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [ESI+150], EAX L_177: CALL _nullMarkBound L_166: MOV ESP,EBP POP EBP RETN PUBLIC _findCursor: PUSH EBP MOV EBP,ESP SUB ESP,8 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+120] MOV DWORD PTR [EBP-4], EAX L_178: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [ESI+128] SETBE AL AND AL,AL JZ L_180 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [EBX+162] CMP EAX,DWORD PTR [ESI+8] SETAE AL AND AL,AL L_180: JZ L_179 MOV EAX,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] JMP L_178 L_179: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] SUB EAX,1 MOV DWORD PTR [ESI+158], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+158] CMP EAX,DWORD PTR [ESI+120] SETB AL AND AL,AL JZ L_181 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+120] MOV DWORD PTR [EBX+158], EAX L_181: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+158] MOV DWORD PTR [EBP-8], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] CMP EAX,99999 SETB AL AND AL,AL JZ L_182 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [EBX+162] CMP EAX,DWORD PTR [ESI+8] SETAE AL AND AL,AL L_182: JZ L_183 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+158] ADD EAX,1 MOV DWORD PTR [EBX+158], EAX L_183: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+158] MOV DWORD PTR [EBP-8], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit PUSH EBX MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [EBX+162] SUB EAX,DWORD PTR [ESI+8] MOV EBX,EAX MOV ESI,_pEdit MOV EAX,EBX ADD EAX,DWORD PTR [ESI+116] POP EDX MOV DWORD PTR [EDX+154], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+128] ADD EAX,1 CMP EAX,DWORD PTR [EBX+158] SETB AL AND AL,AL JZ L_184 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+128] MOV DWORD PTR [EBX+158], EAX L_184: MOV ESP,EBP POP EBP RETN PUBLIC _coordCursor_oBuf: PUSH EBP MOV EBP,ESP SUB ESP,8 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+128] ADD EAX,1 MOV DWORD PTR [EBP-8], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+162] CMP EAX,DWORD PTR [ESI+150] SETAE AL AND AL,AL JZ L_185 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [EBX+162] CMP EAX,DWORD PTR [ESI+8] SETB AL AND AL,AL L_185: JZ L_186 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+158] MOV DWORD PTR [EBP-8], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] CMP EAX,99999 SETE AL AND AL,AL JZ L_187 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+124] MOV DWORD PTR [EBX+154], EAX L_187: L_188: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] CMP EAX,99999 SETE AL AND AL,AL JZ L_190 MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] CMP EAX,DWORD PTR [ESI+120] SETA AL AND AL,AL L_190: JZ L_189 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+158] DEC DWORD PTR [ESI+158] MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+158] MOV DWORD PTR [EBP-8], EAX JMP L_188 L_189: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+158] MOV DWORD PTR [EBP-8], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] SHL EAX,2 ADD ESI,EAX PUSH EBX MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+8] ADD EAX,DWORD PTR [ESI+154] MOV EBX,EAX MOV ESI,_pEdit MOV EAX,EBX SUB EAX,DWORD PTR [ESI+116] POP EDX MOV DWORD PTR [EDX+162], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+162] CMP EAX,DWORD PTR [ESI+166] SETA AL AND AL,AL JZ L_191 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] MOV DWORD PTR [EBX+162], EAX L_191: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV DWORD PTR [EBP-4], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] CMP EAX,DWORD PTR [EBP-4] SETA AL AND AL,AL JZ L_192 MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [ESI+162], EAX L_192: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] CMP EAX,DWORD PTR [EBP-4] SETE AL AND AL,AL JZ L_193 MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] SUB EAX,1 ADD ESI,EAX XOR EAX,EAX MOV AL,BYTE PTR [ESI] CMP EAX,10 SETE AL AND AL,AL JZ L_194 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] DEC DWORD PTR [ESI+162] L_194: L_193: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit PUSH EBX MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+162] ADD EAX,DWORD PTR [ESI+116] MOV EBX,EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] SHL EAX,2 ADD ESI,EAX MOV EAX,EBX SUB EAX,DWORD PTR [ESI+8] POP EDX MOV DWORD PTR [EDX+154], EAX L_186: MOV ESP,EBP POP EBP RETN PUBLIC _makeOnScreen: PUSH EBP MOV EBP,ESP SUB ESP,12 L_195: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+162] CMP EAX,DWORD PTR [ESI+150] SETB AL AND AL,AL JZ L_196 MOV ESI,_pEdit MOV EBX,ESI PUSH EBX MOV ESI,_pEdit PUSH DWORD PTR [ESI+150] CALL _findPrevLine POP EDX MOV DWORD PTR [EDX+150], EAX JMP L_195 L_196: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+120] MOV DWORD PTR [EBP-12], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-12] SHL EAX,2 ADD ESI,EAX MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+150] MOV DWORD PTR [EBX+8], EAX MOV EAX,DWORD PTR [EBP-12] MOV DWORD PTR [EBP-4], EAX L_197: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [ESI+128] SETBE AL AND AL,AL JZ L_198 JMP SHORT L_199 L_200: MOV EAX,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] JMP SHORT L_197 L_199: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] CMP EAX,99999 SETB AL AND AL,AL JZ L_201 MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 ADD ESI,EAX PUSH DWORD PTR [ESI+8] CALL _findEol MOV DWORD PTR [EBP-8], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] CMP EAX,DWORD PTR [ESI+166] SETB AL AND AL,AL JZ L_202 MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [EBP-8] ADD EAX,1 MOV DWORD PTR [ESI+8], EAX JMP L_203 L_202: MOV EAX,DWORD PTR [EBP-4] ADD EAX,1 MOV DWORD PTR [EBP-8], EAX L_204: MOV EAX,DWORD PTR [EBP-8] CMP EAX,26 SETB AL AND AL,AL JZ L_205 JMP SHORT L_206 L_207: MOV EAX,DWORD PTR [EBP-8] INC DWORD PTR [EBP-8] JMP SHORT L_204 L_206: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] SHL EAX,2 ADD ESI,EAX MOV EAX,99999 MOV DWORD PTR [ESI+8], EAX JMP L_207 L_205: L_203: L_201: JMP L_200 L_198: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+120] MOV DWORD PTR [EBP-8], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+128] MOV DWORD PTR [EBP-12], EAX L_208: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-12] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [EBX+162] CMP EAX,DWORD PTR [ESI+8] SETAE AL AND AL,AL JZ L_209 MOV EAX,DWORD PTR [EBP-8] MOV DWORD PTR [EBP-4], EAX L_210: MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [EBP-12] SETBE AL AND AL,AL JZ L_211 JMP SHORT L_212 L_213: MOV EAX,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] JMP SHORT L_210 L_212: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 ADD ESI,EAX MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV DWORD PTR [EBX+8], EAX JMP L_213 L_211: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV DWORD PTR [EBX+150], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-12] SHL EAX,2 ADD ESI,EAX PUSH DWORD PTR [ESI+8] CALL _findEol MOV DWORD PTR [EBP-4], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [ESI+166] SETB AL AND AL,AL JZ L_214 MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-12] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [EBP-4] ADD EAX,1 MOV DWORD PTR [ESI+8], EAX JMP L_215 L_214: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-12] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,99999 MOV DWORD PTR [ESI+8], EAX L_215: JMP L_208 L_209: MOV ESP,EBP POP EBP RETN PUBLIC _showScreen: PUSH EBP MOV EBP,ESP SUB ESP,20 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-20], EAX CALL _makeOnScreen MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+120] MOV DWORD PTR [EBP-8], EAX L_216: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] CMP EAX,DWORD PTR [ESI+128] SETBE AL AND AL,AL JZ L_217 JMP SHORT L_218 L_219: MOV EAX,DWORD PTR [EBP-8] INC DWORD PTR [EBP-8] JMP SHORT L_216 L_218: XOR EAX,EAX MOV DWORD PTR [EBP-12], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV DWORD PTR [EBP-16], EAX MOV EAX,DWORD PTR [EBP-16] CMP EAX,99999 SETB AL AND AL,AL JZ L_220 MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] CMP EAX,99999 SETB AL AND AL,AL JZ L_221 MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] SUB EAX,1 MOV DWORD PTR [EBP-4], EAX JMP L_222 L_221: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] MOV DWORD PTR [EBP-4], EAX L_222: MOV EAX,DWORD PTR [EBP-4] SUB EAX,DWORD PTR [EBP-16] ADD EAX,1 MOV DWORD PTR [EBP-12], EAX MOV ESI,_pEdit XOR EAX,EAX MOV AL,BYTE PTR [ESI+137] AND EAX,EAX SETZ AL AND AL,AL JZ L_223 MOV EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-20] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] CMP EAX,10 SETE AL AND AL,AL JZ L_224 MOV EAX,DWORD PTR [EBP-12] L_224: L_223: AND EAX,EAX JZ L_225 MOV EAX,DWORD PTR [EBP-12] DEC DWORD PTR [EBP-12] L_225: L_220: MOV EAX,DWORD PTR [EBP-12] AND EAX,EAX JZ L_226 MOV EAX,DWORD PTR [EBP-16] CMP EAX,99999 SETB AL AND AL,AL L_226: JZ L_227 MOV ESI,_pEdit PUSH DWORD PTR [ESI+116] PUSH DWORD PTR [EBP-8] MOV EAX,DWORD PTR [EBP-20] ADD EAX,DWORD PTR [EBP-16] PUSH EAX PUSH DWORD PTR [EBP-12] MOV ESI,_pEdit PUSH DWORD PTR [ESI+142] CALL FWORD PTR _PutVidChars L_227: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-12] CMP EAX,DWORD PTR [ESI+132] SETB AL AND AL,AL JZ L_228 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+116] ADD EAX,DWORD PTR [EBP-12] PUSH EAX PUSH DWORD PTR [EBP-8] PUSH DWORD PTR [EBP+8] MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+132] SUB EAX,DWORD PTR [EBP-12] PUSH EAX MOV ESI,_pEdit PUSH DWORD PTR [ESI+142] CALL FWORD PTR _PutVidChars L_228: PUSH DWORD PTR [EBP-8] CALL _doMark JMP L_219 L_217: MOV ESP,EBP POP EBP RETN 4 PUBLIC _clearbuf: PUSH EBP MOV EBP,ESP SUB ESP,8 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-8], EAX PUSH OFFSET _filler PUSH 80 PUSH 32 CALL FWORD PTR _FillData XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX L_229: MOV EAX,DWORD PTR [EBP-4] CMP EAX,26 SETB AL AND AL,AL JZ L_230 JMP SHORT L_231 L_232: MOV EAX,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] JMP SHORT L_229 L_231: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 ADD ESI,EAX MOV EAX,99999 MOV DWORD PTR [ESI+8], EAX JMP L_232 L_230: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+120] MOV DWORD PTR [EBP-4], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 ADD ESI,EAX XOR EAX,EAX MOV DWORD PTR [ESI+8], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+116] MOV DWORD PTR [EBX+154], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+120] MOV DWORD PTR [EBX+158], EAX MOV ESI,_pEdit MOV EAX,32 MOV BYTE PTR [ESI+136], AL MOV ESI,_pEdit XOR EAX,EAX MOV BYTE PTR [ESI+137], AL XOR EAX,EAX MOV _fModified, AL XOR EAX,EAX MOV _fOvertype, AL MOV ESI,_pEdit XOR EAX,EAX MOV DWORD PTR [ESI+166], EAX MOV ESI,_pEdit XOR EAX,EAX MOV DWORD PTR [ESI+162], EAX MOV ESI,_pEdit XOR EAX,EAX MOV DWORD PTR [ESI+150], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] MOV ESI,DWORD PTR [EBP-8] ADD ESI,EAX MOV EAX,15 MOV BYTE PTR [ESI], AL CALL _nullMarkBound CALL _normAttr MOV ESP,EBP POP EBP RETN PUBLIC _Editor: PUSH EBP MOV EBP,ESP SUB ESP,42 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-24], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+4] MOV DWORD PTR [EBP-28], EAX XOR EAX,EAX MOV BYTE PTR [EBP-19], AL MOV ESI,_pEdit XOR EAX,EAX MOV AL,BYTE PTR [ESI+137] AND EAX,EAX JZ L_233 MOV ESI,_pEdit MOV EAX,7 MOV BYTE PTR [ESI+136], AL XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX L_234: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [ESI+166] SETBE AL AND AL,AL JZ L_235 JMP SHORT L_236 L_237: MOV EAX,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] JMP SHORT L_234 L_236: MOV EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-24] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] CMP EAX,32 SETE AL AND AL,AL JZ L_238 MOV EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-24] ADD ESI,EAX MOV EBX,ESI MOV ESI,_pEdit XOR EAX,EAX MOV AL,BYTE PTR [ESI+136] MOV BYTE PTR [EBX], AL L_238: JMP L_237 L_235: JMP L_239 L_233: MOV ESI,_pEdit MOV EAX,32 MOV BYTE PTR [ESI+136], AL L_239: CALL _normAttr MOV EAX,1 MOV BYTE PTR [EBP-18], AL MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] MOV ESI,DWORD PTR [EBP-24] ADD ESI,EAX MOV EAX,15 MOV BYTE PTR [ESI], AL LEA EAX,DWORD PTR [EBP-32] PUSH EAX CALL FWORD PTR _AllocExch MOV _erc, EAX L_240: MOVSX EAX,BYTE PTR [EBP-19] AND EAX,EAX JNZ L_241 MOVSX EAX,BYTE PTR [EBP-18] AND EAX,EAX JZ L_242 PUSH OFFSET _filler CALL _showScreen CALL _findCursor XOR EAX,EAX MOV BYTE PTR [EBP-18], AL L_242: MOV ESI,_pEdit PUSH DWORD PTR [ESI+154] MOV ESI,_pEdit PUSH DWORD PTR [ESI+158] CALL FWORD PTR _SetXY PUSH OFFSET _aStat PUSH 80 PUSH 32 CALL FWORD PTR _FillData CALL _CountEols MOV EBX,EAX MOV ESI,_pEdit MOV EAX,EBX ADD EAX,DWORD PTR [ESI+158] MOV DWORD PTR [EBP-4], EAX PUSH OFFSET _aStat PUSH OFFSET L_lit+384 MOV ESI,_pEdit PUSH DWORD PTR [ESI+154] PUSH DWORD PTR [EBP-4] MOV ESI,_pEdit PUSH DWORD PTR [ESI+166] MOV EDI, 12 CALL _sprintf ADD ESP,20 MOV EAX,_cbFilename AND EAX,EAX JZ L_243 PUSH OFFSET _Filename MOV EAX,40 MOV ESI,OFFSET _aStat ADD ESI,EAX PUSH ESI PUSH _cbFilename CALL FWORD PTR _CopyData L_243: MOVSX EAX,_fOvertype AND EAX,EAX JZ L_244 PUSH OFFSET L_lit+415 MOV EAX,77 MOV ESI,OFFSET _aStat ADD ESI,EAX PUSH ESI PUSH 3 CALL FWORD PTR _CopyData JMP L_245 L_244: PUSH OFFSET L_lit+419 MOV EAX,77 MOV ESI,OFFSET _aStat ADD ESI,EAX PUSH ESI PUSH 3 CALL FWORD PTR _CopyData L_245: XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX PUSH OFFSET _aStat PUSH 80 PUSH 48 CALL FWORD PTR _PutVidChars XOR EAX,EAX MOV BYTE PTR [EBP-17], AL PUSH 7 LEA EAX,DWORD PTR [EBP-16] PUSH EAX PUSH 1 CALL FWORD PTR _ReadKbd PUSH EAX CALL _CheckErc MOV EAX,DWORD PTR [EBP-16] AND EAX,255 MOV BYTE PTR [EBP-20], AL MOV EAX,DWORD PTR [EBP-16] AND EAX,12288 JZ L_246 XOR EAX,EAX MOV AL,BYTE PTR [EBP-20] JMP L_248 L_249: L_250: MOV ESI,_pEdit XOR EAX,EAX MOV DWORD PTR [ESI+150], EAX MOV ESI,_pEdit XOR EAX,EAX MOV DWORD PTR [ESI+162], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+116] MOV DWORD PTR [EBX+154], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+120] MOV DWORD PTR [EBX+158], EAX MOV EAX,1 MOV BYTE PTR [EBP-18], AL JMP L_247 L_251: L_252: PUSH 1 PUSH 1 CALL _SaveFile MOV EAX,1 MOV BYTE PTR [EBP-18], AL JMP L_247 L_253: L_254: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] MOV DWORD PTR [EBX+162], EAX CALL _coordCursor_oBuf MOV EAX,1 MOV BYTE PTR [EBP-18], AL JMP L_247 L_255: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+120] MOV DWORD PTR [EBX+158], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+116] MOV DWORD PTR [EBX+154], EAX JMP L_247 L_256: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+120] MOV DWORD PTR [EBX+158], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+158] MOV DWORD PTR [EBP-4], EAX L_257: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] CMP EAX,99999 SETB AL AND AL,AL JZ L_259 MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [ESI+128] SETB AL AND AL,AL L_259: JZ L_258 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+158] INC DWORD PTR [ESI+158] MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+158] MOV DWORD PTR [EBP-4], EAX JMP L_257 L_258: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+124] MOV DWORD PTR [EBX+154], EAX CALL _coordCursor_oBuf JMP L_247 L_260: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+116] MOV DWORD PTR [EBX+154], EAX JMP L_247 L_261: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+158] MOV DWORD PTR [EBP-4], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] CMP EAX,99999 SETB AL AND AL,AL JZ L_262 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit PUSH EBX MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [EBX+116] ADD EAX,DWORD PTR [ESI+8] MOV EBX,EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 ADD ESI,EAX MOV EAX,EBX SUB EAX,DWORD PTR [ESI+8] POP EDX MOV DWORD PTR [EDX+154], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+158] ADD EAX,1 MOV DWORD PTR [EBP-4], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] SUB EAX,1 MOV ESI,DWORD PTR [EBP-24] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] CMP EAX,10 SETE AL AND AL,AL JZ L_263 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+154] CMP EAX,DWORD PTR [ESI+116] SETA AL AND AL,AL L_263: JZ L_264 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+154] DEC DWORD PTR [ESI+154] L_264: JMP L_265 L_262: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit PUSH EBX MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+116] ADD EAX,DWORD PTR [ESI+166] MOV EBX,EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 ADD ESI,EAX MOV EAX,EBX SUB EAX,DWORD PTR [ESI+8] POP EDX MOV DWORD PTR [EDX+154], EAX L_265: JMP L_247 L_266: L_267: MOV ESI,_pEdit XOR EAX,EAX MOV AL,BYTE PTR [ESI+137] AND EAX,EAX JZ L_268 XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX L_269: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [ESI+166] SETBE AL AND AL,AL JZ L_270 JMP SHORT L_271 L_272: MOV EAX,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] JMP SHORT L_269 L_271: MOV EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-24] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] CMP EAX,7 SETE AL AND AL,AL JZ L_273 MOV EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-24] ADD ESI,EAX MOV EAX,32 MOV BYTE PTR [ESI], AL L_273: JMP L_272 L_270: MOV ESI,_pEdit XOR EAX,EAX MOV BYTE PTR [ESI+137], AL MOV ESI,_pEdit MOV EAX,32 MOV BYTE PTR [ESI+136], AL JMP L_274 L_268: XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX L_275: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [ESI+166] SETBE AL AND AL,AL JZ L_276 JMP SHORT L_277 L_278: MOV EAX,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] JMP SHORT L_275 L_277: MOV EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-24] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] CMP EAX,32 SETE AL AND AL,AL JZ L_279 MOV EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-24] ADD ESI,EAX MOV EAX,7 MOV BYTE PTR [ESI], AL L_279: JMP L_278 L_276: MOV ESI,_pEdit MOV EAX,1 MOV BYTE PTR [ESI+137], AL MOV ESI,_pEdit MOV EAX,7 MOV BYTE PTR [ESI+136], AL L_274: MOV EAX,1 MOV BYTE PTR [EBP-18], AL JMP L_247 L_280: L_281: MOV EAX,_fh AND EAX,EAX JNZ L_282 CALL _clearbuf XOR EAX,EAX PUSH EAX CALL _OpenAFile MOV EAX,1 MOV BYTE PTR [EBP-18], AL L_282: JMP L_247 L_283: L_284: PUSH 1 PUSH 1 CALL _SaveFile MOV EAX,1 MOV BYTE PTR [EBP-19], AL JMP L_247 L_285: L_286: XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX CALL _SaveFile MOV EAX,1 MOV BYTE PTR [EBP-18], AL JMP L_247 L_287: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] CMP EAX,99999 SETB AL AND AL,AL JZ L_288 CALL _deleteData MOV EAX,1 MOV BYTE PTR [EBP-18], AL L_288: JMP L_247 L_289: JMP L_247 L_248: CMP EAX,127 JE L_287 CMP EAX,115 JE L_286 CMP EAX,83 JE L_285 CMP EAX,113 JE L_284 CMP EAX,81 JE L_283 CMP EAX,111 JE L_281 CMP EAX,79 JE L_280 CMP EAX,118 JE L_267 CMP EAX,86 JE L_266 CMP EAX,4 JE L_261 CMP EAX,3 JE L_260 CMP EAX,2 JE L_256 CMP EAX,1 JE L_255 CMP EAX,101 JE L_254 CMP EAX,69 JE L_253 CMP EAX,99 JE L_252 CMP EAX,67 JE L_251 CMP EAX,98 JE L_250 CMP EAX,66 JE L_249 JMP L_289 L_247: JMP L_290 L_246: MOV EAX,DWORD PTR [EBP-16] AND EAX,768 JZ L_291 JMP L_292 L_291: XOR EAX,EAX MOV AL,BYTE PTR [EBP-20] CMP EAX,32 SETAE AL AND AL,AL JZ L_293 XOR EAX,EAX MOV AL,BYTE PTR [EBP-20] CMP EAX,126 SETBE AL AND AL,AL L_293: JNZ L_294 XOR EAX,EAX MOV AL,BYTE PTR [EBP-20] CMP EAX,13 SETE AL AND AL,AL L_294: JZ L_295 CALL _coordCursor_oBuf XOR EAX,EAX MOV AL,BYTE PTR [EBP-20] CMP EAX,32 SETE AL AND AL,AL JZ L_296 MOV ESI,_pEdit XOR EAX,EAX MOV AL,BYTE PTR [ESI+136] MOV BYTE PTR [EBP-20], AL L_296: XOR EAX,EAX MOV AL,BYTE PTR [EBP-20] CMP EAX,13 SETE AL AND AL,AL JZ L_297 MOV EAX,10 MOV BYTE PTR [EBP-20], AL L_297: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] MOV ESI,DWORD PTR [EBP-24] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] CMP EAX,10 SETE AL AND AL,AL JZ L_298 MOV EAX,1 MOV BYTE PTR [EBP-17], AL L_298: XOR EAX,EAX MOV AL,BYTE PTR [EBP-20] PUSH EAX MOVSX EAX,_fOvertype PUSH EAX MOVSX EAX,BYTE PTR [EBP-17] PUSH EAX CALL _putInBuf AND EAX,EAX JNZ L_299 CALL FWORD PTR _Beep L_299: CALL _findCursor MOV EAX,1 MOV BYTE PTR [EBP-18], AL JMP L_300 L_295: MOV EAX,DWORD PTR [EBP-16] AND EAX,3072 JZ L_301 XOR EAX,EAX MOV AL,BYTE PTR [EBP-20] JMP L_303 L_304: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+116] ADD EAX,5 CMP EAX,DWORD PTR [EBX+154] SETB AL AND AL,AL JZ L_305 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+154] SUB EAX,5 MOV DWORD PTR [ESI+154], EAX JMP L_306 L_305: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+154] CMP EAX,DWORD PTR [ESI+116] SETA AL AND AL,AL JZ L_307 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+154] DEC DWORD PTR [ESI+154] L_307: L_306: JMP L_302 L_308: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+124] SUB EAX,5 CMP EAX,DWORD PTR [EBX+154] SETA AL AND AL,AL JZ L_309 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+154] ADD EAX,5 MOV DWORD PTR [ESI+154], EAX JMP L_310 L_309: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+154] CMP EAX,DWORD PTR [ESI+124] SETB AL AND AL,AL JZ L_311 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+154] INC DWORD PTR [ESI+154] L_311: L_310: JMP L_302 L_312: JMP L_302 L_303: CMP EAX,4 JE L_308 CMP EAX,3 JE L_304 JMP L_312 L_302: JMP L_313 L_301: XOR EAX,EAX MOV AL,BYTE PTR [EBP-20] JMP L_315 L_316: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] AND EAX,EAX JZ L_317 CALL _coordCursor_oBuf MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] AND EAX,EAX JZ L_318 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] SUB EAX,1 MOV DWORD PTR [EBX+162], EAX MOVSX EAX,_fOvertype AND EAX,EAX JNZ L_319 PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-28] MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] ADD EAX,1 PUSH EAX CALL FWORD PTR _CopyData MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] ADD EAX,1 MOV ESI,DWORD PTR [EBP-28] ADD ESI,EAX PUSH ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] MOV ESI,DWORD PTR [EBP-24] ADD ESI,EAX PUSH ESI MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+166] SUB EAX,DWORD PTR [ESI+162] PUSH EAX CALL FWORD PTR _CopyData MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] MOV ESI,DWORD PTR [EBP-24] ADD ESI,EAX XOR EAX,EAX MOV BYTE PTR [ESI], AL MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] SUB EAX,1 MOV DWORD PTR [EBX+166], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+170] CMP EAX,DWORD PTR [ESI+174] SETE AL AND AL,AL JZ L_320 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+170] CMP EAX,DWORD PTR [ESI+162] SETE AL AND AL,AL L_320: JZ L_321 CALL _nullMarkBound L_321: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] CMP EAX,99999 SETB AL AND AL,AL JZ L_322 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+162] CMP EAX,DWORD PTR [ESI+170] SETBE AL AND AL,AL JZ L_323 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] DEC DWORD PTR [ESI+170] L_323: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+162] CMP EAX,DWORD PTR [ESI+174] SETBE AL AND AL,AL JZ L_324 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+174] DEC DWORD PTR [ESI+174] L_324: L_322: L_319: L_318: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+162] CMP EAX,DWORD PTR [ESI+150] SETB AL AND AL,AL JZ L_325 MOV ESI,_pEdit MOV EBX,ESI PUSH EBX MOV ESI,_pEdit PUSH DWORD PTR [ESI+150] CALL _findPrevLine POP EDX MOV DWORD PTR [EDX+150], EAX L_325: MOV EAX,1 MOV BYTE PTR [EBP-18], AL MOV EAX,1 MOV _fModified, AL L_317: JMP L_314 L_326: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+116] MOV DWORD PTR [EBX+154], EAX JMP L_314 L_327: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+166] ADD EAX,DWORD PTR [ESI+146] MOV EBX,EAX MOV ESI,_pEdit MOV EAX,EBX CMP EAX,DWORD PTR [ESI+112] SETB AL AND AL,AL JZ L_328 CALL _coordCursor_oBuf MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit PUSH EBX MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+154] MOV ECX,DWORD PTR [ESI+146] XOR EDX,EDX DIV ECX MOV ECX,EDX POP EDX MOV EAX,DWORD PTR [EDX+146] SUB EAX,ECX MOV DWORD PTR [EBP-8], EAX MOV EAX,1 MOV DWORD PTR [EBP-4], EAX L_329: MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [EBP-8] SETBE AL AND AL,AL JZ L_330 JMP SHORT L_331 L_332: MOV EAX,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] JMP SHORT L_329 L_331: MOV ESI,_pEdit XOR EAX,EAX MOV AL,BYTE PTR [ESI+136] PUSH EAX XOR EAX,EAX PUSH EAX XOR EAX,EAX PUSH EAX CALL _putInBuf JMP L_332 L_330: MOV EAX,1 MOV BYTE PTR [EBP-18], AL L_328: JMP L_314 L_333: CALL _nullMarkBound JMP L_314 L_334: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] CMP EAX,0 SETA AL AND AL,AL JZ L_335 CALL _coordCursor_oBuf MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] MOV DWORD PTR [EBX+170], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+158] MOV DWORD PTR [EBP-4], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [EBX+170] CMP EAX,DWORD PTR [ESI+8] SETAE AL AND AL,AL JZ L_336 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] SUB EAX,1 MOV DWORD PTR [EBX+170], EAX L_336: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+170] CMP EAX,DWORD PTR [ESI+166] SETE AL AND AL,AL JZ L_337 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] SUB EAX,1 MOV DWORD PTR [EBX+170], EAX L_337: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] MOV DWORD PTR [EBX+174], EAX MOV EAX,1 MOV BYTE PTR [EBP-18], AL L_335: JMP L_314 L_338: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] CMP EAX,99999 SETB AL AND AL,AL JZ L_339 CALL _coordCursor_oBuf MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] MOV DWORD PTR [EBX+174], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+158] MOV DWORD PTR [EBP-4], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [EBX+174] CMP EAX,DWORD PTR [ESI+8] SETAE AL AND AL,AL JZ L_340 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+174] DEC DWORD PTR [ESI+174] L_340: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+174] CMP EAX,DWORD PTR [ESI+166] SETE AL AND AL,AL JZ L_341 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] SUB EAX,1 MOV DWORD PTR [EBX+174], EAX L_341: MOV EAX,1 MOV BYTE PTR [EBP-18], AL L_339: JMP L_314 L_342: CALL _coordCursor_oBuf CALL _moveData MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+162] CMP EAX,DWORD PTR [ESI+150] SETB AL AND AL,AL JZ L_343 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] MOV DWORD PTR [EBX+150], EAX L_343: MOV EAX,1 MOV BYTE PTR [EBP-18], AL JMP L_314 L_344: CALL _coordCursor_oBuf CALL _CopyIt CALL _coordCursor_oBuf MOV EAX,1 MOV BYTE PTR [EBP-18], AL JMP L_314 L_345: CALL _coordCursor_oBuf MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+128] MOV DWORD PTR [EBP-4], EAX L_346: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] CMP EAX,99999 SETE AL AND AL,AL JZ L_348 MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [ESI+120] SETA AL AND AL,AL L_348: JZ L_347 MOV EAX,DWORD PTR [EBP-4] DEC DWORD PTR [EBP-4] JMP L_346 L_347: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV DWORD PTR [EBX+150], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+162] CMP EAX,DWORD PTR [ESI+150] SETB AL AND AL,AL JZ L_349 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+150] MOV DWORD PTR [EBX+162], EAX L_349: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+120] MOV DWORD PTR [EBX+158], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+116] MOV DWORD PTR [EBX+154], EAX MOV EAX,1 MOV BYTE PTR [EBP-18], AL JMP L_314 L_350: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+150] AND EAX,EAX JZ L_351 CALL _coordCursor_oBuf MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+128] SUB EAX,DWORD PTR [ESI+120] MOV DWORD PTR [EBP-8], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+150] MOV DWORD PTR [EBP-4], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+158] MOV DWORD PTR [EBP-12], EAX L_352: PUSH DWORD PTR [EBP-4] CALL _findPrevLine MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-8] DEC DWORD PTR [EBP-8] MOV EAX,DWORD PTR [EBP-12] DEC DWORD PTR [EBP-12] L_353: MOV EAX,DWORD PTR [EBP-8] CMP EAX,0 SETA AL AND AL,AL JZ L_355 MOV EAX,DWORD PTR [EBP-4] CMP EAX,0 SETA AL AND AL,AL L_355: JNZ L_352 L_354: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [ESI+150], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+158] CMP EAX,DWORD PTR [ESI+128] SETE AL AND AL,AL JZ L_356 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-12] SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV DWORD PTR [EBX+162], EAX L_356: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+128] MOV DWORD PTR [EBP-4], EAX MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [EBX+162] CMP EAX,DWORD PTR [ESI+8] SETAE AL AND AL,AL JZ L_357 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV DWORD PTR [EBX+162], EAX L_357: MOV EAX,1 MOV BYTE PTR [EBP-18], AL L_351: JMP L_314 L_358: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+158] CMP EAX,DWORD PTR [ESI+120] SETA AL AND AL,AL JZ L_359 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+158] DEC DWORD PTR [ESI+158] JMP L_360 L_359: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+150] MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] CMP EAX,0 SETA AL AND AL,AL JZ L_361 PUSH DWORD PTR [EBP-4] CALL _findPrevLine MOV DWORD PTR [EBP-4], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [ESI+150], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [ESI+162], EAX MOV EAX,1 MOV BYTE PTR [EBP-18], AL L_361: L_360: JMP L_314 L_362: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+158] MOV DWORD PTR [EBP-4], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] CMP EAX,99999 SETB AL AND AL,AL JZ L_363 MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [ESI+128] SETB AL AND AL,AL L_363: JZ L_364 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+158] INC DWORD PTR [ESI+158] JMP L_365 L_364: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+128] MOV DWORD PTR [EBP-4], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] CMP EAX,99999 SETB AL AND AL,AL JZ L_366 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] ADD EAX,1 SHL EAX,2 ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV DWORD PTR [EBX+162], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+154] MOV DWORD PTR [EBP-4], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+158] MOV DWORD PTR [EBP-8], EAX CALL _coordCursor_oBuf MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [ESI+154], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-8] MOV DWORD PTR [ESI+158], EAX MOV EAX,1 MOV BYTE PTR [EBP-18], AL L_366: L_365: JMP L_314 L_367: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+154] CMP EAX,DWORD PTR [ESI+116] SETA AL AND AL,AL JZ L_368 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+154] DEC DWORD PTR [ESI+154] L_368: JMP L_314 L_369: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+154] CMP EAX,DWORD PTR [ESI+124] SETB AL AND AL,AL JZ L_370 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+154] INC DWORD PTR [ESI+154] L_370: JMP L_314 L_371: MOVSX EAX,_fOvertype AND EAX,EAX JZ L_372 XOR EAX,EAX MOV _fOvertype, AL JMP L_373 L_372: MOV EAX,1 MOV _fOvertype, AL L_373: JMP L_314 L_374: CALL _coordCursor_oBuf MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] AND EAX,EAX JZ L_375 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+166] CMP EAX,DWORD PTR [ESI+162] SETA AL AND AL,AL L_375: JZ L_376 PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-28] MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] ADD EAX,1 PUSH EAX CALL FWORD PTR _CopyData MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] ADD EAX,1 MOV ESI,DWORD PTR [EBP-28] ADD ESI,EAX PUSH ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+162] MOV ESI,DWORD PTR [EBP-24] ADD ESI,EAX PUSH ESI MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+166] SUB EAX,DWORD PTR [ESI+162] PUSH EAX CALL FWORD PTR _CopyData MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] MOV ESI,DWORD PTR [EBP-24] ADD ESI,EAX XOR EAX,EAX MOV BYTE PTR [ESI], AL MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] DEC DWORD PTR [ESI+166] MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+162] CMP EAX,DWORD PTR [ESI+170] SETE AL AND AL,AL JZ L_377 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+170] CMP EAX,DWORD PTR [ESI+174] SETE AL AND AL,AL L_377: JZ L_378 CALL _nullMarkBound L_378: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] CMP EAX,99999 SETB AL AND AL,AL JZ L_379 MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+162] CMP EAX,DWORD PTR [ESI+170] SETB AL AND AL,AL JZ L_380 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] DEC DWORD PTR [ESI+170] L_380: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+162] CMP EAX,DWORD PTR [ESI+174] SETB AL AND AL,AL JZ L_381 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+174] DEC DWORD PTR [ESI+174] L_381: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+170] CMP EAX,DWORD PTR [ESI+166] SETE AL AND AL,AL JZ L_382 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+170] DEC DWORD PTR [ESI+170] L_382: MOV ESI,_pEdit MOV EBX,ESI MOV ESI,_pEdit MOV EAX,DWORD PTR [EBX+174] CMP EAX,DWORD PTR [ESI+166] SETE AL AND AL,AL JZ L_383 MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+174] DEC DWORD PTR [ESI+174] L_383: L_379: MOV EAX,1 MOV BYTE PTR [EBP-18], AL MOV EAX,1 MOV _fModified, AL L_376: JMP L_314 L_384: JMP L_314 L_315: CMP EAX,127 JE L_374 CMP EAX,14 JE L_371 CMP EAX,4 JE L_369 CMP EAX,3 JE L_367 CMP EAX,2 JE L_362 CMP EAX,1 JE L_358 CMP EAX,5 JE L_350 CMP EAX,12 JE L_345 CMP EAX,24 JE L_344 CMP EAX,23 JE L_342 CMP EAX,18 JE L_338 CMP EAX,17 JE L_334 CMP EAX,16 JE L_333 CMP EAX,9 JE L_327 CMP EAX,6 JE L_326 CMP EAX,8 JE L_316 JMP L_384 L_314: L_313: L_300: L_292: L_290: JMP L_240 L_241: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+120] MOV DWORD PTR [EBP-4], EAX L_385: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [ESI+128] SETBE AL AND AL,AL JZ L_386 JMP SHORT L_387 L_388: MOV EAX,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] JMP SHORT L_385 L_387: MOV ESI,_pEdit PUSH DWORD PTR [ESI+116] PUSH DWORD PTR [EBP-4] MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+132] ADD EAX,1 PUSH EAX XOR EAX,EAX PUSH EAX CALL FWORD PTR _PutVidAttrs JMP L_388 L_386: MOV EAX,_fh AND EAX,EAX JZ L_389 MOV ESI,_pEdit XOR EAX,EAX MOV AL,BYTE PTR [ESI+137] AND EAX,EAX JZ L_390 XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX L_391: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [ESI+112] SETBE AL AND AL,AL JZ L_392 JMP SHORT L_393 L_394: MOV EAX,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] JMP SHORT L_391 L_393: MOV EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-24] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] CMP EAX,7 SETE AL AND AL,AL JZ L_395 MOV EAX,DWORD PTR [EBP-4] MOV ESI,DWORD PTR [EBP-24] ADD ESI,EAX MOV EAX,32 MOV BYTE PTR [ESI], AL L_395: JMP L_394 L_392: L_390: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+166] MOV ESI,DWORD PTR [EBP-24] ADD ESI,EAX XOR EAX,EAX MOV BYTE PTR [ESI], AL MOVSX EAX,_fModified AND EAX,EAX JZ L_396 PUSH 6 PUSH _fh XOR EAX,EAX PUSH EAX CALL FWORD PTR _SetFileLFA PUSH EAX CALL _CheckErc MOV _erc, EAX MOV EAX,_erc AND EAX,EAX JNZ L_397 PUSH 5 PUSH _fh MOV ESI,_pEdit PUSH DWORD PTR [ESI+166] CALL FWORD PTR _SetFileSize PUSH EAX CALL _CheckErc MOV _erc, EAX L_397: MOV EAX,_erc AND EAX,EAX JNZ L_398 PUSH 3 PUSH _fh PUSH _pBuf1 MOV ESI,_pEdit PUSH DWORD PTR [ESI+166] LEA EAX,DWORD PTR [EBP-4] PUSH EAX CALL FWORD PTR _WriteBytes PUSH EAX CALL _CheckErc MOV _erc, EAX L_398: XOR EAX,EAX MOV _fModified, AL L_396: PUSH _fh CALL FWORD PTR _CloseFile XOR EAX,EAX MOV _cbFilename, EAX L_389: MOV ESI,DWORD PTR [EBP+8] XOR EAX,EAX MOV AL,BYTE PTR [EBP-20] MOV BYTE PTR [ESI], AL L_399: MOV ESP,EBP POP EBP RETN 4 PUBLIC _main: PUSH EBP MOV EBP,ESP SUB ESP,4 CALL FWORD PTR _ClrScr PUSH OFFSET L_lit+423 PUSH 6 CALL FWORD PTR _SetJobName XOR EAX,EAX MOV _fh, EAX MOV EAX,OFFSET _EdRec MOV _pEdit, EAX PUSH 32 PUSH OFFSET _pBuf1 CALL FWORD PTR _AllocPage MOV _erc, EAX PUSH 32 PUSH OFFSET _pBuf2 CALL FWORD PTR _AllocPage MOV _erc, EAX MOV ESI,_pEdit MOV EAX,_pBuf1 MOV DWORD PTR [ESI], EAX MOV ESI,_pEdit MOV EAX,_pBuf2 MOV DWORD PTR [ESI+4], EAX MOV ESI,_pEdit MOV EAX,131071 MOV DWORD PTR [ESI+112], EAX MOV ESI,_pEdit XOR EAX,EAX MOV DWORD PTR [ESI+116], EAX MOV ESI,_pEdit MOV EAX,79 MOV DWORD PTR [ESI+124], EAX MOV ESI,_pEdit MOV EAX,1 MOV DWORD PTR [ESI+120], EAX MOV ESI,_pEdit MOV EAX,23 MOV DWORD PTR [ESI+128], EAX MOV ESI,_pEdit MOV EAX,80 MOV DWORD PTR [ESI+132], EAX MOV ESI,_pEdit MOV EAX,32 MOV BYTE PTR [ESI+136], AL MOV ESI,_pEdit XOR EAX,EAX MOV BYTE PTR [ESI+137], AL MOV ESI,_pEdit MOV EAX,71 MOV DWORD PTR [ESI+138], EAX MOV ESI,_pEdit MOV EAX,31 MOV DWORD PTR [ESI+142], EAX MOV ESI,_pEdit MOV EAX,4 MOV DWORD PTR [ESI+146], EAX MOV ESI,_pEdit XOR EAX,EAX MOV DWORD PTR [ESI+150], EAX MOV ESI,_pEdit XOR EAX,EAX MOV DWORD PTR [ESI+154], EAX MOV ESI,_pEdit XOR EAX,EAX MOV DWORD PTR [ESI+158], EAX MOV ESI,_pEdit XOR EAX,EAX MOV DWORD PTR [ESI+162], EAX MOV ESI,_pEdit XOR EAX,EAX MOV DWORD PTR [ESI+166], EAX MOV ESI,_pEdit MOV EAX,99999 MOV DWORD PTR [ESI+170], EAX MOV ESI,_pEdit MOV EAX,99999 MOV DWORD PTR [ESI+174], EAX PUSH 7 CALL FWORD PTR _SetNormVid PUSH OFFSET _filler PUSH 80 PUSH 32 CALL FWORD PTR _FillData XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX L_400: MOV EAX,DWORD PTR [EBP-4] CMP EAX,26 SETL AL AND AL,AL JZ L_401 JMP SHORT L_402 L_403: MOV EAX,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] JMP SHORT L_400 L_402: MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 ADD ESI,EAX MOV EAX,99999 MOV DWORD PTR [ESI+8], EAX JMP L_403 L_401: MOV ESI,_pEdit MOV EAX,DWORD PTR [ESI+120] MOV DWORD PTR [EBP-4], EAX MOV ESI,_pEdit MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 ADD ESI,EAX XOR EAX,EAX MOV DWORD PTR [ESI+8], EAX XOR EAX,EAX MOV _fModified, AL XOR EAX,EAX MOV _fOvertype, AL MOV EAX,DWORD PTR [EBP+12] CMP EAX,1 SETA AL AND AL,AL JZ L_404 MOV EAX,4 MOV ESI,DWORD PTR [EBP+8] ADD ESI,EAX PUSH DWORD PTR [ESI] CALL _OpenAFile L_404: PUSH OFFSET _b CALL _Editor XOR EAX,EAX PUSH EAX CALL FWORD PTR _ExitJob MOV ESP,EBP POP EBP RETN 8