view src/usr/grep.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


_grep:     file format elf32-littlearm


Disassembly of section .text:

00000000 <grep>:
char buf[1024];
int match(char*, char*);

void
grep(char *pattern, int fd)
{
       0:	e92d4800 	push	{fp, lr}
       4:	e1a0b00d 	mov	fp, sp
       8:	e24dd038 	sub	sp, sp, #56	; 0x38
       c:	e1a02001 	mov	r2, r1
      10:	e1a03000 	mov	r3, r0
      14:	e50b0004 	str	r0, [fp, #-4]
      18:	e50b1008 	str	r1, [fp, #-8]
      1c:	e3a00000 	mov	r0, #0
      20:	e50b0010 	str	r0, [fp, #-16]
      24:	e58d201c 	str	r2, [sp, #28]
      28:	e58d3018 	str	r3, [sp, #24]
      2c:	eaffffff 	b	30 <grep+0x30>
      30:	e51b0008 	ldr	r0, [fp, #-8]
      34:	e51b1010 	ldr	r1, [fp, #-16]
      38:	e59f2138 	ldr	r2, [pc, #312]	; 178 <grep+0x178>
      3c:	e0822001 	add	r2, r2, r1
      40:	e2611b01 	rsb	r1, r1, #1024	; 0x400
      44:	e58d1014 	str	r1, [sp, #20]
      48:	e1a01002 	mov	r1, r2
      4c:	e59d2014 	ldr	r2, [sp, #20]
      50:	eb0002da 	bl	bc0 <read>
      54:	e50b000c 	str	r0, [fp, #-12]
      58:	e3500001 	cmp	r0, #1
      5c:	ba000043 	blt	170 <grep+0x170>
      60:	eaffffff 	b	64 <grep+0x64>
      64:	e51b000c 	ldr	r0, [fp, #-12]
      68:	e51b1010 	ldr	r1, [fp, #-16]
      6c:	e0810000 	add	r0, r1, r0
      70:	e50b0010 	str	r0, [fp, #-16]
      74:	e59f00fc 	ldr	r0, [pc, #252]	; 178 <grep+0x178>
      78:	e50b0014 	str	r0, [fp, #-20]	; 0xffffffec
      7c:	eaffffff 	b	80 <grep+0x80>
      80:	e51b0014 	ldr	r0, [fp, #-20]	; 0xffffffec
      84:	e3a0100a 	mov	r1, #10
      88:	eb0001e9 	bl	834 <strchr>
      8c:	e50b0018 	str	r0, [fp, #-24]	; 0xffffffe8
      90:	e3500000 	cmp	r0, #0
      94:	0a00001b 	beq	108 <grep+0x108>
      98:	eaffffff 	b	9c <grep+0x9c>
      9c:	e51b0018 	ldr	r0, [fp, #-24]	; 0xffffffe8
      a0:	e3a01000 	mov	r1, #0
      a4:	e5c01000 	strb	r1, [r0]
      a8:	e51b0004 	ldr	r0, [fp, #-4]
      ac:	e51b1014 	ldr	r1, [fp, #-20]	; 0xffffffec
      b0:	eb000031 	bl	17c <match>
      b4:	e3500000 	cmp	r0, #0
      b8:	0a00000e 	beq	f8 <grep+0xf8>
      bc:	eaffffff 	b	c0 <grep+0xc0>
      c0:	e51b0018 	ldr	r0, [fp, #-24]	; 0xffffffe8
      c4:	e3a0100a 	mov	r1, #10
      c8:	e5c01000 	strb	r1, [r0]
      cc:	e51b0014 	ldr	r0, [fp, #-20]	; 0xffffffec
      d0:	e51b1018 	ldr	r1, [fp, #-24]	; 0xffffffe8
      d4:	e2811001 	add	r1, r1, #1
      d8:	e0412000 	sub	r2, r1, r0
      dc:	e3a01001 	mov	r1, #1
      e0:	e58d0010 	str	r0, [sp, #16]
      e4:	e1a00001 	mov	r0, r1
      e8:	e59d1010 	ldr	r1, [sp, #16]
      ec:	eb0002bc 	bl	be4 <write>
      f0:	e58d000c 	str	r0, [sp, #12]
      f4:	eaffffff 	b	f8 <grep+0xf8>
      f8:	e51b0018 	ldr	r0, [fp, #-24]	; 0xffffffe8
      fc:	e2800001 	add	r0, r0, #1
     100:	e50b0014 	str	r0, [fp, #-20]	; 0xffffffec
     104:	eaffffdd 	b	80 <grep+0x80>
     108:	e51b0014 	ldr	r0, [fp, #-20]	; 0xffffffec
     10c:	e59f1064 	ldr	r1, [pc, #100]	; 178 <grep+0x178>
     110:	e1500001 	cmp	r0, r1
     114:	1a000003 	bne	128 <grep+0x128>
     118:	eaffffff 	b	11c <grep+0x11c>
     11c:	e3a00000 	mov	r0, #0
     120:	e50b0010 	str	r0, [fp, #-16]
     124:	eaffffff 	b	128 <grep+0x128>
     128:	e51b0010 	ldr	r0, [fp, #-16]
     12c:	e3500001 	cmp	r0, #1
     130:	ba00000d 	blt	16c <grep+0x16c>
     134:	eaffffff 	b	138 <grep+0x138>
     138:	e51b0014 	ldr	r0, [fp, #-20]	; 0xffffffec
     13c:	e59f1034 	ldr	r1, [pc, #52]	; 178 <grep+0x178>
     140:	e0402001 	sub	r2, r0, r1
     144:	e51b3010 	ldr	r3, [fp, #-16]
     148:	e0432002 	sub	r2, r3, r2
     14c:	e50b2010 	str	r2, [fp, #-16]
     150:	e51b2010 	ldr	r2, [fp, #-16]
     154:	e58d0008 	str	r0, [sp, #8]
     158:	e1a00001 	mov	r0, r1
     15c:	e59d1008 	ldr	r1, [sp, #8]
     160:	eb00024e 	bl	aa0 <memmove>
     164:	e58d0004 	str	r0, [sp, #4]
     168:	eaffffff 	b	16c <grep+0x16c>
     16c:	eaffffaf 	b	30 <grep+0x30>
     170:	e1a0d00b 	mov	sp, fp
     174:	e8bd8800 	pop	{fp, pc}
     178:	00001754 	.word	0x00001754

0000017c <match>:
     17c:	e92d4800 	push	{fp, lr}
     180:	e1a0b00d 	mov	fp, sp
     184:	e24dd018 	sub	sp, sp, #24
     188:	e1a02001 	mov	r2, r1
     18c:	e1a03000 	mov	r3, r0
     190:	e50b0008 	str	r0, [fp, #-8]
     194:	e58d100c 	str	r1, [sp, #12]
     198:	e51b0008 	ldr	r0, [fp, #-8]
     19c:	e5d00000 	ldrb	r0, [r0]
     1a0:	e350005e 	cmp	r0, #94	; 0x5e
     1a4:	e58d2008 	str	r2, [sp, #8]
     1a8:	e58d3004 	str	r3, [sp, #4]
     1ac:	1a000006 	bne	1cc <match+0x50>
     1b0:	eaffffff 	b	1b4 <match+0x38>
     1b4:	e51b0008 	ldr	r0, [fp, #-8]
     1b8:	e2800001 	add	r0, r0, #1
     1bc:	e59d100c 	ldr	r1, [sp, #12]
     1c0:	eb000061 	bl	34c <matchhere>
     1c4:	e50b0004 	str	r0, [fp, #-4]
     1c8:	ea000014 	b	220 <match+0xa4>
     1cc:	eaffffff 	b	1d0 <match+0x54>
     1d0:	e51b0008 	ldr	r0, [fp, #-8]
     1d4:	e59d100c 	ldr	r1, [sp, #12]
     1d8:	eb00005b 	bl	34c <matchhere>
     1dc:	e3500000 	cmp	r0, #0
     1e0:	0a000003 	beq	1f4 <match+0x78>
     1e4:	eaffffff 	b	1e8 <match+0x6c>
     1e8:	e3a00001 	mov	r0, #1
     1ec:	e50b0004 	str	r0, [fp, #-4]
     1f0:	ea00000a 	b	220 <match+0xa4>
     1f4:	eaffffff 	b	1f8 <match+0x7c>
     1f8:	e59d000c 	ldr	r0, [sp, #12]
     1fc:	e2801001 	add	r1, r0, #1
     200:	e58d100c 	str	r1, [sp, #12]
     204:	e5d00000 	ldrb	r0, [r0]
     208:	e3500000 	cmp	r0, #0
     20c:	1affffef 	bne	1d0 <match+0x54>
     210:	eaffffff 	b	214 <match+0x98>
     214:	e3a00000 	mov	r0, #0
     218:	e50b0004 	str	r0, [fp, #-4]
     21c:	eaffffff 	b	220 <match+0xa4>
     220:	e51b0004 	ldr	r0, [fp, #-4]
     224:	e1a0d00b 	mov	sp, fp
     228:	e8bd8800 	pop	{fp, pc}

0000022c <main>:
     22c:	e92d4800 	push	{fp, lr}
     230:	e1a0b00d 	mov	fp, sp
     234:	e24dd038 	sub	sp, sp, #56	; 0x38
     238:	e1a02001 	mov	r2, r1
     23c:	e1a03000 	mov	r3, r0
     240:	e3a0c000 	mov	ip, #0
     244:	e50bc004 	str	ip, [fp, #-4]
     248:	e50b0008 	str	r0, [fp, #-8]
     24c:	e50b100c 	str	r1, [fp, #-12]
     250:	e51b0008 	ldr	r0, [fp, #-8]
     254:	e3500001 	cmp	r0, #1
     258:	e58d201c 	str	r2, [sp, #28]
     25c:	e58d3018 	str	r3, [sp, #24]
     260:	ca000005 	bgt	27c <main+0x50>
     264:	eaffffff 	b	268 <main+0x3c>
     268:	e59f10d8 	ldr	r1, [pc, #216]	; 348 <main+0x11c>
     26c:	e3a00002 	mov	r0, #2
     270:	eb0002eb 	bl	e24 <printf>
     274:	eb000236 	bl	b54 <exit>
     278:	e58d0014 	str	r0, [sp, #20]
     27c:	e51b000c 	ldr	r0, [fp, #-12]
     280:	e5900004 	ldr	r0, [r0, #4]
     284:	e50b0018 	str	r0, [fp, #-24]	; 0xffffffe8
     288:	e51b0008 	ldr	r0, [fp, #-8]
     28c:	e3500002 	cmp	r0, #2
     290:	ca000005 	bgt	2ac <main+0x80>
     294:	eaffffff 	b	298 <main+0x6c>
     298:	e51b0018 	ldr	r0, [fp, #-24]	; 0xffffffe8
     29c:	e3a01000 	mov	r1, #0
     2a0:	ebffff56 	bl	0 <grep>
     2a4:	eb00022a 	bl	b54 <exit>
     2a8:	e58d0010 	str	r0, [sp, #16]
     2ac:	e3a00002 	mov	r0, #2
     2b0:	e50b0014 	str	r0, [fp, #-20]	; 0xffffffec
     2b4:	eaffffff 	b	2b8 <main+0x8c>
     2b8:	e51b0014 	ldr	r0, [fp, #-20]	; 0xffffffec
     2bc:	e51b1008 	ldr	r1, [fp, #-8]
     2c0:	e1500001 	cmp	r0, r1
     2c4:	aa00001c 	bge	33c <main+0x110>
     2c8:	eaffffff 	b	2cc <main+0xa0>
     2cc:	e51b000c 	ldr	r0, [fp, #-12]
     2d0:	e51b1014 	ldr	r1, [fp, #-20]	; 0xffffffec
     2d4:	e7900101 	ldr	r0, [r0, r1, lsl #2]
     2d8:	e3a01000 	mov	r1, #0
     2dc:	eb000264 	bl	c74 <open>
     2e0:	e50b0010 	str	r0, [fp, #-16]
     2e4:	e3500000 	cmp	r0, #0
     2e8:	aa000008 	bge	310 <main+0xe4>
     2ec:	eaffffff 	b	2f0 <main+0xc4>
     2f0:	e51b000c 	ldr	r0, [fp, #-12]
     2f4:	e51b1014 	ldr	r1, [fp, #-20]	; 0xffffffec
     2f8:	e7902101 	ldr	r2, [r0, r1, lsl #2]
     2fc:	e59f1040 	ldr	r1, [pc, #64]	; 344 <main+0x118>
     300:	e3a00001 	mov	r0, #1
     304:	eb0002c6 	bl	e24 <printf>
     308:	eb000211 	bl	b54 <exit>
     30c:	e58d000c 	str	r0, [sp, #12]
     310:	e51b0018 	ldr	r0, [fp, #-24]	; 0xffffffe8
     314:	e51b1010 	ldr	r1, [fp, #-16]
     318:	ebffff38 	bl	0 <grep>
     31c:	e51b0010 	ldr	r0, [fp, #-16]
     320:	eb000238 	bl	c08 <close>
     324:	e58d0008 	str	r0, [sp, #8]
     328:	eaffffff 	b	32c <main+0x100>
     32c:	e51b0014 	ldr	r0, [fp, #-20]	; 0xffffffec
     330:	e2800001 	add	r0, r0, #1
     334:	e50b0014 	str	r0, [fp, #-20]	; 0xffffffec
     338:	eaffffde 	b	2b8 <main+0x8c>
     33c:	eb000204 	bl	b54 <exit>
     340:	e58d0004 	str	r0, [sp, #4]
     344:	0000170c 	.word	0x0000170c
     348:	000016ec 	.word	0x000016ec

0000034c <matchhere>:
     34c:	e92d4800 	push	{fp, lr}
     350:	e1a0b00d 	mov	fp, sp
     354:	e24dd018 	sub	sp, sp, #24
     358:	e1a02001 	mov	r2, r1
     35c:	e1a03000 	mov	r3, r0
     360:	e50b0008 	str	r0, [fp, #-8]
     364:	e58d100c 	str	r1, [sp, #12]
     368:	e51b0008 	ldr	r0, [fp, #-8]
     36c:	e5d00000 	ldrb	r0, [r0]
     370:	e3500000 	cmp	r0, #0
     374:	e58d2008 	str	r2, [sp, #8]
     378:	e58d3004 	str	r3, [sp, #4]
     37c:	1a000003 	bne	390 <matchhere+0x44>
     380:	eaffffff 	b	384 <matchhere+0x38>
     384:	e3a00001 	mov	r0, #1
     388:	e50b0004 	str	r0, [fp, #-4]
     38c:	ea000039 	b	478 <matchhere+0x12c>
     390:	e51b0008 	ldr	r0, [fp, #-8]
     394:	e5d00001 	ldrb	r0, [r0, #1]
     398:	e350002a 	cmp	r0, #42	; 0x2a
     39c:	1a000009 	bne	3c8 <matchhere+0x7c>
     3a0:	eaffffff 	b	3a4 <matchhere+0x58>
     3a4:	e51b0008 	ldr	r0, [fp, #-8]
     3a8:	e4d01002 	ldrb	r1, [r0], #2
     3ac:	e59d200c 	ldr	r2, [sp, #12]
     3b0:	e58d0000 	str	r0, [sp]
     3b4:	e1a00001 	mov	r0, r1
     3b8:	e59d1000 	ldr	r1, [sp]
     3bc:	eb000030 	bl	484 <matchstar>
     3c0:	e50b0004 	str	r0, [fp, #-4]
     3c4:	ea00002b 	b	478 <matchhere+0x12c>
     3c8:	e51b0008 	ldr	r0, [fp, #-8]
     3cc:	e5d00000 	ldrb	r0, [r0]
     3d0:	e3500024 	cmp	r0, #36	; 0x24
     3d4:	1a00000c 	bne	40c <matchhere+0xc0>
     3d8:	eaffffff 	b	3dc <matchhere+0x90>
     3dc:	e51b0008 	ldr	r0, [fp, #-8]
     3e0:	e5d00001 	ldrb	r0, [r0, #1]
     3e4:	e3500000 	cmp	r0, #0
     3e8:	1a000007 	bne	40c <matchhere+0xc0>
     3ec:	eaffffff 	b	3f0 <matchhere+0xa4>
     3f0:	e59d000c 	ldr	r0, [sp, #12]
     3f4:	e5d00000 	ldrb	r0, [r0]
     3f8:	e3a01000 	mov	r1, #0
     3fc:	e3500000 	cmp	r0, #0
     400:	03a01001 	moveq	r1, #1
     404:	e50b1004 	str	r1, [fp, #-4]
     408:	ea00001a 	b	478 <matchhere+0x12c>
     40c:	e59d000c 	ldr	r0, [sp, #12]
     410:	e5d00000 	ldrb	r0, [r0]
     414:	e3500000 	cmp	r0, #0
     418:	0a000013 	beq	46c <matchhere+0x120>
     41c:	eaffffff 	b	420 <matchhere+0xd4>
     420:	e51b0008 	ldr	r0, [fp, #-8]
     424:	e5d00000 	ldrb	r0, [r0]
     428:	e350002e 	cmp	r0, #46	; 0x2e
     42c:	0a000007 	beq	450 <matchhere+0x104>
     430:	eaffffff 	b	434 <matchhere+0xe8>
     434:	e51b0008 	ldr	r0, [fp, #-8]
     438:	e5d00000 	ldrb	r0, [r0]
     43c:	e59d100c 	ldr	r1, [sp, #12]
     440:	e5d11000 	ldrb	r1, [r1]
     444:	e1500001 	cmp	r0, r1
     448:	1a000007 	bne	46c <matchhere+0x120>
     44c:	eaffffff 	b	450 <matchhere+0x104>
     450:	e51b0008 	ldr	r0, [fp, #-8]
     454:	e2800001 	add	r0, r0, #1
     458:	e59d100c 	ldr	r1, [sp, #12]
     45c:	e2811001 	add	r1, r1, #1
     460:	ebffffb9 	bl	34c <matchhere>
     464:	e50b0004 	str	r0, [fp, #-4]
     468:	ea000002 	b	478 <matchhere+0x12c>
     46c:	e3a00000 	mov	r0, #0
     470:	e50b0004 	str	r0, [fp, #-4]
     474:	eaffffff 	b	478 <matchhere+0x12c>
     478:	e51b0004 	ldr	r0, [fp, #-4]
     47c:	e1a0d00b 	mov	sp, fp
     480:	e8bd8800 	pop	{fp, pc}

00000484 <matchstar>:
    return 0;
}

// matchstar: search for c*re at beginning of text
int matchstar(int c, char *re, char *text)
{
     484:	e92d4800 	push	{fp, lr}
     488:	e1a0b00d 	mov	fp, sp
     48c:	e24dd028 	sub	sp, sp, #40	; 0x28
     490:	e1a03002 	mov	r3, r2
     494:	e1a0c001 	mov	ip, r1
     498:	e1a0e000 	mov	lr, r0
     49c:	e50b0008 	str	r0, [fp, #-8]
     4a0:	e50b100c 	str	r1, [fp, #-12]
     4a4:	e50b2010 	str	r2, [fp, #-16]
    do{  // a * matches zero or more instances
     4a8:	e58d3014 	str	r3, [sp, #20]
     4ac:	e58dc010 	str	ip, [sp, #16]
     4b0:	e58de00c 	str	lr, [sp, #12]
     4b4:	eaffffff 	b	4b8 <matchstar+0x34>
        if(matchhere(re, text))
     4b8:	e51b000c 	ldr	r0, [fp, #-12]
     4bc:	e51b1010 	ldr	r1, [fp, #-16]
     4c0:	ebffffa1 	bl	34c <matchhere>
     4c4:	e3500000 	cmp	r0, #0
     4c8:	0a000003 	beq	4dc <matchstar+0x58>
     4cc:	eaffffff 	b	4d0 <matchstar+0x4c>
            return 1;
     4d0:	e3a00001 	mov	r0, #1
     4d4:	e50b0004 	str	r0, [fp, #-4]
     4d8:	ea000021 	b	564 <matchstar+0xe0>
    }while(*text!='\0' && (*text++==c || c=='.'));
     4dc:	eaffffff 	b	4e0 <matchstar+0x5c>
     4e0:	e51b0010 	ldr	r0, [fp, #-16]
     4e4:	e5d00000 	ldrb	r0, [r0]
     4e8:	e3a01000 	mov	r1, #0
     4ec:	e3500000 	cmp	r0, #0
     4f0:	e58d1008 	str	r1, [sp, #8]
     4f4:	0a000013 	beq	548 <matchstar+0xc4>
     4f8:	eaffffff 	b	4fc <matchstar+0x78>
     4fc:	e51b0010 	ldr	r0, [fp, #-16]
     500:	e2801001 	add	r1, r0, #1
     504:	e50b1010 	str	r1, [fp, #-16]
     508:	e5d00000 	ldrb	r0, [r0]
     50c:	e51b1008 	ldr	r1, [fp, #-8]
     510:	e3a02001 	mov	r2, #1
     514:	e1500001 	cmp	r0, r1
     518:	e58d2004 	str	r2, [sp, #4]
     51c:	0a000006 	beq	53c <matchstar+0xb8>
     520:	eaffffff 	b	524 <matchstar+0xa0>
     524:	e51b0008 	ldr	r0, [fp, #-8]
     528:	e3a01000 	mov	r1, #0
     52c:	e350002e 	cmp	r0, #46	; 0x2e
     530:	03a01001 	moveq	r1, #1
     534:	e58d1004 	str	r1, [sp, #4]
     538:	eaffffff 	b	53c <matchstar+0xb8>
     53c:	e59d0004 	ldr	r0, [sp, #4]
     540:	e58d0008 	str	r0, [sp, #8]
     544:	eaffffff 	b	548 <matchstar+0xc4>
     548:	e59d0008 	ldr	r0, [sp, #8]
     54c:	e3100001 	tst	r0, #1
     550:	1affffd8 	bne	4b8 <matchstar+0x34>
     554:	eaffffff 	b	558 <matchstar+0xd4>
    return 0;
     558:	e3a00000 	mov	r0, #0
     55c:	e50b0004 	str	r0, [fp, #-4]
     560:	eaffffff 	b	564 <matchstar+0xe0>
}
     564:	e51b0004 	ldr	r0, [fp, #-4]
     568:	e1a0d00b 	mov	sp, fp
     56c:	e8bd8800 	pop	{fp, pc}

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

char*
strcpy(char *s, char *t)
{
     570:	e24dd014 	sub	sp, sp, #20
     574:	e1a02001 	mov	r2, r1
     578:	e1a03000 	mov	r3, r0
     57c:	e58d0010 	str	r0, [sp, #16]
     580:	e58d100c 	str	r1, [sp, #12]
     584:	e59d0010 	ldr	r0, [sp, #16]
     588:	e58d0008 	str	r0, [sp, #8]
     58c:	e58d2004 	str	r2, [sp, #4]
     590:	e58d3000 	str	r3, [sp]
     594:	eaffffff 	b	598 <strcpy+0x28>
     598:	e59d000c 	ldr	r0, [sp, #12]
     59c:	e2801001 	add	r1, r0, #1
     5a0:	e58d100c 	str	r1, [sp, #12]
     5a4:	e5d00000 	ldrb	r0, [r0]
     5a8:	e59d1010 	ldr	r1, [sp, #16]
     5ac:	e2812001 	add	r2, r1, #1
     5b0:	e58d2010 	str	r2, [sp, #16]
     5b4:	e5c10000 	strb	r0, [r1]
     5b8:	e3500000 	cmp	r0, #0
     5bc:	0a000001 	beq	5c8 <strcpy+0x58>
     5c0:	eaffffff 	b	5c4 <strcpy+0x54>
     5c4:	eafffff3 	b	598 <strcpy+0x28>
     5c8:	e59d0008 	ldr	r0, [sp, #8]
     5cc:	e28dd014 	add	sp, sp, #20
     5d0:	e12fff1e 	bx	lr

000005d4 <strcmp>:
     5d4:	e24dd014 	sub	sp, sp, #20
     5d8:	e1a02001 	mov	r2, r1
     5dc:	e1a03000 	mov	r3, r0
     5e0:	e58d0010 	str	r0, [sp, #16]
     5e4:	e58d100c 	str	r1, [sp, #12]
     5e8:	e58d2008 	str	r2, [sp, #8]
     5ec:	e58d3004 	str	r3, [sp, #4]
     5f0:	eaffffff 	b	5f4 <strcmp+0x20>
     5f4:	e59d0010 	ldr	r0, [sp, #16]
     5f8:	e5d00000 	ldrb	r0, [r0]
     5fc:	e3a01000 	mov	r1, #0
     600:	e3500000 	cmp	r0, #0
     604:	e58d1000 	str	r1, [sp]
     608:	0a000009 	beq	634 <strcmp+0x60>
     60c:	eaffffff 	b	610 <strcmp+0x3c>
     610:	e59d0010 	ldr	r0, [sp, #16]
     614:	e5d00000 	ldrb	r0, [r0]
     618:	e59d100c 	ldr	r1, [sp, #12]
     61c:	e5d11000 	ldrb	r1, [r1]
     620:	e3a02000 	mov	r2, #0
     624:	e1500001 	cmp	r0, r1
     628:	03a02001 	moveq	r2, #1
     62c:	e58d2000 	str	r2, [sp]
     630:	eaffffff 	b	634 <strcmp+0x60>
     634:	e59d0000 	ldr	r0, [sp]
     638:	e3100001 	tst	r0, #1
     63c:	0a000007 	beq	660 <strcmp+0x8c>
     640:	eaffffff 	b	644 <strcmp+0x70>
     644:	e59d0010 	ldr	r0, [sp, #16]
     648:	e2800001 	add	r0, r0, #1
     64c:	e58d0010 	str	r0, [sp, #16]
     650:	e59d000c 	ldr	r0, [sp, #12]
     654:	e2800001 	add	r0, r0, #1
     658:	e58d000c 	str	r0, [sp, #12]
     65c:	eaffffe4 	b	5f4 <strcmp+0x20>
     660:	e59d0010 	ldr	r0, [sp, #16]
     664:	e5d00000 	ldrb	r0, [r0]
     668:	e59d100c 	ldr	r1, [sp, #12]
     66c:	e5d11000 	ldrb	r1, [r1]
     670:	e0400001 	sub	r0, r0, r1
     674:	e28dd014 	add	sp, sp, #20
     678:	e12fff1e 	bx	lr

0000067c <strlen>:
     67c:	e24dd00c 	sub	sp, sp, #12
     680:	e1a01000 	mov	r1, r0
     684:	e58d0008 	str	r0, [sp, #8]
     688:	e3a00000 	mov	r0, #0
     68c:	e58d0004 	str	r0, [sp, #4]
     690:	e58d1000 	str	r1, [sp]
     694:	eaffffff 	b	698 <strlen+0x1c>
     698:	e59d0008 	ldr	r0, [sp, #8]
     69c:	e59d1004 	ldr	r1, [sp, #4]
     6a0:	e7d00001 	ldrb	r0, [r0, r1]
     6a4:	e3500000 	cmp	r0, #0
     6a8:	0a000005 	beq	6c4 <strlen+0x48>
     6ac:	eaffffff 	b	6b0 <strlen+0x34>
     6b0:	eaffffff 	b	6b4 <strlen+0x38>
     6b4:	e59d0004 	ldr	r0, [sp, #4]
     6b8:	e2800001 	add	r0, r0, #1
     6bc:	e58d0004 	str	r0, [sp, #4]
     6c0:	eafffff4 	b	698 <strlen+0x1c>
     6c4:	e59d0004 	ldr	r0, [sp, #4]
     6c8:	e28dd00c 	add	sp, sp, #12
     6cc:	e12fff1e 	bx	lr

000006d0 <memset>:
     6d0:	e92d4800 	push	{fp, lr}
     6d4:	e1a0b00d 	mov	fp, sp
     6d8:	e24dd02c 	sub	sp, sp, #44	; 0x2c
     6dc:	e1a03002 	mov	r3, r2
     6e0:	e1a0c001 	mov	ip, r1
     6e4:	e1a0e000 	mov	lr, r0
     6e8:	e50b0004 	str	r0, [fp, #-4]
     6ec:	e50b1008 	str	r1, [fp, #-8]
     6f0:	e50b200c 	str	r2, [fp, #-12]
     6f4:	e51b0004 	ldr	r0, [fp, #-4]
     6f8:	e50b0010 	str	r0, [fp, #-16]
     6fc:	e51b0008 	ldr	r0, [fp, #-8]
     700:	e54b0011 	strb	r0, [fp, #-17]	; 0xffffffef
     704:	e55b0011 	ldrb	r0, [fp, #-17]	; 0xffffffef
     708:	e1a01c00 	lsl	r1, r0, #24
     70c:	e1811800 	orr	r1, r1, r0, lsl #16
     710:	e1811400 	orr	r1, r1, r0, lsl #8
     714:	e1810000 	orr	r0, r1, r0
     718:	e58d0014 	str	r0, [sp, #20]
     71c:	e58d300c 	str	r3, [sp, #12]
     720:	e58dc008 	str	ip, [sp, #8]
     724:	e58de004 	str	lr, [sp, #4]
     728:	eaffffff 	b	72c <memset+0x5c>
     72c:	e51b000c 	ldr	r0, [fp, #-12]
     730:	e3a01000 	mov	r1, #0
     734:	e3500000 	cmp	r0, #0
     738:	e58d1000 	str	r1, [sp]
     73c:	0a000006 	beq	75c <memset+0x8c>
     740:	eaffffff 	b	744 <memset+0x74>
     744:	e55b0010 	ldrb	r0, [fp, #-16]
     748:	e2000003 	and	r0, r0, #3
     74c:	e3500000 	cmp	r0, #0
     750:	13a00001 	movne	r0, #1
     754:	e58d0000 	str	r0, [sp]
     758:	eaffffff 	b	75c <memset+0x8c>
     75c:	e59d0000 	ldr	r0, [sp]
     760:	e3100001 	tst	r0, #1
     764:	0a00000b 	beq	798 <memset+0xc8>
     768:	eaffffff 	b	76c <memset+0x9c>
     76c:	e55b0011 	ldrb	r0, [fp, #-17]	; 0xffffffef
     770:	e51b1010 	ldr	r1, [fp, #-16]
     774:	e5c10000 	strb	r0, [r1]
     778:	eaffffff 	b	77c <memset+0xac>
     77c:	e51b000c 	ldr	r0, [fp, #-12]
     780:	e2400001 	sub	r0, r0, #1
     784:	e50b000c 	str	r0, [fp, #-12]
     788:	e51b0010 	ldr	r0, [fp, #-16]
     78c:	e2800001 	add	r0, r0, #1
     790:	e50b0010 	str	r0, [fp, #-16]
     794:	eaffffe4 	b	72c <memset+0x5c>
     798:	e51b0010 	ldr	r0, [fp, #-16]
     79c:	e58d0010 	str	r0, [sp, #16]
     7a0:	eaffffff 	b	7a4 <memset+0xd4>
     7a4:	e51b000c 	ldr	r0, [fp, #-12]
     7a8:	e3500004 	cmp	r0, #4
     7ac:	3a00000b 	bcc	7e0 <memset+0x110>
     7b0:	eaffffff 	b	7b4 <memset+0xe4>
     7b4:	e59d0014 	ldr	r0, [sp, #20]
     7b8:	e59d1010 	ldr	r1, [sp, #16]
     7bc:	e5810000 	str	r0, [r1]
     7c0:	eaffffff 	b	7c4 <memset+0xf4>
     7c4:	e51b000c 	ldr	r0, [fp, #-12]
     7c8:	e2400004 	sub	r0, r0, #4
     7cc:	e50b000c 	str	r0, [fp, #-12]
     7d0:	e59d0010 	ldr	r0, [sp, #16]
     7d4:	e2800004 	add	r0, r0, #4
     7d8:	e58d0010 	str	r0, [sp, #16]
     7dc:	eafffff0 	b	7a4 <memset+0xd4>
     7e0:	e59d0010 	ldr	r0, [sp, #16]
     7e4:	e50b0010 	str	r0, [fp, #-16]
     7e8:	eaffffff 	b	7ec <memset+0x11c>
     7ec:	e51b000c 	ldr	r0, [fp, #-12]
     7f0:	e3500000 	cmp	r0, #0
     7f4:	0a00000b 	beq	828 <memset+0x158>
     7f8:	eaffffff 	b	7fc <memset+0x12c>
     7fc:	e55b0011 	ldrb	r0, [fp, #-17]	; 0xffffffef
     800:	e51b1010 	ldr	r1, [fp, #-16]
     804:	e5c10000 	strb	r0, [r1]
     808:	eaffffff 	b	80c <memset+0x13c>
     80c:	e51b000c 	ldr	r0, [fp, #-12]
     810:	e2400001 	sub	r0, r0, #1
     814:	e50b000c 	str	r0, [fp, #-12]
     818:	e51b0010 	ldr	r0, [fp, #-16]
     81c:	e2800001 	add	r0, r0, #1
     820:	e50b0010 	str	r0, [fp, #-16]
     824:	eafffff0 	b	7ec <memset+0x11c>
     828:	e51b0004 	ldr	r0, [fp, #-4]
     82c:	e1a0d00b 	mov	sp, fp
     830:	e8bd8800 	pop	{fp, pc}

00000834 <strchr>:
     834:	e24dd014 	sub	sp, sp, #20
     838:	e1a02001 	mov	r2, r1
     83c:	e1a03000 	mov	r3, r0
     840:	e58d000c 	str	r0, [sp, #12]
     844:	e5cd100b 	strb	r1, [sp, #11]
     848:	e58d2004 	str	r2, [sp, #4]
     84c:	e58d3000 	str	r3, [sp]
     850:	eaffffff 	b	854 <strchr+0x20>
     854:	e59d000c 	ldr	r0, [sp, #12]
     858:	e5d00000 	ldrb	r0, [r0]
     85c:	e3500000 	cmp	r0, #0
     860:	0a00000e 	beq	8a0 <strchr+0x6c>
     864:	eaffffff 	b	868 <strchr+0x34>
     868:	e59d000c 	ldr	r0, [sp, #12]
     86c:	e5d00000 	ldrb	r0, [r0]
     870:	e5dd100b 	ldrb	r1, [sp, #11]
     874:	e1500001 	cmp	r0, r1
     878:	1a000003 	bne	88c <strchr+0x58>
     87c:	eaffffff 	b	880 <strchr+0x4c>
     880:	e59d000c 	ldr	r0, [sp, #12]
     884:	e58d0010 	str	r0, [sp, #16]
     888:	ea000007 	b	8ac <strchr+0x78>
     88c:	eaffffff 	b	890 <strchr+0x5c>
     890:	e59d000c 	ldr	r0, [sp, #12]
     894:	e2800001 	add	r0, r0, #1
     898:	e58d000c 	str	r0, [sp, #12]
     89c:	eaffffec 	b	854 <strchr+0x20>
     8a0:	e3a00000 	mov	r0, #0
     8a4:	e58d0010 	str	r0, [sp, #16]
     8a8:	eaffffff 	b	8ac <strchr+0x78>
     8ac:	e59d0010 	ldr	r0, [sp, #16]
     8b0:	e28dd014 	add	sp, sp, #20
     8b4:	e12fff1e 	bx	lr

000008b8 <gets>:
     8b8:	e92d4800 	push	{fp, lr}
     8bc:	e1a0b00d 	mov	fp, sp
     8c0:	e24dd020 	sub	sp, sp, #32
     8c4:	e1a02001 	mov	r2, r1
     8c8:	e1a03000 	mov	r3, r0
     8cc:	e50b0004 	str	r0, [fp, #-4]
     8d0:	e50b1008 	str	r1, [fp, #-8]
     8d4:	e3a00000 	mov	r0, #0
     8d8:	e50b000c 	str	r0, [fp, #-12]
     8dc:	e58d2008 	str	r2, [sp, #8]
     8e0:	e58d3004 	str	r3, [sp, #4]
     8e4:	eaffffff 	b	8e8 <gets+0x30>
     8e8:	e51b000c 	ldr	r0, [fp, #-12]
     8ec:	e2800001 	add	r0, r0, #1
     8f0:	e51b1008 	ldr	r1, [fp, #-8]
     8f4:	e1500001 	cmp	r0, r1
     8f8:	aa00001a 	bge	968 <gets+0xb0>
     8fc:	eaffffff 	b	900 <gets+0x48>
     900:	e3a00000 	mov	r0, #0
     904:	e28d100f 	add	r1, sp, #15
     908:	e3a02001 	mov	r2, #1
     90c:	eb0000ab 	bl	bc0 <read>
     910:	e58d0010 	str	r0, [sp, #16]
     914:	e59d0010 	ldr	r0, [sp, #16]
     918:	e3500000 	cmp	r0, #0
     91c:	ca000001 	bgt	928 <gets+0x70>
     920:	eaffffff 	b	924 <gets+0x6c>
     924:	ea00000f 	b	968 <gets+0xb0>
     928:	e5dd000f 	ldrb	r0, [sp, #15]
     92c:	e51b1004 	ldr	r1, [fp, #-4]
     930:	e51b200c 	ldr	r2, [fp, #-12]
     934:	e2823001 	add	r3, r2, #1
     938:	e50b300c 	str	r3, [fp, #-12]
     93c:	e7c10002 	strb	r0, [r1, r2]
     940:	e5dd000f 	ldrb	r0, [sp, #15]
     944:	e350000a 	cmp	r0, #10
     948:	0a000004 	beq	960 <gets+0xa8>
     94c:	eaffffff 	b	950 <gets+0x98>
     950:	e5dd000f 	ldrb	r0, [sp, #15]
     954:	e350000d 	cmp	r0, #13
     958:	1a000001 	bne	964 <gets+0xac>
     95c:	eaffffff 	b	960 <gets+0xa8>
     960:	ea000000 	b	968 <gets+0xb0>
     964:	eaffffdf 	b	8e8 <gets+0x30>
     968:	e51b0004 	ldr	r0, [fp, #-4]
     96c:	e51b100c 	ldr	r1, [fp, #-12]
     970:	e3a02000 	mov	r2, #0
     974:	e7c02001 	strb	r2, [r0, r1]
     978:	e51b0004 	ldr	r0, [fp, #-4]
     97c:	e1a0d00b 	mov	sp, fp
     980:	e8bd8800 	pop	{fp, pc}

00000984 <stat>:
     984:	e92d4800 	push	{fp, lr}
     988:	e1a0b00d 	mov	fp, sp
     98c:	e24dd020 	sub	sp, sp, #32
     990:	e1a02001 	mov	r2, r1
     994:	e1a03000 	mov	r3, r0
     998:	e50b0008 	str	r0, [fp, #-8]
     99c:	e50b100c 	str	r1, [fp, #-12]
     9a0:	e51b0008 	ldr	r0, [fp, #-8]
     9a4:	e3a01000 	mov	r1, #0
     9a8:	e58d2008 	str	r2, [sp, #8]
     9ac:	e58d3004 	str	r3, [sp, #4]
     9b0:	eb0000af 	bl	c74 <open>
     9b4:	e58d0010 	str	r0, [sp, #16]
     9b8:	e59d0010 	ldr	r0, [sp, #16]
     9bc:	e3500000 	cmp	r0, #0
     9c0:	aa000003 	bge	9d4 <stat+0x50>
     9c4:	eaffffff 	b	9c8 <stat+0x44>
     9c8:	e3e00000 	mvn	r0, #0
     9cc:	e50b0004 	str	r0, [fp, #-4]
     9d0:	ea000009 	b	9fc <stat+0x78>
     9d4:	e59d0010 	ldr	r0, [sp, #16]
     9d8:	e51b100c 	ldr	r1, [fp, #-12]
     9dc:	eb0000bf 	bl	ce0 <fstat>
     9e0:	e58d000c 	str	r0, [sp, #12]
     9e4:	e59d0010 	ldr	r0, [sp, #16]
     9e8:	eb000086 	bl	c08 <close>
     9ec:	e59d100c 	ldr	r1, [sp, #12]
     9f0:	e50b1004 	str	r1, [fp, #-4]
     9f4:	e58d0000 	str	r0, [sp]
     9f8:	eaffffff 	b	9fc <stat+0x78>
     9fc:	e51b0004 	ldr	r0, [fp, #-4]
     a00:	e1a0d00b 	mov	sp, fp
     a04:	e8bd8800 	pop	{fp, pc}

00000a08 <atoi>:
     a08:	e24dd010 	sub	sp, sp, #16
     a0c:	e1a01000 	mov	r1, r0
     a10:	e58d000c 	str	r0, [sp, #12]
     a14:	e3a00000 	mov	r0, #0
     a18:	e58d0008 	str	r0, [sp, #8]
     a1c:	e58d1004 	str	r1, [sp, #4]
     a20:	eaffffff 	b	a24 <atoi+0x1c>
     a24:	e59d000c 	ldr	r0, [sp, #12]
     a28:	e5d00000 	ldrb	r0, [r0]
     a2c:	e3a01000 	mov	r1, #0
     a30:	e3500030 	cmp	r0, #48	; 0x30
     a34:	e58d1000 	str	r1, [sp]
     a38:	ba000007 	blt	a5c <atoi+0x54>
     a3c:	eaffffff 	b	a40 <atoi+0x38>
     a40:	e59d000c 	ldr	r0, [sp, #12]
     a44:	e5d00000 	ldrb	r0, [r0]
     a48:	e3a01000 	mov	r1, #0
     a4c:	e350003a 	cmp	r0, #58	; 0x3a
     a50:	b3a01001 	movlt	r1, #1
     a54:	e58d1000 	str	r1, [sp]
     a58:	eaffffff 	b	a5c <atoi+0x54>
     a5c:	e59d0000 	ldr	r0, [sp]
     a60:	e3100001 	tst	r0, #1
     a64:	0a00000a 	beq	a94 <atoi+0x8c>
     a68:	eaffffff 	b	a6c <atoi+0x64>
     a6c:	e59d0008 	ldr	r0, [sp, #8]
     a70:	e0800100 	add	r0, r0, r0, lsl #2
     a74:	e59d100c 	ldr	r1, [sp, #12]
     a78:	e2812001 	add	r2, r1, #1
     a7c:	e58d200c 	str	r2, [sp, #12]
     a80:	e5d11000 	ldrb	r1, [r1]
     a84:	e0810080 	add	r0, r1, r0, lsl #1
     a88:	e2400030 	sub	r0, r0, #48	; 0x30
     a8c:	e58d0008 	str	r0, [sp, #8]
     a90:	eaffffe3 	b	a24 <atoi+0x1c>
     a94:	e59d0008 	ldr	r0, [sp, #8]
     a98:	e28dd010 	add	sp, sp, #16
     a9c:	e12fff1e 	bx	lr

00000aa0 <memmove>:
     aa0:	e92d4800 	push	{fp, lr}
     aa4:	e1a0b00d 	mov	fp, sp
     aa8:	e24dd020 	sub	sp, sp, #32
     aac:	e1a03002 	mov	r3, r2
     ab0:	e1a0c001 	mov	ip, r1
     ab4:	e1a0e000 	mov	lr, r0
     ab8:	e50b0004 	str	r0, [fp, #-4]
     abc:	e50b1008 	str	r1, [fp, #-8]
     ac0:	e50b200c 	str	r2, [fp, #-12]
     ac4:	e51b0004 	ldr	r0, [fp, #-4]
     ac8:	e58d0010 	str	r0, [sp, #16]
     acc:	e51b0008 	ldr	r0, [fp, #-8]
     ad0:	e58d000c 	str	r0, [sp, #12]
     ad4:	e58d3008 	str	r3, [sp, #8]
     ad8:	e58dc004 	str	ip, [sp, #4]
     adc:	e58de000 	str	lr, [sp]
     ae0:	eaffffff 	b	ae4 <memmove+0x44>
     ae4:	e51b000c 	ldr	r0, [fp, #-12]
     ae8:	e2401001 	sub	r1, r0, #1
     aec:	e50b100c 	str	r1, [fp, #-12]
     af0:	e3500001 	cmp	r0, #1
     af4:	ba000009 	blt	b20 <memmove+0x80>
     af8:	eaffffff 	b	afc <memmove+0x5c>
     afc:	e59d000c 	ldr	r0, [sp, #12]
     b00:	e2801001 	add	r1, r0, #1
     b04:	e58d100c 	str	r1, [sp, #12]
     b08:	e5d00000 	ldrb	r0, [r0]
     b0c:	e59d1010 	ldr	r1, [sp, #16]
     b10:	e2812001 	add	r2, r1, #1
     b14:	e58d2010 	str	r2, [sp, #16]
     b18:	e5c10000 	strb	r0, [r1]
     b1c:	eafffff0 	b	ae4 <memmove+0x44>
     b20:	e51b0004 	ldr	r0, [fp, #-4]
     b24:	e1a0d00b 	mov	sp, fp
     b28:	e8bd8800 	pop	{fp, pc}

00000b2c <raise>:
    return vdst;
}

void
raise()
{}
     b2c:	e12fff1e 	bx	lr

00000b30 <fork>:
     b30:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
     b34:	e1a04003 	mov	r4, r3
     b38:	e1a03002 	mov	r3, r2
     b3c:	e1a02001 	mov	r2, r1
     b40:	e1a01000 	mov	r1, r0
     b44:	e3a00001 	mov	r0, #1
     b48:	ef000000 	svc	0x00000000
     b4c:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
     b50:	e12fff1e 	bx	lr

00000b54 <exit>:
     b54:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
     b58:	e1a04003 	mov	r4, r3
     b5c:	e1a03002 	mov	r3, r2
     b60:	e1a02001 	mov	r2, r1
     b64:	e1a01000 	mov	r1, r0
     b68:	e3a00002 	mov	r0, #2
     b6c:	ef000000 	svc	0x00000000
     b70:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
     b74:	e12fff1e 	bx	lr

00000b78 <wait>:
     b78:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
     b7c:	e1a04003 	mov	r4, r3
     b80:	e1a03002 	mov	r3, r2
     b84:	e1a02001 	mov	r2, r1
     b88:	e1a01000 	mov	r1, r0
     b8c:	e3a00003 	mov	r0, #3
     b90:	ef000000 	svc	0x00000000
     b94:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
     b98:	e12fff1e 	bx	lr

00000b9c <pipe>:
     b9c:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
     ba0:	e1a04003 	mov	r4, r3
     ba4:	e1a03002 	mov	r3, r2
     ba8:	e1a02001 	mov	r2, r1
     bac:	e1a01000 	mov	r1, r0
     bb0:	e3a00004 	mov	r0, #4
     bb4:	ef000000 	svc	0x00000000
     bb8:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
     bbc:	e12fff1e 	bx	lr

00000bc0 <read>:
     bc0:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
     bc4:	e1a04003 	mov	r4, r3
     bc8:	e1a03002 	mov	r3, r2
     bcc:	e1a02001 	mov	r2, r1
     bd0:	e1a01000 	mov	r1, r0
     bd4:	e3a00005 	mov	r0, #5
     bd8:	ef000000 	svc	0x00000000
     bdc:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
     be0:	e12fff1e 	bx	lr

00000be4 <write>:
     be4:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
     be8:	e1a04003 	mov	r4, r3
     bec:	e1a03002 	mov	r3, r2
     bf0:	e1a02001 	mov	r2, r1
     bf4:	e1a01000 	mov	r1, r0
     bf8:	e3a00010 	mov	r0, #16
     bfc:	ef000000 	svc	0x00000000
     c00:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
     c04:	e12fff1e 	bx	lr

00000c08 <close>:
     c08:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
     c0c:	e1a04003 	mov	r4, r3
     c10:	e1a03002 	mov	r3, r2
     c14:	e1a02001 	mov	r2, r1
     c18:	e1a01000 	mov	r1, r0
     c1c:	e3a00015 	mov	r0, #21
     c20:	ef000000 	svc	0x00000000
     c24:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
     c28:	e12fff1e 	bx	lr

00000c2c <kill>:
     c2c:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
     c30:	e1a04003 	mov	r4, r3
     c34:	e1a03002 	mov	r3, r2
     c38:	e1a02001 	mov	r2, r1
     c3c:	e1a01000 	mov	r1, r0
     c40:	e3a00006 	mov	r0, #6
     c44:	ef000000 	svc	0x00000000
     c48:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
     c4c:	e12fff1e 	bx	lr

00000c50 <exec>:
     c50:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
     c54:	e1a04003 	mov	r4, r3
     c58:	e1a03002 	mov	r3, r2
     c5c:	e1a02001 	mov	r2, r1
     c60:	e1a01000 	mov	r1, r0
     c64:	e3a00007 	mov	r0, #7
     c68:	ef000000 	svc	0x00000000
     c6c:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
     c70:	e12fff1e 	bx	lr

00000c74 <open>:
     c74:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
     c78:	e1a04003 	mov	r4, r3
     c7c:	e1a03002 	mov	r3, r2
     c80:	e1a02001 	mov	r2, r1
     c84:	e1a01000 	mov	r1, r0
     c88:	e3a0000f 	mov	r0, #15
     c8c:	ef000000 	svc	0x00000000
     c90:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
     c94:	e12fff1e 	bx	lr

00000c98 <mknod>:
     c98:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
     c9c:	e1a04003 	mov	r4, r3
     ca0:	e1a03002 	mov	r3, r2
     ca4:	e1a02001 	mov	r2, r1
     ca8:	e1a01000 	mov	r1, r0
     cac:	e3a00011 	mov	r0, #17
     cb0:	ef000000 	svc	0x00000000
     cb4:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
     cb8:	e12fff1e 	bx	lr

00000cbc <unlink>:
     cbc:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
     cc0:	e1a04003 	mov	r4, r3
     cc4:	e1a03002 	mov	r3, r2
     cc8:	e1a02001 	mov	r2, r1
     ccc:	e1a01000 	mov	r1, r0
     cd0:	e3a00012 	mov	r0, #18
     cd4:	ef000000 	svc	0x00000000
     cd8:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
     cdc:	e12fff1e 	bx	lr

00000ce0 <fstat>:
     ce0:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
     ce4:	e1a04003 	mov	r4, r3
     ce8:	e1a03002 	mov	r3, r2
     cec:	e1a02001 	mov	r2, r1
     cf0:	e1a01000 	mov	r1, r0
     cf4:	e3a00008 	mov	r0, #8
     cf8:	ef000000 	svc	0x00000000
     cfc:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
     d00:	e12fff1e 	bx	lr

00000d04 <link>:
     d04:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
     d08:	e1a04003 	mov	r4, r3
     d0c:	e1a03002 	mov	r3, r2
     d10:	e1a02001 	mov	r2, r1
     d14:	e1a01000 	mov	r1, r0
     d18:	e3a00013 	mov	r0, #19
     d1c:	ef000000 	svc	0x00000000
     d20:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
     d24:	e12fff1e 	bx	lr

00000d28 <mkdir>:
     d28:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
     d2c:	e1a04003 	mov	r4, r3
     d30:	e1a03002 	mov	r3, r2
     d34:	e1a02001 	mov	r2, r1
     d38:	e1a01000 	mov	r1, r0
     d3c:	e3a00014 	mov	r0, #20
     d40:	ef000000 	svc	0x00000000
     d44:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
     d48:	e12fff1e 	bx	lr

00000d4c <chdir>:
     d4c:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
     d50:	e1a04003 	mov	r4, r3
     d54:	e1a03002 	mov	r3, r2
     d58:	e1a02001 	mov	r2, r1
     d5c:	e1a01000 	mov	r1, r0
     d60:	e3a00009 	mov	r0, #9
     d64:	ef000000 	svc	0x00000000
     d68:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
     d6c:	e12fff1e 	bx	lr

00000d70 <dup>:
     d70:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
     d74:	e1a04003 	mov	r4, r3
     d78:	e1a03002 	mov	r3, r2
     d7c:	e1a02001 	mov	r2, r1
     d80:	e1a01000 	mov	r1, r0
     d84:	e3a0000a 	mov	r0, #10
     d88:	ef000000 	svc	0x00000000
     d8c:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
     d90:	e12fff1e 	bx	lr

00000d94 <getpid>:
     d94:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
     d98:	e1a04003 	mov	r4, r3
     d9c:	e1a03002 	mov	r3, r2
     da0:	e1a02001 	mov	r2, r1
     da4:	e1a01000 	mov	r1, r0
     da8:	e3a0000b 	mov	r0, #11
     dac:	ef000000 	svc	0x00000000
     db0:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
     db4:	e12fff1e 	bx	lr

00000db8 <sbrk>:
     db8:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
     dbc:	e1a04003 	mov	r4, r3
     dc0:	e1a03002 	mov	r3, r2
     dc4:	e1a02001 	mov	r2, r1
     dc8:	e1a01000 	mov	r1, r0
     dcc:	e3a0000c 	mov	r0, #12
     dd0:	ef000000 	svc	0x00000000
     dd4:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
     dd8:	e12fff1e 	bx	lr

00000ddc <sleep>:
     ddc:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
     de0:	e1a04003 	mov	r4, r3
     de4:	e1a03002 	mov	r3, r2
     de8:	e1a02001 	mov	r2, r1
     dec:	e1a01000 	mov	r1, r0
     df0:	e3a0000d 	mov	r0, #13
     df4:	ef000000 	svc	0x00000000
     df8:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
     dfc:	e12fff1e 	bx	lr

00000e00 <uptime>:
     e00:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)
     e04:	e1a04003 	mov	r4, r3
     e08:	e1a03002 	mov	r3, r2
     e0c:	e1a02001 	mov	r2, r1
     e10:	e1a01000 	mov	r1, r0
     e14:	e3a0000e 	mov	r0, #14
     e18:	ef000000 	svc	0x00000000
     e1c:	e49d4004 	pop	{r4}		; (ldr r4, [sp], #4)
     e20:	e12fff1e 	bx	lr

00000e24 <printf>:
}

// Print to the given fd. Only understands %d, %x, %p, %s.
void
printf(int fd, char *fmt, ...)
{
     e24:	e92d4800 	push	{fp, lr}
     e28:	e1a0b00d 	mov	fp, sp
     e2c:	e24dd028 	sub	sp, sp, #40	; 0x28
     e30:	e1a02001 	mov	r2, r1
     e34:	e1a03000 	mov	r3, r0
     e38:	e50b0004 	str	r0, [fp, #-4]
     e3c:	e50b1008 	str	r1, [fp, #-8]
     e40:	e3a00000 	mov	r0, #0
     e44:	e58d0010 	str	r0, [sp, #16]
     e48:	e24b1008 	sub	r1, fp, #8
     e4c:	e2811004 	add	r1, r1, #4
     e50:	e58d100c 	str	r1, [sp, #12]
     e54:	e58d0014 	str	r0, [sp, #20]
     e58:	e58d2008 	str	r2, [sp, #8]
     e5c:	e58d3004 	str	r3, [sp, #4]
     e60:	eaffffff 	b	e64 <printf+0x40>
     e64:	e51b0008 	ldr	r0, [fp, #-8]
     e68:	e59d1014 	ldr	r1, [sp, #20]
     e6c:	e7d00001 	ldrb	r0, [r0, r1]
     e70:	e3500000 	cmp	r0, #0
     e74:	0a00007e 	beq	1074 <printf+0x250>
     e78:	eaffffff 	b	e7c <printf+0x58>
     e7c:	e51b0008 	ldr	r0, [fp, #-8]
     e80:	e59d1014 	ldr	r1, [sp, #20]
     e84:	e7d00001 	ldrb	r0, [r0, r1]
     e88:	e50b0010 	str	r0, [fp, #-16]
     e8c:	e59d0010 	ldr	r0, [sp, #16]
     e90:	e3500000 	cmp	r0, #0
     e94:	1a00000c 	bne	ecc <printf+0xa8>
     e98:	eaffffff 	b	e9c <printf+0x78>
     e9c:	e51b0010 	ldr	r0, [fp, #-16]
     ea0:	e3500025 	cmp	r0, #37	; 0x25
     ea4:	1a000003 	bne	eb8 <printf+0x94>
     ea8:	eaffffff 	b	eac <printf+0x88>
     eac:	e3a00025 	mov	r0, #37	; 0x25
     eb0:	e58d0010 	str	r0, [sp, #16]
     eb4:	ea000003 	b	ec8 <printf+0xa4>
     eb8:	e51b0004 	ldr	r0, [fp, #-4]
     ebc:	e55b1010 	ldrb	r1, [fp, #-16]
     ec0:	eb00006e 	bl	1080 <putc>
     ec4:	eaffffff 	b	ec8 <printf+0xa4>
     ec8:	ea000064 	b	1060 <printf+0x23c>
     ecc:	e59d0010 	ldr	r0, [sp, #16]
     ed0:	e3500025 	cmp	r0, #37	; 0x25
     ed4:	1a000060 	bne	105c <printf+0x238>
     ed8:	eaffffff 	b	edc <printf+0xb8>
     edc:	e51b0010 	ldr	r0, [fp, #-16]
     ee0:	e3500064 	cmp	r0, #100	; 0x64
     ee4:	1a00000a 	bne	f14 <printf+0xf0>
     ee8:	eaffffff 	b	eec <printf+0xc8>
     eec:	e51b0004 	ldr	r0, [fp, #-4]
     ef0:	e59d100c 	ldr	r1, [sp, #12]
     ef4:	e5911000 	ldr	r1, [r1]
     ef8:	e3a0200a 	mov	r2, #10
     efc:	e3a03001 	mov	r3, #1
     f00:	eb00006f 	bl	10c4 <printint>
     f04:	e59d000c 	ldr	r0, [sp, #12]
     f08:	e2800004 	add	r0, r0, #4
     f0c:	e58d000c 	str	r0, [sp, #12]
     f10:	ea00004e 	b	1050 <printf+0x22c>
     f14:	e51b0010 	ldr	r0, [fp, #-16]
     f18:	e3500078 	cmp	r0, #120	; 0x78
     f1c:	0a000004 	beq	f34 <printf+0x110>
     f20:	eaffffff 	b	f24 <printf+0x100>
     f24:	e51b0010 	ldr	r0, [fp, #-16]
     f28:	e3500070 	cmp	r0, #112	; 0x70
     f2c:	1a00000a 	bne	f5c <printf+0x138>
     f30:	eaffffff 	b	f34 <printf+0x110>
     f34:	e51b0004 	ldr	r0, [fp, #-4]
     f38:	e59d100c 	ldr	r1, [sp, #12]
     f3c:	e5911000 	ldr	r1, [r1]
     f40:	e3a02010 	mov	r2, #16
     f44:	e3a03000 	mov	r3, #0
     f48:	eb00005d 	bl	10c4 <printint>
     f4c:	e59d000c 	ldr	r0, [sp, #12]
     f50:	e2800004 	add	r0, r0, #4
     f54:	e58d000c 	str	r0, [sp, #12]
     f58:	ea00003b 	b	104c <printf+0x228>
     f5c:	e51b0010 	ldr	r0, [fp, #-16]
     f60:	e3500073 	cmp	r0, #115	; 0x73
     f64:	1a00001a 	bne	fd4 <printf+0x1b0>
     f68:	eaffffff 	b	f6c <printf+0x148>
     f6c:	e59d000c 	ldr	r0, [sp, #12]
     f70:	e4901004 	ldr	r1, [r0], #4
     f74:	e50b100c 	str	r1, [fp, #-12]
     f78:	e58d000c 	str	r0, [sp, #12]
     f7c:	e51b000c 	ldr	r0, [fp, #-12]
     f80:	e3500000 	cmp	r0, #0
     f84:	1a000003 	bne	f98 <printf+0x174>
     f88:	eaffffff 	b	f8c <printf+0x168>
     f8c:	e59f00e8 	ldr	r0, [pc, #232]	; 107c <printf+0x258>
     f90:	e50b000c 	str	r0, [fp, #-12]
     f94:	eaffffff 	b	f98 <printf+0x174>
     f98:	eaffffff 	b	f9c <printf+0x178>
     f9c:	e51b000c 	ldr	r0, [fp, #-12]
     fa0:	e5d00000 	ldrb	r0, [r0]
     fa4:	e3500000 	cmp	r0, #0
     fa8:	0a000008 	beq	fd0 <printf+0x1ac>
     fac:	eaffffff 	b	fb0 <printf+0x18c>
     fb0:	e51b0004 	ldr	r0, [fp, #-4]
     fb4:	e51b100c 	ldr	r1, [fp, #-12]
     fb8:	e5d11000 	ldrb	r1, [r1]
     fbc:	eb00002f 	bl	1080 <putc>
     fc0:	e51b000c 	ldr	r0, [fp, #-12]
     fc4:	e2800001 	add	r0, r0, #1
     fc8:	e50b000c 	str	r0, [fp, #-12]
     fcc:	eafffff2 	b	f9c <printf+0x178>
     fd0:	ea00001c 	b	1048 <printf+0x224>
     fd4:	e51b0010 	ldr	r0, [fp, #-16]
     fd8:	e3500063 	cmp	r0, #99	; 0x63
     fdc:	1a000008 	bne	1004 <printf+0x1e0>
     fe0:	eaffffff 	b	fe4 <printf+0x1c0>
     fe4:	e51b0004 	ldr	r0, [fp, #-4]
     fe8:	e59d100c 	ldr	r1, [sp, #12]
     fec:	e5d11000 	ldrb	r1, [r1]
     ff0:	eb000022 	bl	1080 <putc>
     ff4:	e59d000c 	ldr	r0, [sp, #12]
     ff8:	e2800004 	add	r0, r0, #4
     ffc:	e58d000c 	str	r0, [sp, #12]
    1000:	ea00000f 	b	1044 <printf+0x220>
    1004:	e51b0010 	ldr	r0, [fp, #-16]
    1008:	e3500025 	cmp	r0, #37	; 0x25
    100c:	1a000004 	bne	1024 <printf+0x200>
    1010:	eaffffff 	b	1014 <printf+0x1f0>
    1014:	e51b0004 	ldr	r0, [fp, #-4]
    1018:	e55b1010 	ldrb	r1, [fp, #-16]
    101c:	eb000017 	bl	1080 <putc>
    1020:	ea000006 	b	1040 <printf+0x21c>
    1024:	e51b0004 	ldr	r0, [fp, #-4]
    1028:	e3a01025 	mov	r1, #37	; 0x25
    102c:	eb000013 	bl	1080 <putc>
    1030:	e51b0004 	ldr	r0, [fp, #-4]
    1034:	e55b1010 	ldrb	r1, [fp, #-16]
    1038:	eb000010 	bl	1080 <putc>
    103c:	eaffffff 	b	1040 <printf+0x21c>
    1040:	eaffffff 	b	1044 <printf+0x220>
    1044:	eaffffff 	b	1048 <printf+0x224>
    1048:	eaffffff 	b	104c <printf+0x228>
    104c:	eaffffff 	b	1050 <printf+0x22c>
    1050:	e3a00000 	mov	r0, #0
    1054:	e58d0010 	str	r0, [sp, #16]
    1058:	eaffffff 	b	105c <printf+0x238>
    105c:	eaffffff 	b	1060 <printf+0x23c>
    1060:	eaffffff 	b	1064 <printf+0x240>
    1064:	e59d0014 	ldr	r0, [sp, #20]
    1068:	e2800001 	add	r0, r0, #1
    106c:	e58d0014 	str	r0, [sp, #20]
    1070:	eaffff7b 	b	e64 <printf+0x40>
    1074:	e1a0d00b 	mov	sp, fp
    1078:	e8bd8800 	pop	{fp, pc}
    107c:	00001722 	.word	0x00001722

00001080 <putc>:
{
    1080:	e92d4800 	push	{fp, lr}
    1084:	e1a0b00d 	mov	fp, sp
    1088:	e24dd018 	sub	sp, sp, #24
    108c:	e1a02001 	mov	r2, r1
    1090:	e1a03000 	mov	r3, r0
    1094:	e50b0004 	str	r0, [fp, #-4]
    1098:	e54b1005 	strb	r1, [fp, #-5]
    write(fd, &c, 1);
    109c:	e51b0004 	ldr	r0, [fp, #-4]
    10a0:	e24b1005 	sub	r1, fp, #5
    10a4:	e3a0c001 	mov	ip, #1
    10a8:	e58d200c 	str	r2, [sp, #12]
    10ac:	e1a0200c 	mov	r2, ip
    10b0:	e58d3008 	str	r3, [sp, #8]
    10b4:	ebfffeca 	bl	be4 <write>
}
    10b8:	e58d0004 	str	r0, [sp, #4]
    10bc:	e1a0d00b 	mov	sp, fp
    10c0:	e8bd8800 	pop	{fp, pc}

000010c4 <printint>:
{
    10c4:	e92d4830 	push	{r4, r5, fp, lr}
    10c8:	e28db008 	add	fp, sp, #8
    10cc:	e24dd040 	sub	sp, sp, #64	; 0x40
    10d0:	e1a0c003 	mov	ip, r3
    10d4:	e1a0e002 	mov	lr, r2
    10d8:	e1a04001 	mov	r4, r1
    10dc:	e1a05000 	mov	r5, r0
    10e0:	e50b000c 	str	r0, [fp, #-12]
    10e4:	e50b1010 	str	r1, [fp, #-16]
    10e8:	e50b2014 	str	r2, [fp, #-20]	; 0xffffffec
    10ec:	e50b3018 	str	r3, [fp, #-24]	; 0xffffffe8
    10f0:	e3a00000 	mov	r0, #0
    10f4:	e58d0018 	str	r0, [sp, #24]
    10f8:	e51b0018 	ldr	r0, [fp, #-24]	; 0xffffffe8
    10fc:	e3500000 	cmp	r0, #0
    1100:	e58dc010 	str	ip, [sp, #16]
    1104:	e58de00c 	str	lr, [sp, #12]
    1108:	e58d4008 	str	r4, [sp, #8]
    110c:	e58d5004 	str	r5, [sp, #4]
    1110:	0a00000a 	beq	1140 <printint+0x7c>
    1114:	eaffffff 	b	1118 <printint+0x54>
    1118:	e51b0010 	ldr	r0, [fp, #-16]
    111c:	e3500000 	cmp	r0, #0
    1120:	aa000006 	bge	1140 <printint+0x7c>
    1124:	eaffffff 	b	1128 <printint+0x64>
    1128:	e3a00001 	mov	r0, #1
    112c:	e58d0018 	str	r0, [sp, #24]
    1130:	e51b0010 	ldr	r0, [fp, #-16]
    1134:	e2600000 	rsb	r0, r0, #0
    1138:	e58d0014 	str	r0, [sp, #20]
    113c:	ea000002 	b	114c <printint+0x88>
    1140:	e51b0010 	ldr	r0, [fp, #-16]
    1144:	e58d0014 	str	r0, [sp, #20]
    1148:	eaffffff 	b	114c <printint+0x88>
    114c:	e3a00000 	mov	r0, #0
    1150:	e58d001c 	str	r0, [sp, #28]
    1154:	eaffffff 	b	1158 <printint+0x94>
    1158:	e59d0014 	ldr	r0, [sp, #20]
    115c:	e51b1014 	ldr	r1, [fp, #-20]	; 0xffffffec
    1160:	eb000158 	bl	16c8 <__aeabi_uidivmod>
    1164:	e59fe0a0 	ldr	lr, [pc, #160]	; 120c <printint+0x148>
    1168:	e7de1001 	ldrb	r1, [lr, r1]
    116c:	e59de01c 	ldr	lr, [sp, #28]
    1170:	e28e2001 	add	r2, lr, #1
    1174:	e58d201c 	str	r2, [sp, #28]
    1178:	e28d2020 	add	r2, sp, #32
    117c:	e7c2100e 	strb	r1, [r2, lr]
    1180:	e58d0000 	str	r0, [sp]
    1184:	eaffffff 	b	1188 <printint+0xc4>
    1188:	e51b1014 	ldr	r1, [fp, #-20]	; 0xffffffec
    118c:	e59d0014 	ldr	r0, [sp, #20]
    1190:	eb00010f 	bl	15d4 <__aeabi_uidiv>
    1194:	e58d0014 	str	r0, [sp, #20]
    1198:	e3500000 	cmp	r0, #0
    119c:	1affffed 	bne	1158 <printint+0x94>
    11a0:	eaffffff 	b	11a4 <printint+0xe0>
    11a4:	e59d0018 	ldr	r0, [sp, #24]
    11a8:	e3500000 	cmp	r0, #0
    11ac:	0a000007 	beq	11d0 <printint+0x10c>
    11b0:	eaffffff 	b	11b4 <printint+0xf0>
    11b4:	e59d001c 	ldr	r0, [sp, #28]
    11b8:	e2801001 	add	r1, r0, #1
    11bc:	e58d101c 	str	r1, [sp, #28]
    11c0:	e28d1020 	add	r1, sp, #32
    11c4:	e3a0202d 	mov	r2, #45	; 0x2d
    11c8:	e7c12000 	strb	r2, [r1, r0]
    11cc:	eaffffff 	b	11d0 <printint+0x10c>
    11d0:	eaffffff 	b	11d4 <printint+0x110>
    11d4:	e59d001c 	ldr	r0, [sp, #28]
    11d8:	e2400001 	sub	r0, r0, #1
    11dc:	e58d001c 	str	r0, [sp, #28]
    11e0:	e3500000 	cmp	r0, #0
    11e4:	ba000006 	blt	1204 <printint+0x140>
    11e8:	eaffffff 	b	11ec <printint+0x128>
    11ec:	e51b000c 	ldr	r0, [fp, #-12]
    11f0:	e59d101c 	ldr	r1, [sp, #28]
    11f4:	e28d2020 	add	r2, sp, #32
    11f8:	e7d21001 	ldrb	r1, [r2, r1]
    11fc:	ebffff9f 	bl	1080 <putc>
    1200:	eafffff3 	b	11d4 <printint+0x110>
    1204:	e24bd008 	sub	sp, fp, #8
    1208:	e8bd8830 	pop	{r4, r5, fp, pc}
    120c:	00001734 	.word	0x00001734

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

void
free(void *ap)
{
    1210:	e24dd014 	sub	sp, sp, #20
    1214:	e1a01000 	mov	r1, r0
    1218:	e58d0010 	str	r0, [sp, #16]
    121c:	e59d0010 	ldr	r0, [sp, #16]
    1220:	e2400008 	sub	r0, r0, #8
    1224:	e58d000c 	str	r0, [sp, #12]
    1228:	e59f0188 	ldr	r0, [pc, #392]	; 13b8 <free+0x1a8>
    122c:	e5900000 	ldr	r0, [r0]
    1230:	e58d0008 	str	r0, [sp, #8]
    1234:	e58d1004 	str	r1, [sp, #4]
    1238:	eaffffff 	b	123c <free+0x2c>
    123c:	e59d000c 	ldr	r0, [sp, #12]
    1240:	e59d1008 	ldr	r1, [sp, #8]
    1244:	e3a02000 	mov	r2, #0
    1248:	e1500001 	cmp	r0, r1
    124c:	e58d2000 	str	r2, [sp]
    1250:	9a000008 	bls	1278 <free+0x68>
    1254:	eaffffff 	b	1258 <free+0x48>
    1258:	e59d000c 	ldr	r0, [sp, #12]
    125c:	e59d1008 	ldr	r1, [sp, #8]
    1260:	e5911000 	ldr	r1, [r1]
    1264:	e3a02000 	mov	r2, #0
    1268:	e1500001 	cmp	r0, r1
    126c:	33a02001 	movcc	r2, #1
    1270:	e58d2000 	str	r2, [sp]
    1274:	eaffffff 	b	1278 <free+0x68>
    1278:	e59d0000 	ldr	r0, [sp]
    127c:	e1e00000 	mvn	r0, r0
    1280:	e3100001 	tst	r0, #1
    1284:	0a000016 	beq	12e4 <free+0xd4>
    1288:	eaffffff 	b	128c <free+0x7c>
    128c:	e59d0008 	ldr	r0, [sp, #8]
    1290:	e5901000 	ldr	r1, [r0]
    1294:	e1500001 	cmp	r0, r1
    1298:	3a00000c 	bcc	12d0 <free+0xc0>
    129c:	eaffffff 	b	12a0 <free+0x90>
    12a0:	e59d000c 	ldr	r0, [sp, #12]
    12a4:	e59d1008 	ldr	r1, [sp, #8]
    12a8:	e1500001 	cmp	r0, r1
    12ac:	8a000006 	bhi	12cc <free+0xbc>
    12b0:	eaffffff 	b	12b4 <free+0xa4>
    12b4:	e59d000c 	ldr	r0, [sp, #12]
    12b8:	e59d1008 	ldr	r1, [sp, #8]
    12bc:	e5911000 	ldr	r1, [r1]
    12c0:	e1500001 	cmp	r0, r1
    12c4:	2a000001 	bcs	12d0 <free+0xc0>
    12c8:	eaffffff 	b	12cc <free+0xbc>
    12cc:	ea000004 	b	12e4 <free+0xd4>
    12d0:	eaffffff 	b	12d4 <free+0xc4>
    12d4:	e59d0008 	ldr	r0, [sp, #8]
    12d8:	e5900000 	ldr	r0, [r0]
    12dc:	e58d0008 	str	r0, [sp, #8]
    12e0:	eaffffd5 	b	123c <free+0x2c>
    12e4:	e59d000c 	ldr	r0, [sp, #12]
    12e8:	e5901004 	ldr	r1, [r0, #4]
    12ec:	e0800181 	add	r0, r0, r1, lsl #3
    12f0:	e59d1008 	ldr	r1, [sp, #8]
    12f4:	e5911000 	ldr	r1, [r1]
    12f8:	e1500001 	cmp	r0, r1
    12fc:	1a00000d 	bne	1338 <free+0x128>
    1300:	eaffffff 	b	1304 <free+0xf4>
    1304:	e59d0008 	ldr	r0, [sp, #8]
    1308:	e5900000 	ldr	r0, [r0]
    130c:	e5900004 	ldr	r0, [r0, #4]
    1310:	e59d100c 	ldr	r1, [sp, #12]
    1314:	e5912004 	ldr	r2, [r1, #4]
    1318:	e0820000 	add	r0, r2, r0
    131c:	e5810004 	str	r0, [r1, #4]
    1320:	e59d0008 	ldr	r0, [sp, #8]
    1324:	e5900000 	ldr	r0, [r0]
    1328:	e5900000 	ldr	r0, [r0]
    132c:	e59d100c 	ldr	r1, [sp, #12]
    1330:	e5810000 	str	r0, [r1]
    1334:	ea000004 	b	134c <free+0x13c>
    1338:	e59d0008 	ldr	r0, [sp, #8]
    133c:	e5900000 	ldr	r0, [r0]
    1340:	e59d100c 	ldr	r1, [sp, #12]
    1344:	e5810000 	str	r0, [r1]
    1348:	eaffffff 	b	134c <free+0x13c>
    134c:	e59d0008 	ldr	r0, [sp, #8]
    1350:	e5901004 	ldr	r1, [r0, #4]
    1354:	e0800181 	add	r0, r0, r1, lsl #3
    1358:	e59d100c 	ldr	r1, [sp, #12]
    135c:	e1500001 	cmp	r0, r1
    1360:	1a00000b 	bne	1394 <free+0x184>
    1364:	eaffffff 	b	1368 <free+0x158>
    1368:	e59d000c 	ldr	r0, [sp, #12]
    136c:	e5900004 	ldr	r0, [r0, #4]
    1370:	e59d1008 	ldr	r1, [sp, #8]
    1374:	e5912004 	ldr	r2, [r1, #4]
    1378:	e0820000 	add	r0, r2, r0
    137c:	e5810004 	str	r0, [r1, #4]
    1380:	e59d000c 	ldr	r0, [sp, #12]
    1384:	e5900000 	ldr	r0, [r0]
    1388:	e59d1008 	ldr	r1, [sp, #8]
    138c:	e5810000 	str	r0, [r1]
    1390:	ea000003 	b	13a4 <free+0x194>
    1394:	e59d000c 	ldr	r0, [sp, #12]
    1398:	e59d1008 	ldr	r1, [sp, #8]
    139c:	e5810000 	str	r0, [r1]
    13a0:	eaffffff 	b	13a4 <free+0x194>
    13a4:	e59d0008 	ldr	r0, [sp, #8]
    13a8:	e59f1008 	ldr	r1, [pc, #8]	; 13b8 <free+0x1a8>
    13ac:	e5810000 	str	r0, [r1]
    13b0:	e28dd014 	add	sp, sp, #20
    13b4:	e12fff1e 	bx	lr
    13b8:	00001748 	.word	0x00001748

000013bc <malloc>:
    13bc:	e92d4800 	push	{fp, lr}
    13c0:	e1a0b00d 	mov	fp, sp
    13c4:	e24dd018 	sub	sp, sp, #24
    13c8:	e1a01000 	mov	r1, r0
    13cc:	e50b0008 	str	r0, [fp, #-8]
    13d0:	e51b0008 	ldr	r0, [fp, #-8]
    13d4:	e2800007 	add	r0, r0, #7
    13d8:	e3a02001 	mov	r2, #1
    13dc:	e08201a0 	add	r0, r2, r0, lsr #3
    13e0:	e58d0004 	str	r0, [sp, #4]
    13e4:	e59f013c 	ldr	r0, [pc, #316]	; 1528 <malloc+0x16c>
    13e8:	e5900000 	ldr	r0, [r0]
    13ec:	e58d0008 	str	r0, [sp, #8]
    13f0:	e3500000 	cmp	r0, #0
    13f4:	e58d1000 	str	r1, [sp]
    13f8:	1a000008 	bne	1420 <malloc+0x64>
    13fc:	eaffffff 	b	1400 <malloc+0x44>
    1400:	e59f0124 	ldr	r0, [pc, #292]	; 152c <malloc+0x170>
    1404:	e58d0008 	str	r0, [sp, #8]
    1408:	e59f1118 	ldr	r1, [pc, #280]	; 1528 <malloc+0x16c>
    140c:	e5810000 	str	r0, [r1]
    1410:	e5800000 	str	r0, [r0]
    1414:	e3a01000 	mov	r1, #0
    1418:	e5801004 	str	r1, [r0, #4]
    141c:	eaffffff 	b	1420 <malloc+0x64>
    1420:	e59d0008 	ldr	r0, [sp, #8]
    1424:	e5900000 	ldr	r0, [r0]
    1428:	e58d000c 	str	r0, [sp, #12]
    142c:	eaffffff 	b	1430 <malloc+0x74>
    1430:	e59d000c 	ldr	r0, [sp, #12]
    1434:	e5900004 	ldr	r0, [r0, #4]
    1438:	e59d1004 	ldr	r1, [sp, #4]
    143c:	e1500001 	cmp	r0, r1
    1440:	3a00001f 	bcc	14c4 <malloc+0x108>
    1444:	eaffffff 	b	1448 <malloc+0x8c>
    1448:	e59d000c 	ldr	r0, [sp, #12]
    144c:	e5900004 	ldr	r0, [r0, #4]
    1450:	e59d1004 	ldr	r1, [sp, #4]
    1454:	e1500001 	cmp	r0, r1
    1458:	1a000005 	bne	1474 <malloc+0xb8>
    145c:	eaffffff 	b	1460 <malloc+0xa4>
    1460:	e59d000c 	ldr	r0, [sp, #12]
    1464:	e5900000 	ldr	r0, [r0]
    1468:	e59d1008 	ldr	r1, [sp, #8]
    146c:	e5810000 	str	r0, [r1]
    1470:	ea00000c 	b	14a8 <malloc+0xec>
    1474:	e59d0004 	ldr	r0, [sp, #4]
    1478:	e59d100c 	ldr	r1, [sp, #12]
    147c:	e5912004 	ldr	r2, [r1, #4]
    1480:	e0420000 	sub	r0, r2, r0
    1484:	e5810004 	str	r0, [r1, #4]
    1488:	e59d000c 	ldr	r0, [sp, #12]
    148c:	e5901004 	ldr	r1, [r0, #4]
    1490:	e0800181 	add	r0, r0, r1, lsl #3
    1494:	e58d000c 	str	r0, [sp, #12]
    1498:	e59d0004 	ldr	r0, [sp, #4]
    149c:	e59d100c 	ldr	r1, [sp, #12]
    14a0:	e5810004 	str	r0, [r1, #4]
    14a4:	eaffffff 	b	14a8 <malloc+0xec>
    14a8:	e59d0008 	ldr	r0, [sp, #8]
    14ac:	e59f1074 	ldr	r1, [pc, #116]	; 1528 <malloc+0x16c>
    14b0:	e5810000 	str	r0, [r1]
    14b4:	e59d000c 	ldr	r0, [sp, #12]
    14b8:	e2800008 	add	r0, r0, #8
    14bc:	e50b0004 	str	r0, [fp, #-4]
    14c0:	ea000015 	b	151c <malloc+0x160>
    14c4:	e59d000c 	ldr	r0, [sp, #12]
    14c8:	e59f1058 	ldr	r1, [pc, #88]	; 1528 <malloc+0x16c>
    14cc:	e5911000 	ldr	r1, [r1]
    14d0:	e1500001 	cmp	r0, r1
    14d4:	1a00000a 	bne	1504 <malloc+0x148>
    14d8:	eaffffff 	b	14dc <malloc+0x120>
    14dc:	e59d0004 	ldr	r0, [sp, #4]
    14e0:	eb000012 	bl	1530 <morecore>
    14e4:	e58d000c 	str	r0, [sp, #12]
    14e8:	e3500000 	cmp	r0, #0
    14ec:	1a000003 	bne	1500 <malloc+0x144>
    14f0:	eaffffff 	b	14f4 <malloc+0x138>
    14f4:	e3a00000 	mov	r0, #0
    14f8:	e50b0004 	str	r0, [fp, #-4]
    14fc:	ea000006 	b	151c <malloc+0x160>
    1500:	eaffffff 	b	1504 <malloc+0x148>
    1504:	eaffffff 	b	1508 <malloc+0x14c>
    1508:	e59d000c 	ldr	r0, [sp, #12]
    150c:	e58d0008 	str	r0, [sp, #8]
    1510:	e5900000 	ldr	r0, [r0]
    1514:	e58d000c 	str	r0, [sp, #12]
    1518:	eaffffc4 	b	1430 <malloc+0x74>
    151c:	e51b0004 	ldr	r0, [fp, #-4]
    1520:	e1a0d00b 	mov	sp, fp
    1524:	e8bd8800 	pop	{fp, pc}
    1528:	00001748 	.word	0x00001748
    152c:	0000174c 	.word	0x0000174c

00001530 <morecore>:
    freep = p;
}

static Header*
morecore(uint nu)
{
    1530:	e92d4800 	push	{fp, lr}
    1534:	e1a0b00d 	mov	fp, sp
    1538:	e24dd018 	sub	sp, sp, #24
    153c:	e1a01000 	mov	r1, r0
    1540:	e50b0008 	str	r0, [fp, #-8]
    char *p;
    Header *hp;
    
    if(nu < 4096)
    1544:	e51b0008 	ldr	r0, [fp, #-8]
    1548:	e3a02000 	mov	r2, #0
    154c:	e1520620 	cmp	r2, r0, lsr #12
    1550:	e58d1004 	str	r1, [sp, #4]
    1554:	1a000003 	bne	1568 <morecore+0x38>
    1558:	eaffffff 	b	155c <morecore+0x2c>
        nu = 4096;
    155c:	e3a00a01 	mov	r0, #4096	; 0x1000
    1560:	e50b0008 	str	r0, [fp, #-8]
    1564:	eaffffff 	b	1568 <morecore+0x38>
    p = sbrk(nu * sizeof(Header));
    1568:	e51b0008 	ldr	r0, [fp, #-8]
    156c:	e1a00180 	lsl	r0, r0, #3
    1570:	ebfffe10 	bl	db8 <sbrk>
    1574:	e58d000c 	str	r0, [sp, #12]
    if(p == (char*)-1)
    1578:	e59d000c 	ldr	r0, [sp, #12]
    157c:	e3700001 	cmn	r0, #1
    1580:	1a000003 	bne	1594 <morecore+0x64>
    1584:	eaffffff 	b	1588 <morecore+0x58>
        return 0;
    1588:	e3a00000 	mov	r0, #0
    158c:	e50b0004 	str	r0, [fp, #-4]
    1590:	ea00000b 	b	15c4 <morecore+0x94>
    hp = (Header*)p;
    1594:	e59d000c 	ldr	r0, [sp, #12]
    1598:	e58d0008 	str	r0, [sp, #8]
    hp->s.size = nu;
    159c:	e51b0008 	ldr	r0, [fp, #-8]
    15a0:	e59d1008 	ldr	r1, [sp, #8]
    15a4:	e5810004 	str	r0, [r1, #4]
    free((void*)(hp + 1));
    15a8:	e59d0008 	ldr	r0, [sp, #8]
    15ac:	e2800008 	add	r0, r0, #8
    15b0:	ebffff16 	bl	1210 <free>
    return freep;
    15b4:	e59f0014 	ldr	r0, [pc, #20]	; 15d0 <morecore+0xa0>
    15b8:	e5900000 	ldr	r0, [r0]
    15bc:	e50b0004 	str	r0, [fp, #-4]
    15c0:	eaffffff 	b	15c4 <morecore+0x94>
}
    15c4:	e51b0004 	ldr	r0, [fp, #-4]
    15c8:	e1a0d00b 	mov	sp, fp
    15cc:	e8bd8800 	pop	{fp, pc}
    15d0:	00001748 	.word	0x00001748

000015d4 <__aeabi_uidiv>:
    15d4:	e2512001 	subs	r2, r1, #1
    15d8:	012fff1e 	bxeq	lr
    15dc:	3a000036 	bcc	16bc <__aeabi_uidiv+0xe8>
    15e0:	e1500001 	cmp	r0, r1
    15e4:	9a000022 	bls	1674 <__aeabi_uidiv+0xa0>
    15e8:	e1110002 	tst	r1, r2
    15ec:	0a000023 	beq	1680 <__aeabi_uidiv+0xac>
    15f0:	e311020e 	tst	r1, #-536870912	; 0xe0000000
    15f4:	01a01181 	lsleq	r1, r1, #3
    15f8:	03a03008 	moveq	r3, #8
    15fc:	13a03001 	movne	r3, #1
    1600:	e3510201 	cmp	r1, #268435456	; 0x10000000
    1604:	31510000 	cmpcc	r1, r0
    1608:	31a01201 	lslcc	r1, r1, #4
    160c:	31a03203 	lslcc	r3, r3, #4
    1610:	3afffffa 	bcc	1600 <__aeabi_uidiv+0x2c>
    1614:	e3510102 	cmp	r1, #-2147483648	; 0x80000000
    1618:	31510000 	cmpcc	r1, r0
    161c:	31a01081 	lslcc	r1, r1, #1
    1620:	31a03083 	lslcc	r3, r3, #1
    1624:	3afffffa 	bcc	1614 <__aeabi_uidiv+0x40>
    1628:	e3a02000 	mov	r2, #0
    162c:	e1500001 	cmp	r0, r1
    1630:	20400001 	subcs	r0, r0, r1
    1634:	21822003 	orrcs	r2, r2, r3
    1638:	e15000a1 	cmp	r0, r1, lsr #1
    163c:	204000a1 	subcs	r0, r0, r1, lsr #1
    1640:	218220a3 	orrcs	r2, r2, r3, lsr #1
    1644:	e1500121 	cmp	r0, r1, lsr #2
    1648:	20400121 	subcs	r0, r0, r1, lsr #2
    164c:	21822123 	orrcs	r2, r2, r3, lsr #2
    1650:	e15001a1 	cmp	r0, r1, lsr #3
    1654:	204001a1 	subcs	r0, r0, r1, lsr #3
    1658:	218221a3 	orrcs	r2, r2, r3, lsr #3
    165c:	e3500000 	cmp	r0, #0
    1660:	11b03223 	lsrsne	r3, r3, #4
    1664:	11a01221 	lsrne	r1, r1, #4
    1668:	1affffef 	bne	162c <__aeabi_uidiv+0x58>
    166c:	e1a00002 	mov	r0, r2
    1670:	e12fff1e 	bx	lr
    1674:	03a00001 	moveq	r0, #1
    1678:	13a00000 	movne	r0, #0
    167c:	e12fff1e 	bx	lr
    1680:	e3510801 	cmp	r1, #65536	; 0x10000
    1684:	21a01821 	lsrcs	r1, r1, #16
    1688:	23a02010 	movcs	r2, #16
    168c:	33a02000 	movcc	r2, #0
    1690:	e3510c01 	cmp	r1, #256	; 0x100
    1694:	21a01421 	lsrcs	r1, r1, #8
    1698:	22822008 	addcs	r2, r2, #8
    169c:	e3510010 	cmp	r1, #16
    16a0:	21a01221 	lsrcs	r1, r1, #4
    16a4:	22822004 	addcs	r2, r2, #4
    16a8:	e3510004 	cmp	r1, #4
    16ac:	82822003 	addhi	r2, r2, #3
    16b0:	908220a1 	addls	r2, r2, r1, lsr #1
    16b4:	e1a00230 	lsr	r0, r0, r2
    16b8:	e12fff1e 	bx	lr
    16bc:	e3500000 	cmp	r0, #0
    16c0:	13e00000 	mvnne	r0, #0
    16c4:	ea000007 	b	16e8 <__aeabi_idiv0>

000016c8 <__aeabi_uidivmod>:
    16c8:	e3510000 	cmp	r1, #0
    16cc:	0afffffa 	beq	16bc <__aeabi_uidiv+0xe8>
    16d0:	e92d4003 	push	{r0, r1, lr}
    16d4:	ebffffbe 	bl	15d4 <__aeabi_uidiv>
    16d8:	e8bd4006 	pop	{r1, r2, lr}
    16dc:	e0030092 	mul	r3, r2, r0
    16e0:	e0411003 	sub	r1, r1, r3
    16e4:	e12fff1e 	bx	lr

000016e8 <__aeabi_idiv0>:
    16e8:	e12fff1e 	bx	lr