6421eb:	3b 02                	cmp    (%edx),%eax
6421ed:	75 44                	jne    0x642233
6421ef:	39 55 10             	cmp    %edx,0x10(%ebp)
6421f2:	75 3f                	jne    0x642233
6421f4:	ff 72 04             	push   0x4(%edx)
6421f7:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
6421fe:	e8 0d ec ff ff       	call   0x640e10
642203:	8b 07                	mov    (%edi),%eax
642205:	89 40 04             	mov    %eax,0x4(%eax)
642208:	8b 07                	mov    (%edi),%eax
64220a:	89 00                	mov    %eax,(%eax)
64220c:	8b 07                	mov    (%edi),%eax
64220e:	89 40 08             	mov    %eax,0x8(%eax)
642211:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
642218:	8b 07                	mov    (%edi),%eax
64221a:	8b 08                	mov    (%eax),%ecx
64221c:	8b 45 08             	mov    0x8(%ebp),%eax
64221f:	89 08                	mov    %ecx,(%eax)
642221:	8b 4d f4             	mov    -0xc(%ebp),%ecx
642224:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
64222b:	59                   	pop    %ecx
64222c:	5f                   	pop    %edi
64222d:	8b e5                	mov    %ebp,%esp
64222f:	5d                   	pop    %ebp
642230:	c2 0c 00             	ret    $0xc
642233:	3b 45 10             	cmp    0x10(%ebp),%eax
642236:	74 58                	je     0x642290
642238:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
64223c:	8b c8                	mov    %eax,%ecx
64223e:	75 3c                	jne    0x64227c
642240:	8b 50 08             	mov    0x8(%eax),%edx
642243:	80 7a 0d 00          	cmpb   $0x0,0xd(%edx)
642247:	75 14                	jne    0x64225d
642249:	8b 02                	mov    (%edx),%eax
64224b:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
64224f:	75 28                	jne    0x642279
642251:	8b d0                	mov    %eax,%edx
642253:	8b 02                	mov    (%edx),%eax
642255:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
642259:	74 f6                	je     0x642251
64225b:	eb 1c                	jmp    0x642279
64225d:	8b 50 04             	mov    0x4(%eax),%edx
642260:	80 7a 0d 00          	cmpb   $0x0,0xd(%edx)
642264:	75 13                	jne    0x642279
642266:	3b 42 08             	cmp    0x8(%edx),%eax
642269:	75 0e                	jne    0x642279
64226b:	8b c2                	mov    %edx,%eax
64226d:	89 45 0c             	mov    %eax,0xc(%ebp)
642270:	8b 52 04             	mov    0x4(%edx),%edx
642273:	80 7a 0d 00          	cmpb   $0x0,0xd(%edx)
642277:	74 ed                	je     0x642266
642279:	89 55 0c             	mov    %edx,0xc(%ebp)
64227c:	51                   	push   %ecx
64227d:	8d 45 f0             	lea    -0x10(%ebp),%eax
642280:	8b cf                	mov    %edi,%ecx
642282:	50                   	push   %eax
642283:	e8 28 00 00 00       	call   0x6422b0
642288:	8b 45 0c             	mov    0xc(%ebp),%eax
64228b:	3b 45 10             	cmp    0x10(%ebp),%eax
64228e:	75 a8                	jne    0x642238
642290:	8b 4d 08             	mov    0x8(%ebp),%ecx
642293:	89 01                	mov    %eax,(%ecx)
642295:	8b c1                	mov    %ecx,%eax
642297:	8b 4d f4             	mov    -0xc(%ebp),%ecx
64229a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
6422a1:	59                   	pop    %ecx
6422a2:	5f                   	pop    %edi
6422a3:	8b e5                	mov    %ebp,%esp
6422a5:	5d                   	pop    %ebp
6422a6:	c2 0c 00             	ret    $0xc
6422a9:	cc                   	int3
6422aa:	cc                   	int3
6422ab:	cc                   	int3
6422ac:	cc                   	int3
6422ad:	cc                   	int3
6422ae:	cc                   	int3
6422af:	cc                   	int3
6422b0:	55                   	push   %ebp
6422b1:	8b ec                	mov    %esp,%ebp
6422b3:	83 ec 08             	sub    $0x8,%esp
6422b6:	8b 45 0c             	mov    0xc(%ebp),%eax
6422b9:	53                   	push   %ebx
6422ba:	56                   	push   %esi
6422bb:	8b d9                	mov    %ecx,%ebx
6422bd:	89 45 fc             	mov    %eax,-0x4(%ebp)
6422c0:	57                   	push   %edi
6422c1:	8d 4d 0c             	lea    0xc(%ebp),%ecx
6422c4:	e8 87 58 ff ff       	call   0x637b50
6422c9:	8b 55 fc             	mov    -0x4(%ebp),%edx
6422cc:	8b 32                	mov    (%edx),%esi
6422ce:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
6422d2:	74 05                	je     0x6422d9
6422d4:	8b 7a 08             	mov    0x8(%edx),%edi
6422d7:	eb 1e                	jmp    0x6422f7
6422d9:	8b 42 08             	mov    0x8(%edx),%eax
6422dc:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
6422e0:	74 04                	je     0x6422e6
6422e2:	8b fe                	mov    %esi,%edi
6422e4:	eb 11                	jmp    0x6422f7
6422e6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
6422e9:	89 4d f8             	mov    %ecx,-0x8(%ebp)
6422ec:	8b 79 08             	mov    0x8(%ecx),%edi
6422ef:	3b ca                	cmp    %edx,%ecx
6422f1:	0f 85 80 00 00 00    	jne    0x642377
6422f7:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
6422fb:	8b 72 04             	mov    0x4(%edx),%esi
6422fe:	75 03                	jne    0x642303
642300:	89 77 04             	mov    %esi,0x4(%edi)
642303:	8b 03                	mov    (%ebx),%eax
642305:	39 50 04             	cmp    %edx,0x4(%eax)
642308:	75 05                	jne    0x64230f
64230a:	89 78 04             	mov    %edi,0x4(%eax)
64230d:	eb 0b                	jmp    0x64231a
64230f:	39 16                	cmp    %edx,(%esi)
642311:	75 04                	jne    0x642317
642313:	89 3e                	mov    %edi,(%esi)
642315:	eb 03                	jmp    0x64231a
642317:	89 7e 08             	mov    %edi,0x8(%esi)
64231a:	8b 03                	mov    (%ebx),%eax
64231c:	39 10                	cmp    %edx,(%eax)
64231e:	75 22                	jne    0x642342
642320:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
642324:	74 04                	je     0x64232a
642326:	8b ce                	mov    %esi,%ecx
642328:	eb 16                	jmp    0x642340
64232a:	8b 07                	mov    (%edi),%eax
64232c:	8b cf                	mov    %edi,%ecx
64232e:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
642332:	75 0a                	jne    0x64233e
642334:	8b c8                	mov    %eax,%ecx
642336:	8b 01                	mov    (%ecx),%eax
642338:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
64233c:	74 f6                	je     0x642334
64233e:	8b 03                	mov    (%ebx),%eax
642340:	89 08                	mov    %ecx,(%eax)
642342:	8b 03                	mov    (%ebx),%eax
642344:	39 50 08             	cmp    %edx,0x8(%eax)
642347:	0f 85 86 00 00 00    	jne    0x6423d3
64234d:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
642351:	74 07                	je     0x64235a
642353:	8b ce                	mov    %esi,%ecx
642355:	89 48 08             	mov    %ecx,0x8(%eax)
642358:	eb 79                	jmp    0x6423d3
64235a:	8b 47 08             	mov    0x8(%edi),%eax
64235d:	8b cf                	mov    %edi,%ecx
64235f:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
642363:	75 0b                	jne    0x642370
642365:	8b c8                	mov    %eax,%ecx
642367:	8b 41 08             	mov    0x8(%ecx),%eax
64236a:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
64236e:	74 f5                	je     0x642365
642370:	8b 03                	mov    (%ebx),%eax
642372:	89 48 08             	mov    %ecx,0x8(%eax)
642375:	eb 5c                	jmp    0x6423d3
642377:	89 4e 04             	mov    %ecx,0x4(%esi)
64237a:	8b 02                	mov    (%edx),%eax
64237c:	89 01                	mov    %eax,(%ecx)
64237e:	3b 4a 08             	cmp    0x8(%edx),%ecx
642381:	75 04                	jne    0x642387
642383:	8b f1                	mov    %ecx,%esi
642385:	eb 1a                	jmp    0x6423a1
642387:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
64238b:	8b 71 04             	mov    0x4(%ecx),%esi
64238e:	75 03                	jne    0x642393
642390:	89 77 04             	mov    %esi,0x4(%edi)
642393:	89 3e                	mov    %edi,(%esi)
642395:	8b 42 08             	mov    0x8(%edx),%eax
642398:	89 41 08             	mov    %eax,0x8(%ecx)
64239b:	8b 42 08             	mov    0x8(%edx),%eax
64239e:	89 48 04             	mov    %ecx,0x4(%eax)
6423a1:	8b 03                	mov    (%ebx),%eax
6423a3:	39 50 04             	cmp    %edx,0x4(%eax)
6423a6:	75 05                	jne    0x6423ad
6423a8:	89 48 04             	mov    %ecx,0x4(%eax)
6423ab:	eb 0e                	jmp    0x6423bb
6423ad:	8b 42 04             	mov    0x4(%edx),%eax
6423b0:	39 10                	cmp    %edx,(%eax)
6423b2:	75 04                	jne    0x6423b8
6423b4:	89 08                	mov    %ecx,(%eax)
6423b6:	eb 03                	jmp    0x6423bb
6423b8:	89 48 08             	mov    %ecx,0x8(%eax)
6423bb:	8b 42 04             	mov    0x4(%edx),%eax
6423be:	89 41 04             	mov    %eax,0x4(%ecx)
6423c1:	8a 42 0c             	mov    0xc(%edx),%al
6423c4:	8b 55 f8             	mov    -0x8(%ebp),%edx
6423c7:	8a 49 0c             	mov    0xc(%ecx),%cl
6423ca:	88 42 0c             	mov    %al,0xc(%edx)
6423cd:	8b 55 fc             	mov    -0x4(%ebp),%edx
6423d0:	88 4a 0c             	mov    %cl,0xc(%edx)
6423d3:	80 7a 0c 01          	cmpb   $0x1,0xc(%edx)
6423d7:	0f 85 14 01 00 00    	jne    0x6424f1
6423dd:	8b 03                	mov    (%ebx),%eax
6423df:	3b 78 04             	cmp    0x4(%eax),%edi
6423e2:	0f 84 05 01 00 00    	je     0x6424ed
6423e8:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
6423ef:	00
6423f0:	80 7f 0c 01          	cmpb   $0x1,0xc(%edi)
6423f4:	0f 85 f0 00 00 00    	jne    0x6424ea
6423fa:	8b 0e                	mov    (%esi),%ecx
6423fc:	3b f9                	cmp    %ecx,%edi
6423fe:	75 70                	jne    0x642470
642400:	8b 4e 08             	mov    0x8(%esi),%ecx
642403:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
642407:	75 13                	jne    0x64241c
642409:	c6 41 0c 01          	movb   $0x1,0xc(%ecx)
64240d:	8b cb                	mov    %ebx,%ecx
64240f:	56                   	push   %esi
642410:	c6 46 0c 00          	movb   $0x0,0xc(%esi)
642414:	e8 87 08 e5 ff       	call   0x492ca0
642419:	8b 4e 08             	mov    0x8(%esi),%ecx
64241c:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
642420:	0f 85 7d 00 00 00    	jne    0x6424a3
642426:	8b 01                	mov    (%ecx),%eax
642428:	80 78 0c 01          	cmpb   $0x1,0xc(%eax)
64242c:	75 09                	jne    0x642437
64242e:	8b 41 08             	mov    0x8(%ecx),%eax
642431:	80 78 0c 01          	cmpb   $0x1,0xc(%eax)
642435:	74 68                	je     0x64249f
642437:	8b 41 08             	mov    0x8(%ecx),%eax
64243a:	80 78 0c 01          	cmpb   $0x1,0xc(%eax)
64243e:	75 15                	jne    0x642455
642440:	8b 01                	mov    (%ecx),%eax
642442:	51                   	push   %ecx
642443:	c6 40 0c 01          	movb   $0x1,0xc(%eax)
642447:	c6 41 0c 00          	movb   $0x0,0xc(%ecx)
64244b:	8b cb                	mov    %ebx,%ecx
64244d:	e8 ae 08 e5 ff       	call   0x492d00
642452:	8b 4e 08             	mov    0x8(%esi),%ecx
642455:	8a 46 0c             	mov    0xc(%esi),%al
642458:	88 41 0c             	mov    %al,0xc(%ecx)
64245b:	c6 46 0c 01          	movb   $0x1,0xc(%esi)
64245f:	8b 41 08             	mov    0x8(%ecx),%eax
642462:	8b cb                	mov    %ebx,%ecx
642464:	56                   	push   %esi
642465:	c6 40 0c 01          	movb   $0x1,0xc(%eax)
642469:	e8 32 08 e5 ff       	call   0x492ca0
64246e:	eb 7a                	jmp    0x6424ea
642470:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
642474:	75 12                	jne    0x642488
642476:	c6 41 0c 01          	movb   $0x1,0xc(%ecx)
64247a:	8b cb                	mov    %ebx,%ecx
64247c:	56                   	push   %esi
64247d:	c6 46 0c 00          	movb   $0x0,0xc(%esi)
642481:	e8 7a 08 e5 ff       	call   0x492d00
642486:	8b 0e                	mov    (%esi),%ecx
642488:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
64248c:	75 15                	jne    0x6424a3
64248e:	8b 41 08             	mov    0x8(%ecx),%eax
642491:	80 78 0c 01          	cmpb   $0x1,0xc(%eax)
642495:	75 1e                	jne    0x6424b5
642497:	8b 01                	mov    (%ecx),%eax
642499:	80 78 0c 01          	cmpb   $0x1,0xc(%eax)
64249d:	75 16                	jne    0x6424b5
64249f:	c6 41 0c 00          	movb   $0x0,0xc(%ecx)
6424a3:	8b 03                	mov    (%ebx),%eax
6424a5:	8b fe                	mov    %esi,%edi
6424a7:	8b 76 04             	mov    0x4(%esi),%esi
6424aa:	3b 78 04             	cmp    0x4(%eax),%edi
6424ad:	0f 85 3d ff ff ff    	jne    0x6423f0
6424b3:	eb 35                	jmp    0x6424ea
6424b5:	8b 01                	mov    (%ecx),%eax
6424b7:	80 78 0c 01          	cmpb   $0x1,0xc(%eax)
6424bb:	75 15                	jne    0x6424d2
6424bd:	8b 41 08             	mov    0x8(%ecx),%eax
6424c0:	51                   	push   %ecx
6424c1:	c6 40 0c 01          	movb   $0x1,0xc(%eax)
6424c5:	c6 41 0c 00          	movb   $0x0,0xc(%ecx)
6424c9:	8b cb                	mov    %ebx,%ecx
6424cb:	e8 d0 07 e5 ff       	call   0x492ca0
6424d0:	8b 0e                	mov    (%esi),%ecx
6424d2:	8a 46 0c             	mov    0xc(%esi),%al
6424d5:	88 41 0c             	mov    %al,0xc(%ecx)
6424d8:	c6 46 0c 01          	movb   $0x1,0xc(%esi)
6424dc:	8b 01                	mov    (%ecx),%eax
6424de:	8b cb                	mov    %ebx,%ecx
6424e0:	56                   	push   %esi
6424e1:	c6 40 0c 01          	movb   $0x1,0xc(%eax)
6424e5:	e8 16 08 e5 ff       	call   0x492d00
6424ea:	8b 55 fc             	mov    -0x4(%ebp),%edx
6424ed:	c6 47 0c 01          	movb   $0x1,0xc(%edi)
6424f1:	8b 42 14             	mov    0x14(%edx),%eax
6424f4:	8d 7a 14             	lea    0x14(%edx),%edi
6424f7:	85 c0                	test   %eax,%eax
6424f9:	74 6f                	je     0x64256a
6424fb:	57                   	push   %edi
6424fc:	ff 77 04             	push   0x4(%edi)
6424ff:	50                   	push   %eax
642500:	e8 bb d3 ff ff       	call   0x63f8c0
642505:	8b 4f 08             	mov    0x8(%edi),%ecx
642508:	b8 e9 a2 8b 2e       	mov    $0x2e8ba2e9,%eax
64250d:	8b 37                	mov    (%edi),%esi
64250f:	83 c4 0c             	add    $0xc,%esp
642512:	2b ce                	sub    %esi,%ecx
642514:	f7 e9                	imul   %ecx
642516:	c1 fa 03             	sar    $0x3,%edx
642519:	8b c2                	mov    %edx,%eax
64251b:	c1 e8 1f             	shr    $0x1f,%eax
64251e:	03 c2                	add    %edx,%eax
642520:	3d 5d 74 d1 05       	cmp    $0x5d1745d,%eax
642525:	77 68                	ja     0x64258f
642527:	6b c0 2c             	imul   $0x2c,%eax,%eax
64252a:	3d 00 10 00 00       	cmp    $0x1000,%eax
64252f:	72 19                	jb     0x64254a
642531:	8b c6                	mov    %esi,%eax
642533:	a8 1f                	test   $0x1f,%al
642535:	75 5d                	jne    0x642594
642537:	8b 70 fc             	mov    -0x4(%eax),%esi
64253a:	3b f0                	cmp    %eax,%esi
64253c:	73 5b                	jae    0x642599
64253e:	2b c6                	sub    %esi,%eax
642540:	83 f8 04             	cmp    $0x4,%eax
642543:	72 59                	jb     0x64259e
642545:	83 f8 23             	cmp    $0x23,%eax
642548:	77 59                	ja     0x6425a3
64254a:	56                   	push   %esi
64254b:	e8 80 df ea ff       	call   0x4f04d0
642550:	8b 55 fc             	mov    -0x4(%ebp),%edx
642553:	83 c4 04             	add    $0x4,%esp
642556:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
64255c:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
642563:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)
64256a:	52                   	push   %edx
64256b:	e8 60 df ea ff       	call   0x4f04d0
642570:	8b 43 04             	mov    0x4(%ebx),%eax
642573:	83 c4 04             	add    $0x4,%esp
642576:	85 c0                	test   %eax,%eax
642578:	74 04                	je     0x64257e
64257a:	48                   	dec    %eax
64257b:	89 43 04             	mov    %eax,0x4(%ebx)
64257e:	8b 45 08             	mov    0x8(%ebp),%eax
642581:	8b 4d 0c             	mov    0xc(%ebp),%ecx
642584:	5f                   	pop    %edi
642585:	5e                   	pop    %esi
642586:	89 08                	mov    %ecx,(%eax)
642588:	5b                   	pop    %ebx
642589:	8b e5                	mov    %ebp,%esp
64258b:	5d                   	pop    %ebp
64258c:	c2 08 00             	ret    $0x8
64258f:	e8 9b a9 fa ff       	call   0x5ecf2f
642594:	e8 96 a9 fa ff       	call   0x5ecf2f
642599:	e8 91 a9 fa ff       	call   0x5ecf2f
64259e:	e8 8c a9 fa ff       	call   0x5ecf2f
6425a3:	e8 87 a9 fa ff       	call   0x5ecf2f
6425a8:	cc                   	int3
6425a9:	cc                   	int3
6425aa:	cc                   	int3
6425ab:	cc                   	int3
6425ac:	cc                   	int3
6425ad:	cc                   	int3
6425ae:	cc                   	int3