454518:	72 f4                	jb     0x45450e
45451a:	6a 20                	push   $0x20
45451c:	58                   	pop    %eax
45451d:	50                   	push   %eax
45451e:	8d 85 2c ff ff ff    	lea    -0xd4(%ebp),%eax
454524:	50                   	push   %eax
454525:	ff 75 f8             	push   -0x8(%ebp)
454528:	e8 53 cb fc ff       	call   0x421080
45452d:	83 c4 0c             	add    $0xc,%esp
454530:	83 c7 20             	add    $0x20,%edi
454533:	8b 5d f0             	mov    -0x10(%ebp),%ebx
454536:	8b c7                	mov    %edi,%eax
454538:	2b c3                	sub    %ebx,%eax
45453a:	89 7d f8             	mov    %edi,-0x8(%ebp)
45453d:	d1 f8                	sar    $1,%eax
45453f:	66 89 43 02          	mov    %ax,0x2(%ebx)
454543:	e9 d0 2f fc ff       	jmp    0x417518
454548:	f6 94 05 2c ff ff ff 	notb   -0xd4(%ebp,%eax,1)
45454f:	40                   	inc    %eax
454550:	3b c1                	cmp    %ecx,%eax
454552:	72 f4                	jb     0x454548
454554:	e9 e6 36 fc ff       	jmp    0x417c3f
454559:	8b 45 0c             	mov    0xc(%ebp),%eax
45455c:	c7 00 4b 00 00 00    	movl   $0x4b,(%eax)
454562:	e9 4b 01 00 00       	jmp    0x4546b2
454567:	8b 45 0c             	mov    0xc(%ebp),%eax
45456a:	c7 00 3b 00 00 00    	movl   $0x3b,(%eax)
454570:	e9 3d 01 00 00       	jmp    0x4546b2
454575:	8b 45 0c             	mov    0xc(%ebp),%eax
454578:	c7 00 42 00 00 00    	movl   $0x42,(%eax)
45457e:	e9 2f 01 00 00       	jmp    0x4546b2
454583:	8b 45 0c             	mov    0xc(%ebp),%eax
454586:	c7 00 54 00 00 00    	movl   $0x54,(%eax)
45458c:	e9 21 01 00 00       	jmp    0x4546b2
454591:	8b 45 0c             	mov    0xc(%ebp),%eax
454594:	c7 00 23 00 00 00    	movl   $0x23,(%eax)
45459a:	e9 13 01 00 00       	jmp    0x4546b2
45459f:	6a 02                	push   $0x2
4545a1:	58                   	pop    %eax
4545a2:	2b f0                	sub    %eax,%esi
4545a4:	8b 45 0c             	mov    0xc(%ebp),%eax
4545a7:	c7 00 1a 00 00 00    	movl   $0x1a,(%eax)
4545ad:	e9 00 01 00 00       	jmp    0x4546b2
4545b2:	8b 45 0c             	mov    0xc(%ebp),%eax
4545b5:	c7 00 1c 00 00 00    	movl   $0x1c,(%eax)
4545bb:	e9 f2 00 00 00       	jmp    0x4546b2
4545c0:	6a 27                	push   $0x27
4545c2:	e9 b7 00 00 00       	jmp    0x45467e
4545c7:	6a 2b                	push   $0x2b
4545c9:	e9 b0 00 00 00       	jmp    0x45467e
4545ce:	8b 45 0c             	mov    0xc(%ebp),%eax
4545d1:	c7 00 15 00 00 00    	movl   $0x15,(%eax)
4545d7:	e9 21 3d fc ff       	jmp    0x4182fd
4545dc:	8b 45 0c             	mov    0xc(%ebp),%eax
4545df:	c7 00 31 00 00 00    	movl   $0x31,(%eax)
4545e5:	e9 c8 00 00 00       	jmp    0x4546b2
4545ea:	6a 2a                	push   $0x2a
4545ec:	e9 8d 00 00 00       	jmp    0x45467e
4545f1:	8b 45 0c             	mov    0xc(%ebp),%eax
4545f4:	03 f2                	add    %edx,%esi
4545f6:	c7 00 18 00 00 00    	movl   $0x18,(%eax)
4545fc:	e9 b1 00 00 00       	jmp    0x4546b2
454601:	8b 45 0c             	mov    0xc(%ebp),%eax
454604:	c7 00 14 00 00 00    	movl   $0x14,(%eax)
45460a:	e9 a3 00 00 00       	jmp    0x4546b2
45460f:	8b 45 0c             	mov    0xc(%ebp),%eax
454612:	2b f2                	sub    %edx,%esi
454614:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
45461a:	e9 93 00 00 00       	jmp    0x4546b2
45461f:	8b 45 0c             	mov    0xc(%ebp),%eax
454622:	c7 00 36 00 00 00    	movl   $0x36,(%eax)
454628:	e9 d0 3c fc ff       	jmp    0x4182fd
45462d:	8b 45 0c             	mov    0xc(%ebp),%eax
454630:	c7 00 1b 00 00 00    	movl   $0x1b,(%eax)
454636:	e9 c2 3c fc ff       	jmp    0x4182fd
45463b:	8b 45 0c             	mov    0xc(%ebp),%eax
45463e:	c7 00 0e 00 00 00    	movl   $0xe,(%eax)
454644:	eb 6c                	jmp    0x4546b2
454646:	6a 3a                	push   $0x3a
454648:	eb 34                	jmp    0x45467e
45464a:	6a 1d                	push   $0x1d
45464c:	eb 30                	jmp    0x45467e
45464e:	6a 30                	push   $0x30
454650:	eb 06                	jmp    0x454658
454652:	6a 2a                	push   $0x2a
454654:	eb 02                	jmp    0x454658
454656:	6a 3e                	push   $0x3e
454658:	58                   	pop    %eax
454659:	89 02                	mov    %eax,(%edx)
45465b:	eb 55                	jmp    0x4546b2
45465d:	8b 45 0c             	mov    0xc(%ebp),%eax
454660:	6a 0f                	push   $0xf
454662:	59                   	pop    %ecx
454663:	89 08                	mov    %ecx,(%eax)
454665:	e9 93 3c fc ff       	jmp    0x4182fd
45466a:	8b 45 0c             	mov    0xc(%ebp),%eax
45466d:	c7 00 28 00 00 00    	movl   $0x28,(%eax)
454673:	e9 85 3c fc ff       	jmp    0x4182fd
454678:	6a 1e                	push   $0x1e
45467a:	eb 02                	jmp    0x45467e
45467c:	6a 1f                	push   $0x1f
45467e:	8b 45 0c             	mov    0xc(%ebp),%eax
454681:	59                   	pop    %ecx
454682:	89 08                	mov    %ecx,(%eax)
454684:	eb 2c                	jmp    0x4546b2
454686:	c7 02 07 00 00 00    	movl   $0x7,(%edx)
45468c:	eb 24                	jmp    0x4546b2
45468e:	c7 02 47 00 00 00    	movl   $0x47,(%edx)
454694:	e9 64 3c fc ff       	jmp    0x4182fd
454699:	c7 01 53 00 00 00    	movl   $0x53,(%ecx)
45469f:	eb 11                	jmp    0x4546b2
4546a1:	c7 01 08 00 00 00    	movl   $0x8,(%ecx)
4546a7:	eb 09                	jmp    0x4546b2
4546a9:	8b 45 0c             	mov    0xc(%ebp),%eax
4546ac:	c7 00 34 00 00 00    	movl   $0x34,(%eax)
4546b2:	8b 45 08             	mov    0x8(%ebp),%eax
4546b5:	89 30                	mov    %esi,(%eax)
4546b7:	33 c0                	xor    %eax,%eax
4546b9:	e9 f2 2e fc ff       	jmp    0x4175b0
4546be:	a9 00 08 00 00       	test   $0x800,%eax
4546c3:	0f 84 a1 00 00 00    	je     0x45476a
4546c9:	83 e0 fe             	and    $0xfffffffe,%eax
4546cc:	89 75 ec             	mov    %esi,-0x14(%ebp)
4546cf:	89 45 08             	mov    %eax,0x8(%ebp)
4546d2:	8d 45 f0             	lea    -0x10(%ebp),%eax
4546d5:	8b d7                	mov    %edi,%edx
4546d7:	50                   	push   %eax
4546d8:	8d 45 10             	lea    0x10(%ebp),%eax
4546db:	50                   	push   %eax
4546dc:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4546df:	e8 a1 9d 03 00       	call   0x48e485
4546e4:	59                   	pop    %ecx
4546e5:	59                   	pop    %ecx
4546e6:	85 c0                	test   %eax,%eax
4546e8:	0f 88 b2 00 00 00    	js     0x4547a0
4546ee:	7e 1e                	jle    0x45470e
4546f0:	ff 75 10             	push   0x10(%ebp)
4546f3:	8b 55 f4             	mov    -0xc(%ebp),%edx
4546f6:	8d 04 85 d0 45 4a 00 	lea    0x4a45d0(,%eax,4),%eax
4546fd:	8b 4d f8             	mov    -0x8(%ebp),%ecx
454700:	50                   	push   %eax
454701:	ff 75 0c             	push   0xc(%ebp)
454704:	ff 75 08             	push   0x8(%ebp)
454707:	e8 8c 95 03 00       	call   0x48dc98
45470c:	eb 51                	jmp    0x45475f
45470e:	8b 55 10             	mov    0x10(%ebp),%edx
454711:	8b 4d f0             	mov    -0x10(%ebp),%ecx
454714:	3b d6                	cmp    %esi,%edx
454716:	72 25                	jb     0x45473d
454718:	3b cf                	cmp    %edi,%ecx
45471a:	76 b6                	jbe    0x4546d2
45471c:	3b cf                	cmp    %edi,%ecx
45471e:	76 2c                	jbe    0x45474c
454720:	8d 47 01             	lea    0x1(%edi),%eax
454723:	3b d0                	cmp    %eax,%edx
454725:	77 25                	ja     0x45474c
454727:	8b f9                	mov    %ecx,%edi
454729:	89 7d 14             	mov    %edi,0x14(%ebp)
45472c:	3b cb                	cmp    %ebx,%ecx
45472e:	76 a2                	jbe    0x4546d2
454730:	b8 ff 00 00 00       	mov    $0xff,%eax
454735:	3b c8                	cmp    %eax,%ecx
454737:	77 0f                	ja     0x454748
454739:	8b d9                	mov    %ecx,%ebx
45473b:	eb 95                	jmp    0x4546d2
45473d:	8d 46 ff             	lea    -0x1(%esi),%eax
454740:	3b c8                	cmp    %eax,%ecx
454742:	72 d8                	jb     0x45471c
454744:	8b f2                	mov    %edx,%esi
454746:	eb 8a                	jmp    0x4546d2
454748:	8b d8                	mov    %eax,%ebx
45474a:	eb 86                	jmp    0x4546d2
45474c:	51                   	push   %ecx
45474d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
454750:	52                   	push   %edx
454751:	ff 75 0c             	push   0xc(%ebp)
454754:	8b 55 f4             	mov    -0xc(%ebp),%edx
454757:	ff 75 08             	push   0x8(%ebp)
45475a:	e8 a6 3b fc ff       	call   0x418305
45475f:	83 c4 10             	add    $0x10,%esp
454762:	01 45 fc             	add    %eax,-0x4(%ebp)
454765:	e9 68 ff ff ff       	jmp    0x4546d2
45476a:	3b f3                	cmp    %ebx,%esi
45476c:	0f 87 c3 3b fc ff    	ja     0x418335
454772:	8b c3                	mov    %ebx,%eax
454774:	8b fe                	mov    %esi,%edi
454776:	2b c6                	sub    %esi,%eax
454778:	40                   	inc    %eax
454779:	89 45 fc             	mov    %eax,-0x4(%ebp)
45477c:	8b 45 0c             	mov    0xc(%ebp),%eax
45477f:	8b 40 04             	mov    0x4(%eax),%eax
454782:	0f b6 0c 38          	movzbl (%eax,%edi,1),%ecx
454786:	b0 01                	mov    $0x1,%al
454788:	8b d1                	mov    %ecx,%edx
45478a:	83 e1 07             	and    $0x7,%ecx
45478d:	d2 e0                	shl    %cl,%al
45478f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
454792:	c1 ea 03             	shr    $0x3,%edx
454795:	08 04 0a             	or     %al,(%edx,%ecx,1)
454798:	47                   	inc    %edi
454799:	3b fb                	cmp    %ebx,%edi
45479b:	76 df                	jbe    0x45477c
45479d:	8b 7d 14             	mov    0x14(%ebp),%edi
4547a0:	8b 45 08             	mov    0x8(%ebp),%eax
4547a3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4547a6:	e9 8a 3b fc ff       	jmp    0x418335
4547ab:	ba ff ff 00 00       	mov    $0xffff,%edx
4547b0:	3b fa                	cmp    %edx,%edi
4547b2:	0f 86 8b 3b fc ff    	jbe    0x418343
4547b8:	8b fa                	mov    %edx,%edi
4547ba:	89 7d 14             	mov    %edi,0x14(%ebp)
4547bd:	e9 81 3b fc ff       	jmp    0x418343
4547c2:	8b 5d f4             	mov    -0xc(%ebp),%ebx
4547c5:	8b 13                	mov    (%ebx),%edx
4547c7:	85 c0                	test   %eax,%eax
4547c9:	74 31                	je     0x4547fc
4547cb:	3b f7                	cmp    %edi,%esi
4547cd:	73 16                	jae    0x4547e5
4547cf:	6a 02                	push   $0x2
4547d1:	58                   	pop    %eax
4547d2:	66 89 02             	mov    %ax,(%edx)
4547d5:	8b ce                	mov    %esi,%ecx
4547d7:	03 d0                	add    %eax,%edx
4547d9:	e8 4c a7 03 00       	call   0x48ef2a
4547de:	8b cf                	mov    %edi,%ecx
4547e0:	8d 14 42             	lea    (%edx,%eax,2),%edx
4547e3:	eb 0d                	jmp    0x4547f2
4547e5:	75 3d                	jne    0x454824
4547e7:	33 c0                	xor    %eax,%eax
4547e9:	8b ce                	mov    %esi,%ecx
4547eb:	40                   	inc    %eax
4547ec:	66 89 02             	mov    %ax,(%edx)
4547ef:	83 c2 02             	add    $0x2,%edx
4547f2:	e8 33 a7 03 00       	call   0x48ef2a
4547f7:	8d 14 42             	lea    (%edx,%eax,2),%edx
4547fa:	eb 28                	jmp    0x454824
4547fc:	3b f7                	cmp    %edi,%esi
4547fe:	73 12                	jae    0x454812
454800:	6a 02                	push   $0x2
454802:	58                   	pop    %eax
454803:	66 89 02             	mov    %ax,(%edx)
454806:	03 d0                	add    %eax,%edx
454808:	66 89 32             	mov    %si,(%edx)
45480b:	03 d0                	add    %eax,%edx
45480d:	66 89 3a             	mov    %di,(%edx)
454810:	eb 10                	jmp    0x454822
454812:	75 10                	jne    0x454824
454814:	33 c0                	xor    %eax,%eax
454816:	40                   	inc    %eax
454817:	66 89 02             	mov    %ax,(%edx)
45481a:	6a 02                	push   $0x2
45481c:	58                   	pop    %eax
45481d:	03 d0                	add    %eax,%edx
45481f:	66 89 32             	mov    %si,(%edx)
454822:	03 d0                	add    %eax,%edx
454824:	89 13                	mov    %edx,(%ebx)
454826:	e9 5c 3b fc ff       	jmp    0x418387
45482b:	0f b7 06             	movzwl (%esi),%eax
45482e:	81 e7 ff 03 00 00    	and    $0x3ff,%edi
454834:	c1 e7 0a             	shl    $0xa,%edi
454837:	25 ff 03 00 00       	and    $0x3ff,%eax
45483c:	0b f8                	or     %eax,%edi
45483e:	81 c7 00 00 01 00    	add    $0x10000,%edi
454844:	83 c6 02             	add    $0x2,%esi
454847:	e9 bb 3b fc ff       	jmp    0x418407
45484c:	83 ff 67             	cmp    $0x67,%edi
45484f:	0f 87 ce 02 00 00    	ja     0x454b23
454855:	0f 84 59 01 00 00    	je     0x4549b4
45485b:	6a 30                	push   $0x30
45485d:	59                   	pop    %ecx
45485e:	3b f9                	cmp    %ecx,%edi
454860:	0f 84 de 00 00 00    	je     0x454944
454866:	0f 86 52 03 00 00    	jbe    0x454bbe
45486c:	6a 39                	push   $0x39
45486e:	59                   	pop    %ecx
45486f:	3b f9                	cmp    %ecx,%edi
454871:	76 5f                	jbe    0x4548d2
454873:	83 ff 4c             	cmp    $0x4c,%edi
454876:	0f 84 26 06 00 00    	je     0x454ea2
45487c:	83 ff 55             	cmp    $0x55,%edi
45487f:	74 45                	je     0x4548c6
454881:	83 ff 63             	cmp    $0x63,%edi
454884:	0f 85 34 03 00 00    	jne    0x454bbe
45488a:	6a 02                	push   $0x2
45488c:	59                   	pop    %ecx
45488d:	03 f1                	add    %ecx,%esi
45488f:	0f b7 3e             	movzwl (%esi),%edi
454892:	85 ff                	test   %edi,%edi
454894:	75 0a                	jne    0x4548a0
454896:	8b 45 08             	mov    0x8(%ebp),%eax
454899:	89 08                	mov    %ecx,(%eax)
45489b:	e9 7b 3b fc ff       	jmp    0x41841b
4548a0:	83 ff 7f             	cmp    $0x7f,%edi
4548a3:	76 0e                	jbe    0x4548b3
4548a5:	8b 45 08             	mov    0x8(%ebp),%eax
4548a8:	c7 00 44 00 00 00    	movl   $0x44,(%eax)
4548ae:	e9 68 3b fc ff       	jmp    0x41841b
4548b3:	8d 47 9f             	lea    -0x61(%edi),%eax
4548b6:	83 f8 19             	cmp    $0x19,%eax
4548b9:	77 03                	ja     0x4548be
4548bb:	83 ef 20             	sub    $0x20,%edi
4548be:	83 f7 40             	xor    $0x40,%edi
4548c1:	e9 55 3b fc ff       	jmp    0x41841b
4548c6:	f7 45 10 00 00 00 02 	testl  $0x2000000,0x10(%ebp)
4548cd:	e9 f5 05 00 00       	jmp    0x454ec7
4548d2:	39 5d 14             	cmp    %ebx,0x14(%ebp)
4548d5:	75 5e                	jne    0x454935
4548d7:	8d 46 02             	lea    0x2(%esi),%eax
4548da:	89 75 f0             	mov    %esi,-0x10(%ebp)
4548dd:	89 45 f4             	mov    %eax,-0xc(%ebp)
4548e0:	0f b7 00             	movzwl (%eax),%eax
4548e3:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
4548e7:	89 45 ec             	mov    %eax,-0x14(%ebp)
4548ea:	8b 45 f8             	mov    -0x8(%ebp),%eax
4548ed:	72 35                	jb     0x454924
4548ef:	8b 45 ec             	mov    -0x14(%ebp),%eax
4548f2:	66 3b c1             	cmp    %cx,%ax
4548f5:	77 2a                	ja     0x454921
4548f7:	6a 30                	push   $0x30
4548f9:	81 fa cb cc cc 0c    	cmp    $0xccccccb,%edx
4548ff:	7f 7c                	jg     0x45497d
454901:	8b 75 f4             	mov    -0xc(%ebp),%esi
454904:	6b ca 0a             	imul   $0xa,%edx,%ecx
454907:	0f b7 16             	movzwl (%esi),%edx
45490a:	8d 46 02             	lea    0x2(%esi),%eax
45490d:	83 c2 d0             	add    $0xffffffd0,%edx
454910:	89 45 f4             	mov    %eax,-0xc(%ebp)
454913:	0f b7 00             	movzwl (%eax),%eax
454916:	03 d1                	add    %ecx,%edx
454918:	59                   	pop    %ecx
454919:	6a 39                	push   $0x39
45491b:	66 3b c1             	cmp    %cx,%ax
45491e:	59                   	pop    %ecx
45491f:	73 d1                	jae    0x4548f2
454921:	8b 45 f8             	mov    -0x8(%ebp),%eax
454924:	83 fa 08             	cmp    $0x8,%edx
454927:	0f 8c 80 00 00 00    	jl     0x4549ad
45492d:	3b 55 0c             	cmp    0xc(%ebp),%edx
454930:	7e 7b                	jle    0x4549ad
454932:	8b 75 f0             	mov    -0x10(%ebp),%esi
454935:	0f b7 3e             	movzwl (%esi),%edi
454938:	83 ff 38             	cmp    $0x38,%edi
45493b:	0f 83 da 3a fc ff    	jae    0x41841b
454941:	6a 30                	push   $0x30
454943:	59                   	pop    %ecx
454944:	6a 37                	push   $0x37
454946:	2b f9                	sub    %ecx,%edi
454948:	5a                   	pop    %edx
454949:	40                   	inc    %eax
45494a:	89 45 f8             	mov    %eax,-0x8(%ebp)