506330:	e9 d4 00 00 00       	jmp    0x506409
506335:	8b 44 24 08          	mov    0x8(%esp),%eax
506339:	85 ff                	test   %edi,%edi
50633b:	89 45 04             	mov    %eax,0x4(%ebp)
50633e:	75 21                	jne    0x506361
506340:	8b 74 24 0c          	mov    0xc(%esp),%esi
506344:	8b c3                	mov    %ebx,%eax
506346:	ff 56 0c             	call   *0xc(%esi)
506349:	85 c0                	test   %eax,%eax
50634b:	75 07                	jne    0x506354
50634d:	33 c0                	xor    %eax,%eax
50634f:	e9 e1 00 00 00       	jmp    0x506435
506354:	8b 54 24 0c          	mov    0xc(%esp),%edx
506358:	8b 44 24 0c          	mov    0xc(%esp),%eax
50635c:	8b 78 04             	mov    0x4(%eax),%edi
50635f:	8b 32                	mov    (%edx),%esi
506361:	4f                   	dec    %edi
506362:	33 c0                	xor    %eax,%eax
506364:	8a 06                	mov    (%esi),%al
506366:	89 45 00             	mov    %eax,0x0(%ebp)
506369:	46                   	inc    %esi
50636a:	85 ff                	test   %edi,%edi
50636c:	75 21                	jne    0x50638f
50636e:	8b 74 24 0c          	mov    0xc(%esp),%esi
506372:	8b c3                	mov    %ebx,%eax
506374:	ff 56 0c             	call   *0xc(%esi)
506377:	85 c0                	test   %eax,%eax
506379:	75 07                	jne    0x506382
50637b:	33 c0                	xor    %eax,%eax
50637d:	e9 b3 00 00 00       	jmp    0x506435
506382:	8b 54 24 0c          	mov    0xc(%esp),%edx
506386:	8b 44 24 0c          	mov    0xc(%esp),%eax
50638a:	8b 78 04             	mov    0x4(%eax),%edi
50638d:	8b 32                	mov    (%edx),%esi
50638f:	33 c0                	xor    %eax,%eax
506391:	4f                   	dec    %edi
506392:	8a 06                	mov    (%esi),%al
506394:	46                   	inc    %esi
506395:	8b d0                	mov    %eax,%edx
506397:	83 e0 0f             	and    $0xf,%eax
50639a:	c1 fa 04             	sar    $0x4,%edx
50639d:	83 e2 0f             	and    $0xf,%edx
5063a0:	85 ff                	test   %edi,%edi
5063a2:	89 55 08             	mov    %edx,0x8(%ebp)
5063a5:	89 45 0c             	mov    %eax,0xc(%ebp)
5063a8:	75 1e                	jne    0x5063c8
5063aa:	8b 74 24 0c          	mov    0xc(%esp),%esi
5063ae:	8b c3                	mov    %ebx,%eax
5063b0:	ff 56 0c             	call   *0xc(%esi)
5063b3:	85 c0                	test   %eax,%eax
5063b5:	75 04                	jne    0x5063bb
5063b7:	33 c0                	xor    %eax,%eax
5063b9:	eb 7a                	jmp    0x506435
5063bb:	8b 54 24 0c          	mov    0xc(%esp),%edx
5063bf:	8b 44 24 0c          	mov    0xc(%esp),%eax
5063c3:	8b 78 04             	mov    0x4(%eax),%edi
5063c6:	8b 32                	mov    (%edx),%esi
5063c8:	33 c0                	xor    %eax,%eax
5063ca:	4f                   	dec    %edi
5063cb:	8a 06                	mov    (%esi),%al
5063cd:	46                   	inc    %esi
5063ce:	89 45 10             	mov    %eax,0x10(%ebp)
5063d1:	8b 03                	mov    (%ebx),%eax
5063d3:	83 c0 18             	add    $0x18,%eax
5063d6:	8b 55 00             	mov    0x0(%ebp),%edx
5063d9:	89 10                	mov    %edx,(%eax)
5063db:	8b 4d 08             	mov    0x8(%ebp),%ecx
5063de:	89 48 04             	mov    %ecx,0x4(%eax)
5063e1:	8b 55 0c             	mov    0xc(%ebp),%edx
5063e4:	89 50 08             	mov    %edx,0x8(%eax)
5063e7:	8b 4d 10             	mov    0x10(%ebp),%ecx
5063ea:	89 48 0c             	mov    %ecx,0xc(%eax)
5063ed:	8b 03                	mov    (%ebx),%eax
5063ef:	c7 40 14 64 00 00 00 	movl   $0x64,0x14(%eax)
5063f6:	ba 01 00 00 00       	mov    $0x1,%edx
5063fb:	8b c3                	mov    %ebx,%eax
5063fd:	8b 08                	mov    (%eax),%ecx
5063ff:	ff 51 04             	call   *0x4(%ecx)
506402:	ff 44 24 08          	incl   0x8(%esp)
506406:	83 c5 54             	add    $0x54,%ebp
506409:	8b 44 24 08          	mov    0x8(%esp),%eax
50640d:	3b 43 20             	cmp    0x20(%ebx),%eax
506410:	0f 8c 1f ff ff ff    	jl     0x506335
506416:	8b 93 b0 01 00 00    	mov    0x1b0(%ebx),%edx
50641c:	c7 42 54 01 00 00 00 	movl   $0x1,0x54(%edx)
506423:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
506427:	89 31                	mov    %esi,(%ecx)
506429:	8b 44 24 0c          	mov    0xc(%esp),%eax
50642d:	89 78 04             	mov    %edi,0x4(%eax)
506430:	b8 01 00 00 00       	mov    $0x1,%eax
506435:	83 c4 10             	add    $0x10,%esp
506438:	5d                   	pop    %ebp
506439:	5f                   	pop    %edi
50643a:	5e                   	pop    %esi
50643b:	5b                   	pop    %ebx
50643c:	c3                   	ret
50643d:	90                   	nop
50643e:	90                   	nop
50643f:	90                   	nop
506440:	53                   	push   %ebx
506441:	56                   	push   %esi
506442:	57                   	push   %edi
506443:	55                   	push   %ebp
506444:	8b d8                	mov    %eax,%ebx
506446:	83 c4 e8             	add    $0xffffffe8,%esp
506449:	8b 43 14             	mov    0x14(%ebx),%eax
50644c:	89 44 24 10          	mov    %eax,0x10(%esp)
506450:	8b 44 24 10          	mov    0x10(%esp),%eax
506454:	8b 54 24 10          	mov    0x10(%esp),%edx
506458:	8b 68 04             	mov    0x4(%eax),%ebp
50645b:	8b 83 b0 01 00 00    	mov    0x1b0(%ebx),%eax
506461:	8b 3a                	mov    (%edx),%edi
506463:	83 78 54 00          	cmpl   $0x0,0x54(%eax)
506467:	75 0f                	jne    0x506478
506469:	8b 13                	mov    (%ebx),%edx
50646b:	8b c3                	mov    %ebx,%eax
50646d:	c7 42 14 3d 00 00 00 	movl   $0x3d,0x14(%edx)
506474:	8b 10                	mov    (%eax),%edx
506476:	ff 12                	call   *(%edx)
506478:	85 ed                	test   %ebp,%ebp
50647a:	75 21                	jne    0x50649d
50647c:	8b 74 24 10          	mov    0x10(%esp),%esi
506480:	8b c3                	mov    %ebx,%eax
506482:	ff 56 0c             	call   *0xc(%esi)
506485:	85 c0                	test   %eax,%eax
506487:	75 07                	jne    0x506490
506489:	33 c0                	xor    %eax,%eax
50648b:	e9 e8 02 00 00       	jmp    0x506778
506490:	8b 54 24 10          	mov    0x10(%esp),%edx
506494:	8b 44 24 10          	mov    0x10(%esp),%eax
506498:	8b 68 04             	mov    0x4(%eax),%ebp
50649b:	8b 3a                	mov    (%edx),%edi
50649d:	4d                   	dec    %ebp
50649e:	0f b6 37             	movzbl (%edi),%esi
5064a1:	c1 e6 08             	shl    $0x8,%esi
5064a4:	47                   	inc    %edi
5064a5:	85 ed                	test   %ebp,%ebp
5064a7:	75 21                	jne    0x5064ca
5064a9:	8b 7c 24 10          	mov    0x10(%esp),%edi
5064ad:	8b c3                	mov    %ebx,%eax
5064af:	ff 57 0c             	call   *0xc(%edi)
5064b2:	85 c0                	test   %eax,%eax
5064b4:	75 07                	jne    0x5064bd
5064b6:	33 c0                	xor    %eax,%eax
5064b8:	e9 bb 02 00 00       	jmp    0x506778
5064bd:	8b 54 24 10          	mov    0x10(%esp),%edx
5064c1:	8b 44 24 10          	mov    0x10(%esp),%eax
5064c5:	8b 68 04             	mov    0x4(%eax),%ebp
5064c8:	8b 3a                	mov    (%edx),%edi
5064ca:	4d                   	dec    %ebp
5064cb:	33 c0                	xor    %eax,%eax
5064cd:	8a 07                	mov    (%edi),%al
5064cf:	03 f0                	add    %eax,%esi
5064d1:	47                   	inc    %edi
5064d2:	85 ed                	test   %ebp,%ebp
5064d4:	75 21                	jne    0x5064f7
5064d6:	8b 7c 24 10          	mov    0x10(%esp),%edi
5064da:	8b c3                	mov    %ebx,%eax
5064dc:	ff 57 0c             	call   *0xc(%edi)
5064df:	85 c0                	test   %eax,%eax
5064e1:	75 07                	jne    0x5064ea
5064e3:	33 c0                	xor    %eax,%eax
5064e5:	e9 8e 02 00 00       	jmp    0x506778
5064ea:	8b 54 24 10          	mov    0x10(%esp),%edx
5064ee:	8b 44 24 10          	mov    0x10(%esp),%eax
5064f2:	8b 68 04             	mov    0x4(%eax),%ebp
5064f5:	8b 3a                	mov    (%edx),%edi
5064f7:	4d                   	dec    %ebp
5064f8:	33 c0                	xor    %eax,%eax
5064fa:	8a 07                	mov    (%edi),%al
5064fc:	89 44 24 04          	mov    %eax,0x4(%esp)
506500:	47                   	inc    %edi
506501:	8b 54 24 04          	mov    0x4(%esp),%edx
506505:	03 d2                	add    %edx,%edx
506507:	83 c2 06             	add    $0x6,%edx
50650a:	3b f2                	cmp    %edx,%esi
50650c:	75 0e                	jne    0x50651c
50650e:	83 7c 24 04 01       	cmpl   $0x1,0x4(%esp)
506513:	7c 07                	jl     0x50651c
506515:	83 7c 24 04 04       	cmpl   $0x4,0x4(%esp)
50651a:	7e 0f                	jle    0x50652b
50651c:	8b 0b                	mov    (%ebx),%ecx
50651e:	8b c3                	mov    %ebx,%eax
506520:	c7 41 14 09 00 00 00 	movl   $0x9,0x14(%ecx)
506527:	8b 10                	mov    (%eax),%edx
506529:	ff 12                	call   *(%edx)
50652b:	8b 03                	mov    (%ebx),%eax
50652d:	c7 40 14 66 00 00 00 	movl   $0x66,0x14(%eax)
506534:	8b 54 24 04          	mov    0x4(%esp),%edx
506538:	89 50 18             	mov    %edx,0x18(%eax)
50653b:	8b c3                	mov    %ebx,%eax
50653d:	ba 01 00 00 00       	mov    $0x1,%edx
506542:	8b 08                	mov    (%eax),%ecx
506544:	ff 51 04             	call   *0x4(%ecx)
506547:	8b 44 24 04          	mov    0x4(%esp),%eax
50654b:	89 83 40 01 00 00    	mov    %eax,0x140(%ebx)
506551:	33 d2                	xor    %edx,%edx
506553:	89 14 24             	mov    %edx,(%esp)
506556:	8d 8b 44 01 00 00    	lea    0x144(%ebx),%ecx
50655c:	89 4c 24 14          	mov    %ecx,0x14(%esp)
506560:	8b 04 24             	mov    (%esp),%eax
506563:	3b 44 24 04          	cmp    0x4(%esp),%eax
506567:	0f 8d ed 00 00 00    	jge    0x50665a
50656d:	85 ed                	test   %ebp,%ebp
50656f:	75 21                	jne    0x506592
506571:	8b 74 24 10          	mov    0x10(%esp),%esi
506575:	8b c3                	mov    %ebx,%eax
506577:	ff 56 0c             	call   *0xc(%esi)
50657a:	85 c0                	test   %eax,%eax
50657c:	75 07                	jne    0x506585
50657e:	33 c0                	xor    %eax,%eax
506580:	e9 f3 01 00 00       	jmp    0x506778
506585:	8b 54 24 10          	mov    0x10(%esp),%edx
506589:	8b 44 24 10          	mov    0x10(%esp),%eax
50658d:	8b 68 04             	mov    0x4(%eax),%ebp
506590:	8b 3a                	mov    (%edx),%edi
506592:	4d                   	dec    %ebp
506593:	33 c0                	xor    %eax,%eax
506595:	8a 07                	mov    (%edi),%al
506597:	89 44 24 0c          	mov    %eax,0xc(%esp)
50659b:	47                   	inc    %edi
50659c:	85 ed                	test   %ebp,%ebp
50659e:	75 21                	jne    0x5065c1
5065a0:	8b 74 24 10          	mov    0x10(%esp),%esi
5065a4:	8b c3                	mov    %ebx,%eax
5065a6:	ff 56 0c             	call   *0xc(%esi)
5065a9:	85 c0                	test   %eax,%eax
5065ab:	75 07                	jne    0x5065b4
5065ad:	33 c0                	xor    %eax,%eax
5065af:	e9 c4 01 00 00       	jmp    0x506778
5065b4:	8b 54 24 10          	mov    0x10(%esp),%edx
5065b8:	8b 44 24 10          	mov    0x10(%esp),%eax
5065bc:	8b 68 04             	mov    0x4(%eax),%ebp
5065bf:	8b 3a                	mov    (%edx),%edi
5065c1:	33 c0                	xor    %eax,%eax
5065c3:	4d                   	dec    %ebp
5065c4:	8a 07                	mov    (%edi),%al
5065c6:	47                   	inc    %edi
5065c7:	89 44 24 08          	mov    %eax,0x8(%esp)
5065cb:	33 c0                	xor    %eax,%eax
5065cd:	8b b3 d4 00 00 00    	mov    0xd4(%ebx),%esi
5065d3:	eb 0c                	jmp    0x5065e1
5065d5:	8b 54 24 0c          	mov    0xc(%esp),%edx
5065d9:	3b 16                	cmp    (%esi),%edx
5065db:	74 1f                	je     0x5065fc
5065dd:	40                   	inc    %eax
5065de:	83 c6 54             	add    $0x54,%esi
5065e1:	3b 43 20             	cmp    0x20(%ebx),%eax
5065e4:	7c ef                	jl     0x5065d5
5065e6:	8b 03                	mov    (%ebx),%eax
5065e8:	c7 40 14 05 00 00 00 	movl   $0x5,0x14(%eax)
5065ef:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
5065f3:	89 48 18             	mov    %ecx,0x18(%eax)
5065f6:	8b c3                	mov    %ebx,%eax
5065f8:	8b 10                	mov    (%eax),%edx
5065fa:	ff 12                	call   *(%edx)
5065fc:	8b 4c 24 14          	mov    0x14(%esp),%ecx
506600:	89 31                	mov    %esi,(%ecx)
506602:	8b 44 24 08          	mov    0x8(%esp),%eax
506606:	c1 f8 04             	sar    $0x4,%eax
506609:	83 e0 0f             	and    $0xf,%eax
50660c:	89 46 14             	mov    %eax,0x14(%esi)
50660f:	8b 54 24 08          	mov    0x8(%esp),%edx
506613:	83 e2 0f             	and    $0xf,%edx
506616:	89 56 18             	mov    %edx,0x18(%esi)
506619:	8b 03                	mov    (%ebx),%eax
50661b:	83 c0 18             	add    $0x18,%eax
50661e:	8b 54 24 0c          	mov    0xc(%esp),%edx
506622:	89 10                	mov    %edx,(%eax)
506624:	8b 4e 14             	mov    0x14(%esi),%ecx
506627:	89 48 04             	mov    %ecx,0x4(%eax)
50662a:	8b 56 18             	mov    0x18(%esi),%edx
50662d:	89 50 08             	mov    %edx,0x8(%eax)
506630:	8b 03                	mov    (%ebx),%eax
506632:	c7 40 14 67 00 00 00 	movl   $0x67,0x14(%eax)
506639:	ba 01 00 00 00       	mov    $0x1,%edx
50663e:	8b c3                	mov    %ebx,%eax
506640:	8b 08                	mov    (%eax),%ecx
506642:	ff 51 04             	call   *0x4(%ecx)
506645:	ff 04 24             	incl   (%esp)
506648:	83 44 24 14 04       	addl   $0x4,0x14(%esp)
50664d:	8b 04 24             	mov    (%esp),%eax
506650:	3b 44 24 04          	cmp    0x4(%esp),%eax
506654:	0f 8c 13 ff ff ff    	jl     0x50656d
50665a:	85 ed                	test   %ebp,%ebp
50665c:	75 21                	jne    0x50667f
50665e:	8b 74 24 10          	mov    0x10(%esp),%esi
506662:	8b c3                	mov    %ebx,%eax
506664:	ff 56 0c             	call   *0xc(%esi)
506667:	85 c0                	test   %eax,%eax
506669:	75 07                	jne    0x506672
50666b:	33 c0                	xor    %eax,%eax
50666d:	e9 06 01 00 00       	jmp    0x506778
506672:	8b 54 24 10          	mov    0x10(%esp),%edx
506676:	8b 44 24 10          	mov    0x10(%esp),%eax
50667a:	8b 68 04             	mov    0x4(%eax),%ebp
50667d:	8b 3a                	mov    (%edx),%edi
50667f:	33 c0                	xor    %eax,%eax
506681:	4d                   	dec    %ebp
506682:	8a 07                	mov    (%edi),%al
506684:	47                   	inc    %edi
506685:	89 44 24 08          	mov    %eax,0x8(%esp)
506689:	85 ed                	test   %ebp,%ebp
50668b:	8b 54 24 08          	mov    0x8(%esp),%edx
50668f:	89 93 88 01 00 00    	mov    %edx,0x188(%ebx)
506695:	75 21                	jne    0x5066b8
506697:	8b 74 24 10          	mov    0x10(%esp),%esi
50669b:	8b c3                	mov    %ebx,%eax
50669d:	ff 56 0c             	call   *0xc(%esi)
5066a0:	85 c0                	test   %eax,%eax
5066a2:	75 07                	jne    0x5066ab
5066a4:	33 c0                	xor    %eax,%eax
5066a6:	e9 cd 00 00 00       	jmp    0x506778
5066ab:	8b 54 24 10          	mov    0x10(%esp),%edx
5066af:	8b 44 24 10          	mov    0x10(%esp),%eax
5066b3:	8b 68 04             	mov    0x4(%eax),%ebp
5066b6:	8b 3a                	mov    (%edx),%edi
5066b8:	33 c0                	xor    %eax,%eax
5066ba:	4d                   	dec    %ebp
5066bb:	8a 07                	mov    (%edi),%al
5066bd:	47                   	inc    %edi
5066be:	89 44 24 08          	mov    %eax,0x8(%esp)
5066c2:	85 ed                	test   %ebp,%ebp
5066c4:	8b 54 24 08          	mov    0x8(%esp),%edx
5066c8:	89 93 8c 01 00 00    	mov    %edx,0x18c(%ebx)
5066ce:	75 21                	jne    0x5066f1
5066d0:	8b 74 24 10          	mov    0x10(%esp),%esi
5066d4:	8b c3                	mov    %ebx,%eax
5066d6:	ff 56 0c             	call   *0xc(%esi)
5066d9:	85 c0                	test   %eax,%eax
5066db:	75 07                	jne    0x5066e4
5066dd:	33 c0                	xor    %eax,%eax
5066df:	e9 94 00 00 00       	jmp    0x506778
5066e4:	8b 54 24 10          	mov    0x10(%esp),%edx
5066e8:	8b 44 24 10          	mov    0x10(%esp),%eax
5066ec:	8b 68 04             	mov    0x4(%eax),%ebp
5066ef:	8b 3a                	mov    (%edx),%edi
5066f1:	4d                   	dec    %ebp
5066f2:	33 c0                	xor    %eax,%eax
5066f4:	8a 07                	mov    (%edi),%al
5066f6:	89 44 24 08          	mov    %eax,0x8(%esp)
5066fa:	47                   	inc    %edi
5066fb:	8b 54 24 08          	mov    0x8(%esp),%edx
5066ff:	c1 fa 04             	sar    $0x4,%edx
506702:	83 e2 0f             	and    $0xf,%edx
506705:	89 93 90 01 00 00    	mov    %edx,0x190(%ebx)
50670b:	8b 4c 24 08          	mov    0x8(%esp),%ecx
50670f:	83 e1 0f             	and    $0xf,%ecx
506712:	89 8b 94 01 00 00    	mov    %ecx,0x194(%ebx)
506718:	8b 03                	mov    (%ebx),%eax