40f3ab:	8b 45 08             	mov    0x8(%ebp),%eax
40f3ae:	8b 48 04             	mov    0x4(%eax),%ecx
40f3b1:	8b 04 91             	mov    (%ecx,%edx,4),%eax
40f3b4:	0f bf 40 08          	movswl 0x8(%eax),%eax
40f3b8:	83 e8 47             	sub    $0x47,%eax
40f3bb:	74 2c                	je     0x40f3e9
40f3bd:	48                   	dec    %eax
40f3be:	74 0e                	je     0x40f3ce
40f3c0:	83 e8 37             	sub    $0x37,%eax
40f3c3:	0f 84 de 53 03 00    	je     0x4447a7
40f3c9:	42                   	inc    %edx
40f3ca:	89 16                	mov    %edx,(%esi)
40f3cc:	eb e3                	jmp    0x40f3b1
40f3ce:	85 ff                	test   %edi,%edi
40f3d0:	75 14                	jne    0x40f3e6
40f3d2:	8b 45 14             	mov    0x14(%ebp),%eax
40f3d5:	89 10                	mov    %edx,(%eax)
40f3d7:	8d 42 01             	lea    0x1(%edx),%eax
40f3da:	89 06                	mov    %eax,(%esi)
40f3dc:	33 c0                	xor    %eax,%eax
40f3de:	5f                   	pop    %edi
40f3df:	5e                   	pop    %esi
40f3e0:	5b                   	pop    %ebx
40f3e1:	59                   	pop    %ecx
40f3e2:	5d                   	pop    %ebp
40f3e3:	c2 10 00             	ret    $0x10
40f3e6:	4f                   	dec    %edi
40f3e7:	eb e0                	jmp    0x40f3c9
40f3e9:	47                   	inc    %edi
40f3ea:	eb dd                	jmp    0x40f3c9
40f3ec:	cc                   	int3
40f3ed:	cc                   	int3
40f3ee:	cc                   	int3
40f3ef:	cc                   	int3
40f3f0:	55                   	push   %ebp
40f3f1:	8b ec                	mov    %esp,%ebp
40f3f3:	83 ec 1c             	sub    $0x1c,%esp
40f3f6:	8b 55 14             	mov    0x14(%ebp),%edx
40f3f9:	53                   	push   %ebx
40f3fa:	56                   	push   %esi
40f3fb:	8b 75 10             	mov    0x10(%ebp),%esi
40f3fe:	8b d9                	mov    %ecx,%ebx
40f400:	ff 02                	incl   (%edx)
40f402:	57                   	push   %edi
40f403:	8b 3a                	mov    (%edx),%edi
40f405:	8b 76 04             	mov    0x4(%esi),%esi
40f408:	8b 04 be             	mov    (%esi,%edi,4),%eax
40f40b:	8d 0c be             	lea    (%esi,%edi,4),%ecx
40f40e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40f411:	66 83 78 08 47       	cmpw   $0x47,0x8(%eax)
40f416:	0f 85 7e 01 00 00    	jne    0x40f59a
40f41c:	8d 47 01             	lea    0x1(%edi),%eax
40f41f:	33 ff                	xor    %edi,%edi
40f421:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f424:	89 45 14             	mov    %eax,0x14(%ebp)
40f427:	8b c8                	mov    %eax,%ecx
40f429:	89 02                	mov    %eax,(%edx)
40f42b:	8b 04 8e             	mov    (%esi,%ecx,4),%eax
40f42e:	0f bf 40 08          	movswl 0x8(%eax),%eax
40f432:	83 f8 47             	cmp    $0x47,%eax
40f435:	7c 15                	jl     0x40f44c
40f437:	83 e8 47             	sub    $0x47,%eax
40f43a:	0f 84 54 01 00 00    	je     0x40f594
40f440:	48                   	dec    %eax
40f441:	74 0e                	je     0x40f451
40f443:	83 e8 37             	sub    $0x37,%eax
40f446:	0f 84 75 53 03 00    	je     0x4447c1
40f44c:	8d 41 01             	lea    0x1(%ecx),%eax
40f44f:	eb d6                	jmp    0x40f427
40f451:	85 ff                	test   %edi,%edi
40f453:	0f 85 32 01 00 00    	jne    0x40f58b
40f459:	8b 5d 18             	mov    0x18(%ebp),%ebx
40f45c:	8b f9                	mov    %ecx,%edi
40f45e:	8b 75 0c             	mov    0xc(%ebp),%esi
40f461:	8d 47 01             	lea    0x1(%edi),%eax
40f464:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
40f46a:	89 02                	mov    %eax,(%edx)
40f46c:	39 7d f8             	cmp    %edi,-0x8(%ebp)
40f46f:	0f 83 c8 00 00 00    	jae    0x40f53d
40f475:	8b 46 0c             	mov    0xc(%esi),%eax
40f478:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
40f47f:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
40f486:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
40f48d:	39 46 08             	cmp    %eax,0x8(%esi)
40f490:	0f 84 b8 00 00 00    	je     0x40f54e
40f496:	6a 10                	push   $0x10
40f498:	e8 59 1b 01 00       	call   0x420ff6
40f49d:	8b d8                	mov    %eax,%ebx
40f49f:	83 c4 04             	add    $0x4,%esp
40f4a2:	85 db                	test   %ebx,%ebx
40f4a4:	0f 84 f8 00 00 00    	je     0x40f5a2
40f4aa:	8d 45 e8             	lea    -0x18(%ebp),%eax
40f4ad:	c7 43 08 00 00 00 00 	movl   $0x0,0x8(%ebx)
40f4b4:	50                   	push   %eax
40f4b5:	8b cb                	mov    %ebx,%ecx
40f4b7:	e8 04 a6 ff ff       	call   0x409ac0
40f4bc:	8b 4e 08             	mov    0x8(%esi),%ecx
40f4bf:	8b 46 04             	mov    0x4(%esi),%eax
40f4c2:	57                   	push   %edi
40f4c3:	89 1c 88             	mov    %ebx,(%eax,%ecx,4)
40f4c6:	ff 46 08             	incl   0x8(%esi)
40f4c9:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
40f4cd:	8b 4e 08             	mov    0x8(%esi),%ecx
40f4d0:	8b 46 04             	mov    0x4(%esi),%eax
40f4d3:	0f 85 4a 53 03 00    	jne    0x444823
40f4d9:	ff 74 88 fc          	push   -0x4(%eax,%ecx,4)
40f4dd:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f4e0:	8d 45 14             	lea    0x14(%ebp),%eax
40f4e3:	50                   	push   %eax
40f4e4:	ff 75 10             	push   0x10(%ebp)
40f4e7:	e8 14 ab ff ff       	call   0x40a000
40f4ec:	85 c0                	test   %eax,%eax
40f4ee:	0f 88 f6 52 03 00    	js     0x4447ea
40f4f4:	8b 5d 18             	mov    0x18(%ebp),%ebx
40f4f7:	8b 4d 14             	mov    0x14(%ebp),%ecx
40f4fa:	ff 03                	incl   (%ebx)
40f4fc:	3b cf                	cmp    %edi,%ecx
40f4fe:	74 35                	je     0x40f535
40f500:	8b 55 10             	mov    0x10(%ebp),%edx
40f503:	8b 42 04             	mov    0x4(%edx),%eax
40f506:	8b 04 88             	mov    (%eax,%ecx,4),%eax
40f509:	66 83 78 08 40       	cmpw   $0x40,0x8(%eax)
40f50e:	0f 85 c1 52 03 00    	jne    0x4447d5
40f514:	8d 41 01             	lea    0x1(%ecx),%eax
40f517:	3b c7                	cmp    %edi,%eax
40f519:	0f 84 b6 52 03 00    	je     0x4447d5
40f51f:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40f522:	89 45 14             	mov    %eax,0x14(%ebp)
40f525:	e8 f6 a4 ff ff       	call   0x409a20
40f52a:	39 7d 14             	cmp    %edi,0x14(%ebp)
40f52d:	0f 82 42 ff ff ff    	jb     0x40f475
40f533:	eb 08                	jmp    0x40f53d
40f535:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40f538:	e8 e3 a4 ff ff       	call   0x409a20
40f53d:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
40f541:	75 66                	jne    0x40f5a9
40f543:	33 c0                	xor    %eax,%eax
40f545:	5f                   	pop    %edi
40f546:	5e                   	pop    %esi
40f547:	5b                   	pop    %ebx
40f548:	8b e5                	mov    %ebp,%esp
40f54a:	5d                   	pop    %ebp
40f54b:	c2 18 00             	ret    $0x18
40f54e:	03 c0                	add    %eax,%eax
40f550:	83 f8 08             	cmp    $0x8,%eax
40f553:	73 05                	jae    0x40f55a
40f555:	b8 08 00 00 00       	mov    $0x8,%eax
40f55a:	33 c9                	xor    %ecx,%ecx
40f55c:	89 46 0c             	mov    %eax,0xc(%esi)
40f55f:	ba 04 00 00 00       	mov    $0x4,%edx
40f564:	f7 e2                	mul    %edx
40f566:	0f 90 c1             	seto   %cl
40f569:	f7 d9                	neg    %ecx
40f56b:	0b c8                	or     %eax,%ecx
40f56d:	51                   	push   %ecx
40f56e:	e8 83 1a 01 00       	call   0x420ff6
40f573:	8b d8                	mov    %eax,%ebx
40f575:	83 c4 04             	add    $0x4,%esp
40f578:	8b 46 04             	mov    0x4(%esi),%eax
40f57b:	85 c0                	test   %eax,%eax
40f57d:	0f 85 77 52 03 00    	jne    0x4447fa
40f583:	89 5e 04             	mov    %ebx,0x4(%esi)
40f586:	e9 0b ff ff ff       	jmp    0x40f496
40f58b:	4f                   	dec    %edi
40f58c:	8d 41 01             	lea    0x1(%ecx),%eax
40f58f:	e9 93 fe ff ff       	jmp    0x40f427
40f594:	47                   	inc    %edi
40f595:	e9 b2 fe ff ff       	jmp    0x40f44c
40f59a:	8b 41 fc             	mov    -0x4(%ecx),%eax
40f59d:	e9 23 52 03 00       	jmp    0x4447c5
40f5a2:	33 db                	xor    %ebx,%ebx
40f5a4:	e9 13 ff ff ff       	jmp    0x40f4bc
40f5a9:	53                   	push   %ebx
40f5aa:	56                   	push   %esi
40f5ab:	e8 3e b0 06 00       	call   0x47a5ee
40f5b0:	eb 91                	jmp    0x40f543
40f5b2:	cc                   	int3
40f5b3:	cc                   	int3
40f5b4:	cc                   	int3
40f5b5:	cc                   	int3
40f5b6:	cc                   	int3
40f5b7:	cc                   	int3
40f5b8:	cc                   	int3
40f5b9:	cc                   	int3
40f5ba:	cc                   	int3
40f5bb:	cc                   	int3
40f5bc:	cc                   	int3
40f5bd:	cc                   	int3
40f5be:	cc                   	int3
40f5bf:	cc                   	int3
40f5c0:	55                   	push   %ebp
40f5c1:	8b ec                	mov    %esp,%ebp
40f5c3:	83 e4 f8             	and    $0xfffffff8,%esp
40f5c6:	83 ec 38             	sub    $0x38,%esp
40f5c9:	8b 55 10             	mov    0x10(%ebp),%edx
40f5cc:	56                   	push   %esi
40f5cd:	8b f1                	mov    %ecx,%esi
40f5cf:	c7 44 24 1c 84 fb 48 	movl   $0x48fb84,0x1c(%esp)
40f5d6:	00
40f5d7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40f5da:	8b 12                	mov    (%edx),%edx
40f5dc:	c7 44 24 20 00 00 00 	movl   $0x0,0x20(%esp)
40f5e3:	00
40f5e4:	c7 44 24 24 00 00 00 	movl   $0x0,0x24(%esp)
40f5eb:	00
40f5ec:	8b 41 04             	mov    0x4(%ecx),%eax
40f5ef:	c7 44 24 28 00 00 00 	movl   $0x0,0x28(%esp)
40f5f6:	00
40f5f7:	57                   	push   %edi
40f5f8:	89 74 24 18          	mov    %esi,0x18(%esp)
40f5fc:	8b 04 90             	mov    (%eax,%edx,4),%eax
40f5ff:	8b 38                	mov    (%eax),%edi
40f601:	0f bf 40 0a          	movswl 0xa(%eax),%eax
40f605:	89 44 24 1c          	mov    %eax,0x1c(%esp)
40f609:	a1 64 74 4c 00       	mov    0x4c7464,%eax
40f60e:	89 7c 24 10          	mov    %edi,0x10(%esp)
40f612:	a8 01                	test   $0x1,%al
40f614:	0f 84 96 01 00 00    	je     0x40f7b0
40f61a:	3b 3d 68 74 4c 00    	cmp    0x4c7468,%edi
40f620:	0f 84 22 52 03 00    	je     0x444848
40f626:	8d 86 70 04 00 00    	lea    0x470(%esi),%eax
40f62c:	57                   	push   %edi
40f62d:	8b c8                	mov    %eax,%ecx
40f62f:	89 44 24 18          	mov    %eax,0x18(%esp)
40f633:	e8 58 9a 00 00       	call   0x419090
40f638:	8b ce                	mov    %esi,%ecx
40f63a:	8a 40 20             	mov    0x20(%eax),%al
40f63d:	88 44 24 0c          	mov    %al,0xc(%esp)
40f641:	8d 44 24 0c          	lea    0xc(%esp),%eax
40f645:	ff 74 24 0c          	push   0xc(%esp)
40f649:	50                   	push   %eax
40f64a:	ff 75 10             	push   0x10(%ebp)
40f64d:	8d 44 24 2c          	lea    0x2c(%esp),%eax
40f651:	ff 75 0c             	push   0xc(%ebp)
40f654:	50                   	push   %eax
40f655:	ff 75 08             	push   0x8(%ebp)
40f658:	e8 93 fd ff ff       	call   0x40f3f0
40f65d:	85 c0                	test   %eax,%eax
40f65f:	0f 88 20 52 03 00    	js     0x444885
40f665:	57                   	push   %edi
40f666:	8d 8e 70 04 00 00    	lea    0x470(%esi),%ecx
40f66c:	e8 1f 9a 00 00       	call   0x419090
40f671:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40f675:	3b 48 18             	cmp    0x18(%eax),%ecx
40f678:	0f 8c ec 51 03 00    	jl     0x44486a
40f67e:	57                   	push   %edi
40f67f:	8d 8e 70 04 00 00    	lea    0x470(%esi),%ecx
40f685:	e8 06 9a 00 00       	call   0x419090
40f68a:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40f68e:	3b 48 1c             	cmp    0x1c(%eax),%ecx
40f691:	0f 8f d3 51 03 00    	jg     0x44486a
40f697:	8b 7d 14             	mov    0x14(%ebp),%edi
40f69a:	8b cf                	mov    %edi,%ecx
40f69c:	e8 7f a3 ff ff       	call   0x409a20
40f6a1:	c7 47 0c 01 00 00 00 	movl   $0x1,0xc(%edi)
40f6a8:	c7 07 01 00 00 00    	movl   $0x1,(%edi)
40f6ae:	8b 06                	mov    (%esi),%eax
40f6b0:	8b 48 04             	mov    0x4(%eax),%ecx
40f6b3:	8b 44 31 08          	mov    0x8(%ecx,%esi,1),%eax
40f6b7:	03 ce                	add    %esi,%ecx
40f6b9:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
40f6bd:	0f 85 28 01 00 00    	jne    0x40f7eb
40f6c3:	c7 40 14 00 00 00 00 	movl   $0x0,0x14(%eax)
40f6ca:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
40f6ce:	8b 41 08             	mov    0x8(%ecx),%eax
40f6d1:	0f 85 1c 01 00 00    	jne    0x40f7f3
40f6d7:	c6 40 18 00          	movb   $0x0,0x18(%eax)
40f6db:	8b 06                	mov    (%esi),%eax
40f6dd:	8b 78 04             	mov    0x4(%eax),%edi
40f6e0:	03 fe                	add    %esi,%edi
40f6e2:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
40f6e6:	0f 85 73 51 03 00    	jne    0x44485f
40f6ec:	8b 77 08             	mov    0x8(%edi),%esi
40f6ef:	8d 4e 20             	lea    0x20(%esi),%ecx
40f6f2:	e8 29 a3 ff ff       	call   0x409a20
40f6f7:	c7 46 2c 01 00 00 00 	movl   $0x1,0x2c(%esi)
40f6fe:	c7 46 20 00 00 00 00 	movl   $0x0,0x20(%esi)
40f705:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
40f709:	8b 47 08             	mov    0x8(%edi),%eax
40f70c:	0f 85 e9 00 00 00    	jne    0x40f7fb
40f712:	ff 74 24 10          	push   0x10(%esp)
40f716:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40f71a:	c6 40 30 00          	movb   $0x0,0x30(%eax)
40f71e:	e8 6d 99 00 00       	call   0x419090
40f723:	8b 7c 24 18          	mov    0x18(%esp),%edi
40f727:	ff 75 14             	push   0x14(%ebp)
40f72a:	8b 50 10             	mov    0x10(%eax),%edx
40f72d:	8b 48 14             	mov    0x14(%eax),%ecx
40f730:	8b 70 0c             	mov    0xc(%eax),%esi
40f733:	8d 44 24 24          	lea    0x24(%esp),%eax
40f737:	50                   	push   %eax
40f738:	8b 07                	mov    (%edi),%eax
40f73a:	8b 0c 08             	mov    (%eax,%ecx,1),%ecx
40f73d:	03 ca                	add    %edx,%ecx
40f73f:	03 cf                	add    %edi,%ecx
40f741:	ff d6                	call   *%esi
40f743:	85 c0                	test   %eax,%eax
40f745:	0f 88 3a 51 03 00    	js     0x444885
40f74b:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)
40f752:	00
40f753:	33 f6                	xor    %esi,%esi
40f755:	c7 44 24 20 84 fb 48 	movl   $0x48fb84,0x20(%esp)
40f75c:	00
40f75d:	39 74 24 28          	cmp    %esi,0x28(%esp)
40f761:	76 2d                	jbe    0x40f790
40f763:	8b 44 24 24          	mov    0x24(%esp),%eax
40f767:	8b 3c b0             	mov    (%eax,%esi,4),%edi
40f76a:	85 ff                	test   %edi,%edi
40f76c:	74 14                	je     0x40f782
40f76e:	8b cf                	mov    %edi,%ecx
40f770:	e8 7b a6 ff ff       	call   0x409df0
40f775:	57                   	push   %edi
40f776:	e8 f1 18 01 00       	call   0x42106c
40f77b:	8b 44 24 28          	mov    0x28(%esp),%eax
40f77f:	83 c4 04             	add    $0x4,%esp
40f782:	c7 04 b0 00 00 00 00 	movl   $0x0,(%eax,%esi,4)
40f789:	46                   	inc    %esi
40f78a:	3b 74 24 28          	cmp    0x28(%esp),%esi
40f78e:	72 d3                	jb     0x40f763
40f790:	ff 74 24 24          	push   0x24(%esp)
40f794:	c7 44 24 2c 00 00 00 	movl   $0x0,0x2c(%esp)
40f79b:	00
40f79c:	e8 cb 18 01 00       	call   0x42106c
40f7a1:	8b 44 24 10          	mov    0x10(%esp),%eax
40f7a5:	83 c4 04             	add    $0x4,%esp
40f7a8:	5f                   	pop    %edi
40f7a9:	5e                   	pop    %esi
40f7aa:	8b e5                	mov    %ebp,%esp
40f7ac:	5d                   	pop    %ebp
40f7ad:	c2 10 00             	ret    $0x10
40f7b0:	83 c8 01             	or     $0x1,%eax
40f7b3:	8d 4c 24 30          	lea    0x30(%esp),%ecx
40f7b7:	68 40 1d 49 00       	push   $0x491d40
40f7bc:	a3 64 74 4c 00       	mov    %eax,0x4c7464
40f7c1:	e8 7b 87 ff ff       	call   0x407f41
40f7c6:	8b 0d 94 72 4c 00    	mov    0x4c7294,%ecx
40f7cc:	ff 30                	push   (%eax)
40f7ce:	8b 11                	mov    (%ecx),%edx
40f7d0:	8b 42 04             	mov    0x4(%edx),%eax
40f7d3:	ff d0                	call   *%eax
40f7d5:	8d 4c 24 30          	lea    0x30(%esp),%ecx
40f7d9:	a3 68 74 4c 00       	mov    %eax,0x4c7468
40f7de:	e8 81 62 ff ff       	call   0x405a64
40f7e3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40f7e6:	e9 2f fe ff ff       	jmp    0x40f61a
40f7eb:	8b 40 38             	mov    0x38(%eax),%eax
40f7ee:	e9 d0 fe ff ff       	jmp    0x40f6c3
40f7f3:	8b 40 38             	mov    0x38(%eax),%eax
40f7f6:	e9 dc fe ff ff       	jmp    0x40f6d7
40f7fb:	8b 40 38             	mov    0x38(%eax),%eax