417960:	c3                   	ret
417961:	8b ff                	mov    %edi,%edi
417963:	55                   	push   %ebp
417964:	8b ec                	mov    %esp,%ebp
417966:	83 ec 2c             	sub    $0x2c,%esp
417969:	8b 45 08             	mov    0x8(%ebp),%eax
41796c:	0f b7 48 0a          	movzwl 0xa(%eax),%ecx
417970:	53                   	push   %ebx
417971:	8b d9                	mov    %ecx,%ebx
417973:	81 e1 00 80 00 00    	and    $0x8000,%ecx
417979:	89 4d ec             	mov    %ecx,-0x14(%ebp)
41797c:	8b 48 06             	mov    0x6(%eax),%ecx
41797f:	89 4d e0             	mov    %ecx,-0x20(%ebp)
417982:	8b 48 02             	mov    0x2(%eax),%ecx
417985:	0f b7 00             	movzwl (%eax),%eax
417988:	81 e3 ff 7f 00 00    	and    $0x7fff,%ebx
41798e:	81 eb ff 3f 00 00    	sub    $0x3fff,%ebx
417994:	c1 e0 10             	shl    $0x10,%eax
417997:	57                   	push   %edi
417998:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
41799b:	89 45 e8             	mov    %eax,-0x18(%ebp)
41799e:	81 fb 01 c0 ff ff    	cmp    $0xffffc001,%ebx
4179a4:	75 27                	jne    0x4179cd
4179a6:	33 db                	xor    %ebx,%ebx
4179a8:	33 c0                	xor    %eax,%eax
4179aa:	39 5c 85 e0          	cmp    %ebx,-0x20(%ebp,%eax,4)
4179ae:	75 0d                	jne    0x4179bd
4179b0:	40                   	inc    %eax
4179b1:	83 f8 03             	cmp    $0x3,%eax
4179b4:	7c f4                	jl     0x4179aa
4179b6:	33 c0                	xor    %eax,%eax
4179b8:	e9 a5 04 00 00       	jmp    0x417e62
4179bd:	33 c0                	xor    %eax,%eax
4179bf:	8d 7d e0             	lea    -0x20(%ebp),%edi
4179c2:	ab                   	stos   %eax,%es:(%edi)
4179c3:	ab                   	stos   %eax,%es:(%edi)
4179c4:	6a 02                	push   $0x2
4179c6:	ab                   	stos   %eax,%es:(%edi)
4179c7:	58                   	pop    %eax
4179c8:	e9 95 04 00 00       	jmp    0x417e62
4179cd:	83 65 08 00          	andl   $0x0,0x8(%ebp)
4179d1:	56                   	push   %esi
4179d2:	8d 75 e0             	lea    -0x20(%ebp),%esi
4179d5:	8d 7d d4             	lea    -0x2c(%ebp),%edi
4179d8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4179d9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4179da:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4179db:	8b 35 88 c2 42 00    	mov    0x42c288,%esi
4179e1:	4e                   	dec    %esi
4179e2:	8d 4e 01             	lea    0x1(%esi),%ecx
4179e5:	8b c1                	mov    %ecx,%eax
4179e7:	99                   	cltd
4179e8:	83 e2 1f             	and    $0x1f,%edx
4179eb:	03 c2                	add    %edx,%eax
4179ed:	c1 f8 05             	sar    $0x5,%eax
4179f0:	8b d1                	mov    %ecx,%edx
4179f2:	81 e2 1f 00 00 80    	and    $0x8000001f,%edx
4179f8:	89 5d f0             	mov    %ebx,-0x10(%ebp)
4179fb:	89 45 f4             	mov    %eax,-0xc(%ebp)
4179fe:	79 05                	jns    0x417a05
417a00:	4a                   	dec    %edx
417a01:	83 ca e0             	or     $0xffffffe0,%edx
417a04:	42                   	inc    %edx
417a05:	8d 7c 85 e0          	lea    -0x20(%ebp,%eax,4),%edi
417a09:	6a 1f                	push   $0x1f
417a0b:	33 c0                	xor    %eax,%eax
417a0d:	59                   	pop    %ecx
417a0e:	2b ca                	sub    %edx,%ecx
417a10:	40                   	inc    %eax
417a11:	d3 e0                	shl    %cl,%eax
417a13:	89 4d f8             	mov    %ecx,-0x8(%ebp)
417a16:	85 07                	test   %eax,(%edi)
417a18:	0f 84 8d 00 00 00    	je     0x417aab
417a1e:	8b 45 f4             	mov    -0xc(%ebp),%eax
417a21:	83 ca ff             	or     $0xffffffff,%edx
417a24:	d3 e2                	shl    %cl,%edx
417a26:	f7 d2                	not    %edx
417a28:	85 54 85 e0          	test   %edx,-0x20(%ebp,%eax,4)
417a2c:	eb 05                	jmp    0x417a33
417a2e:	83 7c 85 e0 00       	cmpl   $0x0,-0x20(%ebp,%eax,4)
417a33:	75 08                	jne    0x417a3d
417a35:	40                   	inc    %eax
417a36:	83 f8 03             	cmp    $0x3,%eax
417a39:	7c f3                	jl     0x417a2e
417a3b:	eb 6e                	jmp    0x417aab
417a3d:	8b c6                	mov    %esi,%eax
417a3f:	99                   	cltd
417a40:	6a 1f                	push   $0x1f
417a42:	59                   	pop    %ecx
417a43:	23 d1                	and    %ecx,%edx
417a45:	03 c2                	add    %edx,%eax
417a47:	c1 f8 05             	sar    $0x5,%eax
417a4a:	81 e6 1f 00 00 80    	and    $0x8000001f,%esi
417a50:	79 05                	jns    0x417a57
417a52:	4e                   	dec    %esi
417a53:	83 ce e0             	or     $0xffffffe0,%esi
417a56:	46                   	inc    %esi
417a57:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
417a5b:	2b ce                	sub    %esi,%ecx
417a5d:	33 d2                	xor    %edx,%edx
417a5f:	42                   	inc    %edx
417a60:	d3 e2                	shl    %cl,%edx
417a62:	8d 4c 85 e0          	lea    -0x20(%ebp,%eax,4),%ecx
417a66:	8b 31                	mov    (%ecx),%esi
417a68:	03 f2                	add    %edx,%esi
417a6a:	89 75 08             	mov    %esi,0x8(%ebp)
417a6d:	8b 31                	mov    (%ecx),%esi
417a6f:	39 75 08             	cmp    %esi,0x8(%ebp)
417a72:	72 22                	jb     0x417a96
417a74:	39 55 08             	cmp    %edx,0x8(%ebp)
417a77:	eb 1b                	jmp    0x417a94
417a79:	85 c9                	test   %ecx,%ecx
417a7b:	74 2b                	je     0x417aa8
417a7d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
417a81:	8d 4c 85 e0          	lea    -0x20(%ebp,%eax,4),%ecx
417a85:	8b 11                	mov    (%ecx),%edx
417a87:	8d 72 01             	lea    0x1(%edx),%esi
417a8a:	89 75 08             	mov    %esi,0x8(%ebp)
417a8d:	3b f2                	cmp    %edx,%esi
417a8f:	72 05                	jb     0x417a96
417a91:	83 fe 01             	cmp    $0x1,%esi
417a94:	73 07                	jae    0x417a9d
417a96:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
417a9d:	48                   	dec    %eax
417a9e:	8b 55 08             	mov    0x8(%ebp),%edx
417aa1:	89 11                	mov    %edx,(%ecx)
417aa3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
417aa6:	79 d1                	jns    0x417a79
417aa8:	89 4d 08             	mov    %ecx,0x8(%ebp)
417aab:	8b 4d f8             	mov    -0x8(%ebp),%ecx
417aae:	83 c8 ff             	or     $0xffffffff,%eax
417ab1:	d3 e0                	shl    %cl,%eax
417ab3:	21 07                	and    %eax,(%edi)
417ab5:	8b 45 f4             	mov    -0xc(%ebp),%eax
417ab8:	40                   	inc    %eax
417ab9:	83 f8 03             	cmp    $0x3,%eax
417abc:	7d 0d                	jge    0x417acb
417abe:	6a 03                	push   $0x3
417ac0:	59                   	pop    %ecx
417ac1:	8d 7c 85 e0          	lea    -0x20(%ebp,%eax,4),%edi
417ac5:	2b c8                	sub    %eax,%ecx
417ac7:	33 c0                	xor    %eax,%eax
417ac9:	f3 ab                	rep stos %eax,%es:(%edi)
417acb:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
417acf:	74 01                	je     0x417ad2
417ad1:	43                   	inc    %ebx
417ad2:	a1 84 c2 42 00       	mov    0x42c284,%eax
417ad7:	8b c8                	mov    %eax,%ecx
417ad9:	2b 0d 88 c2 42 00    	sub    0x42c288,%ecx
417adf:	3b d9                	cmp    %ecx,%ebx
417ae1:	7d 0d                	jge    0x417af0
417ae3:	33 c0                	xor    %eax,%eax
417ae5:	8d 7d e0             	lea    -0x20(%ebp),%edi
417ae8:	ab                   	stos   %eax,%es:(%edi)
417ae9:	ab                   	stos   %eax,%es:(%edi)
417aea:	ab                   	stos   %eax,%es:(%edi)
417aeb:	e9 0d 02 00 00       	jmp    0x417cfd
417af0:	3b d8                	cmp    %eax,%ebx
417af2:	0f 8f 0f 02 00 00    	jg     0x417d07
417af8:	2b 45 f0             	sub    -0x10(%ebp),%eax
417afb:	8d 75 d4             	lea    -0x2c(%ebp),%esi
417afe:	8b c8                	mov    %eax,%ecx
417b00:	8d 7d e0             	lea    -0x20(%ebp),%edi
417b03:	a5                   	movsl  %ds:(%esi),%es:(%edi)
417b04:	99                   	cltd
417b05:	83 e2 1f             	and    $0x1f,%edx
417b08:	03 c2                	add    %edx,%eax
417b0a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
417b0b:	8b d1                	mov    %ecx,%edx
417b0d:	c1 f8 05             	sar    $0x5,%eax
417b10:	81 e2 1f 00 00 80    	and    $0x8000001f,%edx
417b16:	a5                   	movsl  %ds:(%esi),%es:(%edi)
417b17:	79 05                	jns    0x417b1e
417b19:	4a                   	dec    %edx
417b1a:	83 ca e0             	or     $0xffffffe0,%edx
417b1d:	42                   	inc    %edx
417b1e:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
417b22:	83 65 08 00          	andl   $0x0,0x8(%ebp)
417b26:	83 cf ff             	or     $0xffffffff,%edi
417b29:	8b ca                	mov    %edx,%ecx
417b2b:	d3 e7                	shl    %cl,%edi
417b2d:	c7 45 fc 20 00 00 00 	movl   $0x20,-0x4(%ebp)
417b34:	29 55 fc             	sub    %edx,-0x4(%ebp)
417b37:	f7 d7                	not    %edi
417b39:	8b 5d 08             	mov    0x8(%ebp),%ebx
417b3c:	8d 5c 9d e0          	lea    -0x20(%ebp,%ebx,4),%ebx
417b40:	8b 33                	mov    (%ebx),%esi
417b42:	8b ce                	mov    %esi,%ecx
417b44:	23 cf                	and    %edi,%ecx
417b46:	89 4d f0             	mov    %ecx,-0x10(%ebp)
417b49:	8b ca                	mov    %edx,%ecx
417b4b:	d3 ee                	shr    %cl,%esi
417b4d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
417b50:	0b 75 f4             	or     -0xc(%ebp),%esi
417b53:	89 33                	mov    %esi,(%ebx)
417b55:	8b 75 f0             	mov    -0x10(%ebp),%esi
417b58:	d3 e6                	shl    %cl,%esi
417b5a:	ff 45 08             	incl   0x8(%ebp)
417b5d:	83 7d 08 03          	cmpl   $0x3,0x8(%ebp)
417b61:	89 75 f4             	mov    %esi,-0xc(%ebp)
417b64:	7c d3                	jl     0x417b39
417b66:	8b f0                	mov    %eax,%esi
417b68:	6a 02                	push   $0x2
417b6a:	c1 e6 02             	shl    $0x2,%esi
417b6d:	8d 4d e8             	lea    -0x18(%ebp),%ecx
417b70:	5a                   	pop    %edx
417b71:	2b ce                	sub    %esi,%ecx
417b73:	3b d0                	cmp    %eax,%edx
417b75:	7c 08                	jl     0x417b7f
417b77:	8b 31                	mov    (%ecx),%esi
417b79:	89 74 95 e0          	mov    %esi,-0x20(%ebp,%edx,4)
417b7d:	eb 05                	jmp    0x417b84
417b7f:	83 64 95 e0 00       	andl   $0x0,-0x20(%ebp,%edx,4)
417b84:	4a                   	dec    %edx
417b85:	83 e9 04             	sub    $0x4,%ecx
417b88:	85 d2                	test   %edx,%edx
417b8a:	7d e7                	jge    0x417b73
417b8c:	8b 35 88 c2 42 00    	mov    0x42c288,%esi
417b92:	4e                   	dec    %esi
417b93:	8d 4e 01             	lea    0x1(%esi),%ecx
417b96:	8b c1                	mov    %ecx,%eax
417b98:	99                   	cltd
417b99:	83 e2 1f             	and    $0x1f,%edx
417b9c:	03 c2                	add    %edx,%eax
417b9e:	c1 f8 05             	sar    $0x5,%eax
417ba1:	8b d1                	mov    %ecx,%edx
417ba3:	81 e2 1f 00 00 80    	and    $0x8000001f,%edx
417ba9:	89 45 f4             	mov    %eax,-0xc(%ebp)
417bac:	79 05                	jns    0x417bb3
417bae:	4a                   	dec    %edx
417baf:	83 ca e0             	or     $0xffffffe0,%edx
417bb2:	42                   	inc    %edx
417bb3:	6a 1f                	push   $0x1f
417bb5:	59                   	pop    %ecx
417bb6:	2b ca                	sub    %edx,%ecx
417bb8:	33 d2                	xor    %edx,%edx
417bba:	42                   	inc    %edx
417bbb:	d3 e2                	shl    %cl,%edx
417bbd:	8d 5c 85 e0          	lea    -0x20(%ebp,%eax,4),%ebx
417bc1:	89 4d f0             	mov    %ecx,-0x10(%ebp)
417bc4:	85 13                	test   %edx,(%ebx)
417bc6:	0f 84 82 00 00 00    	je     0x417c4e
417bcc:	83 ca ff             	or     $0xffffffff,%edx
417bcf:	d3 e2                	shl    %cl,%edx
417bd1:	f7 d2                	not    %edx
417bd3:	85 54 85 e0          	test   %edx,-0x20(%ebp,%eax,4)
417bd7:	eb 05                	jmp    0x417bde
417bd9:	83 7c 85 e0 00       	cmpl   $0x0,-0x20(%ebp,%eax,4)
417bde:	75 08                	jne    0x417be8
417be0:	40                   	inc    %eax
417be1:	83 f8 03             	cmp    $0x3,%eax
417be4:	7c f3                	jl     0x417bd9
417be6:	eb 66                	jmp    0x417c4e
417be8:	8b c6                	mov    %esi,%eax
417bea:	99                   	cltd
417beb:	6a 1f                	push   $0x1f
417bed:	59                   	pop    %ecx
417bee:	23 d1                	and    %ecx,%edx
417bf0:	03 c2                	add    %edx,%eax
417bf2:	c1 f8 05             	sar    $0x5,%eax
417bf5:	81 e6 1f 00 00 80    	and    $0x8000001f,%esi
417bfb:	79 05                	jns    0x417c02
417bfd:	4e                   	dec    %esi
417bfe:	83 ce e0             	or     $0xffffffe0,%esi
417c01:	46                   	inc    %esi
417c02:	83 65 08 00          	andl   $0x0,0x8(%ebp)
417c06:	33 d2                	xor    %edx,%edx
417c08:	2b ce                	sub    %esi,%ecx
417c0a:	42                   	inc    %edx
417c0b:	d3 e2                	shl    %cl,%edx
417c0d:	8d 4c 85 e0          	lea    -0x20(%ebp,%eax,4),%ecx
417c11:	8b 31                	mov    (%ecx),%esi
417c13:	8d 3c 16             	lea    (%esi,%edx,1),%edi
417c16:	3b fe                	cmp    %esi,%edi
417c18:	72 04                	jb     0x417c1e
417c1a:	3b fa                	cmp    %edx,%edi
417c1c:	73 07                	jae    0x417c25
417c1e:	c7 45 08 01 00 00 00 	movl   $0x1,0x8(%ebp)
417c25:	89 39                	mov    %edi,(%ecx)
417c27:	8b 4d 08             	mov    0x8(%ebp),%ecx
417c2a:	eb 1f                	jmp    0x417c4b
417c2c:	85 c9                	test   %ecx,%ecx
417c2e:	74 1e                	je     0x417c4e
417c30:	8d 4c 85 e0          	lea    -0x20(%ebp,%eax,4),%ecx
417c34:	8b 11                	mov    (%ecx),%edx
417c36:	8d 72 01             	lea    0x1(%edx),%esi
417c39:	33 ff                	xor    %edi,%edi
417c3b:	3b f2                	cmp    %edx,%esi
417c3d:	72 05                	jb     0x417c44
417c3f:	83 fe 01             	cmp    $0x1,%esi
417c42:	73 03                	jae    0x417c47
417c44:	33 ff                	xor    %edi,%edi
417c46:	47                   	inc    %edi
417c47:	89 31                	mov    %esi,(%ecx)
417c49:	8b cf                	mov    %edi,%ecx
417c4b:	48                   	dec    %eax
417c4c:	79 de                	jns    0x417c2c
417c4e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
417c51:	83 c8 ff             	or     $0xffffffff,%eax
417c54:	d3 e0                	shl    %cl,%eax
417c56:	21 03                	and    %eax,(%ebx)
417c58:	8b 45 f4             	mov    -0xc(%ebp),%eax
417c5b:	40                   	inc    %eax
417c5c:	83 f8 03             	cmp    $0x3,%eax
417c5f:	7d 0d                	jge    0x417c6e
417c61:	6a 03                	push   $0x3
417c63:	59                   	pop    %ecx
417c64:	8d 7c 85 e0          	lea    -0x20(%ebp,%eax,4),%edi
417c68:	2b c8                	sub    %eax,%ecx
417c6a:	33 c0                	xor    %eax,%eax
417c6c:	f3 ab                	rep stos %eax,%es:(%edi)
417c6e:	8b 0d 8c c2 42 00    	mov    0x42c28c,%ecx
417c74:	41                   	inc    %ecx
417c75:	8b c1                	mov    %ecx,%eax
417c77:	99                   	cltd
417c78:	83 e2 1f             	and    $0x1f,%edx
417c7b:	03 c2                	add    %edx,%eax
417c7d:	8b d1                	mov    %ecx,%edx
417c7f:	c1 f8 05             	sar    $0x5,%eax
417c82:	81 e2 1f 00 00 80    	and    $0x8000001f,%edx
417c88:	79 05                	jns    0x417c8f
417c8a:	4a                   	dec    %edx
417c8b:	83 ca e0             	or     $0xffffffe0,%edx
417c8e:	42                   	inc    %edx
417c8f:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
417c93:	83 65 08 00          	andl   $0x0,0x8(%ebp)
417c97:	83 cf ff             	or     $0xffffffff,%edi
417c9a:	8b ca                	mov    %edx,%ecx
417c9c:	d3 e7                	shl    %cl,%edi
417c9e:	c7 45 fc 20 00 00 00 	movl   $0x20,-0x4(%ebp)
417ca5:	29 55 fc             	sub    %edx,-0x4(%ebp)
417ca8:	f7 d7                	not    %edi
417caa:	8b 5d 08             	mov    0x8(%ebp),%ebx
417cad:	8d 5c 9d e0          	lea    -0x20(%ebp,%ebx,4),%ebx
417cb1:	8b 33                	mov    (%ebx),%esi
417cb3:	8b ce                	mov    %esi,%ecx
417cb5:	23 cf                	and    %edi,%ecx
417cb7:	89 4d f0             	mov    %ecx,-0x10(%ebp)
417cba:	8b ca                	mov    %edx,%ecx
417cbc:	d3 ee                	shr    %cl,%esi
417cbe:	8b 4d fc             	mov    -0x4(%ebp),%ecx
417cc1:	0b 75 f4             	or     -0xc(%ebp),%esi
417cc4:	89 33                	mov    %esi,(%ebx)
417cc6:	8b 75 f0             	mov    -0x10(%ebp),%esi
417cc9:	d3 e6                	shl    %cl,%esi
417ccb:	ff 45 08             	incl   0x8(%ebp)
417cce:	83 7d 08 03          	cmpl   $0x3,0x8(%ebp)
417cd2:	89 75 f4             	mov    %esi,-0xc(%ebp)
417cd5:	7c d3                	jl     0x417caa
417cd7:	8b f0                	mov    %eax,%esi