465baa:	5d                   	pop    %ebp
465bab:	5b                   	pop    %ebx
465bac:	83 c4 0c             	add    $0xc,%esp
465baf:	c3                   	ret
465bb0:	2b cf                	sub    %edi,%ecx
465bb2:	79 30                	jns    0x465be4
465bb4:	8b c1                	mov    %ecx,%eax
465bb6:	f7 d8                	neg    %eax
465bb8:	3b f8                	cmp    %eax,%edi
465bba:	73 28                	jae    0x465be4
465bbc:	03 cf                	add    %edi,%ecx
465bbe:	8b c1                	mov    %ecx,%eax
465bc0:	f7 d0                	not    %eax
465bc2:	c1 e8 05             	shr    $0x5,%eax
465bc5:	8d 04 85 04 00 00 00 	lea    0x4(,%eax,4),%eax
465bcc:	2b d8                	sub    %eax,%ebx
465bce:	83 e1 1f             	and    $0x1f,%ecx
465bd1:	8b eb                	mov    %ebx,%ebp
465bd3:	8b c1                	mov    %ecx,%eax
465bd5:	89 2e                	mov    %ebp,(%esi)
465bd7:	89 46 04             	mov    %eax,0x4(%esi)
465bda:	8b c6                	mov    %esi,%eax
465bdc:	5f                   	pop    %edi
465bdd:	5e                   	pop    %esi
465bde:	5d                   	pop    %ebp
465bdf:	5b                   	pop    %ebx
465be0:	83 c4 0c             	add    $0xc,%esp
465be3:	c3                   	ret
465be4:	03 cf                	add    %edi,%ecx
465be6:	8b c1                	mov    %ecx,%eax
465be8:	c1 e8 05             	shr    $0x5,%eax
465beb:	83 e1 1f             	and    $0x1f,%ecx
465bee:	8d 1c 83             	lea    (%ebx,%eax,4),%ebx
465bf1:	8b c1                	mov    %ecx,%eax
465bf3:	8b eb                	mov    %ebx,%ebp
465bf5:	89 2e                	mov    %ebp,(%esi)
465bf7:	89 46 04             	mov    %eax,0x4(%esi)
465bfa:	8b c6                	mov    %esi,%eax
465bfc:	5f                   	pop    %edi
465bfd:	5e                   	pop    %esi
465bfe:	5d                   	pop    %ebp
465bff:	5b                   	pop    %ebx
465c00:	83 c4 0c             	add    $0xc,%esp
465c03:	c3                   	ret
465c04:	8b 0b                	mov    (%ebx),%ecx
465c06:	8b c1                	mov    %ecx,%eax
465c08:	80 7c 24 13 00       	cmpb   $0x0,0x13(%esp)
465c0d:	f7 d0                	not    %eax
465c0f:	0f 44 c8             	cmove  %eax,%ecx
465c12:	b8 20 00 00 00       	mov    $0x20,%eax
465c17:	23 ca                	and    %edx,%ecx
465c19:	83 3d fc 82 4c 00 05 	cmpl   $0x5,0x4c82fc
465c20:	7c 06                	jl     0x465c28
465c22:	f3 0f bc c9          	tzcnt  %ecx,%ecx
465c26:	eb 06                	jmp    0x465c2e
465c28:	0f bc c9             	bsf    %ecx,%ecx
465c2b:	0f 44 c8             	cmove  %eax,%ecx
465c2e:	3b c8                	cmp    %eax,%ecx
465c30:	74 62                	je     0x465c94
465c32:	2b cf                	sub    %edi,%ecx
465c34:	89 7e 04             	mov    %edi,0x4(%esi)
465c37:	89 1e                	mov    %ebx,(%esi)
465c39:	79 35                	jns    0x465c70
465c3b:	8b c1                	mov    %ecx,%eax
465c3d:	f7 d8                	neg    %eax
465c3f:	3b f8                	cmp    %eax,%edi
465c41:	73 2d                	jae    0x465c70
465c43:	8d 14 0f             	lea    (%edi,%ecx,1),%edx
465c46:	b8 fc ff ff ff       	mov    $0xfffffffc,%eax
465c4b:	8b ca                	mov    %edx,%ecx
465c4d:	89 56 04             	mov    %edx,0x4(%esi)
465c50:	f7 d1                	not    %ecx
465c52:	c1 e9 05             	shr    $0x5,%ecx
465c55:	c1 e1 02             	shl    $0x2,%ecx
465c58:	2b c1                	sub    %ecx,%eax
465c5a:	01 06                	add    %eax,(%esi)
465c5c:	b8 1f 00 00 00       	mov    $0x1f,%eax
465c61:	23 c2                	and    %edx,%eax
465c63:	89 46 04             	mov    %eax,0x4(%esi)
465c66:	8b c6                	mov    %esi,%eax
465c68:	5f                   	pop    %edi
465c69:	5e                   	pop    %esi
465c6a:	5d                   	pop    %ebp
465c6b:	5b                   	pop    %ebx
465c6c:	83 c4 0c             	add    $0xc,%esp
465c6f:	c3                   	ret
465c70:	8d 14 0f             	lea    (%edi,%ecx,1),%edx
465c73:	8b c2                	mov    %edx,%eax
465c75:	89 56 04             	mov    %edx,0x4(%esi)
465c78:	c1 e8 05             	shr    $0x5,%eax
465c7b:	c1 e0 02             	shl    $0x2,%eax
465c7e:	01 06                	add    %eax,(%esi)
465c80:	b8 1f 00 00 00       	mov    $0x1f,%eax
465c85:	23 c2                	and    %edx,%eax
465c87:	89 46 04             	mov    %eax,0x4(%esi)
465c8a:	8b c6                	mov    %esi,%eax
465c8c:	5f                   	pop    %edi
465c8d:	5e                   	pop    %esi
465c8e:	5d                   	pop    %ebp
465c8f:	5b                   	pop    %ebx
465c90:	83 c4 0c             	add    $0xc,%esp
465c93:	c3                   	ret
465c94:	8b e8                	mov    %eax,%ebp
465c96:	8d 53 04             	lea    0x4(%ebx),%edx
465c99:	2b ef                	sub    %edi,%ebp
465c9b:	3b 54 24 28          	cmp    0x28(%esp),%edx
465c9f:	74 39                	je     0x465cda
465ca1:	8b 0a                	mov    (%edx),%ecx
465ca3:	8b c1                	mov    %ecx,%eax
465ca5:	80 7c 24 13 00       	cmpb   $0x0,0x13(%esp)
465caa:	f7 d0                	not    %eax
465cac:	0f 44 c8             	cmove  %eax,%ecx
465caf:	83 3d fc 82 4c 00 05 	cmpl   $0x5,0x4c82fc
465cb6:	7c 06                	jl     0x465cbe
465cb8:	f3 0f bc c1          	tzcnt  %ecx,%eax
465cbc:	eb 0b                	jmp    0x465cc9
465cbe:	0f bc c1             	bsf    %ecx,%eax
465cc1:	b9 20 00 00 00       	mov    $0x20,%ecx
465cc6:	0f 44 c1             	cmove  %ecx,%eax
465cc9:	83 f8 20             	cmp    $0x20,%eax
465ccc:	75 4b                	jne    0x465d19
465cce:	83 c2 04             	add    $0x4,%edx
465cd1:	83 c5 20             	add    $0x20,%ebp
465cd4:	3b 54 24 28          	cmp    0x28(%esp),%edx
465cd8:	75 c7                	jne    0x465ca1
465cda:	8b 44 24 2c          	mov    0x2c(%esp),%eax
465cde:	85 c0                	test   %eax,%eax
465ce0:	0f 84 aa 00 00 00    	je     0x465d90
465ce6:	8b 12                	mov    (%edx),%edx
465ce8:	b9 20 00 00 00       	mov    $0x20,%ecx
465ced:	2b c8                	sub    %eax,%ecx
465cef:	83 c8 ff             	or     $0xffffffff,%eax
465cf2:	d3 e8                	shr    %cl,%eax
465cf4:	80 7c 24 13 00       	cmpb   $0x0,0x13(%esp)
465cf9:	89 44 24 14          	mov    %eax,0x14(%esp)
465cfd:	8b c2                	mov    %edx,%eax
465cff:	f7 d0                	not    %eax
465d01:	0f 44 d0             	cmove  %eax,%edx
465d04:	8b 44 24 14          	mov    0x14(%esp),%eax
465d08:	23 c2                	and    %edx,%eax
465d0a:	83 3d fc 82 4c 00 05 	cmpl   $0x5,0x4c82fc
465d11:	7c 10                	jl     0x465d23
465d13:	f3 0f bc c0          	tzcnt  %eax,%eax
465d17:	eb 15                	jmp    0x465d2e
465d19:	8d 0c 28             	lea    (%eax,%ebp,1),%ecx
465d1c:	85 c9                	test   %ecx,%ecx
465d1e:	e9 11 ff ff ff       	jmp    0x465c34
465d23:	0f bc c0             	bsf    %eax,%eax
465d26:	b9 20 00 00 00       	mov    $0x20,%ecx
465d2b:	0f 44 c1             	cmove  %ecx,%eax
465d2e:	83 f8 20             	cmp    $0x20,%eax
465d31:	74 5d                	je     0x465d90
465d33:	8d 0c 28             	lea    (%eax,%ebp,1),%ecx
465d36:	89 1e                	mov    %ebx,(%esi)
465d38:	89 7e 04             	mov    %edi,0x4(%esi)
465d3b:	85 c9                	test   %ecx,%ecx
465d3d:	79 31                	jns    0x465d70
465d3f:	8b c1                	mov    %ecx,%eax
465d41:	f7 d8                	neg    %eax
465d43:	3b f8                	cmp    %eax,%edi
465d45:	73 29                	jae    0x465d70
465d47:	8d 14 0f             	lea    (%edi,%ecx,1),%edx
465d4a:	b8 fc ff ff ff       	mov    $0xfffffffc,%eax
465d4f:	8b ca                	mov    %edx,%ecx
465d51:	89 56 04             	mov    %edx,0x4(%esi)
465d54:	f7 d1                	not    %ecx
465d56:	c1 e9 05             	shr    $0x5,%ecx
465d59:	c1 e1 02             	shl    $0x2,%ecx
465d5c:	2b c1                	sub    %ecx,%eax
465d5e:	01 06                	add    %eax,(%esi)
465d60:	83 e2 1f             	and    $0x1f,%edx
465d63:	89 56 04             	mov    %edx,0x4(%esi)
465d66:	8b c6                	mov    %esi,%eax
465d68:	5f                   	pop    %edi
465d69:	5e                   	pop    %esi
465d6a:	5d                   	pop    %ebp
465d6b:	5b                   	pop    %ebx
465d6c:	83 c4 0c             	add    $0xc,%esp
465d6f:	c3                   	ret
465d70:	8d 14 0f             	lea    (%edi,%ecx,1),%edx
465d73:	8b c2                	mov    %edx,%eax
465d75:	89 56 04             	mov    %edx,0x4(%esi)
465d78:	c1 e8 05             	shr    $0x5,%eax
465d7b:	c1 e0 02             	shl    $0x2,%eax
465d7e:	01 06                	add    %eax,(%esi)
465d80:	83 e2 1f             	and    $0x1f,%edx
465d83:	89 56 04             	mov    %edx,0x4(%esi)
465d86:	8b c6                	mov    %esi,%eax
465d88:	5f                   	pop    %edi
465d89:	5e                   	pop    %esi
465d8a:	5d                   	pop    %ebp
465d8b:	5b                   	pop    %ebx
465d8c:	83 c4 0c             	add    $0xc,%esp
465d8f:	c3                   	ret
465d90:	8b 44 24 28          	mov    0x28(%esp),%eax
465d94:	89 06                	mov    %eax,(%esi)
465d96:	8b 44 24 2c          	mov    0x2c(%esp),%eax
465d9a:	5f                   	pop    %edi
465d9b:	89 46 04             	mov    %eax,0x4(%esi)
465d9e:	8b c6                	mov    %esi,%eax
465da0:	5e                   	pop    %esi
465da1:	5d                   	pop    %ebp
465da2:	5b                   	pop    %ebx
465da3:	83 c4 0c             	add    $0xc,%esp
465da6:	c3                   	ret
465da7:	cc                   	int3
465da8:	cc                   	int3
465da9:	cc                   	int3
465daa:	cc                   	int3
465dab:	cc                   	int3
465dac:	cc                   	int3
465dad:	cc                   	int3
465dae:	cc                   	int3
465daf:	cc                   	int3
465db0:	83 ec 0c             	sub    $0xc,%esp
465db3:	55                   	push   %ebp
465db4:	8b 6c 24 14          	mov    0x14(%esp),%ebp
465db8:	57                   	push   %edi
465db9:	8b f9                	mov    %ecx,%edi
465dbb:	89 6c 24 0c          	mov    %ebp,0xc(%esp)
465dbf:	8b 17                	mov    (%edi),%edx
465dc1:	2b ea                	sub    %edx,%ebp
465dc3:	8b 47 04             	mov    0x4(%edi),%eax
465dc6:	2b c2                	sub    %edx,%eax
465dc8:	d1 fd                	sar    $1,%ebp
465dca:	d1 f8                	sar    $1,%eax
465dcc:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
465dd1:	0f 84 26 01 00 00    	je     0x465efd
465dd7:	8b 4f 08             	mov    0x8(%edi),%ecx
465dda:	2b ca                	sub    %edx,%ecx
465ddc:	d1 f9                	sar    $1,%ecx
465dde:	53                   	push   %ebx
465ddf:	56                   	push   %esi
465de0:	8d 70 01             	lea    0x1(%eax),%esi
465de3:	8b d1                	mov    %ecx,%edx
465de5:	d1 ea                	shr    $1,%edx
465de7:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
465dec:	2b c2                	sub    %edx,%eax
465dee:	89 74 24 18          	mov    %esi,0x18(%esp)
465df2:	3b c8                	cmp    %eax,%ecx
465df4:	0f 87 fe 00 00 00    	ja     0x465ef8
465dfa:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
465dfd:	8b de                	mov    %esi,%ebx
465dff:	3b c6                	cmp    %esi,%eax
465e01:	0f 43 d8             	cmovae %eax,%ebx
465e04:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
465e0a:	0f 87 e8 00 00 00    	ja     0x465ef8
465e10:	03 db                	add    %ebx,%ebx
465e12:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
465e18:	72 27                	jb     0x465e41
465e1a:	8d 43 23             	lea    0x23(%ebx),%eax
465e1d:	3b c3                	cmp    %ebx,%eax
465e1f:	0f 86 d3 00 00 00    	jbe    0x465ef8
465e25:	50                   	push   %eax
465e26:	e8 ad 3b 00 00       	call   0x4699d8
465e2b:	83 c4 04             	add    $0x4,%esp
465e2e:	85 c0                	test   %eax,%eax
465e30:	0f 84 cc 00 00 00    	je     0x465f02
465e36:	8d 70 23             	lea    0x23(%eax),%esi
465e39:	83 e6 e0             	and    $0xffffffe0,%esi
465e3c:	89 46 fc             	mov    %eax,-0x4(%esi)
465e3f:	eb 13                	jmp    0x465e54
465e41:	85 db                	test   %ebx,%ebx
465e43:	74 0d                	je     0x465e52
465e45:	53                   	push   %ebx
465e46:	e8 8d 3b 00 00       	call   0x4699d8
465e4b:	83 c4 04             	add    $0x4,%esp
465e4e:	8b f0                	mov    %eax,%esi
465e50:	eb 02                	jmp    0x465e54
465e52:	33 f6                	xor    %esi,%esi
465e54:	8b 44 24 24          	mov    0x24(%esp),%eax
465e58:	8d 0c 6e             	lea    (%esi,%ebp,2),%ecx
465e5b:	8b 6c 24 14          	mov    0x14(%esp),%ebp
465e5f:	89 4c 24 10          	mov    %ecx,0x10(%esp)
465e63:	66 8b 00             	mov    (%eax),%ax
465e66:	66 89 01             	mov    %ax,(%ecx)
465e69:	8b 47 04             	mov    0x4(%edi),%eax
465e6c:	8b 0f                	mov    (%edi),%ecx
465e6e:	3b e8                	cmp    %eax,%ebp
465e70:	75 13                	jne    0x465e85
465e72:	2b c1                	sub    %ecx,%eax
465e74:	50                   	push   %eax
465e75:	51                   	push   %ecx
465e76:	56                   	push   %esi
465e77:	e8 a4 57 00 00       	call   0x46b620
465e7c:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
465e80:	83 c4 0c             	add    $0xc,%esp
465e83:	eb 23                	jmp    0x465ea8
465e85:	8b c5                	mov    %ebp,%eax
465e87:	2b c1                	sub    %ecx,%eax
465e89:	50                   	push   %eax
465e8a:	51                   	push   %ecx
465e8b:	56                   	push   %esi
465e8c:	e8 8f 57 00 00       	call   0x46b620
465e91:	8b 47 04             	mov    0x4(%edi),%eax
465e94:	2b c5                	sub    %ebp,%eax
465e96:	50                   	push   %eax
465e97:	55                   	push   %ebp
465e98:	8b 6c 24 24          	mov    0x24(%esp),%ebp
465e9c:	8d 45 02             	lea    0x2(%ebp),%eax
465e9f:	50                   	push   %eax
465ea0:	e8 7b 57 00 00       	call   0x46b620
465ea5:	83 c4 18             	add    $0x18,%esp
465ea8:	8b 07                	mov    (%edi),%eax
465eaa:	85 c0                	test   %eax,%eax
465eac:	74 2c                	je     0x465eda
465eae:	8b 4f 08             	mov    0x8(%edi),%ecx
465eb1:	2b c8                	sub    %eax,%ecx
465eb3:	83 e1 fe             	and    $0xfffffffe,%ecx
465eb6:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
465ebc:	72 12                	jb     0x465ed0
465ebe:	8b 50 fc             	mov    -0x4(%eax),%edx
465ec1:	83 c1 23             	add    $0x23,%ecx
465ec4:	2b c2                	sub    %edx,%eax
465ec6:	83 c0 fc             	add    $0xfffffffc,%eax
465ec9:	83 f8 1f             	cmp    $0x1f,%eax
465ecc:	77 34                	ja     0x465f02
465ece:	8b c2                	mov    %edx,%eax
465ed0:	51                   	push   %ecx
465ed1:	50                   	push   %eax
465ed2:	e8 31 3b 00 00       	call   0x469a08
465ed7:	83 c4 08             	add    $0x8,%esp
465eda:	8b 44 24 18          	mov    0x18(%esp),%eax
465ede:	89 37                	mov    %esi,(%edi)
465ee0:	8d 0c 46             	lea    (%esi,%eax,2),%ecx
465ee3:	8b c5                	mov    %ebp,%eax
465ee5:	89 4f 04             	mov    %ecx,0x4(%edi)
465ee8:	8d 0c 33             	lea    (%ebx,%esi,1),%ecx
465eeb:	5e                   	pop    %esi
465eec:	5b                   	pop    %ebx
465eed:	89 4f 08             	mov    %ecx,0x8(%edi)
465ef0:	5f                   	pop    %edi
465ef1:	5d                   	pop    %ebp
465ef2:	83 c4 0c             	add    $0xc,%esp
465ef5:	c2 08 00             	ret    $0x8
465ef8:	e8 43 b4 f9 ff       	call   0x401340
465efd:	e8 ce d5 f9 ff       	call   0x4034d0
465f02:	e8 2a 37 01 00       	call   0x479631
465f07:	cc                   	int3
465f08:	cc                   	int3
465f09:	cc                   	int3
465f0a:	cc                   	int3
465f0b:	cc                   	int3
465f0c:	cc                   	int3
465f0d:	cc                   	int3
465f0e:	cc                   	int3
465f0f:	cc                   	int3
465f10:	83 ec 08             	sub    $0x8,%esp
465f13:	55                   	push   %ebp
465f14:	8b 6c 24 10          	mov    0x10(%esp),%ebp