40da95:	56                   	push   %esi
40da96:	57                   	push   %edi
40da97:	55                   	push   %ebp
40da98:	8b f2                	mov    %edx,%esi
40da9a:	8b d8                	mov    %eax,%ebx
40da9c:	33 ff                	xor    %edi,%edi
40da9e:	8b c3                	mov    %ebx,%eax
40daa0:	e8 73 72 ff ff       	call   0x404d18
40daa5:	50                   	push   %eax
40daa6:	8b c6                	mov    %esi,%eax
40daa8:	e8 6b 72 ff ff       	call   0x404d18
40daad:	8b e8                	mov    %eax,%ebp
40daaf:	8b c5                	mov    %ebp,%eax
40dab1:	5a                   	pop    %edx
40dab2:	e8 a1 00 00 00       	call   0x40db58
40dab7:	8b d8                	mov    %eax,%ebx
40dab9:	85 db                	test   %ebx,%ebx
40dabb:	74 05                	je     0x40dac2
40dabd:	8b fb                	mov    %ebx,%edi
40dabf:	2b fd                	sub    %ebp,%edi
40dac1:	47                   	inc    %edi
40dac2:	8b c7                	mov    %edi,%eax
40dac4:	5d                   	pop    %ebp
40dac5:	5f                   	pop    %edi
40dac6:	5e                   	pop    %esi
40dac7:	5b                   	pop    %ebx
40dac8:	c3                   	ret
40dac9:	8d 40 00             	lea    0x0(%eax),%eax
40dacc:	53                   	push   %ebx
40dacd:	56                   	push   %esi
40dace:	57                   	push   %edi
40dacf:	55                   	push   %ebp
40dad0:	8b fa                	mov    %edx,%edi
40dad2:	8b f0                	mov    %eax,%esi
40dad4:	80 3d 00 88 6a 00 00 	cmpb   $0x0,0x6a8800
40dadb:	74 6d                	je     0x40db4a
40dadd:	8b c6                	mov    %esi,%eax
40dadf:	e8 3c 70 ff ff       	call   0x404b20
40dae4:	8b e8                	mov    %eax,%ebp
40dae6:	8b c7                	mov    %edi,%eax
40dae8:	8b d5                	mov    %ebp,%edx
40daea:	e8 b5 73 ff ff       	call   0x404ea4
40daef:	bb 01 00 00 00       	mov    $0x1,%ebx
40daf4:	3b eb                	cmp    %ebx,%ebp
40daf6:	7c 5b                	jl     0x40db53
40daf8:	8b c7                	mov    %edi,%eax
40dafa:	e8 71 72 ff ff       	call   0x404d70
40daff:	8a 54 1e ff          	mov    -0x1(%esi,%ebx,1),%dl
40db03:	88 54 18 ff          	mov    %dl,-0x1(%eax,%ebx,1)
40db07:	8a 44 1e ff          	mov    -0x1(%esi,%ebx,1),%al
40db0b:	25 ff 00 00 00       	and    $0xff,%eax
40db10:	0f a3 05 20 a1 68 00 	bt     %eax,0x68a120
40db17:	73 12                	jae    0x40db2b
40db19:	43                   	inc    %ebx
40db1a:	8b c7                	mov    %edi,%eax
40db1c:	e8 4f 72 ff ff       	call   0x404d70
40db21:	8a 54 1e ff          	mov    -0x1(%esi,%ebx,1),%dl
40db25:	88 54 18 ff          	mov    %dl,-0x1(%eax,%ebx,1)
40db29:	eb 18                	jmp    0x40db43
40db2b:	8b 07                	mov    (%edi),%eax
40db2d:	8a 44 18 ff          	mov    -0x1(%eax,%ebx,1),%al
40db31:	04 bf                	add    $0xbf,%al
40db33:	2c 1a                	sub    $0x1a,%al
40db35:	73 0c                	jae    0x40db43
40db37:	8b c7                	mov    %edi,%eax
40db39:	e8 32 72 ff ff       	call   0x404d70
40db3e:	80 44 18 ff 20       	addb   $0x20,-0x1(%eax,%ebx,1)
40db43:	43                   	inc    %ebx
40db44:	3b eb                	cmp    %ebx,%ebp
40db46:	7d b0                	jge    0x40daf8
40db48:	eb 09                	jmp    0x40db53
40db4a:	8b d7                	mov    %edi,%edx
40db4c:	8b c6                	mov    %esi,%eax
40db4e:	e8 59 b7 ff ff       	call   0x4092ac
40db53:	5d                   	pop    %ebp
40db54:	5f                   	pop    %edi
40db55:	5e                   	pop    %esi
40db56:	5b                   	pop    %ebx
40db57:	c3                   	ret
40db58:	53                   	push   %ebx
40db59:	56                   	push   %esi
40db5a:	57                   	push   %edi
40db5b:	55                   	push   %ebp
40db5c:	83 c4 f8             	add    $0xfffffff8,%esp
40db5f:	8b ea                	mov    %edx,%ebp
40db61:	8b f0                	mov    %eax,%esi
40db63:	33 db                	xor    %ebx,%ebx
40db65:	85 f6                	test   %esi,%esi
40db67:	0f 84 81 00 00 00    	je     0x40dbee
40db6d:	80 3e 00             	cmpb   $0x0,(%esi)
40db70:	74 7c                	je     0x40dbee
40db72:	85 ed                	test   %ebp,%ebp
40db74:	74 78                	je     0x40dbee
40db76:	80 7d 00 00          	cmpb   $0x0,0x0(%ebp)
40db7a:	74 72                	je     0x40dbee
40db7c:	8b c6                	mov    %esi,%eax
40db7e:	e8 6d c2 ff ff       	call   0x409df0
40db83:	89 04 24             	mov    %eax,(%esp)
40db86:	8b c5                	mov    %ebp,%eax
40db88:	e8 63 c2 ff ff       	call   0x409df0
40db8d:	8b f8                	mov    %eax,%edi
40db8f:	8b d5                	mov    %ebp,%edx
40db91:	8b c6                	mov    %esi,%eax
40db93:	e8 74 c4 ff ff       	call   0x40a00c
40db98:	8b d8                	mov    %eax,%ebx
40db9a:	eb 3f                	jmp    0x40dbdb
40db9c:	8b d3                	mov    %ebx,%edx
40db9e:	2b d6                	sub    %esi,%edx
40dba0:	8b c6                	mov    %esi,%eax
40dba2:	e8 b1 fb ff ff       	call   0x40d758
40dba7:	88 44 24 04          	mov    %al,0x4(%esp)
40dbab:	80 7c 24 04 02       	cmpb   $0x2,0x4(%esp)
40dbb0:	74 15                	je     0x40dbc7
40dbb2:	57                   	push   %edi
40dbb3:	55                   	push   %ebp
40dbb4:	57                   	push   %edi
40dbb5:	53                   	push   %ebx
40dbb6:	6a 00                	push   $0x0
40dbb8:	68 00 04 00 00       	push   $0x400
40dbbd:	e8 e6 94 ff ff       	call   0x4070a8
40dbc2:	83 f8 02             	cmp    $0x2,%eax
40dbc5:	74 27                	je     0x40dbee
40dbc7:	80 7c 24 04 01       	cmpb   $0x1,0x4(%esp)
40dbcc:	75 01                	jne    0x40dbcf
40dbce:	43                   	inc    %ebx
40dbcf:	43                   	inc    %ebx
40dbd0:	8b d5                	mov    %ebp,%edx
40dbd2:	8b c3                	mov    %ebx,%eax
40dbd4:	e8 33 c4 ff ff       	call   0x40a00c
40dbd9:	8b d8                	mov    %eax,%ebx
40dbdb:	85 db                	test   %ebx,%ebx
40dbdd:	74 0d                	je     0x40dbec
40dbdf:	8b c3                	mov    %ebx,%eax
40dbe1:	2b c6                	sub    %esi,%eax
40dbe3:	8b 14 24             	mov    (%esp),%edx
40dbe6:	2b d0                	sub    %eax,%edx
40dbe8:	3b fa                	cmp    %edx,%edi
40dbea:	76 b0                	jbe    0x40db9c
40dbec:	33 db                	xor    %ebx,%ebx
40dbee:	8b c3                	mov    %ebx,%eax
40dbf0:	59                   	pop    %ecx
40dbf1:	5a                   	pop    %edx
40dbf2:	5d                   	pop    %ebp
40dbf3:	5f                   	pop    %edi
40dbf4:	5e                   	pop    %esi
40dbf5:	5b                   	pop    %ebx
40dbf6:	c3                   	ret
40dbf7:	90                   	nop
40dbf8:	53                   	push   %ebx
40dbf9:	56                   	push   %esi
40dbfa:	8b da                	mov    %edx,%ebx
40dbfc:	8b d3                	mov    %ebx,%edx
40dbfe:	e8 1d 00 00 00       	call   0x40dc20
40dc03:	8b f0                	mov    %eax,%esi
40dc05:	84 db                	test   %bl,%bl
40dc07:	74 12                	je     0x40dc1b
40dc09:	85 c0                	test   %eax,%eax
40dc0b:	74 0e                	je     0x40dc1b
40dc0d:	8b f0                	mov    %eax,%esi
40dc0f:	40                   	inc    %eax
40dc10:	8b d3                	mov    %ebx,%edx
40dc12:	e8 09 00 00 00       	call   0x40dc20
40dc17:	85 c0                	test   %eax,%eax
40dc19:	75 f2                	jne    0x40dc0d
40dc1b:	8b c6                	mov    %esi,%eax
40dc1d:	5e                   	pop    %esi
40dc1e:	5b                   	pop    %ebx
40dc1f:	c3                   	ret
40dc20:	53                   	push   %ebx
40dc21:	56                   	push   %esi
40dc22:	57                   	push   %edi
40dc23:	8b da                	mov    %edx,%ebx
40dc25:	8b f0                	mov    %eax,%esi
40dc27:	8b d3                	mov    %ebx,%edx
40dc29:	8b c6                	mov    %esi,%eax
40dc2b:	e8 98 c3 ff ff       	call   0x409fc8
40dc30:	8b f8                	mov    %eax,%edi
40dc32:	85 ff                	test   %edi,%edi
40dc34:	74 24                	je     0x40dc5a
40dc36:	8b d7                	mov    %edi,%edx
40dc38:	2b d6                	sub    %esi,%edx
40dc3a:	8b c6                	mov    %esi,%eax
40dc3c:	e8 17 fb ff ff       	call   0x40d758
40dc41:	2c 01                	sub    $0x1,%al
40dc43:	72 15                	jb     0x40dc5a
40dc45:	74 02                	je     0x40dc49
40dc47:	eb 01                	jmp    0x40dc4a
40dc49:	47                   	inc    %edi
40dc4a:	47                   	inc    %edi
40dc4b:	8b d3                	mov    %ebx,%edx
40dc4d:	8b c7                	mov    %edi,%eax
40dc4f:	e8 74 c3 ff ff       	call   0x409fc8
40dc54:	8b f8                	mov    %eax,%edi
40dc56:	85 ff                	test   %edi,%edi
40dc58:	75 dc                	jne    0x40dc36
40dc5a:	8b c7                	mov    %edi,%eax
40dc5c:	5f                   	pop    %edi
40dc5d:	5e                   	pop    %esi
40dc5e:	5b                   	pop    %ebx
40dc5f:	c3                   	ret
40dc60:	55                   	push   %ebp
40dc61:	8b ec                	mov    %esp,%ebp
40dc63:	83 c4 f4             	add    $0xfffffff4,%esp
40dc66:	53                   	push   %ebx
40dc67:	33 d2                	xor    %edx,%edx
40dc69:	89 55 f4             	mov    %edx,-0xc(%ebp)
40dc6c:	33 d2                	xor    %edx,%edx
40dc6e:	55                   	push   %ebp
40dc6f:	68 c4 dc 40 00       	push   $0x40dcc4
40dc74:	64 ff 32             	push   %fs:(%edx)
40dc77:	64 89 22             	mov    %esp,%fs:(%edx)
40dc7a:	6a 07                	push   $0x7
40dc7c:	8d 55 f9             	lea    -0x7(%ebp),%edx
40dc7f:	52                   	push   %edx
40dc80:	68 04 10 00 00       	push   $0x1004
40dc85:	50                   	push   %eax
40dc86:	e8 85 95 ff ff       	call   0x407210
40dc8b:	8d 45 f4             	lea    -0xc(%ebp),%eax
40dc8e:	8d 55 f9             	lea    -0x7(%ebp),%edx
40dc91:	b9 07 00 00 00       	mov    $0x7,%ecx
40dc96:	e8 35 6e ff ff       	call   0x404ad0
40dc9b:	8b 45 f4             	mov    -0xc(%ebp),%eax
40dc9e:	50                   	push   %eax
40dc9f:	e8 f4 94 ff ff       	call   0x407198
40dca4:	8b d0                	mov    %eax,%edx
40dca6:	58                   	pop    %eax
40dca7:	e8 34 ba ff ff       	call   0x4096e0
40dcac:	8b d8                	mov    %eax,%ebx
40dcae:	33 c0                	xor    %eax,%eax
40dcb0:	5a                   	pop    %edx
40dcb1:	59                   	pop    %ecx
40dcb2:	59                   	pop    %ecx
40dcb3:	64 89 10             	mov    %edx,%fs:(%eax)
40dcb6:	68 cb dc 40 00       	push   $0x40dccb
40dcbb:	8d 45 f4             	lea    -0xc(%ebp),%eax
40dcbe:	e8 a5 6b ff ff       	call   0x404868
40dcc3:	c3                   	ret
40dcc4:	e9 43 65 ff ff       	jmp    0x40420c
40dcc9:	eb f0                	jmp    0x40dcbb
40dccb:	8b c3                	mov    %ebx,%eax
40dccd:	5b                   	pop    %ebx
40dcce:	8b e5                	mov    %ebp,%esp
40dcd0:	5d                   	pop    %ebp
40dcd1:	c3                   	ret
40dcd2:	8b c0                	mov    %eax,%eax
40dcd4:	55                   	push   %ebp
40dcd5:	8b ec                	mov    %esp,%ebp
40dcd7:	51                   	push   %ecx
40dcd8:	53                   	push   %ebx
40dcd9:	56                   	push   %esi
40dcda:	57                   	push   %edi
40dcdb:	8b 7d 08             	mov    0x8(%ebp),%edi
40dcde:	83 c7 ec             	add    $0xffffffec,%edi
40dce1:	57                   	push   %edi
40dce2:	a1 f4 87 6a 00       	mov    0x6a87f4,%eax
40dce7:	e8 74 ff ff ff       	call   0x40dc60
40dcec:	50                   	push   %eax
40dced:	e8 ae 94 ff ff       	call   0x4071a0
40dcf2:	33 f6                	xor    %esi,%esi
40dcf4:	eb 29                	jmp    0x40dd1f
40dcf6:	8a 44 37 06          	mov    0x6(%edi,%esi,1),%al
40dcfa:	8a 5c 37 07          	mov    0x7(%edi,%esi,1),%bl
40dcfe:	2a d8                	sub    %al,%bl
40dd00:	72 1a                	jb     0x40dd1c
40dd02:	43                   	inc    %ebx
40dd03:	88 45 ff             	mov    %al,-0x1(%ebp)
40dd06:	8a 45 ff             	mov    -0x1(%ebp),%al
40dd09:	25 ff 00 00 00       	and    $0xff,%eax
40dd0e:	0f ab 05 20 a1 68 00 	bts    %eax,0x68a120
40dd15:	fe 45 ff             	incb   -0x1(%ebp)
40dd18:	fe cb                	dec    %bl
40dd1a:	75 ea                	jne    0x40dd06
40dd1c:	83 c6 02             	add    $0x2,%esi
40dd1f:	83 fe 0c             	cmp    $0xc,%esi
40dd22:	7d 0a                	jge    0x40dd2e
40dd24:	8a 44 37 06          	mov    0x6(%edi,%esi,1),%al
40dd28:	0a 44 37 07          	or     0x7(%edi,%esi,1),%al
40dd2c:	75 c8                	jne    0x40dcf6
40dd2e:	5f                   	pop    %edi
40dd2f:	5e                   	pop    %esi
40dd30:	5b                   	pop    %ebx
40dd31:	59                   	pop    %ecx
40dd32:	5d                   	pop    %ebp
40dd33:	c3                   	ret
40dd34:	a1 f8 87 6a 00       	mov    0x6a87f8,%eax
40dd39:	83 f8 1f             	cmp    $0x1f,%eax
40dd3c:	77 07                	ja     0x40dd45
40dd3e:	0f a3 05 1c a3 68 00 	bt     %eax,0x68a31c
40dd45:	0f 92 c0             	setb   %al
40dd48:	c3                   	ret
40dd49:	8d 40 00             	lea    0x0(%eax),%eax
40dd4c:	55                   	push   %ebp
40dd4d:	8b ec                	mov    %esp,%ebp
40dd4f:	81 c4 68 fe ff ff    	add    $0xfffffe68,%esp
40dd55:	53                   	push   %ebx
40dd56:	56                   	push   %esi
40dd57:	57                   	push   %edi
40dd58:	c7 05 f4 87 6a 00 09 	movl   $0x409,0x6a87f4
40dd5f:	04 00 00
40dd62:	c7 05 f8 87 6a 00 09 	movl   $0x9,0x6a87f8
40dd69:	00 00 00
40dd6c:	c7 05 fc 87 6a 00 01 	movl   $0x1,0x6a87fc
40dd73:	00 00 00
40dd76:	e8 fd 94 ff ff       	call   0x407278
40dd7b:	85 c0                	test   %eax,%eax
40dd7d:	74 05                	je     0x40dd84
40dd7f:	a3 f4 87 6a 00       	mov    %eax,0x6a87f4
40dd84:	66 85 c0             	test   %ax,%ax
40dd87:	74 1b                	je     0x40dda4
40dd89:	8b d0                	mov    %eax,%edx
40dd8b:	66 81 e2 ff 03       	and    $0x3ff,%dx
40dd90:	0f b7 d2             	movzwl %dx,%edx
40dd93:	89 15 f8 87 6a 00    	mov    %edx,0x6a87f8
40dd99:	0f b7 c0             	movzwl %ax,%eax
40dd9c:	c1 e8 0a             	shr    $0xa,%eax
40dd9f:	a3 fc 87 6a 00       	mov    %eax,0x6a87fc
40dda4:	be a0 de 40 00       	mov    $0x40dea0,%esi
40dda9:	bf 20 a1 68 00       	mov    $0x68a120,%edi
40ddae:	b9 08 00 00 00       	mov    $0x8,%ecx
40ddb3:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40ddb5:	83 3d b8 a0 68 00 02 	cmpl   $0x2,0x68a0b8
40ddbc:	0f 85 a7 00 00 00    	jne    0x40de69
40ddc2:	e8 6d ff ff ff       	call   0x40dd34
40ddc7:	84 c0                	test   %al,%al
40ddc9:	74 13                	je     0x40ddde
40ddcb:	c6 05 01 88 6a 00 00 	movb   $0x0,0x6a8801
40ddd2:	c6 05 00 88 6a 00 00 	movb   $0x0,0x6a8800
40ddd9:	e9 b9 00 00 00       	jmp    0x40de97
40ddde:	55                   	push   %ebp
40dddf:	e8 f0 fe ff ff       	call   0x40dcd4
40dde4:	59                   	pop    %ecx
40dde5:	b8 20 a1 68 00       	mov    $0x68a120,%eax
40ddea:	ba a0 de 40 00       	mov    $0x40dea0,%edx
40ddef:	b1 20                	mov    $0x20,%cl
40ddf1:	e8 be 57 ff ff       	call   0x4035b4
40ddf6:	0f 95 c3             	setne  %bl
40ddf9:	88 1d 00 88 6a 00    	mov    %bl,0x6a8800
40ddff:	84 db                	test   %bl,%bl
40de01:	74 0c                	je     0x40de0f
40de03:	c6 05 01 88 6a 00 00 	movb   $0x0,0x6a8801
40de0a:	e9 88 00 00 00       	jmp    0x40de97
40de0f:	b8 80 00 00 00       	mov    $0x80,%eax
40de14:	8d 95 6c ff ff ff    	lea    -0x94(%ebp),%edx
40de1a:	88 02                	mov    %al,(%edx)
40de1c:	40                   	inc    %eax
40de1d:	42                   	inc    %edx
40de1e:	3d 00 01 00 00       	cmp    $0x100,%eax
40de23:	75 f5                	jne    0x40de1a
40de25:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
40de2b:	8d 95 6a fe ff ff    	lea    -0x196(%ebp),%edx