kolibrios/programs/develop/scc/CC2.ASM

3035 lines
37 KiB
NASM
Raw Permalink Normal View History

_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