40a24a:	50                   	push   %eax
40a24b:	8b 45 08             	mov    0x8(%ebp),%eax
40a24e:	ff 70 0c             	push   0xc(%eax)
40a251:	ff 70 08             	push   0x8(%eax)
40a254:	e8 2b f6 ff ff       	call   0x409884
40a259:	0f b7 c0             	movzwl %ax,%eax
40a25c:	8b 04 85 20 e7 46 00 	mov    0x46e720(,%eax,4),%eax
40a263:	e8 9c f6 ff ff       	call   0x409904
40a268:	59                   	pop    %ecx
40a269:	83 45 fc 03          	addl   $0x3,-0x4(%ebp)
40a26d:	e9 62 01 00 00       	jmp    0x40a3d4
40a272:	ba 30 a4 40 00       	mov    $0x40a430,%edx
40a277:	b9 03 00 00 00       	mov    $0x3,%ecx
40a27c:	8b c6                	mov    %esi,%eax
40a27e:	e8 c9 e4 ff ff       	call   0x40874c
40a283:	85 c0                	test   %eax,%eax
40a285:	75 32                	jne    0x40a2b9
40a287:	55                   	push   %ebp
40a288:	e8 0f f7 ff ff       	call   0x40999c
40a28d:	59                   	pop    %ecx
40a28e:	8b 45 08             	mov    0x8(%ebp),%eax
40a291:	50                   	push   %eax
40a292:	8b 45 08             	mov    0x8(%ebp),%eax
40a295:	ff 70 0c             	push   0xc(%eax)
40a298:	ff 70 08             	push   0x8(%eax)
40a29b:	e8 e4 f5 ff ff       	call   0x409884
40a2a0:	0f b7 c0             	movzwl %ax,%eax
40a2a3:	8b 04 85 04 e7 46 00 	mov    0x46e704(,%eax,4),%eax
40a2aa:	e8 55 f6 ff ff       	call   0x409904
40a2af:	59                   	pop    %ecx
40a2b0:	83 45 fc 02          	addl   $0x2,-0x4(%ebp)
40a2b4:	e9 1b 01 00 00       	jmp    0x40a3d4
40a2b9:	8b 45 08             	mov    0x8(%ebp),%eax
40a2bc:	50                   	push   %eax
40a2bd:	8d 45 fb             	lea    -0x5(%ebp),%eax
40a2c0:	ba 01 00 00 00       	mov    $0x1,%edx
40a2c5:	e8 f6 f5 ff ff       	call   0x4098c0
40a2ca:	59                   	pop    %ecx
40a2cb:	e9 04 01 00 00       	jmp    0x40a3d4
40a2d0:	55                   	push   %ebp
40a2d1:	e8 9a f6 ff ff       	call   0x409970
40a2d6:	59                   	pop    %ecx
40a2d7:	8b 45 08             	mov    0x8(%ebp),%eax
40a2da:	50                   	push   %eax
40a2db:	a1 8c e6 46 00       	mov    0x46e68c,%eax
40a2e0:	e8 9f f9 ff ff       	call   0x409c84
40a2e5:	59                   	pop    %ecx
40a2e6:	55                   	push   %ebp
40a2e7:	e8 e8 f6 ff ff       	call   0x4099d4
40a2ec:	59                   	pop    %ecx
40a2ed:	66 83 7d ea 00       	cmpw   $0x0,-0x16(%ebp)
40a2f2:	75 12                	jne    0x40a306
40a2f4:	66 83 7d e8 00       	cmpw   $0x0,-0x18(%ebp)
40a2f9:	75 0b                	jne    0x40a306
40a2fb:	66 83 7d e6 00       	cmpw   $0x0,-0x1a(%ebp)
40a300:	0f 84 ce 00 00 00    	je     0x40a3d4
40a306:	8b 45 08             	mov    0x8(%ebp),%eax
40a309:	50                   	push   %eax
40a30a:	b8 34 a4 40 00       	mov    $0x40a434,%eax
40a30f:	ba 01 00 00 00       	mov    $0x1,%edx
40a314:	e8 a7 f5 ff ff       	call   0x4098c0
40a319:	59                   	pop    %ecx
40a31a:	8b 45 08             	mov    0x8(%ebp),%eax
40a31d:	50                   	push   %eax
40a31e:	a1 a4 e6 46 00       	mov    0x46e6a4,%eax
40a323:	e8 5c f9 ff ff       	call   0x409c84
40a328:	59                   	pop    %ecx
40a329:	e9 a6 00 00 00       	jmp    0x40a3d4
40a32e:	80 3d 89 e6 46 00 00 	cmpb   $0x0,0x46e689
40a335:	0f 84 99 00 00 00    	je     0x40a3d4
40a33b:	8b 45 08             	mov    0x8(%ebp),%eax
40a33e:	50                   	push   %eax
40a33f:	b8 89 e6 46 00       	mov    $0x46e689,%eax
40a344:	ba 01 00 00 00       	mov    $0x1,%edx
40a349:	e8 72 f5 ff ff       	call   0x4098c0
40a34e:	59                   	pop    %ecx
40a34f:	e9 80 00 00 00       	jmp    0x40a3d4
40a354:	80 3d 94 e6 46 00 00 	cmpb   $0x0,0x46e694
40a35b:	74 77                	je     0x40a3d4
40a35d:	8b 45 08             	mov    0x8(%ebp),%eax
40a360:	50                   	push   %eax
40a361:	b8 94 e6 46 00       	mov    $0x46e694,%eax
40a366:	ba 01 00 00 00       	mov    $0x1,%edx
40a36b:	e8 50 f5 ff ff       	call   0x4098c0
40a370:	59                   	pop    %ecx
40a371:	eb 61                	jmp    0x40a3d4
40a373:	8b 75 fc             	mov    -0x4(%ebp),%esi
40a376:	eb 1e                	jmp    0x40a396
40a378:	25 ff 00 00 00       	and    $0xff,%eax
40a37d:	0f a3 05 0c 31 46 00 	bt     %eax,0x46310c
40a384:	73 0d                	jae    0x40a393
40a386:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a389:	e8 be 1d 00 00       	call   0x40c14c
40a38e:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a391:	eb 03                	jmp    0x40a396
40a393:	ff 45 fc             	incl   -0x4(%ebp)
40a396:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a399:	8a 00                	mov    (%eax),%al
40a39b:	84 c0                	test   %al,%al
40a39d:	74 05                	je     0x40a3a4
40a39f:	3a 45 fb             	cmp    -0x5(%ebp),%al
40a3a2:	75 d4                	jne    0x40a378
40a3a4:	8b 45 08             	mov    0x8(%ebp),%eax
40a3a7:	50                   	push   %eax
40a3a8:	8b 55 fc             	mov    -0x4(%ebp),%edx
40a3ab:	2b d6                	sub    %esi,%edx
40a3ad:	8b c6                	mov    %esi,%eax
40a3af:	e8 0c f5 ff ff       	call   0x4098c0
40a3b4:	59                   	pop    %ecx
40a3b5:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a3b8:	80 38 00             	cmpb   $0x0,(%eax)
40a3bb:	74 17                	je     0x40a3d4
40a3bd:	ff 45 fc             	incl   -0x4(%ebp)
40a3c0:	eb 12                	jmp    0x40a3d4
40a3c2:	8b 45 08             	mov    0x8(%ebp),%eax
40a3c5:	50                   	push   %eax
40a3c6:	8d 45 fb             	lea    -0x5(%ebp),%eax
40a3c9:	ba 01 00 00 00       	mov    $0x1,%edx
40a3ce:	e8 ed f4 ff ff       	call   0x4098c0
40a3d3:	59                   	pop    %ecx
40a3d4:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a3d7:	8a 00                	mov    (%eax),%al
40a3d9:	84 c0                	test   %al,%al
40a3db:	0f 85 fa f8 ff ff    	jne    0x409cdb
40a3e1:	8b 45 08             	mov    0x8(%ebp),%eax
40a3e4:	ff 88 f8 fe ff ff    	decl   -0x108(%eax)
40a3ea:	33 c0                	xor    %eax,%eax
40a3ec:	5a                   	pop    %edx
40a3ed:	59                   	pop    %ecx
40a3ee:	59                   	pop    %ecx
40a3ef:	64 89 10             	mov    %edx,%fs:(%eax)
40a3f2:	68 0c a4 40 00       	push   $0x40a40c
40a3f7:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a3fa:	ba 02 00 00 00       	mov    $0x2,%edx
40a3ff:	e8 b8 9b ff ff       	call   0x403fbc
40a404:	c3                   	ret
40a405:	e9 92 95 ff ff       	jmp    0x40399c
40a40a:	eb eb                	jmp    0x40a3f7
40a40c:	5e                   	pop    %esi
40a40d:	5b                   	pop    %ebx
40a40e:	8b e5                	mov    %ebp,%esp
40a410:	5d                   	pop    %ebp
40a411:	c3                   	ret
40a412:	00 00                	add    %al,(%eax)
40a414:	41                   	inc    %ecx
40a415:	4d                   	dec    %ebp
40a416:	2f                   	das
40a417:	50                   	push   %eax
40a418:	4d                   	dec    %ebp
40a419:	00 00                	add    %al,(%eax)
40a41b:	00 41 2f             	add    %al,0x2f(%ecx)
40a41e:	50                   	push   %eax
40a41f:	00 41 4d             	add    %al,0x4d(%ecx)
40a422:	50                   	push   %eax
40a423:	4d                   	dec    %ebp
40a424:	00 00                	add    %al,(%eax)
40a426:	00 00                	add    %al,(%eax)
40a428:	41                   	inc    %ecx
40a429:	41                   	inc    %ecx
40a42a:	41                   	inc    %ecx
40a42b:	41                   	inc    %ecx
40a42c:	00 00                	add    %al,(%eax)
40a42e:	00 00                	add    %al,(%eax)
40a430:	41                   	inc    %ecx
40a431:	41                   	inc    %ecx
40a432:	41                   	inc    %ecx
40a433:	00 20                	add    %ah,(%eax)
40a435:	00 00                	add    %al,(%eax)
40a437:	00 55 8b             	add    %dl,-0x75(%ebp)
40a43a:	ec                   	in     (%dx),%al
40a43b:	81 c4 f8 fe ff ff    	add    $0xfffffef8,%esp
40a441:	53                   	push   %ebx
40a442:	56                   	push   %esi
40a443:	8b da                	mov    %edx,%ebx
40a445:	8b f0                	mov    %eax,%esi
40a447:	33 c0                	xor    %eax,%eax
40a449:	89 85 fc fe ff ff    	mov    %eax,-0x104(%ebp)
40a44f:	33 c0                	xor    %eax,%eax
40a451:	89 85 f8 fe ff ff    	mov    %eax,-0x108(%ebp)
40a457:	85 db                	test   %ebx,%ebx
40a459:	74 0b                	je     0x40a466
40a45b:	55                   	push   %ebp
40a45c:	8b c3                	mov    %ebx,%eax
40a45e:	e8 21 f8 ff ff       	call   0x409c84
40a463:	59                   	pop    %ecx
40a464:	eb 0c                	jmp    0x40a472
40a466:	55                   	push   %ebp
40a467:	b8 90 a4 40 00       	mov    $0x40a490,%eax
40a46c:	e8 13 f8 ff ff       	call   0x409c84
40a471:	59                   	pop    %ecx
40a472:	8d 95 00 ff ff ff    	lea    -0x100(%ebp),%edx
40a478:	8b c6                	mov    %esi,%eax
40a47a:	8b 8d fc fe ff ff    	mov    -0x104(%ebp),%ecx
40a480:	e8 03 9c ff ff       	call   0x404088
40a485:	5e                   	pop    %esi
40a486:	5b                   	pop    %ebx
40a487:	8b e5                	mov    %ebp,%esp
40a489:	5d                   	pop    %ebp
40a48a:	c2 08 00             	ret    $0x8
40a48d:	00 00                	add    %al,(%eax)
40a48f:	00 43 00             	add    %al,0x0(%ebx)
40a492:	00 00                	add    %al,(%eax)
40a494:	55                   	push   %ebp
40a495:	8b ec                	mov    %esp,%ebp
40a497:	ff 75 0c             	push   0xc(%ebp)
40a49a:	ff 75 08             	push   0x8(%ebp)
40a49d:	33 d2                	xor    %edx,%edx
40a49f:	e8 94 ff ff ff       	call   0x40a438
40a4a4:	5d                   	pop    %ebp
40a4a5:	c2 08 00             	ret    $0x8
40a4a8:	53                   	push   %ebx
40a4a9:	56                   	push   %esi
40a4aa:	57                   	push   %edi
40a4ab:	8b fa                	mov    %edx,%edi
40a4ad:	8b f0                	mov    %eax,%esi
40a4af:	8b 1f                	mov    (%edi),%ebx
40a4b1:	eb 01                	jmp    0x40a4b4
40a4b3:	43                   	inc    %ebx
40a4b4:	8b c6                	mov    %esi,%eax
40a4b6:	e8 9d 9d ff ff       	call   0x404258
40a4bb:	3b d8                	cmp    %eax,%ebx
40a4bd:	7f 07                	jg     0x40a4c6
40a4bf:	80 7c 1e ff 20       	cmpb   $0x20,-0x1(%esi,%ebx,1)
40a4c4:	74 ed                	je     0x40a4b3
40a4c6:	89 1f                	mov    %ebx,(%edi)
40a4c8:	5f                   	pop    %edi
40a4c9:	5e                   	pop    %esi
40a4ca:	5b                   	pop    %ebx
40a4cb:	c3                   	ret
40a4cc:	55                   	push   %ebp
40a4cd:	8b ec                	mov    %esp,%ebp
40a4cf:	83 c4 f4             	add    $0xfffffff4,%esp
40a4d2:	53                   	push   %ebx
40a4d3:	56                   	push   %esi
40a4d4:	57                   	push   %edi
40a4d5:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40a4d8:	89 55 fc             	mov    %edx,-0x4(%ebp)
40a4db:	8b f8                	mov    %eax,%edi
40a4dd:	c6 45 f7 00          	movb   $0x0,-0x9(%ebp)
40a4e1:	8b 45 08             	mov    0x8(%ebp),%eax
40a4e4:	c6 00 00             	movb   $0x0,(%eax)
40a4e7:	8b 55 fc             	mov    -0x4(%ebp),%edx
40a4ea:	8b c7                	mov    %edi,%eax
40a4ec:	e8 b7 ff ff ff       	call   0x40a4a8
40a4f1:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40a4f4:	8b 1b                	mov    (%ebx),%ebx
40a4f6:	33 f6                	xor    %esi,%esi
40a4f8:	eb 17                	jmp    0x40a511
40a4fa:	8b c6                	mov    %esi,%eax
40a4fc:	03 c0                	add    %eax,%eax
40a4fe:	8d 04 80             	lea    (%eax,%eax,4),%eax
40a501:	33 d2                	xor    %edx,%edx
40a503:	8a 54 1f ff          	mov    -0x1(%edi,%ebx,1),%dl
40a507:	66 83 ea 30          	sub    $0x30,%dx
40a50b:	66 03 c2             	add    %dx,%ax
40a50e:	8b f0                	mov    %eax,%esi
40a510:	43                   	inc    %ebx
40a511:	8b c7                	mov    %edi,%eax
40a513:	e8 40 9d ff ff       	call   0x404258
40a518:	3b d8                	cmp    %eax,%ebx
40a51a:	7f 11                	jg     0x40a52d
40a51c:	8a 44 1f ff          	mov    -0x1(%edi,%ebx,1),%al
40a520:	04 d0                	add    $0xd0,%al
40a522:	2c 0a                	sub    $0xa,%al
40a524:	73 07                	jae    0x40a52d
40a526:	66 81 fe e8 03       	cmp    $0x3e8,%si
40a52b:	72 cd                	jb     0x40a4fa
40a52d:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a530:	3b 18                	cmp    (%eax),%ebx
40a532:	7e 1d                	jle    0x40a551
40a534:	8b c3                	mov    %ebx,%eax
40a536:	8b 55 fc             	mov    -0x4(%ebp),%edx
40a539:	8b 12                	mov    (%edx),%edx
40a53b:	2a c2                	sub    %dl,%al
40a53d:	8b 55 08             	mov    0x8(%ebp),%edx
40a540:	88 02                	mov    %al,(%edx)
40a542:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a545:	89 18                	mov    %ebx,(%eax)
40a547:	8b 45 f8             	mov    -0x8(%ebp),%eax
40a54a:	66 89 30             	mov    %si,(%eax)
40a54d:	c6 45 f7 01          	movb   $0x1,-0x9(%ebp)
40a551:	8a 45 f7             	mov    -0x9(%ebp),%al
40a554:	5f                   	pop    %edi
40a555:	5e                   	pop    %esi
40a556:	5b                   	pop    %ebx
40a557:	8b e5                	mov    %ebp,%esp
40a559:	5d                   	pop    %ebp
40a55a:	c2 04 00             	ret    $0x4
40a55d:	8d 40 00             	lea    0x0(%eax),%eax
40a560:	55                   	push   %ebp
40a561:	8b ec                	mov    %esp,%ebp
40a563:	83 c4 f8             	add    $0xfffffff8,%esp
40a566:	53                   	push   %ebx
40a567:	56                   	push   %esi
40a568:	57                   	push   %edi
40a569:	33 db                	xor    %ebx,%ebx
40a56b:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40a56e:	8b f9                	mov    %ecx,%edi
40a570:	8b f2                	mov    %edx,%esi
40a572:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a575:	33 c0                	xor    %eax,%eax
40a577:	55                   	push   %ebp
40a578:	68 d9 a5 40 00       	push   $0x40a5d9
40a57d:	64 ff 30             	push   %fs:(%eax)
40a580:	64 89 20             	mov    %esp,%fs:(%eax)
40a583:	33 db                	xor    %ebx,%ebx
40a585:	85 ff                	test   %edi,%edi
40a587:	74 3a                	je     0x40a5c3
40a589:	8b d6                	mov    %esi,%edx
40a58b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a58e:	e8 15 ff ff ff       	call   0x40a4a8
40a593:	8d 45 f8             	lea    -0x8(%ebp),%eax
40a596:	50                   	push   %eax
40a597:	8b c7                	mov    %edi,%eax
40a599:	e8 ba 9c ff ff       	call   0x404258
40a59e:	8b c8                	mov    %eax,%ecx
40a5a0:	8b 16                	mov    (%esi),%edx
40a5a2:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a5a5:	e8 0e 9f ff ff       	call   0x4044b8
40a5aa:	8b 55 f8             	mov    -0x8(%ebp),%edx
40a5ad:	8b c7                	mov    %edi,%eax
40a5af:	e8 5c d7 ff ff       	call   0x407d10
40a5b4:	85 c0                	test   %eax,%eax
40a5b6:	75 0b                	jne    0x40a5c3
40a5b8:	8b c7                	mov    %edi,%eax
40a5ba:	e8 99 9c ff ff       	call   0x404258
40a5bf:	01 06                	add    %eax,(%esi)
40a5c1:	b3 01                	mov    $0x1,%bl
40a5c3:	33 c0                	xor    %eax,%eax
40a5c5:	5a                   	pop    %edx
40a5c6:	59                   	pop    %ecx
40a5c7:	59                   	pop    %ecx
40a5c8:	64 89 10             	mov    %edx,%fs:(%eax)
40a5cb:	68 e0 a5 40 00       	push   $0x40a5e0
40a5d0:	8d 45 f8             	lea    -0x8(%ebp),%eax
40a5d3:	e8 c0 99 ff ff       	call   0x403f98
40a5d8:	c3                   	ret
40a5d9:	e9 be 93 ff ff       	jmp    0x40399c
40a5de:	eb f0                	jmp    0x40a5d0
40a5e0:	8b c3                	mov    %ebx,%eax
40a5e2:	5f                   	pop    %edi
40a5e3:	5e                   	pop    %esi
40a5e4:	5b                   	pop    %ebx
40a5e5:	59                   	pop    %ecx
40a5e6:	59                   	pop    %ecx
40a5e7:	5d                   	pop    %ebp
40a5e8:	c3                   	ret
40a5e9:	8d 40 00             	lea    0x0(%eax),%eax
40a5ec:	53                   	push   %ebx
40a5ed:	56                   	push   %esi