4638f4:	b0 01                	mov    $0x1,%al
4638f6:	5e                   	pop    %esi
4638f7:	5b                   	pop    %ebx
4638f8:	c3                   	ret
4638f9:	8b ff                	mov    %edi,%edi
4638fb:	53                   	push   %ebx
4638fc:	56                   	push   %esi
4638fd:	8b f1                	mov    %ecx,%esi
4638ff:	57                   	push   %edi
463900:	83 46 14 04          	addl   $0x4,0x14(%esi)
463904:	8b 46 14             	mov    0x14(%esi),%eax
463907:	8b 7e 28             	mov    0x28(%esi),%edi
46390a:	8b 58 fc             	mov    -0x4(%eax),%ebx
46390d:	89 5e 34             	mov    %ebx,0x34(%esi)
463910:	83 ff ff             	cmp    $0xffffffff,%edi
463913:	75 05                	jne    0x46391a
463915:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
46391a:	ff 76 2c             	push   0x2c(%esi)
46391d:	0f b7 46 32          	movzwl 0x32(%esi),%eax
463921:	50                   	push   %eax
463922:	ff 76 04             	push   0x4(%esi)
463925:	ff 36                	push   (%esi)
463927:	e8 33 46 ff ff       	call   0x457f5f
46392c:	83 c4 10             	add    $0x10,%esp
46392f:	84 c0                	test   %al,%al
463931:	74 1c                	je     0x46394f
463933:	85 db                	test   %ebx,%ebx
463935:	75 07                	jne    0x46393e
463937:	c7 46 34 14 cb 49 00 	movl   $0x49cb14,0x34(%esi)
46393e:	57                   	push   %edi
46393f:	ff 76 34             	push   0x34(%esi)
463942:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
463946:	e8 62 5d 00 00       	call   0x4696ad
46394b:	59                   	pop    %ecx
46394c:	59                   	pop    %ecx
46394d:	eb 15                	jmp    0x463964
46394f:	85 db                	test   %ebx,%ebx
463951:	75 07                	jne    0x46395a
463953:	c7 46 34 24 cb 49 00 	movl   $0x49cb24,0x34(%esi)
46395a:	6a 00                	push   $0x0
46395c:	57                   	push   %edi
46395d:	8b ce                	mov    %esi,%ecx
46395f:	e8 3f 02 00 00       	call   0x463ba3
463964:	5f                   	pop    %edi
463965:	89 46 38             	mov    %eax,0x38(%esi)
463968:	b0 01                	mov    $0x1,%al
46396a:	5e                   	pop    %esi
46396b:	5b                   	pop    %ebx
46396c:	c3                   	ret
46396d:	8b ff                	mov    %edi,%edi
46396f:	56                   	push   %esi
463970:	8b f1                	mov    %ecx,%esi
463972:	57                   	push   %edi
463973:	8d 7e 34             	lea    0x34(%esi),%edi
463976:	57                   	push   %edi
463977:	e8 75 32 ff ff       	call   0x456bf1
46397c:	84 c0                	test   %al,%al
46397e:	74 68                	je     0x4639e8
463980:	8b ce                	mov    %esi,%ecx
463982:	e8 3c 85 ff ff       	call   0x45bec3
463987:	84 c0                	test   %al,%al
463989:	74 5b                	je     0x4639e6
46398b:	53                   	push   %ebx
46398c:	8b 5e 28             	mov    0x28(%esi),%ebx
46398f:	83 fb ff             	cmp    $0xffffffff,%ebx
463992:	75 05                	jne    0x463999
463994:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
463999:	ff 76 2c             	push   0x2c(%esi)
46399c:	0f b7 46 32          	movzwl 0x32(%esi),%eax
4639a0:	50                   	push   %eax
4639a1:	ff 76 04             	push   0x4(%esi)
4639a4:	ff 36                	push   (%esi)
4639a6:	e8 b4 45 ff ff       	call   0x457f5f
4639ab:	83 c4 10             	add    $0x10,%esp
4639ae:	84 c0                	test   %al,%al
4639b0:	74 1b                	je     0x4639cd
4639b2:	83 3f 00             	cmpl   $0x0,(%edi)
4639b5:	75 06                	jne    0x4639bd
4639b7:	c7 07 14 cb 49 00    	movl   $0x49cb14,(%edi)
4639bd:	53                   	push   %ebx
4639be:	ff 37                	push   (%edi)
4639c0:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
4639c4:	e8 e4 5c 00 00       	call   0x4696ad
4639c9:	59                   	pop    %ecx
4639ca:	59                   	pop    %ecx
4639cb:	eb 15                	jmp    0x4639e2
4639cd:	83 3f 00             	cmpl   $0x0,(%edi)
4639d0:	75 06                	jne    0x4639d8
4639d2:	c7 07 24 cb 49 00    	movl   $0x49cb24,(%edi)
4639d8:	6a 00                	push   $0x0
4639da:	53                   	push   %ebx
4639db:	8b ce                	mov    %esi,%ecx
4639dd:	e8 01 02 00 00       	call   0x463be3
4639e2:	89 46 38             	mov    %eax,0x38(%esi)
4639e5:	5b                   	pop    %ebx
4639e6:	b0 01                	mov    $0x1,%al
4639e8:	5f                   	pop    %edi
4639e9:	5e                   	pop    %esi
4639ea:	c3                   	ret
4639eb:	8b ff                	mov    %edi,%edi
4639ed:	53                   	push   %ebx
4639ee:	56                   	push   %esi
4639ef:	8b f1                	mov    %ecx,%esi
4639f1:	57                   	push   %edi
4639f2:	83 46 14 04          	addl   $0x4,0x14(%esi)
4639f6:	8b 46 14             	mov    0x14(%esi),%eax
4639f9:	8b 7e 28             	mov    0x28(%esi),%edi
4639fc:	8b 58 fc             	mov    -0x4(%eax),%ebx
4639ff:	89 5e 34             	mov    %ebx,0x34(%esi)
463a02:	83 ff ff             	cmp    $0xffffffff,%edi
463a05:	75 05                	jne    0x463a0c
463a07:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
463a0c:	ff 76 2c             	push   0x2c(%esi)
463a0f:	0f b7 46 32          	movzwl 0x32(%esi),%eax
463a13:	50                   	push   %eax
463a14:	ff 76 04             	push   0x4(%esi)
463a17:	ff 36                	push   (%esi)
463a19:	e8 41 45 ff ff       	call   0x457f5f
463a1e:	83 c4 10             	add    $0x10,%esp
463a21:	84 c0                	test   %al,%al
463a23:	74 1c                	je     0x463a41
463a25:	85 db                	test   %ebx,%ebx
463a27:	75 07                	jne    0x463a30
463a29:	c7 46 34 14 cb 49 00 	movl   $0x49cb14,0x34(%esi)
463a30:	57                   	push   %edi
463a31:	ff 76 34             	push   0x34(%esi)
463a34:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
463a38:	e8 70 5c 00 00       	call   0x4696ad
463a3d:	59                   	pop    %ecx
463a3e:	59                   	pop    %ecx
463a3f:	eb 15                	jmp    0x463a56
463a41:	85 db                	test   %ebx,%ebx
463a43:	75 07                	jne    0x463a4c
463a45:	c7 46 34 24 cb 49 00 	movl   $0x49cb24,0x34(%esi)
463a4c:	6a 00                	push   $0x0
463a4e:	57                   	push   %edi
463a4f:	8b ce                	mov    %esi,%ecx
463a51:	e8 cd 01 00 00       	call   0x463c23
463a56:	5f                   	pop    %edi
463a57:	89 46 38             	mov    %eax,0x38(%esi)
463a5a:	b0 01                	mov    $0x1,%al
463a5c:	5e                   	pop    %esi
463a5d:	5b                   	pop    %ebx
463a5e:	c3                   	ret
463a5f:	8b ff                	mov    %edi,%edi
463a61:	55                   	push   %ebp
463a62:	8b ec                	mov    %esp,%ebp
463a64:	ff 75 08             	push   0x8(%ebp)
463a67:	ff 71 34             	push   0x34(%ecx)
463a6a:	e8 e0 59 00 00       	call   0x46944f
463a6f:	59                   	pop    %ecx
463a70:	59                   	pop    %ecx
463a71:	5d                   	pop    %ebp
463a72:	c2 08 00             	ret    $0x8
463a75:	8b ff                	mov    %edi,%edi
463a77:	55                   	push   %ebp
463a78:	8b ec                	mov    %esp,%ebp
463a7a:	ff 75 08             	push   0x8(%ebp)
463a7d:	ff 71 34             	push   0x34(%ecx)
463a80:	e8 ca 59 00 00       	call   0x46944f
463a85:	59                   	pop    %ecx
463a86:	59                   	pop    %ecx
463a87:	5d                   	pop    %ebp
463a88:	c2 08 00             	ret    $0x8
463a8b:	8b ff                	mov    %edi,%edi
463a8d:	55                   	push   %ebp
463a8e:	8b ec                	mov    %esp,%ebp
463a90:	ff 75 08             	push   0x8(%ebp)
463a93:	ff 71 34             	push   0x34(%ecx)
463a96:	e8 b4 59 00 00       	call   0x46944f
463a9b:	59                   	pop    %ecx
463a9c:	59                   	pop    %ecx
463a9d:	5d                   	pop    %ebp
463a9e:	c2 08 00             	ret    $0x8
463aa1:	8b ff                	mov    %edi,%edi
463aa3:	55                   	push   %ebp
463aa4:	8b ec                	mov    %esp,%ebp
463aa6:	ff 75 08             	push   0x8(%ebp)
463aa9:	ff 71 34             	push   0x34(%ecx)
463aac:	e8 9e 59 00 00       	call   0x46944f
463ab1:	59                   	pop    %ecx
463ab2:	59                   	pop    %ecx
463ab3:	5d                   	pop    %ebp
463ab4:	c2 08 00             	ret    $0x8
463ab7:	8b ff                	mov    %edi,%edi
463ab9:	55                   	push   %ebp
463aba:	8b ec                	mov    %esp,%ebp
463abc:	ff 75 08             	push   0x8(%ebp)
463abf:	ff 71 34             	push   0x34(%ecx)
463ac2:	e8 88 59 00 00       	call   0x46944f
463ac7:	59                   	pop    %ecx
463ac8:	59                   	pop    %ecx
463ac9:	5d                   	pop    %ebp
463aca:	c2 08 00             	ret    $0x8
463acd:	8b ff                	mov    %edi,%edi
463acf:	55                   	push   %ebp
463ad0:	8b ec                	mov    %esp,%ebp
463ad2:	ff 75 08             	push   0x8(%ebp)
463ad5:	ff 71 34             	push   0x34(%ecx)
463ad8:	e8 72 59 00 00       	call   0x46944f
463add:	59                   	pop    %ecx
463ade:	59                   	pop    %ecx
463adf:	5d                   	pop    %ebp
463ae0:	c2 08 00             	ret    $0x8
463ae3:	8b ff                	mov    %edi,%edi
463ae5:	55                   	push   %ebp
463ae6:	8b ec                	mov    %esp,%ebp
463ae8:	56                   	push   %esi
463ae9:	57                   	push   %edi
463aea:	8b f9                	mov    %ecx,%edi
463aec:	33 f6                	xor    %esi,%esi
463aee:	8b 57 34             	mov    0x34(%edi),%edx
463af1:	39 75 08             	cmp    %esi,0x8(%ebp)
463af4:	7e 25                	jle    0x463b1b
463af6:	53                   	push   %ebx
463af7:	8a 02                	mov    (%edx),%al
463af9:	84 c0                	test   %al,%al
463afb:	74 1d                	je     0x463b1a
463afd:	0f b6 c8             	movzbl %al,%ecx
463b00:	bb 00 80 00 00       	mov    $0x8000,%ebx
463b05:	8b 47 08             	mov    0x8(%edi),%eax
463b08:	8b 00                	mov    (%eax),%eax
463b0a:	8b 00                	mov    (%eax),%eax
463b0c:	66 85 1c 48          	test   %bx,(%eax,%ecx,2)
463b10:	74 01                	je     0x463b13
463b12:	42                   	inc    %edx
463b13:	42                   	inc    %edx
463b14:	46                   	inc    %esi
463b15:	3b 75 08             	cmp    0x8(%ebp),%esi
463b18:	7c dd                	jl     0x463af7
463b1a:	5b                   	pop    %ebx
463b1b:	5f                   	pop    %edi
463b1c:	8b c6                	mov    %esi,%eax
463b1e:	5e                   	pop    %esi
463b1f:	5d                   	pop    %ebp
463b20:	c2 08 00             	ret    $0x8
463b23:	8b ff                	mov    %edi,%edi
463b25:	55                   	push   %ebp
463b26:	8b ec                	mov    %esp,%ebp
463b28:	56                   	push   %esi
463b29:	57                   	push   %edi
463b2a:	8b f9                	mov    %ecx,%edi
463b2c:	33 f6                	xor    %esi,%esi
463b2e:	8b 57 34             	mov    0x34(%edi),%edx
463b31:	39 75 08             	cmp    %esi,0x8(%ebp)
463b34:	7e 25                	jle    0x463b5b
463b36:	53                   	push   %ebx
463b37:	8a 02                	mov    (%edx),%al
463b39:	84 c0                	test   %al,%al
463b3b:	74 1d                	je     0x463b5a
463b3d:	0f b6 c8             	movzbl %al,%ecx
463b40:	bb 00 80 00 00       	mov    $0x8000,%ebx
463b45:	8b 47 08             	mov    0x8(%edi),%eax
463b48:	8b 00                	mov    (%eax),%eax
463b4a:	8b 00                	mov    (%eax),%eax
463b4c:	66 85 1c 48          	test   %bx,(%eax,%ecx,2)
463b50:	74 01                	je     0x463b53
463b52:	42                   	inc    %edx
463b53:	42                   	inc    %edx
463b54:	46                   	inc    %esi
463b55:	3b 75 08             	cmp    0x8(%ebp),%esi
463b58:	7c dd                	jl     0x463b37
463b5a:	5b                   	pop    %ebx
463b5b:	5f                   	pop    %edi
463b5c:	8b c6                	mov    %esi,%eax
463b5e:	5e                   	pop    %esi
463b5f:	5d                   	pop    %ebp
463b60:	c2 08 00             	ret    $0x8
463b63:	8b ff                	mov    %edi,%edi
463b65:	55                   	push   %ebp
463b66:	8b ec                	mov    %esp,%ebp
463b68:	56                   	push   %esi
463b69:	57                   	push   %edi
463b6a:	8b f9                	mov    %ecx,%edi
463b6c:	33 f6                	xor    %esi,%esi
463b6e:	8b 57 34             	mov    0x34(%edi),%edx
463b71:	39 75 08             	cmp    %esi,0x8(%ebp)
463b74:	7e 25                	jle    0x463b9b
463b76:	53                   	push   %ebx
463b77:	8a 02                	mov    (%edx),%al
463b79:	84 c0                	test   %al,%al
463b7b:	74 1d                	je     0x463b9a
463b7d:	0f b6 c8             	movzbl %al,%ecx
463b80:	bb 00 80 00 00       	mov    $0x8000,%ebx
463b85:	8b 47 08             	mov    0x8(%edi),%eax
463b88:	8b 00                	mov    (%eax),%eax
463b8a:	8b 00                	mov    (%eax),%eax
463b8c:	66 85 1c 48          	test   %bx,(%eax,%ecx,2)
463b90:	74 01                	je     0x463b93
463b92:	42                   	inc    %edx
463b93:	42                   	inc    %edx
463b94:	46                   	inc    %esi
463b95:	3b 75 08             	cmp    0x8(%ebp),%esi
463b98:	7c dd                	jl     0x463b77
463b9a:	5b                   	pop    %ebx
463b9b:	5f                   	pop    %edi
463b9c:	8b c6                	mov    %esi,%eax
463b9e:	5e                   	pop    %esi
463b9f:	5d                   	pop    %ebp
463ba0:	c2 08 00             	ret    $0x8
463ba3:	8b ff                	mov    %edi,%edi
463ba5:	55                   	push   %ebp
463ba6:	8b ec                	mov    %esp,%ebp
463ba8:	56                   	push   %esi
463ba9:	57                   	push   %edi
463baa:	8b f9                	mov    %ecx,%edi
463bac:	33 f6                	xor    %esi,%esi
463bae:	8b 57 34             	mov    0x34(%edi),%edx
463bb1:	39 75 08             	cmp    %esi,0x8(%ebp)
463bb4:	7e 25                	jle    0x463bdb
463bb6:	53                   	push   %ebx
463bb7:	8a 02                	mov    (%edx),%al
463bb9:	84 c0                	test   %al,%al
463bbb:	74 1d                	je     0x463bda
463bbd:	0f b6 c8             	movzbl %al,%ecx
463bc0:	bb 00 80 00 00       	mov    $0x8000,%ebx
463bc5:	8b 47 08             	mov    0x8(%edi),%eax
463bc8:	8b 00                	mov    (%eax),%eax
463bca:	8b 00                	mov    (%eax),%eax
463bcc:	66 85 1c 48          	test   %bx,(%eax,%ecx,2)
463bd0:	74 01                	je     0x463bd3
463bd2:	42                   	inc    %edx
463bd3:	42                   	inc    %edx
463bd4:	46                   	inc    %esi
463bd5:	3b 75 08             	cmp    0x8(%ebp),%esi
463bd8:	7c dd                	jl     0x463bb7
463bda:	5b                   	pop    %ebx
463bdb:	5f                   	pop    %edi
463bdc:	8b c6                	mov    %esi,%eax
463bde:	5e                   	pop    %esi
463bdf:	5d                   	pop    %ebp
463be0:	c2 08 00             	ret    $0x8
463be3:	8b ff                	mov    %edi,%edi
463be5:	55                   	push   %ebp
463be6:	8b ec                	mov    %esp,%ebp
463be8:	56                   	push   %esi
463be9:	57                   	push   %edi
463bea:	8b f9                	mov    %ecx,%edi
463bec:	33 f6                	xor    %esi,%esi
463bee:	8b 57 34             	mov    0x34(%edi),%edx
463bf1:	39 75 08             	cmp    %esi,0x8(%ebp)
463bf4:	7e 25                	jle    0x463c1b
463bf6:	53                   	push   %ebx
463bf7:	8a 02                	mov    (%edx),%al
463bf9:	84 c0                	test   %al,%al
463bfb:	74 1d                	je     0x463c1a
463bfd:	0f b6 c8             	movzbl %al,%ecx
463c00:	bb 00 80 00 00       	mov    $0x8000,%ebx
463c05:	8b 47 08             	mov    0x8(%edi),%eax
463c08:	8b 00                	mov    (%eax),%eax