forked from KolibriOS/kolibrios
1967c25fac
git-svn-id: svn://kolibrios.org@718 a494cfbc-eb01-0410-851d-a64ba20cac60
5067 lines
64 KiB
NASM
5067 lines
64 KiB
NASM
_nogo: TIMES 1 DD 0
|
|
_noloc: TIMES 1 DD 0
|
|
_opindex: TIMES 1 DD 0
|
|
_opsize: TIMES 1 DD 0
|
|
_swactive: TIMES 1 DD 0
|
|
_swdefaul: TIMES 1 DD 0
|
|
_swnext DD 0
|
|
_swend DD 0
|
|
_stage DD 0
|
|
_wq DD 0
|
|
_argcs: TIMES 1 DD 0
|
|
_argvs DD 0
|
|
_wqptr DD 0
|
|
_litptr: TIMES 1 DD 0
|
|
_macptr: TIMES 1 DD 0
|
|
_pptr: TIMES 1 DD 0
|
|
_ch: TIMES 1 DD 0
|
|
_nch: TIMES 1 DD 0
|
|
_declared: TIMES 1 DD 0
|
|
_iflevel: TIMES 1 DD 0
|
|
_skipleve: TIMES 1 DD 0
|
|
_nxtlab: TIMES 1 DD 0
|
|
_litlab: TIMES 1 DD 0
|
|
_csp: TIMES 1 DD 0
|
|
_argstk: TIMES 1 DD 0
|
|
_argtop: TIMES 1 DD 0
|
|
_ncmp: TIMES 1 DD 0
|
|
_errflag: TIMES 1 DD 0
|
|
_eof: TIMES 1 DD 0
|
|
_output: TIMES 1 DD 0
|
|
_files: TIMES 1 DD 0
|
|
_filearg DD 0
|
|
_input DD -1
|
|
_input2 DD -1
|
|
_usexpr DD 1
|
|
_ccode DD 1
|
|
_snext DD 0
|
|
_stail DD 0
|
|
_slast DD 0
|
|
_listfp: TIMES 1 DD 0
|
|
_lastst: TIMES 1 DD 0
|
|
_oldseg: TIMES 1 DD 0
|
|
_optimize: TIMES 1 DB 0
|
|
_alarm: TIMES 1 DB 0
|
|
_monitor: TIMES 1 DB 0
|
|
_pause: TIMES 1 DB 0
|
|
_symtab DD 0
|
|
_litq DD 0
|
|
_macn DD 0
|
|
_macq DD 0
|
|
_pline DD 0
|
|
_mline DD 0
|
|
_line DD 0
|
|
_lptr DD 0
|
|
_glbptr DD 0
|
|
_locptr DD 0
|
|
_quote DB 34
|
|
TIMES 1 DB 0
|
|
_cptr DD 0
|
|
_cptr2 DD 0
|
|
_cptr3 DD 0
|
|
_msname: TIMES 9 DB 0
|
|
_ssname: TIMES 9 DB 0
|
|
_op DD 57,73,3,20,55,43,22,47,35,7
|
|
DD 6,1,69,52,16,49
|
|
_op2 DD 57,73,3,20,55,44,23,48,36,7
|
|
DD 6,1,69,53,17,50
|
|
|
|
_main:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,_1_1+0
|
|
PUSH EAX
|
|
MOV EAX,__iob
|
|
MOV EBX,32
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _fputs
|
|
ADD ESP,8
|
|
MOV EAX,_1_1+47
|
|
PUSH EAX
|
|
MOV EAX,__iob
|
|
MOV EBX,32
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _fputs
|
|
ADD ESP,8
|
|
MOV EAX,_1_1+95
|
|
PUSH EAX
|
|
MOV EAX,__iob
|
|
MOV EBX,32
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _fputs
|
|
ADD ESP,8
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV DWORD [_argcs],EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV DWORD [_argvs],EAX
|
|
MOV EAX,360
|
|
PUSH EAX
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_callo
|
|
ADD ESP,8
|
|
MOV DWORD [_swnext],EAX
|
|
MOV EAX,[_swnext]
|
|
MOV EBX,1424
|
|
ADD EAX,EBX
|
|
MOV DWORD [_swend],EAX
|
|
MOV EAX,200
|
|
PUSH EAX
|
|
MOV EAX,8
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_callo
|
|
ADD ESP,8
|
|
MOV DWORD [_stage],EAX
|
|
MOV EAX,30
|
|
PUSH EAX
|
|
MOV EAX,4
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_callo
|
|
ADD ESP,8
|
|
MOV DWORD [_wq],EAX
|
|
MOV DWORD [_wqptr],EAX
|
|
MOV EAX,3000
|
|
PUSH EAX
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_callo
|
|
ADD ESP,8
|
|
MOV DWORD [_litq],EAX
|
|
MOV EAX,3300
|
|
PUSH EAX
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_callo
|
|
ADD ESP,8
|
|
MOV DWORD [_macn],EAX
|
|
MOV EAX,2100
|
|
PUSH EAX
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_callo
|
|
ADD ESP,8
|
|
MOV DWORD [_macq],EAX
|
|
MOV EAX,128
|
|
PUSH EAX
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_callo
|
|
ADD ESP,8
|
|
MOV DWORD [_pline],EAX
|
|
MOV EAX,128
|
|
PUSH EAX
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_callo
|
|
ADD ESP,8
|
|
MOV DWORD [_mline],EAX
|
|
MOV EAX,[_stage]
|
|
MOV EBX,6400
|
|
ADD EAX,EBX
|
|
MOV DWORD [_slast],EAX
|
|
MOV EAX,4400
|
|
PUSH EAX
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_callo
|
|
ADD ESP,8
|
|
MOV DWORD [_symtab],EAX
|
|
MOV EAX,[_symtab]
|
|
MOV DWORD [_locptr],EAX
|
|
MOV EAX,[_symtab]
|
|
MOV EBX,400
|
|
ADD EAX,EBX
|
|
MOV DWORD [_glbptr],EAX
|
|
XOR CL,CL
|
|
CALL _ask
|
|
XOR CL,CL
|
|
CALL _openfile
|
|
XOR CL,CL
|
|
CALL _preproce
|
|
XOR CL,CL
|
|
CALL _header
|
|
XOR CL,CL
|
|
CALL _setcodes
|
|
XOR CL,CL
|
|
CALL _parse
|
|
XOR CL,CL
|
|
CALL _trailer
|
|
MOV EAX,[_output]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _OS_fclos
|
|
ADD ESP,4
|
|
POP EBP
|
|
RET
|
|
_1_1 DB 83,109,97,108,108,32,67,32,51,56
|
|
DB 54,47,78,84,44,32,86,101,114,115
|
|
DB 105,111,110,32,51,46,49,44,32,82
|
|
DB 101,118,105,115,105,111,110,32,76,101
|
|
DB 118,101,108,32,49,10,0,67,111,112
|
|
DB 121,114,105,103,104,116,32,49,57,56
|
|
DB 50,44,32,49,57,56,51,44,32,49
|
|
DB 57,56,53,44,32,49,57,56,56,32
|
|
DB 74,46,32,69,46,32,72,101,110,100
|
|
DB 114,105,120,10,0,67,111,112,121,114
|
|
DB 105,103,104,116,32,49,57,57,56,32
|
|
DB 32,72,32,84,32,87,97,108,104,101
|
|
DB 105,109,10,10,0
|
|
|
|
_parse:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
_1_3:
|
|
MOV EAX,[_eof]
|
|
OR EAX,EAX
|
|
JE _1_5
|
|
JMP _1_4
|
|
_1_5:
|
|
MOV EAX,_1_2+0
|
|
PUSH EAX
|
|
MOV EAX,6
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_7
|
|
JMP _1_6
|
|
_1_7:
|
|
MOV EAX,3
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _dodeclar
|
|
ADD ESP,4
|
|
JMP _1_8
|
|
_1_6:
|
|
MOV EAX,2
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _dodeclar
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_10
|
|
JMP _1_9
|
|
_1_10:
|
|
JMP _1_11
|
|
_1_9:
|
|
MOV EAX,_1_2+7
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_13
|
|
JMP _1_12
|
|
_1_13:
|
|
XOR CL,CL
|
|
CALL _doasm
|
|
JMP _1_14
|
|
_1_12:
|
|
MOV EAX,_1_2+12
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_16
|
|
JMP _1_15
|
|
_1_16:
|
|
XOR CL,CL
|
|
CALL _doinclud
|
|
JMP _1_17
|
|
_1_15:
|
|
MOV EAX,_1_2+21
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_19
|
|
JMP _1_18
|
|
_1_19:
|
|
XOR CL,CL
|
|
CALL _dodefine
|
|
JMP _1_20
|
|
_1_18:
|
|
XOR CL,CL
|
|
CALL _dofuncti
|
|
_1_20:
|
|
_1_17:
|
|
_1_14:
|
|
_1_11:
|
|
_1_8:
|
|
XOR CL,CL
|
|
CALL _blanks
|
|
JMP _1_3
|
|
_1_4:
|
|
POP EBP
|
|
RET
|
|
_1_2 DB 101,120,116,101,114,110,0,35,97,115
|
|
DB 109,0,35,105,110,99,108,117,100,101
|
|
DB 0,35,100,101,102,105,110,101,0
|
|
|
|
_dodeclar:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,_1_21+0
|
|
PUSH EAX
|
|
MOV EAX,4
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_23
|
|
JMP _1_22
|
|
_1_23:
|
|
MOV EAX,4
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _declglb
|
|
ADD ESP,8
|
|
JMP _1_24
|
|
_1_22:
|
|
MOV EAX,_1_21+5
|
|
PUSH EAX
|
|
MOV EAX,8
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_26
|
|
JMP _1_25
|
|
_1_26:
|
|
MOV EAX,_1_21+14
|
|
PUSH EAX
|
|
MOV EAX,4
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_28
|
|
JMP _1_27
|
|
_1_28:
|
|
MOV EAX,5
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _declglb
|
|
ADD ESP,8
|
|
JMP _1_29
|
|
_1_27:
|
|
MOV EAX,_1_21+19
|
|
PUSH EAX
|
|
MOV EAX,3
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
MOV EAX,17
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _declglb
|
|
ADD ESP,8
|
|
_1_29:
|
|
JMP _1_30
|
|
_1_25:
|
|
MOV EAX,_1_21+23
|
|
PUSH EAX
|
|
MOV EAX,3
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JE _1_34
|
|
JMP _1_32
|
|
_1_34:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,3
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JE _1_35
|
|
JMP _1_32
|
|
_1_35:
|
|
XOR EAX,EAX
|
|
JMP _1_33
|
|
_1_32:
|
|
MOV EAX,1
|
|
_1_33:
|
|
OR EAX,EAX
|
|
JNE _1_36
|
|
JMP _1_31
|
|
_1_36:
|
|
MOV EAX,16
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _declglb
|
|
ADD ESP,8
|
|
JMP _1_37
|
|
_1_31:
|
|
XOR EAX,EAX
|
|
POP EBP
|
|
RET
|
|
_1_37:
|
|
_1_30:
|
|
_1_24:
|
|
XOR CL,CL
|
|
CALL _ns
|
|
MOV EAX,1
|
|
POP EBP
|
|
RET
|
|
_1_21 DB 99,104,97,114,0,117,110,115,105,103
|
|
DB 110,101,100,0,99,104,97,114,0,105
|
|
DB 110,116,0,105,110,116,0
|
|
|
|
_declglb:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-8
|
|
_1_39:
|
|
XOR CL,CL
|
|
CALL _endst
|
|
OR EAX,EAX
|
|
JNE _1_42
|
|
JMP _1_41
|
|
_1_42:
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_41:
|
|
MOV EAX,_1_38+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_44
|
|
JMP _1_43
|
|
_1_44:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX,3
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
JMP _1_45
|
|
_1_43:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
MOV [EBX],EAX
|
|
_1_45:
|
|
MOV EAX,_ssname
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _symname
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _1_47
|
|
JMP _1_46
|
|
_1_47:
|
|
XOR CL,CL
|
|
CALL _illname
|
|
_1_46:
|
|
MOV EAX,_ssname
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _findglb
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_49
|
|
JMP _1_48
|
|
_1_49:
|
|
MOV EAX,_ssname
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _multidef
|
|
ADD ESP,4
|
|
_1_48:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_51
|
|
JMP _1_50
|
|
_1_51:
|
|
MOV EAX,_1_38+2
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_53
|
|
JMP _1_52
|
|
_1_53:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX,4
|
|
MOV [EBX],EAX
|
|
MOV EAX,_1_38+4
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _need
|
|
ADD ESP,4
|
|
JMP _1_54
|
|
_1_52:
|
|
MOV EAX,_1_38+6
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_56
|
|
JMP _1_55
|
|
_1_56:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX,2
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP-8]
|
|
PUSH EAX
|
|
XOR CL,CL
|
|
CALL _needsub
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_1_55:
|
|
_1_54:
|
|
_1_50:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,3
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_58
|
|
JMP _1_57
|
|
_1_58:
|
|
MOV EAX,_ssname
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,2
|
|
MOV ECX,EAX
|
|
MOV EAX,EBX
|
|
SAR EAX,CL
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,3
|
|
CALL _external
|
|
ADD ESP,12
|
|
JMP _1_59
|
|
_1_57:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,4
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _1_61
|
|
JMP _1_60
|
|
_1_61:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,2
|
|
MOV ECX,EAX
|
|
MOV EAX,EBX
|
|
SAR EAX,CL
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,3
|
|
CALL _initials
|
|
ADD ESP,12
|
|
_1_60:
|
|
_1_59:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,3
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_63
|
|
JMP _1_62
|
|
_1_63:
|
|
MOV EAX,_ssname
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,4
|
|
PUSH EAX
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV EAX,_glbptr
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,7
|
|
CALL _addsym
|
|
ADD ESP,28
|
|
JMP _1_64
|
|
_1_62:
|
|
MOV EAX,_ssname
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
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
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,2
|
|
MOV ECX,EAX
|
|
MOV EAX,EBX
|
|
SAR EAX,CL
|
|
POP EBX
|
|
IMUL EBX
|
|
PUSH EAX
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV EAX,_glbptr
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,7
|
|
CALL _addsym
|
|
ADD ESP,28
|
|
_1_64:
|
|
MOV EAX,_1_38+8
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _1_66
|
|
JMP _1_65
|
|
_1_66:
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_65:
|
|
JMP _1_39
|
|
_1_40:
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_38 DB 42,0,40,0,41,0,91,0,44,0
|
|
|
|
_initials:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
XOR EAX,EAX
|
|
MOV DWORD [_litptr],EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JE _1_69
|
|
JMP _1_68
|
|
_1_69:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX,-1
|
|
MOV [EBX],EAX
|
|
_1_68:
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
MOV EAX,_1_67+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_71
|
|
JMP _1_70
|
|
_1_71:
|
|
MOV EAX,_1_67+2
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_73
|
|
JMP _1_72
|
|
_1_73:
|
|
_1_74:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JNE _1_76
|
|
JMP _1_75
|
|
_1_76:
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
PUSH EAX
|
|
MOV CL,3
|
|
CALL _init
|
|
ADD ESP,12
|
|
MOV EAX,_1_67+4
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _1_78
|
|
JMP _1_77
|
|
_1_78:
|
|
JMP _1_75
|
|
_1_77:
|
|
JMP _1_74
|
|
_1_75:
|
|
MOV EAX,_1_67+6
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _need
|
|
ADD ESP,4
|
|
JMP _1_79
|
|
_1_72:
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
PUSH EAX
|
|
MOV CL,3
|
|
CALL _init
|
|
ADD ESP,12
|
|
_1_79:
|
|
_1_70:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,-1
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_83
|
|
JMP _1_81
|
|
_1_83:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,-1
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_84
|
|
JMP _1_81
|
|
_1_84:
|
|
MOV EAX,1
|
|
JMP _1_82
|
|
_1_81:
|
|
XOR EAX,EAX
|
|
_1_82:
|
|
OR EAX,EAX
|
|
JNE _1_85
|
|
JMP _1_80
|
|
_1_85:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,2
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_87
|
|
JMP _1_86
|
|
_1_87:
|
|
MOV EAX,_1_67+8
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
_1_86:
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX,4
|
|
MOV [EBX],EAX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _stowlit
|
|
ADD ESP,8
|
|
_1_80:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _public
|
|
ADD ESP,4
|
|
MOV EAX,[_litptr]
|
|
OR EAX,EAX
|
|
JG _1_89
|
|
JMP _1_88
|
|
_1_89:
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _dumplits
|
|
ADD ESP,4
|
|
JMP _1_90
|
|
_1_88:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JG _1_92
|
|
JMP _1_91
|
|
_1_92:
|
|
MOV EAX,58
|
|
PUSH EAX
|
|
MOV EAX,[_output]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_fputc
|
|
ADD ESP,8
|
|
_1_91:
|
|
_1_90:
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _dumpzero
|
|
ADD ESP,8
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_67 DB 61,0,123,0,44,0,125,0,110,101
|
|
DB 101,100,32,97,114,114,97,121,32,115
|
|
DB 105,122,101,0
|
|
|
|
_init:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _string
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_95
|
|
JMP _1_94
|
|
_1_95:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JE _1_99
|
|
JMP _1_97
|
|
_1_99:
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JE _1_100
|
|
JMP _1_97
|
|
_1_100:
|
|
XOR EAX,EAX
|
|
JMP _1_98
|
|
_1_97:
|
|
MOV EAX,1
|
|
_1_98:
|
|
OR EAX,EAX
|
|
JNE _1_101
|
|
JMP _1_96
|
|
_1_101:
|
|
MOV EAX,_1_93+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
_1_96:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,[_litptr]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
POP EBX
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,3
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_103
|
|
JMP _1_102
|
|
_1_103:
|
|
XOR CL,CL
|
|
CALL _point
|
|
_1_102:
|
|
JMP _1_104
|
|
_1_94:
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _constexp
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_106
|
|
JMP _1_105
|
|
_1_106:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,3
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_108
|
|
JMP _1_107
|
|
_1_108:
|
|
MOV EAX,_1_93+42
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
_1_107:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _stowlit
|
|
ADD ESP,8
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_1_105:
|
|
_1_104:
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_93 DB 109,117,115,116,32,97,115,115,105,103
|
|
DB 110,32,116,111,32,99,104,97,114,32
|
|
DB 112,111,105,110,116,101,114,32,111,114
|
|
DB 32,99,104,97,114,32,97,114,114,97
|
|
DB 121,0,99,97,110,110,111,116,32,97
|
|
DB 115,115,105,103,110,32,116,111,32,112
|
|
DB 111,105,110,116,101,114,0
|
|
|
|
_needsub:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
MOV EAX,_1_109+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_111
|
|
JMP _1_110
|
|
_1_111:
|
|
XOR EAX,EAX
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_110:
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _constexp
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _1_113
|
|
JMP _1_112
|
|
_1_113:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
MOV [EBX],EAX
|
|
_1_112:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JL _1_115
|
|
JMP _1_114
|
|
_1_115:
|
|
MOV EAX,_1_109+2
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
NEG EAX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_1_114:
|
|
MOV EAX,_1_109+24
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _need
|
|
ADD ESP,4
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_109 DB 93,0,110,101,103,97,116,105,118,101
|
|
DB 32,115,105,122,101,32,105,108,108,101
|
|
DB 103,97,108,0,93,0
|
|
|
|
_doinclud:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-36
|
|
XOR CL,CL
|
|
CALL _blanks
|
|
MOV EAX,[_lptr]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,34
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JE _1_120
|
|
JMP _1_118
|
|
_1_120:
|
|
MOV EAX,[_lptr]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,60
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JE _1_121
|
|
JMP _1_118
|
|
_1_121:
|
|
XOR EAX,EAX
|
|
JMP _1_119
|
|
_1_118:
|
|
MOV EAX,1
|
|
_1_119:
|
|
OR EAX,EAX
|
|
JNE _1_122
|
|
JMP _1_117
|
|
_1_122:
|
|
MOV EAX,[_lptr]
|
|
INC EAX
|
|
MOV DWORD [_lptr],EAX
|
|
_1_117:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
_1_123:
|
|
MOV EAX,[_lptr]
|
|
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 _1_127
|
|
JMP _1_125
|
|
_1_127:
|
|
MOV EAX,[_lptr]
|
|
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,34
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _1_128
|
|
JMP _1_125
|
|
_1_128:
|
|
MOV EAX,[_lptr]
|
|
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,62
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _1_129
|
|
JMP _1_125
|
|
_1_129:
|
|
MOV EAX,[_lptr]
|
|
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,10
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _1_130
|
|
JMP _1_125
|
|
_1_130:
|
|
MOV EAX,1
|
|
JMP _1_126
|
|
_1_125:
|
|
XOR EAX,EAX
|
|
_1_126:
|
|
OR EAX,EAX
|
|
JNE _1_131
|
|
JMP _1_124
|
|
_1_131:
|
|
LEA EAX,[EBP-36]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV EAX,[_lptr]
|
|
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
|
|
MOV [EBX],AL
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
JMP _1_123
|
|
_1_124:
|
|
LEA EAX,[EBP-36]
|
|
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
|
|
LEA EAX,[EBP-36]
|
|
PUSH EAX
|
|
MOV EAX,_1_116+0
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_fopen
|
|
ADD ESP,8
|
|
MOV DWORD [_input2],EAX
|
|
OR EAX,EAX
|
|
JE _1_133
|
|
JMP _1_132
|
|
_1_133:
|
|
MOV EAX,-1
|
|
MOV DWORD [_input2],EAX
|
|
MOV EAX,_1_116+2
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
_1_132:
|
|
XOR CL,CL
|
|
CALL _kill
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_116 DB 114,0,111,112,101,110,32,102,97,105
|
|
DB 108,117,114,101,32,111,110,32,105,110
|
|
DB 99,108,117,100,101,32,102,105,108,101
|
|
DB 0
|
|
|
|
_dodefine:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
MOV EAX,_msname
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _symname
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _1_136
|
|
JMP _1_135
|
|
_1_136:
|
|
XOR CL,CL
|
|
CALL _illname
|
|
XOR CL,CL
|
|
CALL _kill
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_135:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
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 _1_138
|
|
JMP _1_137
|
|
_1_138:
|
|
MOV EAX,[_cptr]
|
|
MOV DWORD [_cptr2],EAX
|
|
OR EAX,EAX
|
|
JNE _1_140
|
|
JMP _1_139
|
|
_1_140:
|
|
_1_141:
|
|
MOV EAX,[_cptr2]
|
|
INC EAX
|
|
MOV DWORD [_cptr2],EAX
|
|
DEC EAX
|
|
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 _1_143
|
|
JMP _1_142
|
|
_1_143:
|
|
JMP _1_141
|
|
_1_142:
|
|
JMP _1_144
|
|
_1_139:
|
|
MOV EAX,_1_134+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_144:
|
|
_1_137:
|
|
MOV EAX,[_macptr]
|
|
PUSH EAX
|
|
MOV EAX,[_cptr]
|
|
MOV EBX,9
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV EAX,2
|
|
PUSH EAX
|
|
MOV CL,3
|
|
CALL _putint
|
|
ADD ESP,12
|
|
_1_145:
|
|
XOR CL,CL
|
|
CALL _white
|
|
OR EAX,EAX
|
|
JNE _1_147
|
|
JMP _1_146
|
|
_1_147:
|
|
XOR CL,CL
|
|
CALL _gch
|
|
JMP _1_145
|
|
_1_146:
|
|
_1_148:
|
|
XOR CL,CL
|
|
CALL _gch
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _putmac
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_150
|
|
JMP _1_149
|
|
_1_150:
|
|
JMP _1_148
|
|
_1_149:
|
|
MOV EAX,[_macptr]
|
|
MOV EBX,EAX
|
|
MOV EAX,2099
|
|
CALL __ge
|
|
OR EAX,EAX
|
|
JNE _1_152
|
|
JMP _1_151
|
|
_1_152:
|
|
MOV EAX,_1_134+22
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
MOV EAX,7
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _OS_exit
|
|
ADD ESP,4
|
|
_1_151:
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_134 DB 109,97,99,114,111,32,110,97,109,101
|
|
DB 32,116,97,98,108,101,32,102,117,108
|
|
DB 108,0,109,97,99,114,111,32,115,116
|
|
DB 114,105,110,103,32,113,117,101,117,101
|
|
DB 32,102,117,108,108,0
|
|
|
|
_putmac:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,[_macq]
|
|
PUSH EAX
|
|
MOV EAX,[_macptr]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
MOV EAX,[_macptr]
|
|
MOV EBX,EAX
|
|
MOV EAX,2099
|
|
CALL __lt
|
|
OR EAX,EAX
|
|
JNE _1_155
|
|
JMP _1_154
|
|
_1_155:
|
|
MOV EAX,[_macptr]
|
|
INC EAX
|
|
MOV DWORD [_macptr],EAX
|
|
_1_154:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
POP EBP
|
|
RET
|
|
|
|
_dofuncti:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
XOR EAX,EAX
|
|
MOV DWORD [_litptr],EAX
|
|
MOV DWORD [_lastst],EAX
|
|
MOV DWORD [_noloc],EAX
|
|
MOV DWORD [_nogo],EAX
|
|
XOR CL,CL
|
|
CALL _getlabel
|
|
MOV DWORD [_litlab],EAX
|
|
MOV EAX,[_symtab]
|
|
MOV DWORD [_locptr],EAX
|
|
MOV EAX,_1_156+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_158
|
|
JMP _1_157
|
|
_1_158:
|
|
XOR CL,CL
|
|
CALL _blanks
|
|
_1_157:
|
|
MOVSX EAX,BYTE [_monitor]
|
|
OR EAX,EAX
|
|
JNE _1_160
|
|
JMP _1_159
|
|
_1_160:
|
|
MOV EAX,[_line]
|
|
PUSH EAX
|
|
MOV EAX,__iob
|
|
MOV EBX,64
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _lout
|
|
ADD ESP,8
|
|
_1_159:
|
|
MOV EAX,_ssname
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _symname
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _1_162
|
|
JMP _1_161
|
|
_1_162:
|
|
MOV EAX,_1_156+5
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
XOR EAX,EAX
|
|
MOV DWORD [_errflag],EAX
|
|
XOR CL,CL
|
|
CALL _kill
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_161:
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
MOV EAX,_ssname
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _findglb
|
|
ADD ESP,4
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
OR EAX,EAX
|
|
JNE _1_164
|
|
JMP _1_163
|
|
_1_164:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,2
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,4
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_166
|
|
JMP _1_165
|
|
_1_166:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,2
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX,2
|
|
MOV [EBX],AL
|
|
JMP _1_167
|
|
_1_165:
|
|
MOV EAX,_ssname
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _multidef
|
|
ADD ESP,4
|
|
_1_167:
|
|
JMP _1_168
|
|
_1_163:
|
|
MOV EAX,_ssname
|
|
PUSH EAX
|
|
MOV EAX,4
|
|
PUSH EAX
|
|
MOV EAX,16
|
|
PUSH EAX
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV EAX,_glbptr
|
|
PUSH EAX
|
|
MOV EAX,2
|
|
PUSH EAX
|
|
MOV CL,7
|
|
CALL _addsym
|
|
ADD ESP,28
|
|
_1_168:
|
|
MOV EAX,4
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _public
|
|
ADD ESP,4
|
|
XOR EAX,EAX
|
|
MOV DWORD [_argstk],EAX
|
|
MOV EAX,_1_156+37
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _1_170
|
|
JMP _1_169
|
|
_1_170:
|
|
MOV EAX,_1_156+39
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
_1_169:
|
|
_1_171:
|
|
MOV EAX,_1_156+53
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _1_173
|
|
JMP _1_172
|
|
_1_173:
|
|
MOV EAX,_ssname
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _symname
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_175
|
|
JMP _1_174
|
|
_1_175:
|
|
MOV EAX,_ssname
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _findloc
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_177
|
|
JMP _1_176
|
|
_1_177:
|
|
MOV EAX,_ssname
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _multidef
|
|
ADD ESP,4
|
|
JMP _1_178
|
|
_1_176:
|
|
MOV EAX,_ssname
|
|
PUSH EAX
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV EAX,[_argstk]
|
|
PUSH EAX
|
|
MOV EAX,_locptr
|
|
PUSH EAX
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,7
|
|
CALL _addsym
|
|
ADD ESP,28
|
|
MOV EAX,[_argstk]
|
|
MOV EBX,4
|
|
ADD EAX,EBX
|
|
MOV DWORD [_argstk],EAX
|
|
_1_178:
|
|
JMP _1_179
|
|
_1_174:
|
|
MOV EAX,_1_156+55
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
XOR CL,CL
|
|
CALL _skip
|
|
_1_179:
|
|
XOR CL,CL
|
|
CALL _blanks
|
|
MOV EAX,[_lptr]
|
|
PUSH EAX
|
|
MOV EAX,_1_156+77
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _streq
|
|
ADD ESP,8
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_183
|
|
JMP _1_181
|
|
_1_183:
|
|
MOV EAX,_1_156+79
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_184
|
|
JMP _1_181
|
|
_1_184:
|
|
MOV EAX,1
|
|
JMP _1_182
|
|
_1_181:
|
|
XOR EAX,EAX
|
|
_1_182:
|
|
OR EAX,EAX
|
|
JNE _1_185
|
|
JMP _1_180
|
|
_1_185:
|
|
MOV EAX,_1_156+81
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
_1_180:
|
|
XOR CL,CL
|
|
CALL _endst
|
|
OR EAX,EAX
|
|
JNE _1_187
|
|
JMP _1_186
|
|
_1_187:
|
|
JMP _1_172
|
|
_1_186:
|
|
JMP _1_171
|
|
_1_172:
|
|
XOR EAX,EAX
|
|
MOV DWORD [_csp],EAX
|
|
MOV EAX,[_argstk]
|
|
MOV EBX,4
|
|
ADD EAX,EBX
|
|
MOV DWORD [_argtop],EAX
|
|
_1_188:
|
|
MOV EAX,[_argstk]
|
|
OR EAX,EAX
|
|
JNE _1_190
|
|
JMP _1_189
|
|
_1_190:
|
|
MOV EAX,_1_156+90
|
|
PUSH EAX
|
|
MOV EAX,4
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_192
|
|
JMP _1_191
|
|
_1_192:
|
|
MOV EAX,4
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _doargs
|
|
ADD ESP,4
|
|
XOR CL,CL
|
|
CALL _ns
|
|
JMP _1_193
|
|
_1_191:
|
|
MOV EAX,_1_156+95
|
|
PUSH EAX
|
|
MOV EAX,3
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_195
|
|
JMP _1_194
|
|
_1_195:
|
|
MOV EAX,16
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _doargs
|
|
ADD ESP,4
|
|
XOR CL,CL
|
|
CALL _ns
|
|
JMP _1_196
|
|
_1_194:
|
|
MOV EAX,_1_156+99
|
|
PUSH EAX
|
|
MOV EAX,8
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_198
|
|
JMP _1_197
|
|
_1_198:
|
|
MOV EAX,_1_156+108
|
|
PUSH EAX
|
|
MOV EAX,4
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_200
|
|
JMP _1_199
|
|
_1_200:
|
|
MOV EAX,5
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _doargs
|
|
ADD ESP,4
|
|
XOR CL,CL
|
|
CALL _ns
|
|
JMP _1_201
|
|
_1_199:
|
|
MOV EAX,_1_156+113
|
|
PUSH EAX
|
|
MOV EAX,3
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
MOV EAX,17
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _doargs
|
|
ADD ESP,4
|
|
XOR CL,CL
|
|
CALL _ns
|
|
_1_201:
|
|
JMP _1_202
|
|
_1_197:
|
|
MOV EAX,_1_156+117
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
JMP _1_189
|
|
_1_202:
|
|
_1_196:
|
|
_1_193:
|
|
JMP _1_188
|
|
_1_189:
|
|
MOV EAX,18
|
|
PUSH EAX
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
XOR CL,CL
|
|
CALL _statemen
|
|
MOV EAX,[_lastst]
|
|
MOV EBX,EAX
|
|
MOV EAX,3
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _1_206
|
|
JMP _1_204
|
|
_1_206:
|
|
MOV EAX,[_lastst]
|
|
MOV EBX,EAX
|
|
MOV EAX,13
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _1_207
|
|
JMP _1_204
|
|
_1_207:
|
|
MOV EAX,1
|
|
JMP _1_205
|
|
_1_204:
|
|
XOR EAX,EAX
|
|
_1_205:
|
|
OR EAX,EAX
|
|
JNE _1_208
|
|
JMP _1_203
|
|
_1_208:
|
|
MOV EAX,67
|
|
PUSH EAX
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
_1_203:
|
|
MOV EAX,[_litptr]
|
|
OR EAX,EAX
|
|
JNE _1_210
|
|
JMP _1_209
|
|
_1_210:
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _toseg
|
|
ADD ESP,4
|
|
MOV EAX,66
|
|
PUSH EAX
|
|
MOV EAX,[_litlab]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _dumplits
|
|
ADD ESP,4
|
|
_1_209:
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_156 DB 118,111,105,100,0,105,108,108,101,103
|
|
DB 97,108,32,102,117,110,99,116,105,111
|
|
DB 110,32,111,114,32,100,101,99,108,97
|
|
DB 114,97,116,105,111,110,0,40,0,110
|
|
DB 111,32,111,112,101,110,32,112,97,114
|
|
DB 101,110,0,41,0,105,108,108,101,103
|
|
DB 97,108,32,97,114,103,117,109,101,110
|
|
DB 116,32,110,97,109,101,0,41,0,44
|
|
DB 0,110,111,32,99,111,109,109,97,0
|
|
DB 99,104,97,114,0,105,110,116,0,117
|
|
DB 110,115,105,103,110,101,100,0,99,104
|
|
DB 97,114,0,105,110,116,0,119,114,111
|
|
DB 110,103,32,110,117,109,98,101,114,32
|
|
DB 111,102,32,97,114,103,117,109,101,110
|
|
DB 116,115,0
|
|
|
|
_doargs:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-16
|
|
_1_212:
|
|
MOV EAX,[_argstk]
|
|
OR EAX,EAX
|
|
JE _1_215
|
|
JMP _1_214
|
|
_1_215:
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_214:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,3
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-8]
|
|
PUSH EAX
|
|
MOV CL,4
|
|
CALL _decl
|
|
ADD ESP,16
|
|
OR EAX,EAX
|
|
JNE _1_217
|
|
JMP _1_216
|
|
_1_217:
|
|
LEA EAX,[EBP-16]
|
|
PUSH EAX
|
|
MOV EAX,_ssname
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _findloc
|
|
ADD ESP,4
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
OR EAX,EAX
|
|
JNE _1_219
|
|
JMP _1_218
|
|
_1_219:
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,1
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,3
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV EAX,4
|
|
PUSH EAX
|
|
MOV CL,3
|
|
CALL _putint
|
|
ADD ESP,12
|
|
MOV EAX,[_argtop]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,5
|
|
ADD EAX,EBX
|
|
MOV EBX,2
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV EAX,4
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _getint
|
|
ADD ESP,8
|
|
POP EBX
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
PUSH EAX
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
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
|
|
JMP _1_220
|
|
_1_218:
|
|
MOV EAX,_1_211+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
_1_220:
|
|
_1_216:
|
|
MOV EAX,[_argstk]
|
|
MOV EBX,EAX
|
|
MOV EAX,4
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
MOV DWORD [_argstk],EAX
|
|
XOR CL,CL
|
|
CALL _endst
|
|
OR EAX,EAX
|
|
JNE _1_222
|
|
JMP _1_221
|
|
_1_222:
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_221:
|
|
MOV EAX,_1_211+16
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _1_224
|
|
JMP _1_223
|
|
_1_224:
|
|
MOV EAX,_1_211+18
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
_1_223:
|
|
JMP _1_212
|
|
_1_213:
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_211 DB 110,111,116,32,97,110,32,97,114,103
|
|
DB 117,109,101,110,116,0,44,0,110,111
|
|
DB 32,99,111,109,109,97,0
|
|
|
|
_decl:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-12
|
|
MOV EAX,_1_225+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_227
|
|
JMP _1_226
|
|
_1_227:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
MOV [EBX],EAX
|
|
JMP _1_228
|
|
_1_226:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
_1_228:
|
|
MOV EAX,_1_225+2
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_230
|
|
JMP _1_229
|
|
_1_230:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,3
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,4
|
|
MOV [EBX],EAX
|
|
JMP _1_231
|
|
_1_229:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+20]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,2
|
|
MOV ECX,EAX
|
|
MOV EAX,EBX
|
|
SAR EAX,CL
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_1_231:
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
MOV EAX,_ssname
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _symname
|
|
ADD ESP,4
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
OR EAX,EAX
|
|
JE _1_233
|
|
JMP _1_232
|
|
_1_233:
|
|
XOR CL,CL
|
|
CALL _illname
|
|
_1_232:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JNE _1_237
|
|
JMP _1_235
|
|
_1_237:
|
|
MOV EAX,_1_225+4
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_238
|
|
JMP _1_235
|
|
_1_238:
|
|
MOV EAX,1
|
|
JMP _1_236
|
|
_1_235:
|
|
XOR EAX,EAX
|
|
_1_236:
|
|
OR EAX,EAX
|
|
JNE _1_239
|
|
JMP _1_234
|
|
_1_239:
|
|
_1_234:
|
|
MOV EAX,_1_225+6
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_241
|
|
JMP _1_240
|
|
_1_241:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
CALL __lneg
|
|
OR EAX,EAX
|
|
JE _1_245
|
|
JMP _1_243
|
|
_1_245:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,3
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JE _1_246
|
|
JMP _1_243
|
|
_1_246:
|
|
XOR EAX,EAX
|
|
JMP _1_244
|
|
_1_243:
|
|
MOV EAX,1
|
|
_1_244:
|
|
OR EAX,EAX
|
|
JNE _1_247
|
|
JMP _1_242
|
|
_1_247:
|
|
MOV EAX,_1_225+8
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
_1_242:
|
|
MOV EAX,_1_225+21
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _need
|
|
ADD ESP,4
|
|
JMP _1_248
|
|
_1_240:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_252
|
|
JMP _1_250
|
|
_1_252:
|
|
MOV EAX,_1_225+23
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_253
|
|
JMP _1_250
|
|
_1_253:
|
|
MOV EAX,1
|
|
JMP _1_251
|
|
_1_250:
|
|
XOR EAX,EAX
|
|
_1_251:
|
|
OR EAX,EAX
|
|
JNE _1_254
|
|
JMP _1_249
|
|
_1_254:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
XOR CL,CL
|
|
CALL _needsub
|
|
POP EBX
|
|
IMUL EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
OR EAX,EAX
|
|
JE _1_256
|
|
JMP _1_255
|
|
_1_256:
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,2
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_258
|
|
JMP _1_257
|
|
_1_258:
|
|
MOV EAX,_1_225+25
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
_1_257:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,4
|
|
MOV [EBX],EAX
|
|
_1_255:
|
|
_1_249:
|
|
_1_248:
|
|
LEA EAX,[EBP-12]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,4
|
|
XCHG EAX,EBX
|
|
CDQ
|
|
IDIV EBX
|
|
MOV EAX,EDX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP-12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JNE _1_260
|
|
JMP _1_259
|
|
_1_260:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,4
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_1_259:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_225 DB 40,0,42,0,41,0,40,0,116,114
|
|
DB 121,32,40,42,46,46,46,41,40,41
|
|
DB 0,41,0,91,0,110,101,101,100,32
|
|
DB 97,114,114,97,121,32,115,105,122,101
|
|
DB 0
|
|
|
|
_statemen:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,[_ch]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_265
|
|
JMP _1_263
|
|
_1_265:
|
|
MOV EAX,[_eof]
|
|
OR EAX,EAX
|
|
JNE _1_266
|
|
JMP _1_263
|
|
_1_266:
|
|
MOV EAX,1
|
|
JMP _1_264
|
|
_1_263:
|
|
XOR EAX,EAX
|
|
_1_264:
|
|
OR EAX,EAX
|
|
JNE _1_267
|
|
JMP _1_262
|
|
_1_267:
|
|
POP EBP
|
|
RET
|
|
_1_262:
|
|
MOV EAX,_1_261+0
|
|
PUSH EAX
|
|
MOV EAX,4
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_270
|
|
JMP _1_269
|
|
_1_270:
|
|
MOV EAX,4
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _declloc
|
|
ADD ESP,4
|
|
XOR CL,CL
|
|
CALL _ns
|
|
JMP _1_271
|
|
_1_269:
|
|
MOV EAX,_1_261+5
|
|
PUSH EAX
|
|
MOV EAX,3
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_273
|
|
JMP _1_272
|
|
_1_273:
|
|
MOV EAX,16
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _declloc
|
|
ADD ESP,4
|
|
XOR CL,CL
|
|
CALL _ns
|
|
JMP _1_274
|
|
_1_272:
|
|
MOV EAX,_1_261+9
|
|
PUSH EAX
|
|
MOV EAX,8
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_276
|
|
JMP _1_275
|
|
_1_276:
|
|
MOV EAX,_1_261+18
|
|
PUSH EAX
|
|
MOV EAX,4
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_278
|
|
JMP _1_277
|
|
_1_278:
|
|
MOV EAX,5
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _declloc
|
|
ADD ESP,4
|
|
XOR CL,CL
|
|
CALL _ns
|
|
JMP _1_279
|
|
_1_277:
|
|
MOV EAX,_1_261+23
|
|
PUSH EAX
|
|
MOV EAX,3
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
MOV EAX,17
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _declloc
|
|
ADD ESP,4
|
|
XOR CL,CL
|
|
CALL _ns
|
|
_1_279:
|
|
JMP _1_280
|
|
_1_275:
|
|
MOV EAX,[_declared]
|
|
OR EAX,EAX
|
|
JGE _1_282
|
|
JMP _1_281
|
|
_1_282:
|
|
MOV EAX,[_ncmp]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
CALL __gt
|
|
OR EAX,EAX
|
|
JNE _1_284
|
|
JMP _1_283
|
|
_1_284:
|
|
MOV EAX,[_declared]
|
|
MOV DWORD [_nogo],EAX
|
|
_1_283:
|
|
MOV EAX,2
|
|
PUSH EAX
|
|
MOV EAX,[_csp]
|
|
PUSH EAX
|
|
MOV EAX,[_declared]
|
|
POP EBX
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
MOV EAX,-1
|
|
MOV DWORD [_declared],EAX
|
|
_1_281:
|
|
MOV EAX,_1_261+27
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_286
|
|
JMP _1_285
|
|
_1_286:
|
|
XOR CL,CL
|
|
CALL _compound
|
|
JMP _1_287
|
|
_1_285:
|
|
MOV EAX,_1_261+29
|
|
PUSH EAX
|
|
MOV EAX,2
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_289
|
|
JMP _1_288
|
|
_1_289:
|
|
XOR CL,CL
|
|
CALL _doif
|
|
MOV EAX,1
|
|
MOV DWORD [_lastst],EAX
|
|
JMP _1_290
|
|
_1_288:
|
|
MOV EAX,_1_261+32
|
|
PUSH EAX
|
|
MOV EAX,5
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_292
|
|
JMP _1_291
|
|
_1_292:
|
|
XOR CL,CL
|
|
CALL _dowhile
|
|
MOV EAX,2
|
|
MOV DWORD [_lastst],EAX
|
|
JMP _1_293
|
|
_1_291:
|
|
MOV EAX,_1_261+38
|
|
PUSH EAX
|
|
MOV EAX,2
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_295
|
|
JMP _1_294
|
|
_1_295:
|
|
XOR CL,CL
|
|
CALL _dodo
|
|
MOV EAX,8
|
|
MOV DWORD [_lastst],EAX
|
|
JMP _1_296
|
|
_1_294:
|
|
MOV EAX,_1_261+41
|
|
PUSH EAX
|
|
MOV EAX,3
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_298
|
|
JMP _1_297
|
|
_1_298:
|
|
XOR CL,CL
|
|
CALL _dofor
|
|
MOV EAX,9
|
|
MOV DWORD [_lastst],EAX
|
|
JMP _1_299
|
|
_1_297:
|
|
MOV EAX,_1_261+45
|
|
PUSH EAX
|
|
MOV EAX,6
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_301
|
|
JMP _1_300
|
|
_1_301:
|
|
XOR CL,CL
|
|
CALL _doswitch
|
|
MOV EAX,10
|
|
MOV DWORD [_lastst],EAX
|
|
JMP _1_302
|
|
_1_300:
|
|
MOV EAX,_1_261+52
|
|
PUSH EAX
|
|
MOV EAX,4
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_304
|
|
JMP _1_303
|
|
_1_304:
|
|
XOR CL,CL
|
|
CALL _docase
|
|
MOV EAX,11
|
|
MOV DWORD [_lastst],EAX
|
|
JMP _1_305
|
|
_1_303:
|
|
MOV EAX,_1_261+57
|
|
PUSH EAX
|
|
MOV EAX,7
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_307
|
|
JMP _1_306
|
|
_1_307:
|
|
XOR CL,CL
|
|
CALL _dodefaul
|
|
MOV EAX,12
|
|
MOV DWORD [_lastst],EAX
|
|
JMP _1_308
|
|
_1_306:
|
|
MOV EAX,_1_261+65
|
|
PUSH EAX
|
|
MOV EAX,4
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_310
|
|
JMP _1_309
|
|
_1_310:
|
|
XOR CL,CL
|
|
CALL _dogoto
|
|
MOV EAX,13
|
|
MOV DWORD [_lastst],EAX
|
|
JMP _1_311
|
|
_1_309:
|
|
XOR CL,CL
|
|
CALL _dolabel
|
|
OR EAX,EAX
|
|
JNE _1_313
|
|
JMP _1_312
|
|
_1_313:
|
|
MOV EAX,14
|
|
MOV DWORD [_lastst],EAX
|
|
JMP _1_314
|
|
_1_312:
|
|
MOV EAX,_1_261+70
|
|
PUSH EAX
|
|
MOV EAX,6
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_316
|
|
JMP _1_315
|
|
_1_316:
|
|
XOR CL,CL
|
|
CALL _doreturn
|
|
XOR CL,CL
|
|
CALL _ns
|
|
MOV EAX,3
|
|
MOV DWORD [_lastst],EAX
|
|
JMP _1_317
|
|
_1_315:
|
|
MOV EAX,_1_261+77
|
|
PUSH EAX
|
|
MOV EAX,5
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_319
|
|
JMP _1_318
|
|
_1_319:
|
|
XOR CL,CL
|
|
CALL _dobreak
|
|
XOR CL,CL
|
|
CALL _ns
|
|
MOV EAX,4
|
|
MOV DWORD [_lastst],EAX
|
|
JMP _1_320
|
|
_1_318:
|
|
MOV EAX,_1_261+83
|
|
PUSH EAX
|
|
MOV EAX,8
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JNE _1_322
|
|
JMP _1_321
|
|
_1_322:
|
|
XOR CL,CL
|
|
CALL _docont
|
|
XOR CL,CL
|
|
CALL _ns
|
|
MOV EAX,5
|
|
MOV DWORD [_lastst],EAX
|
|
JMP _1_323
|
|
_1_321:
|
|
MOV EAX,_1_261+92
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_325
|
|
JMP _1_324
|
|
_1_325:
|
|
XOR EAX,EAX
|
|
MOV DWORD [_errflag],EAX
|
|
JMP _1_326
|
|
_1_324:
|
|
MOV EAX,_1_261+94
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_328
|
|
JMP _1_327
|
|
_1_328:
|
|
XOR CL,CL
|
|
CALL _doasm
|
|
MOV EAX,6
|
|
MOV DWORD [_lastst],EAX
|
|
JMP _1_329
|
|
_1_327:
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _doexpr
|
|
ADD ESP,4
|
|
XOR CL,CL
|
|
CALL _ns
|
|
MOV EAX,7
|
|
MOV DWORD [_lastst],EAX
|
|
_1_329:
|
|
_1_326:
|
|
_1_323:
|
|
_1_320:
|
|
_1_317:
|
|
_1_314:
|
|
_1_311:
|
|
_1_308:
|
|
_1_305:
|
|
_1_302:
|
|
_1_299:
|
|
_1_296:
|
|
_1_293:
|
|
_1_290:
|
|
_1_287:
|
|
_1_280:
|
|
_1_274:
|
|
_1_271:
|
|
_1_268:
|
|
MOV EAX,[_lastst]
|
|
POP EBP
|
|
RET
|
|
_1_261 DB 99,104,97,114,0,105,110,116,0,117
|
|
DB 110,115,105,103,110,101,100,0,99,104
|
|
DB 97,114,0,105,110,116,0,123,0,105
|
|
DB 102,0,119,104,105,108,101,0,100,111
|
|
DB 0,102,111,114,0,115,119,105,116,99
|
|
DB 104,0,99,97,115,101,0,100,101,102
|
|
DB 97,117,108,116,0,103,111,116,111,0
|
|
DB 114,101,116,117,114,110,0,98,114,101
|
|
DB 97,107,0,99,111,110,116,105,110,117
|
|
DB 101,0,59,0,35,97,115,109,0
|
|
|
|
_declloc:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-8
|
|
MOV EAX,[_swactive]
|
|
OR EAX,EAX
|
|
JNE _1_332
|
|
JMP _1_331
|
|
_1_332:
|
|
MOV EAX,_1_330+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
_1_331:
|
|
MOV EAX,[_noloc]
|
|
OR EAX,EAX
|
|
JNE _1_334
|
|
JMP _1_333
|
|
_1_334:
|
|
MOV EAX,_1_330+22
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
_1_333:
|
|
MOV EAX,[_declared]
|
|
OR EAX,EAX
|
|
JL _1_336
|
|
JMP _1_335
|
|
_1_336:
|
|
MOV EAX,_1_330+44
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
_1_335:
|
|
_1_337:
|
|
XOR CL,CL
|
|
CALL _endst
|
|
OR EAX,EAX
|
|
JNE _1_340
|
|
JMP _1_339
|
|
_1_340:
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_339:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,2
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-8]
|
|
PUSH EAX
|
|
MOV CL,4
|
|
CALL _decl
|
|
ADD ESP,16
|
|
MOV EAX,[_declared]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV DWORD [_declared],EAX
|
|
MOV EAX,_ssname
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,[_csp]
|
|
PUSH EAX
|
|
MOV EAX,[_declared]
|
|
POP EBX
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
PUSH EAX
|
|
MOV EAX,_locptr
|
|
PUSH EAX
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,7
|
|
CALL _addsym
|
|
ADD ESP,28
|
|
MOV EAX,_1_330+72
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _1_342
|
|
JMP _1_341
|
|
_1_342:
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_341:
|
|
JMP _1_337
|
|
_1_338:
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_330 DB 110,111,116,32,97,108,108,111,119,101
|
|
DB 100,32,105,110,32,115,119,105,116,99
|
|
DB 104,0,110,111,116,32,97,108,108,111
|
|
DB 119,101,100,32,119,105,116,104,32,103
|
|
DB 111,116,111,0,109,117,115,116,32,100
|
|
DB 101,99,108,97,114,101,32,102,105,114
|
|
DB 115,116,32,105,110,32,98,108,111,99
|
|
DB 107,0,44,0
|
|
|
|
_compound:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-8
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
MOV EAX,[_csp]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP-8]
|
|
PUSH EAX
|
|
MOV EAX,[_locptr]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
XOR EAX,EAX
|
|
MOV DWORD [_declared],EAX
|
|
MOV EAX,[_ncmp]
|
|
INC EAX
|
|
MOV DWORD [_ncmp],EAX
|
|
_1_344:
|
|
MOV EAX,_1_343+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _1_346
|
|
JMP _1_345
|
|
_1_346:
|
|
MOV EAX,[_eof]
|
|
OR EAX,EAX
|
|
JNE _1_348
|
|
JMP _1_347
|
|
_1_348:
|
|
MOV EAX,_1_343+2
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
JMP _1_345
|
|
JMP _1_349
|
|
_1_347:
|
|
XOR CL,CL
|
|
CALL _statemen
|
|
_1_349:
|
|
JMP _1_344
|
|
_1_345:
|
|
MOV EAX,[_ncmp]
|
|
DEC EAX
|
|
MOV DWORD [_ncmp],EAX
|
|
OR EAX,EAX
|
|
JNE _1_353
|
|
JMP _1_351
|
|
_1_353:
|
|
MOV EAX,[_lastst]
|
|
MOV EBX,EAX
|
|
MOV EAX,3
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _1_354
|
|
JMP _1_351
|
|
_1_354:
|
|
MOV EAX,[_lastst]
|
|
MOV EBX,EAX
|
|
MOV EAX,13
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _1_355
|
|
JMP _1_351
|
|
_1_355:
|
|
MOV EAX,1
|
|
JMP _1_352
|
|
_1_351:
|
|
XOR EAX,EAX
|
|
_1_352:
|
|
OR EAX,EAX
|
|
JNE _1_356
|
|
JMP _1_350
|
|
_1_356:
|
|
MOV EAX,2
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
_1_350:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV DWORD [_cptr],EAX
|
|
_1_357:
|
|
MOV EAX,[_cptr]
|
|
PUSH EAX
|
|
MOV EAX,[_locptr]
|
|
POP EBX
|
|
CALL __ult
|
|
OR EAX,EAX
|
|
JNE _1_359
|
|
JMP _1_358
|
|
_1_359:
|
|
MOV EAX,[_cptr]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _nextsym
|
|
ADD ESP,4
|
|
MOV DWORD [_cptr2],EAX
|
|
MOV EAX,[_cptr]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
OR EAX,EAX
|
|
JE _1_361
|
|
JMP _1_360
|
|
_1_361:
|
|
_1_362:
|
|
MOV EAX,[_cptr]
|
|
PUSH EAX
|
|
MOV EAX,[_cptr2]
|
|
POP EBX
|
|
CALL __ult
|
|
OR EAX,EAX
|
|
JNE _1_364
|
|
JMP _1_363
|
|
_1_364:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
PUSH EAX
|
|
MOV EAX,[_cptr]
|
|
INC EAX
|
|
MOV DWORD [_cptr],EAX
|
|
DEC EAX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
JMP _1_362
|
|
_1_363:
|
|
JMP _1_365
|
|
_1_360:
|
|
MOV EAX,[_cptr2]
|
|
MOV DWORD [_cptr],EAX
|
|
_1_365:
|
|
JMP _1_357
|
|
_1_358:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV DWORD [_locptr],EAX
|
|
MOV EAX,-1
|
|
MOV DWORD [_declared],EAX
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_343 DB 125,0,110,111,32,102,105,110,97,108
|
|
DB 32,125,0
|
|
|
|
_doif:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-8
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
XOR CL,CL
|
|
CALL _getlabel
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
PUSH EAX
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _test
|
|
ADD ESP,8
|
|
XOR CL,CL
|
|
CALL _statemen
|
|
MOV EAX,_1_366+0
|
|
PUSH EAX
|
|
MOV EAX,4
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _amatch
|
|
ADD ESP,8
|
|
OR EAX,EAX
|
|
JE _1_368
|
|
JMP _1_367
|
|
_1_368:
|
|
MOV EAX,41
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_367:
|
|
LEA EAX,[EBP-8]
|
|
PUSH EAX
|
|
XOR CL,CL
|
|
CALL _getlabel
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
MOV EAX,[_lastst]
|
|
MOV EBX,EAX
|
|
MOV EAX,3
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _1_372
|
|
JMP _1_370
|
|
_1_372:
|
|
MOV EAX,[_lastst]
|
|
MOV EBX,EAX
|
|
MOV EAX,13
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _1_373
|
|
JMP _1_370
|
|
_1_373:
|
|
MOV EAX,1
|
|
JMP _1_371
|
|
_1_370:
|
|
XOR EAX,EAX
|
|
_1_371:
|
|
OR EAX,EAX
|
|
JNE _1_374
|
|
JMP _1_369
|
|
_1_374:
|
|
MOV EAX,40
|
|
PUSH EAX
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
_1_369:
|
|
MOV EAX,41
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
XOR CL,CL
|
|
CALL _statemen
|
|
MOV EAX,41
|
|
PUSH EAX
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_366 DB 101,108,115,101,0
|
|
|
|
_dowhile:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-16
|
|
LEA EAX,[EBP-16]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _addwhile
|
|
ADD ESP,4
|
|
MOV EAX,41
|
|
PUSH EAX
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,4
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,8
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _test
|
|
ADD ESP,8
|
|
XOR CL,CL
|
|
CALL _statemen
|
|
MOV EAX,40
|
|
PUSH EAX
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,4
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
MOV EAX,41
|
|
PUSH EAX
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,8
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
XOR CL,CL
|
|
CALL _delwhile
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_dodo:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-16
|
|
LEA EAX,[EBP-16]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _addwhile
|
|
ADD ESP,4
|
|
MOV EAX,41
|
|
PUSH EAX
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,4
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
XOR CL,CL
|
|
CALL _statemen
|
|
MOV EAX,_1_376+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _need
|
|
ADD ESP,4
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,8
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _test
|
|
ADD ESP,8
|
|
MOV EAX,40
|
|
PUSH EAX
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,4
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
MOV EAX,41
|
|
PUSH EAX
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,8
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
XOR CL,CL
|
|
CALL _delwhile
|
|
XOR CL,CL
|
|
CALL _ns
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_376 DB 119,104,105,108,101,0
|
|
|
|
_dofor:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-24
|
|
LEA EAX,[EBP-16]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _addwhile
|
|
ADD ESP,4
|
|
LEA EAX,[EBP-20]
|
|
PUSH EAX
|
|
XOR CL,CL
|
|
CALL _getlabel
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP-24]
|
|
PUSH EAX
|
|
XOR CL,CL
|
|
CALL _getlabel
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
MOV EAX,_1_377+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _need
|
|
ADD ESP,4
|
|
MOV EAX,_1_377+2
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _1_379
|
|
JMP _1_378
|
|
_1_379:
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _doexpr
|
|
ADD ESP,4
|
|
XOR CL,CL
|
|
CALL _ns
|
|
_1_378:
|
|
MOV EAX,41
|
|
PUSH EAX
|
|
LEA EAX,[EBP-20]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
MOV EAX,_1_377+4
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _1_381
|
|
JMP _1_380
|
|
_1_381:
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,8
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _test
|
|
ADD ESP,8
|
|
XOR CL,CL
|
|
CALL _ns
|
|
_1_380:
|
|
MOV EAX,40
|
|
PUSH EAX
|
|
LEA EAX,[EBP-24]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
MOV EAX,41
|
|
PUSH EAX
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,4
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
MOV EAX,_1_377+6
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JE _1_383
|
|
JMP _1_382
|
|
_1_383:
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _doexpr
|
|
ADD ESP,4
|
|
MOV EAX,_1_377+8
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _need
|
|
ADD ESP,4
|
|
_1_382:
|
|
MOV EAX,40
|
|
PUSH EAX
|
|
LEA EAX,[EBP-20]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
MOV EAX,41
|
|
PUSH EAX
|
|
LEA EAX,[EBP-24]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
XOR CL,CL
|
|
CALL _statemen
|
|
MOV EAX,40
|
|
PUSH EAX
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,4
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
MOV EAX,41
|
|
PUSH EAX
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,8
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
XOR CL,CL
|
|
CALL _delwhile
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_377 DB 40,0,59,0,59,0,41,0,41,0
|
|
|
|
_doswitch:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-36
|
|
LEA EAX,[EBP-24]
|
|
PUSH EAX
|
|
MOV EAX,[_swactive]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP-28]
|
|
PUSH EAX
|
|
MOV EAX,[_swdefaul]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP-32]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-36]
|
|
PUSH EAX
|
|
MOV EAX,[_swnext]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP-16]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _addwhile
|
|
ADD ESP,4
|
|
MOV EAX,[_wqptr]
|
|
MOV EBX,4
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX,12
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
MOV EAX,_1_384+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _need
|
|
ADD ESP,4
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _doexpr
|
|
ADD ESP,4
|
|
MOV EAX,_1_384+2
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _need
|
|
ADD ESP,4
|
|
XOR EAX,EAX
|
|
MOV DWORD [_swdefaul],EAX
|
|
MOV EAX,1
|
|
MOV DWORD [_swactive],EAX
|
|
MOV EAX,40
|
|
PUSH EAX
|
|
LEA EAX,[EBP-20]
|
|
PUSH EAX
|
|
XOR CL,CL
|
|
CALL _getlabel
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
XOR CL,CL
|
|
CALL _statemen
|
|
MOV EAX,40
|
|
PUSH EAX
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,8
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
MOV EAX,41
|
|
PUSH EAX
|
|
LEA EAX,[EBP-20]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
MOV EAX,72
|
|
PUSH EAX
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
_1_385:
|
|
LEA EAX,[EBP-36]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,[_swnext]
|
|
POP EBX
|
|
CALL __ult
|
|
OR EAX,EAX
|
|
JNE _1_387
|
|
JMP _1_386
|
|
_1_387:
|
|
MOV EAX,56
|
|
PUSH EAX
|
|
LEA EAX,[EBP-36]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
INC EAX
|
|
INC EAX
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
MOV EAX,112
|
|
PUSH EAX
|
|
LEA EAX,[EBP-36]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
INC EAX
|
|
INC EAX
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
JMP _1_385
|
|
_1_386:
|
|
MOV EAX,112
|
|
PUSH EAX
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
MOV EAX,[_swdefaul]
|
|
OR EAX,EAX
|
|
JNE _1_389
|
|
JMP _1_388
|
|
_1_389:
|
|
MOV EAX,40
|
|
PUSH EAX
|
|
MOV EAX,[_swdefaul]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
_1_388:
|
|
MOV EAX,41
|
|
PUSH EAX
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,8
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
XOR CL,CL
|
|
CALL _delwhile
|
|
LEA EAX,[EBP-32]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV DWORD [_swnext],EAX
|
|
LEA EAX,[EBP-28]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV DWORD [_swdefaul],EAX
|
|
LEA EAX,[EBP-24]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV DWORD [_swactive],EAX
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_384 DB 40,0,41,0
|
|
|
|
_docase:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,[_swactive]
|
|
OR EAX,EAX
|
|
JE _1_392
|
|
JMP _1_391
|
|
_1_392:
|
|
MOV EAX,_1_390+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
_1_391:
|
|
MOV EAX,[_swnext]
|
|
PUSH EAX
|
|
MOV EAX,[_swend]
|
|
POP EBX
|
|
CALL __ugt
|
|
OR EAX,EAX
|
|
JNE _1_394
|
|
JMP _1_393
|
|
_1_394:
|
|
MOV EAX,_1_390+14
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
POP EBP
|
|
RET
|
|
_1_393:
|
|
MOV EAX,41
|
|
PUSH EAX
|
|
MOV EAX,[_swnext]
|
|
INC EAX
|
|
INC EAX
|
|
INC EAX
|
|
INC EAX
|
|
MOV DWORD [_swnext],EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
PUSH EAX
|
|
XOR CL,CL
|
|
CALL _getlabel
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
MOV EAX,[_swnext]
|
|
INC EAX
|
|
INC EAX
|
|
INC EAX
|
|
INC EAX
|
|
MOV DWORD [_swnext],EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _constexp
|
|
ADD ESP,4
|
|
MOV EAX,_1_390+29
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _need
|
|
ADD ESP,4
|
|
POP EBP
|
|
RET
|
|
_1_390 DB 110,111,116,32,105,110,32,115,119,105
|
|
DB 116,99,104,0,116,111,111,32,109,97
|
|
DB 110,121,32,99,97,115,101,115,0,58
|
|
DB 0
|
|
|
|
_dodefaul:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,[_swactive]
|
|
OR EAX,EAX
|
|
JNE _1_397
|
|
JMP _1_396
|
|
_1_397:
|
|
MOV EAX,[_swdefaul]
|
|
OR EAX,EAX
|
|
JNE _1_399
|
|
JMP _1_398
|
|
_1_399:
|
|
MOV EAX,_1_395+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
_1_398:
|
|
JMP _1_400
|
|
_1_396:
|
|
MOV EAX,_1_395+18
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
_1_400:
|
|
MOV EAX,_1_395+32
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _need
|
|
ADD ESP,4
|
|
MOV EAX,41
|
|
PUSH EAX
|
|
XOR CL,CL
|
|
CALL _getlabel
|
|
MOV DWORD [_swdefaul],EAX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
POP EBP
|
|
RET
|
|
_1_395 DB 109,117,108,116,105,112,108,101,32,100
|
|
DB 101,102,97,117,108,116,115,0,110,111
|
|
DB 116,32,105,110,32,115,119,105,116,99
|
|
DB 104,0,58,0
|
|
|
|
_dogoto:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,[_nogo]
|
|
OR EAX,EAX
|
|
JG _1_403
|
|
JMP _1_402
|
|
_1_403:
|
|
MOV EAX,_1_401+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
JMP _1_404
|
|
_1_402:
|
|
MOV EAX,1
|
|
MOV DWORD [_noloc],EAX
|
|
_1_404:
|
|
MOV EAX,_ssname
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _symname
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_406
|
|
JMP _1_405
|
|
_1_406:
|
|
MOV EAX,40
|
|
PUSH EAX
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _addlabel
|
|
ADD ESP,4
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
JMP _1_407
|
|
_1_405:
|
|
MOV EAX,_1_401+30
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
_1_407:
|
|
XOR CL,CL
|
|
CALL _ns
|
|
POP EBP
|
|
RET
|
|
_1_401 DB 110,111,116,32,97,108,108,111,119,101
|
|
DB 100,32,119,105,116,104,32,98,108,111
|
|
DB 99,107,45,108,111,99,97,108,115,0
|
|
DB 98,97,100,32,108,97,98,101,108,0
|
|
|
|
_dolabel:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
XOR CL,CL
|
|
CALL _blanks
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
MOV EAX,[_lptr]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
MOV EAX,_ssname
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _symname
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_410
|
|
JMP _1_409
|
|
_1_410:
|
|
XOR CL,CL
|
|
CALL _gch
|
|
MOV EBX,EAX
|
|
MOV EAX,58
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_412
|
|
JMP _1_411
|
|
_1_412:
|
|
MOV EAX,41
|
|
PUSH EAX
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _addlabel
|
|
ADD ESP,4
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
MOV EAX,1
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_411:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,[_lptr]
|
|
POP EBX
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _bump
|
|
ADD ESP,4
|
|
_1_413:
|
|
_1_409:
|
|
XOR EAX,EAX
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_addlabel:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,_ssname
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _findloc
|
|
ADD ESP,4
|
|
MOV DWORD [_cptr],EAX
|
|
OR EAX,EAX
|
|
JNE _1_416
|
|
JMP _1_415
|
|
_1_416:
|
|
MOV EAX,[_cptr]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
OR EAX,EAX
|
|
JNE _1_418
|
|
JMP _1_417
|
|
_1_418:
|
|
MOV EAX,_1_414+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
JMP _1_419
|
|
_1_417:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JNE _1_421
|
|
JMP _1_420
|
|
_1_421:
|
|
MOV EAX,[_cptr]
|
|
MOV EBX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
OR EAX,EAX
|
|
JNE _1_423
|
|
JMP _1_422
|
|
_1_423:
|
|
MOV EAX,_1_414+12
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _error
|
|
ADD ESP,4
|
|
JMP _1_424
|
|
_1_422:
|
|
MOV EAX,[_cptr]
|
|
MOV EBX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
MOV [EBX],AL
|
|
_1_424:
|
|
_1_420:
|
|
_1_419:
|
|
JMP _1_425
|
|
_1_415:
|
|
MOV EAX,_ssname
|
|
PUSH EAX
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
XOR CL,CL
|
|
CALL _getlabel
|
|
PUSH EAX
|
|
MOV EAX,_locptr
|
|
PUSH EAX
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV CL,7
|
|
CALL _addsym
|
|
ADD ESP,28
|
|
MOV DWORD [_cptr],EAX
|
|
_1_425:
|
|
MOV EAX,[_cptr]
|
|
MOV EBX,5
|
|
ADD EAX,EBX
|
|
MOV EBX,2
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV EAX,4
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _getint
|
|
ADD ESP,8
|
|
POP EBP
|
|
RET
|
|
_1_414 DB 110,111,116,32,97,32,108,97,98,101
|
|
DB 108,0,100,117,112,108,105,99,97,116
|
|
DB 101,32,108,97,98,101,108,0
|
|
|
|
_doreturn:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
XOR CL,CL
|
|
CALL _endst
|
|
OR EAX,EAX
|
|
JE _1_428
|
|
JMP _1_427
|
|
_1_428:
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _doexpr
|
|
ADD ESP,4
|
|
_1_427:
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
MOV EAX,[_csp]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
MOV EAX,67
|
|
PUSH EAX
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV DWORD [_csp],EAX
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_dobreak:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
MOV EAX,[_wqptr]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _readwhil
|
|
ADD ESP,4
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
OR EAX,EAX
|
|
JE _1_431
|
|
JMP _1_430
|
|
_1_431:
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_430:
|
|
MOV EAX,2
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
MOV EAX,40
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,8
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_docont:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
MOV EAX,[_wqptr]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_1_433:
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _readwhil
|
|
ADD ESP,4
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
OR EAX,EAX
|
|
JE _1_436
|
|
JMP _1_435
|
|
_1_436:
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_435:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,4
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JNE _1_438
|
|
JMP _1_437
|
|
_1_438:
|
|
JMP _1_434
|
|
_1_437:
|
|
JMP _1_433
|
|
_1_434:
|
|
MOV EAX,2
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
MOV EAX,40
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,4
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _gen
|
|
ADD ESP,8
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_doasm:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
XOR EAX,EAX
|
|
MOV DWORD [_ccode],EAX
|
|
_1_440:
|
|
XOR CL,CL
|
|
CALL _inline
|
|
MOV EAX,_1_439+0
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _match
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_443
|
|
JMP _1_442
|
|
_1_443:
|
|
JMP _1_441
|
|
_1_442:
|
|
MOV EAX,[_eof]
|
|
OR EAX,EAX
|
|
JNE _1_445
|
|
JMP _1_444
|
|
_1_445:
|
|
JMP _1_441
|
|
_1_444:
|
|
MOV EAX,[_line]
|
|
PUSH EAX
|
|
MOV EAX,[_output]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _fputs
|
|
ADD ESP,8
|
|
JMP _1_440
|
|
_1_441:
|
|
XOR CL,CL
|
|
CALL _kill
|
|
MOV EAX,1
|
|
MOV DWORD [_ccode],EAX
|
|
POP EBP
|
|
RET
|
|
_1_439 DB 35,101,110,100,97,115,109,0
|
|
|
|
_doexpr:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-16
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV DWORD [_usexpr],EAX
|
|
_1_447:
|
|
LEA EAX,[EBP-12]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-16]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _setstage
|
|
ADD ESP,8
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-8]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _expressi
|
|
ADD ESP,8
|
|
LEA EAX,[EBP-12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _clearsta
|
|
ADD ESP,8
|
|
MOV EAX,[_ch]
|
|
MOV EBX,EAX
|
|
MOV EAX,44
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _1_450
|
|
JMP _1_449
|
|
_1_450:
|
|
JMP _1_448
|
|
_1_449:
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _bump
|
|
ADD ESP,4
|
|
JMP _1_447
|
|
_1_448:
|
|
MOV EAX,1
|
|
MOV DWORD [_usexpr],EAX
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_ask:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-8
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
XOR EAX,EAX
|
|
MOV DWORD [_nxtlab],EAX
|
|
MOV DWORD [_listfp],EAX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
MOV EAX,__iob
|
|
MOV EBX,32
|
|
ADD EAX,EBX
|
|
MOV DWORD [_output],EAX
|
|
XOR EAX,EAX
|
|
MOV BYTE [_optimize],AL
|
|
XOR EAX,EAX
|
|
MOV BYTE [_pause],AL
|
|
MOV BYTE [_monitor],AL
|
|
MOV BYTE [_alarm],AL
|
|
MOV EAX,[_mline]
|
|
MOV DWORD [_line],EAX
|
|
_1_452:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
PUSH EAX
|
|
MOV EAX,[_line]
|
|
PUSH EAX
|
|
MOV EAX,128
|
|
PUSH EAX
|
|
MOV EAX,[_argcs]
|
|
PUSH EAX
|
|
MOV EAX,[_argvs]
|
|
PUSH EAX
|
|
MOV CL,5
|
|
CALL _getarg
|
|
ADD ESP,20
|
|
MOV EBX,EAX
|
|
MOV EAX,-1
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _1_454
|
|
JMP _1_453
|
|
_1_454:
|
|
MOV EAX,[_line]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,45
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _1_458
|
|
JMP _1_456
|
|
_1_458:
|
|
MOV EAX,[_line]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,47
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _1_459
|
|
JMP _1_456
|
|
_1_459:
|
|
MOV EAX,1
|
|
JMP _1_457
|
|
_1_456:
|
|
XOR EAX,EAX
|
|
_1_457:
|
|
OR EAX,EAX
|
|
JNE _1_460
|
|
JMP _1_455
|
|
_1_460:
|
|
JMP _1_452
|
|
_1_455:
|
|
MOV EAX,[_line]
|
|
MOV EBX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _toupper
|
|
ADD ESP,4
|
|
MOV EBX,EAX
|
|
MOV EAX,76
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_464
|
|
JMP _1_462
|
|
_1_464:
|
|
MOV EAX,[_line]
|
|
MOV EBX,2
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _isdigit
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _1_465
|
|
JMP _1_462
|
|
_1_465:
|
|
MOV EAX,[_line]
|
|
MOV EBX,3
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,32
|
|
CALL __le
|
|
OR EAX,EAX
|
|
JNE _1_466
|
|
JMP _1_462
|
|
_1_466:
|
|
MOV EAX,1
|
|
JMP _1_463
|
|
_1_462:
|
|
XOR EAX,EAX
|
|
_1_463:
|
|
OR EAX,EAX
|
|
JNE _1_467
|
|
JMP _1_461
|
|
_1_467:
|
|
MOV EAX,[_line]
|
|
MOV EBX,2
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,48
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
MOV DWORD [_listfp],EAX
|
|
JMP _1_452
|
|
_1_461:
|
|
MOV EAX,[_line]
|
|
MOV EBX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _toupper
|
|
ADD ESP,4
|
|
MOV EBX,EAX
|
|
MOV EAX,78
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_471
|
|
JMP _1_469
|
|
_1_471:
|
|
MOV EAX,[_line]
|
|
MOV EBX,2
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _toupper
|
|
ADD ESP,4
|
|
MOV EBX,EAX
|
|
MOV EAX,79
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_472
|
|
JMP _1_469
|
|
_1_472:
|
|
MOV EAX,[_line]
|
|
MOV EBX,3
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,32
|
|
CALL __le
|
|
OR EAX,EAX
|
|
JNE _1_473
|
|
JMP _1_469
|
|
_1_473:
|
|
MOV EAX,1
|
|
JMP _1_470
|
|
_1_469:
|
|
XOR EAX,EAX
|
|
_1_470:
|
|
OR EAX,EAX
|
|
JNE _1_474
|
|
JMP _1_468
|
|
_1_474:
|
|
XOR EAX,EAX
|
|
MOV BYTE [_optimize],AL
|
|
JMP _1_452
|
|
_1_468:
|
|
MOV EAX,[_line]
|
|
MOV EBX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _toupper
|
|
ADD ESP,4
|
|
MOV EBX,EAX
|
|
MOV EAX,68
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_476
|
|
JMP _1_475
|
|
_1_476:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
MOV EAX,[_line]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,2
|
|
ADD EAX,EBX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV DWORD [_ch],EAX
|
|
MOV EAX,[_line]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,2
|
|
ADD EAX,EBX
|
|
MOV DWORD [_lptr],EAX
|
|
XOR CL,CL
|
|
CALL _dodefine
|
|
JMP _1_452
|
|
_1_475:
|
|
MOV EAX,[_line]
|
|
MOV EBX,2
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,32
|
|
CALL __le
|
|
OR EAX,EAX
|
|
JNE _1_478
|
|
JMP _1_477
|
|
_1_478:
|
|
MOV EAX,[_line]
|
|
MOV EBX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _toupper
|
|
ADD ESP,4
|
|
MOV EBX,EAX
|
|
MOV EAX,65
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_480
|
|
JMP _1_479
|
|
_1_480:
|
|
MOV EAX,1
|
|
MOV BYTE [_alarm],AL
|
|
JMP _1_452
|
|
_1_479:
|
|
MOV EAX,[_line]
|
|
MOV EBX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _toupper
|
|
ADD ESP,4
|
|
MOV EBX,EAX
|
|
MOV EAX,77
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_482
|
|
JMP _1_481
|
|
_1_482:
|
|
MOV EAX,1
|
|
MOV BYTE [_monitor],AL
|
|
JMP _1_452
|
|
_1_481:
|
|
MOV EAX,[_line]
|
|
MOV EBX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _toupper
|
|
ADD ESP,4
|
|
MOV EBX,EAX
|
|
MOV EAX,80
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_484
|
|
JMP _1_483
|
|
_1_484:
|
|
MOV EAX,1
|
|
MOV BYTE [_pause],AL
|
|
JMP _1_452
|
|
_1_483:
|
|
_1_477:
|
|
MOV EAX,_1_451+0
|
|
PUSH EAX
|
|
MOV EAX,__iob
|
|
MOV EBX,64
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _fputs
|
|
ADD ESP,8
|
|
MOV EAX,_1_451+57
|
|
PUSH EAX
|
|
MOV EAX,__iob
|
|
MOV EBX,64
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _fputs
|
|
ADD ESP,8
|
|
MOV EAX,_1_451+74
|
|
PUSH EAX
|
|
MOV EAX,__iob
|
|
MOV EBX,64
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _fputs
|
|
ADD ESP,8
|
|
MOV EAX,_1_451+89
|
|
PUSH EAX
|
|
MOV EAX,__iob
|
|
MOV EBX,64
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _fputs
|
|
ADD ESP,8
|
|
MOV EAX,_1_451+104
|
|
PUSH EAX
|
|
MOV EAX,__iob
|
|
MOV EBX,64
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _fputs
|
|
ADD ESP,8
|
|
MOV EAX,_1_451+118
|
|
PUSH EAX
|
|
MOV EAX,__iob
|
|
MOV EBX,64
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _fputs
|
|
ADD ESP,8
|
|
MOV EAX,_1_451+139
|
|
PUSH EAX
|
|
MOV EAX,__iob
|
|
MOV EBX,64
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _fputs
|
|
ADD ESP,8
|
|
MOV EAX,7
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _OS_exit
|
|
ADD ESP,4
|
|
JMP _1_452
|
|
_1_453:
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_451 DB 117,115,97,103,101,58,32,99,99,32
|
|
DB 91,102,105,108,101,93,46,46,46,32
|
|
DB 91,45,109,93,32,91,45,97,93,32
|
|
DB 91,45,112,93,32,91,45,108,35,93
|
|
DB 32,91,45,110,111,93,32,91,45,100
|
|
DB 60,105,100,62,93,10,0,32,45,109
|
|
DB 32,32,32,32,32,109,111,110,105,116
|
|
DB 111,114,10,0,32,45,97,32,32,32
|
|
DB 32,32,97,108,97,114,109,10,0,32
|
|
DB 45,112,32,32,32,32,32,112,97,117
|
|
DB 115,101,10,0,32,45,108,35,32,32
|
|
DB 32,32,108,105,115,116,10,0,32,45
|
|
DB 110,111,32,32,32,32,110,111,32,111
|
|
DB 112,116,105,109,105,122,101,10,0,32
|
|
DB 45,100,60,105,100,62,32,112,114,101
|
|
DB 45,35,100,101,102,105,110,101,32,105
|
|
DB 100,10,0
|
|
|
|
_openfile:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-28
|
|
MOV EAX,-1
|
|
MOV DWORD [_input],EAX
|
|
_1_486:
|
|
MOV EAX,[_filearg]
|
|
INC EAX
|
|
MOV DWORD [_filearg],EAX
|
|
PUSH EAX
|
|
MOV EAX,[_pline]
|
|
PUSH EAX
|
|
MOV EAX,128
|
|
PUSH EAX
|
|
MOV EAX,[_argcs]
|
|
PUSH EAX
|
|
MOV EAX,[_argvs]
|
|
PUSH EAX
|
|
MOV CL,5
|
|
CALL _getarg
|
|
ADD ESP,20
|
|
MOV EBX,EAX
|
|
MOV EAX,-1
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _1_488
|
|
JMP _1_487
|
|
_1_488:
|
|
MOV EAX,[_pline]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,45
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JE _1_492
|
|
JMP _1_490
|
|
_1_492:
|
|
MOV EAX,[_pline]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,47
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JE _1_493
|
|
JMP _1_490
|
|
_1_493:
|
|
XOR EAX,EAX
|
|
JMP _1_491
|
|
_1_490:
|
|
MOV EAX,1
|
|
_1_491:
|
|
OR EAX,EAX
|
|
JNE _1_494
|
|
JMP _1_489
|
|
_1_494:
|
|
JMP _1_486
|
|
_1_489:
|
|
LEA EAX,[EBP-28]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP-20]
|
|
MOV EBX,EAX
|
|
MOV EAX,-1
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP-24]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
_1_495:
|
|
MOV EAX,[_pline]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-20]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
OR EAX,EAX
|
|
JNE _1_497
|
|
JMP _1_496
|
|
_1_497:
|
|
MOV EAX,[_pline]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-20]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,46
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _1_499
|
|
JMP _1_498
|
|
_1_499:
|
|
LEA EAX,[EBP-28]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
MOV [EBX],EAX
|
|
JMP _1_496
|
|
_1_498:
|
|
LEA EAX,[EBP-24]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,10
|
|
CALL __lt
|
|
OR EAX,EAX
|
|
JNE _1_501
|
|
JMP _1_500
|
|
_1_501:
|
|
LEA EAX,[EBP-16]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-24]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV EAX,[_pline]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-20]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
_1_500:
|
|
JMP _1_495
|
|
_1_496:
|
|
LEA EAX,[EBP-28]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
CALL __lneg
|
|
OR EAX,EAX
|
|
JNE _1_503
|
|
JMP _1_502
|
|
_1_503:
|
|
MOV EAX,[_pline]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-20]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV EAX,_1_485+0
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _strcpy
|
|
ADD ESP,8
|
|
_1_502:
|
|
MOV EAX,[_pline]
|
|
PUSH EAX
|
|
MOV EAX,_1_485+3
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _mustopen
|
|
ADD ESP,8
|
|
MOV DWORD [_input],EAX
|
|
MOV EAX,[_files]
|
|
CALL __lneg
|
|
OR EAX,EAX
|
|
JNE _1_505
|
|
JMP _1_504
|
|
_1_505:
|
|
LEA EAX,[EBP-16]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-24]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV EAX,_1_485+5
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _strcpy
|
|
ADD ESP,8
|
|
LEA EAX,[EBP-16]
|
|
PUSH EAX
|
|
MOV EAX,_1_485+10
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _mustopen
|
|
ADD ESP,8
|
|
MOV DWORD [_output],EAX
|
|
_1_504:
|
|
MOV EAX,1
|
|
MOV DWORD [_files],EAX
|
|
XOR CL,CL
|
|
CALL _kill
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
JMP _1_486
|
|
_1_487:
|
|
MOV EAX,[_files]
|
|
INC EAX
|
|
MOV DWORD [_files],EAX
|
|
DEC EAX
|
|
OR EAX,EAX
|
|
JNE _1_507
|
|
JMP _1_506
|
|
_1_507:
|
|
MOV EAX,1
|
|
MOV DWORD [_eof],EAX
|
|
JMP _1_508
|
|
_1_506:
|
|
MOV EAX,__iob
|
|
MOV DWORD [_input],EAX
|
|
_1_508:
|
|
XOR CL,CL
|
|
CALL _kill
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_485 DB 46,67,0,114,0,46,65,83,77,0
|
|
DB 119,0
|
|
|
|
_mustopen:
|
|
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]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_fopen
|
|
ADD ESP,8
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
OR EAX,EAX
|
|
JNE _1_511
|
|
JMP _1_510
|
|
_1_511:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_510:
|
|
MOV EAX,_1_509+0
|
|
PUSH EAX
|
|
MOV EAX,__iob
|
|
MOV EBX,64
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _fputs
|
|
ADD ESP,8
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,__iob
|
|
MOV EBX,64
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _lout
|
|
ADD ESP,8
|
|
MOV EAX,7
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _OS_exit
|
|
ADD ESP,4
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_1_509 DB 111,112,101,110,32,101,114,114,111,114
|
|
DB 32,111,110,32,0
|