4ac650:	83 fa 3f             	cmp    $0x3f,%edx
4ac653:	76 03                	jbe    0x4ac658
4ac655:	6a 3f                	push   $0x3f
4ac657:	5a                   	pop    %edx
4ac658:	8b 5d f8             	mov    -0x8(%ebp),%ebx
4ac65b:	83 e3 01             	and    $0x1,%ebx
4ac65e:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4ac661:	0f 85 94 00 00 00    	jne    0x4ac6fb
4ac667:	2b 75 f8             	sub    -0x8(%ebp),%esi
4ac66a:	8b 5d f8             	mov    -0x8(%ebp),%ebx
4ac66d:	c1 fb 04             	sar    $0x4,%ebx
4ac670:	6a 3f                	push   $0x3f
4ac672:	89 75 0c             	mov    %esi,0xc(%ebp)
4ac675:	4b                   	dec    %ebx
4ac676:	5e                   	pop    %esi
4ac677:	3b de                	cmp    %esi,%ebx
4ac679:	76 02                	jbe    0x4ac67d
4ac67b:	8b de                	mov    %esi,%ebx
4ac67d:	03 4d f8             	add    -0x8(%ebp),%ecx
4ac680:	8b d1                	mov    %ecx,%edx
4ac682:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4ac685:	c1 fa 04             	sar    $0x4,%edx
4ac688:	4a                   	dec    %edx
4ac689:	3b d6                	cmp    %esi,%edx
4ac68b:	76 02                	jbe    0x4ac68f
4ac68d:	8b d6                	mov    %esi,%edx
4ac68f:	3b da                	cmp    %edx,%ebx
4ac691:	74 63                	je     0x4ac6f6
4ac693:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4ac696:	8b 71 04             	mov    0x4(%ecx),%esi
4ac699:	3b 71 08             	cmp    0x8(%ecx),%esi
4ac69c:	75 40                	jne    0x4ac6de
4ac69e:	83 fb 20             	cmp    $0x20,%ebx
4ac6a1:	73 1c                	jae    0x4ac6bf
4ac6a3:	be 00 00 00 80       	mov    $0x80000000,%esi
4ac6a8:	8b cb                	mov    %ebx,%ecx
4ac6aa:	d3 ee                	shr    %cl,%esi
4ac6ac:	f7 d6                	not    %esi
4ac6ae:	21 74 b8 44          	and    %esi,0x44(%eax,%edi,4)
4ac6b2:	fe 4c 03 04          	decb   0x4(%ebx,%eax,1)
4ac6b6:	75 26                	jne    0x4ac6de
4ac6b8:	8b 4d 08             	mov    0x8(%ebp),%ecx
4ac6bb:	21 31                	and    %esi,(%ecx)
4ac6bd:	eb 1f                	jmp    0x4ac6de
4ac6bf:	8d 4b e0             	lea    -0x20(%ebx),%ecx
4ac6c2:	be 00 00 00 80       	mov    $0x80000000,%esi
4ac6c7:	d3 ee                	shr    %cl,%esi
4ac6c9:	f7 d6                	not    %esi
4ac6cb:	21 b4 b8 c4 00 00 00 	and    %esi,0xc4(%eax,%edi,4)
4ac6d2:	fe 4c 03 04          	decb   0x4(%ebx,%eax,1)
4ac6d6:	75 06                	jne    0x4ac6de
4ac6d8:	8b 4d 08             	mov    0x8(%ebp),%ecx
4ac6db:	21 71 04             	and    %esi,0x4(%ecx)
4ac6de:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4ac6e1:	8b 71 08             	mov    0x8(%ecx),%esi
4ac6e4:	8b 49 04             	mov    0x4(%ecx),%ecx
4ac6e7:	89 4e 04             	mov    %ecx,0x4(%esi)
4ac6ea:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4ac6ed:	8b 71 04             	mov    0x4(%ecx),%esi
4ac6f0:	8b 49 08             	mov    0x8(%ecx),%ecx
4ac6f3:	89 4e 08             	mov    %ecx,0x8(%esi)
4ac6f6:	8b 75 0c             	mov    0xc(%ebp),%esi
4ac6f9:	eb 03                	jmp    0x4ac6fe
4ac6fb:	8b 5d 08             	mov    0x8(%ebp),%ebx
4ac6fe:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
4ac702:	75 08                	jne    0x4ac70c
4ac704:	3b da                	cmp    %edx,%ebx
4ac706:	0f 84 81 00 00 00    	je     0x4ac78d
4ac70c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4ac70f:	8b 5c d1 04          	mov    0x4(%ecx,%edx,8),%ebx
4ac713:	8d 0c d1             	lea    (%ecx,%edx,8),%ecx
4ac716:	89 5e 04             	mov    %ebx,0x4(%esi)
4ac719:	89 4e 08             	mov    %ecx,0x8(%esi)
4ac71c:	89 71 04             	mov    %esi,0x4(%ecx)
4ac71f:	8b 4e 04             	mov    0x4(%esi),%ecx
4ac722:	89 71 08             	mov    %esi,0x8(%ecx)
4ac725:	8b 4e 04             	mov    0x4(%esi),%ecx
4ac728:	3b 4e 08             	cmp    0x8(%esi),%ecx
4ac72b:	75 60                	jne    0x4ac78d
4ac72d:	8a 4c 02 04          	mov    0x4(%edx,%eax,1),%cl
4ac731:	83 fa 20             	cmp    $0x20,%edx
4ac734:	88 4d 0f             	mov    %cl,0xf(%ebp)
4ac737:	fe c1                	inc    %cl
4ac739:	88 4c 02 04          	mov    %cl,0x4(%edx,%eax,1)
4ac73d:	73 25                	jae    0x4ac764
4ac73f:	80 7d 0f 00          	cmpb   $0x0,0xf(%ebp)
4ac743:	75 0e                	jne    0x4ac753
4ac745:	bb 00 00 00 80       	mov    $0x80000000,%ebx
4ac74a:	8b ca                	mov    %edx,%ecx
4ac74c:	d3 eb                	shr    %cl,%ebx
4ac74e:	8b 4d 08             	mov    0x8(%ebp),%ecx
4ac751:	09 19                	or     %ebx,(%ecx)
4ac753:	bb 00 00 00 80       	mov    $0x80000000,%ebx
4ac758:	8b ca                	mov    %edx,%ecx
4ac75a:	d3 eb                	shr    %cl,%ebx
4ac75c:	8d 44 b8 44          	lea    0x44(%eax,%edi,4),%eax
4ac760:	09 18                	or     %ebx,(%eax)
4ac762:	eb 29                	jmp    0x4ac78d
4ac764:	80 7d 0f 00          	cmpb   $0x0,0xf(%ebp)
4ac768:	75 10                	jne    0x4ac77a
4ac76a:	8d 4a e0             	lea    -0x20(%edx),%ecx
4ac76d:	bb 00 00 00 80       	mov    $0x80000000,%ebx
4ac772:	d3 eb                	shr    %cl,%ebx
4ac774:	8b 4d 08             	mov    0x8(%ebp),%ecx
4ac777:	09 59 04             	or     %ebx,0x4(%ecx)
4ac77a:	8d 4a e0             	lea    -0x20(%edx),%ecx
4ac77d:	ba 00 00 00 80       	mov    $0x80000000,%edx
4ac782:	d3 ea                	shr    %cl,%edx
4ac784:	8d 84 b8 c4 00 00 00 	lea    0xc4(%eax,%edi,4),%eax
4ac78b:	09 10                	or     %edx,(%eax)
4ac78d:	8b 45 fc             	mov    -0x4(%ebp),%eax
4ac790:	89 06                	mov    %eax,(%esi)
4ac792:	89 44 30 fc          	mov    %eax,-0x4(%eax,%esi,1)
4ac796:	8b 45 f0             	mov    -0x10(%ebp),%eax
4ac799:	ff 08                	decl   (%eax)
4ac79b:	0f 85 f7 00 00 00    	jne    0x4ac898
4ac7a1:	a1 50 df 51 00       	mov    0x51df50,%eax
4ac7a6:	85 c0                	test   %eax,%eax
4ac7a8:	0f 84 dc 00 00 00    	je     0x4ac88a
4ac7ae:	8b 0d 48 df 51 00    	mov    0x51df48,%ecx
4ac7b4:	8b 35 b0 31 4b 00    	mov    0x4b31b0,%esi
4ac7ba:	c1 e1 0f             	shl    $0xf,%ecx
4ac7bd:	03 48 0c             	add    0xc(%eax),%ecx
4ac7c0:	bb 00 80 00 00       	mov    $0x8000,%ebx
4ac7c5:	68 00 40 00 00       	push   $0x4000
4ac7ca:	53                   	push   %ebx
4ac7cb:	51                   	push   %ecx
4ac7cc:	ff d6                	call   *%esi
4ac7ce:	8b 0d 48 df 51 00    	mov    0x51df48,%ecx
4ac7d4:	a1 50 df 51 00       	mov    0x51df50,%eax
4ac7d9:	ba 00 00 00 80       	mov    $0x80000000,%edx
4ac7de:	d3 ea                	shr    %cl,%edx
4ac7e0:	09 50 08             	or     %edx,0x8(%eax)
4ac7e3:	a1 50 df 51 00       	mov    0x51df50,%eax
4ac7e8:	8b 0d 48 df 51 00    	mov    0x51df48,%ecx
4ac7ee:	8b 40 10             	mov    0x10(%eax),%eax
4ac7f1:	83 a4 88 c4 00 00 00 	andl   $0x0,0xc4(%eax,%ecx,4)
4ac7f8:	00
4ac7f9:	a1 50 df 51 00       	mov    0x51df50,%eax
4ac7fe:	8b 40 10             	mov    0x10(%eax),%eax
4ac801:	fe 48 43             	decb   0x43(%eax)
4ac804:	a1 50 df 51 00       	mov    0x51df50,%eax
4ac809:	8b 48 10             	mov    0x10(%eax),%ecx
4ac80c:	80 79 43 00          	cmpb   $0x0,0x43(%ecx)
4ac810:	75 09                	jne    0x4ac81b
4ac812:	83 60 04 fe          	andl   $0xfffffffe,0x4(%eax)
4ac816:	a1 50 df 51 00       	mov    0x51df50,%eax
4ac81b:	83 78 08 ff          	cmpl   $0xffffffff,0x8(%eax)
4ac81f:	75 69                	jne    0x4ac88a
4ac821:	53                   	push   %ebx
4ac822:	6a 00                	push   $0x0
4ac824:	ff 70 0c             	push   0xc(%eax)
4ac827:	ff d6                	call   *%esi
4ac829:	a1 50 df 51 00       	mov    0x51df50,%eax
4ac82e:	ff 70 10             	push   0x10(%eax)
4ac831:	6a 00                	push   $0x0
4ac833:	ff 35 60 df 51 00    	push   0x51df60
4ac839:	ff 15 90 31 4b 00    	call   *0x4b3190
4ac83f:	a1 54 df 51 00       	mov    0x51df54,%eax
4ac844:	8b 15 58 df 51 00    	mov    0x51df58,%edx
4ac84a:	8d 04 80             	lea    (%eax,%eax,4),%eax
4ac84d:	c1 e0 02             	shl    $0x2,%eax
4ac850:	8b c8                	mov    %eax,%ecx
4ac852:	a1 50 df 51 00       	mov    0x51df50,%eax
4ac857:	2b c8                	sub    %eax,%ecx
4ac859:	8d 4c 11 ec          	lea    -0x14(%ecx,%edx,1),%ecx
4ac85d:	51                   	push   %ecx
4ac85e:	8d 48 14             	lea    0x14(%eax),%ecx
4ac861:	51                   	push   %ecx
4ac862:	50                   	push   %eax
4ac863:	e8 e8 c8 ff ff       	call   0x4a9150
4ac868:	8b 45 08             	mov    0x8(%ebp),%eax
4ac86b:	83 c4 0c             	add    $0xc,%esp
4ac86e:	ff 0d 54 df 51 00    	decl   0x51df54
4ac874:	3b 05 50 df 51 00    	cmp    0x51df50,%eax
4ac87a:	76 04                	jbe    0x4ac880
4ac87c:	83 6d 08 14          	subl   $0x14,0x8(%ebp)
4ac880:	a1 58 df 51 00       	mov    0x51df58,%eax
4ac885:	a3 4c df 51 00       	mov    %eax,0x51df4c
4ac88a:	8b 45 08             	mov    0x8(%ebp),%eax
4ac88d:	89 3d 48 df 51 00    	mov    %edi,0x51df48
4ac893:	a3 50 df 51 00       	mov    %eax,0x51df50
4ac898:	5f                   	pop    %edi
4ac899:	5e                   	pop    %esi
4ac89a:	5b                   	pop    %ebx
4ac89b:	c9                   	leave
4ac89c:	c3                   	ret
4ac89d:	55                   	push   %ebp
4ac89e:	8b ec                	mov    %esp,%ebp
4ac8a0:	83 ec 14             	sub    $0x14,%esp
4ac8a3:	a1 54 df 51 00       	mov    0x51df54,%eax
4ac8a8:	8b 15 58 df 51 00    	mov    0x51df58,%edx
4ac8ae:	53                   	push   %ebx
4ac8af:	56                   	push   %esi
4ac8b0:	8d 04 80             	lea    (%eax,%eax,4),%eax
4ac8b3:	57                   	push   %edi
4ac8b4:	8d 3c 82             	lea    (%edx,%eax,4),%edi
4ac8b7:	8b 45 08             	mov    0x8(%ebp),%eax
4ac8ba:	89 7d fc             	mov    %edi,-0x4(%ebp)
4ac8bd:	8d 48 17             	lea    0x17(%eax),%ecx
4ac8c0:	83 e1 f0             	and    $0xfffffff0,%ecx
4ac8c3:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4ac8c6:	c1 f9 04             	sar    $0x4,%ecx
4ac8c9:	49                   	dec    %ecx
4ac8ca:	83 f9 20             	cmp    $0x20,%ecx
4ac8cd:	7d 0e                	jge    0x4ac8dd
4ac8cf:	83 ce ff             	or     $0xffffffff,%esi
4ac8d2:	d3 ee                	shr    %cl,%esi
4ac8d4:	83 4d f8 ff          	orl    $0xffffffff,-0x8(%ebp)
4ac8d8:	89 75 f4             	mov    %esi,-0xc(%ebp)
4ac8db:	eb 10                	jmp    0x4ac8ed
4ac8dd:	83 c1 e0             	add    $0xffffffe0,%ecx
4ac8e0:	83 c8 ff             	or     $0xffffffff,%eax
4ac8e3:	33 f6                	xor    %esi,%esi
4ac8e5:	d3 e8                	shr    %cl,%eax
4ac8e7:	89 75 f4             	mov    %esi,-0xc(%ebp)
4ac8ea:	89 45 f8             	mov    %eax,-0x8(%ebp)
4ac8ed:	a1 4c df 51 00       	mov    0x51df4c,%eax
4ac8f2:	8b d8                	mov    %eax,%ebx
4ac8f4:	3b df                	cmp    %edi,%ebx
4ac8f6:	89 5d 08             	mov    %ebx,0x8(%ebp)
4ac8f9:	73 19                	jae    0x4ac914
4ac8fb:	8b 4b 04             	mov    0x4(%ebx),%ecx
4ac8fe:	8b 3b                	mov    (%ebx),%edi
4ac900:	23 4d f8             	and    -0x8(%ebp),%ecx
4ac903:	23 fe                	and    %esi,%edi
4ac905:	0b cf                	or     %edi,%ecx
4ac907:	75 0b                	jne    0x4ac914
4ac909:	83 c3 14             	add    $0x14,%ebx
4ac90c:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
4ac90f:	89 5d 08             	mov    %ebx,0x8(%ebp)
4ac912:	72 e7                	jb     0x4ac8fb
4ac914:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
4ac917:	75 79                	jne    0x4ac992
4ac919:	8b da                	mov    %edx,%ebx
4ac91b:	3b d8                	cmp    %eax,%ebx
4ac91d:	89 5d 08             	mov    %ebx,0x8(%ebp)
4ac920:	73 15                	jae    0x4ac937
4ac922:	8b 4b 04             	mov    0x4(%ebx),%ecx
4ac925:	8b 3b                	mov    (%ebx),%edi
4ac927:	23 4d f8             	and    -0x8(%ebp),%ecx
4ac92a:	23 fe                	and    %esi,%edi
4ac92c:	0b cf                	or     %edi,%ecx
4ac92e:	75 05                	jne    0x4ac935
4ac930:	83 c3 14             	add    $0x14,%ebx
4ac933:	eb e6                	jmp    0x4ac91b
4ac935:	3b d8                	cmp    %eax,%ebx
4ac937:	75 59                	jne    0x4ac992
4ac939:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
4ac93c:	73 11                	jae    0x4ac94f
4ac93e:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
4ac942:	75 08                	jne    0x4ac94c
4ac944:	83 c3 14             	add    $0x14,%ebx
4ac947:	89 5d 08             	mov    %ebx,0x8(%ebp)
4ac94a:	eb ed                	jmp    0x4ac939
4ac94c:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
4ac94f:	75 26                	jne    0x4ac977
4ac951:	8b da                	mov    %edx,%ebx
4ac953:	3b d8                	cmp    %eax,%ebx
4ac955:	89 5d 08             	mov    %ebx,0x8(%ebp)
4ac958:	73 0d                	jae    0x4ac967
4ac95a:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
4ac95e:	75 05                	jne    0x4ac965
4ac960:	83 c3 14             	add    $0x14,%ebx
4ac963:	eb ee                	jmp    0x4ac953
4ac965:	3b d8                	cmp    %eax,%ebx
4ac967:	75 0e                	jne    0x4ac977
4ac969:	e8 38 02 00 00       	call   0x4acba6
4ac96e:	8b d8                	mov    %eax,%ebx
4ac970:	85 db                	test   %ebx,%ebx
4ac972:	89 5d 08             	mov    %ebx,0x8(%ebp)
4ac975:	74 14                	je     0x4ac98b
4ac977:	53                   	push   %ebx
4ac978:	e8 da 02 00 00       	call   0x4acc57
4ac97d:	59                   	pop    %ecx
4ac97e:	8b 4b 10             	mov    0x10(%ebx),%ecx
4ac981:	89 01                	mov    %eax,(%ecx)
4ac983:	8b 43 10             	mov    0x10(%ebx),%eax
4ac986:	83 38 ff             	cmpl   $0xffffffff,(%eax)
4ac989:	75 07                	jne    0x4ac992
4ac98b:	33 c0                	xor    %eax,%eax
4ac98d:	e9 0f 02 00 00       	jmp    0x4acba1
4ac992:	89 1d 4c df 51 00    	mov    %ebx,0x51df4c
4ac998:	8b 43 10             	mov    0x10(%ebx),%eax
4ac99b:	8b 10                	mov    (%eax),%edx
4ac99d:	83 fa ff             	cmp    $0xffffffff,%edx
4ac9a0:	89 55 fc             	mov    %edx,-0x4(%ebp)
4ac9a3:	74 14                	je     0x4ac9b9
4ac9a5:	8b 8c 90 c4 00 00 00 	mov    0xc4(%eax,%edx,4),%ecx
4ac9ac:	8b 7c 90 44          	mov    0x44(%eax,%edx,4),%edi
4ac9b0:	23 4d f8             	and    -0x8(%ebp),%ecx
4ac9b3:	23 fe                	and    %esi,%edi
4ac9b5:	0b cf                	or     %edi,%ecx
4ac9b7:	75 37                	jne    0x4ac9f0
4ac9b9:	8b 90 c4 00 00 00    	mov    0xc4(%eax),%edx
4ac9bf:	8b 70 44             	mov    0x44(%eax),%esi
4ac9c2:	23 55 f8             	and    -0x8(%ebp),%edx
4ac9c5:	23 75 f4             	and    -0xc(%ebp),%esi
4ac9c8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4ac9cc:	8d 48 44             	lea    0x44(%eax),%ecx
4ac9cf:	0b d6                	or     %esi,%edx
4ac9d1:	8b 75 f4             	mov    -0xc(%ebp),%esi
4ac9d4:	75 17                	jne    0x4ac9ed
4ac9d6:	8b 91 84 00 00 00    	mov    0x84(%ecx),%edx
4ac9dc:	ff 45 fc             	incl   -0x4(%ebp)
4ac9df:	23 55 f8             	and    -0x8(%ebp),%edx
4ac9e2:	83 c1 04             	add    $0x4,%ecx
4ac9e5:	8b fe                	mov    %esi,%edi
4ac9e7:	23 39                	and    (%ecx),%edi
4ac9e9:	0b d7                	or     %edi,%edx
4ac9eb:	74 e9                	je     0x4ac9d6
4ac9ed:	8b 55 fc             	mov    -0x4(%ebp),%edx
4ac9f0:	8b ca                	mov    %edx,%ecx
4ac9f2:	33 ff                	xor    %edi,%edi
4ac9f4:	69 c9 04 02 00 00    	imul   $0x204,%ecx,%ecx
4ac9fa:	8d 8c 01 44 01 00 00 	lea    0x144(%ecx,%eax,1),%ecx
4aca01:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4aca04:	8b 4c 90 44          	mov    0x44(%eax,%edx,4),%ecx
4aca08:	23 ce                	and    %esi,%ecx
4aca0a:	75 0d                	jne    0x4aca19
4aca0c:	8b 8c 90 c4 00 00 00 	mov    0xc4(%eax,%edx,4),%ecx
4aca13:	6a 20                	push   $0x20
4aca15:	23 4d f8             	and    -0x8(%ebp),%ecx
4aca18:	5f                   	pop    %edi
4aca19:	85 c9                	test   %ecx,%ecx
4aca1b:	7c 05                	jl     0x4aca22
4aca1d:	d1 e1                	shl    $1,%ecx
4aca1f:	47                   	inc    %edi
4aca20:	eb f7                	jmp    0x4aca19
4aca22:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4aca25:	8b 54 f9 04          	mov    0x4(%ecx,%edi,8),%edx
4aca29:	8b 0a                	mov    (%edx),%ecx
4aca2b:	2b 4d f0             	sub    -0x10(%ebp),%ecx
4aca2e:	8b f1                	mov    %ecx,%esi
4aca30:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4aca33:	c1 fe 04             	sar    $0x4,%esi
4aca36:	4e                   	dec    %esi
4aca37:	83 fe 3f             	cmp    $0x3f,%esi
4aca3a:	7e 03                	jle    0x4aca3f
4aca3c:	6a 3f                	push   $0x3f
4aca3e:	5e                   	pop    %esi
4aca3f:	3b f7                	cmp    %edi,%esi
4aca41:	0f 84 0d 01 00 00    	je     0x4acb54
4aca47:	8b 4a 04             	mov    0x4(%edx),%ecx
4aca4a:	3b 4a 08             	cmp    0x8(%edx),%ecx
4aca4d:	75 61                	jne    0x4acab0
4aca4f:	83 ff 20             	cmp    $0x20,%edi
4aca52:	7d 2b                	jge    0x4aca7f
4aca54:	bb 00 00 00 80       	mov    $0x80000000,%ebx
4aca59:	8b cf                	mov    %edi,%ecx