454626:	83 c2 02             	add    $0x2,%edx
454629:	66 3b c3             	cmp    %bx,%ax
45462c:	75 f5                	jne    0x454623
45462e:	2b d7                	sub    %edi,%edx
454630:	d1 fa                	sar    $1,%edx
454632:	8d 42 01             	lea    0x1(%edx),%eax
454635:	3b c2                	cmp    %edx,%eax
454637:	72 13                	jb     0x45464c
454639:	52                   	push   %edx
45463a:	50                   	push   %eax
45463b:	51                   	push   %ecx
45463c:	8b ce                	mov    %esi,%ecx
45463e:	e8 59 81 fd ff       	call   0x42c79c
454643:	5f                   	pop    %edi
454644:	8b c6                	mov    %esi,%eax
454646:	5e                   	pop    %esi
454647:	5b                   	pop    %ebx
454648:	5d                   	pop    %ebp
454649:	c2 08 00             	ret    $0x8
45464c:	b9 16 02 07 80       	mov    $0x80070216,%ecx
454651:	e8 38 81 fd ff       	call   0x42c78e
454656:	cc                   	int3
454657:	6a 10                	push   $0x10
454659:	b8 37 3f 49 00       	mov    $0x493f37,%eax
45465e:	e8 70 be 03 00       	call   0x4904d3
454663:	8b d9                	mov    %ecx,%ebx
454665:	33 f6                	xor    %esi,%esi
454667:	bf 05 40 00 80       	mov    $0x80004005,%edi
45466c:	56                   	push   %esi
45466d:	56                   	push   %esi
45466e:	56                   	push   %esi
45466f:	56                   	push   %esi
454670:	89 7d e4             	mov    %edi,-0x1c(%ebp)
454673:	ff 15 9c 71 4a 00    	call   *0x4a719c
454679:	89 45 e8             	mov    %eax,-0x18(%ebp)
45467c:	89 75 fc             	mov    %esi,-0x4(%ebp)
45467f:	85 c0                	test   %eax,%eax
454681:	74 70                	je     0x4546f3
454683:	8d 45 e4             	lea    -0x1c(%ebp),%eax
454686:	c7 45 f0 50 48 45 00 	movl   $0x454850,-0x10(%ebp)
45468d:	68 a0 ef 40 00       	push   $0x40efa0
454692:	6a 14                	push   $0x14
454694:	89 45 ec             	mov    %eax,-0x14(%ebp)
454697:	e8 a2 bd 03 00       	call   0x49043e
45469c:	59                   	pop    %ecx
45469d:	59                   	pop    %ecx
45469e:	85 c0                	test   %eax,%eax
4546a0:	74 0d                	je     0x4546af
4546a2:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4546a5:	51                   	push   %ecx
4546a6:	8b c8                	mov    %eax,%ecx
4546a8:	e8 4d 07 00 00       	call   0x454dfa
4546ad:	8b f0                	mov    %eax,%esi
4546af:	89 75 f0             	mov    %esi,-0x10(%ebp)
4546b2:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4546b6:	85 f6                	test   %esi,%esi
4546b8:	75 07                	jne    0x4546c1
4546ba:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
4546bf:	eb 27                	jmp    0x4546e8
4546c1:	8b 03                	mov    (%ebx),%eax
4546c3:	56                   	push   %esi
4546c4:	50                   	push   %eax
4546c5:	8b 08                	mov    (%eax),%ecx
4546c7:	8b 71 18             	mov    0x18(%ecx),%esi
4546ca:	8b ce                	mov    %esi,%ecx
4546cc:	ff 15 2c 81 4a 00    	call   *0x4a812c
4546d2:	ff d6                	call   *%esi
4546d4:	8b f8                	mov    %eax,%edi
4546d6:	85 ff                	test   %edi,%edi
4546d8:	78 0e                	js     0x4546e8
4546da:	6a ff                	push   $0xffffffff
4546dc:	ff 75 e8             	push   -0x18(%ebp)
4546df:	ff 15 a8 72 4a 00    	call   *0x4a72a8
4546e5:	8b 7d e4             	mov    -0x1c(%ebp),%edi
4546e8:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4546eb:	e8 5b 4b fc ff       	call   0x41924b
4546f0:	8b 45 e8             	mov    -0x18(%ebp),%eax
4546f3:	50                   	push   %eax
4546f4:	ff 15 88 72 4a 00    	call   *0x4a7288
4546fa:	8b c7                	mov    %edi,%eax
4546fc:	e8 a0 bd 03 00       	call   0x4904a1
454701:	c3                   	ret
454702:	8b ff                	mov    %edi,%edi
454704:	55                   	push   %ebp
454705:	8b ec                	mov    %esp,%ebp
454707:	8d 45 10             	lea    0x10(%ebp),%eax
45470a:	50                   	push   %eax
45470b:	ff 75 0c             	push   0xc(%ebp)
45470e:	6a 10                	push   $0x10
454710:	ff 75 08             	push   0x8(%ebp)
454713:	ff 15 70 80 4a 00    	call   *0x4a8070
454719:	83 c4 10             	add    $0x10,%esp
45471c:	5d                   	pop    %ebp
45471d:	c3                   	ret
45471e:	6a 24                	push   $0x24
454720:	b8 5a 3f 49 00       	mov    $0x493f5a,%eax
454725:	e8 dc bd 03 00       	call   0x490506
45472a:	8b f9                	mov    %ecx,%edi
45472c:	89 7d d0             	mov    %edi,-0x30(%ebp)
45472f:	8b 75 08             	mov    0x8(%ebp),%esi
454732:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
454735:	52                   	push   %edx
454736:	89 7d d0             	mov    %edi,-0x30(%ebp)
454739:	e8 e0 58 fc ff       	call   0x41a01e
45473e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
454742:	8b c8                	mov    %eax,%ecx
454744:	56                   	push   %esi
454745:	e8 63 ec ff ff       	call   0x4533ad
45474a:	50                   	push   %eax
45474b:	8b cf                	mov    %edi,%ecx
45474d:	e8 cc 58 fc ff       	call   0x41a01e
454752:	6a 00                	push   $0x0
454754:	6a 01                	push   $0x1
454756:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
454759:	e8 66 80 fc ff       	call   0x41c7c4
45475e:	8b c7                	mov    %edi,%eax
454760:	e8 50 bd 03 00       	call   0x4904b5
454765:	c3                   	ret
454766:	6a 10                	push   $0x10
454768:	b8 37 3f 49 00       	mov    $0x493f37,%eax
45476d:	e8 61 bd 03 00       	call   0x4904d3
454772:	8b d9                	mov    %ecx,%ebx
454774:	33 f6                	xor    %esi,%esi
454776:	bf 05 40 00 80       	mov    $0x80004005,%edi
45477b:	56                   	push   %esi
45477c:	56                   	push   %esi
45477d:	56                   	push   %esi
45477e:	56                   	push   %esi
45477f:	89 7d e4             	mov    %edi,-0x1c(%ebp)
454782:	ff 15 9c 71 4a 00    	call   *0x4a719c
454788:	89 45 e8             	mov    %eax,-0x18(%ebp)
45478b:	89 75 fc             	mov    %esi,-0x4(%ebp)
45478e:	85 c0                	test   %eax,%eax
454790:	74 70                	je     0x454802
454792:	8d 45 e4             	lea    -0x1c(%ebp),%eax
454795:	c7 45 f0 50 48 45 00 	movl   $0x454850,-0x10(%ebp)
45479c:	68 a0 ef 40 00       	push   $0x40efa0
4547a1:	6a 14                	push   $0x14
4547a3:	89 45 ec             	mov    %eax,-0x14(%ebp)
4547a6:	e8 93 bc 03 00       	call   0x49043e
4547ab:	59                   	pop    %ecx
4547ac:	59                   	pop    %ecx
4547ad:	85 c0                	test   %eax,%eax
4547af:	74 0d                	je     0x4547be
4547b1:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4547b4:	51                   	push   %ecx
4547b5:	8b c8                	mov    %eax,%ecx
4547b7:	e8 ec 05 00 00       	call   0x454da8
4547bc:	8b f0                	mov    %eax,%esi
4547be:	89 75 f0             	mov    %esi,-0x10(%ebp)
4547c1:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4547c5:	85 f6                	test   %esi,%esi
4547c7:	75 07                	jne    0x4547d0
4547c9:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
4547ce:	eb 27                	jmp    0x4547f7
4547d0:	8b 03                	mov    (%ebx),%eax
4547d2:	56                   	push   %esi
4547d3:	50                   	push   %eax
4547d4:	8b 08                	mov    (%eax),%ecx
4547d6:	8b 71 18             	mov    0x18(%ecx),%esi
4547d9:	8b ce                	mov    %esi,%ecx
4547db:	ff 15 2c 81 4a 00    	call   *0x4a812c
4547e1:	ff d6                	call   *%esi
4547e3:	8b f8                	mov    %eax,%edi
4547e5:	85 ff                	test   %edi,%edi
4547e7:	78 0e                	js     0x4547f7
4547e9:	6a ff                	push   $0xffffffff
4547eb:	ff 75 e8             	push   -0x18(%ebp)
4547ee:	ff 15 a8 72 4a 00    	call   *0x4a72a8
4547f4:	8b 7d e4             	mov    -0x1c(%ebp),%edi
4547f7:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4547fa:	e8 4c 4a fc ff       	call   0x41924b
4547ff:	8b 45 e8             	mov    -0x18(%ebp),%eax
454802:	50                   	push   %eax
454803:	ff 15 88 72 4a 00    	call   *0x4a7288
454809:	8b c7                	mov    %edi,%eax
45480b:	e8 91 bc 03 00       	call   0x4904a1
454810:	c3                   	ret
454811:	8b ff                	mov    %edi,%edi
454813:	55                   	push   %ebp
454814:	8b ec                	mov    %esp,%ebp
454816:	8b c2                	mov    %edx,%eax
454818:	2b c1                	sub    %ecx,%eax
45481a:	83 c0 07             	add    $0x7,%eax
45481d:	56                   	push   %esi
45481e:	33 f6                	xor    %esi,%esi
454820:	c1 e8 03             	shr    $0x3,%eax
454823:	3b d1                	cmp    %ecx,%edx
454825:	1b d2                	sbb    %edx,%edx
454827:	f7 d2                	not    %edx
454829:	23 d0                	and    %eax,%edx
45482b:	74 17                	je     0x454844
45482d:	57                   	push   %edi
45482e:	8b 7d 08             	mov    0x8(%ebp),%edi
454831:	8b 07                	mov    (%edi),%eax
454833:	46                   	inc    %esi
454834:	89 01                	mov    %eax,(%ecx)
454836:	8d 49 08             	lea    0x8(%ecx),%ecx
454839:	8b 47 04             	mov    0x4(%edi),%eax
45483c:	89 41 fc             	mov    %eax,-0x4(%ecx)
45483f:	3b f2                	cmp    %edx,%esi
454841:	75 ee                	jne    0x454831
454843:	5f                   	pop    %edi
454844:	5e                   	pop    %esi
454845:	5d                   	pop    %ebp
454846:	c3                   	ret
454847:	83 c1 04             	add    $0x4,%ecx
45484a:	e9 51 00 00 00       	jmp    0x4548a0
45484f:	cc                   	int3
454850:	8b ff                	mov    %edi,%edi
454852:	55                   	push   %ebp
454853:	8b ec                	mov    %esp,%ebp
454855:	8b 45 0c             	mov    0xc(%ebp),%eax
454858:	56                   	push   %esi
454859:	8b f1                	mov    %ecx,%esi
45485b:	83 e8 01             	sub    $0x1,%eax
45485e:	74 23                	je     0x454883
454860:	83 e8 01             	sub    $0x1,%eax
454863:	74 07                	je     0x45486c
454865:	83 e8 01             	sub    $0x1,%eax
454868:	74 11                	je     0x45487b
45486a:	eb 23                	jmp    0x45488f
45486c:	ff 76 04             	push   0x4(%esi)
45486f:	c7 06 c7 04 07 80    	movl   $0x800704c7,(%esi)
454875:	ff 15 a0 71 4a 00    	call   *0x4a71a0
45487b:	c7 06 05 40 00 80    	movl   $0x80004005,(%esi)
454881:	eb 03                	jmp    0x454886
454883:	83 26 00             	andl   $0x0,(%esi)
454886:	ff 76 04             	push   0x4(%esi)
454889:	ff 15 a0 71 4a 00    	call   *0x4a71a0
45488f:	33 c0                	xor    %eax,%eax
454891:	5e                   	pop    %esi
454892:	5d                   	pop    %ebp
454893:	c2 08 00             	ret    $0x8
454896:	ff 71 04             	push   0x4(%ecx)
454899:	ff 15 88 72 4a 00    	call   *0x4a7288
45489f:	c3                   	ret
4548a0:	8b ff                	mov    %edi,%edi
4548a2:	56                   	push   %esi
4548a3:	8b f1                	mov    %ecx,%esi
4548a5:	e8 bb 86 fe ff       	call   0x43cf65
4548aa:	ff 76 04             	push   0x4(%esi)
4548ad:	ff 15 10 74 4a 00    	call   *0x4a7410
4548b3:	83 66 04 00          	andl   $0x0,0x4(%esi)
4548b7:	59                   	pop    %ecx
4548b8:	5e                   	pop    %esi
4548b9:	c3                   	ret
4548ba:	6a 28                	push   $0x28
4548bc:	b8 87 3f 49 00       	mov    $0x493f87,%eax
4548c1:	e8 40 bc 03 00       	call   0x490506
4548c6:	8b c1                	mov    %ecx,%eax
4548c8:	89 45 d0             	mov    %eax,-0x30(%ebp)
4548cb:	83 78 18 08          	cmpl   $0x8,0x18(%eax)
4548cf:	8d 58 04             	lea    0x4(%eax),%ebx
4548d2:	8b 4d 08             	mov    0x8(%ebp),%ecx
4548d5:	89 4d cc             	mov    %ecx,-0x34(%ebp)
4548d8:	72 04                	jb     0x4548de
4548da:	8b 0b                	mov    (%ebx),%ecx
4548dc:	eb 02                	jmp    0x4548e0
4548de:	8b cb                	mov    %ebx,%ecx
4548e0:	8b 40 14             	mov    0x14(%eax),%eax
4548e3:	8d 3c 41             	lea    (%ecx,%eax,2),%edi
4548e6:	72 04                	jb     0x4548ec
4548e8:	8b 33                	mov    (%ebx),%esi
4548ea:	eb 02                	jmp    0x4548ee
4548ec:	8b f3                	mov    %ebx,%esi
4548ee:	ff 75 cc             	push   -0x34(%ebp)
4548f1:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
4548f5:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
4548f8:	ff 75 0c             	push   0xc(%ebp)
4548fb:	33 c0                	xor    %eax,%eax
4548fd:	c7 45 ec 07 00 00 00 	movl   $0x7,-0x14(%ebp)
454904:	ff 75 cc             	push   -0x34(%ebp)
454907:	66 89 45 d8          	mov    %ax,-0x28(%ebp)
45490b:	e8 3c 05 00 00       	call   0x454e4c
454910:	8b 45 d0             	mov    -0x30(%ebp),%eax
454913:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
454917:	83 78 18 08          	cmpl   $0x8,0x18(%eax)
45491b:	72 02                	jb     0x45491f
45491d:	8b 1b                	mov    (%ebx),%ebx
45491f:	85 ff                	test   %edi,%edi
454921:	74 04                	je     0x454927
454923:	2b fe                	sub    %esi,%edi
454925:	d1 ff                	sar    $1,%edi
454927:	85 f6                	test   %esi,%esi
454929:	74 04                	je     0x45492f
45492b:	2b f3                	sub    %ebx,%esi
45492d:	d1 fe                	sar    $1,%esi
45492f:	51                   	push   %ecx
454930:	51                   	push   %ecx
454931:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
454934:	51                   	push   %ecx
454935:	57                   	push   %edi
454936:	56                   	push   %esi
454937:	8b c8                	mov    %eax,%ecx
454939:	e8 60 02 00 00       	call   0x454b9e
45493e:	6a 00                	push   $0x0
454940:	6a 01                	push   $0x1
454942:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
454945:	e8 7a 7e fc ff       	call   0x41c7c4
45494a:	8b 45 d0             	mov    -0x30(%ebp),%eax
45494d:	e8 63 bb 03 00       	call   0x4904b5
454952:	c2 0c 00             	ret    $0xc
454955:	8b ff                	mov    %edi,%edi
454957:	55                   	push   %ebp
454958:	8b ec                	mov    %esp,%ebp
45495a:	85 d2                	test   %edx,%edx
45495c:	74 17                	je     0x454975
45495e:	56                   	push   %esi
45495f:	8b 75 08             	mov    0x8(%ebp),%esi
454962:	8b 06                	mov    (%esi),%eax
454964:	89 01                	mov    %eax,(%ecx)
454966:	8d 49 08             	lea    0x8(%ecx),%ecx
454969:	8b 46 04             	mov    0x4(%esi),%eax
45496c:	89 41 fc             	mov    %eax,-0x4(%ecx)
45496f:	83 ea 01             	sub    $0x1,%edx
454972:	75 ee                	jne    0x454962
454974:	5e                   	pop    %esi
454975:	5d                   	pop    %ebp
454976:	c2 10 00             	ret    $0x10
454979:	6a 0c                	push   $0xc
45497b:	b8 ac 3f 49 00       	mov    $0x493fac,%eax
454980:	e8 b7 bb 03 00       	call   0x49053c
454985:	8b fa                	mov    %edx,%edi
454987:	8b f1                	mov    %ecx,%esi
454989:	89 4d ec             	mov    %ecx,-0x14(%ebp)
45498c:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
454990:	89 75 e8             	mov    %esi,-0x18(%ebp)
454993:	85 ff                	test   %edi,%edi
454995:	74 2b                	je     0x4549c2
454997:	ff 75 08             	push   0x8(%ebp)
45499a:	8b ce                	mov    %esi,%ecx
45499c:	ff 15 18 74 4a 00    	call   *0x4a7418
4549a2:	4f                   	dec    %edi
4549a3:	83 c6 04             	add    $0x4,%esi
4549a6:	89 75 ec             	mov    %esi,-0x14(%ebp)
4549a9:	eb e8                	jmp    0x454993
4549ab:	8b 75 e8             	mov    -0x18(%ebp),%esi
4549ae:	eb 0b                	jmp    0x4549bb
4549b0:	8b ce                	mov    %esi,%ecx
4549b2:	ff 15 1c 74 4a 00    	call   *0x4a741c
4549b8:	83 c6 04             	add    $0x4,%esi
4549bb:	3b 75 ec             	cmp    -0x14(%ebp),%esi
4549be:	74 0a                	je     0x4549ca
4549c0:	eb ee                	jmp    0x4549b0
4549c2:	e8 da ba 03 00       	call   0x4904a1
4549c7:	c2 10 00             	ret    $0x10
4549ca:	6a 00                	push   $0x0
4549cc:	6a 00                	push   $0x0
4549ce:	e8 c8 ba 03 00       	call   0x49049b