566821:	5b                   	pop    %ebx
566822:	83 c4 1c             	add    $0x1c,%esp
566825:	c3                   	ret
566826:	cc                   	int3
566827:	cc                   	int3
566828:	cc                   	int3
566829:	cc                   	int3
56682a:	cc                   	int3
56682b:	cc                   	int3
56682c:	cc                   	int3
56682d:	cc                   	int3
56682e:	cc                   	int3
56682f:	cc                   	int3
566830:	8b 54 24 08          	mov    0x8(%esp),%edx
566834:	53                   	push   %ebx
566835:	8b 5c 24 08          	mov    0x8(%esp),%ebx
566839:	55                   	push   %ebp
56683a:	8b 4a 04             	mov    0x4(%edx),%ecx
56683d:	8b ea                	mov    %edx,%ebp
56683f:	57                   	push   %edi
566840:	8b 7c 24 18          	mov    0x18(%esp),%edi
566844:	3b 4f 04             	cmp    0x4(%edi),%ecx
566847:	0f 4d ef             	cmovge %edi,%ebp
56684a:	0f 4d fa             	cmovge %edx,%edi
56684d:	ff 77 04             	push   0x4(%edi)
566850:	53                   	push   %ebx
566851:	e8 4a 3d f7 ff       	call   0x4da5a0
566856:	83 c4 08             	add    $0x8,%esp
566859:	85 c0                	test   %eax,%eax
56685b:	75 04                	jne    0x566861
56685d:	5f                   	pop    %edi
56685e:	5d                   	pop    %ebp
56685f:	5b                   	pop    %ebx
566860:	c3                   	ret
566861:	33 c0                	xor    %eax,%eax
566863:	39 45 04             	cmp    %eax,0x4(%ebp)
566866:	7e 1f                	jle    0x566887
566868:	56                   	push   %esi
566869:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
566870:	8b 4d 00             	mov    0x0(%ebp),%ecx
566873:	8b 17                	mov    (%edi),%edx
566875:	8b 34 81             	mov    (%ecx,%eax,4),%esi
566878:	8b 0b                	mov    (%ebx),%ecx
56687a:	33 34 82             	xor    (%edx,%eax,4),%esi
56687d:	89 34 81             	mov    %esi,(%ecx,%eax,4)
566880:	40                   	inc    %eax
566881:	3b 45 04             	cmp    0x4(%ebp),%eax
566884:	7c ea                	jl     0x566870
566886:	5e                   	pop    %esi
566887:	8b 4f 04             	mov    0x4(%edi),%ecx
56688a:	3b c1                	cmp    %ecx,%eax
56688c:	7d 14                	jge    0x5668a2
56688e:	66 90                	xchg   %ax,%ax
566890:	8b 0f                	mov    (%edi),%ecx
566892:	8b 13                	mov    (%ebx),%edx
566894:	8b 0c 81             	mov    (%ecx,%eax,4),%ecx
566897:	89 0c 82             	mov    %ecx,(%edx,%eax,4)
56689a:	40                   	inc    %eax
56689b:	8b 4f 04             	mov    0x4(%edi),%ecx
56689e:	3b c1                	cmp    %ecx,%eax
5668a0:	7c ee                	jl     0x566890
5668a2:	53                   	push   %ebx
5668a3:	89 4b 04             	mov    %ecx,0x4(%ebx)
5668a6:	e8 a5 3b f7 ff       	call   0x4da450
5668ab:	83 c4 04             	add    $0x4,%esp
5668ae:	b8 01 00 00 00       	mov    $0x1,%eax
5668b3:	5f                   	pop    %edi
5668b4:	5d                   	pop    %ebp
5668b5:	5b                   	pop    %ebx
5668b6:	c3                   	ret
5668b7:	cc                   	int3
5668b8:	cc                   	int3
5668b9:	cc                   	int3
5668ba:	cc                   	int3
5668bb:	cc                   	int3
5668bc:	cc                   	int3
5668bd:	cc                   	int3
5668be:	cc                   	int3
5668bf:	cc                   	int3
5668c0:	b8 0c 00 00 00       	mov    $0xc,%eax
5668c5:	e8 e6 ae 06 00       	call   0x5d17b0
5668ca:	53                   	push   %ebx
5668cb:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
5668cf:	8b 03                	mov    (%ebx),%eax
5668d1:	85 c0                	test   %eax,%eax
5668d3:	75 17                	jne    0x5668ec
5668d5:	50                   	push   %eax
5668d6:	ff 74 24 18          	push   0x18(%esp)
5668da:	e8 01 38 f7 ff       	call   0x4da0e0
5668df:	83 c4 08             	add    $0x8,%esp
5668e2:	b8 01 00 00 00       	mov    $0x1,%eax
5668e7:	5b                   	pop    %ebx
5668e8:	83 c4 0c             	add    $0xc,%esp
5668eb:	c3                   	ret
5668ec:	56                   	push   %esi
5668ed:	8b 74 24 1c          	mov    0x1c(%esp),%esi
5668f1:	57                   	push   %edi
5668f2:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
5668f6:	3b f7                	cmp    %edi,%esi
5668f8:	74 3d                	je     0x566937
5668fa:	ff 76 04             	push   0x4(%esi)
5668fd:	57                   	push   %edi
5668fe:	e8 9d 3c f7 ff       	call   0x4da5a0
566903:	83 c4 08             	add    $0x8,%esp
566906:	85 c0                	test   %eax,%eax
566908:	75 07                	jne    0x566911
56690a:	5f                   	pop    %edi
56690b:	5e                   	pop    %esi
56690c:	5b                   	pop    %ebx
56690d:	83 c4 0c             	add    $0xc,%esp
566910:	c3                   	ret
566911:	8b 46 04             	mov    0x4(%esi),%eax
566914:	33 d2                	xor    %edx,%edx
566916:	85 c0                	test   %eax,%eax
566918:	7e 18                	jle    0x566932
56691a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
566920:	8b 06                	mov    (%esi),%eax
566922:	8b 0f                	mov    (%edi),%ecx
566924:	8b 04 90             	mov    (%eax,%edx,4),%eax
566927:	89 04 91             	mov    %eax,(%ecx,%edx,4)
56692a:	42                   	inc    %edx
56692b:	8b 46 04             	mov    0x4(%esi),%eax
56692e:	3b d0                	cmp    %eax,%edx
566930:	7c ee                	jl     0x566920
566932:	89 47 04             	mov    %eax,0x4(%edi)
566935:	8b 03                	mov    (%ebx),%eax
566937:	8b 3f                	mov    (%edi),%edi
566939:	99                   	cltd
56693a:	83 e2 1f             	and    $0x1f,%edx
56693d:	89 7c 24 24          	mov    %edi,0x24(%esp)
566941:	55                   	push   %ebp
566942:	8d 2c 02             	lea    (%edx,%eax,1),%ebp
566945:	8b 54 24 20          	mov    0x20(%esp),%edx
566949:	c1 fd 05             	sar    $0x5,%ebp
56694c:	89 6c 24 18          	mov    %ebp,0x18(%esp)
566950:	8b 52 04             	mov    0x4(%edx),%edx
566953:	4a                   	dec    %edx
566954:	89 54 24 10          	mov    %edx,0x10(%esp)
566958:	3b d5                	cmp    %ebp,%edx
56695a:	0f 8e d0 00 00 00    	jle    0x566a30
566960:	8b c2                	mov    %edx,%eax
566962:	2b c5                	sub    %ebp,%eax
566964:	8d 2c 87             	lea    (%edi,%eax,4),%ebp
566967:	89 6c 24 14          	mov    %ebp,0x14(%esp)
56696b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
566970:	8d 04 97             	lea    (%edi,%edx,4),%eax
566973:	8b 38                	mov    (%eax),%edi
566975:	85 ff                	test   %edi,%edi
566977:	75 11                	jne    0x56698a
566979:	4a                   	dec    %edx
56697a:	83 ed 04             	sub    $0x4,%ebp
56697d:	89 54 24 10          	mov    %edx,0x10(%esp)
566981:	89 6c 24 14          	mov    %ebp,0x14(%esp)
566985:	e9 92 00 00 00       	jmp    0x566a1c
56698a:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
566990:	be 01 00 00 00       	mov    $0x1,%esi
566995:	8b 4b 04             	mov    0x4(%ebx),%ecx
566998:	85 c9                	test   %ecx,%ecx
56699a:	74 58                	je     0x5669f4
56699c:	0f 1f 40 00          	nopl   0x0(%eax)
5669a0:	8b 03                	mov    (%ebx),%eax
5669a2:	2b c1                	sub    %ecx,%eax
5669a4:	8b e8                	mov    %eax,%ebp
5669a6:	81 e5 1f 00 00 80    	and    $0x8000001f,%ebp
5669ac:	79 05                	jns    0x5669b3
5669ae:	4d                   	dec    %ebp
5669af:	83 cd e0             	or     $0xffffffe0,%ebp
5669b2:	45                   	inc    %ebp
5669b3:	8b 4c 24 10          	mov    0x10(%esp),%ecx
5669b7:	99                   	cltd
5669b8:	83 e2 1f             	and    $0x1f,%edx
5669bb:	03 c2                	add    %edx,%eax
5669bd:	c1 f8 05             	sar    $0x5,%eax
5669c0:	2b c8                	sub    %eax,%ecx
5669c2:	8b 44 24 28          	mov    0x28(%esp),%eax
5669c6:	8d 14 88             	lea    (%eax,%ecx,4),%edx
5669c9:	8b c7                	mov    %edi,%eax
5669cb:	8b cd                	mov    %ebp,%ecx
5669cd:	d3 e8                	shr    %cl,%eax
5669cf:	31 02                	xor    %eax,(%edx)
5669d1:	85 ed                	test   %ebp,%ebp
5669d3:	74 0e                	je     0x5669e3
5669d5:	b9 20 00 00 00       	mov    $0x20,%ecx
5669da:	8b c7                	mov    %edi,%eax
5669dc:	2b cd                	sub    %ebp,%ecx
5669de:	d3 e0                	shl    %cl,%eax
5669e0:	31 42 fc             	xor    %eax,-0x4(%edx)
5669e3:	8b 4c b3 04          	mov    0x4(%ebx,%esi,4),%ecx
5669e7:	46                   	inc    %esi
5669e8:	85 c9                	test   %ecx,%ecx
5669ea:	75 b4                	jne    0x5669a0
5669ec:	8b 54 24 10          	mov    0x10(%esp),%edx
5669f0:	8b 6c 24 14          	mov    0x14(%esp),%ebp
5669f4:	8b 33                	mov    (%ebx),%esi
5669f6:	81 e6 1f 00 00 80    	and    $0x8000001f,%esi
5669fc:	79 05                	jns    0x566a03
5669fe:	4e                   	dec    %esi
5669ff:	83 ce e0             	or     $0xffffffe0,%esi
566a02:	46                   	inc    %esi
566a03:	8b c7                	mov    %edi,%eax
566a05:	8b ce                	mov    %esi,%ecx
566a07:	d3 e8                	shr    %cl,%eax
566a09:	31 45 00             	xor    %eax,0x0(%ebp)
566a0c:	85 f6                	test   %esi,%esi
566a0e:	74 0c                	je     0x566a1c
566a10:	b9 20 00 00 00       	mov    $0x20,%ecx
566a15:	2b ce                	sub    %esi,%ecx
566a17:	d3 e7                	shl    %cl,%edi
566a19:	31 7d fc             	xor    %edi,-0x4(%ebp)
566a1c:	8b 7c 24 28          	mov    0x28(%esp),%edi
566a20:	3b 54 24 18          	cmp    0x18(%esp),%edx
566a24:	0f 8f 46 ff ff ff    	jg     0x566970
566a2a:	8b 6c 24 18          	mov    0x18(%esp),%ebp
566a2e:	3b d5                	cmp    %ebp,%edx
566a30:	0f 85 9f 00 00 00    	jne    0x566ad5
566a36:	8d 04 af             	lea    (%edi,%ebp,4),%eax
566a39:	89 44 24 10          	mov    %eax,0x10(%esp)
566a3d:	0f 1f 00             	nopl   (%eax)
566a40:	8b 0b                	mov    (%ebx),%ecx
566a42:	81 e1 1f 00 00 80    	and    $0x8000001f,%ecx
566a48:	79 05                	jns    0x566a4f
566a4a:	49                   	dec    %ecx
566a4b:	83 c9 e0             	or     $0xffffffe0,%ecx
566a4e:	41                   	inc    %ecx
566a4f:	8b 00                	mov    (%eax),%eax
566a51:	8b e8                	mov    %eax,%ebp
566a53:	d3 ed                	shr    %cl,%ebp
566a55:	85 ed                	test   %ebp,%ebp
566a57:	74 7c                	je     0x566ad5
566a59:	ba 20 00 00 00       	mov    $0x20,%edx
566a5e:	2b d1                	sub    %ecx,%edx
566a60:	85 c9                	test   %ecx,%ecx
566a62:	74 08                	je     0x566a6c
566a64:	8b ca                	mov    %edx,%ecx
566a66:	d3 e0                	shl    %cl,%eax
566a68:	d3 e8                	shr    %cl,%eax
566a6a:	eb 02                	jmp    0x566a6e
566a6c:	33 c0                	xor    %eax,%eax
566a6e:	8b 4c 24 10          	mov    0x10(%esp),%ecx
566a72:	be 01 00 00 00       	mov    $0x1,%esi
566a77:	89 01                	mov    %eax,(%ecx)
566a79:	31 2f                	xor    %ebp,(%edi)
566a7b:	8b 4b 04             	mov    0x4(%ebx),%ecx
566a7e:	8b 44 24 10          	mov    0x10(%esp),%eax
566a82:	85 c9                	test   %ecx,%ecx
566a84:	74 ba                	je     0x566a40
566a86:	8b c1                	mov    %ecx,%eax
566a88:	99                   	cltd
566a89:	83 e2 1f             	and    $0x1f,%edx
566a8c:	03 c2                	add    %edx,%eax
566a8e:	c1 f8 05             	sar    $0x5,%eax
566a91:	81 e1 1f 00 00 80    	and    $0x8000001f,%ecx
566a97:	79 05                	jns    0x566a9e
566a99:	49                   	dec    %ecx
566a9a:	83 c9 e0             	or     $0xffffffe0,%ecx
566a9d:	41                   	inc    %ecx
566a9e:	8d 3c 87             	lea    (%edi,%eax,4),%edi
566aa1:	8b c5                	mov    %ebp,%eax
566aa3:	d3 e0                	shl    %cl,%eax
566aa5:	31 07                	xor    %eax,(%edi)
566aa7:	85 c9                	test   %ecx,%ecx
566aa9:	74 14                	je     0x566abf
566aab:	b8 20 00 00 00       	mov    $0x20,%eax
566ab0:	8b d5                	mov    %ebp,%edx
566ab2:	2b c1                	sub    %ecx,%eax
566ab4:	8b c8                	mov    %eax,%ecx
566ab6:	d3 ea                	shr    %cl,%edx
566ab8:	85 d2                	test   %edx,%edx
566aba:	74 03                	je     0x566abf
566abc:	31 57 04             	xor    %edx,0x4(%edi)
566abf:	8b 4c b3 04          	mov    0x4(%ebx,%esi,4),%ecx
566ac3:	46                   	inc    %esi
566ac4:	8b 7c 24 28          	mov    0x28(%esp),%edi
566ac8:	85 c9                	test   %ecx,%ecx
566aca:	75 ba                	jne    0x566a86
566acc:	8b 44 24 10          	mov    0x10(%esp),%eax
566ad0:	e9 6b ff ff ff       	jmp    0x566a40
566ad5:	ff 74 24 20          	push   0x20(%esp)
566ad9:	e8 72 39 f7 ff       	call   0x4da450
566ade:	83 c4 04             	add    $0x4,%esp
566ae1:	b8 01 00 00 00       	mov    $0x1,%eax
566ae6:	5d                   	pop    %ebp
566ae7:	5f                   	pop    %edi
566ae8:	5e                   	pop    %esi
566ae9:	5b                   	pop    %ebx
566aea:	83 c4 0c             	add    $0xc,%esp
566aed:	c3                   	ret
566aee:	cc                   	int3
566aef:	cc                   	int3
566af0:	53                   	push   %ebx
566af1:	56                   	push   %esi
566af2:	8b 74 24 1c          	mov    0x1c(%esp),%esi
566af6:	57                   	push   %edi
566af7:	56                   	push   %esi
566af8:	33 ff                	xor    %edi,%edi
566afa:	e8 11 13 f8 ff       	call   0x4e7e10
566aff:	56                   	push   %esi
566b00:	e8 cb 10 f8 ff       	call   0x4e7bd0
566b05:	8b d8                	mov    %eax,%ebx
566b07:	83 c4 08             	add    $0x8,%esp
566b0a:	85 db                	test   %ebx,%ebx
566b0c:	74 36                	je     0x566b44
566b0e:	56                   	push   %esi
566b0f:	ff 74 24 20          	push   0x20(%esp)
566b13:	ff 74 24 20          	push   0x20(%esp)
566b17:	53                   	push   %ebx
566b18:	e8 53 01 00 00       	call   0x566c70
566b1d:	83 c4 10             	add    $0x10,%esp
566b20:	85 c0                	test   %eax,%eax
566b22:	74 20                	je     0x566b44
566b24:	56                   	push   %esi
566b25:	ff 74 24 20          	push   0x20(%esp)
566b29:	53                   	push   %ebx
566b2a:	ff 74 24 20          	push   0x20(%esp)
566b2e:	ff 74 24 20          	push   0x20(%esp)
566b32:	e8 f9 06 00 00       	call   0x567230
566b37:	83 c4 14             	add    $0x14,%esp
566b3a:	b9 01 00 00 00       	mov    $0x1,%ecx
566b3f:	85 c0                	test   %eax,%eax
566b41:	0f 45 f9             	cmovne %ecx,%edi
566b44:	56                   	push   %esi
566b45:	e8 86 0f f8 ff       	call   0x4e7ad0
566b4a:	83 c4 04             	add    $0x4,%esp
566b4d:	8b c7                	mov    %edi,%eax
566b4f:	5f                   	pop    %edi
566b50:	5e                   	pop    %esi
566b51:	5b                   	pop    %ebx
566b52:	c3                   	ret
566b53:	cc                   	int3
566b54:	cc                   	int3
566b55:	cc                   	int3
566b56:	cc                   	int3
566b57:	cc                   	int3
566b58:	cc                   	int3
566b59:	cc                   	int3
566b5a:	cc                   	int3
566b5b:	cc                   	int3
566b5c:	cc                   	int3
566b5d:	cc                   	int3
566b5e:	cc                   	int3
566b5f:	cc                   	int3
566b60:	b8 04 00 00 00       	mov    $0x4,%eax
566b65:	e8 46 ac 06 00       	call   0x5d17b0
566b6a:	57                   	push   %edi
566b6b:	8b 7c 24 14          	mov    0x14(%esp),%edi
566b6f:	57                   	push   %edi
566b70:	c7 44 24 08 00 00 00 	movl   $0x0,0x8(%esp)
566b77:	00
566b78:	e8 e3 31 f7 ff       	call   0x4d9d60
566b7d:	83 c4 04             	add    $0x4,%esp