40ef10:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40ef16:	50                   	push   %eax
40ef17:	56                   	push   %esi
40ef18:	e8 c3 ec ff ff       	call   0x40dbe0
40ef1d:	e8 9e fa ff ff       	call   0x40e9c0
40ef22:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40ef28:	8b d0                	mov    %eax,%edx
40ef2a:	8b 85 e4 fc ff ff    	mov    -0x31c(%ebp),%eax
40ef30:	ff 95 f8 fc ff ff    	call   *-0x308(%ebp)
40ef36:	55                   	push   %ebp
40ef37:	8b c3                	mov    %ebx,%eax
40ef39:	e8 fa fd ff ff       	call   0x40ed38
40ef3e:	59                   	pop    %ecx
40ef3f:	84 c0                	test   %al,%al
40ef41:	75 93                	jne    0x40eed6
40ef43:	eb 12                	jmp    0x40ef57
40ef45:	53                   	push   %ebx
40ef46:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40ef4c:	50                   	push   %eax
40ef4d:	e8 22 e8 ff ff       	call   0x40d774
40ef52:	e8 69 fa ff ff       	call   0x40e9c0
40ef57:	5f                   	pop    %edi
40ef58:	5e                   	pop    %esi
40ef59:	5b                   	pop    %ebx
40ef5a:	8b e5                	mov    %ebp,%esp
40ef5c:	5d                   	pop    %ebp
40ef5d:	c3                   	ret
40ef5e:	8b c0                	mov    %eax,%eax
40ef60:	e8 af 00 00 00       	call   0x40f014
40ef65:	c3                   	ret
40ef66:	8b c0                	mov    %eax,%eax
40ef68:	53                   	push   %ebx
40ef69:	56                   	push   %esi
40ef6a:	57                   	push   %edi
40ef6b:	51                   	push   %ecx
40ef6c:	8b f2                	mov    %edx,%esi
40ef6e:	8b d8                	mov    %eax,%ebx
40ef70:	66 f7 03 e8 bf       	testw  $0xbfe8,(%ebx)
40ef75:	74 07                	je     0x40ef7e
40ef77:	8b c3                	mov    %ebx,%eax
40ef79:	e8 f2 fc ff ff       	call   0x40ec70
40ef7e:	66 8b 3e             	mov    (%esi),%di
40ef81:	66 83 ff 14          	cmp    $0x14,%di
40ef85:	73 0e                	jae    0x40ef95
40ef87:	56                   	push   %esi
40ef88:	53                   	push   %ebx
40ef89:	e8 e6 e7 ff ff       	call   0x40d774
40ef8e:	e8 2d fa ff ff       	call   0x40e9c0
40ef93:	eb 79                	jmp    0x40f00e
40ef95:	66 81 ff 00 01       	cmp    $0x100,%di
40ef9a:	75 17                	jne    0x40efb3
40ef9c:	66 c7 03 00 01       	movw   $0x100,(%ebx)
40efa1:	33 c0                	xor    %eax,%eax
40efa3:	89 43 08             	mov    %eax,0x8(%ebx)
40efa6:	8d 43 08             	lea    0x8(%ebx),%eax
40efa9:	8b 56 08             	mov    0x8(%esi),%edx
40efac:	e8 5f 50 ff ff       	call   0x404010
40efb1:	eb 5b                	jmp    0x40f00e
40efb3:	66 81 ff 01 01       	cmp    $0x101,%di
40efb8:	75 13                	jne    0x40efcd
40efba:	66 89 3b             	mov    %di,(%ebx)
40efbd:	8b 46 08             	mov    0x8(%esi),%eax
40efc0:	89 43 08             	mov    %eax,0x8(%ebx)
40efc3:	8b c3                	mov    %ebx,%eax
40efc5:	ff 15 18 98 46 00    	call   *0x469818
40efcb:	eb 41                	jmp    0x40f00e
40efcd:	66 f7 c7 00 20       	test   $0x2000,%di
40efd2:	74 10                	je     0x40efe4
40efd4:	b9 60 ef 40 00       	mov    $0x40ef60,%ecx
40efd9:	8b d6                	mov    %esi,%edx
40efdb:	8b c3                	mov    %ebx,%eax
40efdd:	e8 b2 fd ff ff       	call   0x40ed94
40efe2:	eb 2a                	jmp    0x40f00e
40efe4:	8b d4                	mov    %esp,%edx
40efe6:	8b c7                	mov    %edi,%eax
40efe8:	e8 eb 16 00 00       	call   0x4106d8
40efed:	84 c0                	test   %al,%al
40efef:	74 11                	je     0x40f002
40eff1:	6a 00                	push   $0x0
40eff3:	8b ce                	mov    %esi,%ecx
40eff5:	8b d3                	mov    %ebx,%edx
40eff7:	8b 44 24 04          	mov    0x4(%esp),%eax
40effb:	8b 18                	mov    (%eax),%ebx
40effd:	ff 53 28             	call   *0x28(%ebx)
40f000:	eb 0c                	jmp    0x40f00e
40f002:	56                   	push   %esi
40f003:	53                   	push   %ebx
40f004:	e8 6b e7 ff ff       	call   0x40d774
40f009:	e8 b2 f9 ff ff       	call   0x40e9c0
40f00e:	5a                   	pop    %edx
40f00f:	5f                   	pop    %edi
40f010:	5e                   	pop    %esi
40f011:	5b                   	pop    %ebx
40f012:	c3                   	ret
40f013:	90                   	nop
40f014:	53                   	push   %ebx
40f015:	56                   	push   %esi
40f016:	8b da                	mov    %edx,%ebx
40f018:	8b f0                	mov    %eax,%esi
40f01a:	3b f3                	cmp    %ebx,%esi
40f01c:	74 36                	je     0x40f054
40f01e:	66 f7 03 e8 bf       	testw  $0xbfe8,(%ebx)
40f023:	75 26                	jne    0x40f04b
40f025:	66 f7 06 e8 bf       	testw  $0xbfe8,(%esi)
40f02a:	74 07                	je     0x40f033
40f02c:	8b c6                	mov    %esi,%eax
40f02e:	e8 3d fc ff ff       	call   0x40ec70
40f033:	8b 03                	mov    (%ebx),%eax
40f035:	89 06                	mov    %eax,(%esi)
40f037:	8b 43 04             	mov    0x4(%ebx),%eax
40f03a:	89 46 04             	mov    %eax,0x4(%esi)
40f03d:	8b 43 08             	mov    0x8(%ebx),%eax
40f040:	89 46 08             	mov    %eax,0x8(%esi)
40f043:	8b 43 0c             	mov    0xc(%ebx),%eax
40f046:	89 46 0c             	mov    %eax,0xc(%esi)
40f049:	eb 09                	jmp    0x40f054
40f04b:	8b d3                	mov    %ebx,%edx
40f04d:	8b c6                	mov    %esi,%eax
40f04f:	e8 14 ff ff ff       	call   0x40ef68
40f054:	5e                   	pop    %esi
40f055:	5b                   	pop    %ebx
40f056:	c3                   	ret
40f057:	90                   	nop
40f058:	55                   	push   %ebp
40f059:	8b ec                	mov    %esp,%ebp
40f05b:	53                   	push   %ebx
40f05c:	8b d8                	mov    %eax,%ebx
40f05e:	8b c3                	mov    %ebx,%eax
40f060:	e8 37 56 ff ff       	call   0x40469c
40f065:	50                   	push   %eax
40f066:	6a 00                	push   $0x0
40f068:	68 00 04 00 00       	push   $0x400
40f06d:	ff 75 0c             	push   0xc(%ebp)
40f070:	ff 75 08             	push   0x8(%ebp)
40f073:	a1 f4 7c 46 00       	mov    0x467cf4,%eax
40f078:	8b 00                	mov    (%eax),%eax
40f07a:	ff d0                	call   *%eax
40f07c:	66 b9 08 00          	mov    $0x8,%cx
40f080:	66 ba 06 00          	mov    $0x6,%dx
40f084:	e8 43 f9 ff ff       	call   0x40e9cc
40f089:	5b                   	pop    %ebx
40f08a:	5d                   	pop    %ebp
40f08b:	c2 08 00             	ret    $0x8
40f08e:	8b c0                	mov    %eax,%eax
40f090:	55                   	push   %ebp
40f091:	8b ec                	mov    %esp,%ebp
40f093:	53                   	push   %ebx
40f094:	8b d8                	mov    %eax,%ebx
40f096:	8b c3                	mov    %ebx,%eax
40f098:	e8 ff 55 ff ff       	call   0x40469c
40f09d:	50                   	push   %eax
40f09e:	6a 00                	push   $0x0
40f0a0:	68 00 04 00 00       	push   $0x400
40f0a5:	ff 75 0c             	push   0xc(%ebp)
40f0a8:	ff 75 08             	push   0x8(%ebp)
40f0ab:	a1 88 7e 46 00       	mov    0x467e88,%eax
40f0b0:	8b 00                	mov    (%eax),%eax
40f0b2:	ff d0                	call   *%eax
40f0b4:	66 b9 08 00          	mov    $0x8,%cx
40f0b8:	66 ba 07 00          	mov    $0x7,%dx
40f0bc:	e8 0b f9 ff ff       	call   0x40e9cc
40f0c1:	5b                   	pop    %ebx
40f0c2:	5d                   	pop    %ebp
40f0c3:	c2 08 00             	ret    $0x8
40f0c6:	8b c0                	mov    %eax,%eax
40f0c8:	55                   	push   %ebp
40f0c9:	8b ec                	mov    %esp,%ebp
40f0cb:	33 c9                	xor    %ecx,%ecx
40f0cd:	51                   	push   %ecx
40f0ce:	51                   	push   %ecx
40f0cf:	51                   	push   %ecx
40f0d0:	51                   	push   %ecx
40f0d1:	53                   	push   %ebx
40f0d2:	56                   	push   %esi
40f0d3:	8b da                	mov    %edx,%ebx
40f0d5:	8b f0                	mov    %eax,%esi
40f0d7:	33 c0                	xor    %eax,%eax
40f0d9:	55                   	push   %ebp
40f0da:	68 7e f1 40 00       	push   $0x40f17e
40f0df:	64 ff 30             	push   %fs:(%eax)
40f0e2:	64 89 20             	mov    %esp,%fs:(%eax)
40f0e5:	8b c3                	mov    %ebx,%eax
40f0e7:	e8 b0 55 ff ff       	call   0x40469c
40f0ec:	50                   	push   %eax
40f0ed:	6a 00                	push   $0x0
40f0ef:	68 00 04 00 00       	push   $0x400
40f0f4:	56                   	push   %esi
40f0f5:	a1 80 7f 46 00       	mov    0x467f80,%eax
40f0fa:	8b 00                	mov    (%eax),%eax
40f0fc:	ff d0                	call   *%eax
40f0fe:	66 b9 08 00          	mov    $0x8,%cx
40f102:	66 ba 0b 00          	mov    $0xb,%dx
40f106:	e8 c1 f8 ff ff       	call   0x40e9cc
40f10b:	a0 24 d3 45 00       	mov    0x45d324,%al
40f110:	2c 01                	sub    $0x1,%al
40f112:	72 4f                	jb     0x40f163
40f114:	74 06                	je     0x40f11c
40f116:	fe c8                	dec    %al
40f118:	74 23                	je     0x40f13d
40f11a:	eb 42                	jmp    0x40f15e
40f11c:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f11f:	8b 13                	mov    (%ebx),%edx
40f121:	e8 1e 51 ff ff       	call   0x404244
40f126:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f129:	8d 55 fc             	lea    -0x4(%ebp),%edx
40f12c:	e8 8b 8a ff ff       	call   0x407bbc
40f131:	8b 55 fc             	mov    -0x4(%ebp),%edx
40f134:	8b c3                	mov    %ebx,%eax
40f136:	e8 ad 56 ff ff       	call   0x4047e8
40f13b:	eb 26                	jmp    0x40f163
40f13d:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f140:	8b 13                	mov    (%ebx),%edx
40f142:	e8 fd 50 ff ff       	call   0x404244
40f147:	8b 45 f0             	mov    -0x10(%ebp),%eax
40f14a:	8d 55 f4             	lea    -0xc(%ebp),%edx
40f14d:	e8 2e 8a ff ff       	call   0x407b80
40f152:	8b 55 f4             	mov    -0xc(%ebp),%edx
40f155:	8b c3                	mov    %ebx,%eax
40f157:	e8 8c 56 ff ff       	call   0x4047e8
40f15c:	eb 05                	jmp    0x40f163
40f15e:	e8 c5 f4 ff ff       	call   0x40e628
40f163:	33 c0                	xor    %eax,%eax
40f165:	5a                   	pop    %edx
40f166:	59                   	pop    %ecx
40f167:	59                   	pop    %ecx
40f168:	64 89 10             	mov    %edx,%fs:(%eax)
40f16b:	68 85 f1 40 00       	push   $0x40f185
40f170:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f173:	ba 04 00 00 00       	mov    $0x4,%edx
40f178:	e8 63 4e ff ff       	call   0x403fe0
40f17d:	c3                   	ret
40f17e:	e9 3d 48 ff ff       	jmp    0x4039c0
40f183:	eb eb                	jmp    0x40f170
40f185:	5e                   	pop    %esi
40f186:	5b                   	pop    %ebx
40f187:	8b e5                	mov    %ebp,%esp
40f189:	5d                   	pop    %ebp
40f18a:	c3                   	ret
40f18b:	90                   	nop
40f18c:	55                   	push   %ebp
40f18d:	8b ec                	mov    %esp,%ebp
40f18f:	83 c4 e8             	add    $0xffffffe8,%esp
40f192:	53                   	push   %ebx
40f193:	56                   	push   %esi
40f194:	33 c9                	xor    %ecx,%ecx
40f196:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40f199:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40f19c:	8b f2                	mov    %edx,%esi
40f19e:	8b d8                	mov    %eax,%ebx
40f1a0:	33 c0                	xor    %eax,%eax
40f1a2:	55                   	push   %ebp
40f1a3:	68 4b f2 40 00       	push   $0x40f24b
40f1a8:	64 ff 30             	push   %fs:(%eax)
40f1ab:	64 89 20             	mov    %esp,%fs:(%eax)
40f1ae:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f1b1:	50                   	push   %eax
40f1b2:	e8 ad e5 ff ff       	call   0x40d764
40f1b7:	33 c0                	xor    %eax,%eax
40f1b9:	55                   	push   %ebp
40f1ba:	68 29 f2 40 00       	push   $0x40f229
40f1bf:	64 ff 30             	push   %fs:(%eax)
40f1c2:	64 89 20             	mov    %esp,%fs:(%eax)
40f1c5:	6a 08                	push   $0x8
40f1c7:	6a 00                	push   $0x0
40f1c9:	68 00 04 00 00       	push   $0x400
40f1ce:	53                   	push   %ebx
40f1cf:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f1d2:	50                   	push   %eax
40f1d3:	a1 94 7f 46 00       	mov    0x467f94,%eax
40f1d8:	8b 00                	mov    (%eax),%eax
40f1da:	ff d0                	call   *%eax
40f1dc:	66 8b 13             	mov    (%ebx),%dx
40f1df:	66 b9 00 01          	mov    $0x100,%cx
40f1e3:	e8 e4 f7 ff ff       	call   0x40e9cc
40f1e8:	8d 45 ec             	lea    -0x14(%ebp),%eax
40f1eb:	50                   	push   %eax
40f1ec:	8d 45 e8             	lea    -0x18(%ebp),%eax
40f1ef:	8b 55 f8             	mov    -0x8(%ebp),%edx
40f1f2:	e8 b5 55 ff ff       	call   0x4047ac
40f1f7:	8b 45 e8             	mov    -0x18(%ebp),%eax
40f1fa:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
40f1ff:	ba 01 00 00 00       	mov    $0x1,%edx
40f204:	e8 8f 56 ff ff       	call   0x404898
40f209:	8b 55 ec             	mov    -0x14(%ebp),%edx
40f20c:	8b c6                	mov    %esi,%eax
40f20e:	e8 31 50 ff ff       	call   0x404244
40f213:	33 c0                	xor    %eax,%eax
40f215:	5a                   	pop    %edx
40f216:	59                   	pop    %ecx
40f217:	59                   	pop    %ecx
40f218:	64 89 10             	mov    %edx,%fs:(%eax)
40f21b:	68 30 f2 40 00       	push   $0x40f230
40f220:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f223:	e8 c4 fa ff ff       	call   0x40ecec
40f228:	c3                   	ret
40f229:	e9 92 47 ff ff       	jmp    0x4039c0
40f22e:	eb f0                	jmp    0x40f220
40f230:	33 c0                	xor    %eax,%eax
40f232:	5a                   	pop    %edx
40f233:	59                   	pop    %ecx
40f234:	59                   	pop    %ecx
40f235:	64 89 10             	mov    %edx,%fs:(%eax)
40f238:	68 52 f2 40 00       	push   $0x40f252
40f23d:	8d 45 e8             	lea    -0x18(%ebp),%eax
40f240:	ba 02 00 00 00       	mov    $0x2,%edx
40f245:	e8 6a 54 ff ff       	call   0x4046b4
40f24a:	c3                   	ret
40f24b:	e9 70 47 ff ff       	jmp    0x4039c0
40f250:	eb eb                	jmp    0x40f23d
40f252:	5e                   	pop    %esi
40f253:	5b                   	pop    %ebx
40f254:	8b e5                	mov    %ebp,%esp
40f256:	5d                   	pop    %ebp
40f257:	c3                   	ret
40f258:	55                   	push   %ebp
40f259:	8b ec                	mov    %esp,%ebp
40f25b:	83 c4 f0             	add    $0xfffffff0,%esp
40f25e:	53                   	push   %ebx
40f25f:	56                   	push   %esi
40f260:	8b f2                	mov    %edx,%esi
40f262:	8b d8                	mov    %eax,%ebx
40f264:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f267:	50                   	push   %eax
40f268:	e8 f7 e4 ff ff       	call   0x40d764
40f26d:	33 c0                	xor    %eax,%eax
40f26f:	55                   	push   %ebp
40f270:	68 ae f2 40 00       	push   $0x40f2ae
40f275:	64 ff 30             	push   %fs:(%eax)
40f278:	64 89 20             	mov    %esp,%fs:(%eax)
40f27b:	8b d3                	mov    %ebx,%edx
40f27d:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f280:	e8 8f fd ff ff       	call   0x40f014
40f285:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f288:	ff 15 14 98 46 00    	call   *0x469814
40f28e:	8d 55 f0             	lea    -0x10(%ebp),%edx
40f291:	8b c6                	mov    %esi,%eax
40f293:	e8 a8 00 00 00       	call   0x40f340
40f298:	33 c0                	xor    %eax,%eax
40f29a:	5a                   	pop    %edx
40f29b:	59                   	pop    %ecx
40f29c:	59                   	pop    %ecx
40f29d:	64 89 10             	mov    %edx,%fs:(%eax)
40f2a0:	68 b5 f2 40 00       	push   $0x40f2b5
40f2a5:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f2a8:	e8 3f fa ff ff       	call   0x40ecec
40f2ad:	c3                   	ret
40f2ae:	e9 0d 47 ff ff       	jmp    0x4039c0
40f2b3:	eb f0                	jmp    0x40f2a5
40f2b5:	5e                   	pop    %esi
40f2b6:	5b                   	pop    %ebx