41fbff:	65 73 8d             	gs jae 0x41fb8f
41fc02:	40                   	inc    %eax
41fc03:	00 55 8b             	add    %dl,-0x75(%ebp)
41fc06:	ec                   	in     (%dx),%al
41fc07:	53                   	push   %ebx
41fc08:	56                   	push   %esi
41fc09:	8b 45 08             	mov    0x8(%ebp),%eax
41fc0c:	8b 40 fc             	mov    -0x4(%eax),%eax
41fc0f:	e8 cc 57 fe ff       	call   0x4053e0
41fc14:	8b d8                	mov    %eax,%ebx
41fc16:	4b                   	dec    %ebx
41fc17:	85 db                	test   %ebx,%ebx
41fc19:	7c 1e                	jl     0x41fc39
41fc1b:	43                   	inc    %ebx
41fc1c:	33 f6                	xor    %esi,%esi
41fc1e:	8b 45 08             	mov    0x8(%ebp),%eax
41fc21:	8b 40 fc             	mov    -0x4(%eax),%eax
41fc24:	8b 14 b0             	mov    (%eax,%esi,4),%edx
41fc27:	8b 45 08             	mov    0x8(%ebp),%eax
41fc2a:	8b 40 f8             	mov    -0x8(%eax),%eax
41fc2d:	8b 40 34             	mov    0x34(%eax),%eax
41fc30:	e8 5f c0 ff ff       	call   0x41bc94
41fc35:	46                   	inc    %esi
41fc36:	4b                   	dec    %ebx
41fc37:	75 e5                	jne    0x41fc1e
41fc39:	5e                   	pop    %esi
41fc3a:	5b                   	pop    %ebx
41fc3b:	5d                   	pop    %ebp
41fc3c:	c3                   	ret
41fc3d:	8d 40 00             	lea    0x0(%eax),%eax
41fc40:	55                   	push   %ebp
41fc41:	8b ec                	mov    %esp,%ebp
41fc43:	53                   	push   %ebx
41fc44:	56                   	push   %esi
41fc45:	57                   	push   %edi
41fc46:	8b f8                	mov    %eax,%edi
41fc48:	8b c7                	mov    %edi,%eax
41fc4a:	e8 d5 4c 00 00       	call   0x424924
41fc4f:	8b f0                	mov    %eax,%esi
41fc51:	4e                   	dec    %esi
41fc52:	85 f6                	test   %esi,%esi
41fc54:	7c 5c                	jl     0x41fcb2
41fc56:	46                   	inc    %esi
41fc57:	33 db                	xor    %ebx,%ebx
41fc59:	8b d3                	mov    %ebx,%edx
41fc5b:	8b c7                	mov    %edi,%eax
41fc5d:	e8 96 4c 00 00       	call   0x4248f8
41fc62:	f6 40 24 04          	testb  $0x4,0x24(%eax)
41fc66:	74 46                	je     0x41fcae
41fc68:	8b 45 08             	mov    0x8(%ebp),%eax
41fc6b:	8b 40 fc             	mov    -0x4(%eax),%eax
41fc6e:	e8 6d 57 fe ff       	call   0x4053e0
41fc73:	40                   	inc    %eax
41fc74:	50                   	push   %eax
41fc75:	8b 45 08             	mov    0x8(%ebp),%eax
41fc78:	83 c0 fc             	add    $0xfffffffc,%eax
41fc7b:	b9 01 00 00 00       	mov    $0x1,%ecx
41fc80:	8b 15 e0 fb 41 00    	mov    0x41fbe0,%edx
41fc86:	e8 11 59 fe ff       	call   0x40559c
41fc8b:	83 c4 04             	add    $0x4,%esp
41fc8e:	8b d3                	mov    %ebx,%edx
41fc90:	8b c7                	mov    %edi,%eax
41fc92:	e8 61 4c 00 00       	call   0x4248f8
41fc97:	50                   	push   %eax
41fc98:	8b 45 08             	mov    0x8(%ebp),%eax
41fc9b:	8b 40 fc             	mov    -0x4(%eax),%eax
41fc9e:	e8 3d 57 fe ff       	call   0x4053e0
41fca3:	8b 55 08             	mov    0x8(%ebp),%edx
41fca6:	8b 52 fc             	mov    -0x4(%edx),%edx
41fca9:	59                   	pop    %ecx
41fcaa:	89 4c 82 fc          	mov    %ecx,-0x4(%edx,%eax,4)
41fcae:	43                   	inc    %ebx
41fcaf:	4e                   	dec    %esi
41fcb0:	75 a7                	jne    0x41fc59
41fcb2:	5f                   	pop    %edi
41fcb3:	5e                   	pop    %esi
41fcb4:	5b                   	pop    %ebx
41fcb5:	5d                   	pop    %ebp
41fcb6:	c3                   	ret
41fcb7:	90                   	nop
41fcb8:	55                   	push   %ebp
41fcb9:	8b ec                	mov    %esp,%ebp
41fcbb:	51                   	push   %ecx
41fcbc:	53                   	push   %ebx
41fcbd:	56                   	push   %esi
41fcbe:	57                   	push   %edi
41fcbf:	88 55 fd             	mov    %dl,-0x3(%ebp)
41fcc2:	66 89 45 fe          	mov    %ax,-0x2(%ebp)
41fcc6:	8b 45 08             	mov    0x8(%ebp),%eax
41fcc9:	8b 40 fc             	mov    -0x4(%eax),%eax
41fccc:	e8 0f 57 fe ff       	call   0x4053e0
41fcd1:	8b f0                	mov    %eax,%esi
41fcd3:	4e                   	dec    %esi
41fcd4:	85 f6                	test   %esi,%esi
41fcd6:	7c 41                	jl     0x41fd19
41fcd8:	46                   	inc    %esi
41fcd9:	33 db                	xor    %ebx,%ebx
41fcdb:	80 7d fd 00          	cmpb   $0x0,-0x3(%ebp)
41fcdf:	74 1a                	je     0x41fcfb
41fce1:	8b 45 08             	mov    0x8(%ebp),%eax
41fce4:	8b 40 fc             	mov    -0x4(%eax),%eax
41fce7:	8b 3c 98             	mov    (%eax,%ebx,4),%edi
41fcea:	66 8b 47 1c          	mov    0x1c(%edi),%ax
41fcee:	66 0b 45 fe          	or     -0x2(%ebp),%ax
41fcf2:	8b 55 08             	mov    0x8(%ebp),%edx
41fcf5:	66 89 47 1c          	mov    %ax,0x1c(%edi)
41fcf9:	eb 1a                	jmp    0x41fd15
41fcfb:	8b 45 08             	mov    0x8(%ebp),%eax
41fcfe:	8b 40 fc             	mov    -0x4(%eax),%eax
41fd01:	8b 3c 98             	mov    (%eax,%ebx,4),%edi
41fd04:	66 8b 45 fe          	mov    -0x2(%ebp),%ax
41fd08:	f7 d0                	not    %eax
41fd0a:	66 23 47 1c          	and    0x1c(%edi),%ax
41fd0e:	8b 55 08             	mov    0x8(%ebp),%edx
41fd11:	66 89 47 1c          	mov    %ax,0x1c(%edi)
41fd15:	43                   	inc    %ebx
41fd16:	4e                   	dec    %esi
41fd17:	75 c2                	jne    0x41fcdb
41fd19:	5f                   	pop    %edi
41fd1a:	5e                   	pop    %esi
41fd1b:	5b                   	pop    %ebx
41fd1c:	59                   	pop    %ecx
41fd1d:	5d                   	pop    %ebp
41fd1e:	c3                   	ret
41fd1f:	90                   	nop
41fd20:	55                   	push   %ebp
41fd21:	8b ec                	mov    %esp,%ebp
41fd23:	8b 45 08             	mov    0x8(%ebp),%eax
41fd26:	f6 40 f7 01          	testb  $0x1,-0x9(%eax)
41fd2a:	75 09                	jne    0x41fd35
41fd2c:	8b 45 08             	mov    0x8(%ebp),%eax
41fd2f:	83 78 f0 00          	cmpl   $0x0,-0x10(%eax)
41fd33:	74 04                	je     0x41fd39
41fd35:	33 c0                	xor    %eax,%eax
41fd37:	5d                   	pop    %ebp
41fd38:	c3                   	ret
41fd39:	b0 01                	mov    $0x1,%al
41fd3b:	5d                   	pop    %ebp
41fd3c:	c3                   	ret
41fd3d:	8d 40 00             	lea    0x0(%eax),%eax
41fd40:	55                   	push   %ebp
41fd41:	8b ec                	mov    %esp,%ebp
41fd43:	53                   	push   %ebx
41fd44:	56                   	push   %esi
41fd45:	8b f0                	mov    %eax,%esi
41fd47:	33 db                	xor    %ebx,%ebx
41fd49:	e8 ba 2a fe ff       	call   0x402808
41fd4e:	8b 15 a0 76 40 00    	mov    0x4076a0,%edx
41fd54:	e8 1f 38 fe ff       	call   0x403578
41fd59:	84 c0                	test   %al,%al
41fd5b:	74 3b                	je     0x41fd98
41fd5d:	8b 45 08             	mov    0x8(%ebp),%eax
41fd60:	50                   	push   %eax
41fd61:	e8 ba ff ff ff       	call   0x41fd20
41fd66:	59                   	pop    %ecx
41fd67:	84 c0                	test   %al,%al
41fd69:	74 07                	je     0x41fd72
41fd6b:	8b 06                	mov    (%esi),%eax
41fd6d:	e8 7a 36 fe ff       	call   0x4033ec
41fd72:	33 c0                	xor    %eax,%eax
41fd74:	89 06                	mov    %eax,(%esi)
41fd76:	8b 45 08             	mov    0x8(%ebp),%eax
41fd79:	8b 40 f8             	mov    -0x8(%eax),%eax
41fd7c:	33 d2                	xor    %edx,%edx
41fd7e:	e8 ed 19 00 00       	call   0x421770
41fd83:	e8 80 2a fe ff       	call   0x402808
41fd88:	8b 50 04             	mov    0x4(%eax),%edx
41fd8b:	8b 45 08             	mov    0x8(%ebp),%eax
41fd8e:	8b 40 f8             	mov    -0x8(%eax),%eax
41fd91:	8b 08                	mov    (%eax),%ecx
41fd93:	ff 51 10             	call   *0x10(%ecx)
41fd96:	8b d8                	mov    %eax,%ebx
41fd98:	8b c3                	mov    %ebx,%eax
41fd9a:	5e                   	pop    %esi
41fd9b:	5b                   	pop    %ebx
41fd9c:	5d                   	pop    %ebp
41fd9d:	c3                   	ret
41fd9e:	8b c0                	mov    %eax,%eax
41fda0:	55                   	push   %ebp
41fda1:	8b ec                	mov    %esp,%ebp
41fda3:	53                   	push   %ebx
41fda4:	56                   	push   %esi
41fda5:	57                   	push   %edi
41fda6:	33 c0                	xor    %eax,%eax
41fda8:	55                   	push   %ebp
41fda9:	68 86 fe 41 00       	push   $0x41fe86
41fdae:	64 ff 30             	push   %fs:(%eax)
41fdb1:	64 89 20             	mov    %esp,%fs:(%eax)
41fdb4:	8b 45 08             	mov    0x8(%ebp),%eax
41fdb7:	8b 50 e8             	mov    -0x18(%eax),%edx
41fdba:	8b 45 08             	mov    0x8(%ebp),%eax
41fdbd:	8b 40 f8             	mov    -0x8(%eax),%eax
41fdc0:	e8 4b 1b 00 00       	call   0x421910
41fdc5:	8b d8                	mov    %eax,%ebx
41fdc7:	8b 45 08             	mov    0x8(%ebp),%eax
41fdca:	33 d2                	xor    %edx,%edx
41fdcc:	89 50 ec             	mov    %edx,-0x14(%eax)
41fdcf:	8b 45 08             	mov    0x8(%ebp),%eax
41fdd2:	8b 40 f8             	mov    -0x8(%eax),%eax
41fdd5:	66 83 78 6a 00       	cmpw   $0x0,0x6a(%eax)
41fdda:	74 1b                	je     0x41fdf7
41fddc:	8b 45 08             	mov    0x8(%ebp),%eax
41fddf:	83 c0 ec             	add    $0xffffffec,%eax
41fde2:	50                   	push   %eax
41fde3:	8b 45 08             	mov    0x8(%ebp),%eax
41fde6:	8b 70 f8             	mov    -0x8(%eax),%esi
41fde9:	8b 45 08             	mov    0x8(%ebp),%eax
41fdec:	8b 50 f8             	mov    -0x8(%eax),%edx
41fdef:	8b cb                	mov    %ebx,%ecx
41fdf1:	8b 46 6c             	mov    0x6c(%esi),%eax
41fdf4:	ff 56 68             	call   *0x68(%esi)
41fdf7:	8b 45 08             	mov    0x8(%ebp),%eax
41fdfa:	83 78 ec 00          	cmpl   $0x0,-0x14(%eax)
41fdfe:	75 71                	jne    0x41fe71
41fe00:	8b c3                	mov    %ebx,%eax
41fe02:	ff 50 f4             	call   *-0xc(%eax)
41fe05:	8b 55 08             	mov    0x8(%ebp),%edx
41fe08:	89 42 ec             	mov    %eax,-0x14(%edx)
41fe0b:	8b 45 08             	mov    0x8(%ebp),%eax
41fe0e:	f6 40 f7 04          	testb  $0x4,-0x9(%eax)
41fe12:	74 17                	je     0x41fe2b
41fe14:	8b 45 08             	mov    0x8(%ebp),%eax
41fe17:	8b 40 ec             	mov    -0x14(%eax),%eax
41fe1a:	66 83 48 1c 01       	orw    $0x1,0x1c(%eax)
41fe1f:	8b 45 08             	mov    0x8(%ebp),%eax
41fe22:	8b 40 ec             	mov    -0x14(%eax),%eax
41fe25:	66 81 48 1c 00 02    	orw    $0x200,0x1c(%eax)
41fe2b:	33 c0                	xor    %eax,%eax
41fe2d:	55                   	push   %ebp
41fe2e:	68 5a fe 41 00       	push   $0x41fe5a
41fe33:	64 ff 30             	push   %fs:(%eax)
41fe36:	64 89 20             	mov    %esp,%fs:(%eax)
41fe39:	8b 45 08             	mov    0x8(%ebp),%eax
41fe3c:	8b 40 f8             	mov    -0x8(%eax),%eax
41fe3f:	8b 48 28             	mov    0x28(%eax),%ecx
41fe42:	8b 45 08             	mov    0x8(%ebp),%eax
41fe45:	8b 40 ec             	mov    -0x14(%eax),%eax
41fe48:	83 ca ff             	or     $0xffffffff,%edx
41fe4b:	8b 18                	mov    (%eax),%ebx
41fe4d:	ff 53 2c             	call   *0x2c(%ebx)
41fe50:	33 c0                	xor    %eax,%eax
41fe52:	5a                   	pop    %edx
41fe53:	59                   	pop    %ecx
41fe54:	59                   	pop    %ecx
41fe55:	64 89 10             	mov    %edx,%fs:(%eax)
41fe58:	eb 17                	jmp    0x41fe71
41fe5a:	e9 55 3a fe ff       	jmp    0x4038b4
41fe5f:	8b 45 08             	mov    0x8(%ebp),%eax
41fe62:	33 d2                	xor    %edx,%edx
41fe64:	89 50 ec             	mov    %edx,-0x14(%eax)
41fe67:	e8 5c 3d fe ff       	call   0x403bc8
41fe6c:	e8 ab 3d fe ff       	call   0x403c1c
41fe71:	8b 45 08             	mov    0x8(%ebp),%eax
41fe74:	8b 40 ec             	mov    -0x14(%eax),%eax
41fe77:	66 83 48 1c 01       	orw    $0x1,0x1c(%eax)
41fe7c:	33 c0                	xor    %eax,%eax
41fe7e:	5a                   	pop    %edx
41fe7f:	59                   	pop    %ecx
41fe80:	59                   	pop    %ecx
41fe81:	64 89 10             	mov    %edx,%fs:(%eax)
41fe84:	eb 23                	jmp    0x41fea9
41fe86:	e9 29 3a fe ff       	jmp    0x4038b4
41fe8b:	8b 45 08             	mov    0x8(%ebp),%eax
41fe8e:	50                   	push   %eax
41fe8f:	8b 45 08             	mov    0x8(%ebp),%eax
41fe92:	83 c0 ec             	add    $0xffffffec,%eax
41fe95:	e8 a6 fe ff ff       	call   0x41fd40
41fe9a:	59                   	pop    %ecx
41fe9b:	84 c0                	test   %al,%al
41fe9d:	75 05                	jne    0x41fea4
41fe9f:	e8 24 3d fe ff       	call   0x403bc8
41fea4:	e8 73 3d fe ff       	call   0x403c1c
41fea9:	5f                   	pop    %edi
41feaa:	5e                   	pop    %esi
41feab:	5b                   	pop    %ebx
41feac:	5d                   	pop    %ebp
41fead:	c3                   	ret
41feae:	8b c0                	mov    %eax,%eax
41feb0:	55                   	push   %ebp
41feb1:	8b ec                	mov    %esp,%ebp
41feb3:	53                   	push   %ebx
41feb4:	56                   	push   %esi
41feb5:	57                   	push   %edi
41feb6:	33 c0                	xor    %eax,%eax
41feb8:	55                   	push   %ebp
41feb9:	68 28 ff 41 00       	push   $0x41ff28
41febe:	64 ff 30             	push   %fs:(%eax)
41fec1:	64 89 20             	mov    %esp,%fs:(%eax)
41fec4:	8b 45 08             	mov    0x8(%ebp),%eax
41fec7:	8b 40 f8             	mov    -0x8(%eax),%eax
41feca:	8b 50 2c             	mov    0x2c(%eax),%edx
41fecd:	8b 45 08             	mov    0x8(%ebp),%eax
41fed0:	8b 40 ec             	mov    -0x14(%eax),%eax
41fed3:	66 be f8 ff          	mov    $0xfff8,%si
41fed7:	e8 0c 37 fe ff       	call   0x4035e8
41fedc:	8b 45 08             	mov    0x8(%ebp),%eax
41fedf:	8d 48 e4             	lea    -0x1c(%eax),%ecx
41fee2:	8b 45 08             	mov    0x8(%ebp),%eax
41fee5:	8b 50 ec             	mov    -0x14(%eax),%edx
41fee8:	8b 45 08             	mov    0x8(%ebp),%eax
41feeb:	8b 40 f8             	mov    -0x8(%eax),%eax
41feee:	8b 18                	mov    (%eax),%ebx
41fef0:	ff 53 1c             	call   *0x1c(%ebx)
41fef3:	8b 45 08             	mov    0x8(%ebp),%eax
41fef6:	8b 40 ec             	mov    -0x14(%eax),%eax
41fef9:	f6 40 1c 10          	testb  $0x10,0x1c(%eax)
41fefd:	74 1f                	je     0x41ff1e
41feff:	8b 45 08             	mov    0x8(%ebp),%eax
41ff02:	8b 40 e4             	mov    -0x1c(%eax),%eax
41ff05:	e8 a6 b8 ff ff       	call   0x41b7b0
41ff0a:	8b 55 08             	mov    0x8(%ebp),%edx
41ff0d:	3b 42 ec             	cmp    -0x14(%edx),%eax
41ff10:	75 0c                	jne    0x41ff1e
41ff12:	8b 45 08             	mov    0x8(%ebp),%eax
41ff15:	8b 40 ec             	mov    -0x14(%eax),%eax
41ff18:	66 81 48 1c 00 02    	orw    $0x200,0x1c(%eax)
41ff1e:	33 c0                	xor    %eax,%eax
41ff20:	5a                   	pop    %edx
41ff21:	59                   	pop    %ecx
41ff22:	59                   	pop    %ecx
41ff23:	64 89 10             	mov    %edx,%fs:(%eax)
41ff26:	eb 23                	jmp    0x41ff4b
41ff28:	e9 87 39 fe ff       	jmp    0x4038b4
41ff2d:	8b 45 08             	mov    0x8(%ebp),%eax
41ff30:	50                   	push   %eax
41ff31:	8b 45 08             	mov    0x8(%ebp),%eax
41ff34:	83 c0 ec             	add    $0xffffffec,%eax
41ff37:	e8 04 fe ff ff       	call   0x41fd40
41ff3c:	59                   	pop    %ecx
41ff3d:	84 c0                	test   %al,%al
41ff3f:	75 05                	jne    0x41ff46
41ff41:	e8 82 3c fe ff       	call   0x403bc8
41ff46:	e8 d1 3c fe ff       	call   0x403c1c
41ff4b:	5f                   	pop    %edi
41ff4c:	5e                   	pop    %esi
41ff4d:	5b                   	pop    %ebx
41ff4e:	5d                   	pop    %ebp
41ff4f:	c3                   	ret
41ff50:	55                   	push   %ebp
41ff51:	8b ec                	mov    %esp,%ebp
41ff53:	53                   	push   %ebx
41ff54:	56                   	push   %esi
41ff55:	57                   	push   %edi
41ff56:	33 c0                	xor    %eax,%eax
41ff58:	55                   	push   %ebp
41ff59:	68 cb ff 41 00       	push   $0x41ffcb
41ff5e:	64 ff 30             	push   %fs:(%eax)
41ff61:	64 89 20             	mov    %esp,%fs:(%eax)
41ff64:	8b 45 08             	mov    0x8(%ebp),%eax
41ff67:	8b 50 e8             	mov    -0x18(%eax),%edx