410431:	89 8d dc ef ff ff    	mov    %ecx,-0x1024(%ebp)
410437:	66 3b 58 06          	cmp    0x6(%eax),%bx
41043b:	0f 83 2c 01 00 00    	jae    0x41056d
410441:	8b 5d 08             	mov    0x8(%ebp),%ebx
410444:	83 c7 04             	add    $0x4,%edi
410447:	39 57 fc             	cmp    %edx,-0x4(%edi)
41044a:	0f 85 01 01 00 00    	jne    0x410551
410450:	66 39 5f 08          	cmp    %bx,0x8(%edi)
410454:	0f 85 f7 00 00 00    	jne    0x410551
41045a:	f7 47 08 00 00 01 00 	testl  $0x10000,0x8(%edi)
410461:	74 0a                	je     0x41046d
410463:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
410467:	0f 84 e4 00 00 00    	je     0x410551
41046d:	8b 07                	mov    (%edi),%eax
41046f:	89 85 f0 ef ff ff    	mov    %eax,-0x1010(%ebp)
410475:	8b 47 04             	mov    0x4(%edi),%eax
410478:	89 85 f4 ef ff ff    	mov    %eax,-0x100c(%ebp)
41047e:	8d 85 ec ef ff ff    	lea    -0x1014(%ebp),%eax
410484:	c7 85 ec ef ff ff 00 	movl   $0x1000,-0x1014(%ebp)
41048b:	10 00 00
41048e:	50                   	push   %eax
41048f:	8d 85 f8 ef ff ff    	lea    -0x1008(%ebp),%eax
410495:	50                   	push   %eax
410496:	8d 85 e0 ef ff ff    	lea    -0x1020(%ebp),%eax
41049c:	50                   	push   %eax
41049d:	51                   	push   %ecx
41049e:	8d 8d f0 ef ff ff    	lea    -0x1010(%ebp),%ecx
4104a4:	e8 c0 fb ff ff       	call   0x410069
4104a9:	8b f0                	mov    %eax,%esi
4104ab:	85 f6                	test   %esi,%esi
4104ad:	0f 85 86 00 00 00    	jne    0x410539
4104b3:	8a 85 ec ef ff ff    	mov    -0x1014(%ebp),%al
4104b9:	8b b5 e8 ef ff ff    	mov    -0x1018(%ebp),%esi
4104bf:	24 07                	and    $0x7,%al
4104c1:	0f b6 c0             	movzbl %al,%eax
4104c4:	f7 d8                	neg    %eax
4104c6:	1b c0                	sbb    %eax,%eax
4104c8:	33 c9                	xor    %ecx,%ecx
4104ca:	f7 d0                	not    %eax
4104cc:	23 85 ec ef ff ff    	and    -0x1014(%ebp),%eax
4104d2:	8b d0                	mov    %eax,%edx
4104d4:	89 85 ec ef ff ff    	mov    %eax,-0x1014(%ebp)
4104da:	c1 ea 03             	shr    $0x3,%edx
4104dd:	85 d2                	test   %edx,%edx
4104df:	74 18                	je     0x4104f9
4104e1:	39 b4 cd f8 ef ff ff 	cmp    %esi,-0x1008(%ebp,%ecx,8)
4104e8:	75 0a                	jne    0x4104f4
4104ea:	66 39 9c cd fc ef ff 	cmp    %bx,-0x1004(%ebp,%ecx,8)
4104f1:	ff
4104f2:	74 27                	je     0x41051b
4104f4:	41                   	inc    %ecx
4104f5:	3b ca                	cmp    %edx,%ecx
4104f7:	72 e8                	jb     0x4104e1
4104f9:	8d 48 08             	lea    0x8(%eax),%ecx
4104fc:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
410502:	77 17                	ja     0x41051b
410504:	8b c1                	mov    %ecx,%eax
410506:	89 b4 d5 f8 ef ff ff 	mov    %esi,-0x1008(%ebp,%edx,8)
41050d:	66 89 9c d5 fc ef ff 	mov    %bx,-0x1004(%ebp,%edx,8)
410514:	ff
410515:	89 85 ec ef ff ff    	mov    %eax,-0x1014(%ebp)
41051b:	6a 01                	push   $0x1
41051d:	ff b5 e0 ef ff ff    	push   -0x1020(%ebp)
410523:	8d 95 f8 ef ff ff    	lea    -0x1008(%ebp),%edx
410529:	51                   	push   %ecx
41052a:	51                   	push   %ecx
41052b:	50                   	push   %eax
41052c:	8d 8d f0 ef ff ff    	lea    -0x1010(%ebp),%ecx
410532:	e8 87 fb ff ff       	call   0x4100be
410537:	8b f0                	mov    %eax,%esi
410539:	81 fe 01 00 00 c0    	cmp    $0xc0000001,%esi
41053f:	0f 84 39 ff ff ff    	je     0x41047e
410545:	8b 95 e8 ef ff ff    	mov    -0x1018(%ebp),%edx
41054b:	8b 8d dc ef ff ff    	mov    -0x1024(%ebp),%ecx
410551:	8b 41 14             	mov    0x14(%ecx),%eax
410554:	83 c7 10             	add    $0x10,%edi
410557:	ff 85 e4 ef ff ff    	incl   -0x101c(%ebp)
41055d:	0f b7 40 06          	movzwl 0x6(%eax),%eax
410561:	39 85 e4 ef ff ff    	cmp    %eax,-0x101c(%ebp)
410567:	0f 82 da fe ff ff    	jb     0x410447
41056d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
410570:	8b c6                	mov    %esi,%eax
410572:	5f                   	pop    %edi
410573:	5e                   	pop    %esi
410574:	33 cd                	xor    %ebp,%ecx
410576:	5b                   	pop    %ebx
410577:	e8 64 33 00 00       	call   0x4138e0
41057c:	c9                   	leave
41057d:	c2 08 00             	ret    $0x8
410580:	8b ff                	mov    %edi,%edi
410582:	55                   	push   %ebp
410583:	8b ec                	mov    %esp,%ebp
410585:	83 e4 f8             	and    $0xfffffff8,%esp
410588:	81 ec 04 01 00 00    	sub    $0x104,%esp
41058e:	a1 18 51 41 00       	mov    0x415118,%eax
410593:	33 c4                	xor    %esp,%eax
410595:	89 84 24 00 01 00 00 	mov    %eax,0x100(%esp)
41059c:	53                   	push   %ebx
41059d:	56                   	push   %esi
41059e:	57                   	push   %edi
41059f:	51                   	push   %ecx
4105a0:	8d 44 24 44          	lea    0x44(%esp),%eax
4105a4:	8b fa                	mov    %edx,%edi
4105a6:	50                   	push   %eax
4105a7:	8b d9                	mov    %ecx,%ebx
4105a9:	33 d2                	xor    %edx,%edx
4105ab:	51                   	push   %ecx
4105ac:	8d 4c 24 18          	lea    0x18(%esp),%ecx
4105b0:	e8 c1 fb ff ff       	call   0x410176
4105b5:	8b f0                	mov    %eax,%esi
4105b7:	85 f6                	test   %esi,%esi
4105b9:	75 2b                	jne    0x4105e6
4105bb:	ff 75 08             	push   0x8(%ebp)
4105be:	8b d3                	mov    %ebx,%edx
4105c0:	8d 4c 24 10          	lea    0x10(%esp),%ecx
4105c4:	57                   	push   %edi
4105c5:	e8 35 fe ff ff       	call   0x4103ff
4105ca:	83 7c 24 3c 00       	cmpl   $0x0,0x3c(%esp)
4105cf:	8b f0                	mov    %eax,%esi
4105d1:	74 13                	je     0x4105e6
4105d3:	ff 74 24 30          	push   0x30(%esp)
4105d7:	6a 00                	push   $0x0
4105d9:	ff 15 68 b1 41 00    	call   *0x41b168
4105df:	50                   	push   %eax
4105e0:	ff 15 28 b1 41 00    	call   *0x41b128
4105e6:	8b 8c 24 0c 01 00 00 	mov    0x10c(%esp),%ecx
4105ed:	8b c6                	mov    %esi,%eax
4105ef:	5f                   	pop    %edi
4105f0:	5e                   	pop    %esi
4105f1:	5b                   	pop    %ebx
4105f2:	33 cc                	xor    %esp,%ecx
4105f4:	e8 e7 32 00 00       	call   0x4138e0
4105f9:	8b e5                	mov    %ebp,%esp
4105fb:	5d                   	pop    %ebp
4105fc:	c2 04 00             	ret    $0x4
4105ff:	8b ff                	mov    %edi,%edi
410601:	55                   	push   %ebp
410602:	8b ec                	mov    %esp,%ebp
410604:	51                   	push   %ecx
410605:	51                   	push   %ecx
410606:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41060a:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
41060e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
410611:	66 89 55 fc          	mov    %dx,-0x4(%ebp)
410615:	74 05                	je     0x41061c
410617:	66 83 4d fe 01       	orw    $0x1,-0x2(%ebp)
41061c:	56                   	push   %esi
41061d:	8b 35 24 a3 41 00    	mov    0x41a324,%esi
410623:	85 f6                	test   %esi,%esi
410625:	75 24                	jne    0x41064b
410627:	68 7c 40 40 00       	push   $0x40407c
41062c:	e8 9e 69 ff ff       	call   0x406fcf
410631:	50                   	push   %eax
410632:	ff 15 5c b1 41 00    	call   *0x41b15c
410638:	8b f0                	mov    %eax,%esi
41063a:	89 35 24 a3 41 00    	mov    %esi,0x41a324
410640:	85 f6                	test   %esi,%esi
410642:	75 07                	jne    0x41064b
410644:	b8 39 01 00 c0       	mov    $0xc0000139,%eax
410649:	eb 0e                	jmp    0x410659
41064b:	8d 45 f8             	lea    -0x8(%ebp),%eax
41064e:	8b ce                	mov    %esi,%ecx
410650:	50                   	push   %eax
410651:	ff 15 90 b3 41 00    	call   *0x41b390
410657:	ff d6                	call   *%esi
410659:	5e                   	pop    %esi
41065a:	c9                   	leave
41065b:	c2 04 00             	ret    $0x4
41065e:	8b ff                	mov    %edi,%edi
410660:	55                   	push   %ebp
410661:	8b ec                	mov    %esp,%ebp
410663:	6a ff                	push   $0xffffffff
410665:	68 67 41 41 00       	push   $0x414167
41066a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
410670:	50                   	push   %eax
410671:	a1 18 51 41 00       	mov    0x415118,%eax
410676:	33 c5                	xor    %ebp,%eax
410678:	50                   	push   %eax
410679:	8d 45 f4             	lea    -0xc(%ebp),%eax
41067c:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
410682:	83 39 00             	cmpl   $0x0,(%ecx)
410685:	74 08                	je     0x41068f
410687:	ff 31                	push   (%ecx)
410689:	ff 15 0c b1 41 00    	call   *0x41b10c
41068f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
410692:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
410699:	59                   	pop    %ecx
41069a:	c9                   	leave
41069b:	c3                   	ret
41069c:	8b ff                	mov    %edi,%edi
41069e:	55                   	push   %ebp
41069f:	8b ec                	mov    %esp,%ebp
4106a1:	51                   	push   %ecx
4106a2:	51                   	push   %ecx
4106a3:	53                   	push   %ebx
4106a4:	57                   	push   %edi
4106a5:	8b 39                	mov    (%ecx),%edi
4106a7:	8b da                	mov    %edx,%ebx
4106a9:	85 ff                	test   %edi,%edi
4106ab:	74 2f                	je     0x4106dc
4106ad:	56                   	push   %esi
4106ae:	8b 75 08             	mov    0x8(%ebp),%esi
4106b1:	6a ff                	push   $0xffffffff
4106b3:	68 f0 d8 ff ff       	push   $0xffffd8f0
4106b8:	ff 75 0c             	push   0xc(%ebp)
4106bb:	56                   	push   %esi
4106bc:	e8 2f 3a 00 00       	call   0x4140f0
4106c1:	c1 ee 02             	shr    $0x2,%esi
4106c4:	56                   	push   %esi
4106c5:	89 45 f8             	mov    %eax,-0x8(%ebp)
4106c8:	8d 45 f8             	lea    -0x8(%ebp),%eax
4106cb:	6a 00                	push   $0x0
4106cd:	50                   	push   %eax
4106ce:	57                   	push   %edi
4106cf:	89 55 fc             	mov    %edx,-0x4(%ebp)
4106d2:	ff 15 dc b0 41 00    	call   *0x41b0dc
4106d8:	c6 03 01             	movb   $0x1,(%ebx)
4106db:	5e                   	pop    %esi
4106dc:	5f                   	pop    %edi
4106dd:	5b                   	pop    %ebx
4106de:	c9                   	leave
4106df:	c2 08 00             	ret    $0x8
4106e2:	6a 0c                	push   $0xc
4106e4:	b8 56 44 41 00       	mov    $0x414456,%eax
4106e9:	e8 51 35 00 00       	call   0x413c3f
4106ee:	8b f9                	mov    %ecx,%edi
4106f0:	8b 47 08             	mov    0x8(%edi),%eax
4106f3:	2b 07                	sub    (%edi),%eax
4106f5:	8b 5d 08             	mov    0x8(%ebp),%ebx
4106f8:	3b c3                	cmp    %ebx,%eax
4106fa:	73 6c                	jae    0x410768
4106fc:	c6 45 e8 00          	movb   $0x0,-0x18(%ebp)
410700:	ff 15 44 b1 41 00    	call   *0x41b144
410706:	8b f0                	mov    %eax,%esi
410708:	89 75 ec             	mov    %esi,-0x14(%ebp)
41070b:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41070f:	83 e3 c0             	and    $0xffffffc0,%ebx
410712:	83 c3 40             	add    $0x40,%ebx
410715:	33 c9                	xor    %ecx,%ecx
410717:	8b d3                	mov    %ebx,%edx
410719:	e8 78 54 ff ff       	call   0x405b96
41071e:	89 45 f0             	mov    %eax,-0x10(%ebp)
410721:	85 c0                	test   %eax,%eax
410723:	75 0b                	jne    0x410730
410725:	56                   	push   %esi
410726:	ff 15 2c b1 41 00    	call   *0x41b12c
41072c:	32 c0                	xor    %al,%al
41072e:	eb 3a                	jmp    0x41076a
410730:	8b 77 04             	mov    0x4(%edi),%esi
410733:	2b 37                	sub    (%edi),%esi
410735:	56                   	push   %esi
410736:	ff 37                	push   (%edi)
410738:	53                   	push   %ebx
410739:	50                   	push   %eax
41073a:	ff 15 74 b3 41 00    	call   *0x41b374
410740:	83 c4 10             	add    $0x10,%esp
410743:	8d 4f 0c             	lea    0xc(%edi),%ecx
410746:	ff 75 f0             	push   -0x10(%ebp)
410749:	e8 f9 19 00 00       	call   0x412147
41074e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
410751:	ff 75 ec             	push   -0x14(%ebp)
410754:	89 0f                	mov    %ecx,(%edi)
410756:	8d 04 0e             	lea    (%esi,%ecx,1),%eax
410759:	89 47 04             	mov    %eax,0x4(%edi)
41075c:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
41075f:	89 47 08             	mov    %eax,0x8(%edi)
410762:	ff 15 2c b1 41 00    	call   *0x41b12c
410768:	b0 01                	mov    $0x1,%al
41076a:	e8 ad 34 00 00       	call   0x413c1c
41076f:	c2 04 00             	ret    $0x4
410772:	8b ff                	mov    %edi,%edi
410774:	55                   	push   %ebp
410775:	8b ec                	mov    %esp,%ebp
410777:	8b 41 04             	mov    0x4(%ecx),%eax
41077a:	2b 01                	sub    (%ecx),%eax
41077c:	8b 51 08             	mov    0x8(%ecx),%edx
41077f:	2b 11                	sub    (%ecx),%edx
410781:	03 45 08             	add    0x8(%ebp),%eax
410784:	3b c2                	cmp    %edx,%eax
410786:	73 04                	jae    0x41078c
410788:	b0 01                	mov    $0x1,%al
41078a:	eb 11                	jmp    0x41079d
41078c:	8d 04 12             	lea    (%edx,%edx,1),%eax
41078f:	39 45 08             	cmp    %eax,0x8(%ebp)
410792:	72 03                	jb     0x410797
410794:	8b 45 08             	mov    0x8(%ebp),%eax
410797:	50                   	push   %eax
410798:	e8 45 ff ff ff       	call   0x4106e2
41079d:	5d                   	pop    %ebp
41079e:	c2 04 00             	ret    $0x4
4107a1:	8b ff                	mov    %edi,%edi
4107a3:	55                   	push   %ebp
4107a4:	8b ec                	mov    %esp,%ebp
4107a6:	56                   	push   %esi
4107a7:	57                   	push   %edi
4107a8:	8b 7d 0c             	mov    0xc(%ebp),%edi
4107ab:	8b f1                	mov    %ecx,%esi
4107ad:	57                   	push   %edi
4107ae:	e8 bf ff ff ff       	call   0x410772
4107b3:	84 c0                	test   %al,%al
4107b5:	74 23                	je     0x4107da
4107b7:	8b 56 04             	mov    0x4(%esi),%edx
4107ba:	8b 4e 08             	mov    0x8(%esi),%ecx
4107bd:	2b ca                	sub    %edx,%ecx
4107bf:	3b 56 08             	cmp    0x8(%esi),%edx
4107c2:	57                   	push   %edi
4107c3:	ff 75 08             	push   0x8(%ebp)
4107c6:	1b c0                	sbb    %eax,%eax
4107c8:	23 c1                	and    %ecx,%eax
4107ca:	50                   	push   %eax
4107cb:	52                   	push   %edx
4107cc:	ff 15 74 b3 41 00    	call   *0x41b374
4107d2:	83 c4 10             	add    $0x10,%esp
4107d5:	b0 01                	mov    $0x1,%al
4107d7:	01 7e 04             	add    %edi,0x4(%esi)
4107da:	5f                   	pop    %edi
4107db:	5e                   	pop    %esi
4107dc:	5d                   	pop    %ebp
4107dd:	c2 08 00             	ret    $0x8
4107e0:	8b ff                	mov    %edi,%edi
4107e2:	55                   	push   %ebp
4107e3:	8b ec                	mov    %esp,%ebp
4107e5:	83 e4 f8             	and    $0xfffffff8,%esp
4107e8:	b8 24 10 00 00       	mov    $0x1024,%eax
4107ed:	e8 3e 39 00 00       	call   0x414130
4107f2:	a1 18 51 41 00       	mov    0x415118,%eax
4107f7:	33 c4                	xor    %esp,%eax
4107f9:	89 84 24 20 10 00 00 	mov    %eax,0x1020(%esp)
410800:	53                   	push   %ebx
410801:	8b d9                	mov    %ecx,%ebx
410803:	56                   	push   %esi
410804:	57                   	push   %edi
410805:	6a 0c                	push   $0xc
410807:	8b 43 04             	mov    0x4(%ebx),%eax
41080a:	33 f6                	xor    %esi,%esi
41080c:	2b 03                	sub    (%ebx),%eax
41080e:	59                   	pop    %ecx
41080f:	89 5c 24 10          	mov    %ebx,0x10(%esp)
410813:	89 4c 24 18          	mov    %ecx,0x18(%esp)
410817:	3b c1                	cmp    %ecx,%eax
410819:	0f 82 16 01 00 00    	jb     0x410935
41081f:	8b fe                	mov    %esi,%edi
410821:	89 74 24 14          	mov    %esi,0x14(%esp)
410825:	8d 44 24 0c          	lea    0xc(%esp),%eax
410829:	c7 44 24 0c 00 10 00 	movl   $0x1000,0xc(%esp)
410830:	00
410831:	50                   	push   %eax
410832:	8d 44 24 2c          	lea    0x2c(%esp),%eax
410836:	50                   	push   %eax
410837:	8d 44 24 28          	lea    0x28(%esp),%eax