406dfb:	c7 06 08 d4 40 00    	movl   $0x40d408,(%esi)
406e01:	ff 37                	push   (%edi)
406e03:	e8 f8 fb ff ff       	call   0x406a00
406e08:	40                   	inc    %eax
406e09:	50                   	push   %eax
406e0a:	e8 6c fc ff ff       	call   0x406a7b
406e0f:	59                   	pop    %ecx
406e10:	89 46 04             	mov    %eax,0x4(%esi)
406e13:	85 c0                	test   %eax,%eax
406e15:	59                   	pop    %ecx
406e16:	74 0a                	je     0x406e22
406e18:	ff 37                	push   (%edi)
406e1a:	50                   	push   %eax
406e1b:	e8 d0 33 00 00       	call   0x40a1f0
406e20:	59                   	pop    %ecx
406e21:	59                   	pop    %ecx
406e22:	c7 46 08 01 00 00 00 	movl   $0x1,0x8(%esi)
406e29:	8b c6                	mov    %esi,%eax
406e2b:	5f                   	pop    %edi
406e2c:	5e                   	pop    %esi
406e2d:	c2 04 00             	ret    $0x4
406e30:	56                   	push   %esi
406e31:	57                   	push   %edi
406e32:	8b 7c 24 0c          	mov    0xc(%esp),%edi
406e36:	8b f1                	mov    %ecx,%esi
406e38:	c7 06 08 d4 40 00    	movl   $0x40d408,(%esi)
406e3e:	8b 47 08             	mov    0x8(%edi),%eax
406e41:	85 c0                	test   %eax,%eax
406e43:	89 46 08             	mov    %eax,0x8(%esi)
406e46:	74 25                	je     0x406e6d
406e48:	ff 77 04             	push   0x4(%edi)
406e4b:	e8 b0 fb ff ff       	call   0x406a00
406e50:	40                   	inc    %eax
406e51:	50                   	push   %eax
406e52:	e8 24 fc ff ff       	call   0x406a7b
406e57:	59                   	pop    %ecx
406e58:	89 46 04             	mov    %eax,0x4(%esi)
406e5b:	85 c0                	test   %eax,%eax
406e5d:	59                   	pop    %ecx
406e5e:	74 13                	je     0x406e73
406e60:	ff 77 04             	push   0x4(%edi)
406e63:	50                   	push   %eax
406e64:	e8 87 33 00 00       	call   0x40a1f0
406e69:	59                   	pop    %ecx
406e6a:	59                   	pop    %ecx
406e6b:	eb 06                	jmp    0x406e73
406e6d:	8b 47 04             	mov    0x4(%edi),%eax
406e70:	89 46 04             	mov    %eax,0x4(%esi)
406e73:	8b c6                	mov    %esi,%eax
406e75:	5f                   	pop    %edi
406e76:	5e                   	pop    %esi
406e77:	c2 04 00             	ret    $0x4
406e7a:	83 79 08 00          	cmpl   $0x0,0x8(%ecx)
406e7e:	c7 01 08 d4 40 00    	movl   $0x40d408,(%ecx)
406e84:	74 09                	je     0x406e8f
406e86:	ff 71 04             	push   0x4(%ecx)
406e89:	e8 f3 e0 ff ff       	call   0x404f81
406e8e:	59                   	pop    %ecx
406e8f:	c3                   	ret
406e90:	8b 41 04             	mov    0x4(%ecx),%eax
406e93:	85 c0                	test   %eax,%eax
406e95:	75 05                	jne    0x406e9c
406e97:	b8 10 d4 40 00       	mov    $0x40d410,%eax
406e9c:	c3                   	ret
406e9d:	55                   	push   %ebp
406e9e:	8b ec                	mov    %esp,%ebp
406ea0:	83 ec 20             	sub    $0x20,%esp
406ea3:	8b 45 08             	mov    0x8(%ebp),%eax
406ea6:	56                   	push   %esi
406ea7:	57                   	push   %edi
406ea8:	6a 08                	push   $0x8
406eaa:	59                   	pop    %ecx
406eab:	be 28 d4 40 00       	mov    $0x40d428,%esi
406eb0:	8d 7d e0             	lea    -0x20(%ebp),%edi
406eb3:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
406eb5:	89 45 f8             	mov    %eax,-0x8(%ebp)
406eb8:	8b 45 0c             	mov    0xc(%ebp),%eax
406ebb:	89 45 fc             	mov    %eax,-0x4(%ebp)
406ebe:	8d 45 f4             	lea    -0xc(%ebp),%eax
406ec1:	50                   	push   %eax
406ec2:	ff 75 f0             	push   -0x10(%ebp)
406ec5:	ff 75 e4             	push   -0x1c(%ebp)
406ec8:	ff 75 e0             	push   -0x20(%ebp)
406ecb:	ff 15 f0 d0 40 00    	call   *0x40d0f0
406ed1:	5f                   	pop    %edi
406ed2:	5e                   	pop    %esi
406ed3:	c9                   	leave
406ed4:	c2 08 00             	ret    $0x8
406ed7:	56                   	push   %esi
406ed8:	8b 74 24 08          	mov    0x8(%esp),%esi
406edc:	85 f6                	test   %esi,%esi
406ede:	74 3d                	je     0x406f1d
406ee0:	6a 09                	push   $0x9
406ee2:	e8 0e 01 00 00       	call   0x406ff5
406ee7:	56                   	push   %esi
406ee8:	e8 95 34 00 00       	call   0x40a382
406eed:	59                   	pop    %ecx
406eee:	85 c0                	test   %eax,%eax
406ef0:	59                   	pop    %ecx
406ef1:	74 13                	je     0x406f06
406ef3:	56                   	push   %esi
406ef4:	50                   	push   %eax
406ef5:	e8 b3 34 00 00       	call   0x40a3ad
406efa:	6a 09                	push   $0x9
406efc:	e8 55 01 00 00       	call   0x407056
406f01:	83 c4 0c             	add    $0xc,%esp
406f04:	5e                   	pop    %esi
406f05:	c3                   	ret
406f06:	6a 09                	push   $0x9
406f08:	e8 49 01 00 00       	call   0x407056
406f0d:	59                   	pop    %ecx
406f0e:	56                   	push   %esi
406f0f:	6a 00                	push   $0x0
406f11:	ff 35 a0 1d 41 00    	push   0x411da0
406f17:	ff 15 f4 d0 40 00    	call   *0x40d0f4
406f1d:	5e                   	pop    %esi
406f1e:	c3                   	ret
406f1f:	cc                   	int3
406f20:	8b 44 24 0c          	mov    0xc(%esp),%eax
406f24:	85 c0                	test   %eax,%eax
406f26:	74 44                	je     0x406f6c
406f28:	8b 54 24 04          	mov    0x4(%esp),%edx
406f2c:	56                   	push   %esi
406f2d:	57                   	push   %edi
406f2e:	8b f2                	mov    %edx,%esi
406f30:	8b 7c 24 10          	mov    0x10(%esp),%edi
406f34:	0b d7                	or     %edi,%edx
406f36:	83 e2 03             	and    $0x3,%edx
406f39:	74 32                	je     0x406f6d
406f3b:	a9 01 00 00 00       	test   $0x1,%eax
406f40:	74 0b                	je     0x406f4d
406f42:	8a 0e                	mov    (%esi),%cl
406f44:	3a 0f                	cmp    (%edi),%cl
406f46:	75 52                	jne    0x406f9a
406f48:	46                   	inc    %esi
406f49:	47                   	inc    %edi
406f4a:	48                   	dec    %eax
406f4b:	74 1d                	je     0x406f6a
406f4d:	8a 0e                	mov    (%esi),%cl
406f4f:	8a 17                	mov    (%edi),%dl
406f51:	38 d1                	cmp    %dl,%cl
406f53:	75 45                	jne    0x406f9a
406f55:	8a 4e 01             	mov    0x1(%esi),%cl
406f58:	8a 57 01             	mov    0x1(%edi),%dl
406f5b:	38 d1                	cmp    %dl,%cl
406f5d:	75 3b                	jne    0x406f9a
406f5f:	83 c7 02             	add    $0x2,%edi
406f62:	83 c6 02             	add    $0x2,%esi
406f65:	83 e8 02             	sub    $0x2,%eax
406f68:	75 e3                	jne    0x406f4d
406f6a:	5f                   	pop    %edi
406f6b:	5e                   	pop    %esi
406f6c:	c3                   	ret
406f6d:	8b c8                	mov    %eax,%ecx
406f6f:	83 e0 03             	and    $0x3,%eax
406f72:	c1 e9 02             	shr    $0x2,%ecx
406f75:	74 2b                	je     0x406fa2
406f77:	f3 a7                	repz cmpsl %es:(%edi),%ds:(%esi)
406f79:	74 27                	je     0x406fa2
406f7b:	8b 4e fc             	mov    -0x4(%esi),%ecx
406f7e:	8b 57 fc             	mov    -0x4(%edi),%edx
406f81:	38 d1                	cmp    %dl,%cl
406f83:	75 10                	jne    0x406f95
406f85:	38 f5                	cmp    %dh,%ch
406f87:	75 0c                	jne    0x406f95
406f89:	c1 e9 10             	shr    $0x10,%ecx
406f8c:	c1 ea 10             	shr    $0x10,%edx
406f8f:	38 d1                	cmp    %dl,%cl
406f91:	75 02                	jne    0x406f95
406f93:	38 f5                	cmp    %dh,%ch
406f95:	b8 00 00 00 00       	mov    $0x0,%eax
406f9a:	1b c0                	sbb    %eax,%eax
406f9c:	5f                   	pop    %edi
406f9d:	83 d8 ff             	sbb    $0xffffffff,%eax
406fa0:	5e                   	pop    %esi
406fa1:	c3                   	ret
406fa2:	85 c0                	test   %eax,%eax
406fa4:	74 c4                	je     0x406f6a
406fa6:	8b 16                	mov    (%esi),%edx
406fa8:	8b 0f                	mov    (%edi),%ecx
406faa:	38 ca                	cmp    %cl,%dl
406fac:	75 e7                	jne    0x406f95
406fae:	48                   	dec    %eax
406faf:	74 18                	je     0x406fc9
406fb1:	38 ee                	cmp    %ch,%dh
406fb3:	75 e0                	jne    0x406f95
406fb5:	48                   	dec    %eax
406fb6:	74 11                	je     0x406fc9
406fb8:	81 e1 00 00 ff 00    	and    $0xff0000,%ecx
406fbe:	81 e2 00 00 ff 00    	and    $0xff0000,%edx
406fc4:	3b d1                	cmp    %ecx,%edx
406fc6:	75 cd                	jne    0x406f95
406fc8:	48                   	dec    %eax
406fc9:	5f                   	pop    %edi
406fca:	5e                   	pop    %esi
406fcb:	c3                   	ret
406fcc:	56                   	push   %esi
406fcd:	8b 35 bc d0 40 00    	mov    0x40d0bc,%esi
406fd3:	ff 35 64 08 41 00    	push   0x410864
406fd9:	ff d6                	call   *%esi
406fdb:	ff 35 54 08 41 00    	push   0x410854
406fe1:	ff d6                	call   *%esi
406fe3:	ff 35 44 08 41 00    	push   0x410844
406fe9:	ff d6                	call   *%esi
406feb:	ff 35 24 08 41 00    	push   0x410824
406ff1:	ff d6                	call   *%esi
406ff3:	5e                   	pop    %esi
406ff4:	c3                   	ret
406ff5:	55                   	push   %ebp
406ff6:	8b ec                	mov    %esp,%ebp
406ff8:	8b 45 08             	mov    0x8(%ebp),%eax
406ffb:	56                   	push   %esi
406ffc:	83 3c 85 20 08 41 00 	cmpl   $0x0,0x410820(,%eax,4)
407003:	00
407004:	8d 34 85 20 08 41 00 	lea    0x410820(,%eax,4),%esi
40700b:	75 3e                	jne    0x40704b
40700d:	57                   	push   %edi
40700e:	6a 18                	push   $0x18
407010:	e8 78 03 00 00       	call   0x40738d
407015:	8b f8                	mov    %eax,%edi
407017:	59                   	pop    %ecx
407018:	85 ff                	test   %edi,%edi
40701a:	75 08                	jne    0x407024
40701c:	6a 11                	push   $0x11
40701e:	e8 59 e7 ff ff       	call   0x40577c
407023:	59                   	pop    %ecx
407024:	6a 11                	push   $0x11
407026:	e8 ca ff ff ff       	call   0x406ff5
40702b:	83 3e 00             	cmpl   $0x0,(%esi)
40702e:	59                   	pop    %ecx
40702f:	57                   	push   %edi
407030:	75 0a                	jne    0x40703c
407032:	ff 15 bc d0 40 00    	call   *0x40d0bc
407038:	89 3e                	mov    %edi,(%esi)
40703a:	eb 06                	jmp    0x407042
40703c:	e8 96 fe ff ff       	call   0x406ed7
407041:	59                   	pop    %ecx
407042:	6a 11                	push   $0x11
407044:	e8 0d 00 00 00       	call   0x407056
407049:	59                   	pop    %ecx
40704a:	5f                   	pop    %edi
40704b:	ff 36                	push   (%esi)
40704d:	ff 15 b4 d0 40 00    	call   *0x40d0b4
407053:	5e                   	pop    %esi
407054:	5d                   	pop    %ebp
407055:	c3                   	ret
407056:	55                   	push   %ebp
407057:	8b ec                	mov    %esp,%ebp
407059:	8b 45 08             	mov    0x8(%ebp),%eax
40705c:	ff 34 85 20 08 41 00 	push   0x410820(,%eax,4)
407063:	ff 15 c8 d0 40 00    	call   *0x40d0c8
407069:	5d                   	pop    %ebp
40706a:	c3                   	ret
40706b:	56                   	push   %esi
40706c:	e8 76 00 00 00       	call   0x4070e7
407071:	8b 4c 24 08          	mov    0x8(%esp),%ecx
407075:	33 f6                	xor    %esi,%esi
407077:	89 08                	mov    %ecx,(%eax)
407079:	b8 f8 0b 41 00       	mov    $0x410bf8,%eax
40707e:	3b 08                	cmp    (%eax),%ecx
407080:	74 22                	je     0x4070a4
407082:	83 c0 08             	add    $0x8,%eax
407085:	46                   	inc    %esi
407086:	3d 60 0d 41 00       	cmp    $0x410d60,%eax
40708b:	7c f1                	jl     0x40707e
40708d:	83 f9 13             	cmp    $0x13,%ecx
407090:	72 22                	jb     0x4070b4
407092:	83 f9 24             	cmp    $0x24,%ecx
407095:	77 1d                	ja     0x4070b4
407097:	e8 42 00 00 00       	call   0x4070de
40709c:	c7 00 0d 00 00 00    	movl   $0xd,(%eax)
4070a2:	5e                   	pop    %esi
4070a3:	c3                   	ret
4070a4:	e8 35 00 00 00       	call   0x4070de
4070a9:	8b 0c f5 fc 0b 41 00 	mov    0x410bfc(,%esi,8),%ecx
4070b0:	5e                   	pop    %esi
4070b1:	89 08                	mov    %ecx,(%eax)
4070b3:	c3                   	ret
4070b4:	81 f9 bc 00 00 00    	cmp    $0xbc,%ecx
4070ba:	72 15                	jb     0x4070d1
4070bc:	81 f9 ca 00 00 00    	cmp    $0xca,%ecx
4070c2:	77 0d                	ja     0x4070d1
4070c4:	e8 15 00 00 00       	call   0x4070de
4070c9:	c7 00 08 00 00 00    	movl   $0x8,(%eax)
4070cf:	5e                   	pop    %esi
4070d0:	c3                   	ret
4070d1:	e8 08 00 00 00       	call   0x4070de
4070d6:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4070dc:	5e                   	pop    %esi
4070dd:	c3                   	ret
4070de:	e8 e4 15 00 00       	call   0x4086c7
4070e3:	83 c0 08             	add    $0x8,%eax
4070e6:	c3                   	ret
4070e7:	e8 db 15 00 00       	call   0x4086c7
4070ec:	83 c0 0c             	add    $0xc,%eax
4070ef:	c3                   	ret
4070f0:	a1 d4 1e 41 00       	mov    0x411ed4,%eax
4070f5:	85 c0                	test   %eax,%eax
4070f7:	74 02                	je     0x4070fb
4070f9:	ff d0                	call   *%eax
4070fb:	68 7c 00 41 00       	push   $0x41007c
407100:	68 68 00 41 00       	push   $0x410068
407105:	e8 ec 00 00 00       	call   0x4071f6
40710a:	68 64 00 41 00       	push   $0x410064
40710f:	68 00 00 41 00       	push   $0x410000
407114:	e8 dd 00 00 00       	call   0x4071f6
407119:	83 c4 10             	add    $0x10,%esp
40711c:	c3                   	ret
40711d:	6a 00                	push   $0x0
40711f:	6a 00                	push   $0x0
407121:	ff 74 24 0c          	push   0xc(%esp)
407125:	e8 15 00 00 00       	call   0x40713f
40712a:	83 c4 0c             	add    $0xc,%esp
40712d:	c3                   	ret
40712e:	6a 00                	push   $0x0
407130:	6a 01                	push   $0x1
407132:	ff 74 24 0c          	push   0xc(%esp)
407136:	e8 04 00 00 00       	call   0x40713f
40713b:	83 c4 0c             	add    $0xc,%esp
40713e:	c3                   	ret
40713f:	57                   	push   %edi
407140:	e8 9f 00 00 00       	call   0x4071e4
407145:	6a 01                	push   $0x1
407147:	5f                   	pop    %edi
407148:	39 3d c4 18 41 00    	cmp    %edi,0x4118c4
40714e:	75 11                	jne    0x407161
407150:	ff 74 24 08          	push   0x8(%esp)
407154:	ff 15 b0 d0 40 00    	call   *0x40d0b0
40715a:	50                   	push   %eax
40715b:	ff 15 f8 d0 40 00    	call   *0x40d0f8
407161:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
407166:	53                   	push   %ebx
407167:	8b 5c 24 14          	mov    0x14(%esp),%ebx
40716b:	89 3d c0 18 41 00    	mov    %edi,0x4118c0
407171:	88 1d bc 18 41 00    	mov    %bl,0x4118bc
407177:	75 3c                	jne    0x4071b5
407179:	a1 d0 1e 41 00       	mov    0x411ed0,%eax
40717e:	85 c0                	test   %eax,%eax
407180:	74 22                	je     0x4071a4
407182:	8b 0d cc 1e 41 00    	mov    0x411ecc,%ecx
407188:	56                   	push   %esi
407189:	8d 71 fc             	lea    -0x4(%ecx),%esi
40718c:	3b f0                	cmp    %eax,%esi
40718e:	72 13                	jb     0x4071a3
407190:	8b 06                	mov    (%esi),%eax
407192:	85 c0                	test   %eax,%eax
407194:	74 02                	je     0x407198
407196:	ff d0                	call   *%eax
407198:	83 ee 04             	sub    $0x4,%esi
40719b:	3b 35 d0 1e 41 00    	cmp    0x411ed0,%esi