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
4aca5b:	d3 eb                	shr    %cl,%ebx
4aca5d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4aca60:	8d 7c 38 04          	lea    0x4(%eax,%edi,1),%edi
4aca64:	f7 d3                	not    %ebx
4aca66:	89 5d ec             	mov    %ebx,-0x14(%ebp)
4aca69:	23 5c 88 44          	and    0x44(%eax,%ecx,4),%ebx
4aca6d:	89 5c 88 44          	mov    %ebx,0x44(%eax,%ecx,4)
4aca71:	fe 0f                	decb   (%edi)
4aca73:	75 38                	jne    0x4acaad
4aca75:	8b 5d 08             	mov    0x8(%ebp),%ebx
4aca78:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4aca7b:	21 0b                	and    %ecx,(%ebx)
4aca7d:	eb 31                	jmp    0x4acab0
4aca7f:	8d 4f e0             	lea    -0x20(%edi),%ecx
4aca82:	bb 00 00 00 80       	mov    $0x80000000,%ebx
4aca87:	d3 eb                	shr    %cl,%ebx
4aca89:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4aca8c:	8d 7c 38 04          	lea    0x4(%eax,%edi,1),%edi
4aca90:	8d 8c 88 c4 00 00 00 	lea    0xc4(%eax,%ecx,4),%ecx
4aca97:	f7 d3                	not    %ebx
4aca99:	21 19                	and    %ebx,(%ecx)
4aca9b:	fe 0f                	decb   (%edi)
4aca9d:	89 5d ec             	mov    %ebx,-0x14(%ebp)
4acaa0:	75 0b                	jne    0x4acaad
4acaa2:	8b 5d 08             	mov    0x8(%ebp),%ebx
4acaa5:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4acaa8:	21 4b 04             	and    %ecx,0x4(%ebx)
4acaab:	eb 03                	jmp    0x4acab0
4acaad:	8b 5d 08             	mov    0x8(%ebp),%ebx
4acab0:	8b 4a 08             	mov    0x8(%edx),%ecx
4acab3:	8b 7a 04             	mov    0x4(%edx),%edi
4acab6:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
4acaba:	89 79 04             	mov    %edi,0x4(%ecx)
4acabd:	8b 4a 04             	mov    0x4(%edx),%ecx
4acac0:	8b 7a 08             	mov    0x8(%edx),%edi
4acac3:	89 79 08             	mov    %edi,0x8(%ecx)
4acac6:	0f 84 94 00 00 00    	je     0x4acb60
4acacc:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4acacf:	8b 7c f1 04          	mov    0x4(%ecx,%esi,8),%edi
4acad3:	8d 0c f1             	lea    (%ecx,%esi,8),%ecx
4acad6:	89 7a 04             	mov    %edi,0x4(%edx)
4acad9:	89 4a 08             	mov    %ecx,0x8(%edx)
4acadc:	89 51 04             	mov    %edx,0x4(%ecx)
4acadf:	8b 4a 04             	mov    0x4(%edx),%ecx
4acae2:	89 51 08             	mov    %edx,0x8(%ecx)
4acae5:	8b 4a 04             	mov    0x4(%edx),%ecx
4acae8:	3b 4a 08             	cmp    0x8(%edx),%ecx
4acaeb:	75 64                	jne    0x4acb51
4acaed:	8a 4c 06 04          	mov    0x4(%esi,%eax,1),%cl
4acaf1:	83 fe 20             	cmp    $0x20,%esi
4acaf4:	88 4d 0b             	mov    %cl,0xb(%ebp)
4acaf7:	7d 29                	jge    0x4acb22
4acaf9:	fe c1                	inc    %cl
4acafb:	80 7d 0b 00          	cmpb   $0x0,0xb(%ebp)
4acaff:	88 4c 06 04          	mov    %cl,0x4(%esi,%eax,1)
4acb03:	75 0b                	jne    0x4acb10
4acb05:	bf 00 00 00 80       	mov    $0x80000000,%edi
4acb0a:	8b ce                	mov    %esi,%ecx
4acb0c:	d3 ef                	shr    %cl,%edi
4acb0e:	09 3b                	or     %edi,(%ebx)
4acb10:	bf 00 00 00 80       	mov    $0x80000000,%edi
4acb15:	8b ce                	mov    %esi,%ecx
4acb17:	d3 ef                	shr    %cl,%edi
4acb19:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4acb1c:	09 7c 88 44          	or     %edi,0x44(%eax,%ecx,4)
4acb20:	eb 2f                	jmp    0x4acb51
4acb22:	fe c1                	inc    %cl
4acb24:	80 7d 0b 00          	cmpb   $0x0,0xb(%ebp)
4acb28:	88 4c 06 04          	mov    %cl,0x4(%esi,%eax,1)
4acb2c:	75 0d                	jne    0x4acb3b
4acb2e:	8d 4e e0             	lea    -0x20(%esi),%ecx
4acb31:	bf 00 00 00 80       	mov    $0x80000000,%edi
4acb36:	d3 ef                	shr    %cl,%edi
4acb38:	09 7b 04             	or     %edi,0x4(%ebx)
4acb3b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4acb3e:	8d bc 88 c4 00 00 00 	lea    0xc4(%eax,%ecx,4),%edi
4acb45:	8d 4e e0             	lea    -0x20(%esi),%ecx
4acb48:	be 00 00 00 80       	mov    $0x80000000,%esi
4acb4d:	d3 ee                	shr    %cl,%esi
4acb4f:	09 37                	or     %esi,(%edi)
4acb51:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4acb54:	85 c9                	test   %ecx,%ecx
4acb56:	74 0b                	je     0x4acb63
4acb58:	89 0a                	mov    %ecx,(%edx)
4acb5a:	89 4c 11 fc          	mov    %ecx,-0x4(%ecx,%edx,1)
4acb5e:	eb 03                	jmp    0x4acb63
4acb60:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4acb63:	8b 75 f0             	mov    -0x10(%ebp),%esi
4acb66:	03 d1                	add    %ecx,%edx
4acb68:	8d 4e 01             	lea    0x1(%esi),%ecx
4acb6b:	89 0a                	mov    %ecx,(%edx)
4acb6d:	89 4c 32 fc          	mov    %ecx,-0x4(%edx,%esi,1)
4acb71:	8b 75 f4             	mov    -0xc(%ebp),%esi
4acb74:	8b 0e                	mov    (%esi),%ecx
4acb76:	85 c9                	test   %ecx,%ecx
4acb78:	8d 79 01             	lea    0x1(%ecx),%edi
4acb7b:	89 3e                	mov    %edi,(%esi)
4acb7d:	75 1a                	jne    0x4acb99
4acb7f:	3b 1d 50 df 51 00    	cmp    0x51df50,%ebx
4acb85:	75 12                	jne    0x4acb99
4acb87:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4acb8a:	3b 0d 48 df 51 00    	cmp    0x51df48,%ecx
4acb90:	75 07                	jne    0x4acb99
4acb92:	83 25 50 df 51 00 00 	andl   $0x0,0x51df50
4acb99:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4acb9c:	89 08                	mov    %ecx,(%eax)
4acb9e:	8d 42 04             	lea    0x4(%edx),%eax
4acba1:	5f                   	pop    %edi
4acba2:	5e                   	pop    %esi
4acba3:	5b                   	pop    %ebx
4acba4:	c9                   	leave
4acba5:	c3                   	ret
4acba6:	a1 54 df 51 00       	mov    0x51df54,%eax
4acbab:	8b 0d 44 df 51 00    	mov    0x51df44,%ecx
4acbb1:	56                   	push   %esi
4acbb2:	57                   	push   %edi
4acbb3:	33 ff                	xor    %edi,%edi
4acbb5:	3b c1                	cmp    %ecx,%eax
4acbb7:	75 30                	jne    0x4acbe9
4acbb9:	8d 44 89 50          	lea    0x50(%ecx,%ecx,4),%eax
4acbbd:	c1 e0 02             	shl    $0x2,%eax
4acbc0:	50                   	push   %eax
4acbc1:	ff 35 58 df 51 00    	push   0x51df58
4acbc7:	57                   	push   %edi
4acbc8:	ff 35 60 df 51 00    	push   0x51df60
4acbce:	ff 15 8c 30 4b 00    	call   *0x4b308c
4acbd4:	3b c7                	cmp    %edi,%eax
4acbd6:	74 61                	je     0x4acc39
4acbd8:	83 05 44 df 51 00 10 	addl   $0x10,0x51df44
4acbdf:	a3 58 df 51 00       	mov    %eax,0x51df58
4acbe4:	a1 54 df 51 00       	mov    0x51df54,%eax
4acbe9:	8b 0d 58 df 51 00    	mov    0x51df58,%ecx
4acbef:	68 c4 41 00 00       	push   $0x41c4
4acbf4:	6a 08                	push   $0x8
4acbf6:	8d 04 80             	lea    (%eax,%eax,4),%eax
4acbf9:	ff 35 60 df 51 00    	push   0x51df60
4acbff:	8d 34 81             	lea    (%ecx,%eax,4),%esi
4acc02:	ff 15 88 30 4b 00    	call   *0x4b3088
4acc08:	3b c7                	cmp    %edi,%eax
4acc0a:	89 46 10             	mov    %eax,0x10(%esi)
4acc0d:	74 2a                	je     0x4acc39
4acc0f:	6a 04                	push   $0x4
4acc11:	68 00 20 00 00       	push   $0x2000
4acc16:	68 00 00 10 00       	push   $0x100000
4acc1b:	57                   	push   %edi
4acc1c:	ff 15 b4 31 4b 00    	call   *0x4b31b4
4acc22:	3b c7                	cmp    %edi,%eax
4acc24:	89 46 0c             	mov    %eax,0xc(%esi)
4acc27:	75 14                	jne    0x4acc3d
4acc29:	ff 76 10             	push   0x10(%esi)
4acc2c:	57                   	push   %edi
4acc2d:	ff 35 60 df 51 00    	push   0x51df60
4acc33:	ff 15 90 31 4b 00    	call   *0x4b3190
4acc39:	33 c0                	xor    %eax,%eax
4acc3b:	eb 17                	jmp    0x4acc54
4acc3d:	83 4e 08 ff          	orl    $0xffffffff,0x8(%esi)
4acc41:	89 3e                	mov    %edi,(%esi)
4acc43:	89 7e 04             	mov    %edi,0x4(%esi)
4acc46:	ff 05 54 df 51 00    	incl   0x51df54
4acc4c:	8b 46 10             	mov    0x10(%esi),%eax
4acc4f:	83 08 ff             	orl    $0xffffffff,(%eax)
4acc52:	8b c6                	mov    %esi,%eax
4acc54:	5f                   	pop    %edi
4acc55:	5e                   	pop    %esi
4acc56:	c3                   	ret
4acc57:	55                   	push   %ebp
4acc58:	8b ec                	mov    %esp,%ebp
4acc5a:	51                   	push   %ecx
4acc5b:	8b 4d 08             	mov    0x8(%ebp),%ecx
4acc5e:	53                   	push   %ebx
4acc5f:	56                   	push   %esi
4acc60:	57                   	push   %edi
4acc61:	8b 71 10             	mov    0x10(%ecx),%esi
4acc64:	8b 41 08             	mov    0x8(%ecx),%eax
4acc67:	33 db                	xor    %ebx,%ebx