40ced9:	56                   	push   %esi
40ceda:	8b da                	mov    %edx,%ebx
40cedc:	8b f0                	mov    %eax,%esi
40cede:	8d 43 01             	lea    0x1(%ebx),%eax
40cee1:	80 3d d4 08 47 00 00 	cmpb   $0x0,0x4708d4
40cee8:	74 22                	je     0x40cf0c
40ceea:	0f b6 54 1e ff       	movzbl -0x1(%esi,%ebx,1),%edx
40ceef:	0f b6 d2             	movzbl %dl,%edx
40cef2:	0f a3 15 0c 08 46 00 	bt     %edx,0x46080c
40cef9:	73 11                	jae    0x40cf0c
40cefb:	8b c6                	mov    %esi,%eax
40cefd:	e8 e2 7c ff ff       	call   0x404be4
40cf02:	03 c3                	add    %ebx,%eax
40cf04:	48                   	dec    %eax
40cf05:	e8 6e ff ff ff       	call   0x40ce78
40cf0a:	03 c3                	add    %ebx,%eax
40cf0c:	5e                   	pop    %esi
40cf0d:	5b                   	pop    %ebx
40cf0e:	c3                   	ret
40cf0f:	90                   	nop
40cf10:	53                   	push   %ebx
40cf11:	56                   	push   %esi
40cf12:	57                   	push   %edi
40cf13:	55                   	push   %ebp
40cf14:	8b f2                	mov    %edx,%esi
40cf16:	8b d8                	mov    %eax,%ebx
40cf18:	33 ff                	xor    %edi,%edi
40cf1a:	8b c3                	mov    %ebx,%eax
40cf1c:	e8 c3 7c ff ff       	call   0x404be4
40cf21:	50                   	push   %eax
40cf22:	8b c6                	mov    %esi,%eax
40cf24:	e8 bb 7c ff ff       	call   0x404be4
40cf29:	8b e8                	mov    %eax,%ebp
40cf2b:	8b c5                	mov    %ebp,%eax
40cf2d:	5a                   	pop    %edx
40cf2e:	e8 a9 00 00 00       	call   0x40cfdc
40cf33:	8b d8                	mov    %eax,%ebx
40cf35:	85 db                	test   %ebx,%ebx
40cf37:	74 05                	je     0x40cf3e
40cf39:	8b fb                	mov    %ebx,%edi
40cf3b:	2b fd                	sub    %ebp,%edi
40cf3d:	47                   	inc    %edi
40cf3e:	8b c7                	mov    %edi,%eax
40cf40:	5d                   	pop    %ebp
40cf41:	5f                   	pop    %edi
40cf42:	5e                   	pop    %esi
40cf43:	5b                   	pop    %ebx
40cf44:	c3                   	ret
40cf45:	8d 40 00             	lea    0x0(%eax),%eax
40cf48:	53                   	push   %ebx
40cf49:	56                   	push   %esi
40cf4a:	57                   	push   %edi
40cf4b:	55                   	push   %ebp
40cf4c:	8b fa                	mov    %edx,%edi
40cf4e:	8b f0                	mov    %eax,%esi
40cf50:	80 3d d4 08 47 00 00 	cmpb   $0x0,0x4708d4
40cf57:	74 73                	je     0x40cfcc
40cf59:	8b c6                	mov    %esi,%eax
40cf5b:	85 c0                	test   %eax,%eax
40cf5d:	74 05                	je     0x40cf64
40cf5f:	83 e8 04             	sub    $0x4,%eax
40cf62:	8b 00                	mov    (%eax),%eax
40cf64:	8b e8                	mov    %eax,%ebp
40cf66:	8b c7                	mov    %edi,%eax
40cf68:	8b d5                	mov    %ebp,%edx
40cf6a:	e8 fd 7e ff ff       	call   0x404e6c
40cf6f:	bb 01 00 00 00       	mov    $0x1,%ebx
40cf74:	3b eb                	cmp    %ebx,%ebp
40cf76:	7c 5d                	jl     0x40cfd5
40cf78:	8b c7                	mov    %edi,%eax
40cf7a:	e8 bd 7c ff ff       	call   0x404c3c
40cf7f:	0f b6 54 1e ff       	movzbl -0x1(%esi,%ebx,1),%edx
40cf84:	88 54 18 ff          	mov    %dl,-0x1(%eax,%ebx,1)
40cf88:	0f b6 44 1e ff       	movzbl -0x1(%esi,%ebx,1),%eax
40cf8d:	0f b6 c0             	movzbl %al,%eax
40cf90:	0f a3 05 0c 08 46 00 	bt     %eax,0x46080c
40cf97:	73 13                	jae    0x40cfac
40cf99:	43                   	inc    %ebx
40cf9a:	8b c7                	mov    %edi,%eax
40cf9c:	e8 9b 7c ff ff       	call   0x404c3c
40cfa1:	0f b6 54 1e ff       	movzbl -0x1(%esi,%ebx,1),%edx
40cfa6:	88 54 18 ff          	mov    %dl,-0x1(%eax,%ebx,1)
40cfaa:	eb 19                	jmp    0x40cfc5
40cfac:	8b 07                	mov    (%edi),%eax
40cfae:	0f b6 44 18 ff       	movzbl -0x1(%eax,%ebx,1),%eax
40cfb3:	04 bf                	add    $0xbf,%al
40cfb5:	2c 1a                	sub    $0x1a,%al
40cfb7:	73 0c                	jae    0x40cfc5
40cfb9:	8b c7                	mov    %edi,%eax
40cfbb:	e8 7c 7c ff ff       	call   0x404c3c
40cfc0:	80 44 18 ff 20       	addb   $0x20,-0x1(%eax,%ebx,1)
40cfc5:	43                   	inc    %ebx
40cfc6:	3b eb                	cmp    %ebx,%ebp
40cfc8:	7d ae                	jge    0x40cf78
40cfca:	eb 09                	jmp    0x40cfd5
40cfcc:	8b d7                	mov    %edi,%edx
40cfce:	8b c6                	mov    %esi,%eax
40cfd0:	e8 67 b9 ff ff       	call   0x40893c
40cfd5:	5d                   	pop    %ebp
40cfd6:	5f                   	pop    %edi
40cfd7:	5e                   	pop    %esi
40cfd8:	5b                   	pop    %ebx
40cfd9:	c3                   	ret
40cfda:	8b c0                	mov    %eax,%eax
40cfdc:	53                   	push   %ebx
40cfdd:	56                   	push   %esi
40cfde:	57                   	push   %edi
40cfdf:	55                   	push   %ebp
40cfe0:	83 c4 f8             	add    $0xfffffff8,%esp
40cfe3:	8b ea                	mov    %edx,%ebp
40cfe5:	8b f0                	mov    %eax,%esi
40cfe7:	33 db                	xor    %ebx,%ebx
40cfe9:	85 f6                	test   %esi,%esi
40cfeb:	0f 84 81 00 00 00    	je     0x40d072
40cff1:	80 3e 00             	cmpb   $0x0,(%esi)
40cff4:	74 7c                	je     0x40d072
40cff6:	85 ed                	test   %ebp,%ebp
40cff8:	74 78                	je     0x40d072
40cffa:	80 7d 00 00          	cmpb   $0x0,0x0(%ebp)
40cffe:	74 72                	je     0x40d072
40d000:	8b c6                	mov    %esi,%eax
40d002:	e8 c1 c1 ff ff       	call   0x4091c8
40d007:	89 04 24             	mov    %eax,(%esp)
40d00a:	8b c5                	mov    %ebp,%eax
40d00c:	e8 b7 c1 ff ff       	call   0x4091c8
40d011:	8b f8                	mov    %eax,%edi
40d013:	8b d5                	mov    %ebp,%edx
40d015:	8b c6                	mov    %esi,%eax
40d017:	e8 80 c3 ff ff       	call   0x40939c
40d01c:	8b d8                	mov    %eax,%ebx
40d01e:	eb 3f                	jmp    0x40d05f
40d020:	8b d3                	mov    %ebx,%edx
40d022:	2b d6                	sub    %esi,%edx
40d024:	8b c6                	mov    %esi,%eax
40d026:	e8 25 fc ff ff       	call   0x40cc50
40d02b:	88 44 24 04          	mov    %al,0x4(%esp)
40d02f:	80 7c 24 04 02       	cmpb   $0x2,0x4(%esp)
40d034:	74 15                	je     0x40d04b
40d036:	57                   	push   %edi
40d037:	55                   	push   %ebp
40d038:	57                   	push   %edi
40d039:	53                   	push   %ebx
40d03a:	6a 00                	push   $0x0
40d03c:	68 00 04 00 00       	push   $0x400
40d041:	e8 d2 98 ff ff       	call   0x406918
40d046:	83 f8 02             	cmp    $0x2,%eax
40d049:	74 27                	je     0x40d072
40d04b:	80 7c 24 04 01       	cmpb   $0x1,0x4(%esp)
40d050:	75 01                	jne    0x40d053
40d052:	43                   	inc    %ebx
40d053:	43                   	inc    %ebx
40d054:	8b d5                	mov    %ebp,%edx
40d056:	8b c3                	mov    %ebx,%eax
40d058:	e8 3f c3 ff ff       	call   0x40939c
40d05d:	8b d8                	mov    %eax,%ebx
40d05f:	85 db                	test   %ebx,%ebx
40d061:	74 0d                	je     0x40d070
40d063:	8b c3                	mov    %ebx,%eax
40d065:	2b c6                	sub    %esi,%eax
40d067:	8b 14 24             	mov    (%esp),%edx
40d06a:	2b d0                	sub    %eax,%edx
40d06c:	3b fa                	cmp    %edx,%edi
40d06e:	76 b0                	jbe    0x40d020
40d070:	33 db                	xor    %ebx,%ebx
40d072:	8b c3                	mov    %ebx,%eax
40d074:	59                   	pop    %ecx
40d075:	5a                   	pop    %edx
40d076:	5d                   	pop    %ebp
40d077:	5f                   	pop    %edi
40d078:	5e                   	pop    %esi
40d079:	5b                   	pop    %ebx
40d07a:	c3                   	ret
40d07b:	90                   	nop
40d07c:	53                   	push   %ebx
40d07d:	56                   	push   %esi
40d07e:	57                   	push   %edi
40d07f:	8b da                	mov    %edx,%ebx
40d081:	8b f0                	mov    %eax,%esi
40d083:	8b d3                	mov    %ebx,%edx
40d085:	8b c6                	mov    %esi,%eax
40d087:	e8 24 00 00 00       	call   0x40d0b0
40d08c:	8b f0                	mov    %eax,%esi
40d08e:	8b fe                	mov    %esi,%edi
40d090:	84 db                	test   %bl,%bl
40d092:	74 16                	je     0x40d0aa
40d094:	85 f6                	test   %esi,%esi
40d096:	74 12                	je     0x40d0aa
40d098:	8b fe                	mov    %esi,%edi
40d09a:	46                   	inc    %esi
40d09b:	8b d3                	mov    %ebx,%edx
40d09d:	8b c6                	mov    %esi,%eax
40d09f:	e8 0c 00 00 00       	call   0x40d0b0
40d0a4:	8b f0                	mov    %eax,%esi
40d0a6:	85 f6                	test   %esi,%esi
40d0a8:	75 ee                	jne    0x40d098
40d0aa:	8b c7                	mov    %edi,%eax
40d0ac:	5f                   	pop    %edi
40d0ad:	5e                   	pop    %esi
40d0ae:	5b                   	pop    %ebx
40d0af:	c3                   	ret
40d0b0:	53                   	push   %ebx
40d0b1:	56                   	push   %esi
40d0b2:	57                   	push   %edi
40d0b3:	8b da                	mov    %edx,%ebx
40d0b5:	8b f0                	mov    %eax,%esi
40d0b7:	8b d3                	mov    %ebx,%edx
40d0b9:	8b c6                	mov    %esi,%eax
40d0bb:	e8 c8 c2 ff ff       	call   0x409388
40d0c0:	8b f8                	mov    %eax,%edi
40d0c2:	85 ff                	test   %edi,%edi
40d0c4:	74 24                	je     0x40d0ea
40d0c6:	8b d7                	mov    %edi,%edx
40d0c8:	2b d6                	sub    %esi,%edx
40d0ca:	8b c6                	mov    %esi,%eax
40d0cc:	e8 7f fb ff ff       	call   0x40cc50
40d0d1:	2c 01                	sub    $0x1,%al
40d0d3:	72 15                	jb     0x40d0ea
40d0d5:	74 02                	je     0x40d0d9
40d0d7:	eb 01                	jmp    0x40d0da
40d0d9:	47                   	inc    %edi
40d0da:	47                   	inc    %edi
40d0db:	8b d3                	mov    %ebx,%edx
40d0dd:	8b c7                	mov    %edi,%eax
40d0df:	e8 a4 c2 ff ff       	call   0x409388
40d0e4:	8b f8                	mov    %eax,%edi
40d0e6:	85 ff                	test   %edi,%edi
40d0e8:	75 dc                	jne    0x40d0c6
40d0ea:	8b c7                	mov    %edi,%eax
40d0ec:	5f                   	pop    %edi
40d0ed:	5e                   	pop    %esi
40d0ee:	5b                   	pop    %ebx
40d0ef:	c3                   	ret
40d0f0:	55                   	push   %ebp
40d0f1:	8b ec                	mov    %esp,%ebp
40d0f3:	51                   	push   %ecx
40d0f4:	53                   	push   %ebx
40d0f5:	56                   	push   %esi
40d0f6:	57                   	push   %edi
40d0f7:	8b 7d 08             	mov    0x8(%ebp),%edi
40d0fa:	83 c7 ec             	add    $0xffffffec,%edi
40d0fd:	57                   	push   %edi
40d0fe:	6a 00                	push   $0x0
40d100:	e8 73 98 ff ff       	call   0x406978
40d105:	33 f6                	xor    %esi,%esi
40d107:	eb 2a                	jmp    0x40d133
40d109:	0f b6 44 37 06       	movzbl 0x6(%edi,%esi,1),%eax
40d10e:	0f b6 5c 37 07       	movzbl 0x7(%edi,%esi,1),%ebx
40d113:	2a d8                	sub    %al,%bl
40d115:	72 19                	jb     0x40d130
40d117:	43                   	inc    %ebx
40d118:	88 45 ff             	mov    %al,-0x1(%ebp)
40d11b:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
40d11f:	0f b6 c0             	movzbl %al,%eax
40d122:	0f ab 05 0c 08 46 00 	bts    %eax,0x46080c
40d129:	fe 45 ff             	incb   -0x1(%ebp)
40d12c:	fe cb                	dec    %bl
40d12e:	75 eb                	jne    0x40d11b
40d130:	83 c6 02             	add    $0x2,%esi
40d133:	83 fe 0c             	cmp    $0xc,%esi
40d136:	7d 0b                	jge    0x40d143
40d138:	0f b6 44 37 06       	movzbl 0x6(%edi,%esi,1),%eax
40d13d:	0a 44 37 07          	or     0x7(%edi,%esi,1),%al
40d141:	75 c6                	jne    0x40d109
40d143:	5f                   	pop    %edi
40d144:	5e                   	pop    %esi
40d145:	5b                   	pop    %ebx
40d146:	59                   	pop    %ecx
40d147:	5d                   	pop    %ebp
40d148:	c3                   	ret
40d149:	8d 40 00             	lea    0x0(%eax),%eax
40d14c:	55                   	push   %ebp
40d14d:	8b ec                	mov    %esp,%ebp
40d14f:	83 c4 ec             	add    $0xffffffec,%esp
40d152:	53                   	push   %ebx
40d153:	56                   	push   %esi
40d154:	57                   	push   %edi
40d155:	be c8 08 47 00       	mov    $0x4708c8,%esi
40d15a:	c7 06 09 04 00 00    	movl   $0x409,(%esi)
40d160:	c7 46 04 09 00 00 00 	movl   $0x9,0x4(%esi)
40d167:	c7 46 08 01 00 00 00 	movl   $0x1,0x8(%esi)
40d16e:	e8 6d 98 ff ff       	call   0x4069e0
40d173:	85 c0                	test   %eax,%eax
40d175:	74 02                	je     0x40d179
40d177:	89 06                	mov    %eax,(%esi)
40d179:	66 85 c0             	test   %ax,%ax
40d17c:	74 16                	je     0x40d194
40d17e:	8b d0                	mov    %eax,%edx
40d180:	66 81 e2 ff 03       	and    $0x3ff,%dx
40d185:	0f b7 d2             	movzwl %dx,%edx
40d188:	89 56 04             	mov    %edx,0x4(%esi)
40d18b:	0f b7 c0             	movzwl %ax,%eax
40d18e:	c1 e8 0a             	shr    $0xa,%eax
40d191:	89 46 08             	mov    %eax,0x8(%esi)
40d194:	56                   	push   %esi
40d195:	be f0 d1 40 00       	mov    $0x40d1f0,%esi
40d19a:	bf 0c 08 46 00       	mov    $0x46080c,%edi
40d19f:	b9 08 00 00 00       	mov    $0x8,%ecx
40d1a4:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40d1a6:	5e                   	pop    %esi
40d1a7:	83 3d c8 07 46 00 04 	cmpl   $0x4,0x4607c8
40d1ae:	7e 0f                	jle    0x40d1bf
40d1b0:	83 3d c4 07 46 00 02 	cmpl   $0x2,0x4607c4
40d1b7:	75 06                	jne    0x40d1bf
40d1b9:	c6 46 0d 01          	movb   $0x1,0xd(%esi)
40d1bd:	eb 0f                	jmp    0x40d1ce
40d1bf:	6a 4a                	push   $0x4a
40d1c1:	e8 ea 9d ff ff       	call   0x406fb0
40d1c6:	85 c0                	test   %eax,%eax
40d1c8:	0f 95 c0             	setne  %al
40d1cb:	88 46 0d             	mov    %al,0xd(%esi)
40d1ce:	6a 2a                	push   $0x2a
40d1d0:	e8 db 9d ff ff       	call   0x406fb0
40d1d5:	85 c0                	test   %eax,%eax
40d1d7:	0f 95 c3             	setne  %bl
40d1da:	88 5e 0c             	mov    %bl,0xc(%esi)
40d1dd:	84 db                	test   %bl,%bl
40d1df:	74 07                	je     0x40d1e8
40d1e1:	55                   	push   %ebp
40d1e2:	e8 09 ff ff ff       	call   0x40d0f0
40d1e7:	59                   	pop    %ecx
40d1e8:	5f                   	pop    %edi
40d1e9:	5e                   	pop    %esi
40d1ea:	5b                   	pop    %ebx
40d1eb:	8b e5                	mov    %ebp,%esp
40d1ed:	5d                   	pop    %ebp
40d1ee:	c3                   	ret
40d20f:	00 55 8b             	add    %dl,-0x75(%ebp)
40d212:	ec                   	in     (%dx),%al
40d213:	b9 08 00 00 00       	mov    $0x8,%ecx
40d218:	6a 00                	push   $0x0
40d21a:	6a 00                	push   $0x0
40d21c:	49                   	dec    %ecx
40d21d:	75 f9                	jne    0x40d218
40d21f:	53                   	push   %ebx
40d220:	33 c0                	xor    %eax,%eax
40d222:	55                   	push   %ebp
40d223:	68 db d4 40 00       	push   $0x40d4db
40d228:	64 ff 30             	push   %fs:(%eax)
40d22b:	64 89 20             	mov    %esp,%fs:(%eax)
40d22e:	e8 19 ff ff ff       	call   0x40d14c
40d233:	e8 e4 e8 ff ff       	call   0x40bb1c
40d238:	80 3d d4 08 47 00 00 	cmpb   $0x0,0x4708d4
40d23f:	74 05                	je     0x40d246
40d241:	e8 ae ea ff ff       	call   0x40bcf4
40d246:	e8 95 97 ff ff       	call   0x4069e0
40d24b:	8b d8                	mov    %eax,%ebx
40d24d:	8d 45 f0             	lea    -0x10(%ebp),%eax
40d250:	50                   	push   %eax
40d251:	33 c9                	xor    %ecx,%ecx
40d253:	ba 14 00 00 00       	mov    $0x14,%edx