kolibrios/programs/develop/scc/CC1.ASM

5067 lines
64 KiB
NASM
Raw Permalink Normal View History

_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