4104d3:	8b 35 e0 70 41 00    	mov    0x4170e0,%esi
4104d9:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4104dc:	51                   	push   %ecx
4104dd:	50                   	push   %eax
4104de:	ff d6                	call   *%esi
4104e0:	85 c0                	test   %eax,%eax
4104e2:	8b 1d a0 70 41 00    	mov    0x4170a0,%ebx
4104e8:	74 5e                	je     0x410548
4104ea:	83 7d e8 01          	cmpl   $0x1,-0x18(%ebp)
4104ee:	75 58                	jne    0x410548
4104f0:	8d 45 e8             	lea    -0x18(%ebp),%eax
4104f3:	50                   	push   %eax
4104f4:	ff 75 0c             	push   0xc(%ebp)
4104f7:	ff d6                	call   *%esi
4104f9:	85 c0                	test   %eax,%eax
4104fb:	74 4b                	je     0x410548
4104fd:	83 7d e8 01          	cmpl   $0x1,-0x18(%ebp)
410501:	75 45                	jne    0x410548
410503:	8b 75 dc             	mov    -0x24(%ebp),%esi
410506:	83 fe ff             	cmp    $0xffffffff,%esi
410509:	c7 45 d4 01 00 00 00 	movl   $0x1,-0x2c(%ebp)
410510:	75 0c                	jne    0x41051e
410512:	ff 75 d8             	push   -0x28(%ebp)
410515:	e8 46 62 ff ff       	call   0x406760
41051a:	8b f0                	mov    %eax,%esi
41051c:	59                   	pop    %ecx
41051d:	46                   	inc    %esi
41051e:	3b f7                	cmp    %edi,%esi
410520:	7e 5b                	jle    0x41057d
410522:	81 fe f0 ff ff 7f    	cmp    $0x7ffffff0,%esi
410528:	77 53                	ja     0x41057d
41052a:	8d 44 36 08          	lea    0x8(%esi,%esi,1),%eax
41052e:	3d 00 04 00 00       	cmp    $0x400,%eax
410533:	77 2f                	ja     0x410564
410535:	e8 16 01 00 00       	call   0x410650
41053a:	8b c4                	mov    %esp,%eax
41053c:	3b c7                	cmp    %edi,%eax
41053e:	74 38                	je     0x410578
410540:	c7 00 cc cc 00 00    	movl   $0xcccc,(%eax)
410546:	eb 2d                	jmp    0x410575
410548:	57                   	push   %edi
410549:	57                   	push   %edi
41054a:	ff 75 dc             	push   -0x24(%ebp)
41054d:	ff 75 d8             	push   -0x28(%ebp)
410550:	6a 01                	push   $0x1
410552:	ff 75 08             	push   0x8(%ebp)
410555:	ff d3                	call   *%ebx
410557:	8b f0                	mov    %eax,%esi
410559:	3b f7                	cmp    %edi,%esi
41055b:	75 c3                	jne    0x410520
41055d:	33 c0                	xor    %eax,%eax
41055f:	e9 d1 00 00 00       	jmp    0x410635
410564:	50                   	push   %eax
410565:	e8 e5 a7 ff ff       	call   0x40ad4f
41056a:	3b c7                	cmp    %edi,%eax
41056c:	59                   	pop    %ecx
41056d:	74 09                	je     0x410578
41056f:	c7 00 dd dd 00 00    	movl   $0xdddd,(%eax)
410575:	83 c0 08             	add    $0x8,%eax
410578:	89 45 e4             	mov    %eax,-0x1c(%ebp)
41057b:	eb 03                	jmp    0x410580
41057d:	89 7d e4             	mov    %edi,-0x1c(%ebp)
410580:	39 7d e4             	cmp    %edi,-0x1c(%ebp)
410583:	74 d8                	je     0x41055d
410585:	8d 04 36             	lea    (%esi,%esi,1),%eax
410588:	50                   	push   %eax
410589:	57                   	push   %edi
41058a:	ff 75 e4             	push   -0x1c(%ebp)
41058d:	e8 be 55 ff ff       	call   0x405b50
410592:	83 c4 0c             	add    $0xc,%esp
410595:	56                   	push   %esi
410596:	ff 75 e4             	push   -0x1c(%ebp)
410599:	ff 75 dc             	push   -0x24(%ebp)
41059c:	ff 75 d8             	push   -0x28(%ebp)
41059f:	6a 01                	push   $0x1
4105a1:	ff 75 08             	push   0x8(%ebp)
4105a4:	ff d3                	call   *%ebx
4105a6:	85 c0                	test   %eax,%eax
4105a8:	74 7f                	je     0x410629
4105aa:	8b 5d cc             	mov    -0x34(%ebp),%ebx
4105ad:	3b df                	cmp    %edi,%ebx
4105af:	74 1d                	je     0x4105ce
4105b1:	57                   	push   %edi
4105b2:	57                   	push   %edi
4105b3:	ff 75 1c             	push   0x1c(%ebp)
4105b6:	53                   	push   %ebx
4105b7:	56                   	push   %esi
4105b8:	ff 75 e4             	push   -0x1c(%ebp)
4105bb:	57                   	push   %edi
4105bc:	ff 75 0c             	push   0xc(%ebp)
4105bf:	ff 15 90 70 41 00    	call   *0x417090
4105c5:	85 c0                	test   %eax,%eax
4105c7:	74 60                	je     0x410629
4105c9:	89 5d e0             	mov    %ebx,-0x20(%ebp)
4105cc:	eb 5b                	jmp    0x410629
4105ce:	39 7d d4             	cmp    %edi,-0x2c(%ebp)
4105d1:	8b 1d 90 70 41 00    	mov    0x417090,%ebx
4105d7:	75 14                	jne    0x4105ed
4105d9:	57                   	push   %edi
4105da:	57                   	push   %edi
4105db:	57                   	push   %edi
4105dc:	57                   	push   %edi
4105dd:	56                   	push   %esi
4105de:	ff 75 e4             	push   -0x1c(%ebp)
4105e1:	57                   	push   %edi
4105e2:	ff 75 0c             	push   0xc(%ebp)
4105e5:	ff d3                	call   *%ebx
4105e7:	8b f0                	mov    %eax,%esi
4105e9:	3b f7                	cmp    %edi,%esi
4105eb:	74 3c                	je     0x410629
4105ed:	56                   	push   %esi
4105ee:	6a 01                	push   $0x1
4105f0:	e8 37 8d ff ff       	call   0x40932c
4105f5:	3b c7                	cmp    %edi,%eax
4105f7:	59                   	pop    %ecx
4105f8:	59                   	pop    %ecx
4105f9:	89 45 e0             	mov    %eax,-0x20(%ebp)
4105fc:	74 2b                	je     0x410629
4105fe:	57                   	push   %edi
4105ff:	57                   	push   %edi
410600:	56                   	push   %esi
410601:	50                   	push   %eax
410602:	56                   	push   %esi
410603:	ff 75 e4             	push   -0x1c(%ebp)
410606:	57                   	push   %edi
410607:	ff 75 0c             	push   0xc(%ebp)
41060a:	ff d3                	call   *%ebx
41060c:	3b c7                	cmp    %edi,%eax
41060e:	75 0e                	jne    0x41061e
410610:	ff 75 e0             	push   -0x20(%ebp)
410613:	e8 3b 5e ff ff       	call   0x406453
410618:	59                   	pop    %ecx
410619:	89 7d e0             	mov    %edi,-0x20(%ebp)
41061c:	eb 0b                	jmp    0x410629
41061e:	83 7d dc ff          	cmpl   $0xffffffff,-0x24(%ebp)
410622:	74 05                	je     0x410629
410624:	8b 4d d0             	mov    -0x30(%ebp),%ecx
410627:	89 01                	mov    %eax,(%ecx)
410629:	ff 75 e4             	push   -0x1c(%ebp)
41062c:	e8 78 83 ff ff       	call   0x4089a9
410631:	59                   	pop    %ecx
410632:	8b 45 e0             	mov    -0x20(%ebp),%eax
410635:	8d 65 c0             	lea    -0x40(%ebp),%esp
410638:	5f                   	pop    %edi
410639:	5e                   	pop    %esi
41063a:	5b                   	pop    %ebx
41063b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41063e:	33 cd                	xor    %ebp,%ecx
410640:	e8 f0 58 ff ff       	call   0x405f35
410645:	c9                   	leave
410646:	c3                   	ret
410647:	cc                   	int3
410648:	cc                   	int3
410649:	cc                   	int3
41064a:	cc                   	int3
41064b:	cc                   	int3
41064c:	cc                   	int3
41064d:	cc                   	int3
41064e:	cc                   	int3
41064f:	cc                   	int3
410650:	51                   	push   %ecx
410651:	8d 4c 24 08          	lea    0x8(%esp),%ecx
410655:	2b c8                	sub    %eax,%ecx
410657:	83 e1 0f             	and    $0xf,%ecx
41065a:	03 c1                	add    %ecx,%eax
41065c:	1b c9                	sbb    %ecx,%ecx
41065e:	0b c1                	or     %ecx,%eax
410660:	59                   	pop    %ecx
410661:	e9 6a 48 00 00       	jmp    0x414ed0
410666:	51                   	push   %ecx
410667:	8d 4c 24 08          	lea    0x8(%esp),%ecx
41066b:	2b c8                	sub    %eax,%ecx
41066d:	83 e1 07             	and    $0x7,%ecx
410670:	03 c1                	add    %ecx,%eax
410672:	1b c9                	sbb    %ecx,%ecx
410674:	0b c1                	or     %ecx,%eax
410676:	59                   	pop    %ecx
410677:	e9 54 48 00 00       	jmp    0x414ed0
41067c:	55                   	push   %ebp
41067d:	8b ec                	mov    %esp,%ebp
41067f:	83 ec 18             	sub    $0x18,%esp
410682:	53                   	push   %ebx
410683:	ff 75 10             	push   0x10(%ebp)
410686:	8d 4d e8             	lea    -0x18(%ebp),%ecx
410689:	e8 36 83 ff ff       	call   0x4089c4
41068e:	8b 5d 08             	mov    0x8(%ebp),%ebx
410691:	8d 43 01             	lea    0x1(%ebx),%eax
410694:	3d 00 01 00 00       	cmp    $0x100,%eax
410699:	77 0f                	ja     0x4106aa
41069b:	8b 45 e8             	mov    -0x18(%ebp),%eax
41069e:	8b 80 c8 00 00 00    	mov    0xc8(%eax),%eax
4106a4:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
4106a8:	eb 75                	jmp    0x41071f
4106aa:	89 5d 08             	mov    %ebx,0x8(%ebp)
4106ad:	c1 7d 08 08          	sarl   $0x8,0x8(%ebp)
4106b1:	8d 45 e8             	lea    -0x18(%ebp),%eax
4106b4:	50                   	push   %eax
4106b5:	8b 45 08             	mov    0x8(%ebp),%eax
4106b8:	25 ff 00 00 00       	and    $0xff,%eax
4106bd:	50                   	push   %eax
4106be:	e8 1f e2 ff ff       	call   0x40e8e2
4106c3:	85 c0                	test   %eax,%eax
4106c5:	59                   	pop    %ecx
4106c6:	59                   	pop    %ecx
4106c7:	74 12                	je     0x4106db
4106c9:	8a 45 08             	mov    0x8(%ebp),%al
4106cc:	6a 02                	push   $0x2
4106ce:	88 45 f8             	mov    %al,-0x8(%ebp)
4106d1:	88 5d f9             	mov    %bl,-0x7(%ebp)
4106d4:	c6 45 fa 00          	movb   $0x0,-0x6(%ebp)
4106d8:	59                   	pop    %ecx
4106d9:	eb 0a                	jmp    0x4106e5
4106db:	33 c9                	xor    %ecx,%ecx
4106dd:	88 5d f8             	mov    %bl,-0x8(%ebp)
4106e0:	c6 45 f9 00          	movb   $0x0,-0x7(%ebp)
4106e4:	41                   	inc    %ecx
4106e5:	8b 45 e8             	mov    -0x18(%ebp),%eax
4106e8:	6a 01                	push   $0x1
4106ea:	ff 70 14             	push   0x14(%eax)
4106ed:	ff 70 04             	push   0x4(%eax)
4106f0:	8d 45 fc             	lea    -0x4(%ebp),%eax
4106f3:	50                   	push   %eax
4106f4:	51                   	push   %ecx
4106f5:	8d 45 f8             	lea    -0x8(%ebp),%eax
4106f8:	50                   	push   %eax
4106f9:	8d 45 e8             	lea    -0x18(%ebp),%eax
4106fc:	6a 01                	push   $0x1
4106fe:	50                   	push   %eax
4106ff:	e8 e6 01 00 00       	call   0x4108ea
410704:	83 c4 20             	add    $0x20,%esp
410707:	85 c0                	test   %eax,%eax
410709:	75 10                	jne    0x41071b
41070b:	38 45 f4             	cmp    %al,-0xc(%ebp)
41070e:	74 07                	je     0x410717
410710:	8b 45 f0             	mov    -0x10(%ebp),%eax
410713:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
410717:	33 c0                	xor    %eax,%eax
410719:	eb 14                	jmp    0x41072f
41071b:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
41071f:	23 45 0c             	and    0xc(%ebp),%eax
410722:	80 7d f4 00          	cmpb   $0x0,-0xc(%ebp)
410726:	74 07                	je     0x41072f
410728:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41072b:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
41072f:	5b                   	pop    %ebx
410730:	c9                   	leave
410731:	c3                   	ret
410732:	55                   	push   %ebp
410733:	8b ec                	mov    %esp,%ebp
410735:	51                   	push   %ecx
410736:	51                   	push   %ecx
410737:	a1 20 c5 41 00       	mov    0x41c520,%eax
41073c:	33 c5                	xor    %ebp,%eax
41073e:	89 45 fc             	mov    %eax,-0x4(%ebp)
410741:	a1 60 e3 41 00       	mov    0x41e360,%eax
410746:	53                   	push   %ebx
410747:	56                   	push   %esi
410748:	33 db                	xor    %ebx,%ebx
41074a:	3b c3                	cmp    %ebx,%eax
41074c:	57                   	push   %edi
41074d:	8b f9                	mov    %ecx,%edi
41074f:	75 3a                	jne    0x41078b
410751:	8d 45 f8             	lea    -0x8(%ebp),%eax
410754:	50                   	push   %eax
410755:	33 f6                	xor    %esi,%esi
410757:	46                   	inc    %esi
410758:	56                   	push   %esi
410759:	68 88 76 41 00       	push   $0x417688
41075e:	56                   	push   %esi
41075f:	ff 15 e8 70 41 00    	call   *0x4170e8
410765:	85 c0                	test   %eax,%eax
410767:	74 08                	je     0x410771
410769:	89 35 60 e3 41 00    	mov    %esi,0x41e360
41076f:	eb 34                	jmp    0x4107a5
410771:	ff 15 b0 70 41 00    	call   *0x4170b0
410777:	83 f8 78             	cmp    $0x78,%eax
41077a:	75 0a                	jne    0x410786
41077c:	6a 02                	push   $0x2
41077e:	58                   	pop    %eax
41077f:	a3 60 e3 41 00       	mov    %eax,0x41e360
410784:	eb 05                	jmp    0x41078b
410786:	a1 60 e3 41 00       	mov    0x41e360,%eax
41078b:	83 f8 02             	cmp    $0x2,%eax
41078e:	0f 84 cf 00 00 00    	je     0x410863
410794:	3b c3                	cmp    %ebx,%eax
410796:	0f 84 c7 00 00 00    	je     0x410863
41079c:	83 f8 01             	cmp    $0x1,%eax
41079f:	0f 85 e8 00 00 00    	jne    0x41088d
4107a5:	39 5d 18             	cmp    %ebx,0x18(%ebp)
4107a8:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4107ab:	75 08                	jne    0x4107b5
4107ad:	8b 07                	mov    (%edi),%eax
4107af:	8b 40 04             	mov    0x4(%eax),%eax
4107b2:	89 45 18             	mov    %eax,0x18(%ebp)
4107b5:	8b 35 a0 70 41 00    	mov    0x4170a0,%esi
4107bb:	33 c0                	xor    %eax,%eax
4107bd:	39 5d 20             	cmp    %ebx,0x20(%ebp)
4107c0:	53                   	push   %ebx
4107c1:	53                   	push   %ebx
4107c2:	ff 75 10             	push   0x10(%ebp)
4107c5:	0f 95 c0             	setne  %al
4107c8:	ff 75 0c             	push   0xc(%ebp)
4107cb:	8d 04 c5 01 00 00 00 	lea    0x1(,%eax,8),%eax
4107d2:	50                   	push   %eax
4107d3:	ff 75 18             	push   0x18(%ebp)
4107d6:	ff d6                	call   *%esi
4107d8:	8b f8                	mov    %eax,%edi
4107da:	3b fb                	cmp    %ebx,%edi
4107dc:	0f 84 ab 00 00 00    	je     0x41088d
4107e2:	7e 3c                	jle    0x410820
4107e4:	81 ff f0 ff ff 7f    	cmp    $0x7ffffff0,%edi
4107ea:	77 34                	ja     0x410820
4107ec:	8d 44 3f 08          	lea    0x8(%edi,%edi,1),%eax
4107f0:	3d 00 04 00 00       	cmp    $0x400,%eax
4107f5:	77 13                	ja     0x41080a
4107f7:	e8 54 fe ff ff       	call   0x410650
4107fc:	8b c4                	mov    %esp,%eax
4107fe:	3b c3                	cmp    %ebx,%eax
410800:	74 1c                	je     0x41081e
410802:	c7 00 cc cc 00 00    	movl   $0xcccc,(%eax)
410808:	eb 11                	jmp    0x41081b
41080a:	50                   	push   %eax
41080b:	e8 3f a5 ff ff       	call   0x40ad4f
410810:	3b c3                	cmp    %ebx,%eax
410812:	59                   	pop    %ecx
410813:	74 09                	je     0x41081e
410815:	c7 00 dd dd 00 00    	movl   $0xdddd,(%eax)
41081b:	83 c0 08             	add    $0x8,%eax
41081e:	8b d8                	mov    %eax,%ebx
410820:	85 db                	test   %ebx,%ebx
410822:	74 69                	je     0x41088d
410824:	8d 04 3f             	lea    (%edi,%edi,1),%eax
410827:	50                   	push   %eax
410828:	6a 00                	push   $0x0
41082a:	53                   	push   %ebx
41082b:	e8 20 53 ff ff       	call   0x405b50
410830:	83 c4 0c             	add    $0xc,%esp
410833:	57                   	push   %edi
410834:	53                   	push   %ebx
410835:	ff 75 10             	push   0x10(%ebp)
410838:	ff 75 0c             	push   0xc(%ebp)
41083b:	6a 01                	push   $0x1
41083d:	ff 75 18             	push   0x18(%ebp)
410840:	ff d6                	call   *%esi
410842:	85 c0                	test   %eax,%eax
410844:	74 11                	je     0x410857
410846:	ff 75 14             	push   0x14(%ebp)
410849:	50                   	push   %eax
41084a:	53                   	push   %ebx
41084b:	ff 75 08             	push   0x8(%ebp)