Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. _nogo: TIMES 1 DD 0
  2. _noloc: TIMES 1 DD 0
  3. _opindex: TIMES 1 DD 0
  4. _opsize: TIMES 1 DD 0
  5. _swactive: TIMES 1 DD 0
  6. _swdefaul: TIMES 1 DD 0
  7. _swnext DD 0
  8. _swend DD 0
  9. _stage DD 0
  10. _wq DD 0
  11. _argcs: TIMES 1 DD 0
  12. _argvs DD 0
  13. _wqptr DD 0
  14. _litptr: TIMES 1 DD 0
  15. _macptr: TIMES 1 DD 0
  16. _pptr: TIMES 1 DD 0
  17. _ch: TIMES 1 DD 0
  18. _nch: TIMES 1 DD 0
  19. _declared: TIMES 1 DD 0
  20. _iflevel: TIMES 1 DD 0
  21. _skipleve: TIMES 1 DD 0
  22. _nxtlab: TIMES 1 DD 0
  23. _litlab: TIMES 1 DD 0
  24. _csp: TIMES 1 DD 0
  25. _argstk: TIMES 1 DD 0
  26. _argtop: TIMES 1 DD 0
  27. _ncmp: TIMES 1 DD 0
  28. _errflag: TIMES 1 DD 0
  29. _eof: TIMES 1 DD 0
  30. _output: TIMES 1 DD 0
  31. _files: TIMES 1 DD 0
  32. _filearg DD 0
  33. _input DD -1
  34. _input2 DD -1
  35. _usexpr DD 1
  36. _ccode DD 1
  37. _snext DD 0
  38. _stail DD 0
  39. _slast DD 0
  40. _listfp: TIMES 1 DD 0
  41. _lastst: TIMES 1 DD 0
  42. _oldseg: TIMES 1 DD 0
  43. _optimize: TIMES 1 DB 0
  44. _alarm: TIMES 1 DB 0
  45. _monitor: TIMES 1 DB 0
  46. _pause: TIMES 1 DB 0
  47. _symtab DD 0
  48. _litq DD 0
  49. _macn DD 0
  50. _macq DD 0
  51. _pline DD 0
  52. _mline DD 0
  53. _line DD 0
  54. _lptr DD 0
  55. _glbptr DD 0
  56. _locptr DD 0
  57. _quote DB 34
  58.  TIMES 1 DB 0
  59. _cptr DD 0
  60. _cptr2 DD 0
  61. _cptr3 DD 0
  62. _msname: TIMES 9 DB 0
  63. _ssname: TIMES 9 DB 0
  64. _op DD 57,73,3,20,55,43,22,47,35,7
  65.  DD 6,1,69,52,16,49
  66. _op2 DD 57,73,3,20,55,44,23,48,36,7
  67.  DD 6,1,69,53,17,50
  68.  
  69. _main:
  70. PUSH EBP
  71. MOV EBP,ESP
  72. MOV EAX,_1_1+0
  73. PUSH EAX
  74. MOV EAX,__iob
  75. MOV EBX,32
  76. ADD EAX,EBX
  77. PUSH EAX
  78. MOV CL,2
  79. CALL _fputs
  80. ADD ESP,8
  81. MOV EAX,_1_1+47
  82. PUSH EAX
  83. MOV EAX,__iob
  84. MOV EBX,32
  85. ADD EAX,EBX
  86. PUSH EAX
  87. MOV CL,2
  88. CALL _fputs
  89. ADD ESP,8
  90. MOV EAX,_1_1+95
  91. PUSH EAX
  92. MOV EAX,__iob
  93. MOV EBX,32
  94. ADD EAX,EBX
  95. PUSH EAX
  96. MOV CL,2
  97. CALL _fputs
  98. ADD ESP,8
  99. LEA EAX,[EBP+12]
  100. MOV EBX,EAX
  101. MOV EAX, [EBX]
  102. MOV DWORD [_argcs],EAX
  103. LEA EAX,[EBP+8]
  104. MOV EBX,EAX
  105. MOV EAX, [EBX]
  106. MOV DWORD [_argvs],EAX
  107. MOV EAX,360
  108. PUSH EAX
  109. MOV EAX,1
  110. PUSH EAX
  111. MOV CL,2
  112. CALL _OS_callo
  113. ADD ESP,8
  114. MOV DWORD [_swnext],EAX
  115. MOV EAX,[_swnext]
  116. MOV EBX,1424
  117. ADD EAX,EBX
  118. MOV DWORD [_swend],EAX
  119. MOV EAX,200
  120. PUSH EAX
  121. MOV EAX,8
  122. PUSH EAX
  123. MOV CL,2
  124. CALL _OS_callo
  125. ADD ESP,8
  126. MOV DWORD [_stage],EAX
  127. MOV EAX,30
  128. PUSH EAX
  129. MOV EAX,4
  130. PUSH EAX
  131. MOV CL,2
  132. CALL _OS_callo
  133. ADD ESP,8
  134. MOV DWORD [_wq],EAX
  135. MOV DWORD [_wqptr],EAX
  136. MOV EAX,3000
  137. PUSH EAX
  138. MOV EAX,1
  139. PUSH EAX
  140. MOV CL,2
  141. CALL _OS_callo
  142. ADD ESP,8
  143. MOV DWORD [_litq],EAX
  144. MOV EAX,3300
  145. PUSH EAX
  146. MOV EAX,1
  147. PUSH EAX
  148. MOV CL,2
  149. CALL _OS_callo
  150. ADD ESP,8
  151. MOV DWORD [_macn],EAX
  152. MOV EAX,2100
  153. PUSH EAX
  154. MOV EAX,1
  155. PUSH EAX
  156. MOV CL,2
  157. CALL _OS_callo
  158. ADD ESP,8
  159. MOV DWORD [_macq],EAX
  160. MOV EAX,128
  161. PUSH EAX
  162. MOV EAX,1
  163. PUSH EAX
  164. MOV CL,2
  165. CALL _OS_callo
  166. ADD ESP,8
  167. MOV DWORD [_pline],EAX
  168. MOV EAX,128
  169. PUSH EAX
  170. MOV EAX,1
  171. PUSH EAX
  172. MOV CL,2
  173. CALL _OS_callo
  174. ADD ESP,8
  175. MOV DWORD [_mline],EAX
  176. MOV EAX,[_stage]
  177. MOV EBX,6400
  178. ADD EAX,EBX
  179. MOV DWORD [_slast],EAX
  180. MOV EAX,4400
  181. PUSH EAX
  182. MOV EAX,1
  183. PUSH EAX
  184. MOV CL,2
  185. CALL _OS_callo
  186. ADD ESP,8
  187. MOV DWORD [_symtab],EAX
  188. MOV EAX,[_symtab]
  189. MOV DWORD [_locptr],EAX
  190. MOV EAX,[_symtab]
  191. MOV EBX,400
  192. ADD EAX,EBX
  193. MOV DWORD [_glbptr],EAX
  194. XOR CL,CL
  195. CALL _ask
  196. XOR CL,CL
  197. CALL _openfile
  198. XOR CL,CL
  199. CALL _preproce
  200. XOR CL,CL
  201. CALL _header
  202. XOR CL,CL
  203. CALL _setcodes
  204. XOR CL,CL
  205. CALL _parse
  206. XOR CL,CL
  207. CALL _trailer
  208. MOV EAX,[_output]
  209. PUSH EAX
  210. MOV CL,1
  211. CALL _OS_fclos
  212. ADD ESP,4
  213. POP EBP
  214. RET
  215. _1_1 DB 83,109,97,108,108,32,67,32,51,56
  216.  DB 54,47,78,84,44,32,86,101,114,115
  217.  DB 105,111,110,32,51,46,49,44,32,82
  218.  DB 101,118,105,115,105,111,110,32,76,101
  219.  DB 118,101,108,32,49,10,0,67,111,112
  220.  DB 121,114,105,103,104,116,32,49,57,56
  221.  DB 50,44,32,49,57,56,51,44,32,49
  222.  DB 57,56,53,44,32,49,57,56,56,32
  223.  DB 74,46,32,69,46,32,72,101,110,100
  224.  DB 114,105,120,10,0,67,111,112,121,114
  225.  DB 105,103,104,116,32,49,57,57,56,32
  226.  DB 32,72,32,84,32,87,97,108,104,101
  227.  DB 105,109,10,10,0
  228.  
  229. _parse:
  230. PUSH EBP
  231. MOV EBP,ESP
  232. _1_3:
  233. MOV EAX,[_eof]
  234. OR EAX,EAX
  235. JE _1_5
  236. JMP _1_4
  237. _1_5:
  238. MOV EAX,_1_2+0
  239. PUSH EAX
  240. MOV EAX,6
  241. PUSH EAX
  242. MOV CL,2
  243. CALL _amatch
  244. ADD ESP,8
  245. OR EAX,EAX
  246. JNE _1_7
  247. JMP _1_6
  248. _1_7:
  249. MOV EAX,3
  250. PUSH EAX
  251. MOV CL,1
  252. CALL _dodeclar
  253. ADD ESP,4
  254. JMP _1_8
  255. _1_6:
  256. MOV EAX,2
  257. PUSH EAX
  258. MOV CL,1
  259. CALL _dodeclar
  260. ADD ESP,4
  261. OR EAX,EAX
  262. JNE _1_10
  263. JMP _1_9
  264. _1_10:
  265. JMP _1_11
  266. _1_9:
  267. MOV EAX,_1_2+7
  268. PUSH EAX
  269. MOV CL,1
  270. CALL _match
  271. ADD ESP,4
  272. OR EAX,EAX
  273. JNE _1_13
  274. JMP _1_12
  275. _1_13:
  276. XOR CL,CL
  277. CALL _doasm
  278. JMP _1_14
  279. _1_12:
  280. MOV EAX,_1_2+12
  281. PUSH EAX
  282. MOV CL,1
  283. CALL _match
  284. ADD ESP,4
  285. OR EAX,EAX
  286. JNE _1_16
  287. JMP _1_15
  288. _1_16:
  289. XOR CL,CL
  290. CALL _doinclud
  291. JMP _1_17
  292. _1_15:
  293. MOV EAX,_1_2+21
  294. PUSH EAX
  295. MOV CL,1
  296. CALL _match
  297. ADD ESP,4
  298. OR EAX,EAX
  299. JNE _1_19
  300. JMP _1_18
  301. _1_19:
  302. XOR CL,CL
  303. CALL _dodefine
  304. JMP _1_20
  305. _1_18:
  306. XOR CL,CL
  307. CALL _dofuncti
  308. _1_20:
  309. _1_17:
  310. _1_14:
  311. _1_11:
  312. _1_8:
  313. XOR CL,CL
  314. CALL _blanks
  315. JMP _1_3
  316. _1_4:
  317. POP EBP
  318. RET
  319. _1_2 DB 101,120,116,101,114,110,0,35,97,115
  320.  DB 109,0,35,105,110,99,108,117,100,101
  321.  DB 0,35,100,101,102,105,110,101,0
  322.  
  323. _dodeclar:
  324. PUSH EBP
  325. MOV EBP,ESP
  326. MOV EAX,_1_21+0
  327. PUSH EAX
  328. MOV EAX,4
  329. PUSH EAX
  330. MOV CL,2
  331. CALL _amatch
  332. ADD ESP,8
  333. OR EAX,EAX
  334. JNE _1_23
  335. JMP _1_22
  336. _1_23:
  337. MOV EAX,4
  338. PUSH EAX
  339. LEA EAX,[EBP+8]
  340. MOV EBX,EAX
  341. MOV EAX, [EBX]
  342. PUSH EAX
  343. MOV CL,2
  344. CALL _declglb
  345. ADD ESP,8
  346. JMP _1_24
  347. _1_22:
  348. MOV EAX,_1_21+5
  349. PUSH EAX
  350. MOV EAX,8
  351. PUSH EAX
  352. MOV CL,2
  353. CALL _amatch
  354. ADD ESP,8
  355. OR EAX,EAX
  356. JNE _1_26
  357. JMP _1_25
  358. _1_26:
  359. MOV EAX,_1_21+14
  360. PUSH EAX
  361. MOV EAX,4
  362. PUSH EAX
  363. MOV CL,2
  364. CALL _amatch
  365. ADD ESP,8
  366. OR EAX,EAX
  367. JNE _1_28
  368. JMP _1_27
  369. _1_28:
  370. MOV EAX,5
  371. PUSH EAX
  372. LEA EAX,[EBP+8]
  373. MOV EBX,EAX
  374. MOV EAX, [EBX]
  375. PUSH EAX
  376. MOV CL,2
  377. CALL _declglb
  378. ADD ESP,8
  379. JMP _1_29
  380. _1_27:
  381. MOV EAX,_1_21+19
  382. PUSH EAX
  383. MOV EAX,3
  384. PUSH EAX
  385. MOV CL,2
  386. CALL _amatch
  387. ADD ESP,8
  388. MOV EAX,17
  389. PUSH EAX
  390. LEA EAX,[EBP+8]
  391. MOV EBX,EAX
  392. MOV EAX, [EBX]
  393. PUSH EAX
  394. MOV CL,2
  395. CALL _declglb
  396. ADD ESP,8
  397. _1_29:
  398. JMP _1_30
  399. _1_25:
  400. MOV EAX,_1_21+23
  401. PUSH EAX
  402. MOV EAX,3
  403. PUSH EAX
  404. MOV CL,2
  405. CALL _amatch
  406. ADD ESP,8
  407. OR EAX,EAX
  408. JE _1_34
  409. JMP _1_32
  410. _1_34:
  411. LEA EAX,[EBP+8]
  412. MOV EBX,EAX
  413. MOV EAX, [EBX]
  414. MOV EBX,EAX
  415. MOV EAX,3
  416. CALL __eq
  417. OR EAX,EAX
  418. JE _1_35
  419. JMP _1_32
  420. _1_35:
  421. XOR EAX,EAX
  422. JMP _1_33
  423. _1_32:
  424. MOV EAX,1
  425. _1_33:
  426. OR EAX,EAX
  427. JNE _1_36
  428. JMP _1_31
  429. _1_36:
  430. MOV EAX,16
  431. PUSH EAX
  432. LEA EAX,[EBP+8]
  433. MOV EBX,EAX
  434. MOV EAX, [EBX]
  435. PUSH EAX
  436. MOV CL,2
  437. CALL _declglb
  438. ADD ESP,8
  439. JMP _1_37
  440. _1_31:
  441. XOR EAX,EAX
  442. POP EBP
  443. RET
  444. _1_37:
  445. _1_30:
  446. _1_24:
  447. XOR CL,CL
  448. CALL _ns
  449. MOV EAX,1
  450. POP EBP
  451. RET
  452. _1_21 DB 99,104,97,114,0,117,110,115,105,103
  453.  DB 110,101,100,0,99,104,97,114,0,105
  454.  DB 110,116,0,105,110,116,0
  455.  
  456. _declglb:
  457. PUSH EBP
  458. MOV EBP,ESP
  459. ADD ESP,-8
  460. _1_39:
  461. XOR CL,CL
  462. CALL _endst
  463. OR EAX,EAX
  464. JNE _1_42
  465. JMP _1_41
  466. _1_42:
  467. MOV ESP,EBP
  468. POP EBP
  469. RET
  470. _1_41:
  471. MOV EAX,_1_38+0
  472. PUSH EAX
  473. MOV CL,1
  474. CALL _match
  475. ADD ESP,4
  476. OR EAX,EAX
  477. JNE _1_44
  478. JMP _1_43
  479. _1_44:
  480. LEA EAX,[EBP-4]
  481. MOV EBX,EAX
  482. MOV EAX,3
  483. MOV [EBX],EAX
  484. LEA EAX,[EBP-8]
  485. MOV EBX,EAX
  486. XOR EAX,EAX
  487. MOV [EBX],EAX
  488. JMP _1_45
  489. _1_43:
  490. LEA EAX,[EBP-4]
  491. MOV EBX,EAX
  492. MOV EAX,1
  493. MOV [EBX],EAX
  494. LEA EAX,[EBP-8]
  495. MOV EBX,EAX
  496. MOV EAX,1
  497. MOV [EBX],EAX
  498. _1_45:
  499. MOV EAX,_ssname
  500. PUSH EAX
  501. MOV CL,1
  502. CALL _symname
  503. ADD ESP,4
  504. OR EAX,EAX
  505. JE _1_47
  506. JMP _1_46
  507. _1_47:
  508. XOR CL,CL
  509. CALL _illname
  510. _1_46:
  511. MOV EAX,_ssname
  512. PUSH EAX
  513. MOV CL,1
  514. CALL _findglb
  515. ADD ESP,4
  516. OR EAX,EAX
  517. JNE _1_49
  518. JMP _1_48
  519. _1_49:
  520. MOV EAX,_ssname
  521. PUSH EAX
  522. MOV CL,1
  523. CALL _multidef
  524. ADD ESP,4
  525. _1_48:
  526. LEA EAX,[EBP-4]
  527. MOV EBX,EAX
  528. MOV EAX, [EBX]
  529. MOV EBX,EAX
  530. MOV EAX,1
  531. CALL __eq
  532. OR EAX,EAX
  533. JNE _1_51
  534. JMP _1_50
  535. _1_51:
  536. MOV EAX,_1_38+2
  537. PUSH EAX
  538. MOV CL,1
  539. CALL _match
  540. ADD ESP,4
  541. OR EAX,EAX
  542. JNE _1_53
  543. JMP _1_52
  544. _1_53:
  545. LEA EAX,[EBP-4]
  546. MOV EBX,EAX
  547. MOV EAX,4
  548. MOV [EBX],EAX
  549. MOV EAX,_1_38+4
  550. PUSH EAX
  551. MOV CL,1
  552. CALL _need
  553. ADD ESP,4
  554. JMP _1_54
  555. _1_52:
  556. MOV EAX,_1_38+6
  557. PUSH EAX
  558. MOV CL,1
  559. CALL _match
  560. ADD ESP,4
  561. OR EAX,EAX
  562. JNE _1_56
  563. JMP _1_55
  564. _1_56:
  565. LEA EAX,[EBP-4]
  566. MOV EBX,EAX
  567. MOV EAX,2
  568. MOV [EBX],EAX
  569. LEA EAX,[EBP-8]
  570. PUSH EAX
  571. XOR CL,CL
  572. CALL _needsub
  573. POP EBX
  574. MOV [EBX],EAX
  575. _1_55:
  576. _1_54:
  577. _1_50:
  578. LEA EAX,[EBP+8]
  579. MOV EBX,EAX
  580. MOV EAX, [EBX]
  581. MOV EBX,EAX
  582. MOV EAX,3
  583. CALL __eq
  584. OR EAX,EAX
  585. JNE _1_58
  586. JMP _1_57
  587. _1_58:
  588. MOV EAX,_ssname
  589. PUSH EAX
  590. LEA EAX,[EBP+12]
  591. MOV EBX,EAX
  592. MOV EAX, [EBX]
  593. MOV EBX,EAX
  594. MOV EAX,2
  595. MOV ECX,EAX
  596. MOV EAX,EBX
  597. SAR EAX,CL
  598. PUSH EAX
  599. LEA EAX,[EBP-4]
  600. MOV EBX,EAX
  601. MOV EAX, [EBX]
  602. PUSH EAX
  603. MOV CL,3
  604. CALL _external
  605. ADD ESP,12
  606. JMP _1_59
  607. _1_57:
  608. LEA EAX,[EBP-4]
  609. MOV EBX,EAX
  610. MOV EAX, [EBX]
  611. MOV EBX,EAX
  612. MOV EAX,4
  613. CALL __ne
  614. OR EAX,EAX
  615. JNE _1_61
  616. JMP _1_60
  617. _1_61:
  618. LEA EAX,[EBP+12]
  619. MOV EBX,EAX
  620. MOV EAX, [EBX]
  621. MOV EBX,EAX
  622. MOV EAX,2
  623. MOV ECX,EAX
  624. MOV EAX,EBX
  625. SAR EAX,CL
  626. PUSH EAX
  627. LEA EAX,[EBP-4]
  628. MOV EBX,EAX
  629. MOV EAX, [EBX]
  630. PUSH EAX
  631. LEA EAX,[EBP-8]
  632. MOV EBX,EAX
  633. MOV EAX, [EBX]
  634. PUSH EAX
  635. MOV CL,3
  636. CALL _initials
  637. ADD ESP,12
  638. _1_60:
  639. _1_59:
  640. LEA EAX,[EBP-4]
  641. MOV EBX,EAX
  642. MOV EAX, [EBX]
  643. MOV EBX,EAX
  644. MOV EAX,3
  645. CALL __eq
  646. OR EAX,EAX
  647. JNE _1_63
  648. JMP _1_62
  649. _1_63:
  650. MOV EAX,_ssname
  651. PUSH EAX
  652. LEA EAX,[EBP-4]
  653. MOV EBX,EAX
  654. MOV EAX, [EBX]
  655. PUSH EAX
  656. LEA EAX,[EBP+12]
  657. MOV EBX,EAX
  658. MOV EAX, [EBX]
  659. PUSH EAX
  660. MOV EAX,4
  661. PUSH EAX
  662. XOR EAX,EAX
  663. PUSH EAX
  664. MOV EAX,_glbptr
  665. PUSH EAX
  666. LEA EAX,[EBP+8]
  667. MOV EBX,EAX
  668. MOV EAX, [EBX]
  669. PUSH EAX
  670. MOV CL,7
  671. CALL _addsym
  672. ADD ESP,28
  673. JMP _1_64
  674. _1_62:
  675. MOV EAX,_ssname
  676. PUSH EAX
  677. LEA EAX,[EBP-4]
  678. MOV EBX,EAX
  679. MOV EAX, [EBX]
  680. PUSH EAX
  681. LEA EAX,[EBP+12]
  682. MOV EBX,EAX
  683. MOV EAX, [EBX]
  684. PUSH EAX
  685. LEA EAX,[EBP-8]
  686. MOV EBX,EAX
  687. MOV EAX, [EBX]
  688. PUSH EAX
  689. LEA EAX,[EBP+12]
  690. MOV EBX,EAX
  691. MOV EAX, [EBX]
  692. MOV EBX,EAX
  693. MOV EAX,2
  694. MOV ECX,EAX
  695. MOV EAX,EBX
  696. SAR EAX,CL
  697. POP EBX
  698. IMUL EBX
  699. PUSH EAX
  700. XOR EAX,EAX
  701. PUSH EAX
  702. MOV EAX,_glbptr
  703. PUSH EAX
  704. LEA EAX,[EBP+8]
  705. MOV EBX,EAX
  706. MOV EAX, [EBX]
  707. PUSH EAX
  708. MOV CL,7
  709. CALL _addsym
  710. ADD ESP,28
  711. _1_64:
  712. MOV EAX,_1_38+8
  713. PUSH EAX
  714. MOV CL,1
  715. CALL _match
  716. ADD ESP,4
  717. OR EAX,EAX
  718. JE _1_66
  719. JMP _1_65
  720. _1_66:
  721. MOV ESP,EBP
  722. POP EBP
  723. RET
  724. _1_65:
  725. JMP _1_39
  726. _1_40:
  727. MOV ESP,EBP
  728. POP EBP
  729. RET
  730. _1_38 DB 42,0,40,0,41,0,91,0,44,0
  731.  
  732. _initials:
  733. PUSH EBP
  734. MOV EBP,ESP
  735. ADD ESP,-4
  736. XOR EAX,EAX
  737. MOV DWORD [_litptr],EAX
  738. LEA EAX,[EBP+8]
  739. MOV EBX,EAX
  740. MOV EAX, [EBX]
  741. OR EAX,EAX
  742. JE _1_69
  743. JMP _1_68
  744. _1_69:
  745. LEA EAX,[EBP+8]
  746. MOV EBX,EAX
  747. MOV EAX,-1
  748. MOV [EBX],EAX
  749. _1_68:
  750. LEA EAX,[EBP-4]
  751. PUSH EAX
  752. LEA EAX,[EBP+8]
  753. MOV EBX,EAX
  754. MOV EAX, [EBX]
  755. POP EBX
  756. MOV [EBX],EAX
  757. MOV EAX,_1_67+0
  758. PUSH EAX
  759. MOV CL,1
  760. CALL _match
  761. ADD ESP,4
  762. OR EAX,EAX
  763. JNE _1_71
  764. JMP _1_70
  765. _1_71:
  766. MOV EAX,_1_67+2
  767. PUSH EAX
  768. MOV CL,1
  769. CALL _match
  770. ADD ESP,4
  771. OR EAX,EAX
  772. JNE _1_73
  773. JMP _1_72
  774. _1_73:
  775. _1_74:
  776. LEA EAX,[EBP+8]
  777. MOV EBX,EAX
  778. MOV EAX, [EBX]
  779. OR EAX,EAX
  780. JNE _1_76
  781. JMP _1_75
  782. _1_76:
  783. LEA EAX,[EBP+16]
  784. MOV EBX,EAX
  785. MOV EAX, [EBX]
  786. PUSH EAX
  787. LEA EAX,[EBP+12]
  788. MOV EBX,EAX
  789. MOV EAX, [EBX]
  790. PUSH EAX
  791. LEA EAX,[EBP+8]
  792. PUSH EAX
  793. MOV CL,3
  794. CALL _init
  795. ADD ESP,12
  796. MOV EAX,_1_67+4
  797. PUSH EAX
  798. MOV CL,1
  799. CALL _match
  800. ADD ESP,4
  801. OR EAX,EAX
  802. JE _1_78
  803. JMP _1_77
  804. _1_78:
  805. JMP _1_75
  806. _1_77:
  807. JMP _1_74
  808. _1_75:
  809. MOV EAX,_1_67+6
  810. PUSH EAX
  811. MOV CL,1
  812. CALL _need
  813. ADD ESP,4
  814. JMP _1_79
  815. _1_72:
  816. LEA EAX,[EBP+16]
  817. MOV EBX,EAX
  818. MOV EAX, [EBX]
  819. PUSH EAX
  820. LEA EAX,[EBP+12]
  821. MOV EBX,EAX
  822. MOV EAX, [EBX]
  823. PUSH EAX
  824. LEA EAX,[EBP+8]
  825. PUSH EAX
  826. MOV CL,3
  827. CALL _init
  828. ADD ESP,12
  829. _1_79:
  830. _1_70:
  831. LEA EAX,[EBP-4]
  832. MOV EBX,EAX
  833. MOV EAX, [EBX]
  834. MOV EBX,EAX
  835. MOV EAX,-1
  836. CALL __eq
  837. OR EAX,EAX
  838. JNE _1_83
  839. JMP _1_81
  840. _1_83:
  841. LEA EAX,[EBP+8]
  842. MOV EBX,EAX
  843. MOV EAX, [EBX]
  844. MOV EBX,EAX
  845. MOV EAX,-1
  846. CALL __eq
  847. OR EAX,EAX
  848. JNE _1_84
  849. JMP _1_81
  850. _1_84:
  851. MOV EAX,1
  852. JMP _1_82
  853. _1_81:
  854. XOR EAX,EAX
  855. _1_82:
  856. OR EAX,EAX
  857. JNE _1_85
  858. JMP _1_80
  859. _1_85:
  860. LEA EAX,[EBP+12]
  861. MOV EBX,EAX
  862. MOV EAX, [EBX]
  863. MOV EBX,EAX
  864. MOV EAX,2
  865. CALL __eq
  866. OR EAX,EAX
  867. JNE _1_87
  868. JMP _1_86
  869. _1_87:
  870. MOV EAX,_1_67+8
  871. PUSH EAX
  872. MOV CL,1
  873. CALL _error
  874. ADD ESP,4
  875. _1_86:
  876. XOR EAX,EAX
  877. PUSH EAX
  878. LEA EAX,[EBP+16]
  879. MOV EBX,EAX
  880. MOV EAX,4
  881. MOV [EBX],EAX
  882. PUSH EAX
  883. MOV CL,2
  884. CALL _stowlit
  885. ADD ESP,8
  886. _1_80:
  887. LEA EAX,[EBP+12]
  888. MOV EBX,EAX
  889. MOV EAX, [EBX]
  890. PUSH EAX
  891. MOV CL,1
  892. CALL _public
  893. ADD ESP,4
  894. MOV EAX,[_litptr]
  895. OR EAX,EAX
  896. JG _1_89
  897. JMP _1_88
  898. _1_89:
  899. LEA EAX,[EBP+16]
  900. MOV EBX,EAX
  901. MOV EAX, [EBX]
  902. PUSH EAX
  903. MOV CL,1
  904. CALL _dumplits
  905. ADD ESP,4
  906. JMP _1_90
  907. _1_88:
  908. LEA EAX,[EBP+8]
  909. MOV EBX,EAX
  910. MOV EAX, [EBX]
  911. OR EAX,EAX
  912. JG _1_92
  913. JMP _1_91
  914. _1_92:
  915. MOV EAX,58
  916. PUSH EAX
  917. MOV EAX,[_output]
  918. PUSH EAX
  919. MOV CL,2
  920. CALL _OS_fputc
  921. ADD ESP,8
  922. _1_91:
  923. _1_90:
  924. LEA EAX,[EBP+16]
  925. MOV EBX,EAX
  926. MOV EAX, [EBX]
  927. PUSH EAX
  928. LEA EAX,[EBP+8]
  929. MOV EBX,EAX
  930. MOV EAX, [EBX]
  931. PUSH EAX
  932. MOV CL,2
  933. CALL _dumpzero
  934. ADD ESP,8
  935. MOV ESP,EBP
  936. POP EBP
  937. RET
  938. _1_67 DB 61,0,123,0,44,0,125,0,110,101
  939.  DB 101,100,32,97,114,114,97,121,32,115
  940.  DB 105,122,101,0
  941.  
  942. _init:
  943. PUSH EBP
  944. MOV EBP,ESP
  945. ADD ESP,-4
  946. LEA EAX,[EBP-4]
  947. PUSH EAX
  948. MOV CL,1
  949. CALL _string
  950. ADD ESP,4
  951. OR EAX,EAX
  952. JNE _1_95
  953. JMP _1_94
  954. _1_95:
  955. LEA EAX,[EBP+12]
  956. MOV EBX,EAX
  957. MOV EAX, [EBX]
  958. MOV EBX,EAX
  959. MOV EAX,1
  960. CALL __eq
  961. OR EAX,EAX
  962. JE _1_99
  963. JMP _1_97
  964. _1_99:
  965. LEA EAX,[EBP+16]
  966. MOV EBX,EAX
  967. MOV EAX, [EBX]
  968. MOV EBX,EAX
  969. MOV EAX,1
  970. CALL __ne
  971. OR EAX,EAX
  972. JE _1_100
  973. JMP _1_97
  974. _1_100:
  975. XOR EAX,EAX
  976. JMP _1_98
  977. _1_97:
  978. MOV EAX,1
  979. _1_98:
  980. OR EAX,EAX
  981. JNE _1_101
  982. JMP _1_96
  983. _1_101:
  984. MOV EAX,_1_93+0
  985. PUSH EAX
  986. MOV CL,1
  987. CALL _error
  988. ADD ESP,4
  989. _1_96:
  990. LEA EAX,[EBP+8]
  991. MOV EBX,EAX
  992. MOV EAX, [EBX]
  993. PUSH EAX
  994. MOV EBX,EAX
  995. MOV EAX, [EBX]
  996. PUSH EAX
  997. MOV EAX,[_litptr]
  998. PUSH EAX
  999. LEA EAX,[EBP-4]
  1000. MOV EBX,EAX
  1001. MOV EAX, [EBX]
  1002. POP EBX
  1003. XCHG EAX,EBX
  1004. SUB EAX,EBX
  1005. POP EBX
  1006. XCHG EAX,EBX
  1007. SUB EAX,EBX
  1008. POP EBX
  1009. MOV [EBX],EAX
  1010. LEA EAX,[EBP+12]
  1011. MOV EBX,EAX
  1012. MOV EAX, [EBX]
  1013. MOV EBX,EAX
  1014. MOV EAX,3
  1015. CALL __eq
  1016. OR EAX,EAX
  1017. JNE _1_103
  1018. JMP _1_102
  1019. _1_103:
  1020. XOR CL,CL
  1021. CALL _point
  1022. _1_102:
  1023. JMP _1_104
  1024. _1_94:
  1025. LEA EAX,[EBP-4]
  1026. PUSH EAX
  1027. MOV CL,1
  1028. CALL _constexp
  1029. ADD ESP,4
  1030. OR EAX,EAX
  1031. JNE _1_106
  1032. JMP _1_105
  1033. _1_106:
  1034. LEA EAX,[EBP+12]
  1035. MOV EBX,EAX
  1036. MOV EAX, [EBX]
  1037. MOV EBX,EAX
  1038. MOV EAX,3
  1039. CALL __eq
  1040. OR EAX,EAX
  1041. JNE _1_108
  1042. JMP _1_107
  1043. _1_108:
  1044. MOV EAX,_1_93+42
  1045. PUSH EAX
  1046. MOV CL,1
  1047. CALL _error
  1048. ADD ESP,4
  1049. _1_107:
  1050. LEA EAX,[EBP-4]
  1051. MOV EBX,EAX
  1052. MOV EAX, [EBX]
  1053. PUSH EAX
  1054. LEA EAX,[EBP+16]
  1055. MOV EBX,EAX
  1056. MOV EAX, [EBX]
  1057. PUSH EAX
  1058. MOV CL,2
  1059. CALL _stowlit
  1060. ADD ESP,8
  1061. LEA EAX,[EBP+8]
  1062. MOV EBX,EAX
  1063. MOV EAX, [EBX]
  1064. PUSH EAX
  1065. MOV EBX,EAX
  1066. MOV EAX, [EBX]
  1067. MOV EBX,EAX
  1068. MOV EAX,1
  1069. XCHG EAX,EBX
  1070. SUB EAX,EBX
  1071. POP EBX
  1072. MOV [EBX],EAX
  1073. _1_105:
  1074. _1_104:
  1075. MOV ESP,EBP
  1076. POP EBP
  1077. RET
  1078. _1_93 DB 109,117,115,116,32,97,115,115,105,103
  1079.  DB 110,32,116,111,32,99,104,97,114,32
  1080.  DB 112,111,105,110,116,101,114,32,111,114
  1081.  DB 32,99,104,97,114,32,97,114,114,97
  1082.  DB 121,0,99,97,110,110,111,116,32,97
  1083.  DB 115,115,105,103,110,32,116,111,32,112
  1084.  DB 111,105,110,116,101,114,0
  1085.  
  1086. _needsub:
  1087. PUSH EBP
  1088. MOV EBP,ESP
  1089. ADD ESP,-4
  1090. MOV EAX,_1_109+0
  1091. PUSH EAX
  1092. MOV CL,1
  1093. CALL _match
  1094. ADD ESP,4
  1095. OR EAX,EAX
  1096. JNE _1_111
  1097. JMP _1_110
  1098. _1_111:
  1099. XOR EAX,EAX
  1100. MOV ESP,EBP
  1101. POP EBP
  1102. RET
  1103. _1_110:
  1104. LEA EAX,[EBP-4]
  1105. PUSH EAX
  1106. MOV CL,1
  1107. CALL _constexp
  1108. ADD ESP,4
  1109. OR EAX,EAX
  1110. JE _1_113
  1111. JMP _1_112
  1112. _1_113:
  1113. LEA EAX,[EBP-4]
  1114. MOV EBX,EAX
  1115. MOV EAX,1
  1116. MOV [EBX],EAX
  1117. _1_112:
  1118. LEA EAX,[EBP-4]
  1119. MOV EBX,EAX
  1120. MOV EAX, [EBX]
  1121. OR EAX,EAX
  1122. JL _1_115
  1123. JMP _1_114
  1124. _1_115:
  1125. MOV EAX,_1_109+2
  1126. PUSH EAX
  1127. MOV CL,1
  1128. CALL _error
  1129. ADD ESP,4
  1130. LEA EAX,[EBP-4]
  1131. PUSH EAX
  1132. LEA EAX,[EBP-4]
  1133. MOV EBX,EAX
  1134. MOV EAX, [EBX]
  1135. NEG EAX
  1136. POP EBX
  1137. MOV [EBX],EAX
  1138. _1_114:
  1139. MOV EAX,_1_109+24
  1140. PUSH EAX
  1141. MOV CL,1
  1142. CALL _need
  1143. ADD ESP,4
  1144. LEA EAX,[EBP-4]
  1145. MOV EBX,EAX
  1146. MOV EAX, [EBX]
  1147. MOV ESP,EBP
  1148. POP EBP
  1149. RET
  1150. _1_109 DB 93,0,110,101,103,97,116,105,118,101
  1151.  DB 32,115,105,122,101,32,105,108,108,101
  1152.  DB 103,97,108,0,93,0
  1153.  
  1154. _doinclud:
  1155. PUSH EBP
  1156. MOV EBP,ESP
  1157. ADD ESP,-36
  1158. XOR CL,CL
  1159. CALL _blanks
  1160. MOV EAX,[_lptr]
  1161. MOV EBX,EAX
  1162. MOVSX EAX,BYTE [EBX]
  1163. MOV EBX,EAX
  1164. MOV EAX,34
  1165. CALL __eq
  1166. OR EAX,EAX
  1167. JE _1_120
  1168. JMP _1_118
  1169. _1_120:
  1170. MOV EAX,[_lptr]
  1171. MOV EBX,EAX
  1172. MOVSX EAX,BYTE [EBX]
  1173. MOV EBX,EAX
  1174. MOV EAX,60
  1175. CALL __eq
  1176. OR EAX,EAX
  1177. JE _1_121
  1178. JMP _1_118
  1179. _1_121:
  1180. XOR EAX,EAX
  1181. JMP _1_119
  1182. _1_118:
  1183. MOV EAX,1
  1184. _1_119:
  1185. OR EAX,EAX
  1186. JNE _1_122
  1187. JMP _1_117
  1188. _1_122:
  1189. MOV EAX,[_lptr]
  1190. INC EAX
  1191. MOV DWORD [_lptr],EAX
  1192. _1_117:
  1193. LEA EAX,[EBP-4]
  1194. MOV EBX,EAX
  1195. XOR EAX,EAX
  1196. MOV [EBX],EAX
  1197. _1_123:
  1198. MOV EAX,[_lptr]
  1199. PUSH EAX
  1200. LEA EAX,[EBP-4]
  1201. MOV EBX,EAX
  1202. MOV EAX, [EBX]
  1203. POP EBX
  1204. ADD EAX,EBX
  1205. MOV EBX,EAX
  1206. MOVSX EAX,BYTE [EBX]
  1207. OR EAX,EAX
  1208. JNE _1_127
  1209. JMP _1_125
  1210. _1_127:
  1211. MOV EAX,[_lptr]
  1212. PUSH EAX
  1213. LEA EAX,[EBP-4]
  1214. MOV EBX,EAX
  1215. MOV EAX, [EBX]
  1216. POP EBX
  1217. ADD EAX,EBX
  1218. MOV EBX,EAX
  1219. MOVSX EAX,BYTE [EBX]
  1220. MOV EBX,EAX
  1221. MOV EAX,34
  1222. CALL __ne
  1223. OR EAX,EAX
  1224. JNE _1_128
  1225. JMP _1_125
  1226. _1_128:
  1227. MOV EAX,[_lptr]
  1228. PUSH EAX
  1229. LEA EAX,[EBP-4]
  1230. MOV EBX,EAX
  1231. MOV EAX, [EBX]
  1232. POP EBX
  1233. ADD EAX,EBX
  1234. MOV EBX,EAX
  1235. MOVSX EAX,BYTE [EBX]
  1236. MOV EBX,EAX
  1237. MOV EAX,62
  1238. CALL __ne
  1239. OR EAX,EAX
  1240. JNE _1_129
  1241. JMP _1_125
  1242. _1_129:
  1243. MOV EAX,[_lptr]
  1244. PUSH EAX
  1245. LEA EAX,[EBP-4]
  1246. MOV EBX,EAX
  1247. MOV EAX, [EBX]
  1248. POP EBX
  1249. ADD EAX,EBX
  1250. MOV EBX,EAX
  1251. MOVSX EAX,BYTE [EBX]
  1252. MOV EBX,EAX
  1253. MOV EAX,10
  1254. CALL __ne
  1255. OR EAX,EAX
  1256. JNE _1_130
  1257. JMP _1_125
  1258. _1_130:
  1259. MOV EAX,1
  1260. JMP _1_126
  1261. _1_125:
  1262. XOR EAX,EAX
  1263. _1_126:
  1264. OR EAX,EAX
  1265. JNE _1_131
  1266. JMP _1_124
  1267. _1_131:
  1268. LEA EAX,[EBP-36]
  1269. PUSH EAX
  1270. LEA EAX,[EBP-4]
  1271. MOV EBX,EAX
  1272. MOV EAX, [EBX]
  1273. POP EBX
  1274. ADD EAX,EBX
  1275. PUSH EAX
  1276. MOV EAX,[_lptr]
  1277. PUSH EAX
  1278. LEA EAX,[EBP-4]
  1279. MOV EBX,EAX
  1280. MOV EAX, [EBX]
  1281. POP EBX
  1282. ADD EAX,EBX
  1283. MOV EBX,EAX
  1284. MOVSX EAX,BYTE [EBX]
  1285. POP EBX
  1286. MOV [EBX],AL
  1287. LEA EAX,[EBP-4]
  1288. MOV EBX,EAX
  1289. MOV EAX, [EBX]
  1290. INC EAX
  1291. MOV [EBX],EAX
  1292. JMP _1_123
  1293. _1_124:
  1294. LEA EAX,[EBP-36]
  1295. PUSH EAX
  1296. LEA EAX,[EBP-4]
  1297. MOV EBX,EAX
  1298. MOV EAX, [EBX]
  1299. POP EBX
  1300. ADD EAX,EBX
  1301. MOV EBX,EAX
  1302. XOR EAX,EAX
  1303. MOV [EBX],AL
  1304. LEA EAX,[EBP-36]
  1305. PUSH EAX
  1306. MOV EAX,_1_116+0
  1307. PUSH EAX
  1308. MOV CL,2
  1309. CALL _OS_fopen
  1310. ADD ESP,8
  1311. MOV DWORD [_input2],EAX
  1312. OR EAX,EAX
  1313. JE _1_133
  1314. JMP _1_132
  1315. _1_133:
  1316. MOV EAX,-1
  1317. MOV DWORD [_input2],EAX
  1318. MOV EAX,_1_116+2
  1319. PUSH EAX
  1320. MOV CL,1
  1321. CALL _error
  1322. ADD ESP,4
  1323. _1_132:
  1324. XOR CL,CL
  1325. CALL _kill
  1326. MOV ESP,EBP
  1327. POP EBP
  1328. RET
  1329. _1_116 DB 114,0,111,112,101,110,32,102,97,105
  1330.  DB 108,117,114,101,32,111,110,32,105,110
  1331.  DB 99,108,117,100,101,32,102,105,108,101
  1332.  DB 0
  1333.  
  1334. _dodefine:
  1335. PUSH EBP
  1336. MOV EBP,ESP
  1337. ADD ESP,-4
  1338. MOV EAX,_msname
  1339. PUSH EAX
  1340. MOV CL,1
  1341. CALL _symname
  1342. ADD ESP,4
  1343. OR EAX,EAX
  1344. JE _1_136
  1345. JMP _1_135
  1346. _1_136:
  1347. XOR CL,CL
  1348. CALL _illname
  1349. XOR CL,CL
  1350. CALL _kill
  1351. MOV ESP,EBP
  1352. POP EBP
  1353. RET
  1354. _1_135:
  1355. LEA EAX,[EBP-4]
  1356. MOV EBX,EAX
  1357. XOR EAX,EAX
  1358. MOV [EBX],EAX
  1359. MOV EAX,_msname
  1360. PUSH EAX
  1361. MOV EAX,[_macn]
  1362. PUSH EAX
  1363. MOV EAX,11
  1364. PUSH EAX
  1365. MOV EAX,[_macn]
  1366. MOV EBX,3300
  1367. ADD EAX,EBX
  1368. PUSH EAX
  1369. MOV EAX,300
  1370. PUSH EAX
  1371. XOR EAX,EAX
  1372. PUSH EAX
  1373. MOV CL,6
  1374. CALL _search
  1375. ADD ESP,24
  1376. OR EAX,EAX
  1377. JE _1_138
  1378. JMP _1_137
  1379. _1_138:
  1380. MOV EAX,[_cptr]
  1381. MOV DWORD [_cptr2],EAX
  1382. OR EAX,EAX
  1383. JNE _1_140
  1384. JMP _1_139
  1385. _1_140:
  1386. _1_141:
  1387. MOV EAX,[_cptr2]
  1388. INC EAX
  1389. MOV DWORD [_cptr2],EAX
  1390. DEC EAX
  1391. PUSH EAX
  1392. MOV EAX,_msname
  1393. PUSH EAX
  1394. LEA EAX,[EBP-4]
  1395. MOV EBX,EAX
  1396. MOV EAX, [EBX]
  1397. INC EAX
  1398. MOV [EBX],EAX
  1399. DEC EAX
  1400. POP EBX
  1401. ADD EAX,EBX
  1402. MOV EBX,EAX
  1403. MOVSX EAX,BYTE [EBX]
  1404. POP EBX
  1405. MOV [EBX],AL
  1406. OR EAX,EAX
  1407. JNE _1_143
  1408. JMP _1_142
  1409. _1_143:
  1410. JMP _1_141
  1411. _1_142:
  1412. JMP _1_144
  1413. _1_139:
  1414. MOV EAX,_1_134+0
  1415. PUSH EAX
  1416. MOV CL,1
  1417. CALL _error
  1418. ADD ESP,4
  1419. MOV ESP,EBP
  1420. POP EBP
  1421. RET
  1422. _1_144:
  1423. _1_137:
  1424. MOV EAX,[_macptr]
  1425. PUSH EAX
  1426. MOV EAX,[_cptr]
  1427. MOV EBX,9
  1428. ADD EAX,EBX
  1429. PUSH EAX
  1430. MOV EAX,2
  1431. PUSH EAX
  1432. MOV CL,3
  1433. CALL _putint
  1434. ADD ESP,12
  1435. _1_145:
  1436. XOR CL,CL
  1437. CALL _white
  1438. OR EAX,EAX
  1439. JNE _1_147
  1440. JMP _1_146
  1441. _1_147:
  1442. XOR CL,CL
  1443. CALL _gch
  1444. JMP _1_145
  1445. _1_146:
  1446. _1_148:
  1447. XOR CL,CL
  1448. CALL _gch
  1449. PUSH EAX
  1450. MOV CL,1
  1451. CALL _putmac
  1452. ADD ESP,4
  1453. OR EAX,EAX
  1454. JNE _1_150
  1455. JMP _1_149
  1456. _1_150:
  1457. JMP _1_148
  1458. _1_149:
  1459. MOV EAX,[_macptr]
  1460. MOV EBX,EAX
  1461. MOV EAX,2099
  1462. CALL __ge
  1463. OR EAX,EAX
  1464. JNE _1_152
  1465. JMP _1_151
  1466. _1_152:
  1467. MOV EAX,_1_134+22
  1468. PUSH EAX
  1469. MOV CL,1
  1470. CALL _error
  1471. ADD ESP,4
  1472. MOV EAX,7
  1473. PUSH EAX
  1474. MOV CL,1
  1475. CALL _OS_exit
  1476. ADD ESP,4
  1477. _1_151:
  1478. MOV ESP,EBP
  1479. POP EBP
  1480. RET
  1481. _1_134 DB 109,97,99,114,111,32,110,97,109,101
  1482.  DB 32,116,97,98,108,101,32,102,117,108
  1483.  DB 108,0,109,97,99,114,111,32,115,116
  1484.  DB 114,105,110,103,32,113,117,101,117,101
  1485.  DB 32,102,117,108,108,0
  1486.  
  1487. _putmac:
  1488. PUSH EBP
  1489. MOV EBP,ESP
  1490. MOV EAX,[_macq]
  1491. PUSH EAX
  1492. MOV EAX,[_macptr]
  1493. POP EBX
  1494. ADD EAX,EBX
  1495. PUSH EAX
  1496. LEA EAX,[EBP+8]
  1497. MOV EBX,EAX
  1498. MOVSX EAX,BYTE [EBX]
  1499. POP EBX
  1500. MOV [EBX],AL
  1501. MOV EAX,[_macptr]
  1502. MOV EBX,EAX
  1503. MOV EAX,2099
  1504. CALL __lt
  1505. OR EAX,EAX
  1506. JNE _1_155
  1507. JMP _1_154
  1508. _1_155:
  1509. MOV EAX,[_macptr]
  1510. INC EAX
  1511. MOV DWORD [_macptr],EAX
  1512. _1_154:
  1513. LEA EAX,[EBP+8]
  1514. MOV EBX,EAX
  1515. MOVSX EAX,BYTE [EBX]
  1516. POP EBP
  1517. RET
  1518.  
  1519. _dofuncti:
  1520. PUSH EBP
  1521. MOV EBP,ESP
  1522. ADD ESP,-4
  1523. XOR EAX,EAX
  1524. MOV DWORD [_litptr],EAX
  1525. MOV DWORD [_lastst],EAX
  1526. MOV DWORD [_noloc],EAX
  1527. MOV DWORD [_nogo],EAX
  1528. XOR CL,CL
  1529. CALL _getlabel
  1530. MOV DWORD [_litlab],EAX
  1531. MOV EAX,[_symtab]
  1532. MOV DWORD [_locptr],EAX
  1533. MOV EAX,_1_156+0
  1534. PUSH EAX
  1535. MOV CL,1
  1536. CALL _match
  1537. ADD ESP,4
  1538. OR EAX,EAX
  1539. JNE _1_158
  1540. JMP _1_157
  1541. _1_158:
  1542. XOR CL,CL
  1543. CALL _blanks
  1544. _1_157:
  1545. MOVSX EAX,BYTE [_monitor]
  1546. OR EAX,EAX
  1547. JNE _1_160
  1548. JMP _1_159
  1549. _1_160:
  1550. MOV EAX,[_line]
  1551. PUSH EAX
  1552. MOV EAX,__iob
  1553. MOV EBX,64
  1554. ADD EAX,EBX
  1555. PUSH EAX
  1556. MOV CL,2
  1557. CALL _lout
  1558. ADD ESP,8
  1559. _1_159:
  1560. MOV EAX,_ssname
  1561. PUSH EAX
  1562. MOV CL,1
  1563. CALL _symname
  1564. ADD ESP,4
  1565. OR EAX,EAX
  1566. JE _1_162
  1567. JMP _1_161
  1568. _1_162:
  1569. MOV EAX,_1_156+5
  1570. PUSH EAX
  1571. MOV CL,1
  1572. CALL _error
  1573. ADD ESP,4
  1574. XOR EAX,EAX
  1575. MOV DWORD [_errflag],EAX
  1576. XOR CL,CL
  1577. CALL _kill
  1578. MOV ESP,EBP
  1579. POP EBP
  1580. RET
  1581. _1_161:
  1582. LEA EAX,[EBP-4]
  1583. PUSH EAX
  1584. MOV EAX,_ssname
  1585. PUSH EAX
  1586. MOV CL,1
  1587. CALL _findglb
  1588. ADD ESP,4
  1589. POP EBX
  1590. MOV [EBX],EAX
  1591. OR EAX,EAX
  1592. JNE _1_164
  1593. JMP _1_163
  1594. _1_164:
  1595. LEA EAX,[EBP-4]
  1596. MOV EBX,EAX
  1597. MOV EAX, [EBX]
  1598. MOV EBX,2
  1599. ADD EAX,EBX
  1600. MOV EBX,EAX
  1601. MOVSX EAX,BYTE [EBX]
  1602. MOV EBX,EAX
  1603. MOV EAX,4
  1604. CALL __eq
  1605. OR EAX,EAX
  1606. JNE _1_166
  1607. JMP _1_165
  1608. _1_166:
  1609. LEA EAX,[EBP-4]
  1610. MOV EBX,EAX
  1611. MOV EAX, [EBX]
  1612. MOV EBX,2
  1613. ADD EAX,EBX
  1614. MOV EBX,EAX
  1615. MOV EAX,2
  1616. MOV [EBX],AL
  1617. JMP _1_167
  1618. _1_165:
  1619. MOV EAX,_ssname
  1620. PUSH EAX
  1621. MOV CL,1
  1622. CALL _multidef
  1623. ADD ESP,4
  1624. _1_167:
  1625. JMP _1_168
  1626. _1_163:
  1627. MOV EAX,_ssname
  1628. PUSH EAX
  1629. MOV EAX,4
  1630. PUSH EAX
  1631. MOV EAX,16
  1632. PUSH EAX
  1633. XOR EAX,EAX
  1634. PUSH EAX
  1635. XOR EAX,EAX
  1636. PUSH EAX
  1637. MOV EAX,_glbptr
  1638. PUSH EAX
  1639. MOV EAX,2
  1640. PUSH EAX
  1641. MOV CL,7
  1642. CALL _addsym
  1643. ADD ESP,28
  1644. _1_168:
  1645. MOV EAX,4
  1646. PUSH EAX
  1647. MOV CL,1
  1648. CALL _public
  1649. ADD ESP,4
  1650. XOR EAX,EAX
  1651. MOV DWORD [_argstk],EAX
  1652. MOV EAX,_1_156+37
  1653. PUSH EAX
  1654. MOV CL,1
  1655. CALL _match
  1656. ADD ESP,4
  1657. OR EAX,EAX
  1658. JE _1_170
  1659. JMP _1_169
  1660. _1_170:
  1661. MOV EAX,_1_156+39
  1662. PUSH EAX
  1663. MOV CL,1
  1664. CALL _error
  1665. ADD ESP,4
  1666. _1_169:
  1667. _1_171:
  1668. MOV EAX,_1_156+53
  1669. PUSH EAX
  1670. MOV CL,1
  1671. CALL _match
  1672. ADD ESP,4
  1673. OR EAX,EAX
  1674. JE _1_173
  1675. JMP _1_172
  1676. _1_173:
  1677. MOV EAX,_ssname
  1678. PUSH EAX
  1679. MOV CL,1
  1680. CALL _symname
  1681. ADD ESP,4
  1682. OR EAX,EAX
  1683. JNE _1_175
  1684. JMP _1_174
  1685. _1_175:
  1686. MOV EAX,_ssname
  1687. PUSH EAX
  1688. MOV CL,1
  1689. CALL _findloc
  1690. ADD ESP,4
  1691. OR EAX,EAX
  1692. JNE _1_177
  1693. JMP _1_176
  1694. _1_177:
  1695. MOV EAX,_ssname
  1696. PUSH EAX
  1697. MOV CL,1
  1698. CALL _multidef
  1699. ADD ESP,4
  1700. JMP _1_178
  1701. _1_176:
  1702. MOV EAX,_ssname
  1703. PUSH EAX
  1704. XOR EAX,EAX
  1705. PUSH EAX
  1706. XOR EAX,EAX
  1707. PUSH EAX
  1708. XOR EAX,EAX
  1709. PUSH EAX
  1710. MOV EAX,[_argstk]
  1711. PUSH EAX
  1712. MOV EAX,_locptr
  1713. PUSH EAX
  1714. MOV EAX,1
  1715. PUSH EAX
  1716. MOV CL,7
  1717. CALL _addsym
  1718. ADD ESP,28
  1719. MOV EAX,[_argstk]
  1720. MOV EBX,4
  1721. ADD EAX,EBX
  1722. MOV DWORD [_argstk],EAX
  1723. _1_178:
  1724. JMP _1_179
  1725. _1_174:
  1726. MOV EAX,_1_156+55
  1727. PUSH EAX
  1728. MOV CL,1
  1729. CALL _error
  1730. ADD ESP,4
  1731. XOR CL,CL
  1732. CALL _skip
  1733. _1_179:
  1734. XOR CL,CL
  1735. CALL _blanks
  1736. MOV EAX,[_lptr]
  1737. PUSH EAX
  1738. MOV EAX,_1_156+77
  1739. PUSH EAX
  1740. MOV CL,2
  1741. CALL _streq
  1742. ADD ESP,8
  1743. MOV EBX,EAX
  1744. XOR EAX,EAX
  1745. CALL __eq
  1746. OR EAX,EAX
  1747. JNE _1_183
  1748. JMP _1_181
  1749. _1_183:
  1750. MOV EAX,_1_156+79
  1751. PUSH EAX
  1752. MOV CL,1
  1753. CALL _match
  1754. ADD ESP,4
  1755. MOV EBX,EAX
  1756. XOR EAX,EAX
  1757. CALL __eq
  1758. OR EAX,EAX
  1759. JNE _1_184
  1760. JMP _1_181
  1761. _1_184:
  1762. MOV EAX,1
  1763. JMP _1_182
  1764. _1_181:
  1765. XOR EAX,EAX
  1766. _1_182:
  1767. OR EAX,EAX
  1768. JNE _1_185
  1769. JMP _1_180
  1770. _1_185:
  1771. MOV EAX,_1_156+81
  1772. PUSH EAX
  1773. MOV CL,1
  1774. CALL _error
  1775. ADD ESP,4
  1776. _1_180:
  1777. XOR CL,CL
  1778. CALL _endst
  1779. OR EAX,EAX
  1780. JNE _1_187
  1781. JMP _1_186
  1782. _1_187:
  1783. JMP _1_172
  1784. _1_186:
  1785. JMP _1_171
  1786. _1_172:
  1787. XOR EAX,EAX
  1788. MOV DWORD [_csp],EAX
  1789. MOV EAX,[_argstk]
  1790. MOV EBX,4
  1791. ADD EAX,EBX
  1792. MOV DWORD [_argtop],EAX
  1793. _1_188:
  1794. MOV EAX,[_argstk]
  1795. OR EAX,EAX
  1796. JNE _1_190
  1797. JMP _1_189
  1798. _1_190:
  1799. MOV EAX,_1_156+90
  1800. PUSH EAX
  1801. MOV EAX,4
  1802. PUSH EAX
  1803. MOV CL,2
  1804. CALL _amatch
  1805. ADD ESP,8
  1806. OR EAX,EAX
  1807. JNE _1_192
  1808. JMP _1_191
  1809. _1_192:
  1810. MOV EAX,4
  1811. PUSH EAX
  1812. MOV CL,1
  1813. CALL _doargs
  1814. ADD ESP,4
  1815. XOR CL,CL
  1816. CALL _ns
  1817. JMP _1_193
  1818. _1_191:
  1819. MOV EAX,_1_156+95
  1820. PUSH EAX
  1821. MOV EAX,3
  1822. PUSH EAX
  1823. MOV CL,2
  1824. CALL _amatch
  1825. ADD ESP,8
  1826. OR EAX,EAX
  1827. JNE _1_195
  1828. JMP _1_194
  1829. _1_195:
  1830. MOV EAX,16
  1831. PUSH EAX
  1832. MOV CL,1
  1833. CALL _doargs
  1834. ADD ESP,4
  1835. XOR CL,CL
  1836. CALL _ns
  1837. JMP _1_196
  1838. _1_194:
  1839. MOV EAX,_1_156+99
  1840. PUSH EAX
  1841. MOV EAX,8
  1842. PUSH EAX
  1843. MOV CL,2
  1844. CALL _amatch
  1845. ADD ESP,8
  1846. OR EAX,EAX
  1847. JNE _1_198
  1848. JMP _1_197
  1849. _1_198:
  1850. MOV EAX,_1_156+108
  1851. PUSH EAX
  1852. MOV EAX,4
  1853. PUSH EAX
  1854. MOV CL,2
  1855. CALL _amatch
  1856. ADD ESP,8
  1857. OR EAX,EAX
  1858. JNE _1_200
  1859. JMP _1_199
  1860. _1_200:
  1861. MOV EAX,5
  1862. PUSH EAX
  1863. MOV CL,1
  1864. CALL _doargs
  1865. ADD ESP,4
  1866. XOR CL,CL
  1867. CALL _ns
  1868. JMP _1_201
  1869. _1_199:
  1870. MOV EAX,_1_156+113
  1871. PUSH EAX
  1872. MOV EAX,3
  1873. PUSH EAX
  1874. MOV CL,2
  1875. CALL _amatch
  1876. ADD ESP,8
  1877. MOV EAX,17
  1878. PUSH EAX
  1879. MOV CL,1
  1880. CALL _doargs
  1881. ADD ESP,4
  1882. XOR CL,CL
  1883. CALL _ns
  1884. _1_201:
  1885. JMP _1_202
  1886. _1_197:
  1887. MOV EAX,_1_156+117
  1888. PUSH EAX
  1889. MOV CL,1
  1890. CALL _error
  1891. ADD ESP,4
  1892. JMP _1_189
  1893. _1_202:
  1894. _1_196:
  1895. _1_193:
  1896. JMP _1_188
  1897. _1_189:
  1898. MOV EAX,18
  1899. PUSH EAX
  1900. XOR EAX,EAX
  1901. PUSH EAX
  1902. MOV CL,2
  1903. CALL _gen
  1904. ADD ESP,8
  1905. XOR CL,CL
  1906. CALL _statemen
  1907. MOV EAX,[_lastst]
  1908. MOV EBX,EAX
  1909. MOV EAX,3
  1910. CALL __ne
  1911. OR EAX,EAX
  1912. JNE _1_206
  1913. JMP _1_204
  1914. _1_206:
  1915. MOV EAX,[_lastst]
  1916. MOV EBX,EAX
  1917. MOV EAX,13
  1918. CALL __ne
  1919. OR EAX,EAX
  1920. JNE _1_207
  1921. JMP _1_204
  1922. _1_207:
  1923. MOV EAX,1
  1924. JMP _1_205
  1925. _1_204:
  1926. XOR EAX,EAX
  1927. _1_205:
  1928. OR EAX,EAX
  1929. JNE _1_208
  1930. JMP _1_203
  1931. _1_208:
  1932. MOV EAX,67
  1933. PUSH EAX
  1934. XOR EAX,EAX
  1935. PUSH EAX
  1936. MOV CL,2
  1937. CALL _gen
  1938. ADD ESP,8
  1939. _1_203:
  1940. MOV EAX,[_litptr]
  1941. OR EAX,EAX
  1942. JNE _1_210
  1943. JMP _1_209
  1944. _1_210:
  1945. MOV EAX,1
  1946. PUSH EAX
  1947. MOV CL,1
  1948. CALL _toseg
  1949. ADD ESP,4
  1950. MOV EAX,66
  1951. PUSH EAX
  1952. MOV EAX,[_litlab]
  1953. PUSH EAX
  1954. MOV CL,2
  1955. CALL _gen
  1956. ADD ESP,8
  1957. MOV EAX,1
  1958. PUSH EAX
  1959. MOV CL,1
  1960. CALL _dumplits
  1961. ADD ESP,4
  1962. _1_209:
  1963. MOV ESP,EBP
  1964. POP EBP
  1965. RET
  1966. _1_156 DB 118,111,105,100,0,105,108,108,101,103
  1967.  DB 97,108,32,102,117,110,99,116,105,111
  1968.  DB 110,32,111,114,32,100,101,99,108,97
  1969.  DB 114,97,116,105,111,110,0,40,0,110
  1970.  DB 111,32,111,112,101,110,32,112,97,114
  1971.  DB 101,110,0,41,0,105,108,108,101,103
  1972.  DB 97,108,32,97,114,103,117,109,101,110
  1973.  DB 116,32,110,97,109,101,0,41,0,44
  1974.  DB 0,110,111,32,99,111,109,109,97,0
  1975.  DB 99,104,97,114,0,105,110,116,0,117
  1976.  DB 110,115,105,103,110,101,100,0,99,104
  1977.  DB 97,114,0,105,110,116,0,119,114,111
  1978.  DB 110,103,32,110,117,109,98,101,114,32
  1979.  DB 111,102,32,97,114,103,117,109,101,110
  1980.  DB 116,115,0
  1981.  
  1982. _doargs:
  1983. PUSH EBP
  1984. MOV EBP,ESP
  1985. ADD ESP,-16
  1986. _1_212:
  1987. MOV EAX,[_argstk]
  1988. OR EAX,EAX
  1989. JE _1_215
  1990. JMP _1_214
  1991. _1_215:
  1992. MOV ESP,EBP
  1993. POP EBP
  1994. RET
  1995. _1_214:
  1996. LEA EAX,[EBP+8]
  1997. MOV EBX,EAX
  1998. MOV EAX, [EBX]
  1999. PUSH EAX
  2000. MOV EAX,3
  2001. PUSH EAX
  2002. LEA EAX,[EBP-4]
  2003. PUSH EAX
  2004. LEA EAX,[EBP-8]
  2005. PUSH EAX
  2006. MOV CL,4
  2007. CALL _decl
  2008. ADD ESP,16
  2009. OR EAX,EAX
  2010. JNE _1_217
  2011. JMP _1_216
  2012. _1_217:
  2013. LEA EAX,[EBP-16]
  2014. PUSH EAX
  2015. MOV EAX,_ssname
  2016. PUSH EAX
  2017. MOV CL,1
  2018. CALL _findloc
  2019. ADD ESP,4
  2020. POP EBX
  2021. MOV [EBX],EAX
  2022. OR EAX,EAX
  2023. JNE _1_219
  2024. JMP _1_218
  2025. _1_219:
  2026. LEA EAX,[EBP-16]
  2027. MOV EBX,EAX
  2028. MOV EAX, [EBX]
  2029. PUSH EAX
  2030. LEA EAX,[EBP-4]
  2031. MOV EBX,EAX
  2032. MOV EAX, [EBX]
  2033. POP EBX
  2034. MOV [EBX],AL
  2035. LEA EAX,[EBP-16]
  2036. MOV EBX,EAX
  2037. MOV EAX, [EBX]
  2038. MOV EBX,1
  2039. ADD EAX,EBX
  2040. PUSH EAX
  2041. LEA EAX,[EBP+8]
  2042. MOV EBX,EAX
  2043. MOV EAX, [EBX]
  2044. POP EBX
  2045. MOV [EBX],AL
  2046. LEA EAX,[EBP-8]
  2047. MOV EBX,EAX
  2048. MOV EAX, [EBX]
  2049. PUSH EAX
  2050. LEA EAX,[EBP-16]
  2051. MOV EBX,EAX
  2052. MOV EAX, [EBX]
  2053. MOV EBX,3
  2054. ADD EAX,EBX
  2055. PUSH EAX
  2056. MOV EAX,4
  2057. PUSH EAX
  2058. MOV CL,3
  2059. CALL _putint
  2060. ADD ESP,12
  2061. MOV EAX,[_argtop]
  2062. PUSH EAX
  2063. LEA EAX,[EBP-16]
  2064. MOV EBX,EAX
  2065. MOV EAX, [EBX]
  2066. MOV EBX,5
  2067. ADD EAX,EBX
  2068. MOV EBX,2
  2069. ADD EAX,EBX
  2070. PUSH EAX
  2071. MOV EAX,4
  2072. PUSH EAX
  2073. MOV CL,2
  2074. CALL _getint
  2075. ADD ESP,8
  2076. POP EBX
  2077. XCHG EAX,EBX
  2078. SUB EAX,EBX
  2079. PUSH EAX
  2080. LEA EAX,[EBP-16]
  2081. MOV EBX,EAX
  2082. MOV EAX, [EBX]
  2083. MOV EBX,5
  2084. ADD EAX,EBX
  2085. MOV EBX,2
  2086. ADD EAX,EBX
  2087. PUSH EAX
  2088. MOV EAX,4
  2089. PUSH EAX
  2090. MOV CL,3
  2091. CALL _putint
  2092. ADD ESP,12
  2093. JMP _1_220
  2094. _1_218:
  2095. MOV EAX,_1_211+0
  2096. PUSH EAX
  2097. MOV CL,1
  2098. CALL _error
  2099. ADD ESP,4
  2100. _1_220:
  2101. _1_216:
  2102. MOV EAX,[_argstk]
  2103. MOV EBX,EAX
  2104. MOV EAX,4
  2105. XCHG EAX,EBX
  2106. SUB EAX,EBX
  2107. MOV DWORD [_argstk],EAX
  2108. XOR CL,CL
  2109. CALL _endst
  2110. OR EAX,EAX
  2111. JNE _1_222
  2112. JMP _1_221
  2113. _1_222:
  2114. MOV ESP,EBP
  2115. POP EBP
  2116. RET
  2117. _1_221:
  2118. MOV EAX,_1_211+16
  2119. PUSH EAX
  2120. MOV CL,1
  2121. CALL _match
  2122. ADD ESP,4
  2123. OR EAX,EAX
  2124. JE _1_224
  2125. JMP _1_223
  2126. _1_224:
  2127. MOV EAX,_1_211+18
  2128. PUSH EAX
  2129. MOV CL,1
  2130. CALL _error
  2131. ADD ESP,4
  2132. _1_223:
  2133. JMP _1_212
  2134. _1_213:
  2135. MOV ESP,EBP
  2136. POP EBP
  2137. RET
  2138. _1_211 DB 110,111,116,32,97,110,32,97,114,103
  2139.  DB 117,109,101,110,116,0,44,0,110,111
  2140.  DB 32,99,111,109,109,97,0
  2141.  
  2142. _decl:
  2143. PUSH EBP
  2144. MOV EBP,ESP
  2145. ADD ESP,-12
  2146. MOV EAX,_1_225+0
  2147. PUSH EAX
  2148. MOV CL,1
  2149. CALL _match
  2150. ADD ESP,4
  2151. OR EAX,EAX
  2152. JNE _1_227
  2153. JMP _1_226
  2154. _1_227:
  2155. LEA EAX,[EBP-8]
  2156. MOV EBX,EAX
  2157. MOV EAX,1
  2158. MOV [EBX],EAX
  2159. JMP _1_228
  2160. _1_226:
  2161. LEA EAX,[EBP-8]
  2162. MOV EBX,EAX
  2163. XOR EAX,EAX
  2164. MOV [EBX],EAX
  2165. _1_228:
  2166. MOV EAX,_1_225+2
  2167. PUSH EAX
  2168. MOV CL,1
  2169. CALL _match
  2170. ADD ESP,4
  2171. OR EAX,EAX
  2172. JNE _1_230
  2173. JMP _1_229
  2174. _1_230:
  2175. LEA EAX,[EBP+12]
  2176. MOV EBX,EAX
  2177. MOV EAX, [EBX]
  2178. MOV EBX,EAX
  2179. MOV EAX,3
  2180. MOV [EBX],EAX
  2181. LEA EAX,[EBP+8]
  2182. MOV EBX,EAX
  2183. MOV EAX, [EBX]
  2184. MOV EBX,EAX
  2185. MOV EAX,4
  2186. MOV [EBX],EAX
  2187. JMP _1_231
  2188. _1_229:
  2189. LEA EAX,[EBP+12]
  2190. MOV EBX,EAX
  2191. MOV EAX, [EBX]
  2192. MOV EBX,EAX
  2193. MOV EAX,1
  2194. MOV [EBX],EAX
  2195. LEA EAX,[EBP+8]
  2196. MOV EBX,EAX
  2197. MOV EAX, [EBX]
  2198. PUSH EAX
  2199. LEA EAX,[EBP+20]
  2200. MOV EBX,EAX
  2201. MOV EAX, [EBX]
  2202. MOV EBX,EAX
  2203. MOV EAX,2
  2204. MOV ECX,EAX
  2205. MOV EAX,EBX
  2206. SAR EAX,CL
  2207. POP EBX
  2208. MOV [EBX],EAX
  2209. _1_231:
  2210. LEA EAX,[EBP-4]
  2211. PUSH EAX
  2212. MOV EAX,_ssname
  2213. PUSH EAX
  2214. MOV CL,1
  2215. CALL _symname
  2216. ADD ESP,4
  2217. POP EBX
  2218. MOV [EBX],EAX
  2219. OR EAX,EAX
  2220. JE _1_233
  2221. JMP _1_232
  2222. _1_233:
  2223. XOR CL,CL
  2224. CALL _illname
  2225. _1_232:
  2226. LEA EAX,[EBP-8]
  2227. MOV EBX,EAX
  2228. MOV EAX, [EBX]
  2229. OR EAX,EAX
  2230. JNE _1_237
  2231. JMP _1_235
  2232. _1_237:
  2233. MOV EAX,_1_225+4
  2234. PUSH EAX
  2235. MOV CL,1
  2236. CALL _match
  2237. ADD ESP,4
  2238. OR EAX,EAX
  2239. JNE _1_238
  2240. JMP _1_235
  2241. _1_238:
  2242. MOV EAX,1
  2243. JMP _1_236
  2244. _1_235:
  2245. XOR EAX,EAX
  2246. _1_236:
  2247. OR EAX,EAX
  2248. JNE _1_239
  2249. JMP _1_234
  2250. _1_239:
  2251. _1_234:
  2252. MOV EAX,_1_225+6
  2253. PUSH EAX
  2254. MOV CL,1
  2255. CALL _match
  2256. ADD ESP,4
  2257. OR EAX,EAX
  2258. JNE _1_241
  2259. JMP _1_240
  2260. _1_241:
  2261. LEA EAX,[EBP-8]
  2262. MOV EBX,EAX
  2263. MOV EAX, [EBX]
  2264. CALL __lneg
  2265. OR EAX,EAX
  2266. JE _1_245
  2267. JMP _1_243
  2268. _1_245:
  2269. LEA EAX,[EBP+12]
  2270. MOV EBX,EAX
  2271. MOV EAX, [EBX]
  2272. MOV EBX,EAX
  2273. MOV EAX, [EBX]
  2274. MOV EBX,EAX
  2275. MOV EAX,3
  2276. CALL __ne
  2277. OR EAX,EAX
  2278. JE _1_246
  2279. JMP _1_243
  2280. _1_246:
  2281. XOR EAX,EAX
  2282. JMP _1_244
  2283. _1_243:
  2284. MOV EAX,1
  2285. _1_244:
  2286. OR EAX,EAX
  2287. JNE _1_247
  2288. JMP _1_242
  2289. _1_247:
  2290. MOV EAX,_1_225+8
  2291. PUSH EAX
  2292. MOV CL,1
  2293. CALL _error
  2294. ADD ESP,4
  2295. _1_242:
  2296. MOV EAX,_1_225+21
  2297. PUSH EAX
  2298. MOV CL,1
  2299. CALL _need
  2300. ADD ESP,4
  2301. JMP _1_248
  2302. _1_240:
  2303. LEA EAX,[EBP+12]
  2304. MOV EBX,EAX
  2305. MOV EAX, [EBX]
  2306. MOV EBX,EAX
  2307. MOV EAX, [EBX]
  2308. MOV EBX,EAX
  2309. MOV EAX,1
  2310. CALL __eq
  2311. OR EAX,EAX
  2312. JNE _1_252
  2313. JMP _1_250
  2314. _1_252:
  2315. MOV EAX,_1_225+23
  2316. PUSH EAX
  2317. MOV CL,1
  2318. CALL _match
  2319. ADD ESP,4
  2320. OR EAX,EAX
  2321. JNE _1_253
  2322. JMP _1_250
  2323. _1_253:
  2324. MOV EAX,1
  2325. JMP _1_251
  2326. _1_250:
  2327. XOR EAX,EAX
  2328. _1_251:
  2329. OR EAX,EAX
  2330. JNE _1_254
  2331. JMP _1_249
  2332. _1_254:
  2333. LEA EAX,[EBP+12]
  2334. MOV EBX,EAX
  2335. MOV EAX, [EBX]
  2336. PUSH EAX
  2337. LEA EAX,[EBP+16]
  2338. MOV EBX,EAX
  2339. MOV EAX, [EBX]
  2340. POP EBX
  2341. MOV [EBX],EAX
  2342. LEA EAX,[EBP+8]
  2343. MOV EBX,EAX
  2344. MOV EAX, [EBX]
  2345. PUSH EAX
  2346. MOV EBX,EAX
  2347. MOV EAX, [EBX]
  2348. PUSH EAX
  2349. XOR CL,CL
  2350. CALL _needsub
  2351. POP EBX
  2352. IMUL EBX
  2353. POP EBX
  2354. MOV [EBX],EAX
  2355. OR EAX,EAX
  2356. JE _1_256
  2357. JMP _1_255
  2358. _1_256:
  2359. LEA EAX,[EBP+16]
  2360. MOV EBX,EAX
  2361. MOV EAX, [EBX]
  2362. MOV EBX,EAX
  2363. MOV EAX,2
  2364. CALL __eq
  2365. OR EAX,EAX
  2366. JNE _1_258
  2367. JMP _1_257
  2368. _1_258:
  2369. MOV EAX,_1_225+25
  2370. PUSH EAX
  2371. MOV CL,1
  2372. CALL _error
  2373. ADD ESP,4
  2374. _1_257:
  2375. LEA EAX,[EBP+8]
  2376. MOV EBX,EAX
  2377. MOV EAX, [EBX]
  2378. MOV EBX,EAX
  2379. MOV EAX,4
  2380. MOV [EBX],EAX
  2381. _1_255:
  2382. _1_249:
  2383. _1_248:
  2384. LEA EAX,[EBP-12]
  2385. PUSH EAX
  2386. LEA EAX,[EBP+8]
  2387. MOV EBX,EAX
  2388. MOV EAX, [EBX]
  2389. MOV EBX,EAX
  2390. MOV EAX, [EBX]
  2391. MOV EBX,EAX
  2392. MOV EAX,4
  2393. XCHG EAX,EBX
  2394. CDQ
  2395. IDIV EBX
  2396. MOV EAX,EDX
  2397. POP EBX
  2398. MOV [EBX],EAX
  2399. LEA EAX,[EBP-12]
  2400. MOV EBX,EAX
  2401. MOV EAX, [EBX]
  2402. OR EAX,EAX
  2403. JNE _1_260
  2404. JMP _1_259
  2405. _1_260:
  2406. LEA EAX,[EBP+8]
  2407. MOV EBX,EAX
  2408. MOV EAX, [EBX]
  2409. PUSH EAX
  2410. LEA EAX,[EBP+8]
  2411. MOV EBX,EAX
  2412. MOV EAX, [EBX]
  2413. MOV EBX,EAX
  2414. MOV EAX, [EBX]
  2415. PUSH EAX
  2416. LEA EAX,[EBP-12]
  2417. MOV EBX,EAX
  2418. MOV EAX, [EBX]
  2419. MOV EBX,4
  2420. XCHG EAX,EBX
  2421. SUB EAX,EBX
  2422. POP EBX
  2423. ADD EAX,EBX
  2424. POP EBX
  2425. MOV [EBX],EAX
  2426. _1_259:
  2427. LEA EAX,[EBP-4]
  2428. MOV EBX,EAX
  2429. MOV EAX, [EBX]
  2430. MOV ESP,EBP
  2431. POP EBP
  2432. RET
  2433. _1_225 DB 40,0,42,0,41,0,40,0,116,114
  2434.  DB 121,32,40,42,46,46,46,41,40,41
  2435.  DB 0,41,0,91,0,110,101,101,100,32
  2436.  DB 97,114,114,97,121,32,115,105,122,101
  2437.  DB 0
  2438.  
  2439. _statemen:
  2440. PUSH EBP
  2441. MOV EBP,ESP
  2442. MOV EAX,[_ch]
  2443. MOV EBX,EAX
  2444. XOR EAX,EAX
  2445. CALL __eq
  2446. OR EAX,EAX
  2447. JNE _1_265
  2448. JMP _1_263
  2449. _1_265:
  2450. MOV EAX,[_eof]
  2451. OR EAX,EAX
  2452. JNE _1_266
  2453. JMP _1_263
  2454. _1_266:
  2455. MOV EAX,1
  2456. JMP _1_264
  2457. _1_263:
  2458. XOR EAX,EAX
  2459. _1_264:
  2460. OR EAX,EAX
  2461. JNE _1_267
  2462. JMP _1_262
  2463. _1_267:
  2464. POP EBP
  2465. RET
  2466. _1_262:
  2467. MOV EAX,_1_261+0
  2468. PUSH EAX
  2469. MOV EAX,4
  2470. PUSH EAX
  2471. MOV CL,2
  2472. CALL _amatch
  2473. ADD ESP,8
  2474. OR EAX,EAX
  2475. JNE _1_270
  2476. JMP _1_269
  2477. _1_270:
  2478. MOV EAX,4
  2479. PUSH EAX
  2480. MOV CL,1
  2481. CALL _declloc
  2482. ADD ESP,4
  2483. XOR CL,CL
  2484. CALL _ns
  2485. JMP _1_271
  2486. _1_269:
  2487. MOV EAX,_1_261+5
  2488. PUSH EAX
  2489. MOV EAX,3
  2490. PUSH EAX
  2491. MOV CL,2
  2492. CALL _amatch
  2493. ADD ESP,8
  2494. OR EAX,EAX
  2495. JNE _1_273
  2496. JMP _1_272
  2497. _1_273:
  2498. MOV EAX,16
  2499. PUSH EAX
  2500. MOV CL,1
  2501. CALL _declloc
  2502. ADD ESP,4
  2503. XOR CL,CL
  2504. CALL _ns
  2505. JMP _1_274
  2506. _1_272:
  2507. MOV EAX,_1_261+9
  2508. PUSH EAX
  2509. MOV EAX,8
  2510. PUSH EAX
  2511. MOV CL,2
  2512. CALL _amatch
  2513. ADD ESP,8
  2514. OR EAX,EAX
  2515. JNE _1_276
  2516. JMP _1_275
  2517. _1_276:
  2518. MOV EAX,_1_261+18
  2519. PUSH EAX
  2520. MOV EAX,4
  2521. PUSH EAX
  2522. MOV CL,2
  2523. CALL _amatch
  2524. ADD ESP,8
  2525. OR EAX,EAX
  2526. JNE _1_278
  2527. JMP _1_277
  2528. _1_278:
  2529. MOV EAX,5
  2530. PUSH EAX
  2531. MOV CL,1
  2532. CALL _declloc
  2533. ADD ESP,4
  2534. XOR CL,CL
  2535. CALL _ns
  2536. JMP _1_279
  2537. _1_277:
  2538. MOV EAX,_1_261+23
  2539. PUSH EAX
  2540. MOV EAX,3
  2541. PUSH EAX
  2542. MOV CL,2
  2543. CALL _amatch
  2544. ADD ESP,8
  2545. MOV EAX,17
  2546. PUSH EAX
  2547. MOV CL,1
  2548. CALL _declloc
  2549. ADD ESP,4
  2550. XOR CL,CL
  2551. CALL _ns
  2552. _1_279:
  2553. JMP _1_280
  2554. _1_275:
  2555. MOV EAX,[_declared]
  2556. OR EAX,EAX
  2557. JGE _1_282
  2558. JMP _1_281
  2559. _1_282:
  2560. MOV EAX,[_ncmp]
  2561. MOV EBX,EAX
  2562. MOV EAX,1
  2563. CALL __gt
  2564. OR EAX,EAX
  2565. JNE _1_284
  2566. JMP _1_283
  2567. _1_284:
  2568. MOV EAX,[_declared]
  2569. MOV DWORD [_nogo],EAX
  2570. _1_283:
  2571. MOV EAX,2
  2572. PUSH EAX
  2573. MOV EAX,[_csp]
  2574. PUSH EAX
  2575. MOV EAX,[_declared]
  2576. POP EBX
  2577. XCHG EAX,EBX
  2578. SUB EAX,EBX
  2579. PUSH EAX
  2580. MOV CL,2
  2581. CALL _gen
  2582. ADD ESP,8
  2583. MOV EAX,-1
  2584. MOV DWORD [_declared],EAX
  2585. _1_281:
  2586. MOV EAX,_1_261+27
  2587. PUSH EAX
  2588. MOV CL,1
  2589. CALL _match
  2590. ADD ESP,4
  2591. OR EAX,EAX
  2592. JNE _1_286
  2593. JMP _1_285
  2594. _1_286:
  2595. XOR CL,CL
  2596. CALL _compound
  2597. JMP _1_287
  2598. _1_285:
  2599. MOV EAX,_1_261+29
  2600. PUSH EAX
  2601. MOV EAX,2
  2602. PUSH EAX
  2603. MOV CL,2
  2604. CALL _amatch
  2605. ADD ESP,8
  2606. OR EAX,EAX
  2607. JNE _1_289
  2608. JMP _1_288
  2609. _1_289:
  2610. XOR CL,CL
  2611. CALL _doif
  2612. MOV EAX,1
  2613. MOV DWORD [_lastst],EAX
  2614. JMP _1_290
  2615. _1_288:
  2616. MOV EAX,_1_261+32
  2617. PUSH EAX
  2618. MOV EAX,5
  2619. PUSH EAX
  2620. MOV CL,2
  2621. CALL _amatch
  2622. ADD ESP,8
  2623. OR EAX,EAX
  2624. JNE _1_292
  2625. JMP _1_291
  2626. _1_292:
  2627. XOR CL,CL
  2628. CALL _dowhile
  2629. MOV EAX,2
  2630. MOV DWORD [_lastst],EAX
  2631. JMP _1_293
  2632. _1_291:
  2633. MOV EAX,_1_261+38
  2634. PUSH EAX
  2635. MOV EAX,2
  2636. PUSH EAX
  2637. MOV CL,2
  2638. CALL _amatch
  2639. ADD ESP,8
  2640. OR EAX,EAX
  2641. JNE _1_295
  2642. JMP _1_294
  2643. _1_295:
  2644. XOR CL,CL
  2645. CALL _dodo
  2646. MOV EAX,8
  2647. MOV DWORD [_lastst],EAX
  2648. JMP _1_296
  2649. _1_294:
  2650. MOV EAX,_1_261+41
  2651. PUSH EAX
  2652. MOV EAX,3
  2653. PUSH EAX
  2654. MOV CL,2
  2655. CALL _amatch
  2656. ADD ESP,8
  2657. OR EAX,EAX
  2658. JNE _1_298
  2659. JMP _1_297
  2660. _1_298:
  2661. XOR CL,CL
  2662. CALL _dofor
  2663. MOV EAX,9
  2664. MOV DWORD [_lastst],EAX
  2665. JMP _1_299
  2666. _1_297:
  2667. MOV EAX,_1_261+45
  2668. PUSH EAX
  2669. MOV EAX,6
  2670. PUSH EAX
  2671. MOV CL,2
  2672. CALL _amatch
  2673. ADD ESP,8
  2674. OR EAX,EAX
  2675. JNE _1_301
  2676. JMP _1_300
  2677. _1_301:
  2678. XOR CL,CL
  2679. CALL _doswitch
  2680. MOV EAX,10
  2681. MOV DWORD [_lastst],EAX
  2682. JMP _1_302
  2683. _1_300:
  2684. MOV EAX,_1_261+52
  2685. PUSH EAX
  2686. MOV EAX,4
  2687. PUSH EAX
  2688. MOV CL,2
  2689. CALL _amatch
  2690. ADD ESP,8
  2691. OR EAX,EAX
  2692. JNE _1_304
  2693. JMP _1_303
  2694. _1_304:
  2695. XOR CL,CL
  2696. CALL _docase
  2697. MOV EAX,11
  2698. MOV DWORD [_lastst],EAX
  2699. JMP _1_305
  2700. _1_303:
  2701. MOV EAX,_1_261+57
  2702. PUSH EAX
  2703. MOV EAX,7
  2704. PUSH EAX
  2705. MOV CL,2
  2706. CALL _amatch
  2707. ADD ESP,8
  2708. OR EAX,EAX
  2709. JNE _1_307
  2710. JMP _1_306
  2711. _1_307:
  2712. XOR CL,CL
  2713. CALL _dodefaul
  2714. MOV EAX,12
  2715. MOV DWORD [_lastst],EAX
  2716. JMP _1_308
  2717. _1_306:
  2718. MOV EAX,_1_261+65
  2719. PUSH EAX
  2720. MOV EAX,4
  2721. PUSH EAX
  2722. MOV CL,2
  2723. CALL _amatch
  2724. ADD ESP,8
  2725. OR EAX,EAX
  2726. JNE _1_310
  2727. JMP _1_309
  2728. _1_310:
  2729. XOR CL,CL
  2730. CALL _dogoto
  2731. MOV EAX,13
  2732. MOV DWORD [_lastst],EAX
  2733. JMP _1_311
  2734. _1_309:
  2735. XOR CL,CL
  2736. CALL _dolabel
  2737. OR EAX,EAX
  2738. JNE _1_313
  2739. JMP _1_312
  2740. _1_313:
  2741. MOV EAX,14
  2742. MOV DWORD [_lastst],EAX
  2743. JMP _1_314
  2744. _1_312:
  2745. MOV EAX,_1_261+70
  2746. PUSH EAX
  2747. MOV EAX,6
  2748. PUSH EAX
  2749. MOV CL,2
  2750. CALL _amatch
  2751. ADD ESP,8
  2752. OR EAX,EAX
  2753. JNE _1_316
  2754. JMP _1_315
  2755. _1_316:
  2756. XOR CL,CL
  2757. CALL _doreturn
  2758. XOR CL,CL
  2759. CALL _ns
  2760. MOV EAX,3
  2761. MOV DWORD [_lastst],EAX
  2762. JMP _1_317
  2763. _1_315:
  2764. MOV EAX,_1_261+77
  2765. PUSH EAX
  2766. MOV EAX,5
  2767. PUSH EAX
  2768. MOV CL,2
  2769. CALL _amatch
  2770. ADD ESP,8
  2771. OR EAX,EAX
  2772. JNE _1_319
  2773. JMP _1_318
  2774. _1_319:
  2775. XOR CL,CL
  2776. CALL _dobreak
  2777. XOR CL,CL
  2778. CALL _ns
  2779. MOV EAX,4
  2780. MOV DWORD [_lastst],EAX
  2781. JMP _1_320
  2782. _1_318:
  2783. MOV EAX,_1_261+83
  2784. PUSH EAX
  2785. MOV EAX,8
  2786. PUSH EAX
  2787. MOV CL,2
  2788. CALL _amatch
  2789. ADD ESP,8
  2790. OR EAX,EAX
  2791. JNE _1_322
  2792. JMP _1_321
  2793. _1_322:
  2794. XOR CL,CL
  2795. CALL _docont
  2796. XOR CL,CL
  2797. CALL _ns
  2798. MOV EAX,5
  2799. MOV DWORD [_lastst],EAX
  2800. JMP _1_323
  2801. _1_321:
  2802. MOV EAX,_1_261+92
  2803. PUSH EAX
  2804. MOV CL,1
  2805. CALL _match
  2806. ADD ESP,4
  2807. OR EAX,EAX
  2808. JNE _1_325
  2809. JMP _1_324
  2810. _1_325:
  2811. XOR EAX,EAX
  2812. MOV DWORD [_errflag],EAX
  2813. JMP _1_326
  2814. _1_324:
  2815. MOV EAX,_1_261+94
  2816. PUSH EAX
  2817. MOV CL,1
  2818. CALL _match
  2819. ADD ESP,4
  2820. OR EAX,EAX
  2821. JNE _1_328
  2822. JMP _1_327
  2823. _1_328:
  2824. XOR CL,CL
  2825. CALL _doasm
  2826. MOV EAX,6
  2827. MOV DWORD [_lastst],EAX
  2828. JMP _1_329
  2829. _1_327:
  2830. XOR EAX,EAX
  2831. PUSH EAX
  2832. MOV CL,1
  2833. CALL _doexpr
  2834. ADD ESP,4
  2835. XOR CL,CL
  2836. CALL _ns
  2837. MOV EAX,7
  2838. MOV DWORD [_lastst],EAX
  2839. _1_329:
  2840. _1_326:
  2841. _1_323:
  2842. _1_320:
  2843. _1_317:
  2844. _1_314:
  2845. _1_311:
  2846. _1_308:
  2847. _1_305:
  2848. _1_302:
  2849. _1_299:
  2850. _1_296:
  2851. _1_293:
  2852. _1_290:
  2853. _1_287:
  2854. _1_280:
  2855. _1_274:
  2856. _1_271:
  2857. _1_268:
  2858. MOV EAX,[_lastst]
  2859. POP EBP
  2860. RET
  2861. _1_261 DB 99,104,97,114,0,105,110,116,0,117
  2862.  DB 110,115,105,103,110,101,100,0,99,104
  2863.  DB 97,114,0,105,110,116,0,123,0,105
  2864.  DB 102,0,119,104,105,108,101,0,100,111
  2865.  DB 0,102,111,114,0,115,119,105,116,99
  2866.  DB 104,0,99,97,115,101,0,100,101,102
  2867.  DB 97,117,108,116,0,103,111,116,111,0
  2868.  DB 114,101,116,117,114,110,0,98,114,101
  2869.  DB 97,107,0,99,111,110,116,105,110,117
  2870.  DB 101,0,59,0,35,97,115,109,0
  2871.  
  2872. _declloc:
  2873. PUSH EBP
  2874. MOV EBP,ESP
  2875. ADD ESP,-8
  2876. MOV EAX,[_swactive]
  2877. OR EAX,EAX
  2878. JNE _1_332
  2879. JMP _1_331
  2880. _1_332:
  2881. MOV EAX,_1_330+0
  2882. PUSH EAX
  2883. MOV CL,1
  2884. CALL _error
  2885. ADD ESP,4
  2886. _1_331:
  2887. MOV EAX,[_noloc]
  2888. OR EAX,EAX
  2889. JNE _1_334
  2890. JMP _1_333
  2891. _1_334:
  2892. MOV EAX,_1_330+22
  2893. PUSH EAX
  2894. MOV CL,1
  2895. CALL _error
  2896. ADD ESP,4
  2897. _1_333:
  2898. MOV EAX,[_declared]
  2899. OR EAX,EAX
  2900. JL _1_336
  2901. JMP _1_335
  2902. _1_336:
  2903. MOV EAX,_1_330+44
  2904. PUSH EAX
  2905. MOV CL,1
  2906. CALL _error
  2907. ADD ESP,4
  2908. _1_335:
  2909. _1_337:
  2910. XOR CL,CL
  2911. CALL _endst
  2912. OR EAX,EAX
  2913. JNE _1_340
  2914. JMP _1_339
  2915. _1_340:
  2916. MOV ESP,EBP
  2917. POP EBP
  2918. RET
  2919. _1_339:
  2920. LEA EAX,[EBP+8]
  2921. MOV EBX,EAX
  2922. MOV EAX, [EBX]
  2923. PUSH EAX
  2924. MOV EAX,2
  2925. PUSH EAX
  2926. LEA EAX,[EBP-4]
  2927. PUSH EAX
  2928. LEA EAX,[EBP-8]
  2929. PUSH EAX
  2930. MOV CL,4
  2931. CALL _decl
  2932. ADD ESP,16
  2933. MOV EAX,[_declared]
  2934. PUSH EAX
  2935. LEA EAX,[EBP-8]
  2936. MOV EBX,EAX
  2937. MOV EAX, [EBX]
  2938. POP EBX
  2939. ADD EAX,EBX
  2940. MOV DWORD [_declared],EAX
  2941. MOV EAX,_ssname
  2942. PUSH EAX
  2943. LEA EAX,[EBP-4]
  2944. MOV EBX,EAX
  2945. MOV EAX, [EBX]
  2946. PUSH EAX
  2947. LEA EAX,[EBP+8]
  2948. MOV EBX,EAX
  2949. MOV EAX, [EBX]
  2950. PUSH EAX
  2951. LEA EAX,[EBP-8]
  2952. MOV EBX,EAX
  2953. MOV EAX, [EBX]
  2954. PUSH EAX
  2955. MOV EAX,[_csp]
  2956. PUSH EAX
  2957. MOV EAX,[_declared]
  2958. POP EBX
  2959. XCHG EAX,EBX
  2960. SUB EAX,EBX
  2961. PUSH EAX
  2962. MOV EAX,_locptr
  2963. PUSH EAX
  2964. MOV EAX,1
  2965. PUSH EAX
  2966. MOV CL,7
  2967. CALL _addsym
  2968. ADD ESP,28
  2969. MOV EAX,_1_330+72
  2970. PUSH EAX
  2971. MOV CL,1
  2972. CALL _match
  2973. ADD ESP,4
  2974. OR EAX,EAX
  2975. JE _1_342
  2976. JMP _1_341
  2977. _1_342:
  2978. MOV ESP,EBP
  2979. POP EBP
  2980. RET
  2981. _1_341:
  2982. JMP _1_337
  2983. _1_338:
  2984. MOV ESP,EBP
  2985. POP EBP
  2986. RET
  2987. _1_330 DB 110,111,116,32,97,108,108,111,119,101
  2988.  DB 100,32,105,110,32,115,119,105,116,99
  2989.  DB 104,0,110,111,116,32,97,108,108,111
  2990.  DB 119,101,100,32,119,105,116,104,32,103
  2991.  DB 111,116,111,0,109,117,115,116,32,100
  2992.  DB 101,99,108,97,114,101,32,102,105,114
  2993.  DB 115,116,32,105,110,32,98,108,111,99
  2994.  DB 107,0,44,0
  2995.  
  2996. _compound:
  2997. PUSH EBP
  2998. MOV EBP,ESP
  2999. ADD ESP,-8
  3000. LEA EAX,[EBP-4]
  3001. PUSH EAX
  3002. MOV EAX,[_csp]
  3003. POP EBX
  3004. MOV [EBX],EAX
  3005. LEA EAX,[EBP-8]
  3006. PUSH EAX
  3007. MOV EAX,[_locptr]
  3008. POP EBX
  3009. MOV [EBX],EAX
  3010. XOR EAX,EAX
  3011. MOV DWORD [_declared],EAX
  3012. MOV EAX,[_ncmp]
  3013. INC EAX
  3014. MOV DWORD [_ncmp],EAX
  3015. _1_344:
  3016. MOV EAX,_1_343+0
  3017. PUSH EAX
  3018. MOV CL,1
  3019. CALL _match
  3020. ADD ESP,4
  3021. OR EAX,EAX
  3022. JE _1_346
  3023. JMP _1_345
  3024. _1_346:
  3025. MOV EAX,[_eof]
  3026. OR EAX,EAX
  3027. JNE _1_348
  3028. JMP _1_347
  3029. _1_348:
  3030. MOV EAX,_1_343+2
  3031. PUSH EAX
  3032. MOV CL,1
  3033. CALL _error
  3034. ADD ESP,4
  3035. JMP _1_345
  3036. JMP _1_349
  3037. _1_347:
  3038. XOR CL,CL
  3039. CALL _statemen
  3040. _1_349:
  3041. JMP _1_344
  3042. _1_345:
  3043. MOV EAX,[_ncmp]
  3044. DEC EAX
  3045. MOV DWORD [_ncmp],EAX
  3046. OR EAX,EAX
  3047. JNE _1_353
  3048. JMP _1_351
  3049. _1_353:
  3050. MOV EAX,[_lastst]
  3051. MOV EBX,EAX
  3052. MOV EAX,3
  3053. CALL __ne
  3054. OR EAX,EAX
  3055. JNE _1_354
  3056. JMP _1_351
  3057. _1_354:
  3058. MOV EAX,[_lastst]
  3059. MOV EBX,EAX
  3060. MOV EAX,13
  3061. CALL __ne
  3062. OR EAX,EAX
  3063. JNE _1_355
  3064. JMP _1_351
  3065. _1_355:
  3066. MOV EAX,1
  3067. JMP _1_352
  3068. _1_351:
  3069. XOR EAX,EAX
  3070. _1_352:
  3071. OR EAX,EAX
  3072. JNE _1_356
  3073. JMP _1_350
  3074. _1_356:
  3075. MOV EAX,2
  3076. PUSH EAX
  3077. LEA EAX,[EBP-4]
  3078. MOV EBX,EAX
  3079. MOV EAX, [EBX]
  3080. PUSH EAX
  3081. MOV CL,2
  3082. CALL _gen
  3083. ADD ESP,8
  3084. _1_350:
  3085. LEA EAX,[EBP-8]
  3086. MOV EBX,EAX
  3087. MOV EAX, [EBX]
  3088. MOV DWORD [_cptr],EAX
  3089. _1_357:
  3090. MOV EAX,[_cptr]
  3091. PUSH EAX
  3092. MOV EAX,[_locptr]
  3093. POP EBX
  3094. CALL __ult
  3095. OR EAX,EAX
  3096. JNE _1_359
  3097. JMP _1_358
  3098. _1_359:
  3099. MOV EAX,[_cptr]
  3100. PUSH EAX
  3101. MOV CL,1
  3102. CALL _nextsym
  3103. ADD ESP,4
  3104. MOV DWORD [_cptr2],EAX
  3105. MOV EAX,[_cptr]
  3106. MOV EBX,EAX
  3107. MOVSX EAX,BYTE [EBX]
  3108. OR EAX,EAX
  3109. JE _1_361
  3110. JMP _1_360
  3111. _1_361:
  3112. _1_362:
  3113. MOV EAX,[_cptr]
  3114. PUSH EAX
  3115. MOV EAX,[_cptr2]
  3116. POP EBX
  3117. CALL __ult
  3118. OR EAX,EAX
  3119. JNE _1_364
  3120. JMP _1_363
  3121. _1_364:
  3122. LEA EAX,[EBP-8]
  3123. MOV EBX,EAX
  3124. MOV EAX, [EBX]
  3125. INC EAX
  3126. MOV [EBX],EAX
  3127. DEC EAX
  3128. PUSH EAX
  3129. MOV EAX,[_cptr]
  3130. INC EAX
  3131. MOV DWORD [_cptr],EAX
  3132. DEC EAX
  3133. MOV EBX,EAX
  3134. MOVSX EAX,BYTE [EBX]
  3135. POP EBX
  3136. MOV [EBX],AL
  3137. JMP _1_362
  3138. _1_363:
  3139. JMP _1_365
  3140. _1_360:
  3141. MOV EAX,[_cptr2]
  3142. MOV DWORD [_cptr],EAX
  3143. _1_365:
  3144. JMP _1_357
  3145. _1_358:
  3146. LEA EAX,[EBP-8]
  3147. MOV EBX,EAX
  3148. MOV EAX, [EBX]
  3149. MOV DWORD [_locptr],EAX
  3150. MOV EAX,-1
  3151. MOV DWORD [_declared],EAX
  3152. MOV ESP,EBP
  3153. POP EBP
  3154. RET
  3155. _1_343 DB 125,0,110,111,32,102,105,110,97,108
  3156.  DB 32,125,0
  3157.  
  3158. _doif:
  3159. PUSH EBP
  3160. MOV EBP,ESP
  3161. ADD ESP,-8
  3162. LEA EAX,[EBP-4]
  3163. PUSH EAX
  3164. XOR CL,CL
  3165. CALL _getlabel
  3166. POP EBX
  3167. MOV [EBX],EAX
  3168. PUSH EAX
  3169. MOV EAX,1
  3170. PUSH EAX
  3171. MOV CL,2
  3172. CALL _test
  3173. ADD ESP,8
  3174. XOR CL,CL
  3175. CALL _statemen
  3176. MOV EAX,_1_366+0
  3177. PUSH EAX
  3178. MOV EAX,4
  3179. PUSH EAX
  3180. MOV CL,2
  3181. CALL _amatch
  3182. ADD ESP,8
  3183. OR EAX,EAX
  3184. JE _1_368
  3185. JMP _1_367
  3186. _1_368:
  3187. MOV EAX,41
  3188. PUSH EAX
  3189. LEA EAX,[EBP-4]
  3190. MOV EBX,EAX
  3191. MOV EAX, [EBX]
  3192. PUSH EAX
  3193. MOV CL,2
  3194. CALL _gen
  3195. ADD ESP,8
  3196. MOV ESP,EBP
  3197. POP EBP
  3198. RET
  3199. _1_367:
  3200. LEA EAX,[EBP-8]
  3201. PUSH EAX
  3202. XOR CL,CL
  3203. CALL _getlabel
  3204. POP EBX
  3205. MOV [EBX],EAX
  3206. MOV EAX,[_lastst]
  3207. MOV EBX,EAX
  3208. MOV EAX,3
  3209. CALL __ne
  3210. OR EAX,EAX
  3211. JNE _1_372
  3212. JMP _1_370
  3213. _1_372:
  3214. MOV EAX,[_lastst]
  3215. MOV EBX,EAX
  3216. MOV EAX,13
  3217. CALL __ne
  3218. OR EAX,EAX
  3219. JNE _1_373
  3220. JMP _1_370
  3221. _1_373:
  3222. MOV EAX,1
  3223. JMP _1_371
  3224. _1_370:
  3225. XOR EAX,EAX
  3226. _1_371:
  3227. OR EAX,EAX
  3228. JNE _1_374
  3229. JMP _1_369
  3230. _1_374:
  3231. MOV EAX,40
  3232. PUSH EAX
  3233. LEA EAX,[EBP-8]
  3234. MOV EBX,EAX
  3235. MOV EAX, [EBX]
  3236. PUSH EAX
  3237. MOV CL,2
  3238. CALL _gen
  3239. ADD ESP,8
  3240. _1_369:
  3241. MOV EAX,41
  3242. PUSH EAX
  3243. LEA EAX,[EBP-4]
  3244. MOV EBX,EAX
  3245. MOV EAX, [EBX]
  3246. PUSH EAX
  3247. MOV CL,2
  3248. CALL _gen
  3249. ADD ESP,8
  3250. XOR CL,CL
  3251. CALL _statemen
  3252. MOV EAX,41
  3253. PUSH EAX
  3254. LEA EAX,[EBP-8]
  3255. MOV EBX,EAX
  3256. MOV EAX, [EBX]
  3257. PUSH EAX
  3258. MOV CL,2
  3259. CALL _gen
  3260. ADD ESP,8
  3261. MOV ESP,EBP
  3262. POP EBP
  3263. RET
  3264. _1_366 DB 101,108,115,101,0
  3265.  
  3266. _dowhile:
  3267. PUSH EBP
  3268. MOV EBP,ESP
  3269. ADD ESP,-16
  3270. LEA EAX,[EBP-16]
  3271. PUSH EAX
  3272. MOV CL,1
  3273. CALL _addwhile
  3274. ADD ESP,4
  3275. MOV EAX,41
  3276. PUSH EAX
  3277. LEA EAX,[EBP-16]
  3278. MOV EBX,4
  3279. ADD EAX,EBX
  3280. MOV EBX,EAX
  3281. MOV EAX, [EBX]
  3282. PUSH EAX
  3283. MOV CL,2
  3284. CALL _gen
  3285. ADD ESP,8
  3286. LEA EAX,[EBP-16]
  3287. MOV EBX,8
  3288. ADD EAX,EBX
  3289. MOV EBX,EAX
  3290. MOV EAX, [EBX]
  3291. PUSH EAX
  3292. MOV EAX,1
  3293. PUSH EAX
  3294. MOV CL,2
  3295. CALL _test
  3296. ADD ESP,8
  3297. XOR CL,CL
  3298. CALL _statemen
  3299. MOV EAX,40
  3300. PUSH EAX
  3301. LEA EAX,[EBP-16]
  3302. MOV EBX,4
  3303. ADD EAX,EBX
  3304. MOV EBX,EAX
  3305. MOV EAX, [EBX]
  3306. PUSH EAX
  3307. MOV CL,2
  3308. CALL _gen
  3309. ADD ESP,8
  3310. MOV EAX,41
  3311. PUSH EAX
  3312. LEA EAX,[EBP-16]
  3313. MOV EBX,8
  3314. ADD EAX,EBX
  3315. MOV EBX,EAX
  3316. MOV EAX, [EBX]
  3317. PUSH EAX
  3318. MOV CL,2
  3319. CALL _gen
  3320. ADD ESP,8
  3321. XOR CL,CL
  3322. CALL _delwhile
  3323. MOV ESP,EBP
  3324. POP EBP
  3325. RET
  3326.  
  3327. _dodo:
  3328. PUSH EBP
  3329. MOV EBP,ESP
  3330. ADD ESP,-16
  3331. LEA EAX,[EBP-16]
  3332. PUSH EAX
  3333. MOV CL,1
  3334. CALL _addwhile
  3335. ADD ESP,4
  3336. MOV EAX,41
  3337. PUSH EAX
  3338. LEA EAX,[EBP-16]
  3339. MOV EBX,4
  3340. ADD EAX,EBX
  3341. MOV EBX,EAX
  3342. MOV EAX, [EBX]
  3343. PUSH EAX
  3344. MOV CL,2
  3345. CALL _gen
  3346. ADD ESP,8
  3347. XOR CL,CL
  3348. CALL _statemen
  3349. MOV EAX,_1_376+0
  3350. PUSH EAX
  3351. MOV CL,1
  3352. CALL _need
  3353. ADD ESP,4
  3354. LEA EAX,[EBP-16]
  3355. MOV EBX,8
  3356. ADD EAX,EBX
  3357. MOV EBX,EAX
  3358. MOV EAX, [EBX]
  3359. PUSH EAX
  3360. MOV EAX,1
  3361. PUSH EAX
  3362. MOV CL,2
  3363. CALL _test
  3364. ADD ESP,8
  3365. MOV EAX,40
  3366. PUSH EAX
  3367. LEA EAX,[EBP-16]
  3368. MOV EBX,4
  3369. ADD EAX,EBX
  3370. MOV EBX,EAX
  3371. MOV EAX, [EBX]
  3372. PUSH EAX
  3373. MOV CL,2
  3374. CALL _gen
  3375. ADD ESP,8
  3376. MOV EAX,41
  3377. PUSH EAX
  3378. LEA EAX,[EBP-16]
  3379. MOV EBX,8
  3380. ADD EAX,EBX
  3381. MOV EBX,EAX
  3382. MOV EAX, [EBX]
  3383. PUSH EAX
  3384. MOV CL,2
  3385. CALL _gen
  3386. ADD ESP,8
  3387. XOR CL,CL
  3388. CALL _delwhile
  3389. XOR CL,CL
  3390. CALL _ns
  3391. MOV ESP,EBP
  3392. POP EBP
  3393. RET
  3394. _1_376 DB 119,104,105,108,101,0
  3395.  
  3396. _dofor:
  3397. PUSH EBP
  3398. MOV EBP,ESP
  3399. ADD ESP,-24
  3400. LEA EAX,[EBP-16]
  3401. PUSH EAX
  3402. MOV CL,1
  3403. CALL _addwhile
  3404. ADD ESP,4
  3405. LEA EAX,[EBP-20]
  3406. PUSH EAX
  3407. XOR CL,CL
  3408. CALL _getlabel
  3409. POP EBX
  3410. MOV [EBX],EAX
  3411. LEA EAX,[EBP-24]
  3412. PUSH EAX
  3413. XOR CL,CL
  3414. CALL _getlabel
  3415. POP EBX
  3416. MOV [EBX],EAX
  3417. MOV EAX,_1_377+0
  3418. PUSH EAX
  3419. MOV CL,1
  3420. CALL _need
  3421. ADD ESP,4
  3422. MOV EAX,_1_377+2
  3423. PUSH EAX
  3424. MOV CL,1
  3425. CALL _match
  3426. ADD ESP,4
  3427. OR EAX,EAX
  3428. JE _1_379
  3429. JMP _1_378
  3430. _1_379:
  3431. XOR EAX,EAX
  3432. PUSH EAX
  3433. MOV CL,1
  3434. CALL _doexpr
  3435. ADD ESP,4
  3436. XOR CL,CL
  3437. CALL _ns
  3438. _1_378:
  3439. MOV EAX,41
  3440. PUSH EAX
  3441. LEA EAX,[EBP-20]
  3442. MOV EBX,EAX
  3443. MOV EAX, [EBX]
  3444. PUSH EAX
  3445. MOV CL,2
  3446. CALL _gen
  3447. ADD ESP,8
  3448. MOV EAX,_1_377+4
  3449. PUSH EAX
  3450. MOV CL,1
  3451. CALL _match
  3452. ADD ESP,4
  3453. OR EAX,EAX
  3454. JE _1_381
  3455. JMP _1_380
  3456. _1_381:
  3457. LEA EAX,[EBP-16]
  3458. MOV EBX,8
  3459. ADD EAX,EBX
  3460. MOV EBX,EAX
  3461. MOV EAX, [EBX]
  3462. PUSH EAX
  3463. XOR EAX,EAX
  3464. PUSH EAX
  3465. MOV CL,2
  3466. CALL _test
  3467. ADD ESP,8
  3468. XOR CL,CL
  3469. CALL _ns
  3470. _1_380:
  3471. MOV EAX,40
  3472. PUSH EAX
  3473. LEA EAX,[EBP-24]
  3474. MOV EBX,EAX
  3475. MOV EAX, [EBX]
  3476. PUSH EAX
  3477. MOV CL,2
  3478. CALL _gen
  3479. ADD ESP,8
  3480. MOV EAX,41
  3481. PUSH EAX
  3482. LEA EAX,[EBP-16]
  3483. MOV EBX,4
  3484. ADD EAX,EBX
  3485. MOV EBX,EAX
  3486. MOV EAX, [EBX]
  3487. PUSH EAX
  3488. MOV CL,2
  3489. CALL _gen
  3490. ADD ESP,8
  3491. MOV EAX,_1_377+6
  3492. PUSH EAX
  3493. MOV CL,1
  3494. CALL _match
  3495. ADD ESP,4
  3496. OR EAX,EAX
  3497. JE _1_383
  3498. JMP _1_382
  3499. _1_383:
  3500. XOR EAX,EAX
  3501. PUSH EAX
  3502. MOV CL,1
  3503. CALL _doexpr
  3504. ADD ESP,4
  3505. MOV EAX,_1_377+8
  3506. PUSH EAX
  3507. MOV CL,1
  3508. CALL _need
  3509. ADD ESP,4
  3510. _1_382:
  3511. MOV EAX,40
  3512. PUSH EAX
  3513. LEA EAX,[EBP-20]
  3514. MOV EBX,EAX
  3515. MOV EAX, [EBX]
  3516. PUSH EAX
  3517. MOV CL,2
  3518. CALL _gen
  3519. ADD ESP,8
  3520. MOV EAX,41
  3521. PUSH EAX
  3522. LEA EAX,[EBP-24]
  3523. MOV EBX,EAX
  3524. MOV EAX, [EBX]
  3525. PUSH EAX
  3526. MOV CL,2
  3527. CALL _gen
  3528. ADD ESP,8
  3529. XOR CL,CL
  3530. CALL _statemen
  3531. MOV EAX,40
  3532. PUSH EAX
  3533. LEA EAX,[EBP-16]
  3534. MOV EBX,4
  3535. ADD EAX,EBX
  3536. MOV EBX,EAX
  3537. MOV EAX, [EBX]
  3538. PUSH EAX
  3539. MOV CL,2
  3540. CALL _gen
  3541. ADD ESP,8
  3542. MOV EAX,41
  3543. PUSH EAX
  3544. LEA EAX,[EBP-16]
  3545. MOV EBX,8
  3546. ADD EAX,EBX
  3547. MOV EBX,EAX
  3548. MOV EAX, [EBX]
  3549. PUSH EAX
  3550. MOV CL,2
  3551. CALL _gen
  3552. ADD ESP,8
  3553. XOR CL,CL
  3554. CALL _delwhile
  3555. MOV ESP,EBP
  3556. POP EBP
  3557. RET
  3558. _1_377 DB 40,0,59,0,59,0,41,0,41,0
  3559.  
  3560. _doswitch:
  3561. PUSH EBP
  3562. MOV EBP,ESP
  3563. ADD ESP,-36
  3564. LEA EAX,[EBP-24]
  3565. PUSH EAX
  3566. MOV EAX,[_swactive]
  3567. POP EBX
  3568. MOV [EBX],EAX
  3569. LEA EAX,[EBP-28]
  3570. PUSH EAX
  3571. MOV EAX,[_swdefaul]
  3572. POP EBX
  3573. MOV [EBX],EAX
  3574. LEA EAX,[EBP-32]
  3575. PUSH EAX
  3576. LEA EAX,[EBP-36]
  3577. PUSH EAX
  3578. MOV EAX,[_swnext]
  3579. POP EBX
  3580. MOV [EBX],EAX
  3581. POP EBX
  3582. MOV [EBX],EAX
  3583. LEA EAX,[EBP-16]
  3584. PUSH EAX
  3585. MOV CL,1
  3586. CALL _addwhile
  3587. ADD ESP,4
  3588. MOV EAX,[_wqptr]
  3589. MOV EBX,4
  3590. ADD EAX,EBX
  3591. MOV EBX,EAX
  3592. MOV EAX,12
  3593. XCHG EAX,EBX
  3594. SUB EAX,EBX
  3595. MOV EBX,EAX
  3596. XOR EAX,EAX
  3597. MOV [EBX],EAX
  3598. MOV EAX,_1_384+0
  3599. PUSH EAX
  3600. MOV CL,1
  3601. CALL _need
  3602. ADD ESP,4
  3603. MOV EAX,1
  3604. PUSH EAX
  3605. MOV CL,1
  3606. CALL _doexpr
  3607. ADD ESP,4
  3608. MOV EAX,_1_384+2
  3609. PUSH EAX
  3610. MOV CL,1
  3611. CALL _need
  3612. ADD ESP,4
  3613. XOR EAX,EAX
  3614. MOV DWORD [_swdefaul],EAX
  3615. MOV EAX,1
  3616. MOV DWORD [_swactive],EAX
  3617. MOV EAX,40
  3618. PUSH EAX
  3619. LEA EAX,[EBP-20]
  3620. PUSH EAX
  3621. XOR CL,CL
  3622. CALL _getlabel
  3623. POP EBX
  3624. MOV [EBX],EAX
  3625. PUSH EAX
  3626. MOV CL,2
  3627. CALL _gen
  3628. ADD ESP,8
  3629. XOR CL,CL
  3630. CALL _statemen
  3631. MOV EAX,40
  3632. PUSH EAX
  3633. LEA EAX,[EBP-16]
  3634. MOV EBX,8
  3635. ADD EAX,EBX
  3636. MOV EBX,EAX
  3637. MOV EAX, [EBX]
  3638. PUSH EAX
  3639. MOV CL,2
  3640. CALL _gen
  3641. ADD ESP,8
  3642. MOV EAX,41
  3643. PUSH EAX
  3644. LEA EAX,[EBP-20]
  3645. MOV EBX,EAX
  3646. MOV EAX, [EBX]
  3647. PUSH EAX
  3648. MOV CL,2
  3649. CALL _gen
  3650. ADD ESP,8
  3651. MOV EAX,72
  3652. PUSH EAX
  3653. XOR EAX,EAX
  3654. PUSH EAX
  3655. MOV CL,2
  3656. CALL _gen
  3657. ADD ESP,8
  3658. _1_385:
  3659. LEA EAX,[EBP-36]
  3660. MOV EBX,EAX
  3661. MOV EAX, [EBX]
  3662. PUSH EAX
  3663. MOV EAX,[_swnext]
  3664. POP EBX
  3665. CALL __ult
  3666. OR EAX,EAX
  3667. JNE _1_387
  3668. JMP _1_386
  3669. _1_387:
  3670. MOV EAX,56
  3671. PUSH EAX
  3672. LEA EAX,[EBP-36]
  3673. MOV EBX,EAX
  3674. MOV EAX, [EBX]
  3675. INC EAX
  3676. INC EAX
  3677. INC EAX
  3678. INC EAX
  3679. MOV [EBX],EAX
  3680. DEC EAX
  3681. DEC EAX
  3682. DEC EAX
  3683. DEC EAX
  3684. MOV EBX,EAX
  3685. MOV EAX, [EBX]
  3686. PUSH EAX
  3687. MOV CL,2
  3688. CALL _gen
  3689. ADD ESP,8
  3690. MOV EAX,112
  3691. PUSH EAX
  3692. LEA EAX,[EBP-36]
  3693. MOV EBX,EAX
  3694. MOV EAX, [EBX]
  3695. INC EAX
  3696. INC EAX
  3697. INC EAX
  3698. INC EAX
  3699. MOV [EBX],EAX
  3700. DEC EAX
  3701. DEC EAX
  3702. DEC EAX
  3703. DEC EAX
  3704. MOV EBX,EAX
  3705. MOV EAX, [EBX]
  3706. PUSH EAX
  3707. MOV CL,2
  3708. CALL _gen
  3709. ADD ESP,8
  3710. JMP _1_385
  3711. _1_386:
  3712. MOV EAX,112
  3713. PUSH EAX
  3714. XOR EAX,EAX
  3715. PUSH EAX
  3716. MOV CL,2
  3717. CALL _gen
  3718. ADD ESP,8
  3719. MOV EAX,[_swdefaul]
  3720. OR EAX,EAX
  3721. JNE _1_389
  3722. JMP _1_388
  3723. _1_389:
  3724. MOV EAX,40
  3725. PUSH EAX
  3726. MOV EAX,[_swdefaul]
  3727. PUSH EAX
  3728. MOV CL,2
  3729. CALL _gen
  3730. ADD ESP,8
  3731. _1_388:
  3732. MOV EAX,41
  3733. PUSH EAX
  3734. LEA EAX,[EBP-16]
  3735. MOV EBX,8
  3736. ADD EAX,EBX
  3737. MOV EBX,EAX
  3738. MOV EAX, [EBX]
  3739. PUSH EAX
  3740. MOV CL,2
  3741. CALL _gen
  3742. ADD ESP,8
  3743. XOR CL,CL
  3744. CALL _delwhile
  3745. LEA EAX,[EBP-32]
  3746. MOV EBX,EAX
  3747. MOV EAX, [EBX]
  3748. MOV DWORD [_swnext],EAX
  3749. LEA EAX,[EBP-28]
  3750. MOV EBX,EAX
  3751. MOV EAX, [EBX]
  3752. MOV DWORD [_swdefaul],EAX
  3753. LEA EAX,[EBP-24]
  3754. MOV EBX,EAX
  3755. MOV EAX, [EBX]
  3756. MOV DWORD [_swactive],EAX
  3757. MOV ESP,EBP
  3758. POP EBP
  3759. RET
  3760. _1_384 DB 40,0,41,0
  3761.  
  3762. _docase:
  3763. PUSH EBP
  3764. MOV EBP,ESP
  3765. MOV EAX,[_swactive]
  3766. OR EAX,EAX
  3767. JE _1_392
  3768. JMP _1_391
  3769. _1_392:
  3770. MOV EAX,_1_390+0
  3771. PUSH EAX
  3772. MOV CL,1
  3773. CALL _error
  3774. ADD ESP,4
  3775. _1_391:
  3776. MOV EAX,[_swnext]
  3777. PUSH EAX
  3778. MOV EAX,[_swend]
  3779. POP EBX
  3780. CALL __ugt
  3781. OR EAX,EAX
  3782. JNE _1_394
  3783. JMP _1_393
  3784. _1_394:
  3785. MOV EAX,_1_390+14
  3786. PUSH EAX
  3787. MOV CL,1
  3788. CALL _error
  3789. ADD ESP,4
  3790. POP EBP
  3791. RET
  3792. _1_393:
  3793. MOV EAX,41
  3794. PUSH EAX
  3795. MOV EAX,[_swnext]
  3796. INC EAX
  3797. INC EAX
  3798. INC EAX
  3799. INC EAX
  3800. MOV DWORD [_swnext],EAX
  3801. DEC EAX
  3802. DEC EAX
  3803. DEC EAX
  3804. DEC EAX
  3805. PUSH EAX
  3806. XOR CL,CL
  3807. CALL _getlabel
  3808. POP EBX
  3809. MOV [EBX],EAX
  3810. PUSH EAX
  3811. MOV CL,2
  3812. CALL _gen
  3813. ADD ESP,8
  3814. MOV EAX,[_swnext]
  3815. INC EAX
  3816. INC EAX
  3817. INC EAX
  3818. INC EAX
  3819. MOV DWORD [_swnext],EAX
  3820. DEC EAX
  3821. DEC EAX
  3822. DEC EAX
  3823. DEC EAX
  3824. PUSH EAX
  3825. MOV CL,1
  3826. CALL _constexp
  3827. ADD ESP,4
  3828. MOV EAX,_1_390+29
  3829. PUSH EAX
  3830. MOV CL,1
  3831. CALL _need
  3832. ADD ESP,4
  3833. POP EBP
  3834. RET
  3835. _1_390 DB 110,111,116,32,105,110,32,115,119,105
  3836.  DB 116,99,104,0,116,111,111,32,109,97
  3837.  DB 110,121,32,99,97,115,101,115,0,58
  3838.  DB 0
  3839.  
  3840. _dodefaul:
  3841. PUSH EBP
  3842. MOV EBP,ESP
  3843. MOV EAX,[_swactive]
  3844. OR EAX,EAX
  3845. JNE _1_397
  3846. JMP _1_396
  3847. _1_397:
  3848. MOV EAX,[_swdefaul]
  3849. OR EAX,EAX
  3850. JNE _1_399
  3851. JMP _1_398
  3852. _1_399:
  3853. MOV EAX,_1_395+0
  3854. PUSH EAX
  3855. MOV CL,1
  3856. CALL _error
  3857. ADD ESP,4
  3858. _1_398:
  3859. JMP _1_400
  3860. _1_396:
  3861. MOV EAX,_1_395+18
  3862. PUSH EAX
  3863. MOV CL,1
  3864. CALL _error
  3865. ADD ESP,4
  3866. _1_400:
  3867. MOV EAX,_1_395+32
  3868. PUSH EAX
  3869. MOV CL,1
  3870. CALL _need
  3871. ADD ESP,4
  3872. MOV EAX,41
  3873. PUSH EAX
  3874. XOR CL,CL
  3875. CALL _getlabel
  3876. MOV DWORD [_swdefaul],EAX
  3877. PUSH EAX
  3878. MOV CL,2
  3879. CALL _gen
  3880. ADD ESP,8
  3881. POP EBP
  3882. RET
  3883. _1_395 DB 109,117,108,116,105,112,108,101,32,100
  3884.  DB 101,102,97,117,108,116,115,0,110,111
  3885.  DB 116,32,105,110,32,115,119,105,116,99
  3886.  DB 104,0,58,0
  3887.  
  3888. _dogoto:
  3889. PUSH EBP
  3890. MOV EBP,ESP
  3891. MOV EAX,[_nogo]
  3892. OR EAX,EAX
  3893. JG _1_403
  3894. JMP _1_402
  3895. _1_403:
  3896. MOV EAX,_1_401+0
  3897. PUSH EAX
  3898. MOV CL,1
  3899. CALL _error
  3900. ADD ESP,4
  3901. JMP _1_404
  3902. _1_402:
  3903. MOV EAX,1
  3904. MOV DWORD [_noloc],EAX
  3905. _1_404:
  3906. MOV EAX,_ssname
  3907. PUSH EAX
  3908. MOV CL,1
  3909. CALL _symname
  3910. ADD ESP,4
  3911. OR EAX,EAX
  3912. JNE _1_406
  3913. JMP _1_405
  3914. _1_406:
  3915. MOV EAX,40
  3916. PUSH EAX
  3917. XOR EAX,EAX
  3918. PUSH EAX
  3919. MOV CL,1
  3920. CALL _addlabel
  3921. ADD ESP,4
  3922. PUSH EAX
  3923. MOV CL,2
  3924. CALL _gen
  3925. ADD ESP,8
  3926. JMP _1_407
  3927. _1_405:
  3928. MOV EAX,_1_401+30
  3929. PUSH EAX
  3930. MOV CL,1
  3931. CALL _error
  3932. ADD ESP,4
  3933. _1_407:
  3934. XOR CL,CL
  3935. CALL _ns
  3936. POP EBP
  3937. RET
  3938. _1_401 DB 110,111,116,32,97,108,108,111,119,101
  3939.  DB 100,32,119,105,116,104,32,98,108,111
  3940.  DB 99,107,45,108,111,99,97,108,115,0
  3941.  DB 98,97,100,32,108,97,98,101,108,0
  3942.  
  3943. _dolabel:
  3944. PUSH EBP
  3945. MOV EBP,ESP
  3946. ADD ESP,-4
  3947. XOR CL,CL
  3948. CALL _blanks
  3949. LEA EAX,[EBP-4]
  3950. PUSH EAX
  3951. MOV EAX,[_lptr]
  3952. POP EBX
  3953. MOV [EBX],EAX
  3954. MOV EAX,_ssname
  3955. PUSH EAX
  3956. MOV CL,1
  3957. CALL _symname
  3958. ADD ESP,4
  3959. OR EAX,EAX
  3960. JNE _1_410
  3961. JMP _1_409
  3962. _1_410:
  3963. XOR CL,CL
  3964. CALL _gch
  3965. MOV EBX,EAX
  3966. MOV EAX,58
  3967. CALL __eq
  3968. OR EAX,EAX
  3969. JNE _1_412
  3970. JMP _1_411
  3971. _1_412:
  3972. MOV EAX,41
  3973. PUSH EAX
  3974. MOV EAX,1
  3975. PUSH EAX
  3976. MOV CL,1
  3977. CALL _addlabel
  3978. ADD ESP,4
  3979. PUSH EAX
  3980. MOV CL,2
  3981. CALL _gen
  3982. ADD ESP,8
  3983. MOV EAX,1
  3984. MOV ESP,EBP
  3985. POP EBP
  3986. RET
  3987. _1_411:
  3988. LEA EAX,[EBP-4]
  3989. MOV EBX,EAX
  3990. MOV EAX, [EBX]
  3991. PUSH EAX
  3992. MOV EAX,[_lptr]
  3993. POP EBX
  3994. XCHG EAX,EBX
  3995. SUB EAX,EBX
  3996. PUSH EAX
  3997. MOV CL,1
  3998. CALL _bump
  3999. ADD ESP,4
  4000. _1_413:
  4001. _1_409:
  4002. XOR EAX,EAX
  4003. MOV ESP,EBP
  4004. POP EBP
  4005. RET
  4006.  
  4007. _addlabel:
  4008. PUSH EBP
  4009. MOV EBP,ESP
  4010. MOV EAX,_ssname
  4011. PUSH EAX
  4012. MOV CL,1
  4013. CALL _findloc
  4014. ADD ESP,4
  4015. MOV DWORD [_cptr],EAX
  4016. OR EAX,EAX
  4017. JNE _1_416
  4018. JMP _1_415
  4019. _1_416:
  4020. MOV EAX,[_cptr]
  4021. MOV EBX,EAX
  4022. MOVSX EAX,BYTE [EBX]
  4023. OR EAX,EAX
  4024. JNE _1_418
  4025. JMP _1_417
  4026. _1_418:
  4027. MOV EAX,_1_414+0
  4028. PUSH EAX
  4029. MOV CL,1
  4030. CALL _error
  4031. ADD ESP,4
  4032. JMP _1_419
  4033. _1_417:
  4034. LEA EAX,[EBP+8]
  4035. MOV EBX,EAX
  4036. MOV EAX, [EBX]
  4037. OR EAX,EAX
  4038. JNE _1_421
  4039. JMP _1_420
  4040. _1_421:
  4041. MOV EAX,[_cptr]
  4042. MOV EBX,1
  4043. ADD EAX,EBX
  4044. MOV EBX,EAX
  4045. MOVSX EAX,BYTE [EBX]
  4046. OR EAX,EAX
  4047. JNE _1_423
  4048. JMP _1_422
  4049. _1_423:
  4050. MOV EAX,_1_414+12
  4051. PUSH EAX
  4052. MOV CL,1
  4053. CALL _error
  4054. ADD ESP,4
  4055. JMP _1_424
  4056. _1_422:
  4057. MOV EAX,[_cptr]
  4058. MOV EBX,1
  4059. ADD EAX,EBX
  4060. MOV EBX,EAX
  4061. MOV EAX,1
  4062. MOV [EBX],AL
  4063. _1_424:
  4064. _1_420:
  4065. _1_419:
  4066. JMP _1_425
  4067. _1_415:
  4068. MOV EAX,_ssname
  4069. PUSH EAX
  4070. XOR EAX,EAX
  4071. PUSH EAX
  4072. LEA EAX,[EBP+8]
  4073. MOV EBX,EAX
  4074. MOV EAX, [EBX]
  4075. PUSH EAX
  4076. XOR EAX,EAX
  4077. PUSH EAX
  4078. XOR CL,CL
  4079. CALL _getlabel
  4080. PUSH EAX
  4081. MOV EAX,_locptr
  4082. PUSH EAX
  4083. XOR EAX,EAX
  4084. PUSH EAX
  4085. MOV CL,7
  4086. CALL _addsym
  4087. ADD ESP,28
  4088. MOV DWORD [_cptr],EAX
  4089. _1_425:
  4090. MOV EAX,[_cptr]
  4091. MOV EBX,5
  4092. ADD EAX,EBX
  4093. MOV EBX,2
  4094. ADD EAX,EBX
  4095. PUSH EAX
  4096. MOV EAX,4
  4097. PUSH EAX
  4098. MOV CL,2
  4099. CALL _getint
  4100. ADD ESP,8
  4101. POP EBP
  4102. RET
  4103. _1_414 DB 110,111,116,32,97,32,108,97,98,101
  4104.  DB 108,0,100,117,112,108,105,99,97,116
  4105.  DB 101,32,108,97,98,101,108,0
  4106.  
  4107. _doreturn:
  4108. PUSH EBP
  4109. MOV EBP,ESP
  4110. ADD ESP,-4
  4111. XOR CL,CL
  4112. CALL _endst
  4113. OR EAX,EAX
  4114. JE _1_428
  4115. JMP _1_427
  4116. _1_428:
  4117. MOV EAX,1
  4118. PUSH EAX
  4119. MOV CL,1
  4120. CALL _doexpr
  4121. ADD ESP,4
  4122. _1_427:
  4123. LEA EAX,[EBP-4]
  4124. PUSH EAX
  4125. MOV EAX,[_csp]
  4126. POP EBX
  4127. MOV [EBX],EAX
  4128. MOV EAX,67
  4129. PUSH EAX
  4130. XOR EAX,EAX
  4131. PUSH EAX
  4132. MOV CL,2
  4133. CALL _gen
  4134. ADD ESP,8
  4135. LEA EAX,[EBP-4]
  4136. MOV EBX,EAX
  4137. MOV EAX, [EBX]
  4138. MOV DWORD [_csp],EAX
  4139. MOV ESP,EBP
  4140. POP EBP
  4141. RET
  4142.  
  4143. _dobreak:
  4144. PUSH EBP
  4145. MOV EBP,ESP
  4146. ADD ESP,-4
  4147. LEA EAX,[EBP-4]
  4148. PUSH EAX
  4149. MOV EAX,[_wqptr]
  4150. PUSH EAX
  4151. MOV CL,1
  4152. CALL _readwhil
  4153. ADD ESP,4
  4154. POP EBX
  4155. MOV [EBX],EAX
  4156. OR EAX,EAX
  4157. JE _1_431
  4158. JMP _1_430
  4159. _1_431:
  4160. MOV ESP,EBP
  4161. POP EBP
  4162. RET
  4163. _1_430:
  4164. MOV EAX,2
  4165. PUSH EAX
  4166. LEA EAX,[EBP-4]
  4167. MOV EBX,EAX
  4168. MOV EAX, [EBX]
  4169. MOV EBX,EAX
  4170. MOV EAX, [EBX]
  4171. PUSH EAX
  4172. MOV CL,2
  4173. CALL _gen
  4174. ADD ESP,8
  4175. MOV EAX,40
  4176. PUSH EAX
  4177. LEA EAX,[EBP-4]
  4178. MOV EBX,EAX
  4179. MOV EAX, [EBX]
  4180. MOV EBX,8
  4181. ADD EAX,EBX
  4182. MOV EBX,EAX
  4183. MOV EAX, [EBX]
  4184. PUSH EAX
  4185. MOV CL,2
  4186. CALL _gen
  4187. ADD ESP,8
  4188. MOV ESP,EBP
  4189. POP EBP
  4190. RET
  4191.  
  4192. _docont:
  4193. PUSH EBP
  4194. MOV EBP,ESP
  4195. ADD ESP,-4
  4196. LEA EAX,[EBP-4]
  4197. PUSH EAX
  4198. MOV EAX,[_wqptr]
  4199. POP EBX
  4200. MOV [EBX],EAX
  4201. _1_433:
  4202. LEA EAX,[EBP-4]
  4203. PUSH EAX
  4204. LEA EAX,[EBP-4]
  4205. MOV EBX,EAX
  4206. MOV EAX, [EBX]
  4207. PUSH EAX
  4208. MOV CL,1
  4209. CALL _readwhil
  4210. ADD ESP,4
  4211. POP EBX
  4212. MOV [EBX],EAX
  4213. OR EAX,EAX
  4214. JE _1_436
  4215. JMP _1_435
  4216. _1_436:
  4217. MOV ESP,EBP
  4218. POP EBP
  4219. RET
  4220. _1_435:
  4221. LEA EAX,[EBP-4]
  4222. MOV EBX,EAX
  4223. MOV EAX, [EBX]
  4224. MOV EBX,4
  4225. ADD EAX,EBX
  4226. MOV EBX,EAX
  4227. MOV EAX, [EBX]
  4228. OR EAX,EAX
  4229. JNE _1_438
  4230. JMP _1_437
  4231. _1_438:
  4232. JMP _1_434
  4233. _1_437:
  4234. JMP _1_433
  4235. _1_434:
  4236. MOV EAX,2
  4237. PUSH EAX
  4238. LEA EAX,[EBP-4]
  4239. MOV EBX,EAX
  4240. MOV EAX, [EBX]
  4241. MOV EBX,EAX
  4242. MOV EAX, [EBX]
  4243. PUSH EAX
  4244. MOV CL,2
  4245. CALL _gen
  4246. ADD ESP,8
  4247. MOV EAX,40
  4248. PUSH EAX
  4249. LEA EAX,[EBP-4]
  4250. MOV EBX,EAX
  4251. MOV EAX, [EBX]
  4252. MOV EBX,4
  4253. ADD EAX,EBX
  4254. MOV EBX,EAX
  4255. MOV EAX, [EBX]
  4256. PUSH EAX
  4257. MOV CL,2
  4258. CALL _gen
  4259. ADD ESP,8
  4260. MOV ESP,EBP
  4261. POP EBP
  4262. RET
  4263.  
  4264. _doasm:
  4265. PUSH EBP
  4266. MOV EBP,ESP
  4267. XOR EAX,EAX
  4268. MOV DWORD [_ccode],EAX
  4269. _1_440:
  4270. XOR CL,CL
  4271. CALL _inline
  4272. MOV EAX,_1_439+0
  4273. PUSH EAX
  4274. MOV CL,1
  4275. CALL _match
  4276. ADD ESP,4
  4277. OR EAX,EAX
  4278. JNE _1_443
  4279. JMP _1_442
  4280. _1_443:
  4281. JMP _1_441
  4282. _1_442:
  4283. MOV EAX,[_eof]
  4284. OR EAX,EAX
  4285. JNE _1_445
  4286. JMP _1_444
  4287. _1_445:
  4288. JMP _1_441
  4289. _1_444:
  4290. MOV EAX,[_line]
  4291. PUSH EAX
  4292. MOV EAX,[_output]
  4293. PUSH EAX
  4294. MOV CL,2
  4295. CALL _fputs
  4296. ADD ESP,8
  4297. JMP _1_440
  4298. _1_441:
  4299. XOR CL,CL
  4300. CALL _kill
  4301. MOV EAX,1
  4302. MOV DWORD [_ccode],EAX
  4303. POP EBP
  4304. RET
  4305. _1_439 DB 35,101,110,100,97,115,109,0
  4306.  
  4307. _doexpr:
  4308. PUSH EBP
  4309. MOV EBP,ESP
  4310. ADD ESP,-16
  4311. LEA EAX,[EBP+8]
  4312. MOV EBX,EAX
  4313. MOV EAX, [EBX]
  4314. MOV DWORD [_usexpr],EAX
  4315. _1_447:
  4316. LEA EAX,[EBP-12]
  4317. PUSH EAX
  4318. LEA EAX,[EBP-16]
  4319. PUSH EAX
  4320. MOV CL,2
  4321. CALL _setstage
  4322. ADD ESP,8
  4323. LEA EAX,[EBP-4]
  4324. PUSH EAX
  4325. LEA EAX,[EBP-8]
  4326. PUSH EAX
  4327. MOV CL,2
  4328. CALL _expressi
  4329. ADD ESP,8
  4330. LEA EAX,[EBP-12]
  4331. MOV EBX,EAX
  4332. MOV EAX, [EBX]
  4333. PUSH EAX
  4334. LEA EAX,[EBP-16]
  4335. MOV EBX,EAX
  4336. MOV EAX, [EBX]
  4337. PUSH EAX
  4338. MOV CL,2
  4339. CALL _clearsta
  4340. ADD ESP,8
  4341. MOV EAX,[_ch]
  4342. MOV EBX,EAX
  4343. MOV EAX,44
  4344. CALL __ne
  4345. OR EAX,EAX
  4346. JNE _1_450
  4347. JMP _1_449
  4348. _1_450:
  4349. JMP _1_448
  4350. _1_449:
  4351. MOV EAX,1
  4352. PUSH EAX
  4353. MOV CL,1
  4354. CALL _bump
  4355. ADD ESP,4
  4356. JMP _1_447
  4357. _1_448:
  4358. MOV EAX,1
  4359. MOV DWORD [_usexpr],EAX
  4360. MOV ESP,EBP
  4361. POP EBP
  4362. RET
  4363.  
  4364. _ask:
  4365. PUSH EBP
  4366. MOV EBP,ESP
  4367. ADD ESP,-8
  4368. LEA EAX,[EBP-4]
  4369. PUSH EAX
  4370. XOR EAX,EAX
  4371. MOV DWORD [_nxtlab],EAX
  4372. MOV DWORD [_listfp],EAX
  4373. POP EBX
  4374. MOV [EBX],EAX
  4375. MOV EAX,__iob
  4376. MOV EBX,32
  4377. ADD EAX,EBX
  4378. MOV DWORD [_output],EAX
  4379. XOR EAX,EAX
  4380. MOV BYTE [_optimize],AL
  4381. XOR EAX,EAX
  4382. MOV BYTE [_pause],AL
  4383. MOV BYTE [_monitor],AL
  4384. MOV BYTE [_alarm],AL
  4385. MOV EAX,[_mline]
  4386. MOV DWORD [_line],EAX
  4387. _1_452:
  4388. LEA EAX,[EBP-4]
  4389. MOV EBX,EAX
  4390. MOV EAX, [EBX]
  4391. INC EAX
  4392. MOV [EBX],EAX
  4393. PUSH EAX
  4394. MOV EAX,[_line]
  4395. PUSH EAX
  4396. MOV EAX,128
  4397. PUSH EAX
  4398. MOV EAX,[_argcs]
  4399. PUSH EAX
  4400. MOV EAX,[_argvs]
  4401. PUSH EAX
  4402. MOV CL,5
  4403. CALL _getarg
  4404. ADD ESP,20
  4405. MOV EBX,EAX
  4406. MOV EAX,-1
  4407. CALL __ne
  4408. OR EAX,EAX
  4409. JNE _1_454
  4410. JMP _1_453
  4411. _1_454:
  4412. MOV EAX,[_line]
  4413. MOV EBX,EAX
  4414. MOVSX EAX,BYTE [EBX]
  4415. MOV EBX,EAX
  4416. MOV EAX,45
  4417. CALL __ne
  4418. OR EAX,EAX
  4419. JNE _1_458
  4420. JMP _1_456
  4421. _1_458:
  4422. MOV EAX,[_line]
  4423. MOV EBX,EAX
  4424. MOVSX EAX,BYTE [EBX]
  4425. MOV EBX,EAX
  4426. MOV EAX,47
  4427. CALL __ne
  4428. OR EAX,EAX
  4429. JNE _1_459
  4430. JMP _1_456
  4431. _1_459:
  4432. MOV EAX,1
  4433. JMP _1_457
  4434. _1_456:
  4435. XOR EAX,EAX
  4436. _1_457:
  4437. OR EAX,EAX
  4438. JNE _1_460
  4439. JMP _1_455
  4440. _1_460:
  4441. JMP _1_452
  4442. _1_455:
  4443. MOV EAX,[_line]
  4444. MOV EBX,1
  4445. ADD EAX,EBX
  4446. MOV EBX,EAX
  4447. MOVSX EAX,BYTE [EBX]
  4448. PUSH EAX
  4449. MOV CL,1
  4450. CALL _toupper
  4451. ADD ESP,4
  4452. MOV EBX,EAX
  4453. MOV EAX,76
  4454. CALL __eq
  4455. OR EAX,EAX
  4456. JNE _1_464
  4457. JMP _1_462
  4458. _1_464:
  4459. MOV EAX,[_line]
  4460. MOV EBX,2
  4461. ADD EAX,EBX
  4462. MOV EBX,EAX
  4463. MOVSX EAX,BYTE [EBX]
  4464. PUSH EAX
  4465. MOV CL,1
  4466. CALL _isdigit
  4467. ADD ESP,4
  4468. OR EAX,EAX
  4469. JNE _1_465
  4470. JMP _1_462
  4471. _1_465:
  4472. MOV EAX,[_line]
  4473. MOV EBX,3
  4474. ADD EAX,EBX
  4475. MOV EBX,EAX
  4476. MOVSX EAX,BYTE [EBX]
  4477. MOV EBX,EAX
  4478. MOV EAX,32
  4479. CALL __le
  4480. OR EAX,EAX
  4481. JNE _1_466
  4482. JMP _1_462
  4483. _1_466:
  4484. MOV EAX,1
  4485. JMP _1_463
  4486. _1_462:
  4487. XOR EAX,EAX
  4488. _1_463:
  4489. OR EAX,EAX
  4490. JNE _1_467
  4491. JMP _1_461
  4492. _1_467:
  4493. MOV EAX,[_line]
  4494. MOV EBX,2
  4495. ADD EAX,EBX
  4496. MOV EBX,EAX
  4497. MOVSX EAX,BYTE [EBX]
  4498. MOV EBX,EAX
  4499. MOV EAX,48
  4500. XCHG EAX,EBX
  4501. SUB EAX,EBX
  4502. MOV DWORD [_listfp],EAX
  4503. JMP _1_452
  4504. _1_461:
  4505. MOV EAX,[_line]
  4506. MOV EBX,1
  4507. ADD EAX,EBX
  4508. MOV EBX,EAX
  4509. MOVSX EAX,BYTE [EBX]
  4510. PUSH EAX
  4511. MOV CL,1
  4512. CALL _toupper
  4513. ADD ESP,4
  4514. MOV EBX,EAX
  4515. MOV EAX,78
  4516. CALL __eq
  4517. OR EAX,EAX
  4518. JNE _1_471
  4519. JMP _1_469
  4520. _1_471:
  4521. MOV EAX,[_line]
  4522. MOV EBX,2
  4523. ADD EAX,EBX
  4524. MOV EBX,EAX
  4525. MOVSX EAX,BYTE [EBX]
  4526. PUSH EAX
  4527. MOV CL,1
  4528. CALL _toupper
  4529. ADD ESP,4
  4530. MOV EBX,EAX
  4531. MOV EAX,79
  4532. CALL __eq
  4533. OR EAX,EAX
  4534. JNE _1_472
  4535. JMP _1_469
  4536. _1_472:
  4537. MOV EAX,[_line]
  4538. MOV EBX,3
  4539. ADD EAX,EBX
  4540. MOV EBX,EAX
  4541. MOVSX EAX,BYTE [EBX]
  4542. MOV EBX,EAX
  4543. MOV EAX,32
  4544. CALL __le
  4545. OR EAX,EAX
  4546. JNE _1_473
  4547. JMP _1_469
  4548. _1_473:
  4549. MOV EAX,1
  4550. JMP _1_470
  4551. _1_469:
  4552. XOR EAX,EAX
  4553. _1_470:
  4554. OR EAX,EAX
  4555. JNE _1_474
  4556. JMP _1_468
  4557. _1_474:
  4558. XOR EAX,EAX
  4559. MOV BYTE [_optimize],AL
  4560. JMP _1_452
  4561. _1_468:
  4562. MOV EAX,[_line]
  4563. MOV EBX,1
  4564. ADD EAX,EBX
  4565. MOV EBX,EAX
  4566. MOVSX EAX,BYTE [EBX]
  4567. PUSH EAX
  4568. MOV CL,1
  4569. CALL _toupper
  4570. ADD ESP,4
  4571. MOV EBX,EAX
  4572. MOV EAX,68
  4573. CALL __eq
  4574. OR EAX,EAX
  4575. JNE _1_476
  4576. JMP _1_475
  4577. _1_476:
  4578. LEA EAX,[EBP-8]
  4579. MOV EBX,EAX
  4580. XOR EAX,EAX
  4581. MOV [EBX],EAX
  4582. MOV EAX,[_line]
  4583. PUSH EAX
  4584. LEA EAX,[EBP-8]
  4585. MOV EBX,EAX
  4586. MOV EAX, [EBX]
  4587. MOV EBX,2
  4588. ADD EAX,EBX
  4589. POP EBX
  4590. ADD EAX,EBX
  4591. MOV EBX,EAX
  4592. MOVSX EAX,BYTE [EBX]
  4593. MOV DWORD [_ch],EAX
  4594. MOV EAX,[_line]
  4595. PUSH EAX
  4596. LEA EAX,[EBP-8]
  4597. MOV EBX,EAX
  4598. MOV EAX, [EBX]
  4599. POP EBX
  4600. ADD EAX,EBX
  4601. MOV EBX,2
  4602. ADD EAX,EBX
  4603. MOV DWORD [_lptr],EAX
  4604. XOR CL,CL
  4605. CALL _dodefine
  4606. JMP _1_452
  4607. _1_475:
  4608. MOV EAX,[_line]
  4609. MOV EBX,2
  4610. ADD EAX,EBX
  4611. MOV EBX,EAX
  4612. MOVSX EAX,BYTE [EBX]
  4613. MOV EBX,EAX
  4614. MOV EAX,32
  4615. CALL __le
  4616. OR EAX,EAX
  4617. JNE _1_478
  4618. JMP _1_477
  4619. _1_478:
  4620. MOV EAX,[_line]
  4621. MOV EBX,1
  4622. ADD EAX,EBX
  4623. MOV EBX,EAX
  4624. MOVSX EAX,BYTE [EBX]
  4625. PUSH EAX
  4626. MOV CL,1
  4627. CALL _toupper
  4628. ADD ESP,4
  4629. MOV EBX,EAX
  4630. MOV EAX,65
  4631. CALL __eq
  4632. OR EAX,EAX
  4633. JNE _1_480
  4634. JMP _1_479
  4635. _1_480:
  4636. MOV EAX,1
  4637. MOV BYTE [_alarm],AL
  4638. JMP _1_452
  4639. _1_479:
  4640. MOV EAX,[_line]
  4641. MOV EBX,1
  4642. ADD EAX,EBX
  4643. MOV EBX,EAX
  4644. MOVSX EAX,BYTE [EBX]
  4645. PUSH EAX
  4646. MOV CL,1
  4647. CALL _toupper
  4648. ADD ESP,4
  4649. MOV EBX,EAX
  4650. MOV EAX,77
  4651. CALL __eq
  4652. OR EAX,EAX
  4653. JNE _1_482
  4654. JMP _1_481
  4655. _1_482:
  4656. MOV EAX,1
  4657. MOV BYTE [_monitor],AL
  4658. JMP _1_452
  4659. _1_481:
  4660. MOV EAX,[_line]
  4661. MOV EBX,1
  4662. ADD EAX,EBX
  4663. MOV EBX,EAX
  4664. MOVSX EAX,BYTE [EBX]
  4665. PUSH EAX
  4666. MOV CL,1
  4667. CALL _toupper
  4668. ADD ESP,4
  4669. MOV EBX,EAX
  4670. MOV EAX,80
  4671. CALL __eq
  4672. OR EAX,EAX
  4673. JNE _1_484
  4674. JMP _1_483
  4675. _1_484:
  4676. MOV EAX,1
  4677. MOV BYTE [_pause],AL
  4678. JMP _1_452
  4679. _1_483:
  4680. _1_477:
  4681. MOV EAX,_1_451+0
  4682. PUSH EAX
  4683. MOV EAX,__iob
  4684. MOV EBX,64
  4685. ADD EAX,EBX
  4686. PUSH EAX
  4687. MOV CL,2
  4688. CALL _fputs
  4689. ADD ESP,8
  4690. MOV EAX,_1_451+57
  4691. PUSH EAX
  4692. MOV EAX,__iob
  4693. MOV EBX,64
  4694. ADD EAX,EBX
  4695. PUSH EAX
  4696. MOV CL,2
  4697. CALL _fputs
  4698. ADD ESP,8
  4699. MOV EAX,_1_451+74
  4700. PUSH EAX
  4701. MOV EAX,__iob
  4702. MOV EBX,64
  4703. ADD EAX,EBX
  4704. PUSH EAX
  4705. MOV CL,2
  4706. CALL _fputs
  4707. ADD ESP,8
  4708. MOV EAX,_1_451+89
  4709. PUSH EAX
  4710. MOV EAX,__iob
  4711. MOV EBX,64
  4712. ADD EAX,EBX
  4713. PUSH EAX
  4714. MOV CL,2
  4715. CALL _fputs
  4716. ADD ESP,8
  4717. MOV EAX,_1_451+104
  4718. PUSH EAX
  4719. MOV EAX,__iob
  4720. MOV EBX,64
  4721. ADD EAX,EBX
  4722. PUSH EAX
  4723. MOV CL,2
  4724. CALL _fputs
  4725. ADD ESP,8
  4726. MOV EAX,_1_451+118
  4727. PUSH EAX
  4728. MOV EAX,__iob
  4729. MOV EBX,64
  4730. ADD EAX,EBX
  4731. PUSH EAX
  4732. MOV CL,2
  4733. CALL _fputs
  4734. ADD ESP,8
  4735. MOV EAX,_1_451+139
  4736. PUSH EAX
  4737. MOV EAX,__iob
  4738. MOV EBX,64
  4739. ADD EAX,EBX
  4740. PUSH EAX
  4741. MOV CL,2
  4742. CALL _fputs
  4743. ADD ESP,8
  4744. MOV EAX,7
  4745. PUSH EAX
  4746. MOV CL,1
  4747. CALL _OS_exit
  4748. ADD ESP,4
  4749. JMP _1_452
  4750. _1_453:
  4751. MOV ESP,EBP
  4752. POP EBP
  4753. RET
  4754. _1_451 DB 117,115,97,103,101,58,32,99,99,32
  4755.  DB 91,102,105,108,101,93,46,46,46,32
  4756.  DB 91,45,109,93,32,91,45,97,93,32
  4757.  DB 91,45,112,93,32,91,45,108,35,93
  4758.  DB 32,91,45,110,111,93,32,91,45,100
  4759.  DB 60,105,100,62,93,10,0,32,45,109
  4760.  DB 32,32,32,32,32,109,111,110,105,116
  4761.  DB 111,114,10,0,32,45,97,32,32,32
  4762.  DB 32,32,97,108,97,114,109,10,0,32
  4763.  DB 45,112,32,32,32,32,32,112,97,117
  4764.  DB 115,101,10,0,32,45,108,35,32,32
  4765.  DB 32,32,108,105,115,116,10,0,32,45
  4766.  DB 110,111,32,32,32,32,110,111,32,111
  4767.  DB 112,116,105,109,105,122,101,10,0,32
  4768.  DB 45,100,60,105,100,62,32,112,114,101
  4769.  DB 45,35,100,101,102,105,110,101,32,105
  4770.  DB 100,10,0
  4771.  
  4772. _openfile:
  4773. PUSH EBP
  4774. MOV EBP,ESP
  4775. ADD ESP,-28
  4776. MOV EAX,-1
  4777. MOV DWORD [_input],EAX
  4778. _1_486:
  4779. MOV EAX,[_filearg]
  4780. INC EAX
  4781. MOV DWORD [_filearg],EAX
  4782. PUSH EAX
  4783. MOV EAX,[_pline]
  4784. PUSH EAX
  4785. MOV EAX,128
  4786. PUSH EAX
  4787. MOV EAX,[_argcs]
  4788. PUSH EAX
  4789. MOV EAX,[_argvs]
  4790. PUSH EAX
  4791. MOV CL,5
  4792. CALL _getarg
  4793. ADD ESP,20
  4794. MOV EBX,EAX
  4795. MOV EAX,-1
  4796. CALL __ne
  4797. OR EAX,EAX
  4798. JNE _1_488
  4799. JMP _1_487
  4800. _1_488:
  4801. MOV EAX,[_pline]
  4802. MOV EBX,EAX
  4803. MOVSX EAX,BYTE [EBX]
  4804. MOV EBX,EAX
  4805. MOV EAX,45
  4806. CALL __eq
  4807. OR EAX,EAX
  4808. JE _1_492
  4809. JMP _1_490
  4810. _1_492:
  4811. MOV EAX,[_pline]
  4812. MOV EBX,EAX
  4813. MOVSX EAX,BYTE [EBX]
  4814. MOV EBX,EAX
  4815. MOV EAX,47
  4816. CALL __eq
  4817. OR EAX,EAX
  4818. JE _1_493
  4819. JMP _1_490
  4820. _1_493:
  4821. XOR EAX,EAX
  4822. JMP _1_491
  4823. _1_490:
  4824. MOV EAX,1
  4825. _1_491:
  4826. OR EAX,EAX
  4827. JNE _1_494
  4828. JMP _1_489
  4829. _1_494:
  4830. JMP _1_486
  4831. _1_489:
  4832. LEA EAX,[EBP-28]
  4833. MOV EBX,EAX
  4834. XOR EAX,EAX
  4835. MOV [EBX],EAX
  4836. LEA EAX,[EBP-20]
  4837. MOV EBX,EAX
  4838. MOV EAX,-1
  4839. MOV [EBX],EAX
  4840. LEA EAX,[EBP-24]
  4841. MOV EBX,EAX
  4842. XOR EAX,EAX
  4843. MOV [EBX],EAX
  4844. _1_495:
  4845. MOV EAX,[_pline]
  4846. PUSH EAX
  4847. LEA EAX,[EBP-20]
  4848. MOV EBX,EAX
  4849. MOV EAX, [EBX]
  4850. INC EAX
  4851. MOV [EBX],EAX
  4852. POP EBX
  4853. ADD EAX,EBX
  4854. MOV EBX,EAX
  4855. MOVSX EAX,BYTE [EBX]
  4856. OR EAX,EAX
  4857. JNE _1_497
  4858. JMP _1_496
  4859. _1_497:
  4860. MOV EAX,[_pline]
  4861. PUSH EAX
  4862. LEA EAX,[EBP-20]
  4863. MOV EBX,EAX
  4864. MOV EAX, [EBX]
  4865. POP EBX
  4866. ADD EAX,EBX
  4867. MOV EBX,EAX
  4868. MOVSX EAX,BYTE [EBX]
  4869. MOV EBX,EAX
  4870. MOV EAX,46
  4871. CALL __eq
  4872. OR EAX,EAX
  4873. JNE _1_499
  4874. JMP _1_498
  4875. _1_499:
  4876. LEA EAX,[EBP-28]
  4877. MOV EBX,EAX
  4878. MOV EAX,1
  4879. MOV [EBX],EAX
  4880. JMP _1_496
  4881. _1_498:
  4882. LEA EAX,[EBP-24]
  4883. MOV EBX,EAX
  4884. MOV EAX, [EBX]
  4885. MOV EBX,EAX
  4886. MOV EAX,10
  4887. CALL __lt
  4888. OR EAX,EAX
  4889. JNE _1_501
  4890. JMP _1_500
  4891. _1_501:
  4892. LEA EAX,[EBP-16]
  4893. PUSH EAX
  4894. LEA EAX,[EBP-24]
  4895. MOV EBX,EAX
  4896. MOV EAX, [EBX]
  4897. INC EAX
  4898. MOV [EBX],EAX
  4899. DEC EAX
  4900. POP EBX
  4901. ADD EAX,EBX
  4902. PUSH EAX
  4903. MOV EAX,[_pline]
  4904. PUSH EAX
  4905. LEA EAX,[EBP-20]
  4906. MOV EBX,EAX
  4907. MOV EAX, [EBX]
  4908. POP EBX
  4909. ADD EAX,EBX
  4910. MOV EBX,EAX
  4911. MOVSX EAX,BYTE [EBX]
  4912. POP EBX
  4913. MOV [EBX],AL
  4914. _1_500:
  4915. JMP _1_495
  4916. _1_496:
  4917. LEA EAX,[EBP-28]
  4918. MOV EBX,EAX
  4919. MOV EAX, [EBX]
  4920. CALL __lneg
  4921. OR EAX,EAX
  4922. JNE _1_503
  4923. JMP _1_502
  4924. _1_503:
  4925. MOV EAX,[_pline]
  4926. PUSH EAX
  4927. LEA EAX,[EBP-20]
  4928. MOV EBX,EAX
  4929. MOV EAX, [EBX]
  4930. POP EBX
  4931. ADD EAX,EBX
  4932. PUSH EAX
  4933. MOV EAX,_1_485+0
  4934. PUSH EAX
  4935. MOV CL,2
  4936. CALL _strcpy
  4937. ADD ESP,8
  4938. _1_502:
  4939. MOV EAX,[_pline]
  4940. PUSH EAX
  4941. MOV EAX,_1_485+3
  4942. PUSH EAX
  4943. MOV CL,2
  4944. CALL _mustopen
  4945. ADD ESP,8
  4946. MOV DWORD [_input],EAX
  4947. MOV EAX,[_files]
  4948. CALL __lneg
  4949. OR EAX,EAX
  4950. JNE _1_505
  4951. JMP _1_504
  4952. _1_505:
  4953. LEA EAX,[EBP-16]
  4954. PUSH EAX
  4955. LEA EAX,[EBP-24]
  4956. MOV EBX,EAX
  4957. MOV EAX, [EBX]
  4958. POP EBX
  4959. ADD EAX,EBX
  4960. PUSH EAX
  4961. MOV EAX,_1_485+5
  4962. PUSH EAX
  4963. MOV CL,2
  4964. CALL _strcpy
  4965. ADD ESP,8
  4966. LEA EAX,[EBP-16]
  4967. PUSH EAX
  4968. MOV EAX,_1_485+10
  4969. PUSH EAX
  4970. MOV CL,2
  4971. CALL _mustopen
  4972. ADD ESP,8
  4973. MOV DWORD [_output],EAX
  4974. _1_504:
  4975. MOV EAX,1
  4976. MOV DWORD [_files],EAX
  4977. XOR CL,CL
  4978. CALL _kill
  4979. MOV ESP,EBP
  4980. POP EBP
  4981. RET
  4982. JMP _1_486
  4983. _1_487:
  4984. MOV EAX,[_files]
  4985. INC EAX
  4986. MOV DWORD [_files],EAX
  4987. DEC EAX
  4988. OR EAX,EAX
  4989. JNE _1_507
  4990. JMP _1_506
  4991. _1_507:
  4992. MOV EAX,1
  4993. MOV DWORD [_eof],EAX
  4994. JMP _1_508
  4995. _1_506:
  4996. MOV EAX,__iob
  4997. MOV DWORD [_input],EAX
  4998. _1_508:
  4999. XOR CL,CL
  5000. CALL _kill
  5001. MOV ESP,EBP
  5002. POP EBP
  5003. RET
  5004. _1_485 DB 46,67,0,114,0,46,65,83,77,0
  5005.  DB 119,0
  5006.  
  5007. _mustopen:
  5008. PUSH EBP
  5009. MOV EBP,ESP
  5010. ADD ESP,-4
  5011. LEA EAX,[EBP-4]
  5012. PUSH EAX
  5013. LEA EAX,[EBP+12]
  5014. MOV EBX,EAX
  5015. MOV EAX, [EBX]
  5016. PUSH EAX
  5017. LEA EAX,[EBP+8]
  5018. MOV EBX,EAX
  5019. MOV EAX, [EBX]
  5020. PUSH EAX
  5021. MOV CL,2
  5022. CALL _OS_fopen
  5023. ADD ESP,8
  5024. POP EBX
  5025. MOV [EBX],EAX
  5026. OR EAX,EAX
  5027. JNE _1_511
  5028. JMP _1_510
  5029. _1_511:
  5030. LEA EAX,[EBP-4]
  5031. MOV EBX,EAX
  5032. MOV EAX, [EBX]
  5033. MOV ESP,EBP
  5034. POP EBP
  5035. RET
  5036. _1_510:
  5037. MOV EAX,_1_509+0
  5038. PUSH EAX
  5039. MOV EAX,__iob
  5040. MOV EBX,64
  5041. ADD EAX,EBX
  5042. PUSH EAX
  5043. MOV CL,2
  5044. CALL _fputs
  5045. ADD ESP,8
  5046. LEA EAX,[EBP+12]
  5047. MOV EBX,EAX
  5048. MOV EAX, [EBX]
  5049. PUSH EAX
  5050. MOV EAX,__iob
  5051. MOV EBX,64
  5052. ADD EAX,EBX
  5053. PUSH EAX
  5054. MOV CL,2
  5055. CALL _lout
  5056. ADD ESP,8
  5057. MOV EAX,7
  5058. PUSH EAX
  5059. MOV CL,1
  5060. CALL _OS_exit
  5061. ADD ESP,4
  5062. MOV ESP,EBP
  5063. POP EBP
  5064. RET
  5065. _1_509 DB 111,112,101,110,32,101,114,114,111,114
  5066.  DB 32,111,110,32,0
  5067.