4a7b60:	c1 ee 02             	shr    $0x2,%esi
4a7b63:	57                   	push   %edi
4a7b64:	33 ff                	xor    %edi,%edi
4a7b66:	3b 44 24 10          	cmp    0x10(%esp),%eax
4a7b6a:	0f 47 f7             	cmova  %edi,%esi
4a7b6d:	85 f6                	test   %esi,%esi
4a7b6f:	74 11                	je     0x4a7b82
4a7b71:	8b 7c 24 14          	mov    0x14(%esp),%edi
4a7b75:	8b 0f                	mov    (%edi),%ecx
4a7b77:	8d 40 04             	lea    0x4(%eax),%eax
4a7b7a:	42                   	inc    %edx
4a7b7b:	89 48 fc             	mov    %ecx,-0x4(%eax)
4a7b7e:	3b d6                	cmp    %esi,%edx
4a7b80:	75 f3                	jne    0x4a7b75
4a7b82:	5f                   	pop    %edi
4a7b83:	5e                   	pop    %esi
4a7b84:	c3                   	ret
4a7b85:	cc                   	int3
4a7b86:	cc                   	int3
4a7b87:	cc                   	int3
4a7b88:	cc                   	int3
4a7b89:	cc                   	int3
4a7b8a:	cc                   	int3
4a7b8b:	cc                   	int3
4a7b8c:	cc                   	int3
4a7b8d:	cc                   	int3
4a7b8e:	cc                   	int3
4a7b8f:	cc                   	int3
4a7b90:	cc                   	int3
4a7b91:	cc                   	int3
4a7b92:	cc                   	int3
4a7b93:	cc                   	int3
4a7b94:	cc                   	int3
4a7b95:	cc                   	int3
4a7b96:	cc                   	int3
4a7b97:	cc                   	int3
4a7b98:	cc                   	int3
4a7b99:	cc                   	int3
4a7b9a:	cc                   	int3
4a7b9b:	cc                   	int3
4a7b9c:	cc                   	int3
4a7b9d:	cc                   	int3
4a7b9e:	cc                   	int3
4a7b9f:	cc                   	int3
4a7ba0:	8b 44 24 04          	mov    0x4(%esp),%eax
4a7ba4:	33 d2                	xor    %edx,%edx
4a7ba6:	56                   	push   %esi
4a7ba7:	8b 74 24 0c          	mov    0xc(%esp),%esi
4a7bab:	2b f0                	sub    %eax,%esi
4a7bad:	83 c6 03             	add    $0x3,%esi
4a7bb0:	c1 ee 02             	shr    $0x2,%esi
4a7bb3:	57                   	push   %edi
4a7bb4:	33 ff                	xor    %edi,%edi
4a7bb6:	3b 44 24 10          	cmp    0x10(%esp),%eax
4a7bba:	0f 47 f7             	cmova  %edi,%esi
4a7bbd:	85 f6                	test   %esi,%esi
4a7bbf:	74 11                	je     0x4a7bd2
4a7bc1:	8b 7c 24 14          	mov    0x14(%esp),%edi
4a7bc5:	8b 0f                	mov    (%edi),%ecx
4a7bc7:	8d 40 04             	lea    0x4(%eax),%eax
4a7bca:	42                   	inc    %edx
4a7bcb:	89 48 fc             	mov    %ecx,-0x4(%eax)
4a7bce:	3b d6                	cmp    %esi,%edx
4a7bd0:	75 f3                	jne    0x4a7bc5
4a7bd2:	5f                   	pop    %edi
4a7bd3:	5e                   	pop    %esi
4a7bd4:	c3                   	ret
4a7bd5:	cc                   	int3
4a7bd6:	cc                   	int3
4a7bd7:	cc                   	int3
4a7bd8:	cc                   	int3
4a7bd9:	cc                   	int3
4a7bda:	cc                   	int3
4a7bdb:	cc                   	int3
4a7bdc:	cc                   	int3
4a7bdd:	cc                   	int3
4a7bde:	cc                   	int3
4a7bdf:	cc                   	int3
4a7be0:	cc                   	int3
4a7be1:	cc                   	int3
4a7be2:	cc                   	int3
4a7be3:	cc                   	int3
4a7be4:	cc                   	int3
4a7be5:	cc                   	int3
4a7be6:	cc                   	int3
4a7be7:	cc                   	int3
4a7be8:	cc                   	int3
4a7be9:	cc                   	int3
4a7bea:	cc                   	int3
4a7beb:	cc                   	int3
4a7bec:	cc                   	int3
4a7bed:	cc                   	int3
4a7bee:	cc                   	int3
4a7bef:	cc                   	int3
4a7bf0:	b8 ff ff ff 3f       	mov    $0x3fffffff,%eax
4a7bf5:	c3                   	ret
4a7bf6:	cc                   	int3
4a7bf7:	cc                   	int3
4a7bf8:	cc                   	int3
4a7bf9:	cc                   	int3
4a7bfa:	cc                   	int3
4a7bfb:	cc                   	int3
4a7bfc:	cc                   	int3
4a7bfd:	cc                   	int3
4a7bfe:	cc                   	int3
4a7bff:	cc                   	int3
4a7c00:	b8 ff ff ff 3f       	mov    $0x3fffffff,%eax
4a7c05:	c3                   	ret
4a7c06:	cc                   	int3
4a7c07:	cc                   	int3
4a7c08:	cc                   	int3
4a7c09:	cc                   	int3
4a7c0a:	cc                   	int3
4a7c0b:	cc                   	int3
4a7c0c:	cc                   	int3
4a7c0d:	cc                   	int3
4a7c0e:	cc                   	int3
4a7c0f:	cc                   	int3
4a7c10:	8b 44 24 04          	mov    0x4(%esp),%eax
4a7c14:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4a7c18:	2b c8                	sub    %eax,%ecx
4a7c1a:	51                   	push   %ecx
4a7c1b:	50                   	push   %eax
4a7c1c:	8b 44 24 14          	mov    0x14(%esp),%eax
4a7c20:	2b c1                	sub    %ecx,%eax
4a7c22:	50                   	push   %eax
4a7c23:	e8 5a 6f f7 ff       	call   0x41eb82
4a7c28:	83 c4 0c             	add    $0xc,%esp
4a7c2b:	c3                   	ret
4a7c2c:	cc                   	int3
4a7c2d:	cc                   	int3
4a7c2e:	cc                   	int3
4a7c2f:	cc                   	int3
4a7c30:	cc                   	int3
4a7c31:	cc                   	int3
4a7c32:	cc                   	int3
4a7c33:	cc                   	int3
4a7c34:	cc                   	int3
4a7c35:	cc                   	int3
4a7c36:	cc                   	int3
4a7c37:	cc                   	int3
4a7c38:	cc                   	int3
4a7c39:	cc                   	int3
4a7c3a:	cc                   	int3
4a7c3b:	cc                   	int3
4a7c3c:	cc                   	int3
4a7c3d:	cc                   	int3
4a7c3e:	cc                   	int3
4a7c3f:	cc                   	int3
4a7c40:	8b 44 24 04          	mov    0x4(%esp),%eax
4a7c44:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4a7c48:	2b c8                	sub    %eax,%ecx
4a7c4a:	51                   	push   %ecx
4a7c4b:	50                   	push   %eax
4a7c4c:	8b 44 24 14          	mov    0x14(%esp),%eax
4a7c50:	2b c1                	sub    %ecx,%eax
4a7c52:	50                   	push   %eax
4a7c53:	e8 2a 6f f7 ff       	call   0x41eb82
4a7c58:	83 c4 0c             	add    $0xc,%esp
4a7c5b:	c3                   	ret
4a7c5c:	cc                   	int3
4a7c5d:	cc                   	int3
4a7c5e:	cc                   	int3
4a7c5f:	cc                   	int3
4a7c60:	cc                   	int3
4a7c61:	cc                   	int3
4a7c62:	cc                   	int3
4a7c63:	cc                   	int3
4a7c64:	cc                   	int3
4a7c65:	cc                   	int3
4a7c66:	cc                   	int3
4a7c67:	cc                   	int3
4a7c68:	cc                   	int3
4a7c69:	cc                   	int3
4a7c6a:	cc                   	int3
4a7c6b:	cc                   	int3
4a7c6c:	cc                   	int3
4a7c6d:	cc                   	int3
4a7c6e:	cc                   	int3
4a7c6f:	cc                   	int3
4a7c70:	8b 44 24 04          	mov    0x4(%esp),%eax
4a7c74:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4a7c78:	2b c8                	sub    %eax,%ecx
4a7c7a:	51                   	push   %ecx
4a7c7b:	50                   	push   %eax
4a7c7c:	8b 44 24 14          	mov    0x14(%esp),%eax
4a7c80:	2b c1                	sub    %ecx,%eax
4a7c82:	50                   	push   %eax
4a7c83:	e8 fa 6e f7 ff       	call   0x41eb82
4a7c88:	83 c4 0c             	add    $0xc,%esp
4a7c8b:	c3                   	ret
4a7c8c:	cc                   	int3
4a7c8d:	cc                   	int3
4a7c8e:	cc                   	int3
4a7c8f:	cc                   	int3
4a7c90:	cc                   	int3
4a7c91:	cc                   	int3
4a7c92:	cc                   	int3
4a7c93:	cc                   	int3
4a7c94:	cc                   	int3
4a7c95:	cc                   	int3
4a7c96:	cc                   	int3
4a7c97:	cc                   	int3
4a7c98:	cc                   	int3
4a7c99:	cc                   	int3
4a7c9a:	cc                   	int3
4a7c9b:	cc                   	int3
4a7c9c:	cc                   	int3
4a7c9d:	cc                   	int3
4a7c9e:	cc                   	int3
4a7c9f:	cc                   	int3
4a7ca0:	8b 44 24 04          	mov    0x4(%esp),%eax
4a7ca4:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4a7ca8:	2b c8                	sub    %eax,%ecx
4a7caa:	51                   	push   %ecx
4a7cab:	50                   	push   %eax
4a7cac:	8b 44 24 14          	mov    0x14(%esp),%eax
4a7cb0:	2b c1                	sub    %ecx,%eax
4a7cb2:	50                   	push   %eax
4a7cb3:	e8 ca 6e f7 ff       	call   0x41eb82
4a7cb8:	83 c4 0c             	add    $0xc,%esp
4a7cbb:	c3                   	ret
4a7cbc:	cc                   	int3
4a7cbd:	cc                   	int3
4a7cbe:	cc                   	int3
4a7cbf:	cc                   	int3
4a7cc0:	cc                   	int3
4a7cc1:	cc                   	int3
4a7cc2:	cc                   	int3
4a7cc3:	cc                   	int3
4a7cc4:	cc                   	int3
4a7cc5:	cc                   	int3
4a7cc6:	cc                   	int3
4a7cc7:	cc                   	int3
4a7cc8:	cc                   	int3
4a7cc9:	cc                   	int3
4a7cca:	cc                   	int3
4a7ccb:	cc                   	int3
4a7ccc:	cc                   	int3
4a7ccd:	cc                   	int3
4a7cce:	cc                   	int3
4a7ccf:	cc                   	int3
4a7cd0:	8b 44 24 04          	mov    0x4(%esp),%eax
4a7cd4:	c3                   	ret
4a7cd5:	cc                   	int3
4a7cd6:	cc                   	int3
4a7cd7:	cc                   	int3
4a7cd8:	cc                   	int3
4a7cd9:	cc                   	int3
4a7cda:	cc                   	int3
4a7cdb:	cc                   	int3
4a7cdc:	cc                   	int3
4a7cdd:	cc                   	int3
4a7cde:	cc                   	int3
4a7cdf:	cc                   	int3
4a7ce0:	8b 44 24 04          	mov    0x4(%esp),%eax
4a7ce4:	c3                   	ret
4a7ce5:	cc                   	int3
4a7ce6:	cc                   	int3
4a7ce7:	cc                   	int3
4a7ce8:	cc                   	int3
4a7ce9:	cc                   	int3
4a7cea:	cc                   	int3
4a7ceb:	cc                   	int3
4a7cec:	cc                   	int3
4a7ced:	cc                   	int3
4a7cee:	cc                   	int3
4a7cef:	cc                   	int3
4a7cf0:	8b 44 24 04          	mov    0x4(%esp),%eax
4a7cf4:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4a7cf8:	89 08                	mov    %ecx,(%eax)
4a7cfa:	c3                   	ret
4a7cfb:	cc                   	int3
4a7cfc:	cc                   	int3
4a7cfd:	cc                   	int3
4a7cfe:	cc                   	int3
4a7cff:	cc                   	int3
4a7d00:	8b 44 24 04          	mov    0x4(%esp),%eax
4a7d04:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4a7d08:	89 08                	mov    %ecx,(%eax)
4a7d0a:	c3                   	ret
4a7d0b:	cc                   	int3
4a7d0c:	cc                   	int3
4a7d0d:	cc                   	int3
4a7d0e:	cc                   	int3
4a7d0f:	cc                   	int3
4a7d10:	56                   	push   %esi
4a7d11:	8b f1                	mov    %ecx,%esi
4a7d13:	57                   	push   %edi
4a7d14:	8b 7e 04             	mov    0x4(%esi),%edi
4a7d17:	85 ff                	test   %edi,%edi
4a7d19:	74 35                	je     0x4a7d50
4a7d1b:	53                   	push   %ebx
4a7d1c:	83 cb ff             	or     $0xffffffff,%ebx
4a7d1f:	8b c3                	mov    %ebx,%eax
4a7d21:	f0 0f c1 47 04       	lock xadd %eax,0x4(%edi)
4a7d26:	75 15                	jne    0x4a7d3d
4a7d28:	8b 07                	mov    (%edi),%eax
4a7d2a:	8b cf                	mov    %edi,%ecx
4a7d2c:	ff 10                	call   *(%eax)
4a7d2e:	f0 0f c1 5f 08       	lock xadd %ebx,0x8(%edi)
4a7d33:	4b                   	dec    %ebx
4a7d34:	75 07                	jne    0x4a7d3d
4a7d36:	8b 07                	mov    (%edi),%eax
4a7d38:	8b cf                	mov    %edi,%ecx
4a7d3a:	ff 50 04             	call   *0x4(%eax)
4a7d3d:	8b 44 24 14          	mov    0x14(%esp),%eax
4a7d41:	5b                   	pop    %ebx
4a7d42:	89 46 04             	mov    %eax,0x4(%esi)
4a7d45:	8b 44 24 0c          	mov    0xc(%esp),%eax
4a7d49:	5f                   	pop    %edi
4a7d4a:	89 06                	mov    %eax,(%esi)
4a7d4c:	5e                   	pop    %esi
4a7d4d:	c2 08 00             	ret    $0x8
4a7d50:	8b 44 24 10          	mov    0x10(%esp),%eax
4a7d54:	89 46 04             	mov    %eax,0x4(%esi)
4a7d57:	8b 44 24 0c          	mov    0xc(%esp),%eax
4a7d5b:	5f                   	pop    %edi
4a7d5c:	89 06                	mov    %eax,(%esi)
4a7d5e:	5e                   	pop    %esi
4a7d5f:	c2 08 00             	ret    $0x8
4a7d62:	cc                   	int3
4a7d63:	cc                   	int3
4a7d64:	cc                   	int3
4a7d65:	cc                   	int3
4a7d66:	cc                   	int3
4a7d67:	cc                   	int3
4a7d68:	cc                   	int3
4a7d69:	cc                   	int3
4a7d6a:	cc                   	int3
4a7d6b:	cc                   	int3
4a7d6c:	cc                   	int3
4a7d6d:	cc                   	int3
4a7d6e:	cc                   	int3
4a7d6f:	cc                   	int3
4a7d70:	cc                   	int3
4a7d71:	cc                   	int3
4a7d72:	cc                   	int3
4a7d73:	cc                   	int3
4a7d74:	cc                   	int3
4a7d75:	cc                   	int3
4a7d76:	cc                   	int3
4a7d77:	cc                   	int3
4a7d78:	cc                   	int3
4a7d79:	cc                   	int3
4a7d7a:	cc                   	int3
4a7d7b:	cc                   	int3
4a7d7c:	cc                   	int3
4a7d7d:	cc                   	int3
4a7d7e:	cc                   	int3