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)
40406c:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40406f:	e8 e0 4c 00 00       	call   0x408d54
404074:	8b d8                	mov    %eax,%ebx
404076:	59                   	pop    %ecx
404077:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40407a:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40407e:	85 db                	test   %ebx,%ebx
404080:	74 32                	je     0x4040b4
404082:	83 63 04 00          	andl   $0x0,0x4(%ebx)
404086:	c7 03 94 15 40 00    	movl   $0x401594,(%ebx)
40408c:	89 7b 0c             	mov    %edi,0xc(%ebx)
40408f:	8b 3d a4 c5 40 00    	mov    0x40c5a4,%edi
404095:	c7 43 08 50 15 40 00 	movl   $0x401550,0x8(%ebx)
40409c:	8b 07                	mov    (%edi),%eax
40409e:	8b 70 04             	mov    0x4(%eax),%esi
4040a1:	8b ce                	mov    %esi,%ecx
4040a3:	ff 15 20 f2 40 00    	call   *0x40f220
4040a9:	8b cf                	mov    %edi,%ecx
4040ab:	ff d6                	call   *%esi
4040ad:	be 0e 00 07 80       	mov    $0x8007000e,%esi
4040b2:	eb 10                	jmp    0x4040c4
4040b4:	33 db                	xor    %ebx,%ebx
4040b6:	eb 0c                	jmp    0x4040c4
4040b8:	b8 be 40 40 00       	mov    $0x4040be,%eax
4040bd:	c3                   	ret
4040be:	8b 75 ec             	mov    -0x14(%ebp),%esi
4040c1:	8b 5d e8             	mov    -0x18(%ebp),%ebx
4040c4:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4040c8:	85 db                	test   %ebx,%ebx
4040ca:	74 34                	je     0x404100
4040cc:	ff 75 08             	push   0x8(%ebp)
4040cf:	8b 03                	mov    (%ebx),%eax
4040d1:	ff 75 e4             	push   -0x1c(%ebp)
4040d4:	53                   	push   %ebx
4040d5:	8b 30                	mov    (%eax),%esi
4040d7:	8b ce                	mov    %esi,%ecx
4040d9:	ff 15 20 f2 40 00    	call   *0x40f220
4040df:	ff d6                	call   *%esi
4040e1:	8b f0                	mov    %eax,%esi
4040e3:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4040e6:	85 f6                	test   %esi,%esi
4040e8:	74 16                	je     0x404100
4040ea:	8b 13                	mov    (%ebx),%edx
4040ec:	6a 01                	push   $0x1
4040ee:	8b 72 0c             	mov    0xc(%edx),%esi
4040f1:	8b ce                	mov    %esi,%ecx
4040f3:	ff 15 20 f2 40 00    	call   *0x40f220
4040f9:	8b cb                	mov    %ebx,%ecx
4040fb:	ff d6                	call   *%esi
4040fd:	8b 75 e4             	mov    -0x1c(%ebp),%esi
404100:	8b c6                	mov    %esi,%eax
404102:	e8 95 5c 00 00       	call   0x409d9c
404107:	c2 04 00             	ret    $0x4
40410a:	6a 14                	push   $0x14
40410c:	b8 33 a4 40 00       	mov    $0x40a433,%eax
404111:	e8 21 5d 00 00       	call   0x409e37
404116:	89 55 e4             	mov    %edx,-0x1c(%ebp)
404119:	8b 45 08             	mov    0x8(%ebp),%eax
40411c:	85 c0                	test   %eax,%eax
40411e:	75 0a                	jne    0x40412a
404120:	b8 03 40 00 80       	mov    $0x80004003,%eax
404125:	e9 b4 00 00 00       	jmp    0x4041de
40412a:	33 ff                	xor    %edi,%edi
40412c:	be 0e 00 07 80       	mov    $0x8007000e,%esi
404131:	6a 08                	push   $0x8
404133:	89 38                	mov    %edi,(%eax)
404135:	89 75 ec             	mov    %esi,-0x14(%ebp)
404138:	89 7d e8             	mov    %edi,-0x18(%ebp)
40413b:	89 7d fc             	mov    %edi,-0x4(%ebp)
40413e:	e8 11 4c 00 00       	call   0x408d54
404143:	8b d8                	mov    %eax,%ebx
404145:	59                   	pop    %ecx
404146:	89 5d e0             	mov    %ebx,-0x20(%ebp)
404149:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40414d:	85 db                	test   %ebx,%ebx
40414f:	74 27                	je     0x404178
404151:	89 7b 04             	mov    %edi,0x4(%ebx)
404154:	8b 3d a4 c5 40 00    	mov    0x40c5a4,%edi
40415a:	c7 03 70 15 40 00    	movl   $0x401570,(%ebx)
404160:	8b 07                	mov    (%edi),%eax
404162:	8b 70 04             	mov    0x4(%eax),%esi
404165:	8b ce                	mov    %esi,%ecx
404167:	ff 15 20 f2 40 00    	call   *0x40f220
40416d:	8b cf                	mov    %edi,%ecx
40416f:	ff d6                	call   *%esi
404171:	be 0e 00 07 80       	mov    $0x8007000e,%esi
404176:	eb 10                	jmp    0x404188
404178:	8b df                	mov    %edi,%ebx
40417a:	eb 0c                	jmp    0x404188
40417c:	b8 82 41 40 00       	mov    $0x404182,%eax
404181:	c3                   	ret
404182:	8b 75 ec             	mov    -0x14(%ebp),%esi
404185:	8b 5d e8             	mov    -0x18(%ebp),%ebx
404188:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40418c:	85 db                	test   %ebx,%ebx
40418e:	74 4c                	je     0x4041dc
404190:	8b 43 04             	mov    0x4(%ebx),%eax
404193:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
404198:	3b c1                	cmp    %ecx,%eax
40419a:	74 0c                	je     0x4041a8
40419c:	40                   	inc    %eax
40419d:	89 43 04             	mov    %eax,0x4(%ebx)
4041a0:	3b c1                	cmp    %ecx,%eax
4041a2:	74 04                	je     0x4041a8
4041a4:	48                   	dec    %eax
4041a5:	89 43 04             	mov    %eax,0x4(%ebx)
4041a8:	ff 75 08             	push   0x8(%ebp)
4041ab:	8b 03                	mov    (%ebx),%eax
4041ad:	ff 75 e4             	push   -0x1c(%ebp)
4041b0:	53                   	push   %ebx
4041b1:	8b 30                	mov    (%eax),%esi
4041b3:	8b ce                	mov    %esi,%ecx
4041b5:	ff 15 20 f2 40 00    	call   *0x40f220
4041bb:	ff d6                	call   *%esi
4041bd:	8b f0                	mov    %eax,%esi
4041bf:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4041c2:	85 f6                	test   %esi,%esi
4041c4:	74 16                	je     0x4041dc
4041c6:	8b 13                	mov    (%ebx),%edx
4041c8:	6a 01                	push   $0x1
4041ca:	8b 72 20             	mov    0x20(%edx),%esi
4041cd:	8b ce                	mov    %esi,%ecx
4041cf:	ff 15 20 f2 40 00    	call   *0x40f220
4041d5:	8b cb                	mov    %ebx,%ecx
4041d7:	ff d6                	call   *%esi
4041d9:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4041dc:	8b c6                	mov    %esi,%eax
4041de:	e8 b9 5b 00 00       	call   0x409d9c
4041e3:	c2 04 00             	ret    $0x4
4041e6:	8b ff                	mov    %edi,%edi
4041e8:	56                   	push   %esi
4041e9:	8b f1                	mov    %ecx,%esi
4041eb:	56                   	push   %esi
4041ec:	c7 06 cc 15 40 00    	movl   $0x4015cc,(%esi)
4041f2:	c7 46 04 01 00 00 c0 	movl   $0xc0000001,0x4(%esi)
4041f9:	ff 15 04 f2 40 00    	call   *0x40f204
4041ff:	59                   	pop    %ecx
404200:	8b c6                	mov    %esi,%eax
404202:	5e                   	pop    %esi
404203:	c2 04 00             	ret    $0x4
404206:	cc                   	int3
404207:	cc                   	int3
404208:	cc                   	int3
404209:	cc                   	int3
40420a:	cc                   	int3
40420b:	cc                   	int3
40420c:	cc                   	int3
40420d:	cc                   	int3
40420e:	cc                   	int3
40420f:	cc                   	int3
404210:	8b ff                	mov    %edi,%edi
404212:	55                   	push   %ebp
404213:	8b ec                	mov    %esp,%ebp
404215:	8b 45 08             	mov    0x8(%ebp),%eax
404218:	56                   	push   %esi
404219:	ff 75 10             	push   0x10(%ebp)
40421c:	8b 40 04             	mov    0x4(%eax),%eax
40421f:	ff 75 0c             	push   0xc(%ebp)
404222:	50                   	push   %eax
404223:	8b 08                	mov    (%eax),%ecx
404225:	8b 31                	mov    (%ecx),%esi
404227:	8b ce                	mov    %esi,%ecx
404229:	ff 15 20 f2 40 00    	call   *0x40f220
40422f:	ff d6                	call   *%esi
404231:	5e                   	pop    %esi
404232:	5d                   	pop    %ebp
404233:	c2 0c 00             	ret    $0xc
404236:	cc                   	int3
404237:	cc                   	int3
404238:	cc                   	int3
404239:	cc                   	int3
40423a:	cc                   	int3
40423b:	cc                   	int3
40423c:	cc                   	int3
40423d:	cc                   	int3