406e4c:	56                   	push   %esi
406e4d:	e8 cd 21 00 00       	call   0x40901f
406e52:	8d 8d 60 af ff ff    	lea    -0x50a0(%ebp),%ecx
406e58:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
406e5c:	e8 a9 1d 00 00       	call   0x408c0a
406e61:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
406e65:	8d 8d d0 ef ff ff    	lea    -0x1030(%ebp),%ecx
406e6b:	e8 9a 1d 00 00       	call   0x408c0a
406e70:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406e73:	5f                   	pop    %edi
406e74:	5e                   	pop    %esi
406e75:	5b                   	pop    %ebx
406e76:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406e7d:	c9                   	leave
406e7e:	c2 08 00             	ret    $0x8
406e81:	8b 44 24 04          	mov    0x4(%esp),%eax
406e85:	80 b8 88 51 00 00 00 	cmpb   $0x0,0x5188(%eax)
406e8c:	56                   	push   %esi
406e8d:	8b 74 24 0c          	mov    0xc(%esp),%esi
406e91:	74 21                	je     0x406eb4
406e93:	8d 86 28 7b 00 00    	lea    0x7b28(%esi),%eax
406e99:	68 f4 a5 42 00       	push   $0x42a5f4
406e9e:	50                   	push   %eax
406e9f:	e8 5d 35 01 00       	call   0x41a401
406ea4:	59                   	pop    %ecx
406ea5:	59                   	pop    %ecx
406ea6:	85 c0                	test   %eax,%eax
406ea8:	75 0a                	jne    0x406eb4
406eaa:	ff 74 24 10          	push   0x10(%esp)
406eae:	56                   	push   %esi
406eaf:	e8 5b f9 ff ff       	call   0x40680f
406eb4:	8d 86 28 7b 00 00    	lea    0x7b28(%esi),%eax
406eba:	68 ec a5 42 00       	push   $0x42a5ec
406ebf:	50                   	push   %eax
406ec0:	e8 3c 35 01 00       	call   0x41a401
406ec5:	59                   	pop    %ecx
406ec6:	59                   	pop    %ecx
406ec7:	85 c0                	test   %eax,%eax
406ec9:	75 0a                	jne    0x406ed5
406ecb:	ff 74 24 10          	push   0x10(%esp)
406ecf:	56                   	push   %esi
406ed0:	e8 10 fe ff ff       	call   0x406ce5
406ed5:	5e                   	pop    %esi
406ed6:	c2 0c 00             	ret    $0xc
406ed9:	55                   	push   %ebp
406eda:	8b ec                	mov    %esp,%ebp
406edc:	56                   	push   %esi
406edd:	57                   	push   %edi
406ede:	ff 75 14             	push   0x14(%ebp)
406ee1:	8b 7d 10             	mov    0x10(%ebp),%edi
406ee4:	8b f1                	mov    %ecx,%esi
406ee6:	8b 46 08             	mov    0x8(%esi),%eax
406ee9:	05 12 10 00 00       	add    $0x1012,%eax
406eee:	50                   	push   %eax
406eef:	57                   	push   %edi
406ef0:	e8 2a 9a 00 00       	call   0x41091f
406ef5:	8b 46 08             	mov    0x8(%esi),%eax
406ef8:	05 12 10 00 00       	add    $0x1012,%eax
406efd:	66 83 38 00          	cmpw   $0x0,(%eax)
406f01:	74 1c                	je     0x406f1f
406f03:	50                   	push   %eax
406f04:	e8 93 30 00 00       	call   0x409f9c
406f09:	0f b7 00             	movzwl (%eax),%eax
406f0c:	50                   	push   %eax
406f0d:	e8 c5 30 00 00       	call   0x409fd7
406f12:	84 c0                	test   %al,%al
406f14:	75 09                	jne    0x406f1f
406f16:	ff 75 14             	push   0x14(%ebp)
406f19:	57                   	push   %edi
406f1a:	e8 dd 30 00 00       	call   0x409ffc
406f1f:	8b 46 08             	mov    0x8(%esi),%eax
406f22:	83 b8 54 51 00 00 04 	cmpl   $0x4,0x5154(%eax)
406f29:	53                   	push   %ebx
406f2a:	0f b7 98 b2 72 00 00 	movzwl 0x72b2(%eax),%ebx
406f31:	75 35                	jne    0x406f68
406f33:	66 83 fb 58          	cmp    $0x58,%bx
406f37:	75 2f                	jne    0x406f68
406f39:	6a 3a                	push   $0x3a
406f3b:	e8 af 30 00 00       	call   0x409fef
406f40:	84 c0                	test   %al,%al
406f42:	74 24                	je     0x406f68
406f44:	33 c0                	xor    %eax,%eax
406f46:	c6 45 13 01          	movb   $0x1,0x13(%ebp)
406f4a:	66 89 07             	mov    %ax,(%edi)
406f4d:	66 83 fb 45          	cmp    $0x45,%bx
406f51:	5b                   	pop    %ebx
406f52:	74 1a                	je     0x406f6e
406f54:	8b 46 08             	mov    0x8(%esi),%eax
406f57:	83 b8 54 51 00 00 01 	cmpl   $0x1,0x5154(%eax)
406f5e:	74 0e                	je     0x406f6e
406f60:	ff 75 14             	push   0x14(%ebp)
406f63:	ff 75 0c             	push   0xc(%ebp)
406f66:	eb 12                	jmp    0x406f7a
406f68:	c6 45 13 00          	movb   $0x0,0x13(%ebp)
406f6c:	eb df                	jmp    0x406f4d
406f6e:	ff 75 14             	push   0x14(%ebp)
406f71:	ff 75 0c             	push   0xc(%ebp)
406f74:	e8 2d 33 00 00       	call   0x40a2a6
406f79:	50                   	push   %eax
406f7a:	57                   	push   %edi
406f7b:	e8 cc 99 00 00       	call   0x41094c
406f80:	0f b7 07             	movzwl (%edi),%eax
406f83:	50                   	push   %eax
406f84:	e8 92 ab 00 00       	call   0x411b1b
406f89:	80 7d 13 00          	cmpb   $0x0,0x13(%ebp)
406f8d:	0f b7 f0             	movzwl %ax,%esi
406f90:	74 3b                	je     0x406fcd
406f92:	66 83 7f 02 5f       	cmpw   $0x5f,0x2(%edi)
406f97:	75 1b                	jne    0x406fb4
406f99:	0f b7 47 04          	movzwl 0x4(%edi),%eax
406f9d:	50                   	push   %eax
406f9e:	e8 34 30 00 00       	call   0x409fd7
406fa3:	84 c0                	test   %al,%al
406fa5:	74 0d                	je     0x406fb4
406fa7:	83 c6 bf             	add    $0xffffffbf,%esi
406faa:	66 83 fe 19          	cmp    $0x19,%si
406fae:	77 04                	ja     0x406fb4
406fb0:	6a 3a                	push   $0x3a
406fb2:	eb 14                	jmp    0x406fc8
406fb4:	66 83 3f 5f          	cmpw   $0x5f,(%edi)
406fb8:	75 13                	jne    0x406fcd
406fba:	66 83 7f 02 5f       	cmpw   $0x5f,0x2(%edi)
406fbf:	75 0c                	jne    0x406fcd
406fc1:	6a 5c                	push   $0x5c
406fc3:	58                   	pop    %eax
406fc4:	66 89 07             	mov    %ax,(%edi)
406fc7:	50                   	push   %eax
406fc8:	58                   	pop    %eax
406fc9:	66 89 47 02          	mov    %ax,0x2(%edi)
406fcd:	5f                   	pop    %edi
406fce:	5e                   	pop    %esi
406fcf:	5d                   	pop    %ebp
406fd0:	c2 10 00             	ret    $0x10
406fd3:	8b 51 04             	mov    0x4(%ecx),%edx
406fd6:	8b 44 24 04          	mov    0x4(%esp),%eax
406fda:	3b 50 04             	cmp    0x4(%eax),%edx
406fdd:	77 0d                	ja     0x406fec
406fdf:	72 06                	jb     0x406fe7
406fe1:	8b 09                	mov    (%ecx),%ecx
406fe3:	3b 08                	cmp    (%eax),%ecx
406fe5:	73 05                	jae    0x406fec
406fe7:	33 c0                	xor    %eax,%eax
406fe9:	40                   	inc    %eax
406fea:	eb 02                	jmp    0x406fee
406fec:	33 c0                	xor    %eax,%eax
406fee:	c2 04 00             	ret    $0x4
406ff1:	8b 44 24 04          	mov    0x4(%esp),%eax
406ff5:	8b 11                	mov    (%ecx),%edx
406ff7:	8b 49 04             	mov    0x4(%ecx),%ecx
406ffa:	56                   	push   %esi
406ffb:	8b 30                	mov    (%eax),%esi
406ffd:	8b 40 04             	mov    0x4(%eax),%eax
407000:	3b c8                	cmp    %eax,%ecx
407002:	77 12                	ja     0x407016
407004:	72 04                	jb     0x40700a
407006:	3b d6                	cmp    %esi,%edx
407008:	77 0c                	ja     0x407016
40700a:	3b d6                	cmp    %esi,%edx
40700c:	75 04                	jne    0x407012
40700e:	3b c8                	cmp    %eax,%ecx
407010:	74 04                	je     0x407016
407012:	33 c0                	xor    %eax,%eax
407014:	eb 03                	jmp    0x407019
407016:	33 c0                	xor    %eax,%eax
407018:	40                   	inc    %eax
407019:	5e                   	pop    %esi
40701a:	c2 04 00             	ret    $0x4
40701d:	b8 c6 92 42 00       	mov    $0x4292c6,%eax
407022:	e8 91 2e 01 00       	call   0x419eb8
407027:	51                   	push   %ecx
407028:	56                   	push   %esi
407029:	8b f1                	mov    %ecx,%esi
40702b:	57                   	push   %edi
40702c:	89 75 f0             	mov    %esi,-0x10(%ebp)
40702f:	8b be e0 3a 00 00    	mov    0x3ae0(%esi),%edi
407035:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40703c:	85 ff                	test   %edi,%edi
40703e:	74 0e                	je     0x40704e
407040:	8b cf                	mov    %edi,%ecx
407042:	e8 cf e1 00 00       	call   0x415216
407047:	57                   	push   %edi
407048:	e8 8a 2e 01 00       	call   0x419ed7
40704d:	59                   	pop    %ecx
40704e:	8d 8e f4 4a 00 00    	lea    0x4af4(%esi),%ecx
407054:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
407058:	e8 c6 5e 00 00       	call   0x40cf23
40705d:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
407061:	8d 4e 10             	lea    0x10(%esi),%ecx
407064:	e8 98 9f ff ff       	call   0x401001
407069:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40706c:	5f                   	pop    %edi
40706d:	5e                   	pop    %esi
40706e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
407075:	c9                   	leave
407076:	c3                   	ret
407077:	53                   	push   %ebx
407078:	8b d9                	mov    %ecx,%ebx
40707a:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40707e:	e8 12 1d 00 00       	call   0x408d95
407083:	89 93 7c 18 00 00    	mov    %edx,0x187c(%ebx)
407089:	33 d2                	xor    %edx,%edx
40708b:	89 83 78 18 00 00    	mov    %eax,0x1878(%ebx)
407091:	8b 43 08             	mov    0x8(%ebx),%eax
407094:	89 93 e8 3a 00 00    	mov    %edx,0x3ae8(%ebx)
40709a:	89 93 ec 3a 00 00    	mov    %edx,0x3aec(%ebx)
4070a0:	8a 88 20 41 00 00    	mov    0x4120(%eax),%cl
4070a6:	88 8b f6 4b 00 00    	mov    %cl,0x4bf6(%ebx)
4070ac:	3a ca                	cmp    %dl,%cl
4070ae:	74 17                	je     0x4070c7
4070b0:	56                   	push   %esi
4070b1:	57                   	push   %edi
4070b2:	6a 40                	push   $0x40
4070b4:	59                   	pop    %ecx
4070b5:	8d b0 20 40 00 00    	lea    0x4020(%eax),%esi
4070bb:	8d bb f4 4a 00 00    	lea    0x4af4(%ebx),%edi
4070c1:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4070c3:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
4070c5:	5f                   	pop    %edi
4070c6:	5e                   	pop    %esi
4070c7:	8b cb                	mov    %ebx,%ecx
4070c9:	88 93 6f 18 00 00    	mov    %dl,0x186f(%ebx)
4070cf:	88 93 f7 4b 00 00    	mov    %dl,0x4bf7(%ebx)
4070d5:	c6 83 f1 3a 00 00 01 	movb   $0x1,0x3af1(%ebx)
4070dc:	88 93 f2 3a 00 00    	mov    %dl,0x3af2(%ebx)
4070e2:	88 93 f3 3a 00 00    	mov    %dl,0x3af3(%ebx)
4070e8:	e8 da 9f 00 00       	call   0x4110c7
4070ed:	5b                   	pop    %ebx
4070ee:	c2 04 00             	ret    $0x4
4070f1:	55                   	push   %ebp
4070f2:	8b ec                	mov    %esp,%ebp
4070f4:	83 ec 4c             	sub    $0x4c,%esp
4070f7:	8b 45 08             	mov    0x8(%ebp),%eax
4070fa:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4070fe:	89 45 fc             	mov    %eax,-0x4(%ebp)
407101:	8b 45 0c             	mov    0xc(%ebp),%eax
407104:	89 45 b4             	mov    %eax,-0x4c(%ebp)
407107:	8b 45 10             	mov    0x10(%ebp),%eax
40710a:	89 45 b8             	mov    %eax,-0x48(%ebp)
40710d:	8b 45 14             	mov    0x14(%ebp),%eax
407110:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
407113:	89 45 bc             	mov    %eax,-0x44(%ebp)
407116:	c7 45 f4 03 00 00 00 	movl   $0x3,-0xc(%ebp)
40711d:	e8 50 a2 00 00       	call   0x411372
407122:	c9                   	leave
407123:	c2 10 00             	ret    $0x10
407126:	b8 f3 92 42 00       	mov    $0x4292f3,%eax
40712b:	e8 88 2d 01 00       	call   0x419eb8
407130:	51                   	push   %ecx
407131:	53                   	push   %ebx
407132:	56                   	push   %esi
407133:	8b f1                	mov    %ecx,%esi
407135:	57                   	push   %edi
407136:	33 ff                	xor    %edi,%edi
407138:	8d 4e 10             	lea    0x10(%esi),%ecx
40713b:	89 75 f0             	mov    %esi,-0x10(%ebp)
40713e:	89 3e                	mov    %edi,(%esi)
407140:	89 7e 04             	mov    %edi,0x4(%esi)
407143:	e8 34 46 00 00       	call   0x40b77c
407148:	89 7d fc             	mov    %edi,-0x4(%ebp)
40714b:	8d be f4 4a 00 00    	lea    0x4af4(%esi),%edi
407151:	8b cf                	mov    %edi,%ecx
407153:	e8 a7 5d 00 00       	call   0x40ceff
407158:	8b 5d 08             	mov    0x8(%ebp),%ebx
40715b:	33 c0                	xor    %eax,%eax
40715d:	21 86 e4 3a 00 00    	and    %eax,0x3ae4(%esi)
407163:	68 3c a5 42 00       	push   $0x42a53c
407168:	8b cf                	mov    %edi,%ecx
40716a:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40716e:	89 5e 08             	mov    %ebx,0x8(%esi)
407171:	66 89 86 f4 3a 00 00 	mov    %ax,0x3af4(%esi)
407178:	66 89 86 f8 4b 00 00 	mov    %ax,0x4bf8(%esi)
40717f:	e8 c8 5c 00 00       	call   0x40ce4c
407184:	68 00 e7 00 00       	push   $0xe700
407189:	e8 ec 30 01 00       	call   0x41a27a
40718e:	59                   	pop    %ecx
40718f:	8b c8                	mov    %eax,%ecx
407191:	89 4d 08             	mov    %ecx,0x8(%ebp)
407194:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
407198:	85 c9                	test   %ecx,%ecx
40719a:	74 0b                	je     0x4071a7
40719c:	8d 46 10             	lea    0x10(%esi),%eax
40719f:	50                   	push   %eax
4071a0:	e8 f0 00 01 00       	call   0x417295
4071a5:	eb 02                	jmp    0x4071a9
4071a7:	33 c0                	xor    %eax,%eax
4071a9:	89 86 e0 3a 00 00    	mov    %eax,0x3ae0(%esi)
4071af:	8b 9b 98 72 00 00    	mov    0x7298(%ebx),%ebx
4071b5:	83 fb 08             	cmp    $0x8,%ebx
4071b8:	72 03                	jb     0x4071bd
4071ba:	6a 08                	push   $0x8
4071bc:	5b                   	pop    %ebx
4071bd:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4071c0:	89 58 1c             	mov    %ebx,0x1c(%eax)
4071c3:	5f                   	pop    %edi
4071c4:	8b c6                	mov    %esi,%eax
4071c6:	5e                   	pop    %esi
4071c7:	5b                   	pop    %ebx
4071c8:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4071cf:	c9                   	leave
4071d0:	c2 04 00             	ret    $0x4
4071d3:	b8 19 91 42 00       	mov    $0x429119,%eax
4071d8:	e8 db 2c 01 00       	call   0x419eb8
4071dd:	83 ec 10             	sub    $0x10,%esp
4071e0:	56                   	push   %esi
4071e1:	57                   	push   %edi
4071e2:	68 00 00 04 00       	push   $0x40000
4071e7:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
4071ea:	e8 e1 a0 ff ff       	call   0x4012d0
4071ef:	ff 75 e8             	push   -0x18(%ebp)
4071f2:	8b 7d e4             	mov    -0x1c(%ebp),%edi
4071f5:	8b 4d 08             	mov    0x8(%ebp),%ecx
4071f8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4071fc:	57                   	push   %edi
4071fd:	e8 e5 45 00 00       	call   0x40b7e7
407202:	8b f0                	mov    %eax,%esi
407204:	85 f6                	test   %esi,%esi
407206:	74 47                	je     0x40724f
407208:	53                   	push   %ebx
407209:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40720c:	83 fe ff             	cmp    $0xffffffff,%esi
40720f:	74 3d                	je     0x40724e
407211:	33 c0                	xor    %eax,%eax
407213:	3b 45 10             	cmp    0x10(%ebp),%eax
407216:	7c 08                	jl     0x407220
407218:	7f 04                	jg     0x40721e
40721a:	3b f3                	cmp    %ebx,%esi
40721c:	72 02                	jb     0x407220
40721e:	8b f3                	mov    %ebx,%esi
407220:	8b 4d 08             	mov    0x8(%ebp),%ecx
407223:	56                   	push   %esi
407224:	57                   	push   %edi
407225:	e8 25 47 00 00       	call   0x40b94f
40722a:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40722e:	7c 0c                	jl     0x40723c
407230:	7f 04                	jg     0x407236
407232:	85 db                	test   %ebx,%ebx
407234:	72 06                	jb     0x40723c
407236:	2b de                	sub    %esi,%ebx
407238:	83 5d 10 00          	sbbl   $0x0,0x10(%ebp)
40723c:	ff 75 e8             	push   -0x18(%ebp)
40723f:	8b 4d 08             	mov    0x8(%ebp),%ecx
407242:	57                   	push   %edi
407243:	e8 9f 45 00 00       	call   0x40b7e7
407248:	8b f0                	mov    %eax,%esi
40724a:	85 f6                	test   %esi,%esi
40724c:	75 be                	jne    0x40720c
40724e:	5b                   	pop    %ebx
40724f:	85 ff                	test   %edi,%edi
407251:	74 07                	je     0x40725a
407253:	57                   	push   %edi