406acd:	c2 0c 00             	ret    $0xc
406ad0:	8b 75 e4             	mov    -0x1c(%ebp),%esi
406ad3:	8b 45 10             	mov    0x10(%ebp),%eax
406ad6:	ff 30                	push   (%eax)
406ad8:	e8 37 0d 00 00       	call   0x407814
406add:	59                   	pop    %ecx
406ade:	c3                   	ret
406adf:	6a 0c                	push   $0xc
406ae1:	68 b8 4a 41 00       	push   $0x414ab8
406ae6:	e8 25 c9 ff ff       	call   0x403410
406aeb:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
406aef:	8b 45 08             	mov    0x8(%ebp),%eax
406af2:	ff 30                	push   (%eax)
406af4:	e8 d3 0c 00 00       	call   0x4077cc
406af9:	59                   	pop    %ecx
406afa:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406afe:	8b 4d 0c             	mov    0xc(%ebp),%ecx
406b01:	e8 34 00 00 00       	call   0x406b3a
406b06:	8b f0                	mov    %eax,%esi
406b08:	89 75 e4             	mov    %esi,-0x1c(%ebp)
406b0b:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406b12:	e8 17 00 00 00       	call   0x406b2e
406b17:	8b c6                	mov    %esi,%eax
406b19:	8b 4d f0             	mov    -0x10(%ebp),%ecx
406b1c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406b23:	59                   	pop    %ecx
406b24:	5f                   	pop    %edi
406b25:	5e                   	pop    %esi
406b26:	5b                   	pop    %ebx
406b27:	c9                   	leave
406b28:	c2 0c 00             	ret    $0xc
406b2b:	8b 75 e4             	mov    -0x1c(%ebp),%esi
406b2e:	8b 45 10             	mov    0x10(%ebp),%eax
406b31:	ff 30                	push   (%eax)
406b33:	e8 dc 0c 00 00       	call   0x407814
406b38:	59                   	pop    %ecx
406b39:	c3                   	ret
406b3a:	8b ff                	mov    %edi,%edi
406b3c:	55                   	push   %ebp
406b3d:	8b ec                	mov    %esp,%ebp
406b3f:	51                   	push   %ecx
406b40:	51                   	push   %ecx
406b41:	8b c1                	mov    %ecx,%eax
406b43:	89 45 f8             	mov    %eax,-0x8(%ebp)
406b46:	53                   	push   %ebx
406b47:	56                   	push   %esi
406b48:	8b 00                	mov    (%eax),%eax
406b4a:	57                   	push   %edi
406b4b:	8b 30                	mov    (%eax),%esi
406b4d:	85 f6                	test   %esi,%esi
406b4f:	0f 84 df 00 00 00    	je     0x406c34
406b55:	a1 14 60 41 00       	mov    0x416014,%eax
406b5a:	8b c8                	mov    %eax,%ecx
406b5c:	8b 1e                	mov    (%esi),%ebx
406b5e:	83 e1 1f             	and    $0x1f,%ecx
406b61:	8b 7e 04             	mov    0x4(%esi),%edi
406b64:	33 d8                	xor    %eax,%ebx
406b66:	8b 76 08             	mov    0x8(%esi),%esi
406b69:	33 f8                	xor    %eax,%edi
406b6b:	33 f0                	xor    %eax,%esi
406b6d:	d3 cf                	ror    %cl,%edi
406b6f:	d3 ce                	ror    %cl,%esi
406b71:	d3 cb                	ror    %cl,%ebx
406b73:	3b fe                	cmp    %esi,%edi
406b75:	75 7b                	jne    0x406bf2
406b77:	2b f3                	sub    %ebx,%esi
406b79:	b8 00 02 00 00       	mov    $0x200,%eax
406b7e:	c1 fe 02             	sar    $0x2,%esi
406b81:	3b f0                	cmp    %eax,%esi
406b83:	77 02                	ja     0x406b87
406b85:	8b c6                	mov    %esi,%eax
406b87:	8d 3c 30             	lea    (%eax,%esi,1),%edi
406b8a:	85 ff                	test   %edi,%edi
406b8c:	75 03                	jne    0x406b91
406b8e:	6a 20                	push   $0x20
406b90:	5f                   	pop    %edi
406b91:	3b fe                	cmp    %esi,%edi
406b93:	72 1d                	jb     0x406bb2
406b95:	6a 04                	push   $0x4
406b97:	57                   	push   %edi
406b98:	53                   	push   %ebx
406b99:	e8 10 34 00 00       	call   0x409fae
406b9e:	6a 00                	push   $0x0
406ba0:	89 45 fc             	mov    %eax,-0x4(%ebp)
406ba3:	e8 d1 0c 00 00       	call   0x407879
406ba8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406bab:	83 c4 10             	add    $0x10,%esp
406bae:	85 c9                	test   %ecx,%ecx
406bb0:	75 20                	jne    0x406bd2
406bb2:	6a 04                	push   $0x4
406bb4:	8d 7e 04             	lea    0x4(%esi),%edi
406bb7:	57                   	push   %edi
406bb8:	53                   	push   %ebx
406bb9:	e8 f0 33 00 00       	call   0x409fae
406bbe:	6a 00                	push   $0x0
406bc0:	89 45 fc             	mov    %eax,-0x4(%ebp)
406bc3:	e8 b1 0c 00 00       	call   0x407879
406bc8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406bcb:	83 c4 10             	add    $0x10,%esp
406bce:	85 c9                	test   %ecx,%ecx
406bd0:	74 62                	je     0x406c34
406bd2:	8d 04 b1             	lea    (%ecx,%esi,4),%eax
406bd5:	8b d9                	mov    %ecx,%ebx
406bd7:	8d 34 b9             	lea    (%ecx,%edi,4),%esi
406bda:	89 45 fc             	mov    %eax,-0x4(%ebp)
406bdd:	8b 0d 14 60 41 00    	mov    0x416014,%ecx
406be3:	8b f8                	mov    %eax,%edi
406be5:	3b fe                	cmp    %esi,%edi
406be7:	74 09                	je     0x406bf2
406be9:	89 08                	mov    %ecx,(%eax)
406beb:	83 c0 04             	add    $0x4,%eax
406bee:	3b c6                	cmp    %esi,%eax
406bf0:	75 f7                	jne    0x406be9
406bf2:	8b 45 f8             	mov    -0x8(%ebp),%eax
406bf5:	8b 40 04             	mov    0x4(%eax),%eax
406bf8:	ff 30                	push   (%eax)
406bfa:	e8 ac f3 ff ff       	call   0x405fab
406bff:	53                   	push   %ebx
406c00:	89 07                	mov    %eax,(%edi)
406c02:	e8 a4 f3 ff ff       	call   0x405fab
406c07:	8b 5d f8             	mov    -0x8(%ebp),%ebx
406c0a:	8b 0b                	mov    (%ebx),%ecx
406c0c:	8b 09                	mov    (%ecx),%ecx
406c0e:	89 01                	mov    %eax,(%ecx)
406c10:	8d 47 04             	lea    0x4(%edi),%eax
406c13:	50                   	push   %eax
406c14:	e8 92 f3 ff ff       	call   0x405fab
406c19:	8b 0b                	mov    (%ebx),%ecx
406c1b:	56                   	push   %esi
406c1c:	8b 09                	mov    (%ecx),%ecx
406c1e:	89 41 04             	mov    %eax,0x4(%ecx)
406c21:	e8 85 f3 ff ff       	call   0x405fab
406c26:	8b 0b                	mov    (%ebx),%ecx
406c28:	83 c4 10             	add    $0x10,%esp
406c2b:	8b 09                	mov    (%ecx),%ecx
406c2d:	89 41 08             	mov    %eax,0x8(%ecx)
406c30:	33 c0                	xor    %eax,%eax
406c32:	eb 03                	jmp    0x406c37
406c34:	83 c8 ff             	or     $0xffffffff,%eax
406c37:	5f                   	pop    %edi
406c38:	5e                   	pop    %esi
406c39:	5b                   	pop    %ebx
406c3a:	c9                   	leave
406c3b:	c3                   	ret
406c3c:	8b ff                	mov    %edi,%edi
406c3e:	55                   	push   %ebp
406c3f:	8b ec                	mov    %esp,%ebp
406c41:	83 ec 14             	sub    $0x14,%esp
406c44:	53                   	push   %ebx
406c45:	8b d9                	mov    %ecx,%ebx
406c47:	57                   	push   %edi
406c48:	89 5d ec             	mov    %ebx,-0x14(%ebp)
406c4b:	8b 03                	mov    (%ebx),%eax
406c4d:	8b 38                	mov    (%eax),%edi
406c4f:	85 ff                	test   %edi,%edi
406c51:	75 08                	jne    0x406c5b
406c53:	83 c8 ff             	or     $0xffffffff,%eax
406c56:	e9 b7 00 00 00       	jmp    0x406d12
406c5b:	8b 15 14 60 41 00    	mov    0x416014,%edx
406c61:	8b ca                	mov    %edx,%ecx
406c63:	56                   	push   %esi
406c64:	8b 37                	mov    (%edi),%esi
406c66:	83 e1 1f             	and    $0x1f,%ecx
406c69:	8b 7f 04             	mov    0x4(%edi),%edi
406c6c:	33 f2                	xor    %edx,%esi
406c6e:	33 fa                	xor    %edx,%edi
406c70:	d3 ce                	ror    %cl,%esi
406c72:	d3 cf                	ror    %cl,%edi
406c74:	85 f6                	test   %esi,%esi
406c76:	0f 84 93 00 00 00    	je     0x406d0f
406c7c:	83 fe ff             	cmp    $0xffffffff,%esi
406c7f:	0f 84 8a 00 00 00    	je     0x406d0f
406c85:	89 55 fc             	mov    %edx,-0x4(%ebp)
406c88:	89 7d f4             	mov    %edi,-0xc(%ebp)
406c8b:	89 75 f8             	mov    %esi,-0x8(%ebp)
406c8e:	83 ef 04             	sub    $0x4,%edi
406c91:	3b fe                	cmp    %esi,%edi
406c93:	72 54                	jb     0x406ce9
406c95:	8b 07                	mov    (%edi),%eax
406c97:	3b 45 fc             	cmp    -0x4(%ebp),%eax
406c9a:	74 f2                	je     0x406c8e
406c9c:	33 c2                	xor    %edx,%eax
406c9e:	8b 55 fc             	mov    -0x4(%ebp),%edx
406ca1:	d3 c8                	ror    %cl,%eax
406ca3:	8b c8                	mov    %eax,%ecx
406ca5:	89 17                	mov    %edx,(%edi)
406ca7:	89 45 f0             	mov    %eax,-0x10(%ebp)
406caa:	ff 15 18 f1 40 00    	call   *0x40f118
406cb0:	ff 55 f0             	call   *-0x10(%ebp)
406cb3:	8b 03                	mov    (%ebx),%eax
406cb5:	8b 15 14 60 41 00    	mov    0x416014,%edx
406cbb:	8b ca                	mov    %edx,%ecx
406cbd:	83 e1 1f             	and    $0x1f,%ecx
406cc0:	8b 00                	mov    (%eax),%eax
406cc2:	8b 18                	mov    (%eax),%ebx
406cc4:	8b 40 04             	mov    0x4(%eax),%eax
406cc7:	33 da                	xor    %edx,%ebx
406cc9:	d3 cb                	ror    %cl,%ebx
406ccb:	33 c2                	xor    %edx,%eax
406ccd:	d3 c8                	ror    %cl,%eax
406ccf:	3b 5d f8             	cmp    -0x8(%ebp),%ebx
406cd2:	89 5d f0             	mov    %ebx,-0x10(%ebp)
406cd5:	8b 5d ec             	mov    -0x14(%ebp),%ebx
406cd8:	75 05                	jne    0x406cdf
406cda:	3b 45 f4             	cmp    -0xc(%ebp),%eax
406cdd:	74 af                	je     0x406c8e
406cdf:	8b 75 f0             	mov    -0x10(%ebp),%esi
406ce2:	8b f8                	mov    %eax,%edi
406ce4:	89 45 f4             	mov    %eax,-0xc(%ebp)
406ce7:	eb a2                	jmp    0x406c8b
406ce9:	83 fe ff             	cmp    $0xffffffff,%esi
406cec:	74 0d                	je     0x406cfb
406cee:	56                   	push   %esi
406cef:	e8 85 0b 00 00       	call   0x407879
406cf4:	8b 15 14 60 41 00    	mov    0x416014,%edx
406cfa:	59                   	pop    %ecx
406cfb:	8b 03                	mov    (%ebx),%eax
406cfd:	8b 00                	mov    (%eax),%eax
406cff:	89 10                	mov    %edx,(%eax)
406d01:	8b 03                	mov    (%ebx),%eax
406d03:	8b 00                	mov    (%eax),%eax
406d05:	89 50 04             	mov    %edx,0x4(%eax)
406d08:	8b 03                	mov    (%ebx),%eax
406d0a:	8b 00                	mov    (%eax),%eax
406d0c:	89 50 08             	mov    %edx,0x8(%eax)
406d0f:	33 c0                	xor    %eax,%eax
406d11:	5e                   	pop    %esi
406d12:	5f                   	pop    %edi
406d13:	5b                   	pop    %ebx
406d14:	c9                   	leave
406d15:	c3                   	ret
406d16:	8b ff                	mov    %edi,%edi
406d18:	55                   	push   %ebp
406d19:	8b ec                	mov    %esp,%ebp
406d1b:	ff 75 08             	push   0x8(%ebp)
406d1e:	68 d4 6e 41 00       	push   $0x416ed4
406d23:	e8 6b 00 00 00       	call   0x406d93
406d28:	59                   	pop    %ecx
406d29:	59                   	pop    %ecx
406d2a:	5d                   	pop    %ebp
406d2b:	c3                   	ret
406d2c:	6a 10                	push   $0x10
406d2e:	b8 50 ef 40 00       	mov    $0x40ef50,%eax
406d33:	e8 ad 7f 00 00       	call   0x40ece5
406d38:	8d 45 08             	lea    0x8(%ebp),%eax
406d3b:	89 45 e8             	mov    %eax,-0x18(%ebp)
406d3e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406d42:	8d 4d f3             	lea    -0xd(%ebp),%ecx
406d45:	6a 02                	push   $0x2
406d47:	58                   	pop    %eax
406d48:	89 45 ec             	mov    %eax,-0x14(%ebp)
406d4b:	89 45 e4             	mov    %eax,-0x1c(%ebp)
406d4e:	8d 45 ec             	lea    -0x14(%ebp),%eax
406d51:	50                   	push   %eax
406d52:	8d 45 e8             	lea    -0x18(%ebp),%eax
406d55:	50                   	push   %eax
406d56:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406d59:	50                   	push   %eax
406d5a:	e8 25 fd ff ff       	call   0x406a84
406d5f:	e8 6d 7f 00 00       	call   0x40ecd1
406d64:	c3                   	ret
406d65:	cc                   	int3
406d66:	cc                   	int3
406d67:	cc                   	int3
406d68:	cc                   	int3
406d69:	cc                   	int3
406d6a:	8b ff                	mov    %edi,%edi
406d6c:	55                   	push   %ebp
406d6d:	8b ec                	mov    %esp,%ebp
406d6f:	8b 4d 08             	mov    0x8(%ebp),%ecx
406d72:	85 c9                	test   %ecx,%ecx
406d74:	75 05                	jne    0x406d7b
406d76:	83 c8 ff             	or     $0xffffffff,%eax
406d79:	5d                   	pop    %ebp
406d7a:	c3                   	ret
406d7b:	8b 01                	mov    (%ecx),%eax
406d7d:	3b 41 08             	cmp    0x8(%ecx),%eax
406d80:	75 0d                	jne    0x406d8f
406d82:	a1 14 60 41 00       	mov    0x416014,%eax
406d87:	89 01                	mov    %eax,(%ecx)
406d89:	89 41 04             	mov    %eax,0x4(%ecx)
406d8c:	89 41 08             	mov    %eax,0x8(%ecx)
406d8f:	33 c0                	xor    %eax,%eax
406d91:	5d                   	pop    %ebp
406d92:	c3                   	ret
406d93:	8b ff                	mov    %edi,%edi
406d95:	55                   	push   %ebp
406d96:	8b ec                	mov    %esp,%ebp
406d98:	83 ec 14             	sub    $0x14,%esp
406d9b:	8d 45 08             	lea    0x8(%ebp),%eax
406d9e:	89 45 ec             	mov    %eax,-0x14(%ebp)
406da1:	8d 4d ff             	lea    -0x1(%ebp),%ecx
406da4:	6a 02                	push   $0x2
406da6:	8d 45 0c             	lea    0xc(%ebp),%eax
406da9:	89 45 f0             	mov    %eax,-0x10(%ebp)
406dac:	58                   	pop    %eax
406dad:	89 45 f8             	mov    %eax,-0x8(%ebp)
406db0:	89 45 f4             	mov    %eax,-0xc(%ebp)
406db3:	8d 45 f8             	lea    -0x8(%ebp),%eax
406db6:	50                   	push   %eax
406db7:	8d 45 ec             	lea    -0x14(%ebp),%eax
406dba:	50                   	push   %eax
406dbb:	8d 45 f4             	lea    -0xc(%ebp),%eax
406dbe:	50                   	push   %eax
406dbf:	e8 1b fd ff ff       	call   0x406adf
406dc4:	c9                   	leave
406dc5:	c3                   	ret
406dc6:	c7 05 ec 6e 41 00 58 	movl   $0x416058,0x416eec
406dcd:	60 41 00
406dd0:	b0 01                	mov    $0x1,%al
406dd2:	c3                   	ret
406dd3:	68 d4 6e 41 00       	push   $0x416ed4
406dd8:	e8 8d ff ff ff       	call   0x406d6a
406ddd:	c7 04 24 e0 6e 41 00 	movl   $0x416ee0,(%esp)
406de4:	e8 81 ff ff ff       	call   0x406d6a
406de9:	59                   	pop    %ecx
406dea:	b0 01                	mov    $0x1,%al
406dec:	c3                   	ret
406ded:	e8 fe f6 ff ff       	call   0x4064f0
406df2:	b0 01                	mov    $0x1,%al
406df4:	c3                   	ret
406df5:	8b ff                	mov    %edi,%edi
406df7:	56                   	push   %esi
406df8:	8b 35 14 60 41 00    	mov    0x416014,%esi
406dfe:	56                   	push   %esi
406dff:	e8 55 ee ff ff       	call   0x405c59
406e04:	56                   	push   %esi
406e05:	e8 8e ef ff ff       	call   0x405d98
406e0a:	56                   	push   %esi
406e0b:	e8 b8 33 00 00       	call   0x40a1c8
406e10:	56                   	push   %esi
406e11:	e8 d1 f1 ff ff       	call   0x405fe7
406e16:	56                   	push   %esi
406e17:	e8 6e fa ff ff       	call   0x40688a
406e1c:	83 c4 14             	add    $0x14,%esp
406e1f:	b0 01                	mov    $0x1,%al
406e21:	5e                   	pop    %esi
406e22:	c3                   	ret
406e23:	6a 00                	push   $0x0
406e25:	e8 63 d1 ff ff       	call   0x403f8d
406e2a:	59                   	pop    %ecx
406e2b:	c3                   	ret
406e2c:	8b ff                	mov    %edi,%edi
406e2e:	55                   	push   %ebp
406e2f:	8b ec                	mov    %esp,%ebp
406e31:	51                   	push   %ecx
406e32:	68 4c 70 41 00       	push   $0x41704c
406e37:	8d 4d ff             	lea    -0x1(%ebp),%ecx
406e3a:	e8 54 00 00 00       	call   0x406e93
406e3f:	b0 01                	mov    $0x1,%al