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
40de31:	52                   	push   %edx
40de32:	68 80 00 00 00       	push   $0x80
40de37:	50                   	push   %eax
40de38:	6a 02                	push   $0x2
40de3a:	a1 f4 87 6a 00       	mov    0x6a87f4,%eax
40de3f:	50                   	push   %eax
40de40:	e8 0b 94 ff ff       	call   0x407250
40de45:	b8 80 00 00 00       	mov    $0x80,%eax
40de4a:	8d 95 6a fe ff ff    	lea    -0x196(%ebp),%edx
40de50:	66 83 3a 02          	cmpw   $0x2,(%edx)
40de54:	0f 94 c1             	sete   %cl
40de57:	88 0d 01 88 6a 00    	mov    %cl,0x6a8801
40de5d:	84 c9                	test   %cl,%cl
40de5f:	75 36                	jne    0x40de97
40de61:	83 c2 02             	add    $0x2,%edx
40de64:	48                   	dec    %eax
40de65:	75 e9                	jne    0x40de50
40de67:	eb 2e                	jmp    0x40de97
40de69:	6a 4a                	push   $0x4a
40de6b:	e8 b0 9c ff ff       	call   0x407b20
40de70:	85 c0                	test   %eax,%eax
40de72:	0f 95 c0             	setne  %al
40de75:	a2 01 88 6a 00       	mov    %al,0x6a8801
40de7a:	6a 2a                	push   $0x2a
40de7c:	e8 9f 9c ff ff       	call   0x407b20
40de81:	85 c0                	test   %eax,%eax
40de83:	0f 95 c3             	setne  %bl
40de86:	88 1d 00 88 6a 00    	mov    %bl,0x6a8800
40de8c:	84 db                	test   %bl,%bl
40de8e:	74 07                	je     0x40de97
40de90:	55                   	push   %ebp
40de91:	e8 3e fe ff ff       	call   0x40dcd4
40de96:	59                   	pop    %ecx
40de97:	5f                   	pop    %edi
40de98:	5e                   	pop    %esi
40de99:	5b                   	pop    %ebx
40de9a:	8b e5                	mov    %ebp,%esp
40de9c:	5d                   	pop    %ebp
40de9d:	c3                   	ret
40debe:	00 00                	add    %al,(%eax)
40dec0:	55                   	push   %ebp
40dec1:	8b ec                	mov    %esp,%ebp
40dec3:	b9 08 00 00 00       	mov    $0x8,%ecx
40dec8:	6a 00                	push   $0x0
40deca:	6a 00                	push   $0x0
40decc:	49                   	dec    %ecx
40decd:	75 f9                	jne    0x40dec8
40decf:	53                   	push   %ebx
40ded0:	33 c0                	xor    %eax,%eax
40ded2:	55                   	push   %ebp
40ded3:	68 8b e1 40 00       	push   $0x40e18b
40ded8:	64 ff 30             	push   %fs:(%eax)
40dedb:	64 89 20             	mov    %esp,%fs:(%eax)
40dede:	e8 69 fe ff ff       	call   0x40dd4c
40dee3:	e8 f8 e7 ff ff       	call   0x40c6e0
40dee8:	80 3d 00 88 6a 00 00 	cmpb   $0x0,0x6a8800
40deef:	74 05                	je     0x40def6
40def1:	e8 c2 e9 ff ff       	call   0x40c8b8
40def6:	e8 7d 93 ff ff       	call   0x407278
40defb:	8b d8                	mov    %eax,%ebx
40defd:	8d 45 f0             	lea    -0x10(%ebp),%eax
40df00:	50                   	push   %eax
40df01:	33 c9                	xor    %ecx,%ecx
40df03:	ba 14 00 00 00       	mov    $0x14,%edx
40df08:	8b c3                	mov    %ebx,%eax
40df0a:	e8 21 e7 ff ff       	call   0x40c630
40df0f:	8b 55 f0             	mov    -0x10(%ebp),%edx
40df12:	b8 34 87 6a 00       	mov    $0x6a8734,%eax
40df17:	e8 a0 69 ff ff       	call   0x4048bc
40df1c:	8d 45 ec             	lea    -0x14(%ebp),%eax
40df1f:	50                   	push   %eax
40df20:	b9 a0 e1 40 00       	mov    $0x40e1a0,%ecx
40df25:	ba 1b 00 00 00       	mov    $0x1b,%edx
40df2a:	8b c3                	mov    %ebx,%eax
40df2c:	e8 ff e6 ff ff       	call   0x40c630
40df31:	8b 45 ec             	mov    -0x14(%ebp),%eax
40df34:	33 d2                	xor    %edx,%edx
40df36:	e8 a5 b7 ff ff       	call   0x4096e0
40df3b:	a2 38 87 6a 00       	mov    %al,0x6a8738
40df40:	8d 45 e8             	lea    -0x18(%ebp),%eax
40df43:	50                   	push   %eax
40df44:	b9 a0 e1 40 00       	mov    $0x40e1a0,%ecx
40df49:	ba 1c 00 00 00       	mov    $0x1c,%edx
40df4e:	8b c3                	mov    %ebx,%eax
40df50:	e8 db e6 ff ff       	call   0x40c630
40df55:	8b 45 e8             	mov    -0x18(%ebp),%eax
40df58:	33 d2                	xor    %edx,%edx
40df5a:	e8 81 b7 ff ff       	call   0x4096e0
40df5f:	a2 39 87 6a 00       	mov    %al,0x6a8739
40df64:	b1 2c                	mov    $0x2c,%cl
40df66:	ba 0f 00 00 00       	mov    $0xf,%edx
40df6b:	8b c3                	mov    %ebx,%eax
40df6d:	e8 0a e7 ff ff       	call   0x40c67c
40df72:	a2 3a 87 6a 00       	mov    %al,0x6a873a
40df77:	b1 2e                	mov    $0x2e,%cl
40df79:	ba 0e 00 00 00       	mov    $0xe,%edx
40df7e:	8b c3                	mov    %ebx,%eax
40df80:	e8 f7 e6 ff ff       	call   0x40c67c
40df85:	a2 3b 87 6a 00       	mov    %al,0x6a873b
40df8a:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40df8d:	50                   	push   %eax
40df8e:	b9 a0 e1 40 00       	mov    $0x40e1a0,%ecx
40df93:	ba 19 00 00 00       	mov    $0x19,%edx
40df98:	8b c3                	mov    %ebx,%eax
40df9a:	e8 91 e6 ff ff       	call   0x40c630
40df9f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40dfa2:	33 d2                	xor    %edx,%edx
40dfa4:	e8 37 b7 ff ff       	call   0x4096e0
40dfa9:	a2 3c 87 6a 00       	mov    %al,0x6a873c
40dfae:	b1 2f                	mov    $0x2f,%cl
40dfb0:	ba 1d 00 00 00       	mov    $0x1d,%edx
40dfb5:	8b c3                	mov    %ebx,%eax
40dfb7:	e8 c0 e6 ff ff       	call   0x40c67c
40dfbc:	a2 3d 87 6a 00       	mov    %al,0x6a873d
40dfc1:	8d 45 dc             	lea    -0x24(%ebp),%eax
40dfc4:	50                   	push   %eax
40dfc5:	b9 ac e1 40 00       	mov    $0x40e1ac,%ecx
40dfca:	ba 1f 00 00 00       	mov    $0x1f,%edx
40dfcf:	8b c3                	mov    %ebx,%eax
40dfd1:	e8 5a e6 ff ff       	call   0x40c630
40dfd6:	8b 45 dc             	mov    -0x24(%ebp),%eax
40dfd9:	8d 55 e0             	lea    -0x20(%ebp),%edx
40dfdc:	e8 87 e9 ff ff       	call   0x40c968
40dfe1:	8b 55 e0             	mov    -0x20(%ebp),%edx
40dfe4:	b8 40 87 6a 00       	mov    $0x6a8740,%eax
40dfe9:	e8 ce 68 ff ff       	call   0x4048bc
40dfee:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40dff1:	50                   	push   %eax
40dff2:	b9 bc e1 40 00       	mov    $0x40e1bc,%ecx
40dff7:	ba 20 00 00 00       	mov    $0x20,%edx
40dffc:	8b c3                	mov    %ebx,%eax
40dffe:	e8 2d e6 ff ff       	call   0x40c630
40e003:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40e006:	8d 55 d8             	lea    -0x28(%ebp),%edx
40e009:	e8 5a e9 ff ff       	call   0x40c968
40e00e:	8b 55 d8             	mov    -0x28(%ebp),%edx
40e011:	b8 44 87 6a 00       	mov    $0x6a8744,%eax
40e016:	e8 a1 68 ff ff       	call   0x4048bc
40e01b:	b1 3a                	mov    $0x3a,%cl
40e01d:	ba 1e 00 00 00       	mov    $0x1e,%edx
40e022:	8b c3                	mov    %ebx,%eax
40e024:	e8 53 e6 ff ff       	call   0x40c67c
40e029:	a2 48 87 6a 00       	mov    %al,0x6a8748
40e02e:	8d 45 d0             	lea    -0x30(%ebp),%eax
40e031:	50                   	push   %eax
40e032:	b9 d4 e1 40 00       	mov    $0x40e1d4,%ecx
40e037:	ba 28 00 00 00       	mov    $0x28,%edx
40e03c:	8b c3                	mov    %ebx,%eax
40e03e:	e8 ed e5 ff ff       	call   0x40c630
40e043:	8b 55 d0             	mov    -0x30(%ebp),%edx
40e046:	b8 4c 87 6a 00       	mov    $0x6a874c,%eax
40e04b:	e8 6c 68 ff ff       	call   0x4048bc
40e050:	8d 45 cc             	lea    -0x34(%ebp),%eax
40e053:	50                   	push   %eax
40e054:	b9 e0 e1 40 00       	mov    $0x40e1e0,%ecx
40e059:	ba 29 00 00 00       	mov    $0x29,%edx
40e05e:	8b c3                	mov    %ebx,%eax
40e060:	e8 cb e5 ff ff       	call   0x40c630
40e065:	8b 55 cc             	mov    -0x34(%ebp),%edx
40e068:	b8 50 87 6a 00       	mov    $0x6a8750,%eax
40e06d:	e8 4a 68 ff ff       	call   0x4048bc
40e072:	8d 45 f8             	lea    -0x8(%ebp),%eax
40e075:	e8 ee 67 ff ff       	call   0x404868
40e07a:	8d 45 f4             	lea    -0xc(%ebp),%eax
40e07d:	e8 e6 67 ff ff       	call   0x404868
40e082:	8d 45 c8             	lea    -0x38(%ebp),%eax
40e085:	50                   	push   %eax
40e086:	b9 a0 e1 40 00       	mov    $0x40e1a0,%ecx
40e08b:	ba 25 00 00 00       	mov    $0x25,%edx
40e090:	8b c3                	mov    %ebx,%eax
40e092:	e8 99 e5 ff ff       	call   0x40c630
40e097:	8b 45 c8             	mov    -0x38(%ebp),%eax
40e09a:	33 d2                	xor    %edx,%edx
40e09c:	e8 3f b6 ff ff       	call   0x4096e0
40e0a1:	85 c0                	test   %eax,%eax