-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdisassembled.asm
2365 lines (2365 loc) · 41.2 KB
/
disassembled.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
0x0000: nop
0x0001: nop
0x0002: out 0x57
0x0004: out 0x65
0x0006: out 0x6c
0x0008: out 0x63
0x000a: out 0x6f
0x000c: out 0x6d
0x000e: out 0x65
0x0010: out 0x20
0x0012: out 0x74
0x0014: out 0x6f
0x0016: out 0x20
0x0018: out 0x74
0x001a: out 0x68
0x001c: out 0x65
0x001e: out 0x20
0x0020: out 0x53
0x0022: out 0x79
0x0024: out 0x6e
0x0026: out 0x61
0x0028: out 0x63
0x002a: out 0x6f
0x002c: out 0x72
0x002e: out 0x20
0x0030: out 0x43
0x0032: out 0x68
0x0034: out 0x61
0x0036: out 0x6c
0x0038: out 0x6c
0x003a: out 0x65
0x003c: out 0x6e
0x003e: out 0x67
0x0040: out 0x65
0x0042: out 0x21
0x0044: out 0xa
0x0046: out 0x50
0x0048: out 0x6c
0x004a: out 0x65
0x004c: out 0x61
0x004e: out 0x73
0x0050: out 0x65
0x0052: out 0x20
0x0054: out 0x72
0x0056: out 0x65
0x0058: out 0x63
0x005a: out 0x6f
0x005c: out 0x72
0x005e: out 0x64
0x0060: out 0x20
0x0062: out 0x79
0x0064: out 0x6f
0x0066: out 0x75
0x0068: out 0x72
0x006a: out 0x20
0x006c: out 0x70
0x006e: out 0x72
0x0070: out 0x6f
0x0072: out 0x67
0x0074: out 0x72
0x0076: out 0x65
0x0078: out 0x73
0x007a: out 0x73
0x007c: out 0x20
0x007e: out 0x62
0x0080: out 0x79
0x0082: out 0x20
0x0084: out 0x70
0x0086: out 0x75
0x0088: out 0x74
0x008a: out 0x74
0x008c: out 0x69
0x008e: out 0x6e
0x0090: out 0x67
0x0092: out 0x20
0x0094: out 0x63
0x0096: out 0x6f
0x0098: out 0x64
0x009a: out 0x65
0x009c: out 0x73
0x009e: out 0x20
0x00a0: out 0x6c
0x00a2: out 0x69
0x00a4: out 0x6b
0x00a6: out 0x65
0x00a8: out 0xa
0x00aa: out 0x74
0x00ac: out 0x68
0x00ae: out 0x69
0x00b0: out 0x73
0x00b2: out 0x20
0x00b4: out 0x6f
0x00b6: out 0x6e
0x00b8: out 0x65
0x00ba: out 0x20
0x00bc: out 0x69
0x00be: out 0x6e
0x00c0: out 0x74
0x00c2: out 0x6f
0x00c4: out 0x20
0x00c6: out 0x74
0x00c8: out 0x68
0x00ca: out 0x65
0x00cc: out 0x20
0x00ce: out 0x63
0x00d0: out 0x68
0x00d2: out 0x61
0x00d4: out 0x6c
0x00d6: out 0x6c
0x00d8: out 0x65
0x00da: out 0x6e
0x00dc: out 0x67
0x00de: out 0x65
0x00e0: out 0x20
0x00e2: out 0x77
0x00e4: out 0x65
0x00e6: out 0x62
0x00e8: out 0x73
0x00ea: out 0x69
0x00ec: out 0x74
0x00ee: out 0x65
0x00f0: out 0x3a
0x00f2: out 0x20
0x00f4: out 0x45
0x00f6: out 0x64
0x00f8: out 0x6d
0x00fa: out 0x52
0x00fc: out 0x71
0x00fe: out 0x76
0x0100: out 0x71
0x0102: out 0x44
0x0104: out 0x51
0x0106: out 0x58
0x0108: out 0x6b
0x010a: out 0x74
0x010c: out 0xa
0x010e: out 0xa
0x0110: out 0x45
0x0112: out 0x78
0x0114: out 0x65
0x0116: out 0x63
0x0118: out 0x75
0x011a: out 0x74
0x011c: out 0x69
0x011e: out 0x6e
0x0120: out 0x67
0x0122: out 0x20
0x0124: out 0x73
0x0126: out 0x65
0x0128: out 0x6c
0x012a: out 0x66
0x012c: out 0x2d
0x012e: out 0x74
0x0130: out 0x65
0x0132: out 0x73
0x0134: out 0x74
0x0136: out 0x2e
0x0138: out 0x2e
0x013a: out 0x2e
0x013c: out 0xa
0x013e: out 0xa
0x0140: jmp 0x15b
0x0142: out 0x6a
0x0144: out 0x6d
0x0146: out 0x70
0x0148: out 0x20
0x014a: out 0x66
0x014c: out 0x61
0x014e: out 0x69
0x0150: out 0x6c
0x0152: out 0x73
0x0154: out 0xa
0x0156: hlt
0x0157: nop
0x0158: nop
0x0159: nop
0x015a: nop
0x015b: nop
0x015c: nop
0x015d: nop
0x015e: nop
0x015f: nop
0x0160: jmp 0x166
0x0162: jmp 0x170
0x0164: jmp 0x18d
0x0166: jmp 0x1e4
0x0168: jmp 0x1a8
0x016a: jmp 0x1c5
0x016c: nop
0x016d: nop
0x016e: nop
0x016f: nop
0x0170: out 0x6a
0x0172: out 0x6d
0x0174: out 0x70
0x0176: out 0x20
0x0178: out 0x6c
0x017a: out 0x61
0x017c: out 0x6e
0x017e: out 0x64
0x0180: out 0x73
0x0182: out 0x20
0x0184: out 0x2d
0x0186: out 0x32
0x0188: out 0xa
0x018a: hlt
0x018b: nop
0x018c: nop
0x018d: out 0x6a
0x018f: out 0x6d
0x0191: out 0x70
0x0193: out 0x20
0x0195: out 0x6c
0x0197: out 0x61
0x0199: out 0x6e
0x019b: out 0x64
0x019d: out 0x73
0x019f: out 0x20
0x01a1: out 0x2d
0x01a3: out 0x31
0x01a5: out 0xa
0x01a7: hlt
0x01a8: nop
0x01a9: nop
0x01aa: out 0x6a
0x01ac: out 0x6d
0x01ae: out 0x70
0x01b0: out 0x20
0x01b2: out 0x6c
0x01b4: out 0x61
0x01b6: out 0x6e
0x01b8: out 0x64
0x01ba: out 0x73
0x01bc: out 0x20
0x01be: out 0x2b
0x01c0: out 0x31
0x01c2: out 0xa
0x01c4: hlt
0x01c5: nop
0x01c6: nop
0x01c7: nop
0x01c8: nop
0x01c9: out 0x6a
0x01cb: out 0x6d
0x01cd: out 0x70
0x01cf: out 0x20
0x01d1: out 0x6c
0x01d3: out 0x61
0x01d5: out 0x6e
0x01d7: out 0x64
0x01d9: out 0x73
0x01db: out 0x20
0x01dd: out 0x2b
0x01df: out 0x32
0x01e1: out 0xa
0x01e3: hlt
0x01e4: jt 0x0 0x432
0x01e7: jf 0x1 0x432
0x01ea: jt 0x1 0x1ef
0x01ed: jmp 0x432
0x01ef: jf 0x0 0x1f4
0x01f2: jmp 0x432
0x01f4: jt $0 0x445
0x01f7: jt $1 0x445
0x01fa: jt $2 0x445
0x01fd: jt $3 0x445
0x0200: jt $4 0x445
0x0203: jt $5 0x445
0x0206: jt $6 0x445
0x0209: jt $7 0x445
0x020c: set $0 0x1
0x020f: jf $0 0x45e
0x0212: set $0 0x0
0x0215: jt $0 0x45e
0x0218: add $0 0x1 0x1
0x021c: jt $0 0x234
0x021f: out 0x6e
0x0221: out 0x6f
0x0223: out 0x20
0x0225: out 0x61
0x0227: out 0x64
0x0229: out 0x64
0x022b: out 0x20
0x022d: out 0x6f
0x022f: out 0x70
0x0231: out 0xa
0x0233: hlt
0x0234: eq $1 $0 0x2
0x0238: jt $1 0x24e
0x023b: out 0x6e
0x023d: out 0x6f
0x023f: out 0x20
0x0241: out 0x65
0x0243: out 0x71
0x0245: out 0x20
0x0247: out 0x6f
0x0249: out 0x70
0x024b: out 0xa
0x024d: hlt
0x024e: psh $0
0x0250: psh $1
0x0252: pop $0
0x0254: pop $1
0x0256: eq $2 $1 0x2
0x025a: jf $2 0x486
0x025d: eq $2 $0 0x1
0x0261: jf $2 0x486
0x0264: gt $2 $1 $0
0x0268: jf $2 0x473
0x026b: gt $2 $0 $1
0x026f: jt $2 0x473
0x0272: gt $2 0x2a 0x2a
0x0276: jt $2 0x473
0x0279: and $0 0x70f0 0x4caa
0x027d: eq $1 $0 0x40a0
0x0281: jf $1 0x499
0x0284: or $1 0x70f0 0x4caa
0x0288: eq $0 $1 0x7cfa
0x028c: jt $0 0x2ac
0x028f: out 0x6e
0x0291: out 0x6f
0x0293: out 0x20
0x0295: out 0x62
0x0297: out 0x69
0x0299: out 0x74
0x029b: out 0x77
0x029d: out 0x69
0x029f: out 0x73
0x02a1: out 0x65
0x02a3: out 0x20
0x02a5: out 0x6f
0x02a7: out 0x72
0x02a9: out 0xa
0x02ab: hlt
0x02ac: not $0 0x0
0x02af: eq $1 $0 0x7fff
0x02b3: jf $1 0x4b8
0x02b6: not $0 0x5555
0x02b9: eq $1 $0 0x2aaa
0x02bd: jf $1 0x4b8
0x02c0: cll 0x505
0x02c2: jmp 0x509
0x02c4: pop $0
0x02c6: eq $1 $0 0x2c4
0x02ca: jt $1 0x509
0x02cd: eq $1 $0 0x2c2
0x02d1: jf $1 0x509
0x02d4: set $0 0x507
0x02d7: cll $0
0x02d9: jmp 0x509
0x02db: pop $0
0x02dd: eq $1 $0 0x2db
0x02e1: jt $1 0x509
0x02e4: eq $1 $0 0x2d9
0x02e8: jf $1 0x509
0x02eb: add $0 0x7fff 0x7fff
0x02ef: eq $1 $0 0x7ffe
0x02f3: jf $1 0x520
0x02f6: eq $1 0x7ffe $0
0x02fa: jf $1 0x520
0x02fd: add $0 0x4000 0x4000
0x0301: jt $0 0x520
0x0304: add $0 0x4000 0x4000
0x0308: jt $0 0x520
0x030b: mul $0 0x6 0x9
0x030f: eq $1 $0 0x2a
0x0313: jt $1 0x565
0x0316: eq $1 $0 0x36
0x031a: jf $1 0x586
0x031d: mul $0 0x3039 0x7d7b
0x0321: eq $1 $0 0x63
0x0325: jf $1 0x520
0x0328: mod $0 0x6 0x3
0x032c: eq $1 $0 0x0
0x0330: jf $1 0x59d
0x0333: mod $0 0x46 0x6
0x0337: eq $1 $0 0x4
0x033b: jf $1 0x59d
0x033e: mul $0 0x7ffe 0xf
0x0342: eq $1 $0 0x7fe2
0x0346: jf $1 0x520
0x0349: jmp 0x34d
0x034d: rd $0 0x34b
0x0350: eq $1 $0 0x4e20
0x0354: jf $1 0x4d7
0x0357: add $2 0x34b 0x1
0x035b: rd $0 $2
0x035e: eq $1 $0 0x2710
0x0362: jf $1 0x4d7
0x0365: set $0 0x34b
0x0368: wrt $0 0x7530
0x036b: rd $2 $0
0x036e: eq $1 $2 0x7530
0x0372: jf $1 0x4ee
0x0375: cll 0x6bb
0x0377: rd $0 0x17b4
0x037a: eq $1 $0 0xb
0x037e: jf $1 0x4d7
0x0381: add $2 0x17b4 0x1
0x0385: rd $0 $2
0x0388: eq $1 $0 0x74
0x038c: jf $1 0x4d7
0x038f: wrt $2 0x54
0x0392: rd $0 $2
0x0395: eq $1 $0 0x74
0x0399: jt $1 0x4ee
0x039c: eq $1 $0 0x54
0x03a0: jf $1 0x4ee
0x03a3: wrt 0x3a9 0x15
0x03a6: wrt 0x3aa 0x7
0x03a9: jmp 0x3ad
0x03ab: out 0x3d2
0x03ad: out 0x77
0x03af: out 0x6d
0x03b1: out 0x65
0x03b3: out 0x6d
0x03b5: out 0x20
0x03b7: out 0x6f
0x03b9: out 0x70
0x03bb: out 0x77
0x03bd: out 0x72
0x03bf: out 0x69
0x03c1: out 0x74
0x03c3: out 0x65
0x03c5: out 0x20
0x03c7: out 0x66
0x03c9: out 0x61
0x03cb: out 0x69
0x03cd: out 0x6c
0x03cf: out 0xa
0x03d1: hlt
0x03d2: add $1 0xa 0x17c0
0x03d6: add $1 $1 0x1
0x03da: rd $2 0x17e4
0x03dd: add $2 $2 0x17e4
0x03e1: set $0 0x17e4
0x03e4: add $0 $0 0x1
0x03e8: gt $3 $0 $2
0x03ec: jt $3 0x3ff
0x03ef: rd $4 $0
0x03f2: wrt $1 $4
0x03f5: add $0 $0 0x1
0x03f9: add $1 $1 0x1
0x03fd: jmp 0x3e8
0x03ff: rd $0 0x17c0
0x0402: rd $1 0x17d3
0x0405: add $0 $0 $1
0x0409: add $0 $0 0x1
0x040d: wrt 0x17c0 $0
0x0410: wrt 0x17d3 0x2c
0x0413: set $0 0x17c0
0x0416: cll 0x5ee
0x0418: psh $0
0x041a: psh $1
0x041c: psh $2
0x041e: set $0 0x68e3
0x0421: set $1 0x5fb
0x0424: add $2 0xe17 0x35c
0x0428: cll 0x5b2
0x042a: pop $2
0x042c: pop $1
0x042e: pop $0
0x0430: jmp 0xaae
0x0432: out 0x6e
0x0434: out 0x6f
0x0436: out 0x20
0x0438: out 0x6a
0x043a: out 0x74
0x043c: out 0x2f
0x043e: out 0x6a
0x0440: out 0x66
0x0442: out 0xa
0x0444: hlt
0x0445: out 0x6e
0x0447: out 0x6f
0x0449: out 0x6e
0x044b: out 0x7a
0x044d: out 0x65
0x044f: out 0x72
0x0451: out 0x6f
0x0453: out 0x20
0x0455: out 0x72
0x0457: out 0x65
0x0459: out 0x67
0x045b: out 0xa
0x045d: hlt
0x045e: out 0x6e
0x0460: out 0x6f
0x0462: out 0x20
0x0464: out 0x73
0x0466: out 0x65
0x0468: out 0x74
0x046a: out 0x20
0x046c: out 0x6f
0x046e: out 0x70
0x0470: out 0xa
0x0472: hlt
0x0473: out 0x6e
0x0475: out 0x6f
0x0477: out 0x20
0x0479: out 0x67
0x047b: out 0x74
0x047d: out 0x20
0x047f: out 0x6f
0x0481: out 0x70
0x0483: out 0xa
0x0485: hlt
0x0486: out 0x6e
0x0488: out 0x6f
0x048a: out 0x20
0x048c: out 0x73
0x048e: out 0x74
0x0490: out 0x61
0x0492: out 0x63
0x0494: out 0x6b
0x0496: out 0xa
0x0498: hlt
0x0499: out 0x6e
0x049b: out 0x6f
0x049d: out 0x20
0x049f: out 0x62
0x04a1: out 0x69
0x04a3: out 0x74
0x04a5: out 0x77
0x04a7: out 0x69
0x04a9: out 0x73
0x04ab: out 0x65
0x04ad: out 0x20
0x04af: out 0x61
0x04b1: out 0x6e
0x04b3: out 0x64
0x04b5: out 0xa
0x04b7: hlt
0x04b8: out 0x6e
0x04ba: out 0x6f
0x04bc: out 0x20
0x04be: out 0x62
0x04c0: out 0x69
0x04c2: out 0x74
0x04c4: out 0x77
0x04c6: out 0x69
0x04c8: out 0x73
0x04ca: out 0x65
0x04cc: out 0x20
0x04ce: out 0x6e
0x04d0: out 0x6f
0x04d2: out 0x74
0x04d4: out 0xa
0x04d6: hlt
0x04d7: out 0x6e
0x04d9: out 0x6f
0x04db: out 0x20
0x04dd: out 0x72
0x04df: out 0x6d
0x04e1: out 0x65
0x04e3: out 0x6d
0x04e5: out 0x20
0x04e7: out 0x6f
0x04e9: out 0x70
0x04eb: out 0xa
0x04ed: hlt
0x04ee: out 0x6e
0x04f0: out 0x6f
0x04f2: out 0x20
0x04f4: out 0x77
0x04f6: out 0x6d
0x04f8: out 0x65
0x04fa: out 0x6d
0x04fc: out 0x20
0x04fe: out 0x6f
0x0500: out 0x70
0x0502: out 0xa
0x0504: hlt
0x0505: jmp 0x2c4
0x0507: jmp 0x2db
0x0509: out 0x6e
0x050b: out 0x6f
0x050d: out 0x20
0x050f: out 0x63
0x0511: out 0x61
0x0513: out 0x6c
0x0515: out 0x6c
0x0517: out 0x20
0x0519: out 0x6f
0x051b: out 0x70
0x051d: out 0xa
0x051f: hlt
0x0520: out 0x6e
0x0522: out 0x6f
0x0524: out 0x20
0x0526: out 0x6d
0x0528: out 0x6f
0x052a: out 0x64
0x052c: out 0x75
0x052e: out 0x6c
0x0530: out 0x6f
0x0532: out 0x20
0x0534: out 0x6d
0x0536: out 0x61
0x0538: out 0x74
0x053a: out 0x68
0x053c: out 0x20
0x053e: out 0x64
0x0540: out 0x75
0x0542: out 0x72
0x0544: out 0x69
0x0546: out 0x6e
0x0548: out 0x67
0x054a: out 0x20
0x054c: out 0x61
0x054e: out 0x64
0x0550: out 0x64
0x0552: out 0x20
0x0554: out 0x6f
0x0556: out 0x72
0x0558: out 0x20
0x055a: out 0x6d
0x055c: out 0x75
0x055e: out 0x6c
0x0560: out 0x74
0x0562: out 0xa
0x0564: hlt
0x0565: out 0x6e
0x0567: out 0x6f
0x0569: out 0x74
0x056b: out 0x20
0x056d: out 0x68
0x056f: out 0x69
0x0571: out 0x74
0x0573: out 0x63
0x0575: out 0x68
0x0577: out 0x68
0x0579: out 0x69
0x057b: out 0x6b
0x057d: out 0x69
0x057f: out 0x6e
0x0581: out 0x67
0x0583: out 0xa
0x0585: hlt
0x0586: out 0x6e
0x0588: out 0x6f
0x058a: out 0x20
0x058c: out 0x6d
0x058e: out 0x75
0x0590: out 0x6c
0x0592: out 0x74
0x0594: out 0x20
0x0596: out 0x6f
0x0598: out 0x70
0x059a: out 0xa
0x059c: hlt
0x059d: out 0x6e
0x059f: out 0x6f
0x05a1: out 0x20
0x05a3: out 0x6d
0x05a5: out 0x6f
0x05a7: out 0x64
0x05a9: out 0x20
0x05ab: out 0x6f
0x05ad: out 0x70
0x05af: out 0xa
0x05b1: hlt
0x05b2: psh $0
0x05b4: psh $3
0x05b6: psh $4
0x05b8: psh $5
0x05ba: psh $6
0x05bc: set $6 $0
0x05bf: set $5 $1
0x05c2: rd $4 $0
0x05c5: set $1 0x0
0x05c8: add $3 0x1 $1
0x05cc: gt $0 $3 $4
0x05d0: jt $0 0x5e3
0x05d3: add $3 $3 $6
0x05d7: rd $0 $3
0x05da: cll $5
0x05dc: add $1 $1 0x1
0x05e0: jt $1 0x5c8
0x05e3: pop $6
0x05e5: pop $5
0x05e7: pop $4
0x05e9: pop $3
0x05eb: pop $0
0x05ed: ret
0x05ee: psh $1
0x05f0: set $1 0x5f8
0x05f3: cll 0x5b2
0x05f5: pop $1
0x05f7: ret
0x05f8: out $0
0x05fa: ret
0x05fb: psh $1
0x05fd: set $1 $2
0x0600: cll 0x84d
0x0602: out $0
0x0604: pop $1
0x0606: ret
0x0607: psh $1
0x0609: psh $3
0x060b: rd $3 $0
0x060e: jf $3 0x61b
0x0611: cll 0x5b2
0x0613: jt $1 0x61b
0x0616: set $0 $2
0x0619: jmp 0x61e
0x061b: set $0 0x7fff
0x061e: pop $3
0x0620: pop $1
0x0622: ret
0x0623: psh $1
0x0625: psh $2
0x0627: set $2 $1
0x062a: set $1 0x645
0x062d: cll 0x607
0x062f: pop $2
0x0631: pop $1
0x0633: ret
0x0634: psh $1
0x0636: psh $2
0x0638: set $2 $1
0x063b: set $1 0x670
0x063e: cll 0x607
0x0640: pop $2
0x0642: pop $1
0x0644: ret
0x0645: eq $0 $0 $2
0x0649: jf $0 0x652
0x064c: set $2 $1
0x064f: set $1 0x7fff
0x0652: ret
0x0653: psh $3
0x0655: add $3 $2 0x1
0x0659: add $3 $3 $1
0x065d: rd $3 $3
0x0660: eq $3 $0 $3
0x0664: jt $3 0x66d
0x0667: set $2 $1
0x066a: set $1 0x7fff
0x066d: pop $3
0x066f: ret
0x0670: psh $1
0x0672: set $1 $2
0x0675: cll 0x683
0x0677: pop $1
0x0679: jf $0 0x682
0x067c: set $2 $1
0x067f: set $1 0x7fff
0x0682: ret
0x0683: psh $1
0x0685: psh $2
0x0687: psh $3
0x0689: psh $4
0x068b: rd $3 $0
0x068e: rd $4 $1
0x0691: eq $2 $3 $4
0x0695: jf $2 0x6af
0x0698: or $2 $3 $4
0x069c: jf $2 0x6aa
0x069f: set $2 $1
0x06a2: set $1 0x653
0x06a5: cll 0x5b2
0x06a7: jf $1 0x6af
0x06aa: set $0 0x1
0x06ad: jmp 0x6b2
0x06af: set $0 0x0
0x06b2: pop $4
0x06b4: pop $3
0x06b6: pop $2
0x06b8: pop $1
0x06ba: ret
0x06bb: psh $0
0x06bd: psh $1
0x06bf: set $1 0x17b4
0x06c2: rd $0 $1
0x06c5: psh $1
0x06c7: mul $1 $1 $1
0x06cb: cll 0x84d
0x06cd: set $1 0x4154
0x06d0: cll 0x84d
0x06d2: pop $1
0x06d4: wrt $1 $0
0x06d7: add $1 $1 0x1
0x06db: eq $0 0x7562 $1
0x06df: jf $0 0x6c2
0x06e2: pop $1
0x06e4: pop $0
0x06e6: ret
0x06e7: psh $0
0x06e9: psh $2
0x06eb: psh $3
0x06ed: psh $4
0x06ef: psh $5
0x06f1: add $2 $1 $0
0x06f5: set $0 $1
0x06f8: set $5 0x0
0x06fb: add $0 $0 0x1
0x06ff: gt $3 $0 $2
0x0703: jt $3 0x718
0x0706: in $4
0x0708: eq $3 $4 0xa
0x070c: jt $3 0x718
0x070f: wrt $0 $4
0x0712: add $5 $5 0x1
0x0716: jmp 0x6fb
0x0718: wrt $1 $5
0x071b: eq $3 $4 0xa
0x071f: jt $3 0x726
0x0722: in $4
0x0724: jmp 0x71b
0x0726: pop $5
0x0728: pop $4
0x072a: pop $3
0x072c: pop $2
0x072e: pop $0
0x0730: ret
0x0731: psh $3
0x0733: psh $4
0x0735: psh $5
0x0737: psh $6
0x0739: set $6 0x1
0x073c: add $4 $3 $6
0x0740: rd $4 $4
0x0743: add $5 0x17ed $6
0x0747: wrt $5 $4
0x074a: add $6 $6 0x1
0x074e: rd $5 0x17ed
0x0751: gt $4 $6 $5
0x0755: jf $4 0x73c
0x0758: set $3 0x0
0x075b: set $4 0x0
0x075e: rd $5 0x17ed
0x0761: mod $5 $4 $5
0x0765: add $5 $5 0x17ed
0x0769: add $5 $5 0x1
0x076d: rd $6 $5
0x0770: mul $6 $6 0x1481
0x0774: add $6 $6 0x3039
0x0778: wrt $5 $6
0x077b: psh $0
0x077d: psh $1
0x077f: set $1 $6
0x0782: cll 0x84d
0x0784: set $6 $0
0x0787: pop $1
0x0789: pop $0
0x078b: rd $5 $1
0x078e: mod $6 $6 $5
0x0792: add $6 $6 0x1
0x0796: gt $5 $6 $2
0x079a: jt $5 0x7a0
0x079d: set $3 0x1
0x07a0: add $6 $6 $1
0x07a4: rd $6 $6
0x07a7: add $4 $4 0x1
0x07ab: add $5 $4 0x17f1
0x07af: wrt $5 $6
0x07b2: rd $5 0x17f1
0x07b5: eq $5 $4 $5
0x07b9: jf $5 0x75e
0x07bc: jf $3 0x758
0x07bf: psh $0
0x07c1: set $0 0x17f1
0x07c4: cll 0x5ee
0x07c6: pop $0
0x07c8: pop $6
0x07ca: pop $5
0x07cc: pop $4
0x07ce: pop $3
0x07d0: ret
0x07d1: psh $0
0x07d3: psh $1
0x07d5: psh $2
0x07d7: psh $3
0x07d9: psh $4
0x07db: psh $5
0x07dd: set $2 0x1
0x07e0: set $5 0x0
0x07e3: jf $0 0x82c
0x07e6: eq $4 $2 0x2710
0x07ea: set $3 $0
0x07ed: jt $4 0x7f8
0x07f0: mul $1 $2 0xa
0x07f4: mod $3 $0 $1
0x07f8: set $4 0x0
0x07fb: mul $2 $2 0x7fff
0x07ff: jf $3 0x80c
0x0802: add $4 $4 0x1
0x0806: add $3 $3 $2
0x080a: jmp 0x7ff
0x080c: mul $2 $2 0x7fff
0x0810: mul $3 $4 $2
0x0814: mul $3 $3 0x7fff
0x0818: add $0 $0 $3
0x081c: add $4 $4 0x30
0x0820: mul $2 $2 0xa
0x0824: add $5 $5 0x1
0x0828: psh $4
0x082a: jmp 0x7e3
0x082c: jt $5 0x833
0x082f: out 0x30
0x0831: jmp 0x840
0x0833: jf $5 0x840
0x0836: pop $0
0x0838: out $0
0x083a: add $5 $5 0x7fff
0x083e: jmp 0x833
0x0840: pop $5
0x0842: pop $4
0x0844: pop $3
0x0846: pop $2
0x0848: pop $1
0x084a: pop $0
0x084c: ret
0x084d: psh $1
0x084f: psh $2
0x0851: and $2 $0 $1
0x0855: not $2 $2
0x0858: or $0 $0 $1
0x085c: and $0 $0 $2
0x0860: pop $2
0x0862: pop $1
0x0864: ret
0x0865: add $0 $0 $1
0x0869: gt $1 $1 $0
0x086d: ret
0x086e: psh $2
0x0870: gt $2 $1 $0
0x0874: mul $1 $1 0x7fff
0x0878: add $0 $0 $1
0x087c: set $1 $2
0x087f: pop $2
0x0881: ret
0x0882: jf $0 0x8c1
0x0885: jf $1 0x8c1
0x0888: psh $2
0x088a: psh $3
0x088c: gt $2 $1 $0
0x0890: jt $2 0x89c
0x0893: set $2 $0
0x0896: set $0 $1
0x0899: set $1 $2
0x089c: set $2 $0
0x089f: set $0 0x0
0x08a2: add $0 $0 $1
0x08a6: gt $3 $1 $0
0x08aa: jt $3 0x8b9
0x08ad: add $2 $2 0x7fff
0x08b1: jt $2 0x8a2
0x08b4: set $1 0x0
0x08b7: jmp 0x8bc
0x08b9: set $1 0x1
0x08bc: pop $3
0x08be: pop $2
0x08c0: ret
0x08c1: set $0 0x0
0x08c4: set $1 0x0
0x08c7: ret
0x08c8: psh $1
0x08ca: psh $2
0x08cc: jf $1 0x8e4
0x08cf: add $1 $1 0x7fff
0x08d3: and $2 $0 0x4000
0x08d7: mul $0 $0 0x2
0x08db: jf $2 0x8cc
0x08de: or $0 $0 0x1
0x08e2: jmp 0x8cc
0x08e4: pop $2
0x08e6: pop $1
0x08e8: ret
0x08e9: psh $1
0x08eb: gt $1 $0 0xe
0x08ef: jt $1 0x905
0x08f2: set $1 $0
0x08f5: set $0 0x1
0x08f8: jf $1 0x908
0x08fb: add $1 $1 0x7fff
0x08ff: mul $0 $0 0x2
0x0903: jmp 0x8f8
0x0905: set $0 0x7fff
0x0908: pop $1
0x090a: ret
0x090b: jmp 0xaae
0x0911: hlt
0x0916: hlt
0x091b: hlt
0x0920: hlt
0x0925: hlt
0x092a: hlt
0x092f: hlt
0x0934: hlt
0x0939: hlt
0x093e: hlt
0x0943: hlt
0x0948: hlt
0x0975: hlt
0x0993: hlt
0x0998: hlt
0x099d: hlt
0x099e: hlt