46ec90:	89 46 0c             	mov    %eax,0xc(%esi)
46ec93:	89 06                	mov    %eax,(%esi)
46ec95:	53                   	push   %ebx
46ec96:	e8 d1 23 fb ff       	call   0x42106c
46ec9b:	59                   	pop    %ecx
46ec9c:	eb 10                	jmp    0x46ecae
46ec9e:	8b 07                	mov    (%edi),%eax
46eca0:	6a 00                	push   $0x0
46eca2:	6a 01                	push   $0x1
46eca4:	8b 48 04             	mov    0x4(%eax),%ecx
46eca7:	03 cf                	add    %edi,%ecx
46eca9:	e8 f5 7d fe ff       	call   0x456aa3
46ecae:	8d 4d e0             	lea    -0x20(%ebp),%ecx
46ecb1:	e8 ae 6d f9 ff       	call   0x405a64
46ecb6:	5f                   	pop    %edi
46ecb7:	5e                   	pop    %esi
46ecb8:	33 c0                	xor    %eax,%eax
46ecba:	5b                   	pop    %ebx
46ecbb:	8b e5                	mov    %ebp,%esp
46ecbd:	5d                   	pop    %ebp
46ecbe:	c2 08 00             	ret    $0x8
46ecc1:	55                   	push   %ebp
46ecc2:	8b ec                	mov    %esp,%ebp
46ecc4:	53                   	push   %ebx
46ecc5:	56                   	push   %esi
46ecc6:	8b 75 0c             	mov    0xc(%ebp),%esi
46ecc9:	8b ce                	mov    %esi,%ecx
46eccb:	e8 1c 92 f9 ff       	call   0x407eec
46ecd0:	8b 5d 08             	mov    0x8(%ebp),%ebx
46ecd3:	f6 c3 01             	test   $0x1,%bl
46ecd6:	74 0c                	je     0x46ece4
46ecd8:	68 84 a8 4b 00       	push   $0x4ba884
46ecdd:	8b ce                	mov    %esi,%ecx
46ecdf:	e8 27 91 f9 ff       	call   0x407e0b
46ece4:	f6 c3 20             	test   $0x20,%bl
46ece7:	74 0c                	je     0x46ecf5
46ece9:	68 88 a8 4b 00       	push   $0x4ba888
46ecee:	8b ce                	mov    %esi,%ecx
46ecf0:	e8 16 91 f9 ff       	call   0x407e0b
46ecf5:	f6 c3 04             	test   $0x4,%bl
46ecf8:	74 0c                	je     0x46ed06
46ecfa:	68 a0 93 4b 00       	push   $0x4b93a0
46ecff:	8b ce                	mov    %esi,%ecx
46ed01:	e8 05 91 f9 ff       	call   0x407e0b
46ed06:	f6 c3 02             	test   $0x2,%bl
46ed09:	74 0c                	je     0x46ed17
46ed0b:	68 58 96 4b 00       	push   $0x4b9658
46ed10:	8b ce                	mov    %esi,%ecx
46ed12:	e8 f4 90 f9 ff       	call   0x407e0b
46ed17:	84 db                	test   %bl,%bl
46ed19:	79 0c                	jns    0x46ed27
46ed1b:	68 8c a8 4b 00       	push   $0x4ba88c
46ed20:	8b ce                	mov    %esi,%ecx
46ed22:	e8 e4 90 f9 ff       	call   0x407e0b
46ed27:	f6 c3 10             	test   $0x10,%bl
46ed2a:	74 0c                	je     0x46ed38
46ed2c:	68 a4 93 4b 00       	push   $0x4b93a4
46ed31:	8b ce                	mov    %esi,%ecx
46ed33:	e8 d3 90 f9 ff       	call   0x407e0b
46ed38:	f7 c3 00 10 00 00    	test   $0x1000,%ebx
46ed3e:	74 0c                	je     0x46ed4c
46ed40:	68 90 a8 4b 00       	push   $0x4ba890
46ed45:	8b ce                	mov    %esi,%ecx
46ed47:	e8 bf 90 f9 ff       	call   0x407e0b
46ed4c:	f7 c3 00 08 00 00    	test   $0x800,%ebx
46ed52:	74 0c                	je     0x46ed60
46ed54:	68 94 a8 4b 00       	push   $0x4ba894
46ed59:	8b ce                	mov    %esi,%ecx
46ed5b:	e8 ab 90 f9 ff       	call   0x407e0b
46ed60:	f7 c3 00 01 00 00    	test   $0x100,%ebx
46ed66:	74 0c                	je     0x46ed74
46ed68:	68 98 a8 4b 00       	push   $0x4ba898
46ed6d:	8b ce                	mov    %esi,%ecx
46ed6f:	e8 97 90 f9 ff       	call   0x407e0b
46ed74:	f7 c3 00 40 00 00    	test   $0x4000,%ebx
46ed7a:	74 0c                	je     0x46ed88
46ed7c:	68 4c 96 4b 00       	push   $0x4b964c
46ed81:	8b ce                	mov    %esi,%ecx
46ed83:	e8 83 90 f9 ff       	call   0x407e0b
46ed88:	5e                   	pop    %esi
46ed89:	5b                   	pop    %ebx
46ed8a:	5d                   	pop    %ebp
46ed8b:	c2 08 00             	ret    $0x8
46ed8e:	55                   	push   %ebp
46ed8f:	8b ec                	mov    %esp,%ebp
46ed91:	83 e4 f8             	and    $0xfffffff8,%esp
46ed94:	81 ec d4 00 00 00    	sub    $0xd4,%esp
46ed9a:	53                   	push   %ebx
46ed9b:	56                   	push   %esi
46ed9c:	8b d9                	mov    %ecx,%ebx
46ed9e:	8d 4c 24 74          	lea    0x74(%esp),%ecx
46eda2:	57                   	push   %edi
46eda3:	e8 1f 8a f9 ff       	call   0x4077c7
46eda8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46edab:	33 c0                	xor    %eax,%eax
46edad:	68 10 f9 48 00       	push   $0x48f910
46edb2:	89 44 24 28          	mov    %eax,0x28(%esp)
46edb6:	e8 3d ae f9 ff       	call   0x409bf8
46edbb:	8b 7d 08             	mov    0x8(%ebp),%edi
46edbe:	8b 47 04             	mov    0x4(%edi),%eax
46edc1:	8b 30                	mov    (%eax),%esi
46edc3:	8b ce                	mov    %esi,%ecx
46edc5:	e8 cd ab f9 ff       	call   0x409997
46edca:	8b 4e 08             	mov    0x8(%esi),%ecx
46edcd:	8b 01                	mov    (%ecx),%eax
46edcf:	89 44 24 34          	mov    %eax,0x34(%esp)
46edd3:	89 44 24 48          	mov    %eax,0x48(%esp)
46edd7:	8b 41 04             	mov    0x4(%ecx),%eax
46edda:	89 44 24 4c          	mov    %eax,0x4c(%esp)
46edde:	8b 41 08             	mov    0x8(%ecx),%eax
46ede1:	89 44 24 50          	mov    %eax,0x50(%esp)
46ede5:	8b 41 0c             	mov    0xc(%ecx),%eax
46ede8:	89 44 24 54          	mov    %eax,0x54(%esp)
46edec:	ff 00                	incl   (%eax)
46edee:	8b 47 04             	mov    0x4(%edi),%eax
46edf1:	8b 70 04             	mov    0x4(%eax),%esi
46edf4:	8b ce                	mov    %esi,%ecx
46edf6:	e8 9c ab f9 ff       	call   0x409997
46edfb:	8b 4e 08             	mov    0x8(%esi),%ecx
46edfe:	8b 01                	mov    (%ecx),%eax
46ee00:	89 44 24 28          	mov    %eax,0x28(%esp)
46ee04:	89 44 24 68          	mov    %eax,0x68(%esp)
46ee08:	8b 41 04             	mov    0x4(%ecx),%eax
46ee0b:	89 44 24 6c          	mov    %eax,0x6c(%esp)
46ee0f:	8b 41 08             	mov    0x8(%ecx),%eax
46ee12:	89 44 24 70          	mov    %eax,0x70(%esp)
46ee16:	8b 41 0c             	mov    0xc(%ecx),%eax
46ee19:	8d 4c 24 14          	lea    0x14(%esp),%ecx
46ee1d:	89 44 24 74          	mov    %eax,0x74(%esp)
46ee21:	ff 00                	incl   (%eax)
46ee23:	e8 9f 89 f9 ff       	call   0x4077c7
46ee28:	8d 4c 24 38          	lea    0x38(%esp),%ecx
46ee2c:	e8 96 89 f9 ff       	call   0x4077c7
46ee31:	8b 47 04             	mov    0x4(%edi),%eax
46ee34:	8b 70 08             	mov    0x8(%eax),%esi
46ee37:	8b ce                	mov    %esi,%ecx
46ee39:	e8 59 ab f9 ff       	call   0x409997
46ee3e:	8b 46 08             	mov    0x8(%esi),%eax
46ee41:	8b 08                	mov    (%eax),%ecx
46ee43:	e8 7e 10 fb ff       	call   0x41fec6
46ee48:	50                   	push   %eax
46ee49:	8d 4c 24 30          	lea    0x30(%esp),%ecx
46ee4d:	e8 3c 65 f9 ff       	call   0x40538e
46ee52:	be 88 95 4b 00       	mov    $0x4b9588,%esi
46ee57:	56                   	push   %esi
46ee58:	ff 74 24 30          	push   0x30(%esp)
46ee5c:	e9 9e 00 00 00       	jmp    0x46eeff
46ee61:	50                   	push   %eax
46ee62:	8d 4c 24 3c          	lea    0x3c(%esp),%ecx
46ee66:	e8 c1 8e f9 ff       	call   0x407d2c
46ee6b:	68 10 9e 4b 00       	push   $0x4b9e10
46ee70:	8d 4c 24 3c          	lea    0x3c(%esp),%ecx
46ee74:	e8 73 68 ff ff       	call   0x4656ec
46ee79:	68 14 9e 4b 00       	push   $0x4b9e14
46ee7e:	8d 4c 24 3c          	lea    0x3c(%esp),%ecx
46ee82:	89 44 24 10          	mov    %eax,0x10(%esp)
46ee86:	e8 61 68 ff ff       	call   0x4656ec
46ee8b:	8b f0                	mov    %eax,%esi
46ee8d:	8b 44 24 0c          	mov    0xc(%esp),%eax
46ee91:	83 f8 ff             	cmp    $0xffffffff,%eax
46ee94:	0f 84 fd 00 00 00    	je     0x46ef97
46ee9a:	83 fe ff             	cmp    $0xffffffff,%esi
46ee9d:	0f 84 f4 00 00 00    	je     0x46ef97
46eea3:	3b f0                	cmp    %eax,%esi
46eea5:	0f 82 ec 00 00 00    	jb     0x46ef97
46eeab:	8d 44 24 38          	lea    0x38(%esp),%eax
46eeaf:	50                   	push   %eax
46eeb0:	8d 4c 24 18          	lea    0x18(%esp),%ecx
46eeb4:	e8 d5 8d f9 ff       	call   0x407c8e
46eeb9:	68 88 95 4b 00       	push   $0x4b9588
46eebe:	8d 4c 24 18          	lea    0x18(%esp),%ecx
46eec2:	e8 44 8f f9 ff       	call   0x407e0b
46eec7:	8b 44 24 0c          	mov    0xc(%esp),%eax
46eecb:	8d 4c 24 78          	lea    0x78(%esp),%ecx
46eecf:	2b f0                	sub    %eax,%esi
46eed1:	4e                   	dec    %esi
46eed2:	40                   	inc    %eax
46eed3:	56                   	push   %esi
46eed4:	50                   	push   %eax
46eed5:	8d 44 24 40          	lea    0x40(%esp),%eax
46eed9:	50                   	push   %eax
46eeda:	e8 cc 8a f9 ff       	call   0x4079ab
46eedf:	8d 44 24 78          	lea    0x78(%esp),%eax
46eee3:	50                   	push   %eax
46eee4:	8d 4c 24 18          	lea    0x18(%esp),%ecx
46eee8:	e8 a1 8d f9 ff       	call   0x407c8e
46eeed:	be 88 95 4b 00       	mov    $0x4b9588,%esi
46eef2:	8d 4c 24 14          	lea    0x14(%esp),%ecx
46eef6:	56                   	push   %esi
46eef7:	e8 0f 8f f9 ff       	call   0x407e0b
46eefc:	56                   	push   %esi
46eefd:	6a 00                	push   $0x0
46eeff:	e8 64 57 fb ff       	call   0x424668
46ef04:	59                   	pop    %ecx
46ef05:	59                   	pop    %ecx
46ef06:	85 c0                	test   %eax,%eax
46ef08:	0f 85 53 ff ff ff    	jne    0x46ee61
46ef0e:	56                   	push   %esi
46ef0f:	8d 4c 24 18          	lea    0x18(%esp),%ecx
46ef13:	e8 f3 8e f9 ff       	call   0x407e0b
46ef18:	33 f6                	xor    %esi,%esi
46ef1a:	46                   	inc    %esi
46ef1b:	39 74 24 18          	cmp    %esi,0x18(%esp)
46ef1f:	76 26                	jbe    0x46ef47
46ef21:	56                   	push   %esi
46ef22:	8d 4c 24 18          	lea    0x18(%esp),%ecx
46ef26:	e8 27 8c f9 ff       	call   0x407b52
46ef2b:	66 83 38 7c          	cmpw   $0x7c,(%eax)
46ef2f:	75 0f                	jne    0x46ef40
46ef31:	56                   	push   %esi
46ef32:	8d 4c 24 18          	lea    0x18(%esp),%ecx
46ef36:	e8 17 8c f9 ff       	call   0x407b52
46ef3b:	33 c9                	xor    %ecx,%ecx
46ef3d:	66 89 08             	mov    %cx,(%eax)
46ef40:	46                   	inc    %esi
46ef41:	3b 74 24 18          	cmp    0x18(%esp),%esi
46ef45:	72 da                	jb     0x46ef21
46ef47:	83 7d 10 06          	cmpl   $0x6,0x10(%ebp)
46ef4b:	72 0f                	jb     0x46ef5c
46ef4d:	8b 47 04             	mov    0x4(%edi),%eax
46ef50:	8b 48 14             	mov    0x14(%eax),%ecx
46ef53:	e8 63 9a ff ff       	call   0x4689bb
46ef58:	89 44 24 24          	mov    %eax,0x24(%esp)
46ef5c:	68 fe ff 01 00       	push   $0x1fffe
46ef61:	e8 90 20 fb ff       	call   0x420ff6
46ef66:	59                   	pop    %ecx
46ef67:	50                   	push   %eax
46ef68:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46ef6c:	e8 1d 64 f9 ff       	call   0x40538e
46ef71:	83 7d 10 05          	cmpl   $0x5,0x10(%ebp)
46ef75:	72 35                	jb     0x46efac
46ef77:	8b 47 04             	mov    0x4(%edi),%eax
46ef7a:	8b 70 10             	mov    0x10(%eax),%esi
46ef7d:	8b ce                	mov    %esi,%ecx
46ef7f:	e8 13 aa f9 ff       	call   0x409997
46ef84:	8b 46 08             	mov    0x8(%esi),%eax
46ef87:	8b 74 24 0c          	mov    0xc(%esp),%esi
46ef8b:	ff 30                	push   (%eax)
46ef8d:	56                   	push   %esi
46ef8e:	e8 69 40 fb ff       	call   0x422ffc
46ef93:	59                   	pop    %ecx
46ef94:	59                   	pop    %ecx
46ef95:	eb 1e                	jmp    0x46efb5
46ef97:	8b 03                	mov    (%ebx),%eax
46ef99:	6a 00                	push   $0x0
46ef9b:	6a 02                	push   $0x2
46ef9d:	8b 48 04             	mov    0x4(%eax),%ecx
46efa0:	03 cb                	add    %ebx,%ecx
46efa2:	e8 fc 7a fe ff       	call   0x456aa3
46efa7:	e9 03 02 00 00       	jmp    0x46f1af
46efac:	8b 74 24 0c          	mov    0xc(%esp),%esi
46efb0:	33 c0                	xor    %eax,%eax
46efb2:	66 89 06             	mov    %ax,(%esi)
46efb5:	6a 58                	push   $0x58
46efb7:	8d 84 24 8c 00 00 00 	lea    0x8c(%esp),%eax
46efbe:	6a 00                	push   $0x0
46efc0:	50                   	push   %eax
46efc1:	e8 5a 40 fb ff       	call   0x423020
46efc6:	8b 44 24 30          	mov    0x30(%esp),%eax
46efca:	83 c4 0c             	add    $0xc,%esp
46efcd:	83 7d 10 04          	cmpl   $0x4,0x10(%ebp)
46efd1:	89 84 24 8c 00 00 00 	mov    %eax,0x8c(%esp)
46efd8:	8b 44 24 14          	mov    0x14(%esp),%eax
46efdc:	89 84 24 94 00 00 00 	mov    %eax,0x94(%esp)
46efe3:	8b 44 24 34          	mov    0x34(%esp),%eax
46efe7:	89 84 24 b8 00 00 00 	mov    %eax,0xb8(%esp)
46efee:	8b 44 24 28          	mov    0x28(%esp),%eax
46eff2:	89 b4 24 a4 00 00 00 	mov    %esi,0xa4(%esp)
46eff9:	be 04 00 08 00       	mov    $0x80004,%esi
46effe:	c7 84 24 88 00 00 00 	movl   $0x58,0x88(%esp)
46f005:	58 00 00 00
46f009:	c7 84 24 a8 00 00 00 	movl   $0xffff,0xa8(%esp)
46f010:	ff ff 00 00
46f014:	89 84 24 b4 00 00 00 	mov    %eax,0xb4(%esp)
46f01b:	c7 84 24 c4 00 00 00 	movl   $0x48f910,0xc4(%esp)
46f022:	10 f9 48 00
46f026:	0f 82 85 00 00 00    	jb     0x46f0b1
46f02c:	8b 47 04             	mov    0x4(%edi),%eax
46f02f:	8b 48 0c             	mov    0xc(%eax),%ecx
46f032:	e8 65 ac f9 ff       	call   0x409c9c
46f037:	83 f8 1f             	cmp    $0x1f,%eax
46f03a:	7f 75                	jg     0x46f0b1
46f03c:	8b 47 04             	mov    0x4(%edi),%eax
46f03f:	8b 48 0c             	mov    0xc(%eax),%ecx
46f042:	e8 55 ac f9 ff       	call   0x409c9c
46f047:	85 c0                	test   %eax,%eax
46f049:	78 66                	js     0x46f0b1
46f04b:	8b 47 04             	mov    0x4(%edi),%eax
46f04e:	8b 48 0c             	mov    0xc(%eax),%ecx
46f051:	e8 46 ac f9 ff       	call   0x409c9c
46f056:	a8 10                	test   $0x10,%al
46f058:	74 03                	je     0x46f05d
46f05a:	83 c6 02             	add    $0x2,%esi
46f05d:	8b 47 04             	mov    0x4(%edi),%eax
46f060:	8b 48 0c             	mov    0xc(%eax),%ecx
46f063:	e8 34 ac f9 ff       	call   0x409c9c
46f068:	a8 08                	test   $0x8,%al
46f06a:	74 06                	je     0x46f072
46f06c:	81 ce 00 20 00 00    	or     $0x2000,%esi
46f072:	8b 47 04             	mov    0x4(%edi),%eax
46f075:	8b 48 0c             	mov    0xc(%eax),%ecx
46f078:	e8 1f ac f9 ff       	call   0x409c9c
46f07d:	a8 04                	test   $0x4,%al
46f07f:	74 06                	je     0x46f087
46f081:	81 ce 00 02 00 00    	or     $0x200,%esi
46f087:	8b 47 04             	mov    0x4(%edi),%eax
46f08a:	8b 48 0c             	mov    0xc(%eax),%ecx
46f08d:	e8 0a ac f9 ff       	call   0x409c9c
46f092:	a8 02                	test   $0x2,%al
46f094:	74 06                	je     0x46f09c
46f096:	81 ce 00 08 00 00    	or     $0x800,%esi
46f09c:	8b 47 04             	mov    0x4(%edi),%eax
46f09f:	8b 48 0c             	mov    0xc(%eax),%ecx
46f0a2:	e8 f5 ab f9 ff       	call   0x409c9c
46f0a7:	a8 01                	test   $0x1,%al
46f0a9:	74 06                	je     0x46f0b1
46f0ab:	81 ce 00 10 00 00    	or     $0x1000,%esi
46f0b1:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
46f0b5:	8d 84 24 88 00 00 00 	lea    0x88(%esp),%eax
46f0bc:	89 b4 24 bc 00 00 00 	mov    %esi,0xbc(%esp)
46f0c3:	50                   	push   %eax
46f0c4:	0f 84 a0 00 00 00    	je     0x46f16a
46f0ca:	ff 15 b8 f0 48 00    	call   *0x48f0b8
46f0d0:	85 c0                	test   %eax,%eax
46f0d2:	0f 84 ad 00 00 00    	je     0x46f185
46f0d8:	ff b4 24 a4 00 00 00 	push   0xa4(%esp)
46f0df:	f7 c6 00 02 00 00    	test   $0x200,%esi
46f0e5:	0f 84 90 00 00 00    	je     0x46f17b
46f0eb:	e8 4c 3d fb ff       	call   0x422e3c
46f0f0:	59                   	pop    %ecx
46f0f1:	ff b4 24 a4 00 00 00 	push   0xa4(%esp)
46f0f8:	8d 4c 24 5c          	lea    0x5c(%esp),%ecx
46f0fc:	8b f0                	mov    %eax,%esi
46f0fe:	e8 3e 8e f9 ff       	call   0x407f41
46f103:	8b 84 24 a4 00 00 00 	mov    0xa4(%esp),%eax
46f10a:	83 c0 02             	add    $0x2,%eax
46f10d:	33 db                	xor    %ebx,%ebx
46f10f:	eb 32                	jmp    0x46f143
46f111:	50                   	push   %eax
46f112:	e8 25 3d fb ff       	call   0x422e3c
46f117:	8d 4c 24 5c          	lea    0x5c(%esp),%ecx
46f11b:	c7 04 24 88 95 4b 00 	movl   $0x4b9588,(%esp)
46f122:	8b f0                	mov    %eax,%esi
46f124:	e8 e2 8c f9 ff       	call   0x407e0b
46f129:	ff b4 24 a4 00 00 00 	push   0xa4(%esp)
46f130:	8d 4c 24 5c          	lea    0x5c(%esp),%ecx
46f134:	e8 d2 8c f9 ff       	call   0x407e0b
46f139:	8b 84 24 a4 00 00 00 	mov    0xa4(%esp),%eax
46f140:	83 c0 02             	add    $0x2,%eax
46f143:	8d 04 70             	lea    (%eax,%esi,2),%eax