506437:	cc                   	int3
506438:	cc                   	int3
506439:	cc                   	int3
50643a:	cc                   	int3
50643b:	cc                   	int3
50643c:	cc                   	int3
50643d:	cc                   	int3
50643e:	cc                   	int3
50643f:	cc                   	int3
506440:	55                   	push   %ebp
506441:	8b ec                	mov    %esp,%ebp
506443:	8b 55 08             	mov    0x8(%ebp),%edx
506446:	56                   	push   %esi
506447:	8b 72 04             	mov    0x4(%edx),%esi
50644a:	39 32                	cmp    %esi,(%edx)
50644c:	7f 05                	jg     0x506453
50644e:	33 c0                	xor    %eax,%eax
506450:	5e                   	pop    %esi
506451:	5d                   	pop    %ebp
506452:	c3                   	ret
506453:	8b 42 08             	mov    0x8(%edx),%eax
506456:	8b 0c b0             	mov    (%eax,%esi,4),%ecx
506459:	8d 46 01             	lea    0x1(%esi),%eax
50645c:	89 42 04             	mov    %eax,0x4(%edx)
50645f:	85 c9                	test   %ecx,%ecx
506461:	74 eb                	je     0x50644e
506463:	0f b7 51 08          	movzwl 0x8(%ecx),%edx
506467:	8b c2                	mov    %edx,%eax
506469:	25 02 02 00 00       	and    $0x202,%eax
50646e:	3d 02 02 00 00       	cmp    $0x202,%eax
506473:	75 0c                	jne    0x506481
506475:	80 79 0a 01          	cmpb   $0x1,0xa(%ecx)
506479:	75 06                	jne    0x506481
50647b:	8b 41 10             	mov    0x10(%ecx),%eax
50647e:	5e                   	pop    %esi
50647f:	5d                   	pop    %ebp
506480:	c3                   	ret
506481:	f6 c2 01             	test   $0x1,%dl
506484:	75 c8                	jne    0x50644e
506486:	6a 01                	push   $0x1
506488:	51                   	push   %ecx
506489:	e8 02 37 05 00       	call   0x559b90
50648e:	83 c4 08             	add    $0x8,%esp
506491:	5e                   	pop    %esi
506492:	5d                   	pop    %ebp
506493:	c3                   	ret
506494:	cc                   	int3
506495:	cc                   	int3
506496:	cc                   	int3
506497:	cc                   	int3
506498:	cc                   	int3
506499:	cc                   	int3
50649a:	cc                   	int3
50649b:	cc                   	int3
50649c:	cc                   	int3
50649d:	cc                   	int3
50649e:	cc                   	int3
50649f:	cc                   	int3
5064a0:	55                   	push   %ebp
5064a1:	8b ec                	mov    %esp,%ebp
5064a3:	56                   	push   %esi
5064a4:	57                   	push   %edi
5064a5:	8b 7d 08             	mov    0x8(%ebp),%edi
5064a8:	8b 37                	mov    (%edi),%esi
5064aa:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
5064b0:	8d 45 08             	lea    0x8(%ebp),%eax
5064b3:	50                   	push   %eax
5064b4:	56                   	push   %esi
5064b5:	e8 f6 6a 02 00       	call   0x52cfb0
5064ba:	03 f0                	add    %eax,%esi
5064bc:	83 c4 08             	add    $0x8,%esp
5064bf:	8b 45 08             	mov    0x8(%ebp),%eax
5064c2:	3d b3 00 00 00       	cmp    $0xb3,%eax
5064c7:	74 e7                	je     0x5064b0
5064c9:	83 f8 3b             	cmp    $0x3b,%eax
5064cc:	74 23                	je     0x5064f1
5064ce:	83 f8 73             	cmp    $0x73,%eax
5064d1:	74 1e                	je     0x5064f1
5064d3:	83 f8 74             	cmp    $0x74,%eax
5064d6:	74 19                	je     0x5064f1
5064d8:	3d a1 00 00 00       	cmp    $0xa1,%eax
5064dd:	74 12                	je     0x5064f1
5064df:	3d a2 00 00 00       	cmp    $0xa2,%eax
5064e4:	74 0b                	je     0x5064f1
5064e6:	66 83 3c 45 48 5d 6b 	cmpw   $0x3b,0x6b5d48(,%eax,2)
5064ed:	00 3b
5064ef:	75 05                	jne    0x5064f6
5064f1:	b8 3b 00 00 00       	mov    $0x3b,%eax
5064f6:	89 37                	mov    %esi,(%edi)
5064f8:	5f                   	pop    %edi
5064f9:	5e                   	pop    %esi
5064fa:	5d                   	pop    %ebp
5064fb:	c3                   	ret
5064fc:	cc                   	int3
5064fd:	cc                   	int3
5064fe:	cc                   	int3
5064ff:	cc                   	int3
506500:	55                   	push   %ebp
506501:	8b ec                	mov    %esp,%ebp
506503:	6a 01                	push   $0x1
506505:	ff 75 08             	push   0x8(%ebp)
506508:	e8 23 00 00 00       	call   0x506530
50650d:	83 c4 08             	add    $0x8,%esp
506510:	85 c0                	test   %eax,%eax
506512:	74 07                	je     0x50651b
506514:	b8 01 00 00 00       	mov    $0x1,%eax
506519:	5d                   	pop    %ebp
50651a:	c3                   	ret
50651b:	5d                   	pop    %ebp
50651c:	e9 1f b6 03 00       	jmp    0x541b40
506521:	cc                   	int3
506522:	cc                   	int3
506523:	cc                   	int3
506524:	cc                   	int3
506525:	cc                   	int3
506526:	cc                   	int3
506527:	cc                   	int3
506528:	cc                   	int3
506529:	cc                   	int3
50652a:	cc                   	int3
50652b:	cc                   	int3
50652c:	cc                   	int3
50652d:	cc                   	int3
50652e:	cc                   	int3
50652f:	cc                   	int3
506530:	55                   	push   %ebp
506531:	8b ec                	mov    %esp,%ebp
506533:	51                   	push   %ecx
506534:	53                   	push   %ebx
506535:	56                   	push   %esi
506536:	57                   	push   %edi
506537:	8b 7d 08             	mov    0x8(%ebp),%edi
50653a:	8b 47 70             	mov    0x70(%edi),%eax
50653d:	8b 77 0c             	mov    0xc(%edi),%esi
506540:	89 75 fc             	mov    %esi,-0x4(%ebp)
506543:	85 c0                	test   %eax,%eax
506545:	74 10                	je     0x506557
506547:	b9 02 00 00 00       	mov    $0x2,%ecx
50654c:	f7 e9                	imul   %ecx
50654e:	8b d8                	mov    %eax,%ebx
506550:	89 55 08             	mov    %edx,0x8(%ebp)
506553:	8b ca                	mov    %edx,%ecx
506555:	eb 0a                	jmp    0x506561
506557:	33 c9                	xor    %ecx,%ecx
506559:	bb 33 00 00 00       	mov    $0x33,%ebx
50655e:	89 4d 08             	mov    %ecx,0x8(%ebp)
506561:	8b 36                	mov    (%esi),%esi
506563:	8b 86 80 00 00 00    	mov    0x80(%esi),%eax
506569:	99                   	cltd
50656a:	3b ca                	cmp    %edx,%ecx
50656c:	7c 55                	jl     0x5065c3
50656e:	7f 04                	jg     0x506574
506570:	3b d8                	cmp    %eax,%ebx
506572:	76 4f                	jbe    0x5065c3
506574:	80 7e 51 00          	cmpb   $0x0,0x51(%esi)
506578:	75 3d                	jne    0x5065b7
50657a:	80 7e 52 00          	cmpb   $0x0,0x52(%esi)
50657e:	75 37                	jne    0x5065b7
506580:	83 be bc 00 00 00 00 	cmpl   $0x0,0xbc(%esi)
506587:	c6 46 51 01          	movb   $0x1,0x51(%esi)
50658b:	7e 0a                	jle    0x506597
50658d:	c7 86 10 01 00 00 01 	movl   $0x1,0x110(%esi)
506594:	00 00 00
506597:	ff 86 18 01 00 00    	incl   0x118(%esi)
50659d:	33 c0                	xor    %eax,%eax
50659f:	66 89 86 1c 01 00 00 	mov    %ax,0x11c(%esi)
5065a6:	8b 86 f4 00 00 00    	mov    0xf4(%esi),%eax
5065ac:	85 c0                	test   %eax,%eax
5065ae:	74 07                	je     0x5065b7
5065b0:	c7 40 0c 07 00 00 00 	movl   $0x7,0xc(%eax)
5065b7:	5f                   	pop    %edi
5065b8:	5e                   	pop    %esi
5065b9:	b8 07 00 00 00       	mov    $0x7,%eax
5065be:	5b                   	pop    %ebx
5065bf:	8b e5                	mov    %ebp,%esp
5065c1:	5d                   	pop    %ebp
5065c2:	c3                   	ret
5065c3:	8b 55 08             	mov    0x8(%ebp),%edx
5065c6:	8b c3                	mov    %ebx,%eax
5065c8:	8b ca                	mov    %edx,%ecx
5065ca:	0f a4 c1 02          	shld   $0x2,%eax,%ecx
5065ce:	c1 e0 02             	shl    $0x2,%eax
5065d1:	03 d8                	add    %eax,%ebx
5065d3:	13 d1                	adc    %ecx,%edx
5065d5:	0f a4 da 02          	shld   $0x2,%ebx,%edx
5065d9:	52                   	push   %edx
5065da:	c1 e3 02             	shl    $0x2,%ebx
5065dd:	53                   	push   %ebx
5065de:	ff 77 68             	push   0x68(%edi)
5065e1:	56                   	push   %esi
5065e2:	e8 79 af 01 00       	call   0x521560
5065e7:	8b f0                	mov    %eax,%esi
5065e9:	83 c4 10             	add    $0x10,%esp
5065ec:	85 f6                	test   %esi,%esi
5065ee:	74 50                	je     0x506640
5065f0:	8b 5d fc             	mov    -0x4(%ebp),%ebx
5065f3:	8b 03                	mov    (%ebx),%eax
5065f5:	85 c0                	test   %eax,%eax
5065f7:	74 28                	je     0x506621
5065f9:	3b b0 4c 01 00 00    	cmp    0x14c(%eax),%esi
5065ff:	73 20                	jae    0x506621
506601:	3b b0 44 01 00 00    	cmp    0x144(%eax),%esi
506607:	72 07                	jb     0x506610
506609:	b9 80 00 00 00       	mov    $0x80,%ecx
50660e:	eb 1d                	jmp    0x50662d
506610:	3b b0 48 01 00 00    	cmp    0x148(%eax),%esi
506616:	72 09                	jb     0x506621
506618:	0f b7 88 1e 01 00 00 	movzwl 0x11e(%eax),%ecx
50661f:	eb 0c                	jmp    0x50662d
506621:	56                   	push   %esi
506622:	ff 15 3c 18 72 00    	call   *0x72183c
506628:	83 c4 04             	add    $0x4,%esp
50662b:	8b c8                	mov    %eax,%ecx
50662d:	b8 cd cc cc cc       	mov    $0xcccccccd,%eax
506632:	89 4b 30             	mov    %ecx,0x30(%ebx)
506635:	f7 e1                	mul    %ecx
506637:	89 77 68             	mov    %esi,0x68(%edi)
50663a:	c1 ea 04             	shr    $0x4,%edx
50663d:	89 57 70             	mov    %edx,0x70(%edi)
506640:	33 c9                	xor    %ecx,%ecx
506642:	b8 07 00 00 00       	mov    $0x7,%eax
506647:	5f                   	pop    %edi
506648:	85 f6                	test   %esi,%esi
50664a:	5e                   	pop    %esi
50664b:	0f 45 c1             	cmovne %ecx,%eax
50664e:	5b                   	pop    %ebx
50664f:	8b e5                	mov    %ebp,%esp
506651:	5d                   	pop    %ebp
506652:	c3                   	ret
506653:	cc                   	int3
506654:	cc                   	int3
506655:	cc                   	int3
506656:	cc                   	int3
506657:	cc                   	int3
506658:	cc                   	int3
506659:	cc                   	int3
50665a:	cc                   	int3
50665b:	cc                   	int3
50665c:	cc                   	int3
50665d:	cc                   	int3
50665e:	cc                   	int3
50665f:	cc                   	int3
506660:	55                   	push   %ebp
506661:	8b ec                	mov    %esp,%ebp
506663:	53                   	push   %ebx
506664:	57                   	push   %edi
506665:	8b 7d 08             	mov    0x8(%ebp),%edi
506668:	bb 05 00 00 00       	mov    $0x5,%ebx
50666d:	8b 8f 64 01 00 00    	mov    0x164(%edi),%ecx
506673:	8b c1                	mov    %ecx,%eax
506675:	99                   	cltd
506676:	f7 fb                	idiv   %ebx
506678:	85 d2                	test   %edx,%edx
50667a:	75 53                	jne    0x5066cf
50667c:	8b c1                	mov    %ecx,%eax
50667e:	bb 04 00 00 00       	mov    $0x4,%ebx
506683:	f7 eb                	imul   %ebx
506685:	56                   	push   %esi
506686:	8b f0                	mov    %eax,%esi
506688:	8b ca                	mov    %edx,%ecx
50668a:	b8 05 00 00 00       	mov    $0x5,%eax
50668f:	f7 eb                	imul   %ebx
506691:	03 f0                	add    %eax,%esi
506693:	13 ca                	adc    %edx,%ecx
506695:	51                   	push   %ecx
506696:	56                   	push   %esi
506697:	ff b7 7c 01 00 00    	push   0x17c(%edi)
50669d:	57                   	push   %edi
50669e:	e8 bd ae 01 00       	call   0x521560
5066a3:	83 c4 10             	add    $0x10,%esp
5066a6:	8b c8                	mov    %eax,%ecx
5066a8:	5e                   	pop    %esi
5066a9:	85 c9                	test   %ecx,%ecx
5066ab:	75 07                	jne    0x5066b4
5066ad:	5f                   	pop    %edi
5066ae:	8d 43 03             	lea    0x3(%ebx),%eax
5066b1:	5b                   	pop    %ebx
5066b2:	5d                   	pop    %ebp
5066b3:	c3                   	ret
5066b4:	8b 87 64 01 00 00    	mov    0x164(%edi),%eax
5066ba:	0f 57 c0             	xorps  %xmm0,%xmm0
5066bd:	0f 11 04 81          	movups %xmm0,(%ecx,%eax,4)
5066c1:	c7 44 81 10 00 00 00 	movl   $0x0,0x10(%ecx,%eax,4)
5066c8:	00
5066c9:	89 8f 7c 01 00 00    	mov    %ecx,0x17c(%edi)
5066cf:	5f                   	pop    %edi
5066d0:	33 c0                	xor    %eax,%eax
5066d2:	5b                   	pop    %ebx
5066d3:	5d                   	pop    %ebp
5066d4:	c3                   	ret
5066d5:	cc                   	int3
5066d6:	cc                   	int3
5066d7:	cc                   	int3
5066d8:	cc                   	int3
5066d9:	cc                   	int3
5066da:	cc                   	int3
5066db:	cc                   	int3
5066dc:	cc                   	int3
5066dd:	cc                   	int3
5066de:	cc                   	int3
5066df:	cc                   	int3
5066e0:	55                   	push   %ebp
5066e1:	8b ec                	mov    %esp,%ebp
5066e3:	56                   	push   %esi
5066e4:	8b 75 08             	mov    0x8(%ebp),%esi
5066e7:	57                   	push   %edi
5066e8:	8b 7e 28             	mov    0x28(%esi),%edi
5066eb:	80 3f 03             	cmpb   $0x3,(%edi)
5066ee:	72 14                	jb     0x506704
5066f0:	57                   	push   %edi
5066f1:	e8 0a 13 ff ff       	call   0x4f7a00
5066f6:	83 c4 04             	add    $0x4,%esp
5066f9:	85 c0                	test   %eax,%eax
5066fb:	74 07                	je     0x506704
5066fd:	b9 01 00 00 00       	mov    $0x1,%ecx
506702:	eb 09                	jmp    0x50670d
506704:	33 c0                	xor    %eax,%eax
506706:	33 c9                	xor    %ecx,%ecx
506708:	38 07                	cmp    %al,(%edi)
50670a:	0f 95 c1             	setne  %cl
50670d:	c7 46 1c 00 00 00 00 	movl   $0x0,0x1c(%esi)
506714:	85 c9                	test   %ecx,%ecx
506716:	74 04                	je     0x50671c
506718:	c6 46 02 01          	movb   $0x1,0x2(%esi)
50671c:	5f                   	pop    %edi
50671d:	5e                   	pop    %esi
50671e:	5d                   	pop    %ebp
50671f:	c3                   	ret
506720:	55                   	push   %ebp
506721:	8b ec                	mov    %esp,%ebp
506723:	83 ec 1c             	sub    $0x1c,%esp
506726:	a1 d4 89 72 00       	mov    0x7289d4,%eax
50672b:	33 c5                	xor    %ebp,%eax
50672d:	89 45 fc             	mov    %eax,-0x4(%ebp)
506730:	8b 4d 0c             	mov    0xc(%ebp),%ecx
506733:	53                   	push   %ebx
506734:	56                   	push   %esi
506735:	8b 75 08             	mov    0x8(%ebp),%esi
506738:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
50673f:	57                   	push   %edi
506740:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
506743:	8b 46 40             	mov    0x40(%esi),%eax
506746:	8b 1e                	mov    (%esi),%ebx
506748:	8b 00                	mov    (%eax),%eax
50674a:	89 45 e8             	mov    %eax,-0x18(%ebp)
50674d:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
506753:	85 c0                	test   %eax,%eax
506755:	75 28                	jne    0x50677f
506757:	8d 45 f0             	lea    -0x10(%ebp),%eax
50675a:	50                   	push   %eax