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