00401000 <.text>:
401000:	55                   	push   %ebp
401001:	8b ec                	mov    %esp,%ebp
401003:	81 ec 04 08 00 00    	sub    $0x804,%esp
401009:	a1 84 22 41 00       	mov    0x412284,%eax
40100e:	33 c5                	xor    %ebp,%eax
401010:	89 45 fc             	mov    %eax,-0x4(%ebp)
401013:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
401017:	75 45                	jne    0x40105e
401019:	8d 45 10             	lea    0x10(%ebp),%eax
40101c:	50                   	push   %eax
40101d:	ff 75 0c             	push   0xc(%ebp)
401020:	8d 85 fc f7 ff ff    	lea    -0x804(%ebp),%eax
401026:	68 ff 03 00 00       	push   $0x3ff
40102b:	68 00 04 00 00       	push   $0x400
401030:	50                   	push   %eax
401031:	e8 ed 24 00 00       	call   0x403523
401036:	83 c4 14             	add    $0x14,%esp
401039:	8d 85 fc f7 ff ff    	lea    -0x804(%ebp),%eax
40103f:	50                   	push   %eax
401040:	68 3c 0a 41 00       	push   $0x410a3c
401045:	e8 39 12 00 00       	call   0x402283
40104a:	83 c0 40             	add    $0x40,%eax
40104d:	50                   	push   %eax
40104e:	e8 8c 0e 00 00       	call   0x401edf
401053:	83 c4 0c             	add    $0xc,%esp
401056:	6a 01                	push   $0x1
401058:	ff 15 00 f0 40 00    	call   *0x40f000
40105e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
401061:	33 cd                	xor    %ebp,%ecx
401063:	e8 3c 0d 00 00       	call   0x401da4
401068:	c9                   	leave
401069:	c3                   	ret
40106a:	55                   	push   %ebp
40106b:	8b ec                	mov    %esp,%ebp
40106d:	81 ec 04 04 00 00    	sub    $0x404,%esp
401073:	a1 84 22 41 00       	mov    0x412284,%eax
401078:	33 c5                	xor    %ebp,%eax
40107a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40107d:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
401081:	75 45                	jne    0x4010c8
401083:	8d 45 10             	lea    0x10(%ebp),%eax
401086:	50                   	push   %eax
401087:	ff 75 0c             	push   0xc(%ebp)
40108a:	8d 85 fc fb ff ff    	lea    -0x404(%ebp),%eax
401090:	68 ff 03 00 00       	push   $0x3ff
401095:	68 00 04 00 00       	push   $0x400
40109a:	50                   	push   %eax
40109b:	e8 e2 5e 00 00       	call   0x406f82
4010a0:	83 c4 14             	add    $0x14,%esp
4010a3:	8d 85 fc fb ff ff    	lea    -0x404(%ebp),%eax
4010a9:	50                   	push   %eax
4010aa:	68 78 0a 41 00       	push   $0x410a78
4010af:	e8 cf 11 00 00       	call   0x402283
4010b4:	83 c0 40             	add    $0x40,%eax
4010b7:	50                   	push   %eax
4010b8:	e8 92 18 00 00       	call   0x40294f
4010bd:	83 c4 0c             	add    $0xc,%esp
4010c0:	6a 01                	push   $0x1
4010c2:	ff 15 00 f0 40 00    	call   *0x40f000
4010c8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4010cb:	33 cd                	xor    %ebp,%ecx
4010cd:	e8 d2 0c 00 00       	call   0x401da4
4010d2:	c9                   	leave
4010d3:	c3                   	ret
4010d4:	55                   	push   %ebp
4010d5:	8b ec                	mov    %esp,%ebp
4010d7:	8b 4d 08             	mov    0x8(%ebp),%ecx
4010da:	57                   	push   %edi
4010db:	33 ff                	xor    %edi,%edi
4010dd:	8d 46 fc             	lea    -0x4(%esi),%eax
4010e0:	50                   	push   %eax
4010e1:	0f be 05 c0 2e 41 00 	movsbl 0x412ec0,%eax
4010e8:	50                   	push   %eax
4010e9:	51                   	push   %ecx
4010ea:	e8 51 13 00 00       	call   0x402440
4010ef:	83 c4 0c             	add    $0xc,%esp
4010f2:	85 c0                	test   %eax,%eax
4010f4:	74 1b                	je     0x401111
4010f6:	b9 c0 2e 41 00       	mov    $0x412ec0,%ecx
4010fb:	8b 09                	mov    (%ecx),%ecx
4010fd:	3b 08                	cmp    (%eax),%ecx
4010ff:	75 02                	jne    0x401103
401101:	8b f8                	mov    %eax,%edi
401103:	8d 48 01             	lea    0x1(%eax),%ecx
401106:	8b 45 08             	mov    0x8(%ebp),%eax
401109:	2b c1                	sub    %ecx,%eax
40110b:	8d 44 30 fc          	lea    -0x4(%eax,%esi,1),%eax
40110f:	eb cf                	jmp    0x4010e0
401111:	8b c7                	mov    %edi,%eax
401113:	5f                   	pop    %edi
401114:	5d                   	pop    %ebp
401115:	c3                   	ret
401116:	55                   	push   %ebp
401117:	8b ec                	mov    %esp,%ebp
401119:	83 ec 2c             	sub    $0x2c,%esp
40111c:	56                   	push   %esi
40111d:	57                   	push   %edi
40111e:	68 98 0a 41 00       	push   $0x410a98
401123:	8d 45 fc             	lea    -0x4(%ebp),%eax
401126:	33 ff                	xor    %edi,%edi
401128:	68 e0 3b 41 00       	push   $0x413be0
40112d:	50                   	push   %eax
40112e:	89 7d fc             	mov    %edi,-0x4(%ebp)
401131:	89 7d f0             	mov    %edi,-0x10(%ebp)
401134:	e8 38 0d 00 00       	call   0x401e71
401139:	33 c9                	xor    %ecx,%ecx
40113b:	3b c7                	cmp    %edi,%eax
40113d:	0f 94 c1             	sete   %cl
401140:	68 a0 0a 41 00       	push   $0x410aa0
401145:	51                   	push   %ecx
401146:	e8 1f ff ff ff       	call   0x40106a
40114b:	6a 02                	push   $0x2
40114d:	57                   	push   %edi
40114e:	ff 75 fc             	push   -0x4(%ebp)
401151:	e8 77 24 00 00       	call   0x4035cd
401156:	ff 75 fc             	push   -0x4(%ebp)
401159:	e8 ab 1d 00 00       	call   0x402f09
40115e:	99                   	cltd
40115f:	89 45 e8             	mov    %eax,-0x18(%ebp)
401162:	05 fc fe ff ff       	add    $0xfffffefc,%eax
401167:	83 c4 24             	add    $0x24,%esp
40116a:	89 55 ec             	mov    %edx,-0x14(%ebp)
40116d:	89 45 f8             	mov    %eax,-0x8(%ebp)
401170:	3b c7                	cmp    %edi,%eax
401172:	7d 03                	jge    0x401177
401174:	89 7d f8             	mov    %edi,-0x8(%ebp)
401177:	57                   	push   %edi
401178:	ff 75 f8             	push   -0x8(%ebp)
40117b:	ff 75 fc             	push   -0x4(%ebp)
40117e:	e8 4a 24 00 00       	call   0x4035cd
401183:	ff 75 fc             	push   -0x4(%ebp)
401186:	68 04 01 00 00       	push   $0x104
40118b:	6a 01                	push   $0x1
40118d:	53                   	push   %ebx
40118e:	e8 9f 17 00 00       	call   0x402932
401193:	53                   	push   %ebx
401194:	8b f0                	mov    %eax,%esi
401196:	e8 39 ff ff ff       	call   0x4010d4
40119b:	83 c4 20             	add    $0x20,%esp
40119e:	3b c7                	cmp    %edi,%eax
4011a0:	74 17                	je     0x4011b9
4011a2:	8b f0                	mov    %eax,%esi
4011a4:	2b c3                	sub    %ebx,%eax
4011a6:	03 45 f8             	add    -0x8(%ebp),%eax
4011a9:	6a 05                	push   $0x5
4011ab:	99                   	cltd
4011ac:	59                   	pop    %ecx
4011ad:	8d 7d d4             	lea    -0x2c(%ebp),%edi
4011b0:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4011b2:	89 45 e8             	mov    %eax,-0x18(%ebp)
4011b5:	8b f2                	mov    %edx,%esi
4011b7:	eb 7e                	jmp    0x401237
4011b9:	be 00 00 10 04       	mov    $0x4100000,%esi
4011be:	56                   	push   %esi
4011bf:	e8 2b 10 00 00       	call   0x4021ef
4011c4:	89 45 f4             	mov    %eax,-0xc(%ebp)
4011c7:	8b 45 e8             	mov    -0x18(%ebp),%eax
4011ca:	05 00 00 f0 fb       	add    $0xfbf00000,%eax
4011cf:	59                   	pop    %ecx
4011d0:	89 45 f8             	mov    %eax,-0x8(%ebp)
4011d3:	3b c7                	cmp    %edi,%eax
4011d5:	7d 03                	jge    0x4011da
4011d7:	89 7d f8             	mov    %edi,-0x8(%ebp)
4011da:	57                   	push   %edi
4011db:	ff 75 f8             	push   -0x8(%ebp)
4011de:	ff 75 fc             	push   -0x4(%ebp)
4011e1:	e8 e7 23 00 00       	call   0x4035cd
4011e6:	ff 75 fc             	push   -0x4(%ebp)
4011e9:	56                   	push   %esi
4011ea:	6a 01                	push   $0x1
4011ec:	ff 75 f4             	push   -0xc(%ebp)
4011ef:	e8 3e 17 00 00       	call   0x402932
4011f4:	ff 75 f4             	push   -0xc(%ebp)
4011f7:	8b f0                	mov    %eax,%esi
4011f9:	e8 d6 fe ff ff       	call   0x4010d4
4011fe:	8b f0                	mov    %eax,%esi
401200:	33 c0                	xor    %eax,%eax
401202:	3b f7                	cmp    %edi,%esi
401204:	0f 95 c0             	setne  %al
401207:	68 bc 0a 41 00       	push   $0x410abc
40120c:	89 75 ec             	mov    %esi,-0x14(%ebp)
40120f:	50                   	push   %eax
401210:	e8 55 fe ff ff       	call   0x40106a
401215:	8b 45 ec             	mov    -0x14(%ebp),%eax
401218:	2b 45 f4             	sub    -0xc(%ebp),%eax
40121b:	6a 05                	push   $0x5
40121d:	03 45 f8             	add    -0x8(%ebp),%eax
401220:	59                   	pop    %ecx
401221:	ff 75 f4             	push   -0xc(%ebp)
401224:	99                   	cltd
401225:	8d 7d d4             	lea    -0x2c(%ebp),%edi
401228:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40122a:	89 45 e8             	mov    %eax,-0x18(%ebp)
40122d:	8b f2                	mov    %edx,%esi
40122f:	e8 37 0d 00 00       	call   0x401f6b
401234:	83 c4 2c             	add    $0x2c,%esp
401237:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40123a:	03 4d e0             	add    -0x20(%ebp),%ecx
40123d:	6a 00                	push   $0x0
40123f:	29 4d e8             	sub    %ecx,-0x18(%ebp)
401242:	ff 75 e8             	push   -0x18(%ebp)
401245:	ff 75 fc             	push   -0x4(%ebp)
401248:	83 de 00             	sbb    $0x0,%esi
40124b:	e8 7d 23 00 00       	call   0x4035cd
401250:	ff 75 fc             	push   -0x4(%ebp)
401253:	bf 04 01 00 00       	mov    $0x104,%edi
401258:	57                   	push   %edi
401259:	6a 01                	push   $0x1
40125b:	53                   	push   %ebx
40125c:	e8 d1 16 00 00       	call   0x402932
401261:	33 c9                	xor    %ecx,%ecx
401263:	3b c8                	cmp    %eax,%ecx
401265:	1b c0                	sbb    %eax,%eax
401267:	be e0 0a 41 00       	mov    $0x410ae0,%esi
40126c:	f7 d8                	neg    %eax
40126e:	56                   	push   %esi
40126f:	50                   	push   %eax
401270:	e8 f5 fd ff ff       	call   0x40106a
401275:	66 8b 0b             	mov    (%ebx),%cx
401278:	b8 fc 0a 41 00       	mov    $0x410afc,%eax
40127d:	83 c4 24             	add    $0x24,%esp
401280:	66 3b 08             	cmp    (%eax),%cx
401283:	75 05                	jne    0x40128a
401285:	89 5d f0             	mov    %ebx,-0x10(%ebp)
401288:	eb 54                	jmp    0x4012de
40128a:	8b 45 e8             	mov    -0x18(%ebp),%eax
40128d:	05 fc fe ff ff       	add    $0xfffffefc,%eax
401292:	79 02                	jns    0x401296
401294:	33 c0                	xor    %eax,%eax
401296:	6a 00                	push   $0x0
401298:	50                   	push   %eax
401299:	ff 75 fc             	push   -0x4(%ebp)
40129c:	e8 2c 23 00 00       	call   0x4035cd
4012a1:	ff 75 fc             	push   -0x4(%ebp)
4012a4:	57                   	push   %edi
4012a5:	6a 01                	push   $0x1
4012a7:	53                   	push   %ebx
4012a8:	e8 85 16 00 00       	call   0x402932
4012ad:	8b f8                	mov    %eax,%edi
4012af:	33 c0                	xor    %eax,%eax
4012b1:	3b c7                	cmp    %edi,%eax
4012b3:	1b c0                	sbb    %eax,%eax
4012b5:	f7 d8                	neg    %eax
4012b7:	56                   	push   %esi
4012b8:	50                   	push   %eax
4012b9:	e8 ac fd ff ff       	call   0x40106a
4012be:	83 c4 24             	add    $0x24,%esp
4012c1:	8d 44 1f ff          	lea    -0x1(%edi,%ebx,1),%eax
4012c5:	eb 0e                	jmp    0x4012d5
4012c7:	66 8b 10             	mov    (%eax),%dx
4012ca:	b9 fc 0a 41 00       	mov    $0x410afc,%ecx
4012cf:	66 3b 11             	cmp    (%ecx),%dx
4012d2:	74 07                	je     0x4012db
4012d4:	48                   	dec    %eax
4012d5:	3b c3                	cmp    %ebx,%eax
4012d7:	73 ee                	jae    0x4012c7
4012d9:	eb 03                	jmp    0x4012de
4012db:	89 45 f0             	mov    %eax,-0x10(%ebp)
4012de:	ff 75 fc             	push   -0x4(%ebp)
4012e1:	e8 a5 25 00 00       	call   0x40388b
4012e6:	8b 45 f0             	mov    -0x10(%ebp),%eax
4012e9:	59                   	pop    %ecx
4012ea:	5f                   	pop    %edi
4012eb:	5e                   	pop    %esi
4012ec:	c9                   	leave
4012ed:	c3                   	ret
4012ee:	55                   	push   %ebp
4012ef:	8b ec                	mov    %esp,%ebp
4012f1:	83 ec 0c             	sub    $0xc,%esp
4012f4:	56                   	push   %esi
4012f5:	6a 2e                	push   $0x2e
4012f7:	ff 75 08             	push   0x8(%ebp)
4012fa:	33 f6                	xor    %esi,%esi
4012fc:	89 75 f8             	mov    %esi,-0x8(%ebp)
4012ff:	e8 b4 0b 00 00       	call   0x401eb8
401304:	59                   	pop    %ecx
401305:	59                   	pop    %ecx
401306:	85 c0                	test   %eax,%eax
401308:	74 1d                	je     0x401327
40130a:	56                   	push   %esi
40130b:	68 f8 3d 41 00       	push   $0x413df8
401310:	68 00 04 00 00       	push   $0x400
401315:	56                   	push   %esi
401316:	ff 75 08             	push   0x8(%ebp)
401319:	56                   	push   %esi
40131a:	ff 15 08 f0 40 00    	call   *0x40f008
401320:	85 c0                	test   %eax,%eax
401322:	74 74                	je     0x401398
401324:	46                   	inc    %esi
401325:	eb 71                	jmp    0x401398
401327:	57                   	push   %edi
401328:	68 00 0b 41 00       	push   $0x410b00
40132d:	8d 45 f4             	lea    -0xc(%ebp),%eax
401330:	50                   	push   %eax
401331:	8d 45 fc             	lea    -0x4(%ebp),%eax
401334:	50                   	push   %eax
401335:	e8 aa 23 00 00       	call   0x4036e4
40133a:	ff 75 f4             	push   -0xc(%ebp)
40133d:	8b f8                	mov    %eax,%edi
40133f:	ff 75 fc             	push   -0x4(%ebp)
401342:	e8 69 13 00 00       	call   0x4026b0
401347:	83 c4 14             	add    $0x14,%esp
40134a:	3b fe                	cmp    %esi,%edi
40134c:	75 49                	jne    0x401397
40134e:	8d 45 f8             	lea    -0x8(%ebp),%eax
401351:	50                   	push   %eax
401352:	bf 10 0b 41 00       	mov    $0x410b10,%edi
401357:	57                   	push   %edi
401358:	ff 75 fc             	push   -0x4(%ebp)
40135b:	eb 20                	jmp    0x40137d
40135d:	56                   	push   %esi
40135e:	68 f8 3d 41 00       	push   $0x413df8
401363:	68 00 04 00 00       	push   $0x400
401368:	50                   	push   %eax
401369:	ff 75 08             	push   0x8(%ebp)
40136c:	56                   	push   %esi
40136d:	ff 15 08 f0 40 00    	call   *0x40f008
401373:	85 c0                	test   %eax,%eax
401375:	75 14                	jne    0x40138b
401377:	8d 45 f8             	lea    -0x8(%ebp),%eax
40137a:	50                   	push   %eax
40137b:	57                   	push   %edi
40137c:	56                   	push   %esi
40137d:	e8 15 19 00 00       	call   0x402c97
401382:	83 c4 0c             	add    $0xc,%esp
401385:	3b c6                	cmp    %esi,%eax
401387:	75 d4                	jne    0x40135d
401389:	eb 03                	jmp    0x40138e
40138b:	33 f6                	xor    %esi,%esi
40138d:	46                   	inc    %esi
40138e:	ff 75 fc             	push   -0x4(%ebp)
401391:	e8 d5 0b 00 00       	call   0x401f6b
401396:	59                   	pop    %ecx
401397:	5f                   	pop    %edi
401398:	8b c6                	mov    %esi,%eax
40139a:	5e                   	pop    %esi
40139b:	c9                   	leave
40139c:	c3                   	ret
40139d:	55                   	push   %ebp
40139e:	8b ec                	mov    %esp,%ebp
4013a0:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)
4013a4:	74 0c                	je     0x4013b2
4013a6:	83 7d 08 04          	cmpl   $0x4,0x8(%ebp)
4013aa:	76 29                	jbe    0x4013d5
4013ac:	83 7d 08 06          	cmpl   $0x6,0x8(%ebp)
4013b0:	77 23                	ja     0x4013d5
4013b2:	a1 68 3b 41 00       	mov    0x413b68,%eax
4013b7:	85 c0                	test   %eax,%eax
4013b9:	74 1a                	je     0x4013d5