00401000 <.text>:
401000:	55                   	push   %ebp
401001:	8b ec                	mov    %esp,%ebp
401003:	83 ec 58             	sub    $0x58,%esp
401006:	8b 4d 0c             	mov    0xc(%ebp),%ecx
401009:	b8 11 01 00 00       	mov    $0x111,%eax
40100e:	3b c8                	cmp    %eax,%ecx
401010:	0f 87 05 01 00 00    	ja     0x40111b
401016:	0f 84 ea 00 00 00    	je     0x401106
40101c:	8b c1                	mov    %ecx,%eax
40101e:	48                   	dec    %eax
40101f:	0f 84 cf 00 00 00    	je     0x4010f4
401025:	48                   	dec    %eax
401026:	0f 84 8d 00 00 00    	je     0x4010b9
40102c:	83 e8 03             	sub    $0x3,%eax
40102f:	74 48                	je     0x401079
401031:	83 e8 0b             	sub    $0xb,%eax
401034:	74 35                	je     0x40106b
401036:	83 e8 06             	sub    $0x6,%eax
401039:	74 21                	je     0x40105c
40103b:	83 e8 38             	sub    $0x38,%eax
40103e:	0f 85 f4 00 00 00    	jne    0x401138
401044:	ff 75 14             	push   0x14(%ebp)
401047:	b9 b8 d5 40 00       	mov    $0x40d5b8,%ecx
40104c:	ff 75 10             	push   0x10(%ebp)
40104f:	ff 75 08             	push   0x8(%ebp)
401052:	e8 92 09 00 00       	call   0x4019e9
401057:	e9 34 01 00 00       	jmp    0x401190
40105c:	b9 b8 d5 40 00       	mov    $0x40d5b8,%ecx
401061:	e8 05 5c 00 00       	call   0x406c6b
401066:	e9 25 01 00 00       	jmp    0x401190
40106b:	ff 75 08             	push   0x8(%ebp)
40106e:	ff 15 ec a1 40 00    	call   *0x40a1ec
401074:	e9 17 01 00 00       	jmp    0x401190
401079:	83 7d 10 01          	cmpl   $0x1,0x10(%ebp)
40107d:	74 16                	je     0x401095
40107f:	b9 b8 d5 40 00       	mov    $0x40d5b8,%ecx
401084:	e8 75 6e 00 00       	call   0x407efe
401089:	c6 05 b8 d7 40 00 01 	movb   $0x1,0x40d7b8
401090:	e9 fb 00 00 00       	jmp    0x401190
401095:	80 25 b8 d7 40 00 00 	andb   $0x0,0x40d7b8
40109c:	80 3d dc d5 40 00 00 	cmpb   $0x0,0x40d5dc
4010a3:	0f 84 e7 00 00 00    	je     0x401190
4010a9:	6a 00                	push   $0x0
4010ab:	ff 75 08             	push   0x8(%ebp)
4010ae:	ff 15 e8 a1 40 00    	call   *0x40a1e8
4010b4:	e9 d7 00 00 00       	jmp    0x401190
4010b9:	b9 b8 d5 40 00       	mov    $0x40d5b8,%ecx
4010be:	e8 a8 5b 00 00       	call   0x406c6b
4010c3:	8b 45 08             	mov    0x8(%ebp),%eax
4010c6:	83 65 b4 00          	andl   $0x0,-0x4c(%ebp)
4010ca:	89 45 ac             	mov    %eax,-0x54(%ebp)
4010cd:	8d 45 a8             	lea    -0x58(%ebp),%eax
4010d0:	50                   	push   %eax
4010d1:	6a 02                	push   $0x2
4010d3:	c7 45 a8 58 00 00 00 	movl   $0x58,-0x58(%ebp)
4010da:	c7 45 b0 16 00 00 00 	movl   $0x16,-0x50(%ebp)
4010e1:	ff 15 d4 a1 40 00    	call   *0x40a1d4
4010e7:	6a 00                	push   $0x0
4010e9:	ff 15 e4 a1 40 00    	call   *0x40a1e4
4010ef:	e9 9c 00 00 00       	jmp    0x401190
4010f4:	ff 75 08             	push   0x8(%ebp)
4010f7:	b9 b8 d5 40 00       	mov    $0x40d5b8,%ecx
4010fc:	e8 c0 6e 00 00       	call   0x407fc1
401101:	e9 8a 00 00 00       	jmp    0x401190
401106:	ff 75 14             	push   0x14(%ebp)
401109:	b9 b8 d5 40 00       	mov    $0x40d5b8,%ecx
40110e:	ff 75 10             	push   0x10(%ebp)
401111:	ff 75 08             	push   0x8(%ebp)
401114:	e8 78 04 00 00       	call   0x401591
401119:	eb 75                	jmp    0x401190
40111b:	8b c1                	mov    %ecx,%eax
40111d:	2d 13 01 00 00       	sub    $0x113,%eax
401122:	74 59                	je     0x40117d
401124:	2d ed 00 00 00       	sub    $0xed,%eax
401129:	74 46                	je     0x401171
40112b:	48                   	dec    %eax
40112c:	74 3f                	je     0x40116d
40112e:	48                   	dec    %eax
40112f:	74 2e                	je     0x40115f
401131:	2d 08 02 00 00       	sub    $0x208,%eax
401136:	74 12                	je     0x40114a
401138:	ff 75 14             	push   0x14(%ebp)
40113b:	ff 75 10             	push   0x10(%ebp)
40113e:	51                   	push   %ecx
40113f:	ff 75 08             	push   0x8(%ebp)
401142:	ff 15 e0 a1 40 00    	call   *0x40a1e0
401148:	eb 48                	jmp    0x401192
40114a:	ff 75 10             	push   0x10(%ebp)
40114d:	b9 b8 d5 40 00       	mov    $0x40d5b8,%ecx
401152:	ff 75 14             	push   0x14(%ebp)
401155:	ff 75 08             	push   0x8(%ebp)
401158:	e8 e6 0a 00 00       	call   0x401c43
40115d:	eb 31                	jmp    0x401190
40115f:	6a 00                	push   $0x0
401161:	b9 b8 d5 40 00       	mov    $0x40d5b8,%ecx
401166:	e8 71 6a 00 00       	call   0x407bdc
40116b:	eb 23                	jmp    0x401190
40116d:	6a 01                	push   $0x1
40116f:	eb f0                	jmp    0x401161
401171:	b9 b8 d5 40 00       	mov    $0x40d5b8,%ecx
401176:	e8 83 6a 00 00       	call   0x407bfe
40117b:	eb 13                	jmp    0x401190
40117d:	ff 75 14             	push   0x14(%ebp)
401180:	b9 b8 d5 40 00       	mov    $0x40d5b8,%ecx
401185:	ff 75 10             	push   0x10(%ebp)
401188:	ff 75 08             	push   0x8(%ebp)
40118b:	e8 4c 0b 00 00       	call   0x401cdc
401190:	33 c0                	xor    %eax,%eax
401192:	c9                   	leave
401193:	c2 10 00             	ret    $0x10
401196:	b8 f0 93 40 00       	mov    $0x4093f0,%eax
40119b:	e8 90 7d 00 00       	call   0x408f30
4011a0:	81 ec 1c 01 00 00    	sub    $0x11c,%esp
4011a6:	53                   	push   %ebx
4011a7:	56                   	push   %esi
4011a8:	33 db                	xor    %ebx,%ebx
4011aa:	57                   	push   %edi
4011ab:	38 5d 10             	cmp    %bl,0x10(%ebp)
4011ae:	89 65 f0             	mov    %esp,-0x10(%ebp)
4011b1:	8d b5 d8 fe ff ff    	lea    -0x128(%ebp),%esi
4011b7:	74 1e                	je     0x4011d7
4011b9:	6a 31                	push   $0x31
4011bb:	68 fc c0 40 00       	push   $0x40c0fc
4011c0:	68 b8 c0 40 00       	push   $0x40c0b8
4011c5:	ff 75 08             	push   0x8(%ebp)
4011c8:	ff 15 f0 a1 40 00    	call   *0x40a1f0
4011ce:	83 f8 01             	cmp    $0x1,%eax
4011d1:	0f 85 e3 00 00 00    	jne    0x4012ba
4011d7:	8b 45 0c             	mov    0xc(%ebp),%eax
4011da:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4011dd:	ff 30                	push   (%eax)
4011df:	53                   	push   %ebx
4011e0:	68 ff 0f 1f 00       	push   $0x1f0fff
4011e5:	ff 15 0c a1 40 00    	call   *0x40a10c
4011eb:	8b f8                	mov    %eax,%edi
4011ed:	3b fb                	cmp    %ebx,%edi
4011ef:	89 7d 0c             	mov    %edi,0xc(%ebp)
4011f2:	75 15                	jne    0x401209
4011f4:	8d 45 e0             	lea    -0x20(%ebp),%eax
4011f7:	68 68 a4 40 00       	push   $0x40a468
4011fc:	50                   	push   %eax
4011fd:	c7 45 e0 a0 c0 40 00 	movl   $0x40c0a0,-0x20(%ebp)
401204:	e8 2d 7d 00 00       	call   0x408f36
401209:	38 5d 10             	cmp    %bl,0x10(%ebp)
40120c:	74 37                	je     0x401245
40120e:	8d 85 d8 fe ff ff    	lea    -0x128(%ebp),%eax
401214:	50                   	push   %eax
401215:	57                   	push   %edi
401216:	e8 04 7a 00 00       	call   0x408c1f
40121b:	59                   	pop    %ecx
40121c:	3a c3                	cmp    %bl,%al
40121e:	59                   	pop    %ecx
40121f:	75 15                	jne    0x401236
401221:	8d 45 e4             	lea    -0x1c(%ebp),%eax
401224:	68 68 a4 40 00       	push   $0x40a468
401229:	50                   	push   %eax
40122a:	c7 45 e4 74 c0 40 00 	movl   $0x40c074,-0x1c(%ebp)
401231:	e8 00 7d 00 00       	call   0x408f36
401236:	8d 85 d8 fe ff ff    	lea    -0x128(%ebp),%eax
40123c:	50                   	push   %eax
40123d:	e8 dc 77 00 00       	call   0x408a1e
401242:	59                   	pop    %ecx
401243:	8b f0                	mov    %eax,%esi
401245:	53                   	push   %ebx
401246:	57                   	push   %edi
401247:	ff 15 10 a1 40 00    	call   *0x40a110
40124d:	85 c0                	test   %eax,%eax
40124f:	75 15                	jne    0x401266
401251:	8d 45 ec             	lea    -0x14(%ebp),%eax
401254:	68 68 a4 40 00       	push   $0x40a468
401259:	50                   	push   %eax
40125a:	c7 45 ec 58 c0 40 00 	movl   $0x40c058,-0x14(%ebp)
401261:	e8 d0 7c 00 00       	call   0x408f36
401266:	38 5d 10             	cmp    %bl,0x10(%ebp)
401269:	74 44                	je     0x4012af
40126b:	68 e8 03 00 00       	push   $0x3e8
401270:	57                   	push   %edi
401271:	ff 15 14 a1 40 00    	call   *0x40a114
401277:	56                   	push   %esi
401278:	ff 15 18 a1 40 00    	call   *0x40a118
40127e:	85 c0                	test   %eax,%eax
401280:	75 2d                	jne    0x4012af
401282:	8d 45 e8             	lea    -0x18(%ebp),%eax
401285:	68 68 a4 40 00       	push   $0x40a468
40128a:	50                   	push   %eax
40128b:	c7 45 e8 40 c0 40 00 	movl   $0x40c040,-0x18(%ebp)
401292:	e8 9f 7c 00 00       	call   0x408f36
401297:	ff 75 dc             	push   -0x24(%ebp)
40129a:	ff 75 08             	push   0x8(%ebp)
40129d:	e8 63 73 00 00       	call   0x408605
4012a2:	59                   	pop    %ecx
4012a3:	b8 aa 12 40 00       	mov    $0x4012aa,%eax
4012a8:	59                   	pop    %ecx
4012a9:	c3                   	ret
4012aa:	8b 7d 0c             	mov    0xc(%ebp),%edi
4012ad:	33 db                	xor    %ebx,%ebx
4012af:	3b fb                	cmp    %ebx,%edi
4012b1:	74 07                	je     0x4012ba
4012b3:	57                   	push   %edi
4012b4:	ff 15 dc a0 40 00    	call   *0x40a0dc
4012ba:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4012bd:	5f                   	pop    %edi
4012be:	5e                   	pop    %esi
4012bf:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4012c6:	5b                   	pop    %ebx
4012c7:	c9                   	leave
4012c8:	c2 0c 00             	ret    $0xc
4012cb:	b8 fc 93 40 00       	mov    $0x4093fc,%eax
4012d0:	e8 5b 7c 00 00       	call   0x408f30
4012d5:	83 ec 10             	sub    $0x10,%esp
4012d8:	8b 45 0c             	mov    0xc(%ebp),%eax
4012db:	53                   	push   %ebx
4012dc:	56                   	push   %esi
4012dd:	57                   	push   %edi
4012de:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4012e2:	89 65 f0             	mov    %esp,-0x10(%ebp)
4012e5:	ff 30                	push   (%eax)
4012e7:	6a 00                	push   $0x0
4012e9:	68 00 02 00 00       	push   $0x200
4012ee:	ff 15 0c a1 40 00    	call   *0x40a10c
4012f4:	85 c0                	test   %eax,%eax
4012f6:	89 45 0c             	mov    %eax,0xc(%ebp)
4012f9:	75 15                	jne    0x401310
4012fb:	8d 45 ec             	lea    -0x14(%ebp),%eax
4012fe:	68 68 a4 40 00       	push   $0x40a468
401303:	50                   	push   %eax
401304:	c7 45 ec a0 c0 40 00 	movl   $0x40c0a0,-0x14(%ebp)
40130b:	e8 26 7c 00 00       	call   0x408f36
401310:	ff 75 10             	push   0x10(%ebp)
401313:	50                   	push   %eax
401314:	ff 15 08 a1 40 00    	call   *0x40a108
40131a:	85 c0                	test   %eax,%eax
40131c:	75 28                	jne    0x401346
40131e:	8d 45 e8             	lea    -0x18(%ebp),%eax
401321:	68 68 a4 40 00       	push   $0x40a468
401326:	50                   	push   %eax
401327:	c7 45 e8 10 c1 40 00 	movl   $0x40c110,-0x18(%ebp)
40132e:	e8 03 7c 00 00       	call   0x408f36
401333:	ff 75 e4             	push   -0x1c(%ebp)
401336:	ff 75 08             	push   0x8(%ebp)
401339:	e8 c7 72 00 00       	call   0x408605
40133e:	59                   	pop    %ecx
40133f:	b8 46 13 40 00       	mov    $0x401346,%eax
401344:	59                   	pop    %ecx
401345:	c3                   	ret
401346:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40134a:	74 09                	je     0x401355
40134c:	ff 75 0c             	push   0xc(%ebp)
40134f:	ff 15 dc a0 40 00    	call   *0x40a0dc
401355:	8b 4d f4             	mov    -0xc(%ebp),%ecx
401358:	5f                   	pop    %edi
401359:	5e                   	pop    %esi
40135a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401361:	5b                   	pop    %ebx
401362:	c9                   	leave
401363:	c2 0c 00             	ret    $0xc
401366:	b8 08 94 40 00       	mov    $0x409408,%eax
40136b:	e8 c0 7b 00 00       	call   0x408f30
401370:	81 ec 88 01 00 00    	sub    $0x188,%esp
401376:	53                   	push   %ebx
401377:	56                   	push   %esi
401378:	57                   	push   %edi
401379:	8d 45 e8             	lea    -0x18(%ebp),%eax
40137c:	89 65 f0             	mov    %esp,-0x10(%ebp)
40137f:	33 db                	xor    %ebx,%ebx
401381:	50                   	push   %eax
401382:	68 19 00 02 00       	push   $0x20019
401387:	53                   	push   %ebx
401388:	68 98 c1 40 00       	push   $0x40c198
40138d:	68 02 00 00 80       	push   $0x80000002
401392:	89 5d fc             	mov    %ebx,-0x4(%ebp)
401395:	ff 15 04 a0 40 00    	call   *0x40a004
40139b:	85 c0                	test   %eax,%eax
40139d:	74 15                	je     0x4013b4
40139f:	8d 45 d8             	lea    -0x28(%ebp),%eax
4013a2:	68 68 a4 40 00       	push   $0x40a468
4013a7:	50                   	push   %eax
4013a8:	c7 45 d8 78 c1 40 00 	movl   $0x40c178,-0x28(%ebp)
4013af:	e8 82 7b 00 00       	call   0x408f36
4013b4:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4013b7:	c7 45 e4 04 01 00 00 	movl   $0x104,-0x1c(%ebp)
4013be:	50                   	push   %eax
4013bf:	8d 85 6c fe ff ff    	lea    -0x194(%ebp),%eax
4013c5:	50                   	push   %eax
4013c6:	8d 45 d0             	lea    -0x30(%ebp),%eax
4013c9:	50                   	push   %eax
4013ca:	53                   	push   %ebx
4013cb:	68 6c c1 40 00       	push   $0x40c16c
4013d0:	ff 75 e8             	push   -0x18(%ebp)
4013d3:	ff 15 30 a0 40 00    	call   *0x40a030
4013d9:	ff 75 e8             	push   -0x18(%ebp)
4013dc:	85 c0                	test   %eax,%eax
4013de:	74 1b                	je     0x4013fb
4013e0:	ff 15 00 a0 40 00    	call   *0x40a000
4013e6:	8d 45 dc             	lea    -0x24(%ebp),%eax
4013e9:	68 68 a4 40 00       	push   $0x40a468
4013ee:	50                   	push   %eax
4013ef:	c7 45 dc 4c c1 40 00 	movl   $0x40c14c,-0x24(%ebp)
4013f6:	e8 3b 7b 00 00       	call   0x408f36
4013fb:	ff 15 00 a0 40 00    	call   *0x40a000
401401:	80 bd 6c fe ff ff 22 	cmpb   $0x22,-0x194(%ebp)
401408:	c6 45 ef 20          	movb   $0x20,-0x11(%ebp)
40140c:	75 04                	jne    0x401412
40140e:	c6 45 ef 22          	movb   $0x22,-0x11(%ebp)
401412:	6a 01                	push   $0x1
401414:	5f                   	pop    %edi
401415:	8b f7                	mov    %edi,%esi
401417:	3b 75 e4             	cmp    -0x1c(%ebp),%esi
40141a:	73 49                	jae    0x401465
40141c:	8a 45 ef             	mov    -0x11(%ebp),%al
40141f:	38 84 35 6c fe ff ff 	cmp    %al,-0x194(%ebp,%esi,1)
401426:	75 3a                	jne    0x401462
401428:	3c 22                	cmp    $0x22,%al
40142a:	75 01                	jne    0x40142d
40142c:	46                   	inc    %esi
40142d:	8d 85 6c fe ff ff    	lea    -0x194(%ebp),%eax
401433:	68 44 c1 40 00       	push   $0x40c144
401438:	50                   	push   %eax
401439:	88 9c 35 6c fe ff ff 	mov    %bl,-0x194(%ebp,%esi,1)
401440:	e8 fd 7a 00 00       	call   0x408f42
401445:	b8 09 01 00 00       	mov    $0x109,%eax
40144a:	2b c6                	sub    %esi,%eax
40144c:	50                   	push   %eax
40144d:	8b 45 0c             	mov    0xc(%ebp),%eax
401450:	ff 30                	push   (%eax)
401452:	8d 84 35 70 fe ff ff 	lea    -0x190(%ebp,%esi,1),%eax
401459:	50                   	push   %eax
40145a:	e8 67 74 00 00       	call   0x4088c6
40145f:	83 c4 14             	add    $0x14,%esp
401462:	46                   	inc    %esi
401463:	eb b2                	jmp    0x401417
401465:	6a 44                	push   $0x44
401467:	8d 45 8c             	lea    -0x74(%ebp),%eax
40146a:	5e                   	pop    %esi
40146b:	56                   	push   %esi
40146c:	53                   	push   %ebx
40146d:	50                   	push   %eax
40146e:	e8 c9 7a 00 00       	call   0x408f3c
401473:	83 c4 0c             	add    $0xc,%esp
401476:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
40147c:	89 75 8c             	mov    %esi,-0x74(%ebp)
40147f:	89 7d b8             	mov    %edi,-0x48(%ebp)
401482:	50                   	push   %eax
401483:	8d 45 8c             	lea    -0x74(%ebp),%eax
401486:	50                   	push   %eax
401487:	53                   	push   %ebx
401488:	53                   	push   %ebx
401489:	53                   	push   %ebx
40148a:	57                   	push   %edi