464957:	ff 30                	push   (%eax)
464959:	e8 32 d2 fa ff       	call   0x411b90
46495e:	83 c4 10             	add    $0x10,%esp
464961:	8b c8                	mov    %eax,%ecx
464963:	e8 1e 89 fa ff       	call   0x40d286
464968:	8b 4d f4             	mov    -0xc(%ebp),%ecx
46496b:	88 04 31             	mov    %al,(%ecx,%esi,1)
46496e:	46                   	inc    %esi
46496f:	3b f7                	cmp    %edi,%esi
464971:	72 dc                	jb     0x46494f
464973:	8b 45 fc             	mov    -0x4(%ebp),%eax
464976:	8b 4d f8             	mov    -0x8(%ebp),%ecx
464979:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)
46497d:	c6 04 01 00          	movb   $0x0,(%ecx,%eax,1)
464981:	8b c8                	mov    %eax,%ecx
464983:	75 0a                	jne    0x46498f
464985:	83 ca ff             	or     $0xffffffff,%edx
464988:	e8 c9 32 fe ff       	call   0x447c56
46498d:	eb 05                	jmp    0x464994
46498f:	e8 02 37 fe ff       	call   0x448096
464994:	8b 4d 0c             	mov    0xc(%ebp),%ecx
464997:	8b f0                	mov    %eax,%esi
464999:	56                   	push   %esi
46499a:	e8 1a 84 fa ff       	call   0x40cdb9
46499f:	ff 75 fc             	push   -0x4(%ebp)
4649a2:	e8 b7 ab fb ff       	call   0x41f55e
4649a7:	56                   	push   %esi
4649a8:	e8 b1 ab fb ff       	call   0x41f55e
4649ad:	59                   	pop    %ecx
4649ae:	59                   	pop    %ecx
4649af:	eb 10                	jmp    0x4649c1
4649b1:	8b 06                	mov    (%esi),%eax
4649b3:	6a 00                	push   $0x0
4649b5:	8b 48 04             	mov    0x4(%eax),%ecx
4649b8:	6a 01                	push   $0x1
4649ba:	03 ce                	add    %esi,%ecx
4649bc:	e8 8b 85 fe ff       	call   0x44cf4c
4649c1:	5f                   	pop    %edi
4649c2:	5e                   	pop    %esi
4649c3:	33 c0                	xor    %eax,%eax
4649c5:	5b                   	pop    %ebx
4649c6:	c9                   	leave
4649c7:	c2 08 00             	ret    $0x8
4649ca:	55                   	push   %ebp
4649cb:	8b ec                	mov    %esp,%ebp
4649cd:	83 ec 18             	sub    $0x18,%esp
4649d0:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
4649d4:	83 c8 ff             	or     $0xffffffff,%eax
4649d7:	89 45 f8             	mov    %eax,-0x8(%ebp)
4649da:	89 45 fc             	mov    %eax,-0x4(%ebp)
4649dd:	8b 45 08             	mov    0x8(%ebp),%eax
4649e0:	53                   	push   %ebx
4649e1:	8b 40 04             	mov    0x4(%eax),%eax
4649e4:	56                   	push   %esi
4649e5:	8b 30                	mov    (%eax),%esi
4649e7:	57                   	push   %edi
4649e8:	8b f9                	mov    %ecx,%edi
4649ea:	8b ce                	mov    %esi,%ecx
4649ec:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
4649f3:	33 db                	xor    %ebx,%ebx
4649f5:	e8 72 49 fa ff       	call   0x40936c
4649fa:	8b 46 08             	mov    0x8(%esi),%eax
4649fd:	89 45 f0             	mov    %eax,-0x10(%ebp)
464a00:	8b 45 08             	mov    0x8(%ebp),%eax
464a03:	8b 40 04             	mov    0x4(%eax),%eax
464a06:	8b 70 04             	mov    0x4(%eax),%esi
464a09:	8b ce                	mov    %esi,%ecx
464a0b:	e8 5c 49 fa ff       	call   0x40936c
464a10:	8b 46 08             	mov    0x8(%esi),%eax
464a13:	8b 75 08             	mov    0x8(%ebp),%esi
464a16:	89 45 ec             	mov    %eax,-0x14(%ebp)
464a19:	8b 46 08             	mov    0x8(%esi),%eax
464a1c:	48                   	dec    %eax
464a1d:	48                   	dec    %eax
464a1e:	0f 84 83 00 00 00    	je     0x464aa7
464a24:	48                   	dec    %eax
464a25:	74 68                	je     0x464a8f
464a27:	48                   	dec    %eax
464a28:	74 53                	je     0x464a7d
464a2a:	48                   	dec    %eax
464a2b:	74 3f                	je     0x464a6c
464a2d:	48                   	dec    %eax
464a2e:	0f 85 93 00 00 00    	jne    0x464ac7
464a34:	8b 46 04             	mov    0x4(%esi),%eax
464a37:	8b 48 14             	mov    0x14(%eax),%ecx
464a3a:	e8 47 88 fa ff       	call   0x40d286
464a3f:	89 45 fc             	mov    %eax,-0x4(%ebp)
464a42:	85 c0                	test   %eax,%eax
464a44:	7f 26                	jg     0x464a6c
464a46:	8b 75 0c             	mov    0xc(%ebp),%esi
464a49:	8b ce                	mov    %esi,%ecx
464a4b:	e8 d0 e1 fa ff       	call   0x412c20
464a50:	21 1e                	and    %ebx,(%esi)
464a52:	33 c0                	xor    %eax,%eax
464a54:	40                   	inc    %eax
464a55:	6a 00                	push   $0x0
464a57:	89 46 0c             	mov    %eax,0xc(%esi)
464a5a:	50                   	push   %eax
464a5b:	8b 07                	mov    (%edi),%eax
464a5d:	8b 48 04             	mov    0x4(%eax),%ecx
464a60:	03 cf                	add    %edi,%ecx
464a62:	e8 e5 84 fe ff       	call   0x44cf4c
464a67:	e9 8b 00 00 00       	jmp    0x464af7
464a6c:	8b 46 04             	mov    0x4(%esi),%eax
464a6f:	8b 48 10             	mov    0x10(%eax),%ecx
464a72:	e8 0f 88 fa ff       	call   0x40d286
464a77:	48                   	dec    %eax
464a78:	89 45 f8             	mov    %eax,-0x8(%ebp)
464a7b:	78 c9                	js     0x464a46
464a7d:	8b 46 04             	mov    0x4(%esi),%eax
464a80:	8b 48 0c             	mov    0xc(%eax),%ecx
464a83:	e8 fe 87 fa ff       	call   0x40d286
464a88:	89 45 f4             	mov    %eax,-0xc(%ebp)
464a8b:	85 c0                	test   %eax,%eax
464a8d:	74 b7                	je     0x464a46
464a8f:	8b 46 04             	mov    0x4(%esi),%eax
464a92:	8b 48 08             	mov    0x8(%eax),%ecx
464a95:	e8 ec 87 fa ff       	call   0x40d286
464a9a:	8b d8                	mov    %eax,%ebx
464a9c:	85 db                	test   %ebx,%ebx
464a9e:	78 05                	js     0x464aa5
464aa0:	83 fb 03             	cmp    $0x3,%ebx
464aa3:	7e 02                	jle    0x464aa7
464aa5:	33 db                	xor    %ebx,%ebx
464aa7:	ff 75 fc             	push   -0x4(%ebp)
464aaa:	8b 45 ec             	mov    -0x14(%ebp),%eax
464aad:	ff 75 f8             	push   -0x8(%ebp)
464ab0:	8b 75 f0             	mov    -0x10(%ebp),%esi
464ab3:	ff 70 04             	push   0x4(%eax)
464ab6:	8b ce                	mov    %esi,%ecx
464ab8:	ff 75 f4             	push   -0xc(%ebp)
464abb:	53                   	push   %ebx
464abc:	ff 30                	push   (%eax)
464abe:	e8 4e d4 fd ff       	call   0x441f11
464ac3:	8b d8                	mov    %eax,%ebx
464ac5:	eb 06                	jmp    0x464acd
464ac7:	8b 5d e8             	mov    -0x18(%ebp),%ebx
464aca:	8b 75 f0             	mov    -0x10(%ebp),%esi
464acd:	3b 5e 04             	cmp    0x4(%esi),%ebx
464ad0:	8b 75 0c             	mov    0xc(%ebp),%esi
464ad3:	8b ce                	mov    %esi,%ecx
464ad5:	75 10                	jne    0x464ae7
464ad7:	e8 44 e1 fa ff       	call   0x412c20
464adc:	33 c0                	xor    %eax,%eax
464ade:	40                   	inc    %eax
464adf:	83 26 00             	andl   $0x0,(%esi)
464ae2:	89 46 0c             	mov    %eax,0xc(%esi)
464ae5:	eb 10                	jmp    0x464af7
464ae7:	e8 34 e1 fa ff       	call   0x412c20
464aec:	33 c0                	xor    %eax,%eax
464aee:	40                   	inc    %eax
464aef:	89 46 0c             	mov    %eax,0xc(%esi)
464af2:	8d 43 01             	lea    0x1(%ebx),%eax
464af5:	89 06                	mov    %eax,(%esi)
464af7:	5f                   	pop    %edi
464af8:	5e                   	pop    %esi
464af9:	33 c0                	xor    %eax,%eax
464afb:	5b                   	pop    %ebx
464afc:	c9                   	leave
464afd:	c2 08 00             	ret    $0x8
464b00:	55                   	push   %ebp
464b01:	8b ec                	mov    %esp,%ebp
464b03:	8b 45 08             	mov    0x8(%ebp),%eax
464b06:	53                   	push   %ebx
464b07:	8b 40 04             	mov    0x4(%eax),%eax
464b0a:	56                   	push   %esi
464b0b:	8b 30                	mov    (%eax),%esi
464b0d:	57                   	push   %edi
464b0e:	8b ce                	mov    %esi,%ecx
464b10:	e8 57 48 fa ff       	call   0x40936c
464b15:	8b 46 08             	mov    0x8(%esi),%eax
464b18:	8b 75 0c             	mov    0xc(%ebp),%esi
464b1b:	8b 38                	mov    (%eax),%edi
464b1d:	8b ce                	mov    %esi,%ecx
464b1f:	e8 fc e0 fa ff       	call   0x412c20
464b24:	83 26 00             	andl   $0x0,(%esi)
464b27:	33 db                	xor    %ebx,%ebx
464b29:	43                   	inc    %ebx
464b2a:	89 5e 0c             	mov    %ebx,0xc(%esi)
464b2d:	0f b7 07             	movzwl (%edi),%eax
464b30:	66 85 c0             	test   %ax,%ax
464b33:	74 22                	je     0x464b57
464b35:	50                   	push   %eax
464b36:	e8 72 cb fb ff       	call   0x4216ad
464b3b:	59                   	pop    %ecx
464b3c:	85 c0                	test   %eax,%eax
464b3e:	74 17                	je     0x464b57
464b40:	83 c7 02             	add    $0x2,%edi
464b43:	0f b7 07             	movzwl (%edi),%eax
464b46:	66 85 c0             	test   %ax,%ax
464b49:	75 ea                	jne    0x464b35
464b4b:	8b ce                	mov    %esi,%ecx
464b4d:	e8 ce e0 fa ff       	call   0x412c20
464b52:	89 5e 0c             	mov    %ebx,0xc(%esi)
464b55:	89 1e                	mov    %ebx,(%esi)
464b57:	5f                   	pop    %edi
464b58:	5e                   	pop    %esi
464b59:	33 c0                	xor    %eax,%eax
464b5b:	5b                   	pop    %ebx
464b5c:	5d                   	pop    %ebp
464b5d:	c2 08 00             	ret    $0x8
464b60:	55                   	push   %ebp
464b61:	8b ec                	mov    %esp,%ebp
464b63:	8b 45 08             	mov    0x8(%ebp),%eax
464b66:	53                   	push   %ebx
464b67:	8b 40 04             	mov    0x4(%eax),%eax
464b6a:	56                   	push   %esi
464b6b:	8b 30                	mov    (%eax),%esi
464b6d:	57                   	push   %edi
464b6e:	8b ce                	mov    %esi,%ecx
464b70:	e8 f7 47 fa ff       	call   0x40936c
464b75:	8b 46 08             	mov    0x8(%esi),%eax
464b78:	8b 75 0c             	mov    0xc(%ebp),%esi
464b7b:	8b 38                	mov    (%eax),%edi
464b7d:	8b ce                	mov    %esi,%ecx
464b7f:	e8 9c e0 fa ff       	call   0x412c20
464b84:	83 26 00             	andl   $0x0,(%esi)
464b87:	33 db                	xor    %ebx,%ebx
464b89:	43                   	inc    %ebx
464b8a:	89 5e 0c             	mov    %ebx,0xc(%esi)
464b8d:	0f b7 07             	movzwl (%edi),%eax
464b90:	66 85 c0             	test   %ax,%ax
464b93:	74 22                	je     0x464bb7
464b95:	50                   	push   %eax
464b96:	ff 15 cc d4 48 00    	call   *0x48d4cc
464b9c:	85 c0                	test   %eax,%eax
464b9e:	74 17                	je     0x464bb7
464ba0:	83 c7 02             	add    $0x2,%edi
464ba3:	0f b7 07             	movzwl (%edi),%eax
464ba6:	66 85 c0             	test   %ax,%ax
464ba9:	75 ea                	jne    0x464b95
464bab:	8b ce                	mov    %esi,%ecx
464bad:	e8 6e e0 fa ff       	call   0x412c20
464bb2:	89 5e 0c             	mov    %ebx,0xc(%esi)
464bb5:	89 1e                	mov    %ebx,(%esi)
464bb7:	5f                   	pop    %edi
464bb8:	5e                   	pop    %esi
464bb9:	33 c0                	xor    %eax,%eax
464bbb:	5b                   	pop    %ebx
464bbc:	5d                   	pop    %ebp
464bbd:	c2 08 00             	ret    $0x8
464bc0:	55                   	push   %ebp
464bc1:	8b ec                	mov    %esp,%ebp
464bc3:	8b 45 08             	mov    0x8(%ebp),%eax
464bc6:	53                   	push   %ebx
464bc7:	8b 40 04             	mov    0x4(%eax),%eax
464bca:	56                   	push   %esi
464bcb:	8b 30                	mov    (%eax),%esi
464bcd:	57                   	push   %edi
464bce:	8b ce                	mov    %esi,%ecx
464bd0:	e8 97 47 fa ff       	call   0x40936c
464bd5:	8b 46 08             	mov    0x8(%esi),%eax
464bd8:	8b 75 0c             	mov    0xc(%ebp),%esi
464bdb:	8b 38                	mov    (%eax),%edi
464bdd:	8b ce                	mov    %esi,%ecx
464bdf:	e8 3c e0 fa ff       	call   0x412c20
464be4:	83 26 00             	andl   $0x0,(%esi)
464be7:	33 db                	xor    %ebx,%ebx
464be9:	43                   	inc    %ebx
464bea:	89 5e 0c             	mov    %ebx,0xc(%esi)
464bed:	0f b7 07             	movzwl (%edi),%eax
464bf0:	66 85 c0             	test   %ax,%ax
464bf3:	74 22                	je     0x464c17
464bf5:	50                   	push   %eax
464bf6:	ff 15 c8 d4 48 00    	call   *0x48d4c8
464bfc:	85 c0                	test   %eax,%eax
464bfe:	74 17                	je     0x464c17
464c00:	83 c7 02             	add    $0x2,%edi
464c03:	0f b7 07             	movzwl (%edi),%eax
464c06:	66 85 c0             	test   %ax,%ax
464c09:	75 ea                	jne    0x464bf5
464c0b:	8b ce                	mov    %esi,%ecx
464c0d:	e8 0e e0 fa ff       	call   0x412c20
464c12:	89 5e 0c             	mov    %ebx,0xc(%esi)
464c15:	89 1e                	mov    %ebx,(%esi)
464c17:	5f                   	pop    %edi
464c18:	5e                   	pop    %esi
464c19:	33 c0                	xor    %eax,%eax
464c1b:	5b                   	pop    %ebx
464c1c:	5d                   	pop    %ebp
464c1d:	c2 08 00             	ret    $0x8
464c20:	55                   	push   %ebp
464c21:	8b ec                	mov    %esp,%ebp
464c23:	8b 45 08             	mov    0x8(%ebp),%eax
464c26:	53                   	push   %ebx
464c27:	8b 40 04             	mov    0x4(%eax),%eax
464c2a:	56                   	push   %esi
464c2b:	8b 30                	mov    (%eax),%esi
464c2d:	57                   	push   %edi
464c2e:	8b ce                	mov    %esi,%ecx
464c30:	e8 37 47 fa ff       	call   0x40936c
464c35:	8b 46 08             	mov    0x8(%esi),%eax
464c38:	8b 75 0c             	mov    0xc(%ebp),%esi
464c3b:	8b 38                	mov    (%eax),%edi
464c3d:	8b ce                	mov    %esi,%ecx
464c3f:	e8 dc df fa ff       	call   0x412c20
464c44:	83 26 00             	andl   $0x0,(%esi)
464c47:	33 db                	xor    %ebx,%ebx
464c49:	43                   	inc    %ebx
464c4a:	89 5e 0c             	mov    %ebx,0xc(%esi)
464c4d:	0f b7 07             	movzwl (%edi),%eax
464c50:	66 85 c0             	test   %ax,%ax
464c53:	74 22                	je     0x464c77
464c55:	50                   	push   %eax
464c56:	e8 64 ca fb ff       	call   0x4216bf
464c5b:	59                   	pop    %ecx
464c5c:	85 c0                	test   %eax,%eax
464c5e:	74 17                	je     0x464c77
464c60:	83 c7 02             	add    $0x2,%edi
464c63:	0f b7 07             	movzwl (%edi),%eax
464c66:	66 85 c0             	test   %ax,%ax
464c69:	75 ea                	jne    0x464c55
464c6b:	8b ce                	mov    %esi,%ecx
464c6d:	e8 ae df fa ff       	call   0x412c20
464c72:	89 5e 0c             	mov    %ebx,0xc(%esi)
464c75:	89 1e                	mov    %ebx,(%esi)
464c77:	5f                   	pop    %edi
464c78:	5e                   	pop    %esi
464c79:	33 c0                	xor    %eax,%eax
464c7b:	5b                   	pop    %ebx
464c7c:	5d                   	pop    %ebp
464c7d:	c2 08 00             	ret    $0x8
464c80:	55                   	push   %ebp
464c81:	8b ec                	mov    %esp,%ebp
464c83:	8b 45 08             	mov    0x8(%ebp),%eax
464c86:	56                   	push   %esi
464c87:	8b 40 04             	mov    0x4(%eax),%eax
464c8a:	57                   	push   %edi
464c8b:	ff 30                	push   (%eax)
464c8d:	e8 f5 0b 00 00       	call   0x465887
464c92:	8b 75 0c             	mov    0xc(%ebp),%esi
464c95:	8b ce                	mov    %esi,%ecx
464c97:	0f b6 f8             	movzbl %al,%edi
464c9a:	e8 81 df fa ff       	call   0x412c20
464c9f:	89 3e                	mov    %edi,(%esi)
464ca1:	5f                   	pop    %edi
464ca2:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
464ca9:	33 c0                	xor    %eax,%eax
464cab:	5e                   	pop    %esi
464cac:	5d                   	pop    %ebp
464cad:	c2 08 00             	ret    $0x8
464cb0:	55                   	push   %ebp
464cb1:	8b ec                	mov    %esp,%ebp
464cb3:	8b 45 08             	mov    0x8(%ebp),%eax
464cb6:	56                   	push   %esi
464cb7:	8b 40 04             	mov    0x4(%eax),%eax
464cba:	57                   	push   %edi
464cbb:	ff 30                	push   (%eax)
464cbd:	e8 bf 0c 00 00       	call   0x465981
464cc2:	8b 75 0c             	mov    0xc(%ebp),%esi