403d4d:	8b ce                	mov    %esi,%ecx
403d4f:	ff 15 20 f2 40 00    	call   *0x40f220
403d55:	ff d6                	call   *%esi
403d57:	8b f0                	mov    %eax,%esi
403d59:	85 f6                	test   %esi,%esi
403d5b:	74 1c                	je     0x403d79
403d5d:	8b cb                	mov    %ebx,%ecx
403d5f:	c7 03 ec 15 40 00    	movl   $0x4015ec,(%ebx)
403d65:	c7 43 04 01 00 00 c0 	movl   $0xc0000001,0x4(%ebx)
403d6c:	e8 01 06 00 00       	call   0x404372
403d71:	53                   	push   %ebx
403d72:	ff 15 04 f2 40 00    	call   *0x40f204
403d78:	59                   	pop    %ecx
403d79:	8b c6                	mov    %esi,%eax
403d7b:	e8 1c 60 00 00       	call   0x409d9c
403d80:	c2 0c 00             	ret    $0xc
403d83:	cc                   	int3
403d84:	cc                   	int3
403d85:	cc                   	int3
403d86:	cc                   	int3
403d87:	cc                   	int3
403d88:	cc                   	int3
403d89:	cc                   	int3
403d8a:	cc                   	int3
403d8b:	cc                   	int3
403d8c:	cc                   	int3
403d8d:	cc                   	int3
403d8e:	cc                   	int3
403d8f:	cc                   	int3
403d90:	8b ff                	mov    %edi,%edi
403d92:	55                   	push   %ebp
403d93:	8b ec                	mov    %esp,%ebp
403d95:	a1 6c c0 40 00       	mov    0x40c06c,%eax
403d9a:	33 c9                	xor    %ecx,%ecx
403d9c:	85 c0                	test   %eax,%eax
403d9e:	74 08                	je     0x403da8
403da0:	39 0d 74 c0 40 00    	cmp    %ecx,0x40c074
403da6:	75 0f                	jne    0x403db7
403da8:	ff 75 14             	push   0x14(%ebp)
403dab:	e8 ab 0e 00 00       	call   0x404c5b
403db0:	8b c8                	mov    %eax,%ecx
403db2:	a1 6c c0 40 00       	mov    0x40c06c,%eax
403db7:	85 c0                	test   %eax,%eax
403db9:	74 29                	je     0x403de4
403dbb:	56                   	push   %esi
403dbc:	ff 75 28             	push   0x28(%ebp)
403dbf:	8b 30                	mov    (%eax),%esi
403dc1:	ff 75 24             	push   0x24(%ebp)
403dc4:	ff 75 20             	push   0x20(%ebp)
403dc7:	8b 76 2c             	mov    0x2c(%esi),%esi
403dca:	8b ce                	mov    %esi,%ecx
403dcc:	ff 75 1c             	push   0x1c(%ebp)
403dcf:	ff 75 18             	push   0x18(%ebp)
403dd2:	ff 75 0c             	push   0xc(%ebp)
403dd5:	ff 75 08             	push   0x8(%ebp)
403dd8:	50                   	push   %eax
403dd9:	ff 15 20 f2 40 00    	call   *0x40f220
403ddf:	ff d6                	call   *%esi
403de1:	8b c8                	mov    %eax,%ecx
403de3:	5e                   	pop    %esi
403de4:	8b c1                	mov    %ecx,%eax
403de6:	5d                   	pop    %ebp
403de7:	c2 24 00             	ret    $0x24
403dea:	cc                   	int3
403deb:	cc                   	int3
403dec:	cc                   	int3
403ded:	cc                   	int3
403dee:	cc                   	int3
403def:	cc                   	int3
403df0:	8b ff                	mov    %edi,%edi
403df2:	55                   	push   %ebp
403df3:	8b ec                	mov    %esp,%ebp
403df5:	ff 75 1c             	push   0x1c(%ebp)
403df8:	ff 75 18             	push   0x18(%ebp)
403dfb:	ff 75 14             	push   0x14(%ebp)
403dfe:	ff 75 10             	push   0x10(%ebp)
403e01:	51                   	push   %ecx
403e02:	e8 cd 09 00 00       	call   0x4047d4
403e07:	5d                   	pop    %ebp
403e08:	c2 18 00             	ret    $0x18
403e0b:	cc                   	int3
403e0c:	cc                   	int3
403e0d:	cc                   	int3
403e0e:	cc                   	int3
403e0f:	cc                   	int3
403e10:	8b ff                	mov    %edi,%edi
403e12:	55                   	push   %ebp
403e13:	8b ec                	mov    %esp,%ebp
403e15:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
403e19:	74 07                	je     0x403e22
403e1b:	b8 0b 00 02 80       	mov    $0x8002000b,%eax
403e20:	eb 0b                	jmp    0x403e2d
403e22:	ff 75 14             	push   0x14(%ebp)
403e25:	ff 75 10             	push   0x10(%ebp)
403e28:	e8 54 09 00 00       	call   0x404781
403e2d:	5d                   	pop    %ebp
403e2e:	c2 10 00             	ret    $0x10
403e31:	cc                   	int3
403e32:	cc                   	int3
403e33:	cc                   	int3
403e34:	cc                   	int3
403e35:	cc                   	int3
403e36:	cc                   	int3
403e37:	cc                   	int3
403e38:	cc                   	int3
403e39:	cc                   	int3
403e3a:	cc                   	int3
403e3b:	cc                   	int3
403e3c:	cc                   	int3
403e3d:	cc                   	int3
403e3e:	cc                   	int3
403e3f:	cc                   	int3
403e40:	8b ff                	mov    %edi,%edi
403e42:	55                   	push   %ebp
403e43:	8b ec                	mov    %esp,%ebp
403e45:	8b 45 0c             	mov    0xc(%ebp),%eax
403e48:	85 c0                	test   %eax,%eax
403e4a:	75 07                	jne    0x403e53
403e4c:	b8 03 40 00 80       	mov    $0x80004003,%eax
403e51:	eb 08                	jmp    0x403e5b
403e53:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
403e59:	33 c0                	xor    %eax,%eax
403e5b:	5d                   	pop    %ebp
403e5c:	c2 08 00             	ret    $0x8
403e5f:	cc                   	int3
403e60:	8b ff                	mov    %edi,%edi
403e62:	55                   	push   %ebp
403e63:	8b ec                	mov    %esp,%ebp
403e65:	8b 4d 08             	mov    0x8(%ebp),%ecx
403e68:	8b 55 0c             	mov    0xc(%ebp),%edx
403e6b:	ff 75 10             	push   0x10(%ebp)
403e6e:	85 c9                	test   %ecx,%ecx
403e70:	75 07                	jne    0x403e79
403e72:	e8 93 02 00 00       	call   0x40410a
403e77:	eb 05                	jmp    0x403e7e
403e79:	e8 bb 01 00 00       	call   0x404039
403e7e:	5d                   	pop    %ebp
403e7f:	c2 0c 00             	ret    $0xc
403e82:	cc                   	int3
403e83:	cc                   	int3
403e84:	cc                   	int3
403e85:	cc                   	int3
403e86:	cc                   	int3
403e87:	cc                   	int3
403e88:	cc                   	int3
403e89:	cc                   	int3
403e8a:	cc                   	int3
403e8b:	cc                   	int3
403e8c:	cc                   	int3
403e8d:	cc                   	int3
403e8e:	cc                   	int3
403e8f:	cc                   	int3
403e90:	33 c0                	xor    %eax,%eax
403e92:	c3                   	ret
403e93:	cc                   	int3
403e94:	cc                   	int3
403e95:	cc                   	int3
403e96:	cc                   	int3
403e97:	cc                   	int3
403e98:	cc                   	int3
403e99:	cc                   	int3
403e9a:	cc                   	int3
403e9b:	cc                   	int3
403e9c:	cc                   	int3
403e9d:	cc                   	int3
403e9e:	cc                   	int3
403e9f:	cc                   	int3
403ea0:	8b ff                	mov    %edi,%edi
403ea2:	55                   	push   %ebp
403ea3:	8b ec                	mov    %esp,%ebp
403ea5:	ff 75 10             	push   0x10(%ebp)
403ea8:	8b 4d 08             	mov    0x8(%ebp),%ecx
403eab:	ba 70 16 40 00       	mov    $0x401670,%edx
403eb0:	ff 75 0c             	push   0xc(%ebp)
403eb3:	e8 36 1f 00 00       	call   0x405dee
403eb8:	5d                   	pop    %ebp
403eb9:	c2 0c 00             	ret    $0xc
403ebc:	cc                   	int3
403ebd:	cc                   	int3
403ebe:	cc                   	int3
403ebf:	cc                   	int3
403ec0:	8b ff                	mov    %edi,%edi
403ec2:	55                   	push   %ebp
403ec3:	8b ec                	mov    %esp,%ebp
403ec5:	53                   	push   %ebx
403ec6:	56                   	push   %esi
403ec7:	8b 75 08             	mov    0x8(%ebp),%esi
403eca:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
403ecf:	57                   	push   %edi
403ed0:	8d 7e 04             	lea    0x4(%esi),%edi
403ed3:	eb 0d                	jmp    0x403ee2
403ed5:	8d 4a ff             	lea    -0x1(%edx),%ecx
403ed8:	8b c2                	mov    %edx,%eax
403eda:	f0 0f b1 0f          	lock cmpxchg %ecx,(%edi)
403ede:	3b c2                	cmp    %edx,%eax
403ee0:	74 06                	je     0x403ee8
403ee2:	8b 17                	mov    (%edi),%edx
403ee4:	3b d3                	cmp    %ebx,%edx
403ee6:	75 ed                	jne    0x403ed5
403ee8:	8d 5a ff             	lea    -0x1(%edx),%ebx
403eeb:	85 db                	test   %ebx,%ebx
403eed:	75 1f                	jne    0x403f0e
403eef:	85 f6                	test   %esi,%esi
403ef1:	74 1b                	je     0x403f0e
403ef3:	8b ce                	mov    %esi,%ecx
403ef5:	c7 06 ec 15 40 00    	movl   $0x4015ec,(%esi)
403efb:	c7 07 01 00 00 c0    	movl   $0xc0000001,(%edi)
403f01:	e8 6c 04 00 00       	call   0x404372
403f06:	56                   	push   %esi
403f07:	ff 15 04 f2 40 00    	call   *0x40f204
403f0d:	59                   	pop    %ecx
403f0e:	5f                   	pop    %edi
403f0f:	5e                   	pop    %esi
403f10:	8b c3                	mov    %ebx,%eax
403f12:	5b                   	pop    %ebx
403f13:	5d                   	pop    %ebp
403f14:	c2 04 00             	ret    $0x4
403f17:	cc                   	int3
403f18:	cc                   	int3
403f19:	cc                   	int3
403f1a:	cc                   	int3
403f1b:	cc                   	int3
403f1c:	cc                   	int3
403f1d:	cc                   	int3
403f1e:	cc                   	int3
403f1f:	cc                   	int3
403f20:	8b ff                	mov    %edi,%edi
403f22:	55                   	push   %ebp
403f23:	8b ec                	mov    %esp,%ebp
403f25:	56                   	push   %esi
403f26:	57                   	push   %edi
403f27:	8b 7d 08             	mov    0x8(%ebp),%edi
403f2a:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
403f2f:	83 c7 04             	add    $0x4,%edi
403f32:	8b 17                	mov    (%edi),%edx
403f34:	3b d6                	cmp    %esi,%edx
403f36:	74 1a                	je     0x403f52
403f38:	8d 4a 01             	lea    0x1(%edx),%ecx
403f3b:	8b c2                	mov    %edx,%eax
403f3d:	f0 0f b1 0f          	lock cmpxchg %ecx,(%edi)
403f41:	3b c2                	cmp    %edx,%eax
403f43:	74 06                	je     0x403f4b
403f45:	8b 17                	mov    (%edi),%edx
403f47:	3b d6                	cmp    %esi,%edx
403f49:	75 ed                	jne    0x403f38
403f4b:	3b d6                	cmp    %esi,%edx
403f4d:	74 03                	je     0x403f52
403f4f:	8d 72 01             	lea    0x1(%edx),%esi
403f52:	5f                   	pop    %edi
403f53:	8b c6                	mov    %esi,%eax
403f55:	5e                   	pop    %esi
403f56:	5d                   	pop    %ebp
403f57:	c2 04 00             	ret    $0x4
403f5a:	cc                   	int3
403f5b:	cc                   	int3
403f5c:	cc                   	int3
403f5d:	cc                   	int3
403f5e:	cc                   	int3
403f5f:	cc                   	int3
403f60:	6a 0c                	push   $0xc
403f62:	68 08 a8 40 00       	push   $0x40a808
403f67:	e8 7c 62 00 00       	call   0x40a1e8
403f6c:	b8 03 40 00 80       	mov    $0x80004003,%eax
403f71:	8b 5d 14             	mov    0x14(%ebp),%ebx
403f74:	85 db                	test   %ebx,%ebx
403f76:	0f 84 9a 00 00 00    	je     0x404016
403f7c:	33 c0                	xor    %eax,%eax
403f7e:	89 03                	mov    %eax,(%ebx)
403f80:	39 45 0c             	cmp    %eax,0xc(%ebp)
403f83:	74 0a                	je     0x403f8f
403f85:	b8 10 01 04 80       	mov    $0x80040110,%eax
403f8a:	e9 87 00 00 00       	jmp    0x404016
403f8f:	8b 7d 08             	mov    0x8(%ebp),%edi
403f92:	39 47 28             	cmp    %eax,0x28(%edi)
403f95:	75 62                	jne    0x403ff9
403f97:	8d 77 2c             	lea    0x2c(%edi),%esi
403f9a:	39 06                	cmp    %eax,(%esi)
403f9c:	75 5b                	jne    0x403ff9
403f9e:	89 45 fc             	mov    %eax,-0x4(%ebp)
403fa1:	8d 47 08             	lea    0x8(%edi),%eax
403fa4:	50                   	push   %eax
403fa5:	ff 15 60 f0 40 00    	call   *0x40f060
403fab:	83 7f 28 00          	cmpl   $0x0,0x28(%edi)
403faf:	75 3c                	jne    0x403fed
403fb1:	83 3e 00             	cmpl   $0x0,(%esi)
403fb4:	75 37                	jne    0x403fed
403fb6:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
403fb9:	e8 b4 06 00 00       	call   0x404672
403fbe:	89 47 28             	mov    %eax,0x28(%edi)
403fc1:	85 c0                	test   %eax,%eax
403fc3:	78 28                	js     0x403fed
403fc5:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
403fc8:	8b 01                	mov    (%ecx),%eax
403fca:	56                   	push   %esi
403fcb:	68 48 23 40 00       	push   $0x402348
403fd0:	51                   	push   %ecx
403fd1:	8b 30                	mov    (%eax),%esi
403fd3:	8b ce                	mov    %esi,%ecx
403fd5:	ff 15 20 f2 40 00    	call   *0x40f220
403fdb:	ff d6                	call   *%esi
403fdd:	89 47 28             	mov    %eax,0x28(%edi)
403fe0:	85 c0                	test   %eax,%eax
403fe2:	79 09                	jns    0x403fed
403fe4:	51                   	push   %ecx
403fe5:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
403fe8:	e8 f9 01 00 00       	call   0x4041e6
403fed:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
403ff4:	e8 35 00 00 00       	call   0x40402e
403ff9:	8b 47 28             	mov    0x28(%edi),%eax
403ffc:	85 c0                	test   %eax,%eax
403ffe:	75 16                	jne    0x404016
404000:	8b 47 2c             	mov    0x2c(%edi),%eax
404003:	8b 08                	mov    (%eax),%ecx
404005:	53                   	push   %ebx
404006:	ff 75 10             	push   0x10(%ebp)
404009:	50                   	push   %eax
40400a:	8b 31                	mov    (%ecx),%esi
40400c:	8b ce                	mov    %esi,%ecx
40400e:	ff 15 20 f2 40 00    	call   *0x40f220
404014:	ff d6                	call   *%esi
404016:	8b 4d f0             	mov    -0x10(%ebp),%ecx
404019:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
404020:	59                   	pop    %ecx
404021:	5f                   	pop    %edi
404022:	5e                   	pop    %esi
404023:	5b                   	pop    %ebx
404024:	c9                   	leave
404025:	c2 10 00             	ret    $0x10
404028:	8b 7d 08             	mov    0x8(%ebp),%edi
40402b:	8b 5d 14             	mov    0x14(%ebp),%ebx
40402e:	8d 47 08             	lea    0x8(%edi),%eax
404031:	50                   	push   %eax
404032:	ff 15 64 f0 40 00    	call   *0x40f064
404038:	c3                   	ret
404039:	6a 14                	push   $0x14
40403b:	b8 0d a4 40 00       	mov    $0x40a40d,%eax
404040:	e8 f2 5d 00 00       	call   0x409e37
404045:	89 55 e4             	mov    %edx,-0x1c(%ebp)
404048:	8b f9                	mov    %ecx,%edi
40404a:	8b 45 08             	mov    0x8(%ebp),%eax
40404d:	85 c0                	test   %eax,%eax
40404f:	75 0a                	jne    0x40405b
404051:	b8 03 40 00 80       	mov    $0x80004003,%eax
404056:	e9 a7 00 00 00       	jmp    0x404102
40405b:	33 c9                	xor    %ecx,%ecx
40405d:	be 0e 00 07 80       	mov    $0x8007000e,%esi
404062:	6a 10                	push   $0x10
404064:	89 08                	mov    %ecx,(%eax)
404066:	89 75 ec             	mov    %esi,-0x14(%ebp)
404069:	89 4d e8             	mov    %ecx,-0x18(%ebp)