40e916:	68 8e 04 00 00       	push   $0x48e
40e91b:	eb 79                	jmp    0x40e996
40e91d:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
40e921:	75 11                	jne    0x40e934
40e923:	68 ff ff 00 80       	push   $0x8000ffff
40e928:	68 b0 3d 40 00       	push   $0x403db0
40e92d:	68 9a 04 00 00       	push   $0x49a
40e932:	eb 62                	jmp    0x40e996
40e934:	8b 45 f0             	mov    -0x10(%ebp),%eax
40e937:	8d 55 e8             	lea    -0x18(%ebp),%edx
40e93a:	52                   	push   %edx
40e93b:	50                   	push   %eax
40e93c:	8b 08                	mov    (%eax),%ecx
40e93e:	8b 71 20             	mov    0x20(%ecx),%esi
40e941:	8b ce                	mov    %esi,%ecx
40e943:	ff 15 28 63 41 00    	call   *0x416328
40e949:	ff d6                	call   *%esi
40e94b:	85 c0                	test   %eax,%eax
40e94d:	79 0d                	jns    0x40e95c
40e94f:	50                   	push   %eax
40e950:	68 b0 3d 40 00       	push   $0x403db0
40e955:	68 a4 04 00 00       	push   $0x4a4
40e95a:	eb 3a                	jmp    0x40e996
40e95c:	8b 4f 04             	mov    0x4(%edi),%ecx
40e95f:	85 c9                	test   %ecx,%ecx
40e961:	75 11                	jne    0x40e974
40e963:	68 ff ff 00 80       	push   $0x8000ffff
40e968:	68 b0 3d 40 00       	push   $0x403db0
40e96d:	68 ae 04 00 00       	push   $0x4ae
40e972:	eb 22                	jmp    0x40e996
40e974:	8b 01                	mov    (%ecx),%eax
40e976:	ff 75 e8             	push   -0x18(%ebp)
40e979:	51                   	push   %ecx
40e97a:	8b 70 1c             	mov    0x1c(%eax),%esi
40e97d:	8b ce                	mov    %esi,%ecx
40e97f:	ff 15 28 63 41 00    	call   *0x416328
40e985:	ff d6                	call   *%esi
40e987:	85 c0                	test   %eax,%eax
40e989:	79 77                	jns    0x40ea02
40e98b:	50                   	push   %eax
40e98c:	68 b0 3d 40 00       	push   $0x403db0
40e991:	68 b4 04 00 00       	push   $0x4b4
40e996:	68 e8 3c 40 00       	push   $0x403ce8
40e99b:	51                   	push   %ecx
40e99c:	e8 31 26 00 00       	call   0x410fd2
40e9a1:	8b 4f 04             	mov    0x4(%edi),%ecx
40e9a4:	85 c9                	test   %ecx,%ecx
40e9a6:	74 5a                	je     0x40ea02
40e9a8:	8d 45 e0             	lea    -0x20(%ebp),%eax
40e9ab:	50                   	push   %eax
40e9ac:	e8 4b f0 ff ff       	call   0x40d9fc
40e9b1:	85 c0                	test   %eax,%eax
40e9b3:	78 4d                	js     0x40ea02
40e9b5:	8b 5d e0             	mov    -0x20(%ebp),%ebx
40e9b8:	85 db                	test   %ebx,%ebx
40e9ba:	74 46                	je     0x40ea02
40e9bc:	68 cc 3c 40 00       	push   $0x403ccc
40e9c1:	ff 15 a4 61 41 00    	call   *0x4161a4
40e9c7:	8b f0                	mov    %eax,%esi
40e9c9:	89 75 e0             	mov    %esi,-0x20(%ebp)
40e9cc:	85 f6                	test   %esi,%esi
40e9ce:	74 56                	je     0x40ea26
40e9d0:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40e9d4:	8b 03                	mov    (%ebx),%eax
40e9d6:	56                   	push   %esi
40e9d7:	6a 00                	push   $0x0
40e9d9:	53                   	push   %ebx
40e9da:	8b 78 1c             	mov    0x1c(%eax),%edi
40e9dd:	8b cf                	mov    %edi,%ecx
40e9df:	ff 15 28 63 41 00    	call   *0x416328
40e9e5:	ff d7                	call   *%edi
40e9e7:	56                   	push   %esi
40e9e8:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40e9ec:	ff 15 b8 61 41 00    	call   *0x4161b8
40e9f2:	8b 03                	mov    (%ebx),%eax
40e9f4:	53                   	push   %ebx
40e9f5:	8b 70 08             	mov    0x8(%eax),%esi
40e9f8:	8b ce                	mov    %esi,%ecx
40e9fa:	ff 15 28 63 41 00    	call   *0x416328
40ea00:	ff d6                	call   *%esi
40ea02:	ff 75 ec             	push   -0x14(%ebp)
40ea05:	ff 15 b8 61 41 00    	call   *0x4161b8
40ea0b:	ff 75 e8             	push   -0x18(%ebp)
40ea0e:	ff 15 b8 61 41 00    	call   *0x4161b8
40ea14:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40ea17:	e8 d3 7f ff ff       	call   0x4069ef
40ea1c:	33 c0                	xor    %eax,%eax
40ea1e:	e8 09 3b 00 00       	call   0x41252c
40ea23:	c2 04 00             	ret    $0x4
40ea26:	b9 0e 00 07 80       	mov    $0x8007000e,%ecx
40ea2b:	e8 bf 61 ff ff       	call   0x404bef
40ea30:	cc                   	int3
40ea31:	cc                   	int3
40ea32:	cc                   	int3
40ea33:	cc                   	int3
40ea34:	cc                   	int3
40ea35:	cc                   	int3
40ea36:	cc                   	int3
40ea37:	cc                   	int3
40ea38:	cc                   	int3
40ea39:	cc                   	int3
40ea3a:	cc                   	int3
40ea3b:	cc                   	int3
40ea3c:	cc                   	int3
40ea3d:	cc                   	int3
40ea3e:	cc                   	int3
40ea3f:	cc                   	int3
40ea40:	6a 08                	push   $0x8
40ea42:	b8 9b 30 41 00       	mov    $0x41309b,%eax
40ea47:	e8 12 3b 00 00       	call   0x41255e
40ea4c:	33 db                	xor    %ebx,%ebx
40ea4e:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40ea51:	8b 7d 08             	mov    0x8(%ebp),%edi
40ea54:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40ea57:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40ea5a:	85 ff                	test   %edi,%edi
40ea5c:	75 1f                	jne    0x40ea7d
40ea5e:	68 03 40 00 80       	push   $0x80004003
40ea63:	68 e0 3d 40 00       	push   $0x403de0
40ea68:	68 e4 04 00 00       	push   $0x4e4
40ea6d:	68 e8 3c 40 00       	push   $0x403ce8
40ea72:	51                   	push   %ecx
40ea73:	e8 5a 25 00 00       	call   0x410fd2
40ea78:	e9 3c 01 00 00       	jmp    0x40ebb9
40ea7d:	39 1f                	cmp    %ebx,(%edi)
40ea7f:	75 14                	jne    0x40ea95
40ea81:	68 03 40 00 80       	push   $0x80004003
40ea86:	68 e0 3d 40 00       	push   $0x403de0
40ea8b:	68 e5 04 00 00       	push   $0x4e5
40ea90:	e9 e9 00 00 00       	jmp    0x40eb7e
40ea95:	39 5f 04             	cmp    %ebx,0x4(%edi)
40ea98:	75 14                	jne    0x40eaae
40ea9a:	68 03 40 00 80       	push   $0x80004003
40ea9f:	68 e0 3d 40 00       	push   $0x403de0
40eaa4:	68 e6 04 00 00       	push   $0x4e6
40eaa9:	e9 d0 00 00 00       	jmp    0x40eb7e
40eaae:	8d 45 f0             	lea    -0x10(%ebp),%eax
40eab1:	50                   	push   %eax
40eab2:	68 08 2b 40 00       	push   $0x402b08
40eab7:	6a 04                	push   $0x4
40eab9:	53                   	push   %ebx
40eaba:	68 c8 2c 40 00       	push   $0x402cc8
40eabf:	ff 15 20 62 41 00    	call   *0x416220
40eac5:	8b f0                	mov    %eax,%esi
40eac7:	85 f6                	test   %esi,%esi
40eac9:	79 17                	jns    0x40eae2
40eacb:	51                   	push   %ecx
40eacc:	51                   	push   %ecx
40eacd:	e8 3d 23 00 00       	call   0x410e0f
40ead2:	56                   	push   %esi
40ead3:	68 e0 3d 40 00       	push   $0x403de0
40ead8:	68 f3 04 00 00       	push   $0x4f3
40eadd:	e9 9c 00 00 00       	jmp    0x40eb7e
40eae2:	8b 45 f0             	mov    -0x10(%ebp),%eax
40eae5:	ff 37                	push   (%edi)
40eae7:	50                   	push   %eax
40eae8:	8b 08                	mov    (%eax),%ecx
40eaea:	8b 71 24             	mov    0x24(%ecx),%esi
40eaed:	8b ce                	mov    %esi,%ecx
40eaef:	ff 15 28 63 41 00    	call   *0x416328
40eaf5:	ff d6                	call   *%esi
40eaf7:	85 c0                	test   %eax,%eax
40eaf9:	79 0d                	jns    0x40eb08
40eafb:	50                   	push   %eax
40eafc:	68 e0 3d 40 00       	push   $0x403de0
40eb01:	68 fa 04 00 00       	push   $0x4fa
40eb06:	eb 76                	jmp    0x40eb7e
40eb08:	8b 45 f0             	mov    -0x10(%ebp),%eax
40eb0b:	ff 77 04             	push   0x4(%edi)
40eb0e:	50                   	push   %eax
40eb0f:	8b 08                	mov    (%eax),%ecx
40eb11:	8b 71 48             	mov    0x48(%ecx),%esi
40eb14:	8b ce                	mov    %esi,%ecx
40eb16:	ff 15 28 63 41 00    	call   *0x416328
40eb1c:	ff d6                	call   *%esi
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