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
404ea2:	a1 70 60 40 00       	mov    0x406070,%eax
404ea7:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
404eae:	8b 4d f0             	mov    -0x10(%ebp),%ecx
404eb1:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
404eb8:	59                   	pop    %ecx
404eb9:	5f                   	pop    %edi
404eba:	5e                   	pop    %esi
404ebb:	5b                   	pop    %ebx
404ebc:	c9                   	leave
404ebd:	c3                   	ret
404ebe:	8b ff                	mov    %edi,%edi
404ec0:	55                   	push   %ebp
404ec1:	8b ec                	mov    %esp,%ebp
404ec3:	56                   	push   %esi
404ec4:	8b 75 08             	mov    0x8(%ebp),%esi
404ec7:	33 c0                	xor    %eax,%eax
404ec9:	3b 75 0c             	cmp    0xc(%ebp),%esi
404ecc:	73 1e                	jae    0x404eec
404ece:	57                   	push   %edi
404ecf:	85 c0                	test   %eax,%eax
404ed1:	75 18                	jne    0x404eeb
404ed3:	8b 3e                	mov    (%esi),%edi
404ed5:	85 ff                	test   %edi,%edi
404ed7:	74 0a                	je     0x404ee3
404ed9:	8b cf                	mov    %edi,%ecx
404edb:	ff 15 d0 71 40 00    	call   *0x4071d0
404ee1:	ff d7                	call   *%edi
404ee3:	83 c6 04             	add    $0x4,%esi
404ee6:	3b 75 0c             	cmp    0xc(%ebp),%esi
404ee9:	72 e4                	jb     0x404ecf
404eeb:	5f                   	pop    %edi
404eec:	5e                   	pop    %esi
404eed:	5d                   	pop    %ebp
404eee:	c3                   	ret
404eef:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
404ef4:	66 39 05 00 00 40 00 	cmp    %ax,0x400000
404efb:	75 55                	jne    0x404f52
404efd:	8b 0d 3c 00 40 00    	mov    0x40003c,%ecx
404f03:	81 b9 00 00 40 00 50 	cmpl   $0x4550,0x400000(%ecx)
404f0a:	45 00 00
404f0d:	75 43                	jne    0x404f52
404f0f:	0f b7 81 18 00 40 00 	movzwl 0x400018(%ecx),%eax
404f16:	ba 0b 01 00 00       	mov    $0x10b,%edx
404f1b:	66 3b c2             	cmp    %dx,%ax
404f1e:	74 1f                	je     0x404f3f
404f20:	ba 0b 02 00 00       	mov    $0x20b,%edx
404f25:	66 3b c2             	cmp    %dx,%ax
404f28:	75 28                	jne    0x404f52
404f2a:	83 b9 84 00 40 00 0e 	cmpl   $0xe,0x400084(%ecx)
404f31:	76 1f                	jbe    0x404f52
404f33:	33 c0                	xor    %eax,%eax
404f35:	39 81 f8 00 40 00    	cmp    %eax,0x4000f8(%ecx)
404f3b:	0f 95 c0             	setne  %al
404f3e:	c3                   	ret
404f3f:	83 b9 74 00 40 00 0e 	cmpl   $0xe,0x400074(%ecx)
404f46:	76 0a                	jbe    0x404f52
404f48:	33 c0                	xor    %eax,%eax
404f4a:	39 81 e8 00 40 00    	cmp    %eax,0x4000e8(%ecx)
404f50:	eb e9                	jmp    0x404f3b
404f52:	33 c0                	xor    %eax,%eax
404f54:	c3                   	ret
404f55:	cc                   	int3
404f56:	cc                   	int3
404f57:	cc                   	int3
404f58:	cc                   	int3
404f59:	cc                   	int3
404f5a:	cc                   	int3
404f5b:	cc                   	int3
404f5c:	cc                   	int3
404f5d:	cc                   	int3
404f5e:	cc                   	int3
404f5f:	cc                   	int3
404f60:	e8 c0 04 00 00       	call   0x405425
404f65:	e9 79 fd ff ff       	jmp    0x404ce3
404f6a:	cc                   	int3
404f6b:	cc                   	int3
404f6c:	cc                   	int3
404f6d:	cc                   	int3
404f6e:	cc                   	int3
404f6f:	cc                   	int3
404f70:	8b ff                	mov    %edi,%edi
404f72:	55                   	push   %ebp
404f73:	8b ec                	mov    %esp,%ebp
404f75:	ff 75 14             	push   0x14(%ebp)
404f78:	ff 75 10             	push   0x10(%ebp)
404f7b:	ff 75 0c             	push   0xc(%ebp)
404f7e:	ff 75 08             	push   0x8(%ebp)
404f81:	68 a0 4f 40 00       	push   $0x404fa0
404f86:	68 54 60 40 00       	push   $0x406054
404f8b:	e8 b3 05 00 00       	call   0x405543
404f90:	83 c4 18             	add    $0x18,%esp
404f93:	5d                   	pop    %ebp
404f94:	c3                   	ret
404f95:	cc                   	int3
404f96:	cc                   	int3
404f97:	cc                   	int3
404f98:	cc                   	int3
404f99:	cc                   	int3
404f9a:	cc                   	int3
404f9b:	cc                   	int3
404f9c:	cc                   	int3
404f9d:	cc                   	int3
404f9e:	cc                   	int3
404f9f:	cc                   	int3
404fa0:	3b 0d 54 60 40 00    	cmp    0x406054,%ecx
404fa6:	75 03                	jne    0x404fab
404fa8:	c2 00 00             	ret    $0x0
404fab:	e9 2c 00 00 00       	jmp    0x404fdc
404fb0:	8b ff                	mov    %edi,%edi
404fb2:	55                   	push   %ebp
404fb3:	8b ec                	mov    %esp,%ebp
404fb5:	6a 00                	push   $0x0
404fb7:	ff 15 48 70 40 00    	call   *0x407048
404fbd:	ff 75 08             	push   0x8(%ebp)
404fc0:	ff 15 44 70 40 00    	call   *0x407044
404fc6:	68 09 04 00 c0       	push   $0xc0000409
404fcb:	ff 15 b8 70 40 00    	call   *0x4070b8
404fd1:	50                   	push   %eax
404fd2:	ff 15 bc 70 40 00    	call   *0x4070bc
404fd8:	5d                   	pop    %ebp
404fd9:	c3                   	ret
404fda:	cc                   	int3
404fdb:	cc                   	int3
404fdc:	8b ff                	mov    %edi,%edi
404fde:	55                   	push   %ebp
404fdf:	8b ec                	mov    %esp,%ebp
404fe1:	81 ec 24 03 00 00    	sub    $0x324,%esp
404fe7:	a3 90 61 40 00       	mov    %eax,0x406190
404fec:	89 0d 8c 61 40 00    	mov    %ecx,0x40618c
404ff2:	89 15 88 61 40 00    	mov    %edx,0x406188
404ff8:	89 1d 84 61 40 00    	mov    %ebx,0x406184
404ffe:	89 35 80 61 40 00    	mov    %esi,0x406180
405004:	89 3d 7c 61 40 00    	mov    %edi,0x40617c
40500a:	66 8c 15 a8 61 40 00 	data16 mov %ss,0x4061a8
405011:	66 8c 0d 9c 61 40 00 	data16 mov %cs,0x40619c
405018:	66 8c 1d 78 61 40 00 	data16 mov %ds,0x406178
40501f:	66 8c 05 74 61 40 00 	data16 mov %es,0x406174
405026:	66 8c 25 70 61 40 00 	data16 mov %fs,0x406170
40502d:	66 8c 2d 6c 61 40 00 	data16 mov %gs,0x40616c
405034:	9c                   	pushf
405035:	8f 05 a0 61 40 00    	pop    0x4061a0
40503b:	8b 45 00             	mov    0x0(%ebp),%eax
40503e:	a3 94 61 40 00       	mov    %eax,0x406194
405043:	8b 45 04             	mov    0x4(%ebp),%eax
405046:	a3 98 61 40 00       	mov    %eax,0x406198
40504b:	8d 45 08             	lea    0x8(%ebp),%eax
40504e:	a3 a4 61 40 00       	mov    %eax,0x4061a4
405053:	8b 85 dc fc ff ff    	mov    -0x324(%ebp),%eax
405059:	c7 05 e0 60 40 00 01 	movl   $0x10001,0x4060e0
405060:	00 01 00
405063:	a1 98 61 40 00       	mov    0x406198,%eax
405068:	a3 9c 60 40 00       	mov    %eax,0x40609c
40506d:	c7 05 90 60 40 00 09 	movl   $0xc0000409,0x406090
405074:	04 00 c0
405077:	c7 05 94 60 40 00 01 	movl   $0x1,0x406094
40507e:	00 00 00
405081:	c7 05 a0 60 40 00 03 	movl   $0x3,0x4060a0
405088:	00 00 00
40508b:	6a 04                	push   $0x4
40508d:	58                   	pop    %eax
40508e:	6b c0 00             	imul   $0x0,%eax,%eax
405091:	c7 80 a4 60 40 00 02 	movl   $0x2,0x4060a4(%eax)
405098:	00 00 00
40509b:	6a 04                	push   $0x4
40509d:	58                   	pop    %eax
40509e:	c1 e0 00             	shl    $0x0,%eax
4050a1:	8b 0d 54 60 40 00    	mov    0x406054,%ecx
4050a7:	89 88 a4 60 40 00    	mov    %ecx,0x4060a4(%eax)
4050ad:	6a 04                	push   $0x4
4050af:	58                   	pop    %eax
4050b0:	d1 e0                	shl    $1,%eax
4050b2:	8b 0d 58 60 40 00    	mov    0x406058,%ecx
4050b8:	89 88 a4 60 40 00    	mov    %ecx,0x4060a4(%eax)
4050be:	6a 04                	push   $0x4
4050c0:	58                   	pop    %eax