-
Notifications
You must be signed in to change notification settings - Fork 39
/
asm.S
776 lines (754 loc) · 19.3 KB
/
asm.S
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
[+] Wordlen: 8, Entry: 0x8080808080808000, Stacksize: 0x4000, Segnum: 6
[+] Segment addr: 0x1f10000, length: 0x1000, filelen: 0x1000, flag: 3
[+] Segment addr: 0x9000000000, length: 0x1000, filelen: 0x30, flag: 3
[+] Segment addr: 0x8000000000, length: 0x1000, filelen: 0x43f, flag: 4
[+] Segment addr: 0x9090909090909000, length: 0x1000, filelen: 0x1e0, flag: 1
[+] Segment addr: 0xa0a0a0a0a0a0a000, length: 0x2000, filelen: 0x14c8, flag: 3
[+] Segment addr: 0x8080808080808000, length: 0x1000, filelen: 0x66a, flag: 4
[*] Dissasemble executable segment ...
8000000000: nop L I
; read
8000000001: push R V
8000000002: pop L
8000000003: push L V
8000000004: push L V
8000000005: push R 0x2
800000000E: gtu L R
800000000F: push L V
8000000010: beqz L 0x8000000083
8000000019: push R 0x9000000000 ; 'F'
8000000022: push R 0x10
800000002B: mul L R
800000002C: add R V
800000002D: push L V
800000002E: ldq L
800000002F: push L V
8000000030: push L V
8000000031: push R 0x0
800000003A: equ L R
800000003B: push R V
800000003C: beqz R 0x800000008C
8000000045: ret L
8000000046: pop L
8000000047: push R V
8000000048: stq L 0x1F10010
8000000051: stq R 0x1F10008
800000005A: push L 0x1F10020
8000000063: ldq L
8000000064: push R 0x0
800000006D: equ R V
800000006E: push R V
800000006F: bnez R 0x800000005A
8000000078: push L 0x1F10018
8000000081: ldq L
8000000082: ret R
8000000083: b 0x8000000000
800000008C: pop L
800000008D: pop L
800000008E: pop L
800000008F: push R 0xFFFFFFFFFFFFFFFF
8000000098: pop R
8000000099: ret R
; write
800000009A: push R V
800000009B: pop L
800000009C: push L V
800000009D: push L V
800000009E: push R 0x2
80000000A7: gtu L R
80000000A8: push L V
80000000A9: beqz L 0x80000001EA
80000000B2: push R 0x8
80000000BB: push R 0x9000000000 ; 'F'
80000000C4: push R 0x10
80000000CD: mul L R
80000000CE: add R V
80000000CF: add R V
80000000D0: push L V
80000000D1: ldq L
80000000D2: push L V
80000000D3: push L V
80000000D4: push R 0x0
80000000DD: equ L R
80000000DE: push R V
80000000DF: beqz R 0x80000001D1
80000000E8: ret L
80000000E9: b 0x8000000000
80000000F2: pop L
80000000F3: push R V
80000000F4: pop L
80000000F5: push L V
80000000F6: push L V
80000000F7: pop L
80000000F8: push R V
80000000F9: push L 0x0
8000000102: push R 0x0
800000010B: pop R
800000010C: push L V
800000010D: pop R
800000010E: push R V
800000010F: push R V
8000000110: push L 0x0
8000000119: neq R L
800000011A: push R V
800000011B: bnez R 0x80000001CB
8000000124: pop L
8000000125: push R V
8000000126: pop L
8000000127: push L V
8000000128: push L V
8000000129: push R 0x0
8000000132: equ R L
8000000133: push R V
8000000134: bnez R 0x8000000146
800000013D: b 0x800000015C
8000000146: pop R
8000000147: push L V
8000000148: pop R
8000000149: push R V
800000014A: push R V
800000014B: xor L R
800000014C: push L V
800000014D: push L V
800000014E: xor L R
800000014F: push R V
8000000150: push R V
8000000151: xor L R
8000000152: push L V
8000000153: b 0x8000000173
800000015C: pop R
800000015D: pop R
800000015E: push L V
800000015F: pop R
8000000160: push R V
8000000161: push R V
8000000162: ldq R
8000000163: push R V
8000000164: pop R
8000000165: push L V
8000000166: push L 0x8
800000016F: add L R
8000000170: push R V
8000000171: pop L
8000000172: push R V
8000000173: pop R
8000000174: push R V
8000000175: push L 0xFF
800000017E: and L V
800000017F: push L V
8000000180: call 0x80000001DF
8000000189: push L 0x8
8000000192: pop L
8000000193: lshl R V
8000000194: push R V
8000000195: push R 0x1
800000019E: sub L R
800000019F: push L V
80000001A0: pop R
80000001A1: push R V
80000001A2: push R V
80000001A3: xor L R
80000001A4: push L V
80000001A5: push L V
80000001A6: xor L R
80000001A7: push R V
80000001A8: push R V
80000001A9: xor L R
80000001AA: push L V
80000001AB: pop L
80000001AC: push R V
80000001AD: push R 0x1
80000001B6: add L R
80000001B7: push R 0x7
80000001C0: and R V
80000001C1: push L V
80000001C2: b 0x800000010B
80000001CB: pop R
80000001CC: pop R
80000001CD: pop L
80000001CE: pop L
80000001CF: pop L
80000001D0: ret R
80000001D1: pop L
80000001D2: pop L
80000001D3: pop L
80000001D4: push R 0xFFFFFFFFFFFFFFFF
80000001DD: pop R
80000001DE: ret R
80000001DF: push R V
80000001E0: stb L 0x1F10000
80000001E9: ret R
80000001EA: b 0x8000000000
80000001F3: push R V
80000001F4: pop L
80000001F5: push R V
80000001F6: pop L
80000001F7: int L R
80000001F8: push R 0x0
8000000201: pop R
8000000202: push R 0x4FD
800000020B: int R R
800000020C: push R 0x0
8000000215: neq R V
8000000216: push L V
8000000217: beqz L 0x8000000000
8000000220: ret R
8000000221: push R V
8000000222: push L 0x2
800000022B: push L 0x4F8
8000000234: call 0x80000001F3
800000023D: push L 0x1F10000
8000000246: push L 0x4F9
800000024F: call 0x80000001F3
8000000258: push L 0x1
8000000261: push L 0x4FA
800000026A: call 0x80000001F3
8000000273: ret R
8000000274: push R V
8000000275: pop L
8000000276: push R V
8000000277: b 0x8000000221
8000000280: nop L I
; atoi
8000000281: push R V
8000000282: push L 0x0
800000028B: push R 0x0
8000000294: push R 0x0
800000029D: pop R
800000029E: pop L
800000029F: push R V
80000002A0: pop L
80000002A1: push L V
80000002A2: push L V
80000002A3: pop R
80000002A4: push R V
80000002A5: push R V
80000002A6: xor L R
80000002A7: push L V
80000002A8: push L V
80000002A9: xor L R
80000002AA: push R V
80000002AB: push R V
80000002AC: xor L R
80000002AD: push L V
80000002AE: ldq R
80000002AF: push R V
80000002B0: pop L
80000002B1: push R V
80000002B2: push R 0x8
80000002BB: add L R
80000002BC: push L V
80000002BD: pop R
80000002BE: push L V
80000002BF: pop R
80000002C0: push R V
80000002C1: push L 0xFF
80000002CA: and L V
80000002CB: push L V
80000002CC: push L V
80000002CD: push R 0x39 ; '9'
80000002D6: gteu R L
80000002D7: push R V
80000002D8: bnez R 0x800000036E
80000002E1: pop L
80000002E2: push L V
80000002E3: push L V
80000002E4: push R 0x30 ; '0'
80000002ED: gteu L R
80000002EE: push R V
80000002EF: bnez R 0x800000036E
80000002F8: push R 0x30 ; '0'
8000000301: sub L R
8000000302: push L V
8000000303: pop R
8000000304: push R V
8000000305: push R V
8000000306: xor L R
8000000307: push L V
8000000308: push L V
8000000309: xor L R
800000030A: push R V
800000030B: push R V
800000030C: xor L R
800000030D: push L V
800000030E: pop R
800000030F: push L V
8000000310: push L 0xA ; '\n'
8000000319: mul L R
800000031A: add L V
800000031B: push R V
800000031C: pop R
800000031D: push R V
800000031E: push R V
800000031F: xor L R
8000000320: push L V
8000000321: push L V
8000000322: xor L R
8000000323: push R V
8000000324: push R V
8000000325: xor L R
8000000326: push L V
8000000327: pop L
8000000328: push R V
8000000329: push R 0x1
8000000332: add L R
8000000333: push L V
8000000334: pop R
8000000335: push L V
8000000336: push L 0x8
800000033F: lshl R L
8000000340: push R V
8000000341: pop R
8000000342: push R V
8000000343: push R V
8000000344: xor L R
8000000345: push L V
8000000346: push L V
8000000347: xor L R
8000000348: push R V
8000000349: push R V
800000034A: xor L R
800000034B: push L V
800000034C: pop L
800000034D: push R V
800000034E: pop L
800000034F: push L V
8000000350: push L V
8000000351: push R 0x7
800000035A: and L R
800000035B: push R V
800000035C: bnez R 0x800000029D
8000000365: b 0x80000002BF
800000036E: pop L
800000036F: pop L
8000000370: pop R
8000000371: pop R
8000000372: ret R
8000000373: push R V
8000000374: pop R
8000000375: push R V
8000000376: push R V
8000000377: xor L R
8000000378: push L V
8000000379: push L V
800000037A: xor L R
800000037B: push R V
800000037C: push R V
800000037D: xor L R
800000037E: push L V
800000037F: pop R
8000000380: push L V
8000000381: pop L
8000000382: push L V
8000000383: push L V
8000000384: ldq L
8000000385: push R V
8000000386: push R V
8000000387: push R V
8000000388: push R 0x8
8000000391: add L R
8000000392: push L V
8000000393: push L 0x101010101010101
800000039C: sub R L
800000039D: push L V
800000039E: inv R
800000039F: push L 0x8080808080808080 ; '\x0b\x0c'
80000003A8: and L V
80000003A9: and L V
80000003AA: push L V
80000003AB: bnez L 0x8000000381
80000003B4: pop L
80000003B5: ret L
; strlen
80000003B6: push R V
80000003B7: push L 0x0
80000003C0: push R 0x0
80000003C9: pop R
80000003CA: pop L
80000003CB: push R V
80000003CC: pop L
80000003CD: push L V
80000003CE: push L V
80000003CF: ldq L
80000003D0: push R V
80000003D1: push R 0x8
80000003DA: add L R
80000003DB: push L V
80000003DC: pop R
80000003DD: push R V
80000003DE: push L 0xFF
80000003E7: and L V
80000003E8: push R V
80000003E9: bnez R 0x800000043B
80000003F2: push L 0x8
80000003FB: lshl R L
80000003FC: push L V
80000003FD: push L 0x1
8000000406: add L R
8000000407: push R V
8000000408: push L 0x7
8000000411: and L V
8000000412: push R V
8000000413: bnez R 0x8000000427
800000041C: pop L
800000041D: push R V
800000041E: b 0x80000003DC
8000000427: pop R
8000000428: push R V
8000000429: push R V
800000042A: xor L R
800000042B: push L V
800000042C: push L V
800000042D: xor L R
800000042E: push R V
800000042F: push R V
8000000430: xor L R
8000000431: push L V
8000000432: b 0x80000003C9
800000043B: pop L
800000043C: pop R
800000043D: pop R
800000043E: ret R
8080808080808000: push L main_loop
8080808080808009: call 0x8000000274
8080808080808012: nop L I
; find_project
8080808080808013: push R V
8080808080808014: pop L
8080808080808015: push L V
8080808080808016: push L V
8080808080808017: push R 0xA0A0A0A0A0A0B000
8080808080808020: ldq R
8080808080808021: push R V
8080808080808022: gtu R L
8080808080808023: push R V
8080808080808024: bnez R 0x808080808080804F
808080808080802D: push R 0xA0A0A0A0A0A0B008
8080808080808036: push R 0x8
808080808080803F: mul L R
8080808080808040: add R V
8080808080808041: push L V
8080808080808042: ldq L
8080808080808043: push L V
8080808080808044: push L 0x1
808080808080804D: pop L
808080808080804E: ret R
808080808080804F: push L 0x0
8080808080808058: pop L
8080808080808059: push L V
808080808080805A: ret R
; add_project
808080808080805B: push R V
808080808080805C: push R 0xA0A0A0A0A0A0B000
8080808080808065: ldq R
8080808080808066: push L V
8080808080808067: pop L
8080808080808068: push L V
8080808080808069: push R 0x1
8080808080808072: add R V
8080808080808073: push L V
8080808080808074: stq L 0xA0A0A0A0A0A0B000
808080808080807D: pop L
808080808080807E: push L V
808080808080807F: push L V
8080808080808080: push L V
8080808080808081: push R 0xA0A0A0A0A0A0B008
808080808080808A: push R 0x8
8080808080808093: mul L R
8080808080808094: add R V
8080808080808095: push R V
8080808080808096: push R 0xA0A0A0A0A0A0B048
808080808080809F: push R 0x90
80808080808080A8: mul L R
80808080808080A9: add R V
80808080808080AA: push L V
80808080808080AB: pop R
80808080808080AC: stq L V
80808080808080AD: call find_project
80808080808080B6: push R 0x0
80808080808080BF: equ R V
80808080808080C0: push R V
80808080808080C1: bnez R 0x80808080808080CC
80808080808080CA: pop L
80808080808080CB: ret R
80808080808080CC: push L 0x12
80808080808080D5: push L 0x9090909090909090 ; '[+] name (max:8): '
80808080808080DE: push L 0x1
80808080808080E7: call write
80808080808080F0: pop L
80808080808080F1: push L V
80808080808080F2: push R V
80808080808080F3: push L 0x7
80808080808080FC: pop R
80808080808080FD: push L V
80808080808080FE: push L 0x0
8080808080808107: call read
8080808080808110: push L 0x1B
8080808080808119: push L 0x90909090909090A8 ; '[+] description (max:128): '
8080808080808122: push L 0x1
808080808080812B: call write
8080808080808134: pop L
8080808080808135: push L V
8080808080808136: push R 0x8
808080808080813F: add R V
8080808080808140: push R V
8080808080808141: push L 0x80
808080808080814A: pop R
808080808080814B: push L V
808080808080814C: push L 0x0
8080808080808155: call read
808080808080815E: push L 0xA0A0A0A0A0A0B000
8080808080808167: ldq L
8080808080808168: push L V
8080808080808169: push R 0x1
8080808080808172: sub L R
8080808080808173: push L V
8080808080808174: push L 0x1D
808080808080817D: push L 0x90909090909090E8 ; '[+] Your project is saved to '
8080808080808186: push L 0x1
808080808080818F: call write
8080808080808198: push R 0x9090909090909158 ; '0'
80808080808081A1: push R 0x8
80808080808081AA: mul L R
80808080808081AB: add R V
80808080808081AC: push R V
80808080808081AD: push L 0x1
80808080808081B6: pop R
80808080808081B7: push L V
80808080808081B8: push L 0x1
80808080808081C1: call write
80808080808081CA: push L 0x2
80808080808081D3: push L 0x9090909090909108 ; '.\n'
80808080808081DC: push L 0x1
80808080808081E5: call write
80808080808081EE: pop L
80808080808081EF: ret R
; show_project
80808080808081F0: push R V
80808080808081F1: push L 0x7
80808080808081FA: push L 0x9090909090909110 ; 'index: '
8080808080808203: push L 0x1
808080808080820C: call write
8080808080808215: push L 0xA ; '\n'
808080808080821E: push L 0xA0A0A0A0A0A0A000
8080808080808227: push L 0x0
8080808080808230: call read
8080808080808239: push L 0xA0A0A0A0A0A0A000
8080808080808242: call atoi
808080808080824B: push L V
808080808080824C: call find_project
8080808080808255: push R 0x0
808080808080825E: equ R V
808080808080825F: push R V
8080808080808260: bnez R 0x808080808080828F
8080808080808269: pop L
808080808080826A: push L 0x17
8080808080808273: push L 0x9090909090909118 ; '[+] Project not found.\n'
808080808080827C: push L 0x1
8080808080808285: call write
808080808080828E: ret R
808080808080828F: push L 0xC ; '\x0c'
8080808080808298: push L 0x9090909090909130 ; '[+] Project '
80808080808082A1: push L 0x1
80808080808082AA: call write
80808080808082B3: pop L
80808080808082B4: push L V
80808080808082B5: push R V
80808080808082B6: push L 0x88
80808080808082BF: add L V
80808080808082C0: push L V
80808080808082C1: ldq L
80808080808082C2: push R V
80808080808082C3: bnez R 0x80808080808082F0
80808080808082CC: push L 0x4
80808080808082D5: push L 0x9090909090909140 ; '[M] '
80808080808082DE: push L 0x1
80808080808082E7: call write
80808080808082F0: call strlen
80808080808082F9: push L V
80808080808082FA: pop R
80808080808082FB: push L V
80808080808082FC: push R V
80808080808082FD: push L 0x1
8080808080808306: call write
808080808080830F: push L 0x1
8080808080808318: push L 0x9090909090909148 ; '\n'
8080808080808321: push L 0x1
808080808080832A: call write
8080808080808333: push L 0x4
808080808080833C: push L 0x9090909090909150 ; '>>> '
8080808080808345: push L 0x1
808080808080834E: call write
8080808080808357: push L 0x8
8080808080808360: add L R
8080808080808361: push L V
8080808080808362: push R V
8080808080808363: call strlen
808080808080836C: push L V
808080808080836D: pop R
808080808080836E: push L V
808080808080836F: push L 0x1
8080808080808378: call write
8080808080808381: ret R
; migrate_project
8080808080808382: push R V
8080808080808383: push L 0x7
808080808080838C: push L 0x9090909090909110 ; 'index: '
8080808080808395: push L 0x1
808080808080839E: call write
80808080808083A7: push L 0xA ; '\n'
80808080808083B0: push L 0xA0A0A0A0A0A0A000
80808080808083B9: push L 0x0
80808080808083C2: call read
80808080808083CB: push L 0xA0A0A0A0A0A0A000
80808080808083D4: call atoi
80808080808083DD: push L V
80808080808083DE: call find_project
80808080808083E7: push R 0x0
80808080808083F0: equ R V
80808080808083F1: push R V
80808080808083F2: bnez R 0x8080808080808421 ; '\x0c'
80808080808083FB: pop L
80808080808083FC: push L 0x17
8080808080808405: push L 0x9090909090909118 ; '[+] Project not found.\n'
808080808080840E: push L 0x1
8080808080808417: call write
8080808080808420: ret R
8080808080808421: push R 0xA0A0A0A0A0A0B000
808080808080842A: ldq R
808080808080842B: push L V
808080808080842C: pop L
808080808080842D: push L V
808080808080842E: push R 0x1
8080808080808437: add R V
8080808080808438: push L V
8080808080808439: stq L 0xA0A0A0A0A0A0B000
8080808080808442: pop L
8080808080808443: push L V
8080808080808444: push L V
8080808080808445: push L V
8080808080808446: push R 0xA0A0A0A0A0A0B008
808080808080844F: push R 0x8
8080808080808458: mul L R
8080808080808459: add R V
808080808080845A: push R V
808080808080845B: push R 0xA0A0A0A0A0A0B048
8080808080808464: push R 0x90
808080808080846D: mul L R
808080808080846E: add R V
808080808080846F: push L V
8080808080808470: pop R
8080808080808471: stq L V
8080808080808472: call find_project
808080808080847B: push R 0x0
8080808080808484: equ R V
8080808080808485: push R V
8080808080808486: bnez R 0x8080808080808491
808080808080848F: pop L
8080808080808490: ret R
8080808080808491: pop L
8080808080808492: push R V
8080808080808493: pop R
8080808080808494: push R V
8080808080808495: push R V
8080808080808496: xor L R
8080808080808497: push L V
8080808080808498: push L V
8080808080808499: xor L R
808080808080849A: push R V
808080808080849B: push R V
808080808080849C: xor L R
808080808080849D: push L V
808080808080849E: pop R
808080808080849F: push L V
80808080808084A0: call 0x8000000373
80808080808084A9: pop L
80808080808084AA: push L V
80808080808084AB: push L V
80808080808084AC: stq R V
80808080808084AD: push L 0xE
80808080808084B6: push L 0x90909090909091A8 ; '[+] Migrating ====== CENSORED: F'
80808080808084BF: push L 0x1
80808080808084C8: call write
80808080808084D1: pop L
80808080808084D2: push L V
80808080808084D3: push R V
80808080808084D4: push R V
80808080808084D5: call strlen
80808080808084DE: push L V
80808080808084DF: pop R
80808080808084E0: push L V
80808080808084E1: push L 0x1
80808080808084EA: call write
80808080808084F3: push L 0x1F
80808080808084FC: push L 0x90909090909090C8 ; '[+] new description (max:128): '
8080808080808505: push L 0x1
808080808080850E: call write
8080808080808517: pop R
8080808080808518: push L V
8080808080808519: push R 0x8
8080808080808522: add R V
8080808080808523: push R V
8080808080808524: push L 0x80
808080808080852D: pop R
808080808080852E: push L V
808080808080852F: push L 0x0
8080808080808538: call read
8080808080808541: push R 0x1
808080808080854A: push R 0x88
8080808080808553: add L R
8080808080808554: stq R V
8080808080808555: ret R
; main_loop
8080808080808556: push L 0x7E ; '~'
808080808080855F: push L 0x9090909090909000 ; '======= Project Managing System '
8080808080808568: push L 0x1
8080808080808571: call write
808080808080857A: push L 0x2
8080808080808583: push L 0xA0A0A0A0A0A0A000
808080808080858C: push L 0x0
8080808080808595: call read
808080808080859E: push R V
808080808080859F: bnez R 0x8000000000
80808080808085A8: push R 0xA0A0A0A0A0A0A000
80808080808085B1: ldb R
80808080808085B2: push R V
80808080808085B3: pop R
80808080808085B4: push R V
80808080808085B5: push R V
80808080808085B6: push L 0x41 ; 'A'
80808080808085BF: equ L R
80808080808085C0: push R V
80808080808085C1: beqz R 0x8080808080808601
80808080808085CA: pop R
80808080808085CB: push R V
80808080808085CC: push R V
80808080808085CD: push L 0x53 ; 'S'
80808080808085D6: equ L R
80808080808085D7: push R V
80808080808085D8: beqz R 0x8080808080808614
80808080808085E1: pop R
80808080808085E2: push R V
80808080808085E3: push R V
80808080808085E4: push L 0x4D ; 'M'
80808080808085ED: equ L R
80808080808085EE: push R V
80808080808085EF: beqz R 0x8080808080808627
80808080808085F8: b 0x8080808080808644
8080808080808601: pop R
8080808080808602: push L add_project
808080808080860B: b 0x808080808080863A
8080808080808614: pop R
8080808080808615: push L show_project
808080808080861E: b 0x808080808080863A
8080808080808627: pop R
8080808080808628: push L migrate_project
8080808080808631: b 0x808080808080863A
808080808080863A: call L
808080808080863B: b main_loop
8080808080808644: push L 0x9 ; '\t'
808080808080864D: push L 0x9090909090909080 ; '[+] bye~\n'
8080808080808656: push L 0x1
808080808080865F: call write
8080808080808668: pop R
8080808080808669: ret R