4f850c:	57                   	push   %edi
4f850d:	e8 1e fa ff ff       	call   0x4f7f30
4f8512:	83 c4 0c             	add    $0xc,%esp
4f8515:	56                   	push   %esi
4f8516:	e8 a5 9b 01 00       	call   0x5120c0
4f851b:	83 c4 04             	add    $0x4,%esp
4f851e:	e9 4c 04 00 00       	jmp    0x4f896f
4f8523:	8b d6                	mov    %esi,%edx
4f8525:	8b 42 38             	mov    0x38(%edx),%eax
4f8528:	0f b6 72 09          	movzbl 0x9(%edx),%esi
4f852c:	89 45 c4             	mov    %eax,-0x3c(%ebp)
4f852f:	03 c6                	add    %esi,%eax
4f8531:	89 45 ac             	mov    %eax,-0x54(%ebp)
4f8534:	c7 47 1c 38 84 6b 00 	movl   $0x6b8438,0x1c(%edi)
4f853b:	8a 52 08             	mov    0x8(%edx),%dl
4f853e:	0f b6 48 05          	movzbl 0x5(%eax),%ecx
4f8542:	0f b6 40 06          	movzbl 0x6(%eax),%eax
4f8546:	c1 e1 08             	shl    $0x8,%ecx
4f8549:	0b c8                	or     %eax,%ecx
4f854b:	49                   	dec    %ecx
4f854c:	0f b7 c1             	movzwl %cx,%eax
4f854f:	89 45 bc             	mov    %eax,-0x44(%ebp)
4f8552:	8b 45 ac             	mov    -0x54(%ebp),%eax
4f8555:	0f b6 48 03          	movzbl 0x3(%eax),%ecx
4f8559:	0f b6 40 04          	movzbl 0x4(%eax),%eax
4f855d:	c1 e1 08             	shl    $0x8,%ecx
4f8560:	0b c8                	or     %eax,%ecx
4f8562:	0f b6 c2             	movzbl %dl,%eax
4f8565:	89 4d cc             	mov    %ecx,-0x34(%ebp)
4f8568:	b9 03 00 00 00       	mov    $0x3,%ecx
4f856d:	2b c8                	sub    %eax,%ecx
4f856f:	8b 45 cc             	mov    -0x34(%ebp),%eax
4f8572:	8d 0c 8e             	lea    (%esi,%ecx,4),%ecx
4f8575:	8d 04 41             	lea    (%ecx,%eax,2),%eax
4f8578:	89 4d 94             	mov    %ecx,-0x6c(%ebp)
4f857b:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
4f857e:	83 c0 fe             	add    $0xfffffffe,%eax
4f8581:	03 c1                	add    %ecx,%eax
4f8583:	89 45 a8             	mov    %eax,-0x58(%ebp)
4f8586:	84 d2                	test   %dl,%dl
4f8588:	75 42                	jne    0x4f85cc
4f858a:	8d 04 0e             	lea    (%esi,%ecx,1),%eax
4f858d:	8b 70 08             	mov    0x8(%eax),%esi
4f8590:	8b 45 c8             	mov    -0x38(%ebp),%eax
4f8593:	0f ce                	bswap  %esi
4f8595:	38 58 11             	cmp    %bl,0x11(%eax)
4f8598:	74 16                	je     0x4f85b0
4f859a:	ff 75 0c             	push   0xc(%ebp)
4f859d:	c7 47 1c 54 84 6b 00 	movl   $0x6b8454,0x1c(%edi)
4f85a4:	6a 05                	push   $0x5
4f85a6:	56                   	push   %esi
4f85a7:	57                   	push   %edi
4f85a8:	e8 23 fd ff ff       	call   0x4f82d0
4f85ad:	83 c4 10             	add    $0x10,%esp
4f85b0:	ff 75 18             	push   0x18(%ebp)
4f85b3:	8d 45 14             	lea    0x14(%ebp),%eax
4f85b6:	ff 75 14             	push   0x14(%ebp)
4f85b9:	50                   	push   %eax
4f85ba:	56                   	push   %esi
4f85bb:	57                   	push   %edi
4f85bc:	e8 2f fe ff ff       	call   0x4f83f0
4f85c1:	83 c4 14             	add    $0x14,%esp
4f85c4:	89 45 b8             	mov    %eax,-0x48(%ebp)
4f85c7:	89 5d c0             	mov    %ebx,-0x40(%ebp)
4f85ca:	eb 09                	jmp    0x4f85d5
4f85cc:	8b 5f 40             	mov    0x40(%edi),%ebx
4f85cf:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
4f85d5:	8b 4d cc             	mov    -0x34(%ebp),%ecx
4f85d8:	83 e9 01             	sub    $0x1,%ecx
4f85db:	89 4d cc             	mov    %ecx,-0x34(%ebp)
4f85de:	8b c1                	mov    %ecx,%eax
4f85e0:	89 4d d8             	mov    %ecx,-0x28(%ebp)
4f85e3:	0f 88 d0 01 00 00    	js     0x4f87b9
4f85e9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
4f85f0:	83 7f 10 00          	cmpl   $0x0,0x10(%edi)
4f85f4:	0f 84 bc 01 00 00    	je     0x4f87b6
4f85fa:	8b 55 a8             	mov    -0x58(%ebp),%edx
4f85fd:	89 47 24             	mov    %eax,0x24(%edi)
4f8600:	66 8b 02             	mov    (%edx),%ax
4f8603:	83 ea 02             	sub    $0x2,%edx
4f8606:	8a e8                	mov    %al,%ch
4f8608:	89 55 a8             	mov    %edx,-0x58(%ebp)
4f860b:	8a cc                	mov    %ah,%cl
4f860d:	0f b7 f1             	movzwl %cx,%esi
4f8610:	8b 4d bc             	mov    -0x44(%ebp),%ecx
4f8613:	41                   	inc    %ecx
4f8614:	3b f1                	cmp    %ecx,%esi
4f8616:	0f 82 6d 01 00 00    	jb     0x4f8789
4f861c:	8b 45 d0             	mov    -0x30(%ebp),%eax
4f861f:	83 c0 fc             	add    $0xfffffffc,%eax
4f8622:	3b f0                	cmp    %eax,%esi
4f8624:	0f 87 5f 01 00 00    	ja     0x4f8789
4f862a:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4f862d:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4f8630:	03 c6                	add    %esi,%eax
4f8632:	51                   	push   %ecx
4f8633:	50                   	push   %eax
4f8634:	89 45 a4             	mov    %eax,-0x5c(%ebp)
4f8637:	8b 45 dc             	mov    -0x24(%ebp),%eax
4f863a:	50                   	push   %eax
4f863b:	8b 40 50             	mov    0x50(%eax),%eax
4f863e:	ff d0                	call   *%eax
4f8640:	0f b7 45 f2          	movzwl -0xe(%ebp),%eax
4f8644:	83 c4 0c             	add    $0xc,%esp
4f8647:	8b 55 d0             	mov    -0x30(%ebp),%edx
4f864a:	03 c6                	add    %esi,%eax
4f864c:	3b c2                	cmp    %edx,%eax
4f864e:	76 13                	jbe    0x4f8663
4f8650:	68 90 84 6b 00       	push   $0x6b8490
4f8655:	57                   	push   %edi
4f8656:	e8 d5 f8 ff ff       	call   0x4f7f30
4f865b:	83 c4 08             	add    $0x8,%esp
4f865e:	e9 3d 01 00 00       	jmp    0x4f87a0
4f8663:	8b 45 dc             	mov    -0x24(%ebp),%eax
4f8666:	80 78 02 00          	cmpb   $0x0,0x2(%eax)
4f866a:	74 4c                	je     0x4f86b8
4f866c:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
4f8670:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4f8673:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4f8676:	74 0e                	je     0x4f8686
4f8678:	3b 45 18             	cmp    0x18(%ebp),%eax
4f867b:	7f 15                	jg     0x4f8692
4f867d:	7c 2c                	jl     0x4f86ab
4f867f:	3b 4d 14             	cmp    0x14(%ebp),%ecx
4f8682:	77 0e                	ja     0x4f8692
4f8684:	eb 25                	jmp    0x4f86ab
4f8686:	3b 45 18             	cmp    0x18(%ebp),%eax
4f8689:	7c 20                	jl     0x4f86ab
4f868b:	7f 05                	jg     0x4f8692
4f868d:	3b 4d 14             	cmp    0x14(%ebp),%ecx
4f8690:	72 19                	jb     0x4f86ab
4f8692:	50                   	push   %eax
4f8693:	51                   	push   %ecx
4f8694:	68 a8 84 6b 00       	push   $0x6b84a8
4f8699:	57                   	push   %edi
4f869a:	e8 91 f8 ff ff       	call   0x4f7f30
4f869f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4f86a2:	83 c4 10             	add    $0x10,%esp
4f86a5:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4f86a8:	8b 55 d0             	mov    -0x30(%ebp),%edx
4f86ab:	89 4d 14             	mov    %ecx,0x14(%ebp)
4f86ae:	89 45 18             	mov    %eax,0x18(%ebp)
4f86b1:	c7 45 c0 00 00 00 00 	movl   $0x0,-0x40(%ebp)
4f86b8:	0f b7 4d f0          	movzwl -0x10(%ebp),%ecx
4f86bc:	8b 45 ec             	mov    -0x14(%ebp),%eax
4f86bf:	3b c1                	cmp    %ecx,%eax
4f86c1:	76 51                	jbe    0x4f8714
4f86c3:	2b c1                	sub    %ecx,%eax
4f86c5:	8b 7d b0             	mov    -0x50(%ebp),%edi
4f86c8:	8b 4d d0             	mov    -0x30(%ebp),%ecx
4f86cb:	83 c0 fb             	add    $0xfffffffb,%eax
4f86ce:	03 c2                	add    %edx,%eax
4f86d0:	33 d2                	xor    %edx,%edx
4f86d2:	8d 49 fc             	lea    -0x4(%ecx),%ecx
4f86d5:	f7 f1                	div    %ecx
4f86d7:	0f b7 4d f2          	movzwl -0xe(%ebp),%ecx
4f86db:	89 45 9c             	mov    %eax,-0x64(%ebp)
4f86de:	8b 45 a4             	mov    -0x5c(%ebp),%eax
4f86e1:	8b 44 01 fc          	mov    -0x4(%ecx,%eax,1),%eax
4f86e5:	8b 4d c8             	mov    -0x38(%ebp),%ecx
4f86e8:	0f c8                	bswap  %eax
4f86ea:	89 45 a0             	mov    %eax,-0x60(%ebp)
4f86ed:	80 79 11 00          	cmpb   $0x0,0x11(%ecx)
4f86f1:	74 12                	je     0x4f8705
4f86f3:	ff 75 0c             	push   0xc(%ebp)
4f86f6:	6a 03                	push   $0x3
4f86f8:	50                   	push   %eax
4f86f9:	57                   	push   %edi
4f86fa:	e8 d1 fb ff ff       	call   0x4f82d0
4f86ff:	8b 45 a0             	mov    -0x60(%ebp),%eax
4f8702:	83 c4 10             	add    $0x10,%esp
4f8705:	ff 75 9c             	push   -0x64(%ebp)
4f8708:	50                   	push   %eax
4f8709:	6a 00                	push   $0x0
4f870b:	57                   	push   %edi
4f870c:	e8 bf f9 ff ff       	call   0x4f80d0
4f8711:	83 c4 10             	add    $0x10,%esp
4f8714:	8b 45 dc             	mov    -0x24(%ebp),%eax
4f8717:	80 78 08 00          	cmpb   $0x0,0x8(%eax)
4f871b:	75 54                	jne    0x4f8771
4f871d:	8b 45 a4             	mov    -0x5c(%ebp),%eax
4f8720:	8b 30                	mov    (%eax),%esi
4f8722:	8b 45 c8             	mov    -0x38(%ebp),%eax
4f8725:	0f ce                	bswap  %esi
4f8727:	80 78 11 00          	cmpb   $0x0,0x11(%eax)
4f872b:	74 0f                	je     0x4f873c
4f872d:	ff 75 0c             	push   0xc(%ebp)
4f8730:	6a 05                	push   $0x5
4f8732:	56                   	push   %esi
4f8733:	57                   	push   %edi
4f8734:	e8 97 fb ff ff       	call   0x4f82d0
4f8739:	83 c4 10             	add    $0x10,%esp
4f873c:	ff 75 18             	push   0x18(%ebp)
4f873f:	8d 45 14             	lea    0x14(%ebp),%eax
4f8742:	ff 75 14             	push   0x14(%ebp)
4f8745:	50                   	push   %eax
4f8746:	56                   	push   %esi
4f8747:	57                   	push   %edi
4f8748:	e8 a3 fc ff ff       	call   0x4f83f0
4f874d:	8b f0                	mov    %eax,%esi
4f874f:	c7 45 c0 00 00 00 00 	movl   $0x0,-0x40(%ebp)
4f8756:	83 c4 14             	add    $0x14,%esp
4f8759:	3b 75 b8             	cmp    -0x48(%ebp),%esi
4f875c:	74 49                	je     0x4f87a7
4f875e:	68 c0 84 6b 00       	push   $0x6b84c0
4f8763:	57                   	push   %edi
4f8764:	e8 c7 f7 ff ff       	call   0x4f7f30
4f8769:	83 c4 08             	add    $0x8,%esp
4f876c:	89 75 b8             	mov    %esi,-0x48(%ebp)
4f876f:	eb 36                	jmp    0x4f87a7
4f8771:	0f b7 45 f2          	movzwl -0xe(%ebp),%eax
4f8775:	48                   	dec    %eax
4f8776:	03 c6                	add    %esi,%eax
4f8778:	c1 e6 10             	shl    $0x10,%esi
4f877b:	0b c6                	or     %esi,%eax
4f877d:	50                   	push   %eax
4f877e:	53                   	push   %ebx
4f877f:	e8 dc e5 ff ff       	call   0x4f6d60
4f8784:	83 c4 08             	add    $0x8,%esp
4f8787:	eb 1e                	jmp    0x4f87a7
4f8789:	8b 45 d0             	mov    -0x30(%ebp),%eax
4f878c:	83 c0 fc             	add    $0xfffffffc,%eax
4f878f:	50                   	push   %eax
4f8790:	51                   	push   %ecx
4f8791:	56                   	push   %esi
4f8792:	68 70 84 6b 00       	push   $0x6b8470
4f8797:	57                   	push   %edi
4f8798:	e8 93 f7 ff ff       	call   0x4f7f30
4f879d:	83 c4 14             	add    $0x14,%esp
4f87a0:	c7 45 b4 00 00 00 00 	movl   $0x0,-0x4c(%ebp)
4f87a7:	8b 45 d8             	mov    -0x28(%ebp),%eax
4f87aa:	83 e8 01             	sub    $0x1,%eax
4f87ad:	89 45 d8             	mov    %eax,-0x28(%ebp)
4f87b0:	0f 89 3a fe ff ff    	jns    0x4f85f0
4f87b6:	8b 4d cc             	mov    -0x34(%ebp),%ecx
4f87b9:	83 7d b4 00          	cmpl   $0x0,-0x4c(%ebp)
4f87bd:	8b 55 98             	mov    -0x68(%ebp),%edx
4f87c0:	8b 45 14             	mov    0x14(%ebp),%eax
4f87c3:	89 02                	mov    %eax,(%edx)
4f87c5:	8b 45 18             	mov    0x18(%ebp),%eax
4f87c8:	89 42 04             	mov    %eax,0x4(%edx)
4f87cb:	c7 47 1c 00 00 00 00 	movl   $0x0,0x1c(%edi)
4f87d2:	0f 84 75 01 00 00    	je     0x4f894d
4f87d8:	83 7f 10 00          	cmpl   $0x0,0x10(%edi)
4f87dc:	0f 8e 03 fd ff ff    	jle    0x4f84e5
4f87e2:	8b 55 dc             	mov    -0x24(%ebp),%edx
4f87e5:	80 7a 08 00          	cmpb   $0x0,0x8(%edx)
4f87e9:	75 50                	jne    0x4f883b
4f87eb:	8b 5f 40             	mov    0x40(%edi),%ebx
4f87ee:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
4f87f4:	85 c9                	test   %ecx,%ecx
4f87f6:	78 43                	js     0x4f883b
4f87f8:	8b 45 94             	mov    -0x6c(%ebp),%eax
4f87fb:	8d 3c 48             	lea    (%eax,%ecx,2),%edi
4f87fe:	03 7d c4             	add    -0x3c(%ebp),%edi
4f8801:	66 8b 07             	mov    (%edi),%ax
4f8804:	8a e8                	mov    %al,%ch
4f8806:	8a cc                	mov    %ah,%cl
4f8808:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4f880b:	0f b7 f1             	movzwl %cx,%esi
4f880e:	03 c6                	add    %esi,%eax
4f8810:	50                   	push   %eax
4f8811:	8b 42 4c             	mov    0x4c(%edx),%eax
4f8814:	52                   	push   %edx
4f8815:	ff d0                	call   *%eax
4f8817:	0f b7 c0             	movzwl %ax,%eax
4f881a:	48                   	dec    %eax
4f881b:	03 c6                	add    %esi,%eax
4f881d:	c1 e6 10             	shl    $0x10,%esi
4f8820:	0b c6                	or     %esi,%eax
4f8822:	50                   	push   %eax
4f8823:	53                   	push   %ebx
4f8824:	e8 37 e5 ff ff       	call   0x4f6d60
4f8829:	8b 55 dc             	mov    -0x24(%ebp),%edx
4f882c:	8d 7f fe             	lea    -0x2(%edi),%edi
4f882f:	83 c4 10             	add    $0x10,%esp
4f8832:	83 6d cc 01          	subl   $0x1,-0x34(%ebp)
4f8836:	79 c9                	jns    0x4f8801
4f8838:	8b 7d b0             	mov    -0x50(%ebp),%edi
4f883b:	8b 45 ac             	mov    -0x54(%ebp),%eax
4f883e:	0f b6 50 01          	movzbl 0x1(%eax),%edx
4f8842:	0f b6 40 02          	movzbl 0x2(%eax),%eax
4f8846:	c1 e2 08             	shl    $0x8,%edx
4f8849:	0b d0                	or     %eax,%edx
4f884b:	89 55 d8             	mov    %edx,-0x28(%ebp)
4f884e:	76 61                	jbe    0x4f88b1
4f8850:	8b 7d c4             	mov    -0x3c(%ebp),%edi
4f8853:	0f b6 4c 17 02       	movzbl 0x2(%edi,%edx,1),%ecx
4f8858:	0f b6 44 17 03       	movzbl 0x3(%edi,%edx,1),%eax
4f885d:	ff 03                	incl   (%ebx)
4f885f:	8b 33                	mov    (%ebx),%esi
4f8861:	c1 e1 08             	shl    $0x8,%ecx
4f8864:	0b c8                	or     %eax,%ecx
4f8866:	8b c2                	mov    %edx,%eax
4f8868:	49                   	dec    %ecx
4f8869:	c1 e0 10             	shl    $0x10,%eax
4f886c:	03 ca                	add    %edx,%ecx
4f886e:	0b c8                	or     %eax,%ecx
4f8870:	8b c6                	mov    %esi,%eax
4f8872:	d1 e8                	shr    $1,%eax
4f8874:	89 0c b3             	mov    %ecx,(%ebx,%esi,4)
4f8877:	74 20                	je     0x4f8899
4f8879:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
4f8880:	8b 14 83             	mov    (%ebx,%eax,4),%edx
4f8883:	8b 0c b3             	mov    (%ebx,%esi,4),%ecx
4f8886:	3b d1                	cmp    %ecx,%edx
4f8888:	76 0c                	jbe    0x4f8896
4f888a:	89 0c 83             	mov    %ecx,(%ebx,%eax,4)
4f888d:	89 14 b3             	mov    %edx,(%ebx,%esi,4)
4f8890:	8b f0                	mov    %eax,%esi
4f8892:	d1 e8                	shr    $1,%eax
4f8894:	75 ea                	jne    0x4f8880
4f8896:	8b 55 d8             	mov    -0x28(%ebp),%edx
4f8899:	0f b6 0c 3a          	movzbl (%edx,%edi,1),%ecx
4f889d:	0f b6 44 17 01       	movzbl 0x1(%edi,%edx,1),%eax
4f88a2:	c1 e1 08             	shl    $0x8,%ecx
4f88a5:	8b d1                	mov    %ecx,%edx
4f88a7:	0b d0                	or     %eax,%edx
4f88a9:	89 55 d8             	mov    %edx,-0x28(%ebp)
4f88ac:	77 a5                	ja     0x4f8853
4f88ae:	8b 7d b0             	mov    -0x50(%ebp),%edi
4f88b1:	8d 45 d8             	lea    -0x28(%ebp),%eax
4f88b4:	33 f6                	xor    %esi,%esi
4f88b6:	50                   	push   %eax
4f88b7:	53                   	push   %ebx
4f88b8:	e8 e3 e4 ff ff       	call   0x4f6da0
4f88bd:	83 c4 08             	add    $0x8,%esp
4f88c0:	85 c0                	test   %eax,%eax
4f88c2:	74 42                	je     0x4f8906
4f88c4:	8b 4d d8             	mov    -0x28(%ebp),%ecx
4f88c7:	8b c1                	mov    %ecx,%eax
4f88c9:	8b 55 bc             	mov    -0x44(%ebp),%edx
4f88cc:	c1 e8 10             	shr    $0x10,%eax
4f88cf:	0f b7 d2             	movzwl %dx,%edx
4f88d2:	3b d0                	cmp    %eax,%edx
4f88d4:	73 1b                	jae    0x4f88f1
4f88d6:	2b c2                	sub    %edx,%eax
4f88d8:	89 4d bc             	mov    %ecx,-0x44(%ebp)
4f88db:	48                   	dec    %eax
4f88dc:	03 f0                	add    %eax,%esi
4f88de:	8d 45 d8             	lea    -0x28(%ebp),%eax
4f88e1:	50                   	push   %eax
4f88e2:	53                   	push   %ebx
4f88e3:	e8 b8 e4 ff ff       	call   0x4f6da0
4f88e8:	83 c4 08             	add    $0x8,%esp
4f88eb:	85 c0                	test   %eax,%eax
4f88ed:	75 d5                	jne    0x4f88c4
4f88ef:	eb 15                	jmp    0x4f8906
4f88f1:	ff 75 0c             	push   0xc(%ebp)
4f88f4:	c1 e9 10             	shr    $0x10,%ecx