summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksa Vučković <aleksav013@gmail.com>2021-11-01 23:59:59 +0100
committerAleksa Vučković <aleksav013@gmail.com>2021-11-01 23:59:59 +0100
commit2a56405579be6dc341c503420e40cb30c5144a35 (patch)
tree6548a001ead2a2df6068e2157a1b15adbe174aff
parent89f7f1b114c1bbea3ad62808bf3653e1d2337d1f (diff)
Temporary heap fix
-rw-r--r--Makefile3
-rw-r--r--file6116
-rw-r--r--src/c/heap.c36
-rw-r--r--src/c/irq.c32
-rw-r--r--src/c/kernel.c10
-rw-r--r--src/c/paging.c17
-rw-r--r--src/c/string.c2
-rw-r--r--src/include/heap.h25
8 files changed, 6186 insertions, 55 deletions
diff --git a/Makefile b/Makefile
index e99a6a6..64a07c6 100644
--- a/Makefile
+++ b/Makefile
@@ -8,6 +8,7 @@ MKDIR=mkdir -p
RM=rm -rf
CP=cp
QEMU=qemu-system-x86_64
+#QEMU_DEBUG=-d int -D qemu.log
SOURCE_DIR=src
BUILD_DIR=${CURDIR}/build
@@ -64,7 +65,7 @@ $(ISO): $(BINARY)
grub-mkrescue -o $(ISO) $(ISO_DIR)
run: compile
- $(QEMU) -kernel $(BINARY)
+ $(QEMU) -kernel $(BINARY) $(QEMU_DEBUG)
run-iso: compile $(ISO)
$(QEMU) -cdrom $(ISO)
diff --git a/file b/file
new file mode 100644
index 0000000..cfe164f
--- /dev/null
+++ b/file
@@ -0,0 +1,6116 @@
+
+build/myos.bin: file format elf32-i386
+
+
+Disassembly of section .text:
+
+00100000 <load_gdt-0xc>:
+ 100000: 02 b0 ad 1b 03 00 add 0x31bad(%eax),%dh
+ 100006: 00 00 add %al,(%eax)
+ 100008: fb sti
+ 100009: 4f dec %edi
+ 10000a: 52 push %edx
+ 10000b: e4 in $0x8b,%al
+
+0010000c <load_gdt>:
+ 10000c: 8b 54 24 04 mov 0x4(%esp),%edx
+ 100010: 0f 01 12 lgdtl (%edx)
+ 100013: c3 ret
+
+00100014 <load_idt>:
+ 100014: 8b 54 24 04 mov 0x4(%esp),%edx
+ 100018: 0f 01 1a lidtl (%edx)
+ 10001b: fb sti
+ 10001c: c3 ret
+
+0010001d <ioport_in>:
+ 10001d: 8b 54 24 04 mov 0x4(%esp),%edx
+ 100021: ec in (%dx),%al
+ 100022: c3 ret
+
+00100023 <ioport_out>:
+ 100023: 8b 54 24 04 mov 0x4(%esp),%edx
+ 100027: 8b 44 24 08 mov 0x8(%esp),%eax
+ 10002b: ee out %al,(%dx)
+ 10002c: c3 ret
+ 10002d: 66 90 xchg %ax,%ax
+ 10002f: 90 nop
+
+00100030 <deregister_tm_clones>:
+ 100030: b8 18 50 10 00 mov $0x105018,%eax
+ 100035: 3d 18 50 10 00 cmp $0x105018,%eax
+ 10003a: 74 24 je 100060 <deregister_tm_clones+0x30>
+ 10003c: b8 00 00 00 00 mov $0x0,%eax
+ 100041: 85 c0 test %eax,%eax
+ 100043: 74 1b je 100060 <deregister_tm_clones+0x30>
+ 100045: 55 push %ebp
+ 100046: 89 e5 mov %esp,%ebp
+ 100048: 83 ec 14 sub $0x14,%esp
+ 10004b: 68 18 50 10 00 push $0x105018
+ 100050: ff d0 call *%eax
+ 100052: 83 c4 10 add $0x10,%esp
+ 100055: c9 leave
+ 100056: c3 ret
+ 100057: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi
+ 10005e: 66 90 xchg %ax,%ax
+ 100060: c3 ret
+ 100061: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi
+ 100068: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi
+ 10006f: 90 nop
+
+00100070 <register_tm_clones>:
+ 100070: b8 18 50 10 00 mov $0x105018,%eax
+ 100075: 2d 18 50 10 00 sub $0x105018,%eax
+ 10007a: 89 c2 mov %eax,%edx
+ 10007c: c1 e8 1f shr $0x1f,%eax
+ 10007f: c1 fa 02 sar $0x2,%edx
+ 100082: 01 d0 add %edx,%eax
+ 100084: d1 f8 sar %eax
+ 100086: 74 28 je 1000b0 <register_tm_clones+0x40>
+ 100088: ba 00 00 00 00 mov $0x0,%edx
+ 10008d: 85 d2 test %edx,%edx
+ 10008f: 74 1f je 1000b0 <register_tm_clones+0x40>
+ 100091: 55 push %ebp
+ 100092: 89 e5 mov %esp,%ebp
+ 100094: 83 ec 10 sub $0x10,%esp
+ 100097: 50 push %eax
+ 100098: 68 18 50 10 00 push $0x105018
+ 10009d: ff d2 call *%edx
+ 10009f: 83 c4 10 add $0x10,%esp
+ 1000a2: c9 leave
+ 1000a3: c3 ret
+ 1000a4: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi
+ 1000ab: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi
+ 1000af: 90 nop
+ 1000b0: c3 ret
+ 1000b1: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi
+ 1000b8: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi
+ 1000bf: 90 nop
+
+001000c0 <__do_global_dtors_aux>:
+ 1000c0: 80 3d 00 60 10 00 00 cmpb $0x0,0x106000
+ 1000c7: 75 67 jne 100130 <__do_global_dtors_aux+0x70>
+ 1000c9: 55 push %ebp
+ 1000ca: a1 04 60 10 00 mov 0x106004,%eax
+ 1000cf: 89 e5 mov %esp,%ebp
+ 1000d1: 56 push %esi
+ 1000d2: be 10 50 10 00 mov $0x105010,%esi
+ 1000d7: 53 push %ebx
+ 1000d8: bb 14 50 10 00 mov $0x105014,%ebx
+ 1000dd: 81 eb 10 50 10 00 sub $0x105010,%ebx
+ 1000e3: c1 fb 02 sar $0x2,%ebx
+ 1000e6: 83 eb 01 sub $0x1,%ebx
+ 1000e9: 39 d8 cmp %ebx,%eax
+ 1000eb: 73 17 jae 100104 <__do_global_dtors_aux+0x44>
+ 1000ed: 8d 76 00 lea 0x0(%esi),%esi
+ 1000f0: 83 c0 01 add $0x1,%eax
+ 1000f3: a3 04 60 10 00 mov %eax,0x106004
+ 1000f8: ff 14 86 call *(%esi,%eax,4)
+ 1000fb: a1 04 60 10 00 mov 0x106004,%eax
+ 100100: 39 d8 cmp %ebx,%eax
+ 100102: 72 ec jb 1000f0 <__do_global_dtors_aux+0x30>
+ 100104: e8 27 ff ff ff call 100030 <deregister_tm_clones>
+ 100109: b8 00 00 00 00 mov $0x0,%eax
+ 10010e: 85 c0 test %eax,%eax
+ 100110: 74 10 je 100122 <__do_global_dtors_aux+0x62>
+ 100112: 83 ec 0c sub $0xc,%esp
+ 100115: 68 3c 47 10 00 push $0x10473c
+ 10011a: e8 e1 fe ef ff call 0 <ALIGN-0x1>
+ 10011f: 83 c4 10 add $0x10,%esp
+ 100122: c6 05 00 60 10 00 01 movb $0x1,0x106000
+ 100129: 8d 65 f8 lea -0x8(%ebp),%esp
+ 10012c: 5b pop %ebx
+ 10012d: 5e pop %esi
+ 10012e: 5d pop %ebp
+ 10012f: c3 ret
+ 100130: c3 ret
+ 100131: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi
+ 100138: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi
+ 10013f: 90 nop
+
+00100140 <frame_dummy>:
+ 100140: b8 00 00 00 00 mov $0x0,%eax
+ 100145: 85 c0 test %eax,%eax
+ 100147: 74 27 je 100170 <frame_dummy+0x30>
+ 100149: 55 push %ebp
+ 10014a: 89 e5 mov %esp,%ebp
+ 10014c: 83 ec 10 sub $0x10,%esp
+ 10014f: 68 08 60 10 00 push $0x106008
+ 100154: 68 3c 47 10 00 push $0x10473c
+ 100159: e8 a2 fe ef ff call 0 <ALIGN-0x1>
+ 10015e: 83 c4 10 add $0x10,%esp
+ 100161: c9 leave
+ 100162: e9 09 ff ff ff jmp 100070 <register_tm_clones>
+ 100167: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi
+ 10016e: 66 90 xchg %ax,%ax
+ 100170: e9 fb fe ff ff jmp 100070 <register_tm_clones>
+
+00100175 <_start>:
+ 100175: e8 1d 02 00 00 call 100397 <init_gdt_table>
+ 10017a: ea 81 01 10 00 08 00 ljmp $0x8,$0x100181
+
+00100181 <code>:
+ 100181: 66 b8 10 00 mov $0x10,%ax
+ 100185: 8e d8 mov %eax,%ds
+ 100187: 8e c0 mov %eax,%es
+ 100189: 8e e0 mov %eax,%fs
+ 10018b: 8e e8 mov %eax,%gs
+ 10018d: 8e d0 mov %eax,%ss
+ 10018f: bc 20 a0 10 00 mov $0x10a020,%esp
+ 100194: fa cli
+ 100195: e8 87 39 00 00 call 103b21 <_init>
+ 10019a: e8 52 0c 00 00 call 100df1 <kernel_main>
+ 10019f: f4 hlt
+
+001001a0 <irq0>:
+ 1001a0: 60 pusha
+ 1001a1: fc cld
+ 1001a2: e8 a0 2c 00 00 call 102e47 <irq0_handler>
+ 1001a7: 61 popa
+ 1001a8: cf iret
+
+001001a9 <irq1>:
+ 1001a9: 60 pusha
+ 1001aa: fc cld
+ 1001ab: e8 e9 2c 00 00 call 102e99 <irq1_handler>
+ 1001b0: 61 popa
+ 1001b1: cf iret
+
+001001b2 <irq2>:
+ 1001b2: 60 pusha
+ 1001b3: fc cld
+ 1001b4: e8 32 2d 00 00 call 102eeb <irq2_handler>
+ 1001b9: 61 popa
+ 1001ba: cf iret
+
+001001bb <irq3>:
+ 1001bb: 60 pusha
+ 1001bc: fc cld
+ 1001bd: e8 7b 2d 00 00 call 102f3d <irq3_handler>
+ 1001c2: 61 popa
+ 1001c3: cf iret
+
+001001c4 <irq4>:
+ 1001c4: 60 pusha
+ 1001c5: fc cld
+ 1001c6: e8 c4 2d 00 00 call 102f8f <irq4_handler>
+ 1001cb: 61 popa
+ 1001cc: cf iret
+
+001001cd <irq5>:
+ 1001cd: 60 pusha
+ 1001ce: fc cld
+ 1001cf: e8 0d 2e 00 00 call 102fe1 <irq5_handler>
+ 1001d4: 61 popa
+ 1001d5: cf iret
+
+001001d6 <irq6>:
+ 1001d6: 60 pusha
+ 1001d7: fc cld
+ 1001d8: e8 56 2e 00 00 call 103033 <irq6_handler>
+ 1001dd: 61 popa
+ 1001de: cf iret
+
+001001df <irq7>:
+ 1001df: 60 pusha
+ 1001e0: fc cld
+ 1001e1: e8 9f 2e 00 00 call 103085 <irq7_handler>
+ 1001e6: 61 popa
+ 1001e7: cf iret
+
+001001e8 <irq8>:
+ 1001e8: 60 pusha
+ 1001e9: fc cld
+ 1001ea: e8 e8 2e 00 00 call 1030d7 <irq8_handler>
+ 1001ef: 61 popa
+ 1001f0: cf iret
+
+001001f1 <irq9>:
+ 1001f1: 60 pusha
+ 1001f2: fc cld
+ 1001f3: e8 31 2f 00 00 call 103129 <irq9_handler>
+ 1001f8: 61 popa
+ 1001f9: cf iret
+
+001001fa <irq10>:
+ 1001fa: 60 pusha
+ 1001fb: fc cld
+ 1001fc: e8 7a 2f 00 00 call 10317b <irq10_handler>
+ 100201: 61 popa
+ 100202: cf iret
+
+00100203 <irq11>:
+ 100203: 60 pusha
+ 100204: fc cld
+ 100205: e8 c3 2f 00 00 call 1031cd <irq11_handler>
+ 10020a: 61 popa
+ 10020b: cf iret
+
+0010020c <irq12>:
+ 10020c: 60 pusha
+ 10020d: fc cld
+ 10020e: e8 0c 30 00 00 call 10321f <irq12_handler>
+ 100213: 61 popa
+ 100214: cf iret
+
+00100215 <irq13>:
+ 100215: 60 pusha
+ 100216: fc cld
+ 100217: e8 55 30 00 00 call 103271 <irq13_handler>
+ 10021c: 61 popa
+ 10021d: cf iret
+
+0010021e <irq14>:
+ 10021e: 60 pusha
+ 10021f: fc cld
+ 100220: e8 9e 30 00 00 call 1032c3 <irq14_handler>
+ 100225: 61 popa
+ 100226: cf iret
+
+00100227 <irq15>:
+ 100227: 60 pusha
+ 100228: fc cld
+ 100229: e8 e7 30 00 00 call 103315 <irq15_handler>
+ 10022e: 61 popa
+ 10022f: cf iret
+
+00100230 <irq16>:
+ 100230: 60 pusha
+ 100231: fc cld
+ 100232: e8 30 31 00 00 call 103367 <irq16_handler>
+ 100237: 61 popa
+ 100238: cf iret
+
+00100239 <irq17>:
+ 100239: 60 pusha
+ 10023a: fc cld
+ 10023b: e8 79 31 00 00 call 1033b9 <irq17_handler>
+ 100240: 61 popa
+ 100241: cf iret
+
+00100242 <irq18>:
+ 100242: 60 pusha
+ 100243: fc cld
+ 100244: e8 c2 31 00 00 call 10340b <irq18_handler>
+ 100249: 61 popa
+ 10024a: cf iret
+
+0010024b <irq19>:
+ 10024b: 60 pusha
+ 10024c: fc cld
+ 10024d: e8 0b 32 00 00 call 10345d <irq19_handler>
+ 100252: 61 popa
+ 100253: cf iret
+
+00100254 <irq20>:
+ 100254: 60 pusha
+ 100255: fc cld
+ 100256: e8 54 32 00 00 call 1034af <irq20_handler>
+ 10025b: 61 popa
+ 10025c: cf iret
+
+0010025d <irq21>:
+ 10025d: 60 pusha
+ 10025e: fc cld
+ 10025f: e8 9d 32 00 00 call 103501 <irq21_handler>
+ 100264: 61 popa
+ 100265: cf iret
+
+00100266 <irq22>:
+ 100266: 60 pusha
+ 100267: fc cld
+ 100268: e8 e6 32 00 00 call 103553 <irq22_handler>
+ 10026d: 61 popa
+ 10026e: cf iret
+
+0010026f <irq23>:
+ 10026f: 60 pusha
+ 100270: fc cld
+ 100271: e8 2f 33 00 00 call 1035a5 <irq23_handler>
+ 100276: 61 popa
+ 100277: cf iret
+
+00100278 <irq24>:
+ 100278: 60 pusha
+ 100279: fc cld
+ 10027a: e8 78 33 00 00 call 1035f7 <irq24_handler>
+ 10027f: 61 popa
+ 100280: cf iret
+
+00100281 <irq25>:
+ 100281: 60 pusha
+ 100282: fc cld
+ 100283: e8 c1 33 00 00 call 103649 <irq25_handler>
+ 100288: 61 popa
+ 100289: cf iret
+
+0010028a <irq26>:
+ 10028a: 60 pusha
+ 10028b: fc cld
+ 10028c: e8 0a 34 00 00 call 10369b <irq26_handler>
+ 100291: 61 popa
+ 100292: cf iret
+
+00100293 <irq27>:
+ 100293: 60 pusha
+ 100294: fc cld
+ 100295: e8 53 34 00 00 call 1036ed <irq27_handler>
+ 10029a: 61 popa
+ 10029b: cf iret
+
+0010029c <irq28>:
+ 10029c: 60 pusha
+ 10029d: fc cld
+ 10029e: e8 9c 34 00 00 call 10373f <irq28_handler>
+ 1002a3: 61 popa
+ 1002a4: cf iret
+
+001002a5 <irq29>:
+ 1002a5: 60 pusha
+ 1002a6: fc cld
+ 1002a7: e8 e5 34 00 00 call 103791 <irq29_handler>
+ 1002ac: 61 popa
+ 1002ad: cf iret
+
+001002ae <irq30>:
+ 1002ae: 60 pusha
+ 1002af: fc cld
+ 1002b0: e8 2e 35 00 00 call 1037e3 <irq30_handler>
+ 1002b5: 61 popa
+ 1002b6: cf iret
+
+001002b7 <irq31>:
+ 1002b7: 60 pusha
+ 1002b8: fc cld
+ 1002b9: e8 77 35 00 00 call 103835 <irq31_handler>
+ 1002be: 61 popa
+ 1002bf: cf iret
+
+001002c0 <timer_irq>:
+ 1002c0: 60 pusha
+ 1002c1: fc cld
+ 1002c2: e8 e3 35 00 00 call 1038aa <timer_handler>
+ 1002c7: 61 popa
+ 1002c8: cf iret
+
+001002c9 <keyboard_irq>:
+ 1002c9: 60 pusha
+ 1002ca: fc cld
+ 1002cb: e8 1c 0e 00 00 call 1010ec <keyboard_handler>
+ 1002d0: 61 popa
+ 1002d1: cf iret
+
+001002d2 <loadPageDirectory>:
+ 1002d2: 55 push %ebp
+ 1002d3: 89 e5 mov %esp,%ebp
+ 1002d5: 8b 44 24 08 mov 0x8(%esp),%eax
+ 1002d9: 0f 22 d8 mov %eax,%cr3
+ 1002dc: 89 ec mov %ebp,%esp
+ 1002de: 5d pop %ebp
+ 1002df: c3 ret
+
+001002e0 <enablePaging>:
+ 1002e0: 55 push %ebp
+ 1002e1: 89 e5 mov %esp,%ebp
+ 1002e3: 0f 20 c0 mov %cr0,%eax
+ 1002e6: 0d 00 00 00 80 or $0x80000000,%eax
+ 1002eb: 0f 22 c0 mov %eax,%cr0
+ 1002ee: 89 ec mov %ebp,%esp
+ 1002f0: 5d pop %ebp
+ 1002f1: c3 ret
+
+001002f2 <init_gdt_entry>:
+ 1002f2: 55 push %ebp
+ 1002f3: 89 e5 mov %esp,%ebp
+ 1002f5: 83 ec 38 sub $0x38,%esp
+ 1002f8: 8b 4d 14 mov 0x14(%ebp),%ecx
+ 1002fb: 8b 55 18 mov 0x18(%ebp),%edx
+ 1002fe: 8b 45 08 mov 0x8(%ebp),%eax
+ 100301: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 100304: 8b 45 0c mov 0xc(%ebp),%eax
+ 100307: 89 45 e0 mov %eax,-0x20(%ebp)
+ 10030a: 8b 45 10 mov 0x10(%ebp),%eax
+ 10030d: 89 45 dc mov %eax,-0x24(%ebp)
+ 100310: 89 c8 mov %ecx,%eax
+ 100312: 88 45 d8 mov %al,-0x28(%ebp)
+ 100315: 89 d0 mov %edx,%eax
+ 100317: 88 45 d4 mov %al,-0x2c(%ebp)
+ 10031a: a1 04 50 10 00 mov 0x105004,%eax
+ 10031f: 89 45 f4 mov %eax,-0xc(%ebp)
+ 100322: 31 c0 xor %eax,%eax
+ 100324: 8b 45 e0 mov -0x20(%ebp),%eax
+ 100327: 89 c2 mov %eax,%edx
+ 100329: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10032c: 66 89 14 c5 20 a0 10 mov %dx,0x10a020(,%eax,8)
+ 100333: 00
+ 100334: 8b 45 dc mov -0x24(%ebp),%eax
+ 100337: 89 c2 mov %eax,%edx
+ 100339: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10033c: 66 89 14 c5 22 a0 10 mov %dx,0x10a022(,%eax,8)
+ 100343: 00
+ 100344: 8b 45 dc mov -0x24(%ebp),%eax
+ 100347: c1 e8 10 shr $0x10,%eax
+ 10034a: 89 c2 mov %eax,%edx
+ 10034c: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10034f: 88 14 c5 24 a0 10 00 mov %dl,0x10a024(,%eax,8)
+ 100356: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 100359: 0f b6 55 d8 movzbl -0x28(%ebp),%edx
+ 10035d: 88 14 c5 25 a0 10 00 mov %dl,0x10a025(,%eax,8)
+ 100364: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 100367: 0f b6 55 d4 movzbl -0x2c(%ebp),%edx
+ 10036b: 88 14 c5 26 a0 10 00 mov %dl,0x10a026(,%eax,8)
+ 100372: 8b 45 dc mov -0x24(%ebp),%eax
+ 100375: c1 e8 18 shr $0x18,%eax
+ 100378: 89 c2 mov %eax,%edx
+ 10037a: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10037d: 88 14 c5 27 a0 10 00 mov %dl,0x10a027(,%eax,8)
+ 100384: 90 nop
+ 100385: 8b 45 f4 mov -0xc(%ebp),%eax
+ 100388: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 10038e: 74 05 je 100395 <init_gdt_entry+0xa3>
+ 100390: e8 f2 34 00 00 call 103887 <__stack_chk_fail>
+ 100395: c9 leave
+ 100396: c3 ret
+
+00100397 <init_gdt_table>:
+ 100397: 55 push %ebp
+ 100398: 89 e5 mov %esp,%ebp
+ 10039a: 83 ec 18 sub $0x18,%esp
+ 10039d: a1 04 50 10 00 mov 0x105004,%eax
+ 1003a2: 89 45 f4 mov %eax,-0xc(%ebp)
+ 1003a5: 31 c0 xor %eax,%eax
+ 1003a7: 66 c7 05 48 a0 10 00 movw $0x27,0x10a048
+ 1003ae: 27 00
+ 1003b0: b8 20 a0 10 00 mov $0x10a020,%eax
+ 1003b5: a3 4a a0 10 00 mov %eax,0x10a04a
+ 1003ba: 83 ec 0c sub $0xc,%esp
+ 1003bd: 6a 00 push $0x0
+ 1003bf: 6a 00 push $0x0
+ 1003c1: 6a 00 push $0x0
+ 1003c3: 6a 00 push $0x0
+ 1003c5: 6a 00 push $0x0
+ 1003c7: e8 26 ff ff ff call 1002f2 <init_gdt_entry>
+ 1003cc: 83 c4 20 add $0x20,%esp
+ 1003cf: 83 ec 0c sub $0xc,%esp
+ 1003d2: 68 cf 00 00 00 push $0xcf
+ 1003d7: 68 9a 00 00 00 push $0x9a
+ 1003dc: 6a 00 push $0x0
+ 1003de: 6a ff push $0xffffffff
+ 1003e0: 6a 01 push $0x1
+ 1003e2: e8 0b ff ff ff call 1002f2 <init_gdt_entry>
+ 1003e7: 83 c4 20 add $0x20,%esp
+ 1003ea: 83 ec 0c sub $0xc,%esp
+ 1003ed: 68 cf 00 00 00 push $0xcf
+ 1003f2: 68 92 00 00 00 push $0x92
+ 1003f7: 6a 00 push $0x0
+ 1003f9: 6a ff push $0xffffffff
+ 1003fb: 6a 02 push $0x2
+ 1003fd: e8 f0 fe ff ff call 1002f2 <init_gdt_entry>
+ 100402: 83 c4 20 add $0x20,%esp
+ 100405: 83 ec 0c sub $0xc,%esp
+ 100408: 68 cf 00 00 00 push $0xcf
+ 10040d: 68 fa 00 00 00 push $0xfa
+ 100412: 6a 00 push $0x0
+ 100414: 6a ff push $0xffffffff
+ 100416: 6a 03 push $0x3
+ 100418: e8 d5 fe ff ff call 1002f2 <init_gdt_entry>
+ 10041d: 83 c4 20 add $0x20,%esp
+ 100420: 83 ec 0c sub $0xc,%esp
+ 100423: 68 cf 00 00 00 push $0xcf
+ 100428: 68 f2 00 00 00 push $0xf2
+ 10042d: 6a 00 push $0x0
+ 10042f: 6a ff push $0xffffffff
+ 100431: 6a 04 push $0x4
+ 100433: e8 ba fe ff ff call 1002f2 <init_gdt_entry>
+ 100438: 83 c4 20 add $0x20,%esp
+ 10043b: 83 ec 0c sub $0xc,%esp
+ 10043e: 68 48 a0 10 00 push $0x10a048
+ 100443: e8 c4 fb ff ff call 10000c <load_gdt>
+ 100448: 83 c4 10 add $0x10,%esp
+ 10044b: 90 nop
+ 10044c: 8b 45 f4 mov -0xc(%ebp),%eax
+ 10044f: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 100455: 74 05 je 10045c <init_gdt_table+0xc5>
+ 100457: e8 2b 34 00 00 call 103887 <__stack_chk_fail>
+ 10045c: c9 leave
+ 10045d: c3 ret
+
+0010045e <k_heapBMInit>:
+ 10045e: 55 push %ebp
+ 10045f: 89 e5 mov %esp,%ebp
+ 100461: 83 ec 28 sub $0x28,%esp
+ 100464: 8b 45 08 mov 0x8(%ebp),%eax
+ 100467: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 10046a: a1 04 50 10 00 mov 0x105004,%eax
+ 10046f: 89 45 f4 mov %eax,-0xc(%ebp)
+ 100472: 31 c0 xor %eax,%eax
+ 100474: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 100477: c7 00 00 00 00 00 movl $0x0,(%eax)
+ 10047d: 90 nop
+ 10047e: 8b 45 f4 mov -0xc(%ebp),%eax
+ 100481: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 100487: 74 05 je 10048e <k_heapBMInit+0x30>
+ 100489: e8 f9 33 00 00 call 103887 <__stack_chk_fail>
+ 10048e: c9 leave
+ 10048f: c3 ret
+
+00100490 <k_heapBMAddBlock>:
+ 100490: 55 push %ebp
+ 100491: 89 e5 mov %esp,%ebp
+ 100493: 83 ec 38 sub $0x38,%esp
+ 100496: 8b 45 08 mov 0x8(%ebp),%eax
+ 100499: 89 45 d4 mov %eax,-0x2c(%ebp)
+ 10049c: 8b 45 0c mov 0xc(%ebp),%eax
+ 10049f: 89 45 d0 mov %eax,-0x30(%ebp)
+ 1004a2: 8b 45 10 mov 0x10(%ebp),%eax
+ 1004a5: 89 45 cc mov %eax,-0x34(%ebp)
+ 1004a8: 8b 45 14 mov 0x14(%ebp),%eax
+ 1004ab: 89 45 c8 mov %eax,-0x38(%ebp)
+ 1004ae: a1 04 50 10 00 mov 0x105004,%eax
+ 1004b3: 89 45 f4 mov %eax,-0xc(%ebp)
+ 1004b6: 31 c0 xor %eax,%eax
+ 1004b8: 8b 45 d0 mov -0x30(%ebp),%eax
+ 1004bb: 89 45 e8 mov %eax,-0x18(%ebp)
+ 1004be: 8b 45 cc mov -0x34(%ebp),%eax
+ 1004c1: 8d 50 ec lea -0x14(%eax),%edx
+ 1004c4: 8b 45 e8 mov -0x18(%ebp),%eax
+ 1004c7: 89 50 04 mov %edx,0x4(%eax)
+ 1004ca: 8b 45 e8 mov -0x18(%ebp),%eax
+ 1004cd: 8b 55 c8 mov -0x38(%ebp),%edx
+ 1004d0: 89 50 0c mov %edx,0xc(%eax)
+ 1004d3: 8b 45 d4 mov -0x2c(%ebp),%eax
+ 1004d6: 8b 10 mov (%eax),%edx
+ 1004d8: 8b 45 e8 mov -0x18(%ebp),%eax
+ 1004db: 89 10 mov %edx,(%eax)
+ 1004dd: 8b 45 d4 mov -0x2c(%ebp),%eax
+ 1004e0: 8b 55 e8 mov -0x18(%ebp),%edx
+ 1004e3: 89 10 mov %edx,(%eax)
+ 1004e5: 8b 45 e8 mov -0x18(%ebp),%eax
+ 1004e8: 8b 40 04 mov 0x4(%eax),%eax
+ 1004eb: 8b 55 e8 mov -0x18(%ebp),%edx
+ 1004ee: 8b 4a 0c mov 0xc(%edx),%ecx
+ 1004f1: ba 00 00 00 00 mov $0x0,%edx
+ 1004f6: f7 f1 div %ecx
+ 1004f8: 89 45 ec mov %eax,-0x14(%ebp)
+ 1004fb: 8b 45 e8 mov -0x18(%ebp),%eax
+ 1004fe: 83 c0 14 add $0x14,%eax
+ 100501: 89 45 f0 mov %eax,-0x10(%ebp)
+ 100504: c7 45 e4 00 00 00 00 movl $0x0,-0x1c(%ebp)
+ 10050b: eb 0f jmp 10051c <k_heapBMAddBlock+0x8c>
+ 10050d: 8b 55 f0 mov -0x10(%ebp),%edx
+ 100510: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 100513: 01 d0 add %edx,%eax
+ 100515: c6 00 00 movb $0x0,(%eax)
+ 100518: 83 45 e4 01 addl $0x1,-0x1c(%ebp)
+ 10051c: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10051f: 3b 45 ec cmp -0x14(%ebp),%eax
+ 100522: 72 e9 jb 10050d <k_heapBMAddBlock+0x7d>
+ 100524: 8b 45 ec mov -0x14(%ebp),%eax
+ 100527: ba 00 00 00 00 mov $0x0,%edx
+ 10052c: f7 75 c8 divl -0x38(%ebp)
+ 10052f: 0f af 45 c8 imul -0x38(%ebp),%eax
+ 100533: 39 45 ec cmp %eax,-0x14(%ebp)
+ 100536: 76 10 jbe 100548 <k_heapBMAddBlock+0xb8>
+ 100538: 8b 45 ec mov -0x14(%ebp),%eax
+ 10053b: ba 00 00 00 00 mov $0x0,%edx
+ 100540: f7 75 c8 divl -0x38(%ebp)
+ 100543: 83 c0 01 add $0x1,%eax
+ 100546: eb 0b jmp 100553 <k_heapBMAddBlock+0xc3>
+ 100548: 8b 45 ec mov -0x14(%ebp),%eax
+ 10054b: ba 00 00 00 00 mov $0x0,%edx
+ 100550: f7 75 c8 divl -0x38(%ebp)
+ 100553: 89 45 ec mov %eax,-0x14(%ebp)
+ 100556: c7 45 e4 00 00 00 00 movl $0x0,-0x1c(%ebp)
+ 10055d: eb 0f jmp 10056e <k_heapBMAddBlock+0xde>
+ 10055f: 8b 55 f0 mov -0x10(%ebp),%edx
+ 100562: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 100565: 01 d0 add %edx,%eax
+ 100567: c6 00 05 movb $0x5,(%eax)
+ 10056a: 83 45 e4 01 addl $0x1,-0x1c(%ebp)
+ 10056e: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 100571: 3b 45 ec cmp -0x14(%ebp),%eax
+ 100574: 72 e9 jb 10055f <k_heapBMAddBlock+0xcf>
+ 100576: 8b 45 ec mov -0x14(%ebp),%eax
+ 100579: 8d 50 ff lea -0x1(%eax),%edx
+ 10057c: 8b 45 e8 mov -0x18(%ebp),%eax
+ 10057f: 89 50 10 mov %edx,0x10(%eax)
+ 100582: 8b 45 e8 mov -0x18(%ebp),%eax
+ 100585: 8b 55 ec mov -0x14(%ebp),%edx
+ 100588: 89 50 08 mov %edx,0x8(%eax)
+ 10058b: b8 01 00 00 00 mov $0x1,%eax
+ 100590: 8b 55 f4 mov -0xc(%ebp),%edx
+ 100593: 2b 15 04 50 10 00 sub 0x105004,%edx
+ 100599: 74 05 je 1005a0 <k_heapBMAddBlock+0x110>
+ 10059b: e8 e7 32 00 00 call 103887 <__stack_chk_fail>
+ 1005a0: c9 leave
+ 1005a1: c3 ret
+
+001005a2 <k_heapBMGetNID>:
+ 1005a2: 55 push %ebp
+ 1005a3: 89 e5 mov %esp,%ebp
+ 1005a5: 83 ec 28 sub $0x28,%esp
+ 1005a8: 8b 55 08 mov 0x8(%ebp),%edx
+ 1005ab: 8b 45 0c mov 0xc(%ebp),%eax
+ 1005ae: 88 55 e4 mov %dl,-0x1c(%ebp)
+ 1005b1: 88 45 e0 mov %al,-0x20(%ebp)
+ 1005b4: a1 04 50 10 00 mov 0x105004,%eax
+ 1005b9: 89 45 f4 mov %eax,-0xc(%ebp)
+ 1005bc: 31 c0 xor %eax,%eax
+ 1005be: 0f b6 45 e4 movzbl -0x1c(%ebp),%eax
+ 1005c2: 83 c0 01 add $0x1,%eax
+ 1005c5: 88 45 f3 mov %al,-0xd(%ebp)
+ 1005c8: eb 04 jmp 1005ce <k_heapBMGetNID+0x2c>
+ 1005ca: 80 45 f3 01 addb $0x1,-0xd(%ebp)
+ 1005ce: 0f b6 45 f3 movzbl -0xd(%ebp),%eax
+ 1005d2: 3a 45 e0 cmp -0x20(%ebp),%al
+ 1005d5: 74 f3 je 1005ca <k_heapBMGetNID+0x28>
+ 1005d7: 80 7d f3 00 cmpb $0x0,-0xd(%ebp)
+ 1005db: 74 ed je 1005ca <k_heapBMGetNID+0x28>
+ 1005dd: 0f b6 45 f3 movzbl -0xd(%ebp),%eax
+ 1005e1: 8b 55 f4 mov -0xc(%ebp),%edx
+ 1005e4: 2b 15 04 50 10 00 sub 0x105004,%edx
+ 1005ea: 74 05 je 1005f1 <k_heapBMGetNID+0x4f>
+ 1005ec: e8 96 32 00 00 call 103887 <__stack_chk_fail>
+ 1005f1: c9 leave
+ 1005f2: c3 ret
+
+001005f3 <k_heapBMAlloc>:
+ 1005f3: 55 push %ebp
+ 1005f4: 89 e5 mov %esp,%ebp
+ 1005f6: 83 ec 48 sub $0x48,%esp
+ 1005f9: 8b 45 08 mov 0x8(%ebp),%eax
+ 1005fc: 89 45 c4 mov %eax,-0x3c(%ebp)
+ 1005ff: 8b 45 0c mov 0xc(%ebp),%eax
+ 100602: 89 45 c0 mov %eax,-0x40(%ebp)
+ 100605: a1 04 50 10 00 mov 0x105004,%eax
+ 10060a: 89 45 f4 mov %eax,-0xc(%ebp)
+ 10060d: 31 c0 xor %eax,%eax
+ 10060f: 8b 45 c4 mov -0x3c(%ebp),%eax
+ 100612: 8b 00 mov (%eax),%eax
+ 100614: 89 45 d8 mov %eax,-0x28(%ebp)
+ 100617: e9 c2 01 00 00 jmp 1007de <k_heapBMAlloc+0x1eb>
+ 10061c: 8b 45 d8 mov -0x28(%ebp),%eax
+ 10061f: 8b 50 04 mov 0x4(%eax),%edx
+ 100622: 8b 45 d8 mov -0x28(%ebp),%eax
+ 100625: 8b 48 08 mov 0x8(%eax),%ecx
+ 100628: 8b 45 d8 mov -0x28(%ebp),%eax
+ 10062b: 8b 40 0c mov 0xc(%eax),%eax
+ 10062e: 0f af c8 imul %eax,%ecx
+ 100631: 89 d0 mov %edx,%eax
+ 100633: 29 c8 sub %ecx,%eax
+ 100635: 39 45 c0 cmp %eax,-0x40(%ebp)
+ 100638: 0f 87 98 01 00 00 ja 1007d6 <k_heapBMAlloc+0x1e3>
+ 10063e: 8b 45 d8 mov -0x28(%ebp),%eax
+ 100641: 8b 40 04 mov 0x4(%eax),%eax
+ 100644: 8b 55 d8 mov -0x28(%ebp),%edx
+ 100647: 8b 4a 0c mov 0xc(%edx),%ecx
+ 10064a: ba 00 00 00 00 mov $0x0,%edx
+ 10064f: f7 f1 div %ecx
+ 100651: 89 45 e8 mov %eax,-0x18(%ebp)
+ 100654: 8b 45 d8 mov -0x28(%ebp),%eax
+ 100657: 8b 48 0c mov 0xc(%eax),%ecx
+ 10065a: 8b 45 c0 mov -0x40(%ebp),%eax
+ 10065d: ba 00 00 00 00 mov $0x0,%edx
+ 100662: f7 f1 div %ecx
+ 100664: 89 c2 mov %eax,%edx
+ 100666: 8b 45 d8 mov -0x28(%ebp),%eax
+ 100669: 8b 40 0c mov 0xc(%eax),%eax
+ 10066c: 0f af c2 imul %edx,%eax
+ 10066f: 39 45 c0 cmp %eax,-0x40(%ebp)
+ 100672: 76 15 jbe 100689 <k_heapBMAlloc+0x96>
+ 100674: 8b 45 d8 mov -0x28(%ebp),%eax
+ 100677: 8b 48 0c mov 0xc(%eax),%ecx
+ 10067a: 8b 45 c0 mov -0x40(%ebp),%eax
+ 10067d: ba 00 00 00 00 mov $0x0,%edx
+ 100682: f7 f1 div %ecx
+ 100684: 83 c0 01 add $0x1,%eax
+ 100687: eb 10 jmp 100699 <k_heapBMAlloc+0xa6>
+ 100689: 8b 45 d8 mov -0x28(%ebp),%eax
+ 10068c: 8b 48 0c mov 0xc(%eax),%ecx
+ 10068f: 8b 45 c0 mov -0x40(%ebp),%eax
+ 100692: ba 00 00 00 00 mov $0x0,%edx
+ 100697: f7 f1 div %ecx
+ 100699: 89 45 ec mov %eax,-0x14(%ebp)
+ 10069c: 8b 45 d8 mov -0x28(%ebp),%eax
+ 10069f: 83 c0 14 add $0x14,%eax
+ 1006a2: 89 45 f0 mov %eax,-0x10(%ebp)
+ 1006a5: 8b 45 d8 mov -0x28(%ebp),%eax
+ 1006a8: 8b 40 10 mov 0x10(%eax),%eax
+ 1006ab: 83 c0 01 add $0x1,%eax
+ 1006ae: 39 45 e8 cmp %eax,-0x18(%ebp)
+ 1006b1: 76 0b jbe 1006be <k_heapBMAlloc+0xcb>
+ 1006b3: 8b 45 d8 mov -0x28(%ebp),%eax
+ 1006b6: 8b 40 10 mov 0x10(%eax),%eax
+ 1006b9: 83 c0 01 add $0x1,%eax
+ 1006bc: eb 05 jmp 1006c3 <k_heapBMAlloc+0xd0>
+ 1006be: b8 00 00 00 00 mov $0x0,%eax
+ 1006c3: 89 45 dc mov %eax,-0x24(%ebp)
+ 1006c6: 8b 45 dc mov -0x24(%ebp),%eax
+ 1006c9: 3b 45 e8 cmp -0x18(%ebp),%eax
+ 1006cc: 72 07 jb 1006d5 <k_heapBMAlloc+0xe2>
+ 1006ce: c7 45 dc 00 00 00 00 movl $0x0,-0x24(%ebp)
+ 1006d5: 8b 55 f0 mov -0x10(%ebp),%edx
+ 1006d8: 8b 45 dc mov -0x24(%ebp),%eax
+ 1006db: 01 d0 add %edx,%eax
+ 1006dd: 0f b6 00 movzbl (%eax),%eax
+ 1006e0: 84 c0 test %al,%al
+ 1006e2: 0f 85 e5 00 00 00 jne 1007cd <k_heapBMAlloc+0x1da>
+ 1006e8: c7 45 e0 00 00 00 00 movl $0x0,-0x20(%ebp)
+ 1006ef: eb 04 jmp 1006f5 <k_heapBMAlloc+0x102>
+ 1006f1: 83 45 e0 01 addl $0x1,-0x20(%ebp)
+ 1006f5: 8b 55 dc mov -0x24(%ebp),%edx
+ 1006f8: 8b 45 e0 mov -0x20(%ebp),%eax
+ 1006fb: 01 c2 add %eax,%edx
+ 1006fd: 8b 45 f0 mov -0x10(%ebp),%eax
+ 100700: 01 d0 add %edx,%eax
+ 100702: 0f b6 00 movzbl (%eax),%eax
+ 100705: 84 c0 test %al,%al
+ 100707: 75 15 jne 10071e <k_heapBMAlloc+0x12b>
+ 100709: 8b 45 e0 mov -0x20(%ebp),%eax
+ 10070c: 3b 45 ec cmp -0x14(%ebp),%eax
+ 10070f: 73 0d jae 10071e <k_heapBMAlloc+0x12b>
+ 100711: 8b 55 dc mov -0x24(%ebp),%edx
+ 100714: 8b 45 e0 mov -0x20(%ebp),%eax
+ 100717: 01 d0 add %edx,%eax
+ 100719: 39 45 e8 cmp %eax,-0x18(%ebp)
+ 10071c: 77 d3 ja 1006f1 <k_heapBMAlloc+0xfe>
+ 10071e: 8b 45 e0 mov -0x20(%ebp),%eax
+ 100721: 3b 45 ec cmp -0x14(%ebp),%eax
+ 100724: 0f 85 94 00 00 00 jne 1007be <k_heapBMAlloc+0x1cb>
+ 10072a: 8b 55 dc mov -0x24(%ebp),%edx
+ 10072d: 8b 45 e0 mov -0x20(%ebp),%eax
+ 100730: 01 c2 add %eax,%edx
+ 100732: 8b 45 f0 mov -0x10(%ebp),%eax
+ 100735: 01 d0 add %edx,%eax
+ 100737: 0f b6 00 movzbl (%eax),%eax
+ 10073a: 0f b6 d0 movzbl %al,%edx
+ 10073d: 8b 45 dc mov -0x24(%ebp),%eax
+ 100740: 8d 48 ff lea -0x1(%eax),%ecx
+ 100743: 8b 45 f0 mov -0x10(%ebp),%eax
+ 100746: 01 c8 add %ecx,%eax
+ 100748: 0f b6 00 movzbl (%eax),%eax
+ 10074b: 0f b6 c0 movzbl %al,%eax
+ 10074e: 83 ec 08 sub $0x8,%esp
+ 100751: 52 push %edx
+ 100752: 50 push %eax
+ 100753: e8 4a fe ff ff call 1005a2 <k_heapBMGetNID>
+ 100758: 83 c4 10 add $0x10,%esp
+ 10075b: 88 45 d7 mov %al,-0x29(%ebp)
+ 10075e: c7 45 e4 00 00 00 00 movl $0x0,-0x1c(%ebp)
+ 100765: eb 17 jmp 10077e <k_heapBMAlloc+0x18b>
+ 100767: 8b 55 dc mov -0x24(%ebp),%edx
+ 10076a: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10076d: 01 c2 add %eax,%edx
+ 10076f: 8b 45 f0 mov -0x10(%ebp),%eax
+ 100772: 01 c2 add %eax,%edx
+ 100774: 0f b6 45 d7 movzbl -0x29(%ebp),%eax
+ 100778: 88 02 mov %al,(%edx)
+ 10077a: 83 45 e4 01 addl $0x1,-0x1c(%ebp)
+ 10077e: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 100781: 3b 45 e0 cmp -0x20(%ebp),%eax
+ 100784: 72 e1 jb 100767 <k_heapBMAlloc+0x174>
+ 100786: 8b 55 dc mov -0x24(%ebp),%edx
+ 100789: 8b 45 ec mov -0x14(%ebp),%eax
+ 10078c: 01 d0 add %edx,%eax
+ 10078e: 8d 50 fe lea -0x2(%eax),%edx
+ 100791: 8b 45 d8 mov -0x28(%ebp),%eax
+ 100794: 89 50 10 mov %edx,0x10(%eax)
+ 100797: 8b 45 d8 mov -0x28(%ebp),%eax
+ 10079a: 8b 50 08 mov 0x8(%eax),%edx
+ 10079d: 8b 45 e0 mov -0x20(%ebp),%eax
+ 1007a0: 01 c2 add %eax,%edx
+ 1007a2: 8b 45 d8 mov -0x28(%ebp),%eax
+ 1007a5: 89 50 08 mov %edx,0x8(%eax)
+ 1007a8: 8b 45 d8 mov -0x28(%ebp),%eax
+ 1007ab: 8b 40 0c mov 0xc(%eax),%eax
+ 1007ae: 0f af 45 dc imul -0x24(%ebp),%eax
+ 1007b2: 89 c2 mov %eax,%edx
+ 1007b4: 8b 45 d8 mov -0x28(%ebp),%eax
+ 1007b7: 01 d0 add %edx,%eax
+ 1007b9: 83 c0 14 add $0x14,%eax
+ 1007bc: eb 2f jmp 1007ed <k_heapBMAlloc+0x1fa>
+ 1007be: 8b 55 e0 mov -0x20(%ebp),%edx
+ 1007c1: 8b 45 dc mov -0x24(%ebp),%eax
+ 1007c4: 01 d0 add %edx,%eax
+ 1007c6: 83 e8 01 sub $0x1,%eax
+ 1007c9: 89 45 dc mov %eax,-0x24(%ebp)
+ 1007cc: 90 nop
+ 1007cd: 83 45 dc 01 addl $0x1,-0x24(%ebp)
+ 1007d1: e9 f0 fe ff ff jmp 1006c6 <k_heapBMAlloc+0xd3>
+ 1007d6: 8b 45 d8 mov -0x28(%ebp),%eax
+ 1007d9: 8b 00 mov (%eax),%eax
+ 1007db: 89 45 d8 mov %eax,-0x28(%ebp)
+ 1007de: 83 7d d8 00 cmpl $0x0,-0x28(%ebp)
+ 1007e2: 0f 85 34 fe ff ff jne 10061c <k_heapBMAlloc+0x29>
+ 1007e8: b8 00 00 00 00 mov $0x0,%eax
+ 1007ed: 8b 55 f4 mov -0xc(%ebp),%edx
+ 1007f0: 2b 15 04 50 10 00 sub 0x105004,%edx
+ 1007f6: 74 05 je 1007fd <k_heapBMAlloc+0x20a>
+ 1007f8: e8 8a 30 00 00 call 103887 <__stack_chk_fail>
+ 1007fd: c9 leave
+ 1007fe: c3 ret
+
+001007ff <k_heapBMFree>:
+ 1007ff: 55 push %ebp
+ 100800: 89 e5 mov %esp,%ebp
+ 100802: 83 ec 38 sub $0x38,%esp
+ 100805: 8b 45 08 mov 0x8(%ebp),%eax
+ 100808: 89 45 d4 mov %eax,-0x2c(%ebp)
+ 10080b: 8b 45 0c mov 0xc(%ebp),%eax
+ 10080e: 89 45 d0 mov %eax,-0x30(%ebp)
+ 100811: a1 04 50 10 00 mov 0x105004,%eax
+ 100816: 89 45 f4 mov %eax,-0xc(%ebp)
+ 100819: 31 c0 xor %eax,%eax
+ 10081b: 8b 45 d4 mov -0x2c(%ebp),%eax
+ 10081e: 8b 00 mov (%eax),%eax
+ 100820: 89 45 dc mov %eax,-0x24(%ebp)
+ 100823: e9 c2 00 00 00 jmp 1008ea <k_heapBMFree+0xeb>
+ 100828: 8b 55 d0 mov -0x30(%ebp),%edx
+ 10082b: 8b 45 dc mov -0x24(%ebp),%eax
+ 10082e: 39 c2 cmp %eax,%edx
+ 100830: 0f 86 ac 00 00 00 jbe 1008e2 <k_heapBMFree+0xe3>
+ 100836: 8b 45 dc mov -0x24(%ebp),%eax
+ 100839: 8b 50 04 mov 0x4(%eax),%edx
+ 10083c: 8b 45 dc mov -0x24(%ebp),%eax
+ 10083f: 01 d0 add %edx,%eax
+ 100841: 8d 50 14 lea 0x14(%eax),%edx
+ 100844: 8b 45 d0 mov -0x30(%ebp),%eax
+ 100847: 39 c2 cmp %eax,%edx
+ 100849: 0f 86 93 00 00 00 jbe 1008e2 <k_heapBMFree+0xe3>
+ 10084f: 8b 45 d0 mov -0x30(%ebp),%eax
+ 100852: 8b 55 dc mov -0x24(%ebp),%edx
+ 100855: 29 d0 sub %edx,%eax
+ 100857: 83 e8 14 sub $0x14,%eax
+ 10085a: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 10085d: 8b 45 dc mov -0x24(%ebp),%eax
+ 100860: 8b 48 0c mov 0xc(%eax),%ecx
+ 100863: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 100866: ba 00 00 00 00 mov $0x0,%edx
+ 10086b: f7 f1 div %ecx
+ 10086d: 89 45 e8 mov %eax,-0x18(%ebp)
+ 100870: 8b 45 dc mov -0x24(%ebp),%eax
+ 100873: 83 c0 14 add $0x14,%eax
+ 100876: 89 45 ec mov %eax,-0x14(%ebp)
+ 100879: 8b 55 ec mov -0x14(%ebp),%edx
+ 10087c: 8b 45 e8 mov -0x18(%ebp),%eax
+ 10087f: 01 d0 add %edx,%eax
+ 100881: 0f b6 00 movzbl (%eax),%eax
+ 100884: 88 45 db mov %al,-0x25(%ebp)
+ 100887: 8b 45 dc mov -0x24(%ebp),%eax
+ 10088a: 8b 40 04 mov 0x4(%eax),%eax
+ 10088d: 8b 55 dc mov -0x24(%ebp),%edx
+ 100890: 8b 4a 0c mov 0xc(%edx),%ecx
+ 100893: ba 00 00 00 00 mov $0x0,%edx
+ 100898: f7 f1 div %ecx
+ 10089a: 89 45 f0 mov %eax,-0x10(%ebp)
+ 10089d: 8b 45 e8 mov -0x18(%ebp),%eax
+ 1008a0: 89 45 e0 mov %eax,-0x20(%ebp)
+ 1008a3: eb 0f jmp 1008b4 <k_heapBMFree+0xb5>
+ 1008a5: 8b 55 ec mov -0x14(%ebp),%edx
+ 1008a8: 8b 45 e0 mov -0x20(%ebp),%eax
+ 1008ab: 01 d0 add %edx,%eax
+ 1008ad: c6 00 00 movb $0x0,(%eax)
+ 1008b0: 83 45 e0 01 addl $0x1,-0x20(%ebp)
+ 1008b4: 8b 55 ec mov -0x14(%ebp),%edx
+ 1008b7: 8b 45 e0 mov -0x20(%ebp),%eax
+ 1008ba: 01 d0 add %edx,%eax
+ 1008bc: 0f b6 00 movzbl (%eax),%eax
+ 1008bf: 38 45 db cmp %al,-0x25(%ebp)
+ 1008c2: 75 08 jne 1008cc <k_heapBMFree+0xcd>
+ 1008c4: 8b 45 e0 mov -0x20(%ebp),%eax
+ 1008c7: 3b 45 f0 cmp -0x10(%ebp),%eax
+ 1008ca: 72 d9 jb 1008a5 <k_heapBMFree+0xa6>
+ 1008cc: 8b 45 dc mov -0x24(%ebp),%eax
+ 1008cf: 8b 50 08 mov 0x8(%eax),%edx
+ 1008d2: 8b 45 e8 mov -0x18(%ebp),%eax
+ 1008d5: 2b 45 e0 sub -0x20(%ebp),%eax
+ 1008d8: 01 c2 add %eax,%edx
+ 1008da: 8b 45 dc mov -0x24(%ebp),%eax
+ 1008dd: 89 50 08 mov %edx,0x8(%eax)
+ 1008e0: eb 13 jmp 1008f5 <k_heapBMFree+0xf6>
+ 1008e2: 8b 45 dc mov -0x24(%ebp),%eax
+ 1008e5: 8b 00 mov (%eax),%eax
+ 1008e7: 89 45 dc mov %eax,-0x24(%ebp)
+ 1008ea: 83 7d dc 00 cmpl $0x0,-0x24(%ebp)
+ 1008ee: 0f 85 34 ff ff ff jne 100828 <k_heapBMFree+0x29>
+ 1008f4: 90 nop
+ 1008f5: 8b 45 f4 mov -0xc(%ebp),%eax
+ 1008f8: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 1008fe: 74 05 je 100905 <k_heapBMFree+0x106>
+ 100900: e8 82 2f 00 00 call 103887 <__stack_chk_fail>
+ 100905: c9 leave
+ 100906: c3 ret
+
+00100907 <heap>:
+ 100907: 55 push %ebp
+ 100908: 89 e5 mov %esp,%ebp
+ 10090a: 83 ec 18 sub $0x18,%esp
+ 10090d: a1 04 50 10 00 mov 0x105004,%eax
+ 100912: 89 45 f4 mov %eax,-0xc(%ebp)
+ 100915: 31 c0 xor %eax,%eax
+ 100917: 83 ec 0c sub $0xc,%esp
+ 10091a: 8d 45 ec lea -0x14(%ebp),%eax
+ 10091d: 50 push %eax
+ 10091e: e8 3b fb ff ff call 10045e <k_heapBMInit>
+ 100923: 83 c4 10 add $0x10,%esp
+ 100926: 6a 10 push $0x10
+ 100928: 68 00 00 10 00 push $0x100000
+ 10092d: 68 00 00 10 00 push $0x100000
+ 100932: 8d 45 ec lea -0x14(%ebp),%eax
+ 100935: 50 push %eax
+ 100936: e8 55 fb ff ff call 100490 <k_heapBMAddBlock>
+ 10093b: 83 c4 10 add $0x10,%esp
+ 10093e: 83 ec 08 sub $0x8,%esp
+ 100941: 68 00 01 00 00 push $0x100
+ 100946: 8d 45 ec lea -0x14(%ebp),%eax
+ 100949: 50 push %eax
+ 10094a: e8 a4 fc ff ff call 1005f3 <k_heapBMAlloc>
+ 10094f: 83 c4 10 add $0x10,%esp
+ 100952: 89 45 f0 mov %eax,-0x10(%ebp)
+ 100955: 83 ec 08 sub $0x8,%esp
+ 100958: ff 75 f0 push -0x10(%ebp)
+ 10095b: 8d 45 ec lea -0x14(%ebp),%eax
+ 10095e: 50 push %eax
+ 10095f: e8 9b fe ff ff call 1007ff <k_heapBMFree>
+ 100964: 83 c4 10 add $0x10,%esp
+ 100967: 90 nop
+ 100968: 8b 45 f4 mov -0xc(%ebp),%eax
+ 10096b: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 100971: 74 05 je 100978 <heap+0x71>
+ 100973: e8 0f 2f 00 00 call 103887 <__stack_chk_fail>
+ 100978: c9 leave
+ 100979: c3 ret
+
+0010097a <init_idt_entry>:
+ 10097a: 55 push %ebp
+ 10097b: 89 e5 mov %esp,%ebp
+ 10097d: 83 ec 28 sub $0x28,%esp
+ 100980: 8b 55 10 mov 0x10(%ebp),%edx
+ 100983: 8b 4d 14 mov 0x14(%ebp),%ecx
+ 100986: 8b 45 08 mov 0x8(%ebp),%eax
+ 100989: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 10098c: 8b 45 0c mov 0xc(%ebp),%eax
+ 10098f: 89 45 e0 mov %eax,-0x20(%ebp)
+ 100992: 89 d0 mov %edx,%eax
+ 100994: 66 89 45 dc mov %ax,-0x24(%ebp)
+ 100998: 89 c8 mov %ecx,%eax
+ 10099a: 88 45 d8 mov %al,-0x28(%ebp)
+ 10099d: a1 04 50 10 00 mov 0x105004,%eax
+ 1009a2: 89 45 f4 mov %eax,-0xc(%ebp)
+ 1009a5: 31 c0 xor %eax,%eax
+ 1009a7: 8b 45 e0 mov -0x20(%ebp),%eax
+ 1009aa: 89 c2 mov %eax,%edx
+ 1009ac: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1009af: 66 89 14 c5 60 a0 10 mov %dx,0x10a060(,%eax,8)
+ 1009b6: 00
+ 1009b7: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1009ba: 0f b7 55 dc movzwl -0x24(%ebp),%edx
+ 1009be: 66 89 14 c5 62 a0 10 mov %dx,0x10a062(,%eax,8)
+ 1009c5: 00
+ 1009c6: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1009c9: c6 04 c5 64 a0 10 00 movb $0x0,0x10a064(,%eax,8)
+ 1009d0: 00
+ 1009d1: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1009d4: 0f b6 55 d8 movzbl -0x28(%ebp),%edx
+ 1009d8: 88 14 c5 65 a0 10 00 mov %dl,0x10a065(,%eax,8)
+ 1009df: 8b 45 e0 mov -0x20(%ebp),%eax
+ 1009e2: c1 e8 10 shr $0x10,%eax
+ 1009e5: 89 c2 mov %eax,%edx
+ 1009e7: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1009ea: 66 89 14 c5 66 a0 10 mov %dx,0x10a066(,%eax,8)
+ 1009f1: 00
+ 1009f2: 90 nop
+ 1009f3: 8b 45 f4 mov -0xc(%ebp),%eax
+ 1009f6: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 1009fc: 74 05 je 100a03 <init_idt_entry+0x89>
+ 1009fe: e8 84 2e 00 00 call 103887 <__stack_chk_fail>
+ 100a03: c9 leave
+ 100a04: c3 ret
+
+00100a05 <add_idt_entry>:
+ 100a05: 55 push %ebp
+ 100a06: 89 e5 mov %esp,%ebp
+ 100a08: 83 ec 28 sub $0x28,%esp
+ 100a0b: 8b 45 08 mov 0x8(%ebp),%eax
+ 100a0e: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 100a11: 8b 45 0c mov 0xc(%ebp),%eax
+ 100a14: 89 45 e0 mov %eax,-0x20(%ebp)
+ 100a17: a1 04 50 10 00 mov 0x105004,%eax
+ 100a1c: 89 45 f4 mov %eax,-0xc(%ebp)
+ 100a1f: 31 c0 xor %eax,%eax
+ 100a21: 68 8e 00 00 00 push $0x8e
+ 100a26: 6a 08 push $0x8
+ 100a28: ff 75 e0 push -0x20(%ebp)
+ 100a2b: ff 75 e4 push -0x1c(%ebp)
+ 100a2e: e8 47 ff ff ff call 10097a <init_idt_entry>
+ 100a33: 83 c4 10 add $0x10,%esp
+ 100a36: 90 nop
+ 100a37: 8b 45 f4 mov -0xc(%ebp),%eax
+ 100a3a: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 100a40: 74 05 je 100a47 <add_idt_entry+0x42>
+ 100a42: e8 40 2e 00 00 call 103887 <__stack_chk_fail>
+ 100a47: c9 leave
+ 100a48: c3 ret
+
+00100a49 <init_pic>:
+ 100a49: 55 push %ebp
+ 100a4a: 89 e5 mov %esp,%ebp
+ 100a4c: 83 ec 18 sub $0x18,%esp
+ 100a4f: a1 04 50 10 00 mov 0x105004,%eax
+ 100a54: 89 45 f4 mov %eax,-0xc(%ebp)
+ 100a57: 31 c0 xor %eax,%eax
+ 100a59: 83 ec 08 sub $0x8,%esp
+ 100a5c: 6a 11 push $0x11
+ 100a5e: 6a 20 push $0x20
+ 100a60: e8 be f5 ff ff call 100023 <ioport_out>
+ 100a65: 83 c4 10 add $0x10,%esp
+ 100a68: 83 ec 08 sub $0x8,%esp
+ 100a6b: 6a 11 push $0x11
+ 100a6d: 68 a0 00 00 00 push $0xa0
+ 100a72: e8 ac f5 ff ff call 100023 <ioport_out>
+ 100a77: 83 c4 10 add $0x10,%esp
+ 100a7a: 83 ec 08 sub $0x8,%esp
+ 100a7d: 6a 20 push $0x20
+ 100a7f: 6a 21 push $0x21
+ 100a81: e8 9d f5 ff ff call 100023 <ioport_out>
+ 100a86: 83 c4 10 add $0x10,%esp
+ 100a89: 83 ec 08 sub $0x8,%esp
+ 100a8c: 6a 28 push $0x28
+ 100a8e: 68 a1 00 00 00 push $0xa1
+ 100a93: e8 8b f5 ff ff call 100023 <ioport_out>
+ 100a98: 83 c4 10 add $0x10,%esp
+ 100a9b: 83 ec 08 sub $0x8,%esp
+ 100a9e: 6a 04 push $0x4
+ 100aa0: 6a 21 push $0x21
+ 100aa2: e8 7c f5 ff ff call 100023 <ioport_out>
+ 100aa7: 83 c4 10 add $0x10,%esp
+ 100aaa: 83 ec 08 sub $0x8,%esp
+ 100aad: 6a 02 push $0x2
+ 100aaf: 68 a1 00 00 00 push $0xa1
+ 100ab4: e8 6a f5 ff ff call 100023 <ioport_out>
+ 100ab9: 83 c4 10 add $0x10,%esp
+ 100abc: 83 ec 08 sub $0x8,%esp
+ 100abf: 6a 01 push $0x1
+ 100ac1: 6a 21 push $0x21
+ 100ac3: e8 5b f5 ff ff call 100023 <ioport_out>
+ 100ac8: 83 c4 10 add $0x10,%esp
+ 100acb: 83 ec 08 sub $0x8,%esp
+ 100ace: 6a 01 push $0x1
+ 100ad0: 68 a1 00 00 00 push $0xa1
+ 100ad5: e8 49 f5 ff ff call 100023 <ioport_out>
+ 100ada: 83 c4 10 add $0x10,%esp
+ 100add: 83 ec 08 sub $0x8,%esp
+ 100ae0: 6a ff push $0xffffffff
+ 100ae2: 6a 21 push $0x21
+ 100ae4: e8 3a f5 ff ff call 100023 <ioport_out>
+ 100ae9: 83 c4 10 add $0x10,%esp
+ 100aec: 83 ec 08 sub $0x8,%esp
+ 100aef: 6a ff push $0xffffffff
+ 100af1: 68 a1 00 00 00 push $0xa1
+ 100af6: e8 28 f5 ff ff call 100023 <ioport_out>
+ 100afb: 83 c4 10 add $0x10,%esp
+ 100afe: 83 ec 08 sub $0x8,%esp
+ 100b01: 6a fc push $0xfffffffc
+ 100b03: 6a 21 push $0x21
+ 100b05: e8 19 f5 ff ff call 100023 <ioport_out>
+ 100b0a: 83 c4 10 add $0x10,%esp
+ 100b0d: 90 nop
+ 100b0e: 8b 45 f4 mov -0xc(%ebp),%eax
+ 100b11: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 100b17: 74 05 je 100b1e <init_pic+0xd5>
+ 100b19: e8 69 2d 00 00 call 103887 <__stack_chk_fail>
+ 100b1e: c9 leave
+ 100b1f: c3 ret
+
+00100b20 <init_idt_table>:
+ 100b20: 55 push %ebp
+ 100b21: 89 e5 mov %esp,%ebp
+ 100b23: 83 ec 18 sub $0x18,%esp
+ 100b26: a1 04 50 10 00 mov 0x105004,%eax
+ 100b2b: 89 45 f4 mov %eax,-0xc(%ebp)
+ 100b2e: 31 c0 xor %eax,%eax
+ 100b30: e8 14 ff ff ff call 100a49 <init_pic>
+ 100b35: b8 a0 01 10 00 mov $0x1001a0,%eax
+ 100b3a: 83 ec 08 sub $0x8,%esp
+ 100b3d: 50 push %eax
+ 100b3e: 6a 00 push $0x0
+ 100b40: e8 c0 fe ff ff call 100a05 <add_idt_entry>
+ 100b45: 83 c4 10 add $0x10,%esp
+ 100b48: b8 a9 01 10 00 mov $0x1001a9,%eax
+ 100b4d: 83 ec 08 sub $0x8,%esp
+ 100b50: 50 push %eax
+ 100b51: 6a 01 push $0x1
+ 100b53: e8 ad fe ff ff call 100a05 <add_idt_entry>
+ 100b58: 83 c4 10 add $0x10,%esp
+ 100b5b: b8 b2 01 10 00 mov $0x1001b2,%eax
+ 100b60: 83 ec 08 sub $0x8,%esp
+ 100b63: 50 push %eax
+ 100b64: 6a 02 push $0x2
+ 100b66: e8 9a fe ff ff call 100a05 <add_idt_entry>
+ 100b6b: 83 c4 10 add $0x10,%esp
+ 100b6e: b8 bb 01 10 00 mov $0x1001bb,%eax
+ 100b73: 83 ec 08 sub $0x8,%esp
+ 100b76: 50 push %eax
+ 100b77: 6a 03 push $0x3
+ 100b79: e8 87 fe ff ff call 100a05 <add_idt_entry>
+ 100b7e: 83 c4 10 add $0x10,%esp
+ 100b81: b8 c4 01 10 00 mov $0x1001c4,%eax
+ 100b86: 83 ec 08 sub $0x8,%esp
+ 100b89: 50 push %eax
+ 100b8a: 6a 04 push $0x4
+ 100b8c: e8 74 fe ff ff call 100a05 <add_idt_entry>
+ 100b91: 83 c4 10 add $0x10,%esp
+ 100b94: b8 cd 01 10 00 mov $0x1001cd,%eax
+ 100b99: 83 ec 08 sub $0x8,%esp
+ 100b9c: 50 push %eax
+ 100b9d: 6a 05 push $0x5
+ 100b9f: e8 61 fe ff ff call 100a05 <add_idt_entry>
+ 100ba4: 83 c4 10 add $0x10,%esp
+ 100ba7: b8 d6 01 10 00 mov $0x1001d6,%eax
+ 100bac: 83 ec 08 sub $0x8,%esp
+ 100baf: 50 push %eax
+ 100bb0: 6a 06 push $0x6
+ 100bb2: e8 4e fe ff ff call 100a05 <add_idt_entry>
+ 100bb7: 83 c4 10 add $0x10,%esp
+ 100bba: b8 df 01 10 00 mov $0x1001df,%eax
+ 100bbf: 83 ec 08 sub $0x8,%esp
+ 100bc2: 50 push %eax
+ 100bc3: 6a 07 push $0x7
+ 100bc5: e8 3b fe ff ff call 100a05 <add_idt_entry>
+ 100bca: 83 c4 10 add $0x10,%esp
+ 100bcd: b8 e8 01 10 00 mov $0x1001e8,%eax
+ 100bd2: 83 ec 08 sub $0x8,%esp
+ 100bd5: 50 push %eax
+ 100bd6: 6a 08 push $0x8
+ 100bd8: e8 28 fe ff ff call 100a05 <add_idt_entry>
+ 100bdd: 83 c4 10 add $0x10,%esp
+ 100be0: b8 f1 01 10 00 mov $0x1001f1,%eax
+ 100be5: 83 ec 08 sub $0x8,%esp
+ 100be8: 50 push %eax
+ 100be9: 6a 09 push $0x9
+ 100beb: e8 15 fe ff ff call 100a05 <add_idt_entry>
+ 100bf0: 83 c4 10 add $0x10,%esp
+ 100bf3: b8 fa 01 10 00 mov $0x1001fa,%eax
+ 100bf8: 83 ec 08 sub $0x8,%esp
+ 100bfb: 50 push %eax
+ 100bfc: 6a 0a push $0xa
+ 100bfe: e8 02 fe ff ff call 100a05 <add_idt_entry>
+ 100c03: 83 c4 10 add $0x10,%esp
+ 100c06: b8 03 02 10 00 mov $0x100203,%eax
+ 100c0b: 83 ec 08 sub $0x8,%esp
+ 100c0e: 50 push %eax
+ 100c0f: 6a 0b push $0xb
+ 100c11: e8 ef fd ff ff call 100a05 <add_idt_entry>
+ 100c16: 83 c4 10 add $0x10,%esp
+ 100c19: b8 0c 02 10 00 mov $0x10020c,%eax
+ 100c1e: 83 ec 08 sub $0x8,%esp
+ 100c21: 50 push %eax
+ 100c22: 6a 0c push $0xc
+ 100c24: e8 dc fd ff ff call 100a05 <add_idt_entry>
+ 100c29: 83 c4 10 add $0x10,%esp
+ 100c2c: b8 15 02 10 00 mov $0x100215,%eax
+ 100c31: 83 ec 08 sub $0x8,%esp
+ 100c34: 50 push %eax
+ 100c35: 6a 0d push $0xd
+ 100c37: e8 c9 fd ff ff call 100a05 <add_idt_entry>
+ 100c3c: 83 c4 10 add $0x10,%esp
+ 100c3f: b8 1e 02 10 00 mov $0x10021e,%eax
+ 100c44: 83 ec 08 sub $0x8,%esp
+ 100c47: 50 push %eax
+ 100c48: 6a 0e push $0xe
+ 100c4a: e8 b6 fd ff ff call 100a05 <add_idt_entry>
+ 100c4f: 83 c4 10 add $0x10,%esp
+ 100c52: b8 27 02 10 00 mov $0x100227,%eax
+ 100c57: 83 ec 08 sub $0x8,%esp
+ 100c5a: 50 push %eax
+ 100c5b: 6a 0f push $0xf
+ 100c5d: e8 a3 fd ff ff call 100a05 <add_idt_entry>
+ 100c62: 83 c4 10 add $0x10,%esp
+ 100c65: b8 30 02 10 00 mov $0x100230,%eax
+ 100c6a: 83 ec 08 sub $0x8,%esp
+ 100c6d: 50 push %eax
+ 100c6e: 6a 10 push $0x10
+ 100c70: e8 90 fd ff ff call 100a05 <add_idt_entry>
+ 100c75: 83 c4 10 add $0x10,%esp
+ 100c78: b8 39 02 10 00 mov $0x100239,%eax
+ 100c7d: 83 ec 08 sub $0x8,%esp
+ 100c80: 50 push %eax
+ 100c81: 6a 11 push $0x11
+ 100c83: e8 7d fd ff ff call 100a05 <add_idt_entry>
+ 100c88: 83 c4 10 add $0x10,%esp
+ 100c8b: b8 42 02 10 00 mov $0x100242,%eax
+ 100c90: 83 ec 08 sub $0x8,%esp
+ 100c93: 50 push %eax
+ 100c94: 6a 12 push $0x12
+ 100c96: e8 6a fd ff ff call 100a05 <add_idt_entry>
+ 100c9b: 83 c4 10 add $0x10,%esp
+ 100c9e: b8 4b 02 10 00 mov $0x10024b,%eax
+ 100ca3: 83 ec 08 sub $0x8,%esp
+ 100ca6: 50 push %eax
+ 100ca7: 6a 13 push $0x13
+ 100ca9: e8 57 fd ff ff call 100a05 <add_idt_entry>
+ 100cae: 83 c4 10 add $0x10,%esp
+ 100cb1: b8 54 02 10 00 mov $0x100254,%eax
+ 100cb6: 83 ec 08 sub $0x8,%esp
+ 100cb9: 50 push %eax
+ 100cba: 6a 14 push $0x14
+ 100cbc: e8 44 fd ff ff call 100a05 <add_idt_entry>
+ 100cc1: 83 c4 10 add $0x10,%esp
+ 100cc4: b8 5d 02 10 00 mov $0x10025d,%eax
+ 100cc9: 83 ec 08 sub $0x8,%esp
+ 100ccc: 50 push %eax
+ 100ccd: 6a 15 push $0x15
+ 100ccf: e8 31 fd ff ff call 100a05 <add_idt_entry>
+ 100cd4: 83 c4 10 add $0x10,%esp
+ 100cd7: b8 66 02 10 00 mov $0x100266,%eax
+ 100cdc: 83 ec 08 sub $0x8,%esp
+ 100cdf: 50 push %eax
+ 100ce0: 6a 16 push $0x16
+ 100ce2: e8 1e fd ff ff call 100a05 <add_idt_entry>
+ 100ce7: 83 c4 10 add $0x10,%esp
+ 100cea: b8 6f 02 10 00 mov $0x10026f,%eax
+ 100cef: 83 ec 08 sub $0x8,%esp
+ 100cf2: 50 push %eax
+ 100cf3: 6a 17 push $0x17
+ 100cf5: e8 0b fd ff ff call 100a05 <add_idt_entry>
+ 100cfa: 83 c4 10 add $0x10,%esp
+ 100cfd: b8 78 02 10 00 mov $0x100278,%eax
+ 100d02: 83 ec 08 sub $0x8,%esp
+ 100d05: 50 push %eax
+ 100d06: 6a 18 push $0x18
+ 100d08: e8 f8 fc ff ff call 100a05 <add_idt_entry>
+ 100d0d: 83 c4 10 add $0x10,%esp
+ 100d10: b8 81 02 10 00 mov $0x100281,%eax
+ 100d15: 83 ec 08 sub $0x8,%esp
+ 100d18: 50 push %eax
+ 100d19: 6a 19 push $0x19
+ 100d1b: e8 e5 fc ff ff call 100a05 <add_idt_entry>
+ 100d20: 83 c4 10 add $0x10,%esp
+ 100d23: b8 8a 02 10 00 mov $0x10028a,%eax
+ 100d28: 83 ec 08 sub $0x8,%esp
+ 100d2b: 50 push %eax
+ 100d2c: 6a 1a push $0x1a
+ 100d2e: e8 d2 fc ff ff call 100a05 <add_idt_entry>
+ 100d33: 83 c4 10 add $0x10,%esp
+ 100d36: b8 93 02 10 00 mov $0x100293,%eax
+ 100d3b: 83 ec 08 sub $0x8,%esp
+ 100d3e: 50 push %eax
+ 100d3f: 6a 1b push $0x1b
+ 100d41: e8 bf fc ff ff call 100a05 <add_idt_entry>
+ 100d46: 83 c4 10 add $0x10,%esp
+ 100d49: b8 9c 02 10 00 mov $0x10029c,%eax
+ 100d4e: 83 ec 08 sub $0x8,%esp
+ 100d51: 50 push %eax
+ 100d52: 6a 1c push $0x1c
+ 100d54: e8 ac fc ff ff call 100a05 <add_idt_entry>
+ 100d59: 83 c4 10 add $0x10,%esp
+ 100d5c: b8 a5 02 10 00 mov $0x1002a5,%eax
+ 100d61: 83 ec 08 sub $0x8,%esp
+ 100d64: 50 push %eax
+ 100d65: 6a 1d push $0x1d
+ 100d67: e8 99 fc ff ff call 100a05 <add_idt_entry>
+ 100d6c: 83 c4 10 add $0x10,%esp
+ 100d6f: b8 ae 02 10 00 mov $0x1002ae,%eax
+ 100d74: 83 ec 08 sub $0x8,%esp
+ 100d77: 50 push %eax
+ 100d78: 6a 1e push $0x1e
+ 100d7a: e8 86 fc ff ff call 100a05 <add_idt_entry>
+ 100d7f: 83 c4 10 add $0x10,%esp
+ 100d82: b8 b7 02 10 00 mov $0x1002b7,%eax
+ 100d87: 83 ec 08 sub $0x8,%esp
+ 100d8a: 50 push %eax
+ 100d8b: 6a 1f push $0x1f
+ 100d8d: e8 73 fc ff ff call 100a05 <add_idt_entry>
+ 100d92: 83 c4 10 add $0x10,%esp
+ 100d95: b8 c0 02 10 00 mov $0x1002c0,%eax
+ 100d9a: 83 ec 08 sub $0x8,%esp
+ 100d9d: 50 push %eax
+ 100d9e: 6a 20 push $0x20
+ 100da0: e8 60 fc ff ff call 100a05 <add_idt_entry>
+ 100da5: 83 c4 10 add $0x10,%esp
+ 100da8: b8 c9 02 10 00 mov $0x1002c9,%eax
+ 100dad: 83 ec 08 sub $0x8,%esp
+ 100db0: 50 push %eax
+ 100db1: 6a 21 push $0x21
+ 100db3: e8 4d fc ff ff call 100a05 <add_idt_entry>
+ 100db8: 83 c4 10 add $0x10,%esp
+ 100dbb: 66 c7 05 60 a8 10 00 movw $0x7ff,0x10a860
+ 100dc2: ff 07
+ 100dc4: b8 60 a0 10 00 mov $0x10a060,%eax
+ 100dc9: a3 62 a8 10 00 mov %eax,0x10a862
+ 100dce: 83 ec 0c sub $0xc,%esp
+ 100dd1: 68 60 a8 10 00 push $0x10a860
+ 100dd6: e8 39 f2 ff ff call 100014 <load_idt>
+ 100ddb: 83 c4 10 add $0x10,%esp
+ 100dde: 90 nop
+ 100ddf: 8b 45 f4 mov -0xc(%ebp),%eax
+ 100de2: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 100de8: 74 05 je 100def <init_idt_table+0x2cf>
+ 100dea: e8 98 2a 00 00 call 103887 <__stack_chk_fail>
+ 100def: c9 leave
+ 100df0: c3 ret
+
+00100df1 <kernel_main>:
+ 100df1: 55 push %ebp
+ 100df2: 89 e5 mov %esp,%ebp
+ 100df4: 83 ec 18 sub $0x18,%esp
+ 100df7: a1 04 50 10 00 mov 0x105004,%eax
+ 100dfc: 89 45 f4 mov %eax,-0xc(%ebp)
+ 100dff: 31 c0 xor %eax,%eax
+ 100e01: e8 67 2c 00 00 call 103a6d <set_paging>
+ 100e06: e8 15 fd ff ff call 100b20 <init_idt_table>
+ 100e0b: 83 ec 0c sub $0xc,%esp
+ 100e0e: 6a 32 push $0x32
+ 100e10: e8 0b 2b 00 00 call 103920 <init_timer>
+ 100e15: 83 c4 10 add $0x10,%esp
+ 100e18: e8 77 01 00 00 call 100f94 <init_keyboard>
+ 100e1d: 83 ec 0c sub $0xc,%esp
+ 100e20: 68 50 a0 10 00 push $0x10a050
+ 100e25: e8 34 f6 ff ff call 10045e <k_heapBMInit>
+ 100e2a: 83 c4 10 add $0x10,%esp
+ 100e2d: 6a 10 push $0x10
+ 100e2f: 68 00 00 10 00 push $0x100000
+ 100e34: 68 00 00 20 00 push $0x200000
+ 100e39: 68 50 a0 10 00 push $0x10a050
+ 100e3e: e8 4d f6 ff ff call 100490 <k_heapBMAddBlock>
+ 100e43: 83 c4 10 add $0x10,%esp
+ 100e46: e8 39 1b 00 00 call 102984 <terminal_initialize>
+ 100e4b: e8 f9 14 00 00 call 102349 <prompt>
+ 100e50: 83 ec 08 sub $0x8,%esp
+ 100e53: 6a 05 push $0x5
+ 100e55: 68 50 a0 10 00 push $0x10a050
+ 100e5a: e8 94 f7 ff ff call 1005f3 <k_heapBMAlloc>
+ 100e5f: 83 c4 10 add $0x10,%esp
+ 100e62: 89 45 f0 mov %eax,-0x10(%ebp)
+ 100e65: 83 7d f0 00 cmpl $0x0,-0x10(%ebp)
+ 100e69: 74 13 je 100e7e <kernel_main+0x8d>
+ 100e6b: 83 ec 08 sub $0x8,%esp
+ 100e6e: ff 75 f0 push -0x10(%ebp)
+ 100e71: 68 00 40 10 00 push $0x104000
+ 100e76: e8 8d 0a 00 00 call 101908 <printf>
+ 100e7b: 83 c4 10 add $0x10,%esp
+ 100e7e: f4 hlt
+ 100e7f: eb fd jmp 100e7e <kernel_main+0x8d>
+
+00100e81 <f>:
+ 100e81: 55 push %ebp
+ 100e82: 89 e5 mov %esp,%ebp
+ 100e84: 83 ec 18 sub $0x18,%esp
+ 100e87: a1 04 50 10 00 mov 0x105004,%eax
+ 100e8c: 89 45 f4 mov %eax,-0xc(%ebp)
+ 100e8f: 31 c0 xor %eax,%eax
+ 100e91: 83 ec 08 sub $0x8,%esp
+ 100e94: 6a 05 push $0x5
+ 100e96: 68 50 a0 10 00 push $0x10a050
+ 100e9b: e8 53 f7 ff ff call 1005f3 <k_heapBMAlloc>
+ 100ea0: 83 c4 10 add $0x10,%esp
+ 100ea3: 89 45 ec mov %eax,-0x14(%ebp)
+ 100ea6: 8b 45 ec mov -0x14(%ebp),%eax
+ 100ea9: c6 00 61 movb $0x61,(%eax)
+ 100eac: 8b 45 ec mov -0x14(%ebp),%eax
+ 100eaf: 83 c0 01 add $0x1,%eax
+ 100eb2: c6 00 6c movb $0x6c,(%eax)
+ 100eb5: 8b 45 ec mov -0x14(%ebp),%eax
+ 100eb8: 83 c0 02 add $0x2,%eax
+ 100ebb: c6 00 65 movb $0x65,(%eax)
+ 100ebe: 8b 45 ec mov -0x14(%ebp),%eax
+ 100ec1: 83 c0 03 add $0x3,%eax
+ 100ec4: c6 00 6b movb $0x6b,(%eax)
+ 100ec7: 8b 45 ec mov -0x14(%ebp),%eax
+ 100eca: 83 c0 04 add $0x4,%eax
+ 100ecd: c6 00 00 movb $0x0,(%eax)
+ 100ed0: 83 ec 08 sub $0x8,%esp
+ 100ed3: 6a 05 push $0x5
+ 100ed5: 68 50 a0 10 00 push $0x10a050
+ 100eda: e8 14 f7 ff ff call 1005f3 <k_heapBMAlloc>
+ 100edf: 83 c4 10 add $0x10,%esp
+ 100ee2: 89 45 f0 mov %eax,-0x10(%ebp)
+ 100ee5: 8b 45 ec mov -0x14(%ebp),%eax
+ 100ee8: c6 00 6d movb $0x6d,(%eax)
+ 100eeb: 8b 45 ec mov -0x14(%ebp),%eax
+ 100eee: 83 c0 01 add $0x1,%eax
+ 100ef1: c6 00 72 movb $0x72,(%eax)
+ 100ef4: 8b 45 ec mov -0x14(%ebp),%eax
+ 100ef7: 83 c0 02 add $0x2,%eax
+ 100efa: c6 00 6b movb $0x6b,(%eax)
+ 100efd: 8b 45 ec mov -0x14(%ebp),%eax
+ 100f00: 83 c0 03 add $0x3,%eax
+ 100f03: c6 00 69 movb $0x69,(%eax)
+ 100f06: 8b 45 ec mov -0x14(%ebp),%eax
+ 100f09: 83 c0 04 add $0x4,%eax
+ 100f0c: c6 00 00 movb $0x0,(%eax)
+ 100f0f: 83 ec 08 sub $0x8,%esp
+ 100f12: ff 75 ec push -0x14(%ebp)
+ 100f15: 68 04 40 10 00 push $0x104004
+ 100f1a: e8 e9 09 00 00 call 101908 <printf>
+ 100f1f: 83 c4 10 add $0x10,%esp
+ 100f22: 83 ec 08 sub $0x8,%esp
+ 100f25: ff 75 ec push -0x14(%ebp)
+ 100f28: 68 00 40 10 00 push $0x104000
+ 100f2d: e8 d6 09 00 00 call 101908 <printf>
+ 100f32: 83 c4 10 add $0x10,%esp
+ 100f35: 83 ec 08 sub $0x8,%esp
+ 100f38: ff 75 f0 push -0x10(%ebp)
+ 100f3b: 68 04 40 10 00 push $0x104004
+ 100f40: e8 c3 09 00 00 call 101908 <printf>
+ 100f45: 83 c4 10 add $0x10,%esp
+ 100f48: 83 ec 08 sub $0x8,%esp
+ 100f4b: ff 75 f0 push -0x10(%ebp)
+ 100f4e: 68 00 40 10 00 push $0x104000
+ 100f53: e8 b0 09 00 00 call 101908 <printf>
+ 100f58: 83 c4 10 add $0x10,%esp
+ 100f5b: 83 ec 08 sub $0x8,%esp
+ 100f5e: ff 75 ec push -0x14(%ebp)
+ 100f61: 68 50 a0 10 00 push $0x10a050
+ 100f66: e8 94 f8 ff ff call 1007ff <k_heapBMFree>
+ 100f6b: 83 c4 10 add $0x10,%esp
+ 100f6e: 83 ec 08 sub $0x8,%esp
+ 100f71: ff 75 f0 push -0x10(%ebp)
+ 100f74: 68 50 a0 10 00 push $0x10a050
+ 100f79: e8 81 f8 ff ff call 1007ff <k_heapBMFree>
+ 100f7e: 83 c4 10 add $0x10,%esp
+ 100f81: 90 nop
+ 100f82: 8b 45 f4 mov -0xc(%ebp),%eax
+ 100f85: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 100f8b: 74 05 je 100f92 <f+0x111>
+ 100f8d: e8 f5 28 00 00 call 103887 <__stack_chk_fail>
+ 100f92: c9 leave
+ 100f93: c3 ret
+
+00100f94 <init_keyboard>:
+ 100f94: 55 push %ebp
+ 100f95: 89 e5 mov %esp,%ebp
+ 100f97: 83 ec 18 sub $0x18,%esp
+ 100f9a: a1 04 50 10 00 mov 0x105004,%eax
+ 100f9f: 89 45 f4 mov %eax,-0xc(%ebp)
+ 100fa2: 31 c0 xor %eax,%eax
+ 100fa4: 83 ec 0c sub $0xc,%esp
+ 100fa7: 68 60 a9 10 00 push $0x10a960
+ 100fac: e8 8a 02 00 00 call 10123b <us_en>
+ 100fb1: 83 c4 10 add $0x10,%esp
+ 100fb4: 90 nop
+ 100fb5: 8b 45 f4 mov -0xc(%ebp),%eax
+ 100fb8: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 100fbe: 74 05 je 100fc5 <init_keyboard+0x31>
+ 100fc0: e8 c2 28 00 00 call 103887 <__stack_chk_fail>
+ 100fc5: c9 leave
+ 100fc6: c3 ret
+
+00100fc7 <backspace>:
+ 100fc7: 55 push %ebp
+ 100fc8: 89 e5 mov %esp,%ebp
+ 100fca: 83 ec 18 sub $0x18,%esp
+ 100fcd: a1 04 50 10 00 mov 0x105004,%eax
+ 100fd2: 89 45 f4 mov %eax,-0xc(%ebp)
+ 100fd5: 31 c0 xor %eax,%eax
+ 100fd7: a1 48 a9 10 00 mov 0x10a948,%eax
+ 100fdc: 85 c0 test %eax,%eax
+ 100fde: 74 35 je 101015 <backspace+0x4e>
+ 100fe0: e8 cb 1b 00 00 call 102bb0 <previous_field>
+ 100fe5: 83 ec 0c sub $0xc,%esp
+ 100fe8: 68 08 40 10 00 push $0x104008
+ 100fed: e8 16 09 00 00 call 101908 <printf>
+ 100ff2: 83 c4 10 add $0x10,%esp
+ 100ff5: e8 b6 1b 00 00 call 102bb0 <previous_field>
+ 100ffa: a1 48 a9 10 00 mov 0x10a948,%eax
+ 100fff: 83 e8 01 sub $0x1,%eax
+ 101002: a3 48 a9 10 00 mov %eax,0x10a948
+ 101007: a1 48 a9 10 00 mov 0x10a948,%eax
+ 10100c: c6 80 80 a8 10 00 00 movb $0x0,0x10a880(%eax)
+ 101013: eb 01 jmp 101016 <backspace+0x4f>
+ 101015: 90 nop
+ 101016: 8b 45 f4 mov -0xc(%ebp),%eax
+ 101019: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 10101f: 74 05 je 101026 <backspace+0x5f>
+ 101021: e8 61 28 00 00 call 103887 <__stack_chk_fail>
+ 101026: c9 leave
+ 101027: c3 ret
+
+00101028 <enter>:
+ 101028: 55 push %ebp
+ 101029: 89 e5 mov %esp,%ebp
+ 10102b: 83 ec 18 sub $0x18,%esp
+ 10102e: a1 04 50 10 00 mov 0x105004,%eax
+ 101033: 89 45 f4 mov %eax,-0xc(%ebp)
+ 101036: 31 c0 xor %eax,%eax
+ 101038: 83 ec 0c sub $0xc,%esp
+ 10103b: 68 0a 40 10 00 push $0x10400a
+ 101040: e8 c3 08 00 00 call 101908 <printf>
+ 101045: 83 c4 10 add $0x10,%esp
+ 101048: a1 48 a9 10 00 mov 0x10a948,%eax
+ 10104d: 85 c0 test %eax,%eax
+ 10104f: 74 3b je 10108c <enter+0x64>
+ 101051: 83 ec 0c sub $0xc,%esp
+ 101054: 68 80 a8 10 00 push $0x10a880
+ 101059: e8 f7 16 00 00 call 102755 <tty>
+ 10105e: 83 c4 10 add $0x10,%esp
+ 101061: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp)
+ 101068: eb 0f jmp 101079 <enter+0x51>
+ 10106a: 8b 45 f0 mov -0x10(%ebp),%eax
+ 10106d: 05 80 a8 10 00 add $0x10a880,%eax
+ 101072: c6 00 00 movb $0x0,(%eax)
+ 101075: 83 45 f0 01 addl $0x1,-0x10(%ebp)
+ 101079: 81 7d f0 c7 00 00 00 cmpl $0xc7,-0x10(%ebp)
+ 101080: 7e e8 jle 10106a <enter+0x42>
+ 101082: c7 05 48 a9 10 00 00 movl $0x0,0x10a948
+ 101089: 00 00 00
+ 10108c: e8 b8 12 00 00 call 102349 <prompt>
+ 101091: 90 nop
+ 101092: 8b 45 f4 mov -0xc(%ebp),%eax
+ 101095: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 10109b: 74 05 je 1010a2 <enter+0x7a>
+ 10109d: e8 e5 27 00 00 call 103887 <__stack_chk_fail>
+ 1010a2: c9 leave
+ 1010a3: c3 ret
+
+001010a4 <space>:
+ 1010a4: 55 push %ebp
+ 1010a5: 89 e5 mov %esp,%ebp
+ 1010a7: 83 ec 18 sub $0x18,%esp
+ 1010aa: a1 04 50 10 00 mov 0x105004,%eax
+ 1010af: 89 45 f4 mov %eax,-0xc(%ebp)
+ 1010b2: 31 c0 xor %eax,%eax
+ 1010b4: a1 48 a9 10 00 mov 0x10a948,%eax
+ 1010b9: 8d 50 01 lea 0x1(%eax),%edx
+ 1010bc: 89 15 48 a9 10 00 mov %edx,0x10a948
+ 1010c2: c6 80 80 a8 10 00 20 movb $0x20,0x10a880(%eax)
+ 1010c9: 83 ec 0c sub $0xc,%esp
+ 1010cc: 68 08 40 10 00 push $0x104008
+ 1010d1: e8 32 08 00 00 call 101908 <printf>
+ 1010d6: 83 c4 10 add $0x10,%esp
+ 1010d9: 90 nop
+ 1010da: 8b 45 f4 mov -0xc(%ebp),%eax
+ 1010dd: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 1010e3: 74 05 je 1010ea <space+0x46>
+ 1010e5: e8 9d 27 00 00 call 103887 <__stack_chk_fail>
+ 1010ea: c9 leave
+ 1010eb: c3 ret
+
+001010ec <keyboard_handler>:
+ 1010ec: 55 push %ebp
+ 1010ed: 89 e5 mov %esp,%ebp
+ 1010ef: 83 ec 18 sub $0x18,%esp
+ 1010f2: a1 04 50 10 00 mov 0x105004,%eax
+ 1010f7: 89 45 f4 mov %eax,-0xc(%ebp)
+ 1010fa: 31 c0 xor %eax,%eax
+ 1010fc: 83 ec 08 sub $0x8,%esp
+ 1010ff: 6a 20 push $0x20
+ 101101: 6a 20 push $0x20
+ 101103: e8 1b ef ff ff call 100023 <ioport_out>
+ 101108: 83 c4 10 add $0x10,%esp
+ 10110b: 83 ec 0c sub $0xc,%esp
+ 10110e: 6a 64 push $0x64
+ 101110: e8 08 ef ff ff call 10001d <ioport_in>
+ 101115: 83 c4 10 add $0x10,%esp
+ 101118: 88 45 f2 mov %al,-0xe(%ebp)
+ 10111b: 0f b6 45 f2 movzbl -0xe(%ebp),%eax
+ 10111f: 83 e0 01 and $0x1,%eax
+ 101122: 85 c0 test %eax,%eax
+ 101124: 0f 84 ff 00 00 00 je 101229 <keyboard_handler+0x13d>
+ 10112a: 83 ec 0c sub $0xc,%esp
+ 10112d: 6a 60 push $0x60
+ 10112f: e8 e9 ee ff ff call 10001d <ioport_in>
+ 101134: 83 c4 10 add $0x10,%esp
+ 101137: 88 45 f3 mov %al,-0xd(%ebp)
+ 10113a: 0f b6 45 f3 movzbl -0xd(%ebp),%eax
+ 10113e: 84 c0 test %al,%al
+ 101140: 0f 88 d5 00 00 00 js 10121b <keyboard_handler+0x12f>
+ 101146: 0f b6 45 f3 movzbl -0xd(%ebp),%eax
+ 10114a: c6 80 60 aa 10 00 01 movb $0x1,0x10aa60(%eax)
+ 101151: 80 7d f3 0e cmpb $0xe,-0xd(%ebp)
+ 101155: 75 0a jne 101161 <keyboard_handler+0x75>
+ 101157: e8 6b fe ff ff call 100fc7 <backspace>
+ 10115c: e9 c8 00 00 00 jmp 101229 <keyboard_handler+0x13d>
+ 101161: 80 7d f3 1c cmpb $0x1c,-0xd(%ebp)
+ 101165: 75 0a jne 101171 <keyboard_handler+0x85>
+ 101167: e8 bc fe ff ff call 101028 <enter>
+ 10116c: e9 b8 00 00 00 jmp 101229 <keyboard_handler+0x13d>
+ 101171: 80 7d f3 39 cmpb $0x39,-0xd(%ebp)
+ 101175: 75 0a jne 101181 <keyboard_handler+0x95>
+ 101177: e8 28 ff ff ff call 1010a4 <space>
+ 10117c: e9 a8 00 00 00 jmp 101229 <keyboard_handler+0x13d>
+ 101181: 0f b6 45 f3 movzbl -0xd(%ebp),%eax
+ 101185: 0f b6 80 60 a9 10 00 movzbl 0x10a960(%eax),%eax
+ 10118c: 88 45 f1 mov %al,-0xf(%ebp)
+ 10118f: 80 7d f1 20 cmpb $0x20,-0xf(%ebp)
+ 101193: 0f 84 90 00 00 00 je 101229 <keyboard_handler+0x13d>
+ 101199: 0f b6 05 8a aa 10 00 movzbl 0x10aa8a,%eax
+ 1011a0: 84 c0 test %al,%al
+ 1011a2: 74 16 je 1011ba <keyboard_handler+0xce>
+ 1011a4: 80 7d f1 60 cmpb $0x60,-0xf(%ebp)
+ 1011a8: 7e 10 jle 1011ba <keyboard_handler+0xce>
+ 1011aa: 80 7d f1 7a cmpb $0x7a,-0xf(%ebp)
+ 1011ae: 7f 0a jg 1011ba <keyboard_handler+0xce>
+ 1011b0: 0f b6 45 f1 movzbl -0xf(%ebp),%eax
+ 1011b4: 83 e8 20 sub $0x20,%eax
+ 1011b7: 88 45 f1 mov %al,-0xf(%ebp)
+ 1011ba: 0f b6 05 7d aa 10 00 movzbl 0x10aa7d,%eax
+ 1011c1: 84 c0 test %al,%al
+ 1011c3: 74 27 je 1011ec <keyboard_handler+0x100>
+ 1011c5: 80 7d f1 6c cmpb $0x6c,-0xf(%ebp)
+ 1011c9: 75 21 jne 1011ec <keyboard_handler+0x100>
+ 1011cb: e8 05 1c 00 00 call 102dd5 <clear>
+ 1011d0: e8 74 11 00 00 call 102349 <prompt>
+ 1011d5: 83 ec 08 sub $0x8,%esp
+ 1011d8: 68 80 a8 10 00 push $0x10a880
+ 1011dd: 68 0c 40 10 00 push $0x10400c
+ 1011e2: e8 21 07 00 00 call 101908 <printf>
+ 1011e7: 83 c4 10 add $0x10,%esp
+ 1011ea: eb 3d jmp 101229 <keyboard_handler+0x13d>
+ 1011ec: a1 48 a9 10 00 mov 0x10a948,%eax
+ 1011f1: 8d 50 01 lea 0x1(%eax),%edx
+ 1011f4: 89 15 48 a9 10 00 mov %edx,0x10a948
+ 1011fa: 0f b6 55 f1 movzbl -0xf(%ebp),%edx
+ 1011fe: 88 90 80 a8 10 00 mov %dl,0x10a880(%eax)
+ 101204: 0f be 45 f1 movsbl -0xf(%ebp),%eax
+ 101208: 83 ec 08 sub $0x8,%esp
+ 10120b: 50 push %eax
+ 10120c: 68 0f 40 10 00 push $0x10400f
+ 101211: e8 f2 06 00 00 call 101908 <printf>
+ 101216: 83 c4 10 add $0x10,%esp
+ 101219: eb 0e jmp 101229 <keyboard_handler+0x13d>
+ 10121b: 0f b6 45 f3 movzbl -0xd(%ebp),%eax
+ 10121f: 83 c0 80 add $0xffffff80,%eax
+ 101222: c6 80 60 aa 10 00 00 movb $0x0,0x10aa60(%eax)
+ 101229: 8b 45 f4 mov -0xc(%ebp),%eax
+ 10122c: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 101232: 74 05 je 101239 <keyboard_handler+0x14d>
+ 101234: e8 4e 26 00 00 call 103887 <__stack_chk_fail>
+ 101239: c9 leave
+ 10123a: c3 ret
+
+0010123b <us_en>:
+ 10123b: 55 push %ebp
+ 10123c: 89 e5 mov %esp,%ebp
+ 10123e: 83 ec 28 sub $0x28,%esp
+ 101241: 8b 45 08 mov 0x8(%ebp),%eax
+ 101244: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 101247: a1 04 50 10 00 mov 0x105004,%eax
+ 10124c: 89 45 f4 mov %eax,-0xc(%ebp)
+ 10124f: 31 c0 xor %eax,%eax
+ 101251: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101254: 83 c0 01 add $0x1,%eax
+ 101257: c6 00 20 movb $0x20,(%eax)
+ 10125a: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10125d: 83 c0 02 add $0x2,%eax
+ 101260: c6 00 31 movb $0x31,(%eax)
+ 101263: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101266: 83 c0 03 add $0x3,%eax
+ 101269: c6 00 32 movb $0x32,(%eax)
+ 10126c: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10126f: 83 c0 04 add $0x4,%eax
+ 101272: c6 00 33 movb $0x33,(%eax)
+ 101275: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101278: 83 c0 05 add $0x5,%eax
+ 10127b: c6 00 34 movb $0x34,(%eax)
+ 10127e: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101281: 83 c0 06 add $0x6,%eax
+ 101284: c6 00 35 movb $0x35,(%eax)
+ 101287: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10128a: 83 c0 07 add $0x7,%eax
+ 10128d: c6 00 36 movb $0x36,(%eax)
+ 101290: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101293: 83 c0 08 add $0x8,%eax
+ 101296: c6 00 37 movb $0x37,(%eax)
+ 101299: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10129c: 83 c0 09 add $0x9,%eax
+ 10129f: c6 00 38 movb $0x38,(%eax)
+ 1012a2: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1012a5: 83 c0 0a add $0xa,%eax
+ 1012a8: c6 00 39 movb $0x39,(%eax)
+ 1012ab: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1012ae: 83 c0 0b add $0xb,%eax
+ 1012b1: c6 00 30 movb $0x30,(%eax)
+ 1012b4: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1012b7: 83 c0 0c add $0xc,%eax
+ 1012ba: c6 00 2d movb $0x2d,(%eax)
+ 1012bd: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1012c0: 83 c0 0d add $0xd,%eax
+ 1012c3: c6 00 3d movb $0x3d,(%eax)
+ 1012c6: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1012c9: 83 c0 0e add $0xe,%eax
+ 1012cc: c6 00 20 movb $0x20,(%eax)
+ 1012cf: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1012d2: 83 c0 0f add $0xf,%eax
+ 1012d5: c6 00 20 movb $0x20,(%eax)
+ 1012d8: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1012db: 83 c0 10 add $0x10,%eax
+ 1012de: c6 00 71 movb $0x71,(%eax)
+ 1012e1: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1012e4: 83 c0 11 add $0x11,%eax
+ 1012e7: c6 00 77 movb $0x77,(%eax)
+ 1012ea: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1012ed: 83 c0 12 add $0x12,%eax
+ 1012f0: c6 00 65 movb $0x65,(%eax)
+ 1012f3: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1012f6: 83 c0 13 add $0x13,%eax
+ 1012f9: c6 00 72 movb $0x72,(%eax)
+ 1012fc: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1012ff: 83 c0 14 add $0x14,%eax
+ 101302: c6 00 74 movb $0x74,(%eax)
+ 101305: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101308: 83 c0 15 add $0x15,%eax
+ 10130b: c6 00 79 movb $0x79,(%eax)
+ 10130e: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101311: 83 c0 16 add $0x16,%eax
+ 101314: c6 00 75 movb $0x75,(%eax)
+ 101317: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10131a: 83 c0 17 add $0x17,%eax
+ 10131d: c6 00 69 movb $0x69,(%eax)
+ 101320: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101323: 83 c0 18 add $0x18,%eax
+ 101326: c6 00 6f movb $0x6f,(%eax)
+ 101329: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10132c: 83 c0 19 add $0x19,%eax
+ 10132f: c6 00 70 movb $0x70,(%eax)
+ 101332: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101335: 83 c0 1a add $0x1a,%eax
+ 101338: c6 00 5b movb $0x5b,(%eax)
+ 10133b: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10133e: 83 c0 1b add $0x1b,%eax
+ 101341: c6 00 5d movb $0x5d,(%eax)
+ 101344: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101347: 83 c0 1c add $0x1c,%eax
+ 10134a: c6 00 0a movb $0xa,(%eax)
+ 10134d: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101350: 83 c0 1d add $0x1d,%eax
+ 101353: c6 00 20 movb $0x20,(%eax)
+ 101356: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101359: 83 c0 1e add $0x1e,%eax
+ 10135c: c6 00 61 movb $0x61,(%eax)
+ 10135f: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101362: 83 c0 1f add $0x1f,%eax
+ 101365: c6 00 73 movb $0x73,(%eax)
+ 101368: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10136b: 83 c0 20 add $0x20,%eax
+ 10136e: c6 00 64 movb $0x64,(%eax)
+ 101371: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101374: 83 c0 21 add $0x21,%eax
+ 101377: c6 00 66 movb $0x66,(%eax)
+ 10137a: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10137d: 83 c0 22 add $0x22,%eax
+ 101380: c6 00 67 movb $0x67,(%eax)
+ 101383: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101386: 83 c0 23 add $0x23,%eax
+ 101389: c6 00 68 movb $0x68,(%eax)
+ 10138c: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10138f: 83 c0 24 add $0x24,%eax
+ 101392: c6 00 6a movb $0x6a,(%eax)
+ 101395: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101398: 83 c0 25 add $0x25,%eax
+ 10139b: c6 00 6b movb $0x6b,(%eax)
+ 10139e: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1013a1: 83 c0 26 add $0x26,%eax
+ 1013a4: c6 00 6c movb $0x6c,(%eax)
+ 1013a7: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1013aa: 83 c0 27 add $0x27,%eax
+ 1013ad: c6 00 3b movb $0x3b,(%eax)
+ 1013b0: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1013b3: 83 c0 28 add $0x28,%eax
+ 1013b6: c6 00 27 movb $0x27,(%eax)
+ 1013b9: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1013bc: 83 c0 29 add $0x29,%eax
+ 1013bf: c6 00 60 movb $0x60,(%eax)
+ 1013c2: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1013c5: 83 c0 2a add $0x2a,%eax
+ 1013c8: c6 00 20 movb $0x20,(%eax)
+ 1013cb: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1013ce: 83 c0 2b add $0x2b,%eax
+ 1013d1: c6 00 5c movb $0x5c,(%eax)
+ 1013d4: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1013d7: 83 c0 2c add $0x2c,%eax
+ 1013da: c6 00 7a movb $0x7a,(%eax)
+ 1013dd: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1013e0: 83 c0 2d add $0x2d,%eax
+ 1013e3: c6 00 78 movb $0x78,(%eax)
+ 1013e6: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1013e9: 83 c0 2e add $0x2e,%eax
+ 1013ec: c6 00 63 movb $0x63,(%eax)
+ 1013ef: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1013f2: 83 c0 2f add $0x2f,%eax
+ 1013f5: c6 00 76 movb $0x76,(%eax)
+ 1013f8: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1013fb: 83 c0 30 add $0x30,%eax
+ 1013fe: c6 00 62 movb $0x62,(%eax)
+ 101401: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101404: 83 c0 31 add $0x31,%eax
+ 101407: c6 00 6e movb $0x6e,(%eax)
+ 10140a: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10140d: 83 c0 32 add $0x32,%eax
+ 101410: c6 00 6d movb $0x6d,(%eax)
+ 101413: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101416: 83 c0 33 add $0x33,%eax
+ 101419: c6 00 2c movb $0x2c,(%eax)
+ 10141c: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10141f: 83 c0 34 add $0x34,%eax
+ 101422: c6 00 2e movb $0x2e,(%eax)
+ 101425: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101428: 83 c0 35 add $0x35,%eax
+ 10142b: c6 00 2f movb $0x2f,(%eax)
+ 10142e: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101431: 83 c0 36 add $0x36,%eax
+ 101434: c6 00 20 movb $0x20,(%eax)
+ 101437: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10143a: 83 c0 37 add $0x37,%eax
+ 10143d: c6 00 20 movb $0x20,(%eax)
+ 101440: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101443: 83 c0 38 add $0x38,%eax
+ 101446: c6 00 20 movb $0x20,(%eax)
+ 101449: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10144c: 83 c0 39 add $0x39,%eax
+ 10144f: c6 00 20 movb $0x20,(%eax)
+ 101452: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101455: 83 c0 3a add $0x3a,%eax
+ 101458: c6 00 20 movb $0x20,(%eax)
+ 10145b: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10145e: 83 c0 3b add $0x3b,%eax
+ 101461: c6 00 20 movb $0x20,(%eax)
+ 101464: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101467: 83 c0 3c add $0x3c,%eax
+ 10146a: c6 00 20 movb $0x20,(%eax)
+ 10146d: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101470: 83 c0 3d add $0x3d,%eax
+ 101473: c6 00 20 movb $0x20,(%eax)
+ 101476: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101479: 83 c0 3e add $0x3e,%eax
+ 10147c: c6 00 20 movb $0x20,(%eax)
+ 10147f: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101482: 83 c0 3f add $0x3f,%eax
+ 101485: c6 00 20 movb $0x20,(%eax)
+ 101488: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10148b: 83 c0 40 add $0x40,%eax
+ 10148e: c6 00 20 movb $0x20,(%eax)
+ 101491: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101494: 83 c0 41 add $0x41,%eax
+ 101497: c6 00 20 movb $0x20,(%eax)
+ 10149a: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10149d: 83 c0 42 add $0x42,%eax
+ 1014a0: c6 00 20 movb $0x20,(%eax)
+ 1014a3: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1014a6: 83 c0 43 add $0x43,%eax
+ 1014a9: c6 00 20 movb $0x20,(%eax)
+ 1014ac: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1014af: 83 c0 44 add $0x44,%eax
+ 1014b2: c6 00 20 movb $0x20,(%eax)
+ 1014b5: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1014b8: 83 c0 45 add $0x45,%eax
+ 1014bb: c6 00 20 movb $0x20,(%eax)
+ 1014be: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1014c1: 83 c0 46 add $0x46,%eax
+ 1014c4: c6 00 20 movb $0x20,(%eax)
+ 1014c7: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1014ca: 83 c0 47 add $0x47,%eax
+ 1014cd: c6 00 37 movb $0x37,(%eax)
+ 1014d0: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1014d3: 83 c0 48 add $0x48,%eax
+ 1014d6: c6 00 38 movb $0x38,(%eax)
+ 1014d9: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1014dc: 83 c0 49 add $0x49,%eax
+ 1014df: c6 00 39 movb $0x39,(%eax)
+ 1014e2: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1014e5: 83 c0 4a add $0x4a,%eax
+ 1014e8: c6 00 2d movb $0x2d,(%eax)
+ 1014eb: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1014ee: 83 c0 4b add $0x4b,%eax
+ 1014f1: c6 00 34 movb $0x34,(%eax)
+ 1014f4: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1014f7: 83 c0 4c add $0x4c,%eax
+ 1014fa: c6 00 35 movb $0x35,(%eax)
+ 1014fd: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101500: 83 c0 4d add $0x4d,%eax
+ 101503: c6 00 36 movb $0x36,(%eax)
+ 101506: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101509: 83 c0 4e add $0x4e,%eax
+ 10150c: c6 00 2b movb $0x2b,(%eax)
+ 10150f: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101512: 83 c0 4f add $0x4f,%eax
+ 101515: c6 00 31 movb $0x31,(%eax)
+ 101518: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10151b: 83 c0 50 add $0x50,%eax
+ 10151e: c6 00 32 movb $0x32,(%eax)
+ 101521: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101524: 83 c0 51 add $0x51,%eax
+ 101527: c6 00 33 movb $0x33,(%eax)
+ 10152a: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10152d: 83 c0 52 add $0x52,%eax
+ 101530: c6 00 30 movb $0x30,(%eax)
+ 101533: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101536: 83 c0 53 add $0x53,%eax
+ 101539: c6 00 2e movb $0x2e,(%eax)
+ 10153c: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10153f: 83 c0 57 add $0x57,%eax
+ 101542: c6 00 20 movb $0x20,(%eax)
+ 101545: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101548: 83 c0 58 add $0x58,%eax
+ 10154b: c6 00 20 movb $0x20,(%eax)
+ 10154e: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101551: 05 81 00 00 00 add $0x81,%eax
+ 101556: c6 00 20 movb $0x20,(%eax)
+ 101559: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10155c: 05 82 00 00 00 add $0x82,%eax
+ 101561: c6 00 20 movb $0x20,(%eax)
+ 101564: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101567: 05 83 00 00 00 add $0x83,%eax
+ 10156c: c6 00 20 movb $0x20,(%eax)
+ 10156f: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101572: 05 84 00 00 00 add $0x84,%eax
+ 101577: c6 00 20 movb $0x20,(%eax)
+ 10157a: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10157d: 05 85 00 00 00 add $0x85,%eax
+ 101582: c6 00 20 movb $0x20,(%eax)
+ 101585: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101588: 05 86 00 00 00 add $0x86,%eax
+ 10158d: c6 00 20 movb $0x20,(%eax)
+ 101590: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101593: 05 87 00 00 00 add $0x87,%eax
+ 101598: c6 00 20 movb $0x20,(%eax)
+ 10159b: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10159e: 05 88 00 00 00 add $0x88,%eax
+ 1015a3: c6 00 20 movb $0x20,(%eax)
+ 1015a6: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1015a9: 05 89 00 00 00 add $0x89,%eax
+ 1015ae: c6 00 20 movb $0x20,(%eax)
+ 1015b1: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1015b4: 05 8a 00 00 00 add $0x8a,%eax
+ 1015b9: c6 00 20 movb $0x20,(%eax)
+ 1015bc: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1015bf: 05 8b 00 00 00 add $0x8b,%eax
+ 1015c4: c6 00 20 movb $0x20,(%eax)
+ 1015c7: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1015ca: 05 8c 00 00 00 add $0x8c,%eax
+ 1015cf: c6 00 20 movb $0x20,(%eax)
+ 1015d2: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1015d5: 05 8d 00 00 00 add $0x8d,%eax
+ 1015da: c6 00 20 movb $0x20,(%eax)
+ 1015dd: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1015e0: 05 8e 00 00 00 add $0x8e,%eax
+ 1015e5: c6 00 20 movb $0x20,(%eax)
+ 1015e8: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1015eb: 05 8f 00 00 00 add $0x8f,%eax
+ 1015f0: c6 00 20 movb $0x20,(%eax)
+ 1015f3: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1015f6: 05 90 00 00 00 add $0x90,%eax
+ 1015fb: c6 00 20 movb $0x20,(%eax)
+ 1015fe: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101601: 05 91 00 00 00 add $0x91,%eax
+ 101606: c6 00 20 movb $0x20,(%eax)
+ 101609: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10160c: 05 92 00 00 00 add $0x92,%eax
+ 101611: c6 00 20 movb $0x20,(%eax)
+ 101614: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101617: 05 93 00 00 00 add $0x93,%eax
+ 10161c: c6 00 20 movb $0x20,(%eax)
+ 10161f: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101622: 05 94 00 00 00 add $0x94,%eax
+ 101627: c6 00 20 movb $0x20,(%eax)
+ 10162a: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10162d: 05 95 00 00 00 add $0x95,%eax
+ 101632: c6 00 20 movb $0x20,(%eax)
+ 101635: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101638: 05 96 00 00 00 add $0x96,%eax
+ 10163d: c6 00 20 movb $0x20,(%eax)
+ 101640: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101643: 05 97 00 00 00 add $0x97,%eax
+ 101648: c6 00 20 movb $0x20,(%eax)
+ 10164b: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10164e: 05 98 00 00 00 add $0x98,%eax
+ 101653: c6 00 20 movb $0x20,(%eax)
+ 101656: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101659: 05 99 00 00 00 add $0x99,%eax
+ 10165e: c6 00 20 movb $0x20,(%eax)
+ 101661: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101664: 05 9a 00 00 00 add $0x9a,%eax
+ 101669: c6 00 20 movb $0x20,(%eax)
+ 10166c: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10166f: 05 9b 00 00 00 add $0x9b,%eax
+ 101674: c6 00 20 movb $0x20,(%eax)
+ 101677: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10167a: 05 9c 00 00 00 add $0x9c,%eax
+ 10167f: c6 00 20 movb $0x20,(%eax)
+ 101682: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101685: 05 9d 00 00 00 add $0x9d,%eax
+ 10168a: c6 00 20 movb $0x20,(%eax)
+ 10168d: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101690: 05 9e 00 00 00 add $0x9e,%eax
+ 101695: c6 00 20 movb $0x20,(%eax)
+ 101698: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10169b: 05 9f 00 00 00 add $0x9f,%eax
+ 1016a0: c6 00 20 movb $0x20,(%eax)
+ 1016a3: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1016a6: 05 a0 00 00 00 add $0xa0,%eax
+ 1016ab: c6 00 20 movb $0x20,(%eax)
+ 1016ae: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1016b1: 05 a1 00 00 00 add $0xa1,%eax
+ 1016b6: c6 00 20 movb $0x20,(%eax)
+ 1016b9: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1016bc: 05 a2 00 00 00 add $0xa2,%eax
+ 1016c1: c6 00 20 movb $0x20,(%eax)
+ 1016c4: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1016c7: 05 a3 00 00 00 add $0xa3,%eax
+ 1016cc: c6 00 20 movb $0x20,(%eax)
+ 1016cf: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1016d2: 05 a4 00 00 00 add $0xa4,%eax
+ 1016d7: c6 00 20 movb $0x20,(%eax)
+ 1016da: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1016dd: 05 a5 00 00 00 add $0xa5,%eax
+ 1016e2: c6 00 20 movb $0x20,(%eax)
+ 1016e5: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1016e8: 05 a6 00 00 00 add $0xa6,%eax
+ 1016ed: c6 00 20 movb $0x20,(%eax)
+ 1016f0: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1016f3: 05 a7 00 00 00 add $0xa7,%eax
+ 1016f8: c6 00 20 movb $0x20,(%eax)
+ 1016fb: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1016fe: 05 a8 00 00 00 add $0xa8,%eax
+ 101703: c6 00 20 movb $0x20,(%eax)
+ 101706: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101709: 05 a9 00 00 00 add $0xa9,%eax
+ 10170e: c6 00 20 movb $0x20,(%eax)
+ 101711: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101714: 05 aa 00 00 00 add $0xaa,%eax
+ 101719: c6 00 20 movb $0x20,(%eax)
+ 10171c: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10171f: 05 ab 00 00 00 add $0xab,%eax
+ 101724: c6 00 20 movb $0x20,(%eax)
+ 101727: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10172a: 05 ac 00 00 00 add $0xac,%eax
+ 10172f: c6 00 20 movb $0x20,(%eax)
+ 101732: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101735: 05 ad 00 00 00 add $0xad,%eax
+ 10173a: c6 00 20 movb $0x20,(%eax)
+ 10173d: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101740: 05 ae 00 00 00 add $0xae,%eax
+ 101745: c6 00 20 movb $0x20,(%eax)
+ 101748: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10174b: 05 af 00 00 00 add $0xaf,%eax
+ 101750: c6 00 20 movb $0x20,(%eax)
+ 101753: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101756: 05 b0 00 00 00 add $0xb0,%eax
+ 10175b: c6 00 20 movb $0x20,(%eax)
+ 10175e: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101761: 05 b1 00 00 00 add $0xb1,%eax
+ 101766: c6 00 20 movb $0x20,(%eax)
+ 101769: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10176c: 05 b2 00 00 00 add $0xb2,%eax
+ 101771: c6 00 20 movb $0x20,(%eax)
+ 101774: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101777: 05 b3 00 00 00 add $0xb3,%eax
+ 10177c: c6 00 20 movb $0x20,(%eax)
+ 10177f: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101782: 05 b4 00 00 00 add $0xb4,%eax
+ 101787: c6 00 20 movb $0x20,(%eax)
+ 10178a: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10178d: 05 b5 00 00 00 add $0xb5,%eax
+ 101792: c6 00 20 movb $0x20,(%eax)
+ 101795: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101798: 05 b6 00 00 00 add $0xb6,%eax
+ 10179d: c6 00 20 movb $0x20,(%eax)
+ 1017a0: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1017a3: 05 b7 00 00 00 add $0xb7,%eax
+ 1017a8: c6 00 20 movb $0x20,(%eax)
+ 1017ab: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1017ae: 05 b8 00 00 00 add $0xb8,%eax
+ 1017b3: c6 00 20 movb $0x20,(%eax)
+ 1017b6: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1017b9: 05 b9 00 00 00 add $0xb9,%eax
+ 1017be: c6 00 20 movb $0x20,(%eax)
+ 1017c1: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1017c4: 05 ba 00 00 00 add $0xba,%eax
+ 1017c9: c6 00 20 movb $0x20,(%eax)
+ 1017cc: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1017cf: 05 bb 00 00 00 add $0xbb,%eax
+ 1017d4: c6 00 20 movb $0x20,(%eax)
+ 1017d7: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1017da: 05 bc 00 00 00 add $0xbc,%eax
+ 1017df: c6 00 20 movb $0x20,(%eax)
+ 1017e2: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1017e5: 05 bd 00 00 00 add $0xbd,%eax
+ 1017ea: c6 00 20 movb $0x20,(%eax)
+ 1017ed: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1017f0: 05 be 00 00 00 add $0xbe,%eax
+ 1017f5: c6 00 20 movb $0x20,(%eax)
+ 1017f8: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1017fb: 05 bf 00 00 00 add $0xbf,%eax
+ 101800: c6 00 20 movb $0x20,(%eax)
+ 101803: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101806: 05 c0 00 00 00 add $0xc0,%eax
+ 10180b: c6 00 20 movb $0x20,(%eax)
+ 10180e: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101811: 05 c1 00 00 00 add $0xc1,%eax
+ 101816: c6 00 20 movb $0x20,(%eax)
+ 101819: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10181c: 05 c2 00 00 00 add $0xc2,%eax
+ 101821: c6 00 20 movb $0x20,(%eax)
+ 101824: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101827: 05 c3 00 00 00 add $0xc3,%eax
+ 10182c: c6 00 20 movb $0x20,(%eax)
+ 10182f: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101832: 05 c4 00 00 00 add $0xc4,%eax
+ 101837: c6 00 20 movb $0x20,(%eax)
+ 10183a: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10183d: 05 c5 00 00 00 add $0xc5,%eax
+ 101842: c6 00 20 movb $0x20,(%eax)
+ 101845: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101848: 05 c6 00 00 00 add $0xc6,%eax
+ 10184d: c6 00 20 movb $0x20,(%eax)
+ 101850: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101853: 05 c7 00 00 00 add $0xc7,%eax
+ 101858: c6 00 20 movb $0x20,(%eax)
+ 10185b: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10185e: 05 c8 00 00 00 add $0xc8,%eax
+ 101863: c6 00 20 movb $0x20,(%eax)
+ 101866: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101869: 05 c9 00 00 00 add $0xc9,%eax
+ 10186e: c6 00 20 movb $0x20,(%eax)
+ 101871: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101874: 05 ca 00 00 00 add $0xca,%eax
+ 101879: c6 00 20 movb $0x20,(%eax)
+ 10187c: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10187f: 05 cb 00 00 00 add $0xcb,%eax
+ 101884: c6 00 20 movb $0x20,(%eax)
+ 101887: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10188a: 05 cc 00 00 00 add $0xcc,%eax
+ 10188f: c6 00 20 movb $0x20,(%eax)
+ 101892: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101895: 05 cd 00 00 00 add $0xcd,%eax
+ 10189a: c6 00 20 movb $0x20,(%eax)
+ 10189d: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1018a0: 05 ce 00 00 00 add $0xce,%eax
+ 1018a5: c6 00 20 movb $0x20,(%eax)
+ 1018a8: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1018ab: 05 cf 00 00 00 add $0xcf,%eax
+ 1018b0: c6 00 20 movb $0x20,(%eax)
+ 1018b3: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1018b6: 05 d0 00 00 00 add $0xd0,%eax
+ 1018bb: c6 00 20 movb $0x20,(%eax)
+ 1018be: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1018c1: 05 d1 00 00 00 add $0xd1,%eax
+ 1018c6: c6 00 20 movb $0x20,(%eax)
+ 1018c9: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1018cc: 05 d2 00 00 00 add $0xd2,%eax
+ 1018d1: c6 00 20 movb $0x20,(%eax)
+ 1018d4: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1018d7: 05 d3 00 00 00 add $0xd3,%eax
+ 1018dc: c6 00 20 movb $0x20,(%eax)
+ 1018df: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1018e2: 05 d7 00 00 00 add $0xd7,%eax
+ 1018e7: c6 00 20 movb $0x20,(%eax)
+ 1018ea: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1018ed: 05 d8 00 00 00 add $0xd8,%eax
+ 1018f2: c6 00 20 movb $0x20,(%eax)
+ 1018f5: 90 nop
+ 1018f6: 8b 45 f4 mov -0xc(%ebp),%eax
+ 1018f9: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 1018ff: 74 05 je 101906 <us_en+0x6cb>
+ 101901: e8 81 1f 00 00 call 103887 <__stack_chk_fail>
+ 101906: c9 leave
+ 101907: c3 ret
+
+00101908 <printf>:
+ 101908: 55 push %ebp
+ 101909: 89 e5 mov %esp,%ebp
+ 10190b: 83 ec 38 sub $0x38,%esp
+ 10190e: 8b 45 08 mov 0x8(%ebp),%eax
+ 101911: 89 45 d4 mov %eax,-0x2c(%ebp)
+ 101914: a1 04 50 10 00 mov 0x105004,%eax
+ 101919: 89 45 f4 mov %eax,-0xc(%ebp)
+ 10191c: 31 c0 xor %eax,%eax
+ 10191e: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%ebp)
+ 101925: c7 45 ec 00 00 00 00 movl $0x0,-0x14(%ebp)
+ 10192c: eb 17 jmp 101945 <printf+0x3d>
+ 10192e: 8b 55 d4 mov -0x2c(%ebp),%edx
+ 101931: 8b 45 ec mov -0x14(%ebp),%eax
+ 101934: 01 d0 add %edx,%eax
+ 101936: 0f b6 00 movzbl (%eax),%eax
+ 101939: 3c 25 cmp $0x25,%al
+ 10193b: 75 04 jne 101941 <printf+0x39>
+ 10193d: 83 45 e8 01 addl $0x1,-0x18(%ebp)
+ 101941: 83 45 ec 01 addl $0x1,-0x14(%ebp)
+ 101945: 8b 55 d4 mov -0x2c(%ebp),%edx
+ 101948: 8b 45 ec mov -0x14(%ebp),%eax
+ 10194b: 01 d0 add %edx,%eax
+ 10194d: 0f b6 00 movzbl (%eax),%eax
+ 101950: 84 c0 test %al,%al
+ 101952: 75 da jne 10192e <printf+0x26>
+ 101954: 8d 45 0c lea 0xc(%ebp),%eax
+ 101957: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 10195a: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp)
+ 101961: e9 f6 00 00 00 jmp 101a5c <printf+0x154>
+ 101966: 8b 55 d4 mov -0x2c(%ebp),%edx
+ 101969: 8b 45 f0 mov -0x10(%ebp),%eax
+ 10196c: 01 d0 add %edx,%eax
+ 10196e: 0f b6 00 movzbl (%eax),%eax
+ 101971: 3c 25 cmp $0x25,%al
+ 101973: 0f 85 c5 00 00 00 jne 101a3e <printf+0x136>
+ 101979: 83 45 f0 01 addl $0x1,-0x10(%ebp)
+ 10197d: 8b 55 d4 mov -0x2c(%ebp),%edx
+ 101980: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101983: 01 d0 add %edx,%eax
+ 101985: 0f b6 00 movzbl (%eax),%eax
+ 101988: 3c 63 cmp $0x63,%al
+ 10198a: 75 1f jne 1019ab <printf+0xa3>
+ 10198c: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10198f: 8d 50 04 lea 0x4(%eax),%edx
+ 101992: 89 55 e4 mov %edx,-0x1c(%ebp)
+ 101995: 8b 00 mov (%eax),%eax
+ 101997: 0f be c0 movsbl %al,%eax
+ 10199a: 83 ec 0c sub $0xc,%esp
+ 10199d: 50 push %eax
+ 10199e: e8 62 12 00 00 call 102c05 <terminal_putchar>
+ 1019a3: 83 c4 10 add $0x10,%esp
+ 1019a6: e9 ad 00 00 00 jmp 101a58 <printf+0x150>
+ 1019ab: 8b 55 d4 mov -0x2c(%ebp),%edx
+ 1019ae: 8b 45 f0 mov -0x10(%ebp),%eax
+ 1019b1: 01 d0 add %edx,%eax
+ 1019b3: 0f b6 00 movzbl (%eax),%eax
+ 1019b6: 3c 73 cmp $0x73,%al
+ 1019b8: 75 1c jne 1019d6 <printf+0xce>
+ 1019ba: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1019bd: 8d 50 04 lea 0x4(%eax),%edx
+ 1019c0: 89 55 e4 mov %edx,-0x1c(%ebp)
+ 1019c3: 8b 00 mov (%eax),%eax
+ 1019c5: 83 ec 0c sub $0xc,%esp
+ 1019c8: 50 push %eax
+ 1019c9: e8 c1 12 00 00 call 102c8f <terminal_writestring>
+ 1019ce: 83 c4 10 add $0x10,%esp
+ 1019d1: e9 82 00 00 00 jmp 101a58 <printf+0x150>
+ 1019d6: 8b 55 d4 mov -0x2c(%ebp),%edx
+ 1019d9: 8b 45 f0 mov -0x10(%ebp),%eax
+ 1019dc: 01 d0 add %edx,%eax
+ 1019de: 0f b6 00 movzbl (%eax),%eax
+ 1019e1: 3c 64 cmp $0x64,%al
+ 1019e3: 75 19 jne 1019fe <printf+0xf6>
+ 1019e5: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 1019e8: 8d 50 04 lea 0x4(%eax),%edx
+ 1019eb: 89 55 e4 mov %edx,-0x1c(%ebp)
+ 1019ee: 8b 00 mov (%eax),%eax
+ 1019f0: 83 ec 0c sub $0xc,%esp
+ 1019f3: 50 push %eax
+ 1019f4: e8 f5 12 00 00 call 102cee <terminal_writeint>
+ 1019f9: 83 c4 10 add $0x10,%esp
+ 1019fc: eb 5a jmp 101a58 <printf+0x150>
+ 1019fe: 8b 55 d4 mov -0x2c(%ebp),%edx
+ 101a01: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101a04: 01 d0 add %edx,%eax
+ 101a06: 0f b6 00 movzbl (%eax),%eax
+ 101a09: 3c 66 cmp $0x66,%al
+ 101a0b: 75 1f jne 101a2c <printf+0x124>
+ 101a0d: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101a10: 8d 50 08 lea 0x8(%eax),%edx
+ 101a13: 89 55 e4 mov %edx,-0x1c(%ebp)
+ 101a16: dd 00 fldl (%eax)
+ 101a18: 83 ec 08 sub $0x8,%esp
+ 101a1b: 8d 64 24 f8 lea -0x8(%esp),%esp
+ 101a1f: dd 1c 24 fstpl (%esp)
+ 101a22: e8 36 13 00 00 call 102d5d <terminal_writefloat>
+ 101a27: 83 c4 10 add $0x10,%esp
+ 101a2a: eb 2c jmp 101a58 <printf+0x150>
+ 101a2c: 83 ec 0c sub $0xc,%esp
+ 101a2f: 68 14 40 10 00 push $0x104014
+ 101a34: e8 56 12 00 00 call 102c8f <terminal_writestring>
+ 101a39: 83 c4 10 add $0x10,%esp
+ 101a3c: eb 31 jmp 101a6f <printf+0x167>
+ 101a3e: 8b 55 d4 mov -0x2c(%ebp),%edx
+ 101a41: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101a44: 01 d0 add %edx,%eax
+ 101a46: 0f b6 00 movzbl (%eax),%eax
+ 101a49: 0f be c0 movsbl %al,%eax
+ 101a4c: 83 ec 0c sub $0xc,%esp
+ 101a4f: 50 push %eax
+ 101a50: e8 b0 11 00 00 call 102c05 <terminal_putchar>
+ 101a55: 83 c4 10 add $0x10,%esp
+ 101a58: 83 45 f0 01 addl $0x1,-0x10(%ebp)
+ 101a5c: 8b 55 d4 mov -0x2c(%ebp),%edx
+ 101a5f: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101a62: 01 d0 add %edx,%eax
+ 101a64: 0f b6 00 movzbl (%eax),%eax
+ 101a67: 84 c0 test %al,%al
+ 101a69: 0f 85 f7 fe ff ff jne 101966 <printf+0x5e>
+ 101a6f: 8b 45 f4 mov -0xc(%ebp),%eax
+ 101a72: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 101a78: 74 05 je 101a7f <printf+0x177>
+ 101a7a: e8 08 1e 00 00 call 103887 <__stack_chk_fail>
+ 101a7f: c9 leave
+ 101a80: c3 ret
+
+00101a81 <stringlen>:
+ 101a81: 55 push %ebp
+ 101a82: 89 e5 mov %esp,%ebp
+ 101a84: 83 ec 28 sub $0x28,%esp
+ 101a87: 8b 45 08 mov 0x8(%ebp),%eax
+ 101a8a: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 101a8d: a1 04 50 10 00 mov 0x105004,%eax
+ 101a92: 89 45 f4 mov %eax,-0xc(%ebp)
+ 101a95: 31 c0 xor %eax,%eax
+ 101a97: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp)
+ 101a9e: eb 04 jmp 101aa4 <stringlen+0x23>
+ 101aa0: 83 45 f0 01 addl $0x1,-0x10(%ebp)
+ 101aa4: 8b 55 e4 mov -0x1c(%ebp),%edx
+ 101aa7: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101aaa: 01 d0 add %edx,%eax
+ 101aac: 0f b6 00 movzbl (%eax),%eax
+ 101aaf: 84 c0 test %al,%al
+ 101ab1: 75 ed jne 101aa0 <stringlen+0x1f>
+ 101ab3: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101ab6: 8b 55 f4 mov -0xc(%ebp),%edx
+ 101ab9: 2b 15 04 50 10 00 sub 0x105004,%edx
+ 101abf: 74 05 je 101ac6 <stringlen+0x45>
+ 101ac1: e8 c1 1d 00 00 call 103887 <__stack_chk_fail>
+ 101ac6: c9 leave
+ 101ac7: c3 ret
+
+00101ac8 <stringcmp>:
+ 101ac8: 55 push %ebp
+ 101ac9: 89 e5 mov %esp,%ebp
+ 101acb: 83 ec 28 sub $0x28,%esp
+ 101ace: 8b 45 08 mov 0x8(%ebp),%eax
+ 101ad1: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 101ad4: 8b 45 0c mov 0xc(%ebp),%eax
+ 101ad7: 89 45 e0 mov %eax,-0x20(%ebp)
+ 101ada: a1 04 50 10 00 mov 0x105004,%eax
+ 101adf: 89 45 f4 mov %eax,-0xc(%ebp)
+ 101ae2: 31 c0 xor %eax,%eax
+ 101ae4: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp)
+ 101aeb: eb 25 jmp 101b12 <stringcmp+0x4a>
+ 101aed: 8b 55 e4 mov -0x1c(%ebp),%edx
+ 101af0: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101af3: 01 d0 add %edx,%eax
+ 101af5: 0f b6 10 movzbl (%eax),%edx
+ 101af8: 8b 4d e0 mov -0x20(%ebp),%ecx
+ 101afb: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101afe: 01 c8 add %ecx,%eax
+ 101b00: 0f b6 00 movzbl (%eax),%eax
+ 101b03: 38 c2 cmp %al,%dl
+ 101b05: 74 07 je 101b0e <stringcmp+0x46>
+ 101b07: b8 00 00 00 00 mov $0x0,%eax
+ 101b0c: eb 48 jmp 101b56 <stringcmp+0x8e>
+ 101b0e: 83 45 f0 01 addl $0x1,-0x10(%ebp)
+ 101b12: 8b 55 e4 mov -0x1c(%ebp),%edx
+ 101b15: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101b18: 01 d0 add %edx,%eax
+ 101b1a: 0f b6 00 movzbl (%eax),%eax
+ 101b1d: 84 c0 test %al,%al
+ 101b1f: 75 cc jne 101aed <stringcmp+0x25>
+ 101b21: 8b 55 e0 mov -0x20(%ebp),%edx
+ 101b24: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101b27: 01 d0 add %edx,%eax
+ 101b29: 0f b6 00 movzbl (%eax),%eax
+ 101b2c: 84 c0 test %al,%al
+ 101b2e: 75 bd jne 101aed <stringcmp+0x25>
+ 101b30: 8b 55 e4 mov -0x1c(%ebp),%edx
+ 101b33: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101b36: 01 d0 add %edx,%eax
+ 101b38: 0f b6 10 movzbl (%eax),%edx
+ 101b3b: 8b 4d e0 mov -0x20(%ebp),%ecx
+ 101b3e: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101b41: 01 c8 add %ecx,%eax
+ 101b43: 0f b6 00 movzbl (%eax),%eax
+ 101b46: 38 c2 cmp %al,%dl
+ 101b48: 75 07 jne 101b51 <stringcmp+0x89>
+ 101b4a: b8 01 00 00 00 mov $0x1,%eax
+ 101b4f: eb 05 jmp 101b56 <stringcmp+0x8e>
+ 101b51: b8 00 00 00 00 mov $0x0,%eax
+ 101b56: 8b 55 f4 mov -0xc(%ebp),%edx
+ 101b59: 2b 15 04 50 10 00 sub 0x105004,%edx
+ 101b5f: 74 05 je 101b66 <stringcmp+0x9e>
+ 101b61: e8 21 1d 00 00 call 103887 <__stack_chk_fail>
+ 101b66: c9 leave
+ 101b67: c3 ret
+
+00101b68 <stringcat>:
+ 101b68: 55 push %ebp
+ 101b69: 89 e5 mov %esp,%ebp
+ 101b6b: 83 ec 28 sub $0x28,%esp
+ 101b6e: 8b 45 08 mov 0x8(%ebp),%eax
+ 101b71: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 101b74: 8b 45 0c mov 0xc(%ebp),%eax
+ 101b77: 89 45 e0 mov %eax,-0x20(%ebp)
+ 101b7a: a1 04 50 10 00 mov 0x105004,%eax
+ 101b7f: 89 45 f4 mov %eax,-0xc(%ebp)
+ 101b82: 31 c0 xor %eax,%eax
+ 101b84: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101b87: 89 45 f0 mov %eax,-0x10(%ebp)
+ 101b8a: eb 04 jmp 101b90 <stringcat+0x28>
+ 101b8c: 83 45 f0 01 addl $0x1,-0x10(%ebp)
+ 101b90: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101b93: 0f b6 00 movzbl (%eax),%eax
+ 101b96: 84 c0 test %al,%al
+ 101b98: 75 f2 jne 101b8c <stringcat+0x24>
+ 101b9a: eb 17 jmp 101bb3 <stringcat+0x4b>
+ 101b9c: 8b 55 e0 mov -0x20(%ebp),%edx
+ 101b9f: 8d 42 01 lea 0x1(%edx),%eax
+ 101ba2: 89 45 e0 mov %eax,-0x20(%ebp)
+ 101ba5: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101ba8: 8d 48 01 lea 0x1(%eax),%ecx
+ 101bab: 89 4d f0 mov %ecx,-0x10(%ebp)
+ 101bae: 0f b6 12 movzbl (%edx),%edx
+ 101bb1: 88 10 mov %dl,(%eax)
+ 101bb3: 8b 45 e0 mov -0x20(%ebp),%eax
+ 101bb6: 0f b6 00 movzbl (%eax),%eax
+ 101bb9: 84 c0 test %al,%al
+ 101bbb: 75 df jne 101b9c <stringcat+0x34>
+ 101bbd: 8b 45 e0 mov -0x20(%ebp),%eax
+ 101bc0: 0f b6 10 movzbl (%eax),%edx
+ 101bc3: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101bc6: 88 10 mov %dl,(%eax)
+ 101bc8: 90 nop
+ 101bc9: 8b 45 f4 mov -0xc(%ebp),%eax
+ 101bcc: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 101bd2: 74 05 je 101bd9 <stringcat+0x71>
+ 101bd4: e8 ae 1c 00 00 call 103887 <__stack_chk_fail>
+ 101bd9: c9 leave
+ 101bda: c3 ret
+
+00101bdb <stringcpy>:
+ 101bdb: 55 push %ebp
+ 101bdc: 89 e5 mov %esp,%ebp
+ 101bde: 83 ec 28 sub $0x28,%esp
+ 101be1: 8b 45 08 mov 0x8(%ebp),%eax
+ 101be4: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 101be7: 8b 45 0c mov 0xc(%ebp),%eax
+ 101bea: 89 45 e0 mov %eax,-0x20(%ebp)
+ 101bed: a1 04 50 10 00 mov 0x105004,%eax
+ 101bf2: 89 45 f4 mov %eax,-0xc(%ebp)
+ 101bf5: 31 c0 xor %eax,%eax
+ 101bf7: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp)
+ 101bfe: eb 19 jmp 101c19 <stringcpy+0x3e>
+ 101c00: 8b 55 e0 mov -0x20(%ebp),%edx
+ 101c03: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101c06: 01 d0 add %edx,%eax
+ 101c08: 8b 4d e4 mov -0x1c(%ebp),%ecx
+ 101c0b: 8b 55 f0 mov -0x10(%ebp),%edx
+ 101c0e: 01 ca add %ecx,%edx
+ 101c10: 0f b6 00 movzbl (%eax),%eax
+ 101c13: 88 02 mov %al,(%edx)
+ 101c15: 83 45 f0 01 addl $0x1,-0x10(%ebp)
+ 101c19: 8b 55 e0 mov -0x20(%ebp),%edx
+ 101c1c: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101c1f: 01 d0 add %edx,%eax
+ 101c21: 0f b6 00 movzbl (%eax),%eax
+ 101c24: 84 c0 test %al,%al
+ 101c26: 75 d8 jne 101c00 <stringcpy+0x25>
+ 101c28: 90 nop
+ 101c29: 8b 45 f4 mov -0xc(%ebp),%eax
+ 101c2c: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 101c32: 74 05 je 101c39 <stringcpy+0x5e>
+ 101c34: e8 4e 1c 00 00 call 103887 <__stack_chk_fail>
+ 101c39: c9 leave
+ 101c3a: c3 ret
+
+00101c3b <stringrev>:
+ 101c3b: 55 push %ebp
+ 101c3c: 89 e5 mov %esp,%ebp
+ 101c3e: 83 ec 28 sub $0x28,%esp
+ 101c41: 8b 45 08 mov 0x8(%ebp),%eax
+ 101c44: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 101c47: a1 04 50 10 00 mov 0x105004,%eax
+ 101c4c: 89 45 f4 mov %eax,-0xc(%ebp)
+ 101c4f: 31 c0 xor %eax,%eax
+ 101c51: 83 ec 0c sub $0xc,%esp
+ 101c54: ff 75 e4 push -0x1c(%ebp)
+ 101c57: e8 25 fe ff ff call 101a81 <stringlen>
+ 101c5c: 83 c4 10 add $0x10,%esp
+ 101c5f: 83 e8 01 sub $0x1,%eax
+ 101c62: 89 45 f0 mov %eax,-0x10(%ebp)
+ 101c65: c7 45 ec 00 00 00 00 movl $0x0,-0x14(%ebp)
+ 101c6c: eb 40 jmp 101cae <stringrev+0x73>
+ 101c6e: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101c71: 2b 45 ec sub -0x14(%ebp),%eax
+ 101c74: 89 c2 mov %eax,%edx
+ 101c76: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101c79: 01 d0 add %edx,%eax
+ 101c7b: 0f b6 00 movzbl (%eax),%eax
+ 101c7e: 88 45 eb mov %al,-0x15(%ebp)
+ 101c81: 8b 55 e4 mov -0x1c(%ebp),%edx
+ 101c84: 8b 45 ec mov -0x14(%ebp),%eax
+ 101c87: 8d 0c 02 lea (%edx,%eax,1),%ecx
+ 101c8a: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101c8d: 2b 45 ec sub -0x14(%ebp),%eax
+ 101c90: 89 c2 mov %eax,%edx
+ 101c92: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101c95: 01 c2 add %eax,%edx
+ 101c97: 0f b6 01 movzbl (%ecx),%eax
+ 101c9a: 88 02 mov %al,(%edx)
+ 101c9c: 8b 55 e4 mov -0x1c(%ebp),%edx
+ 101c9f: 8b 45 ec mov -0x14(%ebp),%eax
+ 101ca2: 01 c2 add %eax,%edx
+ 101ca4: 0f b6 45 eb movzbl -0x15(%ebp),%eax
+ 101ca8: 88 02 mov %al,(%edx)
+ 101caa: 83 45 ec 01 addl $0x1,-0x14(%ebp)
+ 101cae: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101cb1: 2b 45 ec sub -0x14(%ebp),%eax
+ 101cb4: 39 45 ec cmp %eax,-0x14(%ebp)
+ 101cb7: 72 b5 jb 101c6e <stringrev+0x33>
+ 101cb9: 90 nop
+ 101cba: 8b 45 f4 mov -0xc(%ebp),%eax
+ 101cbd: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 101cc3: 74 05 je 101cca <stringrev+0x8f>
+ 101cc5: e8 bd 1b 00 00 call 103887 <__stack_chk_fail>
+ 101cca: c9 leave
+ 101ccb: c3 ret
+
+00101ccc <stoi>:
+ 101ccc: 55 push %ebp
+ 101ccd: 89 e5 mov %esp,%ebp
+ 101ccf: 83 ec 28 sub $0x28,%esp
+ 101cd2: 8b 45 08 mov 0x8(%ebp),%eax
+ 101cd5: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 101cd8: a1 04 50 10 00 mov 0x105004,%eax
+ 101cdd: 89 45 f4 mov %eax,-0xc(%ebp)
+ 101ce0: 31 c0 xor %eax,%eax
+ 101ce2: c7 45 ec 00 00 00 00 movl $0x0,-0x14(%ebp)
+ 101ce9: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp)
+ 101cf0: eb 4f jmp 101d41 <stoi+0x75>
+ 101cf2: 8b 55 e4 mov -0x1c(%ebp),%edx
+ 101cf5: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101cf8: 01 d0 add %edx,%eax
+ 101cfa: 0f b6 00 movzbl (%eax),%eax
+ 101cfd: 3c 2f cmp $0x2f,%al
+ 101cff: 7e 0f jle 101d10 <stoi+0x44>
+ 101d01: 8b 55 e4 mov -0x1c(%ebp),%edx
+ 101d04: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101d07: 01 d0 add %edx,%eax
+ 101d09: 0f b6 00 movzbl (%eax),%eax
+ 101d0c: 3c 39 cmp $0x39,%al
+ 101d0e: 7e 05 jle 101d15 <stoi+0x49>
+ 101d10: 8b 45 ec mov -0x14(%ebp),%eax
+ 101d13: eb 3e jmp 101d53 <stoi+0x87>
+ 101d15: 8b 55 ec mov -0x14(%ebp),%edx
+ 101d18: 89 d0 mov %edx,%eax
+ 101d1a: c1 e0 02 shl $0x2,%eax
+ 101d1d: 01 d0 add %edx,%eax
+ 101d1f: 01 c0 add %eax,%eax
+ 101d21: 89 45 ec mov %eax,-0x14(%ebp)
+ 101d24: 8b 55 e4 mov -0x1c(%ebp),%edx
+ 101d27: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101d2a: 01 d0 add %edx,%eax
+ 101d2c: 0f b6 00 movzbl (%eax),%eax
+ 101d2f: 0f be d0 movsbl %al,%edx
+ 101d32: 8b 45 ec mov -0x14(%ebp),%eax
+ 101d35: 01 d0 add %edx,%eax
+ 101d37: 83 e8 30 sub $0x30,%eax
+ 101d3a: 89 45 ec mov %eax,-0x14(%ebp)
+ 101d3d: 83 45 f0 01 addl $0x1,-0x10(%ebp)
+ 101d41: 8b 55 e4 mov -0x1c(%ebp),%edx
+ 101d44: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101d47: 01 d0 add %edx,%eax
+ 101d49: 0f b6 00 movzbl (%eax),%eax
+ 101d4c: 84 c0 test %al,%al
+ 101d4e: 75 a2 jne 101cf2 <stoi+0x26>
+ 101d50: 8b 45 ec mov -0x14(%ebp),%eax
+ 101d53: 8b 55 f4 mov -0xc(%ebp),%edx
+ 101d56: 2b 15 04 50 10 00 sub 0x105004,%edx
+ 101d5c: 74 05 je 101d63 <stoi+0x97>
+ 101d5e: e8 24 1b 00 00 call 103887 <__stack_chk_fail>
+ 101d63: c9 leave
+ 101d64: c3 ret
+
+00101d65 <itos>:
+ 101d65: 55 push %ebp
+ 101d66: 89 e5 mov %esp,%ebp
+ 101d68: 83 ec 28 sub $0x28,%esp
+ 101d6b: 8b 45 08 mov 0x8(%ebp),%eax
+ 101d6e: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 101d71: 8b 45 0c mov 0xc(%ebp),%eax
+ 101d74: 89 45 e0 mov %eax,-0x20(%ebp)
+ 101d77: a1 04 50 10 00 mov 0x105004,%eax
+ 101d7c: 89 45 f4 mov %eax,-0xc(%ebp)
+ 101d7f: 31 c0 xor %eax,%eax
+ 101d81: 83 7d e4 00 cmpl $0x0,-0x1c(%ebp)
+ 101d85: 75 15 jne 101d9c <itos+0x37>
+ 101d87: 83 ec 08 sub $0x8,%esp
+ 101d8a: 68 38 40 10 00 push $0x104038
+ 101d8f: ff 75 e0 push -0x20(%ebp)
+ 101d92: e8 44 fe ff ff call 101bdb <stringcpy>
+ 101d97: 83 c4 10 add $0x10,%esp
+ 101d9a: eb 6b jmp 101e07 <itos+0xa2>
+ 101d9c: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp)
+ 101da3: eb 43 jmp 101de8 <itos+0x83>
+ 101da5: 8b 4d e4 mov -0x1c(%ebp),%ecx
+ 101da8: ba cd cc cc cc mov $0xcccccccd,%edx
+ 101dad: 89 c8 mov %ecx,%eax
+ 101daf: f7 e2 mul %edx
+ 101db1: c1 ea 03 shr $0x3,%edx
+ 101db4: 89 d0 mov %edx,%eax
+ 101db6: c1 e0 02 shl $0x2,%eax
+ 101db9: 01 d0 add %edx,%eax
+ 101dbb: 01 c0 add %eax,%eax
+ 101dbd: 29 c1 sub %eax,%ecx
+ 101dbf: 89 ca mov %ecx,%edx
+ 101dc1: 89 d0 mov %edx,%eax
+ 101dc3: 8d 48 30 lea 0x30(%eax),%ecx
+ 101dc6: 8b 55 e0 mov -0x20(%ebp),%edx
+ 101dc9: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101dcc: 01 d0 add %edx,%eax
+ 101dce: 89 ca mov %ecx,%edx
+ 101dd0: 88 10 mov %dl,(%eax)
+ 101dd2: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101dd5: ba cd cc cc cc mov $0xcccccccd,%edx
+ 101dda: f7 e2 mul %edx
+ 101ddc: 89 d0 mov %edx,%eax
+ 101dde: c1 e8 03 shr $0x3,%eax
+ 101de1: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 101de4: 83 45 f0 01 addl $0x1,-0x10(%ebp)
+ 101de8: 83 7d e4 00 cmpl $0x0,-0x1c(%ebp)
+ 101dec: 75 b7 jne 101da5 <itos+0x40>
+ 101dee: 8b 55 e0 mov -0x20(%ebp),%edx
+ 101df1: 8b 45 f0 mov -0x10(%ebp),%eax
+ 101df4: 01 d0 add %edx,%eax
+ 101df6: c6 00 00 movb $0x0,(%eax)
+ 101df9: 83 ec 0c sub $0xc,%esp
+ 101dfc: ff 75 e0 push -0x20(%ebp)
+ 101dff: e8 37 fe ff ff call 101c3b <stringrev>
+ 101e04: 83 c4 10 add $0x10,%esp
+ 101e07: 90 nop
+ 101e08: 8b 45 f4 mov -0xc(%ebp),%eax
+ 101e0b: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 101e11: 74 05 je 101e18 <itos+0xb3>
+ 101e13: e8 6f 1a 00 00 call 103887 <__stack_chk_fail>
+ 101e18: c9 leave
+ 101e19: c3 ret
+
+00101e1a <stof>:
+ 101e1a: 55 push %ebp
+ 101e1b: 89 e5 mov %esp,%ebp
+ 101e1d: 83 ec 38 sub $0x38,%esp
+ 101e20: 8b 45 08 mov 0x8(%ebp),%eax
+ 101e23: 89 45 d4 mov %eax,-0x2c(%ebp)
+ 101e26: a1 04 50 10 00 mov 0x105004,%eax
+ 101e2b: 89 45 f4 mov %eax,-0xc(%ebp)
+ 101e2e: 31 c0 xor %eax,%eax
+ 101e30: d9 ee fldz
+ 101e32: dd 5d e8 fstpl -0x18(%ebp)
+ 101e35: c6 45 df 00 movb $0x0,-0x21(%ebp)
+ 101e39: c7 45 e0 01 00 00 00 movl $0x1,-0x20(%ebp)
+ 101e40: c7 45 e4 00 00 00 00 movl $0x0,-0x1c(%ebp)
+ 101e47: e9 b2 00 00 00 jmp 101efe <stof+0xe4>
+ 101e4c: 8b 55 d4 mov -0x2c(%ebp),%edx
+ 101e4f: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101e52: 01 d0 add %edx,%eax
+ 101e54: 0f b6 00 movzbl (%eax),%eax
+ 101e57: 3c 2e cmp $0x2e,%al
+ 101e59: 75 27 jne 101e82 <stof+0x68>
+ 101e5b: 80 7d df 00 cmpb $0x0,-0x21(%ebp)
+ 101e5f: 74 1b je 101e7c <stof+0x62>
+ 101e61: 8b 45 e0 mov -0x20(%ebp),%eax
+ 101e64: ba 00 00 00 00 mov $0x0,%edx
+ 101e69: 89 45 c8 mov %eax,-0x38(%ebp)
+ 101e6c: 89 55 cc mov %edx,-0x34(%ebp)
+ 101e6f: df 6d c8 fildll -0x38(%ebp)
+ 101e72: dd 45 e8 fldl -0x18(%ebp)
+ 101e75: de f1 fdivp %st,%st(1)
+ 101e77: e9 ab 00 00 00 jmp 101f27 <stof+0x10d>
+ 101e7c: c6 45 df 01 movb $0x1,-0x21(%ebp)
+ 101e80: eb 78 jmp 101efa <stof+0xe0>
+ 101e82: 8b 55 d4 mov -0x2c(%ebp),%edx
+ 101e85: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101e88: 01 d0 add %edx,%eax
+ 101e8a: 0f b6 00 movzbl (%eax),%eax
+ 101e8d: 3c 2f cmp $0x2f,%al
+ 101e8f: 7e 0f jle 101ea0 <stof+0x86>
+ 101e91: 8b 55 d4 mov -0x2c(%ebp),%edx
+ 101e94: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101e97: 01 d0 add %edx,%eax
+ 101e99: 0f b6 00 movzbl (%eax),%eax
+ 101e9c: 3c 39 cmp $0x39,%al
+ 101e9e: 7e 18 jle 101eb8 <stof+0x9e>
+ 101ea0: 8b 45 e0 mov -0x20(%ebp),%eax
+ 101ea3: ba 00 00 00 00 mov $0x0,%edx
+ 101ea8: 89 45 c8 mov %eax,-0x38(%ebp)
+ 101eab: 89 55 cc mov %edx,-0x34(%ebp)
+ 101eae: df 6d c8 fildll -0x38(%ebp)
+ 101eb1: dd 45 e8 fldl -0x18(%ebp)
+ 101eb4: de f1 fdivp %st,%st(1)
+ 101eb6: eb 6f jmp 101f27 <stof+0x10d>
+ 101eb8: dd 45 e8 fldl -0x18(%ebp)
+ 101ebb: dd 05 48 40 10 00 fldl 0x104048
+ 101ec1: de c9 fmulp %st,%st(1)
+ 101ec3: dd 5d e8 fstpl -0x18(%ebp)
+ 101ec6: 8b 55 d4 mov -0x2c(%ebp),%edx
+ 101ec9: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101ecc: 01 d0 add %edx,%eax
+ 101ece: 0f b6 00 movzbl (%eax),%eax
+ 101ed1: 0f be c0 movsbl %al,%eax
+ 101ed4: 83 e8 30 sub $0x30,%eax
+ 101ed7: 89 45 c8 mov %eax,-0x38(%ebp)
+ 101eda: db 45 c8 fildl -0x38(%ebp)
+ 101edd: dd 45 e8 fldl -0x18(%ebp)
+ 101ee0: de c1 faddp %st,%st(1)
+ 101ee2: dd 5d e8 fstpl -0x18(%ebp)
+ 101ee5: 80 7d df 00 cmpb $0x0,-0x21(%ebp)
+ 101ee9: 74 0f je 101efa <stof+0xe0>
+ 101eeb: 8b 55 e0 mov -0x20(%ebp),%edx
+ 101eee: 89 d0 mov %edx,%eax
+ 101ef0: c1 e0 02 shl $0x2,%eax
+ 101ef3: 01 d0 add %edx,%eax
+ 101ef5: 01 c0 add %eax,%eax
+ 101ef7: 89 45 e0 mov %eax,-0x20(%ebp)
+ 101efa: 83 45 e4 01 addl $0x1,-0x1c(%ebp)
+ 101efe: 8b 55 d4 mov -0x2c(%ebp),%edx
+ 101f01: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 101f04: 01 d0 add %edx,%eax
+ 101f06: 0f b6 00 movzbl (%eax),%eax
+ 101f09: 84 c0 test %al,%al
+ 101f0b: 0f 85 3b ff ff ff jne 101e4c <stof+0x32>
+ 101f11: 8b 45 e0 mov -0x20(%ebp),%eax
+ 101f14: ba 00 00 00 00 mov $0x0,%edx
+ 101f19: 89 45 c8 mov %eax,-0x38(%ebp)
+ 101f1c: 89 55 cc mov %edx,-0x34(%ebp)
+ 101f1f: df 6d c8 fildll -0x38(%ebp)
+ 101f22: dd 45 e8 fldl -0x18(%ebp)
+ 101f25: de f1 fdivp %st,%st(1)
+ 101f27: 8b 45 f4 mov -0xc(%ebp),%eax
+ 101f2a: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 101f30: 74 07 je 101f39 <stof+0x11f>
+ 101f32: dd d8 fstp %st(0)
+ 101f34: e8 4e 19 00 00 call 103887 <__stack_chk_fail>
+ 101f39: c9 leave
+ 101f3a: c3 ret
+
+00101f3b <ftos>:
+ 101f3b: 55 push %ebp
+ 101f3c: 89 e5 mov %esp,%ebp
+ 101f3e: 83 ec 38 sub $0x38,%esp
+ 101f41: 8b 45 08 mov 0x8(%ebp),%eax
+ 101f44: 89 45 e0 mov %eax,-0x20(%ebp)
+ 101f47: 8b 45 0c mov 0xc(%ebp),%eax
+ 101f4a: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 101f4d: 8b 45 10 mov 0x10(%ebp),%eax
+ 101f50: 89 45 dc mov %eax,-0x24(%ebp)
+ 101f53: a1 04 50 10 00 mov 0x105004,%eax
+ 101f58: 89 45 f4 mov %eax,-0xc(%ebp)
+ 101f5b: 31 c0 xor %eax,%eax
+ 101f5d: dd 45 e0 fldl -0x20(%ebp)
+ 101f60: d9 7d da fnstcw -0x26(%ebp)
+ 101f63: 0f b7 45 da movzwl -0x26(%ebp),%eax
+ 101f67: 80 cc 0c or $0xc,%ah
+ 101f6a: 66 89 45 d8 mov %ax,-0x28(%ebp)
+ 101f6e: d9 6d d8 fldcw -0x28(%ebp)
+ 101f71: df 7d d0 fistpll -0x30(%ebp)
+ 101f74: d9 6d da fldcw -0x26(%ebp)
+ 101f77: 8b 45 d0 mov -0x30(%ebp),%eax
+ 101f7a: 83 ec 08 sub $0x8,%esp
+ 101f7d: ff 75 dc push -0x24(%ebp)
+ 101f80: 50 push %eax
+ 101f81: e8 df fd ff ff call 101d65 <itos>
+ 101f86: 83 c4 10 add $0x10,%esp
+ 101f89: 83 ec 08 sub $0x8,%esp
+ 101f8c: 68 40 40 10 00 push $0x104040
+ 101f91: ff 75 dc push -0x24(%ebp)
+ 101f94: e8 cf fb ff ff call 101b68 <stringcat>
+ 101f99: 83 c4 10 add $0x10,%esp
+ 101f9c: c6 45 f3 00 movb $0x0,-0xd(%ebp)
+ 101fa0: c7 45 ec 00 00 00 00 movl $0x0,-0x14(%ebp)
+ 101fa7: eb 6b jmp 102014 <ftos+0xd9>
+ 101fa9: dd 45 e0 fldl -0x20(%ebp)
+ 101fac: d9 7d da fnstcw -0x26(%ebp)
+ 101faf: 0f b7 45 da movzwl -0x26(%ebp),%eax
+ 101fb3: 80 cc 0c or $0xc,%ah
+ 101fb6: 66 89 45 d8 mov %ax,-0x28(%ebp)
+ 101fba: d9 6d d8 fldcw -0x28(%ebp)
+ 101fbd: df 7d d0 fistpll -0x30(%ebp)
+ 101fc0: d9 6d da fldcw -0x26(%ebp)
+ 101fc3: 8b 45 d0 mov -0x30(%ebp),%eax
+ 101fc6: 89 45 d0 mov %eax,-0x30(%ebp)
+ 101fc9: c7 45 d4 00 00 00 00 movl $0x0,-0x2c(%ebp)
+ 101fd0: df 6d d0 fildll -0x30(%ebp)
+ 101fd3: dd 45 e0 fldl -0x20(%ebp)
+ 101fd6: de e1 fsubp %st,%st(1)
+ 101fd8: dd 5d e0 fstpl -0x20(%ebp)
+ 101fdb: dd 45 e0 fldl -0x20(%ebp)
+ 101fde: dd 05 48 40 10 00 fldl 0x104048
+ 101fe4: de c9 fmulp %st,%st(1)
+ 101fe6: dd 5d e0 fstpl -0x20(%ebp)
+ 101fe9: dd 45 e0 fldl -0x20(%ebp)
+ 101fec: d9 6d d8 fldcw -0x28(%ebp)
+ 101fef: df 7d d0 fistpll -0x30(%ebp)
+ 101ff2: d9 6d da fldcw -0x26(%ebp)
+ 101ff5: 8b 45 d0 mov -0x30(%ebp),%eax
+ 101ff8: 83 c0 30 add $0x30,%eax
+ 101ffb: 88 45 f2 mov %al,-0xe(%ebp)
+ 101ffe: 83 ec 08 sub $0x8,%esp
+ 102001: 8d 45 f2 lea -0xe(%ebp),%eax
+ 102004: 50 push %eax
+ 102005: ff 75 dc push -0x24(%ebp)
+ 102008: e8 5b fb ff ff call 101b68 <stringcat>
+ 10200d: 83 c4 10 add $0x10,%esp
+ 102010: 83 45 ec 01 addl $0x1,-0x14(%ebp)
+ 102014: b8 07 00 00 00 mov $0x7,%eax
+ 102019: 39 45 ec cmp %eax,-0x14(%ebp)
+ 10201c: 72 8b jb 101fa9 <ftos+0x6e>
+ 10201e: 90 nop
+ 10201f: 8b 45 f4 mov -0xc(%ebp),%eax
+ 102022: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 102028: 74 05 je 10202f <ftos+0xf4>
+ 10202a: e8 58 18 00 00 call 103887 <__stack_chk_fail>
+ 10202f: c9 leave
+ 102030: c3 ret
+
+00102031 <pieces>:
+ 102031: 55 push %ebp
+ 102032: 89 e5 mov %esp,%ebp
+ 102034: 53 push %ebx
+ 102035: 83 ec 34 sub $0x34,%esp
+ 102038: 8b 45 08 mov 0x8(%ebp),%eax
+ 10203b: 89 45 d4 mov %eax,-0x2c(%ebp)
+ 10203e: 8b 45 0c mov 0xc(%ebp),%eax
+ 102041: 89 45 d0 mov %eax,-0x30(%ebp)
+ 102044: a1 04 50 10 00 mov 0x105004,%eax
+ 102049: 89 45 f4 mov %eax,-0xc(%ebp)
+ 10204c: 31 c0 xor %eax,%eax
+ 10204e: c7 45 e0 00 00 00 00 movl $0x0,-0x20(%ebp)
+ 102055: eb 33 jmp 10208a <pieces+0x59>
+ 102057: c7 45 e4 00 00 00 00 movl $0x0,-0x1c(%ebp)
+ 10205e: eb 20 jmp 102080 <pieces+0x4f>
+ 102060: 8b 55 e0 mov -0x20(%ebp),%edx
+ 102063: 89 d0 mov %edx,%eax
+ 102065: c1 e0 02 shl $0x2,%eax
+ 102068: 01 d0 add %edx,%eax
+ 10206a: c1 e0 02 shl $0x2,%eax
+ 10206d: 89 c2 mov %eax,%edx
+ 10206f: 8b 45 d4 mov -0x2c(%ebp),%eax
+ 102072: 01 c2 add %eax,%edx
+ 102074: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 102077: 01 d0 add %edx,%eax
+ 102079: c6 00 00 movb $0x0,(%eax)
+ 10207c: 83 45 e4 01 addl $0x1,-0x1c(%ebp)
+ 102080: 83 7d e4 13 cmpl $0x13,-0x1c(%ebp)
+ 102084: 76 da jbe 102060 <pieces+0x2f>
+ 102086: 83 45 e0 01 addl $0x1,-0x20(%ebp)
+ 10208a: 83 7d e0 13 cmpl $0x13,-0x20(%ebp)
+ 10208e: 76 c7 jbe 102057 <pieces+0x26>
+ 102090: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%ebp)
+ 102097: c7 45 ec 00 00 00 00 movl $0x0,-0x14(%ebp)
+ 10209e: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp)
+ 1020a5: eb 04 jmp 1020ab <pieces+0x7a>
+ 1020a7: 83 45 e8 01 addl $0x1,-0x18(%ebp)
+ 1020ab: 8b 55 d0 mov -0x30(%ebp),%edx
+ 1020ae: 8b 45 e8 mov -0x18(%ebp),%eax
+ 1020b1: 01 d0 add %edx,%eax
+ 1020b3: 0f b6 00 movzbl (%eax),%eax
+ 1020b6: 3c 20 cmp $0x20,%al
+ 1020b8: 0f 85 86 00 00 00 jne 102144 <pieces+0x113>
+ 1020be: 8b 55 d0 mov -0x30(%ebp),%edx
+ 1020c1: 8b 45 e8 mov -0x18(%ebp),%eax
+ 1020c4: 01 d0 add %edx,%eax
+ 1020c6: 0f b6 00 movzbl (%eax),%eax
+ 1020c9: 84 c0 test %al,%al
+ 1020cb: 75 da jne 1020a7 <pieces+0x76>
+ 1020cd: eb 75 jmp 102144 <pieces+0x113>
+ 1020cf: 8b 55 d0 mov -0x30(%ebp),%edx
+ 1020d2: 8b 45 e8 mov -0x18(%ebp),%eax
+ 1020d5: 01 d0 add %edx,%eax
+ 1020d7: 0f b6 00 movzbl (%eax),%eax
+ 1020da: 3c 20 cmp $0x20,%al
+ 1020dc: 75 35 jne 102113 <pieces+0xe2>
+ 1020de: eb 04 jmp 1020e4 <pieces+0xb3>
+ 1020e0: 83 45 e8 01 addl $0x1,-0x18(%ebp)
+ 1020e4: 8b 55 d0 mov -0x30(%ebp),%edx
+ 1020e7: 8b 45 e8 mov -0x18(%ebp),%eax
+ 1020ea: 01 d0 add %edx,%eax
+ 1020ec: 0f b6 00 movzbl (%eax),%eax
+ 1020ef: 3c 20 cmp $0x20,%al
+ 1020f1: 75 0f jne 102102 <pieces+0xd1>
+ 1020f3: 8b 55 d0 mov -0x30(%ebp),%edx
+ 1020f6: 8b 45 e8 mov -0x18(%ebp),%eax
+ 1020f9: 01 d0 add %edx,%eax
+ 1020fb: 0f b6 00 movzbl (%eax),%eax
+ 1020fe: 84 c0 test %al,%al
+ 102100: 75 de jne 1020e0 <pieces+0xaf>
+ 102102: c7 45 ec 00 00 00 00 movl $0x0,-0x14(%ebp)
+ 102109: 83 45 f0 01 addl $0x1,-0x10(%ebp)
+ 10210d: 83 6d e8 01 subl $0x1,-0x18(%ebp)
+ 102111: eb 2d jmp 102140 <pieces+0x10f>
+ 102113: 8b 55 d0 mov -0x30(%ebp),%edx
+ 102116: 8b 45 e8 mov -0x18(%ebp),%eax
+ 102119: 8d 1c 02 lea (%edx,%eax,1),%ebx
+ 10211c: 8b 55 f0 mov -0x10(%ebp),%edx
+ 10211f: 89 d0 mov %edx,%eax
+ 102121: c1 e0 02 shl $0x2,%eax
+ 102124: 01 d0 add %edx,%eax
+ 102126: c1 e0 02 shl $0x2,%eax
+ 102129: 89 c2 mov %eax,%edx
+ 10212b: 8b 45 d4 mov -0x2c(%ebp),%eax
+ 10212e: 8d 0c 02 lea (%edx,%eax,1),%ecx
+ 102131: 8b 45 ec mov -0x14(%ebp),%eax
+ 102134: 8d 50 01 lea 0x1(%eax),%edx
+ 102137: 89 55 ec mov %edx,-0x14(%ebp)
+ 10213a: 0f b6 13 movzbl (%ebx),%edx
+ 10213d: 88 14 01 mov %dl,(%ecx,%eax,1)
+ 102140: 83 45 e8 01 addl $0x1,-0x18(%ebp)
+ 102144: 8b 55 d0 mov -0x30(%ebp),%edx
+ 102147: 8b 45 e8 mov -0x18(%ebp),%eax
+ 10214a: 01 d0 add %edx,%eax
+ 10214c: 0f b6 00 movzbl (%eax),%eax
+ 10214f: 84 c0 test %al,%al
+ 102151: 0f 85 78 ff ff ff jne 1020cf <pieces+0x9e>
+ 102157: 8b 45 f0 mov -0x10(%ebp),%eax
+ 10215a: 83 c0 01 add $0x1,%eax
+ 10215d: 8b 55 f4 mov -0xc(%ebp),%edx
+ 102160: 2b 15 04 50 10 00 sub 0x105004,%edx
+ 102166: 74 05 je 10216d <pieces+0x13c>
+ 102168: e8 1a 17 00 00 call 103887 <__stack_chk_fail>
+ 10216d: 8b 5d fc mov -0x4(%ebp),%ebx
+ 102170: c9 leave
+ 102171: c3 ret
+
+00102172 <echo>:
+ 102172: 55 push %ebp
+ 102173: 89 e5 mov %esp,%ebp
+ 102175: 83 ec 28 sub $0x28,%esp
+ 102178: 8b 45 08 mov 0x8(%ebp),%eax
+ 10217b: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 10217e: 8b 45 0c mov 0xc(%ebp),%eax
+ 102181: 89 45 e0 mov %eax,-0x20(%ebp)
+ 102184: a1 04 50 10 00 mov 0x105004,%eax
+ 102189: 89 45 f4 mov %eax,-0xc(%ebp)
+ 10218c: 31 c0 xor %eax,%eax
+ 10218e: c7 45 f0 01 00 00 00 movl $0x1,-0x10(%ebp)
+ 102195: eb 29 jmp 1021c0 <echo+0x4e>
+ 102197: 8b 55 f0 mov -0x10(%ebp),%edx
+ 10219a: 89 d0 mov %edx,%eax
+ 10219c: c1 e0 02 shl $0x2,%eax
+ 10219f: 01 d0 add %edx,%eax
+ 1021a1: c1 e0 02 shl $0x2,%eax
+ 1021a4: 89 c2 mov %eax,%edx
+ 1021a6: 8b 45 e0 mov -0x20(%ebp),%eax
+ 1021a9: 01 d0 add %edx,%eax
+ 1021ab: 83 ec 08 sub $0x8,%esp
+ 1021ae: 50 push %eax
+ 1021af: 68 58 40 10 00 push $0x104058
+ 1021b4: e8 4f f7 ff ff call 101908 <printf>
+ 1021b9: 83 c4 10 add $0x10,%esp
+ 1021bc: 83 45 f0 01 addl $0x1,-0x10(%ebp)
+ 1021c0: 8b 45 f0 mov -0x10(%ebp),%eax
+ 1021c3: 3b 45 e4 cmp -0x1c(%ebp),%eax
+ 1021c6: 72 cf jb 102197 <echo+0x25>
+ 1021c8: 83 ec 0c sub $0xc,%esp
+ 1021cb: 68 5c 40 10 00 push $0x10405c
+ 1021d0: e8 33 f7 ff ff call 101908 <printf>
+ 1021d5: 83 c4 10 add $0x10,%esp
+ 1021d8: 90 nop
+ 1021d9: 8b 45 f4 mov -0xc(%ebp),%eax
+ 1021dc: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 1021e2: 74 05 je 1021e9 <echo+0x77>
+ 1021e4: e8 9e 16 00 00 call 103887 <__stack_chk_fail>
+ 1021e9: c9 leave
+ 1021ea: c3 ret
+
+001021eb <merge>:
+ 1021eb: 55 push %ebp
+ 1021ec: 89 e5 mov %esp,%ebp
+ 1021ee: 83 ec 28 sub $0x28,%esp
+ 1021f1: 8b 45 08 mov 0x8(%ebp),%eax
+ 1021f4: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 1021f7: a1 04 50 10 00 mov 0x105004,%eax
+ 1021fc: 89 45 f4 mov %eax,-0xc(%ebp)
+ 1021ff: 31 c0 xor %eax,%eax
+ 102201: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 102204: 83 c0 14 add $0x14,%eax
+ 102207: 89 45 ec mov %eax,-0x14(%ebp)
+ 10220a: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10220d: 83 c0 28 add $0x28,%eax
+ 102210: 89 45 f0 mov %eax,-0x10(%ebp)
+ 102213: 83 ec 08 sub $0x8,%esp
+ 102216: ff 75 f0 push -0x10(%ebp)
+ 102219: ff 75 ec push -0x14(%ebp)
+ 10221c: e8 47 f9 ff ff call 101b68 <stringcat>
+ 102221: 83 c4 10 add $0x10,%esp
+ 102224: 83 ec 08 sub $0x8,%esp
+ 102227: ff 75 ec push -0x14(%ebp)
+ 10222a: 68 5e 40 10 00 push $0x10405e
+ 10222f: e8 d4 f6 ff ff call 101908 <printf>
+ 102234: 83 c4 10 add $0x10,%esp
+ 102237: 90 nop
+ 102238: 8b 45 f4 mov -0xc(%ebp),%eax
+ 10223b: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 102241: 74 05 je 102248 <merge+0x5d>
+ 102243: e8 3f 16 00 00 call 103887 <__stack_chk_fail>
+ 102248: c9 leave
+ 102249: c3 ret
+
+0010224a <ls>:
+ 10224a: 55 push %ebp
+ 10224b: 89 e5 mov %esp,%ebp
+ 10224d: 83 ec 18 sub $0x18,%esp
+ 102250: a1 04 50 10 00 mov 0x105004,%eax
+ 102255: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102258: 31 c0 xor %eax,%eax
+ 10225a: 83 ec 0c sub $0xc,%esp
+ 10225d: 68 64 40 10 00 push $0x104064
+ 102262: e8 a1 f6 ff ff call 101908 <printf>
+ 102267: 83 c4 10 add $0x10,%esp
+ 10226a: 90 nop
+ 10226b: 8b 45 f4 mov -0xc(%ebp),%eax
+ 10226e: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 102274: 74 05 je 10227b <ls+0x31>
+ 102276: e8 0c 16 00 00 call 103887 <__stack_chk_fail>
+ 10227b: c9 leave
+ 10227c: c3 ret
+
+0010227d <number>:
+ 10227d: 55 push %ebp
+ 10227e: 89 e5 mov %esp,%ebp
+ 102280: 83 ec 28 sub $0x28,%esp
+ 102283: 8b 45 08 mov 0x8(%ebp),%eax
+ 102286: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 102289: 8b 45 0c mov 0xc(%ebp),%eax
+ 10228c: 89 45 e0 mov %eax,-0x20(%ebp)
+ 10228f: a1 04 50 10 00 mov 0x105004,%eax
+ 102294: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102297: 31 c0 xor %eax,%eax
+ 102299: 83 7d e4 01 cmpl $0x1,-0x1c(%ebp)
+ 10229d: 75 12 jne 1022b1 <number+0x34>
+ 10229f: 83 ec 0c sub $0xc,%esp
+ 1022a2: 68 84 40 10 00 push $0x104084
+ 1022a7: e8 5c f6 ff ff call 101908 <printf>
+ 1022ac: 83 c4 10 add $0x10,%esp
+ 1022af: eb 4c jmp 1022fd <number+0x80>
+ 1022b1: 8b 45 e0 mov -0x20(%ebp),%eax
+ 1022b4: 83 c0 14 add $0x14,%eax
+ 1022b7: 83 ec 0c sub $0xc,%esp
+ 1022ba: 50 push %eax
+ 1022bb: e8 0c fa ff ff call 101ccc <stoi>
+ 1022c0: 83 c4 10 add $0x10,%esp
+ 1022c3: 83 ec 08 sub $0x8,%esp
+ 1022c6: 50 push %eax
+ 1022c7: 68 9b 40 10 00 push $0x10409b
+ 1022cc: e8 37 f6 ff ff call 101908 <printf>
+ 1022d1: 83 c4 10 add $0x10,%esp
+ 1022d4: 8b 45 e0 mov -0x20(%ebp),%eax
+ 1022d7: 83 c0 14 add $0x14,%eax
+ 1022da: 83 ec 0c sub $0xc,%esp
+ 1022dd: 50 push %eax
+ 1022de: e8 37 fb ff ff call 101e1a <stof>
+ 1022e3: 83 c4 10 add $0x10,%esp
+ 1022e6: 83 ec 04 sub $0x4,%esp
+ 1022e9: 8d 64 24 f8 lea -0x8(%esp),%esp
+ 1022ed: dd 1c 24 fstpl (%esp)
+ 1022f0: 68 b9 40 10 00 push $0x1040b9
+ 1022f5: e8 0e f6 ff ff call 101908 <printf>
+ 1022fa: 83 c4 10 add $0x10,%esp
+ 1022fd: 90 nop
+ 1022fe: 8b 45 f4 mov -0xc(%ebp),%eax
+ 102301: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 102307: 74 05 je 10230e <number+0x91>
+ 102309: e8 79 15 00 00 call 103887 <__stack_chk_fail>
+ 10230e: c9 leave
+ 10230f: c3 ret
+
+00102310 <uptime>:
+ 102310: 55 push %ebp
+ 102311: 89 e5 mov %esp,%ebp
+ 102313: 83 ec 18 sub $0x18,%esp
+ 102316: a1 04 50 10 00 mov 0x105004,%eax
+ 10231b: 89 45 f4 mov %eax,-0xc(%ebp)
+ 10231e: 31 c0 xor %eax,%eax
+ 102320: a1 f4 aa 10 00 mov 0x10aaf4,%eax
+ 102325: 83 ec 08 sub $0x8,%esp
+ 102328: 50 push %eax
+ 102329: 68 d6 40 10 00 push $0x1040d6
+ 10232e: e8 d5 f5 ff ff call 101908 <printf>
+ 102333: 83 c4 10 add $0x10,%esp
+ 102336: 90 nop
+ 102337: 8b 45 f4 mov -0xc(%ebp),%eax
+ 10233a: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 102340: 74 05 je 102347 <uptime+0x37>
+ 102342: e8 40 15 00 00 call 103887 <__stack_chk_fail>
+ 102347: c9 leave
+ 102348: c3 ret
+
+00102349 <prompt>:
+ 102349: 55 push %ebp
+ 10234a: 89 e5 mov %esp,%ebp
+ 10234c: 83 ec 18 sub $0x18,%esp
+ 10234f: a1 04 50 10 00 mov 0x105004,%eax
+ 102354: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102357: 31 c0 xor %eax,%eax
+ 102359: 83 ec 08 sub $0x8,%esp
+ 10235c: 6a 00 push $0x0
+ 10235e: 6a 04 push $0x4
+ 102360: e8 a3 05 00 00 call 102908 <set_color>
+ 102365: 83 c4 10 add $0x10,%esp
+ 102368: 83 ec 0c sub $0xc,%esp
+ 10236b: 68 f4 40 10 00 push $0x1040f4
+ 102370: e8 93 f5 ff ff call 101908 <printf>
+ 102375: 83 c4 10 add $0x10,%esp
+ 102378: 83 ec 08 sub $0x8,%esp
+ 10237b: 6a 00 push $0x0
+ 10237d: 6a 0e push $0xe
+ 10237f: e8 84 05 00 00 call 102908 <set_color>
+ 102384: 83 c4 10 add $0x10,%esp
+ 102387: 83 ec 0c sub $0xc,%esp
+ 10238a: 68 f6 40 10 00 push $0x1040f6
+ 10238f: e8 74 f5 ff ff call 101908 <printf>
+ 102394: 83 c4 10 add $0x10,%esp
+ 102397: 83 ec 08 sub $0x8,%esp
+ 10239a: 6a 00 push $0x0
+ 10239c: 6a 02 push $0x2
+ 10239e: e8 65 05 00 00 call 102908 <set_color>
+ 1023a3: 83 c4 10 add $0x10,%esp
+ 1023a6: 83 ec 0c sub $0xc,%esp
+ 1023a9: 68 fb 40 10 00 push $0x1040fb
+ 1023ae: e8 55 f5 ff ff call 101908 <printf>
+ 1023b3: 83 c4 10 add $0x10,%esp
+ 1023b6: 83 ec 08 sub $0x8,%esp
+ 1023b9: 6a 00 push $0x0
+ 1023bb: 6a 09 push $0x9
+ 1023bd: e8 46 05 00 00 call 102908 <set_color>
+ 1023c2: 83 c4 10 add $0x10,%esp
+ 1023c5: 83 ec 0c sub $0xc,%esp
+ 1023c8: 68 fd 40 10 00 push $0x1040fd
+ 1023cd: e8 36 f5 ff ff call 101908 <printf>
+ 1023d2: 83 c4 10 add $0x10,%esp
+ 1023d5: 83 ec 08 sub $0x8,%esp
+ 1023d8: 6a 00 push $0x0
+ 1023da: 6a 04 push $0x4
+ 1023dc: e8 27 05 00 00 call 102908 <set_color>
+ 1023e1: 83 c4 10 add $0x10,%esp
+ 1023e4: 83 ec 0c sub $0xc,%esp
+ 1023e7: 68 02 41 10 00 push $0x104102
+ 1023ec: e8 17 f5 ff ff call 101908 <printf>
+ 1023f1: 83 c4 10 add $0x10,%esp
+ 1023f4: 83 ec 08 sub $0x8,%esp
+ 1023f7: 6a 00 push $0x0
+ 1023f9: 6a 07 push $0x7
+ 1023fb: e8 08 05 00 00 call 102908 <set_color>
+ 102400: 83 c4 10 add $0x10,%esp
+ 102403: 83 ec 0c sub $0xc,%esp
+ 102406: 68 04 41 10 00 push $0x104104
+ 10240b: e8 f8 f4 ff ff call 101908 <printf>
+ 102410: 83 c4 10 add $0x10,%esp
+ 102413: 90 nop
+ 102414: 8b 45 f4 mov -0xc(%ebp),%eax
+ 102417: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 10241d: 74 05 je 102424 <prompt+0xdb>
+ 10241f: e8 63 14 00 00 call 103887 <__stack_chk_fail>
+ 102424: c9 leave
+ 102425: c3 ret
+
+00102426 <neofetch>:
+ 102426: 55 push %ebp
+ 102427: 89 e5 mov %esp,%ebp
+ 102429: 83 ec 18 sub $0x18,%esp
+ 10242c: a1 04 50 10 00 mov 0x105004,%eax
+ 102431: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102434: 31 c0 xor %eax,%eax
+ 102436: 83 ec 08 sub $0x8,%esp
+ 102439: 6a 00 push $0x0
+ 10243b: 6a 0f push $0xf
+ 10243d: e8 c6 04 00 00 call 102908 <set_color>
+ 102442: 83 c4 10 add $0x10,%esp
+ 102445: 83 ec 0c sub $0xc,%esp
+ 102448: 68 07 41 10 00 push $0x104107
+ 10244d: e8 b6 f4 ff ff call 101908 <printf>
+ 102452: 83 c4 10 add $0x10,%esp
+ 102455: 83 ec 0c sub $0xc,%esp
+ 102458: 68 1f 41 10 00 push $0x10411f
+ 10245d: e8 a6 f4 ff ff call 101908 <printf>
+ 102462: 83 c4 10 add $0x10,%esp
+ 102465: 83 ec 0c sub $0xc,%esp
+ 102468: 68 36 41 10 00 push $0x104136
+ 10246d: e8 96 f4 ff ff call 101908 <printf>
+ 102472: 83 c4 10 add $0x10,%esp
+ 102475: 83 ec 0c sub $0xc,%esp
+ 102478: 68 4e 41 10 00 push $0x10414e
+ 10247d: e8 86 f4 ff ff call 101908 <printf>
+ 102482: 83 c4 10 add $0x10,%esp
+ 102485: 83 ec 0c sub $0xc,%esp
+ 102488: 68 65 41 10 00 push $0x104165
+ 10248d: e8 76 f4 ff ff call 101908 <printf>
+ 102492: 83 c4 10 add $0x10,%esp
+ 102495: 83 ec 0c sub $0xc,%esp
+ 102498: 68 7d 41 10 00 push $0x10417d
+ 10249d: e8 66 f4 ff ff call 101908 <printf>
+ 1024a2: 83 c4 10 add $0x10,%esp
+ 1024a5: 83 ec 0c sub $0xc,%esp
+ 1024a8: 68 65 41 10 00 push $0x104165
+ 1024ad: e8 56 f4 ff ff call 101908 <printf>
+ 1024b2: 83 c4 10 add $0x10,%esp
+ 1024b5: 83 ec 0c sub $0xc,%esp
+ 1024b8: 68 94 41 10 00 push $0x104194
+ 1024bd: e8 46 f4 ff ff call 101908 <printf>
+ 1024c2: 83 c4 10 add $0x10,%esp
+ 1024c5: 83 ec 0c sub $0xc,%esp
+ 1024c8: 68 65 41 10 00 push $0x104165
+ 1024cd: e8 36 f4 ff ff call 101908 <printf>
+ 1024d2: 83 c4 10 add $0x10,%esp
+ 1024d5: 83 ec 0c sub $0xc,%esp
+ 1024d8: 68 ab 41 10 00 push $0x1041ab
+ 1024dd: e8 26 f4 ff ff call 101908 <printf>
+ 1024e2: 83 c4 10 add $0x10,%esp
+ 1024e5: 83 ec 0c sub $0xc,%esp
+ 1024e8: 68 c2 41 10 00 push $0x1041c2
+ 1024ed: e8 16 f4 ff ff call 101908 <printf>
+ 1024f2: 83 c4 10 add $0x10,%esp
+ 1024f5: 83 ec 0c sub $0xc,%esp
+ 1024f8: 68 da 41 10 00 push $0x1041da
+ 1024fd: e8 06 f4 ff ff call 101908 <printf>
+ 102502: 83 c4 10 add $0x10,%esp
+ 102505: 83 ec 0c sub $0xc,%esp
+ 102508: 68 f1 41 10 00 push $0x1041f1
+ 10250d: e8 f6 f3 ff ff call 101908 <printf>
+ 102512: 83 c4 10 add $0x10,%esp
+ 102515: 83 ec 0c sub $0xc,%esp
+ 102518: 68 09 42 10 00 push $0x104209
+ 10251d: e8 e6 f3 ff ff call 101908 <printf>
+ 102522: 83 c4 10 add $0x10,%esp
+ 102525: 83 ec 0c sub $0xc,%esp
+ 102528: 68 20 42 10 00 push $0x104220
+ 10252d: e8 d6 f3 ff ff call 101908 <printf>
+ 102532: 83 c4 10 add $0x10,%esp
+ 102535: 83 ec 0c sub $0xc,%esp
+ 102538: 68 94 41 10 00 push $0x104194
+ 10253d: e8 c6 f3 ff ff call 101908 <printf>
+ 102542: 83 c4 10 add $0x10,%esp
+ 102545: 83 ec 0c sub $0xc,%esp
+ 102548: 68 38 42 10 00 push $0x104238
+ 10254d: e8 b6 f3 ff ff call 101908 <printf>
+ 102552: 83 c4 10 add $0x10,%esp
+ 102555: 83 ec 0c sub $0xc,%esp
+ 102558: 68 94 41 10 00 push $0x104194
+ 10255d: e8 a6 f3 ff ff call 101908 <printf>
+ 102562: 83 c4 10 add $0x10,%esp
+ 102565: 83 ec 0c sub $0xc,%esp
+ 102568: 68 38 42 10 00 push $0x104238
+ 10256d: e8 96 f3 ff ff call 101908 <printf>
+ 102572: 83 c4 10 add $0x10,%esp
+ 102575: 83 ec 0c sub $0xc,%esp
+ 102578: 68 94 41 10 00 push $0x104194
+ 10257d: e8 86 f3 ff ff call 101908 <printf>
+ 102582: 83 c4 10 add $0x10,%esp
+ 102585: 83 ec 0c sub $0xc,%esp
+ 102588: 68 38 42 10 00 push $0x104238
+ 10258d: e8 76 f3 ff ff call 101908 <printf>
+ 102592: 83 c4 10 add $0x10,%esp
+ 102595: 83 ec 0c sub $0xc,%esp
+ 102598: 68 94 41 10 00 push $0x104194
+ 10259d: e8 66 f3 ff ff call 101908 <printf>
+ 1025a2: 83 c4 10 add $0x10,%esp
+ 1025a5: 83 ec 0c sub $0xc,%esp
+ 1025a8: 68 50 42 10 00 push $0x104250
+ 1025ad: e8 56 f3 ff ff call 101908 <printf>
+ 1025b2: 83 c4 10 add $0x10,%esp
+ 1025b5: 83 ec 0c sub $0xc,%esp
+ 1025b8: 68 94 41 10 00 push $0x104194
+ 1025bd: e8 46 f3 ff ff call 101908 <printf>
+ 1025c2: 83 c4 10 add $0x10,%esp
+ 1025c5: 83 ec 0c sub $0xc,%esp
+ 1025c8: 68 68 42 10 00 push $0x104268
+ 1025cd: e8 36 f3 ff ff call 101908 <printf>
+ 1025d2: 83 c4 10 add $0x10,%esp
+ 1025d5: 83 ec 0c sub $0xc,%esp
+ 1025d8: 68 94 41 10 00 push $0x104194
+ 1025dd: e8 26 f3 ff ff call 101908 <printf>
+ 1025e2: 83 c4 10 add $0x10,%esp
+ 1025e5: 83 ec 0c sub $0xc,%esp
+ 1025e8: 68 80 42 10 00 push $0x104280
+ 1025ed: e8 16 f3 ff ff call 101908 <printf>
+ 1025f2: 83 c4 10 add $0x10,%esp
+ 1025f5: 83 ec 0c sub $0xc,%esp
+ 1025f8: 68 94 41 10 00 push $0x104194
+ 1025fd: e8 06 f3 ff ff call 101908 <printf>
+ 102602: 83 c4 10 add $0x10,%esp
+ 102605: 83 ec 0c sub $0xc,%esp
+ 102608: 68 98 42 10 00 push $0x104298
+ 10260d: e8 f6 f2 ff ff call 101908 <printf>
+ 102612: 83 c4 10 add $0x10,%esp
+ 102615: 83 ec 0c sub $0xc,%esp
+ 102618: 68 94 41 10 00 push $0x104194
+ 10261d: e8 e6 f2 ff ff call 101908 <printf>
+ 102622: 83 c4 10 add $0x10,%esp
+ 102625: 83 ec 0c sub $0xc,%esp
+ 102628: 68 98 42 10 00 push $0x104298
+ 10262d: e8 d6 f2 ff ff call 101908 <printf>
+ 102632: 83 c4 10 add $0x10,%esp
+ 102635: 83 ec 0c sub $0xc,%esp
+ 102638: 68 94 41 10 00 push $0x104194
+ 10263d: e8 c6 f2 ff ff call 101908 <printf>
+ 102642: 83 c4 10 add $0x10,%esp
+ 102645: 83 ec 0c sub $0xc,%esp
+ 102648: 68 98 42 10 00 push $0x104298
+ 10264d: e8 b6 f2 ff ff call 101908 <printf>
+ 102652: 83 c4 10 add $0x10,%esp
+ 102655: 83 ec 0c sub $0xc,%esp
+ 102658: 68 b0 42 10 00 push $0x1042b0
+ 10265d: e8 a6 f2 ff ff call 101908 <printf>
+ 102662: 83 c4 10 add $0x10,%esp
+ 102665: 83 ec 0c sub $0xc,%esp
+ 102668: 68 c7 42 10 00 push $0x1042c7
+ 10266d: e8 96 f2 ff ff call 101908 <printf>
+ 102672: 83 c4 10 add $0x10,%esp
+ 102675: 83 ec 0c sub $0xc,%esp
+ 102678: 68 df 42 10 00 push $0x1042df
+ 10267d: e8 86 f2 ff ff call 101908 <printf>
+ 102682: 83 c4 10 add $0x10,%esp
+ 102685: 83 ec 0c sub $0xc,%esp
+ 102688: 68 f6 42 10 00 push $0x1042f6
+ 10268d: e8 76 f2 ff ff call 101908 <printf>
+ 102692: 83 c4 10 add $0x10,%esp
+ 102695: 83 ec 0c sub $0xc,%esp
+ 102698: 68 94 41 10 00 push $0x104194
+ 10269d: e8 66 f2 ff ff call 101908 <printf>
+ 1026a2: 83 c4 10 add $0x10,%esp
+ 1026a5: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp)
+ 1026ac: eb 27 jmp 1026d5 <neofetch+0x2af>
+ 1026ae: 83 ec 08 sub $0x8,%esp
+ 1026b1: ff 75 f0 push -0x10(%ebp)
+ 1026b4: 6a 00 push $0x0
+ 1026b6: e8 4d 02 00 00 call 102908 <set_color>
+ 1026bb: 83 c4 10 add $0x10,%esp
+ 1026be: 83 ec 08 sub $0x8,%esp
+ 1026c1: ff 75 f0 push -0x10(%ebp)
+ 1026c4: 68 0e 43 10 00 push $0x10430e
+ 1026c9: e8 3a f2 ff ff call 101908 <printf>
+ 1026ce: 83 c4 10 add $0x10,%esp
+ 1026d1: 83 45 f0 01 addl $0x1,-0x10(%ebp)
+ 1026d5: 83 7d f0 0f cmpl $0xf,-0x10(%ebp)
+ 1026d9: 76 d3 jbe 1026ae <neofetch+0x288>
+ 1026db: 83 ec 0c sub $0xc,%esp
+ 1026de: 68 5c 40 10 00 push $0x10405c
+ 1026e3: e8 20 f2 ff ff call 101908 <printf>
+ 1026e8: 83 c4 10 add $0x10,%esp
+ 1026eb: 83 ec 08 sub $0x8,%esp
+ 1026ee: 6a 00 push $0x0
+ 1026f0: 6a 07 push $0x7
+ 1026f2: e8 11 02 00 00 call 102908 <set_color>
+ 1026f7: 83 c4 10 add $0x10,%esp
+ 1026fa: e8 11 fc ff ff call 102310 <uptime>
+ 1026ff: 90 nop
+ 102700: 8b 45 f4 mov -0xc(%ebp),%eax
+ 102703: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 102709: 74 05 je 102710 <neofetch+0x2ea>
+ 10270b: e8 77 11 00 00 call 103887 <__stack_chk_fail>
+ 102710: c9 leave
+ 102711: c3 ret
+
+00102712 <help>:
+ 102712: 55 push %ebp
+ 102713: 89 e5 mov %esp,%ebp
+ 102715: 83 ec 18 sub $0x18,%esp
+ 102718: a1 04 50 10 00 mov 0x105004,%eax
+ 10271d: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102720: 31 c0 xor %eax,%eax
+ 102722: 83 ec 0c sub $0xc,%esp
+ 102725: 68 14 43 10 00 push $0x104314
+ 10272a: e8 d9 f1 ff ff call 101908 <printf>
+ 10272f: 83 c4 10 add $0x10,%esp
+ 102732: 83 ec 0c sub $0xc,%esp
+ 102735: 68 34 43 10 00 push $0x104334
+ 10273a: e8 c9 f1 ff ff call 101908 <printf>
+ 10273f: 83 c4 10 add $0x10,%esp
+ 102742: 90 nop
+ 102743: 8b 45 f4 mov -0xc(%ebp),%eax
+ 102746: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 10274c: 74 05 je 102753 <help+0x41>
+ 10274e: e8 34 11 00 00 call 103887 <__stack_chk_fail>
+ 102753: c9 leave
+ 102754: c3 ret
+
+00102755 <tty>:
+ 102755: 55 push %ebp
+ 102756: 89 e5 mov %esp,%ebp
+ 102758: 81 ec b8 01 00 00 sub $0x1b8,%esp
+ 10275e: 8b 45 08 mov 0x8(%ebp),%eax
+ 102761: 89 85 54 fe ff ff mov %eax,-0x1ac(%ebp)
+ 102767: a1 04 50 10 00 mov 0x105004,%eax
+ 10276c: 89 45 f4 mov %eax,-0xc(%ebp)
+ 10276f: 31 c0 xor %eax,%eax
+ 102771: 83 ec 08 sub $0x8,%esp
+ 102774: ff b5 54 fe ff ff push -0x1ac(%ebp)
+ 10277a: 8d 85 64 fe ff ff lea -0x19c(%ebp),%eax
+ 102780: 50 push %eax
+ 102781: e8 ab f8 ff ff call 102031 <pieces>
+ 102786: 83 c4 10 add $0x10,%esp
+ 102789: 89 85 60 fe ff ff mov %eax,-0x1a0(%ebp)
+ 10278f: 83 ec 08 sub $0x8,%esp
+ 102792: 68 65 43 10 00 push $0x104365
+ 102797: 8d 85 64 fe ff ff lea -0x19c(%ebp),%eax
+ 10279d: 50 push %eax
+ 10279e: e8 25 f3 ff ff call 101ac8 <stringcmp>
+ 1027a3: 83 c4 10 add $0x10,%esp
+ 1027a6: 84 c0 test %al,%al
+ 1027a8: 74 0a je 1027b4 <tty+0x5f>
+ 1027aa: e8 26 06 00 00 call 102dd5 <clear>
+ 1027af: e9 41 01 00 00 jmp 1028f5 <tty+0x1a0>
+ 1027b4: 83 ec 08 sub $0x8,%esp
+ 1027b7: 68 6b 43 10 00 push $0x10436b
+ 1027bc: 8d 85 64 fe ff ff lea -0x19c(%ebp),%eax
+ 1027c2: 50 push %eax
+ 1027c3: e8 00 f3 ff ff call 101ac8 <stringcmp>
+ 1027c8: 83 c4 10 add $0x10,%esp
+ 1027cb: 84 c0 test %al,%al
+ 1027cd: 74 1d je 1027ec <tty+0x97>
+ 1027cf: 83 ec 08 sub $0x8,%esp
+ 1027d2: 8d 85 64 fe ff ff lea -0x19c(%ebp),%eax
+ 1027d8: 50 push %eax
+ 1027d9: ff b5 60 fe ff ff push -0x1a0(%ebp)
+ 1027df: e8 8e f9 ff ff call 102172 <echo>
+ 1027e4: 83 c4 10 add $0x10,%esp
+ 1027e7: e9 09 01 00 00 jmp 1028f5 <tty+0x1a0>
+ 1027ec: 83 ec 08 sub $0x8,%esp
+ 1027ef: 68 70 43 10 00 push $0x104370
+ 1027f4: 8d 85 64 fe ff ff lea -0x19c(%ebp),%eax
+ 1027fa: 50 push %eax
+ 1027fb: e8 c8 f2 ff ff call 101ac8 <stringcmp>
+ 102800: 83 c4 10 add $0x10,%esp
+ 102803: 84 c0 test %al,%al
+ 102805: 74 17 je 10281e <tty+0xc9>
+ 102807: 83 ec 0c sub $0xc,%esp
+ 10280a: 8d 85 64 fe ff ff lea -0x19c(%ebp),%eax
+ 102810: 50 push %eax
+ 102811: e8 d5 f9 ff ff call 1021eb <merge>
+ 102816: 83 c4 10 add $0x10,%esp
+ 102819: e9 d7 00 00 00 jmp 1028f5 <tty+0x1a0>
+ 10281e: 83 ec 08 sub $0x8,%esp
+ 102821: 68 76 43 10 00 push $0x104376
+ 102826: 8d 85 64 fe ff ff lea -0x19c(%ebp),%eax
+ 10282c: 50 push %eax
+ 10282d: e8 96 f2 ff ff call 101ac8 <stringcmp>
+ 102832: 83 c4 10 add $0x10,%esp
+ 102835: 84 c0 test %al,%al
+ 102837: 74 0a je 102843 <tty+0xee>
+ 102839: e8 0c fa ff ff call 10224a <ls>
+ 10283e: e9 b2 00 00 00 jmp 1028f5 <tty+0x1a0>
+ 102843: 83 ec 08 sub $0x8,%esp
+ 102846: 68 79 43 10 00 push $0x104379
+ 10284b: 8d 85 64 fe ff ff lea -0x19c(%ebp),%eax
+ 102851: 50 push %eax
+ 102852: e8 71 f2 ff ff call 101ac8 <stringcmp>
+ 102857: 83 c4 10 add $0x10,%esp
+ 10285a: 84 c0 test %al,%al
+ 10285c: 74 1a je 102878 <tty+0x123>
+ 10285e: 83 ec 08 sub $0x8,%esp
+ 102861: 8d 85 64 fe ff ff lea -0x19c(%ebp),%eax
+ 102867: 50 push %eax
+ 102868: ff b5 60 fe ff ff push -0x1a0(%ebp)
+ 10286e: e8 0a fa ff ff call 10227d <number>
+ 102873: 83 c4 10 add $0x10,%esp
+ 102876: eb 7d jmp 1028f5 <tty+0x1a0>
+ 102878: 83 ec 08 sub $0x8,%esp
+ 10287b: 68 80 43 10 00 push $0x104380
+ 102880: 8d 85 64 fe ff ff lea -0x19c(%ebp),%eax
+ 102886: 50 push %eax
+ 102887: e8 3c f2 ff ff call 101ac8 <stringcmp>
+ 10288c: 83 c4 10 add $0x10,%esp
+ 10288f: 84 c0 test %al,%al
+ 102891: 74 07 je 10289a <tty+0x145>
+ 102893: e8 78 fa ff ff call 102310 <uptime>
+ 102898: eb 5b jmp 1028f5 <tty+0x1a0>
+ 10289a: 83 ec 08 sub $0x8,%esp
+ 10289d: 68 87 43 10 00 push $0x104387
+ 1028a2: 8d 85 64 fe ff ff lea -0x19c(%ebp),%eax
+ 1028a8: 50 push %eax
+ 1028a9: e8 1a f2 ff ff call 101ac8 <stringcmp>
+ 1028ae: 83 c4 10 add $0x10,%esp
+ 1028b1: 84 c0 test %al,%al
+ 1028b3: 74 07 je 1028bc <tty+0x167>
+ 1028b5: e8 6c fb ff ff call 102426 <neofetch>
+ 1028ba: eb 39 jmp 1028f5 <tty+0x1a0>
+ 1028bc: 83 ec 08 sub $0x8,%esp
+ 1028bf: 68 90 43 10 00 push $0x104390
+ 1028c4: 8d 85 64 fe ff ff lea -0x19c(%ebp),%eax
+ 1028ca: 50 push %eax
+ 1028cb: e8 f8 f1 ff ff call 101ac8 <stringcmp>
+ 1028d0: 83 c4 10 add $0x10,%esp
+ 1028d3: 84 c0 test %al,%al
+ 1028d5: 74 07 je 1028de <tty+0x189>
+ 1028d7: e8 36 fe ff ff call 102712 <help>
+ 1028dc: eb 17 jmp 1028f5 <tty+0x1a0>
+ 1028de: 83 ec 08 sub $0x8,%esp
+ 1028e1: 8d 85 64 fe ff ff lea -0x19c(%ebp),%eax
+ 1028e7: 50 push %eax
+ 1028e8: 68 95 43 10 00 push $0x104395
+ 1028ed: e8 16 f0 ff ff call 101908 <printf>
+ 1028f2: 83 c4 10 add $0x10,%esp
+ 1028f5: 90 nop
+ 1028f6: 8b 45 f4 mov -0xc(%ebp),%eax
+ 1028f9: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 1028ff: 74 05 je 102906 <tty+0x1b1>
+ 102901: e8 81 0f 00 00 call 103887 <__stack_chk_fail>
+ 102906: c9 leave
+ 102907: c3 ret
+
+00102908 <set_color>:
+ 102908: 55 push %ebp
+ 102909: 89 e5 mov %esp,%ebp
+ 10290b: 83 ec 28 sub $0x28,%esp
+ 10290e: 8b 45 08 mov 0x8(%ebp),%eax
+ 102911: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 102914: 8b 45 0c mov 0xc(%ebp),%eax
+ 102917: 89 45 e0 mov %eax,-0x20(%ebp)
+ 10291a: a1 04 50 10 00 mov 0x105004,%eax
+ 10291f: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102922: 31 c0 xor %eax,%eax
+ 102924: 8b 45 e0 mov -0x20(%ebp),%eax
+ 102927: c1 e0 04 shl $0x4,%eax
+ 10292a: 89 c2 mov %eax,%edx
+ 10292c: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 10292f: 09 d0 or %edx,%eax
+ 102931: a2 e8 aa 10 00 mov %al,0x10aae8
+ 102936: 90 nop
+ 102937: 8b 45 f4 mov -0xc(%ebp),%eax
+ 10293a: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 102940: 74 05 je 102947 <set_color+0x3f>
+ 102942: e8 40 0f 00 00 call 103887 <__stack_chk_fail>
+ 102947: c9 leave
+ 102948: c3 ret
+
+00102949 <vga_entry>:
+ 102949: 55 push %ebp
+ 10294a: 89 e5 mov %esp,%ebp
+ 10294c: 83 ec 28 sub $0x28,%esp
+ 10294f: 8b 55 08 mov 0x8(%ebp),%edx
+ 102952: 8b 45 0c mov 0xc(%ebp),%eax
+ 102955: 88 55 e4 mov %dl,-0x1c(%ebp)
+ 102958: 88 45 e0 mov %al,-0x20(%ebp)
+ 10295b: a1 04 50 10 00 mov 0x105004,%eax
+ 102960: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102963: 31 c0 xor %eax,%eax
+ 102965: 0f b6 55 e4 movzbl -0x1c(%ebp),%edx
+ 102969: 0f b6 45 e0 movzbl -0x20(%ebp),%eax
+ 10296d: c1 e0 08 shl $0x8,%eax
+ 102970: 09 d0 or %edx,%eax
+ 102972: 8b 55 f4 mov -0xc(%ebp),%edx
+ 102975: 2b 15 04 50 10 00 sub 0x105004,%edx
+ 10297b: 74 05 je 102982 <vga_entry+0x39>
+ 10297d: e8 05 0f 00 00 call 103887 <__stack_chk_fail>
+ 102982: c9 leave
+ 102983: c3 ret
+
+00102984 <terminal_initialize>:
+ 102984: 55 push %ebp
+ 102985: 89 e5 mov %esp,%ebp
+ 102987: 53 push %ebx
+ 102988: 83 ec 14 sub $0x14,%esp
+ 10298b: a1 04 50 10 00 mov 0x105004,%eax
+ 102990: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102993: 31 c0 xor %eax,%eax
+ 102995: c7 05 e0 aa 10 00 00 movl $0x0,0x10aae0
+ 10299c: 00 00 00
+ 10299f: c7 05 e4 aa 10 00 00 movl $0x0,0x10aae4
+ 1029a6: 00 00 00
+ 1029a9: 83 ec 08 sub $0x8,%esp
+ 1029ac: 6a 00 push $0x0
+ 1029ae: 6a 07 push $0x7
+ 1029b0: e8 53 ff ff ff call 102908 <set_color>
+ 1029b5: 83 c4 10 add $0x10,%esp
+ 1029b8: c7 05 ec aa 10 00 00 movl $0xb8000,0x10aaec
+ 1029bf: 80 0b 00
+ 1029c2: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%ebp)
+ 1029c9: eb 57 jmp 102a22 <terminal_initialize+0x9e>
+ 1029cb: c7 45 ec 00 00 00 00 movl $0x0,-0x14(%ebp)
+ 1029d2: eb 40 jmp 102a14 <terminal_initialize+0x90>
+ 1029d4: b8 50 00 00 00 mov $0x50,%eax
+ 1029d9: 0f af 45 e8 imul -0x18(%ebp),%eax
+ 1029dd: 89 c2 mov %eax,%edx
+ 1029df: 8b 45 ec mov -0x14(%ebp),%eax
+ 1029e2: 01 d0 add %edx,%eax
+ 1029e4: 89 45 f0 mov %eax,-0x10(%ebp)
+ 1029e7: 0f b6 05 e8 aa 10 00 movzbl 0x10aae8,%eax
+ 1029ee: 0f b6 c0 movzbl %al,%eax
+ 1029f1: 8b 0d ec aa 10 00 mov 0x10aaec,%ecx
+ 1029f7: 8b 55 f0 mov -0x10(%ebp),%edx
+ 1029fa: 01 d2 add %edx,%edx
+ 1029fc: 8d 1c 11 lea (%ecx,%edx,1),%ebx
+ 1029ff: 83 ec 08 sub $0x8,%esp
+ 102a02: 50 push %eax
+ 102a03: 6a 20 push $0x20
+ 102a05: e8 3f ff ff ff call 102949 <vga_entry>
+ 102a0a: 83 c4 10 add $0x10,%esp
+ 102a0d: 66 89 03 mov %ax,(%ebx)
+ 102a10: 83 45 ec 01 addl $0x1,-0x14(%ebp)
+ 102a14: b8 50 00 00 00 mov $0x50,%eax
+ 102a19: 39 45 ec cmp %eax,-0x14(%ebp)
+ 102a1c: 72 b6 jb 1029d4 <terminal_initialize+0x50>
+ 102a1e: 83 45 e8 01 addl $0x1,-0x18(%ebp)
+ 102a22: b8 19 00 00 00 mov $0x19,%eax
+ 102a27: 39 45 e8 cmp %eax,-0x18(%ebp)
+ 102a2a: 72 9f jb 1029cb <terminal_initialize+0x47>
+ 102a2c: 90 nop
+ 102a2d: 8b 45 f4 mov -0xc(%ebp),%eax
+ 102a30: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 102a36: 74 05 je 102a3d <terminal_initialize+0xb9>
+ 102a38: e8 4a 0e 00 00 call 103887 <__stack_chk_fail>
+ 102a3d: 8b 5d fc mov -0x4(%ebp),%ebx
+ 102a40: c9 leave
+ 102a41: c3 ret
+
+00102a42 <terminal_putentryat>:
+ 102a42: 55 push %ebp
+ 102a43: 89 e5 mov %esp,%ebp
+ 102a45: 53 push %ebx
+ 102a46: 83 ec 24 sub $0x24,%esp
+ 102a49: 8b 55 08 mov 0x8(%ebp),%edx
+ 102a4c: 8b 45 0c mov 0xc(%ebp),%eax
+ 102a4f: 88 55 e4 mov %dl,-0x1c(%ebp)
+ 102a52: 88 45 e0 mov %al,-0x20(%ebp)
+ 102a55: 8b 45 10 mov 0x10(%ebp),%eax
+ 102a58: 89 45 dc mov %eax,-0x24(%ebp)
+ 102a5b: 8b 45 14 mov 0x14(%ebp),%eax
+ 102a5e: 89 45 d8 mov %eax,-0x28(%ebp)
+ 102a61: a1 04 50 10 00 mov 0x105004,%eax
+ 102a66: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102a69: 31 c0 xor %eax,%eax
+ 102a6b: b8 50 00 00 00 mov $0x50,%eax
+ 102a70: 0f af 45 d8 imul -0x28(%ebp),%eax
+ 102a74: 89 c2 mov %eax,%edx
+ 102a76: 8b 45 dc mov -0x24(%ebp),%eax
+ 102a79: 01 d0 add %edx,%eax
+ 102a7b: 89 45 f0 mov %eax,-0x10(%ebp)
+ 102a7e: 0f b6 55 e0 movzbl -0x20(%ebp),%edx
+ 102a82: 0f b6 45 e4 movzbl -0x1c(%ebp),%eax
+ 102a86: 0f b6 c0 movzbl %al,%eax
+ 102a89: 8b 1d ec aa 10 00 mov 0x10aaec,%ebx
+ 102a8f: 8b 4d f0 mov -0x10(%ebp),%ecx
+ 102a92: 01 c9 add %ecx,%ecx
+ 102a94: 01 cb add %ecx,%ebx
+ 102a96: 83 ec 08 sub $0x8,%esp
+ 102a99: 52 push %edx
+ 102a9a: 50 push %eax
+ 102a9b: e8 a9 fe ff ff call 102949 <vga_entry>
+ 102aa0: 83 c4 10 add $0x10,%esp
+ 102aa3: 66 89 03 mov %ax,(%ebx)
+ 102aa6: 90 nop
+ 102aa7: 8b 45 f4 mov -0xc(%ebp),%eax
+ 102aaa: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 102ab0: 74 05 je 102ab7 <terminal_putentryat+0x75>
+ 102ab2: e8 d0 0d 00 00 call 103887 <__stack_chk_fail>
+ 102ab7: 8b 5d fc mov -0x4(%ebp),%ebx
+ 102aba: c9 leave
+ 102abb: c3 ret
+
+00102abc <movescreen>:
+ 102abc: 55 push %ebp
+ 102abd: 89 e5 mov %esp,%ebp
+ 102abf: 53 push %ebx
+ 102ac0: 83 ec 14 sub $0x14,%esp
+ 102ac3: a1 04 50 10 00 mov 0x105004,%eax
+ 102ac8: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102acb: 31 c0 xor %eax,%eax
+ 102acd: a1 e0 aa 10 00 mov 0x10aae0,%eax
+ 102ad2: 83 e8 01 sub $0x1,%eax
+ 102ad5: a3 e0 aa 10 00 mov %eax,0x10aae0
+ 102ada: c7 45 ec 00 00 00 00 movl $0x0,-0x14(%ebp)
+ 102ae1: eb 58 jmp 102b3b <movescreen+0x7f>
+ 102ae3: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp)
+ 102aea: eb 41 jmp 102b2d <movescreen+0x71>
+ 102aec: 8b 15 ec aa 10 00 mov 0x10aaec,%edx
+ 102af2: 8b 45 ec mov -0x14(%ebp),%eax
+ 102af5: 83 c0 01 add $0x1,%eax
+ 102af8: b9 50 00 00 00 mov $0x50,%ecx
+ 102afd: 0f af c8 imul %eax,%ecx
+ 102b00: 8b 45 f0 mov -0x10(%ebp),%eax
+ 102b03: 01 c8 add %ecx,%eax
+ 102b05: 01 c0 add %eax,%eax
+ 102b07: 01 d0 add %edx,%eax
+ 102b09: 8b 0d ec aa 10 00 mov 0x10aaec,%ecx
+ 102b0f: ba 50 00 00 00 mov $0x50,%edx
+ 102b14: 89 d3 mov %edx,%ebx
+ 102b16: 0f af 5d ec imul -0x14(%ebp),%ebx
+ 102b1a: 8b 55 f0 mov -0x10(%ebp),%edx
+ 102b1d: 01 da add %ebx,%edx
+ 102b1f: 01 d2 add %edx,%edx
+ 102b21: 01 ca add %ecx,%edx
+ 102b23: 0f b7 00 movzwl (%eax),%eax
+ 102b26: 66 89 02 mov %ax,(%edx)
+ 102b29: 83 45 f0 01 addl $0x1,-0x10(%ebp)
+ 102b2d: b8 50 00 00 00 mov $0x50,%eax
+ 102b32: 39 45 f0 cmp %eax,-0x10(%ebp)
+ 102b35: 72 b5 jb 102aec <movescreen+0x30>
+ 102b37: 83 45 ec 01 addl $0x1,-0x14(%ebp)
+ 102b3b: b8 19 00 00 00 mov $0x19,%eax
+ 102b40: 39 45 ec cmp %eax,-0x14(%ebp)
+ 102b43: 72 9e jb 102ae3 <movescreen+0x27>
+ 102b45: 90 nop
+ 102b46: 8b 45 f4 mov -0xc(%ebp),%eax
+ 102b49: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 102b4f: 74 05 je 102b56 <movescreen+0x9a>
+ 102b51: e8 31 0d 00 00 call 103887 <__stack_chk_fail>
+ 102b56: 8b 5d fc mov -0x4(%ebp),%ebx
+ 102b59: c9 leave
+ 102b5a: c3 ret
+
+00102b5b <next_field>:
+ 102b5b: 55 push %ebp
+ 102b5c: 89 e5 mov %esp,%ebp
+ 102b5e: 83 ec 18 sub $0x18,%esp
+ 102b61: a1 04 50 10 00 mov 0x105004,%eax
+ 102b66: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102b69: 31 c0 xor %eax,%eax
+ 102b6b: a1 e4 aa 10 00 mov 0x10aae4,%eax
+ 102b70: 83 c0 01 add $0x1,%eax
+ 102b73: a3 e4 aa 10 00 mov %eax,0x10aae4
+ 102b78: a1 e4 aa 10 00 mov 0x10aae4,%eax
+ 102b7d: ba 50 00 00 00 mov $0x50,%edx
+ 102b82: 39 d0 cmp %edx,%eax
+ 102b84: 75 17 jne 102b9d <next_field+0x42>
+ 102b86: c7 05 e4 aa 10 00 00 movl $0x0,0x10aae4
+ 102b8d: 00 00 00
+ 102b90: a1 e0 aa 10 00 mov 0x10aae0,%eax
+ 102b95: 83 c0 01 add $0x1,%eax
+ 102b98: a3 e0 aa 10 00 mov %eax,0x10aae0
+ 102b9d: 90 nop
+ 102b9e: 8b 45 f4 mov -0xc(%ebp),%eax
+ 102ba1: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 102ba7: 74 05 je 102bae <next_field+0x53>
+ 102ba9: e8 d9 0c 00 00 call 103887 <__stack_chk_fail>
+ 102bae: c9 leave
+ 102baf: c3 ret
+
+00102bb0 <previous_field>:
+ 102bb0: 55 push %ebp
+ 102bb1: 89 e5 mov %esp,%ebp
+ 102bb3: 83 ec 18 sub $0x18,%esp
+ 102bb6: a1 04 50 10 00 mov 0x105004,%eax
+ 102bbb: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102bbe: 31 c0 xor %eax,%eax
+ 102bc0: a1 e4 aa 10 00 mov 0x10aae4,%eax
+ 102bc5: 85 c0 test %eax,%eax
+ 102bc7: 74 0f je 102bd8 <previous_field+0x28>
+ 102bc9: a1 e4 aa 10 00 mov 0x10aae4,%eax
+ 102bce: 83 e8 01 sub $0x1,%eax
+ 102bd1: a3 e4 aa 10 00 mov %eax,0x10aae4
+ 102bd6: eb 1a jmp 102bf2 <previous_field+0x42>
+ 102bd8: a1 e0 aa 10 00 mov 0x10aae0,%eax
+ 102bdd: 83 e8 01 sub $0x1,%eax
+ 102be0: a3 e0 aa 10 00 mov %eax,0x10aae0
+ 102be5: b8 50 00 00 00 mov $0x50,%eax
+ 102bea: 83 e8 01 sub $0x1,%eax
+ 102bed: a3 e4 aa 10 00 mov %eax,0x10aae4
+ 102bf2: 90 nop
+ 102bf3: 8b 45 f4 mov -0xc(%ebp),%eax
+ 102bf6: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 102bfc: 74 05 je 102c03 <previous_field+0x53>
+ 102bfe: e8 84 0c 00 00 call 103887 <__stack_chk_fail>
+ 102c03: c9 leave
+ 102c04: c3 ret
+
+00102c05 <terminal_putchar>:
+ 102c05: 55 push %ebp
+ 102c06: 89 e5 mov %esp,%ebp
+ 102c08: 53 push %ebx
+ 102c09: 83 ec 24 sub $0x24,%esp
+ 102c0c: 8b 45 08 mov 0x8(%ebp),%eax
+ 102c0f: 88 45 e4 mov %al,-0x1c(%ebp)
+ 102c12: a1 04 50 10 00 mov 0x105004,%eax
+ 102c17: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102c1a: 31 c0 xor %eax,%eax
+ 102c1c: 80 7d e4 0a cmpb $0xa,-0x1c(%ebp)
+ 102c20: 75 19 jne 102c3b <terminal_putchar+0x36>
+ 102c22: c7 05 e4 aa 10 00 00 movl $0x0,0x10aae4
+ 102c29: 00 00 00
+ 102c2c: a1 e0 aa 10 00 mov 0x10aae0,%eax
+ 102c31: 83 c0 01 add $0x1,%eax
+ 102c34: a3 e0 aa 10 00 mov %eax,0x10aae0
+ 102c39: eb 2b jmp 102c66 <terminal_putchar+0x61>
+ 102c3b: 8b 1d e0 aa 10 00 mov 0x10aae0,%ebx
+ 102c41: 8b 0d e4 aa 10 00 mov 0x10aae4,%ecx
+ 102c47: 0f b6 05 e8 aa 10 00 movzbl 0x10aae8,%eax
+ 102c4e: 0f b6 d0 movzbl %al,%edx
+ 102c51: 0f be 45 e4 movsbl -0x1c(%ebp),%eax
+ 102c55: 53 push %ebx
+ 102c56: 51 push %ecx
+ 102c57: 52 push %edx
+ 102c58: 50 push %eax
+ 102c59: e8 e4 fd ff ff call 102a42 <terminal_putentryat>
+ 102c5e: 83 c4 10 add $0x10,%esp
+ 102c61: e8 f5 fe ff ff call 102b5b <next_field>
+ 102c66: a1 e0 aa 10 00 mov 0x10aae0,%eax
+ 102c6b: ba 19 00 00 00 mov $0x19,%edx
+ 102c70: 39 d0 cmp %edx,%eax
+ 102c72: 75 05 jne 102c79 <terminal_putchar+0x74>
+ 102c74: e8 43 fe ff ff call 102abc <movescreen>
+ 102c79: 90 nop
+ 102c7a: 8b 45 f4 mov -0xc(%ebp),%eax
+ 102c7d: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 102c83: 74 05 je 102c8a <terminal_putchar+0x85>
+ 102c85: e8 fd 0b 00 00 call 103887 <__stack_chk_fail>
+ 102c8a: 8b 5d fc mov -0x4(%ebp),%ebx
+ 102c8d: c9 leave
+ 102c8e: c3 ret
+
+00102c8f <terminal_writestring>:
+ 102c8f: 55 push %ebp
+ 102c90: 89 e5 mov %esp,%ebp
+ 102c92: 83 ec 28 sub $0x28,%esp
+ 102c95: 8b 45 08 mov 0x8(%ebp),%eax
+ 102c98: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 102c9b: a1 04 50 10 00 mov 0x105004,%eax
+ 102ca0: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102ca3: 31 c0 xor %eax,%eax
+ 102ca5: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp)
+ 102cac: eb 1e jmp 102ccc <terminal_writestring+0x3d>
+ 102cae: 8b 55 f0 mov -0x10(%ebp),%edx
+ 102cb1: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 102cb4: 01 d0 add %edx,%eax
+ 102cb6: 0f b6 00 movzbl (%eax),%eax
+ 102cb9: 0f be c0 movsbl %al,%eax
+ 102cbc: 83 ec 0c sub $0xc,%esp
+ 102cbf: 50 push %eax
+ 102cc0: e8 40 ff ff ff call 102c05 <terminal_putchar>
+ 102cc5: 83 c4 10 add $0x10,%esp
+ 102cc8: 83 45 f0 01 addl $0x1,-0x10(%ebp)
+ 102ccc: 8b 55 f0 mov -0x10(%ebp),%edx
+ 102ccf: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 102cd2: 01 d0 add %edx,%eax
+ 102cd4: 0f b6 00 movzbl (%eax),%eax
+ 102cd7: 84 c0 test %al,%al
+ 102cd9: 75 d3 jne 102cae <terminal_writestring+0x1f>
+ 102cdb: 90 nop
+ 102cdc: 8b 45 f4 mov -0xc(%ebp),%eax
+ 102cdf: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 102ce5: 74 05 je 102cec <terminal_writestring+0x5d>
+ 102ce7: e8 9b 0b 00 00 call 103887 <__stack_chk_fail>
+ 102cec: c9 leave
+ 102ced: c3 ret
+
+00102cee <terminal_writeint>:
+ 102cee: 55 push %ebp
+ 102cef: 89 e5 mov %esp,%ebp
+ 102cf1: 81 ec 88 00 00 00 sub $0x88,%esp
+ 102cf7: 8b 45 08 mov 0x8(%ebp),%eax
+ 102cfa: 89 45 84 mov %eax,-0x7c(%ebp)
+ 102cfd: a1 04 50 10 00 mov 0x105004,%eax
+ 102d02: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102d05: 31 c0 xor %eax,%eax
+ 102d07: c7 45 88 00 00 00 00 movl $0x0,-0x78(%ebp)
+ 102d0e: eb 0f jmp 102d1f <terminal_writeint+0x31>
+ 102d10: 8d 55 90 lea -0x70(%ebp),%edx
+ 102d13: 8b 45 88 mov -0x78(%ebp),%eax
+ 102d16: 01 d0 add %edx,%eax
+ 102d18: c6 00 00 movb $0x0,(%eax)
+ 102d1b: 83 45 88 01 addl $0x1,-0x78(%ebp)
+ 102d1f: 83 7d 88 63 cmpl $0x63,-0x78(%ebp)
+ 102d23: 7e eb jle 102d10 <terminal_writeint+0x22>
+ 102d25: 8d 45 90 lea -0x70(%ebp),%eax
+ 102d28: 89 45 8c mov %eax,-0x74(%ebp)
+ 102d2b: 83 ec 08 sub $0x8,%esp
+ 102d2e: ff 75 8c push -0x74(%ebp)
+ 102d31: ff 75 84 push -0x7c(%ebp)
+ 102d34: e8 2c f0 ff ff call 101d65 <itos>
+ 102d39: 83 c4 10 add $0x10,%esp
+ 102d3c: 83 ec 0c sub $0xc,%esp
+ 102d3f: ff 75 8c push -0x74(%ebp)
+ 102d42: e8 48 ff ff ff call 102c8f <terminal_writestring>
+ 102d47: 83 c4 10 add $0x10,%esp
+ 102d4a: 90 nop
+ 102d4b: 8b 45 f4 mov -0xc(%ebp),%eax
+ 102d4e: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 102d54: 74 05 je 102d5b <terminal_writeint+0x6d>
+ 102d56: e8 2c 0b 00 00 call 103887 <__stack_chk_fail>
+ 102d5b: c9 leave
+ 102d5c: c3 ret
+
+00102d5d <terminal_writefloat>:
+ 102d5d: 55 push %ebp
+ 102d5e: 89 e5 mov %esp,%ebp
+ 102d60: 81 ec 88 00 00 00 sub $0x88,%esp
+ 102d66: 8b 45 08 mov 0x8(%ebp),%eax
+ 102d69: 89 45 80 mov %eax,-0x80(%ebp)
+ 102d6c: 8b 45 0c mov 0xc(%ebp),%eax
+ 102d6f: 89 45 84 mov %eax,-0x7c(%ebp)
+ 102d72: a1 04 50 10 00 mov 0x105004,%eax
+ 102d77: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102d7a: 31 c0 xor %eax,%eax
+ 102d7c: c7 45 88 00 00 00 00 movl $0x0,-0x78(%ebp)
+ 102d83: eb 0f jmp 102d94 <terminal_writefloat+0x37>
+ 102d85: 8d 55 90 lea -0x70(%ebp),%edx
+ 102d88: 8b 45 88 mov -0x78(%ebp),%eax
+ 102d8b: 01 d0 add %edx,%eax
+ 102d8d: c6 00 00 movb $0x0,(%eax)
+ 102d90: 83 45 88 01 addl $0x1,-0x78(%ebp)
+ 102d94: 83 7d 88 63 cmpl $0x63,-0x78(%ebp)
+ 102d98: 7e eb jle 102d85 <terminal_writefloat+0x28>
+ 102d9a: 8d 45 90 lea -0x70(%ebp),%eax
+ 102d9d: 89 45 8c mov %eax,-0x74(%ebp)
+ 102da0: 83 ec 04 sub $0x4,%esp
+ 102da3: ff 75 8c push -0x74(%ebp)
+ 102da6: ff 75 84 push -0x7c(%ebp)
+ 102da9: ff 75 80 push -0x80(%ebp)
+ 102dac: e8 8a f1 ff ff call 101f3b <ftos>
+ 102db1: 83 c4 10 add $0x10,%esp
+ 102db4: 83 ec 0c sub $0xc,%esp
+ 102db7: ff 75 8c push -0x74(%ebp)
+ 102dba: e8 d0 fe ff ff call 102c8f <terminal_writestring>
+ 102dbf: 83 c4 10 add $0x10,%esp
+ 102dc2: 90 nop
+ 102dc3: 8b 45 f4 mov -0xc(%ebp),%eax
+ 102dc6: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 102dcc: 74 05 je 102dd3 <terminal_writefloat+0x76>
+ 102dce: e8 b4 0a 00 00 call 103887 <__stack_chk_fail>
+ 102dd3: c9 leave
+ 102dd4: c3 ret
+
+00102dd5 <clear>:
+ 102dd5: 55 push %ebp
+ 102dd6: 89 e5 mov %esp,%ebp
+ 102dd8: 83 ec 18 sub $0x18,%esp
+ 102ddb: a1 04 50 10 00 mov 0x105004,%eax
+ 102de0: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102de3: 31 c0 xor %eax,%eax
+ 102de5: c7 45 ec 00 00 00 00 movl $0x0,-0x14(%ebp)
+ 102dec: eb 28 jmp 102e16 <clear+0x41>
+ 102dee: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp)
+ 102df5: eb 11 jmp 102e08 <clear+0x33>
+ 102df7: 83 ec 0c sub $0xc,%esp
+ 102dfa: 6a 20 push $0x20
+ 102dfc: e8 04 fe ff ff call 102c05 <terminal_putchar>
+ 102e01: 83 c4 10 add $0x10,%esp
+ 102e04: 83 45 f0 01 addl $0x1,-0x10(%ebp)
+ 102e08: b8 50 00 00 00 mov $0x50,%eax
+ 102e0d: 39 45 f0 cmp %eax,-0x10(%ebp)
+ 102e10: 72 e5 jb 102df7 <clear+0x22>
+ 102e12: 83 45 ec 01 addl $0x1,-0x14(%ebp)
+ 102e16: b8 19 00 00 00 mov $0x19,%eax
+ 102e1b: 39 45 ec cmp %eax,-0x14(%ebp)
+ 102e1e: 72 ce jb 102dee <clear+0x19>
+ 102e20: c7 05 e4 aa 10 00 00 movl $0x0,0x10aae4
+ 102e27: 00 00 00
+ 102e2a: c7 05 e0 aa 10 00 00 movl $0x0,0x10aae0
+ 102e31: 00 00 00
+ 102e34: 90 nop
+ 102e35: 8b 45 f4 mov -0xc(%ebp),%eax
+ 102e38: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 102e3e: 74 05 je 102e45 <clear+0x70>
+ 102e40: e8 42 0a 00 00 call 103887 <__stack_chk_fail>
+ 102e45: c9 leave
+ 102e46: c3 ret
+
+00102e47 <irq0_handler>:
+ 102e47: 55 push %ebp
+ 102e48: 89 e5 mov %esp,%ebp
+ 102e4a: 83 ec 18 sub $0x18,%esp
+ 102e4d: a1 04 50 10 00 mov 0x105004,%eax
+ 102e52: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102e55: 31 c0 xor %eax,%eax
+ 102e57: 83 ec 08 sub $0x8,%esp
+ 102e5a: 6a 20 push $0x20
+ 102e5c: 6a 20 push $0x20
+ 102e5e: e8 c0 d1 ff ff call 100023 <ioport_out>
+ 102e63: 83 c4 10 add $0x10,%esp
+ 102e66: 83 ec 0c sub $0xc,%esp
+ 102e69: 68 b4 43 10 00 push $0x1043b4
+ 102e6e: e8 95 ea ff ff call 101908 <printf>
+ 102e73: 83 c4 10 add $0x10,%esp
+ 102e76: 83 ec 0c sub $0xc,%esp
+ 102e79: 68 c2 43 10 00 push $0x1043c2
+ 102e7e: e8 85 ea ff ff call 101908 <printf>
+ 102e83: 83 c4 10 add $0x10,%esp
+ 102e86: 90 nop
+ 102e87: 8b 45 f4 mov -0xc(%ebp),%eax
+ 102e8a: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 102e90: 74 05 je 102e97 <irq0_handler+0x50>
+ 102e92: e8 f0 09 00 00 call 103887 <__stack_chk_fail>
+ 102e97: c9 leave
+ 102e98: c3 ret
+
+00102e99 <irq1_handler>:
+ 102e99: 55 push %ebp
+ 102e9a: 89 e5 mov %esp,%ebp
+ 102e9c: 83 ec 18 sub $0x18,%esp
+ 102e9f: a1 04 50 10 00 mov 0x105004,%eax
+ 102ea4: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102ea7: 31 c0 xor %eax,%eax
+ 102ea9: 83 ec 08 sub $0x8,%esp
+ 102eac: 6a 20 push $0x20
+ 102eae: 6a 20 push $0x20
+ 102eb0: e8 6e d1 ff ff call 100023 <ioport_out>
+ 102eb5: 83 c4 10 add $0x10,%esp
+ 102eb8: 83 ec 0c sub $0xc,%esp
+ 102ebb: 68 d8 43 10 00 push $0x1043d8
+ 102ec0: e8 43 ea ff ff call 101908 <printf>
+ 102ec5: 83 c4 10 add $0x10,%esp
+ 102ec8: 83 ec 0c sub $0xc,%esp
+ 102ecb: 68 e6 43 10 00 push $0x1043e6
+ 102ed0: e8 33 ea ff ff call 101908 <printf>
+ 102ed5: 83 c4 10 add $0x10,%esp
+ 102ed8: 90 nop
+ 102ed9: 8b 45 f4 mov -0xc(%ebp),%eax
+ 102edc: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 102ee2: 74 05 je 102ee9 <irq1_handler+0x50>
+ 102ee4: e8 9e 09 00 00 call 103887 <__stack_chk_fail>
+ 102ee9: c9 leave
+ 102eea: c3 ret
+
+00102eeb <irq2_handler>:
+ 102eeb: 55 push %ebp
+ 102eec: 89 e5 mov %esp,%ebp
+ 102eee: 83 ec 18 sub $0x18,%esp
+ 102ef1: a1 04 50 10 00 mov 0x105004,%eax
+ 102ef6: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102ef9: 31 c0 xor %eax,%eax
+ 102efb: 83 ec 08 sub $0x8,%esp
+ 102efe: 6a 20 push $0x20
+ 102f00: 6a 20 push $0x20
+ 102f02: e8 1c d1 ff ff call 100023 <ioport_out>
+ 102f07: 83 c4 10 add $0x10,%esp
+ 102f0a: 83 ec 0c sub $0xc,%esp
+ 102f0d: 68 ed 43 10 00 push $0x1043ed
+ 102f12: e8 f1 e9 ff ff call 101908 <printf>
+ 102f17: 83 c4 10 add $0x10,%esp
+ 102f1a: 83 ec 0c sub $0xc,%esp
+ 102f1d: 68 fb 43 10 00 push $0x1043fb
+ 102f22: e8 e1 e9 ff ff call 101908 <printf>
+ 102f27: 83 c4 10 add $0x10,%esp
+ 102f2a: 90 nop
+ 102f2b: 8b 45 f4 mov -0xc(%ebp),%eax
+ 102f2e: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 102f34: 74 05 je 102f3b <irq2_handler+0x50>
+ 102f36: e8 4c 09 00 00 call 103887 <__stack_chk_fail>
+ 102f3b: c9 leave
+ 102f3c: c3 ret
+
+00102f3d <irq3_handler>:
+ 102f3d: 55 push %ebp
+ 102f3e: 89 e5 mov %esp,%ebp
+ 102f40: 83 ec 18 sub $0x18,%esp
+ 102f43: a1 04 50 10 00 mov 0x105004,%eax
+ 102f48: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102f4b: 31 c0 xor %eax,%eax
+ 102f4d: 83 ec 08 sub $0x8,%esp
+ 102f50: 6a 20 push $0x20
+ 102f52: 6a 20 push $0x20
+ 102f54: e8 ca d0 ff ff call 100023 <ioport_out>
+ 102f59: 83 c4 10 add $0x10,%esp
+ 102f5c: 83 ec 0c sub $0xc,%esp
+ 102f5f: 68 13 44 10 00 push $0x104413
+ 102f64: e8 9f e9 ff ff call 101908 <printf>
+ 102f69: 83 c4 10 add $0x10,%esp
+ 102f6c: 83 ec 0c sub $0xc,%esp
+ 102f6f: 68 21 44 10 00 push $0x104421
+ 102f74: e8 8f e9 ff ff call 101908 <printf>
+ 102f79: 83 c4 10 add $0x10,%esp
+ 102f7c: 90 nop
+ 102f7d: 8b 45 f4 mov -0xc(%ebp),%eax
+ 102f80: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 102f86: 74 05 je 102f8d <irq3_handler+0x50>
+ 102f88: e8 fa 08 00 00 call 103887 <__stack_chk_fail>
+ 102f8d: c9 leave
+ 102f8e: c3 ret
+
+00102f8f <irq4_handler>:
+ 102f8f: 55 push %ebp
+ 102f90: 89 e5 mov %esp,%ebp
+ 102f92: 83 ec 18 sub $0x18,%esp
+ 102f95: a1 04 50 10 00 mov 0x105004,%eax
+ 102f9a: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102f9d: 31 c0 xor %eax,%eax
+ 102f9f: 83 ec 08 sub $0x8,%esp
+ 102fa2: 6a 20 push $0x20
+ 102fa4: 6a 20 push $0x20
+ 102fa6: e8 78 d0 ff ff call 100023 <ioport_out>
+ 102fab: 83 c4 10 add $0x10,%esp
+ 102fae: 83 ec 0c sub $0xc,%esp
+ 102fb1: 68 2d 44 10 00 push $0x10442d
+ 102fb6: e8 4d e9 ff ff call 101908 <printf>
+ 102fbb: 83 c4 10 add $0x10,%esp
+ 102fbe: 83 ec 0c sub $0xc,%esp
+ 102fc1: 68 3b 44 10 00 push $0x10443b
+ 102fc6: e8 3d e9 ff ff call 101908 <printf>
+ 102fcb: 83 c4 10 add $0x10,%esp
+ 102fce: 90 nop
+ 102fcf: 8b 45 f4 mov -0xc(%ebp),%eax
+ 102fd2: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 102fd8: 74 05 je 102fdf <irq4_handler+0x50>
+ 102fda: e8 a8 08 00 00 call 103887 <__stack_chk_fail>
+ 102fdf: c9 leave
+ 102fe0: c3 ret
+
+00102fe1 <irq5_handler>:
+ 102fe1: 55 push %ebp
+ 102fe2: 89 e5 mov %esp,%ebp
+ 102fe4: 83 ec 18 sub $0x18,%esp
+ 102fe7: a1 04 50 10 00 mov 0x105004,%eax
+ 102fec: 89 45 f4 mov %eax,-0xc(%ebp)
+ 102fef: 31 c0 xor %eax,%eax
+ 102ff1: 83 ec 08 sub $0x8,%esp
+ 102ff4: 6a 20 push $0x20
+ 102ff6: 6a 20 push $0x20
+ 102ff8: e8 26 d0 ff ff call 100023 <ioport_out>
+ 102ffd: 83 c4 10 add $0x10,%esp
+ 103000: 83 ec 0c sub $0xc,%esp
+ 103003: 68 45 44 10 00 push $0x104445
+ 103008: e8 fb e8 ff ff call 101908 <printf>
+ 10300d: 83 c4 10 add $0x10,%esp
+ 103010: 83 ec 0c sub $0xc,%esp
+ 103013: 68 53 44 10 00 push $0x104453
+ 103018: e8 eb e8 ff ff call 101908 <printf>
+ 10301d: 83 c4 10 add $0x10,%esp
+ 103020: 90 nop
+ 103021: 8b 45 f4 mov -0xc(%ebp),%eax
+ 103024: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 10302a: 74 05 je 103031 <irq5_handler+0x50>
+ 10302c: e8 56 08 00 00 call 103887 <__stack_chk_fail>
+ 103031: c9 leave
+ 103032: c3 ret
+
+00103033 <irq6_handler>:
+ 103033: 55 push %ebp
+ 103034: 89 e5 mov %esp,%ebp
+ 103036: 83 ec 18 sub $0x18,%esp
+ 103039: a1 04 50 10 00 mov 0x105004,%eax
+ 10303e: 89 45 f4 mov %eax,-0xc(%ebp)
+ 103041: 31 c0 xor %eax,%eax
+ 103043: 83 ec 08 sub $0x8,%esp
+ 103046: 6a 20 push $0x20
+ 103048: 6a 20 push $0x20
+ 10304a: e8 d4 cf ff ff call 100023 <ioport_out>
+ 10304f: 83 c4 10 add $0x10,%esp
+ 103052: 83 ec 0c sub $0xc,%esp
+ 103055: 68 69 44 10 00 push $0x104469
+ 10305a: e8 a9 e8 ff ff call 101908 <printf>
+ 10305f: 83 c4 10 add $0x10,%esp
+ 103062: 83 ec 0c sub $0xc,%esp
+ 103065: 68 77 44 10 00 push $0x104477
+ 10306a: e8 99 e8 ff ff call 101908 <printf>
+ 10306f: 83 c4 10 add $0x10,%esp
+ 103072: 90 nop
+ 103073: 8b 45 f4 mov -0xc(%ebp),%eax
+ 103076: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 10307c: 74 05 je 103083 <irq6_handler+0x50>
+ 10307e: e8 04 08 00 00 call 103887 <__stack_chk_fail>
+ 103083: c9 leave
+ 103084: c3 ret
+
+00103085 <irq7_handler>:
+ 103085: 55 push %ebp
+ 103086: 89 e5 mov %esp,%ebp
+ 103088: 83 ec 18 sub $0x18,%esp
+ 10308b: a1 04 50 10 00 mov 0x105004,%eax
+ 103090: 89 45 f4 mov %eax,-0xc(%ebp)
+ 103093: 31 c0 xor %eax,%eax
+ 103095: 83 ec 08 sub $0x8,%esp
+ 103098: 6a 20 push $0x20
+ 10309a: 6a 20 push $0x20
+ 10309c: e8 82 cf ff ff call 100023 <ioport_out>
+ 1030a1: 83 c4 10 add $0x10,%esp
+ 1030a4: 83 ec 0c sub $0xc,%esp
+ 1030a7: 68 87 44 10 00 push $0x104487
+ 1030ac: e8 57 e8 ff ff call 101908 <printf>
+ 1030b1: 83 c4 10 add $0x10,%esp
+ 1030b4: 83 ec 0c sub $0xc,%esp
+ 1030b7: 68 95 44 10 00 push $0x104495
+ 1030bc: e8 47 e8 ff ff call 101908 <printf>
+ 1030c1: 83 c4 10 add $0x10,%esp
+ 1030c4: 90 nop
+ 1030c5: 8b 45 f4 mov -0xc(%ebp),%eax
+ 1030c8: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 1030ce: 74 05 je 1030d5 <irq7_handler+0x50>
+ 1030d0: e8 b2 07 00 00 call 103887 <__stack_chk_fail>
+ 1030d5: c9 leave
+ 1030d6: c3 ret
+
+001030d7 <irq8_handler>:
+ 1030d7: 55 push %ebp
+ 1030d8: 89 e5 mov %esp,%ebp
+ 1030da: 83 ec 18 sub $0x18,%esp
+ 1030dd: a1 04 50 10 00 mov 0x105004,%eax
+ 1030e2: 89 45 f4 mov %eax,-0xc(%ebp)
+ 1030e5: 31 c0 xor %eax,%eax
+ 1030e7: 83 ec 08 sub $0x8,%esp
+ 1030ea: 6a 20 push $0x20
+ 1030ec: 6a 20 push $0x20
+ 1030ee: e8 30 cf ff ff call 100023 <ioport_out>
+ 1030f3: 83 c4 10 add $0x10,%esp
+ 1030f6: 83 ec 0c sub $0xc,%esp
+ 1030f9: 68 ab 44 10 00 push $0x1044ab
+ 1030fe: e8 05 e8 ff ff call 101908 <printf>
+ 103103: 83 c4 10 add $0x10,%esp
+ 103106: 83 ec 0c sub $0xc,%esp
+ 103109: 68 b9 44 10 00 push $0x1044b9
+ 10310e: e8 f5 e7 ff ff call 101908 <printf>
+ 103113: 83 c4 10 add $0x10,%esp
+ 103116: 90 nop
+ 103117: 8b 45 f4 mov -0xc(%ebp),%eax
+ 10311a: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 103120: 74 05 je 103127 <irq8_handler+0x50>
+ 103122: e8 60 07 00 00 call 103887 <__stack_chk_fail>
+ 103127: c9 leave
+ 103128: c3 ret
+
+00103129 <irq9_handler>:
+ 103129: 55 push %ebp
+ 10312a: 89 e5 mov %esp,%ebp
+ 10312c: 83 ec 18 sub $0x18,%esp
+ 10312f: a1 04 50 10 00 mov 0x105004,%eax
+ 103134: 89 45 f4 mov %eax,-0xc(%ebp)
+ 103137: 31 c0 xor %eax,%eax
+ 103139: 83 ec 08 sub $0x8,%esp
+ 10313c: 6a 20 push $0x20
+ 10313e: 6a 20 push $0x20
+ 103140: e8 de ce ff ff call 100023 <ioport_out>
+ 103145: 83 c4 10 add $0x10,%esp
+ 103148: 83 ec 0c sub $0xc,%esp
+ 10314b: 68 c7 44 10 00 push $0x1044c7
+ 103150: e8 b3 e7 ff ff call 101908 <printf>
+ 103155: 83 c4 10 add $0x10,%esp
+ 103158: 83 ec 0c sub $0xc,%esp
+ 10315b: 68 d5 44 10 00 push $0x1044d5
+ 103160: e8 a3 e7 ff ff call 101908 <printf>
+ 103165: 83 c4 10 add $0x10,%esp
+ 103168: 90 nop
+ 103169: 8b 45 f4 mov -0xc(%ebp),%eax
+ 10316c: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 103172: 74 05 je 103179 <irq9_handler+0x50>
+ 103174: e8 0e 07 00 00 call 103887 <__stack_chk_fail>
+ 103179: c9 leave
+ 10317a: c3 ret
+
+0010317b <irq10_handler>:
+ 10317b: 55 push %ebp
+ 10317c: 89 e5 mov %esp,%ebp
+ 10317e: 83 ec 18 sub $0x18,%esp
+ 103181: a1 04 50 10 00 mov 0x105004,%eax
+ 103186: 89 45 f4 mov %eax,-0xc(%ebp)
+ 103189: 31 c0 xor %eax,%eax
+ 10318b: 83 ec 08 sub $0x8,%esp
+ 10318e: 6a 20 push $0x20
+ 103190: 6a 20 push $0x20
+ 103192: e8 8c ce ff ff call 100023 <ioport_out>
+ 103197: 83 c4 10 add $0x10,%esp
+ 10319a: 83 ec 0c sub $0xc,%esp
+ 10319d: 68 f2 44 10 00 push $0x1044f2
+ 1031a2: e8 61 e7 ff ff call 101908 <printf>
+ 1031a7: 83 c4 10 add $0x10,%esp
+ 1031aa: 83 ec 0c sub $0xc,%esp
+ 1031ad: 68 01 45 10 00 push $0x104501
+ 1031b2: e8 51 e7 ff ff call 101908 <printf>
+ 1031b7: 83 c4 10 add $0x10,%esp
+ 1031ba: 90 nop
+ 1031bb: 8b 45 f4 mov -0xc(%ebp),%eax
+ 1031be: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 1031c4: 74 05 je 1031cb <irq10_handler+0x50>
+ 1031c6: e8 bc 06 00 00 call 103887 <__stack_chk_fail>
+ 1031cb: c9 leave
+ 1031cc: c3 ret
+
+001031cd <irq11_handler>:
+ 1031cd: 55 push %ebp
+ 1031ce: 89 e5 mov %esp,%ebp
+ 1031d0: 83 ec 18 sub $0x18,%esp
+ 1031d3: a1 04 50 10 00 mov 0x105004,%eax
+ 1031d8: 89 45 f4 mov %eax,-0xc(%ebp)
+ 1031db: 31 c0 xor %eax,%eax
+ 1031dd: 83 ec 08 sub $0x8,%esp
+ 1031e0: 6a 20 push $0x20
+ 1031e2: 6a 20 push $0x20
+ 1031e4: e8 3a ce ff ff call 100023 <ioport_out>
+ 1031e9: 83 c4 10 add $0x10,%esp
+ 1031ec: 83 ec 0c sub $0xc,%esp
+ 1031ef: 68 0e 45 10 00 push $0x10450e
+ 1031f4: e8 0f e7 ff ff call 101908 <printf>
+ 1031f9: 83 c4 10 add $0x10,%esp
+ 1031fc: 83 ec 0c sub $0xc,%esp
+ 1031ff: 68 1d 45 10 00 push $0x10451d
+ 103204: e8 ff e6 ff ff call 101908 <printf>
+ 103209: 83 c4 10 add $0x10,%esp
+ 10320c: 90 nop
+ 10320d: 8b 45 f4 mov -0xc(%ebp),%eax
+ 103210: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 103216: 74 05 je 10321d <irq11_handler+0x50>
+ 103218: e8 6a 06 00 00 call 103887 <__stack_chk_fail>
+ 10321d: c9 leave
+ 10321e: c3 ret
+
+0010321f <irq12_handler>:
+ 10321f: 55 push %ebp
+ 103220: 89 e5 mov %esp,%ebp
+ 103222: 83 ec 18 sub $0x18,%esp
+ 103225: a1 04 50 10 00 mov 0x105004,%eax
+ 10322a: 89 45 f4 mov %eax,-0xc(%ebp)
+ 10322d: 31 c0 xor %eax,%eax
+ 10322f: 83 ec 08 sub $0x8,%esp
+ 103232: 6a 20 push $0x20
+ 103234: 6a 20 push $0x20
+ 103236: e8 e8 cd ff ff call 100023 <ioport_out>
+ 10323b: 83 c4 10 add $0x10,%esp
+ 10323e: 83 ec 0c sub $0xc,%esp
+ 103241: 68 32 45 10 00 push $0x104532
+ 103246: e8 bd e6 ff ff call 101908 <printf>
+ 10324b: 83 c4 10 add $0x10,%esp
+ 10324e: 83 ec 0c sub $0xc,%esp
+ 103251: 68 41 45 10 00 push $0x104541
+ 103256: e8 ad e6 ff ff call 101908 <printf>
+ 10325b: 83 c4 10 add $0x10,%esp
+ 10325e: 90 nop
+ 10325f: 8b 45 f4 mov -0xc(%ebp),%eax
+ 103262: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 103268: 74 05 je 10326f <irq12_handler+0x50>
+ 10326a: e8 18 06 00 00 call 103887 <__stack_chk_fail>
+ 10326f: c9 leave
+ 103270: c3 ret
+
+00103271 <irq13_handler>:
+ 103271: 55 push %ebp
+ 103272: 89 e5 mov %esp,%ebp
+ 103274: 83 ec 18 sub $0x18,%esp
+ 103277: a1 04 50 10 00 mov 0x105004,%eax
+ 10327c: 89 45 f4 mov %eax,-0xc(%ebp)
+ 10327f: 31 c0 xor %eax,%eax
+ 103281: 83 ec 08 sub $0x8,%esp
+ 103284: 6a 20 push $0x20
+ 103286: 6a 20 push $0x20
+ 103288: e8 96 cd ff ff call 100023 <ioport_out>
+ 10328d: 83 c4 10 add $0x10,%esp
+ 103290: 83 ec 0c sub $0xc,%esp
+ 103293: 68 56 45 10 00 push $0x104556
+ 103298: e8 6b e6 ff ff call 101908 <printf>
+ 10329d: 83 c4 10 add $0x10,%esp
+ 1032a0: 83 ec 0c sub $0xc,%esp
+ 1032a3: 68 65 45 10 00 push $0x104565
+ 1032a8: e8 5b e6 ff ff call 101908 <printf>
+ 1032ad: 83 c4 10 add $0x10,%esp
+ 1032b0: 90 nop
+ 1032b1: 8b 45 f4 mov -0xc(%ebp),%eax
+ 1032b4: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 1032ba: 74 05 je 1032c1 <irq13_handler+0x50>
+ 1032bc: e8 c6 05 00 00 call 103887 <__stack_chk_fail>
+ 1032c1: c9 leave
+ 1032c2: c3 ret
+
+001032c3 <irq14_handler>:
+ 1032c3: 55 push %ebp
+ 1032c4: 89 e5 mov %esp,%ebp
+ 1032c6: 83 ec 18 sub $0x18,%esp
+ 1032c9: a1 04 50 10 00 mov 0x105004,%eax
+ 1032ce: 89 45 f4 mov %eax,-0xc(%ebp)
+ 1032d1: 31 c0 xor %eax,%eax
+ 1032d3: 83 ec 08 sub $0x8,%esp
+ 1032d6: 6a 20 push $0x20
+ 1032d8: 6a 20 push $0x20
+ 1032da: e8 44 cd ff ff call 100023 <ioport_out>
+ 1032df: 83 c4 10 add $0x10,%esp
+ 1032e2: 83 ec 0c sub $0xc,%esp
+ 1032e5: 68 7f 45 10 00 push $0x10457f
+ 1032ea: e8 19 e6 ff ff call 101908 <printf>
+ 1032ef: 83 c4 10 add $0x10,%esp
+ 1032f2: 83 ec 0c sub $0xc,%esp
+ 1032f5: 68 8e 45 10 00 push $0x10458e
+ 1032fa: e8 09 e6 ff ff call 101908 <printf>
+ 1032ff: 83 c4 10 add $0x10,%esp
+ 103302: 90 nop
+ 103303: 8b 45 f4 mov -0xc(%ebp),%eax
+ 103306: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 10330c: 74 05 je 103313 <irq14_handler+0x50>
+ 10330e: e8 74 05 00 00 call 103887 <__stack_chk_fail>
+ 103313: c9 leave
+ 103314: c3 ret
+
+00103315 <irq15_handler>:
+ 103315: 55 push %ebp
+ 103316: 89 e5 mov %esp,%ebp
+ 103318: 83 ec 18 sub $0x18,%esp
+ 10331b: a1 04 50 10 00 mov 0x105004,%eax
+ 103320: 89 45 f4 mov %eax,-0xc(%ebp)
+ 103323: 31 c0 xor %eax,%eax
+ 103325: 83 ec 08 sub $0x8,%esp
+ 103328: 6a 20 push $0x20
+ 10332a: 6a 20 push $0x20
+ 10332c: e8 f2 cc ff ff call 100023 <ioport_out>
+ 103331: 83 c4 10 add $0x10,%esp
+ 103334: 83 ec 0c sub $0xc,%esp
+ 103337: 68 9a 45 10 00 push $0x10459a
+ 10333c: e8 c7 e5 ff ff call 101908 <printf>
+ 103341: 83 c4 10 add $0x10,%esp
+ 103344: 83 ec 0c sub $0xc,%esp
+ 103347: 68 a9 45 10 00 push $0x1045a9
+ 10334c: e8 b7 e5 ff ff call 101908 <printf>
+ 103351: 83 c4 10 add $0x10,%esp
+ 103354: 90 nop
+ 103355: 8b 45 f4 mov -0xc(%ebp),%eax
+ 103358: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 10335e: 74 05 je 103365 <irq15_handler+0x50>
+ 103360: e8 22 05 00 00 call 103887 <__stack_chk_fail>
+ 103365: c9 leave
+ 103366: c3 ret
+
+00103367 <irq16_handler>:
+ 103367: 55 push %ebp
+ 103368: 89 e5 mov %esp,%ebp
+ 10336a: 83 ec 18 sub $0x18,%esp
+ 10336d: a1 04 50 10 00 mov 0x105004,%eax
+ 103372: 89 45 f4 mov %eax,-0xc(%ebp)
+ 103375: 31 c0 xor %eax,%eax
+ 103377: 83 ec 08 sub $0x8,%esp
+ 10337a: 6a 20 push $0x20
+ 10337c: 6a 20 push $0x20
+ 10337e: e8 a0 cc ff ff call 100023 <ioport_out>
+ 103383: 83 c4 10 add $0x10,%esp
+ 103386: 83 ec 0c sub $0xc,%esp
+ 103389: 68 b3 45 10 00 push $0x1045b3
+ 10338e: e8 75 e5 ff ff call 101908 <printf>
+ 103393: 83 c4 10 add $0x10,%esp
+ 103396: 83 ec 0c sub $0xc,%esp
+ 103399: 68 c2 45 10 00 push $0x1045c2
+ 10339e: e8 65 e5 ff ff call 101908 <printf>
+ 1033a3: 83 c4 10 add $0x10,%esp
+ 1033a6: 90 nop
+ 1033a7: 8b 45 f4 mov -0xc(%ebp),%eax
+ 1033aa: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 1033b0: 74 05 je 1033b7 <irq16_handler+0x50>
+ 1033b2: e8 d0 04 00 00 call 103887 <__stack_chk_fail>
+ 1033b7: c9 leave
+ 1033b8: c3 ret
+
+001033b9 <irq17_handler>:
+ 1033b9: 55 push %ebp
+ 1033ba: 89 e5 mov %esp,%ebp
+ 1033bc: 83 ec 18 sub $0x18,%esp
+ 1033bf: a1 04 50 10 00 mov 0x105004,%eax
+ 1033c4: 89 45 f4 mov %eax,-0xc(%ebp)
+ 1033c7: 31 c0 xor %eax,%eax
+ 1033c9: 83 ec 08 sub $0x8,%esp
+ 1033cc: 6a 20 push $0x20
+ 1033ce: 6a 20 push $0x20
+ 1033d0: e8 4e cc ff ff call 100023 <ioport_out>
+ 1033d5: 83 c4 10 add $0x10,%esp
+ 1033d8: 83 ec 0c sub $0xc,%esp
+ 1033db: 68 e0 45 10 00 push $0x1045e0
+ 1033e0: e8 23 e5 ff ff call 101908 <printf>
+ 1033e5: 83 c4 10 add $0x10,%esp
+ 1033e8: 83 ec 0c sub $0xc,%esp
+ 1033eb: 68 ef 45 10 00 push $0x1045ef
+ 1033f0: e8 13 e5 ff ff call 101908 <printf>
+ 1033f5: 83 c4 10 add $0x10,%esp
+ 1033f8: 90 nop
+ 1033f9: 8b 45 f4 mov -0xc(%ebp),%eax
+ 1033fc: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 103402: 74 05 je 103409 <irq17_handler+0x50>
+ 103404: e8 7e 04 00 00 call 103887 <__stack_chk_fail>
+ 103409: c9 leave
+ 10340a: c3 ret
+
+0010340b <irq18_handler>:
+ 10340b: 55 push %ebp
+ 10340c: 89 e5 mov %esp,%ebp
+ 10340e: 83 ec 18 sub $0x18,%esp
+ 103411: a1 04 50 10 00 mov 0x105004,%eax
+ 103416: 89 45 f4 mov %eax,-0xc(%ebp)
+ 103419: 31 c0 xor %eax,%eax
+ 10341b: 83 ec 08 sub $0x8,%esp
+ 10341e: 6a 20 push $0x20
+ 103420: 6a 20 push $0x20
+ 103422: e8 fc cb ff ff call 100023 <ioport_out>
+ 103427: 83 c4 10 add $0x10,%esp
+ 10342a: 83 ec 0c sub $0xc,%esp
+ 10342d: 68 00 46 10 00 push $0x104600
+ 103432: e8 d1 e4 ff ff call 101908 <printf>
+ 103437: 83 c4 10 add $0x10,%esp
+ 10343a: 83 ec 0c sub $0xc,%esp
+ 10343d: 68 0f 46 10 00 push $0x10460f
+ 103442: e8 c1 e4 ff ff call 101908 <printf>
+ 103447: 83 c4 10 add $0x10,%esp
+ 10344a: 90 nop
+ 10344b: 8b 45 f4 mov -0xc(%ebp),%eax
+ 10344e: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 103454: 74 05 je 10345b <irq18_handler+0x50>
+ 103456: e8 2c 04 00 00 call 103887 <__stack_chk_fail>
+ 10345b: c9 leave
+ 10345c: c3 ret
+
+0010345d <irq19_handler>:
+ 10345d: 55 push %ebp
+ 10345e: 89 e5 mov %esp,%ebp
+ 103460: 83 ec 18 sub $0x18,%esp
+ 103463: a1 04 50 10 00 mov 0x105004,%eax
+ 103468: 89 45 f4 mov %eax,-0xc(%ebp)
+ 10346b: 31 c0 xor %eax,%eax
+ 10346d: 83 ec 08 sub $0x8,%esp
+ 103470: 6a 20 push $0x20
+ 103472: 6a 20 push $0x20
+ 103474: e8 aa cb ff ff call 100023 <ioport_out>
+ 103479: 83 c4 10 add $0x10,%esp
+ 10347c: 83 ec 0c sub $0xc,%esp
+ 10347f: 68 1e 46 10 00 push $0x10461e
+ 103484: e8 7f e4 ff ff call 101908 <printf>
+ 103489: 83 c4 10 add $0x10,%esp
+ 10348c: 83 ec 0c sub $0xc,%esp
+ 10348f: 68 30 46 10 00 push $0x104630
+ 103494: e8 6f e4 ff ff call 101908 <printf>
+ 103499: 83 c4 10 add $0x10,%esp
+ 10349c: 90 nop
+ 10349d: 8b 45 f4 mov -0xc(%ebp),%eax
+ 1034a0: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 1034a6: 74 05 je 1034ad <irq19_handler+0x50>
+ 1034a8: e8 da 03 00 00 call 103887 <__stack_chk_fail>
+ 1034ad: c9 leave
+ 1034ae: c3 ret
+
+001034af <irq20_handler>:
+ 1034af: 55 push %ebp
+ 1034b0: 89 e5 mov %esp,%ebp
+ 1034b2: 83 ec 18 sub $0x18,%esp
+ 1034b5: a1 04 50 10 00 mov 0x105004,%eax
+ 1034ba: 89 45 f4 mov %eax,-0xc(%ebp)
+ 1034bd: 31 c0 xor %eax,%eax
+ 1034bf: 83 ec 08 sub $0x8,%esp
+ 1034c2: 6a 20 push $0x20
+ 1034c4: 6a 20 push $0x20
+ 1034c6: e8 58 cb ff ff call 100023 <ioport_out>
+ 1034cb: 83 c4 10 add $0x10,%esp
+ 1034ce: 83 ec 0c sub $0xc,%esp
+ 1034d1: 68 54 46 10 00 push $0x104654
+ 1034d6: e8 2d e4 ff ff call 101908 <printf>
+ 1034db: 83 c4 10 add $0x10,%esp
+ 1034de: 83 ec 0c sub $0xc,%esp
+ 1034e1: 68 63 46 10 00 push $0x104663
+ 1034e6: e8 1d e4 ff ff call 101908 <printf>
+ 1034eb: 83 c4 10 add $0x10,%esp
+ 1034ee: 90 nop
+ 1034ef: 8b 45 f4 mov -0xc(%ebp),%eax
+ 1034f2: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 1034f8: 74 05 je 1034ff <irq20_handler+0x50>
+ 1034fa: e8 88 03 00 00 call 103887 <__stack_chk_fail>
+ 1034ff: c9 leave
+ 103500: c3 ret
+
+00103501 <irq21_handler>:
+ 103501: 55 push %ebp
+ 103502: 89 e5 mov %esp,%ebp
+ 103504: 83 ec 18 sub $0x18,%esp
+ 103507: a1 04 50 10 00 mov 0x105004,%eax
+ 10350c: 89 45 f4 mov %eax,-0xc(%ebp)
+ 10350f: 31 c0 xor %eax,%eax
+ 103511: 83 ec 08 sub $0x8,%esp
+ 103514: 6a 20 push $0x20
+ 103516: 6a 20 push $0x20
+ 103518: e8 06 cb ff ff call 100023 <ioport_out>
+ 10351d: 83 c4 10 add $0x10,%esp
+ 103520: 83 ec 0c sub $0xc,%esp
+ 103523: 68 7d 46 10 00 push $0x10467d
+ 103528: e8 db e3 ff ff call 101908 <printf>
+ 10352d: 83 c4 10 add $0x10,%esp
+ 103530: 83 ec 0c sub $0xc,%esp
+ 103533: 68 a9 45 10 00 push $0x1045a9
+ 103538: e8 cb e3 ff ff call 101908 <printf>
+ 10353d: 83 c4 10 add $0x10,%esp
+ 103540: 90 nop
+ 103541: 8b 45 f4 mov -0xc(%ebp),%eax
+ 103544: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 10354a: 74 05 je 103551 <irq21_handler+0x50>
+ 10354c: e8 36 03 00 00 call 103887 <__stack_chk_fail>
+ 103551: c9 leave
+ 103552: c3 ret
+
+00103553 <irq22_handler>:
+ 103553: 55 push %ebp
+ 103554: 89 e5 mov %esp,%ebp
+ 103556: 83 ec 18 sub $0x18,%esp
+ 103559: a1 04 50 10 00 mov 0x105004,%eax
+ 10355e: 89 45 f4 mov %eax,-0xc(%ebp)
+ 103561: 31 c0 xor %eax,%eax
+ 103563: 83 ec 08 sub $0x8,%esp
+ 103566: 6a 20 push $0x20
+ 103568: 6a 20 push $0x20
+ 10356a: e8 b4 ca ff ff call 100023 <ioport_out>
+ 10356f: 83 c4 10 add $0x10,%esp
+ 103572: 83 ec 0c sub $0xc,%esp
+ 103575: 68 8c 46 10 00 push $0x10468c
+ 10357a: e8 89 e3 ff ff call 101908 <printf>
+ 10357f: 83 c4 10 add $0x10,%esp
+ 103582: 83 ec 0c sub $0xc,%esp
+ 103585: 68 a9 45 10 00 push $0x1045a9
+ 10358a: e8 79 e3 ff ff call 101908 <printf>
+ 10358f: 83 c4 10 add $0x10,%esp
+ 103592: 90 nop
+ 103593: 8b 45 f4 mov -0xc(%ebp),%eax
+ 103596: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 10359c: 74 05 je 1035a3 <irq22_handler+0x50>
+ 10359e: e8 e4 02 00 00 call 103887 <__stack_chk_fail>
+ 1035a3: c9 leave
+ 1035a4: c3 ret
+
+001035a5 <irq23_handler>:
+ 1035a5: 55 push %ebp
+ 1035a6: 89 e5 mov %esp,%ebp
+ 1035a8: 83 ec 18 sub $0x18,%esp
+ 1035ab: a1 04 50 10 00 mov 0x105004,%eax
+ 1035b0: 89 45 f4 mov %eax,-0xc(%ebp)
+ 1035b3: 31 c0 xor %eax,%eax
+ 1035b5: 83 ec 08 sub $0x8,%esp
+ 1035b8: 6a 20 push $0x20
+ 1035ba: 6a 20 push $0x20
+ 1035bc: e8 62 ca ff ff call 100023 <ioport_out>
+ 1035c1: 83 c4 10 add $0x10,%esp
+ 1035c4: 83 ec 0c sub $0xc,%esp
+ 1035c7: 68 9b 46 10 00 push $0x10469b
+ 1035cc: e8 37 e3 ff ff call 101908 <printf>
+ 1035d1: 83 c4 10 add $0x10,%esp
+ 1035d4: 83 ec 0c sub $0xc,%esp
+ 1035d7: 68 a9 45 10 00 push $0x1045a9
+ 1035dc: e8 27 e3 ff ff call 101908 <printf>
+ 1035e1: 83 c4 10 add $0x10,%esp
+ 1035e4: 90 nop
+ 1035e5: 8b 45 f4 mov -0xc(%ebp),%eax
+ 1035e8: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 1035ee: 74 05 je 1035f5 <irq23_handler+0x50>
+ 1035f0: e8 92 02 00 00 call 103887 <__stack_chk_fail>
+ 1035f5: c9 leave
+ 1035f6: c3 ret
+
+001035f7 <irq24_handler>:
+ 1035f7: 55 push %ebp
+ 1035f8: 89 e5 mov %esp,%ebp
+ 1035fa: 83 ec 18 sub $0x18,%esp
+ 1035fd: a1 04 50 10 00 mov 0x105004,%eax
+ 103602: 89 45 f4 mov %eax,-0xc(%ebp)
+ 103605: 31 c0 xor %eax,%eax
+ 103607: 83 ec 08 sub $0x8,%esp
+ 10360a: 6a 20 push $0x20
+ 10360c: 6a 20 push $0x20
+ 10360e: e8 10 ca ff ff call 100023 <ioport_out>
+ 103613: 83 c4 10 add $0x10,%esp
+ 103616: 83 ec 0c sub $0xc,%esp
+ 103619: 68 aa 46 10 00 push $0x1046aa
+ 10361e: e8 e5 e2 ff ff call 101908 <printf>
+ 103623: 83 c4 10 add $0x10,%esp
+ 103626: 83 ec 0c sub $0xc,%esp
+ 103629: 68 a9 45 10 00 push $0x1045a9
+ 10362e: e8 d5 e2 ff ff call 101908 <printf>
+ 103633: 83 c4 10 add $0x10,%esp
+ 103636: 90 nop
+ 103637: 8b 45 f4 mov -0xc(%ebp),%eax
+ 10363a: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 103640: 74 05 je 103647 <irq24_handler+0x50>
+ 103642: e8 40 02 00 00 call 103887 <__stack_chk_fail>
+ 103647: c9 leave
+ 103648: c3 ret
+
+00103649 <irq25_handler>:
+ 103649: 55 push %ebp
+ 10364a: 89 e5 mov %esp,%ebp
+ 10364c: 83 ec 18 sub $0x18,%esp
+ 10364f: a1 04 50 10 00 mov 0x105004,%eax
+ 103654: 89 45 f4 mov %eax,-0xc(%ebp)
+ 103657: 31 c0 xor %eax,%eax
+ 103659: 83 ec 08 sub $0x8,%esp
+ 10365c: 6a 20 push $0x20
+ 10365e: 6a 20 push $0x20
+ 103660: e8 be c9 ff ff call 100023 <ioport_out>
+ 103665: 83 c4 10 add $0x10,%esp
+ 103668: 83 ec 0c sub $0xc,%esp
+ 10366b: 68 b9 46 10 00 push $0x1046b9
+ 103670: e8 93 e2 ff ff call 101908 <printf>
+ 103675: 83 c4 10 add $0x10,%esp
+ 103678: 83 ec 0c sub $0xc,%esp
+ 10367b: 68 a9 45 10 00 push $0x1045a9
+ 103680: e8 83 e2 ff ff call 101908 <printf>
+ 103685: 83 c4 10 add $0x10,%esp
+ 103688: 90 nop
+ 103689: 8b 45 f4 mov -0xc(%ebp),%eax
+ 10368c: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 103692: 74 05 je 103699 <irq25_handler+0x50>
+ 103694: e8 ee 01 00 00 call 103887 <__stack_chk_fail>
+ 103699: c9 leave
+ 10369a: c3 ret
+
+0010369b <irq26_handler>:
+ 10369b: 55 push %ebp
+ 10369c: 89 e5 mov %esp,%ebp
+ 10369e: 83 ec 18 sub $0x18,%esp
+ 1036a1: a1 04 50 10 00 mov 0x105004,%eax
+ 1036a6: 89 45 f4 mov %eax,-0xc(%ebp)
+ 1036a9: 31 c0 xor %eax,%eax
+ 1036ab: 83 ec 08 sub $0x8,%esp
+ 1036ae: 6a 20 push $0x20
+ 1036b0: 6a 20 push $0x20
+ 1036b2: e8 6c c9 ff ff call 100023 <ioport_out>
+ 1036b7: 83 c4 10 add $0x10,%esp
+ 1036ba: 83 ec 0c sub $0xc,%esp
+ 1036bd: 68 c8 46 10 00 push $0x1046c8
+ 1036c2: e8 41 e2 ff ff call 101908 <printf>
+ 1036c7: 83 c4 10 add $0x10,%esp
+ 1036ca: 83 ec 0c sub $0xc,%esp
+ 1036cd: 68 a9 45 10 00 push $0x1045a9
+ 1036d2: e8 31 e2 ff ff call 101908 <printf>
+ 1036d7: 83 c4 10 add $0x10,%esp
+ 1036da: 90 nop
+ 1036db: 8b 45 f4 mov -0xc(%ebp),%eax
+ 1036de: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 1036e4: 74 05 je 1036eb <irq26_handler+0x50>
+ 1036e6: e8 9c 01 00 00 call 103887 <__stack_chk_fail>
+ 1036eb: c9 leave
+ 1036ec: c3 ret
+
+001036ed <irq27_handler>:
+ 1036ed: 55 push %ebp
+ 1036ee: 89 e5 mov %esp,%ebp
+ 1036f0: 83 ec 18 sub $0x18,%esp
+ 1036f3: a1 04 50 10 00 mov 0x105004,%eax
+ 1036f8: 89 45 f4 mov %eax,-0xc(%ebp)
+ 1036fb: 31 c0 xor %eax,%eax
+ 1036fd: 83 ec 08 sub $0x8,%esp
+ 103700: 6a 20 push $0x20
+ 103702: 6a 20 push $0x20
+ 103704: e8 1a c9 ff ff call 100023 <ioport_out>
+ 103709: 83 c4 10 add $0x10,%esp
+ 10370c: 83 ec 0c sub $0xc,%esp
+ 10370f: 68 d7 46 10 00 push $0x1046d7
+ 103714: e8 ef e1 ff ff call 101908 <printf>
+ 103719: 83 c4 10 add $0x10,%esp
+ 10371c: 83 ec 0c sub $0xc,%esp
+ 10371f: 68 a9 45 10 00 push $0x1045a9
+ 103724: e8 df e1 ff ff call 101908 <printf>
+ 103729: 83 c4 10 add $0x10,%esp
+ 10372c: 90 nop
+ 10372d: 8b 45 f4 mov -0xc(%ebp),%eax
+ 103730: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 103736: 74 05 je 10373d <irq27_handler+0x50>
+ 103738: e8 4a 01 00 00 call 103887 <__stack_chk_fail>
+ 10373d: c9 leave
+ 10373e: c3 ret
+
+0010373f <irq28_handler>:
+ 10373f: 55 push %ebp
+ 103740: 89 e5 mov %esp,%ebp
+ 103742: 83 ec 18 sub $0x18,%esp
+ 103745: a1 04 50 10 00 mov 0x105004,%eax
+ 10374a: 89 45 f4 mov %eax,-0xc(%ebp)
+ 10374d: 31 c0 xor %eax,%eax
+ 10374f: 83 ec 08 sub $0x8,%esp
+ 103752: 6a 20 push $0x20
+ 103754: 6a 20 push $0x20
+ 103756: e8 c8 c8 ff ff call 100023 <ioport_out>
+ 10375b: 83 c4 10 add $0x10,%esp
+ 10375e: 83 ec 0c sub $0xc,%esp
+ 103761: 68 e6 46 10 00 push $0x1046e6
+ 103766: e8 9d e1 ff ff call 101908 <printf>
+ 10376b: 83 c4 10 add $0x10,%esp
+ 10376e: 83 ec 0c sub $0xc,%esp
+ 103771: 68 a9 45 10 00 push $0x1045a9
+ 103776: e8 8d e1 ff ff call 101908 <printf>
+ 10377b: 83 c4 10 add $0x10,%esp
+ 10377e: 90 nop
+ 10377f: 8b 45 f4 mov -0xc(%ebp),%eax
+ 103782: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 103788: 74 05 je 10378f <irq28_handler+0x50>
+ 10378a: e8 f8 00 00 00 call 103887 <__stack_chk_fail>
+ 10378f: c9 leave
+ 103790: c3 ret
+
+00103791 <irq29_handler>:
+ 103791: 55 push %ebp
+ 103792: 89 e5 mov %esp,%ebp
+ 103794: 83 ec 18 sub $0x18,%esp
+ 103797: a1 04 50 10 00 mov 0x105004,%eax
+ 10379c: 89 45 f4 mov %eax,-0xc(%ebp)
+ 10379f: 31 c0 xor %eax,%eax
+ 1037a1: 83 ec 08 sub $0x8,%esp
+ 1037a4: 6a 20 push $0x20
+ 1037a6: 6a 20 push $0x20
+ 1037a8: e8 76 c8 ff ff call 100023 <ioport_out>
+ 1037ad: 83 c4 10 add $0x10,%esp
+ 1037b0: 83 ec 0c sub $0xc,%esp
+ 1037b3: 68 f5 46 10 00 push $0x1046f5
+ 1037b8: e8 4b e1 ff ff call 101908 <printf>
+ 1037bd: 83 c4 10 add $0x10,%esp
+ 1037c0: 83 ec 0c sub $0xc,%esp
+ 1037c3: 68 a9 45 10 00 push $0x1045a9
+ 1037c8: e8 3b e1 ff ff call 101908 <printf>
+ 1037cd: 83 c4 10 add $0x10,%esp
+ 1037d0: 90 nop
+ 1037d1: 8b 45 f4 mov -0xc(%ebp),%eax
+ 1037d4: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 1037da: 74 05 je 1037e1 <irq29_handler+0x50>
+ 1037dc: e8 a6 00 00 00 call 103887 <__stack_chk_fail>
+ 1037e1: c9 leave
+ 1037e2: c3 ret
+
+001037e3 <irq30_handler>:
+ 1037e3: 55 push %ebp
+ 1037e4: 89 e5 mov %esp,%ebp
+ 1037e6: 83 ec 18 sub $0x18,%esp
+ 1037e9: a1 04 50 10 00 mov 0x105004,%eax
+ 1037ee: 89 45 f4 mov %eax,-0xc(%ebp)
+ 1037f1: 31 c0 xor %eax,%eax
+ 1037f3: 83 ec 08 sub $0x8,%esp
+ 1037f6: 6a 20 push $0x20
+ 1037f8: 6a 20 push $0x20
+ 1037fa: e8 24 c8 ff ff call 100023 <ioport_out>
+ 1037ff: 83 c4 10 add $0x10,%esp
+ 103802: 83 ec 0c sub $0xc,%esp
+ 103805: 68 04 47 10 00 push $0x104704
+ 10380a: e8 f9 e0 ff ff call 101908 <printf>
+ 10380f: 83 c4 10 add $0x10,%esp
+ 103812: 83 ec 0c sub $0xc,%esp
+ 103815: 68 13 47 10 00 push $0x104713
+ 10381a: e8 e9 e0 ff ff call 101908 <printf>
+ 10381f: 83 c4 10 add $0x10,%esp
+ 103822: 90 nop
+ 103823: 8b 45 f4 mov -0xc(%ebp),%eax
+ 103826: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 10382c: 74 05 je 103833 <irq30_handler+0x50>
+ 10382e: e8 54 00 00 00 call 103887 <__stack_chk_fail>
+ 103833: c9 leave
+ 103834: c3 ret
+
+00103835 <irq31_handler>:
+ 103835: 55 push %ebp
+ 103836: 89 e5 mov %esp,%ebp
+ 103838: 83 ec 18 sub $0x18,%esp
+ 10383b: a1 04 50 10 00 mov 0x105004,%eax
+ 103840: 89 45 f4 mov %eax,-0xc(%ebp)
+ 103843: 31 c0 xor %eax,%eax
+ 103845: 83 ec 08 sub $0x8,%esp
+ 103848: 6a 20 push $0x20
+ 10384a: 6a 20 push $0x20
+ 10384c: e8 d2 c7 ff ff call 100023 <ioport_out>
+ 103851: 83 c4 10 add $0x10,%esp
+ 103854: 83 ec 0c sub $0xc,%esp
+ 103857: 68 27 47 10 00 push $0x104727
+ 10385c: e8 a7 e0 ff ff call 101908 <printf>
+ 103861: 83 c4 10 add $0x10,%esp
+ 103864: 83 ec 0c sub $0xc,%esp
+ 103867: 68 a9 45 10 00 push $0x1045a9
+ 10386c: e8 97 e0 ff ff call 101908 <printf>
+ 103871: 83 c4 10 add $0x10,%esp
+ 103874: 90 nop
+ 103875: 8b 45 f4 mov -0xc(%ebp),%eax
+ 103878: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 10387e: 74 05 je 103885 <irq31_handler+0x50>
+ 103880: e8 02 00 00 00 call 103887 <__stack_chk_fail>
+ 103885: c9 leave
+ 103886: c3 ret
+
+00103887 <__stack_chk_fail>:
+ 103887: 55 push %ebp
+ 103888: 89 e5 mov %esp,%ebp
+ 10388a: 83 ec 18 sub $0x18,%esp
+ 10388d: a1 04 50 10 00 mov 0x105004,%eax
+ 103892: 89 45 f4 mov %eax,-0xc(%ebp)
+ 103895: 31 c0 xor %eax,%eax
+ 103897: 90 nop
+ 103898: 8b 45 f4 mov -0xc(%ebp),%eax
+ 10389b: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 1038a1: 74 05 je 1038a8 <__stack_chk_fail+0x21>
+ 1038a3: e8 df ff ff ff call 103887 <__stack_chk_fail>
+ 1038a8: c9 leave
+ 1038a9: c3 ret
+
+001038aa <timer_handler>:
+ 1038aa: 55 push %ebp
+ 1038ab: 89 e5 mov %esp,%ebp
+ 1038ad: 83 ec 18 sub $0x18,%esp
+ 1038b0: a1 04 50 10 00 mov 0x105004,%eax
+ 1038b5: 89 45 f4 mov %eax,-0xc(%ebp)
+ 1038b8: 31 c0 xor %eax,%eax
+ 1038ba: a1 f0 aa 10 00 mov 0x10aaf0,%eax
+ 1038bf: 83 c0 01 add $0x1,%eax
+ 1038c2: a3 f0 aa 10 00 mov %eax,0x10aaf0
+ 1038c7: a1 f0 aa 10 00 mov 0x10aaf0,%eax
+ 1038cc: ba 32 00 00 00 mov $0x32,%edx
+ 1038d1: 39 d0 cmp %edx,%eax
+ 1038d3: 75 17 jne 1038ec <timer_handler+0x42>
+ 1038d5: c7 05 f0 aa 10 00 00 movl $0x0,0x10aaf0
+ 1038dc: 00 00 00
+ 1038df: a1 f4 aa 10 00 mov 0x10aaf4,%eax
+ 1038e4: 83 c0 01 add $0x1,%eax
+ 1038e7: a3 f4 aa 10 00 mov %eax,0x10aaf4
+ 1038ec: 83 ec 08 sub $0x8,%esp
+ 1038ef: 6a 20 push $0x20
+ 1038f1: 6a 20 push $0x20
+ 1038f3: e8 2b c7 ff ff call 100023 <ioport_out>
+ 1038f8: 83 c4 10 add $0x10,%esp
+ 1038fb: 83 ec 08 sub $0x8,%esp
+ 1038fe: 6a 20 push $0x20
+ 103900: 68 a0 00 00 00 push $0xa0
+ 103905: e8 19 c7 ff ff call 100023 <ioport_out>
+ 10390a: 83 c4 10 add $0x10,%esp
+ 10390d: 90 nop
+ 10390e: 8b 45 f4 mov -0xc(%ebp),%eax
+ 103911: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 103917: 74 05 je 10391e <timer_handler+0x74>
+ 103919: e8 69 ff ff ff call 103887 <__stack_chk_fail>
+ 10391e: c9 leave
+ 10391f: c3 ret
+
+00103920 <init_timer>:
+ 103920: 55 push %ebp
+ 103921: 89 e5 mov %esp,%ebp
+ 103923: 83 ec 28 sub $0x28,%esp
+ 103926: 8b 45 08 mov 0x8(%ebp),%eax
+ 103929: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 10392c: a1 04 50 10 00 mov 0x105004,%eax
+ 103931: 89 45 f4 mov %eax,-0xc(%ebp)
+ 103934: 31 c0 xor %eax,%eax
+ 103936: b8 dc 34 12 00 mov $0x1234dc,%eax
+ 10393b: ba 00 00 00 00 mov $0x0,%edx
+ 103940: f7 75 e4 divl -0x1c(%ebp)
+ 103943: 89 45 f0 mov %eax,-0x10(%ebp)
+ 103946: 83 ec 08 sub $0x8,%esp
+ 103949: 6a 36 push $0x36
+ 10394b: 6a 43 push $0x43
+ 10394d: e8 d1 c6 ff ff call 100023 <ioport_out>
+ 103952: 83 c4 10 add $0x10,%esp
+ 103955: 8b 45 f0 mov -0x10(%ebp),%eax
+ 103958: 88 45 ee mov %al,-0x12(%ebp)
+ 10395b: 8b 45 f0 mov -0x10(%ebp),%eax
+ 10395e: c1 e8 08 shr $0x8,%eax
+ 103961: 88 45 ef mov %al,-0x11(%ebp)
+ 103964: 0f b6 45 ee movzbl -0x12(%ebp),%eax
+ 103968: 0f be c0 movsbl %al,%eax
+ 10396b: 83 ec 08 sub $0x8,%esp
+ 10396e: 50 push %eax
+ 10396f: 6a 40 push $0x40
+ 103971: e8 ad c6 ff ff call 100023 <ioport_out>
+ 103976: 83 c4 10 add $0x10,%esp
+ 103979: 0f b6 45 ef movzbl -0x11(%ebp),%eax
+ 10397d: 0f be c0 movsbl %al,%eax
+ 103980: 83 ec 08 sub $0x8,%esp
+ 103983: 50 push %eax
+ 103984: 6a 40 push $0x40
+ 103986: e8 98 c6 ff ff call 100023 <ioport_out>
+ 10398b: 83 c4 10 add $0x10,%esp
+ 10398e: 90 nop
+ 10398f: 8b 45 f4 mov -0xc(%ebp),%eax
+ 103992: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 103998: 74 05 je 10399f <init_timer+0x7f>
+ 10399a: e8 e8 fe ff ff call 103887 <__stack_chk_fail>
+ 10399f: c9 leave
+ 1039a0: c3 ret
+
+001039a1 <set_pd>:
+ 1039a1: 55 push %ebp
+ 1039a2: 89 e5 mov %esp,%ebp
+ 1039a4: 83 ec 18 sub $0x18,%esp
+ 1039a7: a1 04 50 10 00 mov 0x105004,%eax
+ 1039ac: 89 45 f4 mov %eax,-0xc(%ebp)
+ 1039af: 31 c0 xor %eax,%eax
+ 1039b1: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp)
+ 1039b8: eb 12 jmp 1039cc <set_pd+0x2b>
+ 1039ba: 8b 45 f0 mov -0x10(%ebp),%eax
+ 1039bd: c7 04 85 00 b0 10 00 movl $0x2,0x10b000(,%eax,4)
+ 1039c4: 02 00 00 00
+ 1039c8: 83 45 f0 01 addl $0x1,-0x10(%ebp)
+ 1039cc: 81 7d f0 ff 03 00 00 cmpl $0x3ff,-0x10(%ebp)
+ 1039d3: 76 e5 jbe 1039ba <set_pd+0x19>
+ 1039d5: 90 nop
+ 1039d6: 8b 45 f4 mov -0xc(%ebp),%eax
+ 1039d9: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 1039df: 74 05 je 1039e6 <set_pd+0x45>
+ 1039e1: e8 a1 fe ff ff call 103887 <__stack_chk_fail>
+ 1039e6: c9 leave
+ 1039e7: c3 ret
+
+001039e8 <set_pt>:
+ 1039e8: 55 push %ebp
+ 1039e9: 89 e5 mov %esp,%ebp
+ 1039eb: 83 ec 28 sub $0x28,%esp
+ 1039ee: 8b 45 08 mov 0x8(%ebp),%eax
+ 1039f1: 89 45 e4 mov %eax,-0x1c(%ebp)
+ 1039f4: 8b 45 0c mov 0xc(%ebp),%eax
+ 1039f7: 89 45 e0 mov %eax,-0x20(%ebp)
+ 1039fa: a1 04 50 10 00 mov 0x105004,%eax
+ 1039ff: 89 45 f4 mov %eax,-0xc(%ebp)
+ 103a02: 31 c0 xor %eax,%eax
+ 103a04: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp)
+ 103a0b: eb 2a jmp 103a37 <set_pt+0x4f>
+ 103a0d: 8b 45 f0 mov -0x10(%ebp),%eax
+ 103a10: c1 e0 0c shl $0xc,%eax
+ 103a13: 89 c2 mov %eax,%edx
+ 103a15: 8b 45 e0 mov -0x20(%ebp),%eax
+ 103a18: 01 d0 add %edx,%eax
+ 103a1a: 83 c8 03 or $0x3,%eax
+ 103a1d: 89 c2 mov %eax,%edx
+ 103a1f: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 103a22: c1 e0 0a shl $0xa,%eax
+ 103a25: 89 c1 mov %eax,%ecx
+ 103a27: 8b 45 f0 mov -0x10(%ebp),%eax
+ 103a2a: 01 c8 add %ecx,%eax
+ 103a2c: 89 14 85 00 c0 10 00 mov %edx,0x10c000(,%eax,4)
+ 103a33: 83 45 f0 01 addl $0x1,-0x10(%ebp)
+ 103a37: 81 7d f0 ff 03 00 00 cmpl $0x3ff,-0x10(%ebp)
+ 103a3e: 76 cd jbe 103a0d <set_pt+0x25>
+ 103a40: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 103a43: c1 e0 0c shl $0xc,%eax
+ 103a46: 05 00 c0 10 00 add $0x10c000,%eax
+ 103a4b: 83 c8 03 or $0x3,%eax
+ 103a4e: 89 c2 mov %eax,%edx
+ 103a50: 8b 45 e4 mov -0x1c(%ebp),%eax
+ 103a53: 89 14 85 00 b0 10 00 mov %edx,0x10b000(,%eax,4)
+ 103a5a: 90 nop
+ 103a5b: 8b 45 f4 mov -0xc(%ebp),%eax
+ 103a5e: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 103a64: 74 05 je 103a6b <set_pt+0x83>
+ 103a66: e8 1c fe ff ff call 103887 <__stack_chk_fail>
+ 103a6b: c9 leave
+ 103a6c: c3 ret
+
+00103a6d <set_paging>:
+ 103a6d: 55 push %ebp
+ 103a6e: 89 e5 mov %esp,%ebp
+ 103a70: 83 ec 18 sub $0x18,%esp
+ 103a73: a1 04 50 10 00 mov 0x105004,%eax
+ 103a78: 89 45 f4 mov %eax,-0xc(%ebp)
+ 103a7b: 31 c0 xor %eax,%eax
+ 103a7d: e8 1f ff ff ff call 1039a1 <set_pd>
+ 103a82: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp)
+ 103a89: eb 19 jmp 103aa4 <set_paging+0x37>
+ 103a8b: 8b 45 f0 mov -0x10(%ebp),%eax
+ 103a8e: c1 e0 16 shl $0x16,%eax
+ 103a91: 83 ec 08 sub $0x8,%esp
+ 103a94: 50 push %eax
+ 103a95: ff 75 f0 push -0x10(%ebp)
+ 103a98: e8 4b ff ff ff call 1039e8 <set_pt>
+ 103a9d: 83 c4 10 add $0x10,%esp
+ 103aa0: 83 45 f0 01 addl $0x1,-0x10(%ebp)
+ 103aa4: 81 7d f0 ff 03 00 00 cmpl $0x3ff,-0x10(%ebp)
+ 103aab: 76 de jbe 103a8b <set_paging+0x1e>
+ 103aad: 83 ec 0c sub $0xc,%esp
+ 103ab0: 68 00 b0 10 00 push $0x10b000
+ 103ab5: e8 18 c8 ff ff call 1002d2 <loadPageDirectory>
+ 103aba: 83 c4 10 add $0x10,%esp
+ 103abd: e8 1e c8 ff ff call 1002e0 <enablePaging>
+ 103ac2: 90 nop
+ 103ac3: 8b 45 f4 mov -0xc(%ebp),%eax
+ 103ac6: 2b 05 04 50 10 00 sub 0x105004,%eax
+ 103acc: 74 05 je 103ad3 <set_paging+0x66>
+ 103ace: e8 b4 fd ff ff call 103887 <__stack_chk_fail>
+ 103ad3: c9 leave
+ 103ad4: c3 ret
+ 103ad5: 66 90 xchg %ax,%ax
+ 103ad7: 66 90 xchg %ax,%ax
+ 103ad9: 66 90 xchg %ax,%ax
+ 103adb: 66 90 xchg %ax,%ax
+ 103add: 66 90 xchg %ax,%ax
+ 103adf: 90 nop
+
+00103ae0 <__do_global_ctors_aux>:
+ 103ae0: a1 08 50 10 00 mov 0x105008,%eax
+ 103ae5: 83 f8 ff cmp $0xffffffff,%eax
+ 103ae8: 74 36 je 103b20 <__do_global_ctors_aux+0x40>
+ 103aea: 55 push %ebp
+ 103aeb: 89 e5 mov %esp,%ebp
+ 103aed: 53 push %ebx
+ 103aee: bb 08 50 10 00 mov $0x105008,%ebx
+ 103af3: 83 ec 04 sub $0x4,%esp
+ 103af6: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi
+ 103afd: 8d 76 00 lea 0x0(%esi),%esi
+ 103b00: ff d0 call *%eax
+ 103b02: 8b 43 fc mov -0x4(%ebx),%eax
+ 103b05: 83 eb 04 sub $0x4,%ebx
+ 103b08: 83 f8 ff cmp $0xffffffff,%eax
+ 103b0b: 75 f3 jne 103b00 <__do_global_ctors_aux+0x20>
+ 103b0d: 8b 5d fc mov -0x4(%ebp),%ebx
+ 103b10: c9 leave
+ 103b11: c3 ret
+ 103b12: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi
+ 103b19: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi
+ 103b20: c3 ret
+
+Disassembly of section .init:
+
+00103b21 <_init>:
+ 103b21: 55 push %ebp
+ 103b22: 89 e5 mov %esp,%ebp
+ 103b24: e8 17 c6 ff ff call 100140 <frame_dummy>
+ 103b29: e8 b2 ff ff ff call 103ae0 <__do_global_ctors_aux>
+ 103b2e: 5d pop %ebp
+ 103b2f: c3 ret
+
+Disassembly of section .fini:
+
+00103b30 <_fini>:
+ 103b30: 55 push %ebp
+ 103b31: 89 e5 mov %esp,%ebp
+ 103b33: e8 88 c5 ff ff call 1000c0 <__do_global_dtors_aux>
+ 103b38: 5d pop %ebp
+ 103b39: c3 ret
+
+Disassembly of section .rodata:
+
+00104000 <decimals-0x3c>:
+ 104000: 25 64 0a 00 25 and $0x25000a64,%eax
+ 104005: 73 0a jae 104011 <_fini+0x4e1>
+ 104007: 00 20 add %ah,(%eax)
+ 104009: 00 0a add %cl,(%edx)
+ 10400b: 00 25 73 00 25 63 add %ah,0x63250073
+ 104011: 00 00 add %al,(%eax)
+ 104013: 00 77 72 add %dh,0x72(%edi)
+ 104016: 6f outsl %ds:(%esi),(%dx)
+ 104017: 6e outsb %ds:(%esi),(%dx)
+ 104018: 67 20 66 6f and %ah,0x6f(%bp)
+ 10401c: 72 6d jb 10408b <VGA_HEIGHT+0x37>
+ 10401e: 61 popa
+ 10401f: 74 20 je 104041 <decimals+0x5>
+ 104021: 75 73 jne 104096 <VGA_HEIGHT+0x42>
+ 104023: 69 6e 67 20 70 72 69 imul $0x69727020,0x67(%esi),%ebp
+ 10402a: 6e outsb %ds:(%esi),(%dx)
+ 10402b: 74 20 je 10404d <decimals+0x11>
+ 10402d: 66 75 6e data16 jne 10409e <VGA_HEIGHT+0x4a>
+ 104030: 63 74 69 6f arpl %si,0x6f(%ecx,%ebp,2)
+ 104034: 6e outsb %ds:(%esi),(%dx)
+ 104035: 0a 00 or (%eax),%al
+ 104037: 00 30 add %dh,(%eax)
+ 104039: 00 00 add %al,(%eax)
+ ...
+
+0010403c <decimals>:
+ 10403c: 07 pop %es
+ 10403d: 00 00 add %al,(%eax)
+ 10403f: 00 2e add %ch,(%esi)
+ ...
+ 10404d: 00 24 40 add %ah,(%eax,%eax,2)
+
+00104050 <VGA_WIDTH>:
+ 104050: 50 push %eax
+ 104051: 00 00 add %al,(%eax)
+ ...
+
+00104054 <VGA_HEIGHT>:
+ 104054: 19 00 sbb %eax,(%eax)
+ 104056: 00 00 add %al,(%eax)
+ 104058: 25 73 20 00 0a and $0xa002073,%eax
+ 10405d: 00 25 73 0a 00 00 add %ah,0xa73
+ 104063: 00 46 69 add %al,0x69(%esi)
+ 104066: 6c insb (%dx),%es:(%edi)
+ 104067: 65 73 79 gs jae 1040e3 <VGA_HEIGHT+0x8f>
+ 10406a: 73 74 jae 1040e0 <VGA_HEIGHT+0x8c>
+ 10406c: 65 6d gs insl (%dx),%es:(%edi)
+ 10406e: 20 6e 6f and %ch,0x6f(%esi)
+ 104071: 74 20 je 104093 <VGA_HEIGHT+0x3f>
+ 104073: 69 6d 70 6c 65 6d 65 imul $0x656d656c,0x70(%ebp),%ebp
+ 10407a: 6e outsb %ds:(%esi),(%dx)
+ 10407b: 74 65 je 1040e2 <VGA_HEIGHT+0x8e>
+ 10407d: 64 20 79 65 and %bh,%fs:0x65(%ecx)
+ 104081: 74 0a je 10408d <VGA_HEIGHT+0x39>
+ 104083: 00 50 6c add %dl,0x6c(%eax)
+ 104086: 65 61 gs popa
+ 104088: 73 65 jae 1040ef <VGA_HEIGHT+0x9b>
+ 10408a: 20 65 6e and %ah,0x6e(%ebp)
+ 10408d: 74 65 je 1040f4 <VGA_HEIGHT+0xa0>
+ 10408f: 72 20 jb 1040b1 <VGA_HEIGHT+0x5d>
+ 104091: 61 popa
+ 104092: 20 6e 75 and %ch,0x75(%esi)
+ 104095: 6d insl (%dx),%es:(%edi)
+ 104096: 62 65 72 bound %esp,0x72(%ebp)
+ 104099: 0a 00 or (%eax),%al
+ 10409b: 45 inc %ebp
+ 10409c: 6e outsb %ds:(%esi),(%dx)
+ 10409d: 74 65 je 104104 <VGA_HEIGHT+0xb0>
+ 10409f: 72 65 jb 104106 <VGA_HEIGHT+0xb2>
+ 1040a1: 64 20 69 6e and %ch,%fs:0x6e(%ecx)
+ 1040a5: 74 65 je 10410c <VGA_HEIGHT+0xb8>
+ 1040a7: 67 65 72 20 addr16 gs jb 1040cb <VGA_HEIGHT+0x77>
+ 1040ab: 6e outsb %ds:(%esi),(%dx)
+ 1040ac: 75 6d jne 10411b <VGA_HEIGHT+0xc7>
+ 1040ae: 62 65 72 bound %esp,0x72(%ebp)
+ 1040b1: 20 69 73 and %ch,0x73(%ecx)
+ 1040b4: 20 25 64 0a 00 45 and %ah,0x45000a64
+ 1040ba: 6e outsb %ds:(%esi),(%dx)
+ 1040bb: 74 65 je 104122 <VGA_HEIGHT+0xce>
+ 1040bd: 72 65 jb 104124 <VGA_HEIGHT+0xd0>
+ 1040bf: 64 20 66 6c and %ah,%fs:0x6c(%esi)
+ 1040c3: 6f outsl %ds:(%esi),(%dx)
+ 1040c4: 61 popa
+ 1040c5: 74 20 je 1040e7 <VGA_HEIGHT+0x93>
+ 1040c7: 6e outsb %ds:(%esi),(%dx)
+ 1040c8: 75 6d jne 104137 <VGA_HEIGHT+0xe3>
+ 1040ca: 62 65 72 bound %esp,0x72(%ebp)
+ 1040cd: 20 69 73 and %ch,0x73(%ecx)
+ 1040d0: 3a 20 cmp (%eax),%ah
+ 1040d2: 25 66 0a 00 53 and $0x53000a66,%eax
+ 1040d7: 79 73 jns 10414c <VGA_HEIGHT+0xf8>
+ 1040d9: 74 65 je 104140 <VGA_HEIGHT+0xec>
+ 1040db: 6d insl (%dx),%es:(%edi)
+ 1040dc: 20 75 70 and %dh,0x70(%ebp)
+ 1040df: 74 69 je 10414a <VGA_HEIGHT+0xf6>
+ 1040e1: 6d insl (%dx),%es:(%edi)
+ 1040e2: 65 20 69 73 and %ch,%gs:0x73(%ecx)
+ 1040e6: 3a 20 cmp (%eax),%ah
+ 1040e8: 25 64 20 73 65 and $0x65732064,%eax
+ 1040ed: 63 6f 6e arpl %bp,0x6e(%edi)
+ 1040f0: 64 73 0a fs jae 1040fd <VGA_HEIGHT+0xa9>
+ 1040f3: 00 5b 00 add %bl,0x0(%ebx)
+ 1040f6: 75 73 jne 10416b <VGA_HEIGHT+0x117>
+ 1040f8: 65 72 00 gs jb 1040fb <VGA_HEIGHT+0xa7>
+ 1040fb: 40 inc %eax
+ 1040fc: 00 6d 79 add %ch,0x79(%ebp)
+ 1040ff: 6f outsl %ds:(%esi),(%dx)
+ 104100: 73 00 jae 104102 <VGA_HEIGHT+0xae>
+ 104102: 5d pop %ebp
+ 104103: 00 24 20 add %ah,(%eax,%eiz,1)
+ 104106: 00 20 add %ah,(%eax)
+ 104108: 20 20 and %ah,(%eax)
+ 10410a: 20 20 and %ah,(%eax)
+ 10410c: 20 2e and %ch,(%esi)
+ 10410e: 20 20 and %ah,(%eax)
+ 104110: 20 20 and %ah,(%eax)
+ 104112: 20 20 and %ah,(%eax)
+ 104114: 20 20 and %ah,(%eax)
+ 104116: 20 20 and %ah,(%eax)
+ 104118: 20 20 and %ah,(%eax)
+ 10411a: 20 20 and %ah,(%eax)
+ 10411c: 20 20 and %ah,(%eax)
+ 10411e: 00 44 6f 62 add %al,0x62(%edi,%ebp,2)
+ 104122: 72 6f jb 104193 <VGA_HEIGHT+0x13f>
+ 104124: 64 6f outsl %fs:(%esi),(%dx)
+ 104126: 73 6c jae 104194 <VGA_HEIGHT+0x140>
+ 104128: 69 20 75 20 6d 6f imul $0x6f6d2075,(%eax),%esp
+ 10412e: 6a 20 push $0x20
+ 104130: 20 20 and %ah,(%eax)
+ 104132: 20 20 and %ah,(%eax)
+ 104134: 0a 00 or (%eax),%al
+ 104136: 20 20 and %ah,(%eax)
+ 104138: 20 20 and %ah,(%eax)
+ 10413a: 20 4a 3a and %cl,0x3a(%edx)
+ 10413d: 4c dec %esp
+ 10413e: 20 20 and %ah,(%eax)
+ 104140: 20 20 and %ah,(%eax)
+ 104142: 28 22 sub %ah,(%edx)
+ 104144: 22 22 and (%edx),%ah
+ 104146: 29 20 sub %esp,(%eax)
+ 104148: 20 20 and %ah,(%eax)
+ 10414a: 20 20 and %ah,(%eax)
+ 10414c: 20 00 and %al,(%eax)
+ 10414e: 6f outsl %ds:(%esi),(%dx)
+ 10414f: 70 65 jo 1041b6 <VGA_HEIGHT+0x162>
+ 104151: 72 61 jb 1041b4 <VGA_HEIGHT+0x160>
+ 104153: 74 69 je 1041be <VGA_HEIGHT+0x16a>
+ 104155: 76 6e jbe 1041c5 <VGA_HEIGHT+0x171>
+ 104157: 69 20 73 69 73 74 imul $0x74736973,(%eax),%esp
+ 10415d: 65 6d gs insl (%dx),%es:(%edi)
+ 10415f: 20 3a and %bh,(%edx)
+ 104161: 29 20 sub %esp,(%eax)
+ 104163: 0a 00 or (%eax),%al
+ 104165: 20 20 and %ah,(%eax)
+ 104167: 20 20 and %ah,(%eax)
+ 104169: 20 7c 3a 7c and %bh,0x7c(%edx,%edi,1)
+ 10416d: 20 20 and %ah,(%eax)
+ 10416f: 20 20 and %ah,(%eax)
+ 104171: 20 49 49 and %cl,0x49(%ecx)
+ 104174: 49 dec %ecx
+ 104175: 20 20 and %ah,(%eax)
+ 104177: 20 20 and %ah,(%eax)
+ 104179: 20 20 and %ah,(%eax)
+ 10417b: 20 00 and %al,(%eax)
+ 10417d: 55 push %ebp
+ 10417e: 7a 69 jp 1041e9 <VGA_HEIGHT+0x195>
+ 104180: 76 61 jbe 1041e3 <VGA_HEIGHT+0x18f>
+ 104182: 6a 74 push $0x74
+ 104184: 65 21 20 and %esp,%gs:(%eax)
+ 104187: 20 20 and %ah,(%eax)
+ 104189: 20 20 and %ah,(%eax)
+ 10418b: 20 20 and %ah,(%eax)
+ 10418d: 20 20 and %ah,(%eax)
+ 10418f: 20 20 and %ah,(%eax)
+ 104191: 20 0a and %cl,(%edx)
+ 104193: 00 20 add %ah,(%eax)
+ 104195: 20 20 and %ah,(%eax)
+ 104197: 20 20 and %ah,(%eax)
+ 104199: 20 20 and %ah,(%eax)
+ 10419b: 20 20 and %ah,(%eax)
+ 10419d: 20 20 and %ah,(%eax)
+ 10419f: 20 20 and %ah,(%eax)
+ 1041a1: 20 20 and %ah,(%eax)
+ 1041a3: 20 20 and %ah,(%eax)
+ 1041a5: 20 20 and %ah,(%eax)
+ 1041a7: 20 20 and %ah,(%eax)
+ 1041a9: 0a 00 or (%eax),%al
+ 1041ab: 57 push %edi
+ 1041ac: 65 6c gs insb (%dx),%es:(%edi)
+ 1041ae: 63 6f 6d arpl %bp,0x6d(%edi)
+ 1041b1: 65 20 74 6f 20 and %dh,%gs:0x20(%edi,%ebp,2)
+ 1041b6: 6d insl (%dx),%es:(%edi)
+ 1041b7: 79 20 jns 1041d9 <VGA_HEIGHT+0x185>
+ 1041b9: 20 20 and %ah,(%eax)
+ 1041bb: 20 20 and %ah,(%eax)
+ 1041bd: 20 20 and %ah,(%eax)
+ 1041bf: 20 0a and %cl,(%edx)
+ 1041c1: 00 20 add %ah,(%eax)
+ 1041c3: 20 20 and %ah,(%eax)
+ 1041c5: 20 20 and %ah,(%eax)
+ 1041c7: 7c 3a jl 104203 <VGA_HEIGHT+0x1af>
+ 1041c9: 7c 20 jl 1041eb <VGA_HEIGHT+0x197>
+ 1041cb: 20 20 and %ah,(%eax)
+ 1041cd: 5f pop %edi
+ 1041ce: 5f pop %edi
+ 1041cf: 49 dec %ecx
+ 1041d0: 49 dec %ecx
+ 1041d1: 49 dec %ecx
+ 1041d2: 5f pop %edi
+ 1041d3: 5f pop %edi
+ 1041d4: 20 20 and %ah,(%eax)
+ 1041d6: 20 20 and %ah,(%eax)
+ 1041d8: 20 00 and %al,(%eax)
+ 1041da: 6f outsl %ds:(%esi),(%dx)
+ 1041db: 70 65 jo 104242 <VGA_HEIGHT+0x1ee>
+ 1041dd: 72 61 jb 104240 <VGA_HEIGHT+0x1ec>
+ 1041df: 74 69 je 10424a <VGA_HEIGHT+0x1f6>
+ 1041e1: 6e outsb %ds:(%esi),(%dx)
+ 1041e2: 67 20 73 79 and %dh,0x79(%bp,%di)
+ 1041e6: 73 74 jae 10425c <VGA_HEIGHT+0x208>
+ 1041e8: 65 6d gs insl (%dx),%es:(%edi)
+ 1041ea: 20 3a and %bh,(%edx)
+ 1041ec: 29 20 sub %esp,(%eax)
+ 1041ee: 20 0a and %cl,(%edx)
+ 1041f0: 00 20 add %ah,(%eax)
+ 1041f2: 20 20 and %ah,(%eax)
+ 1041f4: 20 20 and %ah,(%eax)
+ 1041f6: 7c 3a jl 104232 <VGA_HEIGHT+0x1de>
+ 1041f8: 7c 20 jl 10421a <VGA_HEIGHT+0x1c6>
+ 1041fa: 2f das
+ 1041fb: 3a 2d 2e 5f 5f 5f cmp 0x5f5f5f2e,%ch
+ 104201: 2c 2d sub $0x2d,%al
+ 104203: 3a 5c 20 20 cmp 0x20(%eax,%eiz,1),%bl
+ 104207: 20 00 and %al,(%eax)
+ 104209: 45 inc %ebp
+ 10420a: 6e outsb %ds:(%esi),(%dx)
+ 10420b: 6a 6f push $0x6f
+ 10420d: 79 20 jns 10422f <VGA_HEIGHT+0x1db>
+ 10420f: 79 6f jns 104280 <VGA_HEIGHT+0x22c>
+ 104211: 75 72 jne 104285 <VGA_HEIGHT+0x231>
+ 104213: 20 73 74 and %dh,0x74(%ebx)
+ 104216: 61 popa
+ 104217: 79 21 jns 10423a <VGA_HEIGHT+0x1e6>
+ 104219: 20 20 and %ah,(%eax)
+ 10421b: 20 20 and %ah,(%eax)
+ 10421d: 20 0a and %cl,(%edx)
+ 10421f: 00 20 add %ah,(%eax)
+ 104221: 20 20 and %ah,(%eax)
+ 104223: 20 20 and %ah,(%eax)
+ 104225: 7c 3a jl 104261 <VGA_HEIGHT+0x20d>
+ 104227: 7c 20 jl 104249 <VGA_HEIGHT+0x1f5>
+ 104229: 5c pop %esp
+ 10422a: 5d pop %ebp
+ 10422b: 20 20 and %ah,(%eax)
+ 10422d: 7c 3a jl 104269 <VGA_HEIGHT+0x215>
+ 10422f: 7c 20 jl 104251 <VGA_HEIGHT+0x1fd>
+ 104231: 20 5b 2f and %bl,0x2f(%ebx)
+ 104234: 20 20 and %ah,(%eax)
+ 104236: 20 00 and %al,(%eax)
+ 104238: 20 20 and %ah,(%eax)
+ 10423a: 20 20 and %ah,(%eax)
+ 10423c: 20 7c 3a 7c and %bh,0x7c(%edx,%edi,1)
+ 104240: 20 20 and %ah,(%eax)
+ 104242: 20 20 and %ah,(%eax)
+ 104244: 20 7c 3a 7c and %bh,0x7c(%edx,%edi,1)
+ 104248: 20 20 and %ah,(%eax)
+ 10424a: 20 20 and %ah,(%eax)
+ 10424c: 20 20 and %ah,(%eax)
+ 10424e: 20 00 and %al,(%eax)
+ 104250: 20 2f and %ch,(%edi)
+ 104252: 5d pop %ebp
+ 104253: 20 20 and %ah,(%eax)
+ 104255: 7c 3a jl 104291 <VGA_HEIGHT+0x23d>
+ 104257: 7c 20 jl 104279 <VGA_HEIGHT+0x225>
+ 104259: 20 5b 5c and %bl,0x5c(%ebx)
+ 10425c: 20 7c 3a 7c and %bh,0x7c(%edx,%edi,1)
+ 104260: 20 20 and %ah,(%eax)
+ 104262: 20 20 and %ah,(%eax)
+ 104264: 20 20 and %ah,(%eax)
+ 104266: 20 00 and %al,(%eax)
+ 104268: 20 5c 3a 2d and %bl,0x2d(%edx,%edi,1)
+ 10426c: 27 daa
+ 10426d: 22 22 and (%edx),%ah
+ 10426f: 22 60 2d and 0x2d(%eax),%ah
+ 104272: 3a 2f cmp (%edi),%ch
+ 104274: 20 7c 3a 7c and %bh,0x7c(%edx,%edi,1)
+ 104278: 20 20 and %ah,(%eax)
+ 10427a: 20 20 and %ah,(%eax)
+ 10427c: 20 20 and %ah,(%eax)
+ 10427e: 20 00 and %al,(%eax)
+ 104280: 20 20 and %ah,(%eax)
+ 104282: 20 22 and %ah,(%edx)
+ 104284: 22 49 49 and 0x49(%ecx),%cl
+ 104287: 49 dec %ecx
+ 104288: 22 22 and (%edx),%ah
+ 10428a: 20 20 and %ah,(%eax)
+ 10428c: 20 7c 3a 7c and %bh,0x7c(%edx,%edi,1)
+ 104290: 20 20 and %ah,(%eax)
+ 104292: 20 20 and %ah,(%eax)
+ 104294: 20 20 and %ah,(%eax)
+ 104296: 20 00 and %al,(%eax)
+ 104298: 20 20 and %ah,(%eax)
+ 10429a: 20 20 and %ah,(%eax)
+ 10429c: 20 49 49 and %cl,0x49(%ecx)
+ 10429f: 49 dec %ecx
+ 1042a0: 20 20 and %ah,(%eax)
+ 1042a2: 20 20 and %ah,(%eax)
+ 1042a4: 20 7c 3a 7c and %bh,0x7c(%edx,%edi,1)
+ 1042a8: 20 20 and %ah,(%eax)
+ 1042aa: 20 20 and %ah,(%eax)
+ 1042ac: 20 20 and %ah,(%eax)
+ 1042ae: 20 00 and %al,(%eax)
+ 1042b0: 6e outsb %ds:(%esi),(%dx)
+ 1042b1: 61 popa
+ 1042b2: 70 72 jo 104326 <VGA_HEIGHT+0x2d2>
+ 1042b4: 61 popa
+ 1042b5: 76 69 jbe 104320 <VGA_HEIGHT+0x2cc>
+ 1042b7: 6f outsl %ds:(%esi),(%dx)
+ 1042b8: 2f das
+ 1042b9: 6d insl (%dx),%es:(%edi)
+ 1042ba: 61 popa
+ 1042bb: 64 65 20 62 79 fs and %ah,%gs:0x79(%edx)
+ 1042c0: 3a 20 cmp (%eax),%ah
+ 1042c2: 20 20 and %ah,(%eax)
+ 1042c4: 20 0a and %cl,(%edx)
+ 1042c6: 00 20 add %ah,(%eax)
+ 1042c8: 20 20 and %ah,(%eax)
+ 1042ca: 20 28 and %ch,(%eax)
+ 1042cc: 5f pop %edi
+ 1042cd: 5f pop %edi
+ 1042ce: 5f pop %edi
+ 1042cf: 29 20 sub %esp,(%eax)
+ 1042d1: 20 20 and %ah,(%eax)
+ 1042d3: 20 4a 3a and %cl,0x3a(%edx)
+ 1042d6: 46 inc %esi
+ 1042d7: 20 20 and %ah,(%eax)
+ 1042d9: 20 20 and %ah,(%eax)
+ 1042db: 20 20 and %ah,(%eax)
+ 1042dd: 20 00 and %al,(%eax)
+ 1042df: 41 inc %ecx
+ 1042e0: 6c insb (%dx),%es:(%edi)
+ 1042e1: 65 6b 73 61 20 imul $0x20,%gs:0x61(%ebx),%esi
+ 1042e6: 56 push %esi
+ 1042e7: 75 63 jne 10434c <VGA_HEIGHT+0x2f8>
+ 1042e9: 6b 6f 76 69 imul $0x69,0x76(%edi),%ebp
+ 1042ed: 63 20 arpl %sp,(%eax)
+ 1042ef: 20 20 and %ah,(%eax)
+ 1042f1: 20 20 and %ah,(%eax)
+ 1042f3: 20 0a and %cl,(%edx)
+ 1042f5: 00 20 add %ah,(%eax)
+ 1042f7: 20 20 and %ah,(%eax)
+ 1042f9: 20 20 and %ah,(%eax)
+ 1042fb: 20 20 and %ah,(%eax)
+ 1042fd: 20 20 and %ah,(%eax)
+ 1042ff: 20 20 and %ah,(%eax)
+ 104301: 20 20 and %ah,(%eax)
+ 104303: 20 22 and %ah,(%edx)
+ 104305: 20 20 and %ah,(%eax)
+ 104307: 20 20 and %ah,(%eax)
+ 104309: 20 20 and %ah,(%eax)
+ 10430b: 20 20 and %ah,(%eax)
+ 10430d: 00 20 add %ah,(%eax)
+ 10430f: 20 00 and %al,(%eax)
+ 104311: 00 00 add %al,(%eax)
+ 104313: 00 43 75 add %al,0x75(%ebx)
+ 104316: 72 72 jb 10438a <VGA_HEIGHT+0x336>
+ 104318: 65 6e outsb %gs:(%esi),(%dx)
+ 10431a: 74 6c je 104388 <VGA_HEIGHT+0x334>
+ 10431c: 79 20 jns 10433e <VGA_HEIGHT+0x2ea>
+ 10431e: 61 popa
+ 10431f: 76 61 jbe 104382 <VGA_HEIGHT+0x32e>
+ 104321: 69 6c 61 62 6c 65 20 imul $0x6320656c,0x62(%ecx,%eiz,2),%ebp
+ 104328: 63
+ 104329: 6f outsl %ds:(%esi),(%dx)
+ 10432a: 6d insl (%dx),%es:(%edi)
+ 10432b: 6d insl (%dx),%es:(%edi)
+ 10432c: 61 popa
+ 10432d: 6e outsb %ds:(%esi),(%dx)
+ 10432e: 64 73 3a fs jae 10436b <VGA_HEIGHT+0x317>
+ 104331: 0a 00 or (%eax),%al
+ 104333: 00 63 6c add %ah,0x6c(%ebx)
+ 104336: 65 61 gs popa
+ 104338: 72 20 jb 10435a <VGA_HEIGHT+0x306>
+ 10433a: 65 63 68 6f arpl %bp,%gs:0x6f(%eax)
+ 10433e: 20 6d 65 and %ch,0x65(%ebp)
+ 104341: 72 67 jb 1043aa <VGA_HEIGHT+0x356>
+ 104343: 65 20 6c 73 20 and %ch,%gs:0x20(%ebx,%esi,2)
+ 104348: 6e outsb %ds:(%esi),(%dx)
+ 104349: 75 6d jne 1043b8 <VGA_HEIGHT+0x8>
+ 10434b: 62 65 72 bound %esp,0x72(%ebp)
+ 10434e: 20 75 70 and %dh,0x70(%ebp)
+ 104351: 74 69 je 1043bc <VGA_HEIGHT+0xc>
+ 104353: 6d insl (%dx),%es:(%edi)
+ 104354: 65 20 6e 65 and %ch,%gs:0x65(%esi)
+ 104358: 6f outsl %ds:(%esi),(%dx)
+ 104359: 66 65 74 63 data16 gs je 1043c0 <VGA_HEIGHT+0x10>
+ 10435d: 68 20 68 65 6c push $0x6c656820
+ 104362: 70 0a jo 10436e <VGA_HEIGHT+0x31a>
+ 104364: 00 63 6c add %ah,0x6c(%ebx)
+ 104367: 65 61 gs popa
+ 104369: 72 00 jb 10436b <VGA_HEIGHT+0x317>
+ 10436b: 65 63 68 6f arpl %bp,%gs:0x6f(%eax)
+ 10436f: 00 6d 65 add %ch,0x65(%ebp)
+ 104372: 72 67 jb 1043db <VGA_HEIGHT+0x2b>
+ 104374: 65 00 6c 73 00 add %ch,%gs:0x0(%ebx,%esi,2)
+ 104379: 6e outsb %ds:(%esi),(%dx)
+ 10437a: 75 6d jne 1043e9 <VGA_HEIGHT+0x39>
+ 10437c: 62 65 72 bound %esp,0x72(%ebp)
+ 10437f: 00 75 70 add %dh,0x70(%ebp)
+ 104382: 74 69 je 1043ed <VGA_HEIGHT+0x3d>
+ 104384: 6d insl (%dx),%es:(%edi)
+ 104385: 65 00 6e 65 add %ch,%gs:0x65(%esi)
+ 104389: 6f outsl %ds:(%esi),(%dx)
+ 10438a: 66 65 74 63 data16 gs je 1043f1 <VGA_HEIGHT+0x41>
+ 10438e: 68 00 68 65 6c push $0x6c656800
+ 104393: 70 00 jo 104395 <VGA_HEIGHT+0x341>
+ 104395: 63 6f 6d arpl %bp,0x6d(%edi)
+ 104398: 6d insl (%dx),%es:(%edi)
+ 104399: 61 popa
+ 10439a: 6e outsb %ds:(%esi),(%dx)
+ 10439b: 64 20 6e 6f and %ch,%fs:0x6f(%esi)
+ 10439f: 74 20 je 1043c1 <VGA_HEIGHT+0x11>
+ 1043a1: 66 6f outsw %ds:(%esi),(%dx)
+ 1043a3: 75 6e jne 104413 <VGA_HEIGHT+0x63>
+ 1043a5: 64 3a 20 cmp %fs:(%eax),%ah
+ 1043a8: 25 73 0a 00 and $0x50000a73,%eax
+
+001043ac <VGA_WIDTH>:
+ 1043ac: 50 push %eax
+ 1043ad: 00 00 add %al,(%eax)
+ ...
+
+001043b0 <VGA_HEIGHT>:
+ 1043b0: 19 00 sbb %eax,(%eax)
+ 1043b2: 00 00 add %al,(%eax)
+ 1043b4: 49 dec %ecx
+ 1043b5: 6e outsb %ds:(%esi),(%dx)
+ 1043b6: 74 65 je 10441d <VGA_HEIGHT+0x6d>
+ 1043b8: 72 72 jb 10442c <VGA_HEIGHT+0x7c>
+ 1043ba: 75 70 jne 10442c <VGA_HEIGHT+0x7c>
+ 1043bc: 74 20 je 1043de <VGA_HEIGHT+0x2e>
+ 1043be: 30 2e xor %ch,(%esi)
+ 1043c0: 0a 00 or (%eax),%al
+ 1043c2: 44 inc %esp
+ 1043c3: 69 76 69 64 65 2d 62 imul $0x622d6564,0x69(%esi),%esi
+ 1043ca: 79 2d jns 1043f9 <VGA_HEIGHT+0x49>
+ 1043cc: 7a 65 jp 104433 <VGA_HEIGHT+0x83>
+ 1043ce: 72 6f jb 10443f <VGA_HEIGHT+0x8f>
+ 1043d0: 20 45 72 and %al,0x72(%ebp)
+ 1043d3: 72 6f jb 104444 <VGA_HEIGHT+0x94>
+ 1043d5: 72 0a jb 1043e1 <VGA_HEIGHT+0x31>
+ 1043d7: 00 49 6e add %cl,0x6e(%ecx)
+ 1043da: 74 65 je 104441 <VGA_HEIGHT+0x91>
+ 1043dc: 72 72 jb 104450 <VGA_HEIGHT+0xa0>
+ 1043de: 75 70 jne 104450 <VGA_HEIGHT+0xa0>
+ 1043e0: 74 20 je 104402 <VGA_HEIGHT+0x52>
+ 1043e2: 31 2e xor %ebp,(%esi)
+ 1043e4: 0a 00 or (%eax),%al
+ 1043e6: 44 inc %esp
+ 1043e7: 65 62 75 67 bound %esi,%gs:0x67(%ebp)
+ 1043eb: 0a 00 or (%eax),%al
+ 1043ed: 49 dec %ecx
+ 1043ee: 6e outsb %ds:(%esi),(%dx)
+ 1043ef: 74 65 je 104456 <VGA_HEIGHT+0xa6>
+ 1043f1: 72 72 jb 104465 <VGA_HEIGHT+0xb5>
+ 1043f3: 75 70 jne 104465 <VGA_HEIGHT+0xb5>
+ 1043f5: 74 20 je 104417 <VGA_HEIGHT+0x67>
+ 1043f7: 32 2e xor (%esi),%ch
+ 1043f9: 0a 00 or (%eax),%al
+ 1043fb: 4e dec %esi
+ 1043fc: 6f outsl %ds:(%esi),(%dx)
+ 1043fd: 6e outsb %ds:(%esi),(%dx)
+ 1043fe: 2d 6d 61 73 6b sub $0x6b73616d,%eax
+ 104403: 61 popa
+ 104404: 62 6c 65 20 bound %ebp,0x20(%ebp,%eiz,2)
+ 104408: 49 dec %ecx
+ 104409: 6e outsb %ds:(%esi),(%dx)
+ 10440a: 74 65 je 104471 <VGA_HEIGHT+0xc1>
+ 10440c: 72 72 jb 104480 <VGA_HEIGHT+0xd0>
+ 10440e: 75 70 jne 104480 <VGA_HEIGHT+0xd0>
+ 104410: 74 0a je 10441c <VGA_HEIGHT+0x6c>
+ 104412: 00 49 6e add %cl,0x6e(%ecx)
+ 104415: 74 65 je 10447c <VGA_HEIGHT+0xcc>
+ 104417: 72 72 jb 10448b <VGA_HEIGHT+0xdb>
+ 104419: 75 70 jne 10448b <VGA_HEIGHT+0xdb>
+ 10441b: 74 20 je 10443d <VGA_HEIGHT+0x8d>
+ 10441d: 33 2e xor (%esi),%ebp
+ 10441f: 0a 00 or (%eax),%al
+ 104421: 42 inc %edx
+ 104422: 72 65 jb 104489 <VGA_HEIGHT+0xd9>
+ 104424: 61 popa
+ 104425: 6b 70 6f 69 imul $0x69,0x6f(%eax),%esi
+ 104429: 6e outsb %ds:(%esi),(%dx)
+ 10442a: 74 0a je 104436 <VGA_HEIGHT+0x86>
+ 10442c: 00 49 6e add %cl,0x6e(%ecx)
+ 10442f: 74 65 je 104496 <VGA_HEIGHT+0xe6>
+ 104431: 72 72 jb 1044a5 <VGA_HEIGHT+0xf5>
+ 104433: 75 70 jne 1044a5 <VGA_HEIGHT+0xf5>
+ 104435: 74 20 je 104457 <VGA_HEIGHT+0xa7>
+ 104437: 34 2e xor $0x2e,%al
+ 104439: 0a 00 or (%eax),%al
+ 10443b: 4f dec %edi
+ 10443c: 76 65 jbe 1044a3 <VGA_HEIGHT+0xf3>
+ 10443e: 72 66 jb 1044a6 <VGA_HEIGHT+0xf6>
+ 104440: 6c insb (%dx),%es:(%edi)
+ 104441: 6f outsl %ds:(%esi),(%dx)
+ 104442: 77 0a ja 10444e <VGA_HEIGHT+0x9e>
+ 104444: 00 49 6e add %cl,0x6e(%ecx)
+ 104447: 74 65 je 1044ae <VGA_HEIGHT+0xfe>
+ 104449: 72 72 jb 1044bd <VGA_HEIGHT+0x10d>
+ 10444b: 75 70 jne 1044bd <VGA_HEIGHT+0x10d>
+ 10444d: 74 20 je 10446f <VGA_HEIGHT+0xbf>
+ 10444f: 35 2e 0a 00 42 xor $0x42000a2e,%eax
+ 104454: 6f outsl %ds:(%esi),(%dx)
+ 104455: 75 6e jne 1044c5 <VGA_HEIGHT+0x115>
+ 104457: 64 20 52 61 and %dl,%fs:0x61(%edx)
+ 10445b: 6e outsb %ds:(%esi),(%dx)
+ 10445c: 67 65 20 45 78 and %al,%gs:0x78(%di)
+ 104461: 63 65 65 arpl %sp,0x65(%ebp)
+ 104464: 64 65 64 0a 00 fs gs or %fs:(%eax),%al
+ 104469: 49 dec %ecx
+ 10446a: 6e outsb %ds:(%esi),(%dx)
+ 10446b: 74 65 je 1044d2 <VGA_HEIGHT+0x122>
+ 10446d: 72 72 jb 1044e1 <VGA_HEIGHT+0x131>
+ 10446f: 75 70 jne 1044e1 <VGA_HEIGHT+0x131>
+ 104471: 74 20 je 104493 <VGA_HEIGHT+0xe3>
+ 104473: 36 2e 0a 00 ss or %cs:(%eax),%al
+ 104477: 49 dec %ecx
+ 104478: 6e outsb %ds:(%esi),(%dx)
+ 104479: 76 61 jbe 1044dc <VGA_HEIGHT+0x12c>
+ 10447b: 6c insb (%dx),%es:(%edi)
+ 10447c: 69 64 20 4f 70 63 6f imul $0x646f6370,0x4f(%eax,%eiz,1),%esp
+ 104483: 64
+ 104484: 65 0a 00 or %gs:(%eax),%al
+ 104487: 49 dec %ecx
+ 104488: 6e outsb %ds:(%esi),(%dx)
+ 104489: 74 65 je 1044f0 <VGA_HEIGHT+0x140>
+ 10448b: 72 72 jb 1044ff <VGA_HEIGHT+0x14f>
+ 10448d: 75 70 jne 1044ff <VGA_HEIGHT+0x14f>
+ 10448f: 74 20 je 1044b1 <VGA_HEIGHT+0x101>
+ 104491: 37 aaa
+ 104492: 2e 0a 00 or %cs:(%eax),%al
+ 104495: 44 inc %esp
+ 104496: 65 76 69 gs jbe 104502 <VGA_HEIGHT+0x152>
+ 104499: 63 65 20 arpl %sp,0x20(%ebp)
+ 10449c: 4e dec %esi
+ 10449d: 6f outsl %ds:(%esi),(%dx)
+ 10449e: 74 20 je 1044c0 <VGA_HEIGHT+0x110>
+ 1044a0: 41 inc %ecx
+ 1044a1: 76 61 jbe 104504 <VGA_HEIGHT+0x154>
+ 1044a3: 69 6c 61 62 6c 65 0a imul $0xa656c,0x62(%ecx,%eiz,2),%ebp
+ 1044aa: 00
+ 1044ab: 49 dec %ecx
+ 1044ac: 6e outsb %ds:(%esi),(%dx)
+ 1044ad: 74 65 je 104514 <VGA_HEIGHT+0x164>
+ 1044af: 72 72 jb 104523 <VGA_HEIGHT+0x173>
+ 1044b1: 75 70 jne 104523 <VGA_HEIGHT+0x173>
+ 1044b3: 74 20 je 1044d5 <VGA_HEIGHT+0x125>
+ 1044b5: 38 2e cmp %ch,(%esi)
+ 1044b7: 0a 00 or (%eax),%al
+ 1044b9: 44 inc %esp
+ 1044ba: 6f outsl %ds:(%esi),(%dx)
+ 1044bb: 75 62 jne 10451f <VGA_HEIGHT+0x16f>
+ 1044bd: 6c insb (%dx),%es:(%edi)
+ 1044be: 65 20 46 61 and %al,%gs:0x61(%esi)
+ 1044c2: 75 6c jne 104530 <VGA_HEIGHT+0x180>
+ 1044c4: 74 0a je 1044d0 <VGA_HEIGHT+0x120>
+ 1044c6: 00 49 6e add %cl,0x6e(%ecx)
+ 1044c9: 74 65 je 104530 <VGA_HEIGHT+0x180>
+ 1044cb: 72 72 jb 10453f <VGA_HEIGHT+0x18f>
+ 1044cd: 75 70 jne 10453f <VGA_HEIGHT+0x18f>
+ 1044cf: 74 20 je 1044f1 <VGA_HEIGHT+0x141>
+ 1044d1: 39 2e cmp %ebp,(%esi)
+ 1044d3: 0a 00 or (%eax),%al
+ 1044d5: 43 inc %ebx
+ 1044d6: 6f outsl %ds:(%esi),(%dx)
+ 1044d7: 70 72 jo 10454b <VGA_HEIGHT+0x19b>
+ 1044d9: 6f outsl %ds:(%esi),(%dx)
+ 1044da: 63 65 73 arpl %sp,0x73(%ebp)
+ 1044dd: 73 6f jae 10454e <VGA_HEIGHT+0x19e>
+ 1044df: 72 20 jb 104501 <VGA_HEIGHT+0x151>
+ 1044e1: 53 push %ebx
+ 1044e2: 65 67 6d gs insl (%dx),%es:(%di)
+ 1044e5: 65 6e outsb %gs:(%esi),(%dx)
+ 1044e7: 74 20 je 104509 <VGA_HEIGHT+0x159>
+ 1044e9: 4f dec %edi
+ 1044ea: 76 65 jbe 104551 <VGA_HEIGHT+0x1a1>
+ 1044ec: 72 72 jb 104560 <VGA_HEIGHT+0x1b0>
+ 1044ee: 75 6e jne 10455e <VGA_HEIGHT+0x1ae>
+ 1044f0: 0a 00 or (%eax),%al
+ 1044f2: 49 dec %ecx
+ 1044f3: 6e outsb %ds:(%esi),(%dx)
+ 1044f4: 74 65 je 10455b <VGA_HEIGHT+0x1ab>
+ 1044f6: 72 72 jb 10456a <VGA_HEIGHT+0x1ba>
+ 1044f8: 75 70 jne 10456a <VGA_HEIGHT+0x1ba>
+ 1044fa: 74 20 je 10451c <VGA_HEIGHT+0x16c>
+ 1044fc: 31 30 xor %esi,(%eax)
+ 1044fe: 2e 0a 00 or %cs:(%eax),%al
+ 104501: 49 dec %ecx
+ 104502: 6e outsb %ds:(%esi),(%dx)
+ 104503: 76 61 jbe 104566 <VGA_HEIGHT+0x1b6>
+ 104505: 6c insb (%dx),%es:(%edi)
+ 104506: 69 64 20 54 53 53 0a imul $0xa5353,0x54(%eax,%eiz,1),%esp
+ 10450d: 00
+ 10450e: 49 dec %ecx
+ 10450f: 6e outsb %ds:(%esi),(%dx)
+ 104510: 74 65 je 104577 <VGA_HEIGHT+0x1c7>
+ 104512: 72 72 jb 104586 <VGA_HEIGHT+0x1d6>
+ 104514: 75 70 jne 104586 <VGA_HEIGHT+0x1d6>
+ 104516: 74 20 je 104538 <VGA_HEIGHT+0x188>
+ 104518: 31 31 xor %esi,(%ecx)
+ 10451a: 2e 0a 00 or %cs:(%eax),%al
+ 10451d: 53 push %ebx
+ 10451e: 65 67 6d gs insl (%dx),%es:(%di)
+ 104521: 65 6e outsb %gs:(%esi),(%dx)
+ 104523: 74 20 je 104545 <VGA_HEIGHT+0x195>
+ 104525: 4e dec %esi
+ 104526: 6f outsl %ds:(%esi),(%dx)
+ 104527: 74 20 je 104549 <VGA_HEIGHT+0x199>
+ 104529: 50 push %eax
+ 10452a: 72 65 jb 104591 <VGA_HEIGHT+0x1e1>
+ 10452c: 73 65 jae 104593 <VGA_HEIGHT+0x1e3>
+ 10452e: 6e outsb %ds:(%esi),(%dx)
+ 10452f: 74 0a je 10453b <VGA_HEIGHT+0x18b>
+ 104531: 00 49 6e add %cl,0x6e(%ecx)
+ 104534: 74 65 je 10459b <VGA_HEIGHT+0x1eb>
+ 104536: 72 72 jb 1045aa <VGA_HEIGHT+0x1fa>
+ 104538: 75 70 jne 1045aa <VGA_HEIGHT+0x1fa>
+ 10453a: 74 20 je 10455c <VGA_HEIGHT+0x1ac>
+ 10453c: 31 32 xor %esi,(%edx)
+ 10453e: 2e 0a 00 or %cs:(%eax),%al
+ 104541: 53 push %ebx
+ 104542: 74 61 je 1045a5 <VGA_HEIGHT+0x1f5>
+ 104544: 63 6b 2d arpl %bp,0x2d(%ebx)
+ 104547: 53 push %ebx
+ 104548: 65 67 6d gs insl (%dx),%es:(%di)
+ 10454b: 65 6e outsb %gs:(%esi),(%dx)
+ 10454d: 74 20 je 10456f <VGA_HEIGHT+0x1bf>
+ 10454f: 46 inc %esi
+ 104550: 61 popa
+ 104551: 75 6c jne 1045bf <VGA_HEIGHT+0x20f>
+ 104553: 74 0a je 10455f <VGA_HEIGHT+0x1af>
+ 104555: 00 49 6e add %cl,0x6e(%ecx)
+ 104558: 74 65 je 1045bf <VGA_HEIGHT+0x20f>
+ 10455a: 72 72 jb 1045ce <VGA_HEIGHT+0x21e>
+ 10455c: 75 70 jne 1045ce <VGA_HEIGHT+0x21e>
+ 10455e: 74 20 je 104580 <VGA_HEIGHT+0x1d0>
+ 104560: 31 33 xor %esi,(%ebx)
+ 104562: 2e 0a 00 or %cs:(%eax),%al
+ 104565: 47 inc %edi
+ 104566: 65 6e outsb %gs:(%esi),(%dx)
+ 104568: 65 72 61 gs jb 1045cc <VGA_HEIGHT+0x21c>
+ 10456b: 6c insb (%dx),%es:(%edi)
+ 10456c: 20 50 72 and %dl,0x72(%eax)
+ 10456f: 6f outsl %ds:(%esi),(%dx)
+ 104570: 74 65 je 1045d7 <VGA_HEIGHT+0x227>
+ 104572: 63 74 69 6f arpl %si,0x6f(%ecx,%ebp,2)
+ 104576: 6e outsb %ds:(%esi),(%dx)
+ 104577: 20 46 61 and %al,0x61(%esi)
+ 10457a: 75 6c jne 1045e8 <VGA_HEIGHT+0x238>
+ 10457c: 74 0a je 104588 <VGA_HEIGHT+0x1d8>
+ 10457e: 00 49 6e add %cl,0x6e(%ecx)
+ 104581: 74 65 je 1045e8 <VGA_HEIGHT+0x238>
+ 104583: 72 72 jb 1045f7 <VGA_HEIGHT+0x247>
+ 104585: 75 70 jne 1045f7 <VGA_HEIGHT+0x247>
+ 104587: 74 20 je 1045a9 <VGA_HEIGHT+0x1f9>
+ 104589: 31 34 2e xor %esi,(%esi,%ebp,1)
+ 10458c: 0a 00 or (%eax),%al
+ 10458e: 50 push %eax
+ 10458f: 61 popa
+ 104590: 67 65 20 46 61 and %al,%gs:0x61(%bp)
+ 104595: 75 6c jne 104603 <VGA_HEIGHT+0x253>
+ 104597: 74 0a je 1045a3 <VGA_HEIGHT+0x1f3>
+ 104599: 00 49 6e add %cl,0x6e(%ecx)
+ 10459c: 74 65 je 104603 <VGA_HEIGHT+0x253>
+ 10459e: 72 72 jb 104612 <VGA_HEIGHT+0x262>
+ 1045a0: 75 70 jne 104612 <VGA_HEIGHT+0x262>
+ 1045a2: 74 20 je 1045c4 <VGA_HEIGHT+0x214>
+ 1045a4: 31 35 2e 0a 00 52 xor %esi,0x52000a2e
+ 1045aa: 65 73 65 gs jae 104612 <VGA_HEIGHT+0x262>
+ 1045ad: 72 76 jb 104625 <VGA_HEIGHT+0x275>
+ 1045af: 65 64 0a 00 gs or %fs:(%eax),%al
+ 1045b3: 49 dec %ecx
+ 1045b4: 6e outsb %ds:(%esi),(%dx)
+ 1045b5: 74 65 je 10461c <VGA_HEIGHT+0x26c>
+ 1045b7: 72 72 jb 10462b <VGA_HEIGHT+0x27b>
+ 1045b9: 75 70 jne 10462b <VGA_HEIGHT+0x27b>
+ 1045bb: 74 20 je 1045dd <VGA_HEIGHT+0x22d>
+ 1045bd: 31 36 xor %esi,(%esi)
+ 1045bf: 2e 0a 00 or %cs:(%eax),%al
+ 1045c2: 78 38 js 1045fc <VGA_HEIGHT+0x24c>
+ 1045c4: 37 aaa
+ 1045c5: 20 46 6c and %al,0x6c(%esi)
+ 1045c8: 6f outsl %ds:(%esi),(%dx)
+ 1045c9: 61 popa
+ 1045ca: 74 69 je 104635 <VGA_HEIGHT+0x285>
+ 1045cc: 6e outsb %ds:(%esi),(%dx)
+ 1045cd: 67 2d 50 6f 69 6e addr16 sub $0x6e696f50,%eax
+ 1045d3: 74 20 je 1045f5 <VGA_HEIGHT+0x245>
+ 1045d5: 45 inc %ebp
+ 1045d6: 78 63 js 10463b <VGA_HEIGHT+0x28b>
+ 1045d8: 65 70 74 gs jo 10464f <VGA_HEIGHT+0x29f>
+ 1045db: 69 6f 6e 0a 00 49 6e imul $0x6e49000a,0x6e(%edi),%ebp
+ 1045e2: 74 65 je 104649 <VGA_HEIGHT+0x299>
+ 1045e4: 72 72 jb 104658 <VGA_HEIGHT+0x2a8>
+ 1045e6: 75 70 jne 104658 <VGA_HEIGHT+0x2a8>
+ 1045e8: 74 20 je 10460a <VGA_HEIGHT+0x25a>
+ 1045ea: 31 37 xor %esi,(%edi)
+ 1045ec: 2e 0a 00 or %cs:(%eax),%al
+ 1045ef: 41 inc %ecx
+ 1045f0: 6c insb (%dx),%es:(%edi)
+ 1045f1: 69 67 6e 6d 65 6e 74 imul $0x746e656d,0x6e(%edi),%esp
+ 1045f8: 20 43 68 and %al,0x68(%ebx)
+ 1045fb: 65 63 6b 0a arpl %bp,%gs:0xa(%ebx)
+ 1045ff: 00 49 6e add %cl,0x6e(%ecx)
+ 104602: 74 65 je 104669 <VGA_HEIGHT+0x2b9>
+ 104604: 72 72 jb 104678 <VGA_HEIGHT+0x2c8>
+ 104606: 75 70 jne 104678 <VGA_HEIGHT+0x2c8>
+ 104608: 74 20 je 10462a <VGA_HEIGHT+0x27a>
+ 10460a: 31 38 xor %edi,(%eax)
+ 10460c: 2e 0a 00 or %cs:(%eax),%al
+ 10460f: 4d dec %ebp
+ 104610: 61 popa
+ 104611: 63 68 69 arpl %bp,0x69(%eax)
+ 104614: 6e outsb %ds:(%esi),(%dx)
+ 104615: 65 20 43 68 and %al,%gs:0x68(%ebx)
+ 104619: 65 63 6b 0a arpl %bp,%gs:0xa(%ebx)
+ 10461d: 00 49 6e add %cl,0x6e(%ecx)
+ 104620: 74 65 je 104687 <VGA_HEIGHT+0x2d7>
+ 104622: 72 72 jb 104696 <VGA_HEIGHT+0x2e6>
+ 104624: 75 70 jne 104696 <VGA_HEIGHT+0x2e6>
+ 104626: 74 20 je 104648 <VGA_HEIGHT+0x298>
+ 104628: 31 39 xor %edi,(%ecx)
+ 10462a: 2e 0a 00 or %cs:(%eax),%al
+ 10462d: 00 00 add %al,(%eax)
+ 10462f: 00 53 49 add %dl,0x49(%ebx)
+ 104632: 4d dec %ebp
+ 104633: 44 inc %esp
+ 104634: 20 46 6c and %al,0x6c(%esi)
+ 104637: 6f outsl %ds:(%esi),(%dx)
+ 104638: 61 popa
+ 104639: 74 69 je 1046a4 <VGA_HEIGHT+0x2f4>
+ 10463b: 6e outsb %ds:(%esi),(%dx)
+ 10463c: 67 2d 50 6f 69 6e addr16 sub $0x6e696f50,%eax
+ 104642: 74 20 je 104664 <VGA_HEIGHT+0x2b4>
+ 104644: 45 inc %ebp
+ 104645: 78 63 js 1046aa <VGA_HEIGHT+0x2fa>
+ 104647: 65 70 74 gs jo 1046be <VGA_HEIGHT+0x30e>
+ 10464a: 69 6f 6e 4d 2f 23 58 imul $0x58232f4d,0x6e(%edi),%ebp
+ 104651: 46 inc %esi
+ 104652: 0a 00 or (%eax),%al
+ 104654: 49 dec %ecx
+ 104655: 6e outsb %ds:(%esi),(%dx)
+ 104656: 74 65 je 1046bd <VGA_HEIGHT+0x30d>
+ 104658: 72 72 jb 1046cc <VGA_HEIGHT+0x31c>
+ 10465a: 75 70 jne 1046cc <VGA_HEIGHT+0x31c>
+ 10465c: 74 20 je 10467e <VGA_HEIGHT+0x2ce>
+ 10465e: 32 30 xor (%eax),%dh
+ 104660: 2e 0a 00 or %cs:(%eax),%al
+ 104663: 56 push %esi
+ 104664: 69 72 74 75 61 6c 69 imul $0x696c6175,0x74(%edx),%esi
+ 10466b: 7a 61 jp 1046ce <VGA_HEIGHT+0x31e>
+ 10466d: 74 69 je 1046d8 <VGA_HEIGHT+0x328>
+ 10466f: 6f outsl %ds:(%esi),(%dx)
+ 104670: 6e outsb %ds:(%esi),(%dx)
+ 104671: 20 45 78 and %al,0x78(%ebp)
+ 104674: 63 65 70 arpl %sp,0x70(%ebp)
+ 104677: 74 69 je 1046e2 <VGA_HEIGHT+0x332>
+ 104679: 6f outsl %ds:(%esi),(%dx)
+ 10467a: 6e outsb %ds:(%esi),(%dx)
+ 10467b: 0a 00 or (%eax),%al
+ 10467d: 49 dec %ecx
+ 10467e: 6e outsb %ds:(%esi),(%dx)
+ 10467f: 74 65 je 1046e6 <VGA_HEIGHT+0x336>
+ 104681: 72 72 jb 1046f5 <VGA_HEIGHT+0x345>
+ 104683: 75 70 jne 1046f5 <VGA_HEIGHT+0x345>
+ 104685: 74 20 je 1046a7 <VGA_HEIGHT+0x2f7>
+ 104687: 32 31 xor (%ecx),%dh
+ 104689: 2e 0a 00 or %cs:(%eax),%al
+ 10468c: 49 dec %ecx
+ 10468d: 6e outsb %ds:(%esi),(%dx)
+ 10468e: 74 65 je 1046f5 <VGA_HEIGHT+0x345>
+ 104690: 72 72 jb 104704 <VGA_HEIGHT+0x354>
+ 104692: 75 70 jne 104704 <VGA_HEIGHT+0x354>
+ 104694: 74 20 je 1046b6 <VGA_HEIGHT+0x306>
+ 104696: 32 32 xor (%edx),%dh
+ 104698: 2e 0a 00 or %cs:(%eax),%al
+ 10469b: 49 dec %ecx
+ 10469c: 6e outsb %ds:(%esi),(%dx)
+ 10469d: 74 65 je 104704 <VGA_HEIGHT+0x354>
+ 10469f: 72 72 jb 104713 <VGA_HEIGHT+0x363>
+ 1046a1: 75 70 jne 104713 <VGA_HEIGHT+0x363>
+ 1046a3: 74 20 je 1046c5 <VGA_HEIGHT+0x315>
+ 1046a5: 32 33 xor (%ebx),%dh
+ 1046a7: 2e 0a 00 or %cs:(%eax),%al
+ 1046aa: 49 dec %ecx
+ 1046ab: 6e outsb %ds:(%esi),(%dx)
+ 1046ac: 74 65 je 104713 <VGA_HEIGHT+0x363>
+ 1046ae: 72 72 jb 104722 <VGA_HEIGHT+0x372>
+ 1046b0: 75 70 jne 104722 <VGA_HEIGHT+0x372>
+ 1046b2: 74 20 je 1046d4 <VGA_HEIGHT+0x324>
+ 1046b4: 32 34 2e xor (%esi,%ebp,1),%dh
+ 1046b7: 0a 00 or (%eax),%al
+ 1046b9: 49 dec %ecx
+ 1046ba: 6e outsb %ds:(%esi),(%dx)
+ 1046bb: 74 65 je 104722 <VGA_HEIGHT+0x372>
+ 1046bd: 72 72 jb 104731 <VGA_HEIGHT+0x381>
+ 1046bf: 75 70 jne 104731 <VGA_HEIGHT+0x381>
+ 1046c1: 74 20 je 1046e3 <VGA_HEIGHT+0x333>
+ 1046c3: 32 35 2e 0a 00 49 xor 0x49000a2e,%dh
+ 1046c9: 6e outsb %ds:(%esi),(%dx)
+ 1046ca: 74 65 je 104731 <VGA_HEIGHT+0x381>
+ 1046cc: 72 72 jb 104740 <__FRAME_END__+0x4>
+ 1046ce: 75 70 jne 104740 <__FRAME_END__+0x4>
+ 1046d0: 74 20 je 1046f2 <VGA_HEIGHT+0x342>
+ 1046d2: 32 36 xor (%esi),%dh
+ 1046d4: 2e 0a 00 or %cs:(%eax),%al
+ 1046d7: 49 dec %ecx
+ 1046d8: 6e outsb %ds:(%esi),(%dx)
+ 1046d9: 74 65 je 104740 <__FRAME_END__+0x4>
+ 1046db: 72 72 jb 10474f <__FRAME_END__+0x13>
+ 1046dd: 75 70 jne 10474f <__FRAME_END__+0x13>
+ 1046df: 74 20 je 104701 <VGA_HEIGHT+0x351>
+ 1046e1: 32 37 xor (%edi),%dh
+ 1046e3: 2e 0a 00 or %cs:(%eax),%al
+ 1046e6: 49 dec %ecx
+ 1046e7: 6e outsb %ds:(%esi),(%dx)
+ 1046e8: 74 65 je 10474f <__FRAME_END__+0x13>
+ 1046ea: 72 72 jb 10475e <__FRAME_END__+0x22>
+ 1046ec: 75 70 jne 10475e <__FRAME_END__+0x22>
+ 1046ee: 74 20 je 104710 <VGA_HEIGHT+0x360>
+ 1046f0: 32 38 xor (%eax),%bh
+ 1046f2: 2e 0a 00 or %cs:(%eax),%al
+ 1046f5: 49 dec %ecx
+ 1046f6: 6e outsb %ds:(%esi),(%dx)
+ 1046f7: 74 65 je 10475e <__FRAME_END__+0x22>
+ 1046f9: 72 72 jb 10476d <__FRAME_END__+0x31>
+ 1046fb: 75 70 jne 10476d <__FRAME_END__+0x31>
+ 1046fd: 74 20 je 10471f <VGA_HEIGHT+0x36f>
+ 1046ff: 32 39 xor (%ecx),%bh
+ 104701: 2e 0a 00 or %cs:(%eax),%al
+ 104704: 49 dec %ecx
+ 104705: 6e outsb %ds:(%esi),(%dx)
+ 104706: 74 65 je 10476d <__FRAME_END__+0x31>
+ 104708: 72 72 jb 10477c <__FRAME_END__+0x40>
+ 10470a: 75 70 jne 10477c <__FRAME_END__+0x40>
+ 10470c: 74 20 je 10472e <VGA_HEIGHT+0x37e>
+ 10470e: 33 30 xor (%eax),%esi
+ 104710: 2e 0a 00 or %cs:(%eax),%al
+ 104713: 53 push %ebx
+ 104714: 65 63 75 72 arpl %si,%gs:0x72(%ebp)
+ 104718: 69 74 79 20 45 78 63 imul $0x65637845,0x20(%ecx,%edi,2),%esi
+ 10471f: 65
+ 104720: 70 74 jo 104796 <__FRAME_END__+0x5a>
+ 104722: 69 6f 6e 0a 00 49 6e imul $0x6e49000a,0x6e(%edi),%ebp
+ 104729: 74 65 je 104790 <__FRAME_END__+0x54>
+ 10472b: 72 72 jb 10479f <__FRAME_END__+0x63>
+ 10472d: 75 70 jne 10479f <__FRAME_END__+0x63>
+ 10472f: 74 20 je 104751 <__FRAME_END__+0x15>
+ 104731: 33 31 xor (%ecx),%esi
+ 104733: 2e 0a 00 or %cs:(%eax),%al
+ ...
+
+00104738 <TICKS_PER_SECOND>:
+ 104738: 32 00 xor (%eax),%al
+ ...
+
+Disassembly of section .eh_frame:
+
+0010473c <__FRAME_END__>:
+ 10473c: 00 00 add %al,(%eax)
+ ...
+
+Disassembly of section .data:
+
+00105000 <__dso_handle>:
+ 105000: 00 00 add %al,(%eax)
+ ...
+
+00105004 <__stack_chk_guard>:
+ 105004: 96 xchg %eax,%esi
+ 105005: e3 de jecxz 104fe5 <__FRAME_END__+0x8a9>
+ 105007: e2 .byte 0xe2
+
+Disassembly of section .ctors:
+
+00105008 <__CTOR_LIST__>:
+ 105008: ff (bad)
+ 105009: ff (bad)
+ 10500a: ff (bad)
+ 10500b: ff incl (%eax)
+
+0010500c <__CTOR_END__>:
+ 10500c: 00 00 add %al,(%eax)
+ ...
+
+Disassembly of section .dtors:
+
+00105010 <__DTOR_LIST__>:
+ 105010: ff (bad)
+ 105011: ff (bad)
+ 105012: ff (bad)
+ 105013: ff incl (%eax)
+
+00105014 <__DTOR_END__>:
+ 105014: 00 00 add %al,(%eax)
+ ...
+
+Disassembly of section .bss:
+
+00106000 <completed.2>:
+ 106000: 00 00 add %al,(%eax)
+ ...
+
+00106004 <dtor_idx.1>:
+ 106004: 00 00 add %al,(%eax)
+ ...
+
+00106008 <object.0>:
+ ...
+
+00106020 <stack_bottom>:
+ ...
+
+0010a020 <gdt>:
+ ...
+
+0010a048 <gdtp>:
+ ...
+
+0010a050 <kheap>:
+ ...
+
+0010a060 <idt>:
+ ...
+
+0010a860 <idtp>:
+ ...
+
+0010a880 <buffer>:
+ ...
+
+0010a948 <buffer_index>:
+ ...
+
+0010a960 <charcode>:
+ ...
+
+0010aa60 <ispressed>:
+ ...
+
+0010aae0 <terminal_row>:
+ 10aae0: 00 00 add %al,(%eax)
+ ...
+
+0010aae4 <terminal_column>:
+ 10aae4: 00 00 add %al,(%eax)
+ ...
+
+0010aae8 <terminal_color>:
+ 10aae8: 00 00 add %al,(%eax)
+ ...
+
+0010aaec <terminal_buffer>:
+ 10aaec: 00 00 add %al,(%eax)
+ ...
+
+0010aaf0 <tick>:
+ 10aaf0: 00 00 add %al,(%eax)
+ ...
+
+0010aaf4 <time>:
+ ...
+
+0010b000 <page_directory>:
+ ...
+
+0010c000 <page_table>:
+ ...
+
+Disassembly of section .comment:
+
+00000000 <.comment>:
+ 0: 47 inc %edi
+ 1: 43 inc %ebx
+ 2: 43 inc %ebx
+ 3: 3a 20 cmp (%eax),%ah
+ 5: 28 47 4e sub %al,0x4e(%edi)
+ 8: 55 push %ebp
+ 9: 29 20 sub %esp,(%eax)
+ b: 31 31 xor %esi,(%ecx)
+ d: 2e 31 2e xor %ebp,%cs:(%esi)
+ 10: 30 00 xor %al,(%eax)
diff --git a/src/c/heap.c b/src/c/heap.c
index 1bad05e..2683269 100644
--- a/src/c/heap.c
+++ b/src/c/heap.c
@@ -1,9 +1,5 @@
#include"../include/types.h"
-/*
- 2014 Leonard Kevin McGuire Jr (www.kmcg3413.net) (kmcg3413@gmail.com)
- 2016 Clément Gallet (provided bug fixes)
-*/
typedef struct _KHEAPBLOCKBM {
struct _KHEAPBLOCKBM *next;
uint32_t size;
@@ -61,7 +57,7 @@ static uint8_t k_heapBMGetNID(uint8_t a, uint8_t b) {
}
void *k_heapBMAlloc(KHEAPBM *heap, uint32_t size) {
- KHEAPBLOCKBM *b;
+ KHEAPBLOCKBM *b;
uint8_t *bm;
uint32_t bcnt;
uint32_t x, y, z;
@@ -70,14 +66,16 @@ void *k_heapBMAlloc(KHEAPBM *heap, uint32_t size) {
/* iterate blocks */
for (b = heap->fblock; b; b = b->next) {
+ //printf("size:%d,used:%d,bsize:%d,lfb:%d\n",b->size,b->used,b->bsize,b->lfb);
/* check if block has enough room */
if (b->size - (b->used * b->bsize) >= size) {
bcnt = b->size / b->bsize;
bneed = (size / b->bsize) * b->bsize < size ? size / b->bsize + 1 : size / b->bsize;
bm = (uint8_t*)&b[1];
+ //printf("bcnt:%d,bneed:%d,bm:%d\n",bcnt,bneed,bm);
- for (x = (b->lfb + 1 >= bcnt ? 0 : b->lfb + 1); x < b->lfb; ++x) {
+ for (x = (b->lfb + 1 >= bcnt ? 0 : b->lfb + 1); x != b->lfb; ++x) {
/* just wrap around */
if (x >= bcnt) {
x = 0;
@@ -150,18 +148,22 @@ void k_heapBMFree(KHEAPBM *heap, void *ptr) {
return;
}
-KHEAPBM kheap;
+KHEAPBM kheap;
-void heap()
+void kheapinit()
+{
+ k_heapBMInit(&kheap);
+}
+int kheapaddblock(uintptr_t addr,uint32_t size,uint32_t bsize)
{
- KHEAPBM kheap;
- char *ptr;
+ return k_heapBMAddBlock(&kheap,addr,size,bsize);
+}
+void *kmalloc(uint32_t size)
+{
+ return k_heapBMAlloc(&kheap,size);
- k_heapBMInit(&kheap); /* initialize the heap */
- k_heapBMAddBlock(&kheap, 0x100000, 0x100000, 16); /* add block to heap
- (starting 1MB mark and length of 1MB)
- with default block size of 16 bytes
- */
- ptr = (char*)k_heapBMAlloc(&kheap, 256); /* allocate 256 bytes (malloc) */
- k_heapBMFree(&kheap, ptr); /* free the pointer (free) */
+}
+void kfree(void *ptr)
+{
+ k_heapBMFree(&kheap,ptr);
}
diff --git a/src/c/irq.c b/src/c/irq.c
index 6b80a52..2a1c4d4 100644
--- a/src/c/irq.c
+++ b/src/c/irq.c
@@ -15,190 +15,222 @@ void irq0_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 0.\n");
+ printf("Divide-by-zero Error\n");
}
void irq1_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 1.\n");
+ printf("Debug\n");
}
void irq2_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 2.\n");
+ printf("Non-maskable Interrupt\n");
}
void irq3_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 3.\n");
+ printf("Breakpoint\n");
}
void irq4_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 4.\n");
+ printf("Overflow\n");
}
void irq5_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 5.\n");
+ printf("Bound Range Exceeded\n");
}
void irq6_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 6.\n");
+ printf("Invalid Opcode\n");
}
void irq7_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 7.\n");
+ printf("Device Not Available\n");
}
void irq8_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 8.\n");
+ printf("Double Fault\n");
}
void irq9_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 9.\n");
+ printf("Coprocessor Segment Overrun\n");
}
void irq10_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 10.\n");
+ printf("Invalid TSS\n");
}
void irq11_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 11.\n");
+ printf("Segment Not Present\n");
}
void irq12_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 12.\n");
+ printf("Stack-Segment Fault\n");
}
void irq13_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 13.\n");
+ printf("General Protection Fault\n");
}
void irq14_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 14.\n");
+ printf("Page Fault\n");
}
void irq15_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 15.\n");
+ printf("Reserved\n");
}
void irq16_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 16.\n");
+ printf("x87 Floating-Point Exception\n");
}
void irq17_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 17.\n");
+ printf("Alignment Check\n");
}
void irq18_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 18.\n");
+ printf("Machine Check\n");
}
void irq19_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 19.\n");
+ printf("SIMD Floating-Point ExceptionM/#XF\n");
}
void irq20_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 20.\n");
+ printf("Virtualization Exception\n");
}
void irq21_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 21.\n");
+ printf("Reserved\n");
}
void irq22_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 22.\n");
+ printf("Reserved\n");
}
void irq23_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 23.\n");
+ printf("Reserved\n");
}
void irq24_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 24.\n");
+ printf("Reserved\n");
}
void irq25_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 25.\n");
+ printf("Reserved\n");
}
void irq26_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 26.\n");
+ printf("Reserved\n");
}
void irq27_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 27.\n");
+ printf("Reserved\n");
}
void irq28_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 28.\n");
+ printf("Reserved\n");
}
void irq29_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 29.\n");
+ printf("Reserved\n");
}
void irq30_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 30.\n");
+ printf("Security Exception\n");
}
void irq31_handler()
{
ioport_out(PIC1_COMMAND_PORT, 0x20);
printf("Interrupt 31.\n");
+ printf("Reserved\n");
}
diff --git a/src/c/kernel.c b/src/c/kernel.c
index 48dbccb..a00c242 100644
--- a/src/c/kernel.c
+++ b/src/c/kernel.c
@@ -1,3 +1,4 @@
+#include"../include/stdio.h"
#include"../include/heap.h"
void terminal_initialize(void);
@@ -9,13 +10,14 @@ void set_paging();
void kernel_main(void)
{
- terminal_initialize();
set_paging();
init_idt_table();
- init_keyboard();
init_timer(50);
- //k_heapBMInit(&kheap);
- //k_heapBMAddBlock(&kheap, 0x100000, 0x100000, 16);
+ init_keyboard();
+ kheapinit();
+ kheapaddblock(0x00200000, 0x00100000, 16);
+
+ terminal_initialize();
prompt();
while(1) __asm__("hlt\n\t");
diff --git a/src/c/paging.c b/src/c/paging.c
index b256b74..becc79d 100644
--- a/src/c/paging.c
+++ b/src/c/paging.c
@@ -18,34 +18,29 @@ void set_pd()
}
}
-uint32_t first_page_table[1024] __attribute__((aligned(4096)));
+uint32_t page_table[1024][1024] __attribute__((aligned(4096)));
-void set_pt()
+void set_pt(size_t num,uint32_t address)
{
// holds the physical address where we want to start mapping these pages to.
// in this case, we want to map these pages to the very beginning of memory.
- unsigned int i;
//we will fill all 1024 entries in the table, mapping 4 megabytes
- for(i = 0; i < 1024; i++)
+ for(size_t i=0;i<1024;i++)
{
// As the address is page aligned, it will always leave 12 bits zeroed.
// Those bits are used by the attributes ;)
- first_page_table[i] = (i * 0x1000) | 3; // attributes: supervisor level, read/write, present.
+ page_table[num][i] = (address + i * 0x1000) | 3; // attributes: supervisor level, read/write, present.
}
-}
-void put_pt()
-{
+ page_directory[num] = ((uint32_t)page_table[num]) | 3;
// attributes: supervisor level, read/write, present
- page_directory[0] = ((uint32_t)first_page_table) | 3;
}
void set_paging()
{
set_pd();
- set_pt();
- put_pt();
+ for(size_t i=0;i<1024;i++) set_pt(i,0x00400000 * i); // all 4GB mapped
loadPageDirectory(page_directory);
enablePaging();
}
diff --git a/src/c/string.c b/src/c/string.c
index 5667715..ff2821a 100644
--- a/src/c/string.c
+++ b/src/c/string.c
@@ -94,7 +94,7 @@ double stof(const char *str)
return num/pow;
}
-const int decimals=7;
+const size_t decimals=7;
void ftos(double num, char *str)
{
itos((uint32_t)num,str);
diff --git a/src/include/heap.h b/src/include/heap.h
index 4eebd04..11478aa 100644
--- a/src/include/heap.h
+++ b/src/include/heap.h
@@ -3,26 +3,9 @@
#include"types.h"
-typedef struct _KHEAPBLOCKBM {
- struct _KHEAPBLOCKBM *next;
- uint32_t size;
- uint32_t used;
- uint32_t bsize;
- uint32_t lfb;
-} KHEAPBLOCKBM;
-
-typedef struct _KHEAPBM {
- KHEAPBLOCKBM *fblock;
-} KHEAPBM;
-
-void k_heapBMInit(KHEAPBM *heap);
-int k_heapBMAddBlock(KHEAPBM *heap, uintptr_t addr, uint32_t size, uint32_t bsize);
-void *k_heapBMAlloc(KHEAPBM *heap, uint32_t size);
-void k_heapBMFree(KHEAPBM *heap, void *ptr);
-
-extern KHEAPBM kheap;
-
-#define kmalloc k_heapBMAlloc
-#define kfree k_heapBMFree
+void kheapinit();
+int kheapaddblock(uintptr_t addr,uint32_t size,uint32_t bsize);
+void *kmalloc(uint32_t size);
+void kfree(void *ptr);
#endif