40f09d:	33 f6                	xor    %esi,%esi
40f09f:	80 7d ab 00          	cmpb   $0x0,-0x55(%ebp)
40f0a3:	89 75 ac             	mov    %esi,-0x54(%ebp)
40f0a6:	0f 85 91 00 00 00    	jne    0x40f13d
40f0ac:	39 b5 28 05 00 00    	cmp    %esi,0x528(%ebp)
40f0b2:	89 45 b0             	mov    %eax,-0x50(%ebp)
40f0b5:	0f 86 65 02 00 00    	jbe    0x40f320
40f0bb:	8b 4d b0             	mov    -0x50(%ebp),%ecx
40f0be:	83 65 a4 00          	andl   $0x0,-0x5c(%ebp)
40f0c2:	2b 4d 9c             	sub    -0x64(%ebp),%ecx
40f0c5:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40f0c8:	3b 8d 28 05 00 00    	cmp    0x528(%ebp),%ecx
40f0ce:	73 27                	jae    0x40f0f7
40f0d0:	8b 55 b0             	mov    -0x50(%ebp),%edx
40f0d3:	ff 45 b0             	incl   -0x50(%ebp)
40f0d6:	8a 12                	mov    (%edx),%dl
40f0d8:	41                   	inc    %ecx
40f0d9:	80 fa 0a             	cmp    $0xa,%dl
40f0dc:	75 0a                	jne    0x40f0e8
40f0de:	ff 45 98             	incl   -0x68(%ebp)
40f0e1:	c6 00 0d             	movb   $0xd,(%eax)
40f0e4:	40                   	inc    %eax
40f0e5:	ff 45 a4             	incl   -0x5c(%ebp)
40f0e8:	88 10                	mov    %dl,(%eax)
40f0ea:	40                   	inc    %eax
40f0eb:	ff 45 a4             	incl   -0x5c(%ebp)
40f0ee:	81 7d a4 00 04 00 00 	cmpl   $0x400,-0x5c(%ebp)
40f0f5:	72 d1                	jb     0x40f0c8
40f0f7:	8b f0                	mov    %eax,%esi
40f0f9:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40f0fc:	2b f0                	sub    %eax,%esi
40f0fe:	6a 00                	push   $0x0
40f100:	8d 45 94             	lea    -0x6c(%ebp),%eax
40f103:	50                   	push   %eax
40f104:	56                   	push   %esi
40f105:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40f108:	50                   	push   %eax
40f109:	8b 07                	mov    (%edi),%eax
40f10b:	ff 34 03             	push   (%ebx,%eax,1)
40f10e:	ff 15 28 70 41 00    	call   *0x417028
40f114:	85 c0                	test   %eax,%eax
40f116:	0f 84 ca 01 00 00    	je     0x40f2e6
40f11c:	8b 45 94             	mov    -0x6c(%ebp),%eax
40f11f:	01 45 a0             	add    %eax,-0x60(%ebp)
40f122:	3b c6                	cmp    %esi,%eax
40f124:	0f 8c c5 01 00 00    	jl     0x40f2ef
40f12a:	8b 45 b0             	mov    -0x50(%ebp),%eax
40f12d:	2b 45 9c             	sub    -0x64(%ebp),%eax
40f130:	3b 85 28 05 00 00    	cmp    0x528(%ebp),%eax
40f136:	72 83                	jb     0x40f0bb
40f138:	e9 b2 01 00 00       	jmp    0x40f2ef
40f13d:	80 7d ab 02          	cmpb   $0x2,-0x55(%ebp)
40f141:	0f 85 9d 00 00 00    	jne    0x40f1e4
40f147:	39 b5 28 05 00 00    	cmp    %esi,0x528(%ebp)
40f14d:	89 45 b0             	mov    %eax,-0x50(%ebp)
40f150:	0f 86 ca 01 00 00    	jbe    0x40f320
40f156:	8b 4d b0             	mov    -0x50(%ebp),%ecx
40f159:	33 f6                	xor    %esi,%esi
40f15b:	2b 4d 9c             	sub    -0x64(%ebp),%ecx
40f15e:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40f161:	3b 8d 28 05 00 00    	cmp    0x528(%ebp),%ecx
40f167:	73 31                	jae    0x40f19a
40f169:	8b 55 b0             	mov    -0x50(%ebp),%edx
40f16c:	83 45 b0 02          	addl   $0x2,-0x50(%ebp)
40f170:	0f b7 12             	movzwl (%edx),%edx
40f173:	41                   	inc    %ecx
40f174:	41                   	inc    %ecx
40f175:	66 83 fa 0a          	cmp    $0xa,%dx
40f179:	75 0d                	jne    0x40f188
40f17b:	83 45 98 02          	addl   $0x2,-0x68(%ebp)
40f17f:	66 c7 00 0d 00       	movw   $0xd,(%eax)
40f184:	40                   	inc    %eax
40f185:	40                   	inc    %eax
40f186:	46                   	inc    %esi
40f187:	46                   	inc    %esi
40f188:	8b 7d 90             	mov    -0x70(%ebp),%edi
40f18b:	66 89 10             	mov    %dx,(%eax)
40f18e:	40                   	inc    %eax
40f18f:	40                   	inc    %eax
40f190:	46                   	inc    %esi
40f191:	46                   	inc    %esi
40f192:	81 fe ff 03 00 00    	cmp    $0x3ff,%esi
40f198:	72 c7                	jb     0x40f161
40f19a:	8b f0                	mov    %eax,%esi
40f19c:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40f19f:	2b f0                	sub    %eax,%esi
40f1a1:	6a 00                	push   $0x0
40f1a3:	8d 45 94             	lea    -0x6c(%ebp),%eax
40f1a6:	50                   	push   %eax
40f1a7:	56                   	push   %esi
40f1a8:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40f1ab:	50                   	push   %eax
40f1ac:	8b 07                	mov    (%edi),%eax
40f1ae:	ff 34 03             	push   (%ebx,%eax,1)
40f1b1:	ff 15 28 70 41 00    	call   *0x417028
40f1b7:	85 c0                	test   %eax,%eax
40f1b9:	0f 84 27 01 00 00    	je     0x40f2e6
40f1bf:	8b 45 94             	mov    -0x6c(%ebp),%eax
40f1c2:	01 45 a0             	add    %eax,-0x60(%ebp)
40f1c5:	3b c6                	cmp    %esi,%eax
40f1c7:	0f 8c 22 01 00 00    	jl     0x40f2ef
40f1cd:	8b 45 b0             	mov    -0x50(%ebp),%eax
40f1d0:	2b 45 9c             	sub    -0x64(%ebp),%eax
40f1d3:	3b 85 28 05 00 00    	cmp    0x528(%ebp),%eax
40f1d9:	0f 82 77 ff ff ff    	jb     0x40f156
40f1df:	e9 0b 01 00 00       	jmp    0x40f2ef
40f1e4:	39 b5 28 05 00 00    	cmp    %esi,0x528(%ebp)
40f1ea:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40f1ed:	0f 86 2d 01 00 00    	jbe    0x40f320
40f1f3:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
40f1f6:	83 65 b0 00          	andl   $0x0,-0x50(%ebp)
40f1fa:	2b 4d 9c             	sub    -0x64(%ebp),%ecx
40f1fd:	6a 02                	push   $0x2
40f1ff:	8d 85 b8 03 00 00    	lea    0x3b8(%ebp),%eax
40f205:	5e                   	pop    %esi
40f206:	3b 8d 28 05 00 00    	cmp    0x528(%ebp),%ecx
40f20c:	73 2c                	jae    0x40f23a
40f20e:	8b 55 a4             	mov    -0x5c(%ebp),%edx
40f211:	0f b7 12             	movzwl (%edx),%edx
40f214:	01 75 a4             	add    %esi,-0x5c(%ebp)
40f217:	03 ce                	add    %esi,%ecx
40f219:	66 83 fa 0a          	cmp    $0xa,%dx
40f21d:	75 0a                	jne    0x40f229
40f21f:	66 c7 00 0d 00       	movw   $0xd,(%eax)
40f224:	03 c6                	add    %esi,%eax
40f226:	01 75 b0             	add    %esi,-0x50(%ebp)
40f229:	01 75 b0             	add    %esi,-0x50(%ebp)
40f22c:	66 89 10             	mov    %dx,(%eax)
40f22f:	03 c6                	add    %esi,%eax
40f231:	81 7d b0 52 01 00 00 	cmpl   $0x152,-0x50(%ebp)
40f238:	72 cc                	jb     0x40f206
40f23a:	33 f6                	xor    %esi,%esi
40f23c:	56                   	push   %esi
40f23d:	56                   	push   %esi
40f23e:	68 ab 02 00 00       	push   $0x2ab
40f243:	8d 8d 08 01 00 00    	lea    0x108(%ebp),%ecx
40f249:	51                   	push   %ecx
40f24a:	8d 8d b8 03 00 00    	lea    0x3b8(%ebp),%ecx
40f250:	2b c1                	sub    %ecx,%eax
40f252:	99                   	cltd
40f253:	2b c2                	sub    %edx,%eax
40f255:	d1 f8                	sar    $1,%eax
40f257:	50                   	push   %eax
40f258:	8b c1                	mov    %ecx,%eax
40f25a:	50                   	push   %eax
40f25b:	56                   	push   %esi
40f25c:	68 e9 fd 00 00       	push   $0xfde9
40f261:	ff 15 90 70 41 00    	call   *0x417090
40f267:	8b f8                	mov    %eax,%edi
40f269:	3b fe                	cmp    %esi,%edi
40f26b:	74 79                	je     0x40f2e6
40f26d:	6a 00                	push   $0x0
40f26f:	8d 45 94             	lea    -0x6c(%ebp),%eax
40f272:	50                   	push   %eax
40f273:	8b c7                	mov    %edi,%eax
40f275:	2b c6                	sub    %esi,%eax
40f277:	50                   	push   %eax
40f278:	8d 84 35 08 01 00 00 	lea    0x108(%ebp,%esi,1),%eax
40f27f:	50                   	push   %eax
40f280:	8b 45 90             	mov    -0x70(%ebp),%eax
40f283:	8b 00                	mov    (%eax),%eax
40f285:	ff 34 03             	push   (%ebx,%eax,1)
40f288:	ff 15 28 70 41 00    	call   *0x417028
40f28e:	85 c0                	test   %eax,%eax
40f290:	74 09                	je     0x40f29b
40f292:	03 75 94             	add    -0x6c(%ebp),%esi
40f295:	3b fe                	cmp    %esi,%edi
40f297:	7f d4                	jg     0x40f26d
40f299:	eb 09                	jmp    0x40f2a4
40f29b:	ff 15 b0 70 41 00    	call   *0x4170b0
40f2a1:	89 45 ac             	mov    %eax,-0x54(%ebp)
40f2a4:	3b fe                	cmp    %esi,%edi
40f2a6:	7f 47                	jg     0x40f2ef
40f2a8:	8b 45 a4             	mov    -0x5c(%ebp),%eax
40f2ab:	2b 45 9c             	sub    -0x64(%ebp),%eax
40f2ae:	3b 85 28 05 00 00    	cmp    0x528(%ebp),%eax
40f2b4:	89 45 a0             	mov    %eax,-0x60(%ebp)
40f2b7:	0f 82 36 ff ff ff    	jb     0x40f1f3
40f2bd:	eb 30                	jmp    0x40f2ef
40f2bf:	6a 00                	push   $0x0
40f2c1:	8d 4d 94             	lea    -0x6c(%ebp),%ecx
40f2c4:	51                   	push   %ecx
40f2c5:	ff b5 28 05 00 00    	push   0x528(%ebp)
40f2cb:	ff 75 9c             	push   -0x64(%ebp)
40f2ce:	ff 30                	push   (%eax)
40f2d0:	ff 15 28 70 41 00    	call   *0x417028
40f2d6:	85 c0                	test   %eax,%eax
40f2d8:	74 0c                	je     0x40f2e6
40f2da:	8b 45 94             	mov    -0x6c(%ebp),%eax
40f2dd:	83 65 ac 00          	andl   $0x0,-0x54(%ebp)
40f2e1:	89 45 a0             	mov    %eax,-0x60(%ebp)
40f2e4:	eb 09                	jmp    0x40f2ef
40f2e6:	ff 15 b0 70 41 00    	call   *0x4170b0
40f2ec:	89 45 ac             	mov    %eax,-0x54(%ebp)
40f2ef:	8b 45 a0             	mov    -0x60(%ebp),%eax
40f2f2:	85 c0                	test   %eax,%eax
40f2f4:	75 56                	jne    0x40f34c
40f2f6:	8b 7d 90             	mov    -0x70(%ebp),%edi
40f2f9:	33 f6                	xor    %esi,%esi
40f2fb:	39 75 ac             	cmp    %esi,-0x54(%ebp)
40f2fe:	74 20                	je     0x40f320
40f300:	6a 05                	push   $0x5
40f302:	5e                   	pop    %esi
40f303:	39 75 ac             	cmp    %esi,-0x54(%ebp)
40f306:	75 0d                	jne    0x40f315
40f308:	e8 ed a0 ff ff       	call   0x4093fa
40f30d:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40f313:	eb 2b                	jmp    0x40f340
40f315:	ff 75 ac             	push   -0x54(%ebp)
40f318:	e8 03 a1 ff ff       	call   0x409420
40f31d:	59                   	pop    %ecx
40f31e:	eb 27                	jmp    0x40f347
40f320:	8b 07                	mov    (%edi),%eax
40f322:	f6 44 03 04 40       	testb  $0x40,0x4(%ebx,%eax,1)
40f327:	74 0c                	je     0x40f335
40f329:	8b 45 9c             	mov    -0x64(%ebp),%eax
40f32c:	80 38 1a             	cmpb   $0x1a,(%eax)
40f32f:	75 04                	jne    0x40f335
40f331:	33 c0                	xor    %eax,%eax
40f333:	eb 1a                	jmp    0x40f34f
40f335:	e8 c0 a0 ff ff       	call   0x4093fa
40f33a:	c7 00 1c 00 00 00    	movl   $0x1c,(%eax)
40f340:	e8 c8 a0 ff ff       	call   0x40940d
40f345:	89 30                	mov    %esi,(%eax)
40f347:	83 c8 ff             	or     $0xffffffff,%eax
40f34a:	eb 03                	jmp    0x40f34f
40f34c:	2b 45 98             	sub    -0x68(%ebp),%eax
40f34f:	5f                   	pop    %edi
40f350:	5b                   	pop    %ebx
40f351:	8b 8d 14 05 00 00    	mov    0x514(%ebp),%ecx
40f357:	33 cd                	xor    %ebp,%ecx
40f359:	5e                   	pop    %esi
40f35a:	e8 d6 6b ff ff       	call   0x405f35
40f35f:	81 c5 18 05 00 00    	add    $0x518,%ebp
40f365:	c9                   	leave
40f366:	c3                   	ret
40f367:	6a 10                	push   $0x10
40f369:	68 f8 ac 41 00       	push   $0x41acf8
40f36e:	e8 d5 e2 ff ff       	call   0x40d648
40f373:	8b 45 08             	mov    0x8(%ebp),%eax
40f376:	83 f8 fe             	cmp    $0xfffffffe,%eax
40f379:	75 1b                	jne    0x40f396
40f37b:	e8 8d a0 ff ff       	call   0x40940d
40f380:	83 20 00             	andl   $0x0,(%eax)
40f383:	e8 72 a0 ff ff       	call   0x4093fa
40f388:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40f38e:	83 c8 ff             	or     $0xffffffff,%eax
40f391:	e9 9d 00 00 00       	jmp    0x40f433
40f396:	33 ff                	xor    %edi,%edi
40f398:	3b c7                	cmp    %edi,%eax
40f39a:	7c 08                	jl     0x40f3a4
40f39c:	3b 05 b4 e4 41 00    	cmp    0x41e4b4,%eax
40f3a2:	72 21                	jb     0x40f3c5
40f3a4:	e8 64 a0 ff ff       	call   0x40940d
40f3a9:	89 38                	mov    %edi,(%eax)
40f3ab:	e8 4a a0 ff ff       	call   0x4093fa
40f3b0:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40f3b6:	57                   	push   %edi
40f3b7:	57                   	push   %edi
40f3b8:	57                   	push   %edi
40f3b9:	57                   	push   %edi
40f3ba:	57                   	push   %edi
40f3bb:	e8 90 82 ff ff       	call   0x407650
40f3c0:	83 c4 14             	add    $0x14,%esp
40f3c3:	eb c9                	jmp    0x40f38e
40f3c5:	8b c8                	mov    %eax,%ecx
40f3c7:	c1 f9 05             	sar    $0x5,%ecx
40f3ca:	8d 1c 8d c0 e4 41 00 	lea    0x41e4c0(,%ecx,4),%ebx
40f3d1:	8b f0                	mov    %eax,%esi
40f3d3:	83 e6 1f             	and    $0x1f,%esi
40f3d6:	6b f6 28             	imul   $0x28,%esi,%esi
40f3d9:	8b 0b                	mov    (%ebx),%ecx
40f3db:	0f b6 4c 31 04       	movzbl 0x4(%ecx,%esi,1),%ecx
40f3e0:	83 e1 01             	and    $0x1,%ecx
40f3e3:	74 bf                	je     0x40f3a4
40f3e5:	50                   	push   %eax
40f3e6:	e8 07 5a 00 00       	call   0x414df2
40f3eb:	59                   	pop    %ecx
40f3ec:	89 7d fc             	mov    %edi,-0x4(%ebp)
40f3ef:	8b 03                	mov    (%ebx),%eax
40f3f1:	f6 44 30 04 01       	testb  $0x1,0x4(%eax,%esi,1)
40f3f6:	74 16                	je     0x40f40e
40f3f8:	ff 75 10             	push   0x10(%ebp)
40f3fb:	ff 75 0c             	push   0xc(%ebp)
40f3fe:	ff 75 08             	push   0x8(%ebp)
40f401:	e8 9b f9 ff ff       	call   0x40eda1
40f406:	83 c4 0c             	add    $0xc,%esp
40f409:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40f40c:	eb 16                	jmp    0x40f424
40f40e:	e8 e7 9f ff ff       	call   0x4093fa
40f413:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40f419:	e8 ef 9f ff ff       	call   0x40940d
40f41e:	89 38                	mov    %edi,(%eax)
40f420:	83 4d e4 ff          	orl    $0xffffffff,-0x1c(%ebp)
40f424:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40f42b:	e8 09 00 00 00       	call   0x40f439
40f430:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40f433:	e8 55 e2 ff ff       	call   0x40d68d
40f438:	c3                   	ret
40f439:	ff 75 08             	push   0x8(%ebp)
40f43c:	e8 51 5a 00 00       	call   0x414e92
40f441:	59                   	pop    %ecx
40f442:	c3                   	ret
40f443:	6a 10                	push   $0x10
40f445:	68 18 ad 41 00       	push   $0x41ad18
40f44a:	e8 f9 e1 ff ff       	call   0x40d648
40f44f:	8b 45 08             	mov    0x8(%ebp),%eax
40f452:	83 f8 fe             	cmp    $0xfffffffe,%eax
40f455:	75 13                	jne    0x40f46a
40f457:	e8 9e 9f ff ff       	call   0x4093fa
40f45c:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40f462:	83 c8 ff             	or     $0xffffffff,%eax
40f465:	e9 aa 00 00 00       	jmp    0x40f514
40f46a:	33 db                	xor    %ebx,%ebx
40f46c:	3b c3                	cmp    %ebx,%eax
40f46e:	7c 08                	jl     0x40f478
40f470:	3b 05 b4 e4 41 00    	cmp    0x41e4b4,%eax
40f476:	72 1a                	jb     0x40f492
40f478:	e8 7d 9f ff ff       	call   0x4093fa
40f47d:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40f483:	53                   	push   %ebx
40f484:	53                   	push   %ebx
40f485:	53                   	push   %ebx
40f486:	53                   	push   %ebx
40f487:	53                   	push   %ebx
40f488:	e8 c3 81 ff ff       	call   0x407650
40f48d:	83 c4 14             	add    $0x14,%esp
40f490:	eb d0                	jmp    0x40f462
40f492:	8b c8                	mov    %eax,%ecx
40f494:	c1 f9 05             	sar    $0x5,%ecx
40f497:	8d 3c 8d c0 e4 41 00 	lea    0x41e4c0(,%ecx,4),%edi
40f49e:	8b f0                	mov    %eax,%esi
40f4a0:	83 e6 1f             	and    $0x1f,%esi
40f4a3:	6b f6 28             	imul   $0x28,%esi,%esi
40f4a6:	8b 0f                	mov    (%edi),%ecx
40f4a8:	0f b6 4c 0e 04       	movzbl 0x4(%esi,%ecx,1),%ecx
40f4ad:	83 e1 01             	and    $0x1,%ecx
40f4b0:	74 c6                	je     0x40f478
40f4b2:	50                   	push   %eax
40f4b3:	e8 3a 59 00 00       	call   0x414df2
40f4b8:	59                   	pop    %ecx
40f4b9:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40f4bc:	8b 07                	mov    (%edi),%eax
40f4be:	f6 44 06 04 01       	testb  $0x1,0x4(%esi,%eax,1)
40f4c3:	74 31                	je     0x40f4f6
40f4c5:	ff 75 08             	push   0x8(%ebp)
40f4c8:	e8 b4 58 00 00       	call   0x414d81
40f4cd:	59                   	pop    %ecx
40f4ce:	50                   	push   %eax
40f4cf:	ff 15 54 71 41 00    	call   *0x417154