-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathkernel_disasm.txt
More file actions
2910 lines (2859 loc) · 172 KB
/
Copy pathkernel_disasm.txt
File metadata and controls
2910 lines (2859 loc) · 172 KB
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
kernel.elf: file format elf32-i386
Disassembly of section .text:
00001000 <_start>:
1000: e8 35 22 00 00 calll 0x323a <kmain>
1005: fa cli
1006: f4 hlt
00001007 <default_handler_wrapper>:
1007: 60 pushal
1008: e8 62 12 00 00 calll 0x226f <default_handler>
100d: b0 20 movb $0x20, %al
100f: e6 20 outb %al, $0x20
1011: 61 popal
1012: cf iretl
00001013 <timer_handler_wrapper>:
1013: 60 pushal
1014: e8 8a 12 00 00 calll 0x22a3 <timer_handler>
1019: b0 20 movb $0x20, %al
101b: e6 20 outb %al, $0x20
101d: 61 popal
101e: cf iretl
0000101f <keyboard_handler_wrapper>:
101f: 60 pushal
1020: e8 f0 12 00 00 calll 0x2315 <keyboard_handler>
1025: b0 20 movb $0x20, %al
1027: e6 20 outb %al, $0x20
1029: 61 popal
102a: cf iretl
0000102b <double_fault_handler_wrapper>:
102b: 60 pushal
102c: e8 58 12 00 00 calll 0x2289 <double_fault_handler>
1031: 61 popal
1032: cf iretl
00001033 <syscall_handler_wrapper>:
1033: 60 pushal
1034: e8 67 0c 00 00 calll 0x1ca0 <syscall_handler>
1039: 61 popal
103a: cf iretl
0000103b <clear_screen>:
103b: 55 pushl %ebp
103c: 89 e5 movl %esp, %ebp
103e: 83 ec 10 subl $0x10, %esp
1041: c7 45 f8 00 80 0b 00 movl $0xb8000, -0x8(%ebp) # imm = 0xB8000
1048: c7 45 fc 00 00 00 00 movl $0x0, -0x4(%ebp)
104f: eb 14 jmp 0x1065 <clear_screen+0x2a>
1051: 8b 45 fc movl -0x4(%ebp), %eax
1054: 8d 14 00 leal (%eax,%eax), %edx
1057: 8b 45 f8 movl -0x8(%ebp), %eax
105a: 01 d0 addl %edx, %eax
105c: 66 c7 00 00 07 movw $0x700, (%eax) # imm = 0x700
1061: 83 45 fc 01 addl $0x1, -0x4(%ebp)
1065: 81 7d fc cf 07 00 00 cmpl $0x7cf, -0x4(%ebp) # imm = 0x7CF
106c: 7e e3 jle 0x1051 <clear_screen+0x16>
106e: 90 nop
106f: 90 nop
1070: c9 leave
1071: c3 retl
00001072 <print_string>:
1072: 55 pushl %ebp
1073: 89 e5 movl %esp, %ebp
1075: 83 ec 10 subl $0x10, %esp
1078: c7 45 f8 00 80 0b 00 movl $0xb8000, -0x8(%ebp) # imm = 0xB8000
107f: 8b 55 0c movl 0xc(%ebp), %edx
1082: 89 d0 movl %edx, %eax
1084: c1 e0 02 shll $0x2, %eax
1087: 01 d0 addl %edx, %eax
1089: c1 e0 04 shll $0x4, %eax
108c: 89 c2 movl %eax, %edx
108e: 8b 45 10 movl 0x10(%ebp), %eax
1091: 01 d0 addl %edx, %eax
1093: 89 45 fc movl %eax, -0x4(%ebp)
1096: eb 23 jmp 0x10bb <print_string+0x49>
1098: 8b 45 08 movl 0x8(%ebp), %eax
109b: 0f b6 00 movzbl (%eax), %eax
109e: 66 98 cbtw
10a0: 80 cc 07 orb $0x7, %ah
10a3: 89 c2 movl %eax, %edx
10a5: 8b 45 fc movl -0x4(%ebp), %eax
10a8: 8d 0c 00 leal (%eax,%eax), %ecx
10ab: 8b 45 f8 movl -0x8(%ebp), %eax
10ae: 01 c8 addl %ecx, %eax
10b0: 66 89 10 movw %dx, (%eax)
10b3: 83 45 08 01 addl $0x1, 0x8(%ebp)
10b7: 83 45 fc 01 addl $0x1, -0x4(%ebp)
10bb: 8b 45 08 movl 0x8(%ebp), %eax
10be: 0f b6 00 movzbl (%eax), %eax
10c1: 84 c0 testb %al, %al
10c3: 75 d3 jne 0x1098 <print_string+0x26>
10c5: 90 nop
10c6: 90 nop
10c7: c9 leave
10c8: c3 retl
000010c9 <print_string_with_attr>:
10c9: 55 pushl %ebp
10ca: 89 e5 movl %esp, %ebp
10cc: 83 ec 14 subl $0x14, %esp
10cf: 8b 45 14 movl 0x14(%ebp), %eax
10d2: 88 45 ec movb %al, -0x14(%ebp)
10d5: c7 45 f8 00 80 0b 00 movl $0xb8000, -0x8(%ebp) # imm = 0xB8000
10dc: 8b 55 0c movl 0xc(%ebp), %edx
10df: 89 d0 movl %edx, %eax
10e1: c1 e0 02 shll $0x2, %eax
10e4: 01 d0 addl %edx, %eax
10e6: c1 e0 04 shll $0x4, %eax
10e9: 89 c2 movl %eax, %edx
10eb: 8b 45 10 movl 0x10(%ebp), %eax
10ee: 01 d0 addl %edx, %eax
10f0: 89 45 fc movl %eax, -0x4(%ebp)
10f3: eb 29 jmp 0x111e <print_string_with_attr+0x55>
10f5: 0f b6 45 ec movzbl -0x14(%ebp), %eax
10f9: c1 e0 08 shll $0x8, %eax
10fc: 89 c2 movl %eax, %edx
10fe: 8b 45 08 movl 0x8(%ebp), %eax
1101: 0f b6 00 movzbl (%eax), %eax
1104: 66 98 cbtw
1106: 09 c2 orl %eax, %edx
1108: 8b 45 fc movl -0x4(%ebp), %eax
110b: 8d 0c 00 leal (%eax,%eax), %ecx
110e: 8b 45 f8 movl -0x8(%ebp), %eax
1111: 01 c8 addl %ecx, %eax
1113: 66 89 10 movw %dx, (%eax)
1116: 83 45 08 01 addl $0x1, 0x8(%ebp)
111a: 83 45 fc 01 addl $0x1, -0x4(%ebp)
111e: 8b 45 08 movl 0x8(%ebp), %eax
1121: 0f b6 00 movzbl (%eax), %eax
1124: 84 c0 testb %al, %al
1126: 75 cd jne 0x10f5 <print_string_with_attr+0x2c>
1128: 90 nop
1129: 90 nop
112a: c9 leave
112b: c3 retl
0000112c <print_hex_byte>:
112c: 55 pushl %ebp
112d: 89 e5 movl %esp, %ebp
112f: 83 ec 24 subl $0x24, %esp
1132: 8b 45 08 movl 0x8(%ebp), %eax
1135: 88 45 dc movb %al, -0x24(%ebp)
1138: c7 45 fc 00 80 0b 00 movl $0xb8000, -0x4(%ebp) # imm = 0xB8000
113f: c7 45 eb 30 31 32 33 movl $0x33323130, -0x15(%ebp) # imm = 0x33323130
1146: c7 45 ef 34 35 36 37 movl $0x37363534, -0x11(%ebp) # imm = 0x37363534
114d: c7 45 f3 38 39 41 42 movl $0x42413938, -0xd(%ebp) # imm = 0x42413938
1154: c7 45 f7 43 44 45 46 movl $0x46454443, -0x9(%ebp) # imm = 0x46454443
115b: c6 45 fb 00 movb $0x0, -0x5(%ebp)
115f: 0f b6 45 dc movzbl -0x24(%ebp), %eax
1163: c0 e8 04 shrb $0x4, %al
1166: 0f b6 c0 movzbl %al, %eax
1169: 83 e0 0f andl $0xf, %eax
116c: 0f b6 44 05 eb movzbl -0x15(%ebp,%eax), %eax
1171: 66 98 cbtw
1173: 80 cc 4f orb $0x4f, %ah
1176: 89 c1 movl %eax, %ecx
1178: 8b 55 0c movl 0xc(%ebp), %edx
117b: 89 d0 movl %edx, %eax
117d: c1 e0 02 shll $0x2, %eax
1180: 01 d0 addl %edx, %eax
1182: c1 e0 04 shll $0x4, %eax
1185: 89 c2 movl %eax, %edx
1187: 8b 45 10 movl 0x10(%ebp), %eax
118a: 01 d0 addl %edx, %eax
118c: 8d 14 00 leal (%eax,%eax), %edx
118f: 8b 45 fc movl -0x4(%ebp), %eax
1192: 01 d0 addl %edx, %eax
1194: 89 ca movl %ecx, %edx
1196: 66 89 10 movw %dx, (%eax)
1199: 0f b6 45 dc movzbl -0x24(%ebp), %eax
119d: 83 e0 0f andl $0xf, %eax
11a0: 0f b6 44 05 eb movzbl -0x15(%ebp,%eax), %eax
11a5: 66 98 cbtw
11a7: 80 cc 4f orb $0x4f, %ah
11aa: 89 c1 movl %eax, %ecx
11ac: 8b 55 0c movl 0xc(%ebp), %edx
11af: 89 d0 movl %edx, %eax
11b1: c1 e0 02 shll $0x2, %eax
11b4: 01 d0 addl %edx, %eax
11b6: c1 e0 04 shll $0x4, %eax
11b9: 89 c2 movl %eax, %edx
11bb: 8b 45 10 movl 0x10(%ebp), %eax
11be: 01 d0 addl %edx, %eax
11c0: 83 c0 01 addl $0x1, %eax
11c3: 8d 14 00 leal (%eax,%eax), %edx
11c6: 8b 45 fc movl -0x4(%ebp), %eax
11c9: 01 d0 addl %edx, %eax
11cb: 89 ca movl %ecx, %edx
11cd: 66 89 10 movw %dx, (%eax)
11d0: 90 nop
11d1: c9 leave
11d2: c3 retl
000011d3 <clear_shell_input>:
11d3: 55 pushl %ebp
11d4: 89 e5 movl %esp, %ebp
11d6: 83 ec 10 subl $0x10, %esp
11d9: c7 45 f8 00 80 0b 00 movl $0xb8000, -0x8(%ebp) # imm = 0xB8000
11e0: c7 45 fc 00 00 00 00 movl $0x0, -0x4(%ebp)
11e7: eb 19 jmp 0x1202 <clear_shell_input+0x2f>
11e9: 8b 45 fc movl -0x4(%ebp), %eax
11ec: 05 30 07 00 00 addl $0x730, %eax # imm = 0x730
11f1: 8d 14 00 leal (%eax,%eax), %edx
11f4: 8b 45 f8 movl -0x8(%ebp), %eax
11f7: 01 d0 addl %edx, %eax
11f9: 66 c7 00 00 07 movw $0x700, (%eax) # imm = 0x700
11fe: 83 45 fc 01 addl $0x1, -0x4(%ebp)
1202: 83 7d fc 4f cmpl $0x4f, -0x4(%ebp)
1206: 7e e1 jle 0x11e9 <clear_shell_input+0x16>
1208: 90 nop
1209: 90 nop
120a: c9 leave
120b: c3 retl
0000120c <clear_shell_output>:
120c: 55 pushl %ebp
120d: 89 e5 movl %esp, %ebp
120f: 83 ec 10 subl $0x10, %esp
1212: c7 45 f8 00 80 0b 00 movl $0xb8000, -0x8(%ebp) # imm = 0xB8000
1219: c7 45 fc 00 00 00 00 movl $0x0, -0x4(%ebp)
1220: eb 2e jmp 0x1250 <clear_shell_output+0x44>
1222: 8b 45 fc movl -0x4(%ebp), %eax
1225: 05 b0 04 00 00 addl $0x4b0, %eax # imm = 0x4B0
122a: 8d 14 00 leal (%eax,%eax), %edx
122d: 8b 45 f8 movl -0x8(%ebp), %eax
1230: 01 d0 addl %edx, %eax
1232: 66 c7 00 00 07 movw $0x700, (%eax) # imm = 0x700
1237: 8b 45 fc movl -0x4(%ebp), %eax
123a: 05 e0 06 00 00 addl $0x6e0, %eax # imm = 0x6E0
123f: 8d 14 00 leal (%eax,%eax), %edx
1242: 8b 45 f8 movl -0x8(%ebp), %eax
1245: 01 d0 addl %edx, %eax
1247: 66 c7 00 00 07 movw $0x700, (%eax) # imm = 0x700
124c: 83 45 fc 01 addl $0x1, -0x4(%ebp)
1250: 83 7d fc 4f cmpl $0x4f, -0x4(%ebp)
1254: 7e cc jle 0x1222 <clear_shell_output+0x16>
1256: 90 nop
1257: 90 nop
1258: c9 leave
1259: c3 retl
0000125a <clear_shell_command_prompt>:
125a: 55 pushl %ebp
125b: 89 e5 movl %esp, %ebp
125d: 83 ec 10 subl $0x10, %esp
1260: c7 45 f8 00 80 0b 00 movl $0xb8000, -0x8(%ebp) # imm = 0xB8000
1267: c7 45 fc 00 00 00 00 movl $0x0, -0x4(%ebp)
126e: eb 19 jmp 0x1289 <clear_shell_command_prompt+0x2f>
1270: 8b 45 fc movl -0x4(%ebp), %eax
1273: 05 40 06 00 00 addl $0x640, %eax # imm = 0x640
1278: 8d 14 00 leal (%eax,%eax), %edx
127b: 8b 45 f8 movl -0x8(%ebp), %eax
127e: 01 d0 addl %edx, %eax
1280: 66 c7 00 00 07 movw $0x700, (%eax) # imm = 0x700
1285: 83 45 fc 01 addl $0x1, -0x4(%ebp)
1289: 83 7d fc 4f cmpl $0x4f, -0x4(%ebp)
128d: 7e e1 jle 0x1270 <clear_shell_command_prompt+0x16>
128f: 90 nop
1290: 90 nop
1291: c9 leave
1292: c3 retl
00001293 <clear_shell>:
1293: 55 pushl %ebp
1294: 89 e5 movl %esp, %ebp
1296: 83 ec 10 subl $0x10, %esp
1299: c7 45 f4 00 80 0b 00 movl $0xb8000, -0xc(%ebp) # imm = 0xB8000
12a0: c7 45 fc 0f 00 00 00 movl $0xf, -0x4(%ebp)
12a7: eb 38 jmp 0x12e1 <clear_shell+0x4e>
12a9: c7 45 f8 00 00 00 00 movl $0x0, -0x8(%ebp)
12b0: eb 25 jmp 0x12d7 <clear_shell+0x44>
12b2: 8b 55 fc movl -0x4(%ebp), %edx
12b5: 89 d0 movl %edx, %eax
12b7: c1 e0 02 shll $0x2, %eax
12ba: 01 d0 addl %edx, %eax
12bc: c1 e0 04 shll $0x4, %eax
12bf: 89 c2 movl %eax, %edx
12c1: 8b 45 f8 movl -0x8(%ebp), %eax
12c4: 01 d0 addl %edx, %eax
12c6: 8d 14 00 leal (%eax,%eax), %edx
12c9: 8b 45 f4 movl -0xc(%ebp), %eax
12cc: 01 d0 addl %edx, %eax
12ce: 66 c7 00 00 07 movw $0x700, (%eax) # imm = 0x700
12d3: 83 45 f8 01 addl $0x1, -0x8(%ebp)
12d7: 83 7d f8 4f cmpl $0x4f, -0x8(%ebp)
12db: 7e d5 jle 0x12b2 <clear_shell+0x1f>
12dd: 83 45 fc 01 addl $0x1, -0x4(%ebp)
12e1: 83 7d fc 17 cmpl $0x17, -0x4(%ebp)
12e5: 7e c2 jle 0x12a9 <clear_shell+0x16>
12e7: 90 nop
12e8: 90 nop
12e9: c9 leave
12ea: c3 retl
000012eb <display_menu>:
12eb: 55 pushl %ebp
12ec: 89 e5 movl %esp, %ebp
12ee: 83 ec 10 subl $0x10, %esp
12f1: c7 45 f8 00 80 0b 00 movl $0xb8000, -0x8(%ebp) # imm = 0xB8000
12f8: c7 45 fc 00 00 00 00 movl $0x0, -0x4(%ebp)
12ff: eb 19 jmp 0x131a <display_menu+0x2f>
1301: 8b 45 fc movl -0x4(%ebp), %eax
1304: 05 30 07 00 00 addl $0x730, %eax # imm = 0x730
1309: 8d 14 00 leal (%eax,%eax), %edx
130c: 8b 45 f8 movl -0x8(%ebp), %eax
130f: 01 d0 addl %edx, %eax
1311: 66 c7 00 00 07 movw $0x700, (%eax) # imm = 0x700
1316: 83 45 fc 01 addl $0x1, -0x4(%ebp)
131a: 81 7d fc 9f 00 00 00 cmpl $0x9f, -0x4(%ebp)
1321: 7e de jle 0x1301 <display_menu+0x16>
1323: 6a 00 pushl $0x0
1325: 6a 18 pushl $0x18
1327: 68 a0 33 00 00 pushl $0x33a0 # imm = 0x33A0
132c: e8 41 fd ff ff calll 0x1072 <print_string>
1331: 83 c4 0c addl $0xc, %esp
1334: 6a 0f pushl $0xf
1336: 6a 07 pushl $0x7
1338: 6a 18 pushl $0x18
133a: 68 a7 33 00 00 pushl $0x33a7 # imm = 0x33A7
133f: e8 85 fd ff ff calll 0x10c9 <print_string_with_attr>
1344: 83 c4 10 addl $0x10, %esp
1347: 6a 08 pushl $0x8
1349: 6a 18 pushl $0x18
134b: 68 a9 33 00 00 pushl $0x33a9 # imm = 0x33A9
1350: e8 1d fd ff ff calll 0x1072 <print_string>
1355: 83 c4 0c addl $0xc, %esp
1358: 6a 0f pushl $0xf
135a: 6a 15 pushl $0x15
135c: 6a 18 pushl $0x18
135e: 68 b5 33 00 00 pushl $0x33b5 # imm = 0x33B5
1363: e8 61 fd ff ff calll 0x10c9 <print_string_with_attr>
1368: 83 c4 10 addl $0x10, %esp
136b: 6a 16 pushl $0x16
136d: 6a 18 pushl $0x18
136f: 68 b7 33 00 00 pushl $0x33b7 # imm = 0x33B7
1374: e8 f9 fc ff ff calll 0x1072 <print_string>
1379: 83 c4 0c addl $0xc, %esp
137c: 6a 0f pushl $0xf
137e: 6a 1e pushl $0x1e
1380: 6a 18 pushl $0x18
1382: 68 be 33 00 00 pushl $0x33be # imm = 0x33BE
1387: e8 3d fd ff ff calll 0x10c9 <print_string_with_attr>
138c: 83 c4 10 addl $0x10, %esp
138f: 6a 1f pushl $0x1f
1391: 6a 18 pushl $0x18
1393: 68 c0 33 00 00 pushl $0x33c0 # imm = 0x33C0
1398: e8 d5 fc ff ff calll 0x1072 <print_string>
139d: 83 c4 0c addl $0xc, %esp
13a0: 6a 0f pushl $0xf
13a2: 6a 2f pushl $0x2f
13a4: 6a 18 pushl $0x18
13a6: 68 cf 33 00 00 pushl $0x33cf # imm = 0x33CF
13ab: e8 19 fd ff ff calll 0x10c9 <print_string_with_attr>
13b0: 83 c4 10 addl $0x10, %esp
13b3: 6a 30 pushl $0x30
13b5: 6a 18 pushl $0x18
13b7: 68 d1 33 00 00 pushl $0x33d1 # imm = 0x33D1
13bc: e8 b1 fc ff ff calll 0x1072 <print_string>
13c1: 83 c4 0c addl $0xc, %esp
13c4: 90 nop
13c5: c9 leave
13c6: c3 retl
000013c7 <hide_menu>:
13c7: 55 pushl %ebp
13c8: 89 e5 movl %esp, %ebp
13ca: 83 ec 10 subl $0x10, %esp
13cd: c7 45 f8 00 80 0b 00 movl $0xb8000, -0x8(%ebp) # imm = 0xB8000
13d4: c7 45 fc 00 00 00 00 movl $0x0, -0x4(%ebp)
13db: eb 19 jmp 0x13f6 <hide_menu+0x2f>
13dd: 8b 45 fc movl -0x4(%ebp), %eax
13e0: 05 30 07 00 00 addl $0x730, %eax # imm = 0x730
13e5: 8d 14 00 leal (%eax,%eax), %edx
13e8: 8b 45 f8 movl -0x8(%ebp), %eax
13eb: 01 d0 addl %edx, %eax
13ed: 66 c7 00 00 07 movw $0x700, (%eax) # imm = 0x700
13f2: 83 45 fc 01 addl $0x1, -0x4(%ebp)
13f6: 81 7d fc 9f 00 00 00 cmpl $0x9f, -0x4(%ebp)
13fd: 7e de jle 0x13dd <hide_menu+0x16>
13ff: 90 nop
1400: 90 nop
1401: c9 leave
1402: c3 retl
00001403 <display_shell_prompt>:
1403: 55 pushl %ebp
1404: 89 e5 movl %esp, %ebp
1406: e8 c8 fd ff ff calll 0x11d3 <clear_shell_input>
140b: 6a 2f pushl $0x2f
140d: 6a 00 pushl $0x0
140f: 6a 17 pushl $0x17
1411: 68 d9 33 00 00 pushl $0x33d9 # imm = 0x33D9
1416: e8 ae fc ff ff calll 0x10c9 <print_string_with_attr>
141b: 83 c4 10 addl $0x10, %esp
141e: 90 nop
141f: c9 leave
1420: c3 retl
00001421 <halt_system>:
1421: 55 pushl %ebp
1422: 89 e5 movl %esp, %ebp
1424: e8 12 fc ff ff calll 0x103b <clear_screen>
1429: 6a 21 pushl $0x21
142b: 6a 0c pushl $0xc
142d: 68 e2 33 00 00 pushl $0x33e2 # imm = 0x33E2
1432: e8 3b fc ff ff calll 0x1072 <print_string>
1437: 83 c4 0c addl $0xc, %esp
143a: f4 hlt
143b: eb fe jmp 0x143b <halt_system+0x1a>
0000143d <display_bsod>:
143d: 55 pushl %ebp
143e: 89 e5 movl %esp, %ebp
1440: 83 ec 10 subl $0x10, %esp
1443: c7 45 f8 00 80 0b 00 movl $0xb8000, -0x8(%ebp) # imm = 0xB8000
144a: c7 45 fc 00 00 00 00 movl $0x0, -0x4(%ebp)
1451: eb 14 jmp 0x1467 <display_bsod+0x2a>
1453: 8b 45 fc movl -0x4(%ebp), %eax
1456: 8d 14 00 leal (%eax,%eax), %edx
1459: 8b 45 f8 movl -0x8(%ebp), %eax
145c: 01 d0 addl %edx, %eax
145e: 66 c7 00 00 2f movw $0x2f00, (%eax) # imm = 0x2F00
1463: 83 45 fc 01 addl $0x1, -0x4(%ebp)
1467: 81 7d fc cf 07 00 00 cmpl $0x7cf, -0x4(%ebp) # imm = 0x7CF
146e: 7e e3 jle 0x1453 <display_bsod+0x16>
1470: 6a 2f pushl $0x2f
1472: 6a 18 pushl $0x18
1474: 6a 05 pushl $0x5
1476: 68 f4 33 00 00 pushl $0x33f4 # imm = 0x33F4
147b: e8 49 fc ff ff calll 0x10c9 <print_string_with_attr>
1480: 83 c4 10 addl $0x10, %esp
1483: 6a 2f pushl $0x2f
1485: 6a 0c pushl $0xc
1487: 6a 07 pushl $0x7
1489: 68 18 34 00 00 pushl $0x3418 # imm = 0x3418
148e: e8 36 fc ff ff calll 0x10c9 <print_string_with_attr>
1493: 83 c4 10 addl $0x10, %esp
1496: 6a 2f pushl $0x2f
1498: 6a 1d pushl $0x1d
149a: 6a 09 pushl $0x9
149c: 68 52 34 00 00 pushl $0x3452 # imm = 0x3452
14a1: e8 23 fc ff ff calll 0x10c9 <print_string_with_attr>
14a6: 83 c4 10 addl $0x10, %esp
14a9: f4 hlt
14aa: eb fe jmp 0x14aa <display_bsod+0x6d>
000014ac <init_paging>:
14ac: 55 pushl %ebp
14ad: 89 e5 movl %esp, %ebp
14af: 83 ec 20 subl $0x20, %esp
14b2: c7 05 a0 40 00 00 00 00 10 00 movl $0x100000, 0x40a0 # imm = 0x100000
14bc: c7 45 fc 00 00 00 00 movl $0x0, -0x4(%ebp)
14c3: eb 18 jmp 0x14dd <init_paging+0x31>
14c5: 8b 15 a0 40 00 00 movl 0x40a0, %edx
14cb: 8b 45 fc movl -0x4(%ebp), %eax
14ce: c1 e0 02 shll $0x2, %eax
14d1: 01 d0 addl %edx, %eax
14d3: c7 00 00 00 00 00 movl $0x0, (%eax)
14d9: 83 45 fc 01 addl $0x1, -0x4(%ebp)
14dd: 81 7d fc ff 03 00 00 cmpl $0x3ff, -0x4(%ebp) # imm = 0x3FF
14e4: 7e df jle 0x14c5 <init_paging+0x19>
14e6: c7 45 ec 00 40 10 00 movl $0x104000, -0x14(%ebp) # imm = 0x104000
14ed: c7 45 f8 00 00 00 00 movl $0x0, -0x8(%ebp)
14f4: eb 20 jmp 0x1516 <init_paging+0x6a>
14f6: 8b 45 f8 movl -0x8(%ebp), %eax
14f9: c1 e0 0c shll $0xc, %eax
14fc: 83 c8 03 orl $0x3, %eax
14ff: 89 c2 movl %eax, %edx
1501: 8b 45 f8 movl -0x8(%ebp), %eax
1504: 8d 0c 85 00 00 00 00 leal (,%eax,4), %ecx
150b: 8b 45 ec movl -0x14(%ebp), %eax
150e: 01 c8 addl %ecx, %eax
1510: 89 10 movl %edx, (%eax)
1512: 83 45 f8 01 addl $0x1, -0x8(%ebp)
1516: 81 7d f8 ff 03 00 00 cmpl $0x3ff, -0x8(%ebp) # imm = 0x3FF
151d: 7e d7 jle 0x14f6 <init_paging+0x4a>
151f: 8b 55 ec movl -0x14(%ebp), %edx
1522: a1 a0 40 00 00 movl 0x40a0, %eax
1527: 05 00 0c 00 00 addl $0xc00, %eax # imm = 0xC00
152c: 83 ca 03 orl $0x3, %edx
152f: 89 10 movl %edx, (%eax)
1531: c7 45 e8 00 80 10 00 movl $0x108000, -0x18(%ebp) # imm = 0x108000
1538: c7 45 f4 00 00 00 00 movl $0x0, -0xc(%ebp)
153f: eb 20 jmp 0x1561 <init_paging+0xb5>
1541: 8b 45 f4 movl -0xc(%ebp), %eax
1544: c1 e0 0c shll $0xc, %eax
1547: 83 c8 03 orl $0x3, %eax
154a: 89 c2 movl %eax, %edx
154c: 8b 45 f4 movl -0xc(%ebp), %eax
154f: 8d 0c 85 00 00 00 00 leal (,%eax,4), %ecx
1556: 8b 45 e8 movl -0x18(%ebp), %eax
1559: 01 c8 addl %ecx, %eax
155b: 89 10 movl %edx, (%eax)
155d: 83 45 f4 01 addl $0x1, -0xc(%ebp)
1561: 81 7d f4 ff 03 00 00 cmpl $0x3ff, -0xc(%ebp) # imm = 0x3FF
1568: 7e d7 jle 0x1541 <init_paging+0x95>
156a: 8b 55 e8 movl -0x18(%ebp), %edx
156d: a1 a0 40 00 00 movl 0x40a0, %eax
1572: 83 ca 03 orl $0x3, %edx
1575: 89 10 movl %edx, (%eax)
1577: 8b 15 a0 40 00 00 movl 0x40a0, %edx
157d: 0f 22 da movl %edx, %cr3
1580: 0f 20 c0 movl %cr0, %eax
1583: 0d 00 00 00 80 orl $0x80000000, %eax # imm = 0x80000000
1588: 0f 22 c0 movl %eax, %cr0
158b: c7 45 e4 00 40 10 00 movl $0x104000, -0x1c(%ebp) # imm = 0x104000
1592: c7 45 f0 00 00 00 00 movl $0x0, -0x10(%ebp)
1599: eb 20 jmp 0x15bb <init_paging+0x10f>
159b: 8b 45 f0 movl -0x10(%ebp), %eax
159e: c1 e0 0c shll $0xc, %eax
15a1: 83 c8 03 orl $0x3, %eax
15a4: 89 c2 movl %eax, %edx
15a6: 8b 45 f0 movl -0x10(%ebp), %eax
15a9: 8d 0c 85 00 00 00 00 leal (,%eax,4), %ecx
15b0: 8b 45 e4 movl -0x1c(%ebp), %eax
15b3: 01 c8 addl %ecx, %eax
15b5: 89 10 movl %edx, (%eax)
15b7: 83 45 f0 01 addl $0x1, -0x10(%ebp)
15bb: 81 7d f0 ff 03 00 00 cmpl $0x3ff, -0x10(%ebp) # imm = 0x3FF
15c2: 7e d7 jle 0x159b <init_paging+0xef>
15c4: 8b 55 e4 movl -0x1c(%ebp), %edx
15c7: a1 a0 40 00 00 movl 0x40a0, %eax
15cc: 05 00 0c 00 00 addl $0xc00, %eax # imm = 0xC00
15d1: 83 ca 03 orl $0x3, %edx
15d4: 89 10 movl %edx, (%eax)
15d6: 8b 15 a0 40 00 00 movl 0x40a0, %edx
15dc: 0f 22 da movl %edx, %cr3
15df: 0f 20 c0 movl %cr0, %eax
15e2: 0d 00 00 00 80 orl $0x80000000, %eax # imm = 0x80000000
15e7: 0f 22 c0 movl %eax, %cr0
15ea: 90 nop
15eb: c9 leave
15ec: c3 retl
000015ed <create_page_dir>:
15ed: 55 pushl %ebp
15ee: 89 e5 movl %esp, %ebp
15f0: 83 ec 10 subl $0x10, %esp
15f3: 8b 45 08 movl 0x8(%ebp), %eax
15f6: c1 e0 10 shll $0x10, %eax
15f9: 05 00 80 10 00 addl $0x108000, %eax # imm = 0x108000
15fe: 89 45 f4 movl %eax, -0xc(%ebp)
1601: c7 45 fc 00 00 00 00 movl $0x0, -0x4(%ebp)
1608: eb 19 jmp 0x1623 <create_page_dir+0x36>
160a: 8b 45 fc movl -0x4(%ebp), %eax
160d: 8d 14 85 00 00 00 00 leal (,%eax,4), %edx
1614: 8b 45 f4 movl -0xc(%ebp), %eax
1617: 01 d0 addl %edx, %eax
1619: c7 00 00 00 00 00 movl $0x0, (%eax)
161f: 83 45 fc 01 addl $0x1, -0x4(%ebp)
1623: 81 7d fc ff 03 00 00 cmpl $0x3ff, -0x4(%ebp) # imm = 0x3FF
162a: 7e de jle 0x160a <create_page_dir+0x1d>
162c: a1 a0 40 00 00 movl 0x40a0, %eax
1631: 05 00 0c 00 00 addl $0xc00, %eax # imm = 0xC00
1636: 8b 10 movl (%eax), %edx
1638: 8b 45 f4 movl -0xc(%ebp), %eax
163b: 05 00 0c 00 00 addl $0xc00, %eax # imm = 0xC00
1640: 83 ca 03 orl $0x3, %edx
1643: 89 10 movl %edx, (%eax)
1645: a1 a0 40 00 00 movl 0x40a0, %eax
164a: 8b 00 movl (%eax), %eax
164c: 83 c8 03 orl $0x3, %eax
164f: 89 c2 movl %eax, %edx
1651: 8b 45 f4 movl -0xc(%ebp), %eax
1654: 89 10 movl %edx, (%eax)
1656: 8b 45 08 movl 0x8(%ebp), %eax
1659: 83 c0 43 addl $0x43, %eax
165c: c1 e0 0e shll $0xe, %eax
165f: 89 45 f0 movl %eax, -0x10(%ebp)
1662: c7 45 f8 00 00 00 00 movl $0x0, -0x8(%ebp)
1669: eb 2a jmp 0x1695 <create_page_dir+0xa8>
166b: 8b 45 08 movl 0x8(%ebp), %eax
166e: c1 e0 0a shll $0xa, %eax
1671: 89 c2 movl %eax, %edx
1673: 8b 45 f8 movl -0x8(%ebp), %eax
1676: 01 d0 addl %edx, %eax
1678: c1 e0 0c shll $0xc, %eax
167b: 83 c8 07 orl $0x7, %eax
167e: 89 c2 movl %eax, %edx
1680: 8b 45 f8 movl -0x8(%ebp), %eax
1683: 8d 0c 85 00 00 00 00 leal (,%eax,4), %ecx
168a: 8b 45 f0 movl -0x10(%ebp), %eax
168d: 01 c8 addl %ecx, %eax
168f: 89 10 movl %edx, (%eax)
1691: 83 45 f8 01 addl $0x1, -0x8(%ebp)
1695: 81 7d f8 ff 03 00 00 cmpl $0x3ff, -0x8(%ebp) # imm = 0x3FF
169c: 7e cd jle 0x166b <create_page_dir+0x7e>
169e: 8b 45 f0 movl -0x10(%ebp), %eax
16a1: 83 c8 07 orl $0x7, %eax
16a4: 89 c2 movl %eax, %edx
16a6: 8b 45 f4 movl -0xc(%ebp), %eax
16a9: 89 10 movl %edx, (%eax)
16ab: 8b 45 f4 movl -0xc(%ebp), %eax
16ae: c9 leave
16af: c3 retl
000016b0 <init_vfs>:
16b0: 55 pushl %ebp
16b1: 89 e5 movl %esp, %ebp
16b3: 83 ec 10 subl $0x10, %esp
16b6: c7 45 fc 00 00 00 00 movl $0x0, -0x4(%ebp)
16bd: eb 26 jmp 0x16e5 <init_vfs+0x35>
16bf: 8b 45 fc movl -0x4(%ebp), %eax
16c2: 6b c0 2c imull $0x2c, %eax, %eax
16c5: 05 20 39 00 00 addl $0x3920, %eax # imm = 0x3920
16ca: c7 00 00 00 00 00 movl $0x0, (%eax)
16d0: 8b 45 fc movl -0x4(%ebp), %eax
16d3: c1 e0 04 shll $0x4, %eax
16d6: 05 a0 3e 00 00 addl $0x3ea0, %eax # imm = 0x3EA0
16db: c7 00 00 00 00 00 movl $0x0, (%eax)
16e1: 83 45 fc 01 addl $0x1, -0x4(%ebp)
16e5: 83 7d fc 1f cmpl $0x1f, -0x4(%ebp)
16e9: 7e d4 jle 0x16bf <init_vfs+0xf>
16eb: 90 nop
16ec: 90 nop
16ed: c9 leave
16ee: c3 retl
000016ef <vfs_create_file>:
16ef: 55 pushl %ebp
16f0: 89 e5 movl %esp, %ebp
16f2: 83 ec 10 subl $0x10, %esp
16f5: c7 45 fc 00 00 00 00 movl $0x0, -0x4(%ebp)
16fc: e9 af 00 00 00 jmp 0x17b0 <vfs_create_file+0xc1>
1701: 8b 45 fc movl -0x4(%ebp), %eax
1704: 6b c0 2c imull $0x2c, %eax, %eax
1707: 05 20 39 00 00 addl $0x3920, %eax # imm = 0x3920
170c: 8b 00 movl (%eax), %eax
170e: 85 c0 testl %eax, %eax
1710: 0f 85 96 00 00 00 jne 0x17ac <vfs_create_file+0xbd>
1716: 8b 45 fc movl -0x4(%ebp), %eax
1719: 6b c0 2c imull $0x2c, %eax, %eax
171c: 05 20 39 00 00 addl $0x3920, %eax # imm = 0x3920
1721: c7 00 01 00 00 00 movl $0x1, (%eax)
1727: c7 45 f8 00 00 00 00 movl $0x0, -0x8(%ebp)
172e: eb 22 jmp 0x1752 <vfs_create_file+0x63>
1730: 8b 55 f8 movl -0x8(%ebp), %edx
1733: 8b 45 08 movl 0x8(%ebp), %eax
1736: 01 d0 addl %edx, %eax
1738: 0f b6 00 movzbl (%eax), %eax
173b: 8b 55 fc movl -0x4(%ebp), %edx
173e: 6b ca 2c imull $0x2c, %edx, %ecx
1741: 8b 55 f8 movl -0x8(%ebp), %edx
1744: 01 ca addl %ecx, %edx
1746: 81 c2 24 39 00 00 addl $0x3924, %edx # imm = 0x3924
174c: 88 02 movb %al, (%edx)
174e: 83 45 f8 01 addl $0x1, -0x8(%ebp)
1752: 8b 55 f8 movl -0x8(%ebp), %edx
1755: 8b 45 08 movl 0x8(%ebp), %eax
1758: 01 d0 addl %edx, %eax
175a: 0f b6 00 movzbl (%eax), %eax
175d: 84 c0 testb %al, %al
175f: 74 06 je 0x1767 <vfs_create_file+0x78>
1761: 83 7d f8 1e cmpl $0x1e, -0x8(%ebp)
1765: 7e c9 jle 0x1730 <vfs_create_file+0x41>
1767: 8b 45 fc movl -0x4(%ebp), %eax
176a: 6b d0 2c imull $0x2c, %eax, %edx
176d: 8b 45 f8 movl -0x8(%ebp), %eax
1770: 01 d0 addl %edx, %eax
1772: 05 24 39 00 00 addl $0x3924, %eax # imm = 0x3924
1777: c6 00 00 movb $0x0, (%eax)
177a: 8b 45 fc movl -0x4(%ebp), %eax
177d: 6b c0 2c imull $0x2c, %eax, %eax
1780: 05 44 39 00 00 addl $0x3944, %eax # imm = 0x3944
1785: c7 00 00 00 00 00 movl $0x0, (%eax)
178b: a1 28 37 00 00 movl 0x3728, %eax
1790: 8d 50 01 leal 0x1(%eax), %edx
1793: 89 15 28 37 00 00 movl %edx, 0x3728
1799: 8b 55 fc movl -0x4(%ebp), %edx
179c: 6b d2 2c imull $0x2c, %edx, %edx
179f: 81 c2 48 39 00 00 addl $0x3948, %edx # imm = 0x3948
17a5: 89 02 movl %eax, (%edx)
17a7: 8b 45 fc movl -0x4(%ebp), %eax
17aa: eb 13 jmp 0x17bf <vfs_create_file+0xd0>
17ac: 83 45 fc 01 addl $0x1, -0x4(%ebp)
17b0: 83 7d fc 1f cmpl $0x1f, -0x4(%ebp)
17b4: 0f 8e 47 ff ff ff jle 0x1701 <vfs_create_file+0x12>
17ba: b8 ff ff ff ff movl $0xffffffff, %eax # imm = 0xFFFFFFFF
17bf: c9 leave
17c0: c3 retl
000017c1 <vfs_open>:
17c1: 55 pushl %ebp
17c2: 89 e5 movl %esp, %ebp
17c4: 83 ec 18 subl $0x18, %esp
17c7: c7 45 f4 00 00 00 00 movl $0x0, -0xc(%ebp)
17ce: e9 a7 00 00 00 jmp 0x187a <vfs_open+0xb9>
17d3: 8b 45 f4 movl -0xc(%ebp), %eax
17d6: 6b c0 2c imull $0x2c, %eax, %eax
17d9: 05 20 39 00 00 addl $0x3920, %eax # imm = 0x3920
17de: 8b 00 movl (%eax), %eax
17e0: 85 c0 testl %eax, %eax
17e2: 0f 84 8e 00 00 00 je 0x1876 <vfs_open+0xb5>
17e8: 8b 45 f4 movl -0xc(%ebp), %eax
17eb: 6b c0 2c imull $0x2c, %eax, %eax
17ee: 05 20 39 00 00 addl $0x3920, %eax # imm = 0x3920
17f3: 83 c0 04 addl $0x4, %eax
17f6: 83 ec 08 subl $0x8, %esp
17f9: ff 75 08 pushl 0x8(%ebp)
17fc: 50 pushl %eax
17fd: e8 ca 0a 00 00 calll 0x22cc <strcmp>
1802: 83 c4 10 addl $0x10, %esp
1805: 85 c0 testl %eax, %eax
1807: 75 6d jne 0x1876 <vfs_open+0xb5>
1809: c7 45 f0 00 00 00 00 movl $0x0, -0x10(%ebp)
1810: eb 5e jmp 0x1870 <vfs_open+0xaf>
1812: 8b 45 f0 movl -0x10(%ebp), %eax
1815: c1 e0 04 shll $0x4, %eax
1818: 05 a0 3e 00 00 addl $0x3ea0, %eax # imm = 0x3EA0
181d: 8b 00 movl (%eax), %eax
181f: 85 c0 testl %eax, %eax
1821: 75 49 jne 0x186c <vfs_open+0xab>
1823: 8b 45 f0 movl -0x10(%ebp), %eax
1826: c1 e0 04 shll $0x4, %eax
1829: 05 a0 3e 00 00 addl $0x3ea0, %eax # imm = 0x3EA0
182e: c7 00 01 00 00 00 movl $0x1, (%eax)
1834: 8b 45 f0 movl -0x10(%ebp), %eax
1837: c1 e0 04 shll $0x4, %eax
183a: 8d 90 a4 3e 00 00 leal 0x3ea4(%eax), %edx
1840: 8b 45 f4 movl -0xc(%ebp), %eax
1843: 89 02 movl %eax, (%edx)
1845: 8b 45 f0 movl -0x10(%ebp), %eax
1848: c1 e0 04 shll $0x4, %eax
184b: 05 a8 3e 00 00 addl $0x3ea8, %eax # imm = 0x3EA8
1850: c7 00 00 00 00 00 movl $0x0, (%eax)
1856: 8b 45 f0 movl -0x10(%ebp), %eax
1859: c1 e0 04 shll $0x4, %eax
185c: 8d 90 ac 3e 00 00 leal 0x3eac(%eax), %edx
1862: 8b 45 0c movl 0xc(%ebp), %eax
1865: 89 02 movl %eax, (%edx)
1867: 8b 45 f0 movl -0x10(%ebp), %eax
186a: eb 1d jmp 0x1889 <vfs_open+0xc8>
186c: 83 45 f0 01 addl $0x1, -0x10(%ebp)
1870: 83 7d f0 1f cmpl $0x1f, -0x10(%ebp)
1874: 7e 9c jle 0x1812 <vfs_open+0x51>
1876: 83 45 f4 01 addl $0x1, -0xc(%ebp)
187a: 83 7d f4 1f cmpl $0x1f, -0xc(%ebp)
187e: 0f 8e 4f ff ff ff jle 0x17d3 <vfs_open+0x12>
1884: b8 ff ff ff ff movl $0xffffffff, %eax # imm = 0xFFFFFFFF
1889: c9 leave
188a: c3 retl
0000188b <vfs_read>:
188b: 55 pushl %ebp
188c: 89 e5 movl %esp, %ebp
188e: 83 ec 10 subl $0x10, %esp
1891: 8b 45 08 movl 0x8(%ebp), %eax
1894: c1 e0 04 shll $0x4, %eax
1897: 05 a0 3e 00 00 addl $0x3ea0, %eax # imm = 0x3EA0
189c: 8b 00 movl (%eax), %eax
189e: 85 c0 testl %eax, %eax
18a0: 74 20 je 0x18c2 <vfs_read+0x37>
18a2: 8b 45 08 movl 0x8(%ebp), %eax
18a5: c1 e0 04 shll $0x4, %eax
18a8: 05 ac 3e 00 00 addl $0x3eac, %eax # imm = 0x3EAC
18ad: 8b 10 movl (%eax), %edx
18af: a1 00 39 00 00 movl 0x3900, %eax
18b4: 6b c0 1c imull $0x1c, %eax, %eax
18b7: 05 54 37 00 00 addl $0x3754, %eax # imm = 0x3754
18bc: 8b 00 movl (%eax), %eax
18be: 39 c2 cmpl %eax, %edx
18c0: 74 0a je 0x18cc <vfs_read+0x41>
18c2: b8 ff ff ff ff movl $0xffffffff, %eax # imm = 0xFFFFFFFF
18c7: e9 ce 00 00 00 jmp 0x199a <vfs_read+0x10f>
18cc: 8b 45 08 movl 0x8(%ebp), %eax
18cf: c1 e0 04 shll $0x4, %eax
18d2: 05 a4 3e 00 00 addl $0x3ea4, %eax # imm = 0x3EA4
18d7: 8b 00 movl (%eax), %eax
18d9: 6b c0 2c imull $0x2c, %eax, %eax
18dc: 05 20 39 00 00 addl $0x3920, %eax # imm = 0x3920
18e1: 89 45 f4 movl %eax, -0xc(%ebp)
18e4: 8b 45 08 movl 0x8(%ebp), %eax
18e7: c1 e0 04 shll $0x4, %eax
18ea: 05 a8 3e 00 00 addl $0x3ea8, %eax # imm = 0x3EA8
18ef: 8b 10 movl (%eax), %edx
18f1: 8b 45 f4 movl -0xc(%ebp), %eax
18f4: 8b 40 24 movl 0x24(%eax), %eax
18f7: 39 c2 cmpl %eax, %edx
18f9: 72 0a jb 0x1905 <vfs_read+0x7a>
18fb: b8 00 00 00 00 movl $0x0, %eax
1900: e9 95 00 00 00 jmp 0x199a <vfs_read+0x10f>
1905: 8b 45 f4 movl -0xc(%ebp), %eax
1908: 8b 40 24 movl 0x24(%eax), %eax
190b: 8b 55 08 movl 0x8(%ebp), %edx
190e: c1 e2 04 shll $0x4, %edx
1911: 81 c2 a8 3e 00 00 addl $0x3ea8, %edx # imm = 0x3EA8
1917: 8b 12 movl (%edx), %edx
1919: 29 d0 subl %edx, %eax
191b: 89 45 fc movl %eax, -0x4(%ebp)
191e: 8b 45 fc movl -0x4(%ebp), %eax
1921: 3b 45 10 cmpl 0x10(%ebp), %eax
1924: 7e 06 jle 0x192c <vfs_read+0xa1>
1926: 8b 45 10 movl 0x10(%ebp), %eax
1929: 89 45 fc movl %eax, -0x4(%ebp)
192c: c7 45 f8 00 00 00 00 movl $0x0, -0x8(%ebp)
1933: eb 3b jmp 0x1970 <vfs_read+0xe5>
1935: 8b 45 08 movl 0x8(%ebp), %eax
1938: c1 e0 04 shll $0x4, %eax
193b: 05 a8 3e 00 00 addl $0x3ea8, %eax # imm = 0x3EA8
1940: 8b 10 movl (%eax), %edx
1942: 8b 45 f8 movl -0x8(%ebp), %eax
1945: 8d 0c 02 leal (%edx,%eax), %ecx
1948: ba 4f ec c4 4e movl $0x4ec4ec4f, %edx # imm = 0x4EC4EC4F
194d: 89 c8 movl %ecx, %eax
194f: f7 e2 mull %edx
1951: 89 d0 movl %edx, %eax
1953: c1 e8 03 shrl $0x3, %eax
1956: 6b d0 1a imull $0x1a, %eax, %edx
1959: 89 c8 movl %ecx, %eax
195b: 29 d0 subl %edx, %eax
195d: 8d 48 41 leal 0x41(%eax), %ecx
1960: 8b 55 f8 movl -0x8(%ebp), %edx
1963: 8b 45 0c movl 0xc(%ebp), %eax
1966: 01 d0 addl %edx, %eax
1968: 89 ca movl %ecx, %edx
196a: 88 10 movb %dl, (%eax)
196c: 83 45 f8 01 addl $0x1, -0x8(%ebp)
1970: 8b 45 f8 movl -0x8(%ebp), %eax
1973: 3b 45 fc cmpl -0x4(%ebp), %eax
1976: 7c bd jl 0x1935 <vfs_read+0xaa>
1978: 8b 45 08 movl 0x8(%ebp), %eax
197b: c1 e0 04 shll $0x4, %eax
197e: 05 a8 3e 00 00 addl $0x3ea8, %eax # imm = 0x3EA8
1983: 8b 10 movl (%eax), %edx
1985: 8b 45 fc movl -0x4(%ebp), %eax
1988: 01 c2 addl %eax, %edx
198a: 8b 45 08 movl 0x8(%ebp), %eax
198d: c1 e0 04 shll $0x4, %eax
1990: 05 a8 3e 00 00 addl $0x3ea8, %eax # imm = 0x3EA8
1995: 89 10 movl %edx, (%eax)
1997: 8b 45 fc movl -0x4(%ebp), %eax
199a: c9 leave
199b: c3 retl
0000199c <vfs_write>:
199c: 55 pushl %ebp
199d: 89 e5 movl %esp, %ebp
199f: 83 ec 10 subl $0x10, %esp
19a2: 8b 45 08 movl 0x8(%ebp), %eax
19a5: c1 e0 04 shll $0x4, %eax
19a8: 05 a0 3e 00 00 addl $0x3ea0, %eax # imm = 0x3EA0
19ad: 8b 00 movl (%eax), %eax
19af: 85 c0 testl %eax, %eax
19b1: 74 20 je 0x19d3 <vfs_write+0x37>
19b3: 8b 45 08 movl 0x8(%ebp), %eax
19b6: c1 e0 04 shll $0x4, %eax
19b9: 05 ac 3e 00 00 addl $0x3eac, %eax # imm = 0x3EAC
19be: 8b 10 movl (%eax), %edx
19c0: a1 00 39 00 00 movl 0x3900, %eax
19c5: 6b c0 1c imull $0x1c, %eax, %eax
19c8: 05 54 37 00 00 addl $0x3754, %eax # imm = 0x3754
19cd: 8b 00 movl (%eax), %eax
19cf: 39 c2 cmpl %eax, %edx
19d1: 74 07 je 0x19da <vfs_write+0x3e>
19d3: b8 ff ff ff ff movl $0xffffffff, %eax # imm = 0xFFFFFFFF
19d8: eb 4b jmp 0x1a25 <vfs_write+0x89>
19da: 8b 45 08 movl 0x8(%ebp), %eax
19dd: c1 e0 04 shll $0x4, %eax
19e0: 05 a4 3e 00 00 addl $0x3ea4, %eax # imm = 0x3EA4
19e5: 8b 00 movl (%eax), %eax
19e7: 6b c0 2c imull $0x2c, %eax, %eax
19ea: 05 20 39 00 00 addl $0x3920, %eax # imm = 0x3920
19ef: 89 45 fc movl %eax, -0x4(%ebp)
19f2: 8b 45 fc movl -0x4(%ebp), %eax
19f5: 8b 50 24 movl 0x24(%eax), %edx
19f8: 8b 45 10 movl 0x10(%ebp), %eax
19fb: 01 c2 addl %eax, %edx
19fd: 8b 45 fc movl -0x4(%ebp), %eax
1a00: 89 50 24 movl %edx, 0x24(%eax)
1a03: 8b 45 08 movl 0x8(%ebp), %eax
1a06: c1 e0 04 shll $0x4, %eax
1a09: 05 a8 3e 00 00 addl $0x3ea8, %eax # imm = 0x3EA8
1a0e: 8b 10 movl (%eax), %edx
1a10: 8b 45 10 movl 0x10(%ebp), %eax
1a13: 01 c2 addl %eax, %edx
1a15: 8b 45 08 movl 0x8(%ebp), %eax
1a18: c1 e0 04 shll $0x4, %eax
1a1b: 05 a8 3e 00 00 addl $0x3ea8, %eax # imm = 0x3EA8
1a20: 89 10 movl %edx, (%eax)
1a22: 8b 45 10 movl 0x10(%ebp), %eax
1a25: c9 leave
1a26: c3 retl
00001a27 <vfs_close>:
1a27: 55 pushl %ebp
1a28: 89 e5 movl %esp, %ebp
1a2a: 8b 45 08 movl 0x8(%ebp), %eax
1a2d: c1 e0 04 shll $0x4, %eax
1a30: 05 a0 3e 00 00 addl $0x3ea0, %eax # imm = 0x3EA0
1a35: 8b 00 movl (%eax), %eax
1a37: 85 c0 testl %eax, %eax
1a39: 74 31 je 0x1a6c <vfs_close+0x45>
1a3b: 8b 45 08 movl 0x8(%ebp), %eax
1a3e: c1 e0 04 shll $0x4, %eax
1a41: 05 ac 3e 00 00 addl $0x3eac, %eax # imm = 0x3EAC
1a46: 8b 10 movl (%eax), %edx
1a48: a1 00 39 00 00 movl 0x3900, %eax
1a4d: 6b c0 1c imull $0x1c, %eax, %eax
1a50: 05 54 37 00 00 addl $0x3754, %eax # imm = 0x3754
1a55: 8b 00 movl (%eax), %eax
1a57: 39 c2 cmpl %eax, %edx
1a59: 75 11 jne 0x1a6c <vfs_close+0x45>
1a5b: 8b 45 08 movl 0x8(%ebp), %eax
1a5e: c1 e0 04 shll $0x4, %eax
1a61: 05 a0 3e 00 00 addl $0x3ea0, %eax # imm = 0x3EA0
1a66: c7 00 00 00 00 00 movl $0x0, (%eax)
1a6c: 90 nop
1a6d: 5d popl %ebp
1a6e: c3 retl
00001a6f <vfs_list_files>:
1a6f: 55 pushl %ebp
1a70: 89 e5 movl %esp, %ebp
1a72: 83 ec 10 subl $0x10, %esp
1a75: e8 92 f7 ff ff calll 0x120c <clear_shell_output>
1a7a: c7 45 fc 0f 00 00 00 movl $0xf, -0x4(%ebp)
1a81: c7 45 f8 00 00 00 00 movl $0x0, -0x8(%ebp)
1a88: eb 3f jmp 0x1ac9 <vfs_list_files+0x5a>
1a8a: 8b 45 f8 movl -0x8(%ebp), %eax
1a8d: 6b c0 2c imull $0x2c, %eax, %eax
1a90: 05 20 39 00 00 addl $0x3920, %eax # imm = 0x3920
1a95: 8b 00 movl (%eax), %eax
1a97: 85 c0 testl %eax, %eax
1a99: 74 2a je 0x1ac5 <vfs_list_files+0x56>
1a9b: 8b 45 fc movl -0x4(%ebp), %eax
1a9e: 8d 50 01 leal 0x1(%eax), %edx
1aa1: 89 55 fc movl %edx, -0x4(%ebp)
1aa4: 8b 55 f8 movl -0x8(%ebp), %edx
1aa7: 6b d2 2c imull $0x2c, %edx, %edx
1aaa: 81 c2 20 39 00 00 addl $0x3920, %edx # imm = 0x3920
1ab0: 83 c2 04 addl $0x4, %edx
1ab3: 6a 00 pushl $0x0
1ab5: 50 pushl %eax
1ab6: 52 pushl %edx
1ab7: e8 b6 f5 ff ff calll 0x1072 <print_string>
1abc: 83 c4 0c addl $0xc, %esp
1abf: 83 7d fc 15 cmpl $0x15, -0x4(%ebp)
1ac3: 7f 0c jg 0x1ad1 <vfs_list_files+0x62>
1ac5: 83 45 f8 01 addl $0x1, -0x8(%ebp)
1ac9: 83 7d f8 1f cmpl $0x1f, -0x8(%ebp)
1acd: 7e bb jle 0x1a8a <vfs_list_files+0x1b>
1acf: eb 01 jmp 0x1ad2 <vfs_list_files+0x63>
1ad1: 90 nop
1ad2: 90 nop
1ad3: c9 leave
1ad4: c3 retl
00001ad5 <create_process>:
1ad5: 55 pushl %ebp
1ad6: 89 e5 movl %esp, %ebp
1ad8: 83 ec 10 subl $0x10, %esp
1adb: a1 04 39 00 00 movl 0x3904, %eax
1ae0: 83 f8 0f cmpl $0xf, %eax
1ae3: 7e 0a jle 0x1aef <create_process+0x1a>
1ae5: b8 ff ff ff ff movl $0xffffffff, %eax # imm = 0xFFFFFFFF
1aea: e9 00 01 00 00 jmp 0x1bef <create_process+0x11a>
1aef: a1 04 39 00 00 movl 0x3904, %eax
1af4: 8d 50 01 leal 0x1(%eax), %edx
1af7: 89 15 04 39 00 00 movl %edx, 0x3904
1afd: 89 45 f8 movl %eax, -0x8(%ebp)
1b00: 8b 45 f8 movl -0x8(%ebp), %eax
1b03: 6b c0 1c imull $0x1c, %eax, %eax
1b06: 8d 90 40 37 00 00 leal 0x3740(%eax), %edx
1b0c: 8b 45 08 movl 0x8(%ebp), %eax
1b0f: 89 02 movl %eax, (%edx)
1b11: 8b 45 f8 movl -0x8(%ebp), %eax
1b14: 6b c0 1c imull $0x1c, %eax, %eax
1b17: 05 44 37 00 00 addl $0x3744, %eax # imm = 0x3744
1b1c: c7 00 00 00 00 00 movl $0x0, (%eax)
1b22: 8b 45 f8 movl -0x8(%ebp), %eax
1b25: 6b c0 1c imull $0x1c, %eax, %eax
1b28: 8d 90 4c 37 00 00 leal 0x374c(%eax), %edx
1b2e: 8b 45 0c movl 0xc(%ebp), %eax
1b31: 89 02 movl %eax, (%edx)
1b33: 8b 45 f8 movl -0x8(%ebp), %eax
1b36: 6b c0 1c imull $0x1c, %eax, %eax
1b39: 8d 90 54 37 00 00 leal 0x3754(%eax), %edx
1b3f: 8b 45 f8 movl -0x8(%ebp), %eax
1b42: 89 02 movl %eax, (%edx)
1b44: 8b 45 f8 movl -0x8(%ebp), %eax
1b47: 6b c0 1c imull $0x1c, %eax, %eax
1b4a: 8d 90 58 37 00 00 leal 0x3758(%eax), %edx
1b50: 8b 45 10 movl 0x10(%ebp), %eax
1b53: 89 02 movl %eax, (%edx)
1b55: ff 75 f8 pushl -0x8(%ebp)
1b58: e8 90 fa ff ff calll 0x15ed <create_page_dir>
1b5d: 83 c4 04 addl $0x4, %esp
1b60: 8b 55 f8 movl -0x8(%ebp), %edx
1b63: 6b d2 1c imull $0x1c, %edx, %edx
1b66: 81 c2 50 37 00 00 addl $0x3750, %edx # imm = 0x3750
1b6c: 89 02 movl %eax, (%edx)
1b6e: 8b 45 f8 movl -0x8(%ebp), %eax
1b71: 83 c0 20 addl $0x20, %eax
1b74: c1 e0 10 shll $0x10, %eax