4545ef:	85 c0                	test   %eax,%eax
4545f1:	74 09                	je     0x4545fc
4545f3:	8b d0                	mov    %eax,%edx
4545f5:	8b c3                	mov    %ebx,%eax
4545f7:	e8 4c 10 00 00       	call   0x455648
4545fc:	8b 55 08             	mov    0x8(%ebp),%edx
4545ff:	8b c3                	mov    %ebx,%eax
454601:	e8 ee fd ff ff       	call   0x4543f4
454606:	89 45 f8             	mov    %eax,-0x8(%ebp)
454609:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
45460d:	0f b6 80 40 c7 49 00 	movzbl 0x49c740(%eax),%eax
454614:	88 45 f7             	mov    %al,-0x9(%ebp)
454617:	8b 43 64             	mov    0x64(%ebx),%eax
45461a:	e8 29 f5 ff ff       	call   0x453b48
45461f:	48                   	dec    %eax
454620:	75 6c                	jne    0x45468e
454622:	8b 7b 64             	mov    0x64(%ebx),%edi
454625:	0f b6 45 f7          	movzbl -0x9(%ebp),%eax
454629:	88 47 10             	mov    %al,0x10(%edi)
45462c:	0f b6 45 f7          	movzbl -0x9(%ebp),%eax
454630:	fe c8                	dec    %al
454632:	74 06                	je     0x45463a
454634:	fe c8                	dec    %al
454636:	74 2d                	je     0x454665
454638:	eb 54                	jmp    0x45468e
45463a:	8b 47 08             	mov    0x8(%edi),%eax
45463d:	ba 02 00 00 00       	mov    $0x2,%edx
454642:	e8 85 f6 ff ff       	call   0x453ccc
454647:	8b d0                	mov    %eax,%edx
454649:	8b c7                	mov    %edi,%eax
45464b:	e8 78 fa ff ff       	call   0x4540c8
454650:	8b 43 64             	mov    0x64(%ebx),%eax
454653:	8b 40 08             	mov    0x8(%eax),%eax
454656:	ba 01 00 00 00       	mov    $0x1,%edx
45465b:	e8 6c f6 ff ff       	call   0x453ccc
454660:	89 43 68             	mov    %eax,0x68(%ebx)
454663:	eb 29                	jmp    0x45468e
454665:	8b 47 08             	mov    0x8(%edi),%eax
454668:	ba 01 00 00 00       	mov    $0x1,%edx
45466d:	e8 5a f6 ff ff       	call   0x453ccc
454672:	8b d0                	mov    %eax,%edx
454674:	8b c7                	mov    %edi,%eax
454676:	e8 4d fa ff ff       	call   0x4540c8
45467b:	8b 43 64             	mov    0x64(%ebx),%eax
45467e:	8b 40 08             	mov    0x8(%eax),%eax
454681:	ba 02 00 00 00       	mov    $0x2,%edx
454686:	e8 41 f6 ff ff       	call   0x453ccc
45468b:	89 43 68             	mov    %eax,0x68(%ebx)
45468e:	8b cb                	mov    %ebx,%ecx
454690:	b2 01                	mov    $0x1,%dl
454692:	a1 ec 61 44 00       	mov    0x4461ec,%eax
454697:	e8 88 f4 ff ff       	call   0x453b24
45469c:	89 70 04             	mov    %esi,0x4(%eax)
45469f:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
4546a3:	74 0c                	je     0x4546b1
4546a5:	8b 55 f8             	mov    -0x8(%ebp),%edx
4546a8:	8b 52 14             	mov    0x14(%edx),%edx
4546ab:	0f b6 52 10          	movzbl 0x10(%edx),%edx
4546af:	eb 07                	jmp    0x4546b8
4546b1:	8b 53 64             	mov    0x64(%ebx),%edx
4546b4:	0f b6 52 10          	movzbl 0x10(%edx),%edx
4546b8:	80 7d f7 00          	cmpb   $0x0,-0x9(%ebp)
4546bc:	75 03                	jne    0x4546c1
4546be:	88 55 f7             	mov    %dl,-0x9(%ebp)
4546c1:	3a 55 f7             	cmp    -0x9(%ebp),%dl
4546c4:	75 1a                	jne    0x4546e0
4546c6:	0f b6 55 ff          	movzbl -0x1(%ebp),%edx
4546ca:	0f b6 92 48 c7 49 00 	movzbl 0x49c748(%edx),%edx
4546d1:	52                   	push   %edx
4546d2:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4546d5:	8b d0                	mov    %eax,%edx
4546d7:	8b c3                	mov    %ebx,%eax
4546d9:	e8 de 01 00 00       	call   0x4548bc
4546de:	eb 1d                	jmp    0x4546fd
4546e0:	0f b6 55 f7          	movzbl -0x9(%ebp),%edx
4546e4:	52                   	push   %edx
4546e5:	0f b6 55 ff          	movzbl -0x1(%ebp),%edx
4546e9:	0f b6 92 48 c7 49 00 	movzbl 0x49c748(%edx),%edx
4546f0:	52                   	push   %edx
4546f1:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4546f4:	8b d0                	mov    %eax,%edx
4546f6:	8b c3                	mov    %ebx,%eax
4546f8:	e8 17 00 00 00       	call   0x454714
4546fd:	8b 43 14             	mov    0x14(%ebx),%eax
454700:	8b 10                	mov    (%eax),%edx
454702:	ff 92 80 00 00 00    	call   *0x80(%edx)
454708:	5f                   	pop    %edi
454709:	5e                   	pop    %esi
45470a:	5b                   	pop    %ebx
45470b:	8b e5                	mov    %ebp,%esp
45470d:	5d                   	pop    %ebp
45470e:	c2 04 00             	ret    $0x4
454711:	8d 40 00             	lea    0x0(%eax),%eax
454714:	55                   	push   %ebp
454715:	8b ec                	mov    %esp,%ebp
454717:	51                   	push   %ecx
454718:	53                   	push   %ebx
454719:	56                   	push   %esi
45471a:	57                   	push   %edi
45471b:	8b f9                	mov    %ecx,%edi
45471d:	89 55 fc             	mov    %edx,-0x4(%ebp)
454720:	8b f0                	mov    %eax,%esi
454722:	8b ce                	mov    %esi,%ecx
454724:	b2 01                	mov    $0x1,%dl
454726:	a1 ec 61 44 00       	mov    0x4461ec,%eax
45472b:	e8 f4 f3 ff ff       	call   0x453b24
454730:	8b d8                	mov    %eax,%ebx
454732:	0f b6 45 0c          	movzbl 0xc(%ebp),%eax
454736:	88 43 10             	mov    %al,0x10(%ebx)
454739:	85 ff                	test   %edi,%edi
45473b:	0f 85 de 00 00 00    	jne    0x45481f
454741:	8b 56 68             	mov    0x68(%esi),%edx
454744:	8b c3                	mov    %ebx,%eax
454746:	e8 7d f9 ff ff       	call   0x4540c8
45474b:	8b 46 64             	mov    0x64(%esi),%eax
45474e:	e8 4d f9 ff ff       	call   0x4540a0
454753:	89 46 68             	mov    %eax,0x68(%esi)
454756:	0f b6 45 0c          	movzbl 0xc(%ebp),%eax
45475a:	88 46 48             	mov    %al,0x48(%esi)
45475d:	33 c0                	xor    %eax,%eax
45475f:	89 46 40             	mov    %eax,0x40(%esi)
454762:	c7 46 44 00 00 e0 3f 	movl   $0x3fe00000,0x44(%esi)
454769:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
45476d:	74 33                	je     0x4547a2
45476f:	8b 46 64             	mov    0x64(%esi),%eax
454772:	89 43 08             	mov    %eax,0x8(%ebx)
454775:	8b 46 64             	mov    0x64(%esi),%eax
454778:	89 58 14             	mov    %ebx,0x14(%eax)
45477b:	8b 55 fc             	mov    -0x4(%ebp),%edx
45477e:	89 50 0c             	mov    %edx,0xc(%eax)
454781:	8b 55 fc             	mov    -0x4(%ebp),%edx
454784:	89 42 18             	mov    %eax,0x18(%edx)
454787:	8b 45 fc             	mov    -0x4(%ebp),%eax
45478a:	89 58 14             	mov    %ebx,0x14(%eax)
45478d:	89 5e 64             	mov    %ebx,0x64(%esi)
454790:	56                   	push   %esi
454791:	68 d0 59 45 00       	push   $0x4559d0
454796:	8b 53 08             	mov    0x8(%ebx),%edx
454799:	8b c6                	mov    %esi,%eax
45479b:	e8 bc fc ff ff       	call   0x45445c
4547a0:	eb 6c                	jmp    0x45480e
4547a2:	8b 45 fc             	mov    -0x4(%ebp),%eax
4547a5:	89 43 08             	mov    %eax,0x8(%ebx)
4547a8:	8b 46 64             	mov    0x64(%esi),%eax
4547ab:	89 58 14             	mov    %ebx,0x14(%eax)
4547ae:	8b 55 fc             	mov    -0x4(%ebp),%edx
4547b1:	89 50 18             	mov    %edx,0x18(%eax)
4547b4:	8b 55 fc             	mov    -0x4(%ebp),%edx
4547b7:	89 42 0c             	mov    %eax,0xc(%edx)
4547ba:	8b 45 fc             	mov    -0x4(%ebp),%eax
4547bd:	89 58 14             	mov    %ebx,0x14(%eax)
4547c0:	89 5e 64             	mov    %ebx,0x64(%esi)
4547c3:	56                   	push   %esi
4547c4:	68 d0 59 45 00       	push   $0x4559d0
4547c9:	8b 53 08             	mov    0x8(%ebx),%edx
4547cc:	8b c6                	mov    %esi,%eax
4547ce:	e8 89 fc ff ff       	call   0x45445c
4547d3:	8b 46 64             	mov    0x64(%esi),%eax
4547d6:	e8 c5 f8 ff ff       	call   0x4540a0
4547db:	d1 f8                	sar    $1,%eax
4547dd:	79 03                	jns    0x4547e2
4547df:	83 d0 00             	adc    $0x0,%eax
4547e2:	89 46 4c             	mov    %eax,0x4c(%esi)
4547e5:	56                   	push   %esi
4547e6:	68 20 5e 45 00       	push   $0x455e20
4547eb:	8b 53 08             	mov    0x8(%ebx),%edx
4547ee:	8b c6                	mov    %esi,%eax
4547f0:	e8 67 fc ff ff       	call   0x45445c
4547f5:	8b 46 64             	mov    0x64(%esi),%eax
4547f8:	e8 a3 f8 ff ff       	call   0x4540a0
4547fd:	8b d0                	mov    %eax,%edx
4547ff:	d1 fa                	sar    $1,%edx
454801:	79 03                	jns    0x454806
454803:	83 d2 00             	adc    $0x0,%edx
454806:	8b 45 fc             	mov    -0x4(%ebp),%eax
454809:	e8 ba f8 ff ff       	call   0x4540c8
45480e:	56                   	push   %esi
45480f:	68 58 5f 45 00       	push   $0x455f58
454814:	33 d2                	xor    %edx,%edx
454816:	8b c6                	mov    %esi,%eax
454818:	e8 3f fc ff ff       	call   0x45445c
45481d:	eb 77                	jmp    0x454896
45481f:	8b c7                	mov    %edi,%eax
454821:	e8 7a f8 ff ff       	call   0x4540a0
454826:	8b d0                	mov    %eax,%edx
454828:	8b c3                	mov    %ebx,%eax
45482a:	e8 99 f8 ff ff       	call   0x4540c8
45482f:	8b 47 14             	mov    0x14(%edi),%eax
454832:	89 43 14             	mov    %eax,0x14(%ebx)
454835:	8b 47 18             	mov    0x18(%edi),%eax
454838:	89 43 18             	mov    %eax,0x18(%ebx)
45483b:	85 c0                	test   %eax,%eax
45483d:	74 03                	je     0x454842
45483f:	89 58 0c             	mov    %ebx,0xc(%eax)
454842:	8b 47 0c             	mov    0xc(%edi),%eax
454845:	89 43 0c             	mov    %eax,0xc(%ebx)
454848:	85 c0                	test   %eax,%eax
45484a:	74 03                	je     0x45484f
45484c:	89 58 18             	mov    %ebx,0x18(%eax)
45484f:	8b 43 14             	mov    0x14(%ebx),%eax
454852:	3b 78 08             	cmp    0x8(%eax),%edi
454855:	75 03                	jne    0x45485a
454857:	89 58 08             	mov    %ebx,0x8(%eax)
45485a:	8b 45 fc             	mov    -0x4(%ebp),%eax
45485d:	89 58 14             	mov    %ebx,0x14(%eax)
454860:	89 5f 14             	mov    %ebx,0x14(%edi)
454863:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
454867:	74 16                	je     0x45487f
454869:	89 7b 08             	mov    %edi,0x8(%ebx)
45486c:	33 c0                	xor    %eax,%eax
45486e:	89 47 18             	mov    %eax,0x18(%edi)
454871:	8b 45 fc             	mov    -0x4(%ebp),%eax
454874:	89 47 0c             	mov    %eax,0xc(%edi)
454877:	8b 45 fc             	mov    -0x4(%ebp),%eax
45487a:	89 78 18             	mov    %edi,0x18(%eax)
45487d:	eb 17                	jmp    0x454896
45487f:	8b 45 fc             	mov    -0x4(%ebp),%eax
454882:	89 43 08             	mov    %eax,0x8(%ebx)
454885:	8b 45 fc             	mov    -0x4(%ebp),%eax
454888:	89 47 18             	mov    %eax,0x18(%edi)
45488b:	33 c0                	xor    %eax,%eax
45488d:	89 47 0c             	mov    %eax,0xc(%edi)
454890:	8b 45 fc             	mov    -0x4(%ebp),%eax
454893:	89 78 0c             	mov    %edi,0xc(%eax)
454896:	8b c3                	mov    %ebx,%eax
454898:	e8 e7 f4 ff ff       	call   0x453d84
45489d:	8b c3                	mov    %ebx,%eax
45489f:	e8 78 f8 ff ff       	call   0x45411c
4548a4:	56                   	push   %esi
4548a5:	68 58 5f 45 00       	push   $0x455f58
4548aa:	33 d2                	xor    %edx,%edx
4548ac:	8b c6                	mov    %esi,%eax
4548ae:	e8 a9 fb ff ff       	call   0x45445c
4548b3:	5f                   	pop    %edi
4548b4:	5e                   	pop    %esi
4548b5:	5b                   	pop    %ebx
4548b6:	59                   	pop    %ecx
4548b7:	5d                   	pop    %ebp
4548b8:	c2 08 00             	ret    $0x8
4548bb:	90                   	nop
4548bc:	55                   	push   %ebp
4548bd:	8b ec                	mov    %esp,%ebp
4548bf:	53                   	push   %ebx
4548c0:	8b d9                	mov    %ecx,%ebx
4548c2:	8b 4d 08             	mov    0x8(%ebp),%ecx
4548c5:	85 db                	test   %ebx,%ebx
4548c7:	75 15                	jne    0x4548de
4548c9:	8b 40 64             	mov    0x64(%eax),%eax
4548cc:	8b 58 08             	mov    0x8(%eax),%ebx
4548cf:	84 c9                	test   %cl,%cl
4548d1:	74 0b                	je     0x4548de
4548d3:	eb 02                	jmp    0x4548d7
4548d5:	8b d8                	mov    %eax,%ebx
4548d7:	8b 43 0c             	mov    0xc(%ebx),%eax
4548da:	85 c0                	test   %eax,%eax
4548dc:	75 f7                	jne    0x4548d5
4548de:	84 c9                	test   %cl,%cl
4548e0:	74 1b                	je     0x4548fd
4548e2:	8b 43 14             	mov    0x14(%ebx),%eax
4548e5:	89 42 14             	mov    %eax,0x14(%edx)
4548e8:	89 5a 18             	mov    %ebx,0x18(%edx)
4548eb:	8b 43 0c             	mov    0xc(%ebx),%eax
4548ee:	89 42 0c             	mov    %eax,0xc(%edx)
4548f1:	85 c0                	test   %eax,%eax
4548f3:	74 03                	je     0x4548f8
4548f5:	89 50 18             	mov    %edx,0x18(%eax)
4548f8:	89 53 0c             	mov    %edx,0xc(%ebx)
4548fb:	eb 21                	jmp    0x45491e
4548fd:	89 5a 0c             	mov    %ebx,0xc(%edx)
454900:	8b 43 18             	mov    0x18(%ebx),%eax
454903:	89 42 18             	mov    %eax,0x18(%edx)
454906:	85 c0                	test   %eax,%eax
454908:	74 03                	je     0x45490d
45490a:	89 50 0c             	mov    %edx,0xc(%eax)
45490d:	89 53 18             	mov    %edx,0x18(%ebx)
454910:	8b 43 14             	mov    0x14(%ebx),%eax
454913:	89 42 14             	mov    %eax,0x14(%edx)
454916:	3b 58 08             	cmp    0x8(%eax),%ebx
454919:	75 03                	jne    0x45491e
45491b:	89 50 08             	mov    %edx,0x8(%eax)
45491e:	8b 43 14             	mov    0x14(%ebx),%eax
454921:	e8 5e f4 ff ff       	call   0x453d84
454926:	8b 43 14             	mov    0x14(%ebx),%eax
454929:	e8 ee f7 ff ff       	call   0x45411c
45492e:	5b                   	pop    %ebx
45492f:	5d                   	pop    %ebp
454930:	c2 04 00             	ret    $0x4
454933:	90                   	nop
454934:	55                   	push   %ebp
454935:	8b ec                	mov    %esp,%ebp
454937:	83 c4 f4             	add    $0xfffffff4,%esp
45493a:	53                   	push   %ebx
45493b:	56                   	push   %esi
45493c:	57                   	push   %edi
45493d:	8b d9                	mov    %ecx,%ebx
45493f:	8b f2                	mov    %edx,%esi
454941:	89 45 fc             	mov    %eax,-0x4(%ebp)
454944:	c6 45 fb 00          	movb   $0x0,-0x5(%ebp)
454948:	ba 01 00 00 00       	mov    $0x1,%edx
45494d:	8b c6                	mov    %esi,%eax
45494f:	e8 f4 f2 ff ff       	call   0x453c48
454954:	8b f8                	mov    %eax,%edi
454956:	ba 02 00 00 00       	mov    $0x2,%edx
45495b:	8b c6                	mov    %esi,%eax
45495d:	e8 e6 f2 ff ff       	call   0x453c48
454962:	89 45 f4             	mov    %eax,-0xc(%ebp)
454965:	8b 45 fc             	mov    -0x4(%ebp),%eax
454968:	80 78 1c 00          	cmpb   $0x0,0x1c(%eax)
45496c:	74 66                	je     0x4549d4
45496e:	3b 7b 04             	cmp    0x4(%ebx),%edi
454971:	0f 8f b3 00 00 00    	jg     0x454a2a
454977:	8b 43 04             	mov    0x4(%ebx),%eax
45497a:	8b 55 fc             	mov    -0x4(%ebp),%edx
45497d:	03 7a 18             	add    0x18(%edx),%edi
454980:	3b c7                	cmp    %edi,%eax
454982:	0f 8f a2 00 00 00    	jg     0x454a2a
454988:	8b 03                	mov    (%ebx),%eax
45498a:	3b 45 f4             	cmp    -0xc(%ebp),%eax
45498d:	0f 8c 97 00 00 00    	jl     0x454a2a
454993:	ba 02 00 00 00       	mov    $0x2,%edx
454998:	8b c6                	mov    %esi,%eax
45499a:	e8 2d f3 ff ff       	call   0x453ccc
45499f:	03 45 f4             	add    -0xc(%ebp),%eax
4549a2:	3b 03                	cmp    (%ebx),%eax
4549a4:	0f 8c 80 00 00 00    	jl     0x454a2a
4549aa:	c6 45 fb 01          	movb   $0x1,-0x5(%ebp)
4549ae:	8b 46 04             	mov    0x4(%esi),%eax
4549b1:	8b 50 40             	mov    0x40(%eax),%edx
4549b4:	03 50 48             	add    0x48(%eax),%edx
4549b7:	83 ea 0f             	sub    $0xf,%edx
4549ba:	3b 13                	cmp    (%ebx),%edx
4549bc:	7d 0b                	jge    0x4549c9
4549be:	8b 45 08             	mov    0x8(%ebp),%eax
4549c1:	c7 00 14 00 00 00    	movl   $0x14,(%eax)
4549c7:	eb 61                	jmp    0x454a2a
4549c9:	8b 45 08             	mov    0x8(%ebp),%eax
4549cc:	c7 00 02 00 00 00    	movl   $0x2,(%eax)
4549d2:	eb 56                	jmp    0x454a2a
4549d4:	8b 03                	mov    (%ebx),%eax
4549d6:	3b 45 f4             	cmp    -0xc(%ebp),%eax
4549d9:	7c 4f                	jl     0x454a2a
4549db:	8b 03                	mov    (%ebx),%eax
4549dd:	8b 55 fc             	mov    -0x4(%ebp),%edx
4549e0:	8b 52 18             	mov    0x18(%edx),%edx
4549e3:	03 55 f4             	add    -0xc(%ebp),%edx
4549e6:	3b c2                	cmp    %edx,%eax
4549e8:	7f 40                	jg     0x454a2a
4549ea:	3b 7b 04             	cmp    0x4(%ebx),%edi
4549ed:	7f 3b                	jg     0x454a2a
4549ef:	ba 01 00 00 00       	mov    $0x1,%edx