406b57:	c2 04 00             	ret    $0x4
406b5a:	55                   	push   %ebp
406b5b:	8b ec                	mov    %esp,%ebp
406b5d:	8b 55 08             	mov    0x8(%ebp),%edx
406b60:	56                   	push   %esi
406b61:	8b f1                	mov    %ecx,%esi
406b63:	8b 42 04             	mov    0x4(%edx),%eax
406b66:	85 c0                	test   %eax,%eax
406b68:	74 04                	je     0x406b6e
406b6a:	f0 ff 40 08          	lock incl 0x8(%eax)
406b6e:	8b 0a                	mov    (%edx),%ecx
406b70:	8d 41 08             	lea    0x8(%ecx),%eax
406b73:	f7 d9                	neg    %ecx
406b75:	1b c9                	sbb    %ecx,%ecx
406b77:	23 c8                	and    %eax,%ecx
406b79:	89 0e                	mov    %ecx,(%esi)
406b7b:	8b 42 04             	mov    0x4(%edx),%eax
406b7e:	89 46 04             	mov    %eax,0x4(%esi)
406b81:	5e                   	pop    %esi
406b82:	5d                   	pop    %ebp
406b83:	c2 04 00             	ret    $0x4
406b86:	55                   	push   %ebp
406b87:	8b ec                	mov    %esp,%ebp
406b89:	8b 55 08             	mov    0x8(%ebp),%edx
406b8c:	8b 42 04             	mov    0x4(%edx),%eax
406b8f:	85 c0                	test   %eax,%eax
406b91:	74 04                	je     0x406b97
406b93:	f0 ff 40 08          	lock incl 0x8(%eax)
406b97:	8b 02                	mov    (%edx),%eax
406b99:	89 01                	mov    %eax,(%ecx)
406b9b:	8b 42 04             	mov    0x4(%edx),%eax
406b9e:	89 41 04             	mov    %eax,0x4(%ecx)
406ba1:	5d                   	pop    %ebp
406ba2:	c2 04 00             	ret    $0x4
406ba5:	55                   	push   %ebp
406ba6:	8b ec                	mov    %esp,%ebp
406ba8:	56                   	push   %esi
406ba9:	8b f1                	mov    %ecx,%esi
406bab:	57                   	push   %edi
406bac:	8b 4e 08             	mov    0x8(%esi),%ecx
406baf:	8b f9                	mov    %ecx,%edi
406bb1:	2b 7d 08             	sub    0x8(%ebp),%edi
406bb4:	03 7d 0c             	add    0xc(%ebp),%edi
406bb7:	3b 7e 0c             	cmp    0xc(%esi),%edi
406bba:	76 0a                	jbe    0x406bc6
406bbc:	8b 06                	mov    (%esi),%eax
406bbe:	8b ce                	mov    %esi,%ecx
406bc0:	57                   	push   %edi
406bc1:	ff 10                	call   *(%eax)
406bc3:	8b 4e 08             	mov    0x8(%esi),%ecx
406bc6:	8b 46 04             	mov    0x4(%esi),%eax
406bc9:	03 c1                	add    %ecx,%eax
406bcb:	50                   	push   %eax
406bcc:	ff 75 0c             	push   0xc(%ebp)
406bcf:	ff 75 08             	push   0x8(%ebp)
406bd2:	e8 48 1f 00 00       	call   0x408b1f
406bd7:	83 c4 0c             	add    $0xc,%esp
406bda:	89 7e 08             	mov    %edi,0x8(%esi)
406bdd:	5f                   	pop    %edi
406bde:	5e                   	pop    %esi
406bdf:	5d                   	pop    %ebp
406be0:	c2 08 00             	ret    $0x8
406be3:	6a 30                	push   $0x30
406be5:	b8 f4 a5 48 00       	mov    $0x48a5f4,%eax
406bea:	e8 8f 8e 03 00       	call   0x43fa7e
406bef:	8b 7d 08             	mov    0x8(%ebp),%edi
406bf2:	8b 75 0c             	mov    0xc(%ebp),%esi
406bf5:	8b 07                	mov    (%edi),%eax
406bf7:	8a 00                	mov    (%eax),%al
406bf9:	88 45 d4             	mov    %al,-0x2c(%ebp)
406bfc:	ff 75 d4             	push   -0x2c(%ebp)
406bff:	56                   	push   %esi
406c00:	e8 9c bb 01 00       	call   0x4227a1
406c05:	83 7e 08 03          	cmpl   $0x3,0x8(%esi)
406c09:	59                   	pop    %ecx
406c0a:	59                   	pop    %ecx
406c0b:	74 0e                	je     0x406c1b
406c0d:	83 7e 08 05          	cmpl   $0x5,0x8(%esi)
406c11:	74 08                	je     0x406c1b
406c13:	ff 07                	incl   (%edi)
406c15:	e8 0e 8e 03 00       	call   0x43fa28
406c1a:	c3                   	ret
406c1b:	8d 45 d4             	lea    -0x2c(%ebp),%eax
406c1e:	50                   	push   %eax
406c1f:	51                   	push   %ecx
406c20:	8b cc                	mov    %esp,%ecx
406c22:	68 40 65 49 00       	push   $0x496540
406c27:	e8 14 3a 00 00       	call   0x40a640
406c2c:	8d 45 d8             	lea    -0x28(%ebp),%eax
406c2f:	50                   	push   %eax
406c30:	e8 d5 0a 00 00       	call   0x40770a
406c35:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406c39:	83 c4 08             	add    $0x8,%esp
406c3c:	8b cc                	mov    %esp,%ecx
406c3e:	50                   	push   %eax
406c3f:	e8 09 ab ff ff       	call   0x40174d
406c44:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
406c47:	e8 96 50 00 00       	call   0x40bce2
406c4c:	68 24 16 4b 00       	push   $0x4b1624
406c51:	8d 45 c4             	lea    -0x3c(%ebp),%eax
406c54:	50                   	push   %eax
406c55:	e8 68 d5 03 00       	call   0x4441c2
406c5a:	cc                   	int3
406c5b:	55                   	push   %ebp
406c5c:	8b ec                	mov    %esp,%ebp
406c5e:	ff 75 14             	push   0x14(%ebp)
406c61:	8d 45 10             	lea    0x10(%ebp),%eax
406c64:	ff 75 10             	push   0x10(%ebp)
406c67:	ff 75 0c             	push   0xc(%ebp)
406c6a:	50                   	push   %eax
406c6b:	e8 69 c8 ff ff       	call   0x4034d9
406c70:	83 c4 10             	add    $0x10,%esp
406c73:	8b 08                	mov    (%eax),%ecx
406c75:	8b 45 08             	mov    0x8(%ebp),%eax
406c78:	89 08                	mov    %ecx,(%eax)
406c7a:	5d                   	pop    %ebp
406c7b:	c3                   	ret
406c7c:	55                   	push   %ebp
406c7d:	8b ec                	mov    %esp,%ebp
406c7f:	51                   	push   %ecx
406c80:	51                   	push   %ecx
406c81:	ff 75 20             	push   0x20(%ebp)
406c84:	8d 45 f8             	lea    -0x8(%ebp),%eax
406c87:	ff 75 1c             	push   0x1c(%ebp)
406c8a:	ff 75 18             	push   0x18(%ebp)
406c8d:	ff 75 14             	push   0x14(%ebp)
406c90:	ff 75 10             	push   0x10(%ebp)
406c93:	ff 75 0c             	push   0xc(%ebp)
406c96:	50                   	push   %eax
406c97:	e8 61 c8 ff ff       	call   0x4034fd
406c9c:	8b 55 08             	mov    0x8(%ebp),%edx
406c9f:	83 c4 1c             	add    $0x1c,%esp
406ca2:	8b 08                	mov    (%eax),%ecx
406ca4:	89 0a                	mov    %ecx,(%edx)
406ca6:	8b 48 04             	mov    0x4(%eax),%ecx
406ca9:	8b c2                	mov    %edx,%eax
406cab:	89 4a 04             	mov    %ecx,0x4(%edx)
406cae:	c9                   	leave
406caf:	c3                   	ret
406cb0:	55                   	push   %ebp
406cb1:	8b ec                	mov    %esp,%ebp
406cb3:	51                   	push   %ecx
406cb4:	51                   	push   %ecx
406cb5:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
406cb9:	8d 45 f8             	lea    -0x8(%ebp),%eax
406cbc:	ff 75 fc             	push   -0x4(%ebp)
406cbf:	ff 75 20             	push   0x20(%ebp)
406cc2:	ff 75 1c             	push   0x1c(%ebp)
406cc5:	ff 75 18             	push   0x18(%ebp)
406cc8:	ff 75 14             	push   0x14(%ebp)
406ccb:	ff 75 10             	push   0x10(%ebp)
406cce:	ff 75 0c             	push   0xc(%ebp)
406cd1:	50                   	push   %eax
406cd2:	e8 24 c4 ff ff       	call   0x4030fb
406cd7:	8b 55 08             	mov    0x8(%ebp),%edx
406cda:	83 c4 20             	add    $0x20,%esp
406cdd:	8b 08                	mov    (%eax),%ecx
406cdf:	89 0a                	mov    %ecx,(%edx)
406ce1:	8b 48 04             	mov    0x4(%eax),%ecx
406ce4:	8b c2                	mov    %edx,%eax
406ce6:	89 4a 04             	mov    %ecx,0x4(%edx)
406ce9:	c9                   	leave
406cea:	c3                   	ret
406ceb:	6a 08                	push   $0x8
406ced:	b8 39 a6 48 00       	mov    $0x48a639,%eax
406cf2:	e8 53 8d 03 00       	call   0x43fa4a
406cf7:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
406cfe:	8d 45 70             	lea    0x70(%ebp),%eax
406d01:	ff 75 f0             	push   -0x10(%ebp)
406d04:	83 ec 68             	sub    $0x68,%esp
406d07:	8b cc                	mov    %esp,%ecx
406d09:	89 65 f0             	mov    %esp,-0x10(%ebp)
406d0c:	50                   	push   %eax
406d0d:	e8 82 4b 00 00       	call   0x40b894
406d12:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
406d16:	83 ec 68             	sub    $0x68,%esp
406d19:	8d 45 08             	lea    0x8(%ebp),%eax
406d1c:	89 65 ec             	mov    %esp,-0x14(%ebp)
406d1f:	8b cc                	mov    %esp,%ecx
406d21:	50                   	push   %eax
406d22:	e8 6d 4b 00 00       	call   0x40b894
406d27:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
406d2b:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
406d2f:	e8 22 c8 ff ff       	call   0x403556
406d34:	81 c4 d4 00 00 00    	add    $0xd4,%esp
406d3a:	8b f0                	mov    %eax,%esi
406d3c:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
406d40:	8d 4d 08             	lea    0x8(%ebp),%ecx
406d43:	e8 85 76 00 00       	call   0x40e3cd
406d48:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
406d4c:	8d 4d 70             	lea    0x70(%ebp),%ecx
406d4f:	e8 79 76 00 00       	call   0x40e3cd
406d54:	8b c6                	mov    %esi,%eax
406d56:	e8 b8 8c 03 00       	call   0x43fa13
406d5b:	c3                   	ret
406d5c:	55                   	push   %ebp
406d5d:	8b ec                	mov    %esp,%ebp
406d5f:	6a ff                	push   $0xffffffff
406d61:	68 6d a6 48 00       	push   $0x48a66d
406d66:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
406d6c:	50                   	push   %eax
406d6d:	51                   	push   %ecx
406d6e:	53                   	push   %ebx
406d6f:	56                   	push   %esi
406d70:	57                   	push   %edi
406d71:	a1 94 80 4b 00       	mov    0x4b8094,%eax
406d76:	33 c5                	xor    %ebp,%eax
406d78:	50                   	push   %eax
406d79:	8d 45 f4             	lea    -0xc(%ebp),%eax
406d7c:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
406d82:	8b 7d 0c             	mov    0xc(%ebp),%edi
406d85:	33 db                	xor    %ebx,%ebx
406d87:	53                   	push   %ebx
406d88:	68 78 8b 4b 00       	push   $0x4b8b78
406d8d:	68 58 8b 4b 00       	push   $0x4b8b58
406d92:	89 5d f0             	mov    %ebx,-0x10(%ebp)
406d95:	53                   	push   %ebx
406d96:	ff 37                	push   (%edi)
406d98:	e8 c4 de 03 00       	call   0x444c61
406d9d:	83 c4 14             	add    $0x14,%esp
406da0:	85 c0                	test   %eax,%eax
406da2:	74 1f                	je     0x406dc3
406da4:	8b 75 08             	mov    0x8(%ebp),%esi
406da7:	8b ce                	mov    %esi,%ecx
406da9:	50                   	push   %eax
406daa:	57                   	push   %edi
406dab:	89 1e                	mov    %ebx,(%esi)
406dad:	89 5e 04             	mov    %ebx,0x4(%esi)
406db0:	e8 93 b7 ff ff       	call   0x402548
406db5:	89 5d fc             	mov    %ebx,-0x4(%ebp)
406db8:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
406dbf:	8b c6                	mov    %esi,%eax
406dc1:	eb 12                	jmp    0x406dd5
406dc3:	8b 45 08             	mov    0x8(%ebp),%eax
406dc6:	89 18                	mov    %ebx,(%eax)
406dc8:	89 58 04             	mov    %ebx,0x4(%eax)
406dcb:	89 5d fc             	mov    %ebx,-0x4(%ebp)
406dce:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
406dd5:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406dd8:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406ddf:	59                   	pop    %ecx
406de0:	5f                   	pop    %edi
406de1:	5e                   	pop    %esi
406de2:	5b                   	pop    %ebx
406de3:	c9                   	leave
406de4:	c3                   	ret
406de5:	55                   	push   %ebp
406de6:	8b ec                	mov    %esp,%ebp
406de8:	6a ff                	push   $0xffffffff
406dea:	68 a1 a6 48 00       	push   $0x48a6a1
406def:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
406df5:	50                   	push   %eax
406df6:	51                   	push   %ecx
406df7:	53                   	push   %ebx
406df8:	56                   	push   %esi
406df9:	57                   	push   %edi
406dfa:	a1 94 80 4b 00       	mov    0x4b8094,%eax
406dff:	33 c5                	xor    %ebp,%eax
406e01:	50                   	push   %eax
406e02:	8d 45 f4             	lea    -0xc(%ebp),%eax
406e05:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
406e0b:	8b 7d 0c             	mov    0xc(%ebp),%edi
406e0e:	33 db                	xor    %ebx,%ebx
406e10:	53                   	push   %ebx
406e11:	68 fc 8b 4b 00       	push   $0x4b8bfc
406e16:	68 58 8b 4b 00       	push   $0x4b8b58
406e1b:	89 5d f0             	mov    %ebx,-0x10(%ebp)
406e1e:	53                   	push   %ebx
406e1f:	ff 37                	push   (%edi)
406e21:	e8 3b de 03 00       	call   0x444c61
406e26:	83 c4 14             	add    $0x14,%esp
406e29:	85 c0                	test   %eax,%eax
406e2b:	74 1f                	je     0x406e4c
406e2d:	8b 75 08             	mov    0x8(%ebp),%esi
406e30:	8b ce                	mov    %esi,%ecx
406e32:	50                   	push   %eax
406e33:	57                   	push   %edi
406e34:	89 1e                	mov    %ebx,(%esi)
406e36:	89 5e 04             	mov    %ebx,0x4(%esi)
406e39:	e8 2a b7 ff ff       	call   0x402568
406e3e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
406e41:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
406e48:	8b c6                	mov    %esi,%eax
406e4a:	eb 12                	jmp    0x406e5e
406e4c:	8b 45 08             	mov    0x8(%ebp),%eax
406e4f:	89 18                	mov    %ebx,(%eax)
406e51:	89 58 04             	mov    %ebx,0x4(%eax)
406e54:	89 5d fc             	mov    %ebx,-0x4(%ebp)
406e57:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
406e5e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406e61:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406e68:	59                   	pop    %ecx
406e69:	5f                   	pop    %edi
406e6a:	5e                   	pop    %esi
406e6b:	5b                   	pop    %ebx
406e6c:	c9                   	leave
406e6d:	c3                   	ret
406e6e:	55                   	push   %ebp
406e6f:	8b ec                	mov    %esp,%ebp
406e71:	6a ff                	push   $0xffffffff
406e73:	68 d5 a6 48 00       	push   $0x48a6d5
406e78:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
406e7e:	50                   	push   %eax
406e7f:	51                   	push   %ecx
406e80:	53                   	push   %ebx
406e81:	56                   	push   %esi
406e82:	57                   	push   %edi
406e83:	a1 94 80 4b 00       	mov    0x4b8094,%eax
406e88:	33 c5                	xor    %ebp,%eax
406e8a:	50                   	push   %eax
406e8b:	8d 45 f4             	lea    -0xc(%ebp),%eax
406e8e:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
406e94:	8b 7d 0c             	mov    0xc(%ebp),%edi
406e97:	33 db                	xor    %ebx,%ebx
406e99:	53                   	push   %ebx
406e9a:	68 a8 8b 4b 00       	push   $0x4b8ba8
406e9f:	68 58 8b 4b 00       	push   $0x4b8b58
406ea4:	89 5d f0             	mov    %ebx,-0x10(%ebp)
406ea7:	53                   	push   %ebx
406ea8:	ff 37                	push   (%edi)
406eaa:	e8 b2 dd 03 00       	call   0x444c61
406eaf:	83 c4 14             	add    $0x14,%esp
406eb2:	85 c0                	test   %eax,%eax
406eb4:	74 1f                	je     0x406ed5
406eb6:	8b 75 08             	mov    0x8(%ebp),%esi
406eb9:	8b ce                	mov    %esi,%ecx
406ebb:	50                   	push   %eax
406ebc:	57                   	push   %edi
406ebd:	89 1e                	mov    %ebx,(%esi)
406ebf:	89 5e 04             	mov    %ebx,0x4(%esi)
406ec2:	e8 c1 b6 ff ff       	call   0x402588
406ec7:	89 5d fc             	mov    %ebx,-0x4(%ebp)
406eca:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
406ed1:	8b c6                	mov    %esi,%eax
406ed3:	eb 12                	jmp    0x406ee7
406ed5:	8b 45 08             	mov    0x8(%ebp),%eax
406ed8:	89 18                	mov    %ebx,(%eax)
406eda:	89 58 04             	mov    %ebx,0x4(%eax)
406edd:	89 5d fc             	mov    %ebx,-0x4(%ebp)
406ee0:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
406ee7:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406eea:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406ef1:	59                   	pop    %ecx
406ef2:	5f                   	pop    %edi
406ef3:	5e                   	pop    %esi
406ef4:	5b                   	pop    %ebx
406ef5:	c9                   	leave
406ef6:	c3                   	ret
406ef7:	55                   	push   %ebp
406ef8:	8b ec                	mov    %esp,%ebp