46e8e7:	e8 fe 0b fb ff       	call   0x41f4ea
46e8ec:	59                   	pop    %ecx
46e8ed:	85 c0                	test   %eax,%eax
46e8ef:	74 0c                	je     0x46e8fd
46e8f1:	ff 75 08             	push   0x8(%ebp)
46e8f4:	8b c8                	mov    %eax,%ecx
46e8f6:	e8 f7 a3 ff ff       	call   0x468cf2
46e8fb:	8b f8                	mov    %eax,%edi
46e8fd:	89 3e                	mov    %edi,(%esi)
46e8ff:	eb 22                	jmp    0x46e923
46e901:	e8 e4 0b fb ff       	call   0x41f4ea
46e906:	59                   	pop    %ecx
46e907:	85 c0                	test   %eax,%eax
46e909:	74 0c                	je     0x46e917
46e90b:	ff 75 08             	push   0x8(%ebp)
46e90e:	8b c8                	mov    %eax,%ecx
46e910:	e8 dd a3 ff ff       	call   0x468cf2
46e915:	8b f8                	mov    %eax,%edi
46e917:	8b 46 04             	mov    0x4(%esi),%eax
46e91a:	89 47 08             	mov    %eax,0x8(%edi)
46e91d:	8b 46 04             	mov    0x4(%esi),%eax
46e920:	89 78 04             	mov    %edi,0x4(%eax)
46e923:	ff 46 08             	incl   0x8(%esi)
46e926:	89 7e 04             	mov    %edi,0x4(%esi)
46e929:	5f                   	pop    %edi
46e92a:	5e                   	pop    %esi
46e92b:	5d                   	pop    %ebp
46e92c:	c2 04 00             	ret    $0x4
46e92f:	55                   	push   %ebp
46e930:	8b ec                	mov    %esp,%ebp
46e932:	56                   	push   %esi
46e933:	57                   	push   %edi
46e934:	8b 7d 08             	mov    0x8(%ebp),%edi
46e937:	8b f1                	mov    %ecx,%esi
46e939:	8b 0f                	mov    (%edi),%ecx
46e93b:	8b 51 08             	mov    0x8(%ecx),%edx
46e93e:	8b 41 04             	mov    0x4(%ecx),%eax
46e941:	85 d2                	test   %edx,%edx
46e943:	74 03                	je     0x46e948
46e945:	89 42 04             	mov    %eax,0x4(%edx)
46e948:	85 c0                	test   %eax,%eax
46e94a:	74 03                	je     0x46e94f
46e94c:	89 50 08             	mov    %edx,0x8(%eax)
46e94f:	3b 0e                	cmp    (%esi),%ecx
46e951:	75 02                	jne    0x46e955
46e953:	89 06                	mov    %eax,(%esi)
46e955:	3b 4e 04             	cmp    0x4(%esi),%ecx
46e958:	75 03                	jne    0x46e95d
46e95a:	89 56 04             	mov    %edx,0x4(%esi)
46e95d:	51                   	push   %ecx
46e95e:	e8 3b 50 f9 ff       	call   0x40399e
46e963:	83 27 00             	andl   $0x0,(%edi)
46e966:	ff 4e 08             	decl   0x8(%esi)
46e969:	5f                   	pop    %edi
46e96a:	5e                   	pop    %esi
46e96b:	5d                   	pop    %ebp
46e96c:	c2 04 00             	ret    $0x4
46e96f:	55                   	push   %ebp
46e970:	8b ec                	mov    %esp,%ebp
46e972:	56                   	push   %esi
46e973:	57                   	push   %edi
46e974:	8b 7d 08             	mov    0x8(%ebp),%edi
46e977:	8b f1                	mov    %ecx,%esi
46e979:	8b 0f                	mov    (%edi),%ecx
46e97b:	8b 51 08             	mov    0x8(%ecx),%edx
46e97e:	8b 41 04             	mov    0x4(%ecx),%eax
46e981:	85 d2                	test   %edx,%edx
46e983:	74 03                	je     0x46e988
46e985:	89 42 04             	mov    %eax,0x4(%edx)
46e988:	85 c0                	test   %eax,%eax
46e98a:	74 03                	je     0x46e98f
46e98c:	89 50 08             	mov    %edx,0x8(%eax)
46e98f:	3b 0e                	cmp    (%esi),%ecx
46e991:	75 02                	jne    0x46e995
46e993:	89 06                	mov    %eax,(%esi)
46e995:	3b 4e 04             	cmp    0x4(%esi),%ecx
46e998:	75 03                	jne    0x46e99d
46e99a:	89 56 04             	mov    %edx,0x4(%esi)
46e99d:	51                   	push   %ecx
46e99e:	e8 ee a3 ff ff       	call   0x468d91
46e9a3:	83 27 00             	andl   $0x0,(%edi)
46e9a6:	ff 4e 08             	decl   0x8(%esi)
46e9a9:	5f                   	pop    %edi
46e9aa:	5e                   	pop    %esi
46e9ab:	5d                   	pop    %ebp
46e9ac:	c2 04 00             	ret    $0x4
46e9af:	55                   	push   %ebp
46e9b0:	8b ec                	mov    %esp,%ebp
46e9b2:	5d                   	pop    %ebp
46e9b3:	e9 00 00 00 00       	jmp    0x46e9b8
46e9b8:	55                   	push   %ebp
46e9b9:	8b ec                	mov    %esp,%ebp
46e9bb:	ff 75 08             	push   0x8(%ebp)
46e9be:	b9 28 16 4c 00       	mov    $0x4c1628,%ecx
46e9c3:	e8 5e cb fa ff       	call   0x41b526
46e9c8:	8b c8                	mov    %eax,%ecx
46e9ca:	83 f9 ff             	cmp    $0xffffffff,%ecx
46e9cd:	75 07                	jne    0x46e9d6
46e9cf:	5d                   	pop    %ebp
46e9d0:	ff 25 64 d5 48 00    	jmp    *0x48d564
46e9d6:	83 7d 0c 20          	cmpl   $0x20,0xc(%ebp)
46e9da:	a1 9c 16 4c 00       	mov    0x4c169c,%eax
46e9df:	8b 04 88             	mov    (%eax,%ecx,4),%eax
46e9e2:	8b 00                	mov    (%eax),%eax
46e9e4:	74 17                	je     0x46e9fd
46e9e6:	ff 75 14             	push   0x14(%ebp)
46e9e9:	ff 75 10             	push   0x10(%ebp)
46e9ec:	ff 75 0c             	push   0xc(%ebp)
46e9ef:	ff 75 08             	push   0x8(%ebp)
46e9f2:	ff 70 08             	push   0x8(%eax)
46e9f5:	ff 15 68 d5 48 00    	call   *0x48d568
46e9fb:	eb 18                	jmp    0x46ea15
46e9fd:	8b 4d 14             	mov    0x14(%ebp),%ecx
46ea00:	8b c1                	mov    %ecx,%eax
46ea02:	c1 e8 10             	shr    $0x10,%eax
46ea05:	50                   	push   %eax
46ea06:	0f b7 c1             	movzwl %cx,%eax
46ea09:	50                   	push   %eax
46ea0a:	ff 75 10             	push   0x10(%ebp)
46ea0d:	ff 75 08             	push   0x8(%ebp)
46ea10:	e8 04 00 00 00       	call   0x46ea19
46ea15:	5d                   	pop    %ebp
46ea16:	c2 10 00             	ret    $0x10
46ea19:	55                   	push   %ebp
46ea1a:	8b ec                	mov    %esp,%ebp
46ea1c:	ff 75 08             	push   0x8(%ebp)
46ea1f:	b9 28 16 4c 00       	mov    $0x4c1628,%ecx
46ea24:	e8 fd ca fa ff       	call   0x41b526
46ea29:	8b 0d 9c 16 4c 00    	mov    0x4c169c,%ecx
46ea2f:	8b 04 81             	mov    (%ecx,%eax,4),%eax
46ea32:	8b 10                	mov    (%eax),%edx
46ea34:	0f b7 82 84 00 00 00 	movzwl 0x84(%edx),%eax
46ea3b:	66 83 f8 ff          	cmp    $0xffff,%ax
46ea3f:	74 0c                	je     0x46ea4d
46ea41:	98                   	cwtl
46ea42:	50                   	push   %eax
46ea43:	e8 6d e7 ff ff       	call   0x46d1b5
46ea48:	33 c0                	xor    %eax,%eax
46ea4a:	40                   	inc    %eax
46ea4b:	eb 19                	jmp    0x46ea66
46ea4d:	0f b7 4d 14          	movzwl 0x14(%ebp),%ecx
46ea51:	0f b7 45 10          	movzwl 0x10(%ebp),%eax
46ea55:	c1 e1 10             	shl    $0x10,%ecx
46ea58:	0b c8                	or     %eax,%ecx
46ea5a:	51                   	push   %ecx
46ea5b:	ff 75 0c             	push   0xc(%ebp)
46ea5e:	6a 20                	push   $0x20
46ea60:	ff 75 08             	push   0x8(%ebp)
46ea63:	ff 52 08             	call   *0x8(%edx)
46ea66:	5d                   	pop    %ebp
46ea67:	c2 10 00             	ret    $0x10
46ea6a:	55                   	push   %ebp
46ea6b:	8b ec                	mov    %esp,%ebp
46ea6d:	f6 45 1c 02          	testb  $0x2,0x1c(%ebp)
46ea71:	74 4d                	je     0x46eac0
46ea73:	56                   	push   %esi
46ea74:	8b 75 08             	mov    0x8(%ebp),%esi
46ea77:	6a 01                	push   $0x1
46ea79:	6a 02                	push   $0x2
46ea7b:	6a ff                	push   $0xffffffff
46ea7d:	6a 00                	push   $0x0
46ea7f:	56                   	push   %esi
46ea80:	e8 fe c4 fa ff       	call   0x41af83
46ea85:	6a 00                	push   $0x0
46ea87:	ff 75 10             	push   0x10(%ebp)
46ea8a:	ff 75 0c             	push   0xc(%ebp)
46ea8d:	56                   	push   %esi
46ea8e:	ff 15 f4 d0 48 00    	call   *0x48d0f4
46ea94:	ff 75 18             	push   0x18(%ebp)
46ea97:	ff 75 14             	push   0x14(%ebp)
46ea9a:	56                   	push   %esi
46ea9b:	ff 15 e4 d0 48 00    	call   *0x48d0e4
46eaa1:	80 3d e4 16 4c 00 00 	cmpb   $0x0,0x4c16e4
46eaa8:	74 0e                	je     0x46eab8
46eaaa:	56                   	push   %esi
46eaab:	ff 15 4c d1 48 00    	call   *0x48d14c
46eab1:	c6 05 e4 16 4c 00 00 	movb   $0x0,0x4c16e4
46eab8:	56                   	push   %esi
46eab9:	ff 15 d8 d0 48 00    	call   *0x48d0d8
46eabf:	5e                   	pop    %esi
46eac0:	5d                   	pop    %ebp
46eac1:	c2 18 00             	ret    $0x18
46eac4:	55                   	push   %ebp
46eac5:	8b ec                	mov    %esp,%ebp
46eac7:	83 ec 18             	sub    $0x18,%esp
46eaca:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
46eace:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
46ead2:	56                   	push   %esi
46ead3:	8b 75 0c             	mov    0xc(%ebp),%esi
46ead6:	33 c9                	xor    %ecx,%ecx
46ead8:	89 4d fc             	mov    %ecx,-0x4(%ebp)
46eadb:	85 f6                	test   %esi,%esi
46eadd:	0f 84 04 01 00 00    	je     0x46ebe7
46eae3:	53                   	push   %ebx
46eae4:	57                   	push   %edi
46eae5:	33 ff                	xor    %edi,%edi
46eae7:	39 7e 0c             	cmp    %edi,0xc(%esi)
46eaea:	0f 8e ea 00 00 00    	jle    0x46ebda
46eaf0:	8d 46 14             	lea    0x14(%esi),%eax
46eaf3:	8d 5e 10             	lea    0x10(%esi),%ebx
46eaf6:	89 45 0c             	mov    %eax,0xc(%ebp)
46eaf9:	8b 08                	mov    (%eax),%ecx
46eafb:	8b 13                	mov    (%ebx),%edx
46eafd:	89 4d f4             	mov    %ecx,-0xc(%ebp)
46eb00:	8a 8c 3e 10 08 00 00 	mov    0x810(%esi,%edi,1),%cl
46eb07:	80 f9 02             	cmp    $0x2,%cl
46eb0a:	89 55 e8             	mov    %edx,-0x18(%ebp)
46eb0d:	89 4d ec             	mov    %ecx,-0x14(%ebp)
46eb10:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46eb13:	0f 82 ae 00 00 00    	jb     0x46ebc7
46eb19:	80 7d ec 07          	cmpb   $0x7,-0x14(%ebp)
46eb1d:	76 12                	jbe    0x46eb31
46eb1f:	80 7d ec 14          	cmpb   $0x14,-0x14(%ebp)
46eb23:	0f 85 9e 00 00 00    	jne    0x46ebc7
46eb29:	89 55 fc             	mov    %edx,-0x4(%ebp)
46eb2c:	e9 96 00 00 00       	jmp    0x46ebc7
46eb31:	51                   	push   %ecx
46eb32:	ff 75 f4             	push   -0xc(%ebp)
46eb35:	52                   	push   %edx
46eb36:	ff 75 08             	push   0x8(%ebp)
46eb39:	e8 b8 00 00 00       	call   0x46ebf6
46eb3e:	8a 84 3e 10 08 00 00 	mov    0x810(%esi,%edi,1),%al
46eb45:	24 fe                	and    $0xfe,%al
46eb47:	3c 04                	cmp    $0x4,%al
46eb49:	75 6d                	jne    0x46ebb8
46eb4b:	ff 75 fc             	push   -0x4(%ebp)
46eb4e:	83 45 0c 08          	addl   $0x8,0xc(%ebp)
46eb52:	ff 75 f0             	push   -0x10(%ebp)
46eb55:	ff 75 f8             	push   -0x8(%ebp)
46eb58:	ff 75 f4             	push   -0xc(%ebp)
46eb5b:	ff 75 e8             	push   -0x18(%ebp)
46eb5e:	ff 75 08             	push   0x8(%ebp)
46eb61:	e8 04 ff ff ff       	call   0x46ea6a
46eb66:	ff 75 fc             	push   -0x4(%ebp)
46eb69:	8b 45 0c             	mov    0xc(%ebp),%eax
46eb6c:	ff 30                	push   (%eax)
46eb6e:	ff 73 08             	push   0x8(%ebx)
46eb71:	ff 75 08             	push   0x8(%ebp)
46eb74:	e8 7d 00 00 00       	call   0x46ebf6
46eb79:	ff 75 fc             	push   -0x4(%ebp)
46eb7c:	8b 45 0c             	mov    0xc(%ebp),%eax
46eb7f:	8b 4b 08             	mov    0x8(%ebx),%ecx
46eb82:	8b 10                	mov    (%eax),%edx
46eb84:	52                   	push   %edx
46eb85:	83 c0 08             	add    $0x8,%eax
46eb88:	51                   	push   %ecx
46eb89:	ff 30                	push   (%eax)
46eb8b:	83 c3 10             	add    $0x10,%ebx
46eb8e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
46eb91:	ff 33                	push   (%ebx)
46eb93:	89 55 f0             	mov    %edx,-0x10(%ebp)
46eb96:	ff 75 08             	push   0x8(%ebp)
46eb99:	83 c7 02             	add    $0x2,%edi
46eb9c:	89 45 0c             	mov    %eax,0xc(%ebp)
46eb9f:	e8 c6 fe ff ff       	call   0x46ea6a
46eba4:	ff 75 fc             	push   -0x4(%ebp)
46eba7:	8b 45 0c             	mov    0xc(%ebp),%eax
46ebaa:	ff 30                	push   (%eax)
46ebac:	ff 33                	push   (%ebx)
46ebae:	ff 75 08             	push   0x8(%ebp)
46ebb1:	e8 40 00 00 00       	call   0x46ebf6
46ebb6:	eb 0c                	jmp    0x46ebc4
46ebb8:	8b 45 e8             	mov    -0x18(%ebp),%eax
46ebbb:	89 45 f8             	mov    %eax,-0x8(%ebp)
46ebbe:	8b 45 f4             	mov    -0xc(%ebp),%eax
46ebc1:	89 45 f0             	mov    %eax,-0x10(%ebp)
46ebc4:	8b 45 0c             	mov    0xc(%ebp),%eax
46ebc7:	47                   	inc    %edi
46ebc8:	83 c0 08             	add    $0x8,%eax
46ebcb:	83 c3 08             	add    $0x8,%ebx
46ebce:	89 45 0c             	mov    %eax,0xc(%ebp)
46ebd1:	3b 7e 0c             	cmp    0xc(%esi),%edi
46ebd4:	0f 8c 1f ff ff ff    	jl     0x46eaf9
46ebda:	8b 76 04             	mov    0x4(%esi),%esi
46ebdd:	85 f6                	test   %esi,%esi
46ebdf:	0f 85 00 ff ff ff    	jne    0x46eae5
46ebe5:	5f                   	pop    %edi
46ebe6:	5b                   	pop    %ebx
46ebe7:	6a ff                	push   $0xffffffff
46ebe9:	ff 75 08             	push   0x8(%ebp)
46ebec:	e8 ba c4 fa ff       	call   0x41b0ab
46ebf1:	5e                   	pop    %esi
46ebf2:	c9                   	leave
46ebf3:	c2 08 00             	ret    $0x8
46ebf6:	55                   	push   %ebp
46ebf7:	8b ec                	mov    %esp,%ebp
46ebf9:	f6 45 14 01          	testb  $0x1,0x14(%ebp)
46ebfd:	74 79                	je     0x46ec78
46ebff:	53                   	push   %ebx
46ec00:	56                   	push   %esi
46ec01:	6a 01                	push   $0x1
46ec03:	33 db                	xor    %ebx,%ebx
46ec05:	53                   	push   %ebx
46ec06:	6a ff                	push   $0xffffffff
46ec08:	53                   	push   %ebx
46ec09:	ff 75 08             	push   0x8(%ebp)
46ec0c:	e8 72 c3 fa ff       	call   0x41af83
46ec11:	8b 75 0c             	mov    0xc(%ebp),%esi
46ec14:	53                   	push   %ebx
46ec15:	8b 5d 10             	mov    0x10(%ebp),%ebx
46ec18:	53                   	push   %ebx
46ec19:	8d 46 fe             	lea    -0x2(%esi),%eax
46ec1c:	50                   	push   %eax
46ec1d:	ff 75 08             	push   0x8(%ebp)
46ec20:	ff 15 f4 d0 48 00    	call   *0x48d0f4
46ec26:	53                   	push   %ebx
46ec27:	8d 46 03             	lea    0x3(%esi),%eax
46ec2a:	8b 35 e4 d0 48 00    	mov    0x48d0e4,%esi
46ec30:	50                   	push   %eax
46ec31:	ff 75 08             	push   0x8(%ebp)
46ec34:	ff d6                	call   *%esi
46ec36:	6a 00                	push   $0x0
46ec38:	8d 43 fe             	lea    -0x2(%ebx),%eax
46ec3b:	50                   	push   %eax
46ec3c:	ff 75 0c             	push   0xc(%ebp)
46ec3f:	ff 75 08             	push   0x8(%ebp)
46ec42:	ff 15 f4 d0 48 00    	call   *0x48d0f4
46ec48:	8d 43 03             	lea    0x3(%ebx),%eax
46ec4b:	50                   	push   %eax
46ec4c:	ff 75 0c             	push   0xc(%ebp)
46ec4f:	ff 75 08             	push   0x8(%ebp)
46ec52:	ff d6                	call   *%esi
46ec54:	80 3d e4 16 4c 00 00 	cmpb   $0x0,0x4c16e4
46ec5b:	5e                   	pop    %esi
46ec5c:	5b                   	pop    %ebx
46ec5d:	74 10                	je     0x46ec6f
46ec5f:	ff 75 08             	push   0x8(%ebp)
46ec62:	ff 15 4c d1 48 00    	call   *0x48d14c
46ec68:	c6 05 e4 16 4c 00 00 	movb   $0x0,0x4c16e4
46ec6f:	ff 75 08             	push   0x8(%ebp)
46ec72:	ff 15 d8 d0 48 00    	call   *0x48d0d8
46ec78:	5d                   	pop    %ebp
46ec79:	c2 10 00             	ret    $0x10
46ec7c:	55                   	push   %ebp
46ec7d:	8b ec                	mov    %esp,%ebp
46ec7f:	56                   	push   %esi
46ec80:	ff 75 08             	push   0x8(%ebp)
46ec83:	be 28 16 4c 00       	mov    $0x4c1628,%esi
46ec88:	8b ce                	mov    %esi,%ecx
46ec8a:	e8 bf c6 fa ff       	call   0x41b34e
46ec8f:	8b 15 88 16 4c 00    	mov    0x4c1688,%edx
46ec95:	6a 01                	push   $0x1
46ec97:	8b 04 82             	mov    (%edx,%eax,4),%eax
46ec9a:	8b ce                	mov    %esi,%ecx
46ec9c:	ff 30                	push   (%eax)
46ec9e:	e8 99 c9 fa ff       	call   0x41b63c
46eca3:	0f b7 4d 14          	movzwl 0x14(%ebp),%ecx
46eca7:	0f b7 45 10          	movzwl 0x10(%ebp),%eax
46ecab:	c1 e1 10             	shl    $0x10,%ecx
46ecae:	5e                   	pop    %esi