56978b:	0f b7 43 04          	movzwl 0x4(%ebx),%eax
56978f:	c1 f8 08             	sar    $0x8,%eax
569792:	88 01                	mov    %al,(%ecx)
569794:	33 c9                	xor    %ecx,%ecx
569796:	8a c8                	mov    %al,%cl
569798:	eb 03                	jmp    0x56979d
56979a:	83 c9 ff             	or     $0xffffffff,%ecx
56979d:	41                   	inc    %ecx
56979e:	75 05                	jne    0x5697a5
5697a0:	83 c8 ff             	or     $0xffffffff,%eax
5697a3:	eb 12                	jmp    0x5697b7
5697a5:	33 c0                	xor    %eax,%eax
5697a7:	eb 0e                	jmp    0x5697b7
5697a9:	8b 4b 08             	mov    0x8(%ebx),%ecx
5697ac:	33 d2                	xor    %edx,%edx
5697ae:	66 d3 e2             	shl    %cl,%dx
5697b1:	66 09 53 04          	or     %dx,0x4(%ebx)
5697b5:	33 c0                	xor    %eax,%eax
5697b7:	40                   	inc    %eax
5697b8:	75 05                	jne    0x5697bf
5697ba:	83 c8 ff             	or     $0xffffffff,%eax
5697bd:	eb 02                	jmp    0x5697c1
5697bf:	33 c0                	xor    %eax,%eax
5697c1:	5a                   	pop    %edx
5697c2:	5d                   	pop    %ebp
5697c3:	5f                   	pop    %edi
5697c4:	5e                   	pop    %esi
5697c5:	5b                   	pop    %ebx
5697c6:	c3                   	ret
5697c7:	90                   	nop
5697c8:	53                   	push   %ebx
5697c9:	56                   	push   %esi
5697ca:	57                   	push   %edi
5697cb:	55                   	push   %ebp
5697cc:	8b d8                	mov    %eax,%ebx
5697ce:	85 d2                	test   %edx,%edx
5697d0:	7f 08                	jg     0x5697da
5697d2:	83 c8 ff             	or     $0xffffffff,%eax
5697d5:	e9 74 01 00 00       	jmp    0x56994e
5697da:	83 fa 01             	cmp    $0x1,%edx
5697dd:	0f 85 ee 00 00 00    	jne    0x5698d1
5697e3:	f6 43 10 02          	testb  $0x2,0x10(%ebx)
5697e7:	75 17                	jne    0x569800
5697e9:	68 a5 00 00 00       	push   $0xa5
5697ee:	68 8c f9 69 00       	push   $0x69f98c
5697f3:	68 65 f9 69 00       	push   $0x69f965
5697f8:	e8 43 13 ff ff       	call   0x55ab40
5697fd:	83 c4 0c             	add    $0xc,%esp
569800:	ff 4b 08             	decl   0x8(%ebx)
569803:	0f 89 b8 00 00 00    	jns    0x5698c1
569809:	66 8b 73 04          	mov    0x4(%ebx),%si
56980d:	c1 e6 08             	shl    $0x8,%esi
569810:	66 81 e6 ff ff       	and    $0xffff,%si
569815:	66 89 73 04          	mov    %si,0x4(%ebx)
569819:	66 81 fe 00 ff       	cmp    $0xff00,%si
56981e:	75 07                	jne    0x569827
569820:	bf 06 00 00 00       	mov    $0x6,%edi
569825:	eb 05                	jmp    0x56982c
569827:	bf 07 00 00 00       	mov    $0x7,%edi
56982c:	89 7b 08             	mov    %edi,0x8(%ebx)
56982f:	8b cf                	mov    %edi,%ecx
569831:	33 c0                	xor    %eax,%eax
569833:	66 d3 e0             	shl    %cl,%ax
569836:	66 09 43 04          	or     %ax,0x4(%ebx)
56983a:	8b 53 0c             	mov    0xc(%ebx),%edx
56983d:	f6 42 08 07          	testb  $0x7,0x8(%edx)
569841:	75 69                	jne    0x5698ac
569843:	8b 6b 0c             	mov    0xc(%ebx),%ebp
569846:	8b 45 40             	mov    0x40(%ebp),%eax
569849:	85 c0                	test   %eax,%eax
56984b:	7c 19                	jl     0x569866
56984d:	8b 53 0c             	mov    0xc(%ebx),%edx
569850:	8b 4a 40             	mov    0x40(%edx),%ecx
569853:	8b 45 3c             	mov    0x3c(%ebp),%eax
569856:	3b c8                	cmp    %eax,%ecx
569858:	7f 0c                	jg     0x569866
56985a:	8b 53 0c             	mov    0xc(%ebx),%edx
56985d:	83 4a 08 04          	orl    $0x4,0x8(%edx)
569861:	83 c9 ff             	or     $0xffffffff,%ecx
569864:	eb 49                	jmp    0x5698af
569866:	8b 43 0c             	mov    0xc(%ebx),%eax
569869:	83 48 04 20          	orl    $0x20,0x4(%eax)
56986d:	8b 53 0c             	mov    0xc(%ebx),%edx
569870:	ff 4a 1c             	decl   0x1c(%edx)
569873:	79 19                	jns    0x56988e
569875:	0f b7 53 04          	movzwl 0x4(%ebx),%edx
569879:	c1 fa 08             	sar    $0x8,%edx
56987c:	8b 43 0c             	mov    0xc(%ebx),%eax
56987f:	81 e2 ff 00 00 00    	and    $0xff,%edx
569885:	e8 8e f5 00 00       	call   0x578e18
56988a:	8b c8                	mov    %eax,%ecx
56988c:	eb 21                	jmp    0x5698af
56988e:	8b 43 0c             	mov    0xc(%ebx),%eax
569891:	ff 40 3c             	incl   0x3c(%eax)
569894:	8b 53 0c             	mov    0xc(%ebx),%edx
569897:	8b 4a 18             	mov    0x18(%edx),%ecx
56989a:	ff 42 18             	incl   0x18(%edx)
56989d:	0f b7 43 04          	movzwl 0x4(%ebx),%eax
5698a1:	c1 f8 08             	sar    $0x8,%eax
5698a4:	88 01                	mov    %al,(%ecx)
5698a6:	33 c9                	xor    %ecx,%ecx
5698a8:	8a c8                	mov    %al,%cl
5698aa:	eb 03                	jmp    0x5698af
5698ac:	83 c9 ff             	or     $0xffffffff,%ecx
5698af:	41                   	inc    %ecx
5698b0:	75 08                	jne    0x5698ba
5698b2:	83 c8 ff             	or     $0xffffffff,%eax
5698b5:	e9 88 00 00 00       	jmp    0x569942
5698ba:	33 c0                	xor    %eax,%eax
5698bc:	e9 81 00 00 00       	jmp    0x569942
5698c1:	8b 4b 08             	mov    0x8(%ebx),%ecx
5698c4:	33 d2                	xor    %edx,%edx
5698c6:	66 d3 e2             	shl    %cl,%dx
5698c9:	66 09 53 04          	or     %dx,0x4(%ebx)
5698cd:	33 c0                	xor    %eax,%eax
5698cf:	eb 71                	jmp    0x569942
5698d1:	83 fa 02             	cmp    $0x2,%edx
5698d4:	75 13                	jne    0x5698e9
5698d6:	b9 02 00 00 00       	mov    $0x2,%ecx
5698db:	ba 02 00 00 00       	mov    $0x2,%edx
5698e0:	8b c3                	mov    %ebx,%eax
5698e2:	e8 1d 72 00 00       	call   0x570b04
5698e7:	eb 59                	jmp    0x569942
5698e9:	83 fa 05             	cmp    $0x5,%edx
5698ec:	7f 14                	jg     0x569902
5698ee:	8d 4a fd             	lea    -0x3(%edx),%ecx
5698f1:	83 c9 0c             	or     $0xc,%ecx
5698f4:	8b c3                	mov    %ebx,%eax
5698f6:	ba 04 00 00 00       	mov    $0x4,%edx
5698fb:	e8 04 72 00 00       	call   0x570b04
569900:	eb 40                	jmp    0x569942
569902:	83 fa 24             	cmp    $0x24,%edx
569905:	7f 17                	jg     0x56991e
569907:	8d 4a fa             	lea    -0x6(%edx),%ecx
56990a:	81 c9 e0 01 00 00    	or     $0x1e0,%ecx
569910:	8b c3                	mov    %ebx,%eax
569912:	ba 09 00 00 00       	mov    $0x9,%edx
569917:	e8 e8 71 00 00       	call   0x570b04
56991c:	eb 24                	jmp    0x569942
56991e:	81 fa a4 00 00 00    	cmp    $0xa4,%edx
569924:	7f 17                	jg     0x56993d
569926:	8d 4a db             	lea    -0x25(%edx),%ecx
569929:	81 c9 80 ff 00 00    	or     $0xff80,%ecx
56992f:	8b c3                	mov    %ebx,%eax
569931:	ba 10 00 00 00       	mov    $0x10,%edx
569936:	e8 c9 71 00 00       	call   0x570b04
56993b:	eb 05                	jmp    0x569942
56993d:	83 c8 ff             	or     $0xffffffff,%eax
569940:	eb 0c                	jmp    0x56994e
569942:	40                   	inc    %eax
569943:	74 04                	je     0x569949
569945:	33 d2                	xor    %edx,%edx
569947:	eb 03                	jmp    0x56994c
569949:	83 ca ff             	or     $0xffffffff,%edx
56994c:	8b c2                	mov    %edx,%eax
56994e:	5d                   	pop    %ebp
56994f:	5f                   	pop    %edi
569950:	5e                   	pop    %esi
569951:	5b                   	pop    %ebx
569952:	c3                   	ret
569953:	90                   	nop
569954:	53                   	push   %ebx
569955:	56                   	push   %esi
569956:	8b f0                	mov    %eax,%esi
569958:	57                   	push   %edi
569959:	8b fa                	mov    %edx,%edi
56995b:	33 d2                	xor    %edx,%edx
56995d:	8b 5e 0c             	mov    0xc(%esi),%ebx
569960:	8b c6                	mov    %esi,%eax
569962:	e8 b5 0c 00 00       	call   0x56a61c
569967:	8b 5b 1c             	mov    0x1c(%ebx),%ebx
56996a:	8b c3                	mov    %ebx,%eax
56996c:	e8 4f 34 00 00       	call   0x56cdc0
569971:	8b c3                	mov    %ebx,%eax
569973:	e8 48 1f 00 00       	call   0x56b8c0
569978:	85 c0                	test   %eax,%eax
56997a:	0f 85 a8 00 00 00    	jne    0x569a28
569980:	8b 53 64             	mov    0x64(%ebx),%edx
569983:	85 d2                	test   %edx,%edx
569985:	75 17                	jne    0x56999e
569987:	68 c5 00 00 00       	push   $0xc5
56998c:	68 b8 f9 69 00       	push   $0x69f9b8
569991:	68 ae f9 69 00       	push   $0x69f9ae
569996:	e8 a5 11 ff ff       	call   0x55ab40
56999b:	83 c4 0c             	add    $0xc,%esp
56999e:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
5699a1:	51                   	push   %ecx
5699a2:	8b 43 64             	mov    0x64(%ebx),%eax
5699a5:	85 c0                	test   %eax,%eax
5699a7:	75 17                	jne    0x5699c0
5699a9:	68 c6 00 00 00       	push   $0xc6
5699ae:	68 ce f9 69 00       	push   $0x69f9ce
5699b3:	68 c4 f9 69 00       	push   $0x69f9c4
5699b8:	e8 83 11 ff ff       	call   0x55ab40
5699bd:	83 c4 0c             	add    $0xc,%esp
5699c0:	8b 53 20             	mov    0x20(%ebx),%edx
5699c3:	52                   	push   %edx
5699c4:	8b 4b 64             	mov    0x64(%ebx),%ecx
5699c7:	85 c9                	test   %ecx,%ecx
5699c9:	75 17                	jne    0x5699e2
5699cb:	68 c6 00 00 00       	push   $0xc6
5699d0:	68 e4 f9 69 00       	push   $0x69f9e4
5699d5:	68 da f9 69 00       	push   $0x69f9da
5699da:	e8 61 11 ff ff       	call   0x55ab40
5699df:	83 c4 0c             	add    $0xc,%esp
5699e2:	8b 43 24             	mov    0x24(%ebx),%eax
5699e5:	50                   	push   %eax
5699e6:	8b 53 64             	mov    0x64(%ebx),%edx
5699e9:	85 d2                	test   %edx,%edx
5699eb:	75 17                	jne    0x569a04
5699ed:	68 c5 00 00 00       	push   $0xc5
5699f2:	68 a2 f9 69 00       	push   $0x69f9a2
5699f7:	68 98 f9 69 00       	push   $0x69f998
5699fc:	e8 3f 11 ff ff       	call   0x55ab40
569a01:	83 c4 0c             	add    $0xc,%esp
569a04:	8b 4b 18             	mov    0x18(%ebx),%ecx
569a07:	8b d7                	mov    %edi,%edx
569a09:	8b c6                	mov    %esi,%eax
569a0b:	e8 20 00 00 00       	call   0x569a30
569a10:	85 c0                	test   %eax,%eax
569a12:	74 05                	je     0x569a19
569a14:	83 c8 ff             	or     $0xffffffff,%eax
569a17:	eb 11                	jmp    0x569a2a
569a19:	8b c3                	mov    %ebx,%eax
569a1b:	e8 a0 1e 00 00       	call   0x56b8c0
569a20:	85 c0                	test   %eax,%eax
569a22:	0f 84 58 ff ff ff    	je     0x569980
569a28:	33 c0                	xor    %eax,%eax
569a2a:	5f                   	pop    %edi
569a2b:	5e                   	pop    %esi
569a2c:	5b                   	pop    %ebx
569a2d:	c3                   	ret
569a2e:	90                   	nop
569a2f:	90                   	nop
569a30:	55                   	push   %ebp
569a31:	8b ec                	mov    %esp,%ebp
569a33:	83 c4 a4             	add    $0xffffffa4,%esp
569a36:	53                   	push   %ebx
569a37:	56                   	push   %esi
569a38:	57                   	push   %edi
569a39:	89 4d f4             	mov    %ecx,-0xc(%ebp)
569a3c:	89 55 f8             	mov    %edx,-0x8(%ebp)
569a3f:	89 45 fc             	mov    %eax,-0x4(%ebp)
569a42:	8b 45 fc             	mov    -0x4(%ebp),%eax
569a45:	8b 50 0c             	mov    0xc(%eax),%edx
569a48:	89 55 b0             	mov    %edx,-0x50(%ebp)
569a4b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
569a4e:	8b 41 08             	mov    0x8(%ecx),%eax
569a51:	89 45 a8             	mov    %eax,-0x58(%ebp)
569a54:	8b 55 a8             	mov    -0x58(%ebp),%edx
569a57:	f6 42 3c 02          	testb  $0x2,0x3c(%edx)
569a5b:	74 4f                	je     0x569aac
569a5d:	b8 91 ff 00 00       	mov    $0xff91,%eax
569a62:	e8 79 c5 00 00       	call   0x575fe0
569a67:	89 45 a4             	mov    %eax,-0x5c(%ebp)
569a6a:	85 c0                	test   %eax,%eax
569a6c:	75 08                	jne    0x569a76
569a6e:	83 c8 ff             	or     $0xffffffff,%eax
569a71:	e9 33 09 00 00       	jmp    0x56a3a9
569a76:	8b 55 b0             	mov    -0x50(%ebp),%edx
569a79:	8b 4a 1c             	mov    0x1c(%edx),%ecx
569a7c:	8b 55 a4             	mov    -0x5c(%ebp),%edx
569a7f:	66 8b 41 68          	mov    0x68(%ecx),%ax
569a83:	66 89 42 08          	mov    %ax,0x8(%edx)
569a87:	8b 4d fc             	mov    -0x4(%ebp),%ecx
569a8a:	8b 45 f8             	mov    -0x8(%ebp),%eax
569a8d:	8b 51 10             	mov    0x10(%ecx),%edx
569a90:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
569a93:	e8 50 c4 00 00       	call   0x575ee8
569a98:	85 c0                	test   %eax,%eax
569a9a:	74 08                	je     0x569aa4
569a9c:	83 c8 ff             	or     $0xffffffff,%eax
569a9f:	e9 05 09 00 00       	jmp    0x56a3a9
569aa4:	8b 45 a4             	mov    -0x5c(%ebp),%eax
569aa7:	e8 7c c5 00 00       	call   0x576028
569aac:	ba f0 f9 69 00       	mov    $0x69f9f0,%edx
569ab1:	8b 45 f8             	mov    -0x8(%ebp),%eax
569ab4:	e8 17 6d 00 00       	call   0x5707d0
569ab9:	8b f0                	mov    %eax,%esi
569abb:	85 f6                	test   %esi,%esi
569abd:	75 17                	jne    0x569ad6
569abf:	68 00 01 00 00       	push   $0x100
569ac4:	68 f8 f9 69 00       	push   $0x69f9f8
569ac9:	68 f3 f9 69 00       	push   $0x69f9f3
569ace:	e8 6d 10 ff ff       	call   0x55ab40
569ad3:	83 c4 0c             	add    $0xc,%esp
569ad6:	f6 46 10 02          	testb  $0x2,0x10(%esi)
569ada:	75 17                	jne    0x569af3
569adc:	68 02 01 00 00       	push   $0x102
569ae1:	68 2c fa 69 00       	push   $0x69fa2c
569ae6:	68 04 fa 69 00       	push   $0x69fa04
569aeb:	e8 50 10 ff ff       	call   0x55ab40
569af0:	83 c4 0c             	add    $0xc,%esp
569af3:	ff 4e 08             	decl   0x8(%esi)
569af6:	0f 89 bb 00 00 00    	jns    0x569bb7
569afc:	66 8b 46 04          	mov    0x4(%esi),%ax
569b00:	c1 e0 08             	shl    $0x8,%eax
569b03:	66 25 ff ff          	and    $0xffff,%ax
569b07:	66 89 46 04          	mov    %ax,0x4(%esi)
569b0b:	66 81 7e 04 00 ff    	cmpw   $0xff00,0x4(%esi)
569b11:	75 07                	jne    0x569b1a
569b13:	ba 06 00 00 00       	mov    $0x6,%edx
569b18:	eb 05                	jmp    0x569b1f
569b1a:	ba 07 00 00 00       	mov    $0x7,%edx
569b1f:	66 b8 01 00          	mov    $0x1,%ax
569b23:	89 56 08             	mov    %edx,0x8(%esi)
569b26:	8b 4e 08             	mov    0x8(%esi),%ecx
569b29:	66 d3 e0             	shl    %cl,%ax
569b2c:	66 09 46 04          	or     %ax,0x4(%esi)
569b30:	8b 46 0c             	mov    0xc(%esi),%eax
569b33:	f6 40 08 07          	testb  $0x7,0x8(%eax)
569b37:	75 6c                	jne    0x569ba5
569b39:	8b 56 0c             	mov    0xc(%esi),%edx
569b3c:	8b 4a 40             	mov    0x40(%edx),%ecx
569b3f:	85 c9                	test   %ecx,%ecx
569b41:	7c 1c                	jl     0x569b5f
569b43:	8b 46 0c             	mov    0xc(%esi),%eax
569b46:	8b 4e 0c             	mov    0xc(%esi),%ecx
569b49:	8b 50 40             	mov    0x40(%eax),%edx
569b4c:	8b 41 3c             	mov    0x3c(%ecx),%eax
569b4f:	3b d0                	cmp    %eax,%edx
569b51:	7f 0c                	jg     0x569b5f
569b53:	8b 56 0c             	mov    0xc(%esi),%edx
569b56:	83 4a 08 04          	orl    $0x4,0x8(%edx)
569b5a:	83 c9 ff             	or     $0xffffffff,%ecx
569b5d:	eb 49                	jmp    0x569ba8
569b5f:	8b 46 0c             	mov    0xc(%esi),%eax
569b62:	83 48 04 20          	orl    $0x20,0x4(%eax)
569b66:	8b 56 0c             	mov    0xc(%esi),%edx
569b69:	ff 4a 1c             	decl   0x1c(%edx)
569b6c:	79 19                	jns    0x569b87
569b6e:	0f b7 56 04          	movzwl 0x4(%esi),%edx
569b72:	c1 fa 08             	sar    $0x8,%edx
569b75:	8b 46 0c             	mov    0xc(%esi),%eax
569b78:	81 e2 ff 00 00 00    	and    $0xff,%edx
569b7e:	e8 95 f2 00 00       	call   0x578e18
569b83:	8b c8                	mov    %eax,%ecx
569b85:	eb 21                	jmp    0x569ba8
569b87:	8b 46 0c             	mov    0xc(%esi),%eax
569b8a:	ff 40 3c             	incl   0x3c(%eax)
569b8d:	8b 56 0c             	mov    0xc(%esi),%edx
569b90:	8b 4a 18             	mov    0x18(%edx),%ecx
569b93:	ff 42 18             	incl   0x18(%edx)
569b96:	0f b7 46 04          	movzwl 0x4(%esi),%eax
569b9a:	c1 f8 08             	sar    $0x8,%eax
569b9d:	88 01                	mov    %al,(%ecx)
569b9f:	33 c9                	xor    %ecx,%ecx
569ba1:	8a c8                	mov    %al,%cl
569ba3:	eb 03                	jmp    0x569ba8
569ba5:	83 c9 ff             	or     $0xffffffff,%ecx