mirror of
https://github.com/KolibriOS/kolibrios.git
synced 2024-12-27 00:39:41 +03:00
1967c25fac
git-svn-id: svn://kolibrios.org@718 a494cfbc-eb01-0410-851d-a64ba20cac60
3035 lines
37 KiB
NASM
3035 lines
37 KiB
NASM
_preproce:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-8
|
|
MOV EAX,[_ccode]
|
|
OR EAX,EAX
|
|
JNE _2_3
|
|
JMP _2_2
|
|
_2_3:
|
|
MOV EAX,[_mline]
|
|
MOV DWORD [_line],EAX
|
|
XOR CL,CL
|
|
CALL _ifline
|
|
MOV EAX,[_eof]
|
|
OR EAX,EAX
|
|
JNE _2_5
|
|
JMP _2_4
|
|
_2_5:
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_2_4:
|
|
JMP _2_6
|
|
_2_2:
|
|
XOR CL,CL
|
|
CALL _inline
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_2_6:
|
|
MOV EAX,-1
|
|
MOV DWORD [_pptr],EAX
|
|
_2_7:
|
|
MOV EAX,[_ch]
|
|
MOV EBX,EAX
|
|
MOV EAX,10
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _2_11
|
|
JMP _2_9
|
|
_2_11:
|
|
MOV EAX,[_ch]
|
|
OR EAX,EAX
|
|
JNE _2_12
|
|
JMP _2_9
|
|
_2_12:
|
|
MOV EAX,1
|
|
JMP _2_10
|
|
_2_9:
|
|
XOR EAX,EAX
|
|
_2_10:
|
|
OR EAX,EAX
|
|
JNE _2_13
|
|
JMP _2_8
|
|
_2_13:
|
|
XOR CL,CL
|
|
CALL _white
|
|
OR EAX,EAX
|
|
JNE _2_15
|
|
JMP _2_14
|
|
_2_15:
|
|
MOV EAX,32
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _keepch
|
|
ADD ESP,4
|
|
_2_16:
|
|
XOR CL,CL
|
|
CALL _white
|
|
OR EAX,EAX
|
|
JNE _2_18
|
|
JMP _2_17
|
|
_2_18:
|
|
XOR CL,CL
|
|
CALL _gch
|
|
JMP _2_16
|
|
_2_17:
|
|
JMP _2_19
|
|
_2_14:
|
|
MOV EAX,[_ch]
|
|
MOV EBX,EAX
|
|
MOV EAX,34
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _2_21
|
|
JMP _2_20
|
|
_2_21:
|
|
MOV EAX,[_ch]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _keepch
|
|
ADD ESP,4
|
|
XOR CL,CL
|
|
CALL _gch
|
|
_2_22:
|
|
MOV EAX,[_ch]
|
|
MOV EBX,EAX
|
|
MOV EAX,34
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JE _2_28
|
|
JMP _2_24
|
|
_2_28:
|
|
MOV EAX,[_lptr]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,92
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _2_29
|
|
JMP _2_25
|
|
_2_29:
|
|
MOV EAX,[_lptr]
|
|
MOV EBX,EAX
|
|
MOV EAX,2
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,92
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _2_30
|
|
JMP _2_25
|
|
_2_30:
|
|
MOV EAX,1
|
|
JMP _2_26
|
|
_2_25:
|
|
XOR EAX,EAX
|
|
_2_26:
|
|
OR EAX,EAX
|
|
JE _2_31
|
|
JMP _2_24
|
|
_2_31:
|
|
XOR EAX,EAX
|
|
JMP _2_27
|
|
_2_24:
|
|
MOV EAX,1
|
|
_2_27:
|
|
OR EAX,EAX
|
|
JNE _2_32
|
|
JMP _2_23
|
|
_2_32:
|
|
MOV EAX,[_ch]
|
|
OR EAX,EAX
|
|
JE _2_34
|
|
JMP _2_33
|
|
_2_34:
|
|
MOV EAX,_2_1+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
JMP _2_23
|
|
_2_33:
|
|
XOR CL,CL
|
|
CALL _gch
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _keepch
|
|
ADD ESP,4
|
|
JMP _2_22
|
|
_2_23:
|
|
XOR CL,CL
|
|
CALL _gch
|
|
MOV EAX,34
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _keepch
|
|
ADD ESP,4
|
|
JMP _2_35
|
|
_2_20:
|
|
MOV EAX,[_ch]
|
|
MOV EBX,EAX
|
|
MOV EAX,39
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _2_37
|
|
JMP _2_36
|
|
_2_37:
|
|
MOV EAX,39
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _keepch
|
|
ADD ESP,4
|
|
XOR CL,CL
|
|
CALL _gch
|
|
_2_38:
|
|
MOV EAX,[_ch]
|
|
MOV EBX,EAX
|
|
MOV EAX,39
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JE _2_44
|
|
JMP _2_40
|
|
_2_44:
|
|
MOV EAX,[_lptr]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,92
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _2_45
|
|
JMP _2_41
|
|
_2_45:
|
|
MOV EAX,[_lptr]
|
|
MOV EBX,EAX
|
|
MOV EAX,2
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,92
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _2_46
|
|
JMP _2_41
|
|
_2_46:
|
|
MOV EAX,1
|
|
JMP _2_42
|
|
_2_41:
|
|
XOR EAX,EAX
|
|
_2_42:
|
|
OR EAX,EAX
|
|
JE _2_47
|
|
JMP _2_40
|
|
_2_47:
|
|
XOR EAX,EAX
|
|
JMP _2_43
|
|
_2_40:
|
|
MOV EAX,1
|
|
_2_43:
|
|
OR EAX,EAX
|
|
JNE _2_48
|
|
JMP _2_39
|
|
_2_48:
|
|
MOV EAX,[_ch]
|
|
OR EAX,EAX
|
|
JE _2_50
|
|
JMP _2_49
|
|
_2_50:
|
|
MOV EAX,_2_1+9
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
JMP _2_39
|
|
_2_49:
|
|
XOR CL,CL
|
|
CALL _gch
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _keepch
|
|
ADD ESP,4
|
|
JMP _2_38
|
|
_2_39:
|
|
XOR CL,CL
|
|
CALL _gch
|
|
MOV EAX,39
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _keepch
|
|
ADD ESP,4
|
|
JMP _2_51
|
|
_2_36:
|
|
MOV EAX,[_ch]
|
|
MOV EBX,EAX
|
|
MOV EAX,47
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _2_55
|
|
JMP _2_53
|
|
_2_55:
|
|
MOV EAX,[_nch]
|
|
MOV EBX,EAX
|
|
MOV EAX,42
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _2_56
|
|
JMP _2_53
|
|
_2_56:
|
|
MOV EAX,1
|
|
JMP _2_54
|
|
_2_53:
|
|
XOR EAX,EAX
|
|
_2_54:
|
|
OR EAX,EAX
|
|
JNE _2_57
|
|
JMP _2_52
|
|
_2_57:
|
|
MOV EAX,2
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _bump
|
|
ADD ESP,4
|
|
_2_58:
|
|
MOV EAX,[_ch]
|
|
MOV EBX,EAX
|
|
MOV EAX,42
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _2_62
|
|
JMP _2_60
|
|
_2_62:
|
|
MOV EAX,[_nch]
|
|
MOV EBX,EAX
|
|
MOV EAX,47
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _2_63
|
|
JMP _2_60
|
|
_2_63:
|
|
MOV EAX,1
|
|
JMP _2_61
|
|
_2_60:
|
|
XOR EAX,EAX
|
|
_2_61:
|
|
OR EAX,EAX
|
|
JE _2_64
|
|
JMP _2_59
|
|
_2_64:
|
|
MOV EAX,[_ch]
|
|
OR EAX,EAX
|
|
JNE _2_66
|
|
JMP _2_65
|
|
_2_66:
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _bump
|
|
ADD ESP,4
|
|
JMP _2_67
|
|
_2_65:
|
|
XOR CL,CL
|
|
CALL _ifline
|
|
MOV EAX,[_eof]
|
|
OR EAX,EAX
|
|
JNE _2_69
|
|
JMP _2_68
|
|
_2_69:
|
|
JMP _2_59
|
|
_2_68:
|
|
_2_67:
|
|
JMP _2_58
|
|
_2_59:
|
|
MOV EAX,2
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _bump
|
|
ADD ESP,4
|
|
JMP _2_70
|
|
_2_52:
|
|
MOV EAX,[_ch]
|
|
MOV EBX,EAX
|
|
MOV EAX,47
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _2_74
|
|
JMP _2_72
|
|
_2_74:
|
|
MOV EAX,[_nch]
|
|
MOV EBX,EAX
|
|
MOV EAX,47
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _2_75
|
|
JMP _2_72
|
|
_2_75:
|
|
MOV EAX,1
|
|
JMP _2_73
|
|
_2_72:
|
|
XOR EAX,EAX
|
|
_2_73:
|
|
OR EAX,EAX
|
|
JNE _2_76
|
|
JMP _2_71
|
|
_2_76:
|
|
MOV EAX,2
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _bump
|
|
ADD ESP,4
|
|
_2_77:
|
|
MOV EAX,[_ch]
|
|
MOV EBX,EAX
|
|
MOV EAX,10
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _2_79
|
|
JMP _2_78
|
|
_2_79:
|
|
MOV EAX,[_ch]
|
|
OR EAX,EAX
|
|
JNE _2_81
|
|
JMP _2_80
|
|
_2_81:
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _bump
|
|
ADD ESP,4
|
|
JMP _2_82
|
|
_2_80:
|
|
MOV EAX,[_eof]
|
|
OR EAX,EAX
|
|
JNE _2_84
|
|
JMP _2_83
|
|
_2_84:
|
|
JMP _2_78
|
|
_2_83:
|
|
_2_82:
|
|
JMP _2_77
|
|
_2_78:
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _bump
|
|
ADD ESP,4
|
|
JMP _2_85
|
|
_2_71:
|
|
MOV EAX,[_ch]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _an
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _2_87
|
|
JMP _2_86
|
|
_2_87:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
_2_88:
|
|
MOV EAX,[_ch]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _an
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _2_92
|
|
JMP _2_90
|
|
_2_92:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,8
|
|
CALL __lt
|
|
OR EAX,EAX
|
|
JNE _2_93
|
|
JMP _2_90
|
|
_2_93:
|
|
MOV EAX,1
|
|
JMP _2_91
|
|
_2_90:
|
|
XOR EAX,EAX
|
|
_2_91:
|
|
OR EAX,EAX
|
|
JNE _2_94
|
|
JMP _2_89
|
|
_2_94:
|
|
MOV EAX,_msname
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV EAX,[_ch]
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
XOR CL,CL
|
|
CALL _gch
|
|
JMP _2_88
|
|
_2_89:
|
|
MOV EAX,_msname
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],AL
|
|
MOV EAX,_msname
|
|
PUSH EAX
|
|
MOV EAX,[_macn]
|
|
PUSH EAX
|
|
MOV EAX,11
|
|
PUSH EAX
|
|
MOV EAX,[_macn]
|
|
MOV EBX,3300
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV EAX,300
|
|
PUSH EAX
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV CL,6
|
|
CALL _search
|
|
ADD ESP,24
|
|
OR EAX,EAX
|
|
JNE _2_96
|
|
JMP _2_95
|
|
_2_96:
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
MOV EAX,[_cptr]
|
|
MOV EBX,9
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV EAX,2
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _getint
|
|
ADD ESP,8
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_2_97:
|
|
LEA EAX,[EBP-8]
|
|
PUSH EAX
|
|
MOV EAX,[_macq]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
OR EAX,EAX
|
|
JNE _2_99
|
|
JMP _2_98
|
|
_2_99:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _keepch
|
|
ADD ESP,4
|
|
JMP _2_97
|
|
_2_98:
|
|
_2_100:
|
|
MOV EAX,[_ch]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _an
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _2_102
|
|
JMP _2_101
|
|
_2_102:
|
|
XOR CL,CL
|
|
CALL _gch
|
|
JMP _2_100
|
|
_2_101:
|
|
JMP _2_103
|
|
_2_95:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
_2_104:
|
|
LEA EAX,[EBP-8]
|
|
PUSH EAX
|
|
MOV EAX,_msname
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
OR EAX,EAX
|
|
JNE _2_106
|
|
JMP _2_105
|
|
_2_106:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _keepch
|
|
ADD ESP,4
|
|
JMP _2_104
|
|
_2_105:
|
|
_2_103:
|
|
JMP _2_107
|
|
_2_86:
|
|
XOR CL,CL
|
|
CALL _gch
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _keepch
|
|
ADD ESP,4
|
|
_2_107:
|
|
_2_85:
|
|
_2_70:
|
|
_2_51:
|
|
_2_35:
|
|
_2_19:
|
|
JMP _2_7
|
|
_2_8:
|
|
MOV EAX,[_pptr]
|
|
MOV EBX,EAX
|
|
MOV EAX,127
|
|
CALL __ge
|
|
OR EAX,EAX
|
|
JNE _2_109
|
|
JMP _2_108
|
|
_2_109:
|
|
MOV EAX,_2_1+23
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
_2_108:
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _keepch
|
|
ADD ESP,4
|
|
MOV EAX,[_pline]
|
|
MOV DWORD [_line],EAX
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _bump
|
|
ADD ESP,4
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_2_1 DB 110,111,32,113,117,111,116,101,0,110
|
|
DB 111,32,97,112,111,115,116,114,111,112
|
|
DB 104,101,0,108,105,110,101,32,116,111
|
|
DB 111,32,108,111,110,103,0
|
|
|
|
_keepch:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,[_pptr]
|
|
MOV EBX,EAX
|
|
MOV EAX,127
|
|
CALL __lt
|
|
OR EAX,EAX
|
|
JNE _2_112
|
|
JMP _2_111
|
|
_2_112:
|
|
MOV EAX,[_pline]
|
|
PUSH EAX
|
|
MOV EAX,[_pptr]
|
|
INC EAX
|
|
MOV DWORD [_pptr],EAX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
_2_111:
|
|
POP EBP
|
|
RET
|
|
|
|
_ifline:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
_2_114:
|
|
XOR CL,CL
|
|
CALL _inline
|
|
MOV EAX,[_eof]
|
|
OR EAX,EAX
|
|
JNE _2_117
|
|
JMP _2_116
|
|
_2_117:
|
|
POP EBP
|
|
RET
|
|
_2_116:
|
|
MOV EAX,_2_113+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _2_119
|
|
JMP _2_118
|
|
_2_119:
|
|
MOV EAX,[_iflevel]
|
|
INC EAX
|
|
MOV DWORD [_iflevel],EAX
|
|
MOV EAX,[_skipleve]
|
|
OR EAX,EAX
|
|
JNE _2_121
|
|
JMP _2_120
|
|
_2_121:
|
|
JMP _2_114
|
|
_2_120:
|
|
MOV EAX,_msname
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _symname
|
|
ADD ESP,4
|
|
MOV EAX,_msname
|
|
PUSH EAX
|
|
MOV EAX,[_macn]
|
|
PUSH EAX
|
|
MOV EAX,11
|
|
PUSH EAX
|
|
MOV EAX,[_macn]
|
|
MOV EBX,3300
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV EAX,300
|
|
PUSH EAX
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV CL,6
|
|
CALL _search
|
|
ADD ESP,24
|
|
OR EAX,EAX
|
|
JE _2_123
|
|
JMP _2_122
|
|
_2_123:
|
|
MOV EAX,[_iflevel]
|
|
MOV DWORD [_skipleve],EAX
|
|
_2_122:
|
|
JMP _2_114
|
|
_2_118:
|
|
MOV EAX,_2_113+7
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _2_125
|
|
JMP _2_124
|
|
_2_125:
|
|
MOV EAX,[_iflevel]
|
|
INC EAX
|
|
MOV DWORD [_iflevel],EAX
|
|
MOV EAX,[_skipleve]
|
|
OR EAX,EAX
|
|
JNE _2_127
|
|
JMP _2_126
|
|
_2_127:
|
|
JMP _2_114
|
|
_2_126:
|
|
MOV EAX,_msname
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _symname
|
|
ADD ESP,4
|
|
MOV EAX,_msname
|
|
PUSH EAX
|
|
MOV EAX,[_macn]
|
|
PUSH EAX
|
|
MOV EAX,11
|
|
PUSH EAX
|
|
MOV EAX,[_macn]
|
|
MOV EBX,3300
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV EAX,300
|
|
PUSH EAX
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV CL,6
|
|
CALL _search
|
|
ADD ESP,24
|
|
OR EAX,EAX
|
|
JNE _2_129
|
|
JMP _2_128
|
|
_2_129:
|
|
MOV EAX,[_iflevel]
|
|
MOV DWORD [_skipleve],EAX
|
|
_2_128:
|
|
JMP _2_114
|
|
_2_124:
|
|
MOV EAX,_2_113+15
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _2_131
|
|
JMP _2_130
|
|
_2_131:
|
|
MOV EAX,[_iflevel]
|
|
OR EAX,EAX
|
|
JNE _2_133
|
|
JMP _2_132
|
|
_2_133:
|
|
MOV EAX,[_skipleve]
|
|
PUSH EAX
|
|
MOV EAX,[_iflevel]
|
|
POP EBX
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _2_135
|
|
JMP _2_134
|
|
_2_135:
|
|
XOR EAX,EAX
|
|
MOV DWORD [_skipleve],EAX
|
|
JMP _2_136
|
|
_2_134:
|
|
MOV EAX,[_skipleve]
|
|
OR EAX,EAX
|
|
JE _2_138
|
|
JMP _2_137
|
|
_2_138:
|
|
MOV EAX,[_iflevel]
|
|
MOV DWORD [_skipleve],EAX
|
|
_2_137:
|
|
_2_136:
|
|
JMP _2_139
|
|
_2_132:
|
|
XOR CL,CL
|
|
CALL _noiferr
|
|
_2_139:
|
|
JMP _2_114
|
|
_2_130:
|
|
MOV EAX,_2_113+21
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _2_141
|
|
JMP _2_140
|
|
_2_141:
|
|
MOV EAX,[_iflevel]
|
|
OR EAX,EAX
|
|
JNE _2_143
|
|
JMP _2_142
|
|
_2_143:
|
|
MOV EAX,[_skipleve]
|
|
PUSH EAX
|
|
MOV EAX,[_iflevel]
|
|
POP EBX
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _2_145
|
|
JMP _2_144
|
|
_2_145:
|
|
XOR EAX,EAX
|
|
MOV DWORD [_skipleve],EAX
|
|
_2_144:
|
|
MOV EAX,[_iflevel]
|
|
DEC EAX
|
|
MOV DWORD [_iflevel],EAX
|
|
JMP _2_146
|
|
_2_142:
|
|
XOR CL,CL
|
|
CALL _noiferr
|
|
_2_146:
|
|
JMP _2_114
|
|
_2_140:
|
|
MOV EAX,[_skipleve]
|
|
OR EAX,EAX
|
|
JNE _2_148
|
|
JMP _2_147
|
|
_2_148:
|
|
JMP _2_114
|
|
_2_147:
|
|
MOV EAX,[_ch]
|
|
OR EAX,EAX
|
|
JE _2_150
|
|
JMP _2_149
|
|
_2_150:
|
|
JMP _2_114
|
|
_2_149:
|
|
JMP _2_115
|
|
JMP _2_114
|
|
_2_115:
|
|
POP EBP
|
|
RET
|
|
_2_113 DB 35,105,102,100,101,102,0,35,105,102
|
|
DB 110,100,101,102,0,35,101,108,115,101
|
|
DB 0,35,101,110,100,105,102,0
|
|
|
|
_inline:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-8
|
|
MOV EAX,[_input]
|
|
MOV EBX,EAX
|
|
MOV EAX,-1
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _2_153
|
|
JMP _2_152
|
|
_2_153:
|
|
XOR CL,CL
|
|
CALL _openfile
|
|
_2_152:
|
|
MOV EAX,[_eof]
|
|
OR EAX,EAX
|
|
JNE _2_155
|
|
JMP _2_154
|
|
_2_155:
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_2_154:
|
|
LEA EAX,[EBP-8]
|
|
PUSH EAX
|
|
MOV EAX,[_input2]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
MOV EBX,EAX
|
|
MOV EAX,-1
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _2_157
|
|
JMP _2_156
|
|
_2_157:
|
|
LEA EAX,[EBP-8]
|
|
PUSH EAX
|
|
MOV EAX,[_input]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_2_156:
|
|
MOV EAX,[_line]
|
|
PUSH EAX
|
|
MOV EAX,127
|
|
PUSH EAX
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,3
|
|
CALL _fgets
|
|
ADD ESP,12
|
|
OR EAX,EAX
|
|
JE _2_159
|
|
JMP _2_158
|
|
_2_159:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _OS_fclos
|
|
ADD ESP,4
|
|
MOV EAX,[_input2]
|
|
MOV EBX,EAX
|
|
MOV EAX,-1
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _2_161
|
|
JMP _2_160
|
|
_2_161:
|
|
MOV EAX,-1
|
|
MOV DWORD [_input2],EAX
|
|
JMP _2_162
|
|
_2_160:
|
|
MOV EAX,-1
|
|
MOV DWORD [_input],EAX
|
|
_2_162:
|
|
MOV EAX,[_line]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],AL
|
|
JMP _2_163
|
|
_2_158:
|
|
MOV EAX,[_listfp]
|
|
OR EAX,EAX
|
|
JNE _2_165
|
|
JMP _2_164
|
|
_2_165:
|
|
MOV EAX,[_listfp]
|
|
PUSH EAX
|
|
MOV EAX,[_output]
|
|
POP EBX
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _2_167
|
|
JMP _2_166
|
|
_2_167:
|
|
MOV EAX,59
|
|
PUSH EAX
|
|
MOV EAX,[_output]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_fputc
|
|
ADD ESP,8
|
|
_2_166:
|
|
MOV EAX,[_line]
|
|
PUSH EAX
|
|
MOV EAX,[_listfp]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _fputs
|
|
ADD ESP,8
|
|
_2_164:
|
|
_2_163:
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _bump
|
|
ADD ESP,4
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_inbyte:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
_2_169:
|
|
MOV EAX,[_ch]
|
|
OR EAX,EAX
|
|
JE _2_171
|
|
JMP _2_170
|
|
_2_171:
|
|
MOV EAX,[_eof]
|
|
OR EAX,EAX
|
|
JNE _2_173
|
|
JMP _2_172
|
|
_2_173:
|
|
XOR EAX,EAX
|
|
POP EBP
|
|
RET
|
|
_2_172:
|
|
XOR CL,CL
|
|
CALL _preproce
|
|
JMP _2_169
|
|
_2_170:
|
|
XOR CL,CL
|
|
CALL _gch
|
|
POP EBP
|
|
RET
|
|
|
|
_symname:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-8
|
|
XOR CL,CL
|
|
CALL _blanks
|
|
MOV EAX,[_ch]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _alpha
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _2_176
|
|
JMP _2_175
|
|
_2_176:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],AL
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_2_175:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
_2_177:
|
|
MOV EAX,[_ch]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _an
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _2_179
|
|
JMP _2_178
|
|
_2_179:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
XOR CL,CL
|
|
CALL _gch
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,8
|
|
CALL __lt
|
|
OR EAX,EAX
|
|
JNE _2_181
|
|
JMP _2_180
|
|
_2_181:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
_2_180:
|
|
JMP _2_177
|
|
_2_178:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],AL
|
|
MOV EAX,1
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_need:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _2_184
|
|
JMP _2_183
|
|
_2_184:
|
|
MOV EAX,_2_182+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
_2_183:
|
|
POP EBP
|
|
RET
|
|
_2_182 DB 109,105,115,115,105,110,103,32,116,111
|
|
DB 107,101,110,0
|
|
|
|
_ns:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,_2_185+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _2_187
|
|
JMP _2_186
|
|
_2_187:
|
|
MOV EAX,_2_185+2
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
JMP _2_188
|
|
_2_186:
|
|
XOR EAX,EAX
|
|
MOV DWORD [_errflag],EAX
|
|
_2_188:
|
|
POP EBP
|
|
RET
|
|
_2_185 DB 59,0,110,111,32,115,101,109,105,99
|
|
DB 111,108,111,110,0
|
|
|
|
_match:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
XOR CL,CL
|
|
CALL _blanks
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
MOV EAX,[_lptr]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _streq
|
|
ADD ESP,8
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
OR EAX,EAX
|
|
JNE _2_191
|
|
JMP _2_190
|
|
_2_191:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _bump
|
|
ADD ESP,4
|
|
MOV EAX,1
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_2_190:
|
|
XOR EAX,EAX
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_streq:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
_2_193:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
OR EAX,EAX
|
|
JNE _2_195
|
|
JMP _2_194
|
|
_2_195:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
POP EBX
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _2_197
|
|
JMP _2_196
|
|
_2_197:
|
|
XOR EAX,EAX
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_2_196:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
JMP _2_193
|
|
_2_194:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_amatch:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
XOR CL,CL
|
|
CALL _blanks
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
MOV EAX,[_lptr]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,3
|
|
CALL _astreq
|
|
ADD ESP,12
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
OR EAX,EAX
|
|
JNE _2_200
|
|
JMP _2_199
|
|
_2_200:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _bump
|
|
ADD ESP,4
|
|
MOV EAX,1
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_2_199:
|
|
XOR EAX,EAX
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_astreq:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
_2_202:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
CALL __lt
|
|
OR EAX,EAX
|
|
JNE _2_204
|
|
JMP _2_203
|
|
_2_204:
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
POP EBX
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _2_206
|
|
JMP _2_205
|
|
_2_206:
|
|
JMP _2_203
|
|
_2_205:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,32
|
|
CALL __lt
|
|
OR EAX,EAX
|
|
JNE _2_208
|
|
JMP _2_207
|
|
_2_208:
|
|
JMP _2_203
|
|
_2_207:
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,32
|
|
CALL __lt
|
|
OR EAX,EAX
|
|
JNE _2_210
|
|
JMP _2_209
|
|
_2_210:
|
|
JMP _2_203
|
|
_2_209:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
JMP _2_202
|
|
_2_203:
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _an
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _2_214
|
|
JMP _2_212
|
|
_2_214:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _an
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _2_215
|
|
JMP _2_212
|
|
_2_215:
|
|
XOR EAX,EAX
|
|
JMP _2_213
|
|
_2_212:
|
|
MOV EAX,1
|
|
_2_213:
|
|
OR EAX,EAX
|
|
JNE _2_216
|
|
JMP _2_211
|
|
_2_216:
|
|
XOR EAX,EAX
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_2_211:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_nextop:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
XOR EAX,EAX
|
|
MOV DWORD [_opindex],EAX
|
|
XOR CL,CL
|
|
CALL _blanks
|
|
_2_218:
|
|
XOR EAX,EAX
|
|
MOV DWORD [_opsize],EAX
|
|
_2_220:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,32
|
|
CALL __gt
|
|
OR EAX,EAX
|
|
JNE _2_222
|
|
JMP _2_221
|
|
_2_222:
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
MOV EAX,[_opsize]
|
|
INC EAX
|
|
MOV DWORD [_opsize],EAX
|
|
DEC EAX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
JMP _2_220
|
|
_2_221:
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
MOV EAX,[_opsize]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],AL
|
|
MOV EAX,[_lptr]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _streq
|
|
ADD ESP,8
|
|
MOV DWORD [_opsize],EAX
|
|
OR EAX,EAX
|
|
JNE _2_224
|
|
JMP _2_223
|
|
_2_224:
|
|
MOV EAX,[_lptr]
|
|
PUSH EAX
|
|
MOV EAX,[_opsize]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,61
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _2_228
|
|
JMP _2_226
|
|
_2_228:
|
|
MOV EAX,[_lptr]
|
|
PUSH EAX
|
|
MOV EAX,[_opsize]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV EAX,[_lptr]
|
|
PUSH EAX
|
|
MOV EAX,[_opsize]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
POP EBX
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _2_229
|
|
JMP _2_226
|
|
_2_229:
|
|
MOV EAX,1
|
|
JMP _2_227
|
|
_2_226:
|
|
XOR EAX,EAX
|
|
_2_227:
|
|
OR EAX,EAX
|
|
JNE _2_230
|
|
JMP _2_225
|
|
_2_230:
|
|
MOV EAX,1
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_2_225:
|
|
_2_223:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
OR EAX,EAX
|
|
JNE _2_232
|
|
JMP _2_231
|
|
_2_232:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
MOV EAX,[_opindex]
|
|
INC EAX
|
|
MOV DWORD [_opindex],EAX
|
|
JMP _2_233
|
|
_2_231:
|
|
XOR EAX,EAX
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_2_233:
|
|
JMP _2_218
|
|
_2_219:
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_blanks:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
_2_235:
|
|
_2_237:
|
|
MOV EAX,[_ch]
|
|
OR EAX,EAX
|
|
JNE _2_239
|
|
JMP _2_238
|
|
_2_239:
|
|
XOR CL,CL
|
|
CALL _white
|
|
OR EAX,EAX
|
|
JNE _2_241
|
|
JMP _2_240
|
|
_2_241:
|
|
XOR CL,CL
|
|
CALL _gch
|
|
JMP _2_242
|
|
_2_240:
|
|
POP EBP
|
|
RET
|
|
_2_242:
|
|
JMP _2_237
|
|
_2_238:
|
|
MOV EAX,[_line]
|
|
PUSH EAX
|
|
MOV EAX,[_mline]
|
|
POP EBX
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _2_244
|
|
JMP _2_243
|
|
_2_244:
|
|
POP EBP
|
|
RET
|
|
_2_243:
|
|
XOR CL,CL
|
|
CALL _preproce
|
|
MOV EAX,[_eof]
|
|
OR EAX,EAX
|
|
JNE _2_246
|
|
JMP _2_245
|
|
_2_246:
|
|
JMP _2_236
|
|
_2_245:
|
|
JMP _2_235
|
|
_2_236:
|
|
POP EBP
|
|
RET
|
|
|
|
_white:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,[_lptr]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,32
|
|
CALL __le
|
|
OR EAX,EAX
|
|
JNE _2_250
|
|
JMP _2_248
|
|
_2_250:
|
|
MOV EAX,[_lptr]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
OR EAX,EAX
|
|
JNE _2_251
|
|
JMP _2_248
|
|
_2_251:
|
|
MOV EAX,1
|
|
JMP _2_249
|
|
_2_248:
|
|
XOR EAX,EAX
|
|
_2_249:
|
|
POP EBP
|
|
RET
|
|
|
|
_gch:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
MOV EAX,[_ch]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
OR EAX,EAX
|
|
JNE _2_254
|
|
JMP _2_253
|
|
_2_254:
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _bump
|
|
ADD ESP,4
|
|
_2_253:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_bump:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JNE _2_257
|
|
JMP _2_256
|
|
_2_257:
|
|
MOV EAX,[_lptr]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV DWORD [_lptr],EAX
|
|
JMP _2_258
|
|
_2_256:
|
|
MOV EAX,[_line]
|
|
MOV DWORD [_lptr],EAX
|
|
_2_258:
|
|
MOV EAX,[_lptr]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV DWORD [_nch],EAX
|
|
MOV DWORD [_ch],EAX
|
|
OR EAX,EAX
|
|
JNE _2_260
|
|
JMP _2_259
|
|
_2_260:
|
|
MOV EAX,[_lptr]
|
|
MOV EBX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV DWORD [_nch],EAX
|
|
_2_259:
|
|
POP EBP
|
|
RET
|
|
|
|
_kill:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,[_line]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],AL
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _bump
|
|
ADD ESP,4
|
|
POP EBP
|
|
RET
|
|
|
|
_skip:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
XOR CL,CL
|
|
CALL _inbyte
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _an
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _2_264
|
|
JMP _2_263
|
|
_2_264:
|
|
_2_265:
|
|
MOV EAX,[_ch]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _an
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _2_267
|
|
JMP _2_266
|
|
_2_267:
|
|
XOR CL,CL
|
|
CALL _gch
|
|
JMP _2_265
|
|
_2_266:
|
|
JMP _2_268
|
|
_2_263:
|
|
_2_269:
|
|
MOV EAX,[_ch]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _an
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _2_271
|
|
JMP _2_270
|
|
_2_271:
|
|
MOV EAX,[_ch]
|
|
OR EAX,EAX
|
|
JE _2_273
|
|
JMP _2_272
|
|
_2_273:
|
|
JMP _2_270
|
|
_2_272:
|
|
XOR CL,CL
|
|
CALL _gch
|
|
JMP _2_269
|
|
_2_270:
|
|
_2_268:
|
|
XOR CL,CL
|
|
CALL _blanks
|
|
POP EBP
|
|
RET
|
|
|
|
_endst:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
XOR CL,CL
|
|
CALL _blanks
|
|
MOV EAX,[_lptr]
|
|
PUSH EAX
|
|
MOV EAX,_2_274+0
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _streq
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JE _2_277
|
|
JMP _2_275
|
|
_2_277:
|
|
MOV EAX,[_ch]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JE _2_278
|
|
JMP _2_275
|
|
_2_278:
|
|
XOR EAX,EAX
|
|
JMP _2_276
|
|
_2_275:
|
|
MOV EAX,1
|
|
_2_276:
|
|
POP EBP
|
|
RET
|
|
_2_274 DB 59,0
|
|
|
|
_addsym:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,_glbptr
|
|
POP EBX
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _2_281
|
|
JMP _2_280
|
|
_2_281:
|
|
LEA EAX,[EBP+32]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _findglb
|
|
ADD ESP,4
|
|
MOV DWORD [_cptr2],EAX
|
|
OR EAX,EAX
|
|
JNE _2_283
|
|
JMP _2_282
|
|
_2_283:
|
|
MOV EAX,[_cptr2]
|
|
POP EBP
|
|
RET
|
|
_2_282:
|
|
MOV EAX,[_cptr]
|
|
OR EAX,EAX
|
|
JE _2_285
|
|
JMP _2_284
|
|
_2_285:
|
|
MOV EAX,_2_279+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
XOR EAX,EAX
|
|
POP EBP
|
|
RET
|
|
_2_284:
|
|
JMP _2_286
|
|
_2_280:
|
|
MOV EAX,[_locptr]
|
|
PUSH EAX
|
|
MOV EAX,[_symtab]
|
|
MOV EBX,400
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX,20
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
POP EBX
|
|
CALL __ugt
|
|
OR EAX,EAX
|
|
JNE _2_288
|
|
JMP _2_287
|
|
_2_288:
|
|
MOV EAX,_2_279+29
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
MOV EAX,7
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _OS_exit
|
|
ADD ESP,4
|
|
_2_287:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV DWORD [_cptr],EAX
|
|
_2_286:
|
|
MOV EAX,[_cptr]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+28]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
MOV EAX,[_cptr]
|
|
MOV EBX,1
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
LEA EAX,[EBP+24]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
MOV EAX,[_cptr]
|
|
MOV EBX,2
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
LEA EAX,[EBP+20]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,[_cptr]
|
|
MOV EBX,3
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV EAX,4
|
|
PUSH EAX
|
|
MOV CL,3
|
|
CALL _putint
|
|
ADD ESP,12
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,[_cptr]
|
|
MOV EBX,5
|
|
ADD EAX,EBX
|
|
MOV EBX,2
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV EAX,4
|
|
PUSH EAX
|
|
MOV CL,3
|
|
CALL _putint
|
|
ADD ESP,12
|
|
MOV EAX,[_cptr]
|
|
MOV EBX,11
|
|
ADD EAX,EBX
|
|
MOV DWORD [_cptr2],EAX
|
|
MOV DWORD [_cptr3],EAX
|
|
_2_289:
|
|
LEA EAX,[EBP+32]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _an
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _2_291
|
|
JMP _2_290
|
|
_2_291:
|
|
MOV EAX,[_cptr2]
|
|
INC EAX
|
|
MOV DWORD [_cptr2],EAX
|
|
DEC EAX
|
|
PUSH EAX
|
|
LEA EAX,[EBP+32]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
JMP _2_289
|
|
_2_290:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,_locptr
|
|
POP EBX
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _2_293
|
|
JMP _2_292
|
|
_2_293:
|
|
MOV EAX,[_cptr2]
|
|
PUSH EAX
|
|
MOV EAX,[_cptr2]
|
|
PUSH EAX
|
|
MOV EAX,[_cptr3]
|
|
POP EBX
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,[_cptr2]
|
|
INC EAX
|
|
MOV DWORD [_cptr2],EAX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_2_292:
|
|
MOV EAX,[_cptr]
|
|
POP EBP
|
|
RET
|
|
_2_279 DB 103,108,111,98,97,108,32,115,121,109
|
|
DB 98,111,108,32,116,97,98,108,101,32
|
|
DB 111,118,101,114,102,108,111,119,0,108
|
|
DB 111,99,97,108,32,115,121,109,98,111
|
|
DB 108,32,116,97,98,108,101,32,111,118
|
|
DB 101,114,102,108,111,119,0
|
|
|
|
_search:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
LEA EAX,[EBP+24]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+28]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _hash
|
|
ADD ESP,4
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
POP EBX
|
|
XCHG EAX,EBX
|
|
CDQ
|
|
IDIV EBX
|
|
MOV EAX,EDX
|
|
PUSH EAX
|
|
LEA EAX,[EBP+20]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
IMUL EBX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV DWORD [_cptr2],EAX
|
|
MOV DWORD [_cptr],EAX
|
|
_2_295:
|
|
MOV EAX,[_cptr]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
OR EAX,EAX
|
|
JNE _2_297
|
|
JMP _2_296
|
|
_2_297:
|
|
LEA EAX,[EBP+28]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,[_cptr]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV EAX,8
|
|
PUSH EAX
|
|
MOV CL,3
|
|
CALL _astreq
|
|
ADD ESP,12
|
|
OR EAX,EAX
|
|
JNE _2_299
|
|
JMP _2_298
|
|
_2_299:
|
|
MOV EAX,1
|
|
POP EBP
|
|
RET
|
|
_2_298:
|
|
MOV EAX,[_cptr]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+20]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV DWORD [_cptr],EAX
|
|
PUSH EAX
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
CALL __uge
|
|
OR EAX,EAX
|
|
JNE _2_301
|
|
JMP _2_300
|
|
_2_301:
|
|
LEA EAX,[EBP+24]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV DWORD [_cptr],EAX
|
|
_2_300:
|
|
MOV EAX,[_cptr]
|
|
PUSH EAX
|
|
MOV EAX,[_cptr2]
|
|
POP EBX
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _2_303
|
|
JMP _2_302
|
|
_2_303:
|
|
XOR EAX,EAX
|
|
MOV DWORD [_cptr],EAX
|
|
POP EBP
|
|
RET
|
|
_2_302:
|
|
JMP _2_295
|
|
_2_296:
|
|
XOR EAX,EAX
|
|
POP EBP
|
|
RET
|
|
|
|
_hash:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-8
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
_2_305:
|
|
LEA EAX,[EBP-8]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
OR EAX,EAX
|
|
JNE _2_307
|
|
JMP _2_306
|
|
_2_307:
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
MOV ECX,EAX
|
|
MOV EAX,EBX
|
|
SAL EAX,CL
|
|
PUSH EAX
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
JMP _2_305
|
|
_2_306:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_findglb:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,[_symtab]
|
|
MOV EBX,400
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV EAX,20
|
|
PUSH EAX
|
|
MOV EAX,[_symtab]
|
|
MOV EBX,400
|
|
ADD EAX,EBX
|
|
MOV EBX,3980
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV EAX,200
|
|
PUSH EAX
|
|
MOV EAX,11
|
|
PUSH EAX
|
|
MOV CL,6
|
|
CALL _search
|
|
ADD ESP,24
|
|
OR EAX,EAX
|
|
JNE _2_310
|
|
JMP _2_309
|
|
_2_310:
|
|
MOV EAX,[_cptr]
|
|
POP EBP
|
|
RET
|
|
_2_309:
|
|
XOR EAX,EAX
|
|
POP EBP
|
|
RET
|
|
|
|
_findloc:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,[_locptr]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
MOV DWORD [_cptr],EAX
|
|
_2_312:
|
|
MOV EAX,[_cptr]
|
|
PUSH EAX
|
|
MOV EAX,[_symtab]
|
|
POP EBX
|
|
CALL __ugt
|
|
OR EAX,EAX
|
|
JNE _2_314
|
|
JMP _2_313
|
|
_2_314:
|
|
MOV EAX,[_cptr]
|
|
PUSH EAX
|
|
MOV EAX,[_cptr]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
POP EBX
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
MOV DWORD [_cptr],EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,[_cptr]
|
|
PUSH EAX
|
|
MOV EAX,8
|
|
PUSH EAX
|
|
MOV CL,3
|
|
CALL _astreq
|
|
ADD ESP,12
|
|
OR EAX,EAX
|
|
JNE _2_316
|
|
JMP _2_315
|
|
_2_316:
|
|
MOV EAX,[_cptr]
|
|
MOV EBX,EAX
|
|
MOV EAX,11
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
POP EBP
|
|
RET
|
|
_2_315:
|
|
MOV EAX,[_cptr]
|
|
MOV EBX,EAX
|
|
MOV EAX,11
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
MOV DWORD [_cptr],EAX
|
|
JMP _2_312
|
|
_2_313:
|
|
XOR EAX,EAX
|
|
POP EBP
|
|
RET
|
|
|
|
_nextsym:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
LEA EAX,[EBP+8]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,11
|
|
ADD EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_2_318:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,32
|
|
CALL __ge
|
|
OR EAX,EAX
|
|
JNE _2_320
|
|
JMP _2_319
|
|
_2_320:
|
|
JMP _2_318
|
|
_2_319:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBP
|
|
RET
|
|
|
|
_addwhile:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,[_csp]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,4
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
XOR CL,CL
|
|
CALL _getlabel
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,8
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
XOR CL,CL
|
|
CALL _getlabel
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
MOV EAX,[_wqptr]
|
|
PUSH EAX
|
|
MOV EAX,[_wq]
|
|
MOV EBX,120
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX,12
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
POP EBX
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _2_323
|
|
JMP _2_322
|
|
_2_323:
|
|
MOV EAX,_2_321+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
MOV EAX,7
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _OS_exit
|
|
ADD ESP,4
|
|
_2_322:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
_2_324:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,3
|
|
CALL __lt
|
|
OR EAX,EAX
|
|
JNE _2_326
|
|
JMP _2_325
|
|
_2_326:
|
|
MOV EAX,[_wqptr]
|
|
INC EAX
|
|
INC EAX
|
|
INC EAX
|
|
INC EAX
|
|
MOV DWORD [_wqptr],EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
POP EBX
|
|
SHL EAX,1
|
|
SHL EAX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
JMP _2_324
|
|
_2_325:
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_2_321 DB 99,111,110,116,114,111,108,32,115,116
|
|
DB 97,116,101,109,101,110,116,32,110,101
|
|
DB 115,116,105,110,103,32,108,105,109,105
|
|
DB 116,0
|
|
|
|
_readwhil:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,[_wq]
|
|
POP EBX
|
|
CALL __ule
|
|
OR EAX,EAX
|
|
JNE _2_329
|
|
JMP _2_328
|
|
_2_329:
|
|
MOV EAX,_2_327+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
XOR EAX,EAX
|
|
POP EBP
|
|
RET
|
|
_2_328:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,12
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
POP EBP
|
|
RET
|
|
_2_330:
|
|
POP EBP
|
|
RET
|
|
_2_327 DB 111,117,116,32,111,102,32,99,111,110
|
|
DB 116,101,120,116,0
|
|
|
|
_delwhile:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,[_wqptr]
|
|
PUSH EAX
|
|
MOV EAX,[_wq]
|
|
POP EBX
|
|
CALL __ugt
|
|
OR EAX,EAX
|
|
JNE _2_333
|
|
JMP _2_332
|
|
_2_333:
|
|
MOV EAX,[_wqptr]
|
|
MOV EBX,EAX
|
|
MOV EAX,12
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
MOV DWORD [_wqptr],EAX
|
|
_2_332:
|
|
POP EBP
|
|
RET
|
|
|
|
_alpha:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _isalpha
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _2_337
|
|
JMP _2_335
|
|
_2_337:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,95
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JE _2_338
|
|
JMP _2_335
|
|
_2_338:
|
|
XOR EAX,EAX
|
|
JMP _2_336
|
|
_2_335:
|
|
MOV EAX,1
|
|
_2_336:
|
|
POP EBP
|
|
RET
|
|
|
|
_an:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _alpha
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _2_342
|
|
JMP _2_340
|
|
_2_342:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _isdigit
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _2_343
|
|
JMP _2_340
|
|
_2_343:
|
|
XOR EAX,EAX
|
|
JMP _2_341
|
|
_2_340:
|
|
MOV EAX,1
|
|
_2_341:
|
|
POP EBP
|
|
RET
|
|
|
|
_getlabel:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,[_nxtlab]
|
|
INC EAX
|
|
MOV DWORD [_nxtlab],EAX
|
|
POP EBP
|
|
RET
|
|
|
|
_getint:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_2_346:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
INC EAX
|
|
OR EAX,EAX
|
|
JNE _2_348
|
|
JMP _2_347
|
|
_2_348:
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,8
|
|
MOV ECX,EAX
|
|
MOV EAX,EBX
|
|
SAL EAX,CL
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,255
|
|
AND EAX,EBX
|
|
POP EBX
|
|
OR EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
JMP _2_346
|
|
_2_347:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_putint:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
_2_350:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
INC EAX
|
|
OR EAX,EAX
|
|
JNE _2_352
|
|
JMP _2_351
|
|
_2_352:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
PUSH EAX
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
LEA EAX,[EBP+16]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,8
|
|
MOV ECX,EAX
|
|
MOV EAX,EBX
|
|
SAR EAX,CL
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
JMP _2_350
|
|
_2_351:
|
|
POP EBP
|
|
RET
|
|
|
|
_lout:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _fputs
|
|
ADD ESP,8
|
|
MOV EAX,10
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_fputc
|
|
ADD ESP,8
|
|
POP EBP
|
|
RET
|
|
|
|
_illname:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,_2_354+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
XOR CL,CL
|
|
CALL _skip
|
|
POP EBP
|
|
RET
|
|
_2_354 DB 105,108,108,101,103,97,108,32,115,121
|
|
DB 109,98,111,108,0
|
|
|
|
_multidef:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,_2_355+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
POP EBP
|
|
RET
|
|
_2_355 DB 97,108,114,101,97,100,121,32,100,101
|
|
DB 102,105,110,101,100,0
|
|
|
|
_needlval:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,_2_356+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
POP EBP
|
|
RET
|
|
_2_356 DB 109,117,115,116,32,98,101,32,108,118
|
|
DB 97,108,117,101,0
|
|
|
|
_noiferr:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,_2_357+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
XOR EAX,EAX
|
|
MOV DWORD [_errflag],EAX
|
|
POP EBP
|
|
RET
|
|
_2_357 DB 110,111,32,109,97,116,99,104,105,110
|
|
DB 103,32,35,105,102,46,46,46,0
|
|
|
|
_error:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,[_errflag]
|
|
OR EAX,EAX
|
|
JNE _2_360
|
|
JMP _2_359
|
|
_2_360:
|
|
POP EBP
|
|
RET
|
|
_2_359:
|
|
MOV EAX,1
|
|
MOV DWORD [_errflag],EAX
|
|
_2_361:
|
|
MOV EAX,[_line]
|
|
PUSH EAX
|
|
MOV EAX,__iob
|
|
MOV EBX,64
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _lout
|
|
ADD ESP,8
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,__iob
|
|
MOV EBX,64
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _errout
|
|
ADD ESP,8
|
|
MOVSX EAX,BYTE [_alarm]
|
|
OR EAX,EAX
|
|
JNE _2_363
|
|
JMP _2_362
|
|
_2_363:
|
|
MOV EAX,7
|
|
PUSH EAX
|
|
MOV EAX,__iob
|
|
MOV EBX,64
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_fputc
|
|
ADD ESP,8
|
|
_2_362:
|
|
MOVSX EAX,BYTE [_pause]
|
|
OR EAX,EAX
|
|
JNE _2_365
|
|
JMP _2_364
|
|
_2_365:
|
|
_2_366:
|
|
MOV EAX,__iob
|
|
MOV EBX,64
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _OS_fgetc
|
|
ADD ESP,4
|
|
MOV EBX,EAX
|
|
MOV EAX,10
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _2_368
|
|
JMP _2_367
|
|
_2_368:
|
|
JMP _2_366
|
|
_2_367:
|
|
_2_364:
|
|
MOV EAX,[_listfp]
|
|
OR EAX,EAX
|
|
JG _2_370
|
|
JMP _2_369
|
|
_2_370:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,[_listfp]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _errout
|
|
ADD ESP,8
|
|
_2_369:
|
|
POP EBP
|
|
RET
|
|
|
|
_errout:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
MOV EAX,[_line]
|
|
MOV EBX,2
|
|
ADD EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_2_372:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
PUSH EAX
|
|
MOV EAX,[_lptr]
|
|
POP EBX
|
|
CALL __ule
|
|
OR EAX,EAX
|
|
JNE _2_374
|
|
JMP _2_373
|
|
_2_374:
|
|
MOV EAX,32
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_fputc
|
|
ADD ESP,8
|
|
JMP _2_372
|
|
_2_373:
|
|
MOV EAX,_2_371+0
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _lout
|
|
ADD ESP,8
|
|
MOV EAX,_2_371+3
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _fputs
|
|
ADD ESP,8
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _lout
|
|
ADD ESP,8
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_2_371 DB 47,92,0,42,42,42,42,32,0
|
|
|