.DATA _itoken DB 0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0 DB 1,0,0,0,3,5,0,8,9,10,12 DB 15,16,20,22,0,0,0,0,0,0,0 DB 0,0,0,24,25,26,30,32,36,0,0 DB 0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,37,0,38,39,0,0,0,41 DB 42,46,48,50,52,0,53,0,0,56,0 DB 0,0,0,0,57,59,65,66,68,69,0 DB 0,0,70,71,74,75,0 _tokens DD OFFSET L_lit+0,OFFSET L_lit+1,OFFSET L_lit+4 DD OFFSET L_lit+6,OFFSET L_lit+9,OFFSET L_lit+11 DD OFFSET L_lit+14,OFFSET L_lit+17,OFFSET L_lit+19 DD OFFSET L_lit+21,OFFSET L_lit+23,OFFSET L_lit+26 DD OFFSET L_lit+28,OFFSET L_lit+31,OFFSET L_lit+34 DD OFFSET L_lit+36,OFFSET L_lit+38,OFFSET L_lit+41 DD OFFSET L_lit+44,OFFSET L_lit+47,OFFSET L_lit+49 DD OFFSET L_lit+53,OFFSET L_lit+55,OFFSET L_lit+58 DD OFFSET L_lit+60,OFFSET L_lit+62,OFFSET L_lit+64 DD OFFSET L_lit+68,OFFSET L_lit+71,OFFSET L_lit+74 DD OFFSET L_lit+76,OFFSET L_lit+79,OFFSET L_lit+81 DD OFFSET L_lit+85,OFFSET L_lit+88,OFFSET L_lit+91 DD OFFSET L_lit+93,OFFSET L_lit+95,OFFSET L_lit+97 DD OFFSET L_lit+99,OFFSET L_lit+102,OFFSET L_lit+104 DD OFFSET L_lit+110,OFFSET L_lit+115,OFFSET L_lit+120 DD OFFSET L_lit+126,OFFSET L_lit+135,OFFSET L_lit+143 DD OFFSET L_lit+146,OFFSET L_lit+151,OFFSET L_lit+158 DD OFFSET L_lit+162,OFFSET L_lit+166,OFFSET L_lit+171 DD OFFSET L_lit+181,OFFSET L_lit+185,OFFSET L_lit+188 DD OFFSET L_lit+193,OFFSET L_lit+202,OFFSET L_lit+209 DD OFFSET L_lit+216,OFFSET L_lit+223,OFFSET L_lit+230 DD OFFSET L_lit+237,OFFSET L_lit+244,OFFSET L_lit+250 DD OFFSET L_lit+258,OFFSET L_lit+267,OFFSET L_lit+273 DD OFFSET L_lit+278,OFFSET L_lit+284,OFFSET L_lit+286 DD OFFSET L_lit+289,OFFSET L_lit+292,OFFSET L_lit+294 DD OFFSET L_lit+296,0 _priority DB 0,9,0,2,13,5,2,8,0,0,2 DB 13,15,2,12,0,15,2,15,12,0,15 DB 2,13,0,0,2,11,10,10,9,2,2 DB 11,10,10,3,0,0,2,7,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,4,2,6,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0 _optype DB 0,2,1,3,2,4,3,2,0,0,3 DB 2,0,3,2,0,0,3,2,2,0,2 DB 3,2,0,0,3,2,2,2,2,3,3 DB 2,2,2,4,0,0,3,2,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,1,0,0,0,0,0 DB 0,0,0,0,0,4,3,2,0,1,0 DB 0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0 EXTRN _AllocPage FWORD EXTRN _AllocOSPage FWORD EXTRN _AllocDMAPage FWORD EXTRN _DeAllocPage FWORD EXTRN _QueryPages FWORD EXTRN _GetPhyAdd FWORD EXTRN _AliasMem FWORD EXTRN _DeAliasMem FWORD PUBLIC _oNextGName DD 0 PUBLIC _oNextLName DD 0 PUBLIC _global_top DD 0 PUBLIC _global_count DD 0 PUBLIC _iproto_next DD 1 PUBLIC _icrntpro DD 0 PUBLIC _iarg DD 0 PUBLIC _argtype DD 0 PUBLIC _local_top DD 300 PUBLIC _fInStruct DB 0 PUBLIC _structname DB 48,83,116,114,117,99,116,68,101,102,0 DB 0 PUBLIC _NxtStrucNum DB 0 PUBLIC _dim_top DD 0 PUBLIC _literal_top DD 0 PUBLIC _expr_ptr DD 0 PUBLIC _if_flag DB 0 PUBLIC _asm_flag DB 0 PUBLIC _not_flag DB 0 PUBLIC _prefix DB 76 PUBLIC _exit_label DD 0 PUBLIC _exit_used DD 0 PUBLIC _in_function DD 0 PUBLIC _loop_ptr DD 0 PUBLIC _switch_ptr DD 0 PUBLIC _define_top DD 0 PUBLIC _sdefault DD 0 PUBLIC _exit_flag DD 0 PUBLIC _next_lab DD 0 PUBLIC _line_number DD 0 PUBLIC _begin_comment DD 0 PUBLIC _ungot_token DD 0 PUBLIC _error_count DD 0 PUBLIC _warn_count DD 0 PUBLIC _macro DD 0 PUBLIC _include DD 0 PUBLIC _source_fh DD 0 PUBLIC _asm_fh DD 0 PUBLIC _code_fh DD 0 PUBLIC _list_fh DD 0 PUBLIC _fLISTOpen DB 0 PUBLIC _fTEMPOpen DB 0 PUBLIC _fCODEOpen DB 0 PUBLIC _fASMOpen DB 0 PUBLIC _comment_flag DB -1 PUBLIC _fQuiet DB 0 PUBLIC _fSource DB 0 PUBLIC _fNoOpt DB 0 PUBLIC _fOptS DB 0 PUBLIC _fList DB 0 PUBLIC _fGen DB 0 PUBLIC _fWarnings DB 0 PUBLIC _incdir DD OFFSET L_lit+298 PUBLIC _global_width DD 0 PUBLIC _asmlab DD 0 PUBLIC _stack_flag DB 0 PUBLIC _pc DD 0 PUBLIC _pco DD 0 PUBLIC _pd DD 0 PUBLIC _peep_table DD OFFSET L_lit+312,OFFSET L_lit+330,OFFSET L_lit+339 DD OFFSET L_lit+357,OFFSET L_lit+366,OFFSET L_lit+393 DD OFFSET L_lit+411,OFFSET L_lit+435,OFFSET L_lit+446 DD OFFSET L_lit+470,OFFSET L_lit+481,OFFSET L_lit+505 DD OFFSET L_lit+516,OFFSET L_lit+572,OFFSET L_lit+596 DD OFFSET L_lit+618,OFFSET L_lit+627,OFFSET L_lit+648 DD OFFSET L_lit+659,OFFSET L_lit+681,OFFSET L_lit+692 DD OFFSET L_lit+713,OFFSET L_lit+724,OFFSET L_lit+746 DD OFFSET L_lit+757,OFFSET L_lit+777,OFFSET L_lit+788 DD OFFSET L_lit+809,OFFSET L_lit+820,OFFSET L_lit+840 DD OFFSET L_lit+851,OFFSET L_lit+872,OFFSET L_lit+883 DD OFFSET L_lit+903,OFFSET L_lit+914,OFFSET L_lit+935 DD OFFSET L_lit+946,OFFSET L_lit+956,OFFSET L_lit+959 DD OFFSET L_lit+972,OFFSET L_lit+978,OFFSET L_lit+992 DD OFFSET L_lit+999,OFFSET L_lit+1026,OFFSET L_lit+1042 DD OFFSET L_lit+1068,OFFSET L_lit+1085,OFFSET L_lit+1115 DD OFFSET L_lit+1129,OFFSET L_lit+1158,OFFSET L_lit+1171 DD OFFSET L_lit+1195,OFFSET L_lit+1217,OFFSET L_lit+1241 DD OFFSET L_lit+1263,OFFSET L_lit+1287,OFFSET L_lit+1309 DD OFFSET L_lit+1333,OFFSET L_lit+1355,OFFSET L_lit+1379 DD OFFSET L_lit+1390,OFFSET L_lit+1424,OFFSET L_lit+1442 DD OFFSET L_lit+1476,OFFSET L_lit+1494,OFFSET L_lit+1516 DD OFFSET L_lit+1535,OFFSET L_lit+1556,OFFSET L_lit+1564 DD OFFSET L_lit+1575,OFFSET L_lit+1588,OFFSET L_lit+1598 DD OFFSET L_lit+1609,OFFSET L_lit+1619,OFFSET L_lit+1630 DD OFFSET L_lit+1640,0 PUBLIC _peep_top DW 0 PUBLIC _peep_next DW 0 L_lit DB 0,33,61,0,33,0,37,61,0,37,0,38,38,0,38,61 DB 0,38,0,40,0,41,0,42,61,0,42,0,43,43,0,43 DB 61,0,43,0,44,0,45,45,0,45,61,0,45,62,0,45 DB 0,46,46,46,0,46,0,47,61,0,47,0,58,0,59,0 DB 60,60,61,0,60,60,0,60,61,0,60,0,61,61,0,61 DB 0,62,62,61,0,62,62,0,62,61,0,62,0,63,0,91 DB 0,93,0,94,61,0,94,0,98,114,101,97,107,0,99,97 DB 115,101,0,99,104,97,114,0,99,111,110,115,116,0,99,111 DB 110,116,105,110,117,101,0,100,101,102,97,117,108,116,0,100 DB 111,0,101,108,115,101,0,101,120,116,101,114,110,0,102,97 DB 114,0,102,111,114,0,103,111,116,111,0,105,110,116,101,114 DB 114,117,112,116,0,105,110,116,0,105,102,0,108,111,110,103 DB 0,114,101,103,105,115,116,101,114,0,114,101,116,117,114,110 DB 0,115,105,103,110,101,100,0,115,105,122,101,111,102,0,115 DB 116,97,116,105,99,0,115,116,114,117,99,116,0,115,119,105 DB 116,99,104,0,115,104,111,114,116,0,116,121,112,101,100,101 DB 102,0,117,110,115,105,103,110,101,100,0,117,110,105,111,110 DB 0,118,111,105,100,0,119,104,105,108,101,0,123,0,124,124 DB 0,124,61,0,124,0,125,0,126,0,92,67,77,51,50,92 DB 73,78,67,76,85,68,69,0,9,77,79,86,32,128,44,129 DB 10,9,77,79,86,32,129,44,128,0,9,77,79,86,32,128 DB 44,129,0,9,77,79,86,32,128,44,129,10,9,77,79,86 DB 32,128,44,130,0,9,77,79,86,32,128,44,130,0,9,77 DB 79,86,32,128,44,129,10,9,77,79,86,32,130,44,128,10 DB 9,77,79,86,32,129,44,128,0,9,77,79,86,32,130,44 DB 128,10,9,77,79,86,32,128,44,129,0,9,77,79,86,32 DB 69,65,88,44,128,10,9,77,79,86,32,69,67,88,44,69 DB 65,88,0,9,77,79,86,32,69,67,88,44,128,0,9,77 DB 79,86,32,69,83,73,44,128,10,9,77,79,86,32,69,65 DB 88,44,69,83,73,0,9,77,79,86,32,69,65,88,44,128 DB 0,9,76,69,65,32,69,83,73,44,128,10,9,77,79,86 DB 32,69,65,88,44,69,83,73,0,9,76,69,65,32,69,65 DB 88,44,128,0,9,80,85,83,72,32,69,65,88,10,9,76 DB 69,65,32,69,83,73,44,128,10,9,77,79,86,32,69,65 DB 88,44,69,83,73,10,9,80,79,80,32,69,66,88,10,9 DB 65,68,68,32,69,65,88,44,69,66,88,0,9,65,68,68 DB 32,69,65,88,44,69,83,73,10,9,76,69,65,32,69,83 DB 73,44,128,0,9,80,79,80,32,69,66,88,10,9,77,79 DB 86,32,69,65,88,44,69,66,88,0,9,80,79,80,32,69 DB 65,88,0,9,77,79,86,32,69,67,88,44,51,50,10,9 DB 77,85,76,32,69,67,88,0,9,83,72,76,32,69,65,88 DB 44,53,0,9,77,79,86,32,69,67,88,44,51,50,10,9 DB 73,77,85,76,32,69,67,88,0,9,83,72,76,32,69,65 DB 88,44,53,0,9,77,79,86,32,69,67,88,44,49,54,10 DB 9,77,85,76,32,69,67,88,0,9,83,72,76,32,69,65 DB 88,44,52,0,9,77,79,86,32,69,67,88,44,49,54,10 DB 9,73,77,85,76,32,69,67,88,0,9,83,72,76,32,69 DB 65,88,44,52,0,9,77,79,86,32,69,67,88,44,56,10 DB 9,77,85,76,32,69,67,88,0,9,83,72,76,32,69,65 DB 88,44,51,0,9,77,79,86,32,69,67,88,44,56,10,9 DB 73,77,85,76,32,69,67,88,0,9,83,72,76,32,69,65 DB 88,44,51,0,9,77,79,86,32,69,67,88,44,52,10,9 DB 77,85,76,32,69,67,88,0,9,83,72,76,32,69,65,88 DB 44,50,0,9,77,79,86,32,69,67,88,44,52,10,9,73 DB 77,85,76,32,69,67,88,0,9,83,72,76,32,69,65,88 DB 44,50,0,9,77,79,86,32,69,67,88,44,50,10,9,77 DB 85,76,32,69,67,88,0,9,83,72,76,32,69,65,88,44 DB 49,0,9,77,79,86,32,69,67,88,44,50,10,9,73,77 DB 85,76,32,69,67,88,0,9,83,72,76,32,69,65,88,44 DB 49,0,9,74,77,80,32,128,10,128,58,0,128,58,0,9 DB 74,77,80,32,128,10,129,58,10,128,58,0,128,58,10,129 DB 58,0,9,74,77,80,32,128,10,9,74,77,80,32,129,0 DB 9,74,77,80,32,128,0,9,74,78,90,32,128,10,9,74 DB 77,80,32,129,10,128,58,10,9,74,77,80,32,130,10,129 DB 58,0,129,58,10,9,74,77,80,32,130,10,9,74,90,32 DB 129,0,9,74,90,32,128,10,9,74,77,80,32,129,10,128 DB 58,10,9,74,77,80,32,130,10,129,58,0,129,58,10,9 DB 74,77,80,32,130,10,9,74,78,90,32,129,0,9,74,78 DB 90,32,128,10,9,74,77,80,32,129,10,128,58,10,9,74 DB 77,80,32,83,72,79,82,84,32,130,0,9,74,77,80,32 DB 129,10,9,74,78,90,32,130,0,9,74,90,32,128,10,9 DB 74,77,80,32,129,10,128,58,10,9,74,77,80,32,83,72 DB 79,82,84,32,130,0,9,74,77,80,32,129,10,9,74,90 DB 32,130,0,9,77,79,86,32,65,76,44,128,10,9,77,79 DB 86,83,88,32,69,65,88,44,65,76,0,9,77,79,86,83 DB 88,32,69,65,88,44,66,89,84,69,32,80,84,82,32,128 DB 0,9,77,79,86,32,65,76,44,128,10,9,77,79,86,90 DB 88,32,69,65,88,44,65,76,0,9,77,79,86,90,88,32 DB 69,65,88,44,66,89,84,69,32,80,84,82,32,128,0,9 DB 77,79,86,32,65,88,44,128,10,9,77,79,86,83,88,32 DB 69,65,88,44,65,88,0,9,77,79,86,83,88,32,69,65 DB 88,44,87,79,82,68,32,80,84,82,32,128,0,9,77,79 DB 86,32,65,88,44,128,10,9,77,79,86,90,88,32,69,65 DB 88,44,65,88,0,9,77,79,86,90,88,32,69,65,88,44 DB 87,79,82,68,32,80,84,82,32,128,0,9,77,79,86,32 DB 69,67,88,44,128,10,9,67,77,80,32,69,65,88,44,69 DB 67,88,0,9,67,77,80,32,69,65,88,44,128,0,9,77 DB 79,86,83,88,32,69,67,88,44,66,89,84,69,32,80,84 DB 82,128,10,9,67,77,80,32,69,65,88,44,69,67,88,0 DB 9,67,77,80,32,65,76,44,66,89,84,69,32,80,84,82 DB 128,0,9,77,79,86,90,88,32,69,67,88,44,66,89,84 DB 69,32,80,84,82,128,10,9,67,77,80,32,69,65,88,44 DB 69,67,88,0,9,67,77,80,32,65,76,44,66,89,84,69 DB 32,80,84,82,128,0,9,77,79,86,32,69,65,88,44,91 DB 128,10,9,80,85,83,72,32,69,65,88,0,9,80,85,83 DB 72,32,68,87,79,82,68,32,80,84,82,32,91,128,0,9 DB 77,79,86,32,69,65,88,44,128,10,9,80,85,83,72,32 DB 69,65,88,0,9,80,85,83,72,32,128,0,9,77,79,86 DB 32,69,65,88,44,48,0,9,88,79,82,32,69,65,88,44 DB 69,65,88,0,9,77,79,86,32,65,88,44,48,0,9,88 DB 79,82,32,65,88,44,65,88,0,9,77,79,86,32,65,76 DB 44,48,0,9,88,79,82,32,65,76,44,65,76,0,9,77 DB 79,86,32,65,76,44,48,0,9,88,79,82,32,65,76,44 DB 65,76,0,73,110,118,97,108,105,100,32,109,97,99,114,111 DB 32,112,97,114,97,109,101,116,101,114,0,85,110,116,101,114 DB 109,105,110,97,116,101,100,32,115,116,114,105,110,103,0,85 DB 110,100,101,102,105,110,101,100,32,109,97,99,114,111,0,10 DB 0,10,0,67,77,51,50,32,86,50,46,51,77,32,111,112 DB 116,105,109,105,122,101,114,32,112,104,97,115,101,13,10,0 DB 35,97,115,109,0,35,101,110,100,97,115,109,0,35,105,102 DB 100,101,102,0,35,105,102,110,100,101,102,0,35,101,108,115 DB 101,0,35,101,110,100,105,102,0,35,112,114,97,103,109,97 DB 0,35,100,101,102,105,110,101,0,84,111,111,32,109,97,110 DB 121,32,109,97,99,114,111,32,100,101,102,105,110,105,116,105 DB 111,110,115,0,73,110,118,97,108,105,100,32,109,97,99,114 DB 111,32,110,97,109,101,0,84,111,111,32,109,97,110,121,32 DB 109,97,99,114,111,32,112,97,114,97,109,101,116,101,114,115 DB 0,35,117,110,100,101,102,0,35,105,110,99,108,117,100,101 DB 0,84,111,111,32,109,97,110,121,32,105,110,99,108,117,100 DB 101,32,102,105,108,101,115,0,73,110,118,97,108,105,100,32 DB 105,110,99,108,117,100,101,32,102,105,108,101,32,110,97,109 DB 101,0,114,0,67,97,110,110,111,116,32,111,112,101,110,32 DB 105,110,99,108,117,100,101,32,102,105,108,101,0,85,110,107 DB 110,111,119,110,32,112,114,101,112,114,111,99,101,115,115,111 DB 114,32,100,105,114,101,99,116,105,118,101,0,87,97,114,110 DB 105,110,103,58,32,0,83,121,110,116,97,120,32,101,114,114 DB 111,114,0,84,121,112,101,115,32,109,105,115,109,97,116,99 DB 104,0,73,108,108,101,103,97,108,32,105,110,100,105,114,101 DB 99,116,105,111,110,0,69,120,112,101,99,116,101,100,0,85 DB 110,116,101,114,109,105,110,97,116,101,100,32,99,111,109,109 DB 101,110,116,32,102,114,111,109,32,108,105,110,101,58,32,0 DB 84,111,111,32,109,97,110,121,32,101,114,114,111,114,115,0 DB 84,111,111,32,109,97,110,121,32,101,114,114,111,114,115,0 DB 70,97,116,97,108,32,101,114,114,111,114,44,32,99,111,109 DB 112,105,108,97,116,105,111,110,32,97,98,111,114,116,101,100 DB 13,10,0,70,97,116,97,108,32,101,114,114,111,114,44,32 DB 99,111,109,112,105,108,97,116,105,111,110,32,97,98,111,114 DB 116,101,100,13,10,0,78,111,32,97,99,116,105,118,101,32 DB 108,111,111,112,0,78,111,32,97,99,116,105,118,101,32,115 DB 119,105,116,99,104,0,65,78,68,32,69,65,88,44,69,65 DB 88,0,85,110,116,101,114,109,105,110,97,116,101,100,32,102 DB 117,110,99,116,105,111,110,0,32,101,114,114,111,114,115,13 DB 10,0,32,119,97,114,110,105,110,103,115,13,10,0,83,116 DB 114,105,110,103,32,115,112,97,99,101,32,101,120,97,117,115 DB 116,101,100,0,68,117,112,108,105,99,97,116,101,32,108,111 DB 99,97,108,32,111,114,32,97,114,103,0,65,114,103,32,110 DB 111,116,32,115,97,109,101,32,116,121,112,101,32,97,115,32 DB 112,114,111,116,111,116,121,112,101,32,105,110,32,0,80,114 DB 111,116,111,116,121,112,101,32,116,97,98,108,101,32,102,117 DB 108,108,0,83,121,109,98,111,108,32,116,97,98,108,101,32 DB 102,117,108,108,0,76,111,99,97,108,32,115,121,109,98,111 DB 108,32,110,97,109,101,32,112,111,111,108,32,102,117,108,108 DB 0,73,110,99,111,110,115,105,115,116,97,110,116,32,114,101 DB 45,100,101,99,108,97,114,97,116,105,111,110,0,68,117,112 DB 108,105,99,97,116,101,32,103,108,111,98,97,108,0,83,121 DB 109,98,111,108,32,116,97,98,108,101,32,102,117,108,108,0 DB 71,108,111,98,97,108,32,115,121,109,98,111,108,32,110,97 DB 109,101,32,112,111,111,108,32,102,117,108,108,0,69,120,112 DB 114,101,115,115,105,111,110,32,115,116,97,99,107,32,111,118 DB 101,114,102,108,111,119,0,69,120,112,114,101,115,115,105,111 DB 110,32,115,116,97,99,107,32,117,110,100,101,114,102,108,111 DB 119,0,67,111,110,115,116,97,110,116,32,101,120,112,114,101 DB 115,115,105,111,110,32,114,101,113,117,105,114,101,100,0,68 DB 101,99,108,97,114,97,116,105,111,110,32,109,117,115,116,32 DB 112,114,101,99,101,101,100,32,99,111,100,101,0,84,121,112 DB 101,32,115,112,101,99,105,102,105,101,114,32,109,105,115,115 DB 105,110,103,0,78,117,108,108,32,111,110,108,121,32,97,108 DB 108,111,119,101,100,32,105,110,32,102,105,114,115,116,32,105 DB 110,100,101,120,0,78,117,109,101,114,105,99,32,99,111,110 DB 115,116,97,110,116,32,114,101,113,117,105,114,101,100,0,68 DB 105,109,101,110,115,105,111,110,32,116,97,98,108,101,32,102 DB 117,108,108,0,73,108,108,101,103,97,108,32,105,110,105,116 DB 105,97,108,105,122,97,116,105,111,110,0,84,111,111,32,109 DB 97,110,121,32,111,112,101,110,32,98,114,97,99,101,115,0 DB 85,110,98,97,108,97,110,99,101,100,32,98,114,97,99,101 DB 115,0,73,109,112,114,111,112,101,114,32,98,114,97,99,107 DB 101,116,101,100,32,105,110,105,116,105,97,108,105,122,97,116 DB 105,111,110,0,73,110,118,97,108,105,100,32,105,110,105,116 DB 32,116,121,112,101,0,85,110,100,101,102,105,110,101,100,0 DB 77,117,115,116,32,98,101,32,112,111,105,110,116,101,114,32 DB 97,114,114,97,121,0,73,109,112,114,111,112,101,114,32,98 DB 114,97,99,107,101,116,101,100,32,105,110,105,116,105,97,108 DB 105,122,97,116,105,111,110,0,73,109,112,114,111,112,101,114 DB 32,115,121,109,98,111,108,32,105,110,32,105,110,105,116,105 DB 97,108,105,122,97,116,105,111,110,0,84,111,111,32,109,97 DB 110,121,32,105,110,105,116,105,97,108,32,118,97,108,117,101 DB 115,0,73,110,99,111,114,114,101,99,116,32,100,101,99,108 DB 97,114,97,116,105,111,110,0,115,116,114,117,99,116,32,118 DB 97,114,105,97,98,108,101,32,101,120,112,101,99,116,101,100 DB 0,115,116,114,117,99,116,32,116,97,103,32,110,97,109,101 DB 32,101,120,112,101,99,116,101,100,0,83,116,114,117,99,116 DB 117,114,101,32,123,32,101,120,112,101,99,116,101,100,0,73 DB 108,108,101,103,97,108,108,121,32,110,101,115,116,101,100,32 DB 102,117,110,99,116,105,111,110,32,111,114,32,112,114,111,116 DB 111,116,121,112,101,0,80,114,111,116,111,116,121,112,101,32 DB 116,97,98,108,101,32,102,117,108,108,0,85,110,114,101,115 DB 111,108,118,101,100,0,85,110,114,101,102,101,114,101,110,99 DB 101,100,0,69,65,88,0,79,70,70,83,69,84,32,0,95 DB 108,105,116,43,0,68,87,79,82,68,32,80,84,82,32,91 DB 69,66,80,43,69,68,73,43,0,87,79,82,68,32,80,84 DB 82,32,91,69,66,80,43,69,68,73,43,0,66,89,84,69 DB 32,80,84,82,32,91,69,66,80,43,69,68,73,43,0,68 DB 87,79,82,68,32,80,84,82,32,91,69,66,80,43,0,87 DB 79,82,68,32,80,84,82,32,91,69,66,80,43,0,66,89 DB 84,69,32,80,84,82,32,91,69,66,80,43,0,68,87,79 DB 82,68,32,80,84,82,32,91,69,66,80,45,0,87,79,82 DB 68,32,80,84,82,32,91,69,66,80,45,0,66,89,84,69 DB 32,80,84,82,32,91,69,66,80,45,0,69,67,88,0,69 DB 68,88,0,68,87,79,82,68,32,80,84,82,32,0,87,79 DB 82,68,32,80,84,82,32,0,66,89,84,69,32,80,84,82 DB 32,0,91,69,83,73,43,0,91,69,67,88,43,0,91,69 DB 68,88,43,0,91,69,66,88,43,0,91,69,83,73,93,0 DB 91,69,68,88,93,0,91,69,67,88,93,0,91,69,66,88 DB 93,0,69,66,88,0,32,69,82,82,79,82,32,105,110,32 DB 119,114,105,116,101,95,111,112,101,114,10,0,80,85,83,72 DB 32,69,66,88,0,77,79,86,32,69,66,88,44,69,65,88 DB 0,80,79,80,32,69,68,88,0,80,79,80,32,69,68,88 DB 0,9,88,79,82,32,69,65,88,44,69,65,88,10,0,77 DB 79,86,32,69,65,88,44,124,0,77,79,86,90,88,32,69 DB 65,88,44,124,0,77,79,86,83,88,32,69,65,88,44,124 DB 0,9,88,79,82,32,69,65,88,44,69,65,88,10,0,77 DB 79,86,32,65,76,44,124,0,77,79,86,83,88,32,69,65 DB 88,44,124,0,9,88,79,82,32,69,67,88,44,69,67,88 DB 10,0,77,79,86,32,69,67,88,44,124,0,77,79,86,90 DB 88,32,69,67,88,44,124,0,77,79,86,83,88,32,69,67 DB 88,44,124,0,9,88,79,82,32,69,67,88,44,69,67,88 DB 10,0,77,79,86,32,67,76,44,124,0,77,79,86,83,88 DB 32,69,67,88,44,124,0,80,85,83,72,32,69,66,88,0 DB 80,85,83,72,32,69,66,88,0,77,79,86,32,69,66,88 DB 44,69,83,73,0,78,69,71,32,124,0,78,79,84,32,124 DB 0,65,68,68,32,124,44,115,116,114,117,99,115,105,122,101 DB 0,65,68,68,32,124,44,52,0,65,68,68,32,124,44,50 DB 0,73,78,67,32,124,0,83,85,66,32,124,44,115,116,114 DB 117,99,115,105,122,101,0,83,85,66,32,124,44,52,0,83 DB 85,66,32,124,44,50,0,68,69,67,32,124,0,65,68,68 DB 32,69,83,73,44,69,65,88,0,70,117,110,99,116,105,111 DB 110,32,110,111,116,32,112,114,111,116,111,116,121,112,101,100 DB 0,85,110,100,101,102,105,110,101,100,32,115,121,109,98,111 DB 108,0,9,77,79,86,32,69,65,88,44,79,70,70,83,69 DB 84,32,0,9,76,69,65,32,69,65,88,44,0,77,79,86 DB 32,69,65,88,44,69,83,73,0,73,110,118,97,108,105,100 DB 32,39,38,39,32,111,112,101,114,97,116,105,111,110,0,83 DB 121,109,98,111,108,32,101,120,112,101,99,116,101,100,0,39 DB 40,39,32,101,120,112,101,99,116,101,100,0,9,65,68,68 DB 32,69,65,88,44,0,80,85,83,72,32,69,65,88,0,9 DB 77,79,86,32,69,68,73,44,32,0,65,68,68,32,69,83 DB 73,44,69,65,88,0,77,79,86,32,69,65,88,44,69,83 DB 73,0,78,111,116,32,97,32,115,116,114,117,99,116,117,114 DB 101,32,109,101,109,98,101,114,0,83,116,114,117,99,116,117 DB 114,101,32,109,101,109,98,101,114,32,101,120,112,101,99,116 DB 101,100,0,80,111,105,110,116,101,114,32,116,111,32,83,116 DB 114,117,99,116,32,101,120,112,101,99,116,101,100,0,83,116 DB 114,117,99,116,117,114,101,32,109,101,109,98,101,114,32,101 DB 120,112,101,99,116,101,100,0,83,116,114,117,99,116,117,114 DB 101,32,109,101,109,98,101,114,32,101,120,112,101,99,116,101 DB 100,0,73,110,118,97,108,105,100,32,115,116,114,117,99,116 DB 117,114,101,32,111,112,101,114,97,116,105,111,110,0,65,68 DB 68,32,69,83,73,44,69,65,88,0,77,79,86,32,69,65 DB 88,44,69,83,73,0,65,68,68,32,124,44,115,116,114,117 DB 99,115,105,122,101,0,65,68,68,32,124,44,52,0,65,68 DB 68,32,124,44,50,0,73,78,67,32,124,0,83,85,66,32 DB 124,44,115,116,114,117,99,115,105,122,101,0,83,85,66,32 DB 124,44,52,0,83,85,66,32,124,44,50,0,68,69,67,32 DB 124,0,77,79,86,32,69,67,88,44,69,65,88,0,65,68 DB 68,32,69,65,88,44,124,0,65,68,68,32,69,65,88,44 DB 69,67,88,0,83,85,66,32,69,65,88,44,124,0,83,85 DB 66,32,69,65,88,44,69,67,88,0,77,85,76,32,69,67 DB 88,0,73,77,85,76,32,69,67,88,0,88,79,82,32,69 DB 68,88,44,69,68,88,0,68,73,86,32,69,67,88,0,67 DB 68,81,0,73,68,73,86,32,69,67,88,0,77,79,86,32 DB 69,65,88,44,69,68,88,0,65,78,68,32,69,65,88,44 DB 124,0,65,78,68,32,69,65,88,44,69,67,88,0,79,82 DB 32,69,65,88,44,124,0,79,82,32,69,65,88,44,69,67 DB 88,0,88,79,82,32,69,65,88,44,124,0,88,79,82,32 DB 69,65,88,44,69,67,88,0,83,72,76,32,69,65,88,44 DB 67,76,0,65,78,68,32,69,65,88,44,48,70,70,70,70 DB 104,0,65,78,68,32,69,65,88,44,48,70,70,104,0,83 DB 72,82,32,69,65,88,44,67,76,0,83,72,82,32,65,88 DB 44,67,76,0,83,72,82,32,65,76,44,67,76,0,67,77 DB 80,32,69,65,88,44,124,0,67,77,80,32,69,65,88,44 DB 69,67,88,0,83,69,84,69,32,65,76,0,83,69,84,78 DB 69,32,65,76,0,83,69,84,76,32,65,76,0,83,69,84 DB 76,69,32,65,76,0,83,69,84,71,32,65,76,0,83,69 DB 84,71,69,32,65,76,0,83,69,84,66,32,65,76,0,83 DB 69,84,66,69,32,65,76,0,83,69,84,65,32,65,76,0 DB 83,69,84,65,69,32,65,76,0,65,78,68,32,65,76,44 DB 65,76,0,65,78,68,32,69,65,88,44,69,65,88,0,83 DB 69,84,90,32,65,76,0,65,78,68,32,65,76,44,65,76 DB 0,77,79,86,32,124,44,32,69,65,88,0,77,79,86,32 DB 124,44,32,65,88,0,77,79,86,32,124,44,32,65,76,0 DB 78,111,110,45,97,115,115,105,103,110,97,98,108,101,0,0 DB 44,0,32,68,66,32,0,32,68,87,32,0,32,68,68,32 DB 0,79,70,70,83,69,84,32,0,79,70,70,83,69,84,32 DB 76,95,108,105,116,43,0,76,95,0,0,32,68,68,32,48 DB 104,10,0,32,68,68,32,0,32,68,85,80,40,48,41,10 DB 0,32,68,87,32,48,104,10,0,32,68,87,32,0,32,68 DB 85,80,40,48,41,10,0,32,68,66,32,48,104,10,0,32 DB 68,66,32,0,32,68,85,80,40,48,41,10,0,69,88,84 DB 82,78,32,0,32,70,87,79,82,68,0,69,88,84,82,78 DB 32,0,32,78,69,65,82,0,69,88,84,82,78,32,0,32 DB 68,68,0,32,68,87,0,32,68,66,0,58,10,0,80,85 DB 83,72,65,68,0,80,85,83,72,32,69,66,80,0,77,79 DB 86,32,69,66,80,44,69,83,80,0,9,83,85,66,32,69 DB 83,80,44,0,80,79,80,65,68,0,73,82,69,84,68,0 DB 77,79,86,32,69,83,80,44,69,66,80,0,80,79,80,32 DB 69,66,80,0,9,82,69,84,70,32,0,9,82,69,84,78 DB 32,0,9,82,69,84,70,0,82,69,84,78,0,58,10,0 DB 95,108,105,116,0,44,0,32,68,66,32,0,9,67,65,76 DB 76,32,70,87,79,82,68,32,80,84,82,32,0,9,67,65 DB 76,76,32,0,9,65,68,68,32,69,83,80,44,0,9,74 DB 77,80,32,0,9,74,77,80,32,83,72,79,82,84,32,0 DB 9,74,78,90,32,0,9,74,90,32,0,9,74,78,90,32 DB 83,72,79,82,84,32,0,9,74,90,32,83,72,79,82,84 DB 32,0,9,74,77,80,32,0,9,67,77,80,32,69,65,88 DB 44,0,9,74,69,32,0,77,79,86,32,69,83,73,44,69 DB 65,88,0,9,77,79,86,32,69,83,73,44,0,10,0,9 DB 77,79,86,32,69,83,73,44,79,70,70,83,69,84,32,0 DB 9,76,69,65,32,69,83,73,44,0,10,0,80,85,66,76 DB 73,67,32,0,80,85,66,76,73,67,32,0,67,111,100,101 DB 32,98,117,102,102,101,114,32,111,118,101,114,102,108,111,119 DB 46,46,46,32,40,53,49,50,48,48,48,32,98,121,116,101 DB 115,41,13,10,0,84,111,111,32,109,97,110,121,32,97,99 DB 116,105,118,101,32,99,97,115,101,115,0,10,10,46,67,79 DB 68,69,10,0,10,46,68,65,84,65,10,0,78,111,116,32 DB 101,110,111,117,103,104,32,109,101,109,111,114,121,32,116,111 DB 32,97,108,108,111,99,97,116,101,32,37,100,32,98,121,116 DB 101,115,46,13,10,0,73,110,118,97,108,105,100,32,108,97 DB 98,101,108,32,112,114,101,102,105,120,32,99,104,97,114,97 DB 99,116,101,114,0,73,110,118,97,108,105,100,32,115,119,105 DB 116,99,104,0,114,0,119,0,69,114,114,111,114,58,32,67 DB 97,110,39,116,32,111,112,101,110,32,65,83,77,32,102,105 DB 108,101,10,0,84,111,111,32,109,97,110,121,32,112,97,114 DB 97,109,101,116,101,114,115,0,67,32,77,105,110,117,115,32 DB 51,50,32,67,111,109,112,105,108,101,114,44,32,86,101,114 DB 115,105,111,110,32,50,46,51,77,13,10,0,85,115,97,103 DB 101,58,32,83,111,117,114,99,101,70,105,108,101,32,91,65 DB 115,109,70,105,108,101,93,32,47,83,32,47,69,32,47,71 DB 32,47,76,32,47,87,32,47,80,120,13,10,0,47,83,32 DB 32,83,117,112,112,114,101,115,115,32,115,99,114,101,101,110 DB 32,111,117,116,112,117,116,32,40,101,46,103,46,44,32,104 DB 101,114,97,108,100,41,13,10,0,47,69,32,32,69,109,98 DB 101,100,32,115,111,117,114,99,101,32,105,110,32,65,83,77 DB 32,111,117,116,112,117,116,13,10,0,47,71,32,32,71,101 DB 110,101,114,97,116,101,32,115,101,112,97,114,97,116,101,32 DB 67,111,100,101,32,38,32,68,97,116,97,32,102,105,108,101 DB 115,13,10,0,47,76,32,32,76,105,115,116,32,102,105,108 DB 101,32,103,101,110,101,114,97,116,101,100,32,102,111,114,32 DB 101,114,114,111,114,115,13,10,0,47,78,32,32,78,111,32 DB 111,112,116,105,109,105,122,97,116,105,111,110,13,10,0,47 DB 79,32,32,79,112,116,105,109,105,122,101,32,102,111,114,32 DB 115,112,101,101,100,46,13,10,0,47,87,32,32,87,97,114 DB 110,105,110,103,115,32,79,78,13,10,0,47,80,120,32,76 DB 97,98,101,108,32,112,114,101,102,105,120,32,99,104,97,114 DB 97,99,116,101,114,32,40,120,61,76,97,98,101,108,32,99 DB 104,97,114,41,13,10,10,0,69,114,114,111,114,58,32,83 DB 111,117,114,99,101,32,102,105,108,101,110,97,109,101,32,114 DB 101,113,117,105,114,101,100,13,10,0,119,0,69,114,114,111 DB 114,58,32,67,97,110,39,116,32,111,112,101,110,32,65,83 DB 77,32,102,105,108,101,13,10,0,119,0,67,97,110,110,111 DB 116,32,111,112,101,110,32,76,73,83,84,32,102,105,108,101 DB 0,119,0,67,97,110,110,111,116,32,111,112,101,110,32,67 DB 111,100,101,32,102,105,108,101,0,67,32,77,105,110,117,115 DB 32,51,50,32,67,111,109,112,105,108,101,114,44,32,86,101 DB 114,115,105,111,110,32,50,46,51,77,13,10,0 PUBLIC _pcodebuf DD 0h PUBLIC _line_in DB 200 DUP(0) PUBLIC _input_ptr DD 0h PUBLIC _gst DB 32 DUP(0) PUBLIC _namesize DB 0h PUBLIC _gvalue DD 0h PUBLIC _GPool DB 15000 DUP(0) PUBLIC _LPool DB 300 DUP(0) PUBLIC _symtab DB 7200 DUP(0) PUBLIC _proto_list DD 700 DUP(0) PUBLIC _arg_count DD 0h PUBLIC _local_stack DD 0h PUBLIC _sptr DD 0h PUBLIC _fptr DD 0h PUBLIC _CrntStrucDef DD 0h PUBLIC _memoffset DD 0h PUBLIC _strucsize DD 0h PUBLIC _dim_pool DD 100 DUP(0) PUBLIC _literal_pool DB 10000 DUP(0) PUBLIC _expstk DB 320 DUP(0) PUBLIC _break_stack DD 10 DUP(0) PUBLIC _continue_stack DD 10 DUP(0) PUBLIC _switch_stack DD 160 DUP(0) PUBLIC _buffer DB 200 DUP(0) PUBLIC _buffin_ptr DD 0h PUBLIC _buffout_ptr DD 0h PUBLIC _define_index DD 500 DUP(0) PUBLIC _define_pool DB 15000 DUP(0) PUBLIC _define_ptr DD 0h PUBLIC _parm DW 0h PUBLIC _parm_index DD 10 DUP(0) PUBLIC _parm_pool DB 200 DUP(0) PUBLIC _parm_ptr DD 0h PUBLIC _incl_line DD 5 DUP(0) PUBLIC _incl_fh DD 5 DUP(0) PUBLIC _codename DB 40 DUP(0) PUBLIC _srcname DB 40 DUP(0) PUBLIC _asmname DB 40 DUP(0) PUBLIC _lstname DB 40 DUP(0) PUBLIC _zero_flag DB 0h PUBLIC _databuf DB 4096 DUP(0) PUBLIC _peep_buffer DB 1000 DUP(0) PUBLIC _symbols DB 200 DUP(0) .CODE EXTRN _iscntrl: NEAR EXTRN _isspace: NEAR EXTRN _isdigit: NEAR EXTRN _isupper: NEAR EXTRN _islower: NEAR EXTRN _ispunct: NEAR EXTRN _isalpha: NEAR EXTRN _isxdigit: NEAR EXTRN _isalnum: NEAR EXTRN _isgraph: NEAR EXTRN _toupper: NEAR EXTRN _tolower: NEAR EXTRN _fopen: NEAR EXTRN _fclose: NEAR EXTRN _remove: NEAR EXTRN _rename: NEAR EXTRN _fgetc: NEAR EXTRN _fgets: NEAR EXTRN _fputs: NEAR EXTRN _fputc: NEAR EXTRN _printf: NEAR EXTRN _sprintf: NEAR EXTRN _fprintf: NEAR EXTRN _ftell: NEAR EXTRN _rewind: NEAR EXTRN _fseek: NEAR EXTRN _fread: NEAR EXTRN _fwrite: NEAR EXTRN _strcpy: NEAR EXTRN _strncpy: NEAR EXTRN _strcat: NEAR EXTRN _strncat: NEAR EXTRN _strcmp: NEAR EXTRN _strncmp: NEAR EXTRN _strlen: NEAR EXTRN _strchr: NEAR EXTRN _exit: NEAR EXTRN _iscntrl: NEAR EXTRN _isspace: NEAR EXTRN _isdigit: NEAR EXTRN _isupper: NEAR EXTRN _islower: NEAR EXTRN _ispunct: NEAR EXTRN _isalpha: NEAR EXTRN _isxdigit: NEAR EXTRN _isalnum: NEAR EXTRN _isgraph: NEAR EXTRN _toupper: NEAR EXTRN _tolower: NEAR EXTRN _strcpy: NEAR EXTRN _strncpy: NEAR EXTRN _strcat: NEAR EXTRN _strncat: NEAR EXTRN _strcmp: NEAR EXTRN _strncmp: NEAR EXTRN _strlen: NEAR EXTRN _strchr: NEAR EXTRN _exit: NEAR _is_alpha: PUSH EBP MOV EBP,ESP MOVSX EAX,BYTE PTR [EBP+8] MOV ECX,32 OR EAX,ECX CMP EAX,97 SETGE AL AND AL,AL JZ L_1 MOVSX EAX,BYTE PTR [EBP+8] MOV ECX,32 OR EAX,ECX CMP EAX,122 SETLE AL AND AL,AL L_1: JNZ L_2 MOVSX EAX,BYTE PTR [EBP+8] CMP EAX,95 SETE AL AND AL,AL L_2: POP EBP RETN 4 _is_digit: PUSH EBP MOV EBP,ESP MOVSX EAX,BYTE PTR [EBP+8] CMP EAX,48 SETGE AL AND AL,AL JZ L_4 MOVSX EAX,BYTE PTR [EBP+8] CMP EAX,57 SETLE AL AND AL,AL L_4: POP EBP RETN 4 _copystring: PUSH EBP MOV EBP,ESP L_6: MOV ESI,DWORD PTR [EBP+12] INC DWORD PTR [EBP+12] MOV EBX,ESI MOV ESI,DWORD PTR [EBP+8] INC DWORD PTR [EBP+8] MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL AND EAX,EAX JZ L_7 JMP L_6 L_7: POP EBP RETN 8 _equal_string: PUSH EBP MOV EBP,ESP L_8: MOV ESI,DWORD PTR [EBP+12] MOV EBX,ESI MOV ESI,DWORD PTR [EBP+8] INC DWORD PTR [EBP+8] MOVSX EAX,BYTE PTR [EBX] CMP AL,BYTE PTR [ESI] SETNE AL AND AL,AL JZ L_11 XOR EAX,EAX JMP L_12 L_11: L_9: MOV ESI,DWORD PTR [EBP+12] INC DWORD PTR [EBP+12] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JNZ L_8 L_10: MOV EAX,-1 L_12: POP EBP RETN 8 _skip_blanks: PUSH EBP MOV EBP,ESP L_13: MOV ESI,_buffin_ptr MOVSX EAX,BYTE PTR [ESI] CMP EAX,33 SETL AL AND AL,AL JZ L_15 MOV ESI,_buffin_ptr MOVSX EAX,BYTE PTR [ESI] L_15: AND EAX,EAX JZ L_14 INC _buffin_ptr MOV EAX,_buffin_ptr JMP L_13 L_14: MOV ESI,_buffin_ptr MOVSX EAX,BYTE PTR [ESI] POP EBP RETN _more_parms: PUSH EBP MOV EBP,ESP SUB ESP,1 CALL _skip_blanks MOV BYTE PTR [EBP-1], AL CMP EAX,44 SETE AL AND AL,AL JNZ L_17 MOVSX EAX,BYTE PTR [EBP-1] CMP EAX,41 SETE AL AND AL,AL L_17: JZ L_18 INC _buffin_ptr MOV EAX,_buffin_ptr JMP L_19 L_18: PUSH OFFSET L_lit+1651 CALL _line_error L_19: MOVSX EAX,BYTE PTR [EBP-1] CMP EAX,44 SETE AL AND AL,AL MOV ESP,EBP POP EBP RETN _skip_comment: PUSH EBP MOV EBP,ESP SUB ESP,3 XOR EAX,EAX MOV WORD PTR [EBP-2], AX L_21: MOV ESI,_buffin_ptr INC _buffin_ptr MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBP-3], AL AND EAX,EAX JNZ L_23 MOV EAX,OFFSET _buffer MOV _buffin_ptr, EAX PUSH EAX PUSH 200 PUSH _source_fh CALL _fgets AND EAX,EAX JNZ L_24 MOV ESI,_buffin_ptr XOR EAX,EAX MOV BYTE PTR [ESI], AL CALL _UTC_error JMP L_25 L_24: INC _line_number MOV EAX,_line_number JMP L_26 L_23: MOVZX EAX,WORD PTR [EBP-2] MOV ECX,8 SHL EAX,CL AND EAX,0FFFFh MOVSX ECX,BYTE PTR [EBP-3] ADD EAX,ECX MOV WORD PTR [EBP-2], AX CMP EAX,10799 SETE AL AND AL,AL JZ L_27 JMP L_25 L_27: MOVZX EAX,WORD PTR [EBP-2] CMP EAX,12074 SETE AL AND AL,AL JZ L_28 CALL _skip_comment L_28: L_26: JMP L_21 L_22: L_25: MOV ESP,EBP POP EBP RETN _copy_name: PUSH EBP MOV EBP,ESP L_29: MOV ESI,_buffout_ptr INC _buffout_ptr MOV EBX,ESI MOV ESI,_buffin_ptr INC _buffin_ptr MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL L_30: MOV ESI,_buffin_ptr MOVSX EAX,BYTE PTR [ESI] PUSH EAX CALL _is_alpha AND EAX,EAX JNZ L_32 MOV ESI,_buffin_ptr MOVSX EAX,BYTE PTR [ESI] PUSH EAX CALL _is_digit L_32: AND EAX,EAX JNZ L_29 L_31: MOV ESI,_buffout_ptr XOR EAX,EAX MOV BYTE PTR [ESI], AL POP EBP RETN _copy_string: PUSH EBP MOV EBP,ESP SUB ESP,1 MOV ESI,_buffin_ptr MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBP-1], AL CMP EAX,34 SETE AL AND AL,AL JNZ L_33 MOVSX EAX,BYTE PTR [EBP-1] CMP EAX,39 SETE AL AND AL,AL L_33: JZ L_34 L_35: MOV ESI,_buffout_ptr INC _buffout_ptr MOV EBX,ESI MOV ESI,_buffin_ptr MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL AND EAX,EAX JNZ L_38 PUSH OFFSET L_lit+1675 CALL _line_error JMP L_39 L_38: MOV ESI,_buffin_ptr INC _buffin_ptr MOVSX EAX,BYTE PTR [ESI] CMP EAX,92 SETE AL AND AL,AL JZ L_40 MOV ESI,_buffout_ptr INC _buffout_ptr MOV EBX,ESI MOV ESI,_buffin_ptr INC _buffin_ptr MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL L_40: L_36: MOV ESI,_buffin_ptr MOVSX EAX,BYTE PTR [ESI] CMP AL,BYTE PTR [EBP-1] SETNE AL AND AL,AL JNZ L_35 L_37: MOV ESI,_buffout_ptr INC _buffout_ptr MOV EBX,ESI MOV ESI,_buffin_ptr INC _buffin_ptr MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL L_34: L_39: MOV ESP,EBP POP EBP RETN _lookup_macro: PUSH EBP MOV EBP,ESP SUB ESP,8 MOV EAX,_buffout_ptr MOV DWORD PTR [EBP-8], EAX CALL _copy_name MOV EAX,_macro SUB EAX,1 MOV DWORD PTR [EBP-4], EAX L_41: MOV EAX,DWORD PTR [EBP-4] CMP EAX,0 SETGE AL AND AL,AL JZ L_42 JMP SHORT L_43 L_44: DEC DWORD PTR [EBP-4] MOV EAX,DWORD PTR [EBP-4] JMP SHORT L_41 L_43: PUSH DWORD PTR [EBP-8] MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 MOV ESI,OFFSET _define_index ADD ESI,EAX PUSH DWORD PTR [ESI] CALL _strcmp AND EAX,EAX JNZ L_45 MOV EAX,DWORD PTR [EBP-4] JMP L_46 L_45: JMP L_44 L_42: MOVSX EAX,BYTE PTR [EBP+8] AND EAX,EAX JZ L_47 PUSH OFFSET L_lit+1695 CALL _line_error L_47: MOV EAX,-1 L_46: MOV ESP,EBP POP EBP RETN 4 _resolve_macro: PUSH EBP MOV EBP,ESP SUB ESP,17 MOV EAX,_buffout_ptr MOV DWORD PTR [EBP-12], EAX XOR EAX,EAX PUSH EAX CALL _lookup_macro MOV DWORD PTR [EBP-16], EAX CMP EAX,-1 SETNE AL AND AL,AL JZ L_48 MOV EAX,DWORD PTR [EBP-16] SHL EAX,2 MOV ESI,OFFSET _define_index ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-4], EAX L_49: MOV ESI,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_50 JMP L_49 L_50: XOR EAX,EAX MOV _parm, AX MOV EAX,OFFSET _parm_pool MOV _parm_ptr, EAX MOV ESI,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_51 CALL _skip_blanks CMP EAX,40 SETE AL AND AL,AL JZ L_52 INC _buffin_ptr MOV EAX,_buffin_ptr L_53: MOVZX EAX,_parm INC _parm SHL EAX,2 MOV ESI,OFFSET _parm_index ADD ESI,EAX MOV EAX,_parm_ptr MOV DWORD PTR [ESI], EAX L_56: MOV ESI,_buffin_ptr MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_58 MOV ESI,_buffin_ptr MOVSX EAX,BYTE PTR [ESI] CMP EAX,44 SETNE AL AND AL,AL JZ L_59 MOV ESI,_buffin_ptr MOVSX EAX,BYTE PTR [ESI] CMP EAX,41 SETNE AL AND AL,AL L_59: L_58: JZ L_57 MOV ESI,_parm_ptr INC _parm_ptr MOV EBX,ESI MOV ESI,_buffin_ptr INC _buffin_ptr MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL JMP L_56 L_57: MOV ESI,_parm_ptr INC _parm_ptr XOR EAX,EAX MOV BYTE PTR [ESI], AL L_54: CALL _more_parms AND EAX,EAX JNZ L_53 L_55: L_52: L_51: L_60: MOV ESI,DWORD PTR [EBP-4] MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBP-17], AL AND EAX,EAX JZ L_61 MOVSX EAX,BYTE PTR [EBP-17] MOV ECX,128 AND EAX,ECX JZ L_62 MOVSX EAX,BYTE PTR [EBP-17] MOV ECX,127 AND EAX,ECX MOV DWORD PTR [EBP-16], EAX MOVZX ECX,_parm CMP EAX,ECX SETB AL AND AL,AL JZ L_63 MOV EAX,DWORD PTR [EBP-16] SHL EAX,2 MOV ESI,OFFSET _parm_index ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-8], EAX L_64: MOV ESI,DWORD PTR [EBP-8] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_65 JMP SHORT L_66 L_67: INC DWORD PTR [EBP-8] MOV EAX,DWORD PTR [EBP-8] JMP SHORT L_64 L_66: MOV ESI,DWORD PTR [EBP-12] INC DWORD PTR [EBP-12] MOV EBX,ESI MOV ESI,DWORD PTR [EBP-8] MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL JMP L_67 L_65: L_63: JMP L_68 L_62: MOV ESI,DWORD PTR [EBP-12] INC DWORD PTR [EBP-12] MOV EBX,ESI MOV ESI,DWORD PTR [EBP-4] MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL L_68: INC DWORD PTR [EBP-4] MOV EAX,DWORD PTR [EBP-4] JMP L_60 L_61: MOV EAX,DWORD PTR [EBP-12] MOV _buffout_ptr, EAX MOV ESI,EAX ;IndexPtr XOR EAX,EAX MOV BYTE PTR [ESI], AL L_48: MOV ESP,EBP POP EBP RETN _match: PUSH EBP MOV EBP,ESP SUB ESP,4 MOV EAX,_buffin_ptr MOV DWORD PTR [EBP-4], EAX L_69: MOV ESI,DWORD PTR [EBP+8] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_70 MOV ESI,DWORD PTR [EBP+8] INC DWORD PTR [EBP+8] MOV EBX,ESI MOV ESI,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] MOVSX EAX,BYTE PTR [EBX] CMP AL,BYTE PTR [ESI] SETNE AL AND AL,AL JZ L_71 XOR EAX,EAX JMP L_72 L_71: JMP L_69 L_70: MOV ESI,DWORD PTR [EBP-4] MOVSX EAX,BYTE PTR [ESI] PUSH EAX CALL _is_alpha AND EAX,EAX JNZ L_73 MOV ESI,DWORD PTR [EBP-4] MOVSX EAX,BYTE PTR [ESI] PUSH EAX CALL _is_digit L_73: AND EAX,EAX JZ L_74 XOR EAX,EAX JMP L_72 L_74: MOV EAX,DWORD PTR [EBP-4] MOV _buffin_ptr, EAX CALL _skip_blanks MOV EAX,1 L_72: MOV ESP,EBP POP EBP RETN 4 _compareT: PUSH EBP MOV EBP,ESP SUB ESP,11 XOR EAX,EAX MOV WORD PTR [EBP-2], AX L_75: MOVSX EAX,WORD PTR [EBP-2] CMP EAX,8 SETL AL AND AL,AL JZ L_76 JMP SHORT L_77 L_78: INC WORD PTR [EBP-2] MOVSX EAX,WORD PTR [EBP-2] JMP SHORT L_75 L_77: MOVSX EAX,WORD PTR [EBP-2] MOV ECX,25 IMUL ECX XOR ECX,ECX ADD EAX,ECX MOV ESI,OFFSET _symbols ADD ESI,EAX XOR EAX,EAX MOV BYTE PTR [ESI], AL JMP L_78 L_76: MOV EAX,DWORD PTR [EBP+8] MOV ECX,100 IMUL ECX MOV ESI,OFFSET _peep_buffer ADD ESI,EAX MOV EAX,ESI MOV DWORD PTR [EBP-6], EAX L_79: MOV ESI,DWORD PTR [EBP+12] MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBP-11], AL AND EAX,EAX JZ L_80 MOVSX EAX,BYTE PTR [EBP-11] CMP EAX,10 SETE AL AND AL,AL JZ L_81 MOV ESI,DWORD PTR [EBP-6] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_82 XOR EAX,EAX JMP L_83 L_82: MOV EAX,DWORD PTR [EBP+8] ADD EAX,1 MOV ECX,10 CDQ IDIV ECX MOV EAX,EDX MOV DWORD PTR [EBP+8], EAX MOV EAX,DWORD PTR [EBP+8] MOVZX ECX,_peep_next CMP EAX,ECX SETE AL AND AL,AL JZ L_84 XOR EAX,EAX JMP L_83 L_84: MOV EAX,DWORD PTR [EBP+8] MOV ECX,100 IMUL ECX MOV ESI,OFFSET _peep_buffer ADD ESI,EAX MOV EAX,ESI MOV DWORD PTR [EBP-6], EAX JMP L_85 L_81: MOVSX EAX,BYTE PTR [EBP-11] CMP EAX,32 SETE AL AND AL,AL JZ L_86 MOV ESI,DWORD PTR [EBP-6] MOVSX EAX,BYTE PTR [ESI] PUSH EAX CALL _isspace AND EAX,EAX JNZ L_87 XOR EAX,EAX JMP L_83 L_87: L_88: MOV ESI,DWORD PTR [EBP-6] MOVSX EAX,BYTE PTR [ESI] PUSH EAX CALL _isspace AND EAX,EAX JZ L_89 INC DWORD PTR [EBP-6] MOV EAX,DWORD PTR [EBP-6] JMP L_88 L_89: JMP L_90 L_86: MOVSX EAX,BYTE PTR [EBP-11] MOV ECX,128 AND EAX,ECX JZ L_91 MOV EAX,DWORD PTR [EBP+12] ADD EAX,1 MOV ESI,EAX ;IndexPtr MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBP-11], AL MOV ESI,DWORD PTR [EBP+12] MOVSX EAX,BYTE PTR [ESI] MOV ECX,127 AND EAX,ECX MOV ECX,25 IMUL ECX MOV ESI,OFFSET _symbols ADD ESI,EAX MOV EAX,ESI MOV DWORD PTR [EBP-10], EAX MOV ESI,DWORD PTR [EBP-10] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_92 L_93: MOV ESI,DWORD PTR [EBP-6] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_95 MOV ESI,DWORD PTR [EBP-6] MOVSX EAX,BYTE PTR [ESI] CMP AL,BYTE PTR [EBP-11] SETNE AL AND AL,AL L_95: JZ L_94 MOV ESI,DWORD PTR [EBP-6] INC DWORD PTR [EBP-6] MOV EBX,ESI MOV ESI,DWORD PTR [EBP-10] INC DWORD PTR [EBP-10] MOVSX EAX,BYTE PTR [EBX] CMP AL,BYTE PTR [ESI] SETNE AL AND AL,AL JZ L_96 XOR EAX,EAX JMP L_83 L_96: JMP L_93 L_94: MOV ESI,DWORD PTR [EBP-10] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_97 XOR EAX,EAX JMP L_83 L_97: JMP L_98 L_92: L_99: MOV ESI,DWORD PTR [EBP-6] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_101 MOV ESI,DWORD PTR [EBP-6] MOVSX EAX,BYTE PTR [ESI] CMP AL,BYTE PTR [EBP-11] SETNE AL AND AL,AL L_101: JZ L_100 MOV ESI,DWORD PTR [EBP-10] INC DWORD PTR [EBP-10] MOV EBX,ESI MOV ESI,DWORD PTR [EBP-6] INC DWORD PTR [EBP-6] MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL JMP L_99 L_100: MOV ESI,DWORD PTR [EBP-10] XOR EAX,EAX MOV BYTE PTR [ESI], AL L_98: JMP L_102 L_91: MOV ESI,DWORD PTR [EBP-6] INC DWORD PTR [EBP-6] MOVSX EAX,BYTE PTR [EBP-11] CMP AL,BYTE PTR [ESI] SETNE AL AND AL,AL JZ L_103 XOR EAX,EAX JMP L_83 L_103: L_102: L_90: L_85: INC DWORD PTR [EBP+12] MOV EAX,DWORD PTR [EBP+12] JMP L_79 L_80: MOV ESI,DWORD PTR [EBP-6] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ SHORT L_105 XOR EAX,EAX JMP SHORT L_104 L_105: MOV EAX,DWORD PTR [EBP+8] ADD EAX,1 L_104: L_83: MOV ESP,EBP POP EBP RETN 8 _exchange: PUSH EBP MOV EBP,ESP SUB ESP,8 MOV EAX,DWORD PTR [EBP+12] ADD EAX,9 MOV ECX,10 XOR EDX,EDX DIV ECX MOV EAX,EDX MOV _peep_top, AX MOVZX EAX,_peep_top MOV ECX,100 MUL ECX MOV ESI,OFFSET _peep_buffer ADD ESI,EAX MOV EAX,ESI MOV DWORD PTR [EBP-8], EAX L_106: MOV ESI,DWORD PTR [EBP+8] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_107 MOV ESI,DWORD PTR [EBP+8] MOVSX EAX,BYTE PTR [ESI] MOV ECX,128 AND EAX,ECX JZ L_108 MOV ESI,DWORD PTR [EBP+8] MOVSX EAX,BYTE PTR [ESI] MOV ECX,127 AND EAX,ECX MOV ECX,25 IMUL ECX MOV ESI,OFFSET _symbols ADD ESI,EAX MOV EAX,ESI MOV DWORD PTR [EBP-4], EAX L_109: MOV ESI,DWORD PTR [EBP-4] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_110 MOV ESI,DWORD PTR [EBP-8] INC DWORD PTR [EBP-8] MOV EBX,ESI MOV ESI,DWORD PTR [EBP-4] INC DWORD PTR [EBP-4] MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL JMP L_109 L_110: JMP L_111 L_108: MOV ESI,DWORD PTR [EBP+8] MOVSX EAX,BYTE PTR [ESI] CMP EAX,10 SETE AL AND AL,AL JZ L_112 MOV ESI,DWORD PTR [EBP-8] XOR EAX,EAX MOV BYTE PTR [ESI], AL MOVZX EAX,_peep_top MOV ECX,9 ADD EAX,ECX MOV ECX,10 XOR EDX,EDX DIV ECX MOV EAX,EDX MOV _peep_top, AX MOVZX EAX,_peep_top MOV ECX,100 MUL ECX MOV ESI,OFFSET _peep_buffer ADD ESI,EAX MOV EAX,ESI MOV DWORD PTR [EBP-8], EAX JMP L_113 L_112: MOV ESI,DWORD PTR [EBP-8] INC DWORD PTR [EBP-8] MOV EBX,ESI MOV ESI,DWORD PTR [EBP+8] MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL L_113: L_111: INC DWORD PTR [EBP+8] MOV EAX,DWORD PTR [EBP+8] JMP L_106 L_107: MOV ESI,DWORD PTR [EBP-8] XOR EAX,EAX MOV BYTE PTR [ESI], AL MOV ESP,EBP POP EBP RETN 8 _fgetcode: PUSH EBP MOV EBP,ESP SUB ESP,9 MOV EAX,DWORD PTR [EBP+12] MOV DWORD PTR [EBP-5], EAX XOR EAX,EAX MOV DWORD PTR [EBP-9], EAX MOV EAX,_pco CMP EAX,_pc SETAE AL AND AL,AL JZ L_114 XOR EAX,EAX JMP L_115 L_114: L_116: MOV EAX,DWORD PTR [EBP+8] SUB EAX,1 CMP EAX,DWORD PTR [EBP-9] SETG AL AND AL,AL JZ L_118 MOV EAX,_pco MOV ESI,_pcodebuf ADD ESI,EAX XOR EAX,EAX MOV AL,BYTE PTR [ESI] L_118: AND EAX,EAX JZ L_117 MOV EAX,_pco MOV ESI,_pcodebuf ADD ESI,EAX XOR EAX,EAX MOV AL,BYTE PTR [ESI] MOV BYTE PTR [EBP-1], AL MOV ESI,DWORD PTR [EBP+12] INC DWORD PTR [EBP+12] MOV EAX,_pco INC _pco MOV EBX,ESI MOV ESI,_pcodebuf ADD ESI,EAX XOR EAX,EAX MOV AL,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL MOV EAX,DWORD PTR [EBP-9] INC DWORD PTR [EBP-9] MOVSX EAX,BYTE PTR [EBP-1] CMP EAX,10 SETE AL AND AL,AL JZ L_119 MOV ESI,DWORD PTR [EBP+12] XOR EAX,EAX MOV BYTE PTR [ESI], AL MOV EAX,DWORD PTR [EBP-5] JMP L_115 L_119: JMP L_116 L_117: MOV EAX,DWORD PTR [EBP-9] AND EAX,EAX JZ L_120 MOV EAX,DWORD PTR [EBP-5] JMP L_115 L_120: XOR EAX,EAX L_121: L_115: MOV ESP,EBP POP EBP RETN 8 _read_line: PUSH EBP MOV EBP,ESP SUB ESP,5 MOVZX EAX,_peep_next MOV ECX,100 MUL ECX MOV ESI,OFFSET _peep_buffer ADD ESI,EAX PUSH ESI PUSH 100 CALL _fgetcode AND EAX,EAX JZ L_122 MOVZX EAX,_peep_next MOV ECX,100 MUL ECX MOV ESI,OFFSET _peep_buffer ADD ESI,EAX MOV EAX,ESI MOV DWORD PTR [EBP-5], EAX L_123: MOV ESI,DWORD PTR [EBP-5] MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBP-1], AL AND EAX,EAX JZ L_124 MOVSX EAX,BYTE PTR [EBP-1] CMP EAX,13 SETE AL AND AL,AL JZ L_125 MOV ESI,DWORD PTR [EBP-5] XOR EAX,EAX MOV BYTE PTR [ESI], AL L_125: MOVSX EAX,BYTE PTR [EBP-1] CMP EAX,10 SETE AL AND AL,AL JZ L_126 MOV ESI,DWORD PTR [EBP-5] XOR EAX,EAX MOV BYTE PTR [ESI], AL L_126: MOV ESI,DWORD PTR [EBP-5] INC DWORD PTR [EBP-5] MOV EAX,DWORD PTR [ESI] JMP L_123 L_124: MOVZX EAX,_peep_next MOV ECX,1 ADD EAX,ECX MOV ECX,10 XOR EDX,EDX DIV ECX MOV EAX,EDX MOV _peep_next, AX MOV EAX,1 JMP L_127 L_122: XOR EAX,EAX L_127: MOV ESP,EBP POP EBP RETN _write_line: PUSH EBP MOV EBP,ESP MOVSX EAX,_fGen AND EAX,EAX JZ L_128 MOVZX EAX,_peep_top MOV ECX,100 MUL ECX MOV ESI,OFFSET _peep_buffer ADD ESI,EAX PUSH ESI PUSH _code_fh CALL _fputs JMP L_129 L_128: MOVZX EAX,_peep_top MOV ECX,100 MUL ECX MOV ESI,OFFSET _peep_buffer ADD ESI,EAX PUSH ESI PUSH _asm_fh CALL _fputs L_129: MOVZX EAX,_peep_top MOV ECX,1 ADD EAX,ECX MOV ECX,10 XOR EDX,EDX DIV ECX MOV EAX,EDX MOV _peep_top, AX MOVSX EAX,_fGen AND EAX,EAX JZ L_130 PUSH OFFSET L_lit+1711 PUSH _code_fh CALL _fputs JMP L_131 L_130: PUSH OFFSET L_lit+1713 PUSH _asm_fh CALL _fputs L_131: POP EBP RETN _optimize: PUSH EBP MOV EBP,ESP SUB ESP,12 MOVSX EAX,_fQuiet AND EAX,EAX JNZ L_132 PUSH OFFSET L_lit+1715 PUSH 2 CALL _fputs L_132: XOR EAX,EAX MOV DWORD PTR [EBP-8], EAX L_133: L_135: MOVZX EAX,_peep_next MOV ECX,1 ADD EAX,ECX MOV ECX,10 XOR EDX,EDX DIV ECX MOV EAX,EDX MOVZX ECX,_peep_top CMP EAX,ECX SETNE AL AND AL,AL JZ L_136 CALL _read_line AND EAX,EAX JZ L_136 JMP L_135 L_136: XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX L_138: MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 MOV ESI,OFFSET _peep_table ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-12], EAX AND EAX,EAX JZ L_139 JMP SHORT L_140 L_141: MOV EAX,DWORD PTR [EBP-4] ADD EAX,2 MOV DWORD PTR [EBP-4], EAX JMP SHORT L_138 L_140: PUSH DWORD PTR [EBP-12] MOVZX EAX,_peep_top PUSH EAX CALL _compareT MOV DWORD PTR [EBP-8], EAX MOV EAX,DWORD PTR [EBP-8] AND EAX,EAX JZ L_142 PUSH DWORD PTR [EBP-8] MOV EAX,DWORD PTR [EBP-4] ADD EAX,1 SHL EAX,2 MOV ESI,OFFSET _peep_table ADD ESI,EAX PUSH DWORD PTR [ESI] CALL _exchange JMP L_139 L_142: JMP L_141 L_139: MOV EAX,DWORD PTR [EBP-8] AND EAX,EAX JNZ L_143 CALL _write_line L_143: MOVZX EAX,_peep_top MOVZX ECX,_peep_next CMP EAX,ECX SETE AL AND AL,AL JZ L_144 JMP L_145 L_144: JMP L_133 L_134: L_145: MOV ESP,EBP POP EBP RETN _readline: PUSH EBP MOV EBP,ESP SUB ESP,7 L_146: MOV EAX,OFFSET _buffer MOV _buffin_ptr, EAX PUSH EAX PUSH 200 PUSH _source_fh CALL _fgets AND EAX,EAX JNZ L_148 MOV EAX,_include AND EAX,EAX JZ L_149 PUSH _source_fh CALL _fclose DEC _include MOV EAX,_include SHL EAX,2 MOV ESI,OFFSET _incl_line ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV _line_number, EAX MOV EAX,_include SHL EAX,2 MOV ESI,OFFSET _incl_fh ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV _source_fh, EAX JMP L_146 L_149: XOR EAX,EAX JMP L_150 L_148: INC _line_number MOV EAX,_line_number MOV EAX,OFFSET _line_in MOV _buffout_ptr, EAX XOR EAX,EAX MOV BYTE PTR [EBP-7], AL CALL _skip_blanks MOV BYTE PTR [EBP-6], AL CMP EAX,35 SETE AL AND AL,AL JZ L_151 PUSH OFFSET L_lit+1744 CALL _match AND EAX,EAX JZ L_152 MOV EAX,-1 MOV _asm_flag, AL MOV EAX,-1 MOV BYTE PTR [EBP-7], AL JMP L_153 L_152: PUSH OFFSET L_lit+1749 CALL _match AND EAX,EAX JZ L_154 XOR EAX,EAX MOV _asm_flag, AL MOV EAX,-1 MOV BYTE PTR [EBP-7], AL JMP L_155 L_154: PUSH OFFSET L_lit+1757 CALL _match AND EAX,EAX JZ L_156 MOV EAX,-1 MOV BYTE PTR [EBP-7], AL MOVSX EAX,_if_flag AND EAX,EAX JZ L_157 INC _if_flag MOVSX EAX,_if_flag JMP L_158 L_157: XOR EAX,EAX PUSH EAX CALL _lookup_macro CMP EAX,-1 SETE AL AND AL,AL JZ L_159 MOV EAX,128 MOV _if_flag, AL L_159: L_158: JMP L_160 L_156: PUSH OFFSET L_lit+1764 CALL _match AND EAX,EAX JZ L_161 MOV EAX,-1 MOV BYTE PTR [EBP-7], AL MOVSX EAX,_if_flag AND EAX,EAX JZ L_162 INC _if_flag MOVSX EAX,_if_flag JMP L_163 L_162: XOR EAX,EAX PUSH EAX CALL _lookup_macro CMP EAX,-1 SETNE AL AND AL,AL JZ L_164 MOV EAX,128 MOV _if_flag, AL L_164: L_163: JMP L_165 L_161: PUSH OFFSET L_lit+1772 CALL _match AND EAX,EAX JZ L_166 MOV EAX,-1 MOV BYTE PTR [EBP-7], AL MOVSX EAX,_if_flag MOV ECX,127 AND EAX,ECX JNZ L_167 MOVSX EAX,_if_flag MOV ECX,128 XOR EAX,ECX MOV _if_flag, AL L_167: JMP L_168 L_166: PUSH OFFSET L_lit+1778 CALL _match AND EAX,EAX JZ L_169 MOV EAX,-1 MOV BYTE PTR [EBP-7], AL MOVSX EAX,_if_flag MOV ECX,127 AND EAX,ECX JZ L_170 DEC _if_flag MOVSX EAX,_if_flag JMP L_171 L_170: XOR EAX,EAX MOV _if_flag, AL L_171: JMP L_172 L_169: PUSH OFFSET L_lit+1785 CALL _match AND EAX,EAX JZ L_173 MOV EAX,-1 MOV BYTE PTR [EBP-7], AL L_173: L_172: L_168: L_165: L_160: L_155: L_153: L_151: MOVSX EAX,BYTE PTR [EBP-7] AND EAX,EAX SETZ AL AND AL,AL JZ L_174 MOVSX EAX,_if_flag AND EAX,EAX SETZ AL AND AL,AL L_174: JZ L_175 MOVSX EAX,BYTE PTR [EBP-6] CMP EAX,35 SETE AL AND AL,AL JZ L_176 PUSH OFFSET L_lit+1793 CALL _match AND EAX,EAX JZ L_177 MOV EAX,_macro CMP EAX,500 SETAE AL AND AL,AL JZ L_178 PUSH OFFSET L_lit+1801 CALL _fatal_error PUSH -1 CALL _exit L_178: MOV EAX,_macro INC _macro SHL EAX,2 MOV ESI,OFFSET _define_index ADD ESI,EAX MOV EAX,_define_ptr MOV DWORD PTR [ESI], EAX MOV _buffout_ptr, EAX MOV ESI,_buffin_ptr MOVSX EAX,BYTE PTR [ESI] PUSH EAX CALL _is_alpha AND EAX,EAX JNZ L_179 PUSH OFFSET L_lit+1828 CALL _line_error JMP L_146 L_179: CALL _copy_name MOV EAX,_buffout_ptr MOV _define_ptr, EAX MOV ESI,_define_ptr INC _define_ptr XOR EAX,EAX MOV BYTE PTR [ESI], AL XOR EAX,EAX MOV _parm, AX MOV EAX,OFFSET _parm_pool MOV _parm_ptr, EAX MOV ESI,_buffin_ptr MOVSX EAX,BYTE PTR [ESI] CMP EAX,40 SETE AL AND AL,AL JZ L_180 MOV ESI,_define_ptr INC _define_ptr MOV EAX,1 MOV BYTE PTR [ESI], AL INC _buffin_ptr MOV EAX,_buffin_ptr L_181: MOVZX EAX,_parm CMP EAX,10 SETAE AL AND AL,AL JZ L_184 PUSH OFFSET L_lit+1847 CALL _line_error JMP L_183 L_184: MOVZX EAX,_parm INC _parm SHL EAX,2 MOV ESI,OFFSET _parm_index ADD ESI,EAX MOV EAX,_parm_ptr MOV _buffout_ptr, EAX MOV DWORD PTR [ESI], EAX CALL _skip_blanks CALL _copy_name MOV EAX,_buffout_ptr ADD EAX,1 MOV _parm_ptr, EAX L_182: CALL _more_parms AND EAX,EAX JNZ L_181 L_183: JMP L_185 L_180: MOV ESI,_define_ptr INC _define_ptr XOR EAX,EAX MOV BYTE PTR [ESI], AL L_185: CALL _skip_blanks L_186: MOV ESI,_buffin_ptr MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBP-5], AL AND EAX,EAX JZ L_187 MOV EAX,_define_ptr MOV _buffout_ptr, EAX MOVSX EAX,BYTE PTR [EBP-5] PUSH EAX CALL _is_alpha AND EAX,EAX JZ L_188 CALL _resolve_macro XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX L_189: MOV EAX,DWORD PTR [EBP-4] MOVZX ECX,_parm CMP EAX,ECX SETB AL AND AL,AL JZ L_190 JMP SHORT L_191 L_192: INC DWORD PTR [EBP-4] MOV EAX,DWORD PTR [EBP-4] JMP SHORT L_189 L_191: PUSH _define_ptr MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 MOV ESI,OFFSET _parm_index ADD ESI,EAX PUSH DWORD PTR [ESI] CALL _strcmp AND EAX,EAX JNZ L_193 MOV ESI,_define_ptr INC _define_ptr MOV EAX,DWORD PTR [EBP-4] ADD EAX,128 MOV BYTE PTR [ESI], AL MOV EAX,_define_ptr MOV _buffout_ptr, EAX JMP L_190 L_193: JMP L_192 L_190: MOV EAX,_buffout_ptr MOV _define_ptr, EAX JMP L_194 L_188: MOVSX EAX,BYTE PTR [EBP-5] CMP EAX,34 SETE AL AND AL,AL JNZ L_195 MOVSX EAX,BYTE PTR [EBP-5] CMP EAX,39 SETE AL AND AL,AL L_195: JZ L_196 CALL _copy_string MOV EAX,_buffout_ptr MOV _define_ptr, EAX JMP L_197 L_196: INC _buffin_ptr MOV ESI,_buffin_ptr MOVSX EAX,BYTE PTR [ESI] CMP EAX,42 SETE AL AND AL,AL JZ L_198 MOVSX EAX,BYTE PTR [EBP-5] CMP EAX,47 SETE AL AND AL,AL L_198: JZ L_199 INC _buffin_ptr MOV EAX,_line_number MOV _begin_comment, EAX CALL _skip_comment JMP L_200 L_199: MOV ESI,_define_ptr INC _define_ptr MOVSX EAX,BYTE PTR [EBP-5] MOV BYTE PTR [ESI], AL L_200: L_197: L_194: JMP L_186 L_187: MOV ESI,_define_ptr INC _define_ptr XOR EAX,EAX MOV BYTE PTR [ESI], AL JMP L_201 L_177: PUSH OFFSET L_lit+1873 CALL _match AND EAX,EAX JZ L_202 PUSH -1 CALL _lookup_macro MOV DWORD PTR [EBP-4], EAX CMP EAX,-1 SETNE AL AND AL,AL JZ L_203 MOV EAX,_macro SUB EAX,1 CMP EAX,DWORD PTR [EBP-4] SETE AL AND AL,AL JZ L_204 MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 MOV ESI,OFFSET _define_index ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV _define_ptr, EAX JMP L_205 L_204: MOV EAX,DWORD PTR [EBP-4] ADD EAX,1 SHL EAX,2 MOV ESI,OFFSET _define_index ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV _buffin_ptr, EAX MOV EBX,EAX MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 MOV ESI,OFFSET _define_index ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV _parm_ptr, EAX MOV ECX,EAX MOV EAX,EBX SUB EAX,ECX MOV _parm, AX MOV ECX,EAX MOV EAX,_define_ptr SUB EAX,ECX MOV _define_ptr, EAX L_206: MOV EAX,_parm_ptr CMP EAX,_define_ptr SETB AL AND AL,AL JZ L_207 MOV ESI,_parm_ptr INC _parm_ptr MOV EBX,ESI MOV ESI,_buffin_ptr INC _buffin_ptr MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL JMP L_206 L_207: L_208: MOV EAX,DWORD PTR [EBP-4] CMP EAX,_macro SETB AL AND AL,AL JZ L_209 MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 MOV ESI,OFFSET _define_index ADD ESI,EAX MOV EAX,DWORD PTR [EBP-4] ADD EAX,1 SHL EAX,2 MOV EBX,ESI MOV ESI,OFFSET _define_index ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOVZX ECX,_parm SUB EAX,ECX MOV DWORD PTR [EBX], EAX INC DWORD PTR [EBP-4] MOV EAX,DWORD PTR [EBP-4] JMP L_208 L_209: L_205: DEC _macro MOV EAX,_macro L_203: JMP L_210 L_202: PUSH OFFSET L_lit+1880 CALL _match AND EAX,EAX JZ L_211 MOV EAX,_include CMP EAX,5 SETGE AL AND AL,AL JZ L_212 PUSH OFFSET L_lit+1889 CALL _fatal_error L_212: CALL _skip_blanks MOV BYTE PTR [EBP-5], AL CMP EAX,60 SETE AL AND AL,AL JZ L_213 MOV EAX,_incdir MOV _parm_ptr, EAX L_214: MOV ESI,_parm_ptr MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_215 JMP SHORT L_216 L_217: INC _parm_ptr MOV EAX,_parm_ptr JMP SHORT L_214 L_216: MOV ESI,_buffout_ptr INC _buffout_ptr MOV EBX,ESI MOV ESI,_parm_ptr MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL JMP L_217 L_215: MOV ESI,_buffout_ptr INC _buffout_ptr MOV EAX,92 MOV BYTE PTR [ESI], AL MOV EAX,62 MOV BYTE PTR [EBP-5], AL JMP L_218 L_213: MOVSX EAX,BYTE PTR [EBP-5] CMP EAX,34 SETNE AL AND AL,AL JZ L_219 PUSH OFFSET L_lit+1912 CALL _line_error JMP L_146 L_219: L_218: L_220: INC _buffin_ptr MOV ESI,_buffin_ptr MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_222 MOV ESI,_buffin_ptr MOVSX EAX,BYTE PTR [ESI] CMP AL,BYTE PTR [EBP-5] SETNE AL AND AL,AL L_222: JZ L_221 MOV ESI,_buffout_ptr INC _buffout_ptr MOV EBX,ESI MOV ESI,_buffin_ptr MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL JMP L_220 L_221: MOV ESI,_buffout_ptr XOR EAX,EAX MOV BYTE PTR [ESI], AL MOV EAX,_include SHL EAX,2 MOV ESI,OFFSET _incl_fh ADD ESI,EAX MOV EAX,_source_fh MOV DWORD PTR [ESI], EAX MOV EAX,_include SHL EAX,2 MOV ESI,OFFSET _incl_line ADD ESI,EAX MOV EAX,_line_number MOV DWORD PTR [ESI], EAX PUSH OFFSET _line_in PUSH OFFSET L_lit+1938 CALL _fopen MOV _source_fh, EAX AND EAX,EAX JZ L_223 XOR EAX,EAX MOV _line_number, EAX INC _include MOV EAX,_include JMP L_224 L_223: PUSH OFFSET L_lit+1940 CALL _line_error MOV EAX,_include SHL EAX,2 MOV ESI,OFFSET _incl_fh ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV _source_fh, EAX L_224: JMP L_225 L_211: PUSH OFFSET L_lit+1965 CALL _line_error L_225: L_210: L_201: JMP L_226 L_176: MOVSX EAX,_asm_flag AND EAX,EAX JZ L_227 PUSH OFFSET _buffer CALL _do_asm JMP L_228 L_227: L_229: MOV ESI,_buffin_ptr MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBP-5], AL AND EAX,EAX JZ L_230 MOVSX EAX,BYTE PTR [EBP-5] PUSH EAX CALL _is_alpha AND EAX,EAX JZ L_231 CALL _resolve_macro JMP L_232 L_231: MOVSX EAX,BYTE PTR [EBP-5] CMP EAX,34 SETE AL AND AL,AL JNZ L_233 MOVSX EAX,BYTE PTR [EBP-5] CMP EAX,39 SETE AL AND AL,AL L_233: JZ L_234 CALL _copy_string JMP L_235 L_234: INC _buffin_ptr MOV ESI,_buffin_ptr MOVSX EAX,BYTE PTR [ESI] CMP EAX,42 SETE AL AND AL,AL JZ L_236 MOVSX EAX,BYTE PTR [EBP-5] CMP EAX,47 SETE AL AND AL,AL JZ L_237 MOVSX EAX,_comment_flag L_237: L_236: AND EAX,EAX JZ L_238 INC _buffin_ptr MOV EAX,_line_number MOV _begin_comment, EAX CALL _skip_comment JMP L_239 L_238: MOV ESI,_buffout_ptr INC _buffout_ptr MOVSX EAX,BYTE PTR [EBP-5] MOV BYTE PTR [ESI], AL L_239: L_235: L_232: JMP L_229 L_230: L_228: MOVSX EAX,_fSource AND EAX,EAX JZ L_240 PUSH 59 CALL _code_chr PUSH OFFSET _buffer CALL _code_str L_240: MOV EAX,OFFSET _line_in MOV _input_ptr, EAX MOV ESI,_buffout_ptr XOR EAX,EAX MOV BYTE PTR [ESI], AL MOV EAX,-1 JMP L_150 L_226: L_175: JMP L_146 L_147: L_150: MOV ESP,EBP POP EBP RETN _test_exit: PUSH EBP MOV EBP,ESP MOV EAX,_exit_flag AND EAX,EAX JZ L_241 PUSH _exit_flag PUSH -1 CALL _jump MOV EAX,-1 MOV _exit_used, EAX XOR EAX,EAX MOV _exit_flag, EAX JMP L_242 L_241: MOV EAX,-1 L_242: POP EBP RETN _t_warn: PUSH EBP MOV EBP,ESP SUB ESP,2 INC _warn_count MOV EAX,_warn_count MOVSX EAX,_fWarnings AND EAX,EAX JNZ L_243 JMP L_244 L_243: MOV EAX,_include SHL EAX,2 MOV ESI,OFFSET _incl_line ADD ESI,EAX MOV EAX,_line_number MOV DWORD PTR [ESI], EAX XOR EAX,EAX MOV WORD PTR [EBP-2], AX L_245: MOVSX EAX,WORD PTR [EBP-2] CMP EAX,_include SETLE AL AND AL,AL JZ L_246 JMP SHORT L_247 L_248: INC WORD PTR [EBP-2] MOVSX EAX,WORD PTR [EBP-2] JMP SHORT L_245 L_247: MOVSX EAX,WORD PTR [EBP-2] SHL EAX,2 MOV ESI,OFFSET _incl_line ADD ESI,EAX PUSH DWORD PTR [ESI] PUSH _list_fh CALL _put_num PUSH 58 PUSH _list_fh CALL _fputc JMP L_248 L_246: PUSH 32 PUSH _list_fh CALL _fputc PUSH OFFSET L_lit+1996 PUSH _list_fh CALL _fputs PUSH DWORD PTR [EBP+12] PUSH _list_fh CALL _fputs PUSH 32 PUSH _list_fh CALL _fputc PUSH 39 PUSH _list_fh CALL _fputc PUSH DWORD PTR [EBP+8] PUSH _list_fh CALL _fputs PUSH 39 PUSH _list_fh CALL _fputc PUSH 13 PUSH _list_fh CALL _fputc PUSH 10 PUSH _list_fh CALL _fputc L_244: MOV ESP,EBP POP EBP RETN 8 _t_error: PUSH EBP MOV EBP,ESP SUB ESP,54 LEA EAX,DWORD PTR [EBP-50] MOV DWORD PTR [EBP-54], EAX L_249: MOV ESI,DWORD PTR [EBP+12] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_250 MOV ESI,DWORD PTR [EBP-54] INC DWORD PTR [EBP-54] MOV EBX,ESI MOV ESI,DWORD PTR [EBP+12] INC DWORD PTR [EBP+12] MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL JMP L_249 L_250: MOV ESI,DWORD PTR [EBP-54] INC DWORD PTR [EBP-54] MOV EAX,58 MOV BYTE PTR [ESI], AL MOV ESI,DWORD PTR [EBP-54] INC DWORD PTR [EBP-54] MOV EAX,32 MOV BYTE PTR [ESI], AL MOV ESI,DWORD PTR [EBP-54] INC DWORD PTR [EBP-54] MOV EAX,39 MOV BYTE PTR [ESI], AL L_251: MOV ESI,DWORD PTR [EBP+8] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_252 MOV ESI,DWORD PTR [EBP-54] INC DWORD PTR [EBP-54] MOV EBX,ESI MOV ESI,DWORD PTR [EBP+8] INC DWORD PTR [EBP+8] MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL JMP L_251 L_252: MOV ESI,DWORD PTR [EBP-54] INC DWORD PTR [EBP-54] MOV EAX,39 MOV BYTE PTR [ESI], AL MOV ESI,DWORD PTR [EBP-54] XOR EAX,EAX MOV BYTE PTR [ESI], AL LEA EAX,DWORD PTR [EBP-50] PUSH EAX CALL _line_error MOV ESP,EBP POP EBP RETN 8 _symbol_error: PUSH EBP MOV EBP,ESP PUSH DWORD PTR [EBP+8] PUSH OFFSET _gst CALL _t_error POP EBP RETN 4 _syntax_error: PUSH EBP MOV EBP,ESP PUSH OFFSET L_lit+2006 CALL _line_error POP EBP RETN _type_error: PUSH EBP MOV EBP,ESP PUSH OFFSET L_lit+2019 CALL _line_error POP EBP RETN _index_error: PUSH EBP MOV EBP,ESP PUSH OFFSET L_lit+2034 CALL _line_error POP EBP RETN _test_token: PUSH EBP MOV EBP,ESP SUB ESP,4 CALL _get_token MOV DWORD PTR [EBP-4], EAX CMP EAX,DWORD PTR [EBP+8] SETE AL AND AL,AL JZ L_253 MOV EAX,-1 JMP L_254 L_253: PUSH DWORD PTR [EBP-4] CALL _unget_token XOR EAX,EAX L_254: MOV ESP,EBP POP EBP RETN 4 _expect: PUSH EBP MOV EBP,ESP PUSH DWORD PTR [EBP+8] CALL _test_token AND EAX,EAX JNZ L_255 PUSH OFFSET L_lit+2054 MOV EAX,DWORD PTR [EBP+8] SHL EAX,2 MOV ESI,OFFSET _tokens ADD ESI,EAX PUSH DWORD PTR [ESI] CALL _t_error L_255: POP EBP RETN 4 _UTC_error: PUSH EBP MOV EBP,ESP SUB ESP,4 MOV EAX,_include SHL EAX,2 MOV ESI,OFFSET _incl_line ADD ESI,EAX MOV EAX,_line_number MOV DWORD PTR [ESI], EAX XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX L_256: MOV EAX,DWORD PTR [EBP-4] CMP EAX,_include SETBE AL AND AL,AL JZ L_257 JMP SHORT L_258 L_259: INC DWORD PTR [EBP-4] MOV EAX,DWORD PTR [EBP-4] JMP SHORT L_256 L_258: MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 MOV ESI,OFFSET _incl_line ADD ESI,EAX PUSH DWORD PTR [ESI] PUSH _list_fh CALL _put_num PUSH 58 PUSH _list_fh CALL _fputc JMP L_259 L_257: PUSH 32 PUSH _list_fh CALL _fputc PUSH OFFSET L_lit+2063 PUSH _list_fh CALL _fputs PUSH _begin_comment PUSH _list_fh CALL _put_num PUSH 13 PUSH _list_fh CALL _fputc PUSH 10 PUSH _list_fh CALL _fputc INC _error_count MOV EAX,_error_count CMP EAX,15 SETE AL AND AL,AL JZ L_260 PUSH OFFSET L_lit+2096 CALL _fatal_error L_260: MOV ESP,EBP POP EBP RETN _line_error: PUSH EBP MOV EBP,ESP SUB ESP,4 MOV EAX,_include SHL EAX,2 MOV ESI,OFFSET _incl_line ADD ESI,EAX MOV EAX,_line_number MOV DWORD PTR [ESI], EAX XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX L_261: MOV EAX,DWORD PTR [EBP-4] CMP EAX,_include SETBE AL AND AL,AL JZ L_262 JMP SHORT L_263 L_264: INC DWORD PTR [EBP-4] MOV EAX,DWORD PTR [EBP-4] JMP SHORT L_261 L_263: MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 MOV ESI,OFFSET _incl_line ADD ESI,EAX PUSH DWORD PTR [ESI] PUSH _list_fh CALL _put_num PUSH 58 PUSH _list_fh CALL _fputc JMP L_264 L_262: PUSH 32 PUSH _list_fh CALL _fputc PUSH DWORD PTR [EBP+8] PUSH _list_fh CALL _fputs PUSH 13 PUSH _list_fh CALL _fputc PUSH 10 PUSH _list_fh CALL _fputc INC _error_count MOV EAX,_error_count CMP EAX,15 SETE AL AND AL,AL JZ L_265 PUSH OFFSET L_lit+2112 CALL _fatal_error L_265: MOV ESP,EBP POP EBP RETN 4 _fatal_error: PUSH EBP MOV EBP,ESP PUSH DWORD PTR [EBP+8] CALL _line_error PUSH OFFSET L_lit+2128 PUSH 2 CALL _fputs MOVSX EAX,_fList AND EAX,EAX JZ L_266 PUSH OFFSET L_lit+2163 PUSH _list_fh CALL _fputs MOVSX EAX,_fLISTOpen AND EAX,EAX JZ L_267 PUSH _list_fh CALL _fclose L_267: L_266: MOVSX EAX,_fASMOpen AND EAX,EAX JZ L_268 PUSH _asm_fh CALL _fclose L_268: PUSH -1 CALL _exit POP EBP RETN 4 _check_loop: PUSH EBP MOV EBP,ESP PUSH 25 CALL _expect MOV EAX,_loop_ptr AND EAX,EAX JZ L_269 MOV EAX,_loop_ptr SUB EAX,1 SHL EAX,2 MOV ESI,DWORD PTR [EBP+8] ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV _exit_flag, EAX JMP L_270 L_269: PUSH OFFSET L_lit+2198 CALL _line_error L_270: POP EBP RETN 4 _check_switch: PUSH EBP MOV EBP,ESP MOV EAX,_sdefault AND EAX,EAX JNZ L_271 PUSH OFFSET L_lit+2213 CALL _line_error L_271: INC _next_lab PUSH _next_lab CALL _gen_label MOV EAX,_next_lab POP EBP RETN _test_jump: PUSH EBP MOV EBP,ESP CALL _test_exit AND EAX,EAX JZ L_273 PUSH DWORD PTR [EBP+8] PUSH -1 CALL _jump L_273: POP EBP RETN 4 _cond_jump: PUSH EBP MOV EBP,ESP MOVSX EAX,_zero_flag AND EAX,EAX JZ L_274 PUSH OFFSET L_lit+2230 CALL _out_inst XOR EAX,EAX MOV _zero_flag, AL L_274: MOVSX EAX,BYTE PTR [EBP+16] MOVSX ECX,_not_flag XOR EAX,ECX PUSH EAX PUSH DWORD PTR [EBP+12] MOVSX EAX,BYTE PTR [EBP+8] PUSH EAX CALL _jump_if XOR EAX,EAX MOV _not_flag, AL POP EBP RETN 12 _get_number: PUSH EBP MOV EBP,ESP SUB ESP,5 XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX L_275: MOV ESI,_input_ptr MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBP-5], AL PUSH EAX CALL _is_digit AND EAX,EAX JZ L_278 MOVSX EAX,BYTE PTR [EBP-5] MOV ECX,48 SUB EAX,ECX MOV BYTE PTR [EBP-5], AL JMP L_279 L_278: MOVSX EAX,BYTE PTR [EBP-5] CMP EAX,97 SETGE AL AND AL,AL JZ L_280 MOVSX EAX,BYTE PTR [EBP-5] MOV ECX,87 SUB EAX,ECX MOV BYTE PTR [EBP-5], AL JMP L_281 L_280: MOVSX EAX,BYTE PTR [EBP-5] CMP EAX,65 SETGE AL AND AL,AL JZ L_282 MOVSX EAX,BYTE PTR [EBP-5] MOV ECX,55 SUB EAX,ECX MOV BYTE PTR [EBP-5], AL JMP L_283 L_282: JMP L_277 L_283: L_281: L_279: MOVSX EAX,BYTE PTR [EBP-5] CMP EAX,DWORD PTR [EBP+12] SETAE AL AND AL,AL JZ L_284 JMP L_277 L_284: MOV EAX,DWORD PTR [EBP-4] MOV ECX,DWORD PTR [EBP+12] MUL ECX MOVSX ECX,BYTE PTR [EBP-5] ADD EAX,ECX MOV DWORD PTR [EBP-4], EAX INC _input_ptr MOV EAX,_input_ptr L_276: DEC DWORD PTR [EBP+8] MOV EAX,DWORD PTR [EBP+8] AND EAX,EAX JNZ L_275 L_277: MOV EAX,DWORD PTR [EBP-4] L_285: MOV ESP,EBP POP EBP RETN 8 _clean_up: PUSH EBP MOV EBP,ESP SUB ESP,16 MOV EAX,_in_function AND EAX,EAX JZ L_286 PUSH OFFSET L_lit+2242 CALL _fatal_error L_286: XOR EAX,EAX MOV _sptr, EAX L_287: MOV EAX,_sptr CMP EAX,_global_top SETB AL AND AL,AL JZ L_288 JMP SHORT L_289 L_290: INC _sptr MOV EAX,_sptr JMP SHORT L_287 L_289: MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-4], EAX AND EAX,16384 JZ L_291 MOV EAX,DWORD PTR [EBP-4] AND EAX,4194304 JZ L_292 PUSH _sptr CALL _gen_ext_data_DASM L_292: L_291: JMP L_290 L_288: PUSH OFFSET _literal_pool PUSH _literal_top CALL _gen_literal XOR EAX,EAX MOV _sptr, EAX L_293: MOV EAX,_sptr CMP EAX,_global_top SETB AL AND AL,AL JZ L_294 JMP SHORT L_295 L_296: INC _sptr MOV EAX,_sptr JMP SHORT L_293 L_295: MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,18104320 JNZ L_297 MOV EAX,DWORD PTR [EBP-4] AND EAX,71 JZ L_298 MOV EAX,4 MOV DWORD PTR [EBP-8], EAX JMP L_299 L_298: MOV EAX,DWORD PTR [EBP-4] AND EAX,32 JZ L_300 MOV EAX,2 MOV DWORD PTR [EBP-8], EAX JMP L_301 L_300: MOV EAX,DWORD PTR [EBP-4] AND EAX,16 JZ L_302 MOV EAX,1 MOV DWORD PTR [EBP-8], EAX JMP L_303 L_302: MOV EAX,DWORD PTR [EBP-4] AND EAX,512 JZ L_304 MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+16] MOV DWORD PTR [EBP-8], EAX JMP L_305 L_304: MOV EAX,1 MOV DWORD PTR [EBP-8], EAX L_305: L_303: L_301: L_299: MOV EAX,DWORD PTR [EBP-4] AND EAX,256 JZ L_306 MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+20] MOV DWORD PTR [EBP-12], EAX MOV EAX,DWORD PTR [EBP-12] INC DWORD PTR [EBP-12] SHL EAX,2 MOV ESI,OFFSET _dim_pool ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-16], EAX L_307: MOV EAX,DWORD PTR [EBP-16] DEC DWORD PTR [EBP-16] AND EAX,EAX JZ L_308 MOV EAX,DWORD PTR [EBP-12] INC DWORD PTR [EBP-12] SHL EAX,2 MOV ESI,OFFSET _dim_pool ADD ESI,EAX MOV EAX,DWORD PTR [EBP-8] MOV ECX,DWORD PTR [ESI] MUL ECX MOV DWORD PTR [EBP-8], EAX JMP L_307 L_308: L_306: PUSH _sptr PUSH DWORD PTR [EBP-8] CALL _gen_global L_297: JMP L_296 L_294: MOV EAX,_pd AND EAX,EAX JZ L_309 PUSH OFFSET _databuf PUSH _pd PUSH 1 PUSH _asm_fh CALL _fwrite XOR EAX,EAX MOV _pd, EAX L_309: MOV EAX,_error_count AND EAX,EAX JNZ L_310 MOVSX EAX,_fNoOpt AND EAX,EAX JZ L_311 L_312: PUSH OFFSET _buffer PUSH 200 CALL _fgetcode AND EAX,EAX JZ L_313 MOVSX EAX,_fGen AND EAX,EAX JZ L_314 PUSH OFFSET _buffer PUSH _code_fh CALL _fputs JMP L_315 L_314: PUSH OFFSET _buffer PUSH _asm_fh CALL _fputs L_315: JMP L_312 L_313: JMP L_316 L_311: CALL _optimize L_316: L_310: PUSH _asm_fh CALL _fclose MOVSX EAX,_fLISTOpen AND EAX,EAX JZ L_317 PUSH _list_fh CALL _fclose L_317: MOVSX EAX,_fCODEOpen AND EAX,EAX JZ L_318 PUSH _code_fh CALL _fclose L_318: MOVSX EAX,_fQuiet AND EAX,EAX JNZ L_319 PUSH _error_count PUSH 2 CALL _put_num PUSH OFFSET L_lit+2264 PUSH 2 CALL _fputs PUSH _warn_count PUSH 2 CALL _put_num PUSH OFFSET L_lit+2274 PUSH 2 CALL _fputs L_319: XOR EAX,EAX PUSH EAX CALL _exit MOV ESP,EBP POP EBP RETN _read_char: PUSH EBP MOV EBP,ESP SUB ESP,1 L_320: MOV ESI,_input_ptr INC _input_ptr MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBP-1], AL AND EAX,EAX JNZ L_321 CALL _readline AND EAX,EAX JNZ L_322 CALL _clean_up PUSH _error_count CALL _exit L_322: JMP L_320 L_321: MOVSX EAX,BYTE PTR [EBP-1] MOV ESP,EBP POP EBP RETN _unget_token: PUSH EBP MOV EBP,ESP MOV EAX,DWORD PTR [EBP+8] MOV _ungot_token, EAX POP EBP RETN 4 _read_special: PUSH EBP MOV EBP,ESP SUB ESP,4 CALL _read_char MOV DWORD PTR [EBP-4], EAX CMP AL,BYTE PTR [EBP+8] SETE AL AND AL,AL JZ L_324 MOV EAX,65280 JMP L_325 L_324: MOV EAX,DWORD PTR [EBP-4] CMP EAX,92 SETE AL AND AL,AL JZ L_326 CALL _read_char MOV DWORD PTR [EBP-4], EAX JMP L_328 L_329: MOV EAX,10 MOV DWORD PTR [EBP-4], EAX JMP L_327 L_330: MOV EAX,13 MOV DWORD PTR [EBP-4], EAX JMP L_327 L_331: MOV EAX,9 MOV DWORD PTR [EBP-4], EAX JMP L_327 L_332: MOV EAX,12 MOV DWORD PTR [EBP-4], EAX JMP L_327 L_333: MOV EAX,8 MOV DWORD PTR [EBP-4], EAX JMP L_327 L_334: MOV EAX,11 MOV DWORD PTR [EBP-4], EAX JMP L_327 L_335: PUSH 16 PUSH 2 CALL _get_number MOV DWORD PTR [EBP-4], EAX JMP L_327 L_336: PUSH DWORD PTR [EBP-4] CALL _is_digit AND EAX,EAX JZ L_337 DEC _input_ptr PUSH 8 PUSH 3 CALL _get_number MOV DWORD PTR [EBP-4], EAX L_337: JMP L_327 L_328: CMP EAX,120 JE L_335 CMP EAX,118 JE L_334 CMP EAX,98 JE L_333 CMP EAX,102 JE L_332 CMP EAX,116 JE L_331 CMP EAX,114 JE L_330 CMP EAX,110 JE L_329 JMP L_336 L_327: L_326: MOV EAX,DWORD PTR [EBP-4] AND EAX,255 L_325: MOV ESP,EBP POP EBP RETN 4 _get_token: PUSH EBP MOV EBP,ESP SUB ESP,13 MOV EAX,_ungot_token AND EAX,EAX JZ L_338 MOV EAX,_ungot_token MOV DWORD PTR [EBP-4], EAX XOR EAX,EAX MOV _ungot_token, EAX MOV EAX,DWORD PTR [EBP-4] JMP L_339 L_338: L_340: CALL _read_char MOV BYTE PTR [EBP-13], AL L_341: MOVSX EAX,BYTE PTR [EBP-13] CMP EAX,32 SETE AL AND AL,AL JNZ L_343 MOVSX EAX,BYTE PTR [EBP-13] CMP EAX,9 SETE AL AND AL,AL JNZ L_344 MOVSX EAX,BYTE PTR [EBP-13] CMP EAX,10 SETE AL AND AL,AL JNZ L_345 MOVSX EAX,BYTE PTR [EBP-13] CMP EAX,13 SETE AL AND AL,AL L_345: L_344: L_343: JNZ L_340 L_342: DEC _input_ptr MOV EAX,_input_ptr MOV DWORD PTR [EBP-12], EAX MOV ESI,_input_ptr MOVSX EAX,BYTE PTR [ESI] MOV ESI,OFFSET _itoken ADD ESI,EAX XOR EAX,EAX MOV AL,BYTE PTR [ESI] XOR ECX,ECX CMP EAX,ECX SETNE AL AND AL,AL JZ L_346 MOV ESI,_input_ptr MOVSX EAX,BYTE PTR [ESI] MOV ESI,OFFSET _itoken ADD ESI,EAX XOR EAX,EAX MOV AL,BYTE PTR [ESI] MOV DWORD PTR [EBP-4], EAX L_347: MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 MOV ESI,OFFSET _tokens ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-8], EAX AND EAX,EAX JZ L_348 JMP SHORT L_349 L_350: INC DWORD PTR [EBP-4] MOV EAX,DWORD PTR [EBP-4] JMP SHORT L_347 L_349: MOV ESI,_input_ptr MOV EBX,ESI MOV ESI,DWORD PTR [EBP-8] MOVSX EAX,BYTE PTR [EBX] CMP AL,BYTE PTR [ESI] SETNE AL AND AL,AL JZ L_351 JMP L_348 L_351: L_352: MOV ESI,_input_ptr MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBP-13], AL AND EAX,EAX JZ L_354 MOV ESI,DWORD PTR [EBP-8] MOVSX EAX,BYTE PTR [ESI] CMP AL,BYTE PTR [EBP-13] SETE AL AND AL,AL L_354: JZ L_353 INC DWORD PTR [EBP-8] MOV EAX,DWORD PTR [EBP-8] INC _input_ptr MOV EAX,_input_ptr JMP L_352 L_353: MOV ESI,DWORD PTR [EBP-8] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JNZ L_355 MOV EAX,DWORD PTR [EBP-8] SUB EAX,1 MOV ESI,EAX ;IndexPtr MOVSX EAX,BYTE PTR [ESI] PUSH EAX CALL _is_alpha AND EAX,EAX JZ L_356 MOV ESI,_input_ptr MOVSX EAX,BYTE PTR [ESI] PUSH EAX CALL _is_alpha L_356: AND EAX,EAX JZ L_357 JMP L_350 L_357: MOV EAX,DWORD PTR [EBP-4] JMP L_339 L_355: MOV EAX,DWORD PTR [EBP-12] MOV _input_ptr, EAX JMP L_350 L_348: L_346: MOV EAX,DWORD PTR [EBP-12] MOV _input_ptr, EAX MOV ESI,_input_ptr MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBP-13], AL CMP EAX,34 SETE AL AND AL,AL JZ L_358 INC _input_ptr MOV EAX,_literal_top MOV _gvalue, EAX L_359: MOV EAX,_literal_top CMP EAX,10000 SETAE AL AND AL,AL JZ L_362 PUSH OFFSET L_lit+2286 CALL _fatal_error L_362: MOV EAX,_literal_top INC _literal_top MOV ESI,OFFSET _literal_pool ADD ESI,EAX MOV EBX,ESI PUSH EBX PUSH 34 CALL _read_special MOV DWORD PTR [EBP-4], EAX POP EDX MOV BYTE PTR [EDX], AL L_360: MOV EAX,DWORD PTR [EBP-4] AND EAX,65280 JZ L_359 L_361: MOV EAX,101 JMP L_339 L_358: MOVSX EAX,BYTE PTR [EBP-13] CMP EAX,39 SETE AL AND AL,AL JZ L_363 INC _input_ptr MOV EAX,_input_ptr L_364: PUSH 39 CALL _read_special MOV DWORD PTR [EBP-4], EAX AND EAX,65280 JNZ L_365 MOV EAX,DWORD PTR [EBP-4] AND EAX,255 MOV _gvalue, EAX JMP L_364 L_365: MOV EAX,100 JMP L_339 L_363: MOVSX EAX,BYTE PTR [EBP-13] PUSH EAX CALL _is_digit AND EAX,EAX JZ L_366 MOVSX EAX,BYTE PTR [EBP-13] CMP EAX,48 SETE AL AND AL,AL JZ L_367 INC _input_ptr MOV EAX,_input_ptr MOV ESI,_input_ptr MOVSX EAX,BYTE PTR [ESI] CMP EAX,120 SETE AL AND AL,AL JNZ L_368 MOV ESI,_input_ptr MOVSX EAX,BYTE PTR [ESI] CMP EAX,88 SETE AL AND AL,AL L_368: JZ L_369 INC _input_ptr PUSH 16 XOR EAX,EAX PUSH EAX CALL _get_number MOV _gvalue, EAX JMP L_370 L_369: PUSH 8 XOR EAX,EAX PUSH EAX CALL _get_number MOV _gvalue, EAX L_370: JMP L_371 L_367: PUSH 10 XOR EAX,EAX PUSH EAX CALL _get_number MOV _gvalue, EAX L_371: MOV ESI,_input_ptr MOVSX EAX,BYTE PTR [ESI] CMP EAX,85 SETE AL AND AL,AL JNZ L_372 MOV ESI,_input_ptr MOVSX EAX,BYTE PTR [ESI] CMP EAX,117 SETE AL AND AL,AL L_372: JZ L_373 INC _input_ptr MOV EAX,_input_ptr MOV ESI,_input_ptr MOVSX EAX,BYTE PTR [ESI] CMP EAX,76 SETE AL AND AL,AL JNZ L_374 MOV ESI,_input_ptr MOVSX EAX,BYTE PTR [ESI] CMP EAX,108 SETE AL AND AL,AL L_374: JZ L_375 INC _input_ptr MOV EAX,_input_ptr L_375: JMP L_376 L_373: MOV ESI,_input_ptr MOVSX EAX,BYTE PTR [ESI] CMP EAX,76 SETE AL AND AL,AL JNZ L_377 MOV ESI,_input_ptr MOVSX EAX,BYTE PTR [ESI] CMP EAX,108 SETE AL AND AL,AL L_377: JZ L_378 INC _input_ptr MOV EAX,_input_ptr L_378: L_376: MOV EAX,100 JMP L_339 L_366: MOVSX EAX,BYTE PTR [EBP-13] PUSH EAX CALL _is_alpha AND EAX,EAX JZ L_379 XOR EAX,EAX MOV _gvalue, EAX L_380: MOV ESI,_input_ptr MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBP-13], AL PUSH EAX CALL _is_alpha AND EAX,EAX JNZ L_382 MOV ESI,_input_ptr MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBP-13], AL PUSH EAX CALL _is_digit L_382: AND EAX,EAX JZ L_381 MOV EAX,_gvalue CMP EAX,31 SETB AL AND AL,AL JZ L_383 MOV EAX,_gvalue INC _gvalue MOV ESI,OFFSET _gst ADD ESI,EAX MOVSX EAX,BYTE PTR [EBP-13] MOV BYTE PTR [ESI], AL L_383: INC _input_ptr MOV EAX,_input_ptr JMP L_380 L_381: MOV EAX,_gvalue MOV ESI,OFFSET _gst ADD ESI,EAX XOR EAX,EAX MOV BYTE PTR [ESI], AL MOV EAX,_gvalue MOV _namesize, AL MOV EAX,103 JMP L_339 L_379: INC _input_ptr MOV EAX,-1 L_339: MOV ESP,EBP POP EBP RETN _lookup_local: PUSH EBP MOV EBP,ESP SUB ESP,4 MOV EAX,299 MOV WORD PTR [EBP-2], AX L_384: MOV EAX,_local_top SUB EAX,1 MOVZX ECX,WORD PTR [EBP-2] CMP EAX,ECX SETB AL AND AL,AL JZ L_385 MOVZX EAX,WORD PTR [EBP-2] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV WORD PTR [EBP-4], AX PUSH OFFSET _gst MOVZX EAX,WORD PTR [EBP-4] MOV ESI,OFFSET _LPool ADD ESI,EAX PUSH ESI CALL _equal_string AND EAX,EAX JZ L_386 MOVZX EAX,WORD PTR [EBP-2] MOV _sptr, EAX MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] OR EAX,4194304 MOV DWORD PTR [ESI], EAX JMP L_387 L_386: MOVZX EAX,WORD PTR [EBP-2] DEC WORD PTR [EBP-2] JMP L_384 L_385: XOR EAX,EAX L_387: MOV ESP,EBP POP EBP RETN _lookup_global: PUSH EBP MOV EBP,ESP SUB ESP,4 XOR EAX,EAX MOV WORD PTR [EBP-2], AX L_388: MOVZX EAX,WORD PTR [EBP-2] CMP EAX,_global_top SETB AL AND AL,AL JZ L_389 JMP SHORT L_390 L_391: MOVZX EAX,WORD PTR [EBP-2] INC WORD PTR [EBP-2] JMP SHORT L_388 L_390: MOVZX EAX,WORD PTR [EBP-2] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV WORD PTR [EBP-4], AX PUSH OFFSET _gst MOVZX EAX,WORD PTR [EBP-4] MOV ESI,OFFSET _GPool ADD ESI,EAX PUSH ESI CALL _equal_string AND EAX,EAX JZ L_392 MOVZX EAX,WORD PTR [EBP-2] MOV _sptr, EAX MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] OR EAX,4194304 MOV DWORD PTR [ESI], EAX JMP L_393 L_392: JMP L_391 L_389: XOR EAX,EAX L_393: MOV ESP,EBP POP EBP RETN _lookup_member: PUSH EBP MOV EBP,ESP SUB ESP,6 MOV EAX,31 MOV WORD PTR [EBP-2], AX L_394: MOVZX EAX,WORD PTR [EBP-2] XOR ECX,ECX CMP EAX,ECX SETA AL AND AL,AL JZ L_395 JMP SHORT L_396 L_397: MOVZX EAX,WORD PTR [EBP-2] DEC WORD PTR [EBP-2] JMP SHORT L_394 L_396: MOVZX EAX,WORD PTR [EBP-2] MOV ESI,OFFSET _gst ADD ESI,EAX MOVZX EAX,WORD PTR [EBP-2] MOV ECX,1 SUB EAX,ECX MOV EBX,ESI MOV ESI,OFFSET _gst ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL JMP L_397 L_395: MOV ESI,OFFSET _gst MOV EAX,48 MOV BYTE PTR [ESI], AL INC _namesize XOR EAX,EAX MOV AL,_namesize MOV EAX,DWORD PTR [EBP+8] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+4] MOV WORD PTR [EBP-6], AX MOVZX EAX,WORD PTR [EBP-6] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] AND EAX,2097152 JZ L_398 MOVZX EAX,WORD PTR [EBP-6] MOV ECX,1 ADD EAX,ECX MOV WORD PTR [EBP-2], AX L_399: MOVZX EAX,WORD PTR [EBP-2] CMP EAX,_global_top SETB AL AND AL,AL JZ L_400 JMP SHORT L_401 L_402: MOVZX EAX,WORD PTR [EBP-2] INC WORD PTR [EBP-2] JMP SHORT L_399 L_401: MOVZX EAX,WORD PTR [EBP-2] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] AND EAX,67108864 JNZ L_403 JMP L_400 L_403: MOVZX EAX,WORD PTR [EBP-2] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV WORD PTR [EBP-4], AX PUSH OFFSET _gst MOVZX EAX,WORD PTR [EBP-4] MOV ESI,OFFSET _GPool ADD ESI,EAX PUSH ESI CALL _equal_string AND EAX,EAX JZ L_404 MOVZX EAX,WORD PTR [EBP-2] MOV _sptr, EAX MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] OR EAX,4194304 MOV DWORD PTR [ESI], EAX JMP L_405 L_404: JMP L_402 L_400: JMP L_406 L_398: MOVZX EAX,WORD PTR [EBP-6] MOV ECX,1 SUB EAX,ECX MOV WORD PTR [EBP-2], AX L_407: MOV EAX,_local_top SUB EAX,1 MOVZX ECX,WORD PTR [EBP-2] CMP EAX,ECX SETB AL AND AL,AL JZ L_408 JMP SHORT L_409 L_410: MOVZX EAX,WORD PTR [EBP-2] DEC WORD PTR [EBP-2] JMP SHORT L_407 L_409: MOVZX EAX,WORD PTR [EBP-2] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] AND EAX,67108864 JNZ L_411 JMP L_408 L_411: MOVZX EAX,WORD PTR [EBP-2] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV WORD PTR [EBP-4], AX PUSH OFFSET _gst MOVZX EAX,WORD PTR [EBP-4] MOV ESI,OFFSET _LPool ADD ESI,EAX PUSH ESI CALL _equal_string AND EAX,EAX JZ L_412 MOVZX EAX,WORD PTR [EBP-2] MOV _sptr, EAX MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] OR EAX,4194304 MOV DWORD PTR [ESI], EAX JMP L_405 L_412: JMP L_410 L_408: L_406: XOR EAX,EAX L_405: MOV ESP,EBP POP EBP RETN 4 _define_symbol: PUSH EBP MOV EBP,ESP SUB ESP,6 MOV EAX,_in_function AND EAX,EAX JZ L_413 MOV EAX,DWORD PTR [EBP+12] AND EAX,131072 JZ L_414 MOV ESI,OFFSET _gst MOV EAX,95 MOV BYTE PTR [ESI], AL MOV EAX,1 MOV ESI,OFFSET _gst ADD ESI,EAX MOV EAX,45 MOV BYTE PTR [ESI], AL MOV EAX,2 MOV ESI,OFFSET _gst ADD ESI,EAX MOV EAX,_arg_count ADD EAX,65 MOV BYTE PTR [ESI], AL MOV EAX,3 MOV ESI,OFFSET _gst ADD ESI,EAX XOR EAX,EAX MOV BYTE PTR [ESI], AL MOV EAX,3 MOV _namesize, AL JMP L_415 L_414: CALL _lookup_local AND EAX,EAX JZ L_416 PUSH OFFSET L_lit+2308 CALL _symbol_error JMP L_417 L_416: L_415: DEC _local_top MOV EAX,_local_top MOV _sptr, EAX MOV EAX,DWORD PTR [EBP+12] AND EAX,32768 JZ L_418 MOV EAX,DWORD PTR [EBP+12] AND EAX,-131073 MOV DWORD PTR [EBP+12], EAX MOV EAX,_icrntpro AND EAX,EAX JZ L_419 MOV EAX,_icrntpro INC _icrntpro SHL EAX,2 MOV ESI,OFFSET _proto_list ADD ESI,EAX MOV EAX,DWORD PTR [ESI] CMP EAX,DWORD PTR [EBP+12] SETNE AL AND AL,AL JZ L_420 MOV EAX,_fptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV WORD PTR [EBP-6], AX PUSH OFFSET L_lit+2331 MOVZX EAX,WORD PTR [EBP-6] MOV ESI,OFFSET _GPool ADD ESI,EAX PUSH ESI CALL _t_warn L_420: JMP L_421 L_419: MOV EAX,_iproto_next INC _iproto_next SHL EAX,2 MOV ESI,OFFSET _proto_list ADD ESI,EAX MOV EAX,DWORD PTR [EBP+12] MOV DWORD PTR [ESI], EAX L_421: MOV EAX,_iproto_next CMP EAX,700 SETA AL AND AL,AL JZ L_422 PUSH OFFSET L_lit+2366 CALL _fatal_error L_422: JMP L_423 L_418: MOV EAX,_local_stack MOV DWORD PTR [EBP-4], EAX L_423: MOV EAX,_global_top CMP EAX,_local_top SETA AL AND AL,AL JZ L_424 PUSH OFFSET L_lit+2387 CALL _fatal_error L_424: MOV EAX,_oNextLName ADD EAX,31 CMP EAX,300 SETA AL AND AL,AL JZ L_425 PUSH OFFSET L_lit+2405 CALL _fatal_error L_425: MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,_oNextLName MOV DWORD PTR [ESI+8], EAX MOV EAX,_oNextLName MOV ESI,OFFSET _LPool ADD ESI,EAX PUSH ESI PUSH OFFSET _gst CALL _copystring MOV EAX,_oNextLName XOR ECX,ECX MOV CL,_namesize ADD EAX,ECX MOV _oNextLName, EAX MOV EAX,_oNextLName INC _oNextLName MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [EBP+12] MOV DWORD PTR [ESI], EAX MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [ESI+12], EAX MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [EBP+8] MOV DWORD PTR [ESI+20], EAX JMP L_426 L_413: MOV EAX,DWORD PTR [EBP+12] OR EAX,2097152 MOV DWORD PTR [EBP+12], EAX CALL _lookup_global MOV DWORD PTR [EBP-4], EAX AND EAX,EAX JZ L_427 MOV EAX,DWORD PTR [EBP-4] AND EAX,393216 JZ L_428 MOV EAX,DWORD PTR [EBP-4] OR EAX,5390336 MOV EBX,EAX MOV EAX,DWORD PTR [EBP+12] OR EAX,5390336 CMP EAX,EBX SETNE AL AND AL,AL JZ L_429 PUSH OFFSET L_lit+2433 CALL _symbol_error L_429: MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [EBP+12] MOV DWORD PTR [ESI], EAX JMP L_417 L_428: MOV EAX,DWORD PTR [EBP+12] AND EAX,67108864 JZ L_431 JMP L_432 L_431: MOV EAX,DWORD PTR [EBP+12] AND EAX,33554432 JZ L_433 PUSH OFFSET _structname MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV ESI,OFFSET _GPool ADD ESI,EAX PUSH ESI CALL _equal_string L_433: AND EAX,EAX JZ L_434 JMP L_435 L_434: PUSH OFFSET L_lit+2461 CALL _symbol_error JMP L_417 L_435: L_432: L_430: L_427: MOV EAX,_global_top INC _global_top MOV _sptr, EAX MOV EAX,_global_count INC _global_count MOV DWORD PTR [EBP-4], EAX MOV EAX,_global_top CMP EAX,_local_top SETA AL AND AL,AL JZ L_436 PUSH OFFSET L_lit+2478 CALL _fatal_error L_436: MOV EAX,_oNextGName ADD EAX,31 CMP EAX,15000 SETA AL AND AL,AL JZ L_437 PUSH OFFSET L_lit+2496 CALL _fatal_error L_437: MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,_oNextGName MOV DWORD PTR [ESI+8], EAX MOV EAX,_oNextGName MOV ESI,OFFSET _GPool ADD ESI,EAX PUSH ESI PUSH OFFSET _gst CALL _copystring MOV EAX,_oNextGName XOR ECX,ECX MOV CL,_namesize ADD EAX,ECX MOV _oNextGName, EAX MOV EAX,_oNextGName INC _oNextGName MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [EBP+12] MOV DWORD PTR [ESI], EAX MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [ESI+12], EAX MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [EBP+8] MOV DWORD PTR [ESI+20], EAX L_426: L_417: MOV ESP,EBP POP EBP RETN 8 _push: PUSH EBP MOV EBP,ESP MOV EAX,_expr_ptr CMP EAX,20 SETAE AL AND AL,AL JZ L_438 PUSH OFFSET L_lit+2525 CALL _fatal_error L_438: MOV EAX,_expr_ptr SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,DWORD PTR [EBP+20] MOV DWORD PTR [ESI], EAX MOV EAX,_expr_ptr SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,DWORD PTR [EBP+16] MOV DWORD PTR [ESI+4], EAX MOV EAX,_expr_ptr SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,DWORD PTR [EBP+12] MOV DWORD PTR [ESI+8], EAX MOV EAX,_expr_ptr SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,DWORD PTR [EBP+8] MOV DWORD PTR [ESI+12], EAX MOV EAX,_expr_ptr INC _expr_ptr POP EBP RETN 16 _pop: PUSH EBP MOV EBP,ESP MOV EAX,_expr_ptr AND EAX,EAX JNZ L_439 PUSH OFFSET L_lit+2551 CALL _fatal_error L_439: MOV EAX,_expr_ptr DEC _expr_ptr MOV ESI,DWORD PTR [EBP+20] MOV EAX,_expr_ptr SHL EAX,4 MOV EBX,ESI MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBX], EAX MOV ESI,DWORD PTR [EBP+16] MOV EAX,_expr_ptr SHL EAX,4 MOV EBX,ESI MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,DWORD PTR [ESI+4] MOV DWORD PTR [EBX], EAX MOV ESI,DWORD PTR [EBP+12] MOV EAX,_expr_ptr SHL EAX,4 MOV EBX,ESI MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV DWORD PTR [EBX], EAX MOV ESI,DWORD PTR [EBP+8] MOV EAX,_expr_ptr SHL EAX,4 MOV EBX,ESI MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,DWORD PTR [ESI+12] MOV DWORD PTR [EBX], EAX POP EBP RETN 16 _get_constant: PUSH EBP MOV EBP,ESP SUB ESP,8 XOR EAX,EAX MOV _expr_ptr, EAX PUSH 25 CALL _do_oper PUSH EAX CALL _unget_token PUSH DWORD PTR [EBP+12] PUSH DWORD PTR [EBP+8] LEA EAX,DWORD PTR [EBP-4] PUSH EAX LEA EAX,DWORD PTR [EBP-8] PUSH EAX CALL _pop MOV ESI,DWORD PTR [EBP+12] MOV EAX,DWORD PTR [ESI] CMP EAX,100 SETNE AL AND AL,AL JZ L_440 MOV ESI,DWORD PTR [EBP+12] MOV EAX,DWORD PTR [ESI] CMP EAX,101 SETNE AL AND AL,AL L_440: JZ L_441 PUSH OFFSET L_lit+2578 CALL _line_error L_441: MOV ESP,EBP POP EBP RETN 8 _define_var: PUSH EBP MOV EBP,ESP SUB ESP,54 MOV EAX,_in_function CMP EAX,1 SETA AL AND AL,AL JZ L_442 PUSH OFFSET L_lit+2607 CALL _line_error L_442: MOV EAX,DWORD PTR [EBP+8] AND EAX,16 JZ L_443 MOV EAX,1 MOV DWORD PTR [EBP-24], EAX JMP L_444 L_443: MOV EAX,DWORD PTR [EBP+8] AND EAX,32 JZ L_445 MOV EAX,2 MOV DWORD PTR [EBP-24], EAX JMP L_446 L_445: MOV EAX,DWORD PTR [EBP+8] AND EAX,64 JZ L_447 MOV EAX,4 MOV DWORD PTR [EBP-24], EAX JMP L_448 L_447: MOV EAX,DWORD PTR [EBP+8] AND EAX,512 JZ L_449 MOV EAX,_CrntStrucDef MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+16] MOV DWORD PTR [EBP-24], EAX JMP L_450 L_449: PUSH OFFSET L_lit+2637 CALL _line_error L_450: L_448: L_446: L_444: MOV EAX,DWORD PTR [EBP+8] AND EAX,32775 JZ L_451 MOV EAX,4 MOV DWORD PTR [EBP-24], EAX L_451: MOV EAX,DWORD PTR [EBP-24] MOV DWORD PTR [EBP-32], EAX MOVSX EAX,_fInStruct AND EAX,EAX JZ L_452 MOV EAX,DWORD PTR [EBP+8] OR EAX,83886080 MOV DWORD PTR [EBP+8], EAX MOV EAX,31 MOV DWORD PTR [EBP-28], EAX L_453: MOV EAX,DWORD PTR [EBP-28] CMP EAX,0 SETA AL AND AL,AL JZ L_454 JMP SHORT L_455 L_456: MOV EAX,DWORD PTR [EBP-28] DEC DWORD PTR [EBP-28] JMP SHORT L_453 L_455: MOV EAX,DWORD PTR [EBP-28] MOV ESI,OFFSET _gst ADD ESI,EAX MOV EAX,DWORD PTR [EBP-28] SUB EAX,1 MOV EBX,ESI MOV ESI,OFFSET _gst ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] MOV BYTE PTR [EBX], AL JMP L_456 L_454: MOV ESI,OFFSET _gst MOV EAX,48 MOV BYTE PTR [ESI], AL INC _namesize XOR EAX,EAX MOV AL,_namesize L_452: MOV EAX,_dim_top MOV DWORD PTR [EBP-48], EAX XOR EAX,EAX MOV BYTE PTR [EBP-54], AL XOR EAX,EAX MOV DWORD PTR [EBP-44], EAX L_457: PUSH 37 CALL _test_token AND EAX,EAX JZ L_458 INC DWORD PTR [EBP-44] MOV EAX,DWORD PTR [EBP-44] INC _dim_top PUSH 38 CALL _test_token AND EAX,EAX JZ L_459 MOVSX EAX,BYTE PTR [EBP-54] AND EAX,EAX JNZ L_460 MOV EAX,DWORD PTR [EBP-44] CMP EAX,1 SETA AL AND AL,AL L_460: JZ L_461 PUSH OFFSET L_lit+2660 CALL _line_error L_461: DEC BYTE PTR [EBP-54] MOVSX EAX,BYTE PTR [EBP-54] MOV EAX,_dim_top SHL EAX,2 MOV ESI,OFFSET _dim_pool ADD ESI,EAX MOV EAX,1 MOV DWORD PTR [ESI], EAX MOV ECX,DWORD PTR [EBP-24] MUL ECX MOV DWORD PTR [EBP-24], EAX JMP L_457 L_459: LEA EAX,DWORD PTR [EBP-4] PUSH EAX LEA EAX,DWORD PTR [EBP-16] PUSH EAX CALL _get_constant MOV EAX,DWORD PTR [EBP-4] CMP EAX,100 SETNE AL AND AL,AL JZ L_462 PUSH OFFSET L_lit+2693 CALL _line_error L_462: MOV EAX,_dim_top SHL EAX,2 MOV ESI,OFFSET _dim_pool ADD ESI,EAX MOV EAX,DWORD PTR [EBP-16] MOV DWORD PTR [ESI], EAX MOV ECX,DWORD PTR [EBP-24] MUL ECX MOV DWORD PTR [EBP-24], EAX PUSH 38 CALL _expect JMP L_457 L_458: MOV EAX,DWORD PTR [EBP-44] AND EAX,EAX JZ L_463 MOV EAX,DWORD PTR [EBP+8] OR EAX,256 MOV DWORD PTR [EBP+8], EAX MOV EAX,DWORD PTR [EBP-48] SHL EAX,2 MOV ESI,OFFSET _dim_pool ADD ESI,EAX MOV EAX,DWORD PTR [EBP-44] MOV DWORD PTR [ESI], EAX INC _dim_top MOV EAX,_dim_top CMP EAX,100 SETA AL AND AL,AL JZ L_464 PUSH OFFSET L_lit+2719 CALL _fatal_error L_464: L_463: PUSH 31 CALL _test_token AND EAX,EAX JZ L_465 MOV EAX,DWORD PTR [EBP+8] OR EAX,1048576 MOV DWORD PTR [EBP+8], EAX L_465: MOV EAX,_local_stack ADD EAX,DWORD PTR [EBP-24] MOV _local_stack, EAX PUSH DWORD PTR [EBP+8] PUSH DWORD PTR [EBP-48] CALL _define_symbol MOV EAX,DWORD PTR [EBP+8] AND EAX,83886080 JZ L_466 MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,_CrntStrucDef MOV DWORD PTR [ESI+4], EAX MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,_CrntStrucDef MOV ECX,24 MUL ECX MOV EBX,ESI MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+16] MOV DWORD PTR [EBX+16], EAX MOV EAX,_CrntStrucDef MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+16] ADD EAX,DWORD PTR [EBP-24] MOV DWORD PTR [ESI+16], EAX L_466: MOV EAX,DWORD PTR [EBP+8] AND EAX,512 JZ L_467 MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,_CrntStrucDef MOV DWORD PTR [ESI+4], EAX MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,_CrntStrucDef MOV ECX,24 MUL ECX MOV EBX,ESI MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+16] MOV DWORD PTR [EBX+16], EAX L_467: MOV EAX,-1 MOV BYTE PTR [EBP-53], AL XOR EAX,EAX MOV DWORD PTR [EBP-40], EAX XOR EAX,EAX MOV DWORD PTR [EBP-52], EAX MOV EAX,DWORD PTR [EBP+8] AND EAX,1048576 JZ L_468 MOV EAX,_in_function AND EAX,EAX JNZ L_469 MOVSX EAX,_fInStruct L_469: AND EAX,EAX JZ L_470 PUSH OFFSET L_lit+2740 CALL _line_error L_470: PUSH _sptr CALL _data_global XOR EAX,EAX MOV DWORD PTR [EBP-36], EAX XOR EAX,EAX MOV DWORD PTR [EBP-20], EAX L_471: CALL _get_token MOV DWORD PTR [EBP-4], EAX JMP L_475 L_476: MOVSX EAX,BYTE PTR [EBP-54] AND EAX,EAX JZ L_477 MOV EAX,DWORD PTR [EBP-36] CMP EAX,1 SETE AL AND AL,AL L_477: JZ L_478 INC DWORD PTR [EBP-40] MOV EAX,DWORD PTR [EBP-40] L_478: MOV EAX,DWORD PTR [EBP-36] INC DWORD PTR [EBP-36] MOV EAX,DWORD PTR [EBP-36] CMP EAX,DWORD PTR [EBP-44] SETA AL AND AL,AL JZ L_479 PUSH OFFSET L_lit+2763 CALL _line_error L_479: MOV EAX,70 MOV DWORD PTR [EBP-12], EAX MOV EAX,-1 MOV BYTE PTR [EBP-53], AL JMP L_474 L_480: MOV EAX,DWORD PTR [EBP-36] AND EAX,EAX JZ L_481 DEC DWORD PTR [EBP-36] MOV EAX,DWORD PTR [EBP-36] JMP L_482 L_481: PUSH OFFSET L_lit+2784 CALL _line_error L_482: MOV EAX,DWORD PTR [EBP-44] CMP EAX,1 SETA AL AND AL,AL JZ L_483 MOV EAX,DWORD PTR [EBP-36] L_483: AND EAX,EAX JZ L_484 L_485: MOV EAX,_dim_top SUB EAX,1 SHL EAX,2 MOV ESI,OFFSET _dim_pool ADD ESI,EAX MOV EAX,DWORD PTR [EBP-20] CMP EAX,DWORD PTR [ESI] SETB AL AND AL,AL JZ L_486 PUSH 100 XOR EAX,EAX PUSH EAX PUSH DWORD PTR [EBP-32] CALL _init_static INC DWORD PTR [EBP-20] MOV EAX,DWORD PTR [EBP-20] JMP L_485 L_486: L_484: MOV EAX,DWORD PTR [EBP-52] ADD EAX,DWORD PTR [EBP-20] MOV DWORD PTR [EBP-52], EAX XOR EAX,EAX MOV DWORD PTR [EBP-20], EAX XOR EAX,EAX MOV BYTE PTR [EBP-53], AL MOV EAX,74 MOV DWORD PTR [EBP-12], EAX JMP L_474 L_487: MOV EAX,DWORD PTR [EBP-44] CMP EAX,1 SETA AL AND AL,AL JZ L_488 MOV EAX,DWORD PTR [EBP-36] CMP EAX,1 SETE AL AND AL,AL JZ L_489 MOV EAX,DWORD PTR [EBP-12] CMP EAX,101 SETE AL AND AL,AL JZ L_490 MOV EAX,DWORD PTR [EBP+8] AND EAX,7 AND EAX,EAX SETZ AL AND AL,AL L_490: L_489: L_488: JZ L_491 L_492: MOV EAX,_dim_top SUB EAX,1 SHL EAX,2 MOV ESI,OFFSET _dim_pool ADD ESI,EAX MOV EAX,DWORD PTR [EBP-20] CMP EAX,DWORD PTR [ESI] SETB AL AND AL,AL JZ L_493 PUSH 100 XOR EAX,EAX PUSH EAX PUSH DWORD PTR [EBP-32] CALL _init_static INC DWORD PTR [EBP-20] MOV EAX,DWORD PTR [EBP-20] JMP L_492 L_493: MOV EAX,DWORD PTR [EBP-52] ADD EAX,DWORD PTR [EBP-20] MOV DWORD PTR [EBP-52], EAX XOR EAX,EAX MOV DWORD PTR [EBP-20], EAX L_491: MOV EAX,DWORD PTR [EBP-12] CMP EAX,74 SETE AL AND AL,AL JZ L_494 XOR EAX,EAX MOV BYTE PTR [EBP-53], AL JMP L_495 L_494: MOV EAX,-1 MOV BYTE PTR [EBP-53], AL L_495: MOV EAX,15 MOV DWORD PTR [EBP-12], EAX JMP L_474 L_496: MOV EAX,DWORD PTR [EBP-36] AND EAX,EAX SETZ AL AND AL,AL JZ L_497 MOV EAX,DWORD PTR [EBP-44] CMP EAX,1 SETE AL AND AL,AL L_497: JZ L_498 MOV EAX,-1 MOV BYTE PTR [EBP-53], AL L_498: L_499: L_500: L_501: L_502: PUSH DWORD PTR [EBP-4] CALL _unget_token MOVSX EAX,BYTE PTR [EBP-53] AND EAX,EAX JZ L_503 MOVSX EAX,BYTE PTR [EBP-54] AND EAX,EAX JZ L_504 MOV EAX,DWORD PTR [EBP-36] CMP EAX,1 SETE AL AND AL,AL L_504: JZ L_505 INC DWORD PTR [EBP-40] MOV EAX,DWORD PTR [EBP-40] L_505: LEA EAX,DWORD PTR [EBP-4] PUSH EAX LEA EAX,DWORD PTR [EBP-16] PUSH EAX CALL _get_constant MOV EAX,DWORD PTR [EBP-4] CMP EAX,101 SETE AL AND AL,AL JZ L_506 MOV EAX,DWORD PTR [EBP+8] AND EAX,7 AND EAX,EAX SETZ AL AND AL,AL L_506: JZ L_507 L_508: PUSH 100 MOV EAX,DWORD PTR [EBP-16] MOV ESI,OFFSET _literal_pool ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] PUSH EAX PUSH DWORD PTR [EBP-32] CALL _init_static INC DWORD PTR [EBP-20] MOV EAX,DWORD PTR [EBP-20] L_509: INC DWORD PTR [EBP-16] MOV EAX,DWORD PTR [EBP-16] CMP EAX,_literal_top SETB AL AND AL,AL JNZ L_508 L_510: MOV EAX,_gvalue MOV _literal_top, EAX MOV EAX,DWORD PTR [EBP-36] AND EAX,EAX SETZ AL AND AL,AL JZ L_511 MOV EAX,DWORD PTR [EBP-44] CMP EAX,1 SETE AL AND AL,AL L_511: JZ L_512 MOV EAX,DWORD PTR [EBP-20] MOV DWORD PTR [EBP-52], EAX MOV EAX,DWORD PTR [EBP-20] MOV DWORD PTR [EBP-40], EAX L_512: JMP L_513 L_507: PUSH DWORD PTR [EBP-4] PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-32] CALL _init_static MOV EAX,DWORD PTR [EBP-44] AND EAX,EAX JNZ L_514 INC DWORD PTR [EBP-52] MOV EAX,DWORD PTR [EBP-52] L_514: INC DWORD PTR [EBP-20] MOV EAX,DWORD PTR [EBP-20] L_513: MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [EBP-12], EAX JMP L_515 L_503: PUSH OFFSET L_lit+2802 CALL _line_error L_515: JMP L_474 L_516: MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [EBP-12], EAX MOVSX EAX,BYTE PTR [EBP-53] AND EAX,EAX JZ L_517 MOV EAX,DWORD PTR [EBP+8] AND EAX,7 JZ L_518 CALL _lookup_global MOV DWORD PTR [EBP-8], EAX AND EAX,EAX JZ L_519 MOV EAX,DWORD PTR [EBP-8] AND EAX,278528 JZ L_520 PUSH OFFSET L_lit+2836 CALL _symbol_error JMP L_521 L_520: PUSH 103 PUSH _sptr PUSH DWORD PTR [EBP-32] CALL _init_static MOV EAX,DWORD PTR [EBP-20] ADD EAX,DWORD PTR [EBP-32] MOV DWORD PTR [EBP-20], EAX L_521: JMP L_522 L_519: PUSH OFFSET L_lit+2854 CALL _symbol_error L_522: JMP L_523 L_518: PUSH OFFSET L_lit+2864 CALL _line_error L_523: JMP L_524 L_517: PUSH OFFSET L_lit+2886 CALL _line_error L_524: JMP L_474 L_525: PUSH OFFSET L_lit+2920 CALL _line_error JMP L_474 L_475: CMP EAX,103 JE L_516 CMP EAX,2 JE L_502 CMP EAX,75 JE L_501 CMP EAX,19 JE L_500 CMP EAX,100 JE L_499 CMP EAX,101 JE L_496 CMP EAX,15 JE L_487 CMP EAX,74 JE L_480 CMP EAX,70 JE L_476 JMP L_525 L_474: L_472: MOV EAX,DWORD PTR [EBP-36] AND EAX,EAX JNZ L_526 MOV EAX,DWORD PTR [EBP-12] CMP EAX,15 SETE AL AND AL,AL L_526: JZ L_527 MOV EAX,DWORD PTR [EBP-4] CMP EAX,25 SETNE AL AND AL,AL L_527: JNZ L_471 L_473: MOV EAX,DWORD PTR [EBP-36] AND EAX,EAX JZ L_528 PUSH 74 CALL _expect L_528: MOVSX EAX,BYTE PTR [EBP-54] AND EAX,EAX JZ L_529 MOV EAX,DWORD PTR [EBP-48] ADD EAX,1 SHL EAX,2 MOV ESI,OFFSET _dim_pool ADD ESI,EAX MOV EAX,DWORD PTR [EBP-40] MOV DWORD PTR [ESI], EAX L_529: MOV EAX,1 MOV DWORD PTR [EBP-28], EAX L_530: MOV EAX,DWORD PTR [EBP-44] AND EAX,EAX JZ L_531 MOV EAX,DWORD PTR [EBP-44] DEC DWORD PTR [EBP-44] ADD EAX,DWORD PTR [EBP-48] SHL EAX,2 MOV ESI,OFFSET _dim_pool ADD ESI,EAX MOV EAX,DWORD PTR [EBP-28] MOV ECX,DWORD PTR [ESI] MUL ECX MOV DWORD PTR [EBP-28], EAX JMP L_530 L_531: L_532: MOV EAX,DWORD PTR [EBP-52] CMP EAX,DWORD PTR [EBP-28] SETB AL AND AL,AL JZ L_533 PUSH 100 XOR EAX,EAX PUSH EAX PUSH DWORD PTR [EBP-32] CALL _init_static INC DWORD PTR [EBP-52] MOV EAX,DWORD PTR [EBP-52] JMP L_532 L_533: MOV EAX,DWORD PTR [EBP-52] CMP EAX,DWORD PTR [EBP-28] SETA AL AND AL,AL JZ L_534 PUSH OFFSET L_lit+2954 CALL _line_error L_534: CALL _end_static L_468: MOV ESP,EBP POP EBP RETN 4 _check_func: PUSH EBP MOV EBP,ESP MOV EAX,_in_function AND EAX,EAX JZ L_535 MOV EAX,_in_function CMP EAX,2 SETB AL AND AL,AL JZ L_536 MOV EAX,2 MOV _in_function, EAX PUSH _fptr PUSH _local_stack CALL _enter_func L_536: JMP L_537 L_535: PUSH OFFSET L_lit+2978 CALL _line_error L_537: POP EBP RETN _declare: PUSH EBP MOV EBP,ESP XOR EAX,EAX MOV _fInStruct, AL L_538: MOV EAX,DWORD PTR [EBP+12] JMP L_541 L_542: MOV EAX,DWORD PTR [EBP+8] AND EAX,-33 MOV DWORD PTR [EBP+8], EAX MOV EAX,DWORD PTR [EBP+8] OR EAX,16 MOV DWORD PTR [EBP+8], EAX JMP L_540 L_543: MOV EAX,DWORD PTR [EBP+8] AND EAX,64 JNZ L_544 MOV EAX,DWORD PTR [EBP+8] OR EAX,32 MOV DWORD PTR [EBP+8], EAX L_544: JMP L_540 L_545: MOV EAX,DWORD PTR [EBP+8] OR EAX,32 MOV DWORD PTR [EBP+8], EAX JMP L_540 L_546: MOV EAX,DWORD PTR [EBP+8] AND EAX,-33 MOV DWORD PTR [EBP+8], EAX MOV EAX,DWORD PTR [EBP+8] OR EAX,64 MOV DWORD PTR [EBP+8], EAX JMP L_540 L_547: MOV EAX,DWORD PTR [EBP+8] OR EAX,32 MOV DWORD PTR [EBP+8], EAX MOV EAX,DWORD PTR [EBP+8] OR EAX,128 MOV DWORD PTR [EBP+8], EAX JMP L_540 L_548: MOV EAX,DWORD PTR [EBP+8] OR EAX,32 MOV DWORD PTR [EBP+8], EAX MOV EAX,DWORD PTR [EBP+8] AND EAX,-129 MOV DWORD PTR [EBP+8], EAX JMP L_540 L_549: MOV EAX,DWORD PTR [EBP+8] OR EAX,4096 MOV DWORD PTR [EBP+8], EAX JMP L_540 L_550: MOV EAX,DWORD PTR [EBP+8] OR EAX,33554432 MOV DWORD PTR [EBP+8], EAX JMP L_540 L_551: MOV EAX,DWORD PTR [EBP+8] OR EAX,2048 MOV DWORD PTR [EBP+8], EAX JMP L_540 L_552: MOV EAX,DWORD PTR [EBP+8] OR EAX,16384 MOV DWORD PTR [EBP+8], EAX JMP L_540 L_553: MOV EAX,DWORD PTR [EBP+8] OR EAX,1024 MOV DWORD PTR [EBP+8], EAX JMP L_540 L_554: MOV EAX,DWORD PTR [EBP+8] OR EAX,8388608 MOV DWORD PTR [EBP+8], EAX JMP L_540 L_555: MOV EAX,DWORD PTR [EBP+8] OR EAX,8 MOV DWORD PTR [EBP+8], EAX JMP L_540 L_556: MOV EAX,DWORD PTR [EBP+8] OR EAX,8192 MOV DWORD PTR [EBP+8], EAX JMP L_540 L_557: L_558: INC DWORD PTR [EBP+8] MOV EAX,DWORD PTR [EBP+8] L_559: PUSH 11 CALL _test_token AND EAX,EAX JNZ L_558 L_560: MOV EAX,DWORD PTR [EBP+8] AND EAX,32768 JZ L_561 PUSH 15 CALL _test_token L_561: AND EAX,EAX JZ L_562 MOV EAX,DWORD PTR [EBP+8] OR EAX,131072 MOV DWORD PTR [EBP+8], EAX PUSH EAX CALL _define_var JMP L_563 L_562: PUSH 103 CALL _test_token AND EAX,EAX JNZ L_565 CALL _syntax_error L_565: L_564: L_566: MOV EAX,DWORD PTR [EBP+8] AND EAX,33554432 JZ L_567 CALL _lookup_global AND EAX,EAX JZ L_568 MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] AND EAX,33554432 JZ L_569 MOV EAX,_sptr MOV _CrntStrucDef, EAX PUSH 11 CALL _test_token AND EAX,EAX JZ L_570 L_571: INC DWORD PTR [EBP+8] MOV EAX,DWORD PTR [EBP+8] L_572: PUSH 11 CALL _test_token AND EAX,EAX JNZ L_571 L_573: L_570: PUSH 103 CALL _test_token AND EAX,EAX JNZ L_574 PUSH OFFSET L_lit+3000 CALL _line_error JMP L_563 L_574: MOV EAX,DWORD PTR [EBP+8] AND EAX,-33554433 MOV DWORD PTR [EBP+8], EAX MOV EAX,DWORD PTR [EBP+8] OR EAX,512 MOV DWORD PTR [EBP+8], EAX L_575: JMP L_576 L_569: PUSH OFFSET L_lit+3025 CALL _line_error L_576: JMP L_577 L_568: MOV EAX,DWORD PTR [EBP+8] OR EAX,16777216 PUSH EAX XOR EAX,EAX PUSH EAX CALL _define_symbol MOV EAX,_sptr MOV _CrntStrucDef, EAX PUSH 70 CALL _test_token AND EAX,EAX JNZ L_578 PUSH OFFSET L_lit+3050 CALL _line_error JMP L_579 L_578: MOV EAX,1 MOV _fInStruct, AL XOR EAX,EAX MOV DWORD PTR [EBP+8], EAX JMP L_540 L_579: L_577: L_567: MOV EAX,DWORD PTR [EBP+8] AND EAX,32768 JZ L_580 PUSH DWORD PTR [EBP+8] CALL _define_var JMP L_563 L_580: PUSH 8 CALL _test_token AND EAX,EAX JZ L_581 PUSH DWORD PTR [EBP+8] CALL _define_func JMP L_582 L_581: PUSH DWORD PTR [EBP+8] CALL _define_var L_582: PUSH 15 CALL _test_token AND EAX,EAX JZ L_583 JMP L_540 L_583: PUSH 25 CALL _test_token MOVSX EAX,_fInStruct AND EAX,EAX JZ L_584 XOR EAX,EAX MOV DWORD PTR [EBP+8], EAX JMP L_540 L_584: JMP L_563 L_585: L_586: MOV EAX,DWORD PTR [EBP+8] AND EAX,33554432 JZ L_587 PUSH OFFSET _gst PUSH OFFSET _structname CALL _copystring MOV EAX,11 MOV _gvalue, EAX MOV EAX,DWORD PTR [EBP+8] OR EAX,16777216 PUSH EAX XOR EAX,EAX PUSH EAX CALL _define_symbol MOV EAX,_sptr MOV _CrntStrucDef, EAX MOV EAX,1 MOV _fInStruct, AL XOR EAX,EAX MOV DWORD PTR [EBP+8], EAX JMP L_540 L_587: CALL _syntax_error L_588: JMP L_540 L_589: MOVSX EAX,_fInStruct AND EAX,EAX JNZ L_590 CALL _syntax_error JMP L_563 L_590: MOV EAX,DWORD PTR [EBP+8] AND EAX,-33554433 MOV DWORD PTR [EBP+8], EAX MOV EAX,DWORD PTR [EBP+8] OR EAX,512 MOV DWORD PTR [EBP+8], EAX XOR EAX,EAX MOV _fInStruct, AL L_591: PUSH 25 CALL _test_token AND EAX,EAX JZ L_592 JMP L_563 L_592: JMP L_540 L_593: PUSH DWORD PTR [EBP+12] CALL _unget_token L_594: MOV EAX,DWORD PTR [EBP+8] AND EAX,32768 JZ L_595 MOV EAX,DWORD PTR [EBP+8] OR EAX,131072 MOV DWORD PTR [EBP+8], EAX PUSH EAX CALL _define_var JMP L_563 L_595: JMP L_540 L_596: CALL _syntax_error JMP L_540 L_541: CMP EAX,15 JE L_594 CMP EAX,9 JE L_593 CMP EAX,74 JE L_589 CMP EAX,70 JE L_586 CMP EAX,103 JE L_566 CMP EAX,11 JE L_557 CMP EAX,50 JE L_556 CMP EAX,68 JE L_555 CMP EAX,53 JE L_554 CMP EAX,57 JE L_553 CMP EAX,49 JE L_552 CMP EAX,44 JE L_551 CMP EAX,62 JE L_550 CMP EAX,61 JE L_549 CMP EAX,59 JE L_548 CMP EAX,66 JE L_547 CMP EAX,56 JE L_546 CMP EAX,64 JE L_545 CMP EAX,54 JE L_543 CMP EAX,43 JE L_542 JMP L_596 L_540: MOV EAX,DWORD PTR [EBP+8] AND EAX,-264 MOV DWORD PTR [EBP+8], EAX CALL _get_token MOV DWORD PTR [EBP+12], EAX JMP L_538 L_539: L_563: POP EBP RETN 8 _define_func: PUSH EBP MOV EBP,ESP SUB ESP,24 XOR EAX,EAX MOV _icrntpro, EAX XOR EAX,EAX MOV DWORD PTR [EBP-16], EAX XOR EAX,EAX MOV _arg_count, EAX XOR EAX,EAX MOV _oNextLName, EAX MOV EAX,_in_function AND EAX,EAX JZ L_597 PUSH OFFSET L_lit+3071 CALL _line_error JMP L_598 L_597: CALL _lookup_global MOV DWORD PTR [EBP-12], EAX AND EAX,EAX JZ L_599 MOV EAX,DWORD PTR [EBP-12] AND EAX,131072 JZ L_600 MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+20] MOV _icrntpro, EAX L_600: JMP L_601 L_599: MOV EAX,DWORD PTR [EBP+8] OR EAX,262144 OR EAX,2097152 PUSH EAX XOR EAX,EAX PUSH EAX CALL _define_symbol MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,_iproto_next MOV DWORD PTR [ESI+20], EAX L_601: MOV EAX,_sptr MOV _fptr, EAX MOV EAX,300 MOV _local_top, EAX MOV EAX,_dim_top MOV DWORD PTR [EBP-8], EAX MOV EAX,1 MOV _in_function, EAX L_602: CALL _get_token MOV DWORD PTR [EBP-4], EAX JMP L_606 L_607: L_608: L_609: L_610: L_611: L_612: L_613: L_614: L_615: PUSH DWORD PTR [EBP-4] PUSH 32768 CALL _declare MOV EAX,_arg_count ADD EAX,1 MOV _arg_count, EAX JMP L_605 L_616: JMP L_605 L_617: MOV EAX,_iproto_next INC _iproto_next SHL EAX,2 MOV ESI,OFFSET _proto_list ADD ESI,EAX MOV EAX,8 MOV DWORD PTR [ESI], EAX MOV EAX,-1 MOV DWORD PTR [EBP-16], EAX MOV EAX,_fptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] OR EAX,65536 MOV DWORD PTR [ESI], EAX JMP L_605 L_618: MOV EAX,_arg_count AND EAX,EAX JZ L_619 CALL _syntax_error L_619: L_620: MOV EAX,DWORD PTR [EBP-16] AND EAX,EAX JNZ L_621 MOV EAX,_iproto_next INC _iproto_next SHL EAX,2 MOV ESI,OFFSET _proto_list ADD ESI,EAX MOV EAX,8 MOV DWORD PTR [ESI], EAX MOV EAX,_iproto_next CMP EAX,700 SETA AL AND AL,AL JZ L_622 PUSH OFFSET L_lit+3110 CALL _fatal_error L_622: MOV EAX,-1 MOV DWORD PTR [EBP-16], EAX MOV EAX,DWORD PTR [EBP-4] CMP EAX,9 SETE AL AND AL,AL JZ L_623 PUSH DWORD PTR [EBP-4] CALL _unget_token L_623: L_621: JMP L_605 L_606: CMP EAX,68 JE L_618 CMP EAX,20 JE L_617 CMP EAX,15 JE L_616 CMP EAX,62 JE L_615 CMP EAX,44 JE L_614 CMP EAX,8192 JE L_613 CMP EAX,43 JE L_612 CMP EAX,66 JE L_611 CMP EAX,59 JE L_610 CMP EAX,54 JE L_609 CMP EAX,56 JE L_608 CMP EAX,64 JE L_607 JMP L_620 L_605: L_603: MOV EAX,DWORD PTR [EBP-16] AND EAX,EAX JZ L_602 L_604: CALL _get_token MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] CMP EAX,9 SETNE AL AND AL,AL JZ L_624 CALL _syntax_error L_624: PUSH 25 CALL _test_token AND EAX,EAX JZ L_625 MOV EAX,_fptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] OR EAX,131072 MOV DWORD PTR [ESI], EAX XOR EAX,EAX MOV _in_function, EAX XOR EAX,EAX MOV _exit_label, EAX XOR EAX,EAX MOV _exit_flag, EAX XOR EAX,EAX MOV _exit_used, EAX MOV EAX,DWORD PTR [EBP-8] MOV _dim_top, EAX MOV EAX,_fptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] AND EAX,16384 JZ L_626 PUSH _fptr CALL _gen_extern_DASM L_626: JMP L_627 L_625: MOV EAX,_fptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] AND EAX,-131073 MOV DWORD PTR [ESI], EAX MOV EAX,_fptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] OR EAX,262144 MOV DWORD PTR [ESI], EAX XOR EAX,EAX MOV _local_stack, EAX XOR EAX,EAX MOV _exit_label, EAX XOR EAX,EAX MOV _exit_flag, EAX XOR EAX,EAX MOV _exit_used, EAX XOR EAX,EAX MOV DWORD PTR [EBP-24], EAX MOV EAX,_arg_count MOV DWORD PTR [EBP-20], EAX L_628: MOV EAX,DWORD PTR [EBP-20] CMP EAX,0 SETA AL AND AL,AL JZ L_629 JMP SHORT L_630 L_631: MOV EAX,DWORD PTR [EBP-20] DEC DWORD PTR [EBP-20] JMP SHORT L_628 L_630: MOV EAX,_fptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] AND EAX,8192 JZ L_632 MOV EAX,300 SUB EAX,DWORD PTR [EBP-20] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [EBP-24] ADD EAX,12 MOV DWORD PTR [ESI+12], EAX JMP L_633 L_632: MOV EAX,300 SUB EAX,DWORD PTR [EBP-20] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [EBP-24] ADD EAX,8 MOV DWORD PTR [ESI+12], EAX L_633: MOV EAX,DWORD PTR [EBP-24] ADD EAX,4 MOV DWORD PTR [EBP-24], EAX JMP L_631 L_629: CALL _get_token MOV DWORD PTR [EBP-4], EAX PUSH EAX CALL _statement CALL _check_func MOV EAX,_exit_label AND EAX,EAX JZ L_634 MOV EAX,_exit_used L_634: AND EAX,EAX JZ L_635 PUSH _exit_label CALL _gen_label L_635: MOV EAX,_fptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] AND EAX,65536 JZ L_636 XOR EAX,EAX PUSH EAX CALL _end_func JMP L_637 L_636: PUSH DWORD PTR [EBP-24] CALL _end_func L_637: XOR EAX,EAX MOV _in_function, EAX XOR EAX,EAX MOV _exit_label, EAX XOR EAX,EAX MOV _exit_flag, EAX XOR EAX,EAX MOV _exit_used, EAX MOV EAX,DWORD PTR [EBP-8] MOV _dim_top, EAX L_638: MOV EAX,_local_top CMP EAX,300 SETB AL AND AL,AL JZ L_639 MOV EAX,_local_top MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-4], EAX AND EAX,16384 JZ L_640 PUSH OFFSET L_lit+3131 MOV EAX,_local_top MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV ESI,OFFSET _LPool ADD ESI,EAX PUSH ESI CALL _t_error L_640: MOV EAX,DWORD PTR [EBP-4] AND EAX,4194304 JNZ L_641 PUSH OFFSET L_lit+3142 MOV EAX,_local_top MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV ESI,OFFSET _LPool ADD ESI,EAX PUSH ESI CALL _t_warn L_641: INC _local_top MOV EAX,_local_top JMP L_638 L_639: L_627: L_598: MOV ESP,EBP POP EBP RETN 4 _write_oper: PUSH EBP MOV EBP,ESP MOV EAX,DWORD PTR [EBP+20] JMP L_643 L_644: PUSH OFFSET L_lit+3155 CALL _code_str JMP L_642 L_645: PUSH DWORD PTR [EBP+16] CALL _code_num JMP L_642 L_646: PUSH OFFSET L_lit+3159 CALL _code_str MOVSX EAX,_prefix PUSH EAX CALL _code_chr PUSH OFFSET L_lit+3167 CALL _code_str PUSH DWORD PTR [EBP+16] CALL _code_num JMP L_642 L_647: MOV EAX,DWORD PTR [EBP+12] AND EAX,2097152 JZ L_648 PUSH 95 CALL _code_chr MOV EAX,DWORD PTR [EBP+16] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV ESI,OFFSET _GPool ADD ESI,EAX PUSH ESI CALL _code_str JMP L_642 L_648: MOV EAX,DWORD PTR [EBP+12] AND EAX,32768 JZ L_649 MOV EAX,_fptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] AND EAX,65536 JZ L_650 MOV EAX,DWORD PTR [EBP+12] AND EAX,71 JZ L_651 PUSH OFFSET L_lit+3173 CALL _code_str JMP L_652 L_651: MOV EAX,DWORD PTR [EBP+12] AND EAX,32 JZ L_653 PUSH OFFSET L_lit+3193 CALL _code_str JMP L_654 L_653: PUSH OFFSET L_lit+3212 CALL _code_str L_654: L_652: MOV EAX,DWORD PTR [EBP+16] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX PUSH DWORD PTR [ESI+12] CALL _code_num PUSH 93 CALL _code_chr JMP L_655 L_650: MOV EAX,DWORD PTR [EBP+12] AND EAX,71 JZ L_656 PUSH OFFSET L_lit+3231 CALL _code_str JMP L_657 L_656: MOV EAX,DWORD PTR [EBP+12] AND EAX,32 JZ L_658 PUSH OFFSET L_lit+3247 CALL _code_str JMP L_659 L_658: PUSH OFFSET L_lit+3262 CALL _code_str L_659: L_657: MOV EAX,DWORD PTR [EBP+16] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX PUSH DWORD PTR [ESI+12] CALL _code_num PUSH 93 CALL _code_chr L_655: JMP L_660 L_649: MOV EAX,DWORD PTR [EBP+12] AND EAX,71 JZ L_661 PUSH OFFSET L_lit+3277 CALL _code_str JMP L_662 L_661: MOV EAX,DWORD PTR [EBP+12] AND EAX,32 JZ L_663 PUSH OFFSET L_lit+3293 CALL _code_str JMP L_664 L_663: PUSH OFFSET L_lit+3308 CALL _code_str L_664: L_662: MOV EAX,DWORD PTR [EBP+16] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX PUSH DWORD PTR [ESI+12] CALL _code_num PUSH 93 CALL _code_chr L_660: JMP L_642 L_665: PUSH OFFSET L_lit+3323 CALL _code_str JMP L_642 L_666: PUSH OFFSET L_lit+3327 CALL _code_str JMP L_642 L_667: L_668: L_669: L_670: MOV EAX,DWORD PTR [EBP+12] AND EAX,71 JZ L_671 PUSH OFFSET L_lit+3331 CALL _code_str JMP L_672 L_671: MOV EAX,DWORD PTR [EBP+12] AND EAX,32 JZ L_673 PUSH OFFSET L_lit+3342 CALL _code_str JMP L_674 L_673: PUSH OFFSET L_lit+3352 CALL _code_str L_674: L_672: MOV EAX,DWORD PTR [EBP+8] AND EAX,EAX JZ L_675 MOV EAX,DWORD PTR [EBP+20] CMP EAX,109 SETE AL AND AL,AL JZ L_676 PUSH OFFSET L_lit+3362 CALL _code_str JMP L_677 L_676: MOV EAX,DWORD PTR [EBP+20] CMP EAX,107 SETE AL AND AL,AL JZ L_678 PUSH OFFSET L_lit+3368 CALL _code_str JMP L_679 L_678: MOV EAX,DWORD PTR [EBP+20] CMP EAX,108 SETE AL AND AL,AL JZ L_680 PUSH OFFSET L_lit+3374 CALL _code_str JMP L_681 L_680: PUSH OFFSET L_lit+3380 CALL _code_str L_681: L_679: L_677: PUSH DWORD PTR [EBP+8] CALL _code_num PUSH 93 CALL _code_chr JMP L_682 L_675: MOV EAX,DWORD PTR [EBP+20] CMP EAX,109 SETE AL AND AL,AL JZ L_683 PUSH OFFSET L_lit+3386 CALL _code_str JMP L_684 L_683: MOV EAX,DWORD PTR [EBP+20] CMP EAX,108 SETE AL AND AL,AL JZ L_685 PUSH OFFSET L_lit+3392 CALL _code_str JMP L_686 L_685: MOV EAX,DWORD PTR [EBP+20] CMP EAX,107 SETE AL AND AL,AL JZ L_687 PUSH OFFSET L_lit+3398 CALL _code_str JMP L_688 L_687: PUSH OFFSET L_lit+3404 CALL _code_str L_688: L_686: L_684: L_682: JMP L_642 L_689: PUSH OFFSET L_lit+3410 CALL _code_str JMP L_642 L_690: L_691: L_692: PUSH DWORD PTR [EBP+20] CALL _code_num PUSH OFFSET L_lit+3414 CALL _code_str JMP L_642 L_643: CMP EAX,112 JE L_691 CMP EAX,113 JE L_690 CMP EAX,110 JE L_689 CMP EAX,111 JE L_670 CMP EAX,107 JE L_669 CMP EAX,108 JE L_668 CMP EAX,109 JE L_667 CMP EAX,106 JE L_666 CMP EAX,105 JE L_665 CMP EAX,103 JE L_647 CMP EAX,101 JE L_646 CMP EAX,100 JE L_645 CMP EAX,104 JE L_644 JMP L_692 L_642: POP EBP RETN 16 _GenCodeOper: PUSH EBP MOV EBP,ESP PUSH 9 CALL _code_chr L_693: MOV ESI,DWORD PTR [EBP+24] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_694 MOV ESI,DWORD PTR [EBP+24] MOVSX EAX,BYTE PTR [ESI] CMP EAX,124 SETE AL AND AL,AL JZ L_695 PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP+16] PUSH DWORD PTR [EBP+12] PUSH DWORD PTR [EBP+8] CALL _write_oper JMP L_696 L_695: MOV ESI,DWORD PTR [EBP+24] MOVSX EAX,BYTE PTR [ESI] PUSH EAX CALL _code_chr L_696: INC DWORD PTR [EBP+24] MOV EAX,DWORD PTR [EBP+24] JMP L_693 L_694: PUSH 10 CALL _code_chr POP EBP RETN 20 _StackEAX: PUSH EBP MOV EBP,ESP SUB ESP,8 XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX L_697: MOV EAX,DWORD PTR [EBP-4] CMP EAX,_expr_ptr SETB AL AND AL,AL JZ L_698 JMP SHORT L_699 L_700: INC DWORD PTR [EBP-4] MOV EAX,DWORD PTR [EBP-4] JMP SHORT L_697 L_699: MOV EAX,DWORD PTR [EBP-4] SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,DWORD PTR [ESI] CMP EAX,104 SETE AL AND AL,AL JZ L_701 XOR EAX,EAX MOV DWORD PTR [EBP-8], EAX L_702: MOV EAX,DWORD PTR [EBP-8] CMP EAX,_expr_ptr SETB AL AND AL,AL JZ L_703 JMP SHORT L_704 L_705: INC DWORD PTR [EBP-8] MOV EAX,DWORD PTR [EBP-8] JMP SHORT L_702 L_704: MOV EAX,DWORD PTR [EBP-8] SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,DWORD PTR [ESI] CMP EAX,110 SETE AL AND AL,AL JNZ L_706 MOV EAX,DWORD PTR [EBP-8] SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,DWORD PTR [ESI] CMP EAX,111 SETE AL AND AL,AL L_706: JZ L_707 PUSH OFFSET L_lit+3436 CALL _out_inst MOV EAX,DWORD PTR [EBP-8] SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,DWORD PTR [ESI] CMP EAX,110 SETE AL AND AL,AL JZ L_708 MOV EAX,DWORD PTR [EBP-8] SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,112 MOV DWORD PTR [ESI], EAX JMP L_709 L_708: MOV EAX,DWORD PTR [EBP-8] SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,113 MOV DWORD PTR [ESI], EAX L_709: JMP L_703 L_707: JMP L_705 L_703: CALL _test_not PUSH OFFSET L_lit+3445 CALL _out_inst MOV EAX,DWORD PTR [EBP-4] SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,110 MOV DWORD PTR [ESI], EAX L_701: JMP L_700 L_698: MOV ESP,EBP POP EBP RETN _CheckStack: PUSH EBP MOV EBP,ESP MOV EAX,DWORD PTR [EBP+8] CMP EAX,113 SETE AL AND AL,AL JZ L_710 PUSH OFFSET L_lit+3457 CALL _out_inst MOV EAX,108 MOV DWORD PTR [EBP+8], EAX JMP L_711 L_710: MOV EAX,DWORD PTR [EBP+8] CMP EAX,112 SETE AL AND AL,AL JZ L_712 PUSH OFFSET L_lit+3465 CALL _out_inst MOV EAX,106 MOV DWORD PTR [EBP+8], EAX L_712: L_711: MOV EAX,DWORD PTR [EBP+8] POP EBP RETN 4 _LoadEAX: PUSH EBP MOV EBP,ESP MOV EAX,DWORD PTR [EBP+12] AND EAX,262144 JZ L_714 CALL _type_error L_714: MOV EAX,DWORD PTR [EBP+20] CMP EAX,104 SETE AL AND AL,AL JZ L_715 CALL _test_not JMP L_716 L_715: PUSH DWORD PTR [EBP+20] CALL _CheckStack MOV DWORD PTR [EBP+20], EAX CALL _StackEAX XOR EAX,EAX MOV _not_flag, AL MOV EAX,DWORD PTR [EBP+20] CMP EAX,100 SETE AL AND AL,AL JZ L_717 MOV EAX,DWORD PTR [EBP+16] AND EAX,EAX SETZ AL AND AL,AL L_717: JZ L_718 CALL _test_not PUSH OFFSET L_lit+3473 CALL _code_str JMP L_716 L_718: MOV EAX,DWORD PTR [EBP+12] AND EAX,71 JNZ L_719 MOV EAX,DWORD PTR [EBP+20] CMP EAX,100 SETE AL AND AL,AL JNZ L_720 MOV EAX,DWORD PTR [EBP+20] CMP EAX,106 SETE AL AND AL,AL JNZ L_721 MOV EAX,DWORD PTR [EBP+20] CMP EAX,110 SETE AL AND AL,AL JNZ L_722 MOV EAX,DWORD PTR [EBP+20] CMP EAX,105 SETE AL AND AL,AL L_722: L_721: L_720: L_719: JZ L_723 PUSH OFFSET L_lit+3487 PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP+16] PUSH DWORD PTR [EBP+12] PUSH DWORD PTR [EBP+8] CALL _GenCodeOper JMP L_724 L_723: MOV EAX,DWORD PTR [EBP+12] AND EAX,32 JZ L_725 MOV EAX,DWORD PTR [EBP+12] AND EAX,128 JZ L_726 PUSH OFFSET L_lit+3497 PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP+16] PUSH DWORD PTR [EBP+12] PUSH DWORD PTR [EBP+8] CALL _GenCodeOper JMP L_727 L_726: PUSH OFFSET L_lit+3509 PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP+16] PUSH DWORD PTR [EBP+12] PUSH DWORD PTR [EBP+8] CALL _GenCodeOper L_727: JMP L_728 L_725: MOV EAX,DWORD PTR [EBP+12] AND EAX,128 JZ L_729 PUSH OFFSET L_lit+3521 CALL _code_str PUSH OFFSET L_lit+3535 PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP+16] PUSH DWORD PTR [EBP+12] PUSH DWORD PTR [EBP+8] CALL _GenCodeOper JMP L_730 L_729: PUSH OFFSET L_lit+3544 PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP+16] PUSH DWORD PTR [EBP+12] PUSH DWORD PTR [EBP+8] CALL _GenCodeOper L_730: L_728: L_724: MOV EAX,-1 MOV _zero_flag, AL L_716: POP EBP RETN 16 _LoadECX: PUSH EBP MOV EBP,ESP MOV EAX,DWORD PTR [EBP+12] AND EAX,262144 JZ L_731 CALL _type_error L_731: MOV EAX,DWORD PTR [EBP+20] CMP EAX,105 SETE AL AND AL,AL JZ L_732 JMP L_733 L_732: PUSH DWORD PTR [EBP+20] CALL _CheckStack MOV DWORD PTR [EBP+20], EAX MOV EAX,DWORD PTR [EBP+20] CMP EAX,100 SETE AL AND AL,AL JZ L_734 MOV EAX,DWORD PTR [EBP+16] AND EAX,EAX SETZ AL AND AL,AL L_734: JZ L_735 PUSH OFFSET L_lit+3556 CALL _code_str JMP L_733 L_735: MOV EAX,DWORD PTR [EBP+12] AND EAX,71 JNZ L_736 MOV EAX,DWORD PTR [EBP+20] CMP EAX,100 SETE AL AND AL,AL JNZ L_737 MOV EAX,DWORD PTR [EBP+20] CMP EAX,106 SETE AL AND AL,AL JNZ L_738 MOV EAX,DWORD PTR [EBP+20] CMP EAX,110 SETE AL AND AL,AL JNZ L_739 MOV EAX,DWORD PTR [EBP+20] CMP EAX,104 SETE AL AND AL,AL L_739: L_738: L_737: L_736: JZ L_740 PUSH OFFSET L_lit+3570 PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP+16] PUSH DWORD PTR [EBP+12] PUSH DWORD PTR [EBP+8] CALL _GenCodeOper JMP L_741 L_740: MOV EAX,DWORD PTR [EBP+12] AND EAX,32 JZ L_742 MOV EAX,DWORD PTR [EBP+12] AND EAX,128 JZ L_743 PUSH OFFSET L_lit+3580 PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP+16] PUSH DWORD PTR [EBP+12] PUSH DWORD PTR [EBP+8] CALL _GenCodeOper JMP L_744 L_743: PUSH OFFSET L_lit+3592 PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP+16] PUSH DWORD PTR [EBP+12] PUSH DWORD PTR [EBP+8] CALL _GenCodeOper L_744: JMP L_745 L_742: MOV EAX,DWORD PTR [EBP+12] AND EAX,128 JZ L_746 PUSH OFFSET L_lit+3604 CALL _code_str PUSH OFFSET L_lit+3618 PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP+16] PUSH DWORD PTR [EBP+12] PUSH DWORD PTR [EBP+8] CALL _GenCodeOper JMP L_747 L_746: PUSH OFFSET L_lit+3627 PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP+16] PUSH DWORD PTR [EBP+12] PUSH DWORD PTR [EBP+8] CALL _GenCodeOper L_747: L_745: L_741: L_733: POP EBP RETN 16 _sub_eval: PUSH EBP MOV EBP,ESP SUB ESP,4 L_748: PUSH 25 CALL _do_oper MOV DWORD PTR [EBP-4], EAX CMP EAX,15 SETNE AL AND AL,AL JZ L_750 PUSH DWORD PTR [EBP-4] CALL _unget_token PUSH DWORD PTR [EBP+8] CALL _expect JMP L_751 L_750: LEA EAX,DWORD PTR [EBP-4] PUSH EAX LEA EAX,DWORD PTR [EBP-4] PUSH EAX LEA EAX,DWORD PTR [EBP-4] PUSH EAX LEA EAX,DWORD PTR [EBP-4] PUSH EAX CALL _pop JMP L_748 L_749: L_751: MOV ESP,EBP POP EBP RETN 4 _eval: PUSH EBP MOV EBP,ESP SUB ESP,16 XOR EAX,EAX MOV _expr_ptr, EAX XOR EAX,EAX MOV _not_flag, AL PUSH DWORD PTR [EBP+12] CALL _sub_eval LEA EAX,DWORD PTR [EBP-4] PUSH EAX LEA EAX,DWORD PTR [EBP-8] PUSH EAX LEA EAX,DWORD PTR [EBP-12] PUSH EAX LEA EAX,DWORD PTR [EBP-16] PUSH EAX CALL _pop MOV EAX,DWORD PTR [EBP-4] CMP EAX,104 SETNE AL AND AL,AL JNZ L_752 MOVSX EAX,BYTE PTR [EBP+8] L_752: AND EAX,EAX JZ L_753 PUSH DWORD PTR [EBP-4] PUSH DWORD PTR [EBP-8] PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-16] CALL _LoadEAX L_753: MOV ESP,EBP POP EBP RETN 8 _out_inst: PUSH EBP MOV EBP,ESP PUSH 9 CALL _code_chr PUSH DWORD PTR [EBP+8] CALL _code_str PUSH 10 CALL _code_chr POP EBP RETN 4 _StackTop: PUSH EBP MOV EBP,ESP SUB ESP,4 XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX L_754: MOV EAX,DWORD PTR [EBP-4] CMP EAX,_expr_ptr SETB AL AND AL,AL JZ L_755 JMP SHORT L_756 L_757: INC DWORD PTR [EBP-4] MOV EAX,DWORD PTR [EBP-4] JMP SHORT L_754 L_756: MOV EAX,DWORD PTR [EBP-4] SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,DWORD PTR [ESI] CMP EAX,110 SETE AL AND AL,AL JNZ L_758 MOV EAX,DWORD PTR [EBP-4] SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,DWORD PTR [ESI] CMP EAX,111 SETE AL AND AL,AL L_758: JZ L_759 PUSH OFFSET L_lit+3639 CALL _out_inst MOV EAX,DWORD PTR [EBP-4] SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,DWORD PTR [ESI] CMP EAX,110 SETE AL AND AL,AL JZ L_760 MOV EAX,DWORD PTR [EBP-4] SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,112 MOV DWORD PTR [ESI], EAX JMP L_761 L_760: MOV EAX,DWORD PTR [EBP-4] SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,113 MOV DWORD PTR [ESI], EAX L_761: JMP L_755 L_759: JMP L_757 L_755: MOV ESP,EBP POP EBP RETN _StackESI: PUSH EBP MOV EBP,ESP SUB ESP,8 XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX L_762: MOV EAX,DWORD PTR [EBP-4] CMP EAX,_expr_ptr SETB AL AND AL,AL JZ L_763 JMP SHORT L_764 L_765: INC DWORD PTR [EBP-4] MOV EAX,DWORD PTR [EBP-4] JMP SHORT L_762 L_764: MOV EAX,DWORD PTR [EBP-4] SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,DWORD PTR [ESI] CMP EAX,109 SETE AL AND AL,AL JZ L_766 XOR EAX,EAX MOV DWORD PTR [EBP-8], EAX L_767: MOV EAX,DWORD PTR [EBP-8] CMP EAX,_expr_ptr SETB AL AND AL,AL JZ L_768 JMP SHORT L_769 L_770: INC DWORD PTR [EBP-8] MOV EAX,DWORD PTR [EBP-8] JMP SHORT L_767 L_769: MOV EAX,DWORD PTR [EBP-8] SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,DWORD PTR [ESI] CMP EAX,110 SETE AL AND AL,AL JNZ L_771 MOV EAX,DWORD PTR [EBP-8] SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,DWORD PTR [ESI] CMP EAX,111 SETE AL AND AL,AL L_771: JZ L_772 PUSH OFFSET L_lit+3648 CALL _out_inst MOV EAX,DWORD PTR [EBP-8] SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,DWORD PTR [ESI] CMP EAX,110 SETE AL AND AL,AL JZ L_773 MOV EAX,DWORD PTR [EBP-8] SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,112 MOV DWORD PTR [ESI], EAX JMP L_774 L_773: MOV EAX,DWORD PTR [EBP-8] SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,113 MOV DWORD PTR [ESI], EAX L_774: JMP L_768 L_772: JMP L_770 L_768: PUSH OFFSET L_lit+3657 CALL _out_inst MOV EAX,DWORD PTR [EBP-4] SHL EAX,4 MOV ESI,OFFSET _expstk ADD ESI,EAX MOV EAX,111 MOV DWORD PTR [ESI], EAX L_766: JMP L_765 L_763: MOV ESP,EBP POP EBP RETN _load_index: PUSH EBP MOV EBP,ESP CALL _StackESI MOV EAX,DWORD PTR [EBP+12] AND EAX,32768 JNZ L_775 MOV EAX,DWORD PTR [EBP+12] AND EAX,256 AND EAX,EAX SETZ AL AND AL,AL L_775: JZ L_776 PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP+16] PUSH DWORD PTR [EBP+12] PUSH DWORD PTR [EBP+8] CALL _index_ptr JMP L_777 L_776: PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP+16] PUSH DWORD PTR [EBP+12] PUSH DWORD PTR [EBP+8] CALL _index_adr L_777: POP EBP RETN 16 _do_unary: PUSH EBP MOV EBP,ESP SUB ESP,17 LEA EAX,DWORD PTR [EBP-4] PUSH EAX LEA EAX,DWORD PTR [EBP-8] PUSH EAX LEA EAX,DWORD PTR [EBP-12] PUSH EAX LEA EAX,DWORD PTR [EBP-16] PUSH EAX CALL _pop XOR EAX,EAX MOV BYTE PTR [EBP-17], AL MOV EAX,DWORD PTR [EBP-4] CMP EAX,100 SETE AL AND AL,AL JZ L_778 MOV EAX,-1 MOV BYTE PTR [EBP-17], AL MOV EAX,DWORD PTR [EBP+8] JMP L_780 L_781: NEG DWORD PTR [EBP-8] MOV EAX,DWORD PTR [EBP-8] JMP L_779 L_782: NOT DWORD PTR [EBP-8] MOV EAX,DWORD PTR [EBP-8] JMP L_779 L_783: MOV EAX,DWORD PTR [EBP-8] MOV DWORD PTR [EBP-8], EAX AND EAX,EAX SETZ AL AND AL,AL JMP L_779 L_784: XOR EAX,EAX MOV BYTE PTR [EBP-17], AL JMP L_779 L_780: CMP EAX,2 JE L_783 CMP EAX,75 JE L_782 CMP EAX,19 JE L_781 JMP L_784 L_779: L_778: MOVSX EAX,BYTE PTR [EBP-17] AND EAX,EAX JNZ L_785 MOV EAX,DWORD PTR [EBP+8] JMP L_787 L_788: PUSH OFFSET L_lit+3669 PUSH DWORD PTR [EBP-4] PUSH DWORD PTR [EBP-8] PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-16] CALL _GenCodeOper JMP L_786 L_789: PUSH OFFSET L_lit+3675 PUSH DWORD PTR [EBP-4] PUSH DWORD PTR [EBP-8] PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-16] CALL _GenCodeOper JMP L_786 L_790: PUSH DWORD PTR [EBP-4] PUSH DWORD PTR [EBP-8] PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-16] CALL _LoadEAX MOV EAX,104 MOV DWORD PTR [EBP-4], EAX MOV EAX,1 MOV _not_flag, AL JMP L_786 L_791: PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-8] CALL _ispStruct AND EAX,EAX JZ L_792 PUSH OFFSET L_lit+3681 PUSH DWORD PTR [EBP-4] PUSH DWORD PTR [EBP-8] PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-16] CALL _GenCodeOper JMP L_793 L_792: PUSH DWORD PTR [EBP-12] CALL _isp32 AND EAX,EAX JZ L_794 PUSH OFFSET L_lit+3697 PUSH DWORD PTR [EBP-4] PUSH DWORD PTR [EBP-8] PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-16] CALL _GenCodeOper JMP L_795 L_794: PUSH DWORD PTR [EBP-12] CALL _isp16 AND EAX,EAX JZ L_796 PUSH OFFSET L_lit+3705 PUSH DWORD PTR [EBP-4] PUSH DWORD PTR [EBP-8] PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-16] CALL _GenCodeOper JMP L_797 L_796: PUSH OFFSET L_lit+3713 PUSH DWORD PTR [EBP-4] PUSH DWORD PTR [EBP-8] PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-16] CALL _GenCodeOper L_797: L_795: L_793: JMP L_786 L_798: PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-8] CALL _ispStruct AND EAX,EAX JZ L_799 PUSH OFFSET L_lit+3719 PUSH DWORD PTR [EBP-4] PUSH DWORD PTR [EBP-8] PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-16] CALL _GenCodeOper JMP L_800 L_799: PUSH DWORD PTR [EBP-12] CALL _isp32 AND EAX,EAX JZ L_801 PUSH OFFSET L_lit+3735 PUSH DWORD PTR [EBP-4] PUSH DWORD PTR [EBP-8] PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-16] CALL _GenCodeOper JMP L_802 L_801: PUSH DWORD PTR [EBP-12] CALL _isp16 AND EAX,EAX JZ L_803 PUSH OFFSET L_lit+3743 PUSH DWORD PTR [EBP-4] PUSH DWORD PTR [EBP-8] PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-16] CALL _GenCodeOper JMP L_804 L_803: PUSH OFFSET L_lit+3751 PUSH DWORD PTR [EBP-4] PUSH DWORD PTR [EBP-8] PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-16] CALL _GenCodeOper L_804: L_802: L_800: JMP L_786 L_805: CALL _syntax_error JMP L_786 L_787: CMP EAX,16 JE L_798 CMP EAX,12 JE L_791 CMP EAX,2 JE L_790 CMP EAX,75 JE L_789 CMP EAX,19 JE L_788 JMP L_805 L_786: L_785: PUSH DWORD PTR [EBP-4] PUSH DWORD PTR [EBP-8] PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-16] CALL _push MOV ESP,EBP POP EBP RETN 4 _eval_index: PUSH EBP MOV EBP,ESP SUB ESP,25 XOR EAX,EAX MOV BYTE PTR [EBP-25], AL MOV EAX,DWORD PTR [EBP+16] AND EAX,256 JZ L_806 MOV EAX,DWORD PTR [EBP+20] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+20] MOV DWORD PTR [EBP-12], EAX MOV EAX,DWORD PTR [EBP-12] INC DWORD PTR [EBP-12] SHL EAX,2 MOV ESI,OFFSET _dim_pool ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-4], EAX JMP L_807 L_806: MOV EAX,1 MOV DWORD PTR [EBP-4], EAX MOV DWORD PTR [EBP-12], EAX L_807: MOV EAX,DWORD PTR [EBP+20] MOV DWORD PTR [EBP-16], EAX PUSH DWORD PTR [EBP+24] PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP+16] PUSH DWORD PTR [EBP+12] CALL _push L_808: MOV EAX,DWORD PTR [EBP+16] AND EAX,263 MOV DWORD PTR [EBP+20], EAX MOV EAX,DWORD PTR [EBP+20] CMP EAX,256 SETE AL AND AL,AL JNZ L_811 MOV EAX,DWORD PTR [EBP+20] CMP EAX,2 SETB AL AND AL,AL L_811: JZ L_812 MOV EAX,DWORD PTR [EBP+16] AND EAX,16 JZ L_813 MOV EAX,1 MOV DWORD PTR [EBP-20], EAX JMP L_814 L_813: MOV EAX,DWORD PTR [EBP+16] AND EAX,32 JZ L_815 MOV EAX,2 MOV DWORD PTR [EBP-20], EAX JMP L_816 L_815: MOV EAX,DWORD PTR [EBP+16] AND EAX,64 JZ L_817 MOV EAX,4 MOV DWORD PTR [EBP-20], EAX JMP L_818 L_817: MOV EAX,DWORD PTR [EBP+16] AND EAX,512 JZ L_819 MOV EAX,DWORD PTR [EBP-16] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+16] MOV DWORD PTR [EBP-20], EAX L_819: L_818: L_816: L_814: JMP L_820 L_812: MOV EAX,4 MOV DWORD PTR [EBP-20], EAX L_820: DEC DWORD PTR [EBP-4] MOV EAX,DWORD PTR [EBP+16] AND EAX,256 JZ L_821 INC DWORD PTR [EBP-12] MOV EAX,DWORD PTR [EBP-12] MOV DWORD PTR [EBP+24], EAX MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [EBP+20], EAX AND EAX,EAX JNZ L_822 MOV EAX,DWORD PTR [EBP+16] AND EAX,-257 MOV DWORD PTR [EBP+16], EAX L_822: L_823: MOV EAX,DWORD PTR [EBP+20] DEC DWORD PTR [EBP+20] AND EAX,EAX JZ L_824 MOV EAX,DWORD PTR [EBP+24] INC DWORD PTR [EBP+24] SHL EAX,2 MOV ESI,OFFSET _dim_pool ADD ESI,EAX MOV EAX,DWORD PTR [EBP-20] MOV ECX,DWORD PTR [ESI] MUL ECX MOV DWORD PTR [EBP-20], EAX JMP L_823 L_824: JMP L_825 L_821: MOV EAX,DWORD PTR [EBP+16] AND EAX,7 JZ L_826 DEC DWORD PTR [EBP+16] MOV EAX,DWORD PTR [EBP+16] MOVSX EAX,BYTE PTR [EBP-25] AND EAX,EAX JZ L_827 LEA EAX,DWORD PTR [EBP+24] PUSH EAX LEA EAX,DWORD PTR [EBP+20] PUSH EAX LEA EAX,DWORD PTR [EBP-8] PUSH EAX LEA EAX,DWORD PTR [EBP-24] PUSH EAX CALL _pop PUSH DWORD PTR [EBP+24] PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP-8] PUSH DWORD PTR [EBP-24] CALL _LoadEAX LEA EAX,DWORD PTR [EBP+24] PUSH EAX LEA EAX,DWORD PTR [EBP+20] PUSH EAX LEA EAX,DWORD PTR [EBP-8] PUSH EAX LEA EAX,DWORD PTR [EBP-24] PUSH EAX CALL _pop PUSH DWORD PTR [EBP+24] PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP-8] PUSH DWORD PTR [EBP-24] CALL _load_index PUSH OFFSET L_lit+3757 CALL _out_inst MOV EAX,109 MOV DWORD PTR [EBP+24], EAX PUSH EAX PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP+16] PUSH DWORD PTR [EBP-24] CALL _push XOR EAX,EAX MOV BYTE PTR [EBP-25], AL L_827: JMP L_828 L_826: CALL _index_error L_828: L_825: PUSH 38 CALL _sub_eval MOV EAX,DWORD PTR [EBP-20] CMP EAX,1 SETNE AL AND AL,AL JZ L_829 PUSH 100 PUSH DWORD PTR [EBP-20] PUSH 64 XOR EAX,EAX PUSH EAX CALL _push PUSH 11 CALL _do_lr2op L_829: MOVSX EAX,BYTE PTR [EBP-25] AND EAX,EAX JZ L_830 PUSH 14 CALL _do_lr2op L_830: MOV EAX,1 MOV BYTE PTR [EBP-25], AL L_809: PUSH 37 CALL _test_token AND EAX,EAX JNZ L_808 L_810: MOV ESI,DWORD PTR [EBP+8] MOV EAX,DWORD PTR [EBP+16] MOV DWORD PTR [ESI], EAX MOVSX EAX,BYTE PTR [EBP-25] MOV ESP,EBP POP EBP RETN 20 _get_value: PUSH EBP MOV EBP,ESP SUB ESP,46 CALL _get_token MOV DWORD PTR [EBP-24], EAX JMP L_833 L_834: MOV EAX,100 MOV DWORD PTR [EBP-28], EAX MOV EAX,_gvalue MOV DWORD PTR [EBP-32], EAX MOV EAX,64 MOV DWORD PTR [EBP-36], EAX XOR EAX,EAX MOV DWORD PTR [EBP-44], EAX JMP L_832 L_835: MOV EAX,101 MOV DWORD PTR [EBP-28], EAX MOV EAX,_gvalue MOV DWORD PTR [EBP-32], EAX MOV EAX,17 MOV DWORD PTR [EBP-36], EAX XOR EAX,EAX MOV DWORD PTR [EBP-44], EAX JMP L_832 L_836: CALL _lookup_local AND EAX,EAX JNZ L_837 CALL _lookup_global L_837: AND EAX,EAX JNZ L_838 PUSH 8 CALL _test_token AND EAX,EAX JZ L_839 PUSH OFFSET L_lit+3769 CALL _symbol_error JMP L_840 L_839: PUSH OFFSET L_lit+3793 CALL _symbol_error L_840: L_838: MOV EAX,103 MOV DWORD PTR [EBP-28], EAX MOV EAX,_sptr MOV DWORD PTR [EBP-32], EAX MOV EAX,DWORD PTR [EBP-32] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-36], EAX XOR EAX,EAX MOV DWORD PTR [EBP-44], EAX JMP L_832 L_841: CALL _get_value LEA EAX,DWORD PTR [EBP-28] PUSH EAX LEA EAX,DWORD PTR [EBP-32] PUSH EAX LEA EAX,DWORD PTR [EBP-36] PUSH EAX LEA EAX,DWORD PTR [EBP-44] PUSH EAX CALL _pop CALL _StackESI PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] CALL _index_ptr MOV EAX,109 MOV DWORD PTR [EBP-28], EAX MOV EAX,DWORD PTR [EBP-36] AND EAX,7 JZ L_842 DEC DWORD PTR [EBP-36] MOV EAX,DWORD PTR [EBP-36] JMP L_843 L_842: CALL _index_error L_843: JMP L_832 L_844: CALL _get_value LEA EAX,DWORD PTR [EBP-28] PUSH EAX LEA EAX,DWORD PTR [EBP-32] PUSH EAX LEA EAX,DWORD PTR [EBP-36] PUSH EAX LEA EAX,DWORD PTR [EBP-44] PUSH EAX CALL _pop MOV EAX,DWORD PTR [EBP-28] CMP EAX,103 SETE AL AND AL,AL JZ L_845 CALL _StackEAX MOV EAX,DWORD PTR [EBP-36] AND EAX,2097152 JZ SHORT L_847 MOV EAX,OFFSET L_lit+3810 JMP SHORT L_846 L_847: MOV EAX,OFFSET L_lit+3827 L_846: PUSH EAX CALL _code_str PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] CALL _write_oper PUSH 10 CALL _code_chr XOR EAX,EAX MOV _not_flag, AL MOV EAX,DWORD PTR [EBP-36] ADD EAX,1 AND EAX,-262145 MOV DWORD PTR [EBP-36], EAX MOV EAX,104 MOV DWORD PTR [EBP-28], EAX JMP L_848 L_845: MOV EAX,DWORD PTR [EBP-28] CMP EAX,109 SETE AL AND AL,AL JZ L_849 CALL _StackEAX XOR EAX,EAX MOV _not_flag, AL PUSH OFFSET L_lit+3837 CALL _out_inst MOV EAX,DWORD PTR [EBP-36] ADD EAX,1 AND EAX,-262145 MOV DWORD PTR [EBP-36], EAX MOV EAX,104 MOV DWORD PTR [EBP-28], EAX JMP L_850 L_849: MOV EAX,DWORD PTR [EBP-28] CMP EAX,104 SETE AL AND AL,AL JZ L_851 MOV EAX,DWORD PTR [EBP-36] AND EAX,7 L_851: JZ L_852 JMP L_853 L_852: PUSH OFFSET L_lit+3849 CALL _line_error L_853: L_850: L_848: JMP L_832 L_854: PUSH 9 CALL _sub_eval LEA EAX,DWORD PTR [EBP-28] PUSH EAX LEA EAX,DWORD PTR [EBP-32] PUSH EAX LEA EAX,DWORD PTR [EBP-36] PUSH EAX LEA EAX,DWORD PTR [EBP-44] PUSH EAX CALL _pop JMP L_832 L_855: PUSH 8 CALL _test_token AND EAX,EAX JZ L_856 CALL _get_value LEA EAX,DWORD PTR [EBP-28] PUSH EAX LEA EAX,DWORD PTR [EBP-32] PUSH EAX LEA EAX,DWORD PTR [EBP-36] PUSH EAX LEA EAX,DWORD PTR [EBP-44] PUSH EAX CALL _pop MOV EAX,DWORD PTR [EBP-28] CMP EAX,103 SETE AL AND AL,AL JZ L_857 MOV EAX,DWORD PTR [EBP-36] AND EAX,7 JZ L_858 MOV EAX,4 MOV DWORD PTR [EBP-20], EAX JMP L_859 L_858: MOV EAX,DWORD PTR [EBP-36] AND EAX,16 JZ L_860 MOV EAX,1 MOV DWORD PTR [EBP-20], EAX JMP L_861 L_860: MOV EAX,DWORD PTR [EBP-36] AND EAX,32 JZ L_862 MOV EAX,2 MOV DWORD PTR [EBP-20], EAX JMP L_863 L_862: MOV EAX,DWORD PTR [EBP-36] AND EAX,64 JZ L_864 MOV EAX,4 MOV DWORD PTR [EBP-20], EAX JMP L_865 L_864: MOV EAX,DWORD PTR [EBP-36] AND EAX,512 JZ L_866 MOV EAX,DWORD PTR [EBP-32] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+16] MOV DWORD PTR [EBP-20], EAX JMP L_867 L_866: MOV EAX,4 MOV DWORD PTR [EBP-20], EAX L_867: L_865: L_863: L_861: L_859: MOV EAX,DWORD PTR [EBP-36] AND EAX,256 JZ L_868 MOV EAX,DWORD PTR [EBP-36] AND EAX,7 AND EAX,EAX SETZ AL AND AL,AL L_868: JZ L_869 MOV EAX,DWORD PTR [EBP-32] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+20] MOV DWORD PTR [EBP-12], EAX MOV EAX,DWORD PTR [EBP-12] INC DWORD PTR [EBP-12] SHL EAX,2 MOV ESI,OFFSET _dim_pool ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-16], EAX L_870: MOV EAX,DWORD PTR [EBP-16] DEC DWORD PTR [EBP-16] AND EAX,EAX JZ L_871 MOV EAX,DWORD PTR [EBP-12] INC DWORD PTR [EBP-12] SHL EAX,2 MOV ESI,OFFSET _dim_pool ADD ESI,EAX MOV EAX,DWORD PTR [EBP-20] MOV ECX,DWORD PTR [ESI] MUL ECX MOV DWORD PTR [EBP-20], EAX JMP L_870 L_871: L_869: MOV EAX,100 MOV DWORD PTR [EBP-28], EAX MOV EAX,64 MOV DWORD PTR [EBP-36], EAX MOV EAX,DWORD PTR [EBP-20] MOV DWORD PTR [EBP-32], EAX PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] XOR EAX,EAX PUSH EAX CALL _push PUSH 9 CALL _expect JMP L_872 L_857: PUSH OFFSET L_lit+3871 CALL _line_error L_873: JMP L_874 L_856: PUSH OFFSET L_lit+3887 CALL _line_error L_874: JMP L_832 L_875: CALL _get_value PUSH DWORD PTR [EBP-24] CALL _do_unary JMP L_872 L_833: CMP EAX,60 JE L_855 CMP EAX,8 JE L_854 CMP EAX,7 JE L_844 CMP EAX,11 JE L_841 CMP EAX,103 JE L_836 CMP EAX,101 JE L_835 CMP EAX,100 JE L_834 JMP L_875 L_832: PUSH 8 CALL _test_token AND EAX,EAX JZ L_876 MOV EAX,DWORD PTR [EBP-32] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+20] MOV _iarg, EAX PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] CALL _push CALL _StackEAX CALL _StackESI MOV EAX,DWORD PTR [EBP-36] AND EAX,65536 JZ L_877 MOV EAX,-1 MOV BYTE PTR [EBP-46], AL JMP L_878 L_877: XOR EAX,EAX MOV BYTE PTR [EBP-46], AL L_878: XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX MOV DWORD PTR [EBP-8], EAX CALL _StackTop PUSH 9 CALL _test_token AND EAX,EAX JNZ L_879 L_880: MOV EAX,_iarg SHL EAX,2 MOV ESI,OFFSET _proto_list ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV _argtype, EAX MOV EAX,_argtype AND EAX,8 JNZ L_883 MOV EAX,_iarg INC _iarg L_883: PUSH 25 CALL _do_oper MOV DWORD PTR [EBP-24], EAX LEA EAX,DWORD PTR [EBP-28] PUSH EAX LEA EAX,DWORD PTR [EBP-32] PUSH EAX LEA EAX,DWORD PTR [EBP-36] PUSH EAX LEA EAX,DWORD PTR [EBP-44] PUSH EAX CALL _pop PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] CALL _LoadEAX MOV EAX,DWORD PTR [EBP-28] CMP EAX,109 SETNE AL AND AL,AL JZ L_884 MOV EAX,DWORD PTR [EBP-44] AND EAX,EAX JZ L_885 MOV EAX,DWORD PTR [EBP-36] AND EAX,7 L_885: L_884: JZ L_886 PUSH OFFSET L_lit+3900 CALL _code_str PUSH DWORD PTR [EBP-44] CALL _code_num PUSH 10 CALL _code_chr L_886: PUSH OFFSET L_lit+3910 CALL _out_inst INC DWORD PTR [EBP-4] MOV EAX,DWORD PTR [EBP-4] MOVSX EAX,BYTE PTR [EBP-46] AND EAX,EAX SETZ AL AND AL,AL JNZ L_887 MOVSX EAX,BYTE PTR [EBP-46] AND EAX,EAX JZ L_888 MOV EAX,_argtype CMP EAX,8 SETE AL AND AL,AL L_888: L_887: JZ L_889 INC DWORD PTR [EBP-8] MOV EAX,DWORD PTR [EBP-8] L_889: L_881: MOV EAX,DWORD PTR [EBP-24] CMP EAX,15 SETE AL AND AL,AL JNZ L_880 L_882: MOV EAX,DWORD PTR [EBP-24] CMP EAX,9 SETNE AL AND AL,AL JZ L_890 CALL _syntax_error L_890: L_879: XOR EAX,EAX MOV _iarg, EAX LEA EAX,DWORD PTR [EBP-28] PUSH EAX LEA EAX,DWORD PTR [EBP-32] PUSH EAX LEA EAX,DWORD PTR [EBP-36] PUSH EAX LEA EAX,DWORD PTR [EBP-44] PUSH EAX CALL _pop MOVSX EAX,BYTE PTR [EBP-46] AND EAX,EAX JZ L_891 PUSH OFFSET L_lit+3919 CALL _code_str MOV EAX,DWORD PTR [EBP-8] SHL EAX,2 PUSH EAX CALL _code_num PUSH 10 CALL _code_chr JMP L_892 L_891: XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX L_892: PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] PUSH DWORD PTR [EBP-4] CALL _call MOV EAX,104 MOV DWORD PTR [EBP-28], EAX MOV EAX,DWORD PTR [EBP-36] AND EAX,-262145 MOV DWORD PTR [EBP-36], EAX L_876: XOR EAX,EAX MOV BYTE PTR [EBP-45], AL PUSH 37 CALL _test_token AND EAX,EAX JZ L_893 PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] LEA EAX,DWORD PTR [EBP-36] PUSH EAX CALL _eval_index MOV BYTE PTR [EBP-45], AL LEA EAX,DWORD PTR [EBP-24] PUSH EAX LEA EAX,DWORD PTR [EBP-32] PUSH EAX LEA EAX,DWORD PTR [EBP-28] PUSH EAX LEA EAX,DWORD PTR [EBP-44] PUSH EAX CALL _pop MOV EAX,DWORD PTR [EBP-24] CMP EAX,100 SETE AL AND AL,AL MOV EBX,EAX MOV EAX,DWORD PTR [EBP-32] AND EAX,EAX SETZ AL AND AL,AL AND EAX,EBX JZ L_894 LEA EAX,DWORD PTR [EBP-28] PUSH EAX LEA EAX,DWORD PTR [EBP-32] PUSH EAX LEA EAX,DWORD PTR [EBP-40] PUSH EAX LEA EAX,DWORD PTR [EBP-44] PUSH EAX CALL _pop MOV EAX,DWORD PTR [EBP-40] AND EAX,263 JZ L_895 MOV EAX,DWORD PTR [EBP-28] CMP EAX,109 SETNE AL AND AL,AL L_895: JZ L_896 PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-40] PUSH DWORD PTR [EBP-44] CALL _load_index L_896: JMP L_897 L_894: PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-44] CALL _LoadEAX LEA EAX,DWORD PTR [EBP-28] PUSH EAX LEA EAX,DWORD PTR [EBP-32] PUSH EAX LEA EAX,DWORD PTR [EBP-40] PUSH EAX LEA EAX,DWORD PTR [EBP-44] PUSH EAX CALL _pop MOV EAX,DWORD PTR [EBP-40] AND EAX,263 JZ L_898 MOV EAX,DWORD PTR [EBP-28] CMP EAX,109 SETNE AL AND AL,AL L_898: JZ L_899 PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-40] PUSH DWORD PTR [EBP-44] CALL _load_index L_899: PUSH OFFSET L_lit+3930 CALL _out_inst L_897: MOV EAX,109 MOV DWORD PTR [EBP-28], EAX L_893: MOV EAX,DWORD PTR [EBP-36] AND EAX,256 JZ L_900 MOV EAX,DWORD PTR [EBP-36] AND EAX,67109376 AND EAX,EAX SETZ AL AND AL,AL L_900: JZ L_901 MOV EAX,DWORD PTR [EBP-36] ADD EAX,1 AND EAX,-257 MOV DWORD PTR [EBP-36], EAX MOV EAX,DWORD PTR [EBP-36] AND EAX,32768 JNZ L_902 MOVSX EAX,BYTE PTR [EBP-45] AND EAX,EAX JNZ L_903 CALL _StackEAX CALL _StackESI PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] CALL _index_adr L_903: CALL _StackEAX XOR EAX,EAX MOV _not_flag, AL PUSH OFFSET L_lit+3942 CALL _out_inst MOV EAX,104 MOV DWORD PTR [EBP-28], EAX L_902: L_901: PUSH 18 CALL _test_token AND EAX,EAX JZ L_904 MOV EAX,DWORD PTR [EBP-36] AND EAX,512 JZ L_905 MOV EAX,DWORD PTR [EBP-36] AND EAX,7 JNZ L_906 MOV EAX,DWORD PTR [EBP-28] CMP EAX,109 SETE AL AND AL,AL L_906: L_905: JZ L_907 MOV EAX,DWORD PTR [EBP-28] CMP EAX,103 SETE AL AND AL,AL JZ L_908 CALL _StackEAX CALL _StackESI PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] CALL _index_ptr MOV EAX,109 MOV DWORD PTR [EBP-28], EAX L_908: PUSH 103 CALL _test_token AND EAX,EAX JZ L_909 PUSH DWORD PTR [EBP-32] CALL _lookup_member AND EAX,EAX JZ L_910 MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+16] MOV _memoffset, EAX MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-36], EAX MOV EAX,_sptr MOV DWORD PTR [EBP-32], EAX MOV EAX,_memoffset MOV DWORD PTR [EBP-44], EAX MOV EAX,DWORD PTR [EBP-36] AND EAX,256 JZ L_911 MOV EAX,DWORD PTR [EBP-36] ADD EAX,1 AND EAX,-257 MOV DWORD PTR [EBP-36], EAX L_911: MOV EAX,109 MOV DWORD PTR [EBP-28], EAX JMP L_912 L_910: PUSH OFFSET L_lit+3954 CALL _line_error L_912: JMP L_913 L_909: PUSH OFFSET L_lit+3977 CALL _line_error L_913: JMP L_914 L_907: PUSH OFFSET L_lit+4003 CALL _line_error L_914: L_904: PUSH 21 CALL _test_token AND EAX,EAX JZ L_915 MOV EAX,DWORD PTR [EBP-36] AND EAX,512 JZ L_916 MOV EAX,DWORD PTR [EBP-36] AND EAX,7 AND EAX,EAX SETZ AL AND AL,AL L_916: JZ L_917 MOV EAX,DWORD PTR [EBP-28] CMP EAX,103 SETE AL AND AL,AL JZ L_918 CALL _StackEAX CALL _StackESI PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] CALL _index_adr MOV EAX,109 MOV DWORD PTR [EBP-28], EAX L_918: PUSH 103 CALL _test_token AND EAX,EAX JZ L_919 PUSH DWORD PTR [EBP-32] CALL _lookup_member AND EAX,EAX JZ L_920 MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+16] MOV _memoffset, EAX MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-36], EAX MOV EAX,_sptr MOV DWORD PTR [EBP-32], EAX MOV EAX,_memoffset MOV DWORD PTR [EBP-44], EAX MOV EAX,109 MOV DWORD PTR [EBP-28], EAX JMP L_921 L_920: PUSH OFFSET L_lit+4030 CALL _line_error L_921: JMP L_922 L_919: PUSH OFFSET L_lit+4056 CALL _line_error L_922: JMP L_923 L_917: PUSH OFFSET L_lit+4082 CALL _line_error L_923: L_915: XOR EAX,EAX MOV BYTE PTR [EBP-45], AL PUSH 37 CALL _test_token AND EAX,EAX JZ L_924 PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] LEA EAX,DWORD PTR [EBP-36] PUSH EAX CALL _eval_index MOV BYTE PTR [EBP-45], AL LEA EAX,DWORD PTR [EBP-24] PUSH EAX LEA EAX,DWORD PTR [EBP-32] PUSH EAX LEA EAX,DWORD PTR [EBP-28] PUSH EAX LEA EAX,DWORD PTR [EBP-44] PUSH EAX CALL _pop MOV EAX,DWORD PTR [EBP-24] CMP EAX,100 SETE AL AND AL,AL MOV EBX,EAX MOV EAX,DWORD PTR [EBP-32] AND EAX,EAX SETZ AL AND AL,AL AND EAX,EBX JZ L_925 LEA EAX,DWORD PTR [EBP-28] PUSH EAX LEA EAX,DWORD PTR [EBP-32] PUSH EAX LEA EAX,DWORD PTR [EBP-40] PUSH EAX LEA EAX,DWORD PTR [EBP-44] PUSH EAX CALL _pop MOV EAX,DWORD PTR [EBP-40] AND EAX,263 JZ L_926 MOV EAX,DWORD PTR [EBP-28] CMP EAX,109 SETNE AL AND AL,AL L_926: JZ L_927 PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-40] PUSH DWORD PTR [EBP-44] CALL _load_index MOV EAX,DWORD PTR [EBP-28] CMP EAX,111 SETE AL AND AL,AL JZ L_928 MOV EAX,DWORD PTR [EBP-32] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] AND EAX,256 L_928: JZ L_929 MOV EAX,110 MOV DWORD PTR [EBP-28], EAX L_929: L_927: JMP L_930 L_925: PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-44] CALL _LoadEAX LEA EAX,DWORD PTR [EBP-28] PUSH EAX LEA EAX,DWORD PTR [EBP-32] PUSH EAX LEA EAX,DWORD PTR [EBP-40] PUSH EAX LEA EAX,DWORD PTR [EBP-44] PUSH EAX CALL _pop MOV EAX,DWORD PTR [EBP-40] AND EAX,263 JZ L_931 MOV EAX,DWORD PTR [EBP-28] CMP EAX,109 SETNE AL AND AL,AL L_931: JZ L_932 MOV EAX,DWORD PTR [EBP-28] CMP EAX,111 SETE AL AND AL,AL JZ L_933 MOV EAX,DWORD PTR [EBP-32] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] AND EAX,256 L_933: JZ L_934 MOV EAX,110 MOV DWORD PTR [EBP-28], EAX L_934: PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-40] PUSH DWORD PTR [EBP-44] CALL _load_index L_932: PUSH OFFSET L_lit+4110 CALL _out_inst L_930: MOV EAX,109 MOV DWORD PTR [EBP-28], EAX L_924: MOV EAX,DWORD PTR [EBP-36] AND EAX,256 JZ L_935 MOV EAX,DWORD PTR [EBP-36] AND EAX,67108864 L_935: JZ L_936 MOV EAX,DWORD PTR [EBP-36] ADD EAX,1 AND EAX,-257 MOV DWORD PTR [EBP-36], EAX MOV EAX,DWORD PTR [EBP-36] AND EAX,32768 JNZ L_937 MOVSX EAX,BYTE PTR [EBP-45] AND EAX,EAX JNZ L_938 CALL _StackEAX CALL _StackESI PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] CALL _index_adr L_938: CALL _StackEAX XOR EAX,EAX MOV _not_flag, AL PUSH OFFSET L_lit+4122 CALL _out_inst MOV EAX,104 MOV DWORD PTR [EBP-28], EAX L_937: L_936: PUSH 12 CALL _test_token AND EAX,EAX JZ L_939 MOV EAX,DWORD PTR [EBP-36] AND EAX,7 JZ L_940 PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] CALL _load_index JMP L_941 L_940: PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] CALL _LoadEAX L_941: PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-32] CALL _ispStruct AND EAX,EAX JZ L_942 PUSH OFFSET L_lit+4134 PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] CALL _GenCodeOper JMP L_943 L_942: PUSH DWORD PTR [EBP-36] CALL _isp32 AND EAX,EAX JZ L_944 PUSH OFFSET L_lit+4150 PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] CALL _GenCodeOper JMP L_945 L_944: PUSH DWORD PTR [EBP-36] CALL _isp16 AND EAX,EAX JZ L_946 PUSH OFFSET L_lit+4158 PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] CALL _GenCodeOper JMP L_947 L_946: PUSH OFFSET L_lit+4166 PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] CALL _GenCodeOper L_947: L_945: L_943: MOV EAX,DWORD PTR [EBP-36] AND EAX,7 JZ L_948 MOV EAX,109 MOV DWORD PTR [EBP-28], EAX JMP L_949 L_948: MOV EAX,104 MOV DWORD PTR [EBP-28], EAX L_949: JMP L_950 L_939: PUSH 16 CALL _test_token AND EAX,EAX JZ L_951 MOV EAX,DWORD PTR [EBP-36] AND EAX,7 JZ L_952 PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] CALL _load_index JMP L_953 L_952: PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] CALL _LoadEAX L_953: PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-32] CALL _ispStruct AND EAX,EAX JZ L_954 PUSH OFFSET L_lit+4172 PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] CALL _GenCodeOper JMP L_955 L_954: PUSH DWORD PTR [EBP-36] CALL _isp32 AND EAX,EAX JZ L_956 PUSH OFFSET L_lit+4188 PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] CALL _GenCodeOper JMP L_957 L_956: PUSH DWORD PTR [EBP-36] CALL _isp16 AND EAX,EAX JZ L_958 PUSH OFFSET L_lit+4196 PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] CALL _GenCodeOper JMP L_959 L_958: PUSH OFFSET L_lit+4204 PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] CALL _GenCodeOper L_959: L_957: L_955: MOV EAX,DWORD PTR [EBP-36] AND EAX,7 JZ L_960 MOV EAX,109 MOV DWORD PTR [EBP-28], EAX JMP L_961 L_960: MOV EAX,104 MOV DWORD PTR [EBP-28], EAX L_961: L_951: L_950: PUSH DWORD PTR [EBP-28] PUSH DWORD PTR [EBP-32] PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-44] CALL _push L_872: MOV ESP,EBP POP EBP RETN _combine: PUSH EBP MOV EBP,ESP SUB ESP,4 MOV EAX,DWORD PTR [EBP+12] AND EAX,7 MOV EBX,EAX MOV EAX,DWORD PTR [EBP+8] AND EAX,7 CMP EAX,EBX SETBE AL AND AL,AL JZ L_962 MOV EAX,DWORD PTR [EBP+12] AND EAX,7 MOV DWORD PTR [EBP-4], EAX JMP L_963 L_962: MOV EAX,DWORD PTR [EBP+8] AND EAX,7 MOV DWORD PTR [EBP-4], EAX L_963: MOV EAX,DWORD PTR [EBP+12] AND EAX,64 JNZ L_964 MOV EAX,DWORD PTR [EBP+8] AND EAX,64 L_964: JZ L_965 MOV EAX,DWORD PTR [EBP-4] OR EAX,64 MOV DWORD PTR [EBP-4], EAX JMP L_966 L_965: MOV EAX,DWORD PTR [EBP+12] AND EAX,32 JNZ L_967 MOV EAX,DWORD PTR [EBP+8] AND EAX,32 L_967: JZ L_968 MOV EAX,DWORD PTR [EBP-4] OR EAX,32 MOV DWORD PTR [EBP-4], EAX JMP L_969 L_968: MOV EAX,DWORD PTR [EBP-4] OR EAX,16 MOV DWORD PTR [EBP-4], EAX L_969: L_966: MOV EAX,DWORD PTR [EBP+12] AND EAX,DWORD PTR [EBP+8] AND EAX,128 JNZ L_970 MOV EAX,DWORD PTR [EBP-4] JMP L_971 L_970: MOV EAX,DWORD PTR [EBP+12] AND EAX,128 JZ L_972 MOV EAX,DWORD PTR [EBP+8] AND EAX,128 L_972: JZ L_973 MOV EAX,DWORD PTR [EBP-4] OR EAX,128 MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] JMP L_971 L_973: MOV EAX,DWORD PTR [EBP+12] AND EAX,112 MOV EBX,EAX MOV EAX,DWORD PTR [EBP+8] AND EAX,112 CMP EAX,EBX SETBE AL AND AL,AL JZ L_974 MOV EAX,DWORD PTR [EBP+8] AND EAX,128 L_974: JZ L_975 MOV EAX,DWORD PTR [EBP-4] OR EAX,128 MOV DWORD PTR [EBP-4], EAX JMP L_976 L_975: MOV EAX,DWORD PTR [EBP+12] AND EAX,112 MOV EBX,EAX MOV EAX,DWORD PTR [EBP+8] AND EAX,112 CMP EAX,EBX SETAE AL AND AL,AL JZ L_977 MOV EAX,DWORD PTR [EBP+12] AND EAX,128 L_977: JZ L_978 MOV EAX,DWORD PTR [EBP-4] OR EAX,128 MOV DWORD PTR [EBP-4], EAX L_978: L_976: MOV EAX,DWORD PTR [EBP-4] L_971: MOV ESP,EBP POP EBP RETN 8 _do_oper: PUSH EBP MOV EBP,ESP SUB ESP,32 MOV EAX,DWORD PTR [EBP+8] CMP EAX,5 SETE AL AND AL,AL JNZ L_979 MOV EAX,DWORD PTR [EBP+8] CMP EAX,71 SETE AL AND AL,AL JNZ L_980 MOV EAX,DWORD PTR [EBP+8] CMP EAX,36 SETE AL AND AL,AL L_980: L_979: JZ L_981 LEA EAX,DWORD PTR [EBP-8] PUSH EAX LEA EAX,DWORD PTR [EBP-12] PUSH EAX LEA EAX,DWORD PTR [EBP-16] PUSH EAX LEA EAX,DWORD PTR [EBP-24] PUSH EAX CALL _pop CALL _StackEAX CALL _StackESI MOV EAX,DWORD PTR [EBP-8] CMP EAX,104 SETNE AL AND AL,AL JZ L_982 PUSH DWORD PTR [EBP-8] PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-24] CALL _LoadEAX L_982: INC _next_lab MOV EAX,_next_lab MOV DWORD PTR [EBP-32], EAX MOV EAX,DWORD PTR [EBP+8] CMP EAX,36 SETE AL AND AL,AL JZ L_983 XOR EAX,EAX PUSH EAX INC _next_lab MOV EAX,_next_lab MOV DWORD PTR [EBP-4], EAX PUSH EAX XOR EAX,EAX PUSH EAX CALL _cond_jump PUSH 24 CALL _sub_eval LEA EAX,DWORD PTR [EBP-8] PUSH EAX LEA EAX,DWORD PTR [EBP-12] PUSH EAX LEA EAX,DWORD PTR [EBP-16] PUSH EAX LEA EAX,DWORD PTR [EBP-24] PUSH EAX CALL _pop PUSH DWORD PTR [EBP-8] PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-24] CALL _LoadEAX PUSH DWORD PTR [EBP-32] XOR EAX,EAX PUSH EAX CALL _jump PUSH DWORD PTR [EBP-4] CALL _gen_label JMP L_984 L_983: CALL _test_not MOV EAX,DWORD PTR [EBP+8] CMP EAX,5 SETE AL AND AL,AL JZ L_985 XOR EAX,EAX PUSH EAX PUSH DWORD PTR [EBP-32] PUSH -1 CALL _cond_jump JMP L_986 L_985: PUSH 1 PUSH DWORD PTR [EBP-32] PUSH -1 CALL _cond_jump L_986: L_984: PUSH 25 CALL _do_oper MOV DWORD PTR [EBP-4], EAX LEA EAX,DWORD PTR [EBP-8] PUSH EAX LEA EAX,DWORD PTR [EBP-12] PUSH EAX LEA EAX,DWORD PTR [EBP-20] PUSH EAX LEA EAX,DWORD PTR [EBP-28] PUSH EAX CALL _pop PUSH DWORD PTR [EBP-8] PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-20] PUSH DWORD PTR [EBP-28] CALL _LoadEAX PUSH DWORD PTR [EBP-32] CALL _gen_label PUSH 104 PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-20] CALL _combine PUSH EAX PUSH DWORD PTR [EBP-28] CALL _push MOV EAX,DWORD PTR [EBP-4] JMP L_987 L_981: CALL _get_value CALL _get_token MOV DWORD PTR [EBP-4], EAX L_988: MOV EAX,DWORD PTR [EBP-4] MOV ESI,OFFSET _optype ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] CMP EAX,1 SETG AL AND AL,AL JZ L_990 MOV EAX,DWORD PTR [EBP-4] MOV ESI,OFFSET _priority ADD ESI,EAX MOV EAX,DWORD PTR [EBP+8] MOV EBX,ESI MOV ESI,OFFSET _priority ADD ESI,EAX MOVSX EAX,BYTE PTR [EBX] CMP AL,BYTE PTR [ESI] SETGE AL AND AL,AL L_990: JZ L_989 MOV EAX,DWORD PTR [EBP-4] MOV ESI,OFFSET _priority ADD ESI,EAX MOV EAX,DWORD PTR [EBP+8] MOV EBX,ESI MOV ESI,OFFSET _priority ADD ESI,EAX MOVSX EAX,BYTE PTR [EBX] CMP AL,BYTE PTR [ESI] SETE AL AND AL,AL JZ L_991 MOV EAX,DWORD PTR [EBP+8] MOV ESI,OFFSET _optype ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] CMP EAX,2 SETE AL AND AL,AL L_991: JZ L_992 PUSH DWORD PTR [EBP+8] CALL _do_lr2op PUSH DWORD PTR [EBP-4] CALL _do_oper JMP L_987 L_992: PUSH DWORD PTR [EBP-4] CALL _do_oper MOV DWORD PTR [EBP-4], EAX JMP L_988 L_989: MOV EAX,DWORD PTR [EBP+8] CMP EAX,25 SETNE AL AND AL,AL JZ L_993 PUSH DWORD PTR [EBP+8] CALL _do_lr2op L_993: MOV EAX,DWORD PTR [EBP-4] L_987: MOV ESP,EBP POP EBP RETN 4 _do_lr2op: PUSH EBP MOV EBP,ESP SUB ESP,68 LEA EAX,DWORD PTR [EBP-16] PUSH EAX LEA EAX,DWORD PTR [EBP-20] PUSH EAX LEA EAX,DWORD PTR [EBP-24] PUSH EAX LEA EAX,DWORD PTR [EBP-32] PUSH EAX CALL _pop LEA EAX,DWORD PTR [EBP-4] PUSH EAX LEA EAX,DWORD PTR [EBP-8] PUSH EAX LEA EAX,DWORD PTR [EBP-12] PUSH EAX LEA EAX,DWORD PTR [EBP-28] PUSH EAX CALL _pop XOR EAX,EAX MOV DWORD PTR [EBP-36], EAX MOV DWORD PTR [EBP-64], EAX MOV DWORD PTR [EBP-60], EAX MOV DWORD PTR [EBP-56], EAX MOV EAX,DWORD PTR [EBP-4] CMP EAX,100 SETE AL AND AL,AL JZ L_994 MOV EAX,1 MOV DWORD PTR [EBP-60], EAX MOV EAX,DWORD PTR [EBP-24] MOV DWORD PTR [EBP-12], EAX L_994: MOV EAX,DWORD PTR [EBP-16] CMP EAX,100 SETE AL AND AL,AL JZ L_995 XOR EAX,EAX MOV DWORD PTR [EBP-60], EAX MOV EAX,DWORD PTR [EBP-12] MOV DWORD PTR [EBP-24], EAX L_995: PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-24] CALL _combine MOV DWORD PTR [EBP-52], EAX MOV EAX,DWORD PTR [EBP-4] CMP EAX,100 SETE AL AND AL,AL JZ L_996 MOV EAX,DWORD PTR [EBP-16] CMP EAX,100 SETE AL AND AL,AL JZ L_997 MOV EAX,DWORD PTR [EBP+8] CMP EAX,5 SETNE AL AND AL,AL JZ L_998 MOV EAX,DWORD PTR [EBP+8] CMP EAX,71 SETNE AL AND AL,AL L_998: L_997: L_996: JZ L_999 MOV EAX,DWORD PTR [EBP+8] JMP L_1001 L_1002: MOV EAX,DWORD PTR [EBP-8] ADD EAX,DWORD PTR [EBP-20] MOV DWORD PTR [EBP-8], EAX JMP L_1000 L_1003: MOV EAX,DWORD PTR [EBP-8] SUB EAX,DWORD PTR [EBP-20] MOV DWORD PTR [EBP-8], EAX JMP L_1000 L_1004: MOV EAX,DWORD PTR [EBP-8] MOV ECX,DWORD PTR [EBP-20] MUL ECX MOV DWORD PTR [EBP-8], EAX JMP L_1000 L_1005: MOV EAX,DWORD PTR [EBP-8] MOV ECX,DWORD PTR [EBP-20] XOR EDX,EDX DIV ECX MOV DWORD PTR [EBP-8], EAX JMP L_1000 L_1006: MOV EAX,DWORD PTR [EBP-8] MOV ECX,DWORD PTR [EBP-20] XOR EDX,EDX DIV ECX MOV EAX,EDX MOV DWORD PTR [EBP-8], EAX JMP L_1000 L_1007: MOV EAX,DWORD PTR [EBP-8] AND EAX,DWORD PTR [EBP-20] MOV DWORD PTR [EBP-8], EAX JMP L_1000 L_1008: MOV EAX,DWORD PTR [EBP-8] OR EAX,DWORD PTR [EBP-20] MOV DWORD PTR [EBP-8], EAX JMP L_1000 L_1009: MOV EAX,DWORD PTR [EBP-8] XOR EAX,DWORD PTR [EBP-20] MOV DWORD PTR [EBP-8], EAX JMP L_1000 L_1010: MOV EAX,DWORD PTR [EBP-8] MOV ECX,DWORD PTR [EBP-20] SHL EAX,CL MOV DWORD PTR [EBP-8], EAX JMP L_1000 L_1011: MOV EAX,DWORD PTR [EBP-8] MOV ECX,DWORD PTR [EBP-20] SHR EAX,CL MOV DWORD PTR [EBP-8], EAX JMP L_1000 L_1012: MOV EAX,DWORD PTR [EBP-8] CMP EAX,DWORD PTR [EBP-20] SETE AL AND AL,AL MOV DWORD PTR [EBP-8], EAX JMP L_1000 L_1013: MOV EAX,DWORD PTR [EBP-8] CMP EAX,DWORD PTR [EBP-20] SETNE AL AND AL,AL MOV DWORD PTR [EBP-8], EAX JMP L_1000 L_1014: MOV EAX,DWORD PTR [EBP-8] CMP EAX,DWORD PTR [EBP-20] SETB AL AND AL,AL MOV DWORD PTR [EBP-8], EAX L_1015: MOV EAX,DWORD PTR [EBP-8] CMP EAX,DWORD PTR [EBP-20] SETBE AL AND AL,AL MOV DWORD PTR [EBP-8], EAX JMP L_1000 L_1016: MOV EAX,DWORD PTR [EBP-8] CMP EAX,DWORD PTR [EBP-20] SETA AL AND AL,AL MOV DWORD PTR [EBP-8], EAX JMP L_1000 L_1017: MOV EAX,DWORD PTR [EBP-8] CMP EAX,DWORD PTR [EBP-20] SETAE AL AND AL,AL MOV DWORD PTR [EBP-8], EAX JMP L_1000 L_1018: CALL _syntax_error JMP L_1000 L_1001: CMP EAX,34 JE L_1017 CMP EAX,35 JE L_1016 CMP EAX,28 JE L_1015 CMP EAX,29 JE L_1014 CMP EAX,1 JE L_1013 CMP EAX,30 JE L_1012 CMP EAX,33 JE L_1011 CMP EAX,27 JE L_1010 CMP EAX,40 JE L_1009 CMP EAX,73 JE L_1008 CMP EAX,7 JE L_1007 CMP EAX,4 JE L_1006 CMP EAX,23 JE L_1005 CMP EAX,11 JE L_1004 CMP EAX,19 JE L_1003 CMP EAX,14 JE L_1002 JMP L_1018 L_1000: JMP L_1019 L_999: MOV EAX,DWORD PTR [EBP-8] MOV DWORD PTR [EBP-40], EAX MOV EAX,DWORD PTR [EBP-12] MOV DWORD PTR [EBP-44], EAX MOV EAX,104 MOV DWORD PTR [EBP-68], EAX MOV EAX,DWORD PTR [EBP-12] OR EAX,DWORD PTR [EBP-24] AND EAX,135 JZ L_1020 MOV EAX,1 MOV DWORD PTR [EBP-56], EAX L_1020: MOV EAX,DWORD PTR [EBP-16] CMP EAX,104 SETE AL AND AL,AL JZ L_1021 MOV EAX,1 MOV DWORD PTR [EBP-60], EAX L_1021: MOV EAX,DWORD PTR [EBP+8] JMP L_1023 L_1024: L_1025: PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-20] PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-32] CALL _push JMP L_1026 L_1027: MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [EBP-36], EAX MOV EAX,14 MOV DWORD PTR [EBP+8], EAX JMP L_1022 L_1028: MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [EBP-36], EAX MOV EAX,19 MOV DWORD PTR [EBP+8], EAX JMP L_1022 L_1029: MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [EBP-36], EAX MOV EAX,11 MOV DWORD PTR [EBP+8], EAX JMP L_1022 L_1030: MOV EAX,23 MOV DWORD PTR [EBP+8], EAX MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [EBP-36], EAX JMP L_1022 L_1031: MOV EAX,4 MOV DWORD PTR [EBP+8], EAX MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [EBP-36], EAX JMP L_1022 L_1032: MOV EAX,27 MOV DWORD PTR [EBP+8], EAX MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [EBP-36], EAX JMP L_1022 L_1033: MOV EAX,33 MOV DWORD PTR [EBP+8], EAX MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [EBP-36], EAX JMP L_1022 L_1034: MOV EAX,7 MOV DWORD PTR [EBP+8], EAX MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [EBP-36], EAX JMP L_1022 L_1035: MOV EAX,73 MOV DWORD PTR [EBP+8], EAX MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [EBP-36], EAX JMP L_1022 L_1036: MOV EAX,40 MOV DWORD PTR [EBP+8], EAX MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [EBP-36], EAX JMP L_1022 L_1023: CMP EAX,39 JE L_1036 CMP EAX,72 JE L_1035 CMP EAX,6 JE L_1034 CMP EAX,32 JE L_1033 CMP EAX,26 JE L_1032 CMP EAX,3 JE L_1031 CMP EAX,22 JE L_1030 CMP EAX,10 JE L_1029 CMP EAX,17 JE L_1028 CMP EAX,13 JE L_1027 CMP EAX,71 JE L_1025 CMP EAX,5 JE L_1024 L_1022: MOV EAX,DWORD PTR [EBP+8] JMP L_1038 L_1039: L_1040: L_1041: L_1042: L_1043: MOV EAX,1 MOV DWORD PTR [EBP-64], EAX JMP L_1037 L_1044: MOV EAX,DWORD PTR [EBP-60] AND EAX,EAX JZ L_1045 MOV EAX,DWORD PTR [EBP-56] AND EAX,EAX JZ L_1046 MOV EAX,78 MOV DWORD PTR [EBP+8], EAX JMP L_1047 L_1046: MOV EAX,35 MOV DWORD PTR [EBP+8], EAX L_1047: JMP L_1048 L_1045: MOV EAX,DWORD PTR [EBP-56] AND EAX,EAX JZ L_1049 MOV EAX,76 MOV DWORD PTR [EBP+8], EAX L_1049: L_1048: JMP L_1037 L_1050: MOV EAX,DWORD PTR [EBP-60] AND EAX,EAX JZ L_1051 MOV EAX,DWORD PTR [EBP-56] AND EAX,EAX JZ L_1052 MOV EAX,79 MOV DWORD PTR [EBP+8], EAX JMP L_1053 L_1052: MOV EAX,34 MOV DWORD PTR [EBP+8], EAX L_1053: JMP L_1054 L_1051: MOV EAX,DWORD PTR [EBP-56] AND EAX,EAX JZ L_1055 MOV EAX,77 MOV DWORD PTR [EBP+8], EAX L_1055: L_1054: JMP L_1037 L_1056: MOV EAX,DWORD PTR [EBP-60] AND EAX,EAX JZ L_1057 MOV EAX,DWORD PTR [EBP-56] AND EAX,EAX JZ L_1058 MOV EAX,76 MOV DWORD PTR [EBP+8], EAX JMP L_1059 L_1058: MOV EAX,29 MOV DWORD PTR [EBP+8], EAX L_1059: JMP L_1060 L_1057: MOV EAX,DWORD PTR [EBP-56] AND EAX,EAX JZ L_1061 MOV EAX,78 MOV DWORD PTR [EBP+8], EAX L_1061: L_1060: JMP L_1037 L_1062: MOV EAX,DWORD PTR [EBP-60] AND EAX,EAX JZ L_1063 MOV EAX,DWORD PTR [EBP-56] AND EAX,EAX JZ L_1064 MOV EAX,77 MOV DWORD PTR [EBP+8], EAX JMP L_1065 L_1064: MOV EAX,28 MOV DWORD PTR [EBP+8], EAX L_1065: JMP L_1066 L_1063: MOV EAX,DWORD PTR [EBP-56] AND EAX,EAX JZ L_1067 MOV EAX,79 MOV DWORD PTR [EBP+8], EAX L_1067: L_1066: JMP L_1037 L_1038: CMP EAX,34 JE L_1062 CMP EAX,35 JE L_1056 CMP EAX,28 JE L_1050 CMP EAX,29 JE L_1044 CMP EAX,33 JE L_1043 CMP EAX,27 JE L_1042 CMP EAX,4 JE L_1041 CMP EAX,23 JE L_1040 CMP EAX,19 JE L_1039 L_1037: MOV EAX,DWORD PTR [EBP-16] CMP EAX,104 SETE AL AND AL,AL JZ L_1068 MOV EAX,DWORD PTR [EBP-64] L_1068: AND EAX,EAX JZ L_1069 CALL _test_not PUSH OFFSET L_lit+4210 CALL _out_inst MOV EAX,105 MOV DWORD PTR [EBP-16], EAX L_1069: MOV EAX,DWORD PTR [EBP-60] AND EAX,EAX JZ L_1070 MOV EAX,DWORD PTR [EBP-64] AND EAX,EAX SETZ AL AND AL,AL L_1070: JZ L_1071 MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [EBP-48], EAX MOV EAX,DWORD PTR [EBP-16] MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-48] MOV DWORD PTR [EBP-16], EAX MOV EAX,DWORD PTR [EBP-8] MOV DWORD PTR [EBP-48], EAX MOV EAX,DWORD PTR [EBP-20] MOV DWORD PTR [EBP-8], EAX MOV EAX,DWORD PTR [EBP-48] MOV DWORD PTR [EBP-20], EAX MOV EAX,DWORD PTR [EBP-12] MOV DWORD PTR [EBP-48], EAX MOV EAX,DWORD PTR [EBP-24] MOV DWORD PTR [EBP-12], EAX MOV EAX,DWORD PTR [EBP-48] MOV DWORD PTR [EBP-24], EAX MOV EAX,DWORD PTR [EBP-28] MOV DWORD PTR [EBP-48], EAX MOV EAX,DWORD PTR [EBP-32] MOV DWORD PTR [EBP-28], EAX MOV EAX,DWORD PTR [EBP-48] MOV DWORD PTR [EBP-32], EAX L_1071: MOV EAX,DWORD PTR [EBP-24] AND EAX,262144 JZ L_1072 CALL _type_error L_1072: MOV EAX,DWORD PTR [EBP+8] CMP EAX,31 SETNE AL AND AL,AL JZ L_1073 PUSH DWORD PTR [EBP-4] PUSH DWORD PTR [EBP-8] PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-28] CALL _LoadEAX L_1073: PUSH DWORD PTR [EBP-16] CALL _CheckStack MOV DWORD PTR [EBP-16], EAX MOV EAX,DWORD PTR [EBP+8] JMP L_1075 L_1076: MOV EAX,DWORD PTR [EBP-16] CMP EAX,DWORD PTR [EBP-4] SETE AL AND AL,AL JZ L_1077 MOV EAX,DWORD PTR [EBP-8] CMP EAX,DWORD PTR [EBP-20] SETE AL AND AL,AL L_1077: JZ L_1078 MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [EBP-68], EAX JMP L_1074 L_1078: MOV EAX,DWORD PTR [EBP-60] AND EAX,EAX JZ L_1079 PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-20] PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-32] CALL _store JMP L_1080 L_1079: PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-20] PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-32] CALL _LoadEAX PUSH DWORD PTR [EBP-4] PUSH DWORD PTR [EBP-8] PUSH DWORD PTR [EBP-12] PUSH DWORD PTR [EBP-28] CALL _store L_1080: JMP L_1074 L_1081: MOV EAX,DWORD PTR [EBP-24] AND EAX,71 JZ L_1082 PUSH OFFSET L_lit+4222 PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-20] PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-32] CALL _GenCodeOper JMP L_1083 L_1082: PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-20] PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-32] CALL _LoadECX PUSH OFFSET L_lit+4232 CALL _out_inst L_1083: XOR EAX,EAX MOV _zero_flag, AL JMP L_1074 L_1084: MOV EAX,DWORD PTR [EBP-24] AND EAX,71 JZ L_1085 PUSH OFFSET L_lit+4244 PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-20] PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-32] CALL _GenCodeOper JMP L_1086 L_1085: PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-20] PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-32] CALL _LoadECX PUSH OFFSET L_lit+4254 CALL _out_inst L_1086: XOR EAX,EAX MOV _zero_flag, AL JMP L_1074 L_1087: PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-20] PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-32] CALL _LoadECX MOV EAX,DWORD PTR [EBP-52] AND EAX,128 JZ L_1088 PUSH OFFSET L_lit+4266 CALL _out_inst JMP L_1089 L_1088: PUSH OFFSET L_lit+4274 CALL _out_inst L_1089: MOV EAX,1 MOV _zero_flag, AL JMP L_1074 L_1090: L_1091: PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-20] PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-32] CALL _LoadECX MOV EAX,DWORD PTR [EBP-52] AND EAX,128 JZ L_1092 PUSH OFFSET L_lit+4283 CALL _out_inst PUSH OFFSET L_lit+4295 CALL _out_inst JMP L_1093 L_1092: PUSH OFFSET L_lit+4303 CALL _out_inst PUSH OFFSET L_lit+4307 CALL _out_inst L_1093: MOV EAX,-1 MOV _zero_flag, AL MOV EAX,DWORD PTR [EBP+8] CMP EAX,4 SETE AL AND AL,AL JZ L_1094 PUSH OFFSET L_lit+4316 CALL _out_inst L_1094: JMP L_1074 L_1095: MOV EAX,DWORD PTR [EBP-24] AND EAX,71 JZ L_1096 PUSH OFFSET L_lit+4328 PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-20] PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-32] CALL _GenCodeOper JMP L_1097 L_1096: PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-20] PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-32] CALL _LoadECX PUSH OFFSET L_lit+4338 CALL _out_inst L_1097: XOR EAX,EAX MOV _zero_flag, AL JMP L_1074 L_1098: MOV EAX,DWORD PTR [EBP-24] AND EAX,71 JZ L_1099 PUSH OFFSET L_lit+4350 PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-20] PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-32] CALL _GenCodeOper JMP L_1100 L_1099: PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-20] PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-32] CALL _LoadECX PUSH OFFSET L_lit+4359 CALL _out_inst L_1100: XOR EAX,EAX MOV _zero_flag, AL JMP L_1074 L_1101: MOV EAX,DWORD PTR [EBP-24] AND EAX,71 JZ L_1102 PUSH OFFSET L_lit+4370 PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-20] PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-32] CALL _GenCodeOper JMP L_1103 L_1102: PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-20] PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-32] CALL _LoadECX PUSH OFFSET L_lit+4380 CALL _out_inst L_1103: XOR EAX,EAX MOV _zero_flag, AL JMP L_1074 L_1104: PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-20] PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-32] CALL _LoadECX PUSH OFFSET L_lit+4392 CALL _out_inst MOV EAX,DWORD PTR [EBP-52] AND EAX,32 JZ L_1105 PUSH OFFSET L_lit+4403 CALL _out_inst JMP L_1106 L_1105: MOV EAX,DWORD PTR [EBP-52] AND EAX,16 JZ L_1107 PUSH OFFSET L_lit+4418 CALL _out_inst L_1107: L_1106: XOR EAX,EAX MOV _zero_flag, AL JMP L_1074 L_1108: PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-20] PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-32] CALL _LoadECX MOV EAX,DWORD PTR [EBP-52] AND EAX,71 JZ L_1109 PUSH OFFSET L_lit+4431 CALL _out_inst JMP L_1110 L_1109: MOV EAX,DWORD PTR [EBP-52] AND EAX,32 JZ L_1111 PUSH OFFSET L_lit+4442 CALL _out_inst JMP L_1112 L_1111: PUSH OFFSET L_lit+4452 CALL _out_inst L_1112: L_1110: XOR EAX,EAX MOV _zero_flag, AL JMP L_1074 L_1113: L_1114: L_1115: L_1116: L_1117: L_1118: L_1119: L_1120: L_1121: L_1122: MOV EAX,DWORD PTR [EBP-24] AND EAX,71 JZ L_1123 PUSH OFFSET L_lit+4462 PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-20] PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-32] CALL _GenCodeOper JMP L_1124 L_1123: PUSH DWORD PTR [EBP-16] PUSH DWORD PTR [EBP-20] PUSH DWORD PTR [EBP-24] PUSH DWORD PTR [EBP-32] CALL _LoadECX PUSH OFFSET L_lit+4472 CALL _out_inst L_1124: MOV EAX,DWORD PTR [EBP+8] JMP L_1126 L_1127: PUSH OFFSET L_lit+4484 CALL _out_inst JMP L_1125 L_1128: PUSH OFFSET L_lit+4492 CALL _out_inst JMP L_1125 L_1129: PUSH OFFSET L_lit+4501 CALL _out_inst JMP L_1125 L_1130: PUSH OFFSET L_lit+4509 CALL _out_inst JMP L_1125 L_1131: PUSH OFFSET L_lit+4518 CALL _out_inst JMP L_1125 L_1132: PUSH OFFSET L_lit+4526 CALL _out_inst JMP L_1125 L_1133: PUSH OFFSET L_lit+4535 CALL _out_inst JMP L_1125 L_1134: PUSH OFFSET L_lit+4543 CALL _out_inst JMP L_1125 L_1135: PUSH OFFSET L_lit+4552 CALL _out_inst JMP L_1125 L_1136: PUSH OFFSET L_lit+4560 CALL _out_inst JMP L_1125 L_1126: CMP EAX,79 JE L_1136 CMP EAX,78 JE L_1135 CMP EAX,77 JE L_1134 CMP EAX,76 JE L_1133 CMP EAX,34 JE L_1132 CMP EAX,35 JE L_1131 CMP EAX,28 JE L_1130 CMP EAX,29 JE L_1129 CMP EAX,1 JE L_1128 CMP EAX,30 JE L_1127 L_1125: PUSH OFFSET L_lit+4569 CALL _out_inst XOR EAX,EAX MOV _zero_flag, AL JMP L_1074 L_1137: CALL _syntax_error JMP L_1074 L_1075: CMP EAX,79 JE L_1122 CMP EAX,78 JE L_1121 CMP EAX,77 JE L_1120 CMP EAX,76 JE L_1119 CMP EAX,34 JE L_1118 CMP EAX,35 JE L_1117 CMP EAX,28 JE L_1116 CMP EAX,29 JE L_1115 CMP EAX,1 JE L_1114 CMP EAX,30 JE L_1113 CMP EAX,33 JE L_1108 CMP EAX,27 JE L_1104 CMP EAX,40 JE L_1101 CMP EAX,73 JE L_1098 CMP EAX,7 JE L_1095 CMP EAX,4 JE L_1091 CMP EAX,23 JE L_1090 CMP EAX,11 JE L_1087 CMP EAX,19 JE L_1084 CMP EAX,14 JE L_1081 CMP EAX,31 JE L_1076 JMP L_1137 L_1074: MOV EAX,DWORD PTR [EBP-36] AND EAX,EAX JZ L_1138 PUSH DWORD PTR [EBP-36] PUSH DWORD PTR [EBP-40] PUSH DWORD PTR [EBP-44] PUSH DWORD PTR [EBP-28] CALL _store L_1138: MOV EAX,DWORD PTR [EBP-68] MOV DWORD PTR [EBP-4], EAX L_1019: PUSH DWORD PTR [EBP-4] PUSH DWORD PTR [EBP-8] PUSH DWORD PTR [EBP-52] PUSH DWORD PTR [EBP-28] CALL _push L_1026: MOV ESP,EBP POP EBP RETN 4 _test_not: PUSH EBP MOV EBP,ESP MOVSX EAX,_not_flag AND EAX,EAX JZ L_1139 PUSH OFFSET L_lit+4579 CALL _out_inst PUSH OFFSET L_lit+4591 CALL _out_inst PUSH OFFSET L_lit+4599 CALL _out_inst XOR EAX,EAX MOV _not_flag, AL XOR EAX,EAX MOV _zero_flag, AL L_1139: POP EBP RETN _store: PUSH EBP MOV EBP,ESP PUSH DWORD PTR [EBP+20] CALL _CheckStack MOV DWORD PTR [EBP+20], EAX MOV EAX,DWORD PTR [EBP+20] JMP L_1141 L_1142: L_1143: L_1144: L_1145: L_1146: PUSH DWORD PTR [EBP+20] CALL _CheckStack MOV DWORD PTR [EBP+20], EAX MOV EAX,DWORD PTR [EBP+12] AND EAX,71 JZ L_1147 PUSH OFFSET L_lit+4609 PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP+16] PUSH DWORD PTR [EBP+12] PUSH DWORD PTR [EBP+8] CALL _GenCodeOper JMP L_1148 L_1147: MOV EAX,DWORD PTR [EBP+12] AND EAX,32 JZ L_1149 PUSH OFFSET L_lit+4620 PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP+16] PUSH DWORD PTR [EBP+12] PUSH DWORD PTR [EBP+8] CALL _GenCodeOper JMP L_1150 L_1149: PUSH OFFSET L_lit+4630 PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP+16] PUSH DWORD PTR [EBP+12] PUSH DWORD PTR [EBP+8] CALL _GenCodeOper L_1150: L_1148: MOV EAX,-1 MOV _zero_flag, AL JMP L_1140 L_1151: PUSH OFFSET L_lit+4640 CALL _line_error JMP L_1140 L_1141: CMP EAX,111 JE L_1146 CMP EAX,108 JE L_1145 CMP EAX,107 JE L_1144 CMP EAX,109 JE L_1143 CMP EAX,103 JE L_1142 JMP L_1151 L_1140: POP EBP RETN 16 _ispStruct: PUSH EBP MOV EBP,ESP MOV EAX,DWORD PTR [EBP+12] AND EAX,7 CMP EAX,1 SETA AL AND AL,AL JZ L_1152 XOR EAX,EAX JMP L_1153 L_1152: MOV EAX,DWORD PTR [EBP+12] AND EAX,512 JZ L_1154 MOV EAX,DWORD PTR [EBP+12] AND EAX,7 L_1154: JZ L_1155 MOV EAX,DWORD PTR [EBP+8] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+16] MOV _strucsize, EAX MOV EAX,1 JMP L_1153 L_1155: XOR EAX,EAX L_1153: POP EBP RETN 8 _isp32: PUSH EBP MOV EBP,ESP MOV EAX,DWORD PTR [EBP+8] AND EAX,6 JZ L_1156 MOV EAX,1 JMP L_1157 L_1156: MOV EAX,DWORD PTR [EBP+8] AND EAX,7 JZ L_1158 MOV EAX,DWORD PTR [EBP+8] AND EAX,64 JMP L_1157 L_1158: XOR EAX,EAX L_1157: POP EBP RETN 4 _isp16: PUSH EBP MOV EBP,ESP MOV EAX,DWORD PTR [EBP+8] AND EAX,7 JZ L_1159 MOV EAX,DWORD PTR [EBP+8] AND EAX,32 JMP L_1160 L_1159: XOR EAX,EAX L_1160: POP EBP RETN 4 _do_asm: PUSH EBP MOV EBP,ESP PUSH DWORD PTR [EBP+8] CALL _code_str POP EBP RETN 4 _init_static: PUSH EBP MOV EBP,ESP SUB ESP,16 MOV EAX,OFFSET L_lit+4655 MOV DWORD PTR [EBP-4], EAX MOV EAX,_global_width AND EAX,EAX JZ L_1161 MOV EAX,OFFSET L_lit+4656 MOV DWORD PTR [EBP-4], EAX JMP L_1162 L_1161: MOVSX EAX,BYTE PTR [EBP+8] CMP EAX,1 SETE AL AND AL,AL JZ L_1163 MOV EAX,OFFSET L_lit+4658 MOV DWORD PTR [EBP-4], EAX JMP L_1164 L_1163: MOVSX EAX,BYTE PTR [EBP+8] CMP EAX,2 SETE AL AND AL,AL JZ L_1165 MOV EAX,OFFSET L_lit+4663 MOV DWORD PTR [EBP-4], EAX JMP L_1166 L_1165: MOVSX EAX,BYTE PTR [EBP+8] CMP EAX,4 SETE AL AND AL,AL JZ L_1167 MOV EAX,OFFSET L_lit+4668 MOV DWORD PTR [EBP-4], EAX L_1167: L_1166: L_1164: L_1162: MOV EAX,DWORD PTR [EBP+16] CMP EAX,103 SETE AL AND AL,AL JZ L_1168 MOV EAX,OFFSET L_lit+4673 MOV DWORD PTR [EBP-8], EAX MOV EAX,_global_width ADD EAX,7 MOV _global_width, EAX JMP L_1169 L_1168: MOV EAX,DWORD PTR [EBP+16] CMP EAX,101 SETE AL AND AL,AL JZ L_1170 MOV EAX,OFFSET L_lit+4681 MOV DWORD PTR [EBP-8], EAX MOV EAX,DWORD PTR [EBP-8] ADD EAX,7 MOV ESI,EAX ;IndexPtr MOVSX EAX,_prefix MOV BYTE PTR [ESI], AL MOV EAX,_global_width ADD EAX,23 MOV _global_width, EAX JMP L_1171 L_1170: MOV EAX,DWORD PTR [EBP+16] CMP EAX,102 SETE AL AND AL,AL JZ L_1172 MOV EAX,OFFSET L_lit+4695 MOV DWORD PTR [EBP-8], EAX MOV ESI,DWORD PTR [EBP-8] MOVSX EAX,_prefix MOV BYTE PTR [ESI], AL MOV EAX,_global_width ADD EAX,4 MOV _global_width, EAX JMP L_1173 L_1172: MOV EAX,OFFSET L_lit+4698 MOV DWORD PTR [EBP-8], EAX MOV EAX,_global_width ADD EAX,6 MOV _global_width, EAX L_1173: L_1171: L_1169: MOV ESI,DWORD PTR [EBP-4] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_1174 PUSH DWORD PTR [EBP-4] CALL _data_str L_1174: MOV ESI,DWORD PTR [EBP-8] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_1175 PUSH DWORD PTR [EBP-8] CALL _data_str L_1175: MOV EAX,DWORD PTR [EBP+16] CMP EAX,103 SETNE AL AND AL,AL JZ L_1176 PUSH DWORD PTR [EBP+12] CALL _data_num JMP L_1177 L_1176: MOV EAX,DWORD PTR [EBP+12] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV ESI,OFFSET _GPool ADD ESI,EAX MOV EAX,ESI MOV DWORD PTR [EBP-12], EAX PUSH DWORD PTR [EBP-12] CALL _data_str XOR EAX,EAX MOV DWORD PTR [EBP-16], EAX L_1178: MOV ESI,DWORD PTR [EBP-12] INC DWORD PTR [EBP-12] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_1179 MOV EAX,DWORD PTR [EBP-16] ADD EAX,1 MOV DWORD PTR [EBP-16], EAX JMP L_1178 L_1179: MOV EAX,_global_width ADD EAX,DWORD PTR [EBP-16] MOV _global_width, EAX L_1177: MOV EAX,_global_width CMP EAX,60 SETA AL AND AL,AL JZ L_1180 XOR EAX,EAX MOV _global_width, EAX PUSH 10 CALL _data_chr L_1180: MOV ESP,EBP POP EBP RETN 12 _end_static: PUSH EBP MOV EBP,ESP MOV EAX,_global_width AND EAX,EAX JZ L_1181 PUSH 10 CALL _data_chr XOR EAX,EAX MOV _global_width, EAX L_1181: POP EBP RETN _gen_global: PUSH EBP MOV EBP,ESP PUSH DWORD PTR [EBP+12] CALL _data_global MOV EAX,DWORD PTR [EBP+12] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] AND EAX,71 JZ L_1182 MOV EAX,DWORD PTR [EBP+8] CMP EAX,4 SETE AL AND AL,AL JZ L_1183 PUSH OFFSET L_lit+4699 CALL _data_str JMP L_1184 L_1183: PUSH OFFSET L_lit+4707 CALL _data_str MOV EAX,DWORD PTR [EBP+8] MOV ECX,4 XOR EDX,EDX DIV ECX PUSH EAX CALL _data_num PUSH OFFSET L_lit+4712 CALL _data_str L_1184: JMP L_1185 L_1182: MOV EAX,DWORD PTR [EBP+12] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] AND EAX,32 JZ L_1186 MOV EAX,DWORD PTR [EBP+8] CMP EAX,2 SETE AL AND AL,AL JZ L_1187 PUSH OFFSET L_lit+4721 CALL _data_str JMP L_1188 L_1187: PUSH OFFSET L_lit+4729 CALL _data_str MOV EAX,DWORD PTR [EBP+8] MOV ECX,2 XOR EDX,EDX DIV ECX PUSH EAX CALL _data_num PUSH OFFSET L_lit+4734 CALL _data_str L_1188: JMP L_1189 L_1186: MOV EAX,DWORD PTR [EBP+12] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] AND EAX,528 JZ L_1190 MOV EAX,DWORD PTR [EBP+8] CMP EAX,1 SETE AL AND AL,AL JZ L_1191 PUSH OFFSET L_lit+4743 CALL _data_str JMP L_1192 L_1191: PUSH OFFSET L_lit+4751 CALL _data_str PUSH DWORD PTR [EBP+8] CALL _data_num PUSH OFFSET L_lit+4756 CALL _data_str L_1192: L_1190: L_1189: L_1185: POP EBP RETN 8 _gen_extern_DASM: PUSH EBP MOV EBP,ESP SUB ESP,4 MOV EAX,DWORD PTR [EBP+8] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,8192 JZ L_1193 PUSH OFFSET L_lit+4765 CALL _data_str PUSH 95 CALL _data_chr MOV EAX,DWORD PTR [EBP+8] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV ESI,OFFSET _GPool ADD ESI,EAX PUSH ESI CALL _data_str PUSH OFFSET L_lit+4772 CALL _data_str PUSH 10 CALL _data_chr JMP L_1194 L_1193: MOV EAX,DWORD PTR [EBP-4] AND EAX,262144 JZ L_1195 PUSH OFFSET L_lit+4779 CALL _code_str PUSH 95 CALL _code_chr MOV EAX,DWORD PTR [EBP+8] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV ESI,OFFSET _GPool ADD ESI,EAX PUSH ESI CALL _code_str PUSH 58 CALL _code_chr PUSH OFFSET L_lit+4786 CALL _code_str PUSH 10 CALL _code_chr L_1195: L_1194: MOV ESP,EBP POP EBP RETN 4 _gen_ext_data_DASM: PUSH EBP MOV EBP,ESP SUB ESP,4 MOV EAX,DWORD PTR [EBP+8] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,262144 JNZ L_1196 PUSH OFFSET L_lit+4792 CALL _data_str PUSH 95 CALL _data_chr MOV EAX,DWORD PTR [EBP+8] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV ESI,OFFSET _GPool ADD ESI,EAX PUSH ESI CALL _data_str MOV EAX,DWORD PTR [EBP-4] AND EAX,71 JZ L_1197 PUSH OFFSET L_lit+4799 CALL _data_str JMP L_1198 L_1197: MOV EAX,DWORD PTR [EBP-4] AND EAX,32 JZ L_1199 PUSH OFFSET L_lit+4803 CALL _data_str JMP L_1200 L_1199: PUSH OFFSET L_lit+4807 CALL _data_str L_1200: L_1198: PUSH 10 CALL _data_chr L_1196: MOV ESP,EBP POP EBP RETN 4 _enter_func: PUSH EBP MOV EBP,ESP PUSH DWORD PTR [EBP+12] CALL _code_global PUSH OFFSET L_lit+4811 CALL _code_str MOV EAX,_fptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] AND EAX,8388608 JZ L_1201 PUSH OFFSET L_lit+4814 CALL _out_inst JMP L_1202 L_1201: PUSH OFFSET L_lit+4821 CALL _out_inst PUSH OFFSET L_lit+4830 CALL _out_inst MOV EAX,DWORD PTR [EBP+8] AND EAX,EAX JZ L_1203 PUSH OFFSET L_lit+4842 CALL _code_str PUSH DWORD PTR [EBP+8] CALL _code_num PUSH 10 CALL _code_chr L_1203: L_1202: POP EBP RETN 8 _end_func: PUSH EBP MOV EBP,ESP MOV EAX,_fptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] AND EAX,8388608 JZ L_1204 PUSH OFFSET L_lit+4852 CALL _out_inst PUSH OFFSET L_lit+4858 CALL _out_inst JMP L_1205 L_1204: MOV EAX,_local_stack AND EAX,EAX JZ L_1206 PUSH OFFSET L_lit+4864 CALL _out_inst L_1206: PUSH OFFSET L_lit+4876 CALL _out_inst MOV EAX,DWORD PTR [EBP+8] AND EAX,EAX JZ L_1207 MOV EAX,_fptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] AND EAX,8192 JZ L_1208 PUSH OFFSET L_lit+4884 CALL _code_str JMP L_1209 L_1208: PUSH OFFSET L_lit+4891 CALL _code_str L_1209: PUSH DWORD PTR [EBP+8] CALL _code_num PUSH 10 CALL _code_chr JMP L_1210 L_1207: MOV EAX,_fptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] AND EAX,8192 JZ L_1211 PUSH OFFSET L_lit+4898 CALL _out_inst JMP L_1212 L_1211: PUSH OFFSET L_lit+4904 CALL _out_inst L_1212: L_1210: L_1205: POP EBP RETN 4 _gen_label: PUSH EBP MOV EBP,ESP MOVSX EAX,_prefix PUSH EAX CALL _code_chr PUSH 95 CALL _code_chr PUSH DWORD PTR [EBP+8] CALL _code_num PUSH OFFSET L_lit+4909 CALL _code_str POP EBP RETN 4 _gen_literal: PUSH EBP MOV EBP,ESP SUB ESP,4 MOV EAX,DWORD PTR [EBP+8] AND EAX,EAX JZ L_1213 XOR EAX,EAX MOV DWORD PTR [EBP-4], EAX MOVSX EAX,_prefix PUSH EAX CALL _data_chr PUSH OFFSET L_lit+4912 CALL _data_str L_1214: MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [EBP+8] SETB AL AND AL,AL JZ L_1215 MOV EAX,DWORD PTR [EBP-4] MOV ECX,16 XOR EDX,EDX DIV ECX MOV EAX,EDX AND EAX,EAX JZ SHORT L_1217 MOV EAX,OFFSET L_lit+4917 JMP SHORT L_1216 L_1217: MOV EAX,OFFSET L_lit+4919 L_1216: PUSH EAX CALL _data_str MOV ESI,DWORD PTR [EBP+12] INC DWORD PTR [EBP+12] XOR EAX,EAX MOV AL,BYTE PTR [ESI] PUSH EAX CALL _data_num INC DWORD PTR [EBP-4] MOV EAX,DWORD PTR [EBP-4] MOV ECX,16 XOR EDX,EDX DIV ECX MOV EAX,EDX AND EAX,EAX JNZ L_1218 PUSH 10 CALL _data_chr L_1218: JMP L_1214 L_1215: MOV EAX,DWORD PTR [EBP-4] MOV ECX,16 XOR EDX,EDX DIV ECX MOV EAX,EDX AND EAX,EAX JZ L_1219 PUSH 10 CALL _data_chr L_1219: L_1213: MOV ESP,EBP POP EBP RETN 8 _call: PUSH EBP MOV EBP,ESP PUSH DWORD PTR [EBP+24] CALL _CheckStack MOV DWORD PTR [EBP+24], EAX MOV EAX,DWORD PTR [EBP+16] AND EAX,8192 JZ L_1220 PUSH OFFSET L_lit+4924 CALL _code_str JMP L_1221 L_1220: PUSH OFFSET L_lit+4941 CALL _code_str L_1221: MOV EAX,DWORD PTR [EBP+24] CMP EAX,100 SETE AL AND AL,AL JZ L_1222 PUSH DWORD PTR [EBP+20] CALL _code_num JMP L_1223 L_1222: PUSH DWORD PTR [EBP+24] PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP+16] PUSH DWORD PTR [EBP+12] CALL _write_oper L_1223: PUSH 10 CALL _code_chr MOV EAX,DWORD PTR [EBP+8] AND EAX,EAX JZ L_1224 MOV EAX,DWORD PTR [EBP+8] SHL EAX,2 MOV DWORD PTR [EBP+8], EAX PUSH OFFSET L_lit+4948 CALL _code_str PUSH DWORD PTR [EBP+8] CALL _code_num PUSH 10 CALL _code_chr L_1224: MOV EAX,-1 MOV _zero_flag, AL POP EBP RETN 20 _jump: PUSH EBP MOV EBP,ESP MOVSX EAX,BYTE PTR [EBP+8] AND EAX,EAX JZ SHORT L_1226 MOV EAX,OFFSET L_lit+4958 JMP SHORT L_1225 L_1226: MOV EAX,OFFSET L_lit+4964 L_1225: PUSH EAX CALL _code_str MOVSX EAX,_prefix PUSH EAX CALL _code_chr PUSH 95 CALL _code_chr PUSH DWORD PTR [EBP+12] CALL _code_num PUSH 10 CALL _code_chr POP EBP RETN 8 _jump_if: PUSH EBP MOV EBP,ESP MOVSX EAX,BYTE PTR [EBP+8] AND EAX,EAX JZ L_1227 MOVSX EAX,BYTE PTR [EBP+16] AND EAX,EAX JZ SHORT L_1229 MOV EAX,OFFSET L_lit+4976 JMP SHORT L_1228 L_1229: MOV EAX,OFFSET L_lit+4982 L_1228: PUSH EAX CALL _code_str JMP L_1230 L_1227: MOVSX EAX,BYTE PTR [EBP+16] AND EAX,EAX JZ SHORT L_1232 MOV EAX,OFFSET L_lit+4987 JMP SHORT L_1231 L_1232: MOV EAX,OFFSET L_lit+4999 L_1231: PUSH EAX CALL _code_str L_1230: MOVSX EAX,_prefix PUSH EAX CALL _code_chr PUSH 95 CALL _code_chr PUSH DWORD PTR [EBP+12] CALL _code_num PUSH 10 CALL _code_chr POP EBP RETN 12 _do_switch: PUSH EBP MOV EBP,ESP PUSH OFFSET L_lit+5010 CALL _code_str MOVSX EAX,_prefix PUSH EAX CALL _code_chr PUSH 95 CALL _code_chr PUSH DWORD PTR [EBP+8] CALL _code_num PUSH 10 CALL _code_chr POP EBP RETN 4 _build_switch: PUSH EBP MOV EBP,ESP L_1233: MOV EAX,_switch_ptr CMP EAX,DWORD PTR [EBP+8] SETA AL AND AL,AL JZ L_1234 PUSH OFFSET L_lit+5016 CALL _code_str DEC _switch_ptr MOV EAX,_switch_ptr SHL EAX,2 MOV ESI,OFFSET _switch_stack ADD ESI,EAX PUSH DWORD PTR [ESI] CALL _code_num PUSH 10 CALL _code_chr PUSH OFFSET L_lit+5026 CALL _code_str MOVSX EAX,_prefix PUSH EAX CALL _code_chr PUSH 95 CALL _code_chr DEC _switch_ptr MOV EAX,_switch_ptr SHL EAX,2 MOV ESI,OFFSET _switch_stack ADD ESI,EAX PUSH DWORD PTR [ESI] CALL _code_num PUSH 10 CALL _code_chr JMP L_1233 L_1234: POP EBP RETN 4 _index_ptr: PUSH EBP MOV EBP,ESP MOV EAX,DWORD PTR [EBP+20] CMP EAX,104 SETE AL AND AL,AL JZ L_1235 PUSH OFFSET L_lit+5031 CALL _out_inst JMP L_1236 L_1235: MOV EAX,DWORD PTR [EBP+20] CMP EAX,109 SETE AL AND AL,AL JZ L_1237 JMP L_1238 L_1237: PUSH DWORD PTR [EBP+20] CALL _CheckStack MOV DWORD PTR [EBP+20], EAX PUSH OFFSET L_lit+5043 CALL _code_str PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP+16] PUSH DWORD PTR [EBP+12] PUSH DWORD PTR [EBP+8] CALL _write_oper PUSH OFFSET L_lit+5053 CALL _code_str L_1239: L_1236: L_1238: POP EBP RETN 16 _index_adr: PUSH EBP MOV EBP,ESP MOV EAX,DWORD PTR [EBP+20] CMP EAX,109 SETNE AL AND AL,AL JZ L_1240 MOV EAX,DWORD PTR [EBP+12] AND EAX,2097152 JZ SHORT L_1242 MOV EAX,OFFSET L_lit+5055 JMP SHORT L_1241 L_1242: MOV EAX,OFFSET L_lit+5072 L_1241: PUSH EAX CALL _code_str PUSH DWORD PTR [EBP+20] PUSH DWORD PTR [EBP+16] PUSH DWORD PTR [EBP+12] PUSH DWORD PTR [EBP+8] CALL _write_oper PUSH OFFSET L_lit+5082 CALL _code_str L_1240: POP EBP RETN 16 _code_global: PUSH EBP MOV EBP,ESP SUB ESP,4 MOV EAX,DWORD PTR [EBP+8] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV ESI,OFFSET _GPool ADD ESI,EAX MOV EAX,ESI MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP+8] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] AND EAX,4096 JNZ L_1243 PUSH OFFSET L_lit+5084 CALL _code_str L_1243: PUSH 95 CALL _code_chr PUSH DWORD PTR [EBP-4] CALL _code_str MOV ESP,EBP POP EBP RETN 4 _data_global: PUSH EBP MOV EBP,ESP SUB ESP,4 MOV EAX,DWORD PTR [EBP+8] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI+8] MOV ESI,OFFSET _GPool ADD ESI,EAX MOV EAX,ESI MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP+8] MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] AND EAX,4096 JNZ L_1244 PUSH OFFSET L_lit+5092 CALL _data_str L_1244: PUSH 95 CALL _data_chr PUSH DWORD PTR [EBP-4] CALL _data_str MOV ESP,EBP POP EBP RETN 4 _code_chr: PUSH EBP MOV EBP,ESP MOV EAX,_pc INC _pc MOV ESI,_pcodebuf ADD ESI,EAX MOVSX EAX,BYTE PTR [EBP+8] MOV BYTE PTR [ESI], AL MOV EAX,_pc CMP EAX,511999 SETAE AL AND AL,AL JZ L_1245 PUSH OFFSET L_lit+5100 MOV EDI, 0 CALL _printf ADD ESP,4 PUSH 1 CALL _exit L_1245: POP EBP RETN 4 _code_str: PUSH EBP MOV EBP,ESP L_1246: MOV ESI,DWORD PTR [EBP+8] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_1247 MOV ESI,DWORD PTR [EBP+8] INC DWORD PTR [EBP+8] MOVSX EAX,BYTE PTR [ESI] PUSH EAX CALL _code_chr JMP L_1246 L_1247: POP EBP RETN 4 _code_num: PUSH EBP MOV EBP,ESP SUB ESP,14 MOV EAX,DWORD PTR [EBP+8] AND EAX,-2147483648 JZ L_1248 PUSH 45 CALL _code_chr NEG DWORD PTR [EBP+8] MOV EAX,DWORD PTR [EBP-8] L_1248: XOR EAX,EAX MOV DWORD PTR [EBP-14], EAX L_1249: MOV EAX,DWORD PTR [EBP-14] INC DWORD PTR [EBP-14] LEA ESI,BYTE PTR [EBP-10] ADD ESI,EAX MOV EAX,DWORD PTR [EBP+8] MOV ECX,10 XOR EDX,EDX DIV ECX MOV EAX,EDX ADD EAX,48 MOV BYTE PTR [ESI], AL L_1250: MOV EAX,DWORD PTR [EBP+8] MOV ECX,10 XOR EDX,EDX DIV ECX MOV DWORD PTR [EBP+8], EAX AND EAX,EAX JNZ L_1249 L_1251: L_1252: MOV EAX,DWORD PTR [EBP-14] AND EAX,EAX JZ L_1253 DEC DWORD PTR [EBP-14] MOV EAX,DWORD PTR [EBP-14] LEA ESI,BYTE PTR [EBP-10] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] PUSH EAX CALL _code_chr JMP L_1252 L_1253: MOV ESP,EBP POP EBP RETN 4 _data_chr: PUSH EBP MOV EBP,ESP MOV EAX,_pd INC _pd MOV ESI,OFFSET _databuf ADD ESI,EAX MOVSX EAX,BYTE PTR [EBP+8] MOV BYTE PTR [ESI], AL MOV EAX,_pd CMP EAX,4095 SETA AL AND AL,AL JZ L_1254 PUSH OFFSET _databuf PUSH 4096 PUSH 1 PUSH _asm_fh CALL _fwrite XOR EAX,EAX MOV _pd, EAX L_1254: POP EBP RETN 4 _data_str: PUSH EBP MOV EBP,ESP L_1255: MOV ESI,DWORD PTR [EBP+8] MOVSX EAX,BYTE PTR [ESI] AND EAX,EAX JZ L_1256 MOV ESI,DWORD PTR [EBP+8] INC DWORD PTR [EBP+8] MOVSX EAX,BYTE PTR [ESI] PUSH EAX CALL _data_chr JMP L_1255 L_1256: POP EBP RETN 4 _data_num: PUSH EBP MOV EBP,ESP SUB ESP,14 MOV EAX,DWORD PTR [EBP+8] AND EAX,-2147483648 JZ L_1257 PUSH 45 CALL _data_chr NEG DWORD PTR [EBP+8] MOV EAX,DWORD PTR [EBP-8] L_1257: XOR EAX,EAX MOV DWORD PTR [EBP-14], EAX L_1258: MOV EAX,DWORD PTR [EBP-14] INC DWORD PTR [EBP-14] LEA ESI,BYTE PTR [EBP-10] ADD ESI,EAX MOV EAX,DWORD PTR [EBP+8] MOV ECX,10 XOR EDX,EDX DIV ECX MOV EAX,EDX ADD EAX,48 MOV BYTE PTR [ESI], AL L_1259: MOV EAX,DWORD PTR [EBP+8] MOV ECX,10 XOR EDX,EDX DIV ECX MOV DWORD PTR [EBP+8], EAX AND EAX,EAX JNZ L_1258 L_1260: L_1261: MOV EAX,DWORD PTR [EBP-14] AND EAX,EAX JZ L_1262 DEC DWORD PTR [EBP-14] MOV EAX,DWORD PTR [EBP-14] LEA ESI,BYTE PTR [EBP-10] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] PUSH EAX CALL _data_chr JMP L_1261 L_1262: MOV ESP,EBP POP EBP RETN 4 _put_num: PUSH EBP MOV EBP,ESP SUB ESP,14 MOV EAX,DWORD PTR [EBP+12] AND EAX,-2147483648 JZ L_1263 PUSH 45 PUSH DWORD PTR [EBP+8] CALL _fputc NEG DWORD PTR [EBP+12] MOV EAX,DWORD PTR [EBP-12] L_1263: XOR EAX,EAX MOV DWORD PTR [EBP-14], EAX L_1264: MOV EAX,DWORD PTR [EBP-14] INC DWORD PTR [EBP-14] LEA ESI,BYTE PTR [EBP-10] ADD ESI,EAX MOV EAX,DWORD PTR [EBP+12] MOV ECX,10 XOR EDX,EDX DIV ECX MOV EAX,EDX ADD EAX,48 MOV BYTE PTR [ESI], AL L_1265: MOV EAX,DWORD PTR [EBP+12] MOV ECX,10 XOR EDX,EDX DIV ECX MOV DWORD PTR [EBP+12], EAX AND EAX,EAX JNZ L_1264 L_1266: L_1267: MOV EAX,DWORD PTR [EBP-14] AND EAX,EAX JZ L_1268 DEC DWORD PTR [EBP-14] MOV EAX,DWORD PTR [EBP-14] LEA ESI,BYTE PTR [EBP-10] ADD ESI,EAX MOVSX EAX,BYTE PTR [ESI] PUSH EAX PUSH DWORD PTR [EBP+8] CALL _fputc JMP L_1267 L_1268: MOV ESP,EBP POP EBP RETN 8 _statement: PUSH EBP MOV EBP,ESP SUB ESP,16 CALL _test_exit MOV EAX,DWORD PTR [EBP+8] JMP L_1270 L_1271: CALL _check_func JMP L_1272 L_1273: L_1274: CALL _get_token MOV DWORD PTR [EBP+8], EAX CMP EAX,74 SETNE AL AND AL,AL JZ L_1275 PUSH DWORD PTR [EBP+8] CALL _statement JMP L_1274 L_1275: JMP L_1269 L_1276: L_1277: L_1278: L_1279: L_1280: L_1281: L_1282: L_1283: L_1284: L_1285: L_1286: L_1287: PUSH DWORD PTR [EBP+8] XOR EAX,EAX PUSH EAX CALL _declare JMP L_1269 L_1288: CALL _check_func PUSH 8 CALL _expect PUSH 9 XOR EAX,EAX PUSH EAX CALL _eval XOR EAX,EAX PUSH EAX INC _next_lab MOV EAX,_next_lab MOV DWORD PTR [EBP-4], EAX PUSH EAX PUSH -1 CALL _cond_jump CALL _get_token PUSH EAX CALL _statement PUSH 48 CALL _test_token AND EAX,EAX JZ L_1289 INC _next_lab MOV EAX,_next_lab MOV DWORD PTR [EBP-8], EAX PUSH EAX CALL _test_jump PUSH DWORD PTR [EBP-4] CALL _gen_label MOV EAX,DWORD PTR [EBP-8] MOV DWORD PTR [EBP-4], EAX CALL _get_token PUSH EAX CALL _statement L_1289: CALL _test_exit PUSH DWORD PTR [EBP-4] CALL _gen_label JMP L_1269 L_1290: CALL _check_func MOV EAX,_loop_ptr SHL EAX,2 MOV ESI,OFFSET _continue_stack ADD ESI,EAX INC _next_lab MOV EAX,_next_lab MOV DWORD PTR [EBP-4], EAX MOV DWORD PTR [ESI], EAX PUSH EAX CALL _gen_label MOV EAX,_loop_ptr INC _loop_ptr SHL EAX,2 MOV ESI,OFFSET _break_stack ADD ESI,EAX INC _next_lab MOV EAX,_next_lab MOV DWORD PTR [EBP-8], EAX MOV DWORD PTR [ESI], EAX PUSH 8 CALL _expect PUSH 9 XOR EAX,EAX PUSH EAX CALL _eval XOR EAX,EAX PUSH EAX PUSH DWORD PTR [EBP-8] PUSH -1 CALL _cond_jump CALL _get_token PUSH EAX CALL _statement PUSH DWORD PTR [EBP-4] CALL _test_jump PUSH DWORD PTR [EBP-8] CALL _gen_label DEC _loop_ptr MOV EAX,_loop_ptr JMP L_1269 L_1291: CALL _check_func INC _next_lab MOV EAX,_next_lab MOV DWORD PTR [EBP-4], EAX PUSH EAX CALL _gen_label MOV EAX,_loop_ptr SHL EAX,2 MOV ESI,OFFSET _continue_stack ADD ESI,EAX INC _next_lab MOV EAX,_next_lab MOV DWORD PTR [EBP-8], EAX MOV DWORD PTR [ESI], EAX MOV EAX,_loop_ptr INC _loop_ptr SHL EAX,2 MOV ESI,OFFSET _break_stack ADD ESI,EAX INC _next_lab MOV EAX,_next_lab MOV DWORD PTR [EBP-12], EAX MOV DWORD PTR [ESI], EAX CALL _get_token PUSH EAX CALL _statement PUSH DWORD PTR [EBP-8] CALL _gen_label PUSH 69 CALL _expect PUSH 25 XOR EAX,EAX PUSH EAX CALL _eval PUSH 1 PUSH DWORD PTR [EBP-4] PUSH -1 CALL _cond_jump PUSH DWORD PTR [EBP-12] CALL _gen_label DEC _loop_ptr MOV EAX,_loop_ptr JMP L_1269 L_1292: CALL _check_func PUSH 8 CALL _expect PUSH 25 CALL _test_token AND EAX,EAX JNZ L_1293 PUSH 25 PUSH -1 CALL _eval L_1293: INC _next_lab MOV EAX,_next_lab MOV DWORD PTR [EBP-4], EAX MOV DWORD PTR [EBP-16], EAX PUSH EAX CALL _gen_label MOV EAX,_loop_ptr SHL EAX,2 MOV ESI,OFFSET _break_stack ADD ESI,EAX INC _next_lab MOV EAX,_next_lab MOV DWORD PTR [EBP-8], EAX MOV DWORD PTR [ESI], EAX PUSH 25 CALL _test_token AND EAX,EAX JNZ L_1294 PUSH 25 XOR EAX,EAX PUSH EAX CALL _eval XOR EAX,EAX PUSH EAX PUSH DWORD PTR [EBP-8] PUSH -1 CALL _cond_jump L_1294: PUSH 9 CALL _test_token AND EAX,EAX JNZ L_1295 INC _next_lab MOV EAX,_next_lab MOV DWORD PTR [EBP-12], EAX PUSH EAX XOR EAX,EAX PUSH EAX CALL _jump INC _next_lab MOV EAX,_next_lab MOV DWORD PTR [EBP-16], EAX PUSH EAX CALL _gen_label PUSH 9 PUSH -1 CALL _eval PUSH DWORD PTR [EBP-4] XOR EAX,EAX PUSH EAX CALL _jump PUSH DWORD PTR [EBP-12] CALL _gen_label L_1295: MOV EAX,_loop_ptr INC _loop_ptr SHL EAX,2 MOV ESI,OFFSET _continue_stack ADD ESI,EAX MOV EAX,DWORD PTR [EBP-16] MOV DWORD PTR [ESI], EAX CALL _get_token PUSH EAX CALL _statement PUSH DWORD PTR [EBP-16] CALL _test_jump PUSH DWORD PTR [EBP-8] CALL _gen_label DEC _loop_ptr MOV EAX,_loop_ptr JMP L_1269 L_1296: CALL _check_func MOV EAX,_sdefault MOV DWORD PTR [EBP-4], EAX MOV EAX,_loop_ptr INC _loop_ptr SHL EAX,2 MOV ESI,OFFSET _break_stack ADD ESI,EAX INC _next_lab MOV EAX,_next_lab MOV DWORD PTR [EBP-8], EAX MOV _sdefault, EAX MOV DWORD PTR [ESI], EAX PUSH 8 CALL _expect PUSH 9 PUSH -1 CALL _eval INC _next_lab MOV EAX,_next_lab MOV DWORD PTR [EBP-12], EAX PUSH EAX CALL _do_switch MOV EAX,_switch_ptr MOV DWORD PTR [EBP-16], EAX CALL _get_token PUSH EAX CALL _statement PUSH DWORD PTR [EBP-8] CALL _test_jump PUSH DWORD PTR [EBP-12] CALL _gen_label PUSH DWORD PTR [EBP-16] CALL _build_switch MOV EAX,_sdefault CMP EAX,DWORD PTR [EBP-4] SETNE AL AND AL,AL JZ L_1297 PUSH _sdefault PUSH -1 CALL _jump L_1297: PUSH DWORD PTR [EBP-8] CALL _gen_label DEC _loop_ptr MOV EAX,DWORD PTR [EBP-4] MOV _sdefault, EAX JMP L_1269 L_1298: CALL _check_switch MOV DWORD PTR [EBP-4], EAX LEA EAX,DWORD PTR [EBP-8] PUSH EAX LEA EAX,DWORD PTR [EBP-12] PUSH EAX CALL _get_constant MOV EAX,_switch_ptr INC _switch_ptr SHL EAX,2 MOV ESI,OFFSET _switch_stack ADD ESI,EAX MOV EAX,DWORD PTR [EBP-4] MOV DWORD PTR [ESI], EAX MOV EAX,_switch_ptr INC _switch_ptr SHL EAX,2 MOV ESI,OFFSET _switch_stack ADD ESI,EAX MOV EAX,DWORD PTR [EBP-12] MOV DWORD PTR [ESI], EAX MOV EAX,_switch_ptr CMP EAX,160 SETAE AL AND AL,AL JZ L_1299 PUSH OFFSET L_lit+5141 CALL _fatal_error L_1299: PUSH 24 CALL _expect JMP L_1269 L_1300: CALL _check_switch MOV _sdefault, EAX PUSH 24 CALL _expect JMP L_1269 L_1301: CALL _check_func PUSH 25 CALL _test_token AND EAX,EAX JNZ L_1302 PUSH 25 PUSH -1 CALL _eval L_1302: MOV EAX,_exit_label AND EAX,EAX JZ SHORT L_1304 MOV EAX,_exit_label JMP SHORT L_1303 L_1304: INC _next_lab MOV EAX,_next_lab MOV _exit_label, EAX L_1303: MOV _exit_flag, EAX JMP L_1269 L_1305: PUSH OFFSET _break_stack CALL _check_loop JMP L_1269 L_1306: PUSH OFFSET _continue_stack CALL _check_loop JMP L_1269 L_1307: CALL _check_func CALL _get_token CMP EAX,103 SETNE AL AND AL,AL JZ L_1308 CALL _syntax_error JMP L_1269 L_1308: CALL _lookup_local MOV DWORD PTR [EBP-4], EAX AND EAX,EAX JZ L_1309 MOV EAX,DWORD PTR [EBP-4] AND EAX,524288 JNZ L_1310 CALL _type_error L_1310: JMP L_1311 L_1309: PUSH 4718592 INC _next_lab PUSH _next_lab CALL _define_symbol L_1311: MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX PUSH DWORD PTR [ESI+20] PUSH -1 CALL _jump JMP L_1269 L_1312: MOV EAX,_in_function AND EAX,EAX JNZ L_1313 PUSH DWORD PTR [EBP+8] XOR EAX,EAX PUSH EAX CALL _declare JMP L_1269 L_1313: MOV ESI,_input_ptr MOVSX EAX,BYTE PTR [ESI] CMP EAX,58 SETE AL AND AL,AL JZ L_1314 CALL _check_func INC _input_ptr MOV EAX,_input_ptr CALL _lookup_local AND EAX,EAX JZ L_1315 MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX MOV EAX,DWORD PTR [ESI] AND EAX,-16385 MOV DWORD PTR [ESI], EAX JMP L_1316 L_1315: PUSH 524288 INC _next_lab PUSH _next_lab CALL _define_symbol L_1316: MOV EAX,_sptr MOV ECX,24 MUL ECX MOV ESI,OFFSET _symtab ADD ESI,EAX PUSH DWORD PTR [ESI+20] CALL _gen_label JMP L_1269 L_1314: L_1317: CALL _check_func PUSH DWORD PTR [EBP+8] CALL _unget_token PUSH 25 PUSH -1 CALL _eval JMP L_1269 L_1270: CMP EAX,103 JE L_1312 CMP EAX,52 JE L_1307 CMP EAX,45 JE L_1306 CMP EAX,41 JE L_1305 CMP EAX,58 JE L_1301 CMP EAX,46 JE L_1300 CMP EAX,42 JE L_1298 CMP EAX,63 JE L_1296 CMP EAX,51 JE L_1292 CMP EAX,47 JE L_1291 CMP EAX,69 JE L_1290 CMP EAX,55 JE L_1288 CMP EAX,68 JE L_1287 CMP EAX,53 JE L_1286 CMP EAX,57 JE L_1285 CMP EAX,49 JE L_1284 CMP EAX,62 JE L_1283 CMP EAX,61 JE L_1282 CMP EAX,66 JE L_1281 CMP EAX,59 JE L_1280 CMP EAX,56 JE L_1279 CMP EAX,64 JE L_1278 CMP EAX,43 JE L_1277 CMP EAX,54 JE L_1276 CMP EAX,70 JE L_1273 CMP EAX,25 JE L_1271 JMP L_1317 L_1269: L_1272: MOV ESP,EBP POP EBP RETN 4 _compile: PUSH EBP MOV EBP,ESP MOV EAX,OFFSET _define_pool MOV _define_ptr, EAX MOV EAX,OFFSET _line_in MOV _input_ptr, EAX MOV ESI,EAX ;IndexPtr XOR EAX,EAX MOV BYTE PTR [ESI], AL MOVSX EAX,_fGen AND EAX,EAX JNZ L_1318 PUSH OFFSET L_lit+5163 CALL _code_str PUSH OFFSET L_lit+5172 CALL _data_str L_1318: L_1319: CALL _get_token PUSH EAX CALL _statement JMP L_1319 L_1320: POP EBP RETN PUBLIC _main: PUSH EBP MOV EBP,ESP SUB ESP,16 PUSH 125 PUSH OFFSET _pcodebuf CALL FWORD PTR _AllocPage MOV DWORD PTR [EBP-8], EAX MOV EAX,DWORD PTR [EBP-8] AND EAX,EAX JZ L_1321 PUSH OFFSET L_lit+5180 PUSH 512000 MOV EDI, 4 CALL _printf ADD ESP,8 L_1321: MOV EAX,2 MOV _list_fh, EAX MOV EAX,1 MOV DWORD PTR [EBP-4], EAX L_1322: MOV EAX,DWORD PTR [EBP-4] CMP EAX,DWORD PTR [EBP+12] SETB AL AND AL,AL JZ L_1323 JMP SHORT L_1324 L_1325: INC DWORD PTR [EBP-4] MOV EAX,DWORD PTR [EBP-4] JMP SHORT L_1322 L_1324: MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 MOV ESI,DWORD PTR [EBP+8] ADD ESI,EAX MOV EAX,DWORD PTR [ESI] MOV DWORD PTR [EBP-12], EAX MOV ESI,DWORD PTR [EBP-12] MOVSX EAX,BYTE PTR [ESI] CMP EAX,47 SETE AL AND AL,AL JZ L_1326 MOV ESI,DWORD PTR [EBP-12] INC DWORD PTR [EBP-12] MOV EAX,DWORD PTR [ESI] MOV ESI,DWORD PTR [EBP-12] MOVSX EAX,BYTE PTR [ESI] JMP L_1328 L_1329: L_1330: MOV EAX,1 MOV _fQuiet, AL JMP L_1327 L_1331: L_1332: MOV EAX,1 MOV _fList, AL JMP L_1327 L_1333: L_1334: MOV EAX,1 MOV _fSource, AL JMP L_1327 L_1335: L_1336: MOV EAX,1 MOV _fGen, AL JMP L_1327 L_1337: L_1338: MOV EAX,1 MOV _fNoOpt, AL JMP L_1327 L_1339: L_1340: MOV EAX,1 MOV _fOptS, AL JMP L_1327 L_1341: L_1342: MOV EAX,1 MOV _fWarnings, AL JMP L_1327 L_1343: L_1344: MOV ESI,DWORD PTR [EBP-12] INC DWORD PTR [EBP-12] MOV EAX,DWORD PTR [ESI] MOV ESI,DWORD PTR [EBP-12] MOVSX EAX,BYTE PTR [ESI] PUSH EAX CALL _is_alpha AND EAX,EAX JNZ L_1345 PUSH OFFSET L_lit+5222 CALL _fatal_error L_1345: MOV ESI,DWORD PTR [EBP-12] MOVSX EAX,BYTE PTR [ESI] MOV _prefix, AL JMP L_1327 L_1346: PUSH OFFSET L_lit+5253 CALL _fatal_error JMP L_1327 L_1328: CMP EAX,112 JE L_1344 CMP EAX,80 JE L_1343 CMP EAX,119 JE L_1342 CMP EAX,87 JE L_1341 CMP EAX,111 JE L_1340 CMP EAX,79 JE L_1339 CMP EAX,110 JE L_1338 CMP EAX,78 JE L_1337 CMP EAX,103 JE L_1336 CMP EAX,71 JE L_1335 CMP EAX,101 JE L_1334 CMP EAX,69 JE L_1333 CMP EAX,108 JE L_1332 CMP EAX,76 JE L_1331 CMP EAX,115 JE L_1330 CMP EAX,83 JE L_1329 JMP L_1346 L_1327: JMP L_1347 L_1326: MOV EAX,_source_fh AND EAX,EAX JNZ L_1348 PUSH OFFSET _srcname MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 MOV ESI,DWORD PTR [EBP+8] ADD ESI,EAX PUSH DWORD PTR [ESI] CALL _copystring MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 MOV ESI,DWORD PTR [EBP+8] ADD ESI,EAX PUSH DWORD PTR [ESI] PUSH OFFSET L_lit+5268 CALL _fopen MOV _source_fh, EAX JMP L_1349 L_1348: MOV EAX,_asm_fh AND EAX,EAX JNZ L_1350 PUSH OFFSET _asmname MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 MOV ESI,DWORD PTR [EBP+8] ADD ESI,EAX PUSH DWORD PTR [ESI] CALL _copystring MOV EAX,DWORD PTR [EBP-4] SHL EAX,2 MOV ESI,DWORD PTR [EBP+8] ADD ESI,EAX PUSH DWORD PTR [ESI] PUSH OFFSET L_lit+5270 CALL _fopen MOV _asm_fh, EAX AND EAX,EAX JNZ L_1351 PUSH OFFSET L_lit+5272 PUSH 2 CALL _fputs PUSH -1 CALL _exit L_1351: JMP L_1352 L_1350: PUSH OFFSET L_lit+5300 CALL _fatal_error L_1352: L_1349: L_1347: JMP L_1325 L_1323: MOV EAX,_source_fh AND EAX,EAX JNZ L_1353 PUSH OFFSET L_lit+5320 PUSH 2 CALL _fputs PUSH OFFSET L_lit+5356 PUSH 2 CALL _fputs PUSH OFFSET L_lit+5405 PUSH 2 CALL _fputs PUSH OFFSET L_lit+5449 PUSH 2 CALL _fputs PUSH OFFSET L_lit+5482 PUSH 2 CALL _fputs PUSH OFFSET L_lit+5524 PUSH 2 CALL _fputs PUSH OFFSET L_lit+5561 PUSH 2 CALL _fputs PUSH OFFSET L_lit+5583 PUSH 2 CALL _fputs PUSH OFFSET L_lit+5609 PUSH 2 CALL _fputs PUSH OFFSET L_lit+5627 PUSH 2 CALL _fputs PUSH OFFSET L_lit+5672 PUSH 2 CALL _fputs PUSH -1 CALL _exit L_1353: MOV EAX,_asm_fh AND EAX,EAX JNZ L_1354 PUSH OFFSET _asmname PUSH OFFSET _srcname CALL _copystring MOV EAX,OFFSET _asmname MOV DWORD PTR [EBP-16], EAX L_1355: MOV ESI,DWORD PTR [EBP-16] MOVSX EAX,BYTE PTR [ESI] CMP EAX,46 SETNE AL AND AL,AL JZ L_1357 MOV ESI,DWORD PTR [EBP-16] MOVSX EAX,BYTE PTR [ESI] XOR ECX,ECX CMP EAX,ECX SETNE AL AND AL,AL L_1357: JZ L_1356 MOV ESI,DWORD PTR [EBP-16] INC DWORD PTR [EBP-16] MOV EAX,DWORD PTR [ESI] JMP L_1355 L_1356: MOVSX EAX,_fGen AND EAX,EAX JZ L_1358 MOV ESI,DWORD PTR [EBP-16] INC DWORD PTR [EBP-16] MOV EAX,46 MOV BYTE PTR [ESI], AL MOV ESI,DWORD PTR [EBP-16] INC DWORD PTR [EBP-16] MOV EAX,68 MOV BYTE PTR [ESI], AL MOV ESI,DWORD PTR [EBP-16] INC DWORD PTR [EBP-16] MOV EAX,65 MOV BYTE PTR [ESI], AL MOV ESI,DWORD PTR [EBP-16] INC DWORD PTR [EBP-16] MOV EAX,83 MOV BYTE PTR [ESI], AL JMP L_1359 L_1358: MOV ESI,DWORD PTR [EBP-16] INC DWORD PTR [EBP-16] MOV EAX,46 MOV BYTE PTR [ESI], AL MOV ESI,DWORD PTR [EBP-16] INC DWORD PTR [EBP-16] MOV EAX,65 MOV BYTE PTR [ESI], AL MOV ESI,DWORD PTR [EBP-16] INC DWORD PTR [EBP-16] MOV EAX,83 MOV BYTE PTR [ESI], AL MOV ESI,DWORD PTR [EBP-16] INC DWORD PTR [EBP-16] MOV EAX,77 MOV BYTE PTR [ESI], AL L_1359: MOV ESI,DWORD PTR [EBP-16] XOR EAX,EAX MOV BYTE PTR [ESI], AL PUSH OFFSET _asmname PUSH OFFSET L_lit+5706 CALL _fopen MOV _asm_fh, EAX AND EAX,EAX JNZ L_1360 PUSH OFFSET L_lit+5708 PUSH 2 CALL _fputs PUSH -1 CALL _exit L_1360: L_1354: MOV EAX,1 MOV _fASMOpen, AL MOVSX EAX,_fList AND EAX,EAX JZ L_1361 PUSH OFFSET _lstname PUSH OFFSET _srcname CALL _copystring MOV EAX,OFFSET _lstname MOV DWORD PTR [EBP-16], EAX L_1362: MOV ESI,DWORD PTR [EBP-16] MOVSX EAX,BYTE PTR [ESI] CMP EAX,46 SETNE AL AND AL,AL JZ L_1364 MOV ESI,DWORD PTR [EBP-16] MOVSX EAX,BYTE PTR [ESI] XOR ECX,ECX CMP EAX,ECX SETNE AL AND AL,AL L_1364: JZ L_1363 MOV ESI,DWORD PTR [EBP-16] INC DWORD PTR [EBP-16] MOV EAX,DWORD PTR [ESI] JMP L_1362 L_1363: MOV ESI,DWORD PTR [EBP-16] INC DWORD PTR [EBP-16] MOV EAX,46 MOV BYTE PTR [ESI], AL MOV ESI,DWORD PTR [EBP-16] INC DWORD PTR [EBP-16] MOV EAX,76 MOV BYTE PTR [ESI], AL MOV ESI,DWORD PTR [EBP-16] INC DWORD PTR [EBP-16] MOV EAX,83 MOV BYTE PTR [ESI], AL MOV ESI,DWORD PTR [EBP-16] INC DWORD PTR [EBP-16] MOV EAX,84 MOV BYTE PTR [ESI], AL MOV ESI,DWORD PTR [EBP-16] XOR EAX,EAX MOV BYTE PTR [ESI], AL PUSH OFFSET _lstname PUSH OFFSET L_lit+5737 CALL _fopen MOV _list_fh, EAX AND EAX,EAX JNZ L_1365 PUSH OFFSET L_lit+5739 CALL _fatal_error JMP L_1366 L_1365: MOV EAX,1 MOV _fLISTOpen, AL L_1366: L_1361: MOVSX EAX,_fGen AND EAX,EAX JZ L_1367 PUSH OFFSET _codename PUSH OFFSET _srcname CALL _copystring MOV EAX,OFFSET _codename MOV DWORD PTR [EBP-16], EAX L_1368: MOV ESI,DWORD PTR [EBP-16] MOVSX EAX,BYTE PTR [ESI] CMP EAX,46 SETNE AL AND AL,AL JZ L_1370 MOV ESI,DWORD PTR [EBP-16] MOVSX EAX,BYTE PTR [ESI] XOR ECX,ECX CMP EAX,ECX SETNE AL AND AL,AL L_1370: JZ L_1369 MOV ESI,DWORD PTR [EBP-16] INC DWORD PTR [EBP-16] MOV EAX,DWORD PTR [ESI] JMP L_1368 L_1369: MOV ESI,DWORD PTR [EBP-16] INC DWORD PTR [EBP-16] MOV EAX,46 MOV BYTE PTR [ESI], AL MOV ESI,DWORD PTR [EBP-16] INC DWORD PTR [EBP-16] MOV EAX,67 MOV BYTE PTR [ESI], AL MOV ESI,DWORD PTR [EBP-16] INC DWORD PTR [EBP-16] MOV EAX,65 MOV BYTE PTR [ESI], AL MOV ESI,DWORD PTR [EBP-16] INC DWORD PTR [EBP-16] MOV EAX,83 MOV BYTE PTR [ESI], AL MOV ESI,DWORD PTR [EBP-16] XOR EAX,EAX MOV BYTE PTR [ESI], AL PUSH OFFSET _codename PUSH OFFSET L_lit+5761 CALL _fopen MOV _code_fh, EAX AND EAX,EAX JNZ L_1371 PUSH OFFSET L_lit+5763 CALL _fatal_error JMP L_1372 L_1371: MOV EAX,1 MOV _fCODEOpen, AL L_1372: L_1367: MOVSX EAX,_fQuiet AND EAX,EAX JNZ L_1373 PUSH OFFSET L_lit+5785 PUSH 2 CALL _fputs L_1373: CALL _compile MOV ESP,EBP POP EBP RETN 8