404a97:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
404a9b:	74 14                	je     0x404ab1
404a9d:	56                   	push   %esi
404a9e:	ff 70 14             	push   0x14(%eax)
404aa1:	ba 50 16 40 00       	mov    $0x401650,%edx
404aa6:	ff 70 10             	push   0x10(%eax)
404aa9:	6a 0b                	push   $0xb
404aab:	59                   	pop    %ecx
404aac:	e8 d1 f6 ff ff       	call   0x404182
404ab1:	5f                   	pop    %edi
404ab2:	8b c6                	mov    %esi,%eax
404ab4:	5e                   	pop    %esi
404ab5:	c2 04 00             	ret    $0x4
404ab8:	cc                   	int3
404ab9:	cc                   	int3
404aba:	cc                   	int3
404abb:	cc                   	int3
404abc:	cc                   	int3
404abd:	cc                   	int3
404abe:	cc                   	int3
404abf:	cc                   	int3
404ac0:	8b ff                	mov    %edi,%edi
404ac2:	55                   	push   %ebp
404ac3:	8b ec                	mov    %esp,%ebp
404ac5:	53                   	push   %ebx
404ac6:	56                   	push   %esi
404ac7:	57                   	push   %edi
404ac8:	ff 75 0c             	push   0xc(%ebp)
404acb:	33 db                	xor    %ebx,%ebx
404acd:	53                   	push   %ebx
404ace:	68 00 00 10 00       	push   $0x100000
404ad3:	8b fb                	mov    %ebx,%edi
404ad5:	ff 15 d4 70 40 00    	call   *0x4070d4
404adb:	8b f0                	mov    %eax,%esi
404add:	85 f6                	test   %esi,%esi
404adf:	74 45                	je     0x404b26
404ae1:	8b ce                	mov    %esi,%ecx
404ae3:	ba 74 64 40 00       	mov    $0x406474,%edx
404ae8:	33 c0                	xor    %eax,%eax
404aea:	f0 0f b1 0a          	lock cmpxchg %ecx,(%edx)
404aee:	85 c0                	test   %eax,%eax
404af0:	75 2b                	jne    0x404b1d
404af2:	6a 08                	push   $0x8
404af4:	6a ff                	push   $0xffffffff
404af6:	53                   	push   %ebx
404af7:	68 b0 4b 40 00       	push   $0x404bb0
404afc:	56                   	push   %esi
404afd:	68 78 64 40 00       	push   $0x406478
404b02:	ff 15 70 70 40 00    	call   *0x407070
404b08:	85 c0                	test   %eax,%eax
404b0a:	75 21                	jne    0x404b2d
404b0c:	bf 05 40 00 80       	mov    $0x80004005,%edi
404b11:	89 1d 78 64 40 00    	mov    %ebx,0x406478
404b17:	89 1d 74 64 40 00    	mov    %ebx,0x406474
404b1d:	56                   	push   %esi
404b1e:	ff 15 58 70 40 00    	call   *0x407058
404b24:	eb 07                	jmp    0x404b2d
404b26:	e8 ba 00 00 00       	call   0x404be5
404b2b:	8b f8                	mov    %eax,%edi
404b2d:	8b c7                	mov    %edi,%eax
404b2f:	5f                   	pop    %edi
404b30:	5e                   	pop    %esi
404b31:	5b                   	pop    %ebx
404b32:	5d                   	pop    %ebp
404b33:	c2 08 00             	ret    $0x8
404b36:	cc                   	int3
404b37:	cc                   	int3
404b38:	cc                   	int3
404b39:	cc                   	int3
404b3a:	cc                   	int3
404b3b:	cc                   	int3
404b3c:	cc                   	int3
404b3d:	cc                   	int3
404b3e:	cc                   	int3
404b3f:	cc                   	int3
404b40:	8b ff                	mov    %edi,%edi
404b42:	56                   	push   %esi
404b43:	68 d0 07 00 00       	push   $0x7d0
404b48:	ff 35 7c 64 40 00    	push   0x40647c
404b4e:	ff 15 34 71 40 00    	call   *0x407134
404b54:	8b 0d 78 64 40 00    	mov    0x406478,%ecx
404b5a:	8b f0                	mov    %eax,%esi
404b5c:	85 c9                	test   %ecx,%ecx
404b5e:	74 07                	je     0x404b67
404b60:	51                   	push   %ecx
404b61:	ff 15 6c 70 40 00    	call   *0x40706c
404b67:	85 f6                	test   %esi,%esi
404b69:	5e                   	pop    %esi
404b6a:	ff 35 7c 64 40 00    	push   0x40647c
404b70:	75 12                	jne    0x404b84
404b72:	ff 15 58 70 40 00    	call   *0x407058
404b78:	83 25 7c 64 40 00 00 	andl   $0x0,0x40647c
404b7f:	33 c0                	xor    %eax,%eax
404b81:	c2 04 00             	ret    $0x4
404b84:	ff 15 58 70 40 00    	call   *0x407058
404b8a:	ff 35 80 64 40 00    	push   0x406480
404b90:	83 25 7c 64 40 00 00 	andl   $0x0,0x40647c
404b97:	ff 15 58 70 40 00    	call   *0x407058
404b9d:	83 25 80 64 40 00 00 	andl   $0x0,0x406480
404ba4:	6a ff                	push   $0xffffffff
404ba6:	ff 15 b4 70 40 00    	call   *0x4070b4
404bac:	cc                   	int3
404bad:	cc                   	int3
404bae:	cc                   	int3
404baf:	cc                   	int3
404bb0:	6a ff                	push   $0xffffffff
404bb2:	ff 15 b4 70 40 00    	call   *0x4070b4
404bb8:	cc                   	int3
404bb9:	8b ff                	mov    %edi,%edi
404bbb:	55                   	push   %ebp
404bbc:	8b ec                	mov    %esp,%ebp
404bbe:	ff 35 60 16 40 00    	push   0x401660
404bc4:	ff 75 0c             	push   0xc(%ebp)
404bc7:	ff 35 30 70 40 00    	push   0x407030
404bcd:	ff 35 60 16 40 00    	push   0x401660
404bd3:	ff 75 08             	push   0x8(%ebp)
404bd6:	68 00 00 40 00       	push   $0x400000
404bdb:	ff 15 38 70 40 00    	call   *0x407038
404be1:	5d                   	pop    %ebp
404be2:	c2 08 00             	ret    $0x8
404be5:	ff 15 40 70 40 00    	call   *0x407040
404beb:	8b c8                	mov    %eax,%ecx
404bed:	ba 00 00 00 e0       	mov    $0xe0000000,%edx
404bf2:	23 ca                	and    %edx,%ecx
404bf4:	74 0d                	je     0x404c03
404bf6:	3b ca                	cmp    %edx,%ecx
404bf8:	75 09                	jne    0x404c03
404bfa:	0f b7 c0             	movzwl %ax,%eax
404bfd:	0d 00 00 0f 80       	or     $0x800f0000,%eax
404c02:	c3                   	ret
404c03:	85 c0                	test   %eax,%eax
404c05:	7e 08                	jle    0x404c0f
404c07:	0f b7 c0             	movzwl %ax,%eax
404c0a:	0d 00 00 07 80       	or     $0x80070000,%eax
404c0f:	c3                   	ret
404c10:	8b ff                	mov    %edi,%edi
404c12:	55                   	push   %ebp
404c13:	8b ec                	mov    %esp,%ebp
404c15:	56                   	push   %esi
404c16:	eb 0d                	jmp    0x404c25
404c18:	ff 75 08             	push   0x8(%ebp)
404c1b:	e8 90 05 00 00       	call   0x4051b0
404c20:	59                   	pop    %ecx
404c21:	85 c0                	test   %eax,%eax
404c23:	74 0f                	je     0x404c34
404c25:	ff 75 08             	push   0x8(%ebp)
404c28:	e8 7d 05 00 00       	call   0x4051aa
404c2d:	8b f0                	mov    %eax,%esi
404c2f:	59                   	pop    %ecx
404c30:	85 f6                	test   %esi,%esi
404c32:	74 e4                	je     0x404c18
404c34:	8b c6                	mov    %esi,%eax
404c36:	5e                   	pop    %esi
404c37:	5d                   	pop    %ebp
404c38:	c3                   	ret
404c39:	e9 66 05 00 00       	jmp    0x4051a4
404c3e:	cc                   	int3
404c3f:	cc                   	int3
404c40:	e8 aa 02 00 00       	call   0x404eef
404c45:	6a 02                	push   $0x2
404c47:	a3 88 60 40 00       	mov    %eax,0x406088
404c4c:	e8 47 06 00 00       	call   0x405298
404c51:	50                   	push   %eax
404c52:	ff 15 94 71 40 00    	call   *0x407194
404c58:	83 0d 88 64 40 00 ff 	orl    $0xffffffff,0x406488
404c5f:	83 0d 8c 64 40 00 ff 	orl    $0xffffffff,0x40648c
404c66:	59                   	pop    %ecx
404c67:	59                   	pop    %ecx
404c68:	ff 15 6c 71 40 00    	call   *0x40716c
404c6e:	8b 0d b8 63 40 00    	mov    0x4063b8,%ecx
404c74:	89 08                	mov    %ecx,(%eax)
404c76:	ff 15 74 71 40 00    	call   *0x407174
404c7c:	8b 0d ac 63 40 00    	mov    0x4063ac,%ecx
404c82:	89 08                	mov    %ecx,(%eax)
404c84:	e8 67 fa ff ff       	call   0x4046f0
404c89:	83 3d 50 60 40 00 00 	cmpl   $0x0,0x406050
404c90:	75 0c                	jne    0x404c9e
404c92:	68 f0 46 40 00       	push   $0x4046f0
404c97:	ff 15 70 71 40 00    	call   *0x407170
404c9d:	59                   	pop    %ecx
404c9e:	e8 1a 08 00 00       	call   0x4054bd
404ca3:	33 c0                	xor    %eax,%eax
404ca5:	c3                   	ret
404ca6:	cc                   	int3
404ca7:	cc                   	int3
404ca8:	cc                   	int3
404ca9:	cc                   	int3
404caa:	cc                   	int3
404cab:	cc                   	int3
404cac:	cc                   	int3
404cad:	cc                   	int3
404cae:	cc                   	int3
404caf:	cc                   	int3
404cb0:	a1 b4 63 40 00       	mov    0x4063b4,%eax
404cb5:	68 8c 60 40 00       	push   $0x40608c
404cba:	ff 35 b0 63 40 00    	push   0x4063b0
404cc0:	a3 8c 60 40 00       	mov    %eax,0x40608c
404cc5:	68 80 60 40 00       	push   $0x406080
404cca:	68 7c 60 40 00       	push   $0x40607c
404ccf:	68 78 60 40 00       	push   $0x406078
404cd4:	ff 15 60 71 40 00    	call   *0x407160
404cda:	83 c4 14             	add    $0x14,%esp
404cdd:	a3 84 60 40 00       	mov    %eax,0x406084
404ce2:	c3                   	ret
404ce3:	6a 58                	push   $0x58
404ce5:	68 10 57 40 00       	push   $0x405710
404cea:	e8 e9 07 00 00       	call   0x4054d8
404cef:	33 db                	xor    %ebx,%ebx
404cf1:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
404cf4:	8d 45 98             	lea    -0x68(%ebp),%eax
404cf7:	50                   	push   %eax
404cf8:	ff 15 cc 70 40 00    	call   *0x4070cc
404cfe:	89 5d fc             	mov    %ebx,-0x4(%ebp)
404d01:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
404d07:	8b 70 04             	mov    0x4(%eax),%esi
404d0a:	8b fb                	mov    %ebx,%edi
404d0c:	ba 90 64 40 00       	mov    $0x406490,%edx
404d11:	8b ce                	mov    %esi,%ecx
404d13:	33 c0                	xor    %eax,%eax
404d15:	f0 0f b1 0a          	lock cmpxchg %ecx,(%edx)
404d19:	85 c0                	test   %eax,%eax
404d1b:	74 18                	je     0x404d35
404d1d:	3b c6                	cmp    %esi,%eax
404d1f:	75 07                	jne    0x404d28
404d21:	33 f6                	xor    %esi,%esi
404d23:	46                   	inc    %esi
404d24:	8b fe                	mov    %esi,%edi
404d26:	eb 10                	jmp    0x404d38
404d28:	68 e8 03 00 00       	push   $0x3e8
404d2d:	ff 15 48 71 40 00    	call   *0x407148
404d33:	eb d7                	jmp    0x404d0c
404d35:	33 f6                	xor    %esi,%esi
404d37:	46                   	inc    %esi
404d38:	39 35 94 64 40 00    	cmp    %esi,0x406494
404d3e:	75 0a                	jne    0x404d4a
404d40:	6a 1f                	push   $0x1f
404d42:	e8 87 05 00 00       	call   0x4052ce
404d47:	59                   	pop    %ecx
404d48:	eb 3a                	jmp    0x404d84
404d4a:	39 1d 94 64 40 00    	cmp    %ebx,0x406494
404d50:	75 2c                	jne    0x404d7e
404d52:	89 35 94 64 40 00    	mov    %esi,0x406494
404d58:	68 cc 11 40 00       	push   $0x4011cc
404d5d:	68 c0 11 40 00       	push   $0x4011c0
404d62:	e8 57 01 00 00       	call   0x404ebe
404d67:	59                   	pop    %ecx
404d68:	59                   	pop    %ecx
404d69:	85 c0                	test   %eax,%eax
404d6b:	74 17                	je     0x404d84
404d6d:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
404d74:	b8 ff 00 00 00       	mov    $0xff,%eax
404d79:	e9 30 01 00 00       	jmp    0x404eae
404d7e:	89 35 74 60 40 00    	mov    %esi,0x406074
404d84:	39 35 94 64 40 00    	cmp    %esi,0x406494
404d8a:	75 1b                	jne    0x404da7
404d8c:	68 bc 11 40 00       	push   $0x4011bc
404d91:	68 b4 11 40 00       	push   $0x4011b4
404d96:	e8 35 07 00 00       	call   0x4054d0
404d9b:	59                   	pop    %ecx
404d9c:	59                   	pop    %ecx
404d9d:	c7 05 94 64 40 00 02 	movl   $0x2,0x406494
404da4:	00 00 00
404da7:	85 ff                	test   %edi,%edi
404da9:	75 09                	jne    0x404db4
404dab:	33 c0                	xor    %eax,%eax
404dad:	b9 90 64 40 00       	mov    $0x406490,%ecx
404db2:	87 01                	xchg   %eax,(%ecx)
404db4:	83 3d 98 64 40 00 00 	cmpl   $0x0,0x406498
404dbb:	74 23                	je     0x404de0
404dbd:	68 98 64 40 00       	push   $0x406498
404dc2:	e8 69 05 00 00       	call   0x405330
404dc7:	59                   	pop    %ecx
404dc8:	85 c0                	test   %eax,%eax
404dca:	74 14                	je     0x404de0
404dcc:	53                   	push   %ebx
404dcd:	6a 02                	push   $0x2
404dcf:	53                   	push   %ebx
404dd0:	8b 35 98 64 40 00    	mov    0x406498,%esi
404dd6:	8b ce                	mov    %esi,%ecx
404dd8:	ff 15 d0 71 40 00    	call   *0x4071d0
404dde:	ff d6                	call   *%esi
404de0:	a1 88 71 40 00       	mov    0x407188,%eax
404de5:	8b 08                	mov    (%eax),%ecx
404de7:	85 c9                	test   %ecx,%ecx
404de9:	74 82                	je     0x404d6d
404deb:	89 4d e0             	mov    %ecx,-0x20(%ebp)
404dee:	6a 20                	push   $0x20
404df0:	5e                   	pop    %esi
404df1:	8b 55 e4             	mov    -0x1c(%ebp),%edx
404df4:	0f b7 01             	movzwl (%ecx),%eax
404df7:	66 3b c6             	cmp    %si,%ax
404dfa:	77 4f                	ja     0x404e4b
404dfc:	66 85 c0             	test   %ax,%ax
404dff:	74 19                	je     0x404e1a
404e01:	85 d2                	test   %edx,%edx
404e03:	75 46                	jne    0x404e4b
404e05:	66 85 c0             	test   %ax,%ax
404e08:	74 10                	je     0x404e1a
404e0a:	66 3b c6             	cmp    %si,%ax
404e0d:	77 0b                	ja     0x404e1a
404e0f:	83 c1 02             	add    $0x2,%ecx
404e12:	89 4d e0             	mov    %ecx,-0x20(%ebp)
404e15:	0f b7 01             	movzwl (%ecx),%eax
404e18:	eb eb                	jmp    0x404e05
404e1a:	f6 45 c4 01          	testb  $0x1,-0x3c(%ebp)
404e1e:	74 06                	je     0x404e26
404e20:	0f b7 45 c8          	movzwl -0x38(%ebp),%eax
404e24:	eb 03                	jmp    0x404e29
404e26:	6a 0a                	push   $0xa
404e28:	58                   	pop    %eax
404e29:	50                   	push   %eax
404e2a:	51                   	push   %ecx
404e2b:	53                   	push   %ebx
404e2c:	68 00 00 40 00       	push   $0x400000
404e31:	e8 9b f6 ff ff       	call   0x4044d1
404e36:	a3 70 60 40 00       	mov    %eax,0x406070
404e3b:	83 3d 88 60 40 00 00 	cmpl   $0x0,0x406088
404e42:	75 4f                	jne    0x404e93
404e44:	50                   	push   %eax
404e45:	ff 15 7c 71 40 00    	call   *0x40717c
404e4b:	83 f8 22             	cmp    $0x22,%eax
404e4e:	75 0c                	jne    0x404e5c
404e50:	33 c0                	xor    %eax,%eax
404e52:	85 d2                	test   %edx,%edx
404e54:	0f 94 c0             	sete   %al
404e57:	8b d0                	mov    %eax,%edx
404e59:	89 55 e4             	mov    %edx,-0x1c(%ebp)
404e5c:	83 c1 02             	add    $0x2,%ecx
404e5f:	89 4d e0             	mov    %ecx,-0x20(%ebp)
404e62:	eb 90                	jmp    0x404df4
404e64:	8b 4d ec             	mov    -0x14(%ebp),%ecx
404e67:	8b 01                	mov    (%ecx),%eax
404e69:	8b 00                	mov    (%eax),%eax
404e6b:	89 45 dc             	mov    %eax,-0x24(%ebp)
404e6e:	51                   	push   %ecx
404e6f:	50                   	push   %eax
404e70:	e8 a9 03 00 00       	call   0x40521e
404e75:	59                   	pop    %ecx
404e76:	59                   	pop    %ecx
404e77:	c3                   	ret
404e78:	8b 65 e8             	mov    -0x18(%ebp),%esp
404e7b:	8b 45 dc             	mov    -0x24(%ebp),%eax
404e7e:	a3 70 60 40 00       	mov    %eax,0x406070
404e83:	83 3d 88 60 40 00 00 	cmpl   $0x0,0x406088
404e8a:	75 07                	jne    0x404e93
404e8c:	50                   	push   %eax
404e8d:	ff 15 68 71 40 00    	call   *0x407168
404e93:	83 3d 74 60 40 00 00 	cmpl   $0x0,0x406074
404e9a:	75 0b                	jne    0x404ea7
404e9c:	ff 15 a0 71 40 00    	call   *0x4071a0