406dbd:	e8 dd 18 00 00       	call   0x40869f
406dc2:	89 45 b0             	mov    %eax,-0x50(%ebp)
406dc5:	c6 45 fc 0d          	movb   $0xd,-0x4(%ebp)
406dc9:	8b 08                	mov    (%eax),%ecx
406dcb:	85 c9                	test   %ecx,%ecx
406dcd:	74 04                	je     0x406dd3
406dcf:	f0 ff 41 08          	lock incl 0x8(%ecx)
406dd3:	8d 4d e8             	lea    -0x18(%ebp),%ecx
406dd6:	e8 74 eb ff ff       	call   0x40594f
406ddb:	8b 4d b0             	mov    -0x50(%ebp),%ecx
406dde:	8b 01                	mov    (%ecx),%eax
406de0:	89 45 e0             	mov    %eax,-0x20(%ebp)
406de3:	89 45 e8             	mov    %eax,-0x18(%ebp)
406de6:	c6 45 fc 0c          	movb   $0xc,-0x4(%ebp)
406dea:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
406ded:	e8 5d eb ff ff       	call   0x40594f
406df2:	c6 45 fc 0b          	movb   $0xb,-0x4(%ebp)
406df6:	8d 4d ac             	lea    -0x54(%ebp),%ecx
406df9:	e8 51 eb ff ff       	call   0x40594f
406dfe:	33 c0                	xor    %eax,%eax
406e00:	40                   	inc    %eax
406e01:	89 45 cc             	mov    %eax,-0x34(%ebp)
406e04:	83 e0 fe             	and    $0xfffffffe,%eax
406e07:	89 45 cc             	mov    %eax,-0x34(%ebp)
406e0a:	c6 45 fc 0a          	movb   $0xa,-0x4(%ebp)
406e0e:	8d 4d bc             	lea    -0x44(%ebp),%ecx
406e11:	e8 39 eb ff ff       	call   0x40594f
406e16:	c6 45 fc 09          	movb   $0x9,-0x4(%ebp)
406e1a:	8d 4d c0             	lea    -0x40(%ebp),%ecx
406e1d:	e8 2d eb ff ff       	call   0x40594f
406e22:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
406e26:	8d 4d b8             	lea    -0x48(%ebp),%ecx
406e29:	e8 21 eb ff ff       	call   0x40594f
406e2e:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
406e32:	74 48                	je     0x406e7c
406e34:	8b 4d 0c             	mov    0xc(%ebp),%ecx
406e37:	e8 4f 36 00 00       	call   0x40a48b
406e3c:	85 c0                	test   %eax,%eax
406e3e:	74 3c                	je     0x406e7c
406e40:	ff 75 0c             	push   0xc(%ebp)
406e43:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
406e46:	e8 95 18 00 00       	call   0x4086e0
406e4b:	ff 75 10             	push   0x10(%ebp)
406e4e:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406e51:	e8 8a 18 00 00       	call   0x4086e0
406e56:	83 7d 18 01          	cmpl   $0x1,0x18(%ebp)
406e5a:	75 15                	jne    0x406e71
406e5c:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406e5f:	e8 16 17 00 00       	call   0x40857a
406e64:	85 c0                	test   %eax,%eax
406e66:	75 09                	jne    0x406e71
406e68:	53                   	push   %ebx
406e69:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406e6c:	e8 6f 18 00 00       	call   0x4086e0
406e71:	8b 75 e4             	mov    -0x1c(%ebp),%esi
406e74:	8b 7d ec             	mov    -0x14(%ebp),%edi
406e77:	8b 45 e0             	mov    -0x20(%ebp),%eax
406e7a:	eb 2f                	jmp    0x406eab
406e7c:	8b 45 e0             	mov    -0x20(%ebp),%eax
406e7f:	eb 3b                	jmp    0x406ebc
406e81:	83 f8 01             	cmp    $0x1,%eax
406e84:	75 30                	jne    0x406eb6
406e86:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
406e8a:	74 2a                	je     0x406eb6
406e8c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
406e8f:	e8 f7 35 00 00       	call   0x40a48b
406e94:	85 c0                	test   %eax,%eax
406e96:	74 1e                	je     0x406eb6
406e98:	8b 45 20             	mov    0x20(%ebp),%eax
406e9b:	85 c0                	test   %eax,%eax
406e9d:	74 17                	je     0x406eb6
406e9f:	c7 00 64 10 04 80    	movl   $0x80041064,(%eax)
406ea5:	8b 45 e8             	mov    -0x18(%ebp),%eax
406ea8:	89 45 e0             	mov    %eax,-0x20(%ebp)
406eab:	85 ff                	test   %edi,%edi
406ead:	74 0d                	je     0x406ebc
406eaf:	8b 0f                	mov    (%edi),%ecx
406eb1:	89 4d b8             	mov    %ecx,-0x48(%ebp)
406eb4:	eb 09                	jmp    0x406ebf
406eb6:	8b 45 e8             	mov    -0x18(%ebp),%eax
406eb9:	89 45 e0             	mov    %eax,-0x20(%ebp)
406ebc:	89 5d b8             	mov    %ebx,-0x48(%ebp)
406ebf:	85 f6                	test   %esi,%esi
406ec1:	74 04                	je     0x406ec7
406ec3:	8b 16                	mov    (%esi),%edx
406ec5:	eb 02                	jmp    0x406ec9
406ec7:	8b d3                	mov    %ebx,%edx
406ec9:	85 c0                	test   %eax,%eax
406ecb:	74 04                	je     0x406ed1
406ecd:	8b 08                	mov    (%eax),%ecx
406ecf:	eb 02                	jmp    0x406ed3
406ed1:	8b cb                	mov    %ebx,%ecx
406ed3:	8b 45 dc             	mov    -0x24(%ebp),%eax
406ed6:	8b 18                	mov    (%eax),%ebx
406ed8:	ff 75 d4             	push   -0x2c(%ebp)
406edb:	33 c0                	xor    %eax,%eax
406edd:	50                   	push   %eax
406ede:	50                   	push   %eax
406edf:	50                   	push   %eax
406ee0:	50                   	push   %eax
406ee1:	ff 75 b8             	push   -0x48(%ebp)
406ee4:	52                   	push   %edx
406ee5:	51                   	push   %ecx
406ee6:	ff 75 dc             	push   -0x24(%ebp)
406ee9:	8b 4b 0c             	mov    0xc(%ebx),%ecx
406eec:	ff 15 20 23 41 00    	call   *0x412320
406ef2:	ff 53 0c             	call   *0xc(%ebx)
406ef5:	8b d8                	mov    %eax,%ebx
406ef7:	89 5d c8             	mov    %ebx,-0x38(%ebp)
406efa:	85 db                	test   %ebx,%ebx
406efc:	0f 89 19 01 00 00    	jns    0x40701b
406f02:	81 fb 05 00 07 80    	cmp    $0x80070005,%ebx
406f08:	0f 85 91 00 00 00    	jne    0x406f9f
406f0e:	83 7d 18 01          	cmpl   $0x1,0x18(%ebp)
406f12:	0f 85 ec 00 00 00    	jne    0x407004
406f18:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
406f1b:	e8 5a 16 00 00       	call   0x40857a
406f20:	85 c0                	test   %eax,%eax
406f22:	0f 84 dc 00 00 00    	je     0x407004
406f28:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406f2b:	e8 4a 16 00 00       	call   0x40857a
406f30:	85 c0                	test   %eax,%eax
406f32:	0f 85 cc 00 00 00    	jne    0x407004
406f38:	68 98 16 40 00       	push   $0x401698
406f3d:	8d 4d ac             	lea    -0x54(%ebp),%ecx
406f40:	e8 94 ea ff ff       	call   0x4059d9
406f45:	c6 45 fc 0e          	movb   $0xe,-0x4(%ebp)
406f49:	8b 00                	mov    (%eax),%eax
406f4b:	33 db                	xor    %ebx,%ebx
406f4d:	85 c0                	test   %eax,%eax
406f4f:	74 04                	je     0x406f55
406f51:	8b 10                	mov    (%eax),%edx
406f53:	eb 02                	jmp    0x406f57
406f55:	8b d3                	mov    %ebx,%edx
406f57:	85 f6                	test   %esi,%esi
406f59:	74 04                	je     0x406f5f
406f5b:	8b 0e                	mov    (%esi),%ecx
406f5d:	eb 02                	jmp    0x406f61
406f5f:	8b cb                	mov    %ebx,%ecx
406f61:	8b 45 e0             	mov    -0x20(%ebp),%eax
406f64:	85 c0                	test   %eax,%eax
406f66:	74 04                	je     0x406f6c
406f68:	8b 00                	mov    (%eax),%eax
406f6a:	eb 02                	jmp    0x406f6e
406f6c:	8b c3                	mov    %ebx,%eax
406f6e:	8b 7d dc             	mov    -0x24(%ebp),%edi
406f71:	8b 3f                	mov    (%edi),%edi
406f73:	ff 75 d4             	push   -0x2c(%ebp)
406f76:	53                   	push   %ebx
406f77:	53                   	push   %ebx
406f78:	53                   	push   %ebx
406f79:	53                   	push   %ebx
406f7a:	52                   	push   %edx
406f7b:	51                   	push   %ecx
406f7c:	50                   	push   %eax
406f7d:	ff 75 dc             	push   -0x24(%ebp)
406f80:	8b 4f 0c             	mov    0xc(%edi),%ecx
406f83:	ff 15 20 23 41 00    	call   *0x412320
406f89:	ff 57 0c             	call   *0xc(%edi)
406f8c:	8b d8                	mov    %eax,%ebx
406f8e:	89 5d c8             	mov    %ebx,-0x38(%ebp)
406f91:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
406f95:	8d 4d ac             	lea    -0x54(%ebp),%ecx
406f98:	e8 b2 e9 ff ff       	call   0x40594f
406f9d:	eb 61                	jmp    0x407000
406f9f:	81 fb 64 10 04 80    	cmp    $0x80041064,%ebx
406fa5:	75 59                	jne    0x407000
406fa7:	c7 45 d8 01 00 00 00 	movl   $0x1,-0x28(%ebp)
406fae:	33 db                	xor    %ebx,%ebx
406fb0:	53                   	push   %ebx
406fb1:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
406fb4:	e8 27 17 00 00       	call   0x4086e0
406fb9:	53                   	push   %ebx
406fba:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406fbd:	e8 1e 17 00 00       	call   0x4086e0
406fc2:	68 a8 16 40 00       	push   $0x4016a8
406fc7:	8d 4d e8             	lea    -0x18(%ebp),%ecx
406fca:	e8 11 17 00 00       	call   0x4086e0
406fcf:	8b 45 e8             	mov    -0x18(%ebp),%eax
406fd2:	85 c0                	test   %eax,%eax
406fd4:	74 04                	je     0x406fda
406fd6:	8b 00                	mov    (%eax),%eax
406fd8:	eb 02                	jmp    0x406fdc
406fda:	8b c3                	mov    %ebx,%eax
406fdc:	8b 4d dc             	mov    -0x24(%ebp),%ecx
406fdf:	8b 31                	mov    (%ecx),%esi
406fe1:	ff 75 d4             	push   -0x2c(%ebp)
406fe4:	53                   	push   %ebx
406fe5:	53                   	push   %ebx
406fe6:	53                   	push   %ebx
406fe7:	53                   	push   %ebx
406fe8:	53                   	push   %ebx
406fe9:	53                   	push   %ebx
406fea:	50                   	push   %eax
406feb:	51                   	push   %ecx
406fec:	8b 4e 0c             	mov    0xc(%esi),%ecx
406fef:	ff 15 20 23 41 00    	call   *0x412320
406ff5:	ff 56 0c             	call   *0xc(%esi)
406ff8:	8b d8                	mov    %eax,%ebx
406ffa:	89 5d c8             	mov    %ebx,-0x38(%ebp)
406ffd:	8b 75 e4             	mov    -0x1c(%ebp),%esi
407000:	85 db                	test   %ebx,%ebx
407002:	79 07                	jns    0x40700b
407004:	8b cb                	mov    %ebx,%ecx
407006:	e9 3f 01 00 00       	jmp    0x40714a
40700b:	68 98 16 40 00       	push   $0x401698
407010:	8d 4d ec             	lea    -0x14(%ebp),%ecx
407013:	e8 c8 16 00 00       	call   0x4086e0
407018:	8b 7d ec             	mov    -0x14(%ebp),%edi
40701b:	85 ff                	test   %edi,%edi
40701d:	74 04                	je     0x407023
40701f:	8b 07                	mov    (%edi),%eax
407021:	eb 02                	jmp    0x407025
407023:	33 c0                	xor    %eax,%eax
407025:	85 f6                	test   %esi,%esi
407027:	74 04                	je     0x40702d
407029:	8b 16                	mov    (%esi),%edx
40702b:	eb 02                	jmp    0x40702f
40702d:	33 d2                	xor    %edx,%edx
40702f:	ff 75 14             	push   0x14(%ebp)
407032:	50                   	push   %eax
407033:	8b 45 d4             	mov    -0x2c(%ebp),%eax
407036:	8b 08                	mov    (%eax),%ecx
407038:	e8 a9 03 00 00       	call   0x4073e6
40703d:	89 45 c8             	mov    %eax,-0x38(%ebp)
407040:	85 c0                	test   %eax,%eax
407042:	79 07                	jns    0x40704b
407044:	8b c8                	mov    %eax,%ecx
407046:	e9 ff 00 00 00       	jmp    0x40714a
40704b:	8b 4d 24             	mov    0x24(%ebp),%ecx
40704e:	85 c9                	test   %ecx,%ecx
407050:	74 05                	je     0x407057
407052:	8b 45 d8             	mov    -0x28(%ebp),%eax
407055:	89 01                	mov    %eax,(%ecx)
407057:	33 f6                	xor    %esi,%esi
407059:	46                   	inc    %esi
40705a:	89 75 c4             	mov    %esi,-0x3c(%ebp)
40705d:	c7 45 fc 03 00 00 00 	movl   $0x3,-0x4(%ebp)
407064:	eb 65                	jmp    0x4070cb
407066:	89 65 f0             	mov    %esp,-0x10(%ebp)
407069:	c6 45 fc 10          	movb   $0x10,-0x4(%ebp)
40706d:	8b 75 a8             	mov    -0x58(%ebp),%esi
407070:	8b 4e 04             	mov    0x4(%esi),%ecx
407073:	e8 92 08 00 00       	call   0x40790a
407078:	8b 45 20             	mov    0x20(%ebp),%eax
40707b:	85 c0                	test   %eax,%eax
40707d:	74 05                	je     0x407084
40707f:	8b 4e 04             	mov    0x4(%esi),%ecx
407082:	89 08                	mov    %ecx,(%eax)
407084:	c7 45 fc 0f 00 00 00 	movl   $0xf,-0x4(%ebp)
40708b:	8b 7d d4             	mov    -0x2c(%ebp),%edi
40708e:	8b 0f                	mov    (%edi),%ecx
407090:	85 c9                	test   %ecx,%ecx
407092:	74 13                	je     0x4070a7
407094:	8b 01                	mov    (%ecx),%eax
407096:	51                   	push   %ecx
407097:	8b 70 08             	mov    0x8(%eax),%esi
40709a:	8b ce                	mov    %esi,%ecx
40709c:	ff 15 20 23 41 00    	call   *0x412320
4070a2:	ff d6                	call   *%esi
4070a4:	83 27 00             	andl   $0x0,(%edi)
4070a7:	83 65 c4 00          	andl   $0x0,-0x3c(%ebp)
4070ab:	b8 c1 70 40 00       	mov    $0x4070c1,%eax
4070b0:	c3                   	ret
4070b1:	b9 0e 00 07 80       	mov    $0x8007000e,%ecx
4070b6:	e8 4f 08 00 00       	call   0x40790a
4070bb:	b8 84 70 40 00       	mov    $0x407084,%eax
4070c0:	c3                   	ret
4070c1:	c7 45 fc 03 00 00 00 	movl   $0x3,-0x4(%ebp)
4070c8:	8b 75 c4             	mov    -0x3c(%ebp),%esi
4070cb:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
4070cf:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4070d2:	e8 78 e8 ff ff       	call   0x40594f
4070d7:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4070db:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
4070de:	e8 6c e8 ff ff       	call   0x40594f
4070e3:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
4070e7:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4070ea:	e8 60 e8 ff ff       	call   0x40594f
4070ef:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4070f3:	8d 4d d0             	lea    -0x30(%ebp),%ecx
4070f6:	e8 54 e8 ff ff       	call   0x40594f
4070fb:	8b c6                	mov    %esi,%eax
4070fd:	eb 3e                	jmp    0x40713d
4070ff:	8b 45 20             	mov    0x20(%ebp),%eax
407102:	85 c0                	test   %eax,%eax
407104:	74 06                	je     0x40710c
407106:	c7 00 08 10 04 80    	movl   $0x80041008,(%eax)
40710c:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
407110:	8d 4d ec             	lea    -0x14(%ebp),%ecx
407113:	e8 37 e8 ff ff       	call   0x40594f
407118:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40711c:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40711f:	e8 2b e8 ff ff       	call   0x40594f
407124:	88 5d fc             	mov    %bl,-0x4(%ebp)
407127:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40712a:	e8 20 e8 ff ff       	call   0x40594f
40712f:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
407133:	8d 4d d0             	lea    -0x30(%ebp),%ecx
407136:	e8 14 e8 ff ff       	call   0x40594f
40713b:	33 c0                	xor    %eax,%eax
40713d:	e8 b7 81 00 00       	call   0x40f2f9
407142:	c2 24 00             	ret    $0x24
407145:	b9 ba 06 07 80       	mov    $0x800706ba,%ecx
40714a:	e8 d2 15 00 00       	call   0x408721
40714f:	cc                   	int3
407150:	6a 1c                	push   $0x1c
407152:	b8 7c fa 40 00       	mov    $0x40fa7c,%eax
407157:	e8 f3 81 00 00       	call   0x40f34f
40715c:	89 55 e0             	mov    %edx,-0x20(%ebp)
40715f:	89 4d dc             	mov    %ecx,-0x24(%ebp)
407162:	33 db                	xor    %ebx,%ebx
407164:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
407167:	89 5d d8             	mov    %ebx,-0x28(%ebp)
40716a:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40716d:	ff 15 f8 21 41 00    	call   *0x4121f8
407173:	89 5d fc             	mov    %ebx,-0x4(%ebp)
407176:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40717a:	8b 75 18             	mov    0x18(%ebp),%esi
40717d:	8b 5d 10             	mov    0x10(%ebp),%ebx
407180:	83 fe 01             	cmp    $0x1,%esi
407183:	75 19                	jne    0x40719e
407185:	68 a8 12 40 00       	push   $0x4012a8
40718a:	8b cb                	mov    %ebx,%ecx
40718c:	ff 15 08 22 41 00    	call   *0x412208
407192:	85 c0                	test   %eax,%eax
407194:	75 08                	jne    0x40719e
407196:	8b 7d 0c             	mov    0xc(%ebp),%edi
407199:	e9 b4 00 00 00       	jmp    0x407252
40719e:	8b 7d 0c             	mov    0xc(%ebp),%edi
4071a1:	8b cf                	mov    %edi,%ecx
4071a3:	ff 15 38 22 41 00    	call   *0x412238
4071a9:	8b 40 04             	mov    0x4(%eax),%eax
4071ac:	85 c0                	test   %eax,%eax
4071ae:	75 13                	jne    0x4071c3
4071b0:	51                   	push   %ecx
4071b1:	ff 75 20             	push   0x20(%ebp)
4071b4:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4071b7:	50                   	push   %eax
4071b8:	51                   	push   %ecx
4071b9:	33 c0                	xor    %eax,%eax
4071bb:	50                   	push   %eax
4071bc:	ff 75 14             	push   0x14(%ebp)
4071bf:	50                   	push   %eax
4071c0:	50                   	push   %eax
4071c1:	eb 1f                	jmp    0x4071e2
4071c3:	33 c9                	xor    %ecx,%ecx
4071c5:	85 f6                	test   %esi,%esi
4071c7:	75 02                	jne    0x4071cb
4071c9:	8b 0b                	mov    (%ebx),%ecx