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
51b719:	66 89 46 46          	mov    %ax,0x46(%esi)
51b71d:	eb 11                	jmp    0x51b730
51b71f:	56                   	push   %esi
51b720:	e8 fb c0 fd ff       	call   0x4f7820
51b725:	83 c4 04             	add    $0x4,%esp
51b728:	85 c0                	test   %eax,%eax
51b72a:	0f 85 56 02 00 00    	jne    0x51b986
51b730:	f6 46 01 20          	testb  $0x20,0x1(%esi)
51b734:	74 17                	je     0x51b74d
51b736:	56                   	push   %esi
51b737:	ff 76 40             	push   0x40(%esi)
51b73a:	ff 75 dc             	push   -0x24(%ebp)
51b73d:	e8 9e 99 ff ff       	call   0x5150e0
51b742:	83 c4 0c             	add    $0xc,%esp
51b745:	85 c0                	test   %eax,%eax
51b747:	0f 85 39 02 00 00    	jne    0x51b986
51b74d:	83 7e 70 00          	cmpl   $0x0,0x70(%esi)
51b751:	75 16                	jne    0x51b769
51b753:	6a 00                	push   $0x0
51b755:	ff 76 24             	push   0x24(%esi)
51b758:	ff 76 20             	push   0x20(%esi)
51b75b:	ff 76 40             	push   0x40(%esi)
51b75e:	ff 75 d8             	push   -0x28(%ebp)
51b761:	e8 aa bc fe ff       	call   0x507410
51b766:	83 c4 14             	add    $0x14,%esp
51b769:	ff 73 48             	push   0x48(%ebx)
51b76c:	e8 cf 81 01 00       	call   0x533940
51b771:	83 c4 04             	add    $0x4,%esp
51b774:	85 c0                	test   %eax,%eax
51b776:	0f 85 0a 02 00 00    	jne    0x51b986
51b77c:	8d 45 e4             	lea    -0x1c(%ebp),%eax
51b77f:	50                   	push   %eax
51b780:	ff 75 e0             	push   -0x20(%ebp)
51b783:	53                   	push   %ebx
51b784:	e8 d7 d2 fd ff       	call   0x4f8a60
51b789:	89 45 e0             	mov    %eax,-0x20(%ebp)
51b78c:	8d 45 e0             	lea    -0x20(%ebp),%eax
51b78f:	50                   	push   %eax
51b790:	0f b7 45 f6          	movzwl -0xa(%ebp),%eax
51b794:	50                   	push   %eax
51b795:	ff 75 d0             	push   -0x30(%ebp)
51b798:	53                   	push   %ebx
51b799:	e8 32 2d fe ff       	call   0x4fe4d0
51b79e:	8b 45 e0             	mov    -0x20(%ebp),%eax
51b7a1:	83 c4 1c             	add    $0x1c,%esp
51b7a4:	85 c0                	test   %eax,%eax
51b7a6:	0f 85 da 01 00 00    	jne    0x51b986
51b7ac:	38 43 08             	cmp    %al,0x8(%ebx)
51b7af:	0f 85 e7 00 00 00    	jne    0x51b89c
51b7b5:	8b 7e 74             	mov    0x74(%esi),%edi
51b7b8:	39 47 14             	cmp    %eax,0x14(%edi)
51b7bb:	7d 11                	jge    0x51b7ce
51b7bd:	57                   	push   %edi
51b7be:	e8 bd ab fd ff       	call   0x4f6380
51b7c3:	83 c4 04             	add    $0x4,%esp
51b7c6:	85 c0                	test   %eax,%eax
51b7c8:	0f 85 b8 01 00 00    	jne    0x51b986
51b7ce:	0f be 46 44          	movsbl 0x44(%esi),%eax
51b7d2:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
51b7d5:	48                   	dec    %eax
51b7d6:	3b c8                	cmp    %eax,%ecx
51b7d8:	7d 06                	jge    0x51b7e0
51b7da:	8b 44 8e 7c          	mov    0x7c(%esi,%ecx,4),%eax
51b7de:	eb 03                	jmp    0x51b7e3
51b7e0:	8b 46 74             	mov    0x74(%esi),%eax
51b7e3:	8b 40 04             	mov    0x4(%eax),%eax
51b7e6:	0f b7 4f 18          	movzwl 0x18(%edi),%ecx
51b7ea:	8b 57 38             	mov    0x38(%edi),%edx
51b7ed:	89 45 cc             	mov    %eax,-0x34(%ebp)
51b7f0:	8b 47 40             	mov    0x40(%edi),%eax
51b7f3:	66 8b 44 48 fe       	mov    -0x2(%eax,%ecx,2),%ax
51b7f8:	8a e8                	mov    %al,%ch
51b7fa:	8a cc                	mov    %ah,%cl
51b7fc:	0f b7 47 1a          	movzwl 0x1a(%edi),%eax
51b800:	0f b7 c9             	movzwl %cx,%ecx
51b803:	23 c8                	and    %eax,%ecx
51b805:	8d 42 04             	lea    0x4(%edx),%eax
51b808:	03 ca                	add    %edx,%ecx
51b80a:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
51b80d:	3b c8                	cmp    %eax,%ecx
51b80f:	73 1e                	jae    0x51b82f
51b811:	68 8d 1d 01 00       	push   $0x11d8d
51b816:	e8 95 45 00 00       	call   0x51fdb0
51b81b:	83 c4 04             	add    $0x4,%esp
51b81e:	5f                   	pop    %edi
51b81f:	5b                   	pop    %ebx
51b820:	5e                   	pop    %esi
51b821:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51b824:	33 cd                	xor    %ebp,%ecx
51b826:	e8 af 5c 0c 00       	call   0x5e14da
51b82b:	8b e5                	mov    %ebp,%esp
51b82d:	5d                   	pop    %ebp
51b82e:	c3                   	ret
51b82f:	8b 47 4c             	mov    0x4c(%edi),%eax
51b832:	51                   	push   %ecx
51b833:	57                   	push   %edi
51b834:	ff d0                	call   *%eax
51b836:	ff 77 48             	push   0x48(%edi)
51b839:	0f b7 c0             	movzwl %ax,%eax
51b83c:	89 45 d8             	mov    %eax,-0x28(%ebp)
51b83f:	8b 45 dc             	mov    -0x24(%ebp),%eax
51b842:	8b 40 50             	mov    0x50(%eax),%eax
51b845:	89 45 dc             	mov    %eax,-0x24(%ebp)
51b848:	e8 f3 80 01 00       	call   0x533940
51b84d:	83 c4 0c             	add    $0xc,%esp
51b850:	89 45 e0             	mov    %eax,-0x20(%ebp)
51b853:	85 c0                	test   %eax,%eax
51b855:	75 24                	jne    0x51b87b
51b857:	8d 45 e0             	lea    -0x20(%ebp),%eax
51b85a:	50                   	push   %eax
51b85b:	ff 75 cc             	push   -0x34(%ebp)
51b85e:	8b 45 d8             	mov    -0x28(%ebp),%eax
51b861:	ff 75 dc             	push   -0x24(%ebp)
51b864:	83 c0 04             	add    $0x4,%eax
51b867:	50                   	push   %eax
51b868:	8b 45 c4             	mov    -0x3c(%ebp),%eax
51b86b:	83 c0 fc             	add    $0xfffffffc,%eax
51b86e:	50                   	push   %eax
51b86f:	ff 75 d0             	push   -0x30(%ebp)
51b872:	53                   	push   %ebx
51b873:	e8 b8 b8 fe ff       	call   0x507130
51b878:	83 c4 1c             	add    $0x1c,%esp
51b87b:	8d 45 e0             	lea    -0x20(%ebp),%eax
51b87e:	50                   	push   %eax
51b87f:	0f b7 47 18          	movzwl 0x18(%edi),%eax
51b883:	ff 75 d8             	push   -0x28(%ebp)
51b886:	48                   	dec    %eax
51b887:	50                   	push   %eax
51b888:	57                   	push   %edi
51b889:	e8 42 2c fe ff       	call   0x4fe4d0
51b88e:	8b 45 e0             	mov    -0x20(%ebp),%eax
51b891:	83 c4 10             	add    $0x10,%esp
51b894:	85 c0                	test   %eax,%eax
51b896:	0f 85 ea 00 00 00    	jne    0x51b986
51b89c:	56                   	push   %esi
51b89d:	e8 ae 89 fd ff       	call   0x4f4250
51b8a2:	8b f8                	mov    %eax,%edi
51b8a4:	83 c4 04             	add    $0x4,%esp
51b8a7:	85 ff                	test   %edi,%edi
51b8a9:	0f 85 d5 00 00 00    	jne    0x51b984
51b8af:	0f be 4e 44          	movsbl 0x44(%esi),%ecx
51b8b3:	3b 4d d4             	cmp    -0x2c(%ebp),%ecx
51b8b6:	7e 57                	jle    0x51b90f
51b8b8:	ff 76 74             	push   0x74(%esi)
51b8bb:	e8 00 68 ff ff       	call   0x5120c0
51b8c0:	fe 4e 44             	decb   0x44(%esi)
51b8c3:	83 c4 04             	add    $0x4,%esp
51b8c6:	0f be 46 44          	movsbl 0x44(%esi),%eax
51b8ca:	8b 7d d4             	mov    -0x2c(%ebp),%edi
51b8cd:	3b c7                	cmp    %edi,%eax
51b8cf:	7e 24                	jle    0x51b8f5
51b8d1:	8a 4e 44             	mov    0x44(%esi),%cl
51b8d4:	0f be c1             	movsbl %cl,%eax
51b8d7:	fe c9                	dec    %cl
51b8d9:	8b 44 86 78          	mov    0x78(%esi,%eax,4),%eax
51b8dd:	88 4e 44             	mov    %cl,0x44(%esi)
51b8e0:	85 c0                	test   %eax,%eax
51b8e2:	74 09                	je     0x51b8ed
51b8e4:	50                   	push   %eax
51b8e5:	e8 d6 67 ff ff       	call   0x5120c0
51b8ea:	83 c4 04             	add    $0x4,%esp
51b8ed:	0f be 46 44          	movsbl 0x44(%esi),%eax
51b8f1:	3b c7                	cmp    %edi,%eax
51b8f3:	7f dc                	jg     0x51b8d1
51b8f5:	0f be 46 44          	movsbl 0x44(%esi),%eax
51b8f9:	56                   	push   %esi
51b8fa:	8b 44 86 78          	mov    0x78(%esi,%eax,4),%eax
51b8fe:	89 46 74             	mov    %eax,0x74(%esi)
51b901:	e8 4a 89 fd ff       	call   0x4f4250
51b906:	8b f8                	mov    %eax,%edi
51b908:	83 c4 04             	add    $0x4,%esp
51b90b:	85 ff                	test   %edi,%edi
51b90d:	75 75                	jne    0x51b984
51b90f:	83 7d c8 00          	cmpl   $0x0,-0x38(%ebp)
51b913:	74 4a                	je     0x51b95f