	.file	"e5.c"
	.text
	.p2align 4,,15
.globl recopie8by8
	.type	recopie8by8, @function
recopie8by8:
	subl	$8, %esp
	movl	%esi, (%esp)
	movl	20(%esp), %ecx
	movl	%edi, 4(%esp)
	movl	12(%esp), %esi
	movl	16(%esp), %edi
#APP
	cld
	rep
	movsb
	
#NO_APP
	movl	(%esp), %esi
	movl	4(%esp), %edi
	addl	$8, %esp
	ret
	.size	recopie8by8, .-recopie8by8
	.p2align 4,,15
.globl pandSIMD
	.type	pandSIMD, @function
pandSIMD:
	subl	$12, %esp
	movl	24(%esp), %ecx
	movl	%esi, 4(%esp)
	movl	20(%esp), %esi
	movl	%edi, 8(%esp)
	movl	16(%esp), %edi
	movl	%ebx, (%esp)
	testl	%ecx, %ecx
	leal	63(%ecx), %eax
	cmovs	%eax, %ecx
	sarl	$6, %ecx
	decl	%ecx
#APP
	lea (%esi), %edx
	lea (%edi), %eax
	xor %ebx, %ebx
.myloop2: prefetchT0 64(%edx)
	prefetchT0 64(%eax)
	movdqu (%edx), %xmm0
	movdqu (%eax), %xmm1
	pand %xmm0, %xmm1
	movdqu %xmm1, (%edx)
	add $8, %edx
	add $8, %eax
	incl %ebx
	cmp %ecx, %ebx
	jle  .myloop2
	
#NO_APP
	movl	(%esp), %ebx
	movl	4(%esp), %esi
	movl	8(%esp), %edi
	addl	$12, %esp
	ret
	.size	pandSIMD, .-pandSIMD
	.p2align 4,,15
.globl pandSIMDc
	.type	pandSIMDc, @function
pandSIMDc:
	subl	$16, %esp
	movl	32(%esp), %ecx
	movl	%esi, 4(%esp)
	movl	28(%esp), %esi
	movl	%edi, 8(%esp)
	movl	24(%esp), %edi
	movl	%ebp, 12(%esp)
	movl	20(%esp), %ebp
	testl	%ecx, %ecx
	leal	63(%ecx), %eax
	cmovs	%eax, %ecx
	sarl	$6, %ecx
	movl	%ebx, (%esp)
	decl	%ecx
#APP
	lea (%edi), %edx
	lea (%ebp), %eax
	lea (%esi), %edi
	xor %ebx, %ebx
.myloop7: prefetchT0 64(%edx)
	prefetchT0 64(%eax)
	movdqu (%edx), %xmm0
	movdqu (%eax), %xmm1
	pand %xmm0, %xmm1
	movdqu %xmm1, (%edi)
	add $8, %edx
	add $8, %eax
	add $8, %edi
	incl %ebx
	cmp %ecx, %ebx
	jle  .myloop7
	
#NO_APP
	movl	(%esp), %ebx
	movl	4(%esp), %esi
	movl	8(%esp), %edi
	movl	12(%esp), %ebp
	addl	$16, %esp
	ret
	.size	pandSIMDc, .-pandSIMDc
	.p2align 4,,15
.globl pandSIMDAMDOpt
	.type	pandSIMDAMDOpt, @function
pandSIMDAMDOpt:
	subl	$12, %esp
	movl	24(%esp), %ecx
	movl	%esi, 4(%esp)
	movl	20(%esp), %esi
	movl	%edi, 8(%esp)
	movl	16(%esp), %edi
	movl	%ebx, (%esp)
	testl	%ecx, %ecx
	leal	63(%ecx), %eax
	cmovs	%eax, %ecx
	sarl	$6, %ecx
#APP
	lea (%edi), %eax
	lea (%esi), %edx
	mov %ecx,%ecx
	lea (%eax,%ecx,8),%eax
	lea (%edx,%ecx,8),%edx
	neg %ecx
	.andloop2:
	prefetchT0 256(%edx,%ecx,8)
	prefetchT0 512(%edx,%ecx,8)
	prefetchT0 256(%eax,%ecx,8)
	prefetchT0 512(%eax,%ecx,8)
	movdqu (%edx,%ecx,8), %xmm0
	movdqu (%eax,%ecx,8), %xmm1
	pand %xmm0, %xmm1
	movdqu %xmm1,(%edx,%ecx,8)
	movdqu 8(%edx,%ecx,8), %xmm2
	movdqu 8(%eax,%ecx,8), %xmm3
	pand %xmm2, %xmm3
	movdqu %xmm3,8(%edx,%ecx,8)
	movdqu 16(%edx,%ecx,8), %xmm4
	movdqu 16(%eax,%ecx,8), %xmm5
	pand %xmm4, %xmm5
	movdqu %xmm5,16(%edx,%ecx,8)
	movdqu 24(%edx,%ecx,8), %xmm6
	movdqu 24(%eax,%ecx,8), %xmm7
	pand %xmm6, %xmm7
	movdqu %xmm7,24(%edx,%ecx,8)
	add $4,%ecx
	jnz .andloop2
	
#NO_APP
	movl	(%esp), %ebx
	movl	4(%esp), %esi
	movl	8(%esp), %edi
	addl	$12, %esp
	ret
	.size	pandSIMDAMDOpt, .-pandSIMDAMDOpt
	.p2align 4,,15
.globl pandSIMDAMDOptCopy
	.type	pandSIMDAMDOptCopy, @function
pandSIMDAMDOptCopy:
	subl	$16, %esp
	movl	32(%esp), %ecx
	movl	%esi, 4(%esp)
	movl	28(%esp), %esi
	movl	%edi, 8(%esp)
	movl	24(%esp), %edi
	movl	%ebp, 12(%esp)
	movl	20(%esp), %ebp
	testl	%ecx, %ecx
	leal	63(%ecx), %eax
	cmovs	%eax, %ecx
	movl	%ebx, (%esp)
	sarl	$6, %ecx
#APP
	lea (%ebp), %ebx
	lea (%edi), %eax
	lea (%esi), %edx
	mov %ecx,%ecx
	lea (%ebx,%ecx,8),%ebx
	lea (%eax,%ecx,8),%eax
	lea (%edx,%ecx,8),%edx
	neg %ecx
	.andloop3:
	prefetchT0 256(%edx,%ecx,8)
	prefetchT0 512(%edx,%ecx,8)
	prefetchT0 256(%eax,%ecx,8)
	prefetchT0 512(%eax,%ecx,8)
	prefetchT0 256(%ebx,%ecx,8)
	prefetchT0 512(%ebx,%ecx,8)
	movdqu (%ebx,%ecx,8), %xmm0
	movdqu (%eax,%ecx,8), %xmm1
	pand %xmm0, %xmm1
	movdqu %xmm1,(%edx,%ecx,8)
	movdqu 8(%ebx,%ecx,8), %xmm2
	movdqu 8(%eax,%ecx,8), %xmm3
	pand %xmm2, %xmm3
	movdqu %xmm3,8(%edx,%ecx,8)
	movdqu 16(%ebx,%ecx,8), %xmm4
	movdqu 16(%eax,%ecx,8), %xmm5
	pand %xmm4, %xmm5
	movdqu %xmm5,16(%edx,%ecx,8)
	movdqu 24(%ebx,%ecx,8), %xmm6
	movdqu 24(%eax,%ecx,8), %xmm7
	pand %xmm6, %xmm7
	movdqu %xmm7,24(%edx,%ecx,8)
	add $4,%ecx
	jnz .andloop3
	
#NO_APP
	movl	(%esp), %ebx
	movl	4(%esp), %esi
	movl	8(%esp), %edi
	movl	12(%esp), %ebp
	addl	$16, %esp
	ret
	.size	pandSIMDAMDOptCopy, .-pandSIMDAMDOptCopy
	.p2align 4,,15
.globl porSIMD
	.type	porSIMD, @function
porSIMD:
	subl	$12, %esp
	movl	24(%esp), %ecx
	movl	%esi, 4(%esp)
	movl	20(%esp), %esi
	movl	%edi, 8(%esp)
	movl	16(%esp), %edi
	movl	%ebx, (%esp)
	testl	%ecx, %ecx
	leal	63(%ecx), %eax
	cmovs	%eax, %ecx
	sarl	$6, %ecx
	decl	%ecx
#APP
	lea (%esi), %edx
	lea (%edi), %eax
	xor %ebx, %ebx
.myloop3: prefetchT0 64(%edx)
	prefetchT0 64(%eax)
	movdqu (%edx), %xmm0
	movdqu (%eax), %xmm1
	por %xmm0, %xmm1
	movdqu %xmm1, (%edx)
	add $8, %edx
	add $8, %eax
	incl %ebx
	cmp %ecx, %ebx
	jle  .myloop3
	
#NO_APP
	movl	(%esp), %ebx
	movl	4(%esp), %esi
	movl	8(%esp), %edi
	addl	$12, %esp
	ret
	.size	porSIMD, .-porSIMD
	.p2align 4,,15
.globl porSIMDc
	.type	porSIMDc, @function
porSIMDc:
	subl	$16, %esp
	movl	32(%esp), %ecx
	movl	%esi, 4(%esp)
	movl	28(%esp), %esi
	movl	%edi, 8(%esp)
	movl	24(%esp), %edi
	movl	%ebp, 12(%esp)
	movl	20(%esp), %ebp
	testl	%ecx, %ecx
	leal	63(%ecx), %eax
	cmovs	%eax, %ecx
	sarl	$6, %ecx
	movl	%ebx, (%esp)
	decl	%ecx
#APP
	lea (%edi), %edx
	lea (%ebp), %eax
	lea (%esi), %edi
	xor %ebx, %ebx
.myloop8: prefetchT0 64(%edx)
	prefetchT0 64(%eax)
	movdqu (%edx), %xmm0
	movdqu (%eax), %xmm1
	por %xmm0, %xmm1
	movdqu %xmm1, (%edi)
	add $8, %edx
	add $8, %eax
	add $8, %edi
	incl %ebx
	cmp %ecx, %ebx
	jle  .myloop8
	
#NO_APP
	movl	(%esp), %ebx
	movl	4(%esp), %esi
	movl	8(%esp), %edi
	movl	12(%esp), %ebp
	addl	$16, %esp
	ret
	.size	porSIMDc, .-porSIMDc
	.p2align 4,,15
.globl porSIMDAMDOpt
	.type	porSIMDAMDOpt, @function
porSIMDAMDOpt:
	subl	$12, %esp
	movl	24(%esp), %ecx
	movl	%esi, 4(%esp)
	movl	20(%esp), %esi
	movl	%edi, 8(%esp)
	movl	16(%esp), %edi
	movl	%ebx, (%esp)
	testl	%ecx, %ecx
	leal	63(%ecx), %eax
	cmovs	%eax, %ecx
	sarl	$6, %ecx
#APP
	lea (%edi), %eax
	lea (%esi), %edx
	mov %ecx,%ecx
	lea (%eax,%ecx,8),%eax
	lea (%edx,%ecx,8),%edx
	neg %ecx
	.orloop2:
	prefetchT0 256(%edx,%ecx,8)
	prefetchT0 512(%edx,%ecx,8)
	prefetchT0 256(%eax,%ecx,8)
	prefetchT0 512(%eax,%ecx,8)
	movdqu (%edx,%ecx,8), %xmm0
	movdqu (%eax,%ecx,8), %xmm1
	por %xmm0, %xmm1
	movdqu %xmm1,(%edx,%ecx,8)
	movdqu 8(%edx,%ecx,8), %xmm2
	movdqu 8(%eax,%ecx,8), %xmm3
	por %xmm2, %xmm3
	movdqu %xmm3,8(%edx,%ecx,8)
	movdqu 16(%edx,%ecx,8), %xmm4
	movdqu 16(%eax,%ecx,8), %xmm5
	por %xmm4, %xmm5
	movdqu %xmm5,16(%edx,%ecx,8)
	movdqu 24(%edx,%ecx,8), %xmm6
	movdqu 24(%eax,%ecx,8), %xmm7
	por %xmm6, %xmm7
	movdqu %xmm7,24(%edx,%ecx,8)
	add $4,%ecx
	jnz .orloop2
	
#NO_APP
	movl	(%esp), %ebx
	movl	4(%esp), %esi
	movl	8(%esp), %edi
	addl	$12, %esp
	ret
	.size	porSIMDAMDOpt, .-porSIMDAMDOpt
	.p2align 4,,15
.globl porSIMDAMDOptCopy
	.type	porSIMDAMDOptCopy, @function
porSIMDAMDOptCopy:
	subl	$16, %esp
	movl	32(%esp), %ecx
	movl	%esi, 4(%esp)
	movl	28(%esp), %esi
	movl	%edi, 8(%esp)
	movl	24(%esp), %edi
	movl	%ebp, 12(%esp)
	movl	20(%esp), %ebp
	testl	%ecx, %ecx
	leal	63(%ecx), %eax
	cmovs	%eax, %ecx
	movl	%ebx, (%esp)
	sarl	$6, %ecx
#APP
	lea (%ebp), %ebx
	lea (%edi), %eax
	lea (%esi), %edx
	mov %ecx,%ecx
	lea (%ebx,%ecx,8),%ebx
	lea (%eax,%ecx,8),%eax
	lea (%edx,%ecx,8),%edx
	neg %ecx
	.orloop3:
	prefetchT0 256(%edx,%ecx,8)
	prefetchT0 512(%edx,%ecx,8)
	prefetchT0 256(%eax,%ecx,8)
	prefetchT0 512(%eax,%ecx,8)
	prefetchT0 256(%ebx,%ecx,8)
	prefetchT0 512(%ebx,%ecx,8)
	movdqu (%ebx,%ecx,8), %xmm0
	movdqu (%eax,%ecx,8), %xmm1
	por %xmm0, %xmm1
	movdqu %xmm1,(%edx,%ecx,8)
	movdqu 8(%ebx,%ecx,8), %xmm2
	movdqu 8(%eax,%ecx,8), %xmm3
	por %xmm2, %xmm3
	movdqu %xmm3,8(%edx,%ecx,8)
	movdqu 16(%ebx,%ecx,8), %xmm4
	movdqu 16(%eax,%ecx,8), %xmm5
	por %xmm4, %xmm5
	movdqu %xmm5,16(%edx,%ecx,8)
	movdqu 24(%ebx,%ecx,8), %xmm6
	movdqu 24(%eax,%ecx,8), %xmm7
	por %xmm6, %xmm7
	movdqu %xmm7,24(%edx,%ecx,8)
	add $4,%ecx
	jnz .orloop3
	
#NO_APP
	movl	(%esp), %ebx
	movl	4(%esp), %esi
	movl	8(%esp), %edi
	movl	12(%esp), %ebp
	addl	$16, %esp
	ret
	.size	porSIMDAMDOptCopy, .-porSIMDAMDOptCopy
	.p2align 4,,15
.globl pxorSIMD
	.type	pxorSIMD, @function
pxorSIMD:
	subl	$12, %esp
	movl	24(%esp), %ecx
	movl	%esi, 4(%esp)
	movl	20(%esp), %esi
	movl	%edi, 8(%esp)
	movl	16(%esp), %edi
	movl	%ebx, (%esp)
	testl	%ecx, %ecx
	leal	63(%ecx), %eax
	cmovs	%eax, %ecx
	sarl	$6, %ecx
	decl	%ecx
#APP
	lea (%esi), %edx
	lea (%edi), %eax
	xor %ebx, %ebx
.myloop4: prefetchT0 64(%edx)
	prefetchT0 64(%eax)
	movdqu (%edx), %xmm0
	movdqu (%eax), %xmm1
	pxor %xmm0, %xmm1
	movdqu %xmm1, (%edx)
	add $8, %edx
	add $8, %eax
	incl %ebx
	cmp %ecx, %ebx
	jle  .myloop4
	
#NO_APP
	movl	(%esp), %ebx
	movl	4(%esp), %esi
	movl	8(%esp), %edi
	addl	$12, %esp
	ret
	.size	pxorSIMD, .-pxorSIMD
	.p2align 4,,15
.globl pxorSIMDc
	.type	pxorSIMDc, @function
pxorSIMDc:
	subl	$16, %esp
	movl	32(%esp), %ecx
	movl	%esi, 4(%esp)
	movl	28(%esp), %esi
	movl	%edi, 8(%esp)
	movl	24(%esp), %edi
	movl	%ebp, 12(%esp)
	movl	20(%esp), %ebp
	testl	%ecx, %ecx
	leal	63(%ecx), %eax
	cmovs	%eax, %ecx
	sarl	$6, %ecx
	movl	%ebx, (%esp)
	decl	%ecx
#APP
	lea (%edi), %edx
	lea (%ebp), %eax
	lea (%esi), %edi
	xor %ebx, %ebx
.myloop9: prefetchT0 64(%edx)
	prefetchT0 64(%eax)
	movdqu (%edx), %xmm0
	movdqu (%eax), %xmm1
	pxor %xmm0, %xmm1
	movdqu %xmm1, (%edi)
	add $8, %edx
	add $8, %eax
	add $8, %edi
	incl %ebx
	cmp %ecx, %ebx
	jle  .myloop9
	
#NO_APP
	movl	(%esp), %ebx
	movl	4(%esp), %esi
	movl	8(%esp), %edi
	movl	12(%esp), %ebp
	addl	$16, %esp
	ret
	.size	pxorSIMDc, .-pxorSIMDc
	.p2align 4,,15
.globl pxorSIMDAMDOpt
	.type	pxorSIMDAMDOpt, @function
pxorSIMDAMDOpt:
	subl	$12, %esp
	movl	24(%esp), %ecx
	movl	%esi, 4(%esp)
	movl	20(%esp), %esi
	movl	%edi, 8(%esp)
	movl	16(%esp), %edi
	movl	%ebx, (%esp)
	testl	%ecx, %ecx
	leal	63(%ecx), %eax
	cmovs	%eax, %ecx
	sarl	$6, %ecx
#APP
	lea (%edi), %eax
	lea (%esi), %edx
	mov %ecx,%ecx
	lea (%eax,%ecx,8),%eax
	lea (%edx,%ecx,8),%edx
	neg %ecx
	.xorloop2:
	prefetchT0 256(%edx,%ecx,8)
	prefetchT0 512(%edx,%ecx,8)
	prefetchT0 256(%eax,%ecx,8)
	prefetchT0 512(%eax,%ecx,8)
	movdqu (%edx,%ecx,8), %xmm0
	movdqu (%eax,%ecx,8), %xmm1
	pxor %xmm0, %xmm1
	movdqu %xmm1,(%edx,%ecx,8)
	movdqu 8(%edx,%ecx,8), %xmm2
	movdqu 8(%eax,%ecx,8), %xmm3
	pxor %xmm2, %xmm3
	movdqu %xmm3,8(%edx,%ecx,8)
	movdqu 16(%edx,%ecx,8), %xmm4
	movdqu 16(%eax,%ecx,8), %xmm5
	pxor %xmm4, %xmm5
	movdqu %xmm5,16(%edx,%ecx,8)
	movdqu 24(%edx,%ecx,8), %xmm6
	movdqu 24(%eax,%ecx,8), %xmm7
	pxor %xmm6, %xmm7
	movdqu %xmm7,24(%edx,%ecx,8)
	add $4,%ecx
	jnz .xorloop2
	
#NO_APP
	movl	(%esp), %ebx
	movl	4(%esp), %esi
	movl	8(%esp), %edi
	addl	$12, %esp
	ret
	.size	pxorSIMDAMDOpt, .-pxorSIMDAMDOpt
	.p2align 4,,15
.globl pxorSIMDAMDOptCopy
	.type	pxorSIMDAMDOptCopy, @function
pxorSIMDAMDOptCopy:
	subl	$16, %esp
	movl	32(%esp), %ecx
	movl	%esi, 4(%esp)
	movl	28(%esp), %esi
	movl	%edi, 8(%esp)
	movl	24(%esp), %edi
	movl	%ebp, 12(%esp)
	movl	20(%esp), %ebp
	testl	%ecx, %ecx
	leal	63(%ecx), %eax
	cmovs	%eax, %ecx
	movl	%ebx, (%esp)
	sarl	$6, %ecx
#APP
	lea (%ebp), %ebx
	lea (%edi), %eax
	lea (%esi), %edx
	mov %ecx,%ecx
	lea (%ebx,%ecx,8),%ebx
	lea (%eax,%ecx,8),%eax
	lea (%edx,%ecx,8),%edx
	neg %ecx
	.xorloop3:
	prefetchT0 256(%edx,%ecx,8)
	prefetchT0 512(%edx,%ecx,8)
	prefetchT0 256(%eax,%ecx,8)
	prefetchT0 512(%eax,%ecx,8)
	prefetchT0 256(%ebx,%ecx,8)
	prefetchT0 512(%ebx,%ecx,8)
	movdqu (%ebx,%ecx,8), %xmm0
	movdqu (%eax,%ecx,8), %xmm1
	pxor %xmm0, %xmm1
	movdqu %xmm1,(%edx,%ecx,8)
	movdqu 8(%ebx,%ecx,8), %xmm2
	movdqu 8(%eax,%ecx,8), %xmm3
	pxor %xmm2, %xmm3
	movdqu %xmm3,8(%edx,%ecx,8)
	movdqu 16(%ebx,%ecx,8), %xmm4
	movdqu 16(%eax,%ecx,8), %xmm5
	pxor %xmm4, %xmm5
	movdqu %xmm5,16(%edx,%ecx,8)
	movdqu 24(%ebx,%ecx,8), %xmm6
	movdqu 24(%eax,%ecx,8), %xmm7
	pxor %xmm6, %xmm7
	movdqu %xmm7,24(%edx,%ecx,8)
	add $4,%ecx
	jnz .xorloop3
	
#NO_APP
	movl	(%esp), %ebx
	movl	4(%esp), %esi
	movl	8(%esp), %edi
	movl	12(%esp), %ebp
	addl	$16, %esp
	ret
	.size	pxorSIMDAMDOptCopy, .-pxorSIMDAMDOptCopy
	.p2align 4,,15
.globl SetBitTo1
	.type	SetBitTo1, @function
SetBitTo1:
	subl	$12, %esp
	movl	$7, %ecx
	movl	%esi, 4(%esp)
	movl	20(%esp), %esi
	movl	%ebx, (%esp)
	movl	%edi, 8(%esp)
	movl	%esi, %eax
	cltd
	shrl	$29, %edx
	leal	(%esi,%edx), %eax
	andl	$7, %eax
	subl	%edx, %eax
	movl	16(%esp), %edx
	subl	%eax, %ecx
	testl	%esi, %esi
	leal	7(%esi), %eax
	cmovs	%eax, %esi
	sarl	$3, %esi
#APP
	lea (%edx), %edi
	add %esi, %edi
	bts %ecx, (%edi)
	
#NO_APP
	movl	(%esp), %ebx
	movl	4(%esp), %esi
	movl	8(%esp), %edi
	addl	$12, %esp
	ret
	.size	SetBitTo1, .-SetBitTo1
	.p2align 4,,15
.globl SetBitTo0
	.type	SetBitTo0, @function
SetBitTo0:
	subl	$12, %esp
	movl	$7, %ecx
	movl	%esi, 4(%esp)
	movl	20(%esp), %esi
	movl	%ebx, (%esp)
	movl	%edi, 8(%esp)
	movl	%esi, %eax
	cltd
	shrl	$29, %edx
	leal	(%esi,%edx), %eax
	andl	$7, %eax
	subl	%edx, %eax
	movl	16(%esp), %edx
	subl	%eax, %ecx
	testl	%esi, %esi
	leal	7(%esi), %eax
	cmovs	%eax, %esi
	sarl	$3, %esi
#APP
	lea (%edx), %edi
	add %esi, %edi
	btr %ecx, (%edi)
	
#NO_APP
	movl	(%esp), %ebx
	movl	4(%esp), %esi
	movl	8(%esp), %edi
	addl	$12, %esp
	ret
	.size	SetBitTo0, .-SetBitTo0
	.p2align 4,,15
.globl TestBit
	.type	TestBit, @function
TestBit:
	subl	$28, %esp
	movl	36(%esp), %edx
	movl	%esi, 20(%esp)
	movl	32(%esp), %esi
	movl	%ebx, 16(%esp)
	movl	%edi, 24(%esp)
	movl	%edx, %ecx
	sarl	$31, %ecx
	shrl	$29, %ecx
	leal	(%edx,%ecx), %eax
	andl	$7, %eax
	subl	%ecx, %eax
	movl	$7, %ecx
	subl	%eax, %ecx
	testl	%edx, %edx
	leal	7(%edx), %eax
	cmovs	%eax, %edx
	movb	$-1, 15(%esp)
	sarl	$3, %edx
#APP
	xor %al, %al
	lea (%esi), %edi
	add %edx, %edi
	bt  %ecx, (%edi)
	adc %al, %al
	mov %al, 15(%esp)
	
#NO_APP
	movzbl	15(%esp), %eax
	movl	16(%esp), %ebx
	movl	20(%esp), %esi
	movl	24(%esp), %edi
	addl	$28, %esp
	ret
	.size	TestBit, .-TestBit
	.section	.rodata
	.align 32
	.type	C.0.1570, @object
	.size	C.0.1570, 256
C.0.1570:
	.byte	0
	.byte	1
	.byte	1
	.byte	2
	.byte	1
	.byte	2
	.byte	2
	.byte	3
	.byte	1
	.byte	2
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	3
	.byte	4
	.byte	1
	.byte	2
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	3
	.byte	4
	.byte	2
	.byte	3
	.byte	3
	.byte	4
	.byte	3
	.byte	4
	.byte	4
	.byte	5
	.byte	1
	.byte	2
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	3
	.byte	4
	.byte	2
	.byte	3
	.byte	3
	.byte	4
	.byte	3
	.byte	4
	.byte	4
	.byte	5
	.byte	2
	.byte	3
	.byte	3
	.byte	4
	.byte	3
	.byte	4
	.byte	4
	.byte	5
	.byte	3
	.byte	4
	.byte	4
	.byte	5
	.byte	4
	.byte	5
	.byte	5
	.byte	6
	.byte	1
	.byte	2
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	3
	.byte	4
	.byte	2
	.byte	3
	.byte	3
	.byte	4
	.byte	3
	.byte	4
	.byte	4
	.byte	5
	.byte	2
	.byte	3
	.byte	3
	.byte	4
	.byte	3
	.byte	4
	.byte	4
	.byte	5
	.byte	3
	.byte	4
	.byte	4
	.byte	5
	.byte	4
	.byte	5
	.byte	5
	.byte	6
	.byte	2
	.byte	3
	.byte	3
	.byte	4
	.byte	3
	.byte	4
	.byte	4
	.byte	5
	.byte	3
	.byte	4
	.byte	4
	.byte	5
	.byte	4
	.byte	5
	.byte	5
	.byte	6
	.byte	3
	.byte	4
	.byte	4
	.byte	5
	.byte	4
	.byte	5
	.byte	5
	.byte	6
	.byte	4
	.byte	5
	.byte	5
	.byte	6
	.byte	5
	.byte	6
	.byte	6
	.byte	7
	.byte	1
	.byte	2
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	3
	.byte	4
	.byte	2
	.byte	3
	.byte	3
	.byte	4
	.byte	3
	.byte	4
	.byte	4
	.byte	5
	.byte	2
	.byte	3
	.byte	3
	.byte	4
	.byte	3
	.byte	4
	.byte	4
	.byte	5
	.byte	3
	.byte	4
	.byte	4
	.byte	5
	.byte	4
	.byte	5
	.byte	5
	.byte	6
	.byte	2
	.byte	3
	.byte	3
	.byte	4
	.byte	3
	.byte	4
	.byte	4
	.byte	5
	.byte	3
	.byte	4
	.byte	4
	.byte	5
	.byte	4
	.byte	5
	.byte	5
	.byte	6
	.byte	3
	.byte	4
	.byte	4
	.byte	5
	.byte	4
	.byte	5
	.byte	5
	.byte	6
	.byte	4
	.byte	5
	.byte	5
	.byte	6
	.byte	5
	.byte	6
	.byte	6
	.byte	7
	.byte	2
	.byte	3
	.byte	3
	.byte	4
	.byte	3
	.byte	4
	.byte	4
	.byte	5
	.byte	3
	.byte	4
	.byte	4
	.byte	5
	.byte	4
	.byte	5
	.byte	5
	.byte	6
	.byte	3
	.byte	4
	.byte	4
	.byte	5
	.byte	4
	.byte	5
	.byte	5
	.byte	6
	.byte	4
	.byte	5
	.byte	5
	.byte	6
	.byte	5
	.byte	6
	.byte	6
	.byte	7
	.byte	3
	.byte	4
	.byte	4
	.byte	5
	.byte	4
	.byte	5
	.byte	5
	.byte	6
	.byte	4
	.byte	5
	.byte	5
	.byte	6
	.byte	5
	.byte	6
	.byte	6
	.byte	7
	.byte	4
	.byte	5
	.byte	5
	.byte	6
	.byte	5
	.byte	6
	.byte	6
	.byte	7
	.byte	5
	.byte	6
	.byte	6
	.byte	7
	.byte	6
	.byte	7
	.byte	7
	.byte	8
	.text
	.p2align 4,,15
.globl NumberBit1
	.type	NumberBit1, @function
NumberBit1:
	pushl	%esi
	movl	$256, %ecx
	pushl	%ebx
	movl	$C.0.1570, %edx
	subl	$276, %esp
	movl	292(%esp), %ebx
	leal	20(%esp), %eax
	movl	%ecx, 8(%esp)
	movl	288(%esp), %esi
	movl	%edx, 4(%esp)
	movl	%eax, (%esp)
	call	memcpy
	testl	%ebx, %ebx
	movl	%ebx, %ecx
	leal	7(%ebx), %eax
	cmovs	%eax, %ecx
	xorl	%ebx, %ebx
	sarl	$3, %ecx
	testl	%ecx, %ecx
	jle	.L36
	xorl	%edx, %edx
	prefetcht0	(%esi)
	prefetcht0	32(%esi)
	prefetcht0	64(%esi)
	prefetcht0	96(%esi)
	prefetcht0	128(%esi)
	prefetcht0	160(%esi)
	.p2align 4,,15
.L37:
	movzbl	(%esi,%edx), %eax
	prefetcht0	192(%esi,%edx)
	incl	%edx
	movzbl	20(%esp,%eax), %eax
	addl	%eax, %ebx
	cmpl	%ecx, %edx
	jne	.L37
.L36:
	addl	$276, %esp
	movl	%ebx, %eax
	popl	%ebx
	popl	%esi
	ret
	.size	NumberBit1, .-NumberBit1
	.p2align 4,,15
.globl Reset1
	.type	Reset1, @function
Reset1:
	pushl	%ebx
	movl	12(%esp), %eax
	movl	8(%esp), %ebx
	testl	%eax, %eax
	movl	%eax, %ecx
	leal	7(%eax), %edx
	cmovs	%edx, %ecx
	sarl	$3, %ecx
	testl	%ecx, %ecx
	jle	.L45
	xorl	%edx, %edx
	.p2align 4,,15
.L44:
	movswl	%dx,%eax
	incl	%edx
	cmpl	%ecx, %edx
	movb	$-1, (%eax,%ebx)
	jne	.L44
.L45:
	popl	%ebx
	ret
	.size	Reset1, .-Reset1
	.p2align 4,,15
.globl Reset1SIMD
	.type	Reset1SIMD, @function
Reset1SIMD:
	subl	$24, %esp
	movl	32(%esp), %ecx
	movl	%ebx, 16(%esp)
	movl	$-1, %ebx
	movl	%esi, 20(%esp)
	movl	$-1, %esi
	movl	%esi, 8(%esp)
	movl	28(%esp), %esi
	testl	%ecx, %ecx
	leal	63(%ecx), %eax
	cmovs	%eax, %ecx
	sarl	$6, %ecx
	movl	%ebx, 12(%esp)
	decl	%ecx
#APP
	lea (%esi), %eax
	lea 8(%esp), %edx
	movdqu (%edx), %xmm1
	xor %ebx, %ebx
.myloop5: prefetchT0 64(%eax)
	movdqu %xmm1, (%eax)
	add $8, %eax
	incl %ebx
	cmp %ecx, %ebx
	jle  .myloop5
	
#NO_APP
	movl	16(%esp), %ebx
	movl	20(%esp), %esi
	addl	$24, %esp
	ret
	.size	Reset1SIMD, .-Reset1SIMD
	.p2align 4,,15
.globl Reset0
	.type	Reset0, @function
Reset0:
	pushl	%ebx
	movl	12(%esp), %eax
	movl	8(%esp), %ebx
	testl	%eax, %eax
	movl	%eax, %ecx
	leal	7(%eax), %edx
	cmovs	%edx, %ecx
	sarl	$3, %ecx
	testl	%ecx, %ecx
	jle	.L53
	xorl	%edx, %edx
	.p2align 4,,15
.L52:
	movswl	%dx,%eax
	incl	%edx
	cmpl	%ecx, %edx
	movb	$0, (%eax,%ebx)
	jne	.L52
.L53:
	popl	%ebx
	ret
	.size	Reset0, .-Reset0
	.p2align 4,,15
.globl Reset0SIMD
	.type	Reset0SIMD, @function
Reset0SIMD:
	pushl	%ebx
	movl	12(%esp), %ecx
	movl	8(%esp), %edx
	testl	%ecx, %ecx
	leal	63(%ecx), %eax
	cmovs	%eax, %ecx
	sarl	$6, %ecx
	decl	%ecx
#APP
	lea (%edx), %eax
	pxor %xmm1, %xmm1
	xor %ebx, %ebx
.myloop6: prefetchT0 64(%eax)
	movdqu %xmm1, (%eax)
	add $8, %eax
	incl %ebx
	cmp %ecx, %ebx
	jle  .myloop6
	
#NO_APP
	popl	%ebx
	ret
	.size	Reset0SIMD, .-Reset0SIMD
	.p2align 4,,15
.globl Find_first
	.type	Find_first, @function
Find_first:
	subl	$12, %esp
	movl	20(%esp), %ecx
	movl	%edi, 8(%esp)
	movl	16(%esp), %edi
	movl	%ebx, (%esp)
	movl	%esi, 4(%esp)
	shrl	$4, %ecx
	testl	%ecx, %ecx
	jg	.L98
.L59:
	movl	$255, %eax
.L67:
	movl	(%esp), %ebx
	movl	4(%esp), %esi
	movl	8(%esp), %edi
	addl	$12, %esp
	ret
	.p2align 4,,7
.L98:
	xorl	%ebx, %ebx
	.p2align 4,,15
.L91:
	movzwl	(%edi,%ebx,2), %eax
#APP
	rorw $8, %ax
#NO_APP
	movzwl	%ax, %esi
	movzwl	%si, %edx
	testb	$255, %dh
	jne	.L99
	testb	%dl, %dl
	jne	.L100
	incl	%ebx
	cmpl	%ebx, %ecx
	jne	.L91
	.p2align 4,,6
	jmp	.L59
.L99:
	testb	$240, %dh
	.p2align 4,,6
	jne	.L101
	testb	$12, %dh
	.p2align 4,,7
	je	.L70
	andl	$2048, %esi
	.p2align 4,,5
	je	.L72
	sall	$4, %ebx
	leal	4(%ebx), %eax
	.p2align 4,,3
	jmp	.L67
.L100:
	testb	$-16, %dl
	.p2align 4,,3
	jne	.L102
	testb	$12, %dl
	.p2align 4,,3
	je	.L85
	andl	$8, %esi
	.p2align 4,,5
	je	.L87
	sall	$4, %ebx
	leal	12(%ebx), %eax
	.p2align 4,,3
	jmp	.L67
.L101:
	testb	$192, %dh
	.p2align 4,,3
	je	.L63
	movl	%esi, %eax
	andl	$32768, %eax
	testw	%ax, %ax
	je	.L65
	movl	%ebx, %eax
	sall	$4, %eax
	jmp	.L67
.L102:
	testb	$-64, %dl
	je	.L79
	movl	%esi, %eax
	testb	%al, %al
	jns	.L81
	sall	$4, %ebx
	leal	8(%ebx), %eax
	jmp	.L67
.L63:
	andl	$8192, %esi
	je	.L68
	sall	$4, %ebx
	leal	2(%ebx), %eax
	jmp	.L67
.L70:
	andl	$512, %esi
	.p2align 4,,3
	je	.L74
	sall	$4, %ebx
	leal	6(%ebx), %eax
	jmp	.L67
.L79:
	andl	$32, %esi
	.p2align 4,,3
	je	.L83
	sall	$4, %ebx
	leal	10(%ebx), %eax
	jmp	.L67
.L85:
	andl	$2, %esi
	.p2align 4,,3
	je	.L89
	sall	$4, %ebx
	leal	14(%ebx), %eax
	jmp	.L67
.L65:
	sall	$4, %ebx
	leal	1(%ebx), %eax
	jmp	.L67
.L74:
	sall	$4, %ebx
	leal	7(%ebx), %eax
	jmp	.L67
.L72:
	sall	$4, %ebx
	leal	5(%ebx), %eax
	jmp	.L67
.L68:
	sall	$4, %ebx
	leal	3(%ebx), %eax
	jmp	.L67
.L89:
	sall	$4, %ebx
	leal	15(%ebx), %eax
	jmp	.L67
.L81:
	sall	$4, %ebx
	leal	9(%ebx), %eax
	jmp	.L67
.L87:
	sall	$4, %ebx
	leal	13(%ebx), %eax
	jmp	.L67
.L83:
	sall	$4, %ebx
	leal	11(%ebx), %eax
	jmp	.L67
	.size	Find_first, .-Find_first
	.p2align 4,,15
.globl Find_last
	.type	Find_last, @function
Find_last:
	pushl	%esi
	pushl	%ebx
	movl	16(%esp), %eax
	shrl	$4, %eax
	movl	%eax, %esi
	decl	%esi
	js	.L104
	movl	12(%esp), %eax
	leal	(%eax,%esi,2), %ecx
	.p2align 4,,15
.L106:
	movzwl	(%ecx), %eax
#APP
	rorw $8, %ax
#NO_APP
	movzwl	%ax, %ebx
	movzwl	%bx, %edx
	testb	%dl, %dl
	jne	.L144
	testb	$255, %dh
	jne	.L145
	decl	%esi
	subl	$2, %ecx
	cmpl	$-1, %esi
	jne	.L106
.L104:
	popl	%ebx
	movl	$255, %eax
	popl	%esi
	ret
.L144:
	testb	$15, %dl
	je	.L108
	testb	$3, %dl
	.p2align 4,,4
	jne	.L146
	testb	$4, %bl
	.p2align 4,,5
	je	.L115
	popl	%ebx
	sall	$4, %esi
	leal	13(%esi), %eax
	popl	%esi
	.p2align 4,,1
	ret
.L145:
	testb	$15, %dh
	.p2align 4,,2
	je	.L124
	testb	$3, %dh
	.p2align 4,,2
	jne	.L147
	testb	$4, %bh
	.p2align 4,,5
	je	.L130
	popl	%ebx
	sall	$4, %esi
	leal	5(%esi), %eax
	popl	%esi
	.p2align 4,,1
	ret
.L108:
	testb	$48, %dl
	.p2align 4,,2
	jne	.L148
	testb	$64, %bl
	.p2align 4,,2
	je	.L121
	popl	%ebx
	sall	$4, %esi
	leal	9(%esi), %eax
	popl	%esi
	.p2align 4,,1
	ret
.L124:
	testb	$48, %dh
	.p2align 4,,2
	jne	.L149
	testb	$64, %bh
	.p2align 4,,2
	je	.L136
	popl	%ebx
	sall	$4, %esi
	leal	1(%esi), %eax
	popl	%esi
	.p2align 4,,1
	ret
.L148:
	testb	$16, %bl
	.p2align 4,,2
	je	.L119
	popl	%ebx
	sall	$4, %esi
	leal	11(%esi), %eax
	popl	%esi
	ret
.L146:
	testb	$1, %bl
	.p2align 4,,2
	je	.L112
	popl	%ebx
	sall	$4, %esi
	leal	15(%esi), %eax
	popl	%esi
	ret
.L147:
	testb	$1, %bh
	.p2align 4,,2
	je	.L128
	popl	%ebx
	sall	$4, %esi
	leal	7(%esi), %eax
	popl	%esi
	ret
.L149:
	testb	$16, %bh
	.p2align 4,,2
	je	.L134
	popl	%ebx
	sall	$4, %esi
	leal	3(%esi), %eax
	popl	%esi
	ret
.L119:
	popl	%ebx
	sall	$4, %esi
	leal	10(%esi), %eax
	popl	%esi
	ret
.L115:
	popl	%ebx
	sall	$4, %esi
	leal	12(%esi), %eax
	popl	%esi
	ret
.L121:
	popl	%ebx
	sall	$4, %esi
	leal	8(%esi), %eax
	popl	%esi
	ret
.L112:
	popl	%ebx
	sall	$4, %esi
	leal	14(%esi), %eax
	popl	%esi
	ret
.L136:
	popl	%ebx
	movl	%esi, %eax
	sall	$4, %eax
	popl	%esi
	ret
.L128:
	popl	%ebx
	sall	$4, %esi
	leal	6(%esi), %eax
	popl	%esi
	ret
.L130:
	popl	%ebx
	sall	$4, %esi
	leal	4(%esi), %eax
	popl	%esi
	ret
.L134:
	popl	%ebx
	sall	$4, %esi
	leal	2(%esi), %eax
	popl	%esi
	ret
	.size	Find_last, .-Find_last
	.p2align 4,,15
.globl mm_support
	.type	mm_support, @function
mm_support:
	pushl	%ebx
	xorl	%eax, %eax
	subl	$16, %esp
	movl	%eax, 12(%esp)
#APP
	pushf
	popl %eax
	movl %eax, %ecx
	xorl $0x200000, %eax
	push %eax
	popf
	pushf
	popl %eax
	xorl %eax, %ecx
	testl $0x200000, %ecx
	jz NotSupported1
	movl $0, %eax
	cpuid
	cmpl $0x756e6547, %ebx
	jne TryAMD
	cmpl $0x49656e69, %edx
	jne TryAMD
	cmpl $0x6c65746e, %ecx
jne TryAMD
	jmp Intel
	
TryAMD:
	cmpl $0x68747541, %ebx
	jne TryCyrix
	cmpl $0x69746e65, %edx
	jne TryCyrix
	cmpl $0x444d4163, %ecx
jne TryCyrix
	jmp AMD
	
TryCyrix:
	cmpl $0x69727943, %ebx
	jne NotSupported2
	cmpl $0x736e4978, %edx
	jne NotSupported3
	cmpl $0x64616574, %ecx
	jne NotSupported4
	cmpl $0x2, %eax
	jne MMXtest
	movl $0x80000001, %eax
	cpuid
	testl $0x00800000, %eax
	jz NotSupported5
	testl $0x01000000, %eax
	jnz EMMXSupported
	movl $1, 12(%esp)

	jmp Return

EMMXSupported:
	movl $3, 12(%esp)

	jmp Return
	AMD:
	movl $0x80000000, %eax
	cpuid
	cmpl $0x80000000, %eax
	jl MMXtest
	movl $0x80000001, %eax
	cpuid
	testl $0x00800000, %edx
	jz NotSupported6
	testl $0x80000000, %edx
	jnz ThreeDNowSupported
	movl $1, 12(%esp)

	jmp Return

ThreeDNowSupported:
	movl $5, 12(%esp)

	jmp Return
	Intel:
	MMXtest:
	movl $1, %eax
	cpuid
	testl $0x00800000, %edx
	jz NotSupported7
	movl $1, 12(%esp)

	jmp Return
	
NotSupported1:
	#movl $101, 12(%esp)

	
NotSupported2:
	#movl $102, 12(%esp)

	
NotSupported3:
	#movl $103, 12(%esp)

	
NotSupported4:
	#movl $104, 12(%esp)

	
NotSupported5:
	#movl $105, 12(%esp)

	
NotSupported6:
	#movl $106, 12(%esp)

	
NotSupported7:
	#movl $107, 12(%esp)

	movl $0, 12(%esp)

	Return:
	
#NO_APP
	movl	12(%esp), %eax
	addl	$16, %esp
	popl	%ebx
	ret
	.size	mm_support, .-mm_support
	.p2align 4,,15
.globl Find_next
	.type	Find_next, @function
Find_next:
	pushl	%ebp
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	subl	$36, %esp
	movl	60(%esp), %edx
	testb	$15, %dl
	jne	.L215
	movl	60(%esp), %ebp
	shrl	$4, %ebp
	movl	%ebp, 16(%esp)
	movl	64(%esp), %ebp
	incl	%ebp
	testl	$15, %ebp
	je	.L160
.L165:
	movl	%ebp, %eax
	sarl	$31, %eax
	shrl	$28, %eax
	leal	(%ebp,%eax), %edx
	andl	$15, %edx
	subl	%eax, %edx
	movl	64(%esp), %eax
	subl	%edx, %eax
	leal	1(%eax), %edi
	shrl	$4, %edi
.L161:
	cmpl	%edi, 16(%esp)
	jge	.L163
	movl	16(%esp), %edx
	movl	56(%esp), %ecx
	movl	%edx, %esi
	leal	(%ecx,%edx,2), %ebx
	.p2align 4,,15
.L167:
	movzwl	(%ebx), %eax
#APP
	rorw $8, %ax
#NO_APP
	movzwl	%ax, %edx
	movzwl	%dx, %ecx
	testb	$255, %ch
	jne	.L216
	testb	%cl, %cl
	jne	.L217
	incl	%esi
	addl	$2, %ebx
	cmpl	%esi, %edi
	jne	.L167
.L163:
	movl	64(%esp), %eax
	movl	64(%esp), %edx
	movl	64(%esp), %esi
	sarl	$31, %eax
	shrl	$28, %eax
	addl	%eax, %edx
	andl	$15, %edx
	subl	%eax, %edx
	subl	%edx, %esi
	andl	$15, %ebp
	setne	15(%esp)
	cmpl	%esi, 64(%esp)
	setge	%al
	testb	%al, 15(%esp)
	jne	.L211
.L198:
	movl	$-1, %esi
.L156:
	addl	$36, %esp
	movl	%esi, %eax
	popl	%ebx
	popl	%esi
	popl	%edi
	popl	%ebp
	ret
.L215:
	movl	60(%esp), %eax
	movl	60(%esp), %ecx
	movl	$0, (%esp)
	sarl	$31, %eax
	shrl	$28, %eax
	addl	%eax, %ecx
	andl	$15, %ecx
	subl	%eax, %ecx
	movl	$16, %eax
	movl	%eax, 8(%esp)
	subl	%ecx, 8(%esp)
	movl	%ecx, 4(%esp)
	movl	8(%esp), %eax
	testl	%eax, %eax
	jle	.L158
	.p2align 4,,15
.L159:
	cmpl	%edx, 64(%esp)
	movl	%edx, %esi
	jl	.L158
	movl	%esi, %eax
	movl	$7, %ecx
	movl	56(%esp), %ebp
	cltd
	shrl	$29, %edx
	leal	(%esi,%edx), %eax
	andl	$7, %eax
	subl	%edx, %eax
	subl	%eax, %ecx
	testl	%esi, %esi
	leal	7(%esi), %edx
	cmovns	%esi, %edx
	movb	$-1, 35(%esp)
	sarl	$3, %edx
#APP
	xor %al, %al
	lea (%ebp), %edi
	add %edx, %edi
	bt  %ecx, (%edi)
	adc %al, %al
	mov %al, 35(%esp)
	
#NO_APP
	cmpb	$0, 35(%esp)
	jne	.L156
	incl	(%esp)
	movl	8(%esp), %eax
	leal	1(%esi), %edx
	cmpl	%eax, (%esp)
	jne	.L159
.L158:
	movl	60(%esp), %eax
	movl	4(%esp), %edx
	movl	64(%esp), %ebp
	subl	%edx, %eax
	addl	$16, %eax
	incl	%ebp
	shrl	$4, %eax
	testl	$15, %ebp
	movl	%eax, 16(%esp)
	jne	.L165
.L160:
	movl	%ebp, %edi
	shrl	$4, %edi
	jmp	.L161
.L211:
	cmpl	%esi, 60(%esp)
	jg	.L198
	movl	%esi, %eax
	movl	$7, %ecx
	movl	56(%esp), %ebp
	cltd
	shrl	$29, %edx
	leal	(%esi,%edx), %eax
	andl	$7, %eax
	subl	%edx, %eax
	subl	%eax, %ecx
	testl	%esi, %esi
	leal	7(%esi), %edx
	cmovns	%esi, %edx
	movb	$-1, 35(%esp)
	sarl	$3, %edx
#APP
	xor %al, %al
	lea (%ebp), %edi
	add %edx, %edi
	bt  %ecx, (%edi)
	adc %al, %al
	mov %al, 35(%esp)
	
#NO_APP
	cmpb	$0, 35(%esp)
	jne	.L156
	incl	%esi
	cmpl	%esi, 64(%esp)
	setge	%al
	testb	%al, 15(%esp)
	jne	.L211
	movl	$-1, %esi
	jmp	.L156
	.p2align 4,,7
.L216:
	testb	$240, %ch
	je	.L169
	testb	$192, %ch
	.p2align 4,,5
	jne	.L218
	testb	$32, %dh
	.p2align 4,,5
	je	.L175
	sall	$4, %esi
	addl	$2, %esi
	.p2align 4,,3
	jmp	.L156
.L217:
	testb	$-16, %cl
	.p2align 4,,3
	je	.L184
	testb	$-64, %cl
	.p2align 4,,3
	jne	.L219
	testb	$32, %dl
	.p2align 4,,5
	je	.L190
	sall	$4, %esi
	addl	$10, %esi
	.p2align 4,,3
	jmp	.L156
.L169:
	testb	$12, %ch
	.p2align 4,,3
	jne	.L220
	testb	$2, %dh
	.p2align 4,,3
	je	.L181
	sall	$4, %esi
	addl	$6, %esi
	.p2align 4,,3
	jmp	.L156
.L184:
	testb	$12, %cl
	.p2align 4,,3
	jne	.L221
	testb	$2, %dl
	.p2align 4,,3
	je	.L196
	sall	$4, %esi
	addl	$14, %esi
	.p2align 4,,3
	jmp	.L156
.L220:
	testb	$8, %dh
	.p2align 4,,3
	je	.L179
	sall	$4, %esi
	addl	$4, %esi
	jmp	.L156
.L218:
	movl	%edx, %eax
	andl	$32768, %eax
	testw	%ax, %ax
	je	.L173
	sall	$4, %esi
	jmp	.L156
.L219:
	testb	%dl, %dl
	jns	.L188
	sall	$4, %esi
	addl	$8, %esi
	.p2align 4,,3
	jmp	.L156
.L221:
	testb	$8, %dl
	.p2align 4,,3
	je	.L194
	sall	$4, %esi
	addl	$12, %esi
	jmp	.L156
.L179:
	sall	$4, %esi
	addl	$5, %esi
	jmp	.L156
.L175:
	sall	$4, %esi
	addl	$3, %esi
	jmp	.L156
.L181:
	sall	$4, %esi
	addl	$7, %esi
	jmp	.L156
.L173:
	sall	$4, %esi
	incl	%esi
	jmp	.L156
.L196:
	sall	$4, %esi
	addl	$15, %esi
	jmp	.L156
.L188:
	sall	$4, %esi
	addl	$9, %esi
	jmp	.L156
.L190:
	sall	$4, %esi
	addl	$11, %esi
	jmp	.L156
.L194:
	sall	$4, %esi
	addl	$13, %esi
	jmp	.L156
	.size	Find_next, .-Find_next
	.p2align 4,,15
.globl None
	.type	None, @function
None:
	pushl	%edi
	movl	$C.0.1570, %ecx
	pushl	%esi
	movl	$256, %esi
	pushl	%ebx
	subl	$272, %esp
	movl	292(%esp), %edi
	leal	16(%esp), %eax
	movl	%esi, 8(%esp)
	movl	288(%esp), %ebx
	movl	%ecx, 4(%esp)
	movl	%eax, (%esp)
	call	memcpy
	testl	%edi, %edi
	movl	%edi, %ecx
	leal	7(%edi), %eax
	cmovs	%eax, %ecx
	xorl	%esi, %esi
	sarl	$3, %ecx
	testl	%ecx, %ecx
	jle	.L225
	xorl	%edx, %edx
	prefetcht0	(%ebx)
	prefetcht0	32(%ebx)
	prefetcht0	64(%ebx)
	prefetcht0	96(%ebx)
	prefetcht0	128(%ebx)
	prefetcht0	160(%ebx)
	.p2align 4,,15
.L226:
	movzbl	(%ebx,%edx), %eax
	prefetcht0	192(%ebx,%edx)
	incl	%edx
	movzbl	16(%esp,%eax), %eax
	addl	%eax, %esi
	cmpl	%edx, %ecx
	jne	.L226
.L225:
	movl	%edi, %eax
	subl	%esi, %eax
	cmpl	%eax, %edi
	sete	%al
	addl	$272, %esp
	popl	%ebx
	movzbl	%al, %eax
	popl	%esi
	popl	%edi
	ret
	.size	None, .-None
	.p2align 4,,15
.globl NumberBit0
	.type	NumberBit0, @function
NumberBit0:
	pushl	%edi
	movl	$256, %edx
	pushl	%esi
	movl	$C.0.1570, %edi
	pushl	%ebx
	subl	$272, %esp
	movl	292(%esp), %esi
	leal	16(%esp), %eax
	movl	%edi, 4(%esp)
	movl	288(%esp), %ebx
	movl	%edx, 8(%esp)
	movl	%eax, (%esp)
	call	memcpy
	testl	%esi, %esi
	movl	%esi, %ecx
	leal	7(%esi), %eax
	cmovs	%eax, %ecx
	xorl	%edi, %edi
	sarl	$3, %ecx
	testl	%ecx, %ecx
	jle	.L232
	xorl	%edx, %edx
	prefetcht0	(%ebx)
	prefetcht0	32(%ebx)
	prefetcht0	64(%ebx)
	prefetcht0	96(%ebx)
	prefetcht0	128(%ebx)
	prefetcht0	160(%ebx)
	.p2align 4,,15
.L233:
	movzbl	(%ebx,%edx), %eax
	prefetcht0	192(%ebx,%edx)
	incl	%edx
	movzbl	16(%esp,%eax), %eax
	addl	%eax, %edi
	cmpl	%ecx, %edx
	jne	.L233
.L232:
	addl	$272, %esp
	subl	%edi, %esi
	popl	%ebx
	movl	%esi, %eax
	popl	%esi
	popl	%edi
	ret
	.size	NumberBit0, .-NumberBit0
	.p2align 4,,15
.globl Any
	.type	Any, @function
Any:
	pushl	%edi
	movl	$C.0.1570, %ecx
	pushl	%esi
	movl	$256, %esi
	pushl	%ebx
	subl	$272, %esp
	movl	292(%esp), %edi
	leal	16(%esp), %eax
	movl	%esi, 8(%esp)
	movl	288(%esp), %ebx
	movl	%ecx, 4(%esp)
	movl	%eax, (%esp)
	call	memcpy
	testl	%edi, %edi
	movl	%edi, %ecx
	leal	7(%edi), %eax
	cmovs	%eax, %ecx
	xorl	%esi, %esi
	sarl	$3, %ecx
	testl	%ecx, %ecx
	jle	.L239
	xorl	%edx, %edx
	prefetcht0	(%ebx)
	prefetcht0	32(%ebx)
	prefetcht0	64(%ebx)
	prefetcht0	96(%ebx)
	prefetcht0	128(%ebx)
	prefetcht0	160(%ebx)
	.p2align 4,,15
.L240:
	movzbl	(%ebx,%edx), %eax
	prefetcht0	192(%ebx,%edx)
	incl	%edx
	movzbl	16(%esp,%eax), %eax
	addl	%eax, %esi
	cmpl	%ecx, %edx
	jne	.L240
.L239:
	xorl	%eax, %eax
	cmpl	%esi, %edi
	sete	%al
	addl	$272, %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	ret
	.size	Any, .-Any
	.ident	"GCC: (GNU) 4.1.0 20050320 (experimental)"
	.section	.note.GNU-stack,"",@progbits
