40888f:	ba 7c a3 40 00       	mov    $0x40a37c,%edx
408894:	8b ce                	mov    %esi,%ecx
408896:	33 c0                	xor    %eax,%eax
408898:	f0 0f b1 0a          	lock cmpxchg %ecx,(%edx)
40889c:	85 c0                	test   %eax,%eax
40889e:	74 18                	je     0x4088b8
4088a0:	3b c6                	cmp    %esi,%eax
4088a2:	75 07                	jne    0x4088ab
4088a4:	33 f6                	xor    %esi,%esi
4088a6:	46                   	inc    %esi
4088a7:	8b fe                	mov    %esi,%edi
4088a9:	eb 10                	jmp    0x4088bb
4088ab:	68 e8 03 00 00       	push   $0x3e8
4088b0:	ff 15 68 f1 40 00    	call   *0x40f168
4088b6:	eb d7                	jmp    0x40888f
4088b8:	33 f6                	xor    %esi,%esi
4088ba:	46                   	inc    %esi
4088bb:	39 35 80 a3 40 00    	cmp    %esi,0x40a380
4088c1:	75 0a                	jne    0x4088cd
4088c3:	6a 1f                	push   $0x1f
4088c5:	e8 24 05 00 00       	call   0x408dee
4088ca:	59                   	pop    %ecx
4088cb:	eb 3a                	jmp    0x408907
4088cd:	39 1d 80 a3 40 00    	cmp    %ebx,0x40a380
4088d3:	75 2c                	jne    0x408901
4088d5:	89 35 80 a3 40 00    	mov    %esi,0x40a380
4088db:	68 dc 10 40 00       	push   $0x4010dc
4088e0:	68 d0 10 40 00       	push   $0x4010d0
4088e5:	e8 02 01 00 00       	call   0x4089ec
4088ea:	59                   	pop    %ecx
4088eb:	59                   	pop    %ecx
4088ec:	85 c0                	test   %eax,%eax
4088ee:	74 17                	je     0x408907
4088f0:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4088f7:	b8 ff 00 00 00       	mov    $0xff,%eax
4088fc:	e9 db 00 00 00       	jmp    0x4089dc
408901:	89 35 24 a0 40 00    	mov    %esi,0x40a024
408907:	39 35 80 a3 40 00    	cmp    %esi,0x40a380
40890d:	75 1b                	jne    0x40892a
40890f:	68 cc 10 40 00       	push   $0x4010cc
408914:	68 c4 10 40 00       	push   $0x4010c4
408919:	e8 e2 06 00 00       	call   0x409000
40891e:	59                   	pop    %ecx
40891f:	59                   	pop    %ecx
408920:	c7 05 80 a3 40 00 02 	movl   $0x2,0x40a380
408927:	00 00 00
40892a:	85 ff                	test   %edi,%edi
40892c:	75 09                	jne    0x408937
40892e:	33 c0                	xor    %eax,%eax
408930:	b9 7c a3 40 00       	mov    $0x40a37c,%ecx
408935:	87 01                	xchg   %eax,(%ecx)
408937:	83 3d 84 a3 40 00 00 	cmpl   $0x0,0x40a384
40893e:	74 23                	je     0x408963
408940:	68 84 a3 40 00       	push   $0x40a384
408945:	e8 16 05 00 00       	call   0x408e60
40894a:	59                   	pop    %ecx
40894b:	85 c0                	test   %eax,%eax
40894d:	74 14                	je     0x408963
40894f:	53                   	push   %ebx
408950:	6a 02                	push   $0x2
408952:	53                   	push   %ebx
408953:	8b 35 84 a3 40 00    	mov    0x40a384,%esi
408959:	8b ce                	mov    %esi,%ecx
40895b:	ff 15 f8 f1 40 00    	call   *0x40f1f8
408961:	ff d6                	call   *%esi
408963:	ff 35 30 a0 40 00    	push   0x40a030
408969:	ff 35 2c a0 40 00    	push   0x40a02c
40896f:	ff 35 28 a0 40 00    	push   0x40a028
408975:	e8 c3 fa ff ff       	call   0x40843d
40897a:	83 c4 0c             	add    $0xc,%esp
40897d:	a3 20 a0 40 00       	mov    %eax,0x40a020
408982:	83 3d 38 a0 40 00 00 	cmpl   $0x0,0x40a038
408989:	75 36                	jne    0x4089c1
40898b:	50                   	push   %eax
40898c:	ff 15 b4 f1 40 00    	call   *0x40f1b4
408992:	8b 4d ec             	mov    -0x14(%ebp),%ecx
408995:	8b 01                	mov    (%ecx),%eax
408997:	8b 00                	mov    (%eax),%eax
408999:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40899c:	51                   	push   %ecx
40899d:	50                   	push   %eax
40899e:	e8 9b 03 00 00       	call   0x408d3e
4089a3:	59                   	pop    %ecx
4089a4:	59                   	pop    %ecx
4089a5:	c3                   	ret
4089a6:	8b 65 e8             	mov    -0x18(%ebp),%esp
4089a9:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4089ac:	a3 20 a0 40 00       	mov    %eax,0x40a020
4089b1:	83 3d 38 a0 40 00 00 	cmpl   $0x0,0x40a038
4089b8:	75 07                	jne    0x4089c1
4089ba:	50                   	push   %eax
4089bb:	ff 15 b8 f1 40 00    	call   *0x40f1b8
4089c1:	83 3d 24 a0 40 00 00 	cmpl   $0x0,0x40a024
4089c8:	75 0b                	jne    0x4089d5
4089ca:	ff 15 bc f1 40 00    	call   *0x40f1bc
4089d0:	a1 20 a0 40 00       	mov    0x40a020,%eax
4089d5:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4089dc:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4089df:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4089e6:	59                   	pop    %ecx
4089e7:	5f                   	pop    %edi
4089e8:	5e                   	pop    %esi
4089e9:	5b                   	pop    %ebx
4089ea:	c9                   	leave
4089eb:	c3                   	ret
4089ec:	8b ff                	mov    %edi,%edi
4089ee:	55                   	push   %ebp
4089ef:	8b ec                	mov    %esp,%ebp
4089f1:	56                   	push   %esi
4089f2:	8b 75 08             	mov    0x8(%ebp),%esi
4089f5:	33 c0                	xor    %eax,%eax
4089f7:	3b 75 0c             	cmp    0xc(%ebp),%esi
4089fa:	73 1e                	jae    0x408a1a
4089fc:	57                   	push   %edi
4089fd:	85 c0                	test   %eax,%eax
4089ff:	75 18                	jne    0x408a19
408a01:	8b 3e                	mov    (%esi),%edi
408a03:	85 ff                	test   %edi,%edi
408a05:	74 0a                	je     0x408a11
408a07:	8b cf                	mov    %edi,%ecx
408a09:	ff 15 f8 f1 40 00    	call   *0x40f1f8
408a0f:	ff d7                	call   *%edi
408a11:	83 c6 04             	add    $0x4,%esi
408a14:	3b 75 0c             	cmp    0xc(%ebp),%esi
408a17:	72 e4                	jb     0x4089fd
408a19:	5f                   	pop    %edi
408a1a:	5e                   	pop    %esi
408a1b:	5d                   	pop    %ebp
408a1c:	c3                   	ret
408a1d:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
408a22:	66 39 05 00 00 40 00 	cmp    %ax,0x400000
408a29:	75 55                	jne    0x408a80
408a2b:	8b 0d 3c 00 40 00    	mov    0x40003c,%ecx
408a31:	81 b9 00 00 40 00 50 	cmpl   $0x4550,0x400000(%ecx)
408a38:	45 00 00
408a3b:	75 43                	jne    0x408a80
408a3d:	0f b7 81 18 00 40 00 	movzwl 0x400018(%ecx),%eax
408a44:	ba 0b 01 00 00       	mov    $0x10b,%edx
408a49:	66 3b c2             	cmp    %dx,%ax
408a4c:	74 1f                	je     0x408a6d
408a4e:	ba 0b 02 00 00       	mov    $0x20b,%edx
408a53:	66 3b c2             	cmp    %dx,%ax
408a56:	75 28                	jne    0x408a80
408a58:	83 b9 84 00 40 00 0e 	cmpl   $0xe,0x400084(%ecx)
408a5f:	76 1f                	jbe    0x408a80
408a61:	33 c0                	xor    %eax,%eax
408a63:	39 81 f8 00 40 00    	cmp    %eax,0x4000f8(%ecx)
408a69:	0f 95 c0             	setne  %al
408a6c:	c3                   	ret
408a6d:	83 b9 74 00 40 00 0e 	cmpl   $0xe,0x400074(%ecx)
408a74:	76 0a                	jbe    0x408a80
408a76:	33 c0                	xor    %eax,%eax
408a78:	39 81 e8 00 40 00    	cmp    %eax,0x4000e8(%ecx)
408a7e:	eb e9                	jmp    0x408a69
408a80:	33 c0                	xor    %eax,%eax
408a82:	c3                   	ret
408a83:	cc                   	int3
408a84:	cc                   	int3
408a85:	cc                   	int3
408a86:	cc                   	int3
408a87:	cc                   	int3
408a88:	cc                   	int3
408a89:	cc                   	int3
408a8a:	cc                   	int3
408a8b:	cc                   	int3
408a8c:	cc                   	int3
408a8d:	cc                   	int3
408a8e:	cc                   	int3
408a8f:	cc                   	int3
408a90:	e8 c0 04 00 00       	call   0x408f55
408a95:	e9 d9 fd ff ff       	jmp    0x408873
408a9a:	cc                   	int3
408a9b:	cc                   	int3
408a9c:	cc                   	int3
408a9d:	cc                   	int3
408a9e:	cc                   	int3
408a9f:	cc                   	int3
408aa0:	8b ff                	mov    %edi,%edi
408aa2:	55                   	push   %ebp
408aa3:	8b ec                	mov    %esp,%ebp
408aa5:	ff 75 14             	push   0x14(%ebp)
408aa8:	ff 75 10             	push   0x10(%ebp)
408aab:	ff 75 0c             	push   0xc(%ebp)
408aae:	ff 75 08             	push   0x8(%ebp)
408ab1:	68 d0 8a 40 00       	push   $0x408ad0
408ab6:	68 04 a0 40 00       	push   $0x40a004
408abb:	e8 b3 05 00 00       	call   0x409073
408ac0:	83 c4 18             	add    $0x18,%esp
408ac3:	5d                   	pop    %ebp
408ac4:	c3                   	ret
408ac5:	cc                   	int3
408ac6:	cc                   	int3
408ac7:	cc                   	int3
408ac8:	cc                   	int3
408ac9:	cc                   	int3
408aca:	cc                   	int3
408acb:	cc                   	int3
408acc:	cc                   	int3
408acd:	cc                   	int3
408ace:	cc                   	int3
408acf:	cc                   	int3
408ad0:	3b 0d 04 a0 40 00    	cmp    0x40a004,%ecx
408ad6:	75 03                	jne    0x408adb
408ad8:	c2 00 00             	ret    $0x0
408adb:	e9 2a 00 00 00       	jmp    0x408b0a
408ae0:	8b ff                	mov    %edi,%edi
408ae2:	55                   	push   %ebp
408ae3:	8b ec                	mov    %esp,%ebp
408ae5:	6a 00                	push   $0x0
408ae7:	ff 15 dc f0 40 00    	call   *0x40f0dc
408aed:	ff 75 08             	push   0x8(%ebp)
408af0:	ff 15 e4 f0 40 00    	call   *0x40f0e4
408af6:	68 09 04 00 c0       	push   $0xc0000409
408afb:	ff 15 44 f1 40 00    	call   *0x40f144
408b01:	50                   	push   %eax
408b02:	ff 15 4c f1 40 00    	call   *0x40f14c
408b08:	5d                   	pop    %ebp
408b09:	c3                   	ret
408b0a:	8b ff                	mov    %edi,%edi
408b0c:	55                   	push   %ebp
408b0d:	8b ec                	mov    %esp,%ebp
408b0f:	81 ec 24 03 00 00    	sub    $0x324,%esp
408b15:	a3 40 a1 40 00       	mov    %eax,0x40a140
408b1a:	89 0d 3c a1 40 00    	mov    %ecx,0x40a13c
408b20:	89 15 38 a1 40 00    	mov    %edx,0x40a138
408b26:	89 1d 34 a1 40 00    	mov    %ebx,0x40a134
408b2c:	89 35 30 a1 40 00    	mov    %esi,0x40a130
408b32:	89 3d 2c a1 40 00    	mov    %edi,0x40a12c
408b38:	66 8c 15 58 a1 40 00 	data16 mov %ss,0x40a158
408b3f:	66 8c 0d 4c a1 40 00 	data16 mov %cs,0x40a14c
408b46:	66 8c 1d 28 a1 40 00 	data16 mov %ds,0x40a128
408b4d:	66 8c 05 24 a1 40 00 	data16 mov %es,0x40a124
408b54:	66 8c 25 20 a1 40 00 	data16 mov %fs,0x40a120
408b5b:	66 8c 2d 1c a1 40 00 	data16 mov %gs,0x40a11c
408b62:	9c                   	pushf
408b63:	8f 05 50 a1 40 00    	pop    0x40a150
408b69:	8b 45 00             	mov    0x0(%ebp),%eax
408b6c:	a3 44 a1 40 00       	mov    %eax,0x40a144
408b71:	8b 45 04             	mov    0x4(%ebp),%eax
408b74:	a3 48 a1 40 00       	mov    %eax,0x40a148
408b79:	8d 45 08             	lea    0x8(%ebp),%eax
408b7c:	a3 54 a1 40 00       	mov    %eax,0x40a154
408b81:	8b 85 dc fc ff ff    	mov    -0x324(%ebp),%eax
408b87:	c7 05 90 a0 40 00 01 	movl   $0x10001,0x40a090
408b8e:	00 01 00
408b91:	a1 48 a1 40 00       	mov    0x40a148,%eax
408b96:	a3 4c a0 40 00       	mov    %eax,0x40a04c
408b9b:	c7 05 40 a0 40 00 09 	movl   $0xc0000409,0x40a040
408ba2:	04 00 c0
408ba5:	c7 05 44 a0 40 00 01 	movl   $0x1,0x40a044
408bac:	00 00 00
408baf:	c7 05 50 a0 40 00 03 	movl   $0x3,0x40a050
408bb6:	00 00 00
408bb9:	6a 04                	push   $0x4
408bbb:	58                   	pop    %eax
408bbc:	6b c0 00             	imul   $0x0,%eax,%eax
408bbf:	c7 80 54 a0 40 00 02 	movl   $0x2,0x40a054(%eax)
408bc6:	00 00 00
408bc9:	6a 04                	push   $0x4
408bcb:	58                   	pop    %eax
408bcc:	c1 e0 00             	shl    $0x0,%eax
408bcf:	8b 0d 04 a0 40 00    	mov    0x40a004,%ecx
408bd5:	89 88 54 a0 40 00    	mov    %ecx,0x40a054(%eax)
408bdb:	6a 04                	push   $0x4
408bdd:	58                   	pop    %eax
408bde:	d1 e0                	shl    $1,%eax
408be0:	8b 0d 08 a0 40 00    	mov    0x40a008,%ecx
408be6:	89 88 54 a0 40 00    	mov    %ecx,0x40a054(%eax)
408bec:	6a 04                	push   $0x4
408bee:	58                   	pop    %eax
408bef:	6b c0 00             	imul   $0x0,%eax,%eax
408bf2:	8b 0d 04 a0 40 00    	mov    0x40a004,%ecx
408bf8:	89 4c 05 f8          	mov    %ecx,-0x8(%ebp,%eax,1)
408bfc:	6a 04                	push   $0x4
408bfe:	58                   	pop    %eax
408bff:	c1 e0 00             	shl    $0x0,%eax
408c02:	8b 0d 08 a0 40 00    	mov    0x40a008,%ecx
408c08:	89 4c 05 f8          	mov    %ecx,-0x8(%ebp,%eax,1)
408c0c:	68 00 10 40 00       	push   $0x401000
408c11:	e8 ca fe ff ff       	call   0x408ae0
408c16:	c9                   	leave
408c17:	c3                   	ret
408c18:	8b ff                	mov    %edi,%edi
408c1a:	55                   	push   %ebp
408c1b:	8b ec                	mov    %esp,%ebp
408c1d:	a3 40 a1 40 00       	mov    %eax,0x40a140
408c22:	89 0d 3c a1 40 00    	mov    %ecx,0x40a13c
408c28:	89 15 38 a1 40 00    	mov    %edx,0x40a138
408c2e:	89 1d 34 a1 40 00    	mov    %ebx,0x40a134
408c34:	89 35 30 a1 40 00    	mov    %esi,0x40a130
408c3a:	89 3d 2c a1 40 00    	mov    %edi,0x40a12c
408c40:	66 8c 15 58 a1 40 00 	data16 mov %ss,0x40a158
408c47:	66 8c 0d 4c a1 40 00 	data16 mov %cs,0x40a14c
408c4e:	66 8c 1d 28 a1 40 00 	data16 mov %ds,0x40a128
408c55:	66 8c 05 24 a1 40 00 	data16 mov %es,0x40a124
408c5c:	66 8c 25 20 a1 40 00 	data16 mov %fs,0x40a120
408c63:	66 8c 2d 1c a1 40 00 	data16 mov %gs,0x40a11c
408c6a:	9c                   	pushf
408c6b:	8f 05 50 a1 40 00    	pop    0x40a150
408c71:	c7 05 90 a0 40 00 01 	movl   $0x10001,0x40a090
408c78:	00 01 00
408c7b:	8b 45 04             	mov    0x4(%ebp),%eax
408c7e:	a3 48 a1 40 00       	mov    %eax,0x40a148
408c83:	8d 45 04             	lea    0x4(%ebp),%eax
408c86:	83 c0 04             	add    $0x4,%eax
408c89:	a3 54 a1 40 00       	mov    %eax,0x40a154
408c8e:	a1 48 a1 40 00       	mov    0x40a148,%eax
408c93:	a3 4c a0 40 00       	mov    %eax,0x40a04c
408c98:	c7 05 40 a0 40 00 09 	movl   $0xc0000409,0x40a040
408c9f:	04 00 c0
408ca2:	c7 05 44 a0 40 00 01 	movl   $0x1,0x40a044
408ca9:	00 00 00
408cac:	c7 05 50 a0 40 00 01 	movl   $0x1,0x40a050
408cb3:	00 00 00
408cb6:	6a 04                	push   $0x4
408cb8:	58                   	pop    %eax
408cb9:	6b c0 00             	imul   $0x0,%eax,%eax
408cbc:	c7 80 54 a0 40 00 08 	movl   $0x8,0x40a054(%eax)
408cc3:	00 00 00
408cc6:	68 00 10 40 00       	push   $0x401000
408ccb:	e8 10 fe ff ff       	call   0x408ae0
408cd0:	5d                   	pop    %ebp
408cd1:	c3                   	ret
408cd2:	cc                   	int3
408cd3:	cc                   	int3
408cd4:	cc                   	int3
408cd5:	cc                   	int3
408cd6:	cc                   	int3
408cd7:	cc                   	int3
408cd8:	cc                   	int3
408cd9:	cc                   	int3
408cda:	cc                   	int3
408cdb:	cc                   	int3
408cdc:	cc                   	int3
408cdd:	cc                   	int3
408cde:	cc                   	int3
408cdf:	cc                   	int3
408ce0:	8b ff                	mov    %edi,%edi
408ce2:	55                   	push   %ebp
408ce3:	8b ec                	mov    %esp,%ebp
408ce5:	8b 45 08             	mov    0x8(%ebp),%eax
408ce8:	8b 00                	mov    (%eax),%eax
408cea:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
408cf0:	75 2b                	jne    0x408d1d
408cf2:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
408cf6:	75 25                	jne    0x408d1d
408cf8:	8b 40 14             	mov    0x14(%eax),%eax
408cfb:	3d 20 05 93 19       	cmp    $0x19930520,%eax
408d00:	74 15                	je     0x408d17
408d02:	3d 21 05 93 19       	cmp    $0x19930521,%eax