54870d:	0f 83 4f 10 00 00    	jae    0x549762
548713:	8b c8                	mov    %eax,%ecx
548715:	33 d2                	xor    %edx,%edx
548717:	8a 13                	mov    (%ebx),%dl
548719:	d3 fa                	sar    %cl,%edx
54871b:	66 83 e2 0f          	and    $0xf,%dx
54871f:	66 3b 56 08          	cmp    0x8(%esi),%dx
548723:	75 1c                	jne    0x548741
548725:	b9 04 00 00 00       	mov    $0x4,%ecx
54872a:	2b c8                	sub    %eax,%ecx
54872c:	ba 0f 0f 00 00       	mov    $0xf0f,%edx
548731:	d3 fa                	sar    %cl,%edx
548733:	80 e2 ff             	and    $0xff,%dl
548736:	20 13                	and    %dl,(%ebx)
548738:	8b c8                	mov    %eax,%ecx
54873a:	8a 57 08             	mov    0x8(%edi),%dl
54873d:	d2 e2                	shl    %cl,%dl
54873f:	08 13                	or     %dl,(%ebx)
548741:	85 c0                	test   %eax,%eax
548743:	75 08                	jne    0x54874d
548745:	b8 04 00 00 00       	mov    $0x4,%eax
54874a:	43                   	inc    %ebx
54874b:	eb 03                	jmp    0x548750
54874d:	83 e8 04             	sub    $0x4,%eax
548750:	ff 45 f4             	incl   -0xc(%ebp)
548753:	8b 4d f4             	mov    -0xc(%ebp),%ecx
548756:	8b 55 f0             	mov    -0x10(%ebp),%edx
548759:	3b ca                	cmp    %edx,%ecx
54875b:	72 b6                	jb     0x548713
54875d:	e9 00 10 00 00       	jmp    0x549762
548762:	8b 45 20             	mov    0x20(%ebp),%eax
548765:	85 c0                	test   %eax,%eax
548767:	74 48                	je     0x5487b1
548769:	8b 5d f8             	mov    -0x8(%ebp),%ebx
54876c:	33 c0                	xor    %eax,%eax
54876e:	89 45 f4             	mov    %eax,-0xc(%ebp)
548771:	8b 55 f4             	mov    -0xc(%ebp),%edx
548774:	8b 4d f0             	mov    -0x10(%ebp),%ecx
548777:	3b d1                	cmp    %ecx,%edx
548779:	0f 83 e3 0f 00 00    	jae    0x549762
54877f:	33 c0                	xor    %eax,%eax
548781:	8a 03                	mov    (%ebx),%al
548783:	0f b7 56 08          	movzwl 0x8(%esi),%edx
548787:	3b c2                	cmp    %edx,%eax
548789:	75 07                	jne    0x548792
54878b:	8a 4f 08             	mov    0x8(%edi),%cl
54878e:	88 0b                	mov    %cl,(%ebx)
548790:	eb 0c                	jmp    0x54879e
548792:	33 c0                	xor    %eax,%eax
548794:	8a 03                	mov    (%ebx),%al
548796:	8b 55 20             	mov    0x20(%ebp),%edx
548799:	8a 0c 02             	mov    (%edx,%eax,1),%cl
54879c:	88 0b                	mov    %cl,(%ebx)
54879e:	ff 45 f4             	incl   -0xc(%ebp)
5487a1:	43                   	inc    %ebx
5487a2:	8b 45 f4             	mov    -0xc(%ebp),%eax
5487a5:	8b 55 f0             	mov    -0x10(%ebp),%edx
5487a8:	3b c2                	cmp    %edx,%eax
5487aa:	72 d3                	jb     0x54877f
5487ac:	e9 b1 0f 00 00       	jmp    0x549762
5487b1:	8b 5d f8             	mov    -0x8(%ebp),%ebx
5487b4:	33 c0                	xor    %eax,%eax
5487b6:	89 45 f4             	mov    %eax,-0xc(%ebp)
5487b9:	8b 55 f4             	mov    -0xc(%ebp),%edx
5487bc:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5487bf:	3b d1                	cmp    %ecx,%edx
5487c1:	0f 83 9b 0f 00 00    	jae    0x549762
5487c7:	33 c0                	xor    %eax,%eax
5487c9:	8a 03                	mov    (%ebx),%al
5487cb:	0f b7 56 08          	movzwl 0x8(%esi),%edx
5487cf:	3b c2                	cmp    %edx,%eax
5487d1:	75 05                	jne    0x5487d8
5487d3:	8a 4f 08             	mov    0x8(%edi),%cl
5487d6:	88 0b                	mov    %cl,(%ebx)
5487d8:	ff 45 f4             	incl   -0xc(%ebp)
5487db:	43                   	inc    %ebx
5487dc:	8b 45 f4             	mov    -0xc(%ebp),%eax
5487df:	8b 55 f0             	mov    -0x10(%ebp),%edx
5487e2:	3b c2                	cmp    %edx,%eax
5487e4:	72 e1                	jb     0x5487c7
5487e6:	e9 77 0f 00 00       	jmp    0x549762
5487eb:	8b 4d 14             	mov    0x14(%ebp),%ecx
5487ee:	85 c9                	test   %ecx,%ecx
5487f0:	0f 84 8e 00 00 00    	je     0x548884
5487f6:	8b 5d f8             	mov    -0x8(%ebp),%ebx
5487f9:	33 c0                	xor    %eax,%eax
5487fb:	89 45 f4             	mov    %eax,-0xc(%ebp)
5487fe:	8b 55 f4             	mov    -0xc(%ebp),%edx
548801:	8b 4d f0             	mov    -0x10(%ebp),%ecx
548804:	3b d1                	cmp    %ecx,%edx
548806:	0f 83 56 0f 00 00    	jae    0x549762
54880c:	33 c0                	xor    %eax,%eax
54880e:	33 d2                	xor    %edx,%edx
548810:	8a 03                	mov    (%ebx),%al
548812:	8a 53 01             	mov    0x1(%ebx),%dl
548815:	c1 e0 08             	shl    $0x8,%eax
548818:	66 03 c2             	add    %dx,%ax
54881b:	66 89 45 ea          	mov    %ax,-0x16(%ebp)
54881f:	66 8b 4e 08          	mov    0x8(%esi),%cx
548823:	66 3b 4d ea          	cmp    -0x16(%ebp),%cx
548827:	75 16                	jne    0x54883f
548829:	0f b7 47 08          	movzwl 0x8(%edi),%eax
54882d:	c1 f8 08             	sar    $0x8,%eax
548830:	24 ff                	and    $0xff,%al
548832:	88 03                	mov    %al,(%ebx)
548834:	8a 57 08             	mov    0x8(%edi),%dl
548837:	80 e2 ff             	and    $0xff,%dl
54883a:	88 53 01             	mov    %dl,0x1(%ebx)
54883d:	eb 30                	jmp    0x54886f
54883f:	33 c0                	xor    %eax,%eax
548841:	8b 4d 08             	mov    0x8(%ebp),%ecx
548844:	8a 43 01             	mov    0x1(%ebx),%al
548847:	8b 55 14             	mov    0x14(%ebp),%edx
54884a:	d3 f8                	sar    %cl,%eax
54884c:	8b 0c 82             	mov    (%edx,%eax,4),%ecx
54884f:	33 c0                	xor    %eax,%eax
548851:	8a 03                	mov    (%ebx),%al
548853:	66 8b 14 41          	mov    (%ecx,%eax,2),%dx
548857:	66 89 55 ea          	mov    %dx,-0x16(%ebp)
54885b:	0f b7 4d ea          	movzwl -0x16(%ebp),%ecx
54885f:	c1 f9 08             	sar    $0x8,%ecx
548862:	80 e1 ff             	and    $0xff,%cl
548865:	88 0b                	mov    %cl,(%ebx)
548867:	8a 45 ea             	mov    -0x16(%ebp),%al
54886a:	24 ff                	and    $0xff,%al
54886c:	88 43 01             	mov    %al,0x1(%ebx)
54886f:	ff 45 f4             	incl   -0xc(%ebp)
548872:	83 c3 02             	add    $0x2,%ebx
548875:	8b 55 f4             	mov    -0xc(%ebp),%edx
548878:	8b 4d f0             	mov    -0x10(%ebp),%ecx
54887b:	3b d1                	cmp    %ecx,%edx
54887d:	72 8d                	jb     0x54880c
54887f:	e9 de 0e 00 00       	jmp    0x549762
548884:	8b 5d f8             	mov    -0x8(%ebp),%ebx
548887:	33 c0                	xor    %eax,%eax
548889:	89 45 f4             	mov    %eax,-0xc(%ebp)
54888c:	8b 55 f4             	mov    -0xc(%ebp),%edx
54888f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
548892:	3b d1                	cmp    %ecx,%edx
548894:	0f 83 c8 0e 00 00    	jae    0x549762
54889a:	33 c0                	xor    %eax,%eax
54889c:	33 d2                	xor    %edx,%edx
54889e:	8a 03                	mov    (%ebx),%al
5488a0:	8a 53 01             	mov    0x1(%ebx),%dl
5488a3:	c1 e0 08             	shl    $0x8,%eax
5488a6:	66 03 c2             	add    %dx,%ax
5488a9:	66 89 45 e8          	mov    %ax,-0x18(%ebp)
5488ad:	66 8b 4e 08          	mov    0x8(%esi),%cx
5488b1:	66 3b 4d e8          	cmp    -0x18(%ebp),%cx
5488b5:	75 14                	jne    0x5488cb
5488b7:	0f b7 47 08          	movzwl 0x8(%edi),%eax
5488bb:	c1 f8 08             	sar    $0x8,%eax
5488be:	24 ff                	and    $0xff,%al
5488c0:	88 03                	mov    %al,(%ebx)
5488c2:	8a 57 08             	mov    0x8(%edi),%dl
5488c5:	80 e2 ff             	and    $0xff,%dl
5488c8:	88 53 01             	mov    %dl,0x1(%ebx)
5488cb:	ff 45 f4             	incl   -0xc(%ebp)
5488ce:	83 c3 02             	add    $0x2,%ebx
5488d1:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5488d4:	8b 45 f0             	mov    -0x10(%ebp),%eax
5488d7:	3b c8                	cmp    %eax,%ecx
5488d9:	72 bf                	jb     0x54889a
5488db:	e9 82 0e 00 00       	jmp    0x549762
5488e0:	8b 55 fc             	mov    -0x4(%ebp),%edx
5488e3:	8a 4a 09             	mov    0x9(%edx),%cl
5488e6:	80 f9 08             	cmp    $0x8,%cl
5488e9:	0f 85 f9 00 00 00    	jne    0x5489e8
5488ef:	8b 45 20             	mov    0x20(%ebp),%eax
5488f2:	85 c0                	test   %eax,%eax
5488f4:	0f 84 8c 00 00 00    	je     0x548986
5488fa:	8b 5d f8             	mov    -0x8(%ebp),%ebx
5488fd:	33 c0                	xor    %eax,%eax
5488ff:	89 45 f4             	mov    %eax,-0xc(%ebp)
548902:	8b 55 f4             	mov    -0xc(%ebp),%edx
548905:	8b 4d f0             	mov    -0x10(%ebp),%ecx
548908:	3b d1                	cmp    %ecx,%edx
54890a:	0f 83 52 0e 00 00    	jae    0x549762
548910:	33 c0                	xor    %eax,%eax
548912:	8a 03                	mov    (%ebx),%al
548914:	0f b7 56 02          	movzwl 0x2(%esi),%edx
548918:	3b c2                	cmp    %edx,%eax
54891a:	75 2d                	jne    0x548949
54891c:	33 c9                	xor    %ecx,%ecx
54891e:	8a 4b 01             	mov    0x1(%ebx),%cl
548921:	0f b7 46 04          	movzwl 0x4(%esi),%eax
548925:	3b c8                	cmp    %eax,%ecx
548927:	75 20                	jne    0x548949
548929:	33 d2                	xor    %edx,%edx
54892b:	8a 53 02             	mov    0x2(%ebx),%dl
54892e:	0f b7 4e 06          	movzwl 0x6(%esi),%ecx
548932:	3b d1                	cmp    %ecx,%edx
548934:	75 13                	jne    0x548949
548936:	8a 47 02             	mov    0x2(%edi),%al
548939:	88 03                	mov    %al,(%ebx)
54893b:	8a 57 04             	mov    0x4(%edi),%dl
54893e:	88 53 01             	mov    %dl,0x1(%ebx)
548941:	8a 4f 06             	mov    0x6(%edi),%cl
548944:	88 4b 02             	mov    %cl,0x2(%ebx)
548947:	eb 28                	jmp    0x548971
548949:	33 c0                	xor    %eax,%eax
54894b:	8a 03                	mov    (%ebx),%al
54894d:	8b 55 20             	mov    0x20(%ebp),%edx
548950:	8a 0c 02             	mov    (%edx,%eax,1),%cl
548953:	88 0b                	mov    %cl,(%ebx)
548955:	33 c0                	xor    %eax,%eax
548957:	8a 43 01             	mov    0x1(%ebx),%al
54895a:	8b 55 20             	mov    0x20(%ebp),%edx
54895d:	8a 0c 02             	mov    (%edx,%eax,1),%cl
548960:	88 4b 01             	mov    %cl,0x1(%ebx)
548963:	33 c0                	xor    %eax,%eax
548965:	8a 43 02             	mov    0x2(%ebx),%al
548968:	8b 55 20             	mov    0x20(%ebp),%edx
54896b:	8a 0c 02             	mov    (%edx,%eax,1),%cl
54896e:	88 4b 02             	mov    %cl,0x2(%ebx)
548971:	ff 45 f4             	incl   -0xc(%ebp)
548974:	83 c3 03             	add    $0x3,%ebx
548977:	8b 45 f4             	mov    -0xc(%ebp),%eax
54897a:	8b 55 f0             	mov    -0x10(%ebp),%edx
54897d:	3b c2                	cmp    %edx,%eax
54897f:	72 8f                	jb     0x548910
548981:	e9 dc 0d 00 00       	jmp    0x549762
548986:	8b 5d f8             	mov    -0x8(%ebp),%ebx
548989:	33 c0                	xor    %eax,%eax
54898b:	89 45 f4             	mov    %eax,-0xc(%ebp)
54898e:	8b 55 f4             	mov    -0xc(%ebp),%edx
548991:	8b 4d f0             	mov    -0x10(%ebp),%ecx
548994:	3b d1                	cmp    %ecx,%edx
548996:	0f 83 c6 0d 00 00    	jae    0x549762
54899c:	33 c0                	xor    %eax,%eax
54899e:	8a 03                	mov    (%ebx),%al
5489a0:	0f b7 56 02          	movzwl 0x2(%esi),%edx
5489a4:	3b c2                	cmp    %edx,%eax
5489a6:	75 2b                	jne    0x5489d3
5489a8:	33 c9                	xor    %ecx,%ecx
5489aa:	8a 4b 01             	mov    0x1(%ebx),%cl
5489ad:	0f b7 46 04          	movzwl 0x4(%esi),%eax
5489b1:	3b c8                	cmp    %eax,%ecx
5489b3:	75 1e                	jne    0x5489d3
5489b5:	33 d2                	xor    %edx,%edx
5489b7:	8a 53 02             	mov    0x2(%ebx),%dl
5489ba:	0f b7 4e 06          	movzwl 0x6(%esi),%ecx
5489be:	3b d1                	cmp    %ecx,%edx
5489c0:	75 11                	jne    0x5489d3
5489c2:	8a 47 02             	mov    0x2(%edi),%al
5489c5:	88 03                	mov    %al,(%ebx)
5489c7:	8a 57 04             	mov    0x4(%edi),%dl
5489ca:	88 53 01             	mov    %dl,0x1(%ebx)
5489cd:	8a 4f 06             	mov    0x6(%edi),%cl
5489d0:	88 4b 02             	mov    %cl,0x2(%ebx)
5489d3:	ff 45 f4             	incl   -0xc(%ebp)
5489d6:	83 c3 03             	add    $0x3,%ebx
5489d9:	8b 45 f4             	mov    -0xc(%ebp),%eax
5489dc:	8b 55 f0             	mov    -0x10(%ebp),%edx
5489df:	3b c2                	cmp    %edx,%eax
5489e1:	72 b9                	jb     0x54899c
5489e3:	e9 7a 0d 00 00       	jmp    0x549762
5489e8:	8b 4d 14             	mov    0x14(%ebp),%ecx
5489eb:	85 c9                	test   %ecx,%ecx
5489ed:	0f 84 45 01 00 00    	je     0x548b38
5489f3:	8b 5d f8             	mov    -0x8(%ebp),%ebx
5489f6:	33 c0                	xor    %eax,%eax
5489f8:	89 45 f4             	mov    %eax,-0xc(%ebp)
5489fb:	8b 55 f4             	mov    -0xc(%ebp),%edx
5489fe:	8b 4d f0             	mov    -0x10(%ebp),%ecx
548a01:	3b d1                	cmp    %ecx,%edx
548a03:	0f 83 59 0d 00 00    	jae    0x549762
548a09:	33 c0                	xor    %eax,%eax
548a0b:	33 d2                	xor    %edx,%edx
548a0d:	8a 03                	mov    (%ebx),%al
548a0f:	8a 53 01             	mov    0x1(%ebx),%dl
548a12:	c1 e0 08             	shl    $0x8,%eax
548a15:	33 c9                	xor    %ecx,%ecx
548a17:	66 03 c2             	add    %dx,%ax
548a1a:	33 d2                	xor    %edx,%edx
548a1c:	66 89 45 e6          	mov    %ax,-0x1a(%ebp)
548a20:	33 c0                	xor    %eax,%eax
548a22:	8a 4b 02             	mov    0x2(%ebx),%cl
548a25:	8a 43 03             	mov    0x3(%ebx),%al
548a28:	c1 e1 08             	shl    $0x8,%ecx
548a2b:	66 03 c8             	add    %ax,%cx
548a2e:	66 89 4d e4          	mov    %cx,-0x1c(%ebp)
548a32:	33 c9                	xor    %ecx,%ecx
548a34:	8a 53 04             	mov    0x4(%ebx),%dl
548a37:	8a 4b 05             	mov    0x5(%ebx),%cl
548a3a:	c1 e2 08             	shl    $0x8,%edx
548a3d:	66 03 d1             	add    %cx,%dx
548a40:	66 89 55 e2          	mov    %dx,-0x1e(%ebp)
548a44:	66 8b 46 02          	mov    0x2(%esi),%ax
548a48:	66 3b 45 e6          	cmp    -0x1a(%ebp),%ax
548a4c:	75 55                	jne    0x548aa3
548a4e:	66 8b 56 04          	mov    0x4(%esi),%dx
548a52:	66 3b 55 e4          	cmp    -0x1c(%ebp),%dx
548a56:	75 4b                	jne    0x548aa3
548a58:	66 8b 4e 06          	mov    0x6(%esi),%cx
548a5c:	66 3b 4d e2          	cmp    -0x1e(%ebp),%cx
548a60:	75 41                	jne    0x548aa3
548a62:	0f b7 47 02          	movzwl 0x2(%edi),%eax
548a66:	c1 f8 08             	sar    $0x8,%eax
548a69:	24 ff                	and    $0xff,%al
548a6b:	88 03                	mov    %al,(%ebx)
548a6d:	8a 57 02             	mov    0x2(%edi),%dl
548a70:	80 e2 ff             	and    $0xff,%dl
548a73:	88 53 01             	mov    %dl,0x1(%ebx)
548a76:	0f b7 4f 04          	movzwl 0x4(%edi),%ecx
548a7a:	c1 f9 08             	sar    $0x8,%ecx
548a7d:	80 e1 ff             	and    $0xff,%cl
548a80:	88 4b 02             	mov    %cl,0x2(%ebx)
548a83:	8a 47 04             	mov    0x4(%edi),%al
548a86:	24 ff                	and    $0xff,%al
548a88:	88 43 03             	mov    %al,0x3(%ebx)
548a8b:	0f b7 57 06          	movzwl 0x6(%edi),%edx
548a8f:	c1 fa 08             	sar    $0x8,%edx
548a92:	80 e2 ff             	and    $0xff,%dl
548a95:	88 53 04             	mov    %dl,0x4(%ebx)
548a98:	8a 4f 06             	mov    0x6(%edi),%cl
548a9b:	80 e1 ff             	and    $0xff,%cl
548a9e:	88 4b 05             	mov    %cl,0x5(%ebx)
548aa1:	eb 7c                	jmp    0x548b1f
548aa3:	33 c0                	xor    %eax,%eax
548aa5:	8b 4d 08             	mov    0x8(%ebp),%ecx
548aa8:	8a 43 01             	mov    0x1(%ebx),%al
548aab:	8b 55 14             	mov    0x14(%ebp),%edx
548aae:	d3 f8                	sar    %cl,%eax
548ab0:	8b 04 82             	mov    (%edx,%eax,4),%eax
548ab3:	33 d2                	xor    %edx,%edx
548ab5:	8a 13                	mov    (%ebx),%dl
548ab7:	66 8b 04 50          	mov    (%eax,%edx,2),%ax
548abb:	0f b7 d0             	movzwl %ax,%edx
548abe:	c1 fa 08             	sar    $0x8,%edx
548ac1:	24 ff                	and    $0xff,%al
548ac3:	80 e2 ff             	and    $0xff,%dl
548ac6:	88 13                	mov    %dl,(%ebx)
548ac8:	88 43 01             	mov    %al,0x1(%ebx)
548acb:	33 c0                	xor    %eax,%eax
548acd:	8b 4d 08             	mov    0x8(%ebp),%ecx
548ad0:	8a 43 03             	mov    0x3(%ebx),%al
548ad3:	8b 55 14             	mov    0x14(%ebp),%edx
548ad6:	d3 f8                	sar    %cl,%eax
548ad8:	8b 0c 82             	mov    (%edx,%eax,4),%ecx
548adb:	33 c0                	xor    %eax,%eax
548add:	8a 43 02             	mov    0x2(%ebx),%al
548ae0:	66 8b 04 41          	mov    (%ecx,%eax,2),%ax
548ae4:	0f b7 d0             	movzwl %ax,%edx
548ae7:	c1 fa 08             	sar    $0x8,%edx
548aea:	24 ff                	and    $0xff,%al
548aec:	80 e2 ff             	and    $0xff,%dl
548aef:	88 53 02             	mov    %dl,0x2(%ebx)
548af2:	88 43 03             	mov    %al,0x3(%ebx)
548af5:	33 c0                	xor    %eax,%eax