656692:	0f b7 d7             	movzwl %di,%edx
656695:	8b 4e 04             	mov    0x4(%esi),%ecx
656698:	e8 2f c1 da ff       	call   0x4027cc
65669d:	45                   	inc    %ebp
65669e:	0f b7 46 08          	movzwl 0x8(%esi),%eax
6566a2:	3b e8                	cmp    %eax,%ebp
6566a4:	7c e2                	jl     0x656688
6566a6:	8b 46 04             	mov    0x4(%esi),%eax
6566a9:	85 c0                	test   %eax,%eax
6566ab:	74 0c                	je     0x6566b9
6566ad:	0f b7 56 08          	movzwl 0x8(%esi),%edx
6566b1:	c1 e2 02             	shl    $0x2,%edx
6566b4:	e8 13 c1 da ff       	call   0x4027cc
6566b9:	84 db                	test   %bl,%bl
6566bb:	7e 07                	jle    0x6566c4
6566bd:	8b c6                	mov    %esi,%eax
6566bf:	e8 68 d7 da ff       	call   0x403e2c
6566c4:	5d                   	pop    %ebp
6566c5:	5f                   	pop    %edi
6566c6:	5e                   	pop    %esi
6566c7:	5b                   	pop    %ebx
6566c8:	c3                   	ret
6566c9:	8d 40 00             	lea    0x0(%eax),%eax
6566cc:	53                   	push   %ebx
6566cd:	3b 50 18             	cmp    0x18(%eax),%edx
6566d0:	75 05                	jne    0x6566d7
6566d2:	8b 48 1c             	mov    0x1c(%eax),%ecx
6566d5:	eb 3b                	jmp    0x656712
6566d7:	66 8b 48 0c          	mov    0xc(%eax),%cx
6566db:	8b da                	mov    %edx,%ebx
6566dd:	d3 eb                	shr    %cl,%ebx
6566df:	8b cb                	mov    %ebx,%ecx
6566e1:	0f b7 58 08          	movzwl 0x8(%eax),%ebx
6566e5:	3b cb                	cmp    %ebx,%ecx
6566e7:	72 04                	jb     0x6566ed
6566e9:	33 c9                	xor    %ecx,%ecx
6566eb:	eb 15                	jmp    0x656702
6566ed:	8b 58 04             	mov    0x4(%eax),%ebx
6566f0:	8b 0c 8b             	mov    (%ebx,%ecx,4),%ecx
6566f3:	85 c9                	test   %ecx,%ecx
6566f5:	74 0b                	je     0x656702
6566f7:	0f b7 58 0a          	movzwl 0xa(%eax),%ebx
6566fb:	23 da                	and    %edx,%ebx
6566fd:	c1 e3 02             	shl    $0x2,%ebx
656700:	03 cb                	add    %ebx,%ecx
656702:	85 c9                	test   %ecx,%ecx
656704:	75 04                	jne    0x65670a
656706:	33 c9                	xor    %ecx,%ecx
656708:	eb 02                	jmp    0x65670c
65670a:	8b 09                	mov    (%ecx),%ecx
65670c:	89 50 18             	mov    %edx,0x18(%eax)
65670f:	89 48 1c             	mov    %ecx,0x1c(%eax)
656712:	8b c1                	mov    %ecx,%eax
656714:	5b                   	pop    %ebx
656715:	c3                   	ret
656716:	8b c0                	mov    %eax,%eax
656718:	53                   	push   %ebx
656719:	56                   	push   %esi
65671a:	57                   	push   %edi
65671b:	55                   	push   %ebp
65671c:	8b fa                	mov    %edx,%edi
65671e:	8b d8                	mov    %eax,%ebx
656720:	66 8b 4b 0c          	mov    0xc(%ebx),%cx
656724:	8b f7                	mov    %edi,%esi
656726:	d3 ee                	shr    %cl,%esi
656728:	66 3b 73 08          	cmp    0x8(%ebx),%si
65672c:	72 12                	jb     0x656740
65672e:	8d 4e 01             	lea    0x1(%esi),%ecx
656731:	8d 53 08             	lea    0x8(%ebx),%edx
656734:	8b 43 04             	mov    0x4(%ebx),%eax
656737:	e8 6c fe ff ff       	call   0x6565a8
65673c:	8b e8                	mov    %eax,%ebp
65673e:	eb 03                	jmp    0x656743
656740:	8b 6b 04             	mov    0x4(%ebx),%ebp
656743:	89 6b 04             	mov    %ebp,0x4(%ebx)
656746:	0f b7 c6             	movzwl %si,%eax
656749:	8b 44 85 00          	mov    0x0(%ebp,%eax,4),%eax
65674d:	85 c0                	test   %eax,%eax
65674f:	75 13                	jne    0x656764
656751:	0f b7 c6             	movzwl %si,%eax
656754:	66 8b 53 14          	mov    0x14(%ebx),%dx
656758:	e8 87 fe ff ff       	call   0x6565e4
65675d:	0f b7 d6             	movzwl %si,%edx
656760:	89 44 95 00          	mov    %eax,0x0(%ebp,%edx,4)
656764:	0f b7 53 0a          	movzwl 0xa(%ebx),%edx
656768:	23 d7                	and    %edi,%edx
65676a:	c1 e2 02             	shl    $0x2,%edx
65676d:	03 c2                	add    %edx,%eax
65676f:	3b 7b 10             	cmp    0x10(%ebx),%edi
656772:	7e 03                	jle    0x656777
656774:	89 7b 10             	mov    %edi,0x10(%ebx)
656777:	c7 43 18 ff ff ff ff 	movl   $0xffffffff,0x18(%ebx)
65677e:	5d                   	pop    %ebp
65677f:	5f                   	pop    %edi
656780:	5e                   	pop    %esi
656781:	5b                   	pop    %ebx
656782:	c3                   	ret
656783:	90                   	nop
656784:	53                   	push   %ebx
656785:	56                   	push   %esi
656786:	57                   	push   %edi
656787:	8b f1                	mov    %ecx,%esi
656789:	8b fa                	mov    %edx,%edi
65678b:	8b d8                	mov    %eax,%ebx
65678d:	85 f6                	test   %esi,%esi
65678f:	75 0d                	jne    0x65679e
656791:	8b d7                	mov    %edi,%edx
656793:	8b c3                	mov    %ebx,%eax
656795:	e8 32 ff ff ff       	call   0x6566cc
65679a:	85 c0                	test   %eax,%eax
65679c:	74 16                	je     0x6567b4
65679e:	8b d7                	mov    %edi,%edx
6567a0:	8b c3                	mov    %ebx,%eax
6567a2:	e8 71 ff ff ff       	call   0x656718
6567a7:	89 30                	mov    %esi,(%eax)
6567a9:	85 f6                	test   %esi,%esi
6567ab:	75 07                	jne    0x6567b4
6567ad:	8b c3                	mov    %ebx,%eax
6567af:	e8 b8 00 00 00       	call   0x65686c
6567b4:	5f                   	pop    %edi
6567b5:	5e                   	pop    %esi
6567b6:	5b                   	pop    %ebx
6567b7:	c3                   	ret
6567b8:	55                   	push   %ebp
6567b9:	8b ec                	mov    %esp,%ebp
6567bb:	83 c4 e8             	add    $0xffffffe8,%esp
6567be:	53                   	push   %ebx
6567bf:	56                   	push   %esi
6567c0:	57                   	push   %edi
6567c1:	89 55 f0             	mov    %edx,-0x10(%ebp)
6567c4:	8b f0                	mov    %eax,%esi
6567c6:	33 c0                	xor    %eax,%eax
6567c8:	89 45 ec             	mov    %eax,-0x14(%ebp)
6567cb:	33 c0                	xor    %eax,%eax
6567cd:	89 45 e8             	mov    %eax,-0x18(%ebp)
6567d0:	8b 45 00             	mov    0x0(%ebp),%eax
6567d3:	89 45 fc             	mov    %eax,-0x4(%ebp)
6567d6:	eb 50                	jmp    0x656828
6567d8:	8b 46 04             	mov    0x4(%esi),%eax
6567db:	8b 55 e8             	mov    -0x18(%ebp),%edx
6567de:	8b 1c 90             	mov    (%eax,%edx,4),%ebx
6567e1:	85 db                	test   %ebx,%ebx
6567e3:	74 40                	je     0x656825
6567e5:	33 ff                	xor    %edi,%edi
6567e7:	66 8b 4e 0c          	mov    0xc(%esi),%cx
6567eb:	8b 45 e8             	mov    -0x18(%ebp),%eax
6567ee:	d3 e0                	shl    %cl,%eax
6567f0:	89 45 f8             	mov    %eax,-0x8(%ebp)
6567f3:	eb 22                	jmp    0x656817
6567f5:	8b 03                	mov    (%ebx),%eax
6567f7:	89 45 f4             	mov    %eax,-0xc(%ebp)
6567fa:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
6567fe:	74 10                	je     0x656810
656800:	8b 45 f8             	mov    -0x8(%ebp),%eax
656803:	8b 55 f4             	mov    -0xc(%ebp),%edx
656806:	ff 75 fc             	push   -0x4(%ebp)
656809:	ff 55 f0             	call   *-0x10(%ebp)
65680c:	59                   	pop    %ecx
65680d:	89 45 ec             	mov    %eax,-0x14(%ebp)
656810:	83 c3 04             	add    $0x4,%ebx
656813:	47                   	inc    %edi
656814:	ff 45 f8             	incl   -0x8(%ebp)
656817:	0f b7 46 14          	movzwl 0x14(%esi),%eax
65681b:	3b f8                	cmp    %eax,%edi
65681d:	7d 06                	jge    0x656825
65681f:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
656823:	74 d0                	je     0x6567f5
656825:	ff 45 e8             	incl   -0x18(%ebp)
656828:	0f b7 46 08          	movzwl 0x8(%esi),%eax
65682c:	3b 45 e8             	cmp    -0x18(%ebp),%eax
65682f:	76 06                	jbe    0x656837
656831:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
656835:	74 a1                	je     0x6567d8
656837:	8b 45 ec             	mov    -0x14(%ebp),%eax
65683a:	5f                   	pop    %edi
65683b:	5e                   	pop    %esi
65683c:	5b                   	pop    %ebx
65683d:	8b e5                	mov    %ebp,%esp
65683f:	5d                   	pop    %ebp
656840:	c3                   	ret
656841:	8d 40 00             	lea    0x0(%eax),%eax
656844:	55                   	push   %ebp
656845:	8b ec                	mov    %esp,%ebp
656847:	8b 4d 08             	mov    0x8(%ebp),%ecx
65684a:	8b 49 fc             	mov    -0x4(%ecx),%ecx
65684d:	3b 41 10             	cmp    0x10(%ecx),%eax
656850:	7e 07                	jle    0x656859
656852:	b9 01 00 00 00       	mov    $0x1,%ecx
656857:	eb 0c                	jmp    0x656865
656859:	33 c9                	xor    %ecx,%ecx
65685b:	85 d2                	test   %edx,%edx
65685d:	74 06                	je     0x656865
65685f:	8b 55 08             	mov    0x8(%ebp),%edx
656862:	89 42 f8             	mov    %eax,-0x8(%edx)
656865:	8b c1                	mov    %ecx,%eax
656867:	5d                   	pop    %ebp
656868:	c3                   	ret
656869:	8d 40 00             	lea    0x0(%eax),%eax
65686c:	55                   	push   %ebp
65686d:	8b ec                	mov    %esp,%ebp
65686f:	83 c4 f8             	add    $0xfffffff8,%esp
656872:	89 45 fc             	mov    %eax,-0x4(%ebp)
656875:	c7 45 f8 ff ff ff ff 	movl   $0xffffffff,-0x8(%ebp)
65687c:	ba 44 68 65 00       	mov    $0x656844,%edx
656881:	8b 45 fc             	mov    -0x4(%ebp),%eax
656884:	e8 2f ff ff ff       	call   0x6567b8
656889:	8b 45 fc             	mov    -0x4(%ebp),%eax
65688c:	8b 55 f8             	mov    -0x8(%ebp),%edx
65688f:	89 50 10             	mov    %edx,0x10(%eax)
656892:	59                   	pop    %ecx
656893:	59                   	pop    %ecx
656894:	5d                   	pop    %ebp
656895:	c3                   	ret
656896:	8b c0                	mov    %eax,%eax
656898:	53                   	push   %ebx
656899:	56                   	push   %esi
65689a:	84 d2                	test   %dl,%dl
65689c:	74 08                	je     0x6568a6
65689e:	83 c4 f0             	add    $0xfffffff0,%esp
6568a1:	e8 36 d5 da ff       	call   0x403ddc
6568a6:	8b da                	mov    %edx,%ebx
6568a8:	8b f0                	mov    %eax,%esi
6568aa:	8b d1                	mov    %ecx,%edx
6568ac:	8b c6                	mov    %esi,%eax
6568ae:	e8 3d 02 00 00       	call   0x656af0
6568b3:	8b c6                	mov    %esi,%eax
6568b5:	84 db                	test   %bl,%bl
6568b7:	74 0f                	je     0x6568c8
6568b9:	e8 76 d5 da ff       	call   0x403e34
6568be:	64 8f 05 00 00 00 00 	pop    %fs:0x0
6568c5:	83 c4 0c             	add    $0xc,%esp
6568c8:	8b c6                	mov    %esi,%eax
6568ca:	5e                   	pop    %esi
6568cb:	5b                   	pop    %ebx
6568cc:	c3                   	ret
6568cd:	8d 40 00             	lea    0x0(%eax),%eax
6568d0:	53                   	push   %ebx
6568d1:	56                   	push   %esi
6568d2:	e8 6d d5 da ff       	call   0x403e44
6568d7:	8b da                	mov    %edx,%ebx
6568d9:	8b f0                	mov    %eax,%esi
6568db:	8b 46 04             	mov    0x4(%esi),%eax
6568de:	85 c0                	test   %eax,%eax
6568e0:	74 07                	je     0x6568e9
6568e2:	b2 01                	mov    $0x1,%dl
6568e4:	8b 08                	mov    (%eax),%ecx
6568e6:	ff 51 fc             	call   *-0x4(%ecx)
6568e9:	84 db                	test   %bl,%bl
6568eb:	7e 07                	jle    0x6568f4
6568ed:	8b c6                	mov    %esi,%eax
6568ef:	e8 38 d5 da ff       	call   0x403e2c
6568f4:	5e                   	pop    %esi
6568f5:	5b                   	pop    %ebx
6568f6:	c3                   	ret
6568f7:	90                   	nop
6568f8:	53                   	push   %ebx
6568f9:	8b d8                	mov    %eax,%ebx
6568fb:	b2 01                	mov    $0x1,%dl
6568fd:	8b 43 04             	mov    0x4(%ebx),%eax
656900:	8b 08                	mov    (%eax),%ecx
656902:	ff 51 fc             	call   *-0x4(%ecx)
656905:	8a 53 0c             	mov    0xc(%ebx),%dl
656908:	8b c3                	mov    %ebx,%eax
65690a:	e8 e1 01 00 00       	call   0x656af0
65690f:	33 c0                	xor    %eax,%eax
656911:	89 43 08             	mov    %eax,0x8(%ebx)
656914:	5b                   	pop    %ebx
656915:	c3                   	ret
656916:	8b c0                	mov    %eax,%eax
656918:	53                   	push   %ebx
656919:	56                   	push   %esi
65691a:	57                   	push   %edi
65691b:	55                   	push   %ebp
65691c:	8b d8                	mov    %eax,%ebx
65691e:	85 d2                	test   %edx,%edx
656920:	7c 3c                	jl     0x65695e
656922:	3b 53 08             	cmp    0x8(%ebx),%edx
656925:	7d 37                	jge    0x65695e
656927:	8b f2                	mov    %edx,%esi
656929:	8b 7b 08             	mov    0x8(%ebx),%edi
65692c:	4f                   	dec    %edi
65692d:	2b fe                	sub    %esi,%edi
65692f:	7c 1d                	jl     0x65694e
656931:	47                   	inc    %edi
656932:	8d 56 01             	lea    0x1(%esi),%edx
656935:	8b 6b 04             	mov    0x4(%ebx),%ebp
656938:	8b c5                	mov    %ebp,%eax
65693a:	e8 8d fd ff ff       	call   0x6566cc
65693f:	8b c8                	mov    %eax,%ecx
656941:	8b d6                	mov    %esi,%edx
656943:	8b c5                	mov    %ebp,%eax
656945:	e8 3a fe ff ff       	call   0x656784
65694a:	46                   	inc    %esi
65694b:	4f                   	dec    %edi
65694c:	75 e4                	jne    0x656932
65694e:	33 c9                	xor    %ecx,%ecx
656950:	8b 53 08             	mov    0x8(%ebx),%edx
656953:	8b 43 04             	mov    0x4(%ebx),%eax
656956:	e8 29 fe ff ff       	call   0x656784
65695b:	ff 4b 08             	decl   0x8(%ebx)
65695e:	5d                   	pop    %ebp
65695f:	5f                   	pop    %edi
656960:	5e                   	pop    %esi
656961:	5b                   	pop    %ebx
656962:	c3                   	ret
656963:	90                   	nop
656964:	53                   	push   %ebx
656965:	56                   	push   %esi
656966:	57                   	push   %edi
656967:	55                   	push   %ebp
656968:	8b f9                	mov    %ecx,%edi
65696a:	8b f2                	mov    %edx,%esi
65696c:	8b d8                	mov    %eax,%ebx
65696e:	8b d6                	mov    %esi,%edx
656970:	8b c3                	mov    %ebx,%eax
656972:	e8 35 00 00 00       	call   0x6569ac
656977:	8b e8                	mov    %eax,%ebp
656979:	8b d7                	mov    %edi,%edx
65697b:	8b c3                	mov    %ebx,%eax
65697d:	e8 2a 00 00 00       	call   0x6569ac
656982:	8b c8                	mov    %eax,%ecx
656984:	8b d6                	mov    %esi,%edx
656986:	8b c3                	mov    %ebx,%eax
656988:	e8 83 01 00 00       	call   0x656b10
65698d:	8b cd                	mov    %ebp,%ecx
65698f:	8b d7                	mov    %edi,%edx
656991:	8b c3                	mov    %ebx,%eax
656993:	e8 78 01 00 00       	call   0x656b10
656998:	5d                   	pop    %ebp
656999:	5f                   	pop    %edi
65699a:	5e                   	pop    %esi
65699b:	5b                   	pop    %ebx
65699c:	c3                   	ret
65699d:	8d 40 00             	lea    0x0(%eax),%eax
6569a0:	8b 40 04             	mov    0x4(%eax),%eax
6569a3:	e9 10 fe ff ff       	jmp    0x6567b8
6569a8:	c3                   	ret
6569a9:	8d 40 00             	lea    0x0(%eax),%eax
6569ac:	55                   	push   %ebp
6569ad:	8b ec                	mov    %esp,%ebp
6569af:	6a 00                	push   $0x0
6569b1:	53                   	push   %ebx
6569b2:	56                   	push   %esi
6569b3:	8b da                	mov    %edx,%ebx
6569b5:	8b f0                	mov    %eax,%esi
6569b7:	33 c0                	xor    %eax,%eax
6569b9:	55                   	push   %ebp
6569ba:	68 07 6a 65 00       	push   $0x656a07
6569bf:	64 ff 30             	push   %fs:(%eax)
6569c2:	64 89 20             	mov    %esp,%fs:(%eax)