57777a:	83 c8 ff             	or     $0xffffffff,%eax
57777d:	eb 64                	jmp    0x5777e3
57777f:	f6 43 08 07          	testb  $0x7,0x8(%ebx)
577783:	8b fe                	mov    %esi,%edi
577785:	75 3a                	jne    0x5777c1
577787:	8b 6b 40             	mov    0x40(%ebx),%ebp
57778a:	85 ed                	test   %ebp,%ebp
57778c:	7c 10                	jl     0x57779e
57778e:	8b 43 3c             	mov    0x3c(%ebx),%eax
577791:	3b e8                	cmp    %eax,%ebp
577793:	7f 09                	jg     0x57779e
577795:	83 4b 08 04          	orl    $0x4,0x8(%ebx)
577799:	83 ce ff             	or     $0xffffffff,%esi
57779c:	eb 26                	jmp    0x5777c4
57779e:	ff 4b 1c             	decl   0x1c(%ebx)
5777a1:	79 10                	jns    0x5777b3
5777a3:	ba 01 00 00 00       	mov    $0x1,%edx
5777a8:	8b c3                	mov    %ebx,%eax
5777aa:	e8 79 15 00 00       	call   0x578d28
5777af:	8b f0                	mov    %eax,%esi
5777b1:	eb 11                	jmp    0x5777c4
5777b3:	ff 43 3c             	incl   0x3c(%ebx)
5777b6:	8b 43 18             	mov    0x18(%ebx),%eax
5777b9:	ff 43 18             	incl   0x18(%ebx)
5777bc:	0f b6 30             	movzbl (%eax),%esi
5777bf:	eb 03                	jmp    0x5777c4
5777c1:	83 ce ff             	or     $0xffffffff,%esi
5777c4:	83 fe ff             	cmp    $0xffffffff,%esi
5777c7:	75 05                	jne    0x5777ce
5777c9:	83 c8 ff             	or     $0xffffffff,%eax
5777cc:	eb 15                	jmp    0x5777e3
5777ce:	c1 e7 08             	shl    $0x8,%edi
5777d1:	66 0b fe             	or     %si,%di
5777d4:	8b 14 24             	mov    (%esp),%edx
5777d7:	85 d2                	test   %edx,%edx
5777d9:	74 06                	je     0x5777e1
5777db:	8b 0c 24             	mov    (%esp),%ecx
5777de:	66 89 39             	mov    %di,(%ecx)
5777e1:	33 c0                	xor    %eax,%eax
5777e3:	5a                   	pop    %edx
5777e4:	5d                   	pop    %ebp
5777e5:	5f                   	pop    %edi
5777e6:	5e                   	pop    %esi
5777e7:	5b                   	pop    %ebx
5777e8:	c3                   	ret
5777e9:	90                   	nop
5777ea:	90                   	nop
5777eb:	90                   	nop
5777ec:	53                   	push   %ebx
5777ed:	8b d8                	mov    %eax,%ebx
5777ef:	56                   	push   %esi
5777f0:	57                   	push   %edi
5777f1:	f6 43 08 07          	testb  $0x7,0x8(%ebx)
5777f5:	8b f2                	mov    %edx,%esi
5777f7:	75 53                	jne    0x57784c
5777f9:	8b 7b 40             	mov    0x40(%ebx),%edi
5777fc:	85 ff                	test   %edi,%edi
5777fe:	7c 10                	jl     0x577810
577800:	8b 43 3c             	mov    0x3c(%ebx),%eax
577803:	3b f8                	cmp    %eax,%edi
577805:	7f 09                	jg     0x577810
577807:	83 4b 08 04          	orl    $0x4,0x8(%ebx)
57780b:	83 ca ff             	or     $0xffffffff,%edx
57780e:	eb 3f                	jmp    0x57784f
577810:	83 4b 04 20          	orl    $0x20,0x4(%ebx)
577814:	ff 4b 1c             	decl   0x1c(%ebx)
577817:	79 1a                	jns    0x577833
577819:	0f b7 d6             	movzwl %si,%edx
57781c:	c1 fa 08             	sar    $0x8,%edx
57781f:	8b c3                	mov    %ebx,%eax
577821:	80 e2 ff             	and    $0xff,%dl
577824:	81 e2 ff 00 00 00    	and    $0xff,%edx
57782a:	e8 e9 15 00 00       	call   0x578e18
57782f:	8b d0                	mov    %eax,%edx
577831:	eb 1c                	jmp    0x57784f
577833:	0f b7 c6             	movzwl %si,%eax
577836:	ff 43 3c             	incl   0x3c(%ebx)
577839:	8b 4b 18             	mov    0x18(%ebx),%ecx
57783c:	ff 43 18             	incl   0x18(%ebx)
57783f:	c1 f8 08             	sar    $0x8,%eax
577842:	24 ff                	and    $0xff,%al
577844:	33 d2                	xor    %edx,%edx
577846:	8a d0                	mov    %al,%dl
577848:	88 01                	mov    %al,(%ecx)
57784a:	eb 03                	jmp    0x57784f
57784c:	83 ca ff             	or     $0xffffffff,%edx
57784f:	42                   	inc    %edx
577850:	74 57                	je     0x5778a9
577852:	f6 43 08 07          	testb  $0x7,0x8(%ebx)
577856:	75 4b                	jne    0x5778a3
577858:	8b 7b 40             	mov    0x40(%ebx),%edi
57785b:	85 ff                	test   %edi,%edi
57785d:	7c 10                	jl     0x57786f
57785f:	8b 43 3c             	mov    0x3c(%ebx),%eax
577862:	3b f8                	cmp    %eax,%edi
577864:	7f 09                	jg     0x57786f
577866:	83 4b 08 04          	orl    $0x4,0x8(%ebx)
57786a:	83 ca ff             	or     $0xffffffff,%edx
57786d:	eb 37                	jmp    0x5778a6
57786f:	83 4b 04 20          	orl    $0x20,0x4(%ebx)
577873:	ff 4b 1c             	decl   0x1c(%ebx)
577876:	79 16                	jns    0x57788e
577878:	8b d6                	mov    %esi,%edx
57787a:	8b c3                	mov    %ebx,%eax
57787c:	80 e2 ff             	and    $0xff,%dl
57787f:	81 e2 ff 00 00 00    	and    $0xff,%edx
577885:	e8 8e 15 00 00       	call   0x578e18
57788a:	8b d0                	mov    %eax,%edx
57788c:	eb 18                	jmp    0x5778a6
57788e:	ff 43 3c             	incl   0x3c(%ebx)
577891:	8b c6                	mov    %esi,%eax
577893:	8b 4b 18             	mov    0x18(%ebx),%ecx
577896:	24 ff                	and    $0xff,%al
577898:	ff 43 18             	incl   0x18(%ebx)
57789b:	33 d2                	xor    %edx,%edx
57789d:	8a d0                	mov    %al,%dl
57789f:	88 01                	mov    %al,(%ecx)
5778a1:	eb 03                	jmp    0x5778a6
5778a3:	83 ca ff             	or     $0xffffffff,%edx
5778a6:	42                   	inc    %edx
5778a7:	75 05                	jne    0x5778ae
5778a9:	83 c8 ff             	or     $0xffffffff,%eax
5778ac:	eb 02                	jmp    0x5778b0
5778ae:	33 c0                	xor    %eax,%eax
5778b0:	5f                   	pop    %edi
5778b1:	5e                   	pop    %esi
5778b2:	5b                   	pop    %ebx
5778b3:	c3                   	ret
5778b4:	53                   	push   %ebx
5778b5:	56                   	push   %esi
5778b6:	57                   	push   %edi
5778b7:	55                   	push   %ebp
5778b8:	8b d8                	mov    %eax,%ebx
5778ba:	51                   	push   %ecx
5778bb:	89 14 24             	mov    %edx,(%esp)
5778be:	f6 43 08 07          	testb  $0x7,0x8(%ebx)
5778c2:	75 3a                	jne    0x5778fe
5778c4:	8b 7b 40             	mov    0x40(%ebx),%edi
5778c7:	85 ff                	test   %edi,%edi
5778c9:	7c 10                	jl     0x5778db
5778cb:	8b 43 3c             	mov    0x3c(%ebx),%eax
5778ce:	3b f8                	cmp    %eax,%edi
5778d0:	7f 09                	jg     0x5778db
5778d2:	83 4b 08 04          	orl    $0x4,0x8(%ebx)
5778d6:	83 ce ff             	or     $0xffffffff,%esi
5778d9:	eb 26                	jmp    0x577901
5778db:	ff 4b 1c             	decl   0x1c(%ebx)
5778de:	79 10                	jns    0x5778f0
5778e0:	ba 01 00 00 00       	mov    $0x1,%edx
5778e5:	8b c3                	mov    %ebx,%eax
5778e7:	e8 3c 14 00 00       	call   0x578d28
5778ec:	8b f0                	mov    %eax,%esi
5778ee:	eb 11                	jmp    0x577901
5778f0:	ff 43 3c             	incl   0x3c(%ebx)
5778f3:	8b 43 18             	mov    0x18(%ebx),%eax
5778f6:	ff 43 18             	incl   0x18(%ebx)
5778f9:	0f b6 30             	movzbl (%eax),%esi
5778fc:	eb 03                	jmp    0x577901
5778fe:	83 ce ff             	or     $0xffffffff,%esi
577901:	83 fe ff             	cmp    $0xffffffff,%esi
577904:	75 08                	jne    0x57790e
577906:	83 c8 ff             	or     $0xffffffff,%eax
577909:	e9 09 01 00 00       	jmp    0x577a17
57790e:	f6 43 08 07          	testb  $0x7,0x8(%ebx)
577912:	8b fe                	mov    %esi,%edi
577914:	75 3a                	jne    0x577950
577916:	8b 6b 40             	mov    0x40(%ebx),%ebp
577919:	85 ed                	test   %ebp,%ebp
57791b:	7c 10                	jl     0x57792d
57791d:	8b 43 3c             	mov    0x3c(%ebx),%eax
577920:	3b e8                	cmp    %eax,%ebp
577922:	7f 09                	jg     0x57792d
577924:	83 4b 08 04          	orl    $0x4,0x8(%ebx)
577928:	83 ce ff             	or     $0xffffffff,%esi
57792b:	eb 26                	jmp    0x577953
57792d:	ff 4b 1c             	decl   0x1c(%ebx)
577930:	79 10                	jns    0x577942
577932:	ba 01 00 00 00       	mov    $0x1,%edx
577937:	8b c3                	mov    %ebx,%eax
577939:	e8 ea 13 00 00       	call   0x578d28
57793e:	8b f0                	mov    %eax,%esi
577940:	eb 11                	jmp    0x577953
577942:	ff 43 3c             	incl   0x3c(%ebx)
577945:	8b 43 18             	mov    0x18(%ebx),%eax
577948:	ff 43 18             	incl   0x18(%ebx)
57794b:	0f b6 30             	movzbl (%eax),%esi
57794e:	eb 03                	jmp    0x577953
577950:	83 ce ff             	or     $0xffffffff,%esi
577953:	83 fe ff             	cmp    $0xffffffff,%esi
577956:	75 08                	jne    0x577960
577958:	83 c8 ff             	or     $0xffffffff,%eax
57795b:	e9 b7 00 00 00       	jmp    0x577a17
577960:	c1 e7 08             	shl    $0x8,%edi
577963:	0b fe                	or     %esi,%edi
577965:	f6 43 08 07          	testb  $0x7,0x8(%ebx)
577969:	75 3a                	jne    0x5779a5
57796b:	8b 6b 40             	mov    0x40(%ebx),%ebp
57796e:	85 ed                	test   %ebp,%ebp
577970:	7c 10                	jl     0x577982
577972:	8b 43 3c             	mov    0x3c(%ebx),%eax
577975:	3b e8                	cmp    %eax,%ebp
577977:	7f 09                	jg     0x577982
577979:	83 4b 08 04          	orl    $0x4,0x8(%ebx)
57797d:	83 ce ff             	or     $0xffffffff,%esi
577980:	eb 26                	jmp    0x5779a8
577982:	ff 4b 1c             	decl   0x1c(%ebx)
577985:	79 10                	jns    0x577997
577987:	ba 01 00 00 00       	mov    $0x1,%edx
57798c:	8b c3                	mov    %ebx,%eax
57798e:	e8 95 13 00 00       	call   0x578d28
577993:	8b f0                	mov    %eax,%esi
577995:	eb 11                	jmp    0x5779a8
577997:	ff 43 3c             	incl   0x3c(%ebx)
57799a:	8b 43 18             	mov    0x18(%ebx),%eax
57799d:	ff 43 18             	incl   0x18(%ebx)
5779a0:	0f b6 30             	movzbl (%eax),%esi
5779a3:	eb 03                	jmp    0x5779a8
5779a5:	83 ce ff             	or     $0xffffffff,%esi
5779a8:	83 fe ff             	cmp    $0xffffffff,%esi
5779ab:	75 05                	jne    0x5779b2
5779ad:	83 c8 ff             	or     $0xffffffff,%eax
5779b0:	eb 65                	jmp    0x577a17
5779b2:	c1 e7 08             	shl    $0x8,%edi
5779b5:	0b fe                	or     %esi,%edi
5779b7:	f6 43 08 07          	testb  $0x7,0x8(%ebx)
5779bb:	75 3a                	jne    0x5779f7
5779bd:	8b 6b 40             	mov    0x40(%ebx),%ebp
5779c0:	85 ed                	test   %ebp,%ebp
5779c2:	7c 10                	jl     0x5779d4
5779c4:	8b 43 3c             	mov    0x3c(%ebx),%eax
5779c7:	3b e8                	cmp    %eax,%ebp
5779c9:	7f 09                	jg     0x5779d4
5779cb:	83 4b 08 04          	orl    $0x4,0x8(%ebx)
5779cf:	83 ce ff             	or     $0xffffffff,%esi
5779d2:	eb 26                	jmp    0x5779fa
5779d4:	ff 4b 1c             	decl   0x1c(%ebx)
5779d7:	79 10                	jns    0x5779e9
5779d9:	ba 01 00 00 00       	mov    $0x1,%edx
5779de:	8b c3                	mov    %ebx,%eax
5779e0:	e8 43 13 00 00       	call   0x578d28
5779e5:	8b f0                	mov    %eax,%esi
5779e7:	eb 11                	jmp    0x5779fa
5779e9:	ff 43 3c             	incl   0x3c(%ebx)
5779ec:	8b 43 18             	mov    0x18(%ebx),%eax
5779ef:	ff 43 18             	incl   0x18(%ebx)
5779f2:	0f b6 30             	movzbl (%eax),%esi
5779f5:	eb 03                	jmp    0x5779fa
5779f7:	83 ce ff             	or     $0xffffffff,%esi
5779fa:	83 fe ff             	cmp    $0xffffffff,%esi
5779fd:	75 05                	jne    0x577a04
5779ff:	83 c8 ff             	or     $0xffffffff,%eax
577a02:	eb 13                	jmp    0x577a17
577a04:	c1 e7 08             	shl    $0x8,%edi
577a07:	0b fe                	or     %esi,%edi
577a09:	8b 14 24             	mov    (%esp),%edx
577a0c:	85 d2                	test   %edx,%edx
577a0e:	74 05                	je     0x577a15
577a10:	8b 0c 24             	mov    (%esp),%ecx
577a13:	89 39                	mov    %edi,(%ecx)
577a15:	33 c0                	xor    %eax,%eax
577a17:	5a                   	pop    %edx
577a18:	5d                   	pop    %ebp
577a19:	5f                   	pop    %edi
577a1a:	5e                   	pop    %esi
577a1b:	5b                   	pop    %ebx
577a1c:	c3                   	ret
577a1d:	90                   	nop
577a1e:	90                   	nop
577a1f:	90                   	nop
577a20:	53                   	push   %ebx
577a21:	8b d8                	mov    %eax,%ebx
577a23:	56                   	push   %esi
577a24:	57                   	push   %edi
577a25:	f6 43 08 07          	testb  $0x7,0x8(%ebx)
577a29:	8b f2                	mov    %edx,%esi
577a2b:	75 51                	jne    0x577a7e
577a2d:	8b 7b 40             	mov    0x40(%ebx),%edi
577a30:	85 ff                	test   %edi,%edi
577a32:	7c 10                	jl     0x577a44
577a34:	8b 43 3c             	mov    0x3c(%ebx),%eax
577a37:	3b f8                	cmp    %eax,%edi
577a39:	7f 09                	jg     0x577a44
577a3b:	83 4b 08 04          	orl    $0x4,0x8(%ebx)
577a3f:	83 ca ff             	or     $0xffffffff,%edx
577a42:	eb 3d                	jmp    0x577a81
577a44:	83 4b 04 20          	orl    $0x20,0x4(%ebx)
577a48:	ff 4b 1c             	decl   0x1c(%ebx)
577a4b:	79 19                	jns    0x577a66
577a4d:	8b d6                	mov    %esi,%edx
577a4f:	8b c3                	mov    %ebx,%eax
577a51:	c1 ea 18             	shr    $0x18,%edx
577a54:	80 e2 ff             	and    $0xff,%dl
577a57:	81 e2 ff 00 00 00    	and    $0xff,%edx
577a5d:	e8 b6 13 00 00       	call   0x578e18
577a62:	8b d0                	mov    %eax,%edx
577a64:	eb 1b                	jmp    0x577a81
577a66:	ff 43 3c             	incl   0x3c(%ebx)
577a69:	8b c6                	mov    %esi,%eax
577a6b:	8b 4b 18             	mov    0x18(%ebx),%ecx
577a6e:	ff 43 18             	incl   0x18(%ebx)
577a71:	c1 e8 18             	shr    $0x18,%eax
577a74:	24 ff                	and    $0xff,%al
577a76:	33 d2                	xor    %edx,%edx
577a78:	8a d0                	mov    %al,%dl
577a7a:	88 01                	mov    %al,(%ecx)
577a7c:	eb 03                	jmp    0x577a81
577a7e:	83 ca ff             	or     $0xffffffff,%edx
577a81:	42                   	inc    %edx
577a82:	0f 84 15 01 00 00    	je     0x577b9d
577a88:	f6 43 08 07          	testb  $0x7,0x8(%ebx)
577a8c:	75 51                	jne    0x577adf
577a8e:	8b 7b 40             	mov    0x40(%ebx),%edi
577a91:	85 ff                	test   %edi,%edi
577a93:	7c 10                	jl     0x577aa5
577a95:	8b 43 3c             	mov    0x3c(%ebx),%eax
577a98:	3b f8                	cmp    %eax,%edi
577a9a:	7f 09                	jg     0x577aa5
577a9c:	83 4b 08 04          	orl    $0x4,0x8(%ebx)
577aa0:	83 ca ff             	or     $0xffffffff,%edx
577aa3:	eb 3d                	jmp    0x577ae2
577aa5:	83 4b 04 20          	orl    $0x20,0x4(%ebx)
577aa9:	ff 4b 1c             	decl   0x1c(%ebx)
577aac:	79 19                	jns    0x577ac7
577aae:	8b d6                	mov    %esi,%edx
577ab0:	8b c3                	mov    %ebx,%eax
577ab2:	c1 ea 10             	shr    $0x10,%edx
577ab5:	80 e2 ff             	and    $0xff,%dl
577ab8:	81 e2 ff 00 00 00    	and    $0xff,%edx
577abe:	e8 55 13 00 00       	call   0x578e18
577ac3:	8b d0                	mov    %eax,%edx
577ac5:	eb 1b                	jmp    0x577ae2
577ac7:	ff 43 3c             	incl   0x3c(%ebx)
577aca:	8b c6                	mov    %esi,%eax
577acc:	8b 4b 18             	mov    0x18(%ebx),%ecx
577acf:	ff 43 18             	incl   0x18(%ebx)
577ad2:	c1 e8 10             	shr    $0x10,%eax
577ad5:	24 ff                	and    $0xff,%al
577ad7:	33 d2                	xor    %edx,%edx
577ad9:	8a d0                	mov    %al,%dl
577adb:	88 01                	mov    %al,(%ecx)
577add:	eb 03                	jmp    0x577ae2
577adf:	83 ca ff             	or     $0xffffffff,%edx
577ae2:	42                   	inc    %edx
577ae3:	0f 84 b4 00 00 00    	je     0x577b9d
577ae9:	f6 43 08 07          	testb  $0x7,0x8(%ebx)
577aed:	75 51                	jne    0x577b40
577aef:	8b 7b 40             	mov    0x40(%ebx),%edi
577af2:	85 ff                	test   %edi,%edi
577af4:	7c 10                	jl     0x577b06
577af6:	8b 43 3c             	mov    0x3c(%ebx),%eax