40ed64:	50                   	push   %eax
40ed65:	89 4d b0             	mov    %ecx,-0x50(%ebp)
40ed68:	ff 55 10             	call   *0x10(%ebp)
40ed6b:	8b 75 f8             	mov    -0x8(%ebp),%esi
40ed6e:	85 f6                	test   %esi,%esi
40ed70:	74 17                	je     0x40ed89
40ed72:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ed75:	8b c7                	mov    %edi,%eax
40ed77:	2b cf                	sub    %edi,%ecx
40ed79:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40ed80:	8a 14 01             	mov    (%ecx,%eax,1),%dl
40ed83:	88 10                	mov    %dl,(%eax)
40ed85:	40                   	inc    %eax
40ed86:	4e                   	dec    %esi
40ed87:	75 f7                	jne    0x40ed80
40ed89:	6a 00                	push   $0x0
40ed8b:	8d 45 b8             	lea    -0x48(%ebp),%eax
40ed8e:	50                   	push   %eax
40ed8f:	57                   	push   %edi
40ed90:	e8 cb 99 00 00       	call   0x418760
40ed95:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ed98:	83 c4 0c             	add    $0xc,%esp
40ed9b:	85 c0                	test   %eax,%eax
40ed9d:	74 0d                	je     0x40edac
40ed9f:	8b 4d 08             	mov    0x8(%ebp),%ecx
40eda2:	50                   	push   %eax
40eda3:	51                   	push   %ecx
40eda4:	e8 97 95 00 00       	call   0x418340
40eda9:	83 c4 08             	add    $0x8,%esp
40edac:	33 d2                	xor    %edx,%edx
40edae:	68 06 02 00 00       	push   $0x206
40edb3:	52                   	push   %edx
40edb4:	8d 85 2a fd ff ff    	lea    -0x2d6(%ebp),%eax
40edba:	50                   	push   %eax
40edbb:	66 89 95 28 fd ff ff 	mov    %dx,-0x2d8(%ebp)
40edc2:	e8 19 96 00 00       	call   0x4183e0
40edc7:	33 c0                	xor    %eax,%eax
40edc9:	6a 3a                	push   $0x3a
40edcb:	50                   	push   %eax
40edcc:	8d 8d 36 ff ff ff    	lea    -0xca(%ebp),%ecx
40edd2:	51                   	push   %ecx
40edd3:	c7 85 30 ff ff ff 0d 	movl   $0xa000d,-0xd0(%ebp)
40edda:	00 0a 00
40eddd:	66 89 85 34 ff ff ff 	mov    %ax,-0xcc(%ebp)
40ede4:	e8 f7 95 00 00       	call   0x4183e0
40ede9:	33 c0                	xor    %eax,%eax
40edeb:	89 45 e6             	mov    %eax,-0x1a(%ebp)
40edee:	89 45 ea             	mov    %eax,-0x16(%ebp)
40edf1:	89 45 ee             	mov    %eax,-0x12(%ebp)
40edf4:	89 45 f2             	mov    %eax,-0xe(%ebp)
40edf7:	66 89 45 f6          	mov    %ax,-0xa(%ebp)
40edfb:	8b 45 1c             	mov    0x1c(%ebp),%eax
40edfe:	33 d2                	xor    %edx,%edx
40ee00:	83 c4 18             	add    $0x18,%esp
40ee03:	c7 45 d8 72 00 67 00 	movl   $0x670072,-0x28(%ebp)
40ee0a:	c7 45 dc 2e 00 69 00 	movl   $0x69002e,-0x24(%ebp)
40ee11:	c7 45 e0 6e 00 69 00 	movl   $0x69006e,-0x20(%ebp)
40ee18:	66 89 55 e4          	mov    %dx,-0x1c(%ebp)
40ee1c:	83 f8 32             	cmp    $0x32,%eax
40ee1f:	75 0b                	jne    0x40ee2c
40ee21:	b8 66 00 00 00       	mov    $0x66,%eax
40ee26:	66 89 45 da          	mov    %ax,-0x26(%ebp)
40ee2a:	eb 20                	jmp    0x40ee4c
40ee2c:	83 f8 64             	cmp    $0x64,%eax
40ee2f:	75 0b                	jne    0x40ee3c
40ee31:	b9 74 00 00 00       	mov    $0x74,%ecx
40ee36:	66 89 4d da          	mov    %cx,-0x26(%ebp)
40ee3a:	eb 10                	jmp    0x40ee4c
40ee3c:	3d 24 10 00 00       	cmp    $0x1024,%eax
40ee41:	75 09                	jne    0x40ee4c
40ee43:	ba 6f 00 00 00       	mov    $0x6f,%edx
40ee48:	66 89 55 da          	mov    %dx,-0x26(%ebp)
40ee4c:	8b 5d 08             	mov    0x8(%ebp),%ebx
40ee4f:	81 c3 f0 08 00 00    	add    $0x8f0,%ebx
40ee55:	53                   	push   %ebx
40ee56:	e8 f5 97 00 00       	call   0x418650
40ee5b:	8b f0                	mov    %eax,%esi
40ee5d:	8d 46 f8             	lea    -0x8(%esi),%eax
40ee60:	83 c4 04             	add    $0x4,%esp
40ee63:	3d 78 01 00 00       	cmp    $0x178,%eax
40ee68:	0f 87 b9 00 00 00    	ja     0x40ef27
40ee6e:	8d 0c 36             	lea    (%esi,%esi,1),%ecx
40ee71:	51                   	push   %ecx
40ee72:	8d 95 28 fd ff ff    	lea    -0x2d8(%ebp),%edx
40ee78:	53                   	push   %ebx
40ee79:	52                   	push   %edx
40ee7a:	e8 e1 94 00 00       	call   0x418360
40ee7f:	6a 0e                	push   $0xe
40ee81:	8d 45 d8             	lea    -0x28(%ebp),%eax
40ee84:	50                   	push   %eax
40ee85:	8d 8c 75 20 fd ff ff 	lea    -0x2e0(%ebp,%esi,2),%ecx
40ee8c:	51                   	push   %ecx
40ee8d:	e8 ce 94 00 00       	call   0x418360
40ee92:	33 c0                	xor    %eax,%eax
40ee94:	83 c4 18             	add    $0x18,%esp
40ee97:	c7 85 70 ff ff ff 20 	movl   $0x520020,-0x90(%ebp)
40ee9e:	00 52 00
40eea1:	c7 85 74 ff ff ff 65 	movl   $0x630065,-0x8c(%ebp)
40eea8:	00 63 00
40eeab:	c7 85 78 ff ff ff 6f 	movl   $0x76006f,-0x88(%ebp)
40eeb2:	00 76 00
40eeb5:	c7 85 7c ff ff ff 65 	movl   $0x720065,-0x84(%ebp)
40eebc:	00 72 00
40eebf:	c7 45 80 79 00 0d 00 	movl   $0xd0079,-0x80(%ebp)
40eec6:	c7 45 84 0a 00 00 00 	movl   $0xa,-0x7c(%ebp)
40eecd:	89 45 88             	mov    %eax,-0x78(%ebp)
40eed0:	89 45 8c             	mov    %eax,-0x74(%ebp)
40eed3:	89 45 90             	mov    %eax,-0x70(%ebp)
40eed6:	89 45 94             	mov    %eax,-0x6c(%ebp)
40eed9:	89 45 98             	mov    %eax,-0x68(%ebp)
40eedc:	89 45 9c             	mov    %eax,-0x64(%ebp)
40eedf:	89 45 a0             	mov    %eax,-0x60(%ebp)
40eee2:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40eee5:	89 45 a8             	mov    %eax,-0x58(%ebp)
40eee8:	89 45 ac             	mov    %eax,-0x54(%ebp)
40eeeb:	85 ff                	test   %edi,%edi
40eeed:	74 38                	je     0x40ef27
40eeef:	8b 75 08             	mov    0x8(%ebp),%esi
40eef2:	8b 96 04 0a 00 00    	mov    0xa04(%esi),%edx
40eef8:	57                   	push   %edi
40eef9:	52                   	push   %edx
40eefa:	e8 51 9b 00 00       	call   0x418a50
40eeff:	8b 86 04 0a 00 00    	mov    0xa04(%esi),%eax
40ef05:	50                   	push   %eax
40ef06:	e8 45 97 00 00       	call   0x418650
40ef0b:	6a 00                	push   $0x0
40ef0d:	6a 14                	push   $0x14
40ef0f:	8d 8d 28 fd ff ff    	lea    -0x2d8(%ebp),%ecx
40ef15:	51                   	push   %ecx
40ef16:	03 c0                	add    %eax,%eax
40ef18:	56                   	push   %esi
40ef19:	89 86 08 0a 00 00    	mov    %eax,0xa08(%esi)
40ef1f:	e8 ac 2f 00 00       	call   0x411ed0
40ef24:	83 c4 1c             	add    $0x1c,%esp
40ef27:	5e                   	pop    %esi
40ef28:	5b                   	pop    %ebx
40ef29:	b8 01 00 00 00       	mov    $0x1,%eax
40ef2e:	5f                   	pop    %edi
40ef2f:	8b e5                	mov    %ebp,%esp
40ef31:	5d                   	pop    %ebp
40ef32:	c3                   	ret
40ef33:	6a 00                	push   $0x0
40ef35:	8d 55 b8             	lea    -0x48(%ebp),%edx
40ef38:	52                   	push   %edx
40ef39:	57                   	push   %edi
40ef3a:	e8 21 98 00 00       	call   0x418760
40ef3f:	8b 45 1c             	mov    0x1c(%ebp),%eax
40ef42:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ef45:	50                   	push   %eax
40ef46:	6a 00                	push   $0x0
40ef48:	6a 00                	push   $0x0
40ef4a:	57                   	push   %edi
40ef4b:	51                   	push   %ecx
40ef4c:	e8 5f fb ff ff       	call   0x40eab0
40ef51:	83 c4 20             	add    $0x20,%esp
40ef54:	33 c0                	xor    %eax,%eax
40ef56:	5f                   	pop    %edi
40ef57:	8b e5                	mov    %ebp,%esp
40ef59:	5d                   	pop    %ebp
40ef5a:	c3                   	ret
40ef5b:	85 6c 40 96          	test   %ebp,-0x6a(%eax,%eax,2)
40ef5f:	d2 55 8b             	rclb   %cl,-0x75(%ebp)
40ef62:	ec                   	in     (%dx),%al
40ef63:	53                   	push   %ebx
40ef64:	56                   	push   %esi
40ef65:	57                   	push   %edi
40ef66:	8b 7d 10             	mov    0x10(%ebp),%edi
40ef69:	8d 77 10             	lea    0x10(%edi),%esi
40ef6c:	56                   	push   %esi
40ef6d:	e8 be 96 00 00       	call   0x418630
40ef72:	40                   	inc    %eax
40ef73:	50                   	push   %eax
40ef74:	56                   	push   %esi
40ef75:	8b 75 0c             	mov    0xc(%ebp),%esi
40ef78:	56                   	push   %esi
40ef79:	e8 e2 93 00 00       	call   0x418360
40ef7e:	8b 45 14             	mov    0x14(%ebp),%eax
40ef81:	6a 00                	push   $0x0
40ef83:	50                   	push   %eax
40ef84:	56                   	push   %esi
40ef85:	e8 d6 97 00 00       	call   0x418760
40ef8a:	6a 00                	push   $0x0
40ef8c:	57                   	push   %edi
40ef8d:	56                   	push   %esi
40ef8e:	e8 cd 97 00 00       	call   0x418760
40ef93:	8b 5d 28             	mov    0x28(%ebp),%ebx
40ef96:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ef99:	53                   	push   %ebx
40ef9a:	6a 00                	push   $0x0
40ef9c:	6a 00                	push   $0x0
40ef9e:	56                   	push   %esi
40ef9f:	51                   	push   %ecx
40efa0:	e8 0b fb ff ff       	call   0x40eab0
40efa5:	8d 87 80 00 00 00    	lea    0x80(%edi),%eax
40efab:	50                   	push   %eax
40efac:	e8 7f 96 00 00       	call   0x418630
40efb1:	83 c4 40             	add    $0x40,%esp
40efb4:	40                   	inc    %eax
40efb5:	50                   	push   %eax
40efb6:	8d 87 80 00 00 00    	lea    0x80(%edi),%eax
40efbc:	50                   	push   %eax
40efbd:	56                   	push   %esi
40efbe:	e8 9d 93 00 00       	call   0x418360
40efc3:	8b 55 18             	mov    0x18(%ebp),%edx
40efc6:	6a 00                	push   $0x0
40efc8:	52                   	push   %edx
40efc9:	56                   	push   %esi
40efca:	e8 91 97 00 00       	call   0x418760
40efcf:	6a 00                	push   $0x0
40efd1:	57                   	push   %edi
40efd2:	56                   	push   %esi
40efd3:	e8 88 97 00 00       	call   0x418760
40efd8:	8b 45 08             	mov    0x8(%ebp),%eax
40efdb:	53                   	push   %ebx
40efdc:	6a 00                	push   $0x0
40efde:	6a 00                	push   $0x0
40efe0:	56                   	push   %esi
40efe1:	50                   	push   %eax
40efe2:	e8 c9 fa ff ff       	call   0x40eab0
40efe7:	83 c7 60             	add    $0x60,%edi
40efea:	57                   	push   %edi
40efeb:	e8 40 96 00 00       	call   0x418630
40eff0:	40                   	inc    %eax
40eff1:	50                   	push   %eax
40eff2:	57                   	push   %edi
40eff3:	56                   	push   %esi
40eff4:	e8 67 93 00 00       	call   0x418360
40eff9:	8b 7d 08             	mov    0x8(%ebp),%edi
40effc:	83 c4 48             	add    $0x48,%esp
40efff:	53                   	push   %ebx
40f000:	6a 00                	push   $0x0
40f002:	6a 00                	push   $0x0
40f004:	56                   	push   %esi
40f005:	57                   	push   %edi
40f006:	e8 a5 fa ff ff       	call   0x40eab0
40f00b:	8b 4d 20             	mov    0x20(%ebp),%ecx
40f00e:	8b 55 1c             	mov    0x1c(%ebp),%edx
40f011:	8b 45 24             	mov    0x24(%ebp),%eax
40f014:	53                   	push   %ebx
40f015:	51                   	push   %ecx
40f016:	52                   	push   %edx
40f017:	50                   	push   %eax
40f018:	56                   	push   %esi
40f019:	57                   	push   %edi
40f01a:	e8 e1 fc ff ff       	call   0x40ed00
40f01f:	83 c4 2c             	add    $0x2c,%esp
40f022:	5f                   	pop    %edi
40f023:	5e                   	pop    %esi
40f024:	5b                   	pop    %ebx
40f025:	5d                   	pop    %ebp
40f026:	c3                   	ret
40f027:	55                   	push   %ebp
40f028:	54                   	push   %esp
40f029:	33 b5 be 24 e3 83    	xor    -0x7c1cdb42(%ebp),%esi
40f02f:	f9                   	stc
40f030:	55                   	push   %ebp
40f031:	8b ec                	mov    %esp,%ebp
40f033:	81 ec 00 09 00 00    	sub    $0x900,%esp
40f039:	56                   	push   %esi
40f03a:	57                   	push   %edi
40f03b:	33 c0                	xor    %eax,%eax
40f03d:	68 fe 03 00 00       	push   $0x3fe
40f042:	50                   	push   %eax
40f043:	8d 8d 0a f9 ff ff    	lea    -0x6f6(%ebp),%ecx
40f049:	51                   	push   %ecx
40f04a:	66 89 85 08 f9 ff ff 	mov    %ax,-0x6f8(%ebp)
40f051:	e8 8a 93 00 00       	call   0x4183e0
40f056:	8b 45 10             	mov    0x10(%ebp),%eax
40f059:	8b 75 0c             	mov    0xc(%ebp),%esi
40f05c:	8b 7d 08             	mov    0x8(%ebp),%edi
40f05f:	83 c4 0c             	add    $0xc,%esp
40f062:	83 f8 16             	cmp    $0x16,%eax
40f065:	0f 85 8a 00 00 00    	jne    0x40f0f5
40f06b:	6a 00                	push   $0x0
40f06d:	6a 01                	push   $0x1
40f06f:	8d 95 08 f9 ff ff    	lea    -0x6f8(%ebp),%edx
40f075:	52                   	push   %edx
40f076:	57                   	push   %edi
40f077:	e8 f4 96 ff ff       	call   0x408770
40f07c:	83 c4 10             	add    $0x10,%esp
40f07f:	66 83 bd 08 f9 ff ff 	cmpw   $0x0,-0x6f8(%ebp)
40f086:	00
40f087:	75 14                	jne    0x40f09d
40f089:	6a 00                	push   $0x0
40f08b:	6a 03                	push   $0x3
40f08d:	8d 85 08 f9 ff ff    	lea    -0x6f8(%ebp),%eax
40f093:	50                   	push   %eax
40f094:	57                   	push   %edi
40f095:	e8 d6 96 ff ff       	call   0x408770
40f09a:	83 c4 10             	add    $0x10,%esp
40f09d:	6a 01                	push   $0x1
40f09f:	8d 8d 08 f9 ff ff    	lea    -0x6f8(%ebp),%ecx
40f0a5:	6a 1e                	push   $0x1e
40f0a7:	51                   	push   %ecx
40f0a8:	e8 a3 95 00 00       	call   0x418650
40f0ad:	83 c4 04             	add    $0x4,%esp
40f0b0:	8d 94 45 08 f9 ff ff 	lea    -0x6f8(%ebp,%eax,2),%edx
40f0b7:	52                   	push   %edx
40f0b8:	57                   	push   %edi
40f0b9:	e8 b2 96 ff ff       	call   0x408770
40f0be:	6a 00                	push   $0x0
40f0c0:	6a 15                	push   $0x15
40f0c2:	8d 85 08 f9 ff ff    	lea    -0x6f8(%ebp),%eax
40f0c8:	50                   	push   %eax
40f0c9:	57                   	push   %edi
40f0ca:	e8 01 2e 00 00       	call   0x411ed0
40f0cf:	83 c4 20             	add    $0x20,%esp
40f0d2:	f7 d8                	neg    %eax
40f0d4:	1b c0                	sbb    %eax,%eax
40f0d6:	f7 d8                	neg    %eax
40f0d8:	89 87 4c 0b 00 00    	mov    %eax,0xb4c(%edi)
40f0de:	74 0d                	je     0x40f0ed
40f0e0:	83 bf 00 0a 00 00 00 	cmpl   $0x0,0xa00(%edi)
40f0e7:	75 04                	jne    0x40f0ed
40f0e9:	85 f6                	test   %esi,%esi
40f0eb:	75 34                	jne    0x40f121
40f0ed:	5f                   	pop    %edi
40f0ee:	33 c0                	xor    %eax,%eax
40f0f0:	5e                   	pop    %esi
40f0f1:	8b e5                	mov    %ebp,%esp
40f0f3:	5d                   	pop    %ebp
40f0f4:	c3                   	ret
40f0f5:	3d 24 10 00 00       	cmp    $0x1024,%eax
40f0fa:	75 25                	jne    0x40f121
40f0fc:	6a 00                	push   $0x0
40f0fe:	8d 8d 08 f9 ff ff    	lea    -0x6f8(%ebp),%ecx
40f104:	51                   	push   %ecx
40f105:	57                   	push   %edi
40f106:	e8 f5 10 00 00       	call   0x410200
40f10b:	83 c4 0c             	add    $0xc,%esp
40f10e:	89 87 48 0b 00 00    	mov    %eax,0xb48(%edi)
40f114:	85 c0                	test   %eax,%eax
40f116:	74 d5                	je     0x40f0ed
40f118:	83 bf fc 09 00 00 00 	cmpl   $0x0,0x9fc(%edi)
40f11f:	eb c6                	jmp    0x40f0e7
40f121:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
40f125:	53                   	push   %ebx
40f126:	8d 5e 0c             	lea    0xc(%esi),%ebx
40f129:	0f 85 bb 00 00 00    	jne    0x40f1ea
40f12f:	33 d2                	xor    %edx,%edx
40f131:	68 06 02 00 00       	push   $0x206
40f136:	52                   	push   %edx
40f137:	8d 85 02 f7 ff ff    	lea    -0x8fe(%ebp),%eax
40f13d:	50                   	push   %eax
40f13e:	66 89 95 00 f7 ff ff 	mov    %dx,-0x900(%ebp)
40f145:	e8 96 92 00 00       	call   0x4183e0
40f14a:	68 03 01 00 00       	push   $0x103
40f14f:	8d 8d 09 fd ff ff    	lea    -0x2f7(%ebp),%ecx
40f155:	6a 00                	push   $0x0
40f157:	51                   	push   %ecx