51b37b:	75 09                	jne    0x51b386
51b37d:	57                   	push   %edi
51b37e:	e8 4d d6 03 00       	call   0x5589d0
51b383:	83 c4 04             	add    $0x4,%esp
51b386:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51b38a:	74 0f                	je     0x51b39b
51b38c:	83 46 0c ff          	addl   $0xffffffff,0xc(%esi)
51b390:	75 09                	jne    0x51b39b
51b392:	56                   	push   %esi
51b393:	e8 38 d6 03 00       	call   0x5589d0
51b398:	83 c4 04             	add    $0x4,%esp
51b39b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51b39e:	8b c3                	mov    %ebx,%eax
51b3a0:	5f                   	pop    %edi
51b3a1:	5e                   	pop    %esi
51b3a2:	33 cd                	xor    %ebp,%ecx
51b3a4:	5b                   	pop    %ebx
51b3a5:	e8 30 61 0c 00       	call   0x5e14da
51b3aa:	8b e5                	mov    %ebp,%esp
51b3ac:	5d                   	pop    %ebp
51b3ad:	c3                   	ret
51b3ae:	cc                   	int3
51b3af:	cc                   	int3
51b3b0:	55                   	push   %ebp
51b3b1:	8b ec                	mov    %esp,%ebp
51b3b3:	83 ec 0c             	sub    $0xc,%esp
51b3b6:	56                   	push   %esi
51b3b7:	8b 75 0c             	mov    0xc(%ebp),%esi
51b3ba:	0f 57 c0             	xorps  %xmm0,%xmm0
51b3bd:	56                   	push   %esi
51b3be:	66 0f 13 45 f8       	movlpd %xmm0,-0x8(%ebp)
51b3c3:	e8 68 e8 fe ff       	call   0x509c30
51b3c8:	83 c4 04             	add    $0x4,%esp
51b3cb:	83 f8 10             	cmp    $0x10,%eax
51b3ce:	75 17                	jne    0x51b3e7
51b3d0:	8b 45 10             	mov    0x10(%ebp),%eax
51b3d3:	5e                   	pop    %esi
51b3d4:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
51b3da:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
51b3e1:	33 c0                	xor    %eax,%eax
51b3e3:	8b e5                	mov    %ebp,%esp
51b3e5:	5d                   	pop    %ebp
51b3e6:	c3                   	ret
51b3e7:	53                   	push   %ebx
51b3e8:	57                   	push   %edi
51b3e9:	85 c0                	test   %eax,%eax
51b3eb:	0f 85 41 01 00 00    	jne    0x51b532
51b3f1:	8b 5d fc             	mov    -0x4(%ebp),%ebx
51b3f4:	8b 55 f8             	mov    -0x8(%ebp),%edx
51b3f7:	89 5d f4             	mov    %ebx,-0xc(%ebp)
51b3fa:	89 55 fc             	mov    %edx,-0x4(%ebp)
51b3fd:	0f 1f 00             	nopl   (%eax)
51b400:	8b 4d 08             	mov    0x8(%ebp),%ecx
51b403:	83 b9 10 01 00 00 00 	cmpl   $0x0,0x110(%ecx)
51b40a:	0f 85 22 01 00 00    	jne    0x51b532
51b410:	8b 7e 74             	mov    0x74(%esi),%edi
51b413:	8a 4f 08             	mov    0x8(%edi),%cl
51b416:	84 c9                	test   %cl,%cl
51b418:	75 05                	jne    0x51b41f
51b41a:	38 4f 02             	cmp    %cl,0x2(%edi)
51b41d:	75 0d                	jne    0x51b42c
51b41f:	0f b7 47 18          	movzwl 0x18(%edi),%eax
51b423:	99                   	cltd
51b424:	01 45 fc             	add    %eax,-0x4(%ebp)
51b427:	13 da                	adc    %edx,%ebx
51b429:	89 5d f4             	mov    %ebx,-0xc(%ebp)
51b42c:	84 c9                	test   %cl,%cl
51b42e:	0f 84 99 00 00 00    	je     0x51b4cd
51b434:	8a 4e 44             	mov    0x44(%esi),%cl
51b437:	84 c9                	test   %cl,%cl
51b439:	0f 84 dc 00 00 00    	je     0x51b51b
51b43f:	80 66 01 f9          	andb   $0xf9,0x1(%esi)
51b443:	33 c0                	xor    %eax,%eax
51b445:	66 89 46 32          	mov    %ax,0x32(%esi)
51b449:	0f be c1             	movsbl %cl,%eax
51b44c:	fe c9                	dec    %cl
51b44e:	66 8b 44 46 46       	mov    0x46(%esi,%eax,2),%ax
51b453:	66 89 46 46          	mov    %ax,0x46(%esi)
51b457:	0f be c1             	movsbl %cl,%eax
51b45a:	88 4e 44             	mov    %cl,0x44(%esi)
51b45d:	8b 44 86 78          	mov    0x78(%esi,%eax,4),%eax
51b461:	89 46 74             	mov    %eax,0x74(%esi)
51b464:	8b 57 48             	mov    0x48(%edi),%edx
51b467:	f6 42 1c 20          	testb  $0x20,0x1c(%edx)
51b46b:	74 3f                	je     0x51b4ac
51b46d:	8b 42 14             	mov    0x14(%edx),%eax
51b470:	ff 48 78             	decl   0x78(%eax)
51b473:	8b 88 88 00 00 00    	mov    0x88(%eax),%ecx
51b479:	89 4a 10             	mov    %ecx,0x10(%edx)
51b47c:	8b 78 3c             	mov    0x3c(%eax),%edi
51b47f:	89 90 88 00 00 00    	mov    %edx,0x88(%eax)
51b485:	ff 72 04             	push   0x4(%edx)
51b488:	8b 4a 18             	mov    0x18(%edx),%ecx
51b48b:	8b 80 98 00 00 00    	mov    0x98(%eax),%eax
51b491:	49                   	dec    %ecx
51b492:	8b 1f                	mov    (%edi),%ebx
51b494:	99                   	cltd
51b495:	52                   	push   %edx
51b496:	50                   	push   %eax
51b497:	6a 00                	push   $0x0
51b499:	51                   	push   %ecx
51b49a:	e8 61 66 0c 00       	call   0x5e1b00
51b49f:	52                   	push   %edx
51b4a0:	50                   	push   %eax
51b4a1:	8b 43 48             	mov    0x48(%ebx),%eax
51b4a4:	57                   	push   %edi
51b4a5:	ff d0                	call   *%eax
51b4a7:	83 c4 10             	add    $0x10,%esp
51b4aa:	eb 09                	jmp    0x51b4b5
51b4ac:	52                   	push   %edx
51b4ad:	e8 3e 91 01 00       	call   0x5345f0
51b4b2:	83 c4 04             	add    $0x4,%esp
51b4b5:	8b 7e 74             	mov    0x74(%esi),%edi
51b4b8:	66 8b 46 46          	mov    0x46(%esi),%ax
51b4bc:	66 3b 47 18          	cmp    0x18(%edi),%ax
51b4c0:	0f 83 6e ff ff ff    	jae    0x51b434
51b4c6:	66 ff 46 46          	incw   0x46(%esi)
51b4ca:	8b 5d f4             	mov    -0xc(%ebp),%ebx
51b4cd:	0f b7 4e 46          	movzwl 0x46(%esi),%ecx
51b4d1:	0f b7 47 18          	movzwl 0x18(%edi),%eax
51b4d5:	3b c8                	cmp    %eax,%ecx
51b4d7:	75 0d                	jne    0x51b4e6
51b4d9:	0f b6 4f 09          	movzbl 0x9(%edi),%ecx
51b4dd:	8b 47 38             	mov    0x38(%edi),%eax
51b4e0:	8b 44 01 08          	mov    0x8(%ecx,%eax,1),%eax
51b4e4:	eb 1a                	jmp    0x51b500
51b4e6:	8b 47 40             	mov    0x40(%edi),%eax
51b4e9:	66 8b 04 48          	mov    (%eax,%ecx,2),%ax
51b4ed:	8a e8                	mov    %al,%ch
51b4ef:	8a cc                	mov    %ah,%cl
51b4f1:	0f b7 47 1a          	movzwl 0x1a(%edi),%eax
51b4f5:	0f b7 c9             	movzwl %cx,%ecx
51b4f8:	23 c8                	and    %eax,%ecx
51b4fa:	8b 47 38             	mov    0x38(%edi),%eax
51b4fd:	8b 04 01             	mov    (%ecx,%eax,1),%eax
51b500:	0f c8                	bswap  %eax
51b502:	50                   	push   %eax
51b503:	56                   	push   %esi
51b504:	e8 97 e4 fe ff       	call   0x5099a0
51b509:	83 c4 08             	add    $0x8,%esp
51b50c:	85 c0                	test   %eax,%eax
51b50e:	0f 84 ec fe ff ff    	je     0x51b400
51b514:	5f                   	pop    %edi
51b515:	5b                   	pop    %ebx
51b516:	5e                   	pop    %esi
51b517:	8b e5                	mov    %ebp,%esp
51b519:	5d                   	pop    %ebp
51b51a:	c3                   	ret
51b51b:	8b 45 10             	mov    0x10(%ebp),%eax
51b51e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51b521:	56                   	push   %esi
51b522:	89 08                	mov    %ecx,(%eax)
51b524:	8b 4d f4             	mov    -0xc(%ebp),%ecx
51b527:	89 48 04             	mov    %ecx,0x4(%eax)
51b52a:	e8 01 e7 fe ff       	call   0x509c30
51b52f:	83 c4 04             	add    $0x4,%esp
51b532:	5f                   	pop    %edi
51b533:	5b                   	pop    %ebx
51b534:	5e                   	pop    %esi
51b535:	8b e5                	mov    %ebp,%esp
51b537:	5d                   	pop    %ebp
51b538:	c3                   	ret
51b539:	cc                   	int3
51b53a:	cc                   	int3
51b53b:	cc                   	int3
51b53c:	cc                   	int3
51b53d:	cc                   	int3
51b53e:	cc                   	int3
51b53f:	cc                   	int3
51b540:	55                   	push   %ebp
51b541:	8b ec                	mov    %esp,%ebp
51b543:	56                   	push   %esi
51b544:	8b 75 08             	mov    0x8(%ebp),%esi
51b547:	57                   	push   %edi
51b548:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51b54c:	74 12                	je     0x51b560
51b54e:	ff 46 0c             	incl   0xc(%esi)
51b551:	80 7e 0a 00          	cmpb   $0x0,0xa(%esi)
51b555:	75 09                	jne    0x51b560
51b557:	56                   	push   %esi
51b558:	e8 73 ba fd ff       	call   0x4f6fd0
51b55d:	83 c4 04             	add    $0x4,%esp
51b560:	ff 75 10             	push   0x10(%ebp)
51b563:	ff 75 0c             	push   0xc(%ebp)
51b566:	56                   	push   %esi
51b567:	e8 54 af fd ff       	call   0x4f64c0
51b56c:	83 c4 0c             	add    $0xc,%esp
51b56f:	8b f8                	mov    %eax,%edi
51b571:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51b575:	74 0f                	je     0x51b586
51b577:	83 46 0c ff          	addl   $0xffffffff,0xc(%esi)
51b57b:	75 09                	jne    0x51b586
51b57d:	56                   	push   %esi
51b57e:	e8 4d d4 03 00       	call   0x5589d0
51b583:	83 c4 04             	add    $0x4,%esp
51b586:	8b c7                	mov    %edi,%eax
51b588:	5f                   	pop    %edi
51b589:	5e                   	pop    %esi
51b58a:	5d                   	pop    %ebp
51b58b:	c3                   	ret
51b58c:	cc                   	int3
51b58d:	cc                   	int3
51b58e:	cc                   	int3
51b58f:	cc                   	int3
51b590:	55                   	push   %ebp
51b591:	8b ec                	mov    %esp,%ebp
51b593:	56                   	push   %esi
51b594:	8b 75 08             	mov    0x8(%ebp),%esi
51b597:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51b59b:	74 45                	je     0x51b5e2
51b59d:	ff 46 0c             	incl   0xc(%esi)
51b5a0:	80 7e 0a 00          	cmpb   $0x0,0xa(%esi)
51b5a4:	75 09                	jne    0x51b5af
51b5a6:	56                   	push   %esi
51b5a7:	e8 24 ba fd ff       	call   0x4f6fd0
51b5ac:	83 c4 04             	add    $0x4,%esp
51b5af:	57                   	push   %edi
51b5b0:	ff 75 18             	push   0x18(%ebp)
51b5b3:	ff 75 14             	push   0x14(%ebp)
51b5b6:	ff 75 10             	push   0x10(%ebp)
51b5b9:	ff 75 0c             	push   0xc(%ebp)
51b5bc:	56                   	push   %esi
51b5bd:	e8 ce b1 fd ff       	call   0x4f6790
51b5c2:	83 c4 14             	add    $0x14,%esp
51b5c5:	8b f8                	mov    %eax,%edi
51b5c7:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51b5cb:	74 0f                	je     0x51b5dc
51b5cd:	83 46 0c ff          	addl   $0xffffffff,0xc(%esi)
51b5d1:	75 09                	jne    0x51b5dc
51b5d3:	56                   	push   %esi
51b5d4:	e8 f7 d3 03 00       	call   0x5589d0
51b5d9:	83 c4 04             	add    $0x4,%esp
51b5dc:	8b c7                	mov    %edi,%eax
51b5de:	5f                   	pop    %edi
51b5df:	5e                   	pop    %esi
51b5e0:	5d                   	pop    %ebp
51b5e1:	c3                   	ret
51b5e2:	ff 75 18             	push   0x18(%ebp)
51b5e5:	ff 75 14             	push   0x14(%ebp)
51b5e8:	ff 75 10             	push   0x10(%ebp)
51b5eb:	ff 75 0c             	push   0xc(%ebp)
51b5ee:	56                   	push   %esi
51b5ef:	e8 9c b1 fd ff       	call   0x4f6790
51b5f4:	83 c4 14             	add    $0x14,%esp
51b5f7:	5e                   	pop    %esi
51b5f8:	5d                   	pop    %ebp
51b5f9:	c3                   	ret
51b5fa:	cc                   	int3
51b5fb:	cc                   	int3
51b5fc:	cc                   	int3
51b5fd:	cc                   	int3
51b5fe:	cc                   	int3
51b5ff:	cc                   	int3
51b600:	55                   	push   %ebp
51b601:	8b ec                	mov    %esp,%ebp
51b603:	83 ec 3c             	sub    $0x3c,%esp
51b606:	a1 d4 89 72 00       	mov    0x7289d4,%eax
51b60b:	33 c5                	xor    %ebp,%eax
51b60d:	89 45 fc             	mov    %eax,-0x4(%ebp)
51b610:	80 65 0c 02          	andb   $0x2,0xc(%ebp)
51b614:	56                   	push   %esi
51b615:	8b 75 08             	mov    0x8(%ebp),%esi
51b618:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
51b61f:	80 3e 03             	cmpb   $0x3,(%esi)
51b622:	8b 46 08             	mov    0x8(%esi),%eax
51b625:	89 45 d8             	mov    %eax,-0x28(%ebp)
51b628:	8b 40 04             	mov    0x4(%eax),%eax
51b62b:	89 45 dc             	mov    %eax,-0x24(%ebp)
51b62e:	75 11                	jne    0x51b641
51b630:	56                   	push   %esi
51b631:	e8 ca c3 fd ff       	call   0x4f7a00
51b636:	83 c4 04             	add    $0x4,%esp
51b639:	85 c0                	test   %eax,%eax
51b63b:	0f 85 47 03 00 00    	jne    0x51b988
51b641:	0f be 46 44          	movsbl 0x44(%esi),%eax
51b645:	0f b7 4e 46          	movzwl 0x46(%esi),%ecx
51b649:	53                   	push   %ebx
51b64a:	8b 5e 74             	mov    0x74(%esi),%ebx
51b64d:	89 45 d4             	mov    %eax,-0x2c(%ebp)
51b650:	89 4d d0             	mov    %ecx,-0x30(%ebp)
51b653:	8b 43 40             	mov    0x40(%ebx),%eax
51b656:	66 8b 04 48          	mov    (%eax,%ecx,2),%ax
51b65a:	8a e8                	mov    %al,%ch
51b65c:	8a cc                	mov    %ah,%cl
51b65e:	0f b7 43 1a          	movzwl 0x1a(%ebx),%eax
51b662:	0f b7 c9             	movzwl %cx,%ecx
51b665:	23 c8                	and    %eax,%ecx
51b667:	03 4b 38             	add    0x38(%ebx),%ecx
51b66a:	83 7b 14 00          	cmpl   $0x0,0x14(%ebx)
51b66e:	89 4d e0             	mov    %ecx,-0x20(%ebp)
51b671:	7d 25                	jge    0x51b698
51b673:	53                   	push   %ebx
51b674:	e8 07 ad fd ff       	call   0x4f6380
51b679:	83 c4 04             	add    $0x4,%esp
51b67c:	85 c0                	test   %eax,%eax
51b67e:	74 15                	je     0x51b695
51b680:	5b                   	pop    %ebx
51b681:	b8 0b 00 00 00       	mov    $0xb,%eax
51b686:	5e                   	pop    %esi
51b687:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51b68a:	33 cd                	xor    %ebp,%ecx
51b68c:	e8 49 5e 0c 00       	call   0x5e14da
51b691:	8b e5                	mov    %ebp,%esp
51b693:	5d                   	pop    %ebp
51b694:	c3                   	ret
51b695:	8b 4d e0             	mov    -0x20(%ebp),%ecx
51b698:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
51b69c:	57                   	push   %edi
51b69d:	74 51                	je     0x51b6f0
51b69f:	80 7b 08 00          	cmpb   $0x0,0x8(%ebx)
51b6a3:	74 3a                	je     0x51b6df
51b6a5:	51                   	push   %ecx
51b6a6:	53                   	push   %ebx
51b6a7:	e8 04 c7 fd ff       	call   0x4f7db0
51b6ac:	8b 7b 14             	mov    0x14(%ebx),%edi
51b6af:	83 c4 08             	add    $0x8,%esp
51b6b2:	0f b7 c8             	movzwl %ax,%ecx
51b6b5:	83 c7 02             	add    $0x2,%edi
51b6b8:	03 f9                	add    %ecx,%edi
51b6ba:	b8 ab aa aa aa       	mov    $0xaaaaaaab,%eax
51b6bf:	8b 4d dc             	mov    -0x24(%ebp),%ecx
51b6c2:	8b 49 24             	mov    0x24(%ecx),%ecx
51b6c5:	03 c9                	add    %ecx,%ecx
51b6c7:	f7 e1                	mul    %ecx
51b6c9:	d1 ea                	shr    $1,%edx
51b6cb:	3b fa                	cmp    %edx,%edi
51b6cd:	7f 10                	jg     0x51b6df
51b6cf:	66 83 7b 18 01       	cmpw   $0x1,0x18(%ebx)
51b6d4:	74 09                	je     0x51b6df
51b6d6:	c7 45 c8 01 00 00 00 	movl   $0x1,-0x38(%ebp)
51b6dd:	eb 11                	jmp    0x51b6f0
51b6df:	56                   	push   %esi
51b6e0:	e8 4b 9a ff ff       	call   0x515130
51b6e5:	83 c4 04             	add    $0x4,%esp
51b6e8:	85 c0                	test   %eax,%eax
51b6ea:	0f 85 96 02 00 00    	jne    0x51b986
51b6f0:	80 7b 08 00          	cmpb   $0x0,0x8(%ebx)
51b6f4:	75 3a                	jne    0x51b730
51b6f6:	80 66 01 f1          	andb   $0xf1,0x1(%esi)
51b6fa:	33 c0                	xor    %eax,%eax
51b6fc:	66 89 46 32          	mov    %ax,0x32(%esi)
51b700:	38 06                	cmp    %al,(%esi)
51b702:	75 1b                	jne    0x51b71f
51b704:	0f b7 4e 46          	movzwl 0x46(%esi),%ecx
51b708:	66 85 c9             	test   %cx,%cx
51b70b:	74 12                	je     0x51b71f
51b70d:	8b 46 74             	mov    0x74(%esi),%eax
51b710:	80 78 08 00          	cmpb   $0x0,0x8(%eax)
51b714:	74 09                	je     0x51b71f
51b716:	8d 41 ff             	lea    -0x1(%ecx),%eax