403bd6:	ff 15 04 80 40 00    	call   *0x408004
403bdc:	8b f0                	mov    %eax,%esi
403bde:	85 f6                	test   %esi,%esi
403be0:	78 15                	js     0x403bf7
403be2:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
403be8:	50                   	push   %eax
403be9:	ff 15 0c 80 40 00    	call   *0x40800c
403bef:	8b 8d cc fd ff ff    	mov    -0x234(%ebp),%ecx
403bf5:	89 01                	mov    %eax,(%ecx)
403bf7:	8d 8d c8 fd ff ff    	lea    -0x238(%ebp),%ecx
403bfd:	e8 94 0b 00 00       	call   0x404796
403c02:	8b c6                	mov    %esi,%eax
403c04:	5e                   	pop    %esi
403c05:	eb 05                	jmp    0x403c0c
403c07:	b8 03 40 00 80       	mov    $0x80004003,%eax
403c0c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
403c0f:	5f                   	pop    %edi
403c10:	33 cd                	xor    %ebp,%ecx
403c12:	5b                   	pop    %ebx
403c13:	e8 88 13 00 00       	call   0x404fa0
403c18:	c9                   	leave
403c19:	c2 08 00             	ret    $0x8
403c1c:	8b ff                	mov    %edi,%edi
403c1e:	55                   	push   %ebp
403c1f:	8b ec                	mov    %esp,%ebp
403c21:	83 ec 0c             	sub    $0xc,%esp
403c24:	53                   	push   %ebx
403c25:	56                   	push   %esi
403c26:	57                   	push   %edi
403c27:	8d 45 fc             	lea    -0x4(%ebp),%eax
403c2a:	33 db                	xor    %ebx,%ebx
403c2c:	50                   	push   %eax
403c2d:	8d 45 f4             	lea    -0xc(%ebp),%eax
403c30:	89 5d f4             	mov    %ebx,-0xc(%ebp)
403c33:	50                   	push   %eax
403c34:	89 5d fc             	mov    %ebx,-0x4(%ebp)
403c37:	e8 61 fe ff ff       	call   0x403a9d
403c3c:	8b f8                	mov    %eax,%edi
403c3e:	85 ff                	test   %edi,%edi
403c40:	78 7f                	js     0x403cc1
403c42:	8b 45 fc             	mov    -0x4(%ebp),%eax
403c45:	8d 55 f8             	lea    -0x8(%ebp),%edx
403c48:	52                   	push   %edx
403c49:	50                   	push   %eax
403c4a:	8b 08                	mov    (%eax),%ecx
403c4c:	8b 71 1c             	mov    0x1c(%ecx),%esi
403c4f:	8b ce                	mov    %esi,%ecx
403c51:	ff 15 d0 71 40 00    	call   *0x4071d0
403c57:	ff d6                	call   *%esi
403c59:	8b f8                	mov    %eax,%edi
403c5b:	85 ff                	test   %edi,%edi
403c5d:	78 62                	js     0x403cc1
403c5f:	53                   	push   %ebx
403c60:	53                   	push   %ebx
403c61:	68 4c 15 40 00       	push   $0x40154c
403c66:	ff 15 80 70 40 00    	call   *0x407080
403c6c:	8b f0                	mov    %eax,%esi
403c6e:	85 f6                	test   %esi,%esi
403c70:	74 39                	je     0x403cab
403c72:	68 68 15 40 00       	push   $0x401568
403c77:	56                   	push   %esi
403c78:	ff 15 94 70 40 00    	call   *0x407094
403c7e:	8b d8                	mov    %eax,%ebx
403c80:	85 db                	test   %ebx,%ebx
403c82:	74 20                	je     0x403ca4
403c84:	8b 55 f8             	mov    -0x8(%ebp),%edx
403c87:	ff 72 14             	push   0x14(%edx)
403c8a:	0f b7 4a 1a          	movzwl 0x1a(%edx),%ecx
403c8e:	ff 72 10             	push   0x10(%edx)
403c91:	51                   	push   %ecx
403c92:	0f b7 4a 18          	movzwl 0x18(%edx),%ecx
403c96:	51                   	push   %ecx
403c97:	52                   	push   %edx
403c98:	8b cb                	mov    %ebx,%ecx
403c9a:	ff 15 d0 71 40 00    	call   *0x4071d0
403ca0:	ff d3                	call   *%ebx
403ca2:	8b f8                	mov    %eax,%edi
403ca4:	56                   	push   %esi
403ca5:	ff 15 78 70 40 00    	call   *0x407078
403cab:	8b 45 fc             	mov    -0x4(%ebp),%eax
403cae:	ff 75 f8             	push   -0x8(%ebp)
403cb1:	50                   	push   %eax
403cb2:	8b 08                	mov    (%eax),%ecx
403cb4:	8b 71 30             	mov    0x30(%ecx),%esi
403cb7:	8b ce                	mov    %esi,%ecx
403cb9:	ff 15 d0 71 40 00    	call   *0x4071d0
403cbf:	ff d6                	call   *%esi
403cc1:	8b 45 fc             	mov    -0x4(%ebp),%eax
403cc4:	85 c0                	test   %eax,%eax
403cc6:	74 10                	je     0x403cd8
403cc8:	8b 08                	mov    (%eax),%ecx
403cca:	50                   	push   %eax
403ccb:	8b 71 08             	mov    0x8(%ecx),%esi
403cce:	8b ce                	mov    %esi,%ecx
403cd0:	ff 15 d0 71 40 00    	call   *0x4071d0
403cd6:	ff d6                	call   *%esi
403cd8:	ff 75 f4             	push   -0xc(%ebp)
403cdb:	ff 15 14 80 40 00    	call   *0x408014
403ce1:	8b c7                	mov    %edi,%eax
403ce3:	5f                   	pop    %edi
403ce4:	5e                   	pop    %esi
403ce5:	5b                   	pop    %ebx
403ce6:	c9                   	leave
403ce7:	c3                   	ret
403ce8:	8b ff                	mov    %edi,%edi
403cea:	55                   	push   %ebp
403ceb:	8b ec                	mov    %esp,%ebp
403ced:	81 ec 1c 02 00 00    	sub    $0x21c,%esp
403cf3:	a1 54 60 40 00       	mov    0x406054,%eax
403cf8:	33 c5                	xor    %ebp,%eax
403cfa:	89 45 fc             	mov    %eax,-0x4(%ebp)
403cfd:	53                   	push   %ebx
403cfe:	33 c0                	xor    %eax,%eax
403d00:	56                   	push   %esi
403d01:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
403d07:	89 85 ec fd ff ff    	mov    %eax,-0x214(%ebp)
403d0d:	8d 85 ec fd ff ff    	lea    -0x214(%ebp),%eax
403d13:	57                   	push   %edi
403d14:	50                   	push   %eax
403d15:	8d 85 e4 fd ff ff    	lea    -0x21c(%ebp),%eax
403d1b:	50                   	push   %eax
403d1c:	e8 7c fd ff ff       	call   0x403a9d
403d21:	8b b5 e4 fd ff ff    	mov    -0x21c(%ebp),%esi
403d27:	8b d8                	mov    %eax,%ebx
403d29:	85 db                	test   %ebx,%ebx
403d2b:	0f 88 21 01 00 00    	js     0x403e52
403d31:	8b 85 ec fd ff ff    	mov    -0x214(%ebp),%eax
403d37:	8d 8d e8 fd ff ff    	lea    -0x218(%ebp),%ecx
403d3d:	51                   	push   %ecx
403d3e:	33 db                	xor    %ebx,%ebx
403d40:	53                   	push   %ebx
403d41:	53                   	push   %ebx
403d42:	89 9d e8 fd ff ff    	mov    %ebx,-0x218(%ebp)
403d48:	8b 38                	mov    (%eax),%edi
403d4a:	53                   	push   %ebx
403d4b:	6a ff                	push   $0xffffffff
403d4d:	50                   	push   %eax
403d4e:	8b 4f 24             	mov    0x24(%edi),%ecx
403d51:	ff 15 d0 71 40 00    	call   *0x4071d0
403d57:	ff 57 24             	call   *0x24(%edi)
403d5a:	85 c0                	test   %eax,%eax
403d5c:	0f 88 d4 00 00 00    	js     0x403e36
403d62:	39 9d e8 fd ff ff    	cmp    %ebx,-0x218(%ebp)
403d68:	0f 84 c8 00 00 00    	je     0x403e36
403d6e:	56                   	push   %esi
403d6f:	ff 15 08 80 40 00    	call   *0x408008
403d75:	3d 04 01 00 00       	cmp    $0x104,%eax
403d7a:	76 37                	jbe    0x403db3
403d7c:	ff b5 e8 fd ff ff    	push   -0x218(%ebp)
403d82:	ff 15 14 80 40 00    	call   *0x408014
403d88:	8b 85 ec fd ff ff    	mov    -0x214(%ebp),%eax
403d8e:	85 c0                	test   %eax,%eax
403d90:	74 10                	je     0x403da2
403d92:	8b 08                	mov    (%eax),%ecx
403d94:	50                   	push   %eax
403d95:	8b 79 08             	mov    0x8(%ecx),%edi
403d98:	8b cf                	mov    %edi,%ecx
403d9a:	ff 15 d0 71 40 00    	call   *0x4071d0
403da0:	ff d7                	call   *%edi
403da2:	56                   	push   %esi
403da3:	ff 15 14 80 40 00    	call   *0x408014
403da9:	b8 35 01 01 80       	mov    $0x80010135,%eax
403dae:	e9 c2 00 00 00       	jmp    0x403e75
403db3:	8d 95 f0 fd ff ff    	lea    -0x210(%ebp),%edx
403db9:	8b ce                	mov    %esi,%ecx
403dbb:	2b d6                	sub    %esi,%edx
403dbd:	0f b7 01             	movzwl (%ecx),%eax
403dc0:	66 89 04 0a          	mov    %ax,(%edx,%ecx,1)
403dc4:	8d 49 02             	lea    0x2(%ecx),%ecx
403dc7:	66 85 c0             	test   %ax,%ax
403dca:	75 f1                	jne    0x403dbd
403dcc:	8d bd f0 fd ff ff    	lea    -0x210(%ebp),%edi
403dd2:	8b df                	mov    %edi,%ebx
403dd4:	66 39 85 f0 fd ff ff 	cmp    %ax,-0x210(%ebp)
403ddb:	74 2a                	je     0x403e07
403ddd:	33 f6                	xor    %esi,%esi
403ddf:	53                   	push   %ebx
403de0:	ff 15 14 71 40 00    	call   *0x407114
403de6:	0f b7 0b             	movzwl (%ebx),%ecx
403de9:	83 f9 5c             	cmp    $0x5c,%ecx
403dec:	74 0a                	je     0x403df8
403dee:	83 f9 2f             	cmp    $0x2f,%ecx
403df1:	74 05                	je     0x403df8
403df3:	83 f9 3a             	cmp    $0x3a,%ecx
403df6:	75 02                	jne    0x403dfa
403df8:	8b f8                	mov    %eax,%edi
403dfa:	8b d8                	mov    %eax,%ebx
403dfc:	66 39 30             	cmp    %si,(%eax)
403dff:	75 de                	jne    0x403ddf
403e01:	8b b5 e4 fd ff ff    	mov    -0x21c(%ebp),%esi
403e07:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
403e0d:	2b f8                	sub    %eax,%edi
403e0f:	d1 ff                	sar    $1,%edi
403e11:	81 ff 05 01 00 00    	cmp    $0x105,%edi
403e17:	73 14                	jae    0x403e2d
403e19:	03 ff                	add    %edi,%edi
403e1b:	81 ff 0a 02 00 00    	cmp    $0x20a,%edi
403e21:	73 61                	jae    0x403e84
403e23:	33 c0                	xor    %eax,%eax
403e25:	66 89 84 3d f0 fd ff 	mov    %ax,-0x210(%ebp,%edi,1)
403e2c:	ff
403e2d:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
403e33:	50                   	push   %eax
403e34:	eb 01                	jmp    0x403e37
403e36:	53                   	push   %ebx
403e37:	56                   	push   %esi
403e38:	ff b5 ec fd ff ff    	push   -0x214(%ebp)
403e3e:	ff 15 10 80 40 00    	call   *0x408010
403e44:	ff b5 e8 fd ff ff    	push   -0x218(%ebp)
403e4a:	8b d8                	mov    %eax,%ebx
403e4c:	ff 15 14 80 40 00    	call   *0x408014
403e52:	8b 85 ec fd ff ff    	mov    -0x214(%ebp),%eax
403e58:	85 c0                	test   %eax,%eax
403e5a:	74 10                	je     0x403e6c
403e5c:	8b 08                	mov    (%eax),%ecx
403e5e:	50                   	push   %eax
403e5f:	8b 79 08             	mov    0x8(%ecx),%edi
403e62:	8b cf                	mov    %edi,%ecx
403e64:	ff 15 d0 71 40 00    	call   *0x4071d0
403e6a:	ff d7                	call   *%edi
403e6c:	56                   	push   %esi
403e6d:	ff 15 14 80 40 00    	call   *0x408014
403e73:	8b c3                	mov    %ebx,%eax
403e75:	8b 4d fc             	mov    -0x4(%ebp),%ecx
403e78:	5f                   	pop    %edi
403e79:	5e                   	pop    %esi
403e7a:	33 cd                	xor    %ebp,%ecx
403e7c:	5b                   	pop    %ebx
403e7d:	e8 1e 11 00 00       	call   0x404fa0
403e82:	c9                   	leave
403e83:	c3                   	ret
403e84:	e8 61 12 00 00       	call   0x4050ea
403e89:	cc                   	int3
403e8a:	8b ff                	mov    %edi,%edi
403e8c:	55                   	push   %ebp
403e8d:	8b ec                	mov    %esp,%ebp
403e8f:	56                   	push   %esi
403e90:	57                   	push   %edi
403e91:	ff 75 0c             	push   0xc(%ebp)
403e94:	c7 05 40 64 40 00 5c 	movl   $0x40605c,0x406440
403e9b:	60 40 00
403e9e:	c7 05 70 64 40 00 d0 	movl   $0x4063d0,0x406470
403ea5:	63 40 00
403ea8:	c7 05 d0 63 40 00 84 	movl   $0x84,0x4063d0
403eaf:	00 00 00
403eb2:	c7 05 34 64 40 00 00 	movl   $0x300,0x406434
403eb9:	03 00 00
403ebc:	e8 40 f6 ff ff       	call   0x403501
403ec1:	8b f0                	mov    %eax,%esi
403ec3:	33 ff                	xor    %edi,%edi
403ec5:	85 f6                	test   %esi,%esi
403ec7:	78 45                	js     0x403f0e
403ec9:	8b f7                	mov    %edi,%esi
403ecb:	85 f6                	test   %esi,%esi
403ecd:	78 3f                	js     0x403f0e
403ecf:	ff 15 c0 70 40 00    	call   *0x4070c0
403ed5:	6a 0c                	push   $0xc
403ed7:	a3 54 64 40 00       	mov    %eax,0x406454
403edc:	89 3d 58 64 40 00    	mov    %edi,0x406458
403ee2:	e8 29 0d 00 00       	call   0x404c10
403ee7:	59                   	pop    %ecx
403ee8:	85 c0                	test   %eax,%eax
403eea:	74 0a                	je     0x403ef6
403eec:	89 38                	mov    %edi,(%eax)
403eee:	89 78 04             	mov    %edi,0x4(%eax)
403ef1:	89 78 08             	mov    %edi,0x8(%eax)
403ef4:	eb 02                	jmp    0x403ef8
403ef6:	8b c7                	mov    %edi,%eax
403ef8:	a3 58 64 40 00       	mov    %eax,0x406458
403efd:	85 c0                	test   %eax,%eax
403eff:	75 07                	jne    0x403f08
403f01:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
403f06:	eb 08                	jmp    0x403f10
403f08:	89 3d 5c 64 40 00    	mov    %edi,0x40645c
403f0e:	8b c6                	mov    %esi,%eax
403f10:	5f                   	pop    %edi
403f11:	5e                   	pop    %esi
403f12:	5d                   	pop    %ebp
403f13:	c2 0c 00             	ret    $0xc
403f16:	8b ff                	mov    %edi,%edi
403f18:	51                   	push   %ecx
403f19:	a1 70 64 40 00       	mov    0x406470,%eax
403f1e:	56                   	push   %esi
403f1f:	57                   	push   %edi
403f20:	83 c0 1c             	add    $0x1c,%eax
403f23:	50                   	push   %eax
403f24:	ff 15 38 71 40 00    	call   *0x407138
403f2a:	8b 35 5c 64 40 00    	mov    0x40645c,%esi
403f30:	33 ff                	xor    %edi,%edi
403f32:	85 f6                	test   %esi,%esi
403f34:	74 35                	je     0x403f6b
403f36:	39 7e 04             	cmp    %edi,0x4(%esi)
403f39:	7e 10                	jle    0x403f4b
403f3b:	8b 06                	mov    (%esi),%eax
403f3d:	ff 30                	push   (%eax)
403f3f:	ff 15 24 80 40 00    	call   *0x408024
403f45:	8b 35 5c 64 40 00    	mov    0x40645c,%esi
403f4b:	85 f6                	test   %esi,%esi
403f4d:	74 1c                	je     0x403f6b
403f4f:	39 3e                	cmp    %edi,(%esi)
403f51:	74 0b                	je     0x403f5e
403f53:	ff 36                	push   (%esi)
403f55:	ff 15 64 71 40 00    	call   *0x407164
403f5b:	59                   	pop    %ecx
403f5c:	89 3e                	mov    %edi,(%esi)
403f5e:	56                   	push   %esi
403f5f:	89 7e 04             	mov    %edi,0x4(%esi)
403f62:	89 7e 08             	mov    %edi,0x8(%esi)
403f65:	e8 cf 0c 00 00       	call   0x404c39
403f6a:	59                   	pop    %ecx
403f6b:	a1 70 64 40 00       	mov    0x406470,%eax
403f70:	83 c0 1c             	add    $0x1c,%eax
403f73:	89 3d 5c 64 40 00    	mov    %edi,0x40645c
403f79:	50                   	push   %eax
403f7a:	ff 15 2c 71 40 00    	call   *0x40712c
403f80:	8b 35 58 64 40 00    	mov    0x406458,%esi
403f86:	85 f6                	test   %esi,%esi
403f88:	74 2b                	je     0x403fb5
403f8a:	39 3e                	cmp    %edi,(%esi)
403f8c:	74 0b                	je     0x403f99
403f8e:	ff 36                	push   (%esi)
403f90:	ff 15 64 71 40 00    	call   *0x407164
403f96:	59                   	pop    %ecx
403f97:	89 3e                	mov    %edi,(%esi)
403f99:	39 7e 04             	cmp    %edi,0x4(%esi)
403f9c:	74 0d                	je     0x403fab
403f9e:	ff 76 04             	push   0x4(%esi)
403fa1:	ff 15 64 71 40 00    	call   *0x407164
403fa7:	59                   	pop    %ecx
403fa8:	89 7e 04             	mov    %edi,0x4(%esi)
403fab:	56                   	push   %esi
403fac:	89 7e 08             	mov    %edi,0x8(%esi)
403faf:	e8 85 0c 00 00       	call   0x404c39
403fb4:	59                   	pop    %ecx
403fb5:	e8 53 f7 ff ff       	call   0x40370d
403fba:	5f                   	pop    %edi
403fbb:	5e                   	pop    %esi
403fbc:	59                   	pop    %ecx
403fbd:	c3                   	ret
403fbe:	8b ff                	mov    %edi,%edi
403fc0:	56                   	push   %esi
403fc1:	83 ce ff             	or     $0xffffffff,%esi
403fc4:	f0 0f c1 35 e4 63 40 	lock xadd %esi,0x4063e4
403fcb:	00
403fcc:	4e                   	dec    %esi
403fcd:	75 13                	jne    0x403fe2
403fcf:	ff 35 60 64 40 00    	push   0x406460
403fd5:	c6 05 64 64 40 00 01 	movb   $0x1,0x406464
403fdc:	ff 15 40 71 40 00    	call   *0x407140
403fe2:	8b c6                	mov    %esi,%eax