408115:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
40811b:	50                   	push   %eax
40811c:	8d 45 ff             	lea    -0x1(%ebp),%eax
40811f:	50                   	push   %eax
408120:	57                   	push   %edi
408121:	56                   	push   %esi
408122:	ff 15 b4 22 41 00    	call   *0x4122b4
408128:	5f                   	pop    %edi
408129:	5e                   	pop    %esi
40812a:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
408130:	5b                   	pop    %ebx
408131:	c9                   	leave
408132:	c3                   	ret
408133:	55                   	push   %ebp
408134:	8b ec                	mov    %esp,%ebp
408136:	81 ec 00 01 00 00    	sub    $0x100,%esp
40813c:	33 c0                	xor    %eax,%eax
40813e:	53                   	push   %ebx
40813f:	56                   	push   %esi
408140:	57                   	push   %edi
408141:	8b d9                	mov    %ecx,%ebx
408143:	0f b6 f2             	movzbl %dl,%esi
408146:	8b fb                	mov    %ebx,%edi
408148:	ab                   	stos   %eax,%es:(%edi)
408149:	ab                   	stos   %eax,%es:(%edi)
40814a:	ab                   	stos   %eax,%es:(%edi)
40814b:	ab                   	stos   %eax,%es:(%edi)
40814c:	83 fe 5c             	cmp    $0x5c,%esi
40814f:	0f 87 86 00 00 00    	ja     0x4081db
408155:	83 fe 5b             	cmp    $0x5b,%esi
408158:	0f 83 cc 00 00 00    	jae    0x40822a
40815e:	83 fe 14             	cmp    $0x14,%esi
408161:	77 67                	ja     0x4081ca
408163:	0f 84 c1 00 00 00    	je     0x40822a
408169:	83 fe 08             	cmp    $0x8,%esi
40816c:	72 20                	jb     0x40818e
40816e:	83 fe 09             	cmp    $0x9,%esi
408171:	0f 86 b3 00 00 00    	jbe    0x40822a
408177:	83 fe 0d             	cmp    $0xd,%esi
40817a:	0f 84 aa 00 00 00    	je     0x40822a
408180:	83 fe 0f             	cmp    $0xf,%esi
408183:	76 09                	jbe    0x40818e
408185:	83 fe 12             	cmp    $0x12,%esi
408188:	0f 86 9c 00 00 00    	jbe    0x40822a
40818e:	68 00 01 00 00       	push   $0x100
408193:	33 ff                	xor    %edi,%edi
408195:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40819b:	57                   	push   %edi
40819c:	50                   	push   %eax
40819d:	e8 b0 8e ff ff       	call   0x401052
4081a2:	83 c4 0c             	add    $0xc,%esp
4081a5:	57                   	push   %edi
4081a6:	56                   	push   %esi
4081a7:	ff 15 d4 22 41 00    	call   *0x4122d4
4081ad:	57                   	push   %edi
4081ae:	6a 01                	push   $0x1
4081b0:	8d 4b 08             	lea    0x8(%ebx),%ecx
4081b3:	51                   	push   %ecx
4081b4:	8d 8d 00 ff ff ff    	lea    -0x100(%ebp),%ecx
4081ba:	51                   	push   %ecx
4081bb:	50                   	push   %eax
4081bc:	56                   	push   %esi
4081bd:	ff 15 b4 22 41 00    	call   *0x4122b4
4081c3:	5f                   	pop    %edi
4081c4:	5e                   	pop    %esi
4081c5:	8b c3                	mov    %ebx,%eax
4081c7:	5b                   	pop    %ebx
4081c8:	c9                   	leave
4081c9:	c3                   	ret
4081ca:	83 fe 20             	cmp    $0x20,%esi
4081cd:	72 bf                	jb     0x40818e
4081cf:	83 fe 28             	cmp    $0x28,%esi
4081d2:	76 56                	jbe    0x40822a
4081d4:	83 fe 2e             	cmp    $0x2e,%esi
4081d7:	74 51                	je     0x40822a
4081d9:	eb b3                	jmp    0x40818e
4081db:	81 fe b3 00 00 00    	cmp    $0xb3,%esi
4081e1:	77 22                	ja     0x408205
4081e3:	81 fe b2 00 00 00    	cmp    $0xb2,%esi
4081e9:	73 3f                	jae    0x40822a
4081eb:	83 fe 60             	cmp    $0x60,%esi
4081ee:	72 9e                	jb     0x40818e
4081f0:	83 fe 69             	cmp    $0x69,%esi
4081f3:	76 35                	jbe    0x40822a
4081f5:	81 fe ac 00 00 00    	cmp    $0xac,%esi
4081fb:	76 91                	jbe    0x40818e
4081fd:	81 fe af 00 00 00    	cmp    $0xaf,%esi
408203:	eb 83                	jmp    0x408188
408205:	81 fe ba 00 00 00    	cmp    $0xba,%esi
40820b:	72 81                	jb     0x40818e
40820d:	81 fe c0 00 00 00    	cmp    $0xc0,%esi
408213:	76 15                	jbe    0x40822a
408215:	81 fe da 00 00 00    	cmp    $0xda,%esi
40821b:	0f 86 6d ff ff ff    	jbe    0x40818e
408221:	80 fa de             	cmp    $0xde,%dl
408224:	0f 87 64 ff ff ff    	ja     0x40818e
40822a:	89 73 04             	mov    %esi,0x4(%ebx)
40822d:	eb 94                	jmp    0x4081c3
40822f:	55                   	push   %ebp
408230:	8b ec                	mov    %esp,%ebp
408232:	83 e4 f8             	and    $0xfffffff8,%esp
408235:	81 ec 14 03 00 00    	sub    $0x314,%esp
40823b:	53                   	push   %ebx
40823c:	56                   	push   %esi
40823d:	57                   	push   %edi
40823e:	6a 00                	push   $0x0
408240:	ff 15 ac 21 41 00    	call   *0x4121ac
408246:	8b d8                	mov    %eax,%ebx
408248:	8d 7c 24 40          	lea    0x40(%esp),%edi
40824c:	33 c0                	xor    %eax,%eax
40824e:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
408252:	21 44 24 10          	and    %eax,0x10(%esp)
408256:	6a 0a                	push   $0xa
408258:	59                   	pop    %ecx
408259:	f3 ab                	rep stos %eax,%es:(%edi)
40825b:	8d 7c 24 14          	lea    0x14(%esp),%edi
40825f:	ab                   	stos   %eax,%es:(%edi)
408260:	68 00 08 00 00       	push   $0x800
408265:	ab                   	stos   %eax,%es:(%edi)
408266:	ab                   	stos   %eax,%es:(%edi)
408267:	ab                   	stos   %eax,%es:(%edi)
408268:	a1 90 66 41 00       	mov    0x416690,%eax
40826d:	33 ff                	xor    %edi,%edi
40826f:	05 10 02 00 00       	add    $0x210,%eax
408274:	57                   	push   %edi
408275:	50                   	push   %eax
408276:	e8 d7 8d ff ff       	call   0x401052
40827b:	a1 90 66 41 00       	mov    0x416690,%eax
408280:	83 c4 0c             	add    $0xc,%esp
408283:	83 c0 10             	add    $0x10,%eax
408286:	68 08 02 00 00       	push   $0x208
40828b:	57                   	push   %edi
40828c:	50                   	push   %eax
40828d:	e8 c0 8d ff ff       	call   0x401052
408292:	a1 90 66 41 00       	mov    0x416690,%eax
408297:	83 c4 0c             	add    $0xc,%esp
40829a:	83 c0 10             	add    $0x10,%eax
40829d:	50                   	push   %eax
40829e:	57                   	push   %edi
40829f:	57                   	push   %edi
4082a0:	6a 1c                	push   $0x1c
4082a2:	57                   	push   %edi
4082a3:	ff 15 5c 22 41 00    	call   *0x41225c
4082a9:	a1 90 66 41 00       	mov    0x416690,%eax
4082ae:	8b 35 04 22 41 00    	mov    0x412204,%esi
4082b4:	83 c0 10             	add    $0x10,%eax
4082b7:	68 0c 26 41 00       	push   $0x41260c
4082bc:	50                   	push   %eax
4082bd:	ff d6                	call   *%esi
4082bf:	a1 90 66 41 00       	mov    0x416690,%eax
4082c4:	57                   	push   %edi
4082c5:	83 c0 10             	add    $0x10,%eax
4082c8:	50                   	push   %eax
4082c9:	ff 15 18 22 41 00    	call   *0x412218
4082cf:	a1 90 66 41 00       	mov    0x416690,%eax
4082d4:	39 b8 14 0a 00 00    	cmp    %edi,0xa14(%eax)
4082da:	0f 84 a3 00 00 00    	je     0x408383
4082e0:	68 08 02 00 00       	push   $0x208
4082e5:	8d 84 24 1c 01 00 00 	lea    0x11c(%esp),%eax
4082ec:	57                   	push   %edi
4082ed:	50                   	push   %eax
4082ee:	e8 5f 8d ff ff       	call   0x401052
4082f3:	a1 90 66 41 00       	mov    0x416690,%eax
4082f8:	83 c4 0c             	add    $0xc,%esp
4082fb:	83 c0 10             	add    $0x10,%eax
4082fe:	50                   	push   %eax
4082ff:	8d 84 24 1c 01 00 00 	lea    0x11c(%esp),%eax
408306:	50                   	push   %eax
408307:	ff 15 cc 21 41 00    	call   *0x4121cc
40830d:	68 28 29 41 00       	push   $0x412928
408312:	8d 84 24 1c 01 00 00 	lea    0x11c(%esp),%eax
408319:	50                   	push   %eax
40831a:	ff d6                	call   *%esi
40831c:	51                   	push   %ecx
40831d:	8d 84 24 1c 01 00 00 	lea    0x11c(%esp),%eax
408324:	8b cc                	mov    %esp,%ecx
408326:	50                   	push   %eax
408327:	e8 e6 b0 ff ff       	call   0x403412
40832c:	8d 4c 24 6c          	lea    0x6c(%esp),%ecx
408330:	e8 90 5b 00 00       	call   0x40dec5
408335:	8b 1d 90 66 41 00    	mov    0x416690,%ebx
40833b:	8b f8                	mov    %eax,%edi
40833d:	59                   	pop    %ecx
40833e:	8d 8b 18 0a 00 00    	lea    0xa18(%ebx),%ecx
408344:	e8 cc 94 ff ff       	call   0x401815
408349:	33 f6                	xor    %esi,%esi
40834b:	39 77 08             	cmp    %esi,0x8(%edi)
40834e:	76 1f                	jbe    0x40836f
408350:	83 ec 18             	sub    $0x18,%esp
408353:	8b cf                	mov    %edi,%ecx
408355:	8b c4                	mov    %esp,%eax
408357:	56                   	push   %esi
408358:	50                   	push   %eax
408359:	e8 04 95 ff ff       	call   0x401862
40835e:	8d 8b 18 0a 00 00    	lea    0xa18(%ebx),%ecx
408364:	e8 ad 93 ff ff       	call   0x401716
408369:	46                   	inc    %esi
40836a:	3b 77 08             	cmp    0x8(%edi),%esi
40836d:	72 e1                	jb     0x408350
40836f:	8b 4c 24 68          	mov    0x68(%esp),%ecx
408373:	85 c9                	test   %ecx,%ecx
408375:	74 06                	je     0x40837d
408377:	51                   	push   %ecx
408378:	e8 f8 96 ff ff       	call   0x401a75
40837d:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
408381:	33 ff                	xor    %edi,%edi
408383:	6a 04                	push   $0x4
408385:	5a                   	pop    %edx
408386:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
40838a:	e8 45 af ff ff       	call   0x4032d4
40838f:	68 2c 29 41 00       	push   $0x41292c
408394:	8d 4c 24 14          	lea    0x14(%esp),%ecx
408398:	8b f0                	mov    %eax,%esi
40839a:	e8 f8 ae ff ff       	call   0x403297
40839f:	56                   	push   %esi
4083a0:	8b c8                	mov    %eax,%ecx
4083a2:	e8 bb ad ff ff       	call   0x403162
4083a7:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
4083ab:	e8 7d d6 ff ff       	call   0x405a2d
4083b0:	a1 90 66 41 00       	mov    0x416690,%eax
4083b5:	89 7c 24 0c          	mov    %edi,0xc(%esp)
4083b9:	39 b8 14 0a 00 00    	cmp    %edi,0xa14(%eax)
4083bf:	0f 84 94 00 00 00    	je     0x408459
4083c5:	8d 44 24 14          	lea    0x14(%esp),%eax
4083c9:	50                   	push   %eax
4083ca:	ff 15 9c 20 41 00    	call   *0x41209c
4083d0:	0f b7 44 24 20       	movzwl 0x20(%esp),%eax
4083d5:	50                   	push   %eax
4083d6:	0f b7 44 24 22       	movzwl 0x22(%esp),%eax
4083db:	50                   	push   %eax
4083dc:	0f b7 44 24 24       	movzwl 0x24(%esp),%eax
4083e1:	50                   	push   %eax
4083e2:	0f b7 44 24 20       	movzwl 0x20(%esp),%eax
4083e7:	50                   	push   %eax
4083e8:	0f b7 44 24 26       	movzwl 0x26(%esp),%eax
4083ed:	50                   	push   %eax
4083ee:	0f b7 44 24 2e       	movzwl 0x2e(%esp),%eax
4083f3:	50                   	push   %eax
4083f4:	8d 84 24 90 00 00 00 	lea    0x90(%esp),%eax
4083fb:	68 54 29 41 00       	push   $0x412954
408400:	50                   	push   %eax
408401:	ff 15 9c 22 41 00    	call   *0x41229c
408407:	8b 0d 90 66 41 00    	mov    0x416690,%ecx
40840d:	8d 84 24 98 00 00 00 	lea    0x98(%esp),%eax
408414:	83 c4 20             	add    $0x20,%esp
408417:	50                   	push   %eax
408418:	8d 41 10             	lea    0x10(%ecx),%eax
40841b:	83 c1 0c             	add    $0xc,%ecx
40841e:	50                   	push   %eax
40841f:	e8 73 ae ff ff       	call   0x403297
408424:	8b c8                	mov    %eax,%ecx
408426:	e8 6c ae ff ff       	call   0x403297
40842b:	a1 90 66 41 00       	mov    0x416690,%eax
408430:	57                   	push   %edi
408431:	68 80 00 00 00       	push   $0x80
408436:	6a 02                	push   $0x2
408438:	57                   	push   %edi
408439:	6a 01                	push   $0x1
40843b:	68 00 00 00 10       	push   $0x10000000
408440:	ff 70 0c             	push   0xc(%eax)
408443:	ff 15 94 20 41 00    	call   *0x412094
408449:	8b 0d 90 66 41 00    	mov    0x416690,%ecx
40844f:	50                   	push   %eax
408450:	89 41 04             	mov    %eax,0x4(%ecx)
408453:	ff 15 00 22 41 00    	call   *0x412200
408459:	8b 44 24 10          	mov    0x10(%esp),%eax
40845d:	89 44 24 64          	mov    %eax,0x64(%esp)
408461:	8d 44 24 40          	lea    0x40(%esp),%eax
408465:	50                   	push   %eax
408466:	c7 44 24 48 b3 7c 40 	movl   $0x407cb3,0x48(%esp)
40846d:	00
40846e:	89 5c 24 54          	mov    %ebx,0x54(%esp)
408472:	ff 15 ac 22 41 00    	call   *0x4122ac
408478:	ff 75 08             	push   0x8(%ebp)
40847b:	53                   	push   %ebx
40847c:	57                   	push   %edi
40847d:	6a fd                	push   $0xfffffffd
40847f:	57                   	push   %edi
408480:	57                   	push   %edi
408481:	57                   	push   %edi
408482:	57                   	push   %edi
408483:	57                   	push   %edi
408484:	57                   	push   %edi
408485:	ff b4 24 8c 00 00 00 	push   0x8c(%esp)
40848c:	57                   	push   %edi
40848d:	ff 15 94 22 41 00    	call   *0x412294
408493:	6a 07                	push   $0x7
408495:	59                   	pop    %ecx
408496:	8b d8                	mov    %eax,%ebx
408498:	8d 7c 24 24          	lea    0x24(%esp),%edi
40849c:	33 c0                	xor    %eax,%eax
40849e:	50                   	push   %eax
40849f:	50                   	push   %eax
4084a0:	f3 ab                	rep stos %eax,%es:(%edi)
4084a2:	8b 3d 8c 22 41 00    	mov    0x41228c,%edi
4084a8:	8d 44 24 2c          	lea    0x2c(%esp),%eax
4084ac:	53                   	push   %ebx
4084ad:	50                   	push   %eax
4084ae:	ff d7                	call   *%edi
4084b0:	85 c0                	test   %eax,%eax
4084b2:	74 2d                	je     0x4084e1
4084b4:	83 ce ff             	or     $0xffffffff,%esi
4084b7:	3b c6                	cmp    %esi,%eax
4084b9:	74 2a                	je     0x4084e5
4084bb:	8d 44 24 24          	lea    0x24(%esp),%eax
4084bf:	50                   	push   %eax
4084c0:	ff 15 c0 22 41 00    	call   *0x4122c0
4084c6:	8d 44 24 24          	lea    0x24(%esp),%eax
4084ca:	50                   	push   %eax
4084cb:	ff 15 90 22 41 00    	call   *0x412290
4084d1:	6a 00                	push   $0x0
4084d3:	6a 00                	push   $0x0
4084d5:	53                   	push   %ebx
4084d6:	8d 44 24 30          	lea    0x30(%esp),%eax
4084da:	50                   	push   %eax
4084db:	ff d7                	call   *%edi
4084dd:	85 c0                	test   %eax,%eax
4084df:	75 d6                	jne    0x4084b7
4084e1:	8b 74 24 2c          	mov    0x2c(%esp),%esi
4084e5:	8b 4c 24 10          	mov    0x10(%esp),%ecx
4084e9:	e8 3f d5 ff ff       	call   0x405a2d
4084ee:	5f                   	pop    %edi
4084ef:	8b c6                	mov    %esi,%eax
4084f1:	5e                   	pop    %esi
4084f2:	5b                   	pop    %ebx
4084f3:	8b e5                	mov    %ebp,%esp
4084f5:	5d                   	pop    %ebp
4084f6:	c2 04 00             	ret    $0x4
4084f9:	a1 90 66 41 00       	mov    0x416690,%eax
4084fe:	8b 80 50 0a 00 00    	mov    0xa50(%eax),%eax
408504:	c3                   	ret
408505:	a1 14 78 41 00       	mov    0x417814,%eax
40850a:	56                   	push   %esi
40850b:	8b 35 00 22 41 00    	mov    0x412200,%esi
408511:	85 c0                	test   %eax,%eax
408513:	74 03                	je     0x408518
408515:	50                   	push   %eax
408516:	ff d6                	call   *%esi
408518:	a1 0c 78 41 00       	mov    0x41780c,%eax
40851d:	85 c0                	test   %eax,%eax
40851f:	74 03                	je     0x408524
408521:	50                   	push   %eax
408522:	ff d6                	call   *%esi
408524:	b9 f4 77 41 00       	mov    $0x4177f4,%ecx
408529:	e8 5d 59 00 00       	call   0x40de8b
40852e:	68 c8 77 41 00       	push   $0x4177c8
408533:	ff 15 48 21 41 00    	call   *0x412148
408539:	8b 0d b8 77 41 00    	mov    0x4177b8,%ecx
40853f:	85 c9                	test   %ecx,%ecx
408541:	74 06                	je     0x408549