56872e:	83 48 08 04          	orl    $0x4,0x8(%eax)
568732:	83 ca ff             	or     $0xffffffff,%edx
568735:	eb 4b                	jmp    0x568782
568737:	8b 4b 0c             	mov    0xc(%ebx),%ecx
56873a:	83 49 04 20          	orl    $0x20,0x4(%ecx)
56873e:	8b 43 0c             	mov    0xc(%ebx),%eax
568741:	ff 48 1c             	decl   0x1c(%eax)
568744:	79 19                	jns    0x56875f
568746:	0f b7 53 04          	movzwl 0x4(%ebx),%edx
56874a:	c1 fa 08             	sar    $0x8,%edx
56874d:	8b 43 0c             	mov    0xc(%ebx),%eax
568750:	81 e2 ff 00 00 00    	and    $0xff,%edx
568756:	e8 bd 06 01 00       	call   0x578e18
56875b:	8b d0                	mov    %eax,%edx
56875d:	eb 23                	jmp    0x568782
56875f:	8b 43 0c             	mov    0xc(%ebx),%eax
568762:	ff 40 3c             	incl   0x3c(%eax)
568765:	8b 4b 0c             	mov    0xc(%ebx),%ecx
568768:	8b 41 18             	mov    0x18(%ecx),%eax
56876b:	ff 41 18             	incl   0x18(%ecx)
56876e:	0f b7 53 04          	movzwl 0x4(%ebx),%edx
568772:	c1 fa 08             	sar    $0x8,%edx
568775:	88 10                	mov    %dl,(%eax)
568777:	81 e2 ff 00 00 00    	and    $0xff,%edx
56877d:	eb 03                	jmp    0x568782
56877f:	83 ca ff             	or     $0xffffffff,%edx
568782:	42                   	inc    %edx
568783:	75 05                	jne    0x56878a
568785:	83 c8 ff             	or     $0xffffffff,%eax
568788:	eb 20                	jmp    0x5687aa
56878a:	8b 45 9c             	mov    -0x64(%ebp),%eax
56878d:	83 e0 01             	and    $0x1,%eax
568790:	eb 18                	jmp    0x5687aa
568792:	66 8b 55 9c          	mov    -0x64(%ebp),%dx
568796:	8b 4b 08             	mov    0x8(%ebx),%ecx
568799:	66 83 e2 01          	and    $0x1,%dx
56879d:	66 d3 e2             	shl    %cl,%dx
5687a0:	66 09 53 04          	or     %dx,0x4(%ebx)
5687a4:	8b 45 9c             	mov    -0x64(%ebp),%eax
5687a7:	83 e0 01             	and    $0x1,%eax
5687aa:	40                   	inc    %eax
5687ab:	75 05                	jne    0x5687b2
5687ad:	83 c8 ff             	or     $0xffffffff,%eax
5687b0:	eb 52                	jmp    0x568804
5687b2:	81 0f 00 20 00 00    	orl    $0x2000,(%edi)
5687b8:	ff 4d f4             	decl   -0xc(%ebp)
5687bb:	83 45 c4 04          	addl   $0x4,-0x3c(%ebp)
5687bf:	83 45 c0 04          	addl   $0x4,-0x40(%ebp)
5687c3:	8b 55 f4             	mov    -0xc(%ebp),%edx
5687c6:	85 d2                	test   %edx,%edx
5687c8:	0f 8f d1 f8 ff ff    	jg     0x56809f
5687ce:	83 6d f8 04          	subl   $0x4,-0x8(%ebp)
5687d2:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5687d5:	c1 e1 02             	shl    $0x2,%ecx
5687d8:	01 4d cc             	add    %ecx,-0x34(%ebp)
5687db:	8b 45 d0             	mov    -0x30(%ebp),%eax
5687de:	c1 e0 02             	shl    $0x2,%eax
5687e1:	01 45 c8             	add    %eax,-0x38(%ebp)
5687e4:	8b 55 f8             	mov    -0x8(%ebp),%edx
5687e7:	85 d2                	test   %edx,%edx
5687e9:	0f 8f 7e f8 ff ff    	jg     0x56806d
5687ef:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5687f2:	85 c9                	test   %ecx,%ecx
5687f4:	74 0c                	je     0x568802
5687f6:	ba 2a 00 00 00       	mov    $0x2a,%edx
5687fb:	8b c3                	mov    %ebx,%eax
5687fd:	e8 4a 87 00 00       	call   0x570f4c
568802:	33 c0                	xor    %eax,%eax
568804:	5f                   	pop    %edi
568805:	5e                   	pop    %esi
568806:	5b                   	pop    %ebx
568807:	8b e5                	mov    %ebp,%esp
568809:	5d                   	pop    %ebp
56880a:	c2 10 00             	ret    $0x10
56880d:	90                   	nop
56880e:	90                   	nop
56880f:	90                   	nop
568810:	55                   	push   %ebp
568811:	8b ec                	mov    %esp,%ebp
568813:	83 c4 98             	add    $0xffffff98,%esp
568816:	53                   	push   %ebx
568817:	56                   	push   %esi
568818:	57                   	push   %edi
568819:	89 4d f8             	mov    %ecx,-0x8(%ebp)
56881c:	89 55 fc             	mov    %edx,-0x4(%ebp)
56881f:	8b d8                	mov    %eax,%ebx
568821:	8b 45 08             	mov    0x8(%ebp),%eax
568824:	33 d2                	xor    %edx,%edx
568826:	89 10                	mov    %edx,(%eax)
568828:	8b 4d 10             	mov    0x10(%ebp),%ecx
56882b:	8b 41 18             	mov    0x18(%ecx),%eax
56882e:	89 45 e0             	mov    %eax,-0x20(%ebp)
568831:	8b 55 10             	mov    0x10(%ebp),%edx
568834:	8b 4a 14             	mov    0x14(%edx),%ecx
568837:	89 4d dc             	mov    %ecx,-0x24(%ebp)
56883a:	8b 45 14             	mov    0x14(%ebp),%eax
56883d:	8b 50 14             	mov    0x14(%eax),%edx
568840:	4a                   	dec    %edx
568841:	7e 1f                	jle    0x568862
568843:	8b 4d 14             	mov    0x14(%ebp),%ecx
568846:	8b 41 1c             	mov    0x1c(%ecx),%eax
568849:	8b 4d 14             	mov    0x14(%ebp),%ecx
56884c:	8b 50 04             	mov    0x4(%eax),%edx
56884f:	8b 41 1c             	mov    0x1c(%ecx),%eax
568852:	8b 08                	mov    (%eax),%ecx
568854:	2b d1                	sub    %ecx,%edx
568856:	85 d2                	test   %edx,%edx
568858:	79 03                	jns    0x56885d
56885a:	83 c2 03             	add    $0x3,%edx
56885d:	c1 fa 02             	sar    $0x2,%edx
568860:	eb 02                	jmp    0x568864
568862:	33 d2                	xor    %edx,%edx
568864:	89 55 d4             	mov    %edx,-0x2c(%ebp)
568867:	8b 45 10             	mov    0x10(%ebp),%eax
56886a:	8b 50 14             	mov    0x14(%eax),%edx
56886d:	4a                   	dec    %edx
56886e:	7e 1f                	jle    0x56888f
568870:	8b 4d 10             	mov    0x10(%ebp),%ecx
568873:	8b 41 1c             	mov    0x1c(%ecx),%eax
568876:	8b 4d 10             	mov    0x10(%ebp),%ecx
568879:	8b 50 04             	mov    0x4(%eax),%edx
56887c:	8b 41 1c             	mov    0x1c(%ecx),%eax
56887f:	8b 08                	mov    (%eax),%ecx
568881:	2b d1                	sub    %ecx,%edx
568883:	85 d2                	test   %edx,%edx
568885:	79 03                	jns    0x56888a
568887:	83 c2 03             	add    $0x3,%edx
56888a:	c1 fa 02             	sar    $0x2,%edx
56888d:	eb 02                	jmp    0x568891
56888f:	33 d2                	xor    %edx,%edx
568891:	89 55 d0             	mov    %edx,-0x30(%ebp)
568894:	8b 45 d4             	mov    -0x2c(%ebp),%eax
568897:	c1 e0 02             	shl    $0x2,%eax
56889a:	89 45 cc             	mov    %eax,-0x34(%ebp)
56889d:	8b 55 d0             	mov    -0x30(%ebp),%edx
5688a0:	c1 e2 02             	shl    $0x2,%edx
5688a3:	89 55 c8             	mov    %edx,-0x38(%ebp)
5688a6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5688a9:	83 c1 06             	add    $0x6,%ecx
5688ac:	b8 01 00 00 00       	mov    $0x1,%eax
5688b1:	d3 e0                	shl    %cl,%eax
5688b3:	89 45 d8             	mov    %eax,-0x28(%ebp)
5688b6:	8b 55 14             	mov    0x14(%ebp),%edx
5688b9:	8b 4a 1c             	mov    0x1c(%edx),%ecx
5688bc:	8b 41 04             	mov    0x4(%ecx),%eax
5688bf:	83 c0 04             	add    $0x4,%eax
5688c2:	89 45 c4             	mov    %eax,-0x3c(%ebp)
5688c5:	8b 55 10             	mov    0x10(%ebp),%edx
5688c8:	8b 4a 1c             	mov    0x1c(%edx),%ecx
5688cb:	8b 01                	mov    (%ecx),%eax
5688cd:	89 45 c0             	mov    %eax,-0x40(%ebp)
5688d0:	8b 55 dc             	mov    -0x24(%ebp),%edx
5688d3:	89 55 f4             	mov    %edx,-0xc(%ebp)
5688d6:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5688d9:	85 c9                	test   %ecx,%ecx
5688db:	0f 8e 90 0b 00 00    	jle    0x569471
5688e1:	8b 45 c4             	mov    -0x3c(%ebp),%eax
5688e4:	89 45 bc             	mov    %eax,-0x44(%ebp)
5688e7:	8b 55 c0             	mov    -0x40(%ebp),%edx
5688ea:	89 55 b8             	mov    %edx,-0x48(%ebp)
5688ed:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5688f0:	83 f9 04             	cmp    $0x4,%ecx
5688f3:	7d 05                	jge    0x5688fa
5688f5:	8b 45 f4             	mov    -0xc(%ebp),%eax
5688f8:	eb 05                	jmp    0x5688ff
5688fa:	b8 04 00 00 00       	mov    $0x4,%eax
5688ff:	89 45 e8             	mov    %eax,-0x18(%ebp)
568902:	8b 55 e0             	mov    -0x20(%ebp),%edx
568905:	89 55 f0             	mov    %edx,-0x10(%ebp)
568908:	8b 4d f0             	mov    -0x10(%ebp),%ecx
56890b:	85 c9                	test   %ecx,%ecx
56890d:	0f 8e 3d 0b 00 00    	jle    0x569450
568913:	8b 75 bc             	mov    -0x44(%ebp),%esi
568916:	8b 45 e8             	mov    -0x18(%ebp),%eax
568919:	83 f8 04             	cmp    $0x4,%eax
56891c:	0f 8c 1d 02 00 00    	jl     0x568b3f
568922:	f7 06 ff 50 00 00    	testl  $0x50ff,(%esi)
568928:	0f 85 11 02 00 00    	jne    0x568b3f
56892e:	8b 55 d4             	mov    -0x2c(%ebp),%edx
568931:	c1 e2 02             	shl    $0x2,%edx
568934:	03 f2                	add    %edx,%esi
568936:	8b 0e                	mov    (%esi),%ecx
568938:	81 e1 ff 50 00 00    	and    $0x50ff,%ecx
56893e:	83 f9 01             	cmp    $0x1,%ecx
568941:	1b c0                	sbb    %eax,%eax
568943:	f7 d8                	neg    %eax
568945:	85 c0                	test   %eax,%eax
568947:	0f 84 f2 01 00 00    	je     0x568b3f
56894d:	8b 55 d4             	mov    -0x2c(%ebp),%edx
568950:	c1 e2 02             	shl    $0x2,%edx
568953:	03 f2                	add    %edx,%esi
568955:	8b 0e                	mov    (%esi),%ecx
568957:	81 e1 ff 50 00 00    	and    $0x50ff,%ecx
56895d:	83 f9 01             	cmp    $0x1,%ecx
568960:	1b c0                	sbb    %eax,%eax
568962:	f7 d8                	neg    %eax
568964:	85 c0                	test   %eax,%eax
568966:	0f 84 d3 01 00 00    	je     0x568b3f
56896c:	8b 55 d4             	mov    -0x2c(%ebp),%edx
56896f:	c1 e2 02             	shl    $0x2,%edx
568972:	03 f2                	add    %edx,%esi
568974:	8b 0e                	mov    (%esi),%ecx
568976:	81 e1 ff 50 00 00    	and    $0x50ff,%ecx
56897c:	83 f9 01             	cmp    $0x1,%ecx
56897f:	1b c0                	sbb    %eax,%eax
568981:	f7 d8                	neg    %eax
568983:	85 c0                	test   %eax,%eax
568985:	0f 84 b4 01 00 00    	je     0x568b3f
56898b:	8b 7d b8             	mov    -0x48(%ebp),%edi
56898e:	33 c0                	xor    %eax,%eax
568990:	89 45 ec             	mov    %eax,-0x14(%ebp)
568993:	8b 55 ec             	mov    -0x14(%ebp),%edx
568996:	8b 4d e8             	mov    -0x18(%ebp),%ecx
568999:	3b d1                	cmp    %ecx,%edx
56899b:	7d 30                	jge    0x5689cd
56899d:	8b 07                	mov    (%edi),%eax
56899f:	99                   	cltd
5689a0:	33 c2                	xor    %edx,%eax
5689a2:	2b c2                	sub    %edx,%eax
5689a4:	8b 4d d8             	mov    -0x28(%ebp),%ecx
5689a7:	23 c1                	and    %ecx,%eax
5689a9:	74 07                	je     0x5689b2
5689ab:	b8 01 00 00 00       	mov    $0x1,%eax
5689b0:	eb 02                	jmp    0x5689b4
5689b2:	33 c0                	xor    %eax,%eax
5689b4:	85 c0                	test   %eax,%eax
5689b6:	75 15                	jne    0x5689cd
5689b8:	8b 55 d0             	mov    -0x30(%ebp),%edx
5689bb:	ff 45 ec             	incl   -0x14(%ebp)
5689be:	c1 e2 02             	shl    $0x2,%edx
5689c1:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5689c4:	03 fa                	add    %edx,%edi
5689c6:	8b 45 e8             	mov    -0x18(%ebp),%eax
5689c9:	3b c8                	cmp    %eax,%ecx
5689cb:	7c d0                	jl     0x56899d
5689cd:	8b 55 ec             	mov    -0x14(%ebp),%edx
5689d0:	89 55 e4             	mov    %edx,-0x1c(%ebp)
5689d3:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
5689d6:	83 f9 04             	cmp    $0x4,%ecx
5689d9:	7c 4c                	jl     0x568a27
5689db:	8b 43 10             	mov    0x10(%ebx),%eax
5689de:	89 43 14             	mov    %eax,0x14(%ebx)
5689e1:	8b 53 14             	mov    0x14(%ebx),%edx
5689e4:	8b 0a                	mov    (%edx),%ecx
5689e6:	66 83 79 02 00       	cmpw   $0x0,0x2(%ecx)
5689eb:	75 2e                	jne    0x568a1b
5689ed:	8b 43 14             	mov    0x14(%ebx),%eax
5689f0:	8b 10                	mov    (%eax),%edx
5689f2:	0f b7 0a             	movzwl (%edx),%ecx
5689f5:	29 4b 04             	sub    %ecx,0x4(%ebx)
5689f8:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
5689fc:	75 0c                	jne    0x568a0a
5689fe:	8b c3                	mov    %ebx,%eax
568a00:	e8 47 9a 00 00       	call   0x57244c
568a05:	e9 30 0a 00 00       	jmp    0x56943a
568a0a:	8b 53 14             	mov    0x14(%ebx),%edx
568a0d:	8b 0a                	mov    (%edx),%ecx
568a0f:	0f b7 01             	movzwl (%ecx),%eax
568a12:	01 03                	add    %eax,(%ebx)
568a14:	8b 03                	mov    (%ebx),%eax
568a16:	e9 1f 0a 00 00       	jmp    0x56943a
568a1b:	8b c3                	mov    %ebx,%eax
568a1d:	e8 0a 9d 00 00       	call   0x57272c
568a22:	e9 13 0a 00 00       	jmp    0x56943a
568a27:	8b 53 10             	mov    0x10(%ebx),%edx
568a2a:	89 53 14             	mov    %edx,0x14(%ebx)
568a2d:	8b 4b 14             	mov    0x14(%ebx),%ecx
568a30:	8b 01                	mov    (%ecx),%eax
568a32:	66 83 78 02 01       	cmpw   $0x1,0x2(%eax)
568a37:	75 28                	jne    0x568a61
568a39:	8b 53 14             	mov    0x14(%ebx),%edx
568a3c:	8b 0a                	mov    (%edx),%ecx
568a3e:	0f b7 01             	movzwl (%ecx),%eax
568a41:	29 43 04             	sub    %eax,0x4(%ebx)
568a44:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
568a48:	75 09                	jne    0x568a53
568a4a:	8b c3                	mov    %ebx,%eax
568a4c:	e8 fb 99 00 00       	call   0x57244c
568a51:	eb 15                	jmp    0x568a68
568a53:	8b 53 14             	mov    0x14(%ebx),%edx
568a56:	8b 0a                	mov    (%edx),%ecx
568a58:	0f b7 01             	movzwl (%ecx),%eax
568a5b:	01 03                	add    %eax,(%ebx)
568a5d:	8b 03                	mov    (%ebx),%eax
568a5f:	eb 07                	jmp    0x568a68
568a61:	8b c3                	mov    %ebx,%eax
568a63:	e8 c4 9c 00 00       	call   0x57272c
568a68:	8b 53 10             	mov    0x10(%ebx),%edx
568a6b:	83 c2 48             	add    $0x48,%edx
568a6e:	89 53 14             	mov    %edx,0x14(%ebx)
568a71:	8b 4b 14             	mov    0x14(%ebx),%ecx
568a74:	8b 01                	mov    (%ecx),%eax
568a76:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
568a79:	d1 f9                	sar    $1,%ecx
568a7b:	0f b7 50 02          	movzwl 0x2(%eax),%edx
568a7f:	3b d1                	cmp    %ecx,%edx
568a81:	75 28                	jne    0x568aab
568a83:	8b 43 14             	mov    0x14(%ebx),%eax
568a86:	8b 10                	mov    (%eax),%edx
568a88:	0f b7 0a             	movzwl (%edx),%ecx
568a8b:	29 4b 04             	sub    %ecx,0x4(%ebx)
568a8e:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
568a92:	75 09                	jne    0x568a9d
568a94:	8b c3                	mov    %ebx,%eax
568a96:	e8 b1 99 00 00       	call   0x57244c
568a9b:	eb 15                	jmp    0x568ab2
568a9d:	8b 53 14             	mov    0x14(%ebx),%edx
568aa0:	8b 0a                	mov    (%edx),%ecx
568aa2:	0f b7 01             	movzwl (%ecx),%eax
568aa5:	01 03                	add    %eax,(%ebx)
568aa7:	8b 03                	mov    (%ebx),%eax
568aa9:	eb 07                	jmp    0x568ab2
568aab:	8b c3                	mov    %ebx,%eax
568aad:	e8 7a 9c 00 00       	call   0x57272c
568ab2:	8b 53 14             	mov    0x14(%ebx),%edx
568ab5:	8b 0a                	mov    (%edx),%ecx
568ab7:	8b 55 e4             	mov    -0x1c(%ebp),%edx
568aba:	83 e2 01             	and    $0x1,%edx
568abd:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
568ac1:	3b c2                	cmp    %edx,%eax
568ac3:	75 28                	jne    0x568aed
568ac5:	8b 4b 14             	mov    0x14(%ebx),%ecx
568ac8:	8b 01                	mov    (%ecx),%eax
568aca:	0f b7 10             	movzwl (%eax),%edx
568acd:	29 53 04             	sub    %edx,0x4(%ebx)
568ad0:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
568ad4:	75 09                	jne    0x568adf
568ad6:	8b c3                	mov    %ebx,%eax
568ad8:	e8 6f 99 00 00       	call   0x57244c
568add:	eb 15                	jmp    0x568af4
568adf:	8b 53 14             	mov    0x14(%ebx),%edx
568ae2:	8b 0a                	mov    (%edx),%ecx
568ae4:	0f b7 01             	movzwl (%ecx),%eax
568ae7:	01 03                	add    %eax,(%ebx)
568ae9:	8b 03                	mov    (%ebx),%eax
568aeb:	eb 07                	jmp    0x568af4
568aed:	8b c3                	mov    %ebx,%eax
568aef:	e8 38 9c 00 00       	call   0x57272c
568af4:	8b 75 d4             	mov    -0x2c(%ebp),%esi
568af7:	8b 7d d0             	mov    -0x30(%ebp),%edi
568afa:	0f af 75 e4          	imul   -0x1c(%ebp),%esi
568afe:	0f af 7d e4          	imul   -0x1c(%ebp),%edi
568b02:	c1 e6 02             	shl    $0x2,%esi
568b05:	8b 45 bc             	mov    -0x44(%ebp),%eax
568b08:	03 f0                	add    %eax,%esi
568b0a:	8b 55 e8             	mov    -0x18(%ebp),%edx
568b0d:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
568b10:	8b 45 b8             	mov    -0x48(%ebp),%eax
568b13:	c1 e7 02             	shl    $0x2,%edi
568b16:	2b d1                	sub    %ecx,%edx