4021f8:	75 2e                	jne    0x402228
4021fa:	ff d6                	call   *%esi
4021fc:	8b f8                	mov    %eax,%edi
4021fe:	3b fb                	cmp    %ebx,%edi
402200:	74 0c                	je     0x40220e
402202:	c7 05 10 0e 43 00 01 	movl   $0x1,0x430e10
402209:	00 00 00
40220c:	eb 23                	jmp    0x402231
40220e:	ff 15 58 d0 41 00    	call   *0x41d058
402214:	83 f8 78             	cmp    $0x78,%eax
402217:	75 0a                	jne    0x402223
402219:	6a 02                	push   $0x2
40221b:	58                   	pop    %eax
40221c:	a3 10 0e 43 00       	mov    %eax,0x430e10
402221:	eb 05                	jmp    0x402228
402223:	a1 10 0e 43 00       	mov    0x430e10,%eax
402228:	83 f8 01             	cmp    $0x1,%eax
40222b:	0f 85 81 00 00 00    	jne    0x4022b2
402231:	3b fb                	cmp    %ebx,%edi
402233:	75 0f                	jne    0x402244
402235:	ff d6                	call   *%esi
402237:	8b f8                	mov    %eax,%edi
402239:	3b fb                	cmp    %ebx,%edi
40223b:	75 07                	jne    0x402244
40223d:	33 c0                	xor    %eax,%eax
40223f:	e9 ca 00 00 00       	jmp    0x40230e
402244:	8b c7                	mov    %edi,%eax
402246:	66 39 1f             	cmp    %bx,(%edi)
402249:	74 0e                	je     0x402259
40224b:	40                   	inc    %eax
40224c:	40                   	inc    %eax
40224d:	66 39 18             	cmp    %bx,(%eax)
402250:	75 f9                	jne    0x40224b
402252:	40                   	inc    %eax
402253:	40                   	inc    %eax
402254:	66 39 18             	cmp    %bx,(%eax)
402257:	75 f2                	jne    0x40224b
402259:	8b 35 98 d0 41 00    	mov    0x41d098,%esi
40225f:	53                   	push   %ebx
402260:	53                   	push   %ebx
402261:	53                   	push   %ebx
402262:	2b c7                	sub    %edi,%eax
402264:	53                   	push   %ebx
402265:	d1 f8                	sar    $1,%eax
402267:	40                   	inc    %eax
402268:	50                   	push   %eax
402269:	57                   	push   %edi
40226a:	53                   	push   %ebx
40226b:	53                   	push   %ebx
40226c:	89 45 f4             	mov    %eax,-0xc(%ebp)
40226f:	ff d6                	call   *%esi
402271:	89 45 f8             	mov    %eax,-0x8(%ebp)
402274:	3b c3                	cmp    %ebx,%eax
402276:	74 2f                	je     0x4022a7
402278:	50                   	push   %eax
402279:	e8 b3 2b 00 00       	call   0x404e31
40227e:	59                   	pop    %ecx
40227f:	89 45 fc             	mov    %eax,-0x4(%ebp)
402282:	3b c3                	cmp    %ebx,%eax
402284:	74 21                	je     0x4022a7
402286:	53                   	push   %ebx
402287:	53                   	push   %ebx
402288:	ff 75 f8             	push   -0x8(%ebp)
40228b:	50                   	push   %eax
40228c:	ff 75 f4             	push   -0xc(%ebp)
40228f:	57                   	push   %edi
402290:	53                   	push   %ebx
402291:	53                   	push   %ebx
402292:	ff d6                	call   *%esi
402294:	85 c0                	test   %eax,%eax
402296:	75 0c                	jne    0x4022a4
402298:	ff 75 fc             	push   -0x4(%ebp)
40229b:	e8 03 2b 00 00       	call   0x404da3
4022a0:	59                   	pop    %ecx
4022a1:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4022a4:	8b 5d fc             	mov    -0x4(%ebp),%ebx
4022a7:	57                   	push   %edi
4022a8:	ff 15 94 d0 41 00    	call   *0x41d094
4022ae:	8b c3                	mov    %ebx,%eax
4022b0:	eb 5c                	jmp    0x40230e
4022b2:	83 f8 02             	cmp    $0x2,%eax
4022b5:	74 04                	je     0x4022bb
4022b7:	3b c3                	cmp    %ebx,%eax
4022b9:	75 82                	jne    0x40223d
4022bb:	ff 15 90 d0 41 00    	call   *0x41d090
4022c1:	8b f0                	mov    %eax,%esi
4022c3:	3b f3                	cmp    %ebx,%esi
4022c5:	0f 84 72 ff ff ff    	je     0x40223d
4022cb:	38 1e                	cmp    %bl,(%esi)
4022cd:	74 0a                	je     0x4022d9
4022cf:	40                   	inc    %eax
4022d0:	38 18                	cmp    %bl,(%eax)
4022d2:	75 fb                	jne    0x4022cf
4022d4:	40                   	inc    %eax
4022d5:	38 18                	cmp    %bl,(%eax)
4022d7:	75 f6                	jne    0x4022cf
4022d9:	2b c6                	sub    %esi,%eax
4022db:	40                   	inc    %eax
4022dc:	50                   	push   %eax
4022dd:	89 45 f8             	mov    %eax,-0x8(%ebp)
4022e0:	e8 4c 2b 00 00       	call   0x404e31
4022e5:	8b f8                	mov    %eax,%edi
4022e7:	59                   	pop    %ecx
4022e8:	3b fb                	cmp    %ebx,%edi
4022ea:	75 0c                	jne    0x4022f8
4022ec:	56                   	push   %esi
4022ed:	ff 15 8c d0 41 00    	call   *0x41d08c
4022f3:	e9 45 ff ff ff       	jmp    0x40223d
4022f8:	ff 75 f8             	push   -0x8(%ebp)
4022fb:	56                   	push   %esi
4022fc:	57                   	push   %edi
4022fd:	e8 0e 2c 00 00       	call   0x404f10
402302:	83 c4 0c             	add    $0xc,%esp
402305:	56                   	push   %esi
402306:	ff 15 8c d0 41 00    	call   *0x41d08c
40230c:	8b c7                	mov    %edi,%eax
40230e:	5f                   	pop    %edi
40230f:	5e                   	pop    %esi
402310:	5b                   	pop    %ebx
402311:	c9                   	leave
402312:	c3                   	ret
402313:	6a 54                	push   $0x54
402315:	68 38 e6 41 00       	push   $0x41e638
40231a:	e8 61 08 00 00       	call   0x402b80
40231f:	33 ff                	xor    %edi,%edi
402321:	89 7d fc             	mov    %edi,-0x4(%ebp)
402324:	8d 45 9c             	lea    -0x64(%ebp),%eax
402327:	50                   	push   %eax
402328:	ff 15 64 d0 41 00    	call   *0x41d064
40232e:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
402335:	6a 40                	push   $0x40
402337:	6a 20                	push   $0x20
402339:	5e                   	pop    %esi
40233a:	56                   	push   %esi
40233b:	e8 36 2b 00 00       	call   0x404e76
402340:	59                   	pop    %ecx
402341:	59                   	pop    %ecx
402342:	3b c7                	cmp    %edi,%eax
402344:	0f 84 14 02 00 00    	je     0x40255e
40234a:	a3 a0 2d de 02       	mov    %eax,0x2de2da0
40234f:	89 35 9c 2d de 02    	mov    %esi,0x2de2d9c
402355:	8d 88 00 08 00 00    	lea    0x800(%eax),%ecx
40235b:	eb 30                	jmp    0x40238d
40235d:	c6 40 04 00          	movb   $0x0,0x4(%eax)
402361:	83 08 ff             	orl    $0xffffffff,(%eax)
402364:	c6 40 05 0a          	movb   $0xa,0x5(%eax)
402368:	89 78 08             	mov    %edi,0x8(%eax)
40236b:	c6 40 24 00          	movb   $0x0,0x24(%eax)
40236f:	c6 40 25 0a          	movb   $0xa,0x25(%eax)
402373:	c6 40 26 0a          	movb   $0xa,0x26(%eax)
402377:	89 78 38             	mov    %edi,0x38(%eax)
40237a:	c6 40 34 00          	movb   $0x0,0x34(%eax)
40237e:	83 c0 40             	add    $0x40,%eax
402381:	8b 0d a0 2d de 02    	mov    0x2de2da0,%ecx
402387:	81 c1 00 08 00 00    	add    $0x800,%ecx
40238d:	3b c1                	cmp    %ecx,%eax
40238f:	72 cc                	jb     0x40235d
402391:	66 39 7d ce          	cmp    %di,-0x32(%ebp)
402395:	0f 84 0a 01 00 00    	je     0x4024a5
40239b:	8b 45 d0             	mov    -0x30(%ebp),%eax
40239e:	3b c7                	cmp    %edi,%eax
4023a0:	0f 84 ff 00 00 00    	je     0x4024a5
4023a6:	8b 38                	mov    (%eax),%edi
4023a8:	8d 58 04             	lea    0x4(%eax),%ebx
4023ab:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
4023ae:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4023b1:	be 00 08 00 00       	mov    $0x800,%esi
4023b6:	3b fe                	cmp    %esi,%edi
4023b8:	7c 02                	jl     0x4023bc
4023ba:	8b fe                	mov    %esi,%edi
4023bc:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
4023c3:	eb 5b                	jmp    0x402420
4023c5:	6a 40                	push   $0x40
4023c7:	6a 20                	push   $0x20
4023c9:	e8 a8 2a 00 00       	call   0x404e76
4023ce:	59                   	pop    %ecx
4023cf:	59                   	pop    %ecx
4023d0:	85 c0                	test   %eax,%eax
4023d2:	74 56                	je     0x40242a
4023d4:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4023d7:	8d 0c 8d a0 2d de 02 	lea    0x2de2da0(,%ecx,4),%ecx
4023de:	89 01                	mov    %eax,(%ecx)
4023e0:	83 05 9c 2d de 02 20 	addl   $0x20,0x2de2d9c
4023e7:	8d 90 00 08 00 00    	lea    0x800(%eax),%edx
4023ed:	eb 2a                	jmp    0x402419
4023ef:	c6 40 04 00          	movb   $0x0,0x4(%eax)
4023f3:	83 08 ff             	orl    $0xffffffff,(%eax)
4023f6:	c6 40 05 0a          	movb   $0xa,0x5(%eax)
4023fa:	83 60 08 00          	andl   $0x0,0x8(%eax)
4023fe:	80 60 24 80          	andb   $0x80,0x24(%eax)
402402:	c6 40 25 0a          	movb   $0xa,0x25(%eax)
402406:	c6 40 26 0a          	movb   $0xa,0x26(%eax)
40240a:	83 60 38 00          	andl   $0x0,0x38(%eax)
40240e:	c6 40 34 00          	movb   $0x0,0x34(%eax)
402412:	83 c0 40             	add    $0x40,%eax
402415:	8b 11                	mov    (%ecx),%edx
402417:	03 d6                	add    %esi,%edx
402419:	3b c2                	cmp    %edx,%eax
40241b:	72 d2                	jb     0x4023ef
40241d:	ff 45 e0             	incl   -0x20(%ebp)
402420:	39 3d 9c 2d de 02    	cmp    %edi,0x2de2d9c
402426:	7c 9d                	jl     0x4023c5
402428:	eb 06                	jmp    0x402430
40242a:	8b 3d 9c 2d de 02    	mov    0x2de2d9c,%edi
402430:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
402434:	85 ff                	test   %edi,%edi
402436:	7e 6d                	jle    0x4024a5
402438:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40243b:	8b 08                	mov    (%eax),%ecx
40243d:	83 f9 ff             	cmp    $0xffffffff,%ecx
402440:	74 56                	je     0x402498
402442:	83 f9 fe             	cmp    $0xfffffffe,%ecx
402445:	74 51                	je     0x402498
402447:	8a 03                	mov    (%ebx),%al
402449:	a8 01                	test   $0x1,%al
40244b:	74 4b                	je     0x402498
40244d:	a8 08                	test   $0x8,%al
40244f:	75 0b                	jne    0x40245c
402451:	51                   	push   %ecx
402452:	ff 15 a4 d0 41 00    	call   *0x41d0a4
402458:	85 c0                	test   %eax,%eax
40245a:	74 3c                	je     0x402498
40245c:	8b 75 e0             	mov    -0x20(%ebp),%esi
40245f:	8b c6                	mov    %esi,%eax
402461:	c1 f8 05             	sar    $0x5,%eax
402464:	83 e6 1f             	and    $0x1f,%esi
402467:	c1 e6 06             	shl    $0x6,%esi
40246a:	03 34 85 a0 2d de 02 	add    0x2de2da0(,%eax,4),%esi
402471:	8b 45 e4             	mov    -0x1c(%ebp),%eax
402474:	8b 00                	mov    (%eax),%eax
402476:	89 06                	mov    %eax,(%esi)
402478:	8a 03                	mov    (%ebx),%al
40247a:	88 46 04             	mov    %al,0x4(%esi)
40247d:	68 a0 0f 00 00       	push   $0xfa0
402482:	8d 46 0c             	lea    0xc(%esi),%eax
402485:	50                   	push   %eax
402486:	e8 d1 1c 00 00       	call   0x40415c
40248b:	59                   	pop    %ecx
40248c:	59                   	pop    %ecx
40248d:	85 c0                	test   %eax,%eax
40248f:	0f 84 c9 00 00 00    	je     0x40255e
402495:	ff 46 08             	incl   0x8(%esi)
402498:	ff 45 e0             	incl   -0x20(%ebp)
40249b:	43                   	inc    %ebx
40249c:	83 45 e4 04          	addl   $0x4,-0x1c(%ebp)
4024a0:	39 7d e0             	cmp    %edi,-0x20(%ebp)
4024a3:	7c 93                	jl     0x402438
4024a5:	33 db                	xor    %ebx,%ebx
4024a7:	8b f3                	mov    %ebx,%esi
4024a9:	c1 e6 06             	shl    $0x6,%esi
4024ac:	03 35 a0 2d de 02    	add    0x2de2da0,%esi
4024b2:	8b 06                	mov    (%esi),%eax
4024b4:	83 f8 ff             	cmp    $0xffffffff,%eax
4024b7:	74 0b                	je     0x4024c4
4024b9:	83 f8 fe             	cmp    $0xfffffffe,%eax
4024bc:	74 06                	je     0x4024c4
4024be:	80 4e 04 80          	orb    $0x80,0x4(%esi)
4024c2:	eb 72                	jmp    0x402536
4024c4:	c6 46 04 81          	movb   $0x81,0x4(%esi)
4024c8:	85 db                	test   %ebx,%ebx
4024ca:	75 05                	jne    0x4024d1
4024cc:	6a f6                	push   $0xfffffff6
4024ce:	58                   	pop    %eax
4024cf:	eb 0a                	jmp    0x4024db
4024d1:	8b c3                	mov    %ebx,%eax
4024d3:	48                   	dec    %eax
4024d4:	f7 d8                	neg    %eax
4024d6:	1b c0                	sbb    %eax,%eax
4024d8:	83 c0 f5             	add    $0xfffffff5,%eax
4024db:	50                   	push   %eax
4024dc:	ff 15 84 d0 41 00    	call   *0x41d084
4024e2:	8b f8                	mov    %eax,%edi
4024e4:	83 ff ff             	cmp    $0xffffffff,%edi
4024e7:	74 43                	je     0x40252c
4024e9:	85 ff                	test   %edi,%edi
4024eb:	74 3f                	je     0x40252c
4024ed:	57                   	push   %edi
4024ee:	ff 15 a4 d0 41 00    	call   *0x41d0a4
4024f4:	85 c0                	test   %eax,%eax
4024f6:	74 34                	je     0x40252c
4024f8:	89 3e                	mov    %edi,(%esi)
4024fa:	25 ff 00 00 00       	and    $0xff,%eax
4024ff:	83 f8 02             	cmp    $0x2,%eax
402502:	75 06                	jne    0x40250a
402504:	80 4e 04 40          	orb    $0x40,0x4(%esi)
402508:	eb 09                	jmp    0x402513
40250a:	83 f8 03             	cmp    $0x3,%eax
40250d:	75 04                	jne    0x402513
40250f:	80 4e 04 08          	orb    $0x8,0x4(%esi)
402513:	68 a0 0f 00 00       	push   $0xfa0
402518:	8d 46 0c             	lea    0xc(%esi),%eax
40251b:	50                   	push   %eax
40251c:	e8 3b 1c 00 00       	call   0x40415c
402521:	59                   	pop    %ecx
402522:	59                   	pop    %ecx
402523:	85 c0                	test   %eax,%eax
402525:	74 37                	je     0x40255e
402527:	ff 46 08             	incl   0x8(%esi)
40252a:	eb 0a                	jmp    0x402536
40252c:	80 4e 04 40          	orb    $0x40,0x4(%esi)
402530:	c7 06 fe ff ff ff    	movl   $0xfffffffe,(%esi)
402536:	43                   	inc    %ebx
402537:	83 fb 03             	cmp    $0x3,%ebx
40253a:	0f 8c 67 ff ff ff    	jl     0x4024a7
402540:	ff 35 9c 2d de 02    	push   0x2de2d9c
402546:	ff 15 a0 d0 41 00    	call   *0x41d0a0
40254c:	33 c0                	xor    %eax,%eax
40254e:	eb 11                	jmp    0x402561
402550:	33 c0                	xor    %eax,%eax
402552:	40                   	inc    %eax
402553:	c3                   	ret
402554:	8b 65 e8             	mov    -0x18(%ebp),%esp
402557:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40255e:	83 c8 ff             	or     $0xffffffff,%eax
402561:	e8 5f 06 00 00       	call   0x402bc5
402566:	c3                   	ret
402567:	8b ff                	mov    %edi,%edi
402569:	56                   	push   %esi
40256a:	b8 e0 e5 41 00       	mov    $0x41e5e0,%eax
40256f:	be e0 e5 41 00       	mov    $0x41e5e0,%esi
402574:	57                   	push   %edi
402575:	8b f8                	mov    %eax,%edi
402577:	3b c6                	cmp    %esi,%eax
402579:	73 0f                	jae    0x40258a
40257b:	8b 07                	mov    (%edi),%eax
40257d:	85 c0                	test   %eax,%eax
40257f:	74 02                	je     0x402583
402581:	ff d0                	call   *%eax
402583:	83 c7 04             	add    $0x4,%edi
402586:	3b fe                	cmp    %esi,%edi
402588:	72 f1                	jb     0x40257b
40258a:	5f                   	pop    %edi
40258b:	5e                   	pop    %esi
40258c:	c3                   	ret
40258d:	8b ff                	mov    %edi,%edi
40258f:	56                   	push   %esi
402590:	b8 e8 e5 41 00       	mov    $0x41e5e8,%eax
402595:	be e8 e5 41 00       	mov    $0x41e5e8,%esi
40259a:	57                   	push   %edi
40259b:	8b f8                	mov    %eax,%edi
40259d:	3b c6                	cmp    %esi,%eax
40259f:	73 0f                	jae    0x4025b0
4025a1:	8b 07                	mov    (%edi),%eax
4025a3:	85 c0                	test   %eax,%eax
4025a5:	74 02                	je     0x4025a9
4025a7:	ff d0                	call   *%eax
4025a9:	83 c7 04             	add    $0x4,%edi
4025ac:	3b fe                	cmp    %esi,%edi
4025ae:	72 f1                	jb     0x4025a1
4025b0:	5f                   	pop    %edi