4069bf:	55                   	push   %ebp
4069c0:	8b ec                	mov    %esp,%ebp
4069c2:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4069c5:	8b 45 08             	mov    0x8(%ebp),%eax
4069c8:	85 c9                	test   %ecx,%ecx
4069ca:	74 0f                	je     0x4069db
4069cc:	83 20 00             	andl   $0x0,(%eax)
4069cf:	83 60 04 00          	andl   $0x0,0x4(%eax)
4069d3:	83 c0 08             	add    $0x8,%eax
4069d6:	83 e9 01             	sub    $0x1,%ecx
4069d9:	75 f1                	jne    0x4069cc
4069db:	5d                   	pop    %ebp
4069dc:	c3                   	ret
4069dd:	55                   	push   %ebp
4069de:	8b ec                	mov    %esp,%ebp
4069e0:	56                   	push   %esi
4069e1:	8b 75 08             	mov    0x8(%ebp),%esi
4069e4:	57                   	push   %edi
4069e5:	8b 7d 0c             	mov    0xc(%ebp),%edi
4069e8:	85 ff                	test   %edi,%edi
4069ea:	74 14                	je     0x406a00
4069ec:	8b cf                	mov    %edi,%ecx
4069ee:	c1 e1 03             	shl    $0x3,%ecx
4069f1:	51                   	push   %ecx
4069f2:	6a 00                	push   $0x0
4069f4:	56                   	push   %esi
4069f5:	e8 66 d4 03 00       	call   0x443e60
4069fa:	83 c4 0c             	add    $0xc,%esp
4069fd:	8d 34 fe             	lea    (%esi,%edi,8),%esi
406a00:	5f                   	pop    %edi
406a01:	8b c6                	mov    %esi,%eax
406a03:	5e                   	pop    %esi
406a04:	5d                   	pop    %ebp
406a05:	c3                   	ret
406a06:	55                   	push   %ebp
406a07:	8b ec                	mov    %esp,%ebp
406a09:	8b 4d 0c             	mov    0xc(%ebp),%ecx
406a0c:	8b 45 08             	mov    0x8(%ebp),%eax
406a0f:	85 c9                	test   %ecx,%ecx
406a11:	74 12                	je     0x406a25
406a13:	33 d2                	xor    %edx,%edx
406a15:	89 10                	mov    %edx,(%eax)
406a17:	89 50 04             	mov    %edx,0x4(%eax)
406a1a:	88 50 08             	mov    %dl,0x8(%eax)
406a1d:	83 c0 0c             	add    $0xc,%eax
406a20:	83 e9 01             	sub    $0x1,%ecx
406a23:	75 f0                	jne    0x406a15
406a25:	5d                   	pop    %ebp
406a26:	c3                   	ret
406a27:	55                   	push   %ebp
406a28:	8b ec                	mov    %esp,%ebp
406a2a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
406a2d:	8b 45 08             	mov    0x8(%ebp),%eax
406a30:	85 c9                	test   %ecx,%ecx
406a32:	74 12                	je     0x406a46
406a34:	33 d2                	xor    %edx,%edx
406a36:	89 10                	mov    %edx,(%eax)
406a38:	89 50 04             	mov    %edx,0x4(%eax)
406a3b:	88 50 08             	mov    %dl,0x8(%eax)
406a3e:	83 c0 0c             	add    $0xc,%eax
406a41:	83 e9 01             	sub    $0x1,%ecx
406a44:	75 f0                	jne    0x406a36
406a46:	5d                   	pop    %ebp
406a47:	c3                   	ret
406a48:	55                   	push   %ebp
406a49:	8b ec                	mov    %esp,%ebp
406a4b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
406a4e:	8b 45 08             	mov    0x8(%ebp),%eax
406a51:	85 c9                	test   %ecx,%ecx
406a53:	74 12                	je     0x406a67
406a55:	33 d2                	xor    %edx,%edx
406a57:	89 10                	mov    %edx,(%eax)
406a59:	89 50 04             	mov    %edx,0x4(%eax)
406a5c:	88 50 08             	mov    %dl,0x8(%eax)
406a5f:	83 c0 0c             	add    $0xc,%eax
406a62:	83 e9 01             	sub    $0x1,%ecx
406a65:	75 f0                	jne    0x406a57
406a67:	5d                   	pop    %ebp
406a68:	c3                   	ret
406a69:	55                   	push   %ebp
406a6a:	8b ec                	mov    %esp,%ebp
406a6c:	51                   	push   %ecx
406a6d:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
406a71:	ff 75 fc             	push   -0x4(%ebp)
406a74:	ff 75 10             	push   0x10(%ebp)
406a77:	ff 75 0c             	push   0xc(%ebp)
406a7a:	ff 75 08             	push   0x8(%ebp)
406a7d:	e8 f6 fe ff ff       	call   0x406978
406a82:	83 c4 10             	add    $0x10,%esp
406a85:	c9                   	leave
406a86:	c3                   	ret
406a87:	55                   	push   %ebp
406a88:	8b ec                	mov    %esp,%ebp
406a8a:	51                   	push   %ecx
406a8b:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
406a8f:	ff 75 fc             	push   -0x4(%ebp)
406a92:	ff 75 10             	push   0x10(%ebp)
406a95:	ff 75 0c             	push   0xc(%ebp)
406a98:	ff 75 08             	push   0x8(%ebp)
406a9b:	e8 01 ff ff ff       	call   0x4069a1
406aa0:	83 c4 10             	add    $0x10,%esp
406aa3:	c9                   	leave
406aa4:	c3                   	ret
406aa5:	55                   	push   %ebp
406aa6:	8b ec                	mov    %esp,%ebp
406aa8:	51                   	push   %ecx
406aa9:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
406aad:	ff 75 fc             	push   -0x4(%ebp)
406ab0:	ff 75 10             	push   0x10(%ebp)
406ab3:	ff 75 0c             	push   0xc(%ebp)
406ab6:	ff 75 08             	push   0x8(%ebp)
406ab9:	e8 01 ff ff ff       	call   0x4069bf
406abe:	83 c4 10             	add    $0x10,%esp
406ac1:	c9                   	leave
406ac2:	c3                   	ret
406ac3:	55                   	push   %ebp
406ac4:	8b ec                	mov    %esp,%ebp
406ac6:	51                   	push   %ecx
406ac7:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
406acb:	ff 75 fc             	push   -0x4(%ebp)
406ace:	ff 75 10             	push   0x10(%ebp)
406ad1:	ff 75 0c             	push   0xc(%ebp)
406ad4:	ff 75 08             	push   0x8(%ebp)
406ad7:	e8 01 ff ff ff       	call   0x4069dd
406adc:	83 c4 10             	add    $0x10,%esp
406adf:	c9                   	leave
406ae0:	c3                   	ret
406ae1:	55                   	push   %ebp
406ae2:	8b ec                	mov    %esp,%ebp
406ae4:	51                   	push   %ecx
406ae5:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
406ae9:	ff 75 fc             	push   -0x4(%ebp)
406aec:	ff 75 10             	push   0x10(%ebp)
406aef:	ff 75 0c             	push   0xc(%ebp)
406af2:	ff 75 08             	push   0x8(%ebp)
406af5:	e8 0c ff ff ff       	call   0x406a06
406afa:	83 c4 10             	add    $0x10,%esp
406afd:	c9                   	leave
406afe:	c3                   	ret
406aff:	55                   	push   %ebp
406b00:	8b ec                	mov    %esp,%ebp
406b02:	51                   	push   %ecx
406b03:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
406b07:	ff 75 fc             	push   -0x4(%ebp)
406b0a:	ff 75 10             	push   0x10(%ebp)
406b0d:	ff 75 0c             	push   0xc(%ebp)
406b10:	ff 75 08             	push   0x8(%ebp)
406b13:	e8 0f ff ff ff       	call   0x406a27
406b18:	83 c4 10             	add    $0x10,%esp
406b1b:	c9                   	leave
406b1c:	c3                   	ret
406b1d:	55                   	push   %ebp
406b1e:	8b ec                	mov    %esp,%ebp
406b20:	51                   	push   %ecx
406b21:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
406b25:	ff 75 fc             	push   -0x4(%ebp)
406b28:	ff 75 10             	push   0x10(%ebp)
406b2b:	ff 75 0c             	push   0xc(%ebp)
406b2e:	ff 75 08             	push   0x8(%ebp)
406b31:	e8 12 ff ff ff       	call   0x406a48
406b36:	83 c4 10             	add    $0x10,%esp
406b39:	c9                   	leave
406b3a:	c3                   	ret
406b3b:	55                   	push   %ebp
406b3c:	8b ec                	mov    %esp,%ebp
406b3e:	8b 55 08             	mov    0x8(%ebp),%edx
406b41:	8b 42 04             	mov    0x4(%edx),%eax
406b44:	85 c0                	test   %eax,%eax
406b46:	74 04                	je     0x406b4c
406b48:	f0 ff 40 08          	lock incl 0x8(%eax)
406b4c:	8b 02                	mov    (%edx),%eax
406b4e:	89 01                	mov    %eax,(%ecx)
406b50:	8b 42 04             	mov    0x4(%edx),%eax
406b53:	89 41 04             	mov    %eax,0x4(%ecx)
406b56:	5d                   	pop    %ebp
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)