40efdd:	b2 01                	mov    $0x1,%dl
40efdf:	8b 4d 08             	mov    0x8(%ebp),%ecx
40efe2:	ff 84 81 00 ff ff ff 	incl   -0x100(%ecx,%eax,4)
40efe9:	8b 4d 08             	mov    0x8(%ebp),%ecx
40efec:	8b 8c c1 04 fd ff ff 	mov    -0x2fc(%ecx,%eax,8),%ecx
40eff3:	8b d9                	mov    %ecx,%ebx
40eff5:	8b 75 08             	mov    0x8(%ebp),%esi
40eff8:	03 9c c6 00 fd ff ff 	add    -0x300(%esi,%eax,8),%ebx
40efff:	8b 75 08             	mov    0x8(%ebp),%esi
40f002:	3b 9c 86 00 ff ff ff 	cmp    -0x100(%esi,%eax,4),%ebx
40f009:	7f 22                	jg     0x40f02d
40f00b:	85 c0                	test   %eax,%eax
40f00d:	75 04                	jne    0x40f013
40f00f:	33 d2                	xor    %edx,%edx
40f011:	eb 1a                	jmp    0x40f02d
40f013:	8b 55 08             	mov    0x8(%ebp),%edx
40f016:	8b 55 08             	mov    0x8(%ebp),%edx
40f019:	89 8c 82 00 ff ff ff 	mov    %ecx,-0x100(%edx,%eax,4)
40f020:	8b 55 08             	mov    0x8(%ebp),%edx
40f023:	52                   	push   %edx
40f024:	48                   	dec    %eax
40f025:	e8 ae ff ff ff       	call   0x40efd8
40f02a:	59                   	pop    %ecx
40f02b:	8b d0                	mov    %eax,%edx
40f02d:	8b c2                	mov    %edx,%eax
40f02f:	5e                   	pop    %esi
40f030:	5b                   	pop    %ebx
40f031:	5d                   	pop    %ebp
40f032:	c3                   	ret
40f033:	90                   	nop
40f034:	55                   	push   %ebp
40f035:	8b ec                	mov    %esp,%ebp
40f037:	81 c4 dc fc ff ff    	add    $0xfffffcdc,%esp
40f03d:	53                   	push   %ebx
40f03e:	56                   	push   %esi
40f03f:	57                   	push   %edi
40f040:	89 8d f8 fc ff ff    	mov    %ecx,-0x308(%ebp)
40f046:	8b da                	mov    %edx,%ebx
40f048:	89 85 fc fc ff ff    	mov    %eax,-0x304(%ebp)
40f04e:	f6 43 01 20          	testb  $0x20,0x1(%ebx)
40f052:	75 0a                	jne    0x40f05e
40f054:	b8 57 00 07 80       	mov    $0x80070057,%eax
40f059:	e8 02 fc ff ff       	call   0x40ec60
40f05e:	66 8b 03             	mov    (%ebx),%ax
40f061:	8b d0                	mov    %eax,%edx
40f063:	66 81 e2 ff 0f       	and    $0xfff,%dx
40f068:	66 83 fa 0c          	cmp    $0xc,%dx
40f06c:	0f 85 88 01 00 00    	jne    0x40f1fa
40f072:	f6 c4 40             	test   $0x40,%ah
40f075:	74 0d                	je     0x40f084
40f077:	8b 43 08             	mov    0x8(%ebx),%eax
40f07a:	8b 00                	mov    (%eax),%eax
40f07c:	89 85 e8 fc ff ff    	mov    %eax,-0x318(%ebp)
40f082:	eb 09                	jmp    0x40f08d
40f084:	8b 43 08             	mov    0x8(%ebx),%eax
40f087:	89 85 e8 fc ff ff    	mov    %eax,-0x318(%ebp)
40f08d:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40f093:	0f b7 00             	movzwl (%eax),%eax
40f096:	89 85 f0 fc ff ff    	mov    %eax,-0x310(%ebp)
40f09c:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40f0a2:	4b                   	dec    %ebx
40f0a3:	85 db                	test   %ebx,%ebx
40f0a5:	7c 6b                	jl     0x40f112
40f0a7:	43                   	inc    %ebx
40f0a8:	33 ff                	xor    %edi,%edi
40f0aa:	8d b5 00 fd ff ff    	lea    -0x300(%ebp),%esi
40f0b0:	8b c6                	mov    %esi,%eax
40f0b2:	89 85 dc fc ff ff    	mov    %eax,-0x324(%ebp)
40f0b8:	8b 85 dc fc ff ff    	mov    -0x324(%ebp),%eax
40f0be:	83 c0 04             	add    $0x4,%eax
40f0c1:	50                   	push   %eax
40f0c2:	8d 47 01             	lea    0x1(%edi),%eax
40f0c5:	50                   	push   %eax
40f0c6:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40f0cc:	50                   	push   %eax
40f0cd:	e8 92 ed ff ff       	call   0x40de64
40f0d2:	e8 89 fb ff ff       	call   0x40ec60
40f0d7:	8d 85 f4 fc ff ff    	lea    -0x30c(%ebp),%eax
40f0dd:	50                   	push   %eax
40f0de:	8d 47 01             	lea    0x1(%edi),%eax
40f0e1:	50                   	push   %eax
40f0e2:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40f0e8:	50                   	push   %eax
40f0e9:	e8 7e ed ff ff       	call   0x40de6c
40f0ee:	e8 6d fb ff ff       	call   0x40ec60
40f0f3:	8b 85 dc fc ff ff    	mov    -0x324(%ebp),%eax
40f0f9:	8b 95 f4 fc ff ff    	mov    -0x30c(%ebp),%edx
40f0ff:	2b 50 04             	sub    0x4(%eax),%edx
40f102:	42                   	inc    %edx
40f103:	8b 85 dc fc ff ff    	mov    -0x324(%ebp),%eax
40f109:	89 10                	mov    %edx,(%eax)
40f10b:	47                   	inc    %edi
40f10c:	83 c6 08             	add    $0x8,%esi
40f10f:	4b                   	dec    %ebx
40f110:	75 9e                	jne    0x40f0b0
40f112:	8d 85 00 fd ff ff    	lea    -0x300(%ebp),%eax
40f118:	50                   	push   %eax
40f119:	8b 85 f0 fc ff ff    	mov    -0x310(%ebp),%eax
40f11f:	50                   	push   %eax
40f120:	6a 0c                	push   $0xc
40f122:	e8 35 ed ff ff       	call   0x40de5c
40f127:	89 85 ec fc ff ff    	mov    %eax,-0x314(%ebp)
40f12d:	83 bd ec fc ff ff 00 	cmpl   $0x0,-0x314(%ebp)
40f134:	75 05                	jne    0x40f13b
40f136:	e8 7d f8 ff ff       	call   0x40e9b8
40f13b:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40f141:	e8 46 fe ff ff       	call   0x40ef8c
40f146:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40f14c:	66 c7 00 0c 20       	movw   $0x200c,(%eax)
40f151:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40f157:	8b 95 ec fc ff ff    	mov    -0x314(%ebp),%edx
40f15d:	89 50 08             	mov    %edx,0x8(%eax)
40f160:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40f166:	4b                   	dec    %ebx
40f167:	85 db                	test   %ebx,%ebx
40f169:	7c 1a                	jl     0x40f185
40f16b:	43                   	inc    %ebx
40f16c:	8d 85 04 fd ff ff    	lea    -0x2fc(%ebp),%eax
40f172:	8d 95 00 ff ff ff    	lea    -0x100(%ebp),%edx
40f178:	8b 08                	mov    (%eax),%ecx
40f17a:	89 0a                	mov    %ecx,(%edx)
40f17c:	83 c2 04             	add    $0x4,%edx
40f17f:	83 c0 08             	add    $0x8,%eax
40f182:	4b                   	dec    %ebx
40f183:	75 f3                	jne    0x40f178
40f185:	55                   	push   %ebp
40f186:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40f18c:	4b                   	dec    %ebx
40f18d:	8b c3                	mov    %ebx,%eax
40f18f:	e8 14 fe ff ff       	call   0x40efa8
40f194:	59                   	pop    %ecx
40f195:	84 c0                	test   %al,%al
40f197:	74 52                	je     0x40f1eb
40f199:	8d 85 e4 fc ff ff    	lea    -0x31c(%ebp),%eax
40f19f:	50                   	push   %eax
40f1a0:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40f1a6:	50                   	push   %eax
40f1a7:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40f1ad:	50                   	push   %eax
40f1ae:	e8 c1 ec ff ff       	call   0x40de74
40f1b3:	e8 a8 fa ff ff       	call   0x40ec60
40f1b8:	8d 85 e0 fc ff ff    	lea    -0x320(%ebp),%eax
40f1be:	50                   	push   %eax
40f1bf:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40f1c5:	50                   	push   %eax
40f1c6:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40f1cc:	50                   	push   %eax
40f1cd:	e8 a2 ec ff ff       	call   0x40de74
40f1d2:	e8 89 fa ff ff       	call   0x40ec60
40f1d7:	8b 85 e4 fc ff ff    	mov    -0x31c(%ebp),%eax
40f1dd:	8b d0                	mov    %eax,%edx
40f1df:	8b 85 e0 fc ff ff    	mov    -0x320(%ebp),%eax
40f1e5:	ff 95 f8 fc ff ff    	call   *-0x308(%ebp)
40f1eb:	55                   	push   %ebp
40f1ec:	8b c3                	mov    %ebx,%eax
40f1ee:	e8 e5 fd ff ff       	call   0x40efd8
40f1f3:	59                   	pop    %ecx
40f1f4:	84 c0                	test   %al,%al
40f1f6:	75 8d                	jne    0x40f185
40f1f8:	eb 12                	jmp    0x40f20c
40f1fa:	53                   	push   %ebx
40f1fb:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40f201:	50                   	push   %eax
40f202:	e8 01 e8 ff ff       	call   0x40da08
40f207:	e8 54 fa ff ff       	call   0x40ec60
40f20c:	5f                   	pop    %edi
40f20d:	5e                   	pop    %esi
40f20e:	5b                   	pop    %ebx
40f20f:	8b e5                	mov    %ebp,%esp
40f211:	5d                   	pop    %ebp
40f212:	c3                   	ret
40f213:	90                   	nop
40f214:	e8 af 00 00 00       	call   0x40f2c8
40f219:	c3                   	ret
40f21a:	8b c0                	mov    %eax,%eax
40f21c:	53                   	push   %ebx
40f21d:	56                   	push   %esi
40f21e:	57                   	push   %edi
40f21f:	51                   	push   %ecx
40f220:	8b f2                	mov    %edx,%esi
40f222:	8b d8                	mov    %eax,%ebx
40f224:	66 f7 03 e8 bf       	testw  $0xbfe8,(%ebx)
40f229:	74 07                	je     0x40f232
40f22b:	8b c3                	mov    %ebx,%eax
40f22d:	e8 de fc ff ff       	call   0x40ef10
40f232:	66 8b 3e             	mov    (%esi),%di
40f235:	66 83 ff 14          	cmp    $0x14,%di
40f239:	73 0e                	jae    0x40f249
40f23b:	56                   	push   %esi
40f23c:	53                   	push   %ebx
40f23d:	e8 c6 e7 ff ff       	call   0x40da08
40f242:	e8 19 fa ff ff       	call   0x40ec60
40f247:	eb 79                	jmp    0x40f2c2
40f249:	66 81 ff 00 01       	cmp    $0x100,%di
40f24e:	75 17                	jne    0x40f267
40f250:	66 c7 03 00 01       	movw   $0x100,(%ebx)
40f255:	33 c0                	xor    %eax,%eax
40f257:	89 43 08             	mov    %eax,0x8(%ebx)
40f25a:	8d 43 08             	lea    0x8(%ebx),%eax
40f25d:	8b 56 08             	mov    0x8(%esi),%edx
40f260:	e8 5f 53 ff ff       	call   0x4045c4
40f265:	eb 5b                	jmp    0x40f2c2
40f267:	66 81 ff 01 01       	cmp    $0x101,%di
40f26c:	75 13                	jne    0x40f281
40f26e:	66 89 3b             	mov    %di,(%ebx)
40f271:	8b 46 08             	mov    0x8(%esi),%eax
40f274:	89 43 08             	mov    %eax,0x8(%ebx)
40f277:	8b c3                	mov    %ebx,%eax
40f279:	ff 15 1c 18 46 00    	call   *0x46181c
40f27f:	eb 41                	jmp    0x40f2c2
40f281:	66 f7 c7 00 20       	test   $0x2000,%di
40f286:	74 10                	je     0x40f298
40f288:	b9 14 f2 40 00       	mov    $0x40f214,%ecx
40f28d:	8b d6                	mov    %esi,%edx
40f28f:	8b c3                	mov    %ebx,%eax
40f291:	e8 9e fd ff ff       	call   0x40f034
40f296:	eb 2a                	jmp    0x40f2c2
40f298:	8b d4                	mov    %esp,%edx
40f29a:	8b c7                	mov    %edi,%eax
40f29c:	e8 d7 16 00 00       	call   0x410978
40f2a1:	84 c0                	test   %al,%al
40f2a3:	74 11                	je     0x40f2b6
40f2a5:	6a 00                	push   $0x0
40f2a7:	8b ce                	mov    %esi,%ecx
40f2a9:	8b d3                	mov    %ebx,%edx
40f2ab:	8b 44 24 04          	mov    0x4(%esp),%eax
40f2af:	8b 18                	mov    (%eax),%ebx
40f2b1:	ff 53 28             	call   *0x28(%ebx)
40f2b4:	eb 0c                	jmp    0x40f2c2
40f2b6:	56                   	push   %esi
40f2b7:	53                   	push   %ebx
40f2b8:	e8 4b e7 ff ff       	call   0x40da08
40f2bd:	e8 9e f9 ff ff       	call   0x40ec60
40f2c2:	5a                   	pop    %edx
40f2c3:	5f                   	pop    %edi
40f2c4:	5e                   	pop    %esi
40f2c5:	5b                   	pop    %ebx
40f2c6:	c3                   	ret
40f2c7:	90                   	nop
40f2c8:	53                   	push   %ebx
40f2c9:	56                   	push   %esi
40f2ca:	8b da                	mov    %edx,%ebx
40f2cc:	8b f0                	mov    %eax,%esi
40f2ce:	3b f3                	cmp    %ebx,%esi
40f2d0:	74 36                	je     0x40f308
40f2d2:	66 f7 03 e8 bf       	testw  $0xbfe8,(%ebx)
40f2d7:	75 26                	jne    0x40f2ff
40f2d9:	66 f7 06 e8 bf       	testw  $0xbfe8,(%esi)
40f2de:	74 07                	je     0x40f2e7
40f2e0:	8b c6                	mov    %esi,%eax
40f2e2:	e8 29 fc ff ff       	call   0x40ef10
40f2e7:	8b 03                	mov    (%ebx),%eax
40f2e9:	89 06                	mov    %eax,(%esi)
40f2eb:	8b 43 04             	mov    0x4(%ebx),%eax
40f2ee:	89 46 04             	mov    %eax,0x4(%esi)
40f2f1:	8b 43 08             	mov    0x8(%ebx),%eax
40f2f4:	89 46 08             	mov    %eax,0x8(%esi)
40f2f7:	8b 43 0c             	mov    0xc(%ebx),%eax
40f2fa:	89 46 0c             	mov    %eax,0xc(%esi)
40f2fd:	eb 09                	jmp    0x40f308
40f2ff:	8b d3                	mov    %ebx,%edx
40f301:	8b c6                	mov    %esi,%eax
40f303:	e8 14 ff ff ff       	call   0x40f21c
40f308:	5e                   	pop    %esi
40f309:	5b                   	pop    %ebx
40f30a:	c3                   	ret
40f30b:	90                   	nop
40f30c:	55                   	push   %ebp
40f30d:	8b ec                	mov    %esp,%ebp
40f30f:	53                   	push   %ebx
40f310:	8b d8                	mov    %eax,%ebx
40f312:	8b c3                	mov    %ebx,%eax
40f314:	e8 37 59 ff ff       	call   0x404c50
40f319:	50                   	push   %eax
40f31a:	6a 00                	push   $0x0
40f31c:	68 00 04 00 00       	push   $0x400
40f321:	ff 75 0c             	push   0xc(%ebp)
40f324:	ff 75 08             	push   0x8(%ebp)
40f327:	a1 18 0a 46 00       	mov    0x460a18,%eax
40f32c:	8b 00                	mov    (%eax),%eax
40f32e:	ff d0                	call   *%eax
40f330:	66 b9 08 00          	mov    $0x8,%cx
40f334:	66 ba 06 00          	mov    $0x6,%dx
40f338:	e8 2f f9 ff ff       	call   0x40ec6c
40f33d:	5b                   	pop    %ebx
40f33e:	5d                   	pop    %ebp
40f33f:	c2 08 00             	ret    $0x8
40f342:	8b c0                	mov    %eax,%eax
40f344:	55                   	push   %ebp
40f345:	8b ec                	mov    %esp,%ebp
40f347:	53                   	push   %ebx
40f348:	8b d8                	mov    %eax,%ebx
40f34a:	8b c3                	mov    %ebx,%eax
40f34c:	e8 ff 58 ff ff       	call   0x404c50
40f351:	50                   	push   %eax
40f352:	6a 00                	push   $0x0
40f354:	68 00 04 00 00       	push   $0x400
40f359:	ff 75 0c             	push   0xc(%ebp)
40f35c:	ff 75 08             	push   0x8(%ebp)
40f35f:	a1 84 0b 46 00       	mov    0x460b84,%eax
40f364:	8b 00                	mov    (%eax),%eax
40f366:	ff d0                	call   *%eax
40f368:	66 b9 08 00          	mov    $0x8,%cx
40f36c:	66 ba 07 00          	mov    $0x7,%dx
40f370:	e8 f7 f8 ff ff       	call   0x40ec6c
40f375:	5b                   	pop    %ebx
40f376:	5d                   	pop    %ebp
40f377:	c2 08 00             	ret    $0x8
40f37a:	8b c0                	mov    %eax,%eax
40f37c:	55                   	push   %ebp
40f37d:	8b ec                	mov    %esp,%ebp
40f37f:	33 c9                	xor    %ecx,%ecx
40f381:	51                   	push   %ecx
40f382:	51                   	push   %ecx
40f383:	51                   	push   %ecx
40f384:	51                   	push   %ecx
40f385:	53                   	push   %ebx
40f386:	56                   	push   %esi
40f387:	8b da                	mov    %edx,%ebx
40f389:	8b f0                	mov    %eax,%esi
40f38b:	33 c0                	xor    %eax,%eax
40f38d:	55                   	push   %ebp
40f38e:	68 32 f4 40 00       	push   $0x40f432
40f393:	64 ff 30             	push   %fs:(%eax)
40f396:	64 89 20             	mov    %esp,%fs:(%eax)
40f399:	8b c3                	mov    %ebx,%eax
40f39b:	e8 b0 58 ff ff       	call   0x404c50
40f3a0:	50                   	push   %eax
40f3a1:	6a 00                	push   $0x0
40f3a3:	68 00 04 00 00       	push   $0x400
40f3a8:	56                   	push   %esi
40f3a9:	a1 6c 0c 46 00       	mov    0x460c6c,%eax
40f3ae:	8b 00                	mov    (%eax),%eax
40f3b0:	ff d0                	call   *%eax
40f3b2:	66 b9 08 00          	mov    $0x8,%cx
40f3b6:	66 ba 0b 00          	mov    $0xb,%dx
40f3ba:	e8 ad f8 ff ff       	call   0x40ec6c
40f3bf:	a0 50 53 45 00       	mov    0x455350,%al
40f3c4:	2c 01                	sub    $0x1,%al
40f3c6:	72 4f                	jb     0x40f417
40f3c8:	74 06                	je     0x40f3d0
40f3ca:	fe c8                	dec    %al
40f3cc:	74 23                	je     0x40f3f1
40f3ce:	eb 42                	jmp    0x40f412
40f3d0:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f3d3:	8b 13                	mov    (%ebx),%edx
40f3d5:	e8 1e 54 ff ff       	call   0x4047f8
40f3da:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f3dd:	8d 55 fc             	lea    -0x4(%ebp),%edx
40f3e0:	e8 97 8d ff ff       	call   0x40817c