40eb1e:	85 c0                	test   %eax,%eax
40eb20:	79 0d                	jns    0x40eb2f
40eb22:	50                   	push   %eax
40eb23:	68 e0 3d 40 00       	push   $0x403de0
40eb28:	68 00 05 00 00       	push   $0x500
40eb2d:	eb 4f                	jmp    0x40eb7e
40eb2f:	8b 45 f0             	mov    -0x10(%ebp),%eax
40eb32:	53                   	push   %ebx
40eb33:	ff 37                	push   (%edi)
40eb35:	8b 30                	mov    (%eax),%esi
40eb37:	53                   	push   %ebx
40eb38:	50                   	push   %eax
40eb39:	8b 4e 28             	mov    0x28(%esi),%ecx
40eb3c:	ff 15 28 63 41 00    	call   *0x416328
40eb42:	ff 56 28             	call   *0x28(%esi)
40eb45:	85 c0                	test   %eax,%eax
40eb47:	79 0d                	jns    0x40eb56
40eb49:	50                   	push   %eax
40eb4a:	68 e0 3d 40 00       	push   $0x403de0
40eb4f:	68 06 05 00 00       	push   $0x506
40eb54:	eb 28                	jmp    0x40eb7e
40eb56:	8b 45 f0             	mov    -0x10(%ebp),%eax
40eb59:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40eb5c:	53                   	push   %ebx
40eb5d:	51                   	push   %ecx
40eb5e:	50                   	push   %eax
40eb5f:	8b 30                	mov    (%eax),%esi
40eb61:	8b 4e 30             	mov    0x30(%esi),%ecx
40eb64:	ff 15 28 63 41 00    	call   *0x416328
40eb6a:	ff 56 30             	call   *0x30(%esi)
40eb6d:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
40eb71:	75 16                	jne    0x40eb89
40eb73:	50                   	push   %eax
40eb74:	68 e0 3d 40 00       	push   $0x403de0
40eb79:	68 0f 05 00 00       	push   $0x50f
40eb7e:	68 e8 3c 40 00       	push   $0x403ce8
40eb83:	51                   	push   %ecx
40eb84:	e8 49 24 00 00       	call   0x410fd2
40eb89:	83 3f 00             	cmpl   $0x0,(%edi)
40eb8c:	74 0a                	je     0x40eb98
40eb8e:	ff 37                	push   (%edi)
40eb90:	ff 15 b8 61 41 00    	call   *0x4161b8
40eb96:	89 1f                	mov    %ebx,(%edi)
40eb98:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
40eb9c:	74 0c                	je     0x40ebaa
40eb9e:	ff 77 04             	push   0x4(%edi)
40eba1:	ff 15 b8 61 41 00    	call   *0x4161b8
40eba7:	89 5f 04             	mov    %ebx,0x4(%edi)
40ebaa:	57                   	push   %edi
40ebab:	53                   	push   %ebx
40ebac:	ff 15 e0 60 41 00    	call   *0x4160e0
40ebb2:	50                   	push   %eax
40ebb3:	ff 15 e4 60 41 00    	call   *0x4160e4
40ebb9:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40ebbc:	e8 2e 7e ff ff       	call   0x4069ef
40ebc1:	33 c0                	xor    %eax,%eax
40ebc3:	e8 64 39 00 00       	call   0x41252c
40ebc8:	c2 04 00             	ret    $0x4
40ebcb:	8b ff                	mov    %edi,%edi
40ebcd:	51                   	push   %ecx
40ebce:	68 08 2b 40 00       	push   $0x402b08
40ebd3:	6a 04                	push   $0x4
40ebd5:	6a 00                	push   $0x0
40ebd7:	68 c8 2c 40 00       	push   $0x402cc8
40ebdc:	ff 15 20 62 41 00    	call   *0x416220
40ebe2:	c2 0c 00             	ret    $0xc
40ebe5:	cc                   	int3
40ebe6:	cc                   	int3
40ebe7:	cc                   	int3
40ebe8:	cc                   	int3
40ebe9:	cc                   	int3
40ebea:	cc                   	int3
40ebeb:	cc                   	int3
40ebec:	cc                   	int3
40ebed:	cc                   	int3
40ebee:	cc                   	int3
40ebef:	cc                   	int3
40ebf0:	8b ff                	mov    %edi,%edi
40ebf2:	55                   	push   %ebp
40ebf3:	8b ec                	mov    %esp,%ebp
40ebf5:	8b 45 08             	mov    0x8(%ebp),%eax
40ebf8:	83 c0 08             	add    $0x8,%eax
40ebfb:	f0 ff 00             	lock incl (%eax)
40ebfe:	8b 00                	mov    (%eax),%eax
40ec00:	5d                   	pop    %ebp
40ec01:	c2 04 00             	ret    $0x4
40ec04:	cc                   	int3
40ec05:	cc                   	int3
40ec06:	cc                   	int3
40ec07:	cc                   	int3
40ec08:	cc                   	int3
40ec09:	cc                   	int3
40ec0a:	cc                   	int3
40ec0b:	cc                   	int3
40ec0c:	cc                   	int3
40ec0d:	cc                   	int3
40ec0e:	cc                   	int3
40ec0f:	cc                   	int3
40ec10:	8b ff                	mov    %edi,%edi
40ec12:	55                   	push   %ebp
40ec13:	8b ec                	mov    %esp,%ebp
40ec15:	56                   	push   %esi
40ec16:	8b 75 08             	mov    0x8(%ebp),%esi
40ec19:	83 c8 ff             	or     $0xffffffff,%eax
40ec1c:	8d 4e 08             	lea    0x8(%esi),%ecx
40ec1f:	f0 0f c1 01          	lock xadd %eax,(%ecx)
40ec23:	75 17                	jne    0x40ec3c
40ec25:	85 f6                	test   %esi,%esi
40ec27:	74 0f                	je     0x40ec38
40ec29:	8b ce                	mov    %esi,%ecx
40ec2b:	e8 cb ee ff ff       	call   0x40dafb
40ec30:	56                   	push   %esi
40ec31:	ff 15 d0 62 41 00    	call   *0x4162d0
40ec37:	59                   	pop    %ecx
40ec38:	33 c0                	xor    %eax,%eax
40ec3a:	eb 02                	jmp    0x40ec3e
40ec3c:	8b 01                	mov    (%ecx),%eax
40ec3e:	5e                   	pop    %esi
40ec3f:	5d                   	pop    %ebp
40ec40:	c2 04 00             	ret    $0x4
40ec43:	8b ff                	mov    %edi,%edi
40ec45:	55                   	push   %ebp
40ec46:	8b ec                	mov    %esp,%ebp
40ec48:	56                   	push   %esi
40ec49:	57                   	push   %edi
40ec4a:	8b 7d 08             	mov    0x8(%ebp),%edi
40ec4d:	8b f1                	mov    %ecx,%esi
40ec4f:	8b 06                	mov    (%esi),%eax
40ec51:	3b 07                	cmp    (%edi),%eax
40ec53:	74 19                	je     0x40ec6e
40ec55:	50                   	push   %eax
40ec56:	ff 15 b8 61 41 00    	call   *0x4161b8
40ec5c:	8b cf                	mov    %edi,%ecx
40ec5e:	e8 7e ac ff ff       	call   0x4098e1
40ec63:	89 06                	mov    %eax,(%esi)
40ec65:	83 3f 00             	cmpl   $0x0,(%edi)
40ec68:	74 04                	je     0x40ec6e
40ec6a:	85 c0                	test   %eax,%eax
40ec6c:	74 08                	je     0x40ec76
40ec6e:	5f                   	pop    %edi
40ec6f:	8b c6                	mov    %esi,%eax
40ec71:	5e                   	pop    %esi
40ec72:	5d                   	pop    %ebp
40ec73:	c2 04 00             	ret    $0x4
40ec76:	b9 0e 00 07 80       	mov    $0x8007000e,%ecx
40ec7b:	e8 6f 5f ff ff       	call   0x404bef
40ec80:	cc                   	int3
40ec81:	8b ff                	mov    %edi,%edi
40ec83:	55                   	push   %ebp
40ec84:	8b ec                	mov    %esp,%ebp
40ec86:	51                   	push   %ecx
40ec87:	56                   	push   %esi
40ec88:	ff 75 08             	push   0x8(%ebp)
40ec8b:	8b f1                	mov    %ecx,%esi
40ec8d:	ff 15 7c 61 41 00    	call   *0x41617c
40ec93:	85 c0                	test   %eax,%eax
40ec95:	74 2a                	je     0x40ecc1
40ec97:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ec9b:	8d 45 fc             	lea    -0x4(%ebp),%eax
40ec9e:	57                   	push   %edi
40ec9f:	50                   	push   %eax
40eca0:	ff 75 08             	push   0x8(%ebp)
40eca3:	ff 36                	push   (%esi)
40eca5:	ff 15 84 61 41 00    	call   *0x416184
40ecab:	8b f8                	mov    %eax,%edi
40ecad:	85 ff                	test   %edi,%edi
40ecaf:	78 0d                	js     0x40ecbe
40ecb1:	ff 36                	push   (%esi)
40ecb3:	ff 15 b8 61 41 00    	call   *0x4161b8
40ecb9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ecbc:	89 0e                	mov    %ecx,(%esi)
40ecbe:	8b c7                	mov    %edi,%eax
40ecc0:	5f                   	pop    %edi
40ecc1:	5e                   	pop    %esi
40ecc2:	c9                   	leave
40ecc3:	c2 04 00             	ret    $0x4
40ecc6:	8b ff                	mov    %edi,%edi
40ecc8:	55                   	push   %ebp
40ecc9:	8b ec                	mov    %esp,%ebp
40eccb:	6a ff                	push   $0xffffffff
40eccd:	68 c0 2e 41 00       	push   $0x412ec0
40ecd2:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40ecd8:	50                   	push   %eax
40ecd9:	56                   	push   %esi
40ecda:	57                   	push   %edi
40ecdb:	a1 f4 51 41 00       	mov    0x4151f4,%eax
40ece0:	33 c5                	xor    %ebp,%eax
40ece2:	50                   	push   %eax
40ece3:	8d 45 f4             	lea    -0xc(%ebp),%eax
40ece6:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40ecec:	8b f9                	mov    %ecx,%edi
40ecee:	8b 4f 08             	mov    0x8(%edi),%ecx
40ecf1:	85 c9                	test   %ecx,%ecx
40ecf3:	74 20                	je     0x40ed15
40ecf5:	e8 18 ef ff ff       	call   0x40dc12
40ecfa:	8b 4f 08             	mov    0x8(%edi),%ecx
40ecfd:	85 c9                	test   %ecx,%ecx
40ecff:	74 14                	je     0x40ed15
40ed01:	8b 01                	mov    (%ecx),%eax
40ed03:	51                   	push   %ecx
40ed04:	8b 70 08             	mov    0x8(%eax),%esi
40ed07:	8b ce                	mov    %esi,%ecx
40ed09:	ff 15 28 63 41 00    	call   *0x416328
40ed0f:	ff d6                	call   *%esi
40ed11:	83 67 08 00          	andl   $0x0,0x8(%edi)
40ed15:	ff 77 1c             	push   0x1c(%edi)
40ed18:	ff 15 b8 61 41 00    	call   *0x4161b8
40ed1e:	ff 77 10             	push   0x10(%edi)
40ed21:	ff 15 b8 61 41 00    	call   *0x4161b8
40ed27:	8b 4f 0c             	mov    0xc(%edi),%ecx
40ed2a:	85 c9                	test   %ecx,%ecx
40ed2c:	74 10                	je     0x40ed3e
40ed2e:	8b 01                	mov    (%ecx),%eax
40ed30:	51                   	push   %ecx
40ed31:	8b 70 08             	mov    0x8(%eax),%esi
40ed34:	8b ce                	mov    %esi,%ecx
40ed36:	ff 15 28 63 41 00    	call   *0x416328
40ed3c:	ff d6                	call   *%esi
40ed3e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40ed41:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40ed48:	59                   	pop    %ecx
40ed49:	5f                   	pop    %edi
40ed4a:	5e                   	pop    %esi
40ed4b:	c9                   	leave
40ed4c:	c3                   	ret
40ed4d:	cc                   	int3
40ed4e:	cc                   	int3
40ed4f:	cc                   	int3
40ed50:	8b ff                	mov    %edi,%edi
40ed52:	55                   	push   %ebp
40ed53:	8b ec                	mov    %esp,%ebp
40ed55:	56                   	push   %esi
40ed56:	8b 75 0c             	mov    0xc(%ebp),%esi
40ed59:	85 f6                	test   %esi,%esi
40ed5b:	75 1f                	jne    0x40ed7c
40ed5d:	be 03 40 00 80       	mov    $0x80004003,%esi
40ed62:	56                   	push   %esi
40ed63:	68 38 3e 40 00       	push   $0x403e38
40ed68:	68 a5 00 00 00       	push   $0xa5
40ed6d:	68 78 3e 40 00       	push   $0x403e78
40ed72:	51                   	push   %ecx
40ed73:	e8 5a 22 00 00       	call   0x410fd2
40ed78:	8b c6                	mov    %esi,%eax
40ed7a:	eb 0f                	jmp    0x40ed8b
40ed7c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ed7f:	8d 49 1c             	lea    0x1c(%ecx),%ecx
40ed82:	e8 5a ab ff ff       	call   0x4098e1
40ed87:	89 06                	mov    %eax,(%esi)
40ed89:	33 c0                	xor    %eax,%eax
40ed8b:	5e                   	pop    %esi
40ed8c:	5d                   	pop    %ebp
40ed8d:	c2 08 00             	ret    $0x8
40ed90:	8b ff                	mov    %edi,%edi
40ed92:	55                   	push   %ebp
40ed93:	8b ec                	mov    %esp,%ebp
40ed95:	83 e4 f8             	and    $0xfffffff8,%esp
40ed98:	83 ec 14             	sub    $0x14,%esp
40ed9b:	53                   	push   %ebx
40ed9c:	56                   	push   %esi
40ed9d:	57                   	push   %edi
40ed9e:	33 f6                	xor    %esi,%esi
40eda0:	68 f0 1d 40 00       	push   $0x401df0
40eda5:	6a 28                	push   $0x28
40eda7:	89 74 24 20          	mov    %esi,0x20(%esp)
40edab:	89 74 24 1c          	mov    %esi,0x1c(%esp)
40edaf:	89 74 24 24          	mov    %esi,0x24(%esp)
40edb3:	e8 17 37 00 00       	call   0x4124cf
40edb8:	8b 5d 08             	mov    0x8(%ebp),%ebx
40edbb:	59                   	pop    %ecx
40edbc:	59                   	pop    %ecx
40edbd:	85 c0                	test   %eax,%eax
40edbf:	74 0c                	je     0x40edcd
40edc1:	53                   	push   %ebx
40edc2:	8b c8                	mov    %eax,%ecx
40edc4:	e8 34 02 00 00       	call   0x40effd
40edc9:	8b c8                	mov    %eax,%ecx
40edcb:	eb 02                	jmp    0x40edcf
40edcd:	8b ce                	mov    %esi,%ecx
40edcf:	89 4b 08             	mov    %ecx,0x8(%ebx)
40edd2:	85 c9                	test   %ecx,%ecx
40edd4:	0f 84 5e 01 00 00    	je     0x40ef38
40edda:	8b 01                	mov    (%ecx),%eax
40eddc:	51                   	push   %ecx
40eddd:	8b 70 04             	mov    0x4(%eax),%esi
40ede0:	8b ce                	mov    %esi,%ecx
40ede2:	ff 15 28 63 41 00    	call   *0x416328
40ede8:	ff d6                	call   *%esi
40edea:	8b 45 0c             	mov    0xc(%ebp),%eax
40eded:	85 c0                	test   %eax,%eax
40edef:	0f 84 3c 01 00 00    	je     0x40ef31
40edf5:	8b 30                	mov    (%eax),%esi
40edf7:	8d 4c 24 18          	lea    0x18(%esp),%ecx
40edfb:	51                   	push   %ecx
40edfc:	68 90 3c 40 00       	push   $0x403c90
40ee01:	50                   	push   %eax
40ee02:	8b 0e                	mov    (%esi),%ecx
40ee04:	ff 15 28 63 41 00    	call   *0x416328
40ee0a:	ff 16                	call   *(%esi)
40ee0c:	8b f8                	mov    %eax,%edi
40ee0e:	85 ff                	test   %edi,%edi
40ee10:	79 10                	jns    0x40ee22
40ee12:	57                   	push   %edi
40ee13:	68 d0 3e 40 00       	push   $0x403ed0
40ee18:	68 e5 00 00 00       	push   $0xe5
40ee1d:	e9 26 01 00 00       	jmp    0x40ef48
40ee22:	8b 44 24 18          	mov    0x18(%esp),%eax
40ee26:	8d 4c 24 14          	lea    0x14(%esp),%ecx
40ee2a:	51                   	push   %ecx
40ee2b:	68 a0 3c 40 00       	push   $0x403ca0
40ee30:	50                   	push   %eax
40ee31:	8b 30                	mov    (%eax),%esi
40ee33:	8b 4e 10             	mov    0x10(%esi),%ecx
40ee36:	ff 15 28 63 41 00    	call   *0x416328
40ee3c:	ff 56 10             	call   *0x10(%esi)
40ee3f:	8b f8                	mov    %eax,%edi
40ee41:	85 ff                	test   %edi,%edi
40ee43:	79 10                	jns    0x40ee55
40ee45:	57                   	push   %edi
40ee46:	68 d0 3e 40 00       	push   $0x403ed0
40ee4b:	68 ec 00 00 00       	push   $0xec
40ee50:	e9 f3 00 00 00       	jmp    0x40ef48
40ee55:	ff 74 24 14          	push   0x14(%esp)
40ee59:	8b 4b 08             	mov    0x8(%ebx),%ecx
40ee5c:	e8 e6 06 00 00       	call   0x40f547
40ee61:	8b f8                	mov    %eax,%edi
40ee63:	85 ff                	test   %edi,%edi
40ee65:	79 10                	jns    0x40ee77
40ee67:	57                   	push   %edi
40ee68:	68 d0 3e 40 00       	push   $0x403ed0
40ee6d:	68 f4 00 00 00       	push   $0xf4
40ee72:	e9 d1 00 00 00       	jmp    0x40ef48
40ee77:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40ee7a:	8d 53 0c             	lea    0xc(%ebx),%edx
40ee7d:	52                   	push   %edx
40ee7e:	68 80 3c 40 00       	push   $0x403c80
40ee83:	51                   	push   %ecx
40ee84:	8b 01                	mov    (%ecx),%eax
40ee86:	8b 30                	mov    (%eax),%esi
40ee88:	8b ce                	mov    %esi,%ecx
40ee8a:	ff 15 28 63 41 00    	call   *0x416328
40ee90:	ff d6                	call   *%esi
40ee92:	8b f8                	mov    %eax,%edi
40ee94:	85 ff                	test   %edi,%edi
40ee96:	79 10                	jns    0x40eea8
40ee98:	57                   	push   %edi
40ee99:	68 d0 3e 40 00       	push   $0x403ed0
40ee9e:	68 09 01 00 00       	push   $0x109
40eea3:	e9 a0 00 00 00       	jmp    0x40ef48
40eea8:	8b 4b 0c             	mov    0xc(%ebx),%ecx
40eeab:	85 c9                	test   %ecx,%ecx