466925:	74 0c                	je     0x466933
466927:	8a 00                	mov    (%eax),%al
466929:	88 45 23             	mov    %al,0x23(%ebp)
46692c:	8d 45 23             	lea    0x23(%ebp),%eax
46692f:	6a 01                	push   $0x1
466931:	eb 0b                	jmp    0x46693e
466933:	0f b7 00             	movzwl (%eax),%eax
466936:	89 45 20             	mov    %eax,0x20(%ebp)
466939:	8d 45 20             	lea    0x20(%ebp),%eax
46693c:	6a 02                	push   $0x2
46693e:	50                   	push   %eax
46693f:	ff 75 10             	push   0x10(%ebp)
466942:	e8 39 a7 fb ff       	call   0x421080
466947:	83 c4 0c             	add    $0xc,%esp
46694a:	eb 4a                	jmp    0x466996
46694c:	f6 45 0c 01          	testb  $0x1,0xc(%ebp)
466950:	74 1c                	je     0x46696e
466952:	6a 01                	push   $0x1
466954:	ff 75 10             	push   0x10(%ebp)
466957:	8d 45 23             	lea    0x23(%ebp),%eax
46695a:	50                   	push   %eax
46695b:	e8 20 a7 fb ff       	call   0x421080
466960:	66 0f be 45 23       	movsbw 0x23(%ebp),%ax
466965:	83 c4 0c             	add    $0xc,%esp
466968:	0f b7 c0             	movzwl %ax,%eax
46696b:	50                   	push   %eax
46696c:	eb 14                	jmp    0x466982
46696e:	6a 02                	push   $0x2
466970:	ff 75 10             	push   0x10(%ebp)
466973:	8d 45 20             	lea    0x20(%ebp),%eax
466976:	50                   	push   %eax
466977:	e8 04 a7 fb ff       	call   0x421080
46697c:	83 c4 0c             	add    $0xc,%esp
46697f:	ff 75 20             	push   0x20(%ebp)
466982:	8d 4d f0             	lea    -0x10(%ebp),%ecx
466985:	e8 e5 f3 ff ff       	call   0x465d6f
46698a:	8b 4d 24             	mov    0x24(%ebp),%ecx
46698d:	8d 45 f0             	lea    -0x10(%ebp),%eax
466990:	50                   	push   %eax
466991:	e8 06 32 fa ff       	call   0x409b9c
466996:	8d 4d f0             	lea    -0x10(%ebp),%ecx
466999:	e8 c6 f0 f9 ff       	call   0x405a64
46699e:	5f                   	pop    %edi
46699f:	5e                   	pop    %esi
4669a0:	33 c0                	xor    %eax,%eax
4669a2:	5b                   	pop    %ebx
4669a3:	8b e5                	mov    %ebp,%esp
4669a5:	5d                   	pop    %ebp
4669a6:	c2 20 00             	ret    $0x20
4669a9:	55                   	push   %ebp
4669aa:	8b ec                	mov    %esp,%ebp
4669ac:	83 ec 20             	sub    $0x20,%esp
4669af:	53                   	push   %ebx
4669b0:	56                   	push   %esi
4669b1:	57                   	push   %edi
4669b2:	8b f9                	mov    %ecx,%edi
4669b4:	8d 4d 14             	lea    0x14(%ebp),%ecx
4669b7:	89 7d f8             	mov    %edi,-0x8(%ebp)
4669ba:	e8 da 29 fa ff       	call   0x409399
4669bf:	84 c0                	test   %al,%al
4669c1:	0f 85 b6 00 00 00    	jne    0x466a7d
4669c7:	8b 45 0c             	mov    0xc(%ebp),%eax
4669ca:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
4669ce:	75 1d                	jne    0x4669ed
4669d0:	8b 75 10             	mov    0x10(%ebp),%esi
4669d3:	8b ce                	mov    %esi,%ecx
4669d5:	8b 7f 08             	mov    0x8(%edi),%edi
4669d8:	e8 43 30 fa ff       	call   0x409a20
4669dd:	89 3e                	mov    %edi,(%esi)
4669df:	33 ff                	xor    %edi,%edi
4669e1:	c7 46 0c 07 00 00 00 	movl   $0x7,0xc(%esi)
4669e8:	e9 8d 01 00 00       	jmp    0x466b7a
4669ed:	33 db                	xor    %ebx,%ebx
4669ef:	43                   	inc    %ebx
4669f0:	39 58 08             	cmp    %ebx,0x8(%eax)
4669f3:	0f 85 39 01 00 00    	jne    0x466b32
4669f9:	8b 40 04             	mov    0x4(%eax),%eax
4669fc:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
4669ff:	33 ff                	xor    %edi,%edi
466a01:	89 7d 0c             	mov    %edi,0xc(%ebp)
466a04:	89 7d 08             	mov    %edi,0x8(%ebp)
466a07:	ff 30                	push   (%eax)
466a09:	89 7d ec             	mov    %edi,-0x14(%ebp)
466a0c:	e8 af 30 fa ff       	call   0x409ac0
466a11:	83 7d f0 04          	cmpl   $0x4,-0x10(%ebp)
466a15:	74 19                	je     0x466a30
466a17:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
466a1a:	e8 7d 32 fa ff       	call   0x409c9c
466a1f:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
466a22:	8d 70 ff             	lea    -0x1(%eax),%esi
466a25:	e8 f6 2f fa ff       	call   0x409a20
466a2a:	89 5d f0             	mov    %ebx,-0x10(%ebp)
466a2d:	89 75 e4             	mov    %esi,-0x1c(%ebp)
466a30:	8b 4d f8             	mov    -0x8(%ebp),%ecx
466a33:	8d 45 08             	lea    0x8(%ebp),%eax
466a36:	50                   	push   %eax
466a37:	8d 45 0c             	lea    0xc(%ebp),%eax
466a3a:	50                   	push   %eax
466a3b:	8d 45 e4             	lea    -0x1c(%ebp),%eax
466a3e:	50                   	push   %eax
466a3f:	e8 d8 f9 ff ff       	call   0x46641c
466a44:	8b 75 10             	mov    0x10(%ebp),%esi
466a47:	8b ce                	mov    %esi,%ecx
466a49:	89 45 0c             	mov    %eax,0xc(%ebp)
466a4c:	85 c0                	test   %eax,%eax
466a4e:	75 0f                	jne    0x466a5f
466a50:	e8 cb 2f fa ff       	call   0x409a20
466a55:	89 3e                	mov    %edi,(%esi)
466a57:	8b 7d 08             	mov    0x8(%ebp),%edi
466a5a:	89 5e 0c             	mov    %ebx,0xc(%esi)
466a5d:	eb 11                	jmp    0x466a70
466a5f:	e8 bc 2f fa ff       	call   0x409a20
466a64:	8b 45 0c             	mov    0xc(%ebp),%eax
466a67:	c7 46 0c 07 00 00 00 	movl   $0x7,0xc(%esi)
466a6e:	89 06                	mov    %eax,(%esi)
466a70:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
466a73:	e8 a8 2f fa ff       	call   0x409a20
466a78:	e9 fd 00 00 00       	jmp    0x466b7a
466a7d:	f6 45 08 03          	testb  $0x3,0x8(%ebp)
466a81:	0f 85 8d 00 00 00    	jne    0x466b14
466a87:	f6 45 08 0c          	testb  $0xc,0x8(%ebp)
466a8b:	6a 02                	push   $0x2
466a8d:	5f                   	pop    %edi
466a8e:	0f 84 e6 00 00 00    	je     0x466b7a
466a94:	8b 45 0c             	mov    0xc(%ebp),%eax
466a97:	83 cb ff             	or     $0xffffffff,%ebx
466a9a:	8b 70 08             	mov    0x8(%eax),%esi
466a9d:	3b f7                	cmp    %edi,%esi
466a9f:	76 19                	jbe    0x466aba
466aa1:	8b 75 10             	mov    0x10(%ebp),%esi
466aa4:	8b ce                	mov    %esi,%ecx
466aa6:	e8 75 2f fa ff       	call   0x409a20
466aab:	83 26 00             	andl   $0x0,(%esi)
466aae:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
466ab5:	e9 c0 00 00 00       	jmp    0x466b7a
466aba:	75 3d                	jne    0x466af9
466abc:	8b 40 04             	mov    0x4(%eax),%eax
466abf:	6a 29                	push   $0x29
466ac1:	8b 38                	mov    (%eax),%edi
466ac3:	8b cf                	mov    %edi,%ecx
466ac5:	e8 e4 32 fa ff       	call   0x409dae
466aca:	84 c0                	test   %al,%al
466acc:	75 28                	jne    0x466af6
466ace:	8b cf                	mov    %edi,%ecx
466ad0:	e8 c7 31 fa ff       	call   0x409c9c
466ad5:	8b d8                	mov    %eax,%ebx
466ad7:	4b                   	dec    %ebx
466ad8:	79 1c                	jns    0x466af6
466ada:	8b 75 10             	mov    0x10(%ebp),%esi
466add:	8b ce                	mov    %esi,%ecx
466adf:	e8 3c 2f fa ff       	call   0x409a20
466ae4:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
466aeb:	83 26 00             	andl   $0x0,(%esi)
466aee:	6a 03                	push   $0x3
466af0:	5f                   	pop    %edi
466af1:	e9 84 00 00 00       	jmp    0x466b7a
466af6:	8b 45 0c             	mov    0xc(%ebp),%eax
466af9:	8b 40 04             	mov    0x4(%eax),%eax
466afc:	8b 4d f8             	mov    -0x8(%ebp),%ecx
466aff:	53                   	push   %ebx
466b00:	6a 01                	push   $0x1
466b02:	ff 75 10             	push   0x10(%ebp)
466b05:	ff 74 b0 fc          	push   -0x4(%eax,%esi,4)
466b09:	8d 45 14             	lea    0x14(%ebp),%eax
466b0c:	50                   	push   %eax
466b0d:	e8 ed f9 ff ff       	call   0x4664ff
466b12:	eb 64                	jmp    0x466b78
466b14:	8b 45 0c             	mov    0xc(%ebp),%eax
466b17:	33 db                	xor    %ebx,%ebx
466b19:	43                   	inc    %ebx
466b1a:	83 ce ff             	or     $0xffffffff,%esi
466b1d:	39 58 08             	cmp    %ebx,0x8(%eax)
466b20:	76 14                	jbe    0x466b36
466b22:	8b 75 10             	mov    0x10(%ebp),%esi
466b25:	8b ce                	mov    %esi,%ecx
466b27:	e8 f4 2e fa ff       	call   0x409a20
466b2c:	83 26 00             	andl   $0x0,(%esi)
466b2f:	89 5e 0c             	mov    %ebx,0xc(%esi)
466b32:	6a 02                	push   $0x2
466b34:	eb ba                	jmp    0x466af0
466b36:	75 31                	jne    0x466b69
466b38:	8b 40 04             	mov    0x4(%eax),%eax
466b3b:	6a 29                	push   $0x29
466b3d:	8b 00                	mov    (%eax),%eax
466b3f:	8b c8                	mov    %eax,%ecx
466b41:	89 45 08             	mov    %eax,0x8(%ebp)
466b44:	e8 65 32 fa ff       	call   0x409dae
466b49:	84 c0                	test   %al,%al
466b4b:	75 1c                	jne    0x466b69
466b4d:	8b 4d 08             	mov    0x8(%ebp),%ecx
466b50:	e8 47 31 fa ff       	call   0x409c9c
466b55:	8b f0                	mov    %eax,%esi
466b57:	4e                   	dec    %esi
466b58:	79 0f                	jns    0x466b69
466b5a:	8b 75 10             	mov    0x10(%ebp),%esi
466b5d:	8b ce                	mov    %esi,%ecx
466b5f:	e8 bc 2e fa ff       	call   0x409a20
466b64:	89 5e 0c             	mov    %ebx,0xc(%esi)
466b67:	eb 82                	jmp    0x466aeb
466b69:	56                   	push   %esi
466b6a:	ff 75 10             	push   0x10(%ebp)
466b6d:	8d 45 14             	lea    0x14(%ebp),%eax
466b70:	8b cf                	mov    %edi,%ecx
466b72:	50                   	push   %eax
466b73:	e8 6b f9 ff ff       	call   0x4664e3
466b78:	8b f8                	mov    %eax,%edi
466b7a:	8d 4d 14             	lea    0x14(%ebp),%ecx
466b7d:	e8 9e 2e fa ff       	call   0x409a20
466b82:	8b c7                	mov    %edi,%eax
466b84:	5f                   	pop    %edi
466b85:	5e                   	pop    %esi
466b86:	5b                   	pop    %ebx
466b87:	8b e5                	mov    %ebp,%esp
466b89:	5d                   	pop    %ebp
466b8a:	c2 1c 00             	ret    $0x1c
466b8d:	55                   	push   %ebp
466b8e:	8b ec                	mov    %esp,%ebp
466b90:	8b 55 08             	mov    0x8(%ebp),%edx
466b93:	8b 02                	mov    (%edx),%eax
466b95:	89 01                	mov    %eax,(%ecx)
466b97:	8b 42 04             	mov    0x4(%edx),%eax
466b9a:	89 41 04             	mov    %eax,0x4(%ecx)
466b9d:	8b 42 08             	mov    0x8(%edx),%eax
466ba0:	89 41 08             	mov    %eax,0x8(%ecx)
466ba3:	8b 42 0c             	mov    0xc(%edx),%eax
466ba6:	89 41 0c             	mov    %eax,0xc(%ecx)
466ba9:	8b 42 10             	mov    0x10(%edx),%eax
466bac:	89 41 10             	mov    %eax,0x10(%ecx)
466baf:	8b 42 14             	mov    0x14(%edx),%eax
466bb2:	89 41 14             	mov    %eax,0x14(%ecx)
466bb5:	ff 00                	incl   (%eax)
466bb7:	8b c1                	mov    %ecx,%eax
466bb9:	5d                   	pop    %ebp
466bba:	c2 04 00             	ret    $0x4
466bbd:	55                   	push   %ebp
466bbe:	8b ec                	mov    %esp,%ebp
466bc0:	8b 45 08             	mov    0x8(%ebp),%eax
466bc3:	56                   	push   %esi
466bc4:	8b f1                	mov    %ecx,%esi
466bc6:	8d 4d 10             	lea    0x10(%ebp),%ecx
466bc9:	89 06                	mov    %eax,(%esi)
466bcb:	8b 45 0c             	mov    0xc(%ebp),%eax
466bce:	89 46 04             	mov    %eax,0x4(%esi)
466bd1:	8b 45 10             	mov    0x10(%ebp),%eax
466bd4:	89 46 08             	mov    %eax,0x8(%esi)
466bd7:	8b 45 14             	mov    0x14(%ebp),%eax
466bda:	89 46 0c             	mov    %eax,0xc(%esi)
466bdd:	8b 45 18             	mov    0x18(%ebp),%eax
466be0:	89 46 10             	mov    %eax,0x10(%esi)
466be3:	8b 45 1c             	mov    0x1c(%ebp),%eax
466be6:	89 46 14             	mov    %eax,0x14(%esi)
466be9:	ff 00                	incl   (%eax)
466beb:	e8 74 ee f9 ff       	call   0x405a64
466bf0:	8b c6                	mov    %esi,%eax
466bf2:	5e                   	pop    %esi
466bf3:	5d                   	pop    %ebp
466bf4:	c2 18 00             	ret    $0x18
466bf7:	55                   	push   %ebp
466bf8:	8b ec                	mov    %esp,%ebp
466bfa:	53                   	push   %ebx
466bfb:	56                   	push   %esi
466bfc:	57                   	push   %edi
466bfd:	8b 7d 08             	mov    0x8(%ebp),%edi
466c00:	8b f1                	mov    %ecx,%esi
466c02:	8b 07                	mov    (%edi),%eax
466c04:	89 06                	mov    %eax,(%esi)
466c06:	8b 47 04             	mov    0x4(%edi),%eax
466c09:	89 46 04             	mov    %eax,0x4(%esi)
466c0c:	8b 47 20             	mov    0x20(%edi),%eax
466c0f:	89 46 20             	mov    %eax,0x20(%esi)
466c12:	85 c0                	test   %eax,%eax
466c14:	74 03                	je     0x466c19
466c16:	ff 40 04             	incl   0x4(%eax)
466c19:	8b 47 24             	mov    0x24(%edi),%eax
466c1c:	89 46 24             	mov    %eax,0x24(%esi)
466c1f:	85 c0                	test   %eax,%eax
466c21:	74 03                	je     0x466c26
466c23:	ff 40 04             	incl   0x4(%eax)
466c26:	8b 4f 08             	mov    0x8(%edi),%ecx
466c29:	8d 56 08             	lea    0x8(%esi),%edx
466c2c:	33 db                	xor    %ebx,%ebx
466c2e:	53                   	push   %ebx
466c2f:	e8 d4 02 00 00       	call   0x466f08
466c34:	8b 4f 0c             	mov    0xc(%edi),%ecx
466c37:	8d 56 0c             	lea    0xc(%esi),%edx
466c3a:	53                   	push   %ebx
466c3b:	e8 c8 02 00 00       	call   0x466f08
466c40:	8b 4f 10             	mov    0x10(%edi),%ecx
466c43:	8d 56 10             	lea    0x10(%esi),%edx
466c46:	53                   	push   %ebx
466c47:	e8 bc 02 00 00       	call   0x466f08
466c4c:	8b 4f 14             	mov    0x14(%edi),%ecx
466c4f:	8d 56 14             	lea    0x14(%esi),%edx
466c52:	53                   	push   %ebx
466c53:	e8 b0 02 00 00       	call   0x466f08
466c58:	8b 4f 18             	mov    0x18(%edi),%ecx
466c5b:	8d 56 18             	lea    0x18(%esi),%edx
466c5e:	53                   	push   %ebx
466c5f:	e8 a4 02 00 00       	call   0x466f08
466c64:	8b 4f 1c             	mov    0x1c(%edi),%ecx
466c67:	8d 56 1c             	lea    0x1c(%esi),%edx
466c6a:	53                   	push   %ebx
466c6b:	e8 98 02 00 00       	call   0x466f08
466c70:	83 c4 18             	add    $0x18,%esp
466c73:	8b c6                	mov    %esi,%eax
466c75:	5f                   	pop    %edi
466c76:	5e                   	pop    %esi
466c77:	5b                   	pop    %ebx
466c78:	5d                   	pop    %ebp
466c79:	c2 04 00             	ret    $0x4
466c7c:	55                   	push   %ebp
466c7d:	8b ec                	mov    %esp,%ebp
466c7f:	8b 45 08             	mov    0x8(%ebp),%eax
466c82:	89 01                	mov    %eax,(%ecx)
466c84:	33 c0                	xor    %eax,%eax
466c86:	89 41 04             	mov    %eax,0x4(%ecx)
466c89:	89 41 08             	mov    %eax,0x8(%ecx)
466c8c:	89 41 0c             	mov    %eax,0xc(%ecx)
466c8f:	89 41 10             	mov    %eax,0x10(%ecx)
466c92:	89 41 14             	mov    %eax,0x14(%ecx)
466c95:	89 41 18             	mov    %eax,0x18(%ecx)
466c98:	89 41 1c             	mov    %eax,0x1c(%ecx)
466c9b:	89 41 20             	mov    %eax,0x20(%ecx)
466c9e:	89 41 24             	mov    %eax,0x24(%ecx)
466ca1:	66 89 41 02          	mov    %ax,0x2(%ecx)
466ca5:	8b 01                	mov    (%ecx),%eax
466ca7:	a8 08                	test   $0x8,%al
466ca9:	74 05                	je     0x466cb0
466cab:	83 c8 06             	or     $0x6,%eax
466cae:	89 01                	mov    %eax,(%ecx)
466cb0:	f6 01 10             	testb  $0x10,(%ecx)
466cb3:	74 06                	je     0x466cbb
466cb5:	c7 01 10 00 00 00    	movl   $0x10,(%ecx)
466cbb:	8b c1                	mov    %ecx,%eax
466cbd:	5d                   	pop    %ebp
466cbe:	c2 04 00             	ret    $0x4
466cc1:	55                   	push   %ebp
466cc2:	8b ec                	mov    %esp,%ebp
466cc4:	56                   	push   %esi
466cc5:	8b f1                	mov    %ecx,%esi
466cc7:	57                   	push   %edi
466cc8:	33 ff                	xor    %edi,%edi
466cca:	68 a0 0f 00 00       	push   $0xfa0
466ccf:	8d 46 14             	lea    0x14(%esi),%eax
466cd2:	c7 46 04 01 00 00 00 	movl   $0x1,0x4(%esi)
466cd9:	c7 06 d4 2e 4a 00    	movl   $0x4a2ed4,(%esi)
466cdf:	89 7e 08             	mov    %edi,0x8(%esi)
466ce2:	50                   	push   %eax
466ce3:	89 7e 0c             	mov    %edi,0xc(%esi)
466ce6:	ff 15 48 f3 48 00    	call   *0x48f348