405aa9:	cc                   	int3
405aaa:	cc                   	int3
405aab:	cc                   	int3
405aac:	cc                   	int3
405aad:	cc                   	int3
405aae:	cc                   	int3
405aaf:	cc                   	int3
405ab0:	8b ff                	mov    %edi,%edi
405ab2:	55                   	push   %ebp
405ab3:	8b ec                	mov    %esp,%ebp
405ab5:	53                   	push   %ebx
405ab6:	8b 5d 08             	mov    0x8(%ebp),%ebx
405ab9:	85 db                	test   %ebx,%ebx
405abb:	75 07                	jne    0x405ac4
405abd:	b8 03 40 00 80       	mov    $0x80004003,%eax
405ac2:	eb 3f                	jmp    0x405b03
405ac4:	56                   	push   %esi
405ac5:	57                   	push   %edi
405ac6:	33 ff                	xor    %edi,%edi
405ac8:	8d 71 28             	lea    0x28(%ecx),%esi
405acb:	39 3e                	cmp    %edi,(%esi)
405acd:	75 1a                	jne    0x405ae9
405acf:	56                   	push   %esi
405ad0:	68 e4 24 40 00       	push   $0x4024e4
405ad5:	6a 01                	push   $0x1
405ad7:	57                   	push   %edi
405ad8:	68 d0 23 40 00       	push   $0x4023d0
405add:	ff 15 24 f1 40 00    	call   *0x40f124
405ae3:	8b f8                	mov    %eax,%edi
405ae5:	85 ff                	test   %edi,%edi
405ae7:	78 16                	js     0x405aff
405ae9:	8b 0e                	mov    (%esi),%ecx
405aeb:	89 0b                	mov    %ecx,(%ebx)
405aed:	8b 0e                	mov    (%esi),%ecx
405aef:	51                   	push   %ecx
405af0:	8b 11                	mov    (%ecx),%edx
405af2:	8b 72 04             	mov    0x4(%edx),%esi
405af5:	8b ce                	mov    %esi,%ecx
405af7:	ff 15 20 f2 40 00    	call   *0x40f220
405afd:	ff d6                	call   *%esi
405aff:	8b c7                	mov    %edi,%eax
405b01:	5f                   	pop    %edi
405b02:	5e                   	pop    %esi
405b03:	5b                   	pop    %ebx
405b04:	5d                   	pop    %ebp
405b05:	c2 04 00             	ret    $0x4
405b08:	cc                   	int3
405b09:	cc                   	int3
405b0a:	cc                   	int3
405b0b:	cc                   	int3
405b0c:	cc                   	int3
405b0d:	cc                   	int3
405b0e:	cc                   	int3
405b0f:	cc                   	int3
405b10:	8b ff                	mov    %edi,%edi
405b12:	55                   	push   %ebp
405b13:	8b ec                	mov    %esp,%ebp
405b15:	8b 45 08             	mov    0x8(%ebp),%eax
405b18:	56                   	push   %esi
405b19:	68 00 25 40 00       	push   $0x402500
405b1e:	68 f4 24 40 00       	push   $0x4024f4
405b23:	8b 08                	mov    (%eax),%ecx
405b25:	50                   	push   %eax
405b26:	8b 71 0c             	mov    0xc(%ecx),%esi
405b29:	8b ce                	mov    %esi,%ecx
405b2b:	ff 15 20 f2 40 00    	call   *0x40f220
405b31:	ff d6                	call   *%esi
405b33:	5e                   	pop    %esi
405b34:	5d                   	pop    %ebp
405b35:	c2 04 00             	ret    $0x4
405b38:	cc                   	int3
405b39:	cc                   	int3
405b3a:	cc                   	int3
405b3b:	cc                   	int3
405b3c:	cc                   	int3
405b3d:	cc                   	int3
405b3e:	cc                   	int3
405b3f:	cc                   	int3
405b40:	b8 05 40 00 80       	mov    $0x80004005,%eax
405b45:	c2 10 00             	ret    $0x10
405b48:	8b ff                	mov    %edi,%edi
405b4a:	55                   	push   %ebp
405b4b:	8b ec                	mov    %esp,%ebp
405b4d:	81 ec 50 0a 00 00    	sub    $0xa50,%esp
405b53:	a1 e4 c1 40 00       	mov    0x40c1e4,%eax
405b58:	33 c5                	xor    %ebp,%eax
405b5a:	89 45 fc             	mov    %eax,-0x4(%ebp)
405b5d:	53                   	push   %ebx
405b5e:	33 c0                	xor    %eax,%eax
405b60:	c7 85 b0 f5 ff ff 50 	movl   $0x401650,-0xa50(%ebp)
405b67:	16 40 00
405b6a:	56                   	push   %esi
405b6b:	8b 75 0c             	mov    0xc(%ebp),%esi
405b6e:	8b d9                	mov    %ecx,%ebx
405b70:	89 85 b4 f5 ff ff    	mov    %eax,-0xa4c(%ebp)
405b76:	89 85 b8 f5 ff ff    	mov    %eax,-0xa48(%ebp)
405b7c:	89 85 bc f5 ff ff    	mov    %eax,-0xa44(%ebp)
405b82:	57                   	push   %edi
405b83:	8b fa                	mov    %edx,%edi
405b85:	85 f6                	test   %esi,%esi
405b87:	74 1b                	je     0x405ba4
405b89:	eb 13                	jmp    0x405b9e
405b8b:	ff 76 04             	push   0x4(%esi)
405b8e:	50                   	push   %eax
405b8f:	8d 85 b0 f5 ff ff    	lea    -0xa50(%ebp),%eax
405b95:	50                   	push   %eax
405b96:	e8 c5 06 00 00       	call   0x406260
405b9b:	8d 76 08             	lea    0x8(%esi),%esi
405b9e:	8b 06                	mov    (%esi),%eax
405ba0:	85 c0                	test   %eax,%eax
405ba2:	75 e7                	jne    0x405b8b
405ba4:	8b 03                	mov    (%ebx),%eax
405ba6:	8d 8d b0 f5 ff ff    	lea    -0xa50(%ebp),%ecx
405bac:	51                   	push   %ecx
405bad:	8b 70 14             	mov    0x14(%eax),%esi
405bb0:	8b ce                	mov    %esi,%ecx
405bb2:	ff 15 20 f2 40 00    	call   *0x40f220
405bb8:	8b cb                	mov    %ebx,%ecx
405bba:	ff d6                	call   *%esi
405bbc:	8b f0                	mov    %eax,%esi
405bbe:	85 f6                	test   %esi,%esi
405bc0:	0f 88 34 01 00 00    	js     0x405cfa
405bc6:	8b 35 b4 c0 40 00    	mov    0x40c0b4,%esi
405bcc:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
405bd2:	68 04 01 00 00       	push   $0x104
405bd7:	50                   	push   %eax
405bd8:	33 db                	xor    %ebx,%ebx
405bda:	56                   	push   %esi
405bdb:	89 9d c8 f5 ff ff    	mov    %ebx,-0xa38(%ebp)
405be1:	ff 15 ac f0 40 00    	call   *0x40f0ac
405be7:	85 c0                	test   %eax,%eax
405be9:	75 0c                	jne    0x405bf7
405beb:	e8 06 07 00 00       	call   0x4062f6
405bf0:	8b f0                	mov    %eax,%esi
405bf2:	e9 f8 00 00 00       	jmp    0x405cef
405bf7:	3d 04 01 00 00       	cmp    $0x104,%eax
405bfc:	75 15                	jne    0x405c13
405bfe:	8d 8d c8 f5 ff ff    	lea    -0xa38(%ebp),%ecx
405c04:	e8 83 0a 00 00       	call   0x40668c
405c09:	be 7a 00 07 80       	mov    $0x8007007a,%esi
405c0e:	e9 e7 00 00 00       	jmp    0x405cfa
405c13:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
405c19:	ba 08 02 00 00       	mov    $0x208,%edx
405c1e:	50                   	push   %eax
405c1f:	8d 8d cc f5 ff ff    	lea    -0xa34(%ebp),%ecx
405c25:	e8 ac 03 00 00       	call   0x405fd6
405c2a:	85 f6                	test   %esi,%esi
405c2c:	74 13                	je     0x405c41
405c2e:	53                   	push   %ebx
405c2f:	ff 15 88 f0 40 00    	call   *0x40f088
405c35:	3b f0                	cmp    %eax,%esi
405c37:	74 08                	je     0x405c41
405c39:	8d 85 cc f5 ff ff    	lea    -0xa34(%ebp),%eax
405c3f:	eb 78                	jmp    0x405cb9
405c41:	6a 22                	push   $0x22
405c43:	5e                   	pop    %esi
405c44:	8d 85 cc f5 ff ff    	lea    -0xa34(%ebp),%eax
405c4a:	66 89 b5 dc f9 ff ff 	mov    %si,-0x624(%ebp)
405c51:	50                   	push   %eax
405c52:	8d 8d de f9 ff ff    	lea    -0x622(%ebp),%ecx
405c58:	e8 c7 03 00 00       	call   0x406024
405c5d:	84 c0                	test   %al,%al
405c5f:	75 15                	jne    0x405c76
405c61:	8d 8d c8 f5 ff ff    	lea    -0xa38(%ebp),%ecx
405c67:	e8 20 0a 00 00       	call   0x40668c
405c6c:	be 05 40 00 80       	mov    $0x80004005,%esi
405c71:	e9 84 00 00 00       	jmp    0x405cfa
405c76:	8d 8d dc f9 ff ff    	lea    -0x624(%ebp),%ecx
405c7c:	8d 51 02             	lea    0x2(%ecx),%edx
405c7f:	66 8b 01             	mov    (%ecx),%ax
405c82:	83 c1 02             	add    $0x2,%ecx
405c85:	66 3b c3             	cmp    %bx,%ax
405c88:	75 f5                	jne    0x405c7f
405c8a:	2b ca                	sub    %edx,%ecx
405c8c:	d1 f9                	sar    $1,%ecx
405c8e:	66 89 b4 4d dc f9 ff 	mov    %si,-0x624(%ebp,%ecx,2)
405c95:	ff
405c96:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
405c9d:	81 f9 18 04 00 00    	cmp    $0x418,%ecx
405ca3:	0f 83 ca 00 00 00    	jae    0x405d73
405ca9:	33 c0                	xor    %eax,%eax
405cab:	66 89 84 0d dc f9 ff 	mov    %ax,-0x624(%ebp,%ecx,1)
405cb2:	ff
405cb3:	8d 85 dc f9 ff ff    	lea    -0x624(%ebp),%eax
405cb9:	50                   	push   %eax
405cba:	68 34 25 40 00       	push   $0x402534
405cbf:	8d 85 b0 f5 ff ff    	lea    -0xa50(%ebp),%eax
405cc5:	50                   	push   %eax
405cc6:	e8 95 05 00 00       	call   0x406260
405ccb:	8b f0                	mov    %eax,%esi
405ccd:	85 f6                	test   %esi,%esi
405ccf:	78 1e                	js     0x405cef
405cd1:	8d 85 cc f5 ff ff    	lea    -0xa34(%ebp),%eax
405cd7:	50                   	push   %eax
405cd8:	68 44 25 40 00       	push   $0x402544
405cdd:	8d 85 b0 f5 ff ff    	lea    -0xa50(%ebp),%eax
405ce3:	50                   	push   %eax
405ce4:	e8 77 05 00 00       	call   0x406260
405ce9:	8b f0                	mov    %eax,%esi
405ceb:	85 f6                	test   %esi,%esi
405ced:	79 29                	jns    0x405d18
405cef:	8d 8d c8 f5 ff ff    	lea    -0xa38(%ebp),%ecx
405cf5:	e8 92 09 00 00       	call   0x40668c
405cfa:	8d 8d b0 f5 ff ff    	lea    -0xa50(%ebp),%ecx
405d00:	e8 af 02 00 00       	call   0x405fb4
405d05:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405d08:	8b c6                	mov    %esi,%eax
405d0a:	5f                   	pop    %edi
405d0b:	5e                   	pop    %esi
405d0c:	33 cd                	xor    %ebp,%ecx
405d0e:	5b                   	pop    %ebx
405d0f:	e8 4c 3b 00 00       	call   0x409860
405d14:	c9                   	leave
405d15:	c2 08 00             	ret    $0x8
405d18:	89 9d c4 f5 ff ff    	mov    %ebx,-0xa3c(%ebp)
405d1e:	39 5d 08             	cmp    %ebx,0x8(%ebp)
405d21:	74 34                	je     0x405d57
405d23:	85 ff                	test   %edi,%edi
405d25:	74 1e                	je     0x405d45
405d27:	6a 01                	push   $0x1
405d29:	68 5c 25 40 00       	push   $0x40255c
405d2e:	57                   	push   %edi
405d2f:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
405d35:	50                   	push   %eax
405d36:	8d 8d b0 f5 ff ff    	lea    -0xa50(%ebp),%ecx
405d3c:	e8 6f 1a 00 00       	call   0x4077b0
405d41:	8b f0                	mov    %eax,%esi
405d43:	eb 05                	jmp    0x405d4a
405d45:	be 57 00 07 80       	mov    $0x80070057,%esi
405d4a:	8d 8d c4 f5 ff ff    	lea    -0xa3c(%ebp),%ecx
405d50:	e8 37 09 00 00       	call   0x40668c
405d55:	eb 98                	jmp    0x405cef
405d57:	85 ff                	test   %edi,%edi
405d59:	74 03                	je     0x405d5e
405d5b:	53                   	push   %ebx
405d5c:	eb cb                	jmp    0x405d29
405d5e:	8d 8d c4 f5 ff ff    	lea    -0xa3c(%ebp),%ecx
405d64:	e8 23 09 00 00       	call   0x40668c
405d69:	be 57 00 07 80       	mov    $0x80070057,%esi
405d6e:	e9 7c ff ff ff       	jmp    0x405cef
405d73:	e8 e7 3d 00 00       	call   0x409b5f
405d78:	cc                   	int3
405d79:	cc                   	int3
405d7a:	cc                   	int3
405d7b:	cc                   	int3
405d7c:	cc                   	int3
405d7d:	cc                   	int3
405d7e:	cc                   	int3
405d7f:	cc                   	int3
405d80:	8b ff                	mov    %edi,%edi
405d82:	55                   	push   %ebp
405d83:	8b ec                	mov    %esp,%ebp
405d85:	ff 75 14             	push   0x14(%ebp)
405d88:	8b 55 0c             	mov    0xc(%ebp),%edx
405d8b:	ff 75 10             	push   0x10(%ebp)
405d8e:	8b 4d 08             	mov    0x8(%ebp),%ecx
405d91:	e8 b2 fd ff ff       	call   0x405b48
405d96:	5d                   	pop    %ebp
405d97:	c2 10 00             	ret    $0x10
405d9a:	cc                   	int3
405d9b:	cc                   	int3
405d9c:	cc                   	int3
405d9d:	cc                   	int3
405d9e:	cc                   	int3
405d9f:	cc                   	int3
405da0:	83 c8 ff             	or     $0xffffffff,%eax
405da3:	f0 0f c1 41 08       	lock xadd %eax,0x8(%ecx)
405da8:	48                   	dec    %eax
405da9:	c3                   	ret
405daa:	33 c0                	xor    %eax,%eax
405dac:	39 01                	cmp    %eax,(%ecx)
405dae:	75 18                	jne    0x405dc8
405db0:	39 41 04             	cmp    %eax,0x4(%ecx)
405db3:	75 13                	jne    0x405dc8
405db5:	81 79 08 c0 00 00 00 	cmpl   $0xc0,0x8(%ecx)
405dbc:	75 0a                	jne    0x405dc8
405dbe:	81 79 0c 00 00 00 46 	cmpl   $0x46000000,0xc(%ecx)
405dc5:	75 01                	jne    0x405dc8
405dc7:	40                   	inc    %eax
405dc8:	c3                   	ret
405dc9:	8b 01                	mov    (%ecx),%eax
405dcb:	3b 02                	cmp    (%edx),%eax
405dcd:	75 1c                	jne    0x405deb
405dcf:	8b 41 04             	mov    0x4(%ecx),%eax
405dd2:	3b 42 04             	cmp    0x4(%edx),%eax
405dd5:	75 14                	jne    0x405deb
405dd7:	8b 41 08             	mov    0x8(%ecx),%eax
405dda:	3b 42 08             	cmp    0x8(%edx),%eax
405ddd:	75 0c                	jne    0x405deb
405ddf:	8b 41 0c             	mov    0xc(%ecx),%eax
405de2:	3b 42 0c             	cmp    0xc(%edx),%eax
405de5:	75 04                	jne    0x405deb
405de7:	33 c0                	xor    %eax,%eax
405de9:	40                   	inc    %eax
405dea:	c3                   	ret
405deb:	33 c0                	xor    %eax,%eax
405ded:	c3                   	ret
405dee:	8b ff                	mov    %edi,%edi
405df0:	55                   	push   %ebp
405df1:	8b ec                	mov    %esp,%ebp
405df3:	51                   	push   %ecx
405df4:	51                   	push   %ecx
405df5:	53                   	push   %ebx
405df6:	56                   	push   %esi
405df7:	8b f1                	mov    %ecx,%esi
405df9:	57                   	push   %edi
405dfa:	85 f6                	test   %esi,%esi
405dfc:	0f 84 9f 00 00 00    	je     0x405ea1
405e02:	85 d2                	test   %edx,%edx
405e04:	0f 84 97 00 00 00    	je     0x405ea1
405e0a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
405e0d:	85 db                	test   %ebx,%ebx
405e0f:	75 0a                	jne    0x405e1b
405e11:	b8 03 40 00 80       	mov    $0x80004003,%eax
405e16:	e9 8b 00 00 00       	jmp    0x405ea6
405e1b:	83 23 00             	andl   $0x0,(%ebx)
405e1e:	8b 4d 08             	mov    0x8(%ebp),%ecx
405e21:	e8 84 ff ff ff       	call   0x405daa
405e26:	85 c0                	test   %eax,%eax
405e28:	74 1b                	je     0x405e45
405e2a:	8b 7a 04             	mov    0x4(%edx),%edi
405e2d:	03 fe                	add    %esi,%edi
405e2f:	57                   	push   %edi
405e30:	8b 07                	mov    (%edi),%eax
405e32:	8b 70 04             	mov    0x4(%eax),%esi
405e35:	8b ce                	mov    %esi,%ecx
405e37:	ff 15 20 f2 40 00    	call   *0x40f220
405e3d:	ff d6                	call   *%esi
405e3f:	89 3b                	mov    %edi,(%ebx)
405e41:	33 c0                	xor    %eax,%eax
405e43:	eb 61                	jmp    0x405ea6
405e45:	8d 7a 08             	lea    0x8(%edx),%edi
405e48:	eb 46                	jmp    0x405e90
405e4a:	8b 47 f8             	mov    -0x8(%edi),%eax
405e4d:	89 45 f8             	mov    %eax,-0x8(%ebp)
405e50:	85 c0                	test   %eax,%eax
405e52:	74 0e                	je     0x405e62
405e54:	8b 55 08             	mov    0x8(%ebp),%edx
405e57:	8b c8                	mov    %eax,%ecx
405e59:	e8 6b ff ff ff       	call   0x405dc9
405e5e:	85 c0                	test   %eax,%eax
405e60:	74 2b                	je     0x405e8d
405e62:	8b 07                	mov    (%edi),%eax
405e64:	89 45 fc             	mov    %eax,-0x4(%ebp)
405e67:	83 f8 01             	cmp    $0x1,%eax
405e6a:	74 30                	je     0x405e9c
405e6c:	ff 77 fc             	push   -0x4(%edi)
405e6f:	8b c8                	mov    %eax,%ecx
405e71:	53                   	push   %ebx
405e72:	ff 75 08             	push   0x8(%ebp)