4658fe:	56                   	push   %esi
4658ff:	e8 38 d5 fb ff       	call   0x422e3c
465904:	83 c4 14             	add    $0x14,%esp
465907:	83 f8 02             	cmp    $0x2,%eax
46590a:	72 65                	jb     0x465971
46590c:	6a 02                	push   $0x2
46590e:	8d 45 f4             	lea    -0xc(%ebp),%eax
465911:	56                   	push   %esi
465912:	50                   	push   %eax
465913:	e8 d6 e9 fb ff       	call   0x4242ee
465918:	33 c0                	xor    %eax,%eax
46591a:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
46591e:	8d 45 f4             	lea    -0xc(%ebp),%eax
465921:	50                   	push   %eax
465922:	e8 a3 de fb ff       	call   0x4237ca
465927:	8d 34 5e             	lea    (%esi,%ebx,2),%esi
46592a:	66 89 47 02          	mov    %ax,0x2(%edi)
46592e:	83 c6 04             	add    $0x4,%esi
465931:	56                   	push   %esi
465932:	e8 05 d5 fb ff       	call   0x422e3c
465937:	83 c4 14             	add    $0x14,%esp
46593a:	83 f8 02             	cmp    $0x2,%eax
46593d:	72 32                	jb     0x465971
46593f:	6a 02                	push   $0x2
465941:	8d 45 f4             	lea    -0xc(%ebp),%eax
465944:	56                   	push   %esi
465945:	50                   	push   %eax
465946:	e8 a3 e9 fb ff       	call   0x4242ee
46594b:	33 c0                	xor    %eax,%eax
46594d:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
465951:	8d 45 f4             	lea    -0xc(%ebp),%eax
465954:	50                   	push   %eax
465955:	e8 70 de fb ff       	call   0x4237ca
46595a:	83 c6 04             	add    $0x4,%esi
46595d:	66 89 47 06          	mov    %ax,0x6(%edi)
465961:	56                   	push   %esi
465962:	e8 d5 d4 fb ff       	call   0x422e3c
465967:	83 c4 14             	add    $0x14,%esp
46596a:	85 c0                	test   %eax,%eax
46596c:	74 03                	je     0x465971
46596e:	8d 34 5e             	lea    (%esi,%ebx,2),%esi
465971:	56                   	push   %esi
465972:	e8 c5 d4 fb ff       	call   0x422e3c
465977:	59                   	pop    %ecx
465978:	83 f8 02             	cmp    $0x2,%eax
46597b:	0f 82 91 00 00 00    	jb     0x465a12
465981:	6a 02                	push   $0x2
465983:	8d 45 f4             	lea    -0xc(%ebp),%eax
465986:	56                   	push   %esi
465987:	50                   	push   %eax
465988:	e8 61 e9 fb ff       	call   0x4242ee
46598d:	33 c0                	xor    %eax,%eax
46598f:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
465993:	8d 45 f4             	lea    -0xc(%ebp),%eax
465996:	50                   	push   %eax
465997:	e8 2e de fb ff       	call   0x4237ca
46599c:	8d 34 5e             	lea    (%esi,%ebx,2),%esi
46599f:	66 89 47 08          	mov    %ax,0x8(%edi)
4659a3:	83 c6 04             	add    $0x4,%esi
4659a6:	8d 1c 5d 04 00 00 00 	lea    0x4(,%ebx,2),%ebx
4659ad:	56                   	push   %esi
4659ae:	e8 89 d4 fb ff       	call   0x422e3c
4659b3:	83 c4 14             	add    $0x14,%esp
4659b6:	83 f8 02             	cmp    $0x2,%eax
4659b9:	72 57                	jb     0x465a12
4659bb:	6a 02                	push   $0x2
4659bd:	8d 45 f4             	lea    -0xc(%ebp),%eax
4659c0:	56                   	push   %esi
4659c1:	50                   	push   %eax
4659c2:	e8 27 e9 fb ff       	call   0x4242ee
4659c7:	33 c0                	xor    %eax,%eax
4659c9:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
4659cd:	8d 45 f4             	lea    -0xc(%ebp),%eax
4659d0:	50                   	push   %eax
4659d1:	e8 f4 dd fb ff       	call   0x4237ca
4659d6:	03 f3                	add    %ebx,%esi
4659d8:	66 89 47 0a          	mov    %ax,0xa(%edi)
4659dc:	56                   	push   %esi
4659dd:	e8 5a d4 fb ff       	call   0x422e3c
4659e2:	83 c4 14             	add    $0x14,%esp
4659e5:	83 f8 02             	cmp    $0x2,%eax
4659e8:	72 28                	jb     0x465a12
4659ea:	6a 02                	push   $0x2
4659ec:	8d 45 f4             	lea    -0xc(%ebp),%eax
4659ef:	56                   	push   %esi
4659f0:	50                   	push   %eax
4659f1:	e8 f8 e8 fb ff       	call   0x4242ee
4659f6:	33 c0                	xor    %eax,%eax
4659f8:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
4659fc:	8d 45 f4             	lea    -0xc(%ebp),%eax
4659ff:	50                   	push   %eax
465a00:	e8 c5 dd fb ff       	call   0x4237ca
465a05:	83 c4 10             	add    $0x10,%esp
465a08:	66 89 47 0c          	mov    %ax,0xc(%edi)
465a0c:	33 c0                	xor    %eax,%eax
465a0e:	66 89 47 0e          	mov    %ax,0xe(%edi)
465a12:	b0 01                	mov    $0x1,%al
465a14:	5b                   	pop    %ebx
465a15:	eb 02                	jmp    0x465a19
465a17:	32 c0                	xor    %al,%al
465a19:	5f                   	pop    %edi
465a1a:	5e                   	pop    %esi
465a1b:	8b e5                	mov    %ebp,%esp
465a1d:	5d                   	pop    %ebp
465a1e:	c3                   	ret
465a1f:	55                   	push   %ebp
465a20:	8b ec                	mov    %esp,%ebp
465a22:	83 ec 14             	sub    $0x14,%esp
465a25:	53                   	push   %ebx
465a26:	8b d9                	mov    %ecx,%ebx
465a28:	89 55 fc             	mov    %edx,-0x4(%ebp)
465a2b:	57                   	push   %edi
465a2c:	53                   	push   %ebx
465a2d:	e8 0a d4 fb ff       	call   0x422e3c
465a32:	8b f8                	mov    %eax,%edi
465a34:	99                   	cltd
465a35:	2b c2                	sub    %edx,%eax
465a37:	83 e0 fe             	and    $0xfffffffe,%eax
465a3a:	59                   	pop    %ecx
465a3b:	3b f8                	cmp    %eax,%edi
465a3d:	74 04                	je     0x465a43
465a3f:	32 c0                	xor    %al,%al
465a41:	eb 4a                	jmp    0x465a8d
465a43:	56                   	push   %esi
465a44:	33 f6                	xor    %esi,%esi
465a46:	85 ff                	test   %edi,%edi
465a48:	7e 40                	jle    0x465a8a
465a4a:	66 8b 04 73          	mov    (%ebx,%esi,2),%ax
465a4e:	8d 55 ec             	lea    -0x14(%ebp),%edx
465a51:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
465a55:	8d 4d f4             	lea    -0xc(%ebp),%ecx
465a58:	66 8b 44 73 02       	mov    0x2(%ebx,%esi,2),%ax
465a5d:	66 89 45 f6          	mov    %ax,-0xa(%ebp)
465a61:	33 c0                	xor    %eax,%eax
465a63:	6a 08                	push   $0x8
465a65:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
465a69:	e8 8d a1 fb ff       	call   0x41fbfb
465a6e:	59                   	pop    %ecx
465a6f:	84 c0                	test   %al,%al
465a71:	74 20                	je     0x465a93
465a73:	8a 4d ec             	mov    -0x14(%ebp),%cl
465a76:	8b c6                	mov    %esi,%eax
465a78:	99                   	cltd
465a79:	83 c6 02             	add    $0x2,%esi
465a7c:	2b c2                	sub    %edx,%eax
465a7e:	8b 55 fc             	mov    -0x4(%ebp),%edx
465a81:	d1 f8                	sar    $1,%eax
465a83:	88 0c 10             	mov    %cl,(%eax,%edx,1)
465a86:	3b f7                	cmp    %edi,%esi
465a88:	7c c0                	jl     0x465a4a
465a8a:	b0 01                	mov    $0x1,%al
465a8c:	5e                   	pop    %esi
465a8d:	5f                   	pop    %edi
465a8e:	5b                   	pop    %ebx
465a8f:	8b e5                	mov    %ebp,%esp
465a91:	5d                   	pop    %ebp
465a92:	c3                   	ret
465a93:	32 c0                	xor    %al,%al
465a95:	eb f5                	jmp    0x465a8c
465a97:	55                   	push   %ebp
465a98:	8b ec                	mov    %esp,%ebp
465a9a:	51                   	push   %ecx
465a9b:	53                   	push   %ebx
465a9c:	56                   	push   %esi
465a9d:	57                   	push   %edi
465a9e:	8b f9                	mov    %ecx,%edi
465aa0:	8b f2                	mov    %edx,%esi
465aa2:	57                   	push   %edi
465aa3:	e8 94 d3 fb ff       	call   0x422e3c
465aa8:	83 26 00             	andl   $0x0,(%esi)
465aab:	59                   	pop    %ecx
465aac:	33 c9                	xor    %ecx,%ecx
465aae:	c7 45 fc 30 00 00 00 	movl   $0x30,-0x4(%ebp)
465ab5:	41                   	inc    %ecx
465ab6:	8d 50 ff             	lea    -0x1(%eax),%edx
465ab9:	33 db                	xor    %ebx,%ebx
465abb:	85 d2                	test   %edx,%edx
465abd:	78 3f                	js     0x465afe
465abf:	0f b7 04 57          	movzwl (%edi,%edx,2),%eax
465ac3:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
465ac7:	72 0a                	jb     0x465ad3
465ac9:	83 f8 39             	cmp    $0x39,%eax
465acc:	77 05                	ja     0x465ad3
465ace:	83 e8 30             	sub    $0x30,%eax
465ad1:	eb 1c                	jmp    0x465aef
465ad3:	83 f8 41             	cmp    $0x41,%eax
465ad6:	72 0a                	jb     0x465ae2
465ad8:	83 f8 46             	cmp    $0x46,%eax
465adb:	77 05                	ja     0x465ae2
465add:	83 e8 37             	sub    $0x37,%eax
465ae0:	eb 0d                	jmp    0x465aef
465ae2:	83 f8 61             	cmp    $0x61,%eax
465ae5:	72 3b                	jb     0x465b22
465ae7:	83 f8 66             	cmp    $0x66,%eax
465aea:	77 36                	ja     0x465b22
465aec:	83 e8 57             	sub    $0x57,%eax
465aef:	0f af c1             	imul   %ecx,%eax
465af2:	c1 e1 04             	shl    $0x4,%ecx
465af5:	01 06                	add    %eax,(%esi)
465af7:	4a                   	dec    %edx
465af8:	43                   	inc    %ebx
465af9:	83 fb 08             	cmp    $0x8,%ebx
465afc:	7c bd                	jl     0x465abb
465afe:	83 fa ff             	cmp    $0xffffffff,%edx
465b01:	74 16                	je     0x465b19
465b03:	0f b7 4f 02          	movzwl 0x2(%edi),%ecx
465b07:	83 f9 78             	cmp    $0x78,%ecx
465b0a:	74 05                	je     0x465b11
465b0c:	83 f9 58             	cmp    $0x58,%ecx
465b0f:	75 11                	jne    0x465b22
465b11:	6a 30                	push   $0x30
465b13:	58                   	pop    %eax
465b14:	66 39 07             	cmp    %ax,(%edi)
465b17:	75 09                	jne    0x465b22
465b19:	b0 01                	mov    $0x1,%al
465b1b:	5f                   	pop    %edi
465b1c:	5e                   	pop    %esi
465b1d:	5b                   	pop    %ebx
465b1e:	8b e5                	mov    %ebp,%esp
465b20:	5d                   	pop    %ebp
465b21:	c3                   	ret
465b22:	83 26 00             	andl   $0x0,(%esi)
465b25:	32 c0                	xor    %al,%al
465b27:	eb f2                	jmp    0x465b1b
465b29:	55                   	push   %ebp
465b2a:	8b ec                	mov    %esp,%ebp
465b2c:	51                   	push   %ecx
465b2d:	56                   	push   %esi
465b2e:	57                   	push   %edi
465b2f:	8b f9                	mov    %ecx,%edi
465b31:	8b f2                	mov    %edx,%esi
465b33:	85 ff                	test   %edi,%edi
465b35:	75 04                	jne    0x465b3b
465b37:	33 c0                	xor    %eax,%eax
465b39:	eb 4b                	jmp    0x465b86
465b3b:	83 fe ff             	cmp    $0xffffffff,%esi
465b3e:	75 0a                	jne    0x465b4a
465b40:	57                   	push   %edi
465b41:	e8 f6 d2 fb ff       	call   0x422e3c
465b46:	59                   	pop    %ecx
465b47:	8d 70 01             	lea    0x1(%eax),%esi
465b4a:	53                   	push   %ebx
465b4b:	33 c0                	xor    %eax,%eax
465b4d:	50                   	push   %eax
465b4e:	50                   	push   %eax
465b4f:	50                   	push   %eax
465b50:	50                   	push   %eax
465b51:	56                   	push   %esi
465b52:	57                   	push   %edi
465b53:	50                   	push   %eax
465b54:	50                   	push   %eax
465b55:	ff 15 ac f1 48 00    	call   *0x48f1ac
465b5b:	8b d8                	mov    %eax,%ebx
465b5d:	85 db                	test   %ebx,%ebx
465b5f:	74 24                	je     0x465b85
465b61:	3b de                	cmp    %esi,%ebx
465b63:	7d 03                	jge    0x465b68
465b65:	56                   	push   %esi
465b66:	eb 01                	jmp    0x465b69
465b68:	53                   	push   %ebx
465b69:	e8 88 b4 fb ff       	call   0x420ff6
465b6e:	59                   	pop    %ecx
465b6f:	33 c9                	xor    %ecx,%ecx
465b71:	89 45 fc             	mov    %eax,-0x4(%ebp)
465b74:	51                   	push   %ecx
465b75:	51                   	push   %ecx
465b76:	53                   	push   %ebx
465b77:	50                   	push   %eax
465b78:	56                   	push   %esi
465b79:	57                   	push   %edi
465b7a:	51                   	push   %ecx
465b7b:	51                   	push   %ecx
465b7c:	ff 15 ac f1 48 00    	call   *0x48f1ac
465b82:	8b 45 fc             	mov    -0x4(%ebp),%eax
465b85:	5b                   	pop    %ebx
465b86:	5f                   	pop    %edi
465b87:	5e                   	pop    %esi
465b88:	8b e5                	mov    %ebp,%esp
465b8a:	5d                   	pop    %ebp
465b8b:	c3                   	ret
465b8c:	53                   	push   %ebx
465b8d:	57                   	push   %edi
465b8e:	33 c0                	xor    %eax,%eax
465b90:	8b d9                	mov    %ecx,%ebx
465b92:	50                   	push   %eax
465b93:	50                   	push   %eax
465b94:	6a ff                	push   $0xffffffff
465b96:	53                   	push   %ebx
465b97:	50                   	push   %eax
465b98:	68 e9 fd 00 00       	push   $0xfde9
465b9d:	ff 15 84 f1 48 00    	call   *0x48f184
465ba3:	8b f8                	mov    %eax,%edi
465ba5:	85 ff                	test   %edi,%edi
465ba7:	74 2d                	je     0x465bd6
465ba9:	56                   	push   %esi
465baa:	33 c9                	xor    %ecx,%ecx
465bac:	6a 02                	push   $0x2
465bae:	5a                   	pop    %edx
465baf:	f7 e2                	mul    %edx
465bb1:	0f 90 c1             	seto   %cl
465bb4:	f7 d9                	neg    %ecx
465bb6:	0b c8                	or     %eax,%ecx
465bb8:	51                   	push   %ecx
465bb9:	e8 38 b4 fb ff       	call   0x420ff6
465bbe:	59                   	pop    %ecx
465bbf:	57                   	push   %edi
465bc0:	8b f0                	mov    %eax,%esi
465bc2:	56                   	push   %esi
465bc3:	6a ff                	push   $0xffffffff
465bc5:	53                   	push   %ebx
465bc6:	6a 00                	push   $0x0
465bc8:	68 e9 fd 00 00       	push   $0xfde9
465bcd:	ff 15 84 f1 48 00    	call   *0x48f184
465bd3:	8b c6                	mov    %esi,%eax
465bd5:	5e                   	pop    %esi
465bd6:	5f                   	pop    %edi
465bd7:	5b                   	pop    %ebx
465bd8:	c3                   	ret
465bd9:	55                   	push   %ebp
465bda:	8b ec                	mov    %esp,%ebp
465bdc:	8b 45 14             	mov    0x14(%ebp),%eax
465bdf:	48                   	dec    %eax
465be0:	74 13                	je     0x465bf5
465be2:	48                   	dec    %eax
465be3:	75 3d                	jne    0x465c22
465be5:	ff 75 10             	push   0x10(%ebp)
465be8:	b9 70 72 4c 00       	mov    $0x4c7270,%ecx
465bed:	ff 75 0c             	push   0xc(%ebp)
465bf0:	ff 75 08             	push   0x8(%ebp)
465bf3:	eb 24                	jmp    0x465c19
465bf5:	83 3d 80 72 4c 00 00 	cmpl   $0x0,0x4c7280
465bfc:	74 24                	je     0x465c22
465bfe:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
465c02:	74 1e                	je     0x465c22
465c04:	ff 75 10             	push   0x10(%ebp)
465c07:	b9 80 72 4c 00       	mov    $0x4c7280,%ecx
465c0c:	ff 75 0c             	push   0xc(%ebp)
465c0f:	ff 75 08             	push   0x8(%ebp)
465c12:	e8 f6 0a ff ff       	call   0x45670d
465c17:	8b c8                	mov    %eax,%ecx
465c19:	e8 82 1a 00 00       	call   0x4676a0
465c1e:	b0 01                	mov    $0x1,%al
465c20:	eb 02                	jmp    0x465c24
465c22:	32 c0                	xor    %al,%al
465c24:	5d                   	pop    %ebp
465c25:	c2 10 00             	ret    $0x10
465c28:	55                   	push   %ebp
465c29:	8b ec                	mov    %esp,%ebp
465c2b:	51                   	push   %ecx
465c2c:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)