view src/usr/sh.asm @ 0:53676d1f5817 default tip

firsh commit
author tobaru
date Sun, 04 Feb 2018 17:54:49 +0900
parents
children
line wrap: on
line source


_sh:     file format elf32-littlearm


Disassembly of section .text:

00000000 <runcmd>:
struct cmd *parsecmd(char*);

// Execute cmd.  Never returns.
void
runcmd(struct cmd *cmd)
{
       0:	e92d4800 	push	{fp, lr}
       4:	e1a0b00d 	mov	fp, sp
       8:	e24dd078 	sub	sp, sp, #120	; 0x78
       c:	e1a01000 	mov	r1, r0
      10:	e50b0004 	str	r0, [fp, #-4]
      14:	e51b0004 	ldr	r0, [fp, #-4]
      18:	e3500000 	cmp	r0, #0
      1c:	e50b1024 	str	r1, [fp, #-36]	; 0xffffffdc
      20:	1a000002 	bne	30 <runcmd+0x30>
      24:	eaffffff 	b	28 <runcmd+0x28>
      28:	eb000645 	bl	1944 <exit>
      2c:	e50b0028 	str	r0, [fp, #-40]	; 0xffffffd8
      30:	e51b0004 	ldr	r0, [fp, #-4]
      34:	e5900000 	ldr	r0, [r0]
      38:	e2400001 	sub	r0, r0, #1
      3c:	e3500004 	cmp	r0, #4
      40:	e50b002c 	str	r0, [fp, #-44]	; 0xffffffd4
      44:	8a000009 	bhi	70 <runcmd+0x70>
      48:	e51b002c 	ldr	r0, [fp, #-44]	; 0xffffffd4
      4c:	e1a01100 	lsl	r1, r0, #2
      50:	e28f2004 	add	r2, pc, #4
      54:	e7911002 	ldr	r1, [r1, r2]
      58:	e1a0f001 	mov	pc, r1
      5c:	0000007c 	.word	0x0000007c
      60:	000000d8 	.word	0x000000d8
      64:	00000184 	.word	0x00000184
      68:	00000140 	.word	0x00000140
      6c:	0000029c 	.word	0x0000029c
      70:	e59f0260 	ldr	r0, [pc, #608]	; 2d8 <runcmd+0x2d8>
      74:	eb000099 	bl	2e0 <panic>
      78:	eaffffff 	b	7c <runcmd+0x7c>
      7c:	e51b0004 	ldr	r0, [fp, #-4]
      80:	e50b0014 	str	r0, [fp, #-20]	; 0xffffffec
      84:	e51b0014 	ldr	r0, [fp, #-20]	; 0xffffffec
      88:	e5900004 	ldr	r0, [r0, #4]
      8c:	e3500000 	cmp	r0, #0
      90:	1a000002 	bne	a0 <runcmd+0xa0>
      94:	eaffffff 	b	98 <runcmd+0x98>
      98:	eb000629 	bl	1944 <exit>
      9c:	e50b0030 	str	r0, [fp, #-48]	; 0xffffffd0
      a0:	e51b0014 	ldr	r0, [fp, #-20]	; 0xffffffec
      a4:	e5b01004 	ldr	r1, [r0, #4]!
      a8:	e50b0034 	str	r0, [fp, #-52]	; 0xffffffcc
      ac:	e1a00001 	mov	r0, r1
      b0:	e51b1034 	ldr	r1, [fp, #-52]	; 0xffffffcc
      b4:	eb000661 	bl	1a40 <exec>
      b8:	e51b1014 	ldr	r1, [fp, #-20]	; 0xffffffec
      bc:	e5912004 	ldr	r2, [r1, #4]
      c0:	e59f1214 	ldr	r1, [pc, #532]	; 2dc <runcmd+0x2dc>
      c4:	e3a0e002 	mov	lr, #2
      c8:	e50b0038 	str	r0, [fp, #-56]	; 0xffffffc8
      cc:	e1a0000e 	mov	r0, lr
      d0:	eb0006cf 	bl	1c14 <printf>
      d4:	ea00007b 	b	2c8 <runcmd+0x2c8>
      d8:	e51b0004 	ldr	r0, [fp, #-4]
      dc:	e50b0020 	str	r0, [fp, #-32]	; 0xffffffe0
      e0:	e51b0020 	ldr	r0, [fp, #-32]	; 0xffffffe0
      e4:	e5900014 	ldr	r0, [r0, #20]
      e8:	eb000642 	bl	19f8 <close>
      ec:	e51be020 	ldr	lr, [fp, #-32]	; 0xffffffe0
      f0:	e59e1008 	ldr	r1, [lr, #8]
      f4:	e59ee010 	ldr	lr, [lr, #16]
      f8:	e58d003c 	str	r0, [sp, #60]	; 0x3c
      fc:	e1a00001 	mov	r0, r1
     100:	e1a0100e 	mov	r1, lr
     104:	eb000656 	bl	1a64 <open>
     108:	e3500000 	cmp	r0, #0
     10c:	aa000007 	bge	130 <runcmd+0x130>
     110:	eaffffff 	b	114 <runcmd+0x114>
     114:	e51b0020 	ldr	r0, [fp, #-32]	; 0xffffffe0
     118:	e5902008 	ldr	r2, [r0, #8]
     11c:	e59f11b0 	ldr	r1, [pc, #432]	; 2d4 <runcmd+0x2d4>
     120:	e3a00002 	mov	r0, #2
     124:	eb0006ba 	bl	1c14 <printf>
     128:	eb000605 	bl	1944 <exit>
     12c:	e58d0038 	str	r0, [sp, #56]	; 0x38
     130:	e51b0020 	ldr	r0, [fp, #-32]	; 0xffffffe0
     134:	e5900004 	ldr	r0, [r0, #4]
     138:	ebffffb0 	bl	0 <runcmd>
     13c:	ea000061 	b	2c8 <runcmd+0x2c8>
     140:	e51b0004 	ldr	r0, [fp, #-4]
     144:	e50b0018 	str	r0, [fp, #-24]	; 0xffffffe8
     148:	eb000075 	bl	324 <fork1>
     14c:	e3500000 	cmp	r0, #0
     150:	1a000004 	bne	168 <runcmd+0x168>
     154:	eaffffff 	b	158 <runcmd+0x158>
     158:	e51b0018 	ldr	r0, [fp, #-24]	; 0xffffffe8
     15c:	e5900004 	ldr	r0, [r0, #4]
     160:	ebffffa6 	bl	0 <runcmd>
     164:	eaffffff 	b	168 <runcmd+0x168>
     168:	eb0005fe 	bl	1968 <wait>
     16c:	e51be018 	ldr	lr, [fp, #-24]	; 0xffffffe8
     170:	e59ee008 	ldr	lr, [lr, #8]
     174:	e58d0034 	str	r0, [sp, #52]	; 0x34
     178:	e1a0000e 	mov	r0, lr
     17c:	ebffff9f 	bl	0 <runcmd>
     180:	ea000050 	b	2c8 <runcmd+0x2c8>
     184:	e51b0004 	ldr	r0, [fp, #-4]
     188:	e50b001c 	str	r0, [fp, #-28]	; 0xffffffe4
     18c:	e24b000c 	sub	r0, fp, #12
     190:	eb0005fd 	bl	198c <pipe>
     194:	e3500000 	cmp	r0, #0
     198:	aa000003 	bge	1ac <runcmd+0x1ac>
     19c:	eaffffff 	b	1a0 <runcmd+0x1a0>
     1a0:	e59f0128 	ldr	r0, [pc, #296]	; 2d0 <runcmd+0x2d0>
     1a4:	eb00004d 	bl	2e0 <panic>
     1a8:	eaffffff 	b	1ac <runcmd+0x1ac>
     1ac:	eb00005c 	bl	324 <fork1>
     1b0:	e3500000 	cmp	r0, #0
     1b4:	1a000014 	bne	20c <runcmd+0x20c>
     1b8:	eaffffff 	b	1bc <runcmd+0x1bc>
     1bc:	e3a00001 	mov	r0, #1
     1c0:	eb00060c 	bl	19f8 <close>
     1c4:	e51be008 	ldr	lr, [fp, #-8]
     1c8:	e58d0030 	str	r0, [sp, #48]	; 0x30
     1cc:	e1a0000e 	mov	r0, lr
     1d0:	eb000662 	bl	1b60 <dup>
     1d4:	e51be00c 	ldr	lr, [fp, #-12]
     1d8:	e58d002c 	str	r0, [sp, #44]	; 0x2c
     1dc:	e1a0000e 	mov	r0, lr
     1e0:	eb000604 	bl	19f8 <close>
     1e4:	e51be008 	ldr	lr, [fp, #-8]
     1e8:	e58d0028 	str	r0, [sp, #40]	; 0x28
     1ec:	e1a0000e 	mov	r0, lr
     1f0:	eb000600 	bl	19f8 <close>
     1f4:	e51be01c 	ldr	lr, [fp, #-28]	; 0xffffffe4
     1f8:	e59ee004 	ldr	lr, [lr, #4]
     1fc:	e58d0024 	str	r0, [sp, #36]	; 0x24
     200:	e1a0000e 	mov	r0, lr
     204:	ebffff7d 	bl	0 <runcmd>
     208:	eaffffff 	b	20c <runcmd+0x20c>
     20c:	eb000044 	bl	324 <fork1>
     210:	e3500000 	cmp	r0, #0
     214:	1a000014 	bne	26c <runcmd+0x26c>
     218:	eaffffff 	b	21c <runcmd+0x21c>
     21c:	e3a00000 	mov	r0, #0
     220:	eb0005f4 	bl	19f8 <close>
     224:	e51be00c 	ldr	lr, [fp, #-12]
     228:	e58d0020 	str	r0, [sp, #32]
     22c:	e1a0000e 	mov	r0, lr
     230:	eb00064a 	bl	1b60 <dup>
     234:	e51be00c 	ldr	lr, [fp, #-12]
     238:	e58d001c 	str	r0, [sp, #28]
     23c:	e1a0000e 	mov	r0, lr
     240:	eb0005ec 	bl	19f8 <close>
     244:	e51be008 	ldr	lr, [fp, #-8]
     248:	e58d0018 	str	r0, [sp, #24]
     24c:	e1a0000e 	mov	r0, lr
     250:	eb0005e8 	bl	19f8 <close>
     254:	e51be01c 	ldr	lr, [fp, #-28]	; 0xffffffe4
     258:	e59ee008 	ldr	lr, [lr, #8]
     25c:	e58d0014 	str	r0, [sp, #20]
     260:	e1a0000e 	mov	r0, lr
     264:	ebffff65 	bl	0 <runcmd>
     268:	eaffffff 	b	26c <runcmd+0x26c>
     26c:	e51b000c 	ldr	r0, [fp, #-12]
     270:	eb0005e0 	bl	19f8 <close>
     274:	e51be008 	ldr	lr, [fp, #-8]
     278:	e58d0010 	str	r0, [sp, #16]
     27c:	e1a0000e 	mov	r0, lr
     280:	eb0005dc 	bl	19f8 <close>
     284:	e58d000c 	str	r0, [sp, #12]
     288:	eb0005b6 	bl	1968 <wait>
     28c:	e58d0008 	str	r0, [sp, #8]
     290:	eb0005b4 	bl	1968 <wait>
     294:	e58d0004 	str	r0, [sp, #4]
     298:	ea00000a 	b	2c8 <runcmd+0x2c8>
     29c:	e51b0004 	ldr	r0, [fp, #-4]
     2a0:	e50b0010 	str	r0, [fp, #-16]
     2a4:	eb00001e 	bl	324 <fork1>
     2a8:	e3500000 	cmp	r0, #0
     2ac:	1a000004 	bne	2c4 <runcmd+0x2c4>
     2b0:	eaffffff 	b	2b4 <runcmd+0x2b4>
     2b4:	e51b0010 	ldr	r0, [fp, #-16]
     2b8:	e5900004 	ldr	r0, [r0, #4]
     2bc:	ebffff4f 	bl	0 <runcmd>
     2c0:	eaffffff 	b	2c4 <runcmd+0x2c4>
     2c4:	eaffffff 	b	2c8 <runcmd+0x2c8>
     2c8:	eb00059d 	bl	1944 <exit>
     2cc:	e58d0000 	str	r0, [sp]
     2d0:	00002503 	.word	0x00002503
     2d4:	000024f3 	.word	0x000024f3
     2d8:	000024dc 	.word	0x000024dc
     2dc:	000024e3 	.word	0x000024e3

000002e0 <panic>:
     2e0:	e92d4800 	push	{fp, lr}
     2e4:	e1a0b00d 	mov	fp, sp
     2e8:	e24dd010 	sub	sp, sp, #16
     2ec:	e1a01000 	mov	r1, r0
     2f0:	e50b0004 	str	r0, [fp, #-4]
     2f4:	e51b2004 	ldr	r2, [fp, #-4]
     2f8:	e59f0020 	ldr	r0, [pc, #32]	; 320 <panic+0x40>
     2fc:	e3a03002 	mov	r3, #2
     300:	e58d0008 	str	r0, [sp, #8]
     304:	e1a00003 	mov	r0, r3
     308:	e59d3008 	ldr	r3, [sp, #8]
     30c:	e58d1004 	str	r1, [sp, #4]
     310:	e1a01003 	mov	r1, r3
     314:	eb00063e 	bl	1c14 <printf>
     318:	eb000589 	bl	1944 <exit>
     31c:	e58d0000 	str	r0, [sp]
     320:	00002531 	.word	0x00002531

00000324 <fork1>:
     324:	e92d4800 	push	{fp, lr}
     328:	e1a0b00d 	mov	fp, sp
     32c:	e24dd008 	sub	sp, sp, #8
     330:	eb00057a 	bl	1920 <fork>
     334:	e58d0004 	str	r0, [sp, #4]
     338:	e59d0004 	ldr	r0, [sp, #4]
     33c:	e3700001 	cmn	r0, #1
     340:	1a000003 	bne	354 <fork1+0x30>
     344:	eaffffff 	b	348 <fork1+0x24>
     348:	e59f0010 	ldr	r0, [pc, #16]	; 360 <fork1+0x3c>
     34c:	ebffffe3 	bl	2e0 <panic>
     350:	eaffffff 	b	354 <fork1+0x30>
     354:	e59d0004 	ldr	r0, [sp, #4]
     358:	e1a0d00b 	mov	sp, fp
     35c:	e8bd8800 	pop	{fp, pc}
     360:	00002521 	.word	0x00002521

00000364 <getcmd>:
     364:	e92d4800 	push	{fp, lr}
     368:	e1a0b00d 	mov	fp, sp
     36c:	e24dd020 	sub	sp, sp, #32
     370:	e1a02001 	mov	r2, r1
     374:	e1a03000 	mov	r3, r0
     378:	e50b0008 	str	r0, [fp, #-8]
     37c:	e50b100c 	str	r1, [fp, #-12]
     380:	e59f1070 	ldr	r1, [pc, #112]	; 3f8 <getcmd+0x94>
     384:	e3a00002 	mov	r0, #2
     388:	e58d2010 	str	r2, [sp, #16]
     38c:	e58d300c 	str	r3, [sp, #12]
     390:	eb00061f 	bl	1c14 <printf>
     394:	e51b0008 	ldr	r0, [fp, #-8]
     398:	e51b200c 	ldr	r2, [fp, #-12]
     39c:	e3a01000 	mov	r1, #0
     3a0:	eb000446 	bl	14c0 <memset>
     3a4:	e51b1008 	ldr	r1, [fp, #-8]
     3a8:	e51b200c 	ldr	r2, [fp, #-12]
     3ac:	e58d0008 	str	r0, [sp, #8]
     3b0:	e1a00001 	mov	r0, r1
     3b4:	e1a01002 	mov	r1, r2
     3b8:	eb0004ba 	bl	16a8 <gets>
     3bc:	e51b1008 	ldr	r1, [fp, #-8]
     3c0:	e5d11000 	ldrb	r1, [r1]
     3c4:	e3510000 	cmp	r1, #0
     3c8:	e58d0004 	str	r0, [sp, #4]
     3cc:	1a000003 	bne	3e0 <getcmd+0x7c>
     3d0:	eaffffff 	b	3d4 <getcmd+0x70>
     3d4:	e3e00000 	mvn	r0, #0
     3d8:	e50b0004 	str	r0, [fp, #-4]
     3dc:	ea000002 	b	3ec <getcmd+0x88>
     3e0:	e3a00000 	mov	r0, #0
     3e4:	e50b0004 	str	r0, [fp, #-4]
     3e8:	eaffffff 	b	3ec <getcmd+0x88>
     3ec:	e51b0004 	ldr	r0, [fp, #-4]
     3f0:	e1a0d00b 	mov	sp, fp
     3f4:	e8bd8800 	pop	{fp, pc}
     3f8:	00002508 	.word	0x00002508

000003fc <main>:
     3fc:	e92d4800 	push	{fp, lr}
     400:	e1a0b00d 	mov	fp, sp
     404:	e24dd018 	sub	sp, sp, #24
     408:	e3a00000 	mov	r0, #0
     40c:	e50b0004 	str	r0, [fp, #-4]
     410:	eaffffff 	b	414 <main+0x18>
     414:	e59f0110 	ldr	r0, [pc, #272]	; 52c <main+0x130>
     418:	e3a01002 	mov	r1, #2
     41c:	eb000590 	bl	1a64 <open>
     420:	e50b0008 	str	r0, [fp, #-8]
     424:	e3500000 	cmp	r0, #0
     428:	ba000009 	blt	454 <main+0x58>
     42c:	eaffffff 	b	430 <main+0x34>
     430:	e51b0008 	ldr	r0, [fp, #-8]
     434:	e3500003 	cmp	r0, #3
     438:	ba000004 	blt	450 <main+0x54>
     43c:	eaffffff 	b	440 <main+0x44>
     440:	e51b0008 	ldr	r0, [fp, #-8]
     444:	eb00056b 	bl	19f8 <close>
     448:	e58d000c 	str	r0, [sp, #12]
     44c:	ea000000 	b	454 <main+0x58>
     450:	eaffffef 	b	414 <main+0x18>
     454:	eaffffff 	b	458 <main+0x5c>
     458:	e59f00d0 	ldr	r0, [pc, #208]	; 530 <main+0x134>
     45c:	e3a01064 	mov	r1, #100	; 0x64
     460:	ebffffbf 	bl	364 <getcmd>
     464:	e3500000 	cmp	r0, #0
     468:	ba00002d 	blt	524 <main+0x128>
     46c:	eaffffff 	b	470 <main+0x74>
     470:	e59f00b8 	ldr	r0, [pc, #184]	; 530 <main+0x134>
     474:	e5d00000 	ldrb	r0, [r0]
     478:	e3500063 	cmp	r0, #99	; 0x63
     47c:	1a00001d 	bne	4f8 <main+0xfc>
     480:	eaffffff 	b	484 <main+0x88>
     484:	e59f00a4 	ldr	r0, [pc, #164]	; 530 <main+0x134>
     488:	e5d00001 	ldrb	r0, [r0, #1]
     48c:	e3500064 	cmp	r0, #100	; 0x64
     490:	1a000018 	bne	4f8 <main+0xfc>
     494:	eaffffff 	b	498 <main+0x9c>
     498:	e59f0090 	ldr	r0, [pc, #144]	; 530 <main+0x134>
     49c:	e5d00002 	ldrb	r0, [r0, #2]
     4a0:	e3500020 	cmp	r0, #32
     4a4:	1a000013 	bne	4f8 <main+0xfc>
     4a8:	eaffffff 	b	4ac <main+0xb0>
     4ac:	e59f007c 	ldr	r0, [pc, #124]	; 530 <main+0x134>
     4b0:	e58d0008 	str	r0, [sp, #8]
     4b4:	eb0003ec 	bl	146c <strlen>
     4b8:	e59de008 	ldr	lr, [sp, #8]
     4bc:	e08e0000 	add	r0, lr, r0
     4c0:	e3a01000 	mov	r1, #0
     4c4:	e5401001 	strb	r1, [r0, #-1]
     4c8:	e28e0003 	add	r0, lr, #3
     4cc:	eb00059a 	bl	1b3c <chdir>
     4d0:	e3500000 	cmp	r0, #0
     4d4:	aa000006 	bge	4f4 <main+0xf8>
     4d8:	eaffffff 	b	4dc <main+0xe0>
     4dc:	e59f004c 	ldr	r0, [pc, #76]	; 530 <main+0x134>
     4e0:	e2802003 	add	r2, r0, #3
     4e4:	e59f1048 	ldr	r1, [pc, #72]	; 534 <main+0x138>
     4e8:	e3a00002 	mov	r0, #2
     4ec:	eb0005c8 	bl	1c14 <printf>
     4f0:	eaffffff 	b	4f4 <main+0xf8>
     4f4:	eaffffd7 	b	458 <main+0x5c>
     4f8:	ebffff89 	bl	324 <fork1>
     4fc:	e3500000 	cmp	r0, #0
     500:	1a000004 	bne	518 <main+0x11c>
     504:	eaffffff 	b	508 <main+0x10c>
     508:	e59f0020 	ldr	r0, [pc, #32]	; 530 <main+0x134>
     50c:	eb000009 	bl	538 <parsecmd>
     510:	ebfffeba 	bl	0 <runcmd>
     514:	eaffffff 	b	518 <main+0x11c>
     518:	eb000512 	bl	1968 <wait>
     51c:	e58d0004 	str	r0, [sp, #4]
     520:	eaffffcc 	b	458 <main+0x5c>
     524:	eb000506 	bl	1944 <exit>
     528:	e58d0000 	str	r0, [sp]
     52c:	0000250b 	.word	0x0000250b
     530:	000025c4 	.word	0x000025c4
     534:	00002513 	.word	0x00002513

00000538 <parsecmd>:
     538:	e92d4800 	push	{fp, lr}
     53c:	e1a0b00d 	mov	fp, sp
     540:	e24dd020 	sub	sp, sp, #32
     544:	e1a01000 	mov	r1, r0
     548:	e50b0004 	str	r0, [fp, #-4]
     54c:	e51b0004 	ldr	r0, [fp, #-4]
     550:	e58d0010 	str	r0, [sp, #16]
     554:	e58d100c 	str	r1, [sp, #12]
     558:	eb0003c3 	bl	146c <strlen>
     55c:	e59d1010 	ldr	r1, [sp, #16]
     560:	e0810000 	add	r0, r1, r0
     564:	e50b0008 	str	r0, [fp, #-8]
     568:	e51b1008 	ldr	r1, [fp, #-8]
     56c:	e24b0004 	sub	r0, fp, #4
     570:	e58d0008 	str	r0, [sp, #8]
     574:	eb0001a5 	bl	c10 <parseline>
     578:	e50b000c 	str	r0, [fp, #-12]
     57c:	e51b1008 	ldr	r1, [fp, #-8]
     580:	e59f2054 	ldr	r2, [pc, #84]	; 5dc <parsecmd+0xa4>
     584:	e59d0008 	ldr	r0, [sp, #8]
     588:	eb000162 	bl	b18 <peek>
     58c:	e51b1004 	ldr	r1, [fp, #-4]
     590:	e51b2008 	ldr	r2, [fp, #-8]
     594:	e1510002 	cmp	r1, r2
     598:	e58d0004 	str	r0, [sp, #4]
     59c:	0a000007 	beq	5c0 <parsecmd+0x88>
     5a0:	eaffffff 	b	5a4 <parsecmd+0x6c>
     5a4:	e51b2004 	ldr	r2, [fp, #-4]
     5a8:	e59f1030 	ldr	r1, [pc, #48]	; 5e0 <parsecmd+0xa8>
     5ac:	e3a00002 	mov	r0, #2
     5b0:	eb000597 	bl	1c14 <printf>
     5b4:	e59f0028 	ldr	r0, [pc, #40]	; 5e4 <parsecmd+0xac>
     5b8:	ebffff48 	bl	2e0 <panic>
     5bc:	eaffffff 	b	5c0 <parsecmd+0x88>
     5c0:	e51b000c 	ldr	r0, [fp, #-12]
     5c4:	eb0001d3 	bl	d18 <nulterminate>
     5c8:	e51be00c 	ldr	lr, [fp, #-12]
     5cc:	e58d0000 	str	r0, [sp]
     5d0:	e1a0000e 	mov	r0, lr
     5d4:	e1a0d00b 	mov	sp, fp
     5d8:	e8bd8800 	pop	{fp, pc}
     5dc:	000024f2 	.word	0x000024f2
     5e0:	00002526 	.word	0x00002526
     5e4:	00002535 	.word	0x00002535

000005e8 <execcmd>:
     5e8:	e92d4800 	push	{fp, lr}
     5ec:	e1a0b00d 	mov	fp, sp
     5f0:	e24dd010 	sub	sp, sp, #16
     5f4:	e3a00054 	mov	r0, #84	; 0x54
     5f8:	e58d0008 	str	r0, [sp, #8]
     5fc:	eb0006ea 	bl	21ac <malloc>
     600:	e50b0004 	str	r0, [fp, #-4]
     604:	e51b0004 	ldr	r0, [fp, #-4]
     608:	e3a01000 	mov	r1, #0
     60c:	e59d2008 	ldr	r2, [sp, #8]
     610:	eb0003aa 	bl	14c0 <memset>
     614:	e51b1004 	ldr	r1, [fp, #-4]
     618:	e3a02001 	mov	r2, #1
     61c:	e5812000 	str	r2, [r1]
     620:	e51b1004 	ldr	r1, [fp, #-4]
     624:	e58d0004 	str	r0, [sp, #4]
     628:	e1a00001 	mov	r0, r1
     62c:	e1a0d00b 	mov	sp, fp
     630:	e8bd8800 	pop	{fp, pc}

00000634 <redircmd>:
     634:	e92d4c70 	push	{r4, r5, r6, sl, fp, lr}
     638:	e28db010 	add	fp, sp, #16
     63c:	e24dd030 	sub	sp, sp, #48	; 0x30
     640:	e59bc008 	ldr	ip, [fp, #8]
     644:	e1a0e003 	mov	lr, r3
     648:	e1a04002 	mov	r4, r2
     64c:	e1a05001 	mov	r5, r1
     650:	e1a06000 	mov	r6, r0
     654:	e50b0014 	str	r0, [fp, #-20]	; 0xffffffec
     658:	e50b1018 	str	r1, [fp, #-24]	; 0xffffffe8
     65c:	e50b201c 	str	r2, [fp, #-28]	; 0xffffffe4
     660:	e58d3020 	str	r3, [sp, #32]
     664:	e3a00018 	mov	r0, #24
     668:	e58d0018 	str	r0, [sp, #24]
     66c:	e58de014 	str	lr, [sp, #20]
     670:	e58d4010 	str	r4, [sp, #16]
     674:	e58d500c 	str	r5, [sp, #12]
     678:	e58d6008 	str	r6, [sp, #8]
     67c:	e58dc004 	str	ip, [sp, #4]
     680:	eb0006c9 	bl	21ac <malloc>
     684:	e58d001c 	str	r0, [sp, #28]
     688:	e59d001c 	ldr	r0, [sp, #28]
     68c:	e3a01000 	mov	r1, #0
     690:	e59d2018 	ldr	r2, [sp, #24]
     694:	eb000389 	bl	14c0 <memset>
     698:	e59d101c 	ldr	r1, [sp, #28]
     69c:	e3a02002 	mov	r2, #2
     6a0:	e5812000 	str	r2, [r1]
     6a4:	e51b1014 	ldr	r1, [fp, #-20]	; 0xffffffec
     6a8:	e59d201c 	ldr	r2, [sp, #28]
     6ac:	e5821004 	str	r1, [r2, #4]
     6b0:	e51b1018 	ldr	r1, [fp, #-24]	; 0xffffffe8
     6b4:	e59d201c 	ldr	r2, [sp, #28]
     6b8:	e5821008 	str	r1, [r2, #8]
     6bc:	e51b101c 	ldr	r1, [fp, #-28]	; 0xffffffe4
     6c0:	e59d201c 	ldr	r2, [sp, #28]
     6c4:	e582100c 	str	r1, [r2, #12]
     6c8:	e59d1020 	ldr	r1, [sp, #32]
     6cc:	e59d201c 	ldr	r2, [sp, #28]
     6d0:	e5821010 	str	r1, [r2, #16]
     6d4:	e59b1008 	ldr	r1, [fp, #8]
     6d8:	e59d201c 	ldr	r2, [sp, #28]
     6dc:	e5821014 	str	r1, [r2, #20]
     6e0:	e59d101c 	ldr	r1, [sp, #28]
     6e4:	e58d0000 	str	r0, [sp]
     6e8:	e1a00001 	mov	r0, r1
     6ec:	e24bd010 	sub	sp, fp, #16
     6f0:	e8bd8c70 	pop	{r4, r5, r6, sl, fp, pc}

000006f4 <pipecmd>:
     6f4:	e92d4800 	push	{fp, lr}
     6f8:	e1a0b00d 	mov	fp, sp
     6fc:	e24dd020 	sub	sp, sp, #32
     700:	e1a02001 	mov	r2, r1
     704:	e1a03000 	mov	r3, r0
     708:	e50b0004 	str	r0, [fp, #-4]
     70c:	e50b1008 	str	r1, [fp, #-8]
     710:	e3a0000c 	mov	r0, #12
     714:	e58d0010 	str	r0, [sp, #16]
     718:	e58d200c 	str	r2, [sp, #12]
     71c:	e58d3008 	str	r3, [sp, #8]
     720:	eb0006a1 	bl	21ac <malloc>
     724:	e50b000c 	str	r0, [fp, #-12]
     728:	e51b000c 	ldr	r0, [fp, #-12]
     72c:	e3a01000 	mov	r1, #0
     730:	e59d2010 	ldr	r2, [sp, #16]
     734:	eb000361 	bl	14c0 <memset>
     738:	e51b100c 	ldr	r1, [fp, #-12]
     73c:	e3a02003 	mov	r2, #3
     740:	e5812000 	str	r2, [r1]
     744:	e51b1004 	ldr	r1, [fp, #-4]
     748:	e51b200c 	ldr	r2, [fp, #-12]
     74c:	e5821004 	str	r1, [r2, #4]
     750:	e51b1008 	ldr	r1, [fp, #-8]
     754:	e51b200c 	ldr	r2, [fp, #-12]
     758:	e5821008 	str	r1, [r2, #8]
     75c:	e51b100c 	ldr	r1, [fp, #-12]
     760:	e58d0004 	str	r0, [sp, #4]
     764:	e1a00001 	mov	r0, r1
     768:	e1a0d00b 	mov	sp, fp
     76c:	e8bd8800 	pop	{fp, pc}

00000770 <listcmd>:
     770:	e92d4800 	push	{fp, lr}
     774:	e1a0b00d 	mov	fp, sp
     778:	e24dd020 	sub	sp, sp, #32
     77c:	e1a02001 	mov	r2, r1
     780:	e1a03000 	mov	r3, r0
     784:	e50b0004 	str	r0, [fp, #-4]
     788:	e50b1008 	str	r1, [fp, #-8]
     78c:	e3a0000c 	mov	r0, #12
     790:	e58d0010 	str	r0, [sp, #16]
     794:	e58d200c 	str	r2, [sp, #12]
     798:	e58d3008 	str	r3, [sp, #8]
     79c:	eb000682 	bl	21ac <malloc>
     7a0:	e50b000c 	str	r0, [fp, #-12]
     7a4:	e51b000c 	ldr	r0, [fp, #-12]
     7a8:	e3a01000 	mov	r1, #0
     7ac:	e59d2010 	ldr	r2, [sp, #16]
     7b0:	eb000342 	bl	14c0 <memset>
     7b4:	e51b100c 	ldr	r1, [fp, #-12]
     7b8:	e3a02004 	mov	r2, #4
     7bc:	e5812000 	str	r2, [r1]
     7c0:	e51b1004 	ldr	r1, [fp, #-4]
     7c4:	e51b200c 	ldr	r2, [fp, #-12]
     7c8:	e5821004 	str	r1, [r2, #4]
     7cc:	e51b1008 	ldr	r1, [fp, #-8]
     7d0:	e51b200c 	ldr	r2, [fp, #-12]
     7d4:	e5821008 	str	r1, [r2, #8]
     7d8:	e51b100c 	ldr	r1, [fp, #-12]
     7dc:	e58d0004 	str	r0, [sp, #4]
     7e0:	e1a00001 	mov	r0, r1
     7e4:	e1a0d00b 	mov	sp, fp
     7e8:	e8bd8800 	pop	{fp, pc}

000007ec <backcmd>:
     7ec:	e92d4800 	push	{fp, lr}
     7f0:	e1a0b00d 	mov	fp, sp
     7f4:	e24dd018 	sub	sp, sp, #24
     7f8:	e1a01000 	mov	r1, r0
     7fc:	e50b0004 	str	r0, [fp, #-4]
     800:	e3a00008 	mov	r0, #8
     804:	e58d000c 	str	r0, [sp, #12]
     808:	e58d1008 	str	r1, [sp, #8]
     80c:	eb000666 	bl	21ac <malloc>
     810:	e50b0008 	str	r0, [fp, #-8]
     814:	e51b0008 	ldr	r0, [fp, #-8]
     818:	e3a01000 	mov	r1, #0
     81c:	e59d200c 	ldr	r2, [sp, #12]
     820:	eb000326 	bl	14c0 <memset>
     824:	e51b1008 	ldr	r1, [fp, #-8]
     828:	e3a02005 	mov	r2, #5
     82c:	e5812000 	str	r2, [r1]
     830:	e51b1004 	ldr	r1, [fp, #-4]
     834:	e51b2008 	ldr	r2, [fp, #-8]
     838:	e5821004 	str	r1, [r2, #4]
     83c:	e51b1008 	ldr	r1, [fp, #-8]
     840:	e58d0004 	str	r0, [sp, #4]
     844:	e1a00001 	mov	r0, r1
     848:	e1a0d00b 	mov	sp, fp
     84c:	e8bd8800 	pop	{fp, pc}

00000850 <gettoken>:
     850:	e92d4830 	push	{r4, r5, fp, lr}
     854:	e28db008 	add	fp, sp, #8
     858:	e24dd038 	sub	sp, sp, #56	; 0x38
     85c:	e1a0c003 	mov	ip, r3
     860:	e1a0e002 	mov	lr, r2
     864:	e1a04001 	mov	r4, r1
     868:	e1a05000 	mov	r5, r0
     86c:	e50b000c 	str	r0, [fp, #-12]
     870:	e50b1010 	str	r1, [fp, #-16]
     874:	e50b2014 	str	r2, [fp, #-20]	; 0xffffffec
     878:	e50b3018 	str	r3, [fp, #-24]	; 0xffffffe8
     87c:	e51b000c 	ldr	r0, [fp, #-12]
     880:	e5900000 	ldr	r0, [r0]
     884:	e50b001c 	str	r0, [fp, #-28]	; 0xffffffe4
     888:	e58dc01c 	str	ip, [sp, #28]
     88c:	e58de018 	str	lr, [sp, #24]
     890:	e58d4014 	str	r4, [sp, #20]
     894:	e58d5010 	str	r5, [sp, #16]
     898:	eaffffff 	b	89c <gettoken+0x4c>
     89c:	e51b001c 	ldr	r0, [fp, #-28]	; 0xffffffe4
     8a0:	e51b1010 	ldr	r1, [fp, #-16]
     8a4:	e3a02000 	mov	r2, #0
     8a8:	e1500001 	cmp	r0, r1
     8ac:	e58d200c 	str	r2, [sp, #12]
     8b0:	2a000008 	bcs	8d8 <gettoken+0x88>
     8b4:	eaffffff 	b	8b8 <gettoken+0x68>
     8b8:	e51b001c 	ldr	r0, [fp, #-28]	; 0xffffffe4
     8bc:	e5d01000 	ldrb	r1, [r0]
     8c0:	e59f0248 	ldr	r0, [pc, #584]	; b10 <gettoken+0x2c0>
     8c4:	eb000356 	bl	1624 <strchr>
     8c8:	e3500000 	cmp	r0, #0
     8cc:	13a00001 	movne	r0, #1
     8d0:	e58d000c 	str	r0, [sp, #12]
     8d4:	eaffffff 	b	8d8 <gettoken+0x88>
     8d8:	e59d000c 	ldr	r0, [sp, #12]
     8dc:	e3100001 	tst	r0, #1
     8e0:	0a000004 	beq	8f8 <gettoken+0xa8>
     8e4:	eaffffff 	b	8e8 <gettoken+0x98>
     8e8:	e51b001c 	ldr	r0, [fp, #-28]	; 0xffffffe4
     8ec:	e2800001 	add	r0, r0, #1
     8f0:	e50b001c 	str	r0, [fp, #-28]	; 0xffffffe4
     8f4:	eaffffe8 	b	89c <gettoken+0x4c>
     8f8:	e51b0014 	ldr	r0, [fp, #-20]	; 0xffffffec
     8fc:	e3500000 	cmp	r0, #0
     900:	0a000004 	beq	918 <gettoken+0xc8>
     904:	eaffffff 	b	908 <gettoken+0xb8>
     908:	e51b001c 	ldr	r0, [fp, #-28]	; 0xffffffe4
     90c:	e51b1014 	ldr	r1, [fp, #-20]	; 0xffffffec
     910:	e5810000 	str	r0, [r1]
     914:	eaffffff 	b	918 <gettoken+0xc8>
     918:	e51b001c 	ldr	r0, [fp, #-28]	; 0xffffffe4
     91c:	e5d01000 	ldrb	r1, [r0]
     920:	e58d1020 	str	r1, [sp, #32]
     924:	e5d00000 	ldrb	r0, [r0]
     928:	e1a01000 	mov	r1, r0
     92c:	e3500000 	cmp	r0, #0
     930:	e58d1008 	str	r1, [sp, #8]
     934:	0a000016 	beq	994 <gettoken+0x144>
     938:	eaffffff 	b	93c <gettoken+0xec>
     93c:	e59d0008 	ldr	r0, [sp, #8]
     940:	e3500026 	cmp	r0, #38	; 0x26
     944:	0a000013 	beq	998 <gettoken+0x148>
     948:	eaffffff 	b	94c <gettoken+0xfc>
     94c:	e59d0008 	ldr	r0, [sp, #8]
     950:	e2401028 	sub	r1, r0, #40	; 0x28
     954:	e3510002 	cmp	r1, #2
     958:	3a00000e 	bcc	998 <gettoken+0x148>
     95c:	eaffffff 	b	960 <gettoken+0x110>
     960:	e59d0008 	ldr	r0, [sp, #8]
     964:	e240103b 	sub	r1, r0, #59	; 0x3b
     968:	e3510002 	cmp	r1, #2
     96c:	3a000009 	bcc	998 <gettoken+0x148>
     970:	eaffffff 	b	974 <gettoken+0x124>
     974:	e59d0008 	ldr	r0, [sp, #8]
     978:	e350003e 	cmp	r0, #62	; 0x3e
     97c:	0a000009 	beq	9a8 <gettoken+0x158>
     980:	eaffffff 	b	984 <gettoken+0x134>
     984:	e59d0008 	ldr	r0, [sp, #8]
     988:	e350007c 	cmp	r0, #124	; 0x7c
     98c:	0a000001 	beq	998 <gettoken+0x148>
     990:	ea000013 	b	9e4 <gettoken+0x194>
     994:	ea000037 	b	a78 <gettoken+0x228>
     998:	e51b001c 	ldr	r0, [fp, #-28]	; 0xffffffe4
     99c:	e2800001 	add	r0, r0, #1
     9a0:	e50b001c 	str	r0, [fp, #-28]	; 0xffffffe4
     9a4:	ea000033 	b	a78 <gettoken+0x228>
     9a8:	e51b001c 	ldr	r0, [fp, #-28]	; 0xffffffe4
     9ac:	e2800001 	add	r0, r0, #1
     9b0:	e50b001c 	str	r0, [fp, #-28]	; 0xffffffe4
     9b4:	e51b001c 	ldr	r0, [fp, #-28]	; 0xffffffe4
     9b8:	e5d00000 	ldrb	r0, [r0]
     9bc:	e350003e 	cmp	r0, #62	; 0x3e
     9c0:	1a000006 	bne	9e0 <gettoken+0x190>
     9c4:	eaffffff 	b	9c8 <gettoken+0x178>
     9c8:	e3a0002b 	mov	r0, #43	; 0x2b
     9cc:	e58d0020 	str	r0, [sp, #32]
     9d0:	e51b001c 	ldr	r0, [fp, #-28]	; 0xffffffe4
     9d4:	e2800001 	add	r0, r0, #1
     9d8:	e50b001c 	str	r0, [fp, #-28]	; 0xffffffe4
     9dc:	eaffffff 	b	9e0 <gettoken+0x190>
     9e0:	ea000024 	b	a78 <gettoken+0x228>
     9e4:	e3a00061 	mov	r0, #97	; 0x61
     9e8:	e58d0020 	str	r0, [sp, #32]
     9ec:	eaffffff 	b	9f0 <gettoken+0x1a0>
     9f0:	e51b001c 	ldr	r0, [fp, #-28]	; 0xffffffe4
     9f4:	e51b1010 	ldr	r1, [fp, #-16]
     9f8:	e3a02000 	mov	r2, #0
     9fc:	e1500001 	cmp	r0, r1
     a00:	e58d2004 	str	r2, [sp, #4]
     a04:	2a000012 	bcs	a54 <gettoken+0x204>
     a08:	eaffffff 	b	a0c <gettoken+0x1bc>
     a0c:	e51b001c 	ldr	r0, [fp, #-28]	; 0xffffffe4
     a10:	e5d01000 	ldrb	r1, [r0]
     a14:	e59f00f4 	ldr	r0, [pc, #244]	; b10 <gettoken+0x2c0>
     a18:	eb000301 	bl	1624 <strchr>
     a1c:	e3a01000 	mov	r1, #0
     a20:	e3500000 	cmp	r0, #0
     a24:	e58d1004 	str	r1, [sp, #4]
     a28:	1a000009 	bne	a54 <gettoken+0x204>
     a2c:	eaffffff 	b	a30 <gettoken+0x1e0>
     a30:	e51b001c 	ldr	r0, [fp, #-28]	; 0xffffffe4
     a34:	e5d01000 	ldrb	r1, [r0]
     a38:	e59f00d4 	ldr	r0, [pc, #212]	; b14 <gettoken+0x2c4>
     a3c:	eb0002f8 	bl	1624 <strchr>
     a40:	e3a01000 	mov	r1, #0
     a44:	e3500000 	cmp	r0, #0
     a48:	03a01001 	moveq	r1, #1
     a4c:	e58d1004 	str	r1, [sp, #4]
     a50:	eaffffff 	b	a54 <gettoken+0x204>
     a54:	e59d0004 	ldr	r0, [sp, #4]
     a58:	e3100001 	tst	r0, #1
     a5c:	0a000004 	beq	a74 <gettoken+0x224>
     a60:	eaffffff 	b	a64 <gettoken+0x214>
     a64:	e51b001c 	ldr	r0, [fp, #-28]	; 0xffffffe4
     a68:	e2800001 	add	r0, r0, #1
     a6c:	e50b001c 	str	r0, [fp, #-28]	; 0xffffffe4
     a70:	eaffffde 	b	9f0 <gettoken+0x1a0>
     a74:	eaffffff 	b	a78 <gettoken+0x228>
     a78:	e51b0018 	ldr	r0, [fp, #-24]	; 0xffffffe8
     a7c:	e3500000 	cmp	r0, #0
     a80:	0a000004 	beq	a98 <gettoken+0x248>
     a84:	eaffffff 	b	a88 <gettoken+0x238>
     a88:	e51b001c 	ldr	r0, [fp, #-28]	; 0xffffffe4
     a8c:	e51b1018 	ldr	r1, [fp, #-24]	; 0xffffffe8
     a90:	e5810000 	str	r0, [r1]
     a94:	eaffffff 	b	a98 <gettoken+0x248>
     a98:	eaffffff 	b	a9c <gettoken+0x24c>
     a9c:	e51b001c 	ldr	r0, [fp, #-28]	; 0xffffffe4
     aa0:	e51b1010 	ldr	r1, [fp, #-16]
     aa4:	e3a02000 	mov	r2, #0
     aa8:	e1500001 	cmp	r0, r1
     aac:	e58d2000 	str	r2, [sp]
     ab0:	2a000008 	bcs	ad8 <gettoken+0x288>
     ab4:	eaffffff 	b	ab8 <gettoken+0x268>
     ab8:	e51b001c 	ldr	r0, [fp, #-28]	; 0xffffffe4
     abc:	e5d01000 	ldrb	r1, [r0]
     ac0:	e59f0048 	ldr	r0, [pc, #72]	; b10 <gettoken+0x2c0>
     ac4:	eb0002d6 	bl	1624 <strchr>
     ac8:	e3500000 	cmp	r0, #0
     acc:	13a00001 	movne	r0, #1
     ad0:	e58d0000 	str	r0, [sp]
     ad4:	eaffffff 	b	ad8 <gettoken+0x288>
     ad8:	e59d0000 	ldr	r0, [sp]
     adc:	e3100001 	tst	r0, #1
     ae0:	0a000004 	beq	af8 <gettoken+0x2a8>
     ae4:	eaffffff 	b	ae8 <gettoken+0x298>
     ae8:	e51b001c 	ldr	r0, [fp, #-28]	; 0xffffffe4
     aec:	e2800001 	add	r0, r0, #1
     af0:	e50b001c 	str	r0, [fp, #-28]	; 0xffffffe4
     af4:	eaffffe8 	b	a9c <gettoken+0x24c>
     af8:	e51b001c 	ldr	r0, [fp, #-28]	; 0xffffffe4
     afc:	e51b100c 	ldr	r1, [fp, #-12]
     b00:	e5810000 	str	r0, [r1]
     b04:	e59d0020 	ldr	r0, [sp, #32]
     b08:	e24bd008 	sub	sp, fp, #8
     b0c:	e8bd8830 	pop	{r4, r5, fp, pc}
     b10:	000025a4 	.word	0x000025a4
     b14:	000025aa 	.word	0x000025aa

00000b18 <peek>:
     b18:	e92d4800 	push	{fp, lr}
     b1c:	e1a0b00d 	mov	fp, sp
     b20:	e24dd028 	sub	sp, sp, #40	; 0x28
     b24:	e1a03002 	mov	r3, r2
     b28:	e1a0c001 	mov	ip, r1
     b2c:	e1a0e000 	mov	lr, r0
     b30:	e50b0004 	str	r0, [fp, #-4]
     b34:	e50b1008 	str	r1, [fp, #-8]
     b38:	e50b200c 	str	r2, [fp, #-12]
     b3c:	e51b0004 	ldr	r0, [fp, #-4]
     b40:	e5900000 	ldr	r0, [r0]
     b44:	e50b0010 	str	r0, [fp, #-16]
     b48:	e58d3014 	str	r3, [sp, #20]
     b4c:	e58dc010 	str	ip, [sp, #16]
     b50:	e58de00c 	str	lr, [sp, #12]
     b54:	eaffffff 	b	b58 <peek+0x40>
     b58:	e51b0010 	ldr	r0, [fp, #-16]
     b5c:	e51b1008 	ldr	r1, [fp, #-8]
     b60:	e3a02000 	mov	r2, #0
     b64:	e1500001 	cmp	r0, r1
     b68:	e58d2008 	str	r2, [sp, #8]
     b6c:	2a000008 	bcs	b94 <peek+0x7c>
     b70:	eaffffff 	b	b74 <peek+0x5c>
     b74:	e51b0010 	ldr	r0, [fp, #-16]
     b78:	e5d01000 	ldrb	r1, [r0]
     b7c:	e59f0088 	ldr	r0, [pc, #136]	; c0c <peek+0xf4>
     b80:	eb0002a7 	bl	1624 <strchr>
     b84:	e3500000 	cmp	r0, #0
     b88:	13a00001 	movne	r0, #1
     b8c:	e58d0008 	str	r0, [sp, #8]
     b90:	eaffffff 	b	b94 <peek+0x7c>
     b94:	e59d0008 	ldr	r0, [sp, #8]
     b98:	e3100001 	tst	r0, #1
     b9c:	0a000004 	beq	bb4 <peek+0x9c>
     ba0:	eaffffff 	b	ba4 <peek+0x8c>
     ba4:	e51b0010 	ldr	r0, [fp, #-16]
     ba8:	e2800001 	add	r0, r0, #1
     bac:	e50b0010 	str	r0, [fp, #-16]
     bb0:	eaffffe8 	b	b58 <peek+0x40>
     bb4:	e51b0010 	ldr	r0, [fp, #-16]
     bb8:	e51b1004 	ldr	r1, [fp, #-4]
     bbc:	e5810000 	str	r0, [r1]
     bc0:	e51b0010 	ldr	r0, [fp, #-16]
     bc4:	e5d00000 	ldrb	r0, [r0]
     bc8:	e3a01000 	mov	r1, #0
     bcc:	e3500000 	cmp	r0, #0
     bd0:	e58d1004 	str	r1, [sp, #4]
     bd4:	0a000008 	beq	bfc <peek+0xe4>
     bd8:	eaffffff 	b	bdc <peek+0xc4>
     bdc:	e51b000c 	ldr	r0, [fp, #-12]
     be0:	e51b1010 	ldr	r1, [fp, #-16]
     be4:	e5d11000 	ldrb	r1, [r1]
     be8:	eb00028d 	bl	1624 <strchr>
     bec:	e3500000 	cmp	r0, #0
     bf0:	13a00001 	movne	r0, #1
     bf4:	e58d0004 	str	r0, [sp, #4]
     bf8:	eaffffff 	b	bfc <peek+0xe4>
     bfc:	e59d0004 	ldr	r0, [sp, #4]
     c00:	e2000001 	and	r0, r0, #1
     c04:	e1a0d00b 	mov	sp, fp
     c08:	e8bd8800 	pop	{fp, pc}
     c0c:	000025a4 	.word	0x000025a4

00000c10 <parseline>:
     c10:	e92d4800 	push	{fp, lr}
     c14:	e1a0b00d 	mov	fp, sp
     c18:	e24dd030 	sub	sp, sp, #48	; 0x30
     c1c:	e1a02001 	mov	r2, r1
     c20:	e1a03000 	mov	r3, r0
     c24:	e50b0004 	str	r0, [fp, #-4]
     c28:	e50b1008 	str	r1, [fp, #-8]
     c2c:	e51b0004 	ldr	r0, [fp, #-4]
     c30:	e51b1008 	ldr	r1, [fp, #-8]
     c34:	e50b2010 	str	r2, [fp, #-16]
     c38:	e50b3014 	str	r3, [fp, #-20]	; 0xffffffec
     c3c:	eb00009a 	bl	eac <parsepipe>
     c40:	e50b000c 	str	r0, [fp, #-12]
     c44:	eaffffff 	b	c48 <parseline+0x38>
     c48:	e51b0004 	ldr	r0, [fp, #-4]
     c4c:	e51b1008 	ldr	r1, [fp, #-8]
     c50:	e59f20b8 	ldr	r2, [pc, #184]	; d10 <parseline+0x100>
     c54:	ebffffaf 	bl	b18 <peek>
     c58:	e3500000 	cmp	r0, #0
     c5c:	0a00000c 	beq	c94 <parseline+0x84>
     c60:	eaffffff 	b	c64 <parseline+0x54>
     c64:	e51b0004 	ldr	r0, [fp, #-4]
     c68:	e51b1008 	ldr	r1, [fp, #-8]
     c6c:	e3a02000 	mov	r2, #0
     c70:	e58d2018 	str	r2, [sp, #24]
     c74:	e59d3018 	ldr	r3, [sp, #24]
     c78:	ebfffef4 	bl	850 <gettoken>
     c7c:	e51b100c 	ldr	r1, [fp, #-12]
     c80:	e58d0014 	str	r0, [sp, #20]
     c84:	e1a00001 	mov	r0, r1
     c88:	ebfffed7 	bl	7ec <backcmd>
     c8c:	e50b000c 	str	r0, [fp, #-12]
     c90:	eaffffec 	b	c48 <parseline+0x38>
     c94:	e51b0004 	ldr	r0, [fp, #-4]
     c98:	e51b1008 	ldr	r1, [fp, #-8]
     c9c:	e59f2070 	ldr	r2, [pc, #112]	; d14 <parseline+0x104>
     ca0:	ebffff9c 	bl	b18 <peek>
     ca4:	e3500000 	cmp	r0, #0
     ca8:	0a000015 	beq	d04 <parseline+0xf4>
     cac:	eaffffff 	b	cb0 <parseline+0xa0>
     cb0:	e51b0004 	ldr	r0, [fp, #-4]
     cb4:	e51b1008 	ldr	r1, [fp, #-8]
     cb8:	e3a02000 	mov	r2, #0
     cbc:	e58d2010 	str	r2, [sp, #16]
     cc0:	e59d3010 	ldr	r3, [sp, #16]
     cc4:	ebfffee1 	bl	850 <gettoken>
     cc8:	e51b100c 	ldr	r1, [fp, #-12]
     ccc:	e51b2004 	ldr	r2, [fp, #-4]
     cd0:	e51b3008 	ldr	r3, [fp, #-8]
     cd4:	e58d000c 	str	r0, [sp, #12]
     cd8:	e1a00002 	mov	r0, r2
     cdc:	e58d1008 	str	r1, [sp, #8]
     ce0:	e1a01003 	mov	r1, r3
     ce4:	ebffffc9 	bl	c10 <parseline>
     ce8:	e59d1008 	ldr	r1, [sp, #8]
     cec:	e58d0004 	str	r0, [sp, #4]
     cf0:	e1a00001 	mov	r0, r1
     cf4:	e59d1004 	ldr	r1, [sp, #4]
     cf8:	ebfffe9c 	bl	770 <listcmd>
     cfc:	e50b000c 	str	r0, [fp, #-12]
     d00:	eaffffff 	b	d04 <parseline+0xf4>
     d04:	e51b000c 	ldr	r0, [fp, #-12]
     d08:	e1a0d00b 	mov	sp, fp
     d0c:	e8bd8800 	pop	{fp, pc}
     d10:	0000253c 	.word	0x0000253c
     d14:	00002583 	.word	0x00002583

00000d18 <nulterminate>:
     d18:	e92d4800 	push	{fp, lr}
     d1c:	e1a0b00d 	mov	fp, sp
     d20:	e24dd040 	sub	sp, sp, #64	; 0x40
     d24:	e1a01000 	mov	r1, r0
     d28:	e50b0008 	str	r0, [fp, #-8]
     d2c:	e51b0008 	ldr	r0, [fp, #-8]
     d30:	e3500000 	cmp	r0, #0
     d34:	e58d101c 	str	r1, [sp, #28]
     d38:	1a000003 	bne	d4c <nulterminate+0x34>
     d3c:	eaffffff 	b	d40 <nulterminate+0x28>
     d40:	e3a00000 	mov	r0, #0
     d44:	e50b0004 	str	r0, [fp, #-4]
     d48:	ea000054 	b	ea0 <nulterminate+0x188>
     d4c:	e51b0008 	ldr	r0, [fp, #-8]
     d50:	e5900000 	ldr	r0, [r0]
     d54:	e2400001 	sub	r0, r0, #1
     d58:	e3500004 	cmp	r0, #4
     d5c:	e58d0018 	str	r0, [sp, #24]
     d60:	8a00004b 	bhi	e94 <nulterminate+0x17c>
     d64:	e59d0018 	ldr	r0, [sp, #24]
     d68:	e1a01100 	lsl	r1, r0, #2
     d6c:	e28f2004 	add	r2, pc, #4
     d70:	e7911002 	ldr	r1, [r1, r2]
     d74:	e1a0f001 	mov	pc, r1
     d78:	00000d8c 	.word	0x00000d8c
     d7c:	00000dec 	.word	0x00000dec
     d80:	00000e18 	.word	0x00000e18
     d84:	00000e48 	.word	0x00000e48
     d88:	00000e78 	.word	0x00000e78
     d8c:	e51b0008 	ldr	r0, [fp, #-8]
     d90:	e50b0014 	str	r0, [fp, #-20]	; 0xffffffec
     d94:	e3a00000 	mov	r0, #0
     d98:	e50b000c 	str	r0, [fp, #-12]
     d9c:	eaffffff 	b	da0 <nulterminate+0x88>
     da0:	e51b0014 	ldr	r0, [fp, #-20]	; 0xffffffec
     da4:	e51b100c 	ldr	r1, [fp, #-12]
     da8:	e0800101 	add	r0, r0, r1, lsl #2
     dac:	e5900004 	ldr	r0, [r0, #4]
     db0:	e3500000 	cmp	r0, #0
     db4:	0a00000b 	beq	de8 <nulterminate+0xd0>
     db8:	eaffffff 	b	dbc <nulterminate+0xa4>
     dbc:	e51b0014 	ldr	r0, [fp, #-20]	; 0xffffffec
     dc0:	e51b100c 	ldr	r1, [fp, #-12]
     dc4:	e0800101 	add	r0, r0, r1, lsl #2
     dc8:	e590002c 	ldr	r0, [r0, #44]	; 0x2c
     dcc:	e3a01000 	mov	r1, #0
     dd0:	e5c01000 	strb	r1, [r0]
     dd4:	eaffffff 	b	dd8 <nulterminate+0xc0>
     dd8:	e51b000c 	ldr	r0, [fp, #-12]
     ddc:	e2800001 	add	r0, r0, #1
     de0:	e50b000c 	str	r0, [fp, #-12]
     de4:	eaffffed 	b	da0 <nulterminate+0x88>
     de8:	ea000029 	b	e94 <nulterminate+0x17c>
     dec:	e51b0008 	ldr	r0, [fp, #-8]
     df0:	e58d0020 	str	r0, [sp, #32]
     df4:	e59d0020 	ldr	r0, [sp, #32]
     df8:	e5900004 	ldr	r0, [r0, #4]
     dfc:	ebffffc5 	bl	d18 <nulterminate>
     e00:	e59de020 	ldr	lr, [sp, #32]
     e04:	e59ee00c 	ldr	lr, [lr, #12]
     e08:	e3a01000 	mov	r1, #0
     e0c:	e5ce1000 	strb	r1, [lr]
     e10:	e58d0014 	str	r0, [sp, #20]
     e14:	ea00001e 	b	e94 <nulterminate+0x17c>
     e18:	e51b0008 	ldr	r0, [fp, #-8]
     e1c:	e50b001c 	str	r0, [fp, #-28]	; 0xffffffe4
     e20:	e51b001c 	ldr	r0, [fp, #-28]	; 0xffffffe4
     e24:	e5900004 	ldr	r0, [r0, #4]
     e28:	ebffffba 	bl	d18 <nulterminate>
     e2c:	e51be01c 	ldr	lr, [fp, #-28]	; 0xffffffe4
     e30:	e59ee008 	ldr	lr, [lr, #8]
     e34:	e58d0010 	str	r0, [sp, #16]
     e38:	e1a0000e 	mov	r0, lr
     e3c:	ebffffb5 	bl	d18 <nulterminate>
     e40:	e58d000c 	str	r0, [sp, #12]
     e44:	ea000012 	b	e94 <nulterminate+0x17c>
     e48:	e51b0008 	ldr	r0, [fp, #-8]
     e4c:	e50b0018 	str	r0, [fp, #-24]	; 0xffffffe8
     e50:	e51b0018 	ldr	r0, [fp, #-24]	; 0xffffffe8
     e54:	e5900004 	ldr	r0, [r0, #4]
     e58:	ebffffae 	bl	d18 <nulterminate>
     e5c:	e51be018 	ldr	lr, [fp, #-24]	; 0xffffffe8
     e60:	e59ee008 	ldr	lr, [lr, #8]
     e64:	e58d0008 	str	r0, [sp, #8]
     e68:	e1a0000e 	mov	r0, lr
     e6c:	ebffffa9 	bl	d18 <nulterminate>
     e70:	e58d0004 	str	r0, [sp, #4]
     e74:	ea000006 	b	e94 <nulterminate+0x17c>
     e78:	e51b0008 	ldr	r0, [fp, #-8]
     e7c:	e50b0010 	str	r0, [fp, #-16]
     e80:	e51b0010 	ldr	r0, [fp, #-16]
     e84:	e5900004 	ldr	r0, [r0, #4]
     e88:	ebffffa2 	bl	d18 <nulterminate>
     e8c:	e58d0000 	str	r0, [sp]
     e90:	eaffffff 	b	e94 <nulterminate+0x17c>
     e94:	e51b0008 	ldr	r0, [fp, #-8]
     e98:	e50b0004 	str	r0, [fp, #-4]
     e9c:	eaffffff 	b	ea0 <nulterminate+0x188>
     ea0:	e51b0004 	ldr	r0, [fp, #-4]
     ea4:	e1a0d00b 	mov	sp, fp
     ea8:	e8bd8800 	pop	{fp, pc}

00000eac <parsepipe>:
     eac:	e92d4800 	push	{fp, lr}
     eb0:	e1a0b00d 	mov	fp, sp
     eb4:	e24dd028 	sub	sp, sp, #40	; 0x28
     eb8:	e1a02001 	mov	r2, r1
     ebc:	e1a03000 	mov	r3, r0
     ec0:	e50b0004 	str	r0, [fp, #-4]
     ec4:	e50b1008 	str	r1, [fp, #-8]
     ec8:	e51b0004 	ldr	r0, [fp, #-4]
     ecc:	e51b1008 	ldr	r1, [fp, #-8]
     ed0:	e50b2010 	str	r2, [fp, #-16]
     ed4:	e58d3014 	str	r3, [sp, #20]
     ed8:	eb000020 	bl	f60 <parseexec>
     edc:	e50b000c 	str	r0, [fp, #-12]
     ee0:	e51b0004 	ldr	r0, [fp, #-4]
     ee4:	e51b1008 	ldr	r1, [fp, #-8]
     ee8:	e59f206c 	ldr	r2, [pc, #108]	; f5c <parsepipe+0xb0>
     eec:	ebffff09 	bl	b18 <peek>
     ef0:	e3500000 	cmp	r0, #0
     ef4:	0a000015 	beq	f50 <parsepipe+0xa4>
     ef8:	eaffffff 	b	efc <parsepipe+0x50>
     efc:	e51b0004 	ldr	r0, [fp, #-4]
     f00:	e51b1008 	ldr	r1, [fp, #-8]
     f04:	e3a02000 	mov	r2, #0
     f08:	e58d2010 	str	r2, [sp, #16]
     f0c:	e59d3010 	ldr	r3, [sp, #16]
     f10:	ebfffe4e 	bl	850 <gettoken>
     f14:	e51b100c 	ldr	r1, [fp, #-12]
     f18:	e51b2004 	ldr	r2, [fp, #-4]
     f1c:	e51b3008 	ldr	r3, [fp, #-8]
     f20:	e58d000c 	str	r0, [sp, #12]
     f24:	e1a00002 	mov	r0, r2
     f28:	e58d1008 	str	r1, [sp, #8]
     f2c:	e1a01003 	mov	r1, r3
     f30:	ebffffdd 	bl	eac <parsepipe>
     f34:	e59d1008 	ldr	r1, [sp, #8]
     f38:	e58d0004 	str	r0, [sp, #4]
     f3c:	e1a00001 	mov	r0, r1
     f40:	e59d1004 	ldr	r1, [sp, #4]
     f44:	ebfffdea 	bl	6f4 <pipecmd>
     f48:	e50b000c 	str	r0, [fp, #-12]
     f4c:	eaffffff 	b	f50 <parsepipe+0xa4>
     f50:	e51b000c 	ldr	r0, [fp, #-12]
     f54:	e1a0d00b 	mov	sp, fp
     f58:	e8bd8800 	pop	{fp, pc}
     f5c:	0000253e 	.word	0x0000253e

00000f60 <parseexec>:
     f60:	e92d4800 	push	{fp, lr}
     f64:	e1a0b00d 	mov	fp, sp
     f68:	e24dd030 	sub	sp, sp, #48	; 0x30
     f6c:	e1a02001 	mov	r2, r1
     f70:	e1a03000 	mov	r3, r0
     f74:	e50b0008 	str	r0, [fp, #-8]
     f78:	e50b100c 	str	r1, [fp, #-12]
     f7c:	e51b0008 	ldr	r0, [fp, #-8]
     f80:	e51b100c 	ldr	r1, [fp, #-12]
     f84:	e59fc15c 	ldr	ip, [pc, #348]	; 10e8 <parseexec+0x188>
     f88:	e58d2008 	str	r2, [sp, #8]
     f8c:	e1a0200c 	mov	r2, ip
     f90:	e58d3004 	str	r3, [sp, #4]
     f94:	ebfffedf 	bl	b18 <peek>
     f98:	e3500000 	cmp	r0, #0
     f9c:	0a000005 	beq	fb8 <parseexec+0x58>
     fa0:	eaffffff 	b	fa4 <parseexec+0x44>
     fa4:	e51b0008 	ldr	r0, [fp, #-8]
     fa8:	e51b100c 	ldr	r1, [fp, #-12]
     fac:	eb0000aa 	bl	125c <parseblock>
     fb0:	e50b0004 	str	r0, [fp, #-4]
     fb4:	ea000048 	b	10dc <parseexec+0x17c>
     fb8:	ebfffd8a 	bl	5e8 <execcmd>
     fbc:	e58d000c 	str	r0, [sp, #12]
     fc0:	e59d000c 	ldr	r0, [sp, #12]
     fc4:	e58d0010 	str	r0, [sp, #16]
     fc8:	e3a0e000 	mov	lr, #0
     fcc:	e58de014 	str	lr, [sp, #20]
     fd0:	e51b1008 	ldr	r1, [fp, #-8]
     fd4:	e51b200c 	ldr	r2, [fp, #-12]
     fd8:	eb000046 	bl	10f8 <parseredirs>
     fdc:	e58d000c 	str	r0, [sp, #12]
     fe0:	eaffffff 	b	fe4 <parseexec+0x84>
     fe4:	e51b0008 	ldr	r0, [fp, #-8]
     fe8:	e51b100c 	ldr	r1, [fp, #-12]
     fec:	e59f20f8 	ldr	r2, [pc, #248]	; 10ec <parseexec+0x18c>
     ff0:	ebfffec8 	bl	b18 <peek>
     ff4:	e3500000 	cmp	r0, #0
     ff8:	1a00002b 	bne	10ac <parseexec+0x14c>
     ffc:	eaffffff 	b	1000 <parseexec+0xa0>
    1000:	e51b0008 	ldr	r0, [fp, #-8]
    1004:	e51b100c 	ldr	r1, [fp, #-12]
    1008:	e24b2010 	sub	r2, fp, #16
    100c:	e24b3014 	sub	r3, fp, #20
    1010:	ebfffe0e 	bl	850 <gettoken>
    1014:	e58d0018 	str	r0, [sp, #24]
    1018:	e3500000 	cmp	r0, #0
    101c:	1a000001 	bne	1028 <parseexec+0xc8>
    1020:	eaffffff 	b	1024 <parseexec+0xc4>
    1024:	ea000020 	b	10ac <parseexec+0x14c>
    1028:	e59d0018 	ldr	r0, [sp, #24]
    102c:	e3500061 	cmp	r0, #97	; 0x61
    1030:	0a000003 	beq	1044 <parseexec+0xe4>
    1034:	eaffffff 	b	1038 <parseexec+0xd8>
    1038:	e59f00b0 	ldr	r0, [pc, #176]	; 10f0 <parseexec+0x190>
    103c:	ebfffca7 	bl	2e0 <panic>
    1040:	eaffffff 	b	1044 <parseexec+0xe4>
    1044:	e51b0010 	ldr	r0, [fp, #-16]
    1048:	e59d1010 	ldr	r1, [sp, #16]
    104c:	e59d2014 	ldr	r2, [sp, #20]
    1050:	e0811102 	add	r1, r1, r2, lsl #2
    1054:	e5810004 	str	r0, [r1, #4]
    1058:	e51b0014 	ldr	r0, [fp, #-20]	; 0xffffffec
    105c:	e59d1010 	ldr	r1, [sp, #16]
    1060:	e59d2014 	ldr	r2, [sp, #20]
    1064:	e0811102 	add	r1, r1, r2, lsl #2
    1068:	e581002c 	str	r0, [r1, #44]	; 0x2c
    106c:	e59d0014 	ldr	r0, [sp, #20]
    1070:	e2800001 	add	r0, r0, #1
    1074:	e58d0014 	str	r0, [sp, #20]
    1078:	e59d0014 	ldr	r0, [sp, #20]
    107c:	e350000a 	cmp	r0, #10
    1080:	ba000003 	blt	1094 <parseexec+0x134>
    1084:	eaffffff 	b	1088 <parseexec+0x128>
    1088:	e59f0064 	ldr	r0, [pc, #100]	; 10f4 <parseexec+0x194>
    108c:	ebfffc93 	bl	2e0 <panic>
    1090:	eaffffff 	b	1094 <parseexec+0x134>
    1094:	e59d000c 	ldr	r0, [sp, #12]
    1098:	e51b1008 	ldr	r1, [fp, #-8]
    109c:	e51b200c 	ldr	r2, [fp, #-12]
    10a0:	eb000014 	bl	10f8 <parseredirs>
    10a4:	e58d000c 	str	r0, [sp, #12]
    10a8:	eaffffcd 	b	fe4 <parseexec+0x84>
    10ac:	e59d0010 	ldr	r0, [sp, #16]
    10b0:	e59d1014 	ldr	r1, [sp, #20]
    10b4:	e0800101 	add	r0, r0, r1, lsl #2
    10b8:	e3a01000 	mov	r1, #0
    10bc:	e5801004 	str	r1, [r0, #4]
    10c0:	e59d0010 	ldr	r0, [sp, #16]
    10c4:	e59d2014 	ldr	r2, [sp, #20]
    10c8:	e0800102 	add	r0, r0, r2, lsl #2
    10cc:	e580102c 	str	r1, [r0, #44]	; 0x2c
    10d0:	e59d000c 	ldr	r0, [sp, #12]
    10d4:	e50b0004 	str	r0, [fp, #-4]
    10d8:	eaffffff 	b	10dc <parseexec+0x17c>
    10dc:	e51b0004 	ldr	r0, [fp, #-4]
    10e0:	e1a0d00b 	mov	sp, fp
    10e4:	e8bd8800 	pop	{fp, pc}
    10e8:	00002560 	.word	0x00002560
    10ec:	00002580 	.word	0x00002580
    10f0:	00002535 	.word	0x00002535
    10f4:	00002585 	.word	0x00002585

000010f8 <parseredirs>:
    10f8:	e92d4800 	push	{fp, lr}
    10fc:	e1a0b00d 	mov	fp, sp
    1100:	e24dd030 	sub	sp, sp, #48	; 0x30
    1104:	e1a03002 	mov	r3, r2
    1108:	e1a0c001 	mov	ip, r1
    110c:	e1a0e000 	mov	lr, r0
    1110:	e50b0004 	str	r0, [fp, #-4]
    1114:	e50b1008 	str	r1, [fp, #-8]
    1118:	e50b200c 	str	r2, [fp, #-12]
    111c:	e58d3014 	str	r3, [sp, #20]
    1120:	e58dc010 	str	ip, [sp, #16]
    1124:	e58de00c 	str	lr, [sp, #12]
    1128:	eaffffff 	b	112c <parseredirs+0x34>
    112c:	e51b0008 	ldr	r0, [fp, #-8]
    1130:	e51b100c 	ldr	r1, [fp, #-12]
    1134:	e59f2118 	ldr	r2, [pc, #280]	; 1254 <parseredirs+0x15c>
    1138:	ebfffe76 	bl	b18 <peek>
    113c:	e3500000 	cmp	r0, #0
    1140:	0a000040 	beq	1248 <parseredirs+0x150>
    1144:	eaffffff 	b	1148 <parseredirs+0x50>
    1148:	e51b0008 	ldr	r0, [fp, #-8]
    114c:	e51b100c 	ldr	r1, [fp, #-12]
    1150:	e3a02000 	mov	r2, #0
    1154:	e58d2008 	str	r2, [sp, #8]
    1158:	e59d3008 	ldr	r3, [sp, #8]
    115c:	ebfffdbb 	bl	850 <gettoken>
    1160:	e50b0010 	str	r0, [fp, #-16]
    1164:	e51b0008 	ldr	r0, [fp, #-8]
    1168:	e51b100c 	ldr	r1, [fp, #-12]
    116c:	e24b2014 	sub	r2, fp, #20
    1170:	e28d3018 	add	r3, sp, #24
    1174:	ebfffdb5 	bl	850 <gettoken>
    1178:	e3500061 	cmp	r0, #97	; 0x61
    117c:	0a000003 	beq	1190 <parseredirs+0x98>
    1180:	eaffffff 	b	1184 <parseredirs+0x8c>
    1184:	e59f00cc 	ldr	r0, [pc, #204]	; 1258 <parseredirs+0x160>
    1188:	ebfffc54 	bl	2e0 <panic>
    118c:	eaffffff 	b	1190 <parseredirs+0x98>
    1190:	e51b0010 	ldr	r0, [fp, #-16]
    1194:	e350002b 	cmp	r0, #43	; 0x2b
    1198:	e58d0004 	str	r0, [sp, #4]
    119c:	0a00001d 	beq	1218 <parseredirs+0x120>
    11a0:	eaffffff 	b	11a4 <parseredirs+0xac>
    11a4:	e59d0004 	ldr	r0, [sp, #4]
    11a8:	e350003c 	cmp	r0, #60	; 0x3c
    11ac:	0a000004 	beq	11c4 <parseredirs+0xcc>
    11b0:	eaffffff 	b	11b4 <parseredirs+0xbc>
    11b4:	e59d0004 	ldr	r0, [sp, #4]
    11b8:	e350003e 	cmp	r0, #62	; 0x3e
    11bc:	0a00000a 	beq	11ec <parseredirs+0xf4>
    11c0:	ea00001f 	b	1244 <parseredirs+0x14c>
    11c4:	e51b0004 	ldr	r0, [fp, #-4]
    11c8:	e51b1014 	ldr	r1, [fp, #-20]	; 0xffffffec
    11cc:	e59d2018 	ldr	r2, [sp, #24]
    11d0:	e1a0300d 	mov	r3, sp
    11d4:	e3a0c000 	mov	ip, #0
    11d8:	e583c000 	str	ip, [r3]
    11dc:	e1a0300c 	mov	r3, ip
    11e0:	ebfffd13 	bl	634 <redircmd>
    11e4:	e50b0004 	str	r0, [fp, #-4]
    11e8:	ea000015 	b	1244 <parseredirs+0x14c>
    11ec:	e51b0004 	ldr	r0, [fp, #-4]
    11f0:	e51b1014 	ldr	r1, [fp, #-20]	; 0xffffffec
    11f4:	e59d2018 	ldr	r2, [sp, #24]
    11f8:	e1a0300d 	mov	r3, sp
    11fc:	e3a0c001 	mov	ip, #1
    1200:	e583c000 	str	ip, [r3]
    1204:	e3a03001 	mov	r3, #1
    1208:	e3833c02 	orr	r3, r3, #512	; 0x200
    120c:	ebfffd08 	bl	634 <redircmd>
    1210:	e50b0004 	str	r0, [fp, #-4]
    1214:	ea00000a 	b	1244 <parseredirs+0x14c>
    1218:	e51b0004 	ldr	r0, [fp, #-4]
    121c:	e51b1014 	ldr	r1, [fp, #-20]	; 0xffffffec
    1220:	e59d2018 	ldr	r2, [sp, #24]
    1224:	e1a0300d 	mov	r3, sp
    1228:	e3a0c001 	mov	ip, #1
    122c:	e583c000 	str	ip, [r3]
    1230:	e3a03001 	mov	r3, #1
    1234:	e3833c02 	orr	r3, r3, #512	; 0x200
    1238:	ebfffcfd 	bl	634 <redircmd>
    123c:	e50b0004 	str	r0, [fp, #-4]
    1240:	eaffffff 	b	1244 <parseredirs+0x14c>
    1244:	eaffffb8 	b	112c <parseredirs+0x34>
    1248:	e51b0004 	ldr	r0, [fp, #-4]
    124c:	e1a0d00b 	mov	sp, fp
    1250:	e8bd8800 	pop	{fp, pc}
    1254:	00002540 	.word	0x00002540
    1258:	00002543 	.word	0x00002543

0000125c <parseblock>:
    return cmd;
}

struct cmd*
parseblock(char **ps, char *es)
{
    125c:	e92d4800 	push	{fp, lr}
    1260:	e1a0b00d 	mov	fp, sp
    1264:	e24dd028 	sub	sp, sp, #40	; 0x28
    1268:	e1a02001 	mov	r2, r1
    126c:	e1a03000 	mov	r3, r0
    1270:	e50b0004 	str	r0, [fp, #-4]
    1274:	e50b1008 	str	r1, [fp, #-8]
    struct cmd *cmd;
    
    if(!peek(ps, es, "("))
    1278:	e51b0004 	ldr	r0, [fp, #-4]
    127c:	e51b1008 	ldr	r1, [fp, #-8]
    1280:	e59fc0c8 	ldr	ip, [pc, #200]	; 1350 <parseblock+0xf4>
    1284:	e50b2010 	str	r2, [fp, #-16]
    1288:	e1a0200c 	mov	r2, ip
    128c:	e58d3014 	str	r3, [sp, #20]
    1290:	ebfffe20 	bl	b18 <peek>
    1294:	e3500000 	cmp	r0, #0
    1298:	1a000003 	bne	12ac <parseblock+0x50>
    129c:	eaffffff 	b	12a0 <parseblock+0x44>
        panic("parseblock");
    12a0:	e59f00ac 	ldr	r0, [pc, #172]	; 1354 <parseblock+0xf8>
    12a4:	ebfffc0d 	bl	2e0 <panic>
    12a8:	eaffffff 	b	12ac <parseblock+0x50>
    gettoken(ps, es, 0, 0);
    12ac:	e51b0004 	ldr	r0, [fp, #-4]
    12b0:	e51b1008 	ldr	r1, [fp, #-8]
    12b4:	e3a02000 	mov	r2, #0
    12b8:	e58d2010 	str	r2, [sp, #16]
    12bc:	e59d3010 	ldr	r3, [sp, #16]
    12c0:	ebfffd62 	bl	850 <gettoken>
    cmd = parseline(ps, es);
    12c4:	e51b1004 	ldr	r1, [fp, #-4]
    12c8:	e51b2008 	ldr	r2, [fp, #-8]
    12cc:	e58d000c 	str	r0, [sp, #12]
    12d0:	e1a00001 	mov	r0, r1
    12d4:	e1a01002 	mov	r1, r2
    12d8:	ebfffe4c 	bl	c10 <parseline>
    12dc:	e50b000c 	str	r0, [fp, #-12]
    if(!peek(ps, es, ")"))
    12e0:	e51b0004 	ldr	r0, [fp, #-4]
    12e4:	e51b1008 	ldr	r1, [fp, #-8]
    12e8:	e59f2068 	ldr	r2, [pc, #104]	; 1358 <parseblock+0xfc>
    12ec:	ebfffe09 	bl	b18 <peek>
    12f0:	e3500000 	cmp	r0, #0
    12f4:	1a000003 	bne	1308 <parseblock+0xac>
    12f8:	eaffffff 	b	12fc <parseblock+0xa0>
        panic("syntax - missing )");
    12fc:	e59f0058 	ldr	r0, [pc, #88]	; 135c <parseblock+0x100>
    1300:	ebfffbf6 	bl	2e0 <panic>
    1304:	eaffffff 	b	1308 <parseblock+0xac>
    gettoken(ps, es, 0, 0);
    1308:	e51b0004 	ldr	r0, [fp, #-4]
    130c:	e51b1008 	ldr	r1, [fp, #-8]
    1310:	e3a02000 	mov	r2, #0
    1314:	e58d2008 	str	r2, [sp, #8]
    1318:	e59d3008 	ldr	r3, [sp, #8]
    131c:	ebfffd4b 	bl	850 <gettoken>
    cmd = parseredirs(cmd, ps, es);
    1320:	e51b100c 	ldr	r1, [fp, #-12]
    1324:	e51b2004 	ldr	r2, [fp, #-4]
    1328:	e51b3008 	ldr	r3, [fp, #-8]
    132c:	e58d0004 	str	r0, [sp, #4]
    1330:	e1a00001 	mov	r0, r1
    1334:	e1a01002 	mov	r1, r2
    1338:	e1a02003 	mov	r2, r3
    133c:	ebffff6d 	bl	10f8 <parseredirs>
    1340:	e50b000c 	str	r0, [fp, #-12]
    return cmd;
    1344:	e51b000c 	ldr	r0, [fp, #-12]
    1348:	e1a0d00b 	mov	sp, fp
    134c:	e8bd8800 	pop	{fp, pc}
    1350:	00002560 	.word	0x00002560
    1354:	00002562 	.word	0x00002562
    1358:	0000257e 	.word	0x0000257e
    135c:	0000256d 	.word	0x0000256d

00001360 <strcpy>:
#include "fcntl.h"
#include "user.h"

char*
strcpy(char *s, char *t)
{
    1360:	e24dd014 	sub	sp, sp, #20
    1364:	e1a02001 	mov	r2, r1
    1368:	e1a03000 	mov	r3, r0
    136c:	e58d0010 	str	r0, [sp, #16]
    1370:	e58d100c 	str	r1, [sp, #12]
    1374:	e59d0010 	ldr	r0, [sp, #16]
    1378:	e58d0008 	str	r0, [sp, #8]
    137c:	e58d2004 	str	r2, [sp, #4]
    1380:	e58d3000 	str	r3, [sp]
    1384:	eaffffff 	b	1388 <strcpy+0x28>
    1388:	e59d000c 	ldr	r0, [sp, #12]
    138c:	e2801001 	add	r1, r0, #1
    1390:	e58d100c 	str	r1, [sp, #12]
    1394:	e5d00000 	ldrb	r0, [r0]
    1398:	e59d1010 	ldr	r1, [sp, #16]
    139c:	e2812001 	add	r2, r1, #1
    13a0:	e58d2010 	str	r2, [sp, #16]
    13a4:	e5c10000 	strb	r0, [r1]
    13a8:	e3500000 	cmp	r0, #0
    13ac:	0a000001 	beq	13b8 <strcpy+0x58>
    13b0:	eaffffff 	b	13b4 <strcpy+0x54>
    13b4:	eafffff3 	b	1388 <strcpy+0x28>
    13b8:	e59d0008 	ldr	r0, [sp, #8]
    13bc:	e28dd014 	add	sp, sp, #20
    13c0:	e12fff1e 	bx	lr

000013c4 <strcmp>:
    13c4:	e24dd014 	sub	sp, sp, #20
    13c8:	e1a02001 	mov	r2, r1
    13cc:	e1a03000 	mov	r3, r0
    13d0:	e58d0010 	str	r0, [sp, #16]
    13d4:	e58d100c 	str	r1, [sp, #12]
    13d8:	e58d2008 	str	r2, [sp, #8]
    13dc:	e58d3004 	str	r3, [sp, #4]
    13e0:	eaffffff 	b	13e4 <strcmp+0x20>
    13e4:	e59d0010 	ldr	r0, [sp, #16]
    13e8:	e5d00000 	ldrb	r0, [r0]
    13ec:	e3a01000 	mov	r1, #0
    13f0:	e3500000 	cmp	r0, #0
    13f4:	e58d1000 	str	r1, [sp]
    13f8:	0a000009 	beq	1424 <strcmp+0x60>
    13fc:	eaffffff 	b	1400 <strcmp+0x3c>
    1400:	e59d0010 	ldr	r0, [sp, #16]
    1404:	e5d00000 	ldrb	r0, [r0]
    1408:	e59d100c 	ldr	r1, [sp, #12]
    140c:	e5d11000 	ldrb	r1, [r1]
    1410:	e3a02000 	mov	r2, #0
    1414:	e1500001 	cmp	r0, r1
    1418:	03a02001 	moveq	r2, #1
    141c:	e58d2000 	str	r2, [sp]
    1420:	eaffffff 	b	1424 <strcmp+0x60>
    1424:	e59d0000 	ldr	r0, [sp]
    1428:	e3100001 	tst	r0, #1
    142c:	0a000007 	beq	1450 <strcmp+0x8c>
    1430:	eaffffff 	b	1434 <strcmp+0x70>
    1434:	e59d0010 	ldr	r0, [sp, #16]
    1438:	e2800001 	add	r0, r0, #1
    143c:	e58d0010 	str	r0, [sp, #16]
    1440:	e59d000c 	ldr	r0, [sp, #12]
    1444:	e2800001 	add	r0, r0, #1
    1448:	e58d000c 	str	r0, [sp, #12]
    144c:	eaffffe4 	b	13e4 <strcmp+0x20>
    1450:	e59d0010 	ldr	r0, [sp, #16]
    1454:	e5d00000 	ldrb	r0, [r0]
    1458:	e59d100c 	ldr	r1, [sp, #12]
    145c:	e5d11000 	ldrb	r1, [r1]
    1460:	e0400001 	sub	r0, r0, r1
    1464:	e28dd014 	add	sp, sp, #20
    1468:	e12fff1e 	bx	lr

0000146c <strlen>:
    146c:	e24dd00c 	sub	sp, sp, #12
    1470:	e1a01000 	mov	r1, r0
    1474:	e58d0008 	str	r0, [sp, #8]
    1478:	e3a00000 	mov	r0, #0
    147c:	e58d0004 	str	r0, [sp, #4]
    1480:	e58d1000 	str	r1, [sp]
    1484:	eaffffff 	b	1488 <strlen+0x1c>
    1488:	e59d0008 	ldr	r0, [sp, #8]
    148c:	e59d1004 	ldr	r1, [sp, #4]
    1490:	e7d00001 	ldrb	r0, [r0, r1]
    1494:	e3500000 	cmp	r0, #0
    1498:	0a000005 	beq	14b4 <strlen+0x48>
    149c:	eaffffff 	b	14a0 <strlen+0x34>
    14a0:	eaffffff 	b	14a4 <strlen+0x38>
    14a4:	e59d0004 	ldr	r0, [sp, #4]
    14a8:	e2800001 	add	r0, r0, #1
    14ac:	e58d0004 	str	r0, [sp, #4]
    14b0:	eafffff4 	b	1488 <strlen+0x1c>
    14b4:	e59d0004 	ldr	r0, [sp, #4]
    14b8:	e28dd00c 	add	sp, sp, #12
    14bc:	e12fff1e 	bx	lr

000014c0 <memset>:
    14c0:	e92d4800 	push	{fp, lr}
    14c4:	e1a0b00d 	mov	fp, sp
    14c8:	e24dd02c 	sub	sp, sp, #44	; 0x2c
    14cc:	e1a03002 	mov	r3, r2
    14d0:	e1a0c001 	mov	ip, r1
    14d4:	e1a0e000 	mov	lr, r0
    14d8:	e50b0004 	str	r0, [fp, #-4]
    14dc:	e50b1008 	str	r1, [fp, #-8]
    14e0:	e50b200c 	str	r2, [fp, #-12]
    14e4:	e51b0004 	ldr	r0, [fp, #-4]
    14e8:	e50b0010 	str	r0, [fp, #-16]
    14ec:	e51b0008 	ldr	r0, [fp, #-8]
    14f0:	e54b0011 	strb	r0, [fp, #-17]	; 0xffffffef
    14f4:	e55b0011 	ldrb	r0, [fp, #-17]	; 0xffffffef
    14f8:	e1a01c00 	lsl	r1, r0, #24
    14fc:	e1811800 	orr	r1, r1, r0, lsl #16
    1500:	e1811400 	orr	r1, r1, r0, lsl #8
    1504:	e1810000 	orr	r0, r1, r0
    1508:	e58d0014 	str	r0, [sp, #20]
    150c:	e58d300c 	str	r3, [sp, #12]
    1510:	e58dc008 	str	ip, [sp, #8]
    1514:	e58de004 	str	lr, [sp, #4]
    1518:	eaffffff 	b	151c <memset+0x5c>
    151c:	e51b000c 	ldr	r0, [fp, #-12]
    1520:	e3a01000 	mov	r1, #0
    1524:	e3500000 	cmp	r0, #0
    1528:	e58d1000 	str	r1, [sp]
    152c:	0a000006 	beq	154c <memset+0x8c>
    1530:	eaffffff 	b	1534 <memset+0x74>
    1534:	e55b0010 	ldrb	r0, [fp, #-16]
    1538:	e2000003 	and	r0, r0, #3
    153c:	e3500000 	cmp	r0, #0
    1540:	13a00001 	movne	r0, #1
    1544:	e58d0000 	str	r0, [sp]
    1548:	eaffffff 	b	154c <memset+0x8c>
    154c:	e59d0000 	ldr	r0, [sp]
    1550:	e3100001 	tst	r0, #1
    1554:	0a00000b 	beq	1588 <memset+0xc8>
    1558:	eaffffff 	b	155c <memset+0x9c>
    155c:	e55b0011 	ldrb	r0, [fp, #-17]	; 0xffffffef
    1560:	e51b1010 	ldr	r1, [fp, #-16]
    1564:	e5c10000 	strb	r0, [r1]
    1568:	eaffffff 	b	156c <memset+0xac>
    156c:	e51b000c 	ldr	r0, [fp, #-12]
    1570:	e2400001 	sub	r0, r0, #1
    1574:	e50b000c 	str	r0, [fp, #-12]
    1578:	e51b0010 	ldr	r0, [fp, #-16]
    157c:	e2800001 	add	r0, r0, #1
    1580:	e50b0010 	str	r0, [fp, #-16]
    1584:	eaffffe4 	b	151c <memset+0x5c>
    1588:	e51b0010 	ldr	r0, [fp, #-16]
    158c:	e58d0010 	str	r0, [sp, #16]
    1590:	eaffffff 	b	1594 <memset+0xd4>
    1594:	e51b000c 	ldr	r0, [fp, #-12]
    1598:	e3500004 	cmp	r0, #4
    159c:	3a00000b 	bcc	15d0 <memset+0x110>
    15a0:	eaffffff 	b	15a4 <memset+0xe4>
    15a4:	e59d0014 	ldr	r0, [sp, #20]
    15a8:	e59d1010 	ldr	r1, [sp, #16]
    15ac:	e5810000 	str	r0, [r1]
    15b0:	eaffffff 	b	15b4 <memset+0xf4>
    15b4:	e51b000c 	ldr	r0, [fp, #-12]
    15b8:	e2400004 	sub	r0, r0, #4
    15bc:	e50b000c 	str	r0, [fp, #-12]
    15c0:	e59d0010 	ldr	r0, [sp, #16]
    15c4:	e2800004 	add	r0, r0, #4
    15c8:	e58d0010 	str	r0, [sp, #16]
    15cc:	eafffff0 	b	1594 <memset+0xd4>
    15d0:	e59d0010 	ldr	r0, [sp, #16]
    15d4:	e50b0010 	str	r0, [fp, #-16]
    15d8:	eaffffff 	b	15dc <memset+0x11c>
    15dc:	e51b000c 	ldr	r0, [fp, #-12]
    15e0:	e3500000 	cmp	r0, #0
    15e4:	0a00000b 	beq	1618 <memset+0x158>
    15e8:	eaffffff 	b	15ec <memset+0x12c>
    15ec:	e55b0011 	ldrb	r0, [fp, #-17]	; 0xffffffef
    15f0:	e51b1010 	ldr	r1, [fp, #-16]
    15f4:	e5c10000 	strb	r0, [r1]
    15f8:	eaffffff 	b	15fc <memset+0x13c>
    15fc:	e51b000c 	ldr	r0, [fp, #-12]
    1600:	e2400001 	sub	r0, r0, #1
    1604:	e50b000c 	str	r0, [fp, #-12]
    1608:	e51b0010 	ldr	r0, [fp, #-16]
    160c:	e2800001 	add	r0, r0, #1
    1610:	e50b0010 	str	r0, [fp, #-16]
    1614:	eafffff0 	b	15dc <memset+0x11c>
    1618:	e51b0004 	ldr	r0, [fp, #-4]
    161c:	e1a0d00b 	mov	sp, fp
    1620:	e8bd8800 	pop	{fp, pc}

00001624 <strchr>:
    1624:	e24dd014 	sub	sp, sp, #20
    1628:	e1a02001 	mov	r2, r1
    162c:	e1a03000 	mov	r3, r0
    1630:	e58d000c 	str	r0, [sp, #12]
    1634:	e5cd100b 	strb	r1, [sp, #11]
    1638:	e58d2004 	str	r2, [sp, #4]
    163c:	e58d3000 	str	r3, [sp]
    1640:	eaffffff 	b	1644 <strchr+0x20>
    1644:	e59d000c 	ldr	r0, [sp, #12]
    1648:	e5d00000 	ldrb	r0, [r0]
    164c:	e3500000 	cmp	r0, #0
    1650:	0a00000e 	beq	1690 <strchr+0x6c>
    1654:	eaffffff 	b	1658 <strchr+0x34>
    1658:	e59d000c 	ldr	r0, [sp, #12]
    165c:	e5d00000 	ldrb	r0, [r0]
    1660:	e5dd100b 	ldrb	r1, [sp, #11]
    1664:	e1500001 	cmp	r0, r1
    1668:	1a000003 	bne	167c <strchr+0x58>
    166c:	eaffffff 	b	1670 <strchr+0x4c>
    1670:	e59d000c 	ldr	r0, [sp, #12]
    1674:	e58d0010 	str	r0, [sp, #16]
    1678:	ea000007 	b	169c <strchr+0x78>
    167c:	eaffffff 	b	1680 <strchr+0x5c>
    1680:	e59d000c 	ldr	r0, [sp, #12]
    1684:	e2800001 	add	r0, r0, #1
    1688:	e58d000c 	str	r0, [sp, #12]
    168c:	eaffffec 	b	1644 <strchr+0x20>
    1690:	e3a00000 	mov	r0, #0
    1694:	e58d0010 	str	r0, [sp, #16]
    1698:	eaffffff 	b	169c <strchr+0x78>
    169c:	e59d0010 	ldr	r0, [sp, #16]
    16a0:	e28dd014 	add	sp, sp, #20
    16a4:	e12fff1e 	bx	lr

000016a8 <gets>:
    16a8:	e92d4800 	push	{fp, lr}
    16ac:	e1a0b00d 	mov	fp, sp
    16b0:	e24dd020 	sub	sp, sp, #32
    16b4:	e1a02001 	mov	r2, r1
    16b8:	e1a03000 	mov	r3, r0
    16bc:	e50b0004 	str	r0, [fp, #-4]
    16c0:	e50b1008 	str	r1, [fp, #-8]
    16c4:	e3a00000 	mov	r0, #0
    16c8:	e50b000c 	str	r0, [fp, #-12]
    16cc:	e58d2008 	str	r2, [sp, #8]
    16d0:	e58d3004 	str	r3, [sp, #4]
    16d4:	eaffffff 	b	16d8 <gets+0x30>
    16d8:	e51b000c 	ldr	r0, [fp, #-12]
    16dc:	e2800001 	add	r0, r0, #1
    16e0:	e51b1008 	ldr	r1, [fp, #-8]
    16e4:	e1500001 	cmp	r0, r1
    16e8:	aa00001a 	bge	1758 <gets+0xb0>
    16ec:	eaffffff 	b	16f0 <gets+0x48>
    16f0:	e3a00000 	mov	r0, #0
    16f4:	e28d100f 	add	r1, sp, #15
    16f8:	e3a02001 	mov	r2, #1
    16fc:	eb0000ab 	bl	19b0 <read>
    1700:	e58d0010 	str	r0, [sp, #16]
    1704:	e59d0010 	ldr	r0, [sp, #16]
    1708:	e3500000 	cmp	r0, #0
    170c:	ca000001 	bgt	1718 <gets+0x70>
    1710:	eaffffff 	b	1714 <gets+0x6c>
    1714:	ea00000f 	b	1758 <gets+0xb0>
    1718:	e5dd000f 	ldrb	r0, [sp, #15]
    171c:	e51b1004 	ldr	r1, [fp, #-4]
    1720:	e51b200c 	ldr	r2, [fp, #-12]
    1724:	e2823001 	add	r3, r2, #1
    1728:	e50b300c 	str	r3, [fp, #-12]
    172c:	e7c10002 	strb	r0, [r1, r2]
    1730:	e5dd000f 	ldrb	r0, [sp, #15]
    1734:	e350000a 	cmp	r0, #10
    1738:	0a000004 	beq	1750 <gets+0xa8>
    173c:	eaffffff 	b	1740 <gets+0x98>
    1740:	e5dd000f 	ldrb	r0, [sp, #15]
    1744:	e350000d 	cmp	r0, #13
    1748:	1a000001 	bne	1754 <gets+0xac>
    174c:	eaffffff 	b	1750 <gets+0xa8>
    1750:	ea000000 	b	1758 <gets+0xb0>
    1754:	eaffffdf 	b	16d8 <gets+0x30>
    1758:	e51b0004 	ldr	r0, [fp, #-4]
    175c:	e51b100c 	ldr	r1, [fp, #-12]
    1760:	e3a02000 	mov	r2, #0
    1764:	e7c02001 	strb	r2, [r0, r1]
    1768:	e51b0004 	ldr	r0, [fp, #-4]
    176c:	e1a0d00b 	mov	sp, fp
    1770:	e8bd8800 	pop	{fp, pc}

00001774 <stat>:
    1774:	e92d4800 	push	{fp, lr}
    1778:	e1a0b00d 	mov	fp, sp
    177c:	e24dd020 	sub	sp, sp, #32
    1780:	e1a02001 	mov	r2, r1
    1784:	e1a03000 	mov	r3, r0
    1788:	e50b0008 	str	r0, [fp, #-8]
    178c:	e50b100c 	str	r1, [fp, #-12]
    1790:	e51b0008 	ldr	r0, [fp, #-8]
    1794:	e3a01000 	mov	r1, #0
    1798:	e58d2008 	str	r2, [sp, #8]
    179c:	e58d3004 	str	r3, [sp, #4]
    17a0:	eb0000af 	bl	1a64 <open>
    17a4:	e58d0010 	str	r0, [sp, #16]
    17a8:	e59d0010 	ldr	r0, [sp, #16]
    17ac:	e3500000 	cmp	r0, #0
    17b0:	aa000003 	bge	17c4 <stat+0x50>
    17b4:	eaffffff 	b	17b8 <stat+0x44>
    17b8:	e3e00000 	mvn	r0, #0
    17bc:	e50b0004 	str	r0, [fp, #-4]
    17c0:	ea000009 	b	17ec <stat+0x78>
    17c4:	e59d0010 	ldr	r0, [sp, #16]
    17c8:	e51b100c 	ldr	r1, [fp, #-12]
    17cc:	eb0000bf 	bl	1ad0 <fstat>
    17d0:	e58d000c 	str	r0, [sp, #12]
    17d4:	e59d0010 	ldr	r0, [sp, #16]
    17d8:	eb000086 	bl	19f8 <close>
    17dc:	e59d100c 	ldr	r1, [sp, #12]
    17e0:	e50b1004 	str	r1, [fp, #-4]
    17e4:	e58d0000 	str	r0, [sp]
    17e8:	eaffffff 	b	17ec <stat+0x78>
    17ec:	e51b0004 	ldr	r0, [fp, #-4]
    17f0:	e1a0d00b 	mov	sp, fp
    17f4:	e8bd8800 	pop	{fp, pc}

000017f8 <atoi>:
    17f8:	e24dd010 	sub	sp, sp, #16
    17fc:	e1a01000 	mov	r1, r0
    1800:	e58d000c 	str	r0, [sp, #12]
    1804:	e3a00000 	mov	r0, #0
    1808:	e58d0008 	str	r0, [sp, #8]
    180c:	e58d1004 	str	r1, [sp, #4]
    1810:	eaffffff 	b	1814 <atoi+0x1c>
    1814:	e59d000c 	ldr	r0, [sp, #12]
    1818:	e5d00000 	ldrb	r0, [r0]
    181c:	e3a01000 	mov	r1, #0
    1820:	e3500030 	cmp	r0, #48	; 0x30
    1824:	e58d1000 	str	r1, [sp]
    1828:	ba000007 	blt	184c <atoi+0x54>
    182c:	eaffffff 	b	1830 <atoi+0x38>
    1830:	e59d000c 	ldr	r0, [sp, #12]
    1834:	e5d00000 	ldrb	r0, [r0]
    1838:	e3a01000 	mov	r1, #0
    183c:	e350003a 	cmp	r0, #58	; 0x3a
    1840:	b3a01001 	movlt	r1, #1
    1844:	e58d1000 	str	r1, [sp]
    1848:	eaffffff 	b	184c <atoi+0x54>
    184c:	e59d0000 	ldr	r0, [sp]
    1850:	e3100001 	tst	r0, #1
    1854:	0a00000a 	beq	1884 <atoi+0x8c>
    1858:	eaffffff 	b	185c <atoi+0x64>
    185c:	e59d0008 	ldr	r0, [sp, #8]
    1860:	e0800100 	add	r0, r0, r0, lsl #2
    1864:	e59d100c 	ldr	r1, [sp, #12]
    1868:	e2812001 	add	r2, r1, #1
    186c:	e58d200c 	str	r2, [sp, #12]
    1870:	e5d11000 	ldrb	r1, [r1]
    1874:	e0810080 	add	r0, r1, r0, lsl #1
    1878:	e2400030 	sub	r0, r0, #48	; 0x30
    187c:	e58d0008 	str	r0, [sp, #8]
    1880:	eaffffe3 	b	1814 <atoi+0x1c>
    1884:	e59d0008 	ldr	r0, [sp, #8]
    1888:	e28dd010 	add	sp, sp, #16
    188c:	e12fff1e 	bx	lr

00001890 <memmove>:
    1890:	e92d4800 	push	{fp, lr}
    1894:	e1a0b00d 	mov	fp, sp
    1898:	e24dd020 	sub	sp, sp, #32
    189c:	e1a03002 	mov	r3, r2
    18a0:	e1a0c001 	mov	ip, r1
    18a4:	e1a0e000 	mov	lr, r0
    18a8:	e50b0004 	str	r0, [fp, #-4]
    18ac:	e50b1008 	str	r1, [fp, #-8]
    18b0:	e50b200c 	str	r2, [fp, #-12]
    18b4:	e51b0004 	ldr	r0, [fp, #-4]
    18b8:	e58d0010 	str	r0, [sp, #16]
    18bc:	e51b0008 	ldr	r0, [fp, #-8]
    18c0:	e58d000c 	str	r0, [sp, #12]
    18c4:	e58d3008 	str	r3, [sp, #8]
    18c8:	e58dc004 	str	ip, [sp, #4]
    18cc:	e58de000 	str	lr, [sp]
    18d0:	eaffffff 	b	18d4 <memmove+0x44>
    18d4:	e51b000c 	ldr	r0, [fp, #-12]
    18d8:	e2401001 	sub	r1, r0, #1
    18dc:	e50b100c 	str	r1, [fp, #-12]
    18e0:	e3500001 	cmp	r0, #1
    18e4:	ba000009 	blt	1910 <memmove+0x80>
    18e8:	eaffffff 	b	18ec <memmove+0x5c>
    18ec:	e59d000c 	ldr	r0, [sp, #12]
    18f0:	e2801001 	add	r1, r0, #1
    18f4:	e58d100c 	str	r1, [sp, #12]
    18f8:	e5d00000 	ldrb	r0, [r0]
    18fc:	e59d1010 	ldr	r1, [sp, #16]
    1900:	e2812001 	add	r2, r1, #1
    1904:	e58d2010 	str	r2, [sp, #16]
    1908:	e5c10000 	strb	r0, [r1]
    190c:	eafffff0 	b	18d4 <memmove+0x44>
    1910:	e51b0004 	ldr	r0, [fp, #-4]
    1914:	e1a0d00b 	mov	sp, fp
    1918:	e8bd8800 	pop	{fp, pc}

0000191c <raise>:
    return vdst;
}

void
raise()
{}
    191c:	e12fff1e 	bx	lr

00001920 <fork>:
    1920:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
    1924:	e1a04003 	mov	r4, r3
    1928:	e1a03002 	mov	r3, r2
    192c:	e1a02001 	mov	r2, r1
    1930:	e1a01000 	mov	r1, r0
    1934:	e3a00001 	mov	r0, #1
    1938:	ef000000 	svc	0x00000000
    193c:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
    1940:	e12fff1e 	bx	lr

00001944 <exit>:
    1944:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
    1948:	e1a04003 	mov	r4, r3
    194c:	e1a03002 	mov	r3, r2
    1950:	e1a02001 	mov	r2, r1
    1954:	e1a01000 	mov	r1, r0
    1958:	e3a00002 	mov	r0, #2
    195c:	ef000000 	svc	0x00000000
    1960:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
    1964:	e12fff1e 	bx	lr

00001968 <wait>:
    1968:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
    196c:	e1a04003 	mov	r4, r3
    1970:	e1a03002 	mov	r3, r2
    1974:	e1a02001 	mov	r2, r1
    1978:	e1a01000 	mov	r1, r0
    197c:	e3a00003 	mov	r0, #3
    1980:	ef000000 	svc	0x00000000
    1984:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
    1988:	e12fff1e 	bx	lr

0000198c <pipe>:
    198c:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
    1990:	e1a04003 	mov	r4, r3
    1994:	e1a03002 	mov	r3, r2
    1998:	e1a02001 	mov	r2, r1
    199c:	e1a01000 	mov	r1, r0
    19a0:	e3a00004 	mov	r0, #4
    19a4:	ef000000 	svc	0x00000000
    19a8:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
    19ac:	e12fff1e 	bx	lr

000019b0 <read>:
    19b0:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
    19b4:	e1a04003 	mov	r4, r3
    19b8:	e1a03002 	mov	r3, r2
    19bc:	e1a02001 	mov	r2, r1
    19c0:	e1a01000 	mov	r1, r0
    19c4:	e3a00005 	mov	r0, #5
    19c8:	ef000000 	svc	0x00000000
    19cc:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
    19d0:	e12fff1e 	bx	lr

000019d4 <write>:
    19d4:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
    19d8:	e1a04003 	mov	r4, r3
    19dc:	e1a03002 	mov	r3, r2
    19e0:	e1a02001 	mov	r2, r1
    19e4:	e1a01000 	mov	r1, r0
    19e8:	e3a00010 	mov	r0, #16
    19ec:	ef000000 	svc	0x00000000
    19f0:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
    19f4:	e12fff1e 	bx	lr

000019f8 <close>:
    19f8:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
    19fc:	e1a04003 	mov	r4, r3
    1a00:	e1a03002 	mov	r3, r2
    1a04:	e1a02001 	mov	r2, r1
    1a08:	e1a01000 	mov	r1, r0
    1a0c:	e3a00015 	mov	r0, #21
    1a10:	ef000000 	svc	0x00000000
    1a14:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
    1a18:	e12fff1e 	bx	lr

00001a1c <kill>:
    1a1c:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
    1a20:	e1a04003 	mov	r4, r3
    1a24:	e1a03002 	mov	r3, r2
    1a28:	e1a02001 	mov	r2, r1
    1a2c:	e1a01000 	mov	r1, r0
    1a30:	e3a00006 	mov	r0, #6
    1a34:	ef000000 	svc	0x00000000
    1a38:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
    1a3c:	e12fff1e 	bx	lr

00001a40 <exec>:
    1a40:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
    1a44:	e1a04003 	mov	r4, r3
    1a48:	e1a03002 	mov	r3, r2
    1a4c:	e1a02001 	mov	r2, r1
    1a50:	e1a01000 	mov	r1, r0
    1a54:	e3a00007 	mov	r0, #7
    1a58:	ef000000 	svc	0x00000000
    1a5c:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
    1a60:	e12fff1e 	bx	lr

00001a64 <open>:
    1a64:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
    1a68:	e1a04003 	mov	r4, r3
    1a6c:	e1a03002 	mov	r3, r2
    1a70:	e1a02001 	mov	r2, r1
    1a74:	e1a01000 	mov	r1, r0
    1a78:	e3a0000f 	mov	r0, #15
    1a7c:	ef000000 	svc	0x00000000
    1a80:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
    1a84:	e12fff1e 	bx	lr

00001a88 <mknod>:
    1a88:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
    1a8c:	e1a04003 	mov	r4, r3
    1a90:	e1a03002 	mov	r3, r2
    1a94:	e1a02001 	mov	r2, r1
    1a98:	e1a01000 	mov	r1, r0
    1a9c:	e3a00011 	mov	r0, #17
    1aa0:	ef000000 	svc	0x00000000
    1aa4:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
    1aa8:	e12fff1e 	bx	lr

00001aac <unlink>:
    1aac:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
    1ab0:	e1a04003 	mov	r4, r3
    1ab4:	e1a03002 	mov	r3, r2
    1ab8:	e1a02001 	mov	r2, r1
    1abc:	e1a01000 	mov	r1, r0
    1ac0:	e3a00012 	mov	r0, #18
    1ac4:	ef000000 	svc	0x00000000
    1ac8:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
    1acc:	e12fff1e 	bx	lr

00001ad0 <fstat>:
    1ad0:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
    1ad4:	e1a04003 	mov	r4, r3
    1ad8:	e1a03002 	mov	r3, r2
    1adc:	e1a02001 	mov	r2, r1
    1ae0:	e1a01000 	mov	r1, r0
    1ae4:	e3a00008 	mov	r0, #8
    1ae8:	ef000000 	svc	0x00000000
    1aec:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
    1af0:	e12fff1e 	bx	lr

00001af4 <link>:
    1af4:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
    1af8:	e1a04003 	mov	r4, r3
    1afc:	e1a03002 	mov	r3, r2
    1b00:	e1a02001 	mov	r2, r1
    1b04:	e1a01000 	mov	r1, r0
    1b08:	e3a00013 	mov	r0, #19
    1b0c:	ef000000 	svc	0x00000000
    1b10:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
    1b14:	e12fff1e 	bx	lr

00001b18 <mkdir>:
    1b18:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
    1b1c:	e1a04003 	mov	r4, r3
    1b20:	e1a03002 	mov	r3, r2
    1b24:	e1a02001 	mov	r2, r1
    1b28:	e1a01000 	mov	r1, r0
    1b2c:	e3a00014 	mov	r0, #20
    1b30:	ef000000 	svc	0x00000000
    1b34:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
    1b38:	e12fff1e 	bx	lr

00001b3c <chdir>:
    1b3c:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
    1b40:	e1a04003 	mov	r4, r3
    1b44:	e1a03002 	mov	r3, r2
    1b48:	e1a02001 	mov	r2, r1
    1b4c:	e1a01000 	mov	r1, r0
    1b50:	e3a00009 	mov	r0, #9
    1b54:	ef000000 	svc	0x00000000
    1b58:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
    1b5c:	e12fff1e 	bx	lr

00001b60 <dup>:
    1b60:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
    1b64:	e1a04003 	mov	r4, r3
    1b68:	e1a03002 	mov	r3, r2
    1b6c:	e1a02001 	mov	r2, r1
    1b70:	e1a01000 	mov	r1, r0
    1b74:	e3a0000a 	mov	r0, #10
    1b78:	ef000000 	svc	0x00000000
    1b7c:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
    1b80:	e12fff1e 	bx	lr

00001b84 <getpid>:
    1b84:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
    1b88:	e1a04003 	mov	r4, r3
    1b8c:	e1a03002 	mov	r3, r2
    1b90:	e1a02001 	mov	r2, r1
    1b94:	e1a01000 	mov	r1, r0
    1b98:	e3a0000b 	mov	r0, #11
    1b9c:	ef000000 	svc	0x00000000
    1ba0:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
    1ba4:	e12fff1e 	bx	lr

00001ba8 <sbrk>:
    1ba8:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
    1bac:	e1a04003 	mov	r4, r3
    1bb0:	e1a03002 	mov	r3, r2
    1bb4:	e1a02001 	mov	r2, r1
    1bb8:	e1a01000 	mov	r1, r0
    1bbc:	e3a0000c 	mov	r0, #12
    1bc0:	ef000000 	svc	0x00000000
    1bc4:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
    1bc8:	e12fff1e 	bx	lr

00001bcc <sleep>:
    1bcc:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
    1bd0:	e1a04003 	mov	r4, r3
    1bd4:	e1a03002 	mov	r3, r2
    1bd8:	e1a02001 	mov	r2, r1
    1bdc:	e1a01000 	mov	r1, r0
    1be0:	e3a0000d 	mov	r0, #13
    1be4:	ef000000 	svc	0x00000000
    1be8:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
    1bec:	e12fff1e 	bx	lr

00001bf0 <uptime>:
    1bf0:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
    1bf4:	e1a04003 	mov	r4, r3
    1bf8:	e1a03002 	mov	r3, r2
    1bfc:	e1a02001 	mov	r2, r1
    1c00:	e1a01000 	mov	r1, r0
    1c04:	e3a0000e 	mov	r0, #14
    1c08:	ef000000 	svc	0x00000000
    1c0c:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
    1c10:	e12fff1e 	bx	lr

00001c14 <printf>:
}

// Print to the given fd. Only understands %d, %x, %p, %s.
void
printf(int fd, char *fmt, ...)
{
    1c14:	e92d4800 	push	{fp, lr}
    1c18:	e1a0b00d 	mov	fp, sp
    1c1c:	e24dd028 	sub	sp, sp, #40	; 0x28
    1c20:	e1a02001 	mov	r2, r1
    1c24:	e1a03000 	mov	r3, r0
    1c28:	e50b0004 	str	r0, [fp, #-4]
    1c2c:	e50b1008 	str	r1, [fp, #-8]
    1c30:	e3a00000 	mov	r0, #0
    1c34:	e58d0010 	str	r0, [sp, #16]
    1c38:	e24b1008 	sub	r1, fp, #8
    1c3c:	e2811004 	add	r1, r1, #4
    1c40:	e58d100c 	str	r1, [sp, #12]
    1c44:	e58d0014 	str	r0, [sp, #20]
    1c48:	e58d2008 	str	r2, [sp, #8]
    1c4c:	e58d3004 	str	r3, [sp, #4]
    1c50:	eaffffff 	b	1c54 <printf+0x40>
    1c54:	e51b0008 	ldr	r0, [fp, #-8]
    1c58:	e59d1014 	ldr	r1, [sp, #20]
    1c5c:	e7d00001 	ldrb	r0, [r0, r1]
    1c60:	e3500000 	cmp	r0, #0
    1c64:	0a00007e 	beq	1e64 <printf+0x250>
    1c68:	eaffffff 	b	1c6c <printf+0x58>
    1c6c:	e51b0008 	ldr	r0, [fp, #-8]
    1c70:	e59d1014 	ldr	r1, [sp, #20]
    1c74:	e7d00001 	ldrb	r0, [r0, r1]
    1c78:	e50b0010 	str	r0, [fp, #-16]
    1c7c:	e59d0010 	ldr	r0, [sp, #16]
    1c80:	e3500000 	cmp	r0, #0
    1c84:	1a00000c 	bne	1cbc <printf+0xa8>
    1c88:	eaffffff 	b	1c8c <printf+0x78>
    1c8c:	e51b0010 	ldr	r0, [fp, #-16]
    1c90:	e3500025 	cmp	r0, #37	; 0x25
    1c94:	1a000003 	bne	1ca8 <printf+0x94>
    1c98:	eaffffff 	b	1c9c <printf+0x88>
    1c9c:	e3a00025 	mov	r0, #37	; 0x25
    1ca0:	e58d0010 	str	r0, [sp, #16]
    1ca4:	ea000003 	b	1cb8 <printf+0xa4>
    1ca8:	e51b0004 	ldr	r0, [fp, #-4]
    1cac:	e55b1010 	ldrb	r1, [fp, #-16]
    1cb0:	eb00006e 	bl	1e70 <putc>
    1cb4:	eaffffff 	b	1cb8 <printf+0xa4>
    1cb8:	ea000064 	b	1e50 <printf+0x23c>
    1cbc:	e59d0010 	ldr	r0, [sp, #16]
    1cc0:	e3500025 	cmp	r0, #37	; 0x25
    1cc4:	1a000060 	bne	1e4c <printf+0x238>
    1cc8:	eaffffff 	b	1ccc <printf+0xb8>
    1ccc:	e51b0010 	ldr	r0, [fp, #-16]
    1cd0:	e3500064 	cmp	r0, #100	; 0x64
    1cd4:	1a00000a 	bne	1d04 <printf+0xf0>
    1cd8:	eaffffff 	b	1cdc <printf+0xc8>
    1cdc:	e51b0004 	ldr	r0, [fp, #-4]
    1ce0:	e59d100c 	ldr	r1, [sp, #12]
    1ce4:	e5911000 	ldr	r1, [r1]
    1ce8:	e3a0200a 	mov	r2, #10
    1cec:	e3a03001 	mov	r3, #1
    1cf0:	eb00006f 	bl	1eb4 <printint>
    1cf4:	e59d000c 	ldr	r0, [sp, #12]
    1cf8:	e2800004 	add	r0, r0, #4
    1cfc:	e58d000c 	str	r0, [sp, #12]
    1d00:	ea00004e 	b	1e40 <printf+0x22c>
    1d04:	e51b0010 	ldr	r0, [fp, #-16]
    1d08:	e3500078 	cmp	r0, #120	; 0x78
    1d0c:	0a000004 	beq	1d24 <printf+0x110>
    1d10:	eaffffff 	b	1d14 <printf+0x100>
    1d14:	e51b0010 	ldr	r0, [fp, #-16]
    1d18:	e3500070 	cmp	r0, #112	; 0x70
    1d1c:	1a00000a 	bne	1d4c <printf+0x138>
    1d20:	eaffffff 	b	1d24 <printf+0x110>
    1d24:	e51b0004 	ldr	r0, [fp, #-4]
    1d28:	e59d100c 	ldr	r1, [sp, #12]
    1d2c:	e5911000 	ldr	r1, [r1]
    1d30:	e3a02010 	mov	r2, #16
    1d34:	e3a03000 	mov	r3, #0
    1d38:	eb00005d 	bl	1eb4 <printint>
    1d3c:	e59d000c 	ldr	r0, [sp, #12]
    1d40:	e2800004 	add	r0, r0, #4
    1d44:	e58d000c 	str	r0, [sp, #12]
    1d48:	ea00003b 	b	1e3c <printf+0x228>
    1d4c:	e51b0010 	ldr	r0, [fp, #-16]
    1d50:	e3500073 	cmp	r0, #115	; 0x73
    1d54:	1a00001a 	bne	1dc4 <printf+0x1b0>
    1d58:	eaffffff 	b	1d5c <printf+0x148>
    1d5c:	e59d000c 	ldr	r0, [sp, #12]
    1d60:	e4901004 	ldr	r1, [r0], #4
    1d64:	e50b100c 	str	r1, [fp, #-12]
    1d68:	e58d000c 	str	r0, [sp, #12]
    1d6c:	e51b000c 	ldr	r0, [fp, #-12]
    1d70:	e3500000 	cmp	r0, #0
    1d74:	1a000003 	bne	1d88 <printf+0x174>
    1d78:	eaffffff 	b	1d7c <printf+0x168>
    1d7c:	e59f00e8 	ldr	r0, [pc, #232]	; 1e6c <printf+0x258>
    1d80:	e50b000c 	str	r0, [fp, #-12]
    1d84:	eaffffff 	b	1d88 <printf+0x174>
    1d88:	eaffffff 	b	1d8c <printf+0x178>
    1d8c:	e51b000c 	ldr	r0, [fp, #-12]
    1d90:	e5d00000 	ldrb	r0, [r0]
    1d94:	e3500000 	cmp	r0, #0
    1d98:	0a000008 	beq	1dc0 <printf+0x1ac>
    1d9c:	eaffffff 	b	1da0 <printf+0x18c>
    1da0:	e51b0004 	ldr	r0, [fp, #-4]
    1da4:	e51b100c 	ldr	r1, [fp, #-12]
    1da8:	e5d11000 	ldrb	r1, [r1]
    1dac:	eb00002f 	bl	1e70 <putc>
    1db0:	e51b000c 	ldr	r0, [fp, #-12]
    1db4:	e2800001 	add	r0, r0, #1
    1db8:	e50b000c 	str	r0, [fp, #-12]
    1dbc:	eafffff2 	b	1d8c <printf+0x178>
    1dc0:	ea00001c 	b	1e38 <printf+0x224>
    1dc4:	e51b0010 	ldr	r0, [fp, #-16]
    1dc8:	e3500063 	cmp	r0, #99	; 0x63
    1dcc:	1a000008 	bne	1df4 <printf+0x1e0>
    1dd0:	eaffffff 	b	1dd4 <printf+0x1c0>
    1dd4:	e51b0004 	ldr	r0, [fp, #-4]
    1dd8:	e59d100c 	ldr	r1, [sp, #12]
    1ddc:	e5d11000 	ldrb	r1, [r1]
    1de0:	eb000022 	bl	1e70 <putc>
    1de4:	e59d000c 	ldr	r0, [sp, #12]
    1de8:	e2800004 	add	r0, r0, #4
    1dec:	e58d000c 	str	r0, [sp, #12]
    1df0:	ea00000f 	b	1e34 <printf+0x220>
    1df4:	e51b0010 	ldr	r0, [fp, #-16]
    1df8:	e3500025 	cmp	r0, #37	; 0x25
    1dfc:	1a000004 	bne	1e14 <printf+0x200>
    1e00:	eaffffff 	b	1e04 <printf+0x1f0>
    1e04:	e51b0004 	ldr	r0, [fp, #-4]
    1e08:	e55b1010 	ldrb	r1, [fp, #-16]
    1e0c:	eb000017 	bl	1e70 <putc>
    1e10:	ea000006 	b	1e30 <printf+0x21c>
    1e14:	e51b0004 	ldr	r0, [fp, #-4]
    1e18:	e3a01025 	mov	r1, #37	; 0x25
    1e1c:	eb000013 	bl	1e70 <putc>
    1e20:	e51b0004 	ldr	r0, [fp, #-4]
    1e24:	e55b1010 	ldrb	r1, [fp, #-16]
    1e28:	eb000010 	bl	1e70 <putc>
    1e2c:	eaffffff 	b	1e30 <printf+0x21c>
    1e30:	eaffffff 	b	1e34 <printf+0x220>
    1e34:	eaffffff 	b	1e38 <printf+0x224>
    1e38:	eaffffff 	b	1e3c <printf+0x228>
    1e3c:	eaffffff 	b	1e40 <printf+0x22c>
    1e40:	e3a00000 	mov	r0, #0
    1e44:	e58d0010 	str	r0, [sp, #16]
    1e48:	eaffffff 	b	1e4c <printf+0x238>
    1e4c:	eaffffff 	b	1e50 <printf+0x23c>
    1e50:	eaffffff 	b	1e54 <printf+0x240>
    1e54:	e59d0014 	ldr	r0, [sp, #20]
    1e58:	e2800001 	add	r0, r0, #1
    1e5c:	e58d0014 	str	r0, [sp, #20]
    1e60:	eaffff7b 	b	1c54 <printf+0x40>
    1e64:	e1a0d00b 	mov	sp, fp
    1e68:	e8bd8800 	pop	{fp, pc}
    1e6c:	00002593 	.word	0x00002593

00001e70 <putc>:
{
    1e70:	e92d4800 	push	{fp, lr}
    1e74:	e1a0b00d 	mov	fp, sp
    1e78:	e24dd018 	sub	sp, sp, #24
    1e7c:	e1a02001 	mov	r2, r1
    1e80:	e1a03000 	mov	r3, r0
    1e84:	e50b0004 	str	r0, [fp, #-4]
    1e88:	e54b1005 	strb	r1, [fp, #-5]
    write(fd, &c, 1);
    1e8c:	e51b0004 	ldr	r0, [fp, #-4]
    1e90:	e24b1005 	sub	r1, fp, #5
    1e94:	e3a0c001 	mov	ip, #1
    1e98:	e58d200c 	str	r2, [sp, #12]
    1e9c:	e1a0200c 	mov	r2, ip
    1ea0:	e58d3008 	str	r3, [sp, #8]
    1ea4:	ebfffeca 	bl	19d4 <write>
}
    1ea8:	e58d0004 	str	r0, [sp, #4]
    1eac:	e1a0d00b 	mov	sp, fp
    1eb0:	e8bd8800 	pop	{fp, pc}

00001eb4 <printint>:
{
    1eb4:	e92d4830 	push	{r4, r5, fp, lr}
    1eb8:	e28db008 	add	fp, sp, #8
    1ebc:	e24dd040 	sub	sp, sp, #64	; 0x40
    1ec0:	e1a0c003 	mov	ip, r3
    1ec4:	e1a0e002 	mov	lr, r2
    1ec8:	e1a04001 	mov	r4, r1
    1ecc:	e1a05000 	mov	r5, r0
    1ed0:	e50b000c 	str	r0, [fp, #-12]
    1ed4:	e50b1010 	str	r1, [fp, #-16]
    1ed8:	e50b2014 	str	r2, [fp, #-20]	; 0xffffffec
    1edc:	e50b3018 	str	r3, [fp, #-24]	; 0xffffffe8
    1ee0:	e3a00000 	mov	r0, #0
    1ee4:	e58d0018 	str	r0, [sp, #24]
    1ee8:	e51b0018 	ldr	r0, [fp, #-24]	; 0xffffffe8
    1eec:	e3500000 	cmp	r0, #0
    1ef0:	e58dc010 	str	ip, [sp, #16]
    1ef4:	e58de00c 	str	lr, [sp, #12]
    1ef8:	e58d4008 	str	r4, [sp, #8]
    1efc:	e58d5004 	str	r5, [sp, #4]
    1f00:	0a00000a 	beq	1f30 <printint+0x7c>
    1f04:	eaffffff 	b	1f08 <printint+0x54>
    1f08:	e51b0010 	ldr	r0, [fp, #-16]
    1f0c:	e3500000 	cmp	r0, #0
    1f10:	aa000006 	bge	1f30 <printint+0x7c>
    1f14:	eaffffff 	b	1f18 <printint+0x64>
    1f18:	e3a00001 	mov	r0, #1
    1f1c:	e58d0018 	str	r0, [sp, #24]
    1f20:	e51b0010 	ldr	r0, [fp, #-16]
    1f24:	e2600000 	rsb	r0, r0, #0
    1f28:	e58d0014 	str	r0, [sp, #20]
    1f2c:	ea000002 	b	1f3c <printint+0x88>
    1f30:	e51b0010 	ldr	r0, [fp, #-16]
    1f34:	e58d0014 	str	r0, [sp, #20]
    1f38:	eaffffff 	b	1f3c <printint+0x88>
    1f3c:	e3a00000 	mov	r0, #0
    1f40:	e58d001c 	str	r0, [sp, #28]
    1f44:	eaffffff 	b	1f48 <printint+0x94>
    1f48:	e59d0014 	ldr	r0, [sp, #20]
    1f4c:	e51b1014 	ldr	r1, [fp, #-20]	; 0xffffffec
    1f50:	eb000158 	bl	24b8 <__aeabi_uidivmod>
    1f54:	e59fe0a0 	ldr	lr, [pc, #160]	; 1ffc <printint+0x148>
    1f58:	e7de1001 	ldrb	r1, [lr, r1]
    1f5c:	e59de01c 	ldr	lr, [sp, #28]
    1f60:	e28e2001 	add	r2, lr, #1
    1f64:	e58d201c 	str	r2, [sp, #28]
    1f68:	e28d2020 	add	r2, sp, #32
    1f6c:	e7c2100e 	strb	r1, [r2, lr]
    1f70:	e58d0000 	str	r0, [sp]
    1f74:	eaffffff 	b	1f78 <printint+0xc4>
    1f78:	e51b1014 	ldr	r1, [fp, #-20]	; 0xffffffec
    1f7c:	e59d0014 	ldr	r0, [sp, #20]
    1f80:	eb00010f 	bl	23c4 <__aeabi_uidiv>
    1f84:	e58d0014 	str	r0, [sp, #20]
    1f88:	e3500000 	cmp	r0, #0
    1f8c:	1affffed 	bne	1f48 <printint+0x94>
    1f90:	eaffffff 	b	1f94 <printint+0xe0>
    1f94:	e59d0018 	ldr	r0, [sp, #24]
    1f98:	e3500000 	cmp	r0, #0
    1f9c:	0a000007 	beq	1fc0 <printint+0x10c>
    1fa0:	eaffffff 	b	1fa4 <printint+0xf0>
    1fa4:	e59d001c 	ldr	r0, [sp, #28]
    1fa8:	e2801001 	add	r1, r0, #1
    1fac:	e58d101c 	str	r1, [sp, #28]
    1fb0:	e28d1020 	add	r1, sp, #32
    1fb4:	e3a0202d 	mov	r2, #45	; 0x2d
    1fb8:	e7c12000 	strb	r2, [r1, r0]
    1fbc:	eaffffff 	b	1fc0 <printint+0x10c>
    1fc0:	eaffffff 	b	1fc4 <printint+0x110>
    1fc4:	e59d001c 	ldr	r0, [sp, #28]
    1fc8:	e2400001 	sub	r0, r0, #1
    1fcc:	e58d001c 	str	r0, [sp, #28]
    1fd0:	e3500000 	cmp	r0, #0
    1fd4:	ba000006 	blt	1ff4 <printint+0x140>
    1fd8:	eaffffff 	b	1fdc <printint+0x128>
    1fdc:	e51b000c 	ldr	r0, [fp, #-12]
    1fe0:	e59d101c 	ldr	r1, [sp, #28]
    1fe4:	e28d2020 	add	r2, sp, #32
    1fe8:	e7d21001 	ldrb	r1, [r2, r1]
    1fec:	ebffff9f 	bl	1e70 <putc>
    1ff0:	eafffff3 	b	1fc4 <printint+0x110>
    1ff4:	e24bd008 	sub	sp, fp, #8
    1ff8:	e8bd8830 	pop	{r4, r5, fp, pc}
    1ffc:	000025b2 	.word	0x000025b2

00002000 <free>:
static Header base;
static Header *freep;

void
free(void *ap)
{
    2000:	e24dd014 	sub	sp, sp, #20
    2004:	e1a01000 	mov	r1, r0
    2008:	e58d0010 	str	r0, [sp, #16]
    200c:	e59d0010 	ldr	r0, [sp, #16]
    2010:	e2400008 	sub	r0, r0, #8
    2014:	e58d000c 	str	r0, [sp, #12]
    2018:	e59f0188 	ldr	r0, [pc, #392]	; 21a8 <free+0x1a8>
    201c:	e5900000 	ldr	r0, [r0]
    2020:	e58d0008 	str	r0, [sp, #8]
    2024:	e58d1004 	str	r1, [sp, #4]
    2028:	eaffffff 	b	202c <free+0x2c>
    202c:	e59d000c 	ldr	r0, [sp, #12]
    2030:	e59d1008 	ldr	r1, [sp, #8]
    2034:	e3a02000 	mov	r2, #0
    2038:	e1500001 	cmp	r0, r1
    203c:	e58d2000 	str	r2, [sp]
    2040:	9a000008 	bls	2068 <free+0x68>
    2044:	eaffffff 	b	2048 <free+0x48>
    2048:	e59d000c 	ldr	r0, [sp, #12]
    204c:	e59d1008 	ldr	r1, [sp, #8]
    2050:	e5911000 	ldr	r1, [r1]
    2054:	e3a02000 	mov	r2, #0
    2058:	e1500001 	cmp	r0, r1
    205c:	33a02001 	movcc	r2, #1
    2060:	e58d2000 	str	r2, [sp]
    2064:	eaffffff 	b	2068 <free+0x68>
    2068:	e59d0000 	ldr	r0, [sp]
    206c:	e1e00000 	mvn	r0, r0
    2070:	e3100001 	tst	r0, #1
    2074:	0a000016 	beq	20d4 <free+0xd4>
    2078:	eaffffff 	b	207c <free+0x7c>
    207c:	e59d0008 	ldr	r0, [sp, #8]
    2080:	e5901000 	ldr	r1, [r0]
    2084:	e1500001 	cmp	r0, r1
    2088:	3a00000c 	bcc	20c0 <free+0xc0>
    208c:	eaffffff 	b	2090 <free+0x90>
    2090:	e59d000c 	ldr	r0, [sp, #12]
    2094:	e59d1008 	ldr	r1, [sp, #8]
    2098:	e1500001 	cmp	r0, r1
    209c:	8a000006 	bhi	20bc <free+0xbc>
    20a0:	eaffffff 	b	20a4 <free+0xa4>
    20a4:	e59d000c 	ldr	r0, [sp, #12]
    20a8:	e59d1008 	ldr	r1, [sp, #8]
    20ac:	e5911000 	ldr	r1, [r1]
    20b0:	e1500001 	cmp	r0, r1
    20b4:	2a000001 	bcs	20c0 <free+0xc0>
    20b8:	eaffffff 	b	20bc <free+0xbc>
    20bc:	ea000004 	b	20d4 <free+0xd4>
    20c0:	eaffffff 	b	20c4 <free+0xc4>
    20c4:	e59d0008 	ldr	r0, [sp, #8]
    20c8:	e5900000 	ldr	r0, [r0]
    20cc:	e58d0008 	str	r0, [sp, #8]
    20d0:	eaffffd5 	b	202c <free+0x2c>
    20d4:	e59d000c 	ldr	r0, [sp, #12]
    20d8:	e5901004 	ldr	r1, [r0, #4]
    20dc:	e0800181 	add	r0, r0, r1, lsl #3
    20e0:	e59d1008 	ldr	r1, [sp, #8]
    20e4:	e5911000 	ldr	r1, [r1]
    20e8:	e1500001 	cmp	r0, r1
    20ec:	1a00000d 	bne	2128 <free+0x128>
    20f0:	eaffffff 	b	20f4 <free+0xf4>
    20f4:	e59d0008 	ldr	r0, [sp, #8]
    20f8:	e5900000 	ldr	r0, [r0]
    20fc:	e5900004 	ldr	r0, [r0, #4]
    2100:	e59d100c 	ldr	r1, [sp, #12]
    2104:	e5912004 	ldr	r2, [r1, #4]
    2108:	e0820000 	add	r0, r2, r0
    210c:	e5810004 	str	r0, [r1, #4]
    2110:	e59d0008 	ldr	r0, [sp, #8]
    2114:	e5900000 	ldr	r0, [r0]
    2118:	e5900000 	ldr	r0, [r0]
    211c:	e59d100c 	ldr	r1, [sp, #12]
    2120:	e5810000 	str	r0, [r1]
    2124:	ea000004 	b	213c <free+0x13c>
    2128:	e59d0008 	ldr	r0, [sp, #8]
    212c:	e5900000 	ldr	r0, [r0]
    2130:	e59d100c 	ldr	r1, [sp, #12]
    2134:	e5810000 	str	r0, [r1]
    2138:	eaffffff 	b	213c <free+0x13c>
    213c:	e59d0008 	ldr	r0, [sp, #8]
    2140:	e5901004 	ldr	r1, [r0, #4]
    2144:	e0800181 	add	r0, r0, r1, lsl #3
    2148:	e59d100c 	ldr	r1, [sp, #12]
    214c:	e1500001 	cmp	r0, r1
    2150:	1a00000b 	bne	2184 <free+0x184>
    2154:	eaffffff 	b	2158 <free+0x158>
    2158:	e59d000c 	ldr	r0, [sp, #12]
    215c:	e5900004 	ldr	r0, [r0, #4]
    2160:	e59d1008 	ldr	r1, [sp, #8]
    2164:	e5912004 	ldr	r2, [r1, #4]
    2168:	e0820000 	add	r0, r2, r0
    216c:	e5810004 	str	r0, [r1, #4]
    2170:	e59d000c 	ldr	r0, [sp, #12]
    2174:	e5900000 	ldr	r0, [r0]
    2178:	e59d1008 	ldr	r1, [sp, #8]
    217c:	e5810000 	str	r0, [r1]
    2180:	ea000003 	b	2194 <free+0x194>
    2184:	e59d000c 	ldr	r0, [sp, #12]
    2188:	e59d1008 	ldr	r1, [sp, #8]
    218c:	e5810000 	str	r0, [r1]
    2190:	eaffffff 	b	2194 <free+0x194>
    2194:	e59d0008 	ldr	r0, [sp, #8]
    2198:	e59f1008 	ldr	r1, [pc, #8]	; 21a8 <free+0x1a8>
    219c:	e5810000 	str	r0, [r1]
    21a0:	e28dd014 	add	sp, sp, #20
    21a4:	e12fff1e 	bx	lr
    21a8:	00002628 	.word	0x00002628

000021ac <malloc>:
    21ac:	e92d4800 	push	{fp, lr}
    21b0:	e1a0b00d 	mov	fp, sp
    21b4:	e24dd018 	sub	sp, sp, #24
    21b8:	e1a01000 	mov	r1, r0
    21bc:	e50b0008 	str	r0, [fp, #-8]
    21c0:	e51b0008 	ldr	r0, [fp, #-8]
    21c4:	e2800007 	add	r0, r0, #7
    21c8:	e3a02001 	mov	r2, #1
    21cc:	e08201a0 	add	r0, r2, r0, lsr #3
    21d0:	e58d0004 	str	r0, [sp, #4]
    21d4:	e59f013c 	ldr	r0, [pc, #316]	; 2318 <malloc+0x16c>
    21d8:	e5900000 	ldr	r0, [r0]
    21dc:	e58d0008 	str	r0, [sp, #8]
    21e0:	e3500000 	cmp	r0, #0
    21e4:	e58d1000 	str	r1, [sp]
    21e8:	1a000008 	bne	2210 <malloc+0x64>
    21ec:	eaffffff 	b	21f0 <malloc+0x44>
    21f0:	e59f0124 	ldr	r0, [pc, #292]	; 231c <malloc+0x170>
    21f4:	e58d0008 	str	r0, [sp, #8]
    21f8:	e59f1118 	ldr	r1, [pc, #280]	; 2318 <malloc+0x16c>
    21fc:	e5810000 	str	r0, [r1]
    2200:	e5800000 	str	r0, [r0]
    2204:	e3a01000 	mov	r1, #0
    2208:	e5801004 	str	r1, [r0, #4]
    220c:	eaffffff 	b	2210 <malloc+0x64>
    2210:	e59d0008 	ldr	r0, [sp, #8]
    2214:	e5900000 	ldr	r0, [r0]
    2218:	e58d000c 	str	r0, [sp, #12]
    221c:	eaffffff 	b	2220 <malloc+0x74>
    2220:	e59d000c 	ldr	r0, [sp, #12]
    2224:	e5900004 	ldr	r0, [r0, #4]
    2228:	e59d1004 	ldr	r1, [sp, #4]
    222c:	e1500001 	cmp	r0, r1
    2230:	3a00001f 	bcc	22b4 <malloc+0x108>
    2234:	eaffffff 	b	2238 <malloc+0x8c>
    2238:	e59d000c 	ldr	r0, [sp, #12]
    223c:	e5900004 	ldr	r0, [r0, #4]
    2240:	e59d1004 	ldr	r1, [sp, #4]
    2244:	e1500001 	cmp	r0, r1
    2248:	1a000005 	bne	2264 <malloc+0xb8>
    224c:	eaffffff 	b	2250 <malloc+0xa4>
    2250:	e59d000c 	ldr	r0, [sp, #12]
    2254:	e5900000 	ldr	r0, [r0]
    2258:	e59d1008 	ldr	r1, [sp, #8]
    225c:	e5810000 	str	r0, [r1]
    2260:	ea00000c 	b	2298 <malloc+0xec>
    2264:	e59d0004 	ldr	r0, [sp, #4]
    2268:	e59d100c 	ldr	r1, [sp, #12]
    226c:	e5912004 	ldr	r2, [r1, #4]
    2270:	e0420000 	sub	r0, r2, r0
    2274:	e5810004 	str	r0, [r1, #4]
    2278:	e59d000c 	ldr	r0, [sp, #12]
    227c:	e5901004 	ldr	r1, [r0, #4]
    2280:	e0800181 	add	r0, r0, r1, lsl #3
    2284:	e58d000c 	str	r0, [sp, #12]
    2288:	e59d0004 	ldr	r0, [sp, #4]
    228c:	e59d100c 	ldr	r1, [sp, #12]
    2290:	e5810004 	str	r0, [r1, #4]
    2294:	eaffffff 	b	2298 <malloc+0xec>
    2298:	e59d0008 	ldr	r0, [sp, #8]
    229c:	e59f1074 	ldr	r1, [pc, #116]	; 2318 <malloc+0x16c>
    22a0:	e5810000 	str	r0, [r1]
    22a4:	e59d000c 	ldr	r0, [sp, #12]
    22a8:	e2800008 	add	r0, r0, #8
    22ac:	e50b0004 	str	r0, [fp, #-4]
    22b0:	ea000015 	b	230c <malloc+0x160>
    22b4:	e59d000c 	ldr	r0, [sp, #12]
    22b8:	e59f1058 	ldr	r1, [pc, #88]	; 2318 <malloc+0x16c>
    22bc:	e5911000 	ldr	r1, [r1]
    22c0:	e1500001 	cmp	r0, r1
    22c4:	1a00000a 	bne	22f4 <malloc+0x148>
    22c8:	eaffffff 	b	22cc <malloc+0x120>
    22cc:	e59d0004 	ldr	r0, [sp, #4]
    22d0:	eb000012 	bl	2320 <morecore>
    22d4:	e58d000c 	str	r0, [sp, #12]
    22d8:	e3500000 	cmp	r0, #0
    22dc:	1a000003 	bne	22f0 <malloc+0x144>
    22e0:	eaffffff 	b	22e4 <malloc+0x138>
    22e4:	e3a00000 	mov	r0, #0
    22e8:	e50b0004 	str	r0, [fp, #-4]
    22ec:	ea000006 	b	230c <malloc+0x160>
    22f0:	eaffffff 	b	22f4 <malloc+0x148>
    22f4:	eaffffff 	b	22f8 <malloc+0x14c>
    22f8:	e59d000c 	ldr	r0, [sp, #12]
    22fc:	e58d0008 	str	r0, [sp, #8]
    2300:	e5900000 	ldr	r0, [r0]
    2304:	e58d000c 	str	r0, [sp, #12]
    2308:	eaffffc4 	b	2220 <malloc+0x74>
    230c:	e51b0004 	ldr	r0, [fp, #-4]
    2310:	e1a0d00b 	mov	sp, fp
    2314:	e8bd8800 	pop	{fp, pc}
    2318:	00002628 	.word	0x00002628
    231c:	0000262c 	.word	0x0000262c

00002320 <morecore>:
    freep = p;
}

static Header*
morecore(uint nu)
{
    2320:	e92d4800 	push	{fp, lr}
    2324:	e1a0b00d 	mov	fp, sp
    2328:	e24dd018 	sub	sp, sp, #24
    232c:	e1a01000 	mov	r1, r0
    2330:	e50b0008 	str	r0, [fp, #-8]
    char *p;
    Header *hp;
    
    if(nu < 4096)
    2334:	e51b0008 	ldr	r0, [fp, #-8]
    2338:	e3a02000 	mov	r2, #0
    233c:	e1520620 	cmp	r2, r0, lsr #12
    2340:	e58d1004 	str	r1, [sp, #4]
    2344:	1a000003 	bne	2358 <morecore+0x38>
    2348:	eaffffff 	b	234c <morecore+0x2c>
        nu = 4096;
    234c:	e3a00a01 	mov	r0, #4096	; 0x1000
    2350:	e50b0008 	str	r0, [fp, #-8]
    2354:	eaffffff 	b	2358 <morecore+0x38>
    p = sbrk(nu * sizeof(Header));
    2358:	e51b0008 	ldr	r0, [fp, #-8]
    235c:	e1a00180 	lsl	r0, r0, #3
    2360:	ebfffe10 	bl	1ba8 <sbrk>
    2364:	e58d000c 	str	r0, [sp, #12]
    if(p == (char*)-1)
    2368:	e59d000c 	ldr	r0, [sp, #12]
    236c:	e3700001 	cmn	r0, #1
    2370:	1a000003 	bne	2384 <morecore+0x64>
    2374:	eaffffff 	b	2378 <morecore+0x58>
        return 0;
    2378:	e3a00000 	mov	r0, #0
    237c:	e50b0004 	str	r0, [fp, #-4]
    2380:	ea00000b 	b	23b4 <morecore+0x94>
    hp = (Header*)p;
    2384:	e59d000c 	ldr	r0, [sp, #12]
    2388:	e58d0008 	str	r0, [sp, #8]
    hp->s.size = nu;
    238c:	e51b0008 	ldr	r0, [fp, #-8]
    2390:	e59d1008 	ldr	r1, [sp, #8]
    2394:	e5810004 	str	r0, [r1, #4]
    free((void*)(hp + 1));
    2398:	e59d0008 	ldr	r0, [sp, #8]
    239c:	e2800008 	add	r0, r0, #8
    23a0:	ebffff16 	bl	2000 <free>
    return freep;
    23a4:	e59f0014 	ldr	r0, [pc, #20]	; 23c0 <morecore+0xa0>
    23a8:	e5900000 	ldr	r0, [r0]
    23ac:	e50b0004 	str	r0, [fp, #-4]
    23b0:	eaffffff 	b	23b4 <morecore+0x94>
}
    23b4:	e51b0004 	ldr	r0, [fp, #-4]
    23b8:	e1a0d00b 	mov	sp, fp
    23bc:	e8bd8800 	pop	{fp, pc}
    23c0:	00002628 	.word	0x00002628

000023c4 <__aeabi_uidiv>:
    23c4:	e2512001 	subs	r2, r1, #1
    23c8:	012fff1e 	bxeq	lr
    23cc:	3a000036 	bcc	24ac <__aeabi_uidiv+0xe8>
    23d0:	e1500001 	cmp	r0, r1
    23d4:	9a000022 	bls	2464 <__aeabi_uidiv+0xa0>
    23d8:	e1110002 	tst	r1, r2
    23dc:	0a000023 	beq	2470 <__aeabi_uidiv+0xac>
    23e0:	e311020e 	tst	r1, #-536870912	; 0xe0000000
    23e4:	01a01181 	lsleq	r1, r1, #3
    23e8:	03a03008 	moveq	r3, #8
    23ec:	13a03001 	movne	r3, #1
    23f0:	e3510201 	cmp	r1, #268435456	; 0x10000000
    23f4:	31510000 	cmpcc	r1, r0
    23f8:	31a01201 	lslcc	r1, r1, #4
    23fc:	31a03203 	lslcc	r3, r3, #4
    2400:	3afffffa 	bcc	23f0 <__aeabi_uidiv+0x2c>
    2404:	e3510102 	cmp	r1, #-2147483648	; 0x80000000
    2408:	31510000 	cmpcc	r1, r0
    240c:	31a01081 	lslcc	r1, r1, #1
    2410:	31a03083 	lslcc	r3, r3, #1
    2414:	3afffffa 	bcc	2404 <__aeabi_uidiv+0x40>
    2418:	e3a02000 	mov	r2, #0
    241c:	e1500001 	cmp	r0, r1
    2420:	20400001 	subcs	r0, r0, r1
    2424:	21822003 	orrcs	r2, r2, r3
    2428:	e15000a1 	cmp	r0, r1, lsr #1
    242c:	204000a1 	subcs	r0, r0, r1, lsr #1
    2430:	218220a3 	orrcs	r2, r2, r3, lsr #1
    2434:	e1500121 	cmp	r0, r1, lsr #2
    2438:	20400121 	subcs	r0, r0, r1, lsr #2
    243c:	21822123 	orrcs	r2, r2, r3, lsr #2
    2440:	e15001a1 	cmp	r0, r1, lsr #3
    2444:	204001a1 	subcs	r0, r0, r1, lsr #3
    2448:	218221a3 	orrcs	r2, r2, r3, lsr #3
    244c:	e3500000 	cmp	r0, #0
    2450:	11b03223 	lsrsne	r3, r3, #4
    2454:	11a01221 	lsrne	r1, r1, #4
    2458:	1affffef 	bne	241c <__aeabi_uidiv+0x58>
    245c:	e1a00002 	mov	r0, r2
    2460:	e12fff1e 	bx	lr
    2464:	03a00001 	moveq	r0, #1
    2468:	13a00000 	movne	r0, #0
    246c:	e12fff1e 	bx	lr
    2470:	e3510801 	cmp	r1, #65536	; 0x10000
    2474:	21a01821 	lsrcs	r1, r1, #16
    2478:	23a02010 	movcs	r2, #16
    247c:	33a02000 	movcc	r2, #0
    2480:	e3510c01 	cmp	r1, #256	; 0x100
    2484:	21a01421 	lsrcs	r1, r1, #8
    2488:	22822008 	addcs	r2, r2, #8
    248c:	e3510010 	cmp	r1, #16
    2490:	21a01221 	lsrcs	r1, r1, #4
    2494:	22822004 	addcs	r2, r2, #4
    2498:	e3510004 	cmp	r1, #4
    249c:	82822003 	addhi	r2, r2, #3
    24a0:	908220a1 	addls	r2, r2, r1, lsr #1
    24a4:	e1a00230 	lsr	r0, r0, r2
    24a8:	e12fff1e 	bx	lr
    24ac:	e3500000 	cmp	r0, #0
    24b0:	13e00000 	mvnne	r0, #0
    24b4:	ea000007 	b	24d8 <__aeabi_idiv0>

000024b8 <__aeabi_uidivmod>:
    24b8:	e3510000 	cmp	r1, #0
    24bc:	0afffffa 	beq	24ac <__aeabi_uidiv+0xe8>
    24c0:	e92d4003 	push	{r0, r1, lr}
    24c4:	ebffffbe 	bl	23c4 <__aeabi_uidiv>
    24c8:	e8bd4006 	pop	{r1, r2, lr}
    24cc:	e0030092 	mul	r3, r2, r0
    24d0:	e0411003 	sub	r1, r1, r3
    24d4:	e12fff1e 	bx	lr

000024d8 <__aeabi_idiv0>:
    24d8:	e12fff1e 	bx	lr