41046f:	33 d2                	xor    %edx,%edx
410471:	e8 07 00 00 00       	call   0x41047d
410476:	8b 45 fc             	mov    -0x4(%ebp),%eax
410479:	59                   	pop    %ecx
41047a:	59                   	pop    %ecx
41047b:	c9                   	leave
41047c:	c3                   	ret
41047d:	55                   	push   %ebp
41047e:	8b ec                	mov    %esp,%ebp
410480:	83 ec 10             	sub    $0x10,%esp
410483:	8b 01                	mov    (%ecx),%eax
410485:	53                   	push   %ebx
410486:	8b 5d 0c             	mov    0xc(%ebp),%ebx
410489:	56                   	push   %esi
41048a:	57                   	push   %edi
41048b:	89 55 f4             	mov    %edx,-0xc(%ebp)
41048e:	33 ff                	xor    %edi,%edi
410490:	21 3b                	and    %edi,(%ebx)
410492:	8d 55 f8             	lea    -0x8(%ebp),%edx
410495:	52                   	push   %edx
410496:	51                   	push   %ecx
410497:	ff 50 28             	call   *0x28(%eax)
41049a:	8b f0                	mov    %eax,%esi
41049c:	85 f6                	test   %esi,%esi
41049e:	78 51                	js     0x4104f1
4104a0:	be 05 40 00 80       	mov    $0x80004005,%esi
4104a5:	eb 2a                	jmp    0x4104d1
4104a7:	8b 45 0c             	mov    0xc(%ebp),%eax
4104aa:	8d 55 fc             	lea    -0x4(%ebp),%edx
4104ad:	c7 45 fc 03 00 00 00 	movl   $0x3,-0x4(%ebp)
4104b4:	52                   	push   %edx
4104b5:	50                   	push   %eax
4104b6:	8b 08                	mov    (%eax),%ecx
4104b8:	ff 51 24             	call   *0x24(%ecx)
4104bb:	8b 45 f4             	mov    -0xc(%ebp),%eax
4104be:	39 45 fc             	cmp    %eax,-0x4(%ebp)
4104c1:	75 05                	jne    0x4104c8
4104c3:	85 ff                	test   %edi,%edi
4104c5:	74 23                	je     0x4104ea
4104c7:	4f                   	dec    %edi
4104c8:	8b 45 0c             	mov    0xc(%ebp),%eax
4104cb:	50                   	push   %eax
4104cc:	8b 08                	mov    (%eax),%ecx
4104ce:	ff 51 08             	call   *0x8(%ecx)
4104d1:	8b 45 f8             	mov    -0x8(%ebp),%eax
4104d4:	8d 55 f0             	lea    -0x10(%ebp),%edx
4104d7:	52                   	push   %edx
4104d8:	8d 55 0c             	lea    0xc(%ebp),%edx
4104db:	52                   	push   %edx
4104dc:	8b 08                	mov    (%eax),%ecx
4104de:	6a 01                	push   $0x1
4104e0:	50                   	push   %eax
4104e1:	ff 51 0c             	call   *0xc(%ecx)
4104e4:	85 c0                	test   %eax,%eax
4104e6:	74 bf                	je     0x4104a7
4104e8:	eb 07                	jmp    0x4104f1
4104ea:	8b 45 0c             	mov    0xc(%ebp),%eax
4104ed:	33 f6                	xor    %esi,%esi
4104ef:	89 03                	mov    %eax,(%ebx)
4104f1:	5f                   	pop    %edi
4104f2:	8b c6                	mov    %esi,%eax
4104f4:	5e                   	pop    %esi
4104f5:	5b                   	pop    %ebx
4104f6:	c9                   	leave
4104f7:	c3                   	ret
4104f8:	55                   	push   %ebp
4104f9:	8b ec                	mov    %esp,%ebp
4104fb:	81 ec d8 00 00 00    	sub    $0xd8,%esp
410501:	53                   	push   %ebx
410502:	56                   	push   %esi
410503:	57                   	push   %edi
410504:	33 ff                	xor    %edi,%edi
410506:	89 4d e8             	mov    %ecx,-0x18(%ebp)
410509:	57                   	push   %edi
41050a:	ff 15 30 23 41 00    	call   *0x412330
410510:	8d 45 ec             	lea    -0x14(%ebp),%eax
410513:	89 7d f8             	mov    %edi,-0x8(%ebp)
410516:	50                   	push   %eax
410517:	68 54 48 41 00       	push   $0x414854
41051c:	6a 01                	push   $0x1
41051e:	57                   	push   %edi
41051f:	89 7d f4             	mov    %edi,-0xc(%ebp)
410522:	8b f7                	mov    %edi,%esi
410524:	89 7d f0             	mov    %edi,-0x10(%ebp)
410527:	8b df                	mov    %edi,%ebx
410529:	89 7d ec             	mov    %edi,-0x14(%ebp)
41052c:	8b 3d 28 23 41 00    	mov    0x412328,%edi
410532:	68 60 25 41 00       	push   $0x412560
410537:	ff d7                	call   *%edi
410539:	8b 4d ec             	mov    -0x14(%ebp),%ecx
41053c:	85 c9                	test   %ecx,%ecx
41053e:	0f 84 24 01 00 00    	je     0x410668
410544:	8b 01                	mov    (%ecx),%eax
410546:	8d 55 f4             	lea    -0xc(%ebp),%edx
410549:	52                   	push   %edx
41054a:	68 40 25 41 00       	push   $0x412540
41054f:	51                   	push   %ecx
410550:	ff 10                	call   *(%eax)
410552:	8b 4d f4             	mov    -0xc(%ebp),%ecx
410555:	85 c9                	test   %ecx,%ecx
410557:	0f 84 0b 01 00 00    	je     0x410668
41055d:	8b 01                	mov    (%ecx),%eax
41055f:	51                   	push   %ecx
410560:	ff 50 04             	call   *0x4(%eax)
410563:	8b 4d 08             	mov    0x8(%ebp),%ecx
410566:	8d 55 f8             	lea    -0x8(%ebp),%edx
410569:	e8 bb 02 00 00       	call   0x410829
41056e:	39 5d f8             	cmp    %ebx,-0x8(%ebp)
410571:	0f 84 02 01 00 00    	je     0x410679
410577:	8d 45 f0             	lea    -0x10(%ebp),%eax
41057a:	50                   	push   %eax
41057b:	68 44 48 41 00       	push   $0x414844
410580:	6a 01                	push   $0x1
410582:	53                   	push   %ebx
410583:	68 b0 25 41 00       	push   $0x4125b0
410588:	ff d7                	call   *%edi
41058a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41058d:	85 c9                	test   %ecx,%ecx
41058f:	0f 84 d3 00 00 00    	je     0x410668
410595:	8b 01                	mov    (%ecx),%eax
410597:	68 00 48 41 00       	push   $0x414800
41059c:	ff 75 f8             	push   -0x8(%ebp)
41059f:	51                   	push   %ecx
4105a0:	ff 50 0c             	call   *0xc(%eax)
4105a3:	8b 45 f0             	mov    -0x10(%ebp),%eax
4105a6:	68 10 48 41 00       	push   $0x414810
4105ab:	ff 75 f4             	push   -0xc(%ebp)
4105ae:	8b 08                	mov    (%eax),%ecx
4105b0:	50                   	push   %eax
4105b1:	ff 51 0c             	call   *0xc(%ecx)
4105b4:	6a 48                	push   $0x48
4105b6:	8d 85 74 ff ff ff    	lea    -0x8c(%ebp),%eax
4105bc:	53                   	push   %ebx
4105bd:	50                   	push   %eax
4105be:	e8 8f 0a ff ff       	call   0x401052
4105c3:	be f0 25 41 00       	mov    $0x4125f0,%esi
4105c8:	8b 45 ec             	mov    -0x14(%ebp),%eax
4105cb:	8d bd 74 ff ff ff    	lea    -0x8c(%ebp),%edi
4105d1:	83 c4 0c             	add    $0xc,%esp
4105d4:	8d 95 74 ff ff ff    	lea    -0x8c(%ebp),%edx
4105da:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4105db:	52                   	push   %edx
4105dc:	50                   	push   %eax
4105dd:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4105de:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4105df:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4105e0:	be d0 25 41 00       	mov    $0x4125d0,%esi
4105e5:	8d 7d 84             	lea    -0x7c(%ebp),%edi
4105e8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4105e9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4105ea:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4105eb:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4105ec:	8b 08                	mov    (%eax),%ecx
4105ee:	ff 51 10             	call   *0x10(%ecx)
4105f1:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4105f4:	e8 4d fe ff ff       	call   0x410446
4105f9:	8b f0                	mov    %eax,%esi
4105fb:	85 f6                	test   %esi,%esi
4105fd:	74 69                	je     0x410668
4105ff:	8b 4d f4             	mov    -0xc(%ebp),%ecx
410602:	e8 5b fe ff ff       	call   0x410462
410607:	8b d8                	mov    %eax,%ebx
410609:	85 db                	test   %ebx,%ebx
41060b:	74 5b                	je     0x410668
41060d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
410610:	53                   	push   %ebx
410611:	56                   	push   %esi
410612:	51                   	push   %ecx
410613:	8b 11                	mov    (%ecx),%edx
410615:	ff 52 2c             	call   *0x2c(%edx)
410618:	85 c0                	test   %eax,%eax
41061a:	78 4c                	js     0x410668
41061c:	8b 45 ec             	mov    -0x14(%ebp),%eax
41061f:	8d 95 2c ff ff ff    	lea    -0xd4(%ebp),%edx
410625:	52                   	push   %edx
410626:	50                   	push   %eax
410627:	8b 08                	mov    (%eax),%ecx
410629:	ff 51 14             	call   *0x14(%ecx)
41062c:	8b 8d 70 ff ff ff    	mov    -0x90(%ebp),%ecx
410632:	6a 28                	push   $0x28
410634:	8d 51 30             	lea    0x30(%ecx),%edx
410637:	8b c2                	mov    %edx,%eax
410639:	2b c1                	sub    %ecx,%eax
41063b:	52                   	push   %edx
41063c:	8d 44 05 8c          	lea    -0x74(%ebp,%eax,1),%eax
410640:	50                   	push   %eax
410641:	e8 e6 09 ff ff       	call   0x40102c
410646:	83 c4 0c             	add    $0xc,%esp
410649:	8d 8d 2c ff ff ff    	lea    -0xd4(%ebp),%ecx
41064f:	e8 55 fc ff ff       	call   0x4102a9
410654:	ff 75 ca             	push   -0x36(%ebp)
410657:	8b 4d e8             	mov    -0x18(%ebp),%ecx
41065a:	ff 75 c0             	push   -0x40(%ebp)
41065d:	ff 75 c4             	push   -0x3c(%ebp)
410660:	ff 75 08             	push   0x8(%ebp)
410663:	e8 80 02 00 00       	call   0x4108e8
410668:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41066b:	85 c9                	test   %ecx,%ecx
41066d:	74 0a                	je     0x410679
41066f:	8b 01                	mov    (%ecx),%eax
410671:	51                   	push   %ecx
410672:	ff 50 08             	call   *0x8(%eax)
410675:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
410679:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41067c:	85 c9                	test   %ecx,%ecx
41067e:	74 0a                	je     0x41068a
410680:	8b 01                	mov    (%ecx),%eax
410682:	51                   	push   %ecx
410683:	ff 50 08             	call   *0x8(%eax)
410686:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
41068a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41068d:	85 c9                	test   %ecx,%ecx
41068f:	74 0a                	je     0x41069b
410691:	8b 01                	mov    (%ecx),%eax
410693:	51                   	push   %ecx
410694:	ff 50 08             	call   *0x8(%eax)
410697:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
41069b:	8b 4d ec             	mov    -0x14(%ebp),%ecx
41069e:	85 c9                	test   %ecx,%ecx
4106a0:	74 0a                	je     0x4106ac
4106a2:	8b 01                	mov    (%ecx),%eax
4106a4:	51                   	push   %ecx
4106a5:	ff 50 08             	call   *0x8(%eax)
4106a8:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
4106ac:	85 f6                	test   %esi,%esi
4106ae:	74 06                	je     0x4106b6
4106b0:	8b 06                	mov    (%esi),%eax
4106b2:	56                   	push   %esi
4106b3:	ff 50 08             	call   *0x8(%eax)
4106b6:	85 db                	test   %ebx,%ebx
4106b8:	74 06                	je     0x4106c0
4106ba:	8b 03                	mov    (%ebx),%eax
4106bc:	53                   	push   %ebx
4106bd:	ff 50 08             	call   *0x8(%eax)
4106c0:	ff 15 24 23 41 00    	call   *0x412324
4106c6:	5f                   	pop    %edi
4106c7:	5e                   	pop    %esi
4106c8:	5b                   	pop    %ebx
4106c9:	c9                   	leave
4106ca:	c2 04 00             	ret    $0x4
4106cd:	55                   	push   %ebp
4106ce:	8b ec                	mov    %esp,%ebp
4106d0:	83 ec 2c             	sub    $0x2c,%esp
4106d3:	53                   	push   %ebx
4106d4:	56                   	push   %esi
4106d5:	57                   	push   %edi
4106d6:	33 ff                	xor    %edi,%edi
4106d8:	89 4d e8             	mov    %ecx,-0x18(%ebp)
4106db:	57                   	push   %edi
4106dc:	ff 15 30 23 41 00    	call   *0x412330
4106e2:	8d 45 f8             	lea    -0x8(%ebp),%eax
4106e5:	89 7d f4             	mov    %edi,-0xc(%ebp)
4106e8:	50                   	push   %eax
4106e9:	68 34 48 41 00       	push   $0x414834
4106ee:	6a 01                	push   $0x1
4106f0:	57                   	push   %edi
4106f1:	68 a0 25 41 00       	push   $0x4125a0
4106f6:	89 7d f8             	mov    %edi,-0x8(%ebp)
4106f9:	89 7d fc             	mov    %edi,-0x4(%ebp)
4106fc:	ff 15 28 23 41 00    	call   *0x412328
410702:	8b 4d f8             	mov    -0x8(%ebp),%ecx
410705:	85 c9                	test   %ecx,%ecx
410707:	0f 84 17 01 00 00    	je     0x410824
41070d:	8b 01                	mov    (%ecx),%eax
41070f:	8d 55 fc             	lea    -0x4(%ebp),%edx
410712:	57                   	push   %edi
410713:	52                   	push   %edx
410714:	68 90 25 41 00       	push   $0x412590
410719:	51                   	push   %ecx
41071a:	ff 50 0c             	call   *0xc(%eax)
41071d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
410720:	85 c9                	test   %ecx,%ecx
410722:	0f 84 fc 00 00 00    	je     0x410824
410728:	8b 01                	mov    (%ecx),%eax
41072a:	51                   	push   %ecx
41072b:	ff 50 14             	call   *0x14(%eax)
41072e:	8b df                	mov    %edi,%ebx
410730:	e9 ab 00 00 00       	jmp    0x4107e0
410735:	8b 45 ec             	mov    -0x14(%ebp),%eax
410738:	8d 55 f4             	lea    -0xc(%ebp),%edx
41073b:	52                   	push   %edx
41073c:	68 20 25 41 00       	push   $0x412520
410741:	57                   	push   %edi
410742:	8d 04 98             	lea    (%eax,%ebx,4),%eax
410745:	8b 08                	mov    (%eax),%ecx
410747:	57                   	push   %edi
410748:	50                   	push   %eax
410749:	ff 51 24             	call   *0x24(%ecx)
41074c:	85 c0                	test   %eax,%eax
41074e:	0f 85 aa 00 00 00    	jne    0x4107fe
410754:	8d 45 d8             	lea    -0x28(%ebp),%eax
410757:	50                   	push   %eax
410758:	ff 15 34 22 41 00    	call   *0x412234
41075e:	8b 45 f4             	mov    -0xc(%ebp),%eax
410761:	8d 55 d8             	lea    -0x28(%ebp),%edx
410764:	57                   	push   %edi
410765:	52                   	push   %edx
410766:	68 cc 47 41 00       	push   $0x4147cc
41076b:	8b 08                	mov    (%eax),%ecx
41076d:	50                   	push   %eax
41076e:	ff 51 0c             	call   *0xc(%ecx)
410771:	85 c0                	test   %eax,%eax
410773:	74 17                	je     0x41078c
410775:	8b 45 f4             	mov    -0xc(%ebp),%eax
410778:	8d 55 d8             	lea    -0x28(%ebp),%edx
41077b:	57                   	push   %edi
41077c:	52                   	push   %edx
41077d:	68 e4 47 41 00       	push   $0x4147e4
410782:	8b 08                	mov    (%eax),%ecx
410784:	50                   	push   %eax
410785:	ff 51 0c             	call   *0xc(%ecx)
410788:	85 c0                	test   %eax,%eax
41078a:	75 72                	jne    0x4107fe
41078c:	6a 1c                	push   $0x1c
41078e:	59                   	pop    %ecx
41078f:	e8 47 53 ff ff       	call   0x405adb
410794:	85 c0                	test   %eax,%eax
410796:	74 0b                	je     0x4107a3
410798:	8b c8                	mov    %eax,%ecx
41079a:	e8 e6 01 00 00       	call   0x410985
41079f:	8b d0                	mov    %eax,%edx
4107a1:	eb 02                	jmp    0x4107a5
4107a3:	8b d7                	mov    %edi,%edx
4107a5:	8b 75 e0             	mov    -0x20(%ebp),%esi
4107a8:	0f b7 06             	movzwl (%esi),%eax
4107ab:	66 85 c0             	test   %ax,%ax
4107ae:	74 1e                	je     0x4107ce
4107b0:	8b c8                	mov    %eax,%ecx
4107b2:	8b 42 04             	mov    0x4(%edx),%eax
4107b5:	66 89 0c 78          	mov    %cx,(%eax,%edi,2)
4107b9:	8b 0a                	mov    (%edx),%ecx
4107bb:	8a 06                	mov    (%esi),%al
4107bd:	8d 76 02             	lea    0x2(%esi),%esi
4107c0:	88 04 0f             	mov    %al,(%edi,%ecx,1)
4107c3:	47                   	inc    %edi
4107c4:	0f b7 06             	movzwl (%esi),%eax
4107c7:	8b c8                	mov    %eax,%ecx
4107c9:	66 85 c0             	test   %ax,%ax
4107cc:	75 e4                	jne    0x4107b2
4107ce:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4107d1:	52                   	push   %edx
4107d2:	89 5a 08             	mov    %ebx,0x8(%edx)
4107d5:	8d 49 04             	lea    0x4(%ecx),%ecx
4107d8:	e8 c2 1b ff ff       	call   0x40239f
4107dd:	43                   	inc    %ebx
4107de:	33 ff                	xor    %edi,%edi
4107e0:	8b 45 fc             	mov    -0x4(%ebp),%eax
4107e3:	8d 55 f0             	lea    -0x10(%ebp),%edx
4107e6:	52                   	push   %edx
4107e7:	8d 55 ec             	lea    -0x14(%ebp),%edx