48362a:	0f b7 47 02          	movzwl 0x2(%edi),%eax
48362e:	66 83 3c 47 77       	cmpw   $0x77,(%edi,%eax,2)
483633:	8d 3c 47             	lea    (%edi,%eax,2),%edi
483636:	74 f2                	je     0x48362a
483638:	8b 45 ec             	mov    -0x14(%ebp),%eax
48363b:	b9 02 00 00 00       	mov    $0x2,%ecx
483640:	0f b6 80 60 e5 49 00 	movzbl 0x49e560(%eax),%eax
483647:	2b c8                	sub    %eax,%ecx
483649:	8b 45 ec             	mov    -0x14(%ebp),%eax
48364c:	8d 3c 4f             	lea    (%edi,%ecx,2),%edi
48364f:	0f b6 88 60 e5 49 00 	movzbl 0x49e560(%eax),%ecx
483656:	eb 15                	jmp    0x48366d
483658:	85 c0                	test   %eax,%eax
48365a:	74 0b                	je     0x483667
48365c:	3d 20 fc ff ff       	cmp    $0xfffffc20,%eax
483661:	0f 85 60 6e f8 ff    	jne    0x40a4c7
483667:	8b 55 d4             	mov    -0x2c(%ebp),%edx
48366a:	8b 4d d8             	mov    -0x28(%ebp),%ecx
48366d:	8d 3c 4f             	lea    (%edi,%ecx,2),%edi
483670:	89 7d cc             	mov    %edi,-0x34(%ebp)
483673:	85 d2                	test   %edx,%edx
483675:	75 0b                	jne    0x483682
483677:	66 83 7f fc 77       	cmpw   $0x77,-0x4(%edi)
48367c:	0f 85 de 6c f8 ff    	jne    0x40a360
483682:	81 fe 8c 00 00 00    	cmp    $0x8c,%esi
483688:	0f 85 43 6d f8 ff    	jne    0x40a3d1
48368e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
483691:	c7 83 9c 00 00 00 02 	movl   $0x2,0x9c(%ebx)
483698:	00 00 00
48369b:	8b 45 18             	mov    0x18(%ebp),%eax
48369e:	40                   	inc    %eax
48369f:	50                   	push   %eax
4836a0:	ff 75 14             	push   0x14(%ebp)
4836a3:	8b d7                	mov    %edi,%edx
4836a5:	53                   	push   %ebx
4836a6:	ff 75 0c             	push   0xc(%ebp)
4836a9:	ff 75 08             	push   0x8(%ebp)
4836ac:	e8 4f 6c f8 ff       	call   0x40a300
4836b1:	83 c4 14             	add    $0x14,%esp
4836b4:	e9 0e 6e f8 ff       	jmp    0x40a4c7
4836b9:	0f b7 57 02          	movzwl 0x2(%edi),%edx
4836bd:	8b 83 94 00 00 00    	mov    0x94(%ebx),%eax
4836c3:	25 00 00 ff ff       	and    $0xffff0000,%eax
4836c8:	0b c2                	or     %edx,%eax
4836ca:	8d 34 12             	lea    (%edx,%edx,1),%esi
4836cd:	89 83 94 00 00 00    	mov    %eax,0x94(%ebx)
4836d3:	89 75 c0             	mov    %esi,-0x40(%ebp)
4836d6:	3b 73 14             	cmp    0x14(%ebx),%esi
4836d9:	7c 16                	jl     0x4836f1
4836db:	0d 00 00 01 00       	or     $0x10000,%eax
4836e0:	83 c7 04             	add    $0x4,%edi
4836e3:	89 83 94 00 00 00    	mov    %eax,0x94(%ebx)
4836e9:	89 7d cc             	mov    %edi,-0x34(%ebp)
4836ec:	e9 6f 6c f8 ff       	jmp    0x40a360
4836f1:	8b 43 10             	mov    0x10(%ebx),%eax
4836f4:	8b 4b 0c             	mov    0xc(%ebx),%ecx
4836f7:	2b c2                	sub    %edx,%eax
4836f9:	8b 04 81             	mov    (%ecx,%eax,4),%eax
4836fc:	89 04 b1             	mov    %eax,(%ecx,%esi,4)
4836ff:	8b 4d f8             	mov    -0x8(%ebp),%ecx
483702:	2b 4b 78             	sub    0x78(%ebx),%ecx
483705:	8b 43 0c             	mov    0xc(%ebx),%eax
483708:	d1 f9                	sar    $1,%ecx
48370a:	89 4c b0 04          	mov    %ecx,0x4(%eax,%esi,4)
48370e:	39 75 0c             	cmp    %esi,0xc(%ebp)
483711:	7f 06                	jg     0x483719
483713:	8d 46 02             	lea    0x2(%esi),%eax
483716:	89 45 0c             	mov    %eax,0xc(%ebp)
483719:	83 c7 04             	add    $0x4,%edi
48371c:	89 7d cc             	mov    %edi,-0x34(%ebp)
48371f:	e9 3c 6c f8 ff       	jmp    0x40a360
483724:	83 bb 9c 00 00 00 01 	cmpl   $0x1,0x9c(%ebx)
48372b:	8b 83 b0 00 00 00    	mov    0xb0(%ebx),%eax
483731:	89 45 f4             	mov    %eax,-0xc(%ebp)
483734:	75 0d                	jne    0x483743
483736:	be 01 00 00 00       	mov    $0x1,%esi
48373b:	89 93 9c 00 00 00    	mov    %edx,0x9c(%ebx)
483741:	eb 02                	jmp    0x483745
483743:	33 f6                	xor    %esi,%esi
483745:	8b 45 18             	mov    0x18(%ebp),%eax
483748:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48374b:	40                   	inc    %eax
48374c:	50                   	push   %eax
48374d:	6a 00                	push   $0x0
48374f:	53                   	push   %ebx
483750:	ff 75 0c             	push   0xc(%ebp)
483753:	8d 57 04             	lea    0x4(%edi),%edx
483756:	ff 75 08             	push   0x8(%ebp)
483759:	e8 a2 6b f8 ff       	call   0x40a300
48375e:	8b c8                	mov    %eax,%ecx
483760:	83 c4 14             	add    $0x14,%esp
483763:	83 f9 01             	cmp    $0x1,%ecx
483766:	74 56                	je     0x4837be
483768:	81 f9 19 fc ff ff    	cmp    $0xfffffc19,%ecx
48376e:	74 4e                	je     0x4837be
483770:	8b 45 f4             	mov    -0xc(%ebp),%eax
483773:	89 83 b0 00 00 00    	mov    %eax,0xb0(%ebx)
483779:	81 f9 20 fc ff ff    	cmp    $0xfffffc20,%ecx
48377f:	75 25                	jne    0x4837a6
483781:	0f b7 47 02          	movzwl 0x2(%edi),%eax
483785:	8d 04 47             	lea    (%edi,%eax,2),%eax
483788:	39 83 80 00 00 00    	cmp    %eax,0x80(%ebx)
48378e:	0f 83 00 fb ff ff    	jae    0x483294
483794:	66 83 3f 77          	cmpw   $0x77,(%edi)
483798:	74 14                	je     0x4837ae
48379a:	66 83 38 77          	cmpw   $0x77,(%eax)
48379e:	0f 85 f0 fa ff ff    	jne    0x483294
4837a4:	eb 08                	jmp    0x4837ae
4837a6:	85 c9                	test   %ecx,%ecx
4837a8:	0f 85 e6 fa ff ff    	jne    0x483294
4837ae:	0f b7 47 02          	movzwl 0x2(%edi),%eax
4837b2:	66 83 3c 47 77       	cmpw   $0x77,(%edi,%eax,2)
4837b7:	8d 3c 47             	lea    (%edi,%eax,2),%edi
4837ba:	74 89                	je     0x483745
4837bc:	eb 09                	jmp    0x4837c7
4837be:	8b 83 80 00 00 00    	mov    0x80(%ebx),%eax
4837c4:	89 45 08             	mov    %eax,0x8(%ebp)
4837c7:	66 83 3f 78          	cmpw   $0x78,(%edi)
4837cb:	0f 84 a3 6d f8 ff    	je     0x40a574
4837d1:	85 f6                	test   %esi,%esi
4837d3:	0f 85 e9 6c f8 ff    	jne    0x40a4c2
4837d9:	0f b7 47 02          	movzwl 0x2(%edi),%eax
4837dd:	66 83 3c 47 77       	cmpw   $0x77,(%edi,%eax,2)
4837e2:	8d 3c 47             	lea    (%edi,%eax,2),%edi
4837e5:	74 f2                	je     0x4837d9
4837e7:	8b 83 90 00 00 00    	mov    0x90(%ebx),%eax
4837ed:	83 c7 04             	add    $0x4,%edi
4837f0:	89 7d cc             	mov    %edi,-0x34(%ebp)
4837f3:	89 45 0c             	mov    %eax,0xc(%ebp)
4837f6:	e9 65 6b f8 ff       	jmp    0x40a360
4837fb:	83 bb 9c 00 00 00 01 	cmpl   $0x1,0x9c(%ebx)
483802:	8b 83 b0 00 00 00    	mov    0xb0(%ebx),%eax
483808:	89 45 f4             	mov    %eax,-0xc(%ebp)
48380b:	75 0d                	jne    0x48381a
48380d:	be 01 00 00 00       	mov    $0x1,%esi
483812:	89 93 9c 00 00 00    	mov    %edx,0x9c(%ebx)
483818:	eb 02                	jmp    0x48381c
48381a:	33 f6                	xor    %esi,%esi
48381c:	8b 45 18             	mov    0x18(%ebp),%eax
48381f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
483822:	40                   	inc    %eax
483823:	50                   	push   %eax
483824:	6a 00                	push   $0x0
483826:	53                   	push   %ebx
483827:	ff 75 0c             	push   0xc(%ebp)
48382a:	8d 57 04             	lea    0x4(%edi),%edx
48382d:	ff 75 08             	push   0x8(%ebp)
483830:	e8 cb 6a f8 ff       	call   0x40a300
483835:	8b c8                	mov    %eax,%ecx
483837:	8b 45 f4             	mov    -0xc(%ebp),%eax
48383a:	83 c4 14             	add    $0x14,%esp
48383d:	89 83 b0 00 00 00    	mov    %eax,0xb0(%ebx)
483843:	81 f9 20 fc ff ff    	cmp    $0xfffffc20,%ecx
483849:	7f 2d                	jg     0x483878
48384b:	75 40                	jne    0x48388d
48384d:	0f b7 47 02          	movzwl 0x2(%edi),%eax
483851:	8d 04 47             	lea    (%edi,%eax,2),%eax
483854:	39 83 80 00 00 00    	cmp    %eax,0x80(%ebx)
48385a:	73 4c                	jae    0x4838a8
48385c:	66 83 3f 77          	cmpw   $0x77,(%edi)
483860:	74 06                	je     0x483868
483862:	66 83 38 77          	cmpw   $0x77,(%eax)
483866:	75 40                	jne    0x4838a8
483868:	0f b7 47 02          	movzwl 0x2(%edi),%eax
48386c:	66 83 3c 47 77       	cmpw   $0x77,(%edi,%eax,2)
483871:	8d 3c 47             	lea    (%edi,%eax,2),%edi
483874:	74 a6                	je     0x48381c
483876:	eb 3e                	jmp    0x4838b6
483878:	8b c1                	mov    %ecx,%eax
48387a:	83 e8 00             	sub    $0x0,%eax
48387d:	74 e9                	je     0x483868
48387f:	48                   	dec    %eax
483880:	0f 84 ee 6c f8 ff    	je     0x40a574
483886:	8b c1                	mov    %ecx,%eax
483888:	e9 3a 6c f8 ff       	jmp    0x40a4c7
48388d:	81 f9 19 fc ff ff    	cmp    $0xfffffc19,%ecx
483893:	0f 84 db 6c f8 ff    	je     0x40a574
483899:	8d 81 e4 03 00 00    	lea    0x3e4(%ecx),%eax
48389f:	83 f8 03             	cmp    $0x3,%eax
4838a2:	0f 87 ec f9 ff ff    	ja     0x483294
4838a8:	0f b7 47 02          	movzwl 0x2(%edi),%eax
4838ac:	66 83 3c 47 77       	cmpw   $0x77,(%edi,%eax,2)
4838b1:	8d 3c 47             	lea    (%edi,%eax,2),%edi
4838b4:	74 f2                	je     0x4838a8
4838b6:	85 f6                	test   %esi,%esi
4838b8:	0f 85 04 6c f8 ff    	jne    0x40a4c2
4838be:	83 c7 04             	add    $0x4,%edi
4838c1:	89 7d cc             	mov    %edi,-0x34(%ebp)
4838c4:	e9 97 6a f8 ff       	jmp    0x40a360
4838c9:	39 55 e4             	cmp    %edx,-0x1c(%ebp)
4838cc:	74 3f                	je     0x48390d
4838ce:	0f b7 4f 02          	movzwl 0x2(%edi),%ecx
4838d2:	85 c9                	test   %ecx,%ecx
4838d4:	7e 51                	jle    0x483927
4838d6:	8b 45 f8             	mov    -0x8(%ebp),%eax
4838d9:	83 e8 02             	sub    $0x2,%eax
4838dc:	49                   	dec    %ecx
4838dd:	89 45 f8             	mov    %eax,-0x8(%ebp)
4838e0:	3b 43 78             	cmp    0x78(%ebx),%eax
4838e3:	0f 82 8b 6c f8 ff    	jb     0x40a574
4838e9:	66 8b 00             	mov    (%eax),%ax
4838ec:	ba 00 fc 00 00       	mov    $0xfc00,%edx
4838f1:	66 23 c2             	and    %dx,%ax
4838f4:	ba 00 dc 00 00       	mov    $0xdc00,%edx
4838f9:	66 3b c2             	cmp    %dx,%ax
4838fc:	8b 45 f8             	mov    -0x8(%ebp),%eax
4838ff:	75 06                	jne    0x483907
483901:	83 e8 02             	sub    $0x2,%eax
483904:	89 45 f8             	mov    %eax,-0x8(%ebp)
483907:	85 c9                	test   %ecx,%ecx
483909:	7f cb                	jg     0x4838d6
48390b:	eb 1d                	jmp    0x48392a
48390d:	0f b7 47 02          	movzwl 0x2(%edi),%eax
483911:	8b 4d f8             	mov    -0x8(%ebp),%ecx
483914:	f7 d8                	neg    %eax
483916:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
483919:	8b c1                	mov    %ecx,%eax
48391b:	89 4d f8             	mov    %ecx,-0x8(%ebp)
48391e:	3b 43 78             	cmp    0x78(%ebx),%eax
483921:	0f 82 4d 6c f8 ff    	jb     0x40a574
483927:	8b 45 f8             	mov    -0x8(%ebp),%eax
48392a:	3b 83 88 00 00 00    	cmp    0x88(%ebx),%eax
483930:	73 06                	jae    0x483938
483932:	89 83 88 00 00 00    	mov    %eax,0x88(%ebx)
483938:	83 c7 04             	add    $0x4,%edi
48393b:	89 7d cc             	mov    %edi,-0x34(%ebp)
48393e:	e9 1d 6a f8 ff       	jmp    0x40a360
483943:	39 15 0c 33 4c 00    	cmp    %edx,0x4c330c
483949:	0f 84 c3 00 00 00    	je     0x483a12
48394f:	c7 85 28 ff ff ff 02 	movl   $0x2,-0xd8(%ebp)
483956:	00 00 00
483959:	0f b7 47 02          	movzwl 0x2(%edi),%eax
48395d:	89 85 2c ff ff ff    	mov    %eax,-0xd4(%ebp)
483963:	8b 43 0c             	mov    0xc(%ebx),%eax
483966:	89 85 30 ff ff ff    	mov    %eax,-0xd0(%ebp)
48396c:	8b 43 78             	mov    0x78(%ebx),%eax
48396f:	89 85 34 ff ff ff    	mov    %eax,-0xcc(%ebp)
483975:	8b 43 7c             	mov    0x7c(%ebx),%eax
483978:	2b 43 78             	sub    0x78(%ebx),%eax
48397b:	d1 f8                	sar    $1,%eax
48397d:	89 85 38 ff ff ff    	mov    %eax,-0xc8(%ebp)
483983:	8b 45 08             	mov    0x8(%ebp),%eax
483986:	2b 43 78             	sub    0x78(%ebx),%eax
483989:	d1 f8                	sar    $1,%eax
48398b:	89 85 3c ff ff ff    	mov    %eax,-0xc4(%ebp)
483991:	8b 45 f8             	mov    -0x8(%ebp),%eax
483994:	2b 43 78             	sub    0x78(%ebx),%eax
483997:	d1 f8                	sar    $1,%eax
483999:	89 85 40 ff ff ff    	mov    %eax,-0xc0(%ebp)
48399f:	0f b7 47 04          	movzwl 0x4(%edi),%eax
4839a3:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
4839a9:	0f b7 47 06          	movzwl 0x6(%edi),%eax
4839ad:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
4839b3:	8b 45 0c             	mov    0xc(%ebp),%eax
4839b6:	99                   	cltd
4839b7:	2b c2                	sub    %edx,%eax
4839b9:	d1 f8                	sar    $1,%eax
4839bb:	89 85 44 ff ff ff    	mov    %eax,-0xbc(%ebp)
4839c1:	0f b7 83 94 00 00 00 	movzwl 0x94(%ebx),%eax
4839c8:	89 85 48 ff ff ff    	mov    %eax,-0xb8(%ebp)
4839ce:	85 c0                	test   %eax,%eax
4839d0:	75 0a                	jne    0x4839dc
4839d2:	c7 85 48 ff ff ff ff 	movl   $0xffffffff,-0xb8(%ebp)
4839d9:	ff ff ff
4839dc:	8b 83 ac 00 00 00    	mov    0xac(%ebx),%eax
4839e2:	89 85 4c ff ff ff    	mov    %eax,-0xb4(%ebp)
4839e8:	8b 83 b4 00 00 00    	mov    0xb4(%ebx),%eax
4839ee:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
4839f4:	8d 85 28 ff ff ff    	lea    -0xd8(%ebp),%eax
4839fa:	50                   	push   %eax
4839fb:	ff 15 0c 33 4c 00    	call   *0x4c330c
483a01:	83 c4 04             	add    $0x4,%esp
483a04:	85 c0                	test   %eax,%eax
483a06:	0f 8f 68 6b f8 ff    	jg     0x40a574
483a0c:	0f 88 b5 6a f8 ff    	js     0x40a4c7
483a12:	83 c7 08             	add    $0x8,%edi
483a15:	89 7d cc             	mov    %edi,-0x34(%ebp)
483a18:	e9 43 69 f8 ff       	jmp    0x40a360
483a1d:	0f b7 47 02          	movzwl 0x2(%edi),%eax
483a21:	8b 4b 74             	mov    0x74(%ebx),%ecx
483a24:	8d 34 41             	lea    (%ecx,%eax,2),%esi
483a27:	3b f1                	cmp    %ecx,%esi
483a29:	75 04                	jne    0x483a2f
483a2b:	33 d2                	xor    %edx,%edx
483a2d:	eb 04                	jmp    0x483a33
483a2f:	0f b7 56 04          	movzwl 0x4(%esi),%edx
483a33:	8b 8b a8 00 00 00    	mov    0xa8(%ebx),%ecx
483a39:	85 c9                	test   %ecx,%ecx
483a3b:	74 1d                	je     0x483a5a
483a3d:	8b 45 f8             	mov    -0x8(%ebp),%eax
483a40:	3b 51 04             	cmp    0x4(%ecx),%edx
483a43:	75 0f                	jne    0x483a54
483a45:	3b 41 14             	cmp    0x14(%ecx),%eax
483a48:	75 0a                	jne    0x483a54
483a4a:	b8 e6 ff ff ff       	mov    $0xffffffe6,%eax
483a4f:	e9 73 6a f8 ff       	jmp    0x40a4c7
483a54:	8b 09                	mov    (%ecx),%ecx
483a56:	85 c9                	test   %ecx,%ecx
483a58:	75 e6                	jne    0x483a40
483a5a:	89 55 a8             	mov    %edx,-0x58(%ebp)
483a5d:	8b 83 94 00 00 00    	mov    0x94(%ebx),%eax
483a63:	89 45 b4             	mov    %eax,-0x4c(%ebp)
483a66:	8b 45 f8             	mov    -0x8(%ebp),%eax
483a69:	89 45 b8             	mov    %eax,-0x48(%ebp)
483a6c:	8b 83 a8 00 00 00    	mov    0xa8(%ebx),%eax
483a72:	89 45 a4             	mov    %eax,-0x5c(%ebp)
483a75:	8d 45 a4             	lea    -0x5c(%ebp),%eax
483a78:	89 83 a8 00 00 00    	mov    %eax,0xa8(%ebx)
483a7e:	8b 4b 10             	mov    0x10(%ebx),%ecx
483a81:	83 c7 04             	add    $0x4,%edi
483a84:	89 7d cc             	mov    %edi,-0x34(%ebp)
483a87:	89 4d b0             	mov    %ecx,-0x50(%ebp)
483a8a:	83 f9 1e             	cmp    $0x1e,%ecx
483a8d:	7f 0b                	jg     0x483a9a
483a8f:	8d 85 ac fe ff ff    	lea    -0x154(%ebp),%eax
483a95:	89 45 ac             	mov    %eax,-0x54(%ebp)
483a98:	eb 1f                	jmp    0x483ab9
483a9a:	8d 04 8d 00 00 00 00 	lea    0x0(,%ecx,4),%eax
483aa1:	50                   	push   %eax
483aa2:	ff 15 dc bd 4b 00    	call   *0x4bbddc
483aa8:	83 c4 04             	add    $0x4,%esp
483aab:	89 45 ac             	mov    %eax,-0x54(%ebp)
483aae:	85 c0                	test   %eax,%eax
483ab0:	0f 84 51 5f 00 00    	je     0x489a07
483ab6:	8b 4d b0             	mov    -0x50(%ebp),%ecx
483ab9:	c1 e1 02             	shl    $0x2,%ecx
483abc:	51                   	push   %ecx
483abd:	ff 73 0c             	push   0xc(%ebx)
483ac0:	50                   	push   %eax
483ac1:	e8 ba b3 f9 ff       	call   0x41ee80
483ac6:	b8 88 00 00 00       	mov    $0x88,%eax
483acb:	83 c4 0c             	add    $0xc,%esp
483ace:	66 39 06             	cmp    %ax,(%esi)
483ad1:	1b c0                	sbb    %eax,%eax
483ad3:	40                   	inc    %eax
483ad4:	89 45 d4             	mov    %eax,-0x2c(%ebp)
483ad7:	85 c0                	test   %eax,%eax
483ad9:	74 0a                	je     0x483ae5
483adb:	c7 83 9c 00 00 00 02 	movl   $0x2,0x9c(%ebx)
483ae2:	00 00 00
483ae5:	8b 45 18             	mov    0x18(%ebp),%eax
483ae8:	8b 4d f8             	mov    -0x8(%ebp),%ecx
483aeb:	40                   	inc    %eax
483aec:	50                   	push   %eax
483aed:	ff 75 14             	push   0x14(%ebp)
483af0:	0f b7 06             	movzwl (%esi),%eax
483af3:	53                   	push   %ebx
483af4:	0f b6 80 60 e5 49 00 	movzbl 0x49e560(%eax),%eax
483afb:	ff 75 0c             	push   0xc(%ebp)
483afe:	8d 14 46             	lea    (%esi,%eax,2),%edx