	.file	"driver.c"
.text
	.p2align 2
.globl reseed
	.type	 reseed,@function
reseed:
	pushl %ebp
	movl %esp,%ebp
	subl $88,%esp
	movl 12(%ebp),%eax
	pushl %edi
	pushl %esi
	pushl %ebx
	jmp .L44
	.p2align 4,,7
.L31:
	movl 12(%ebp),%eax
	sall $8,%eax
	addl 12(%ebp),%eax
	movl %eax,-4(%ebp)
	movl -4(%ebp),%eax
	testl %eax,%eax
	je .L30
	leal -16(%ebp),%edx
	movl %edx,-36(%ebp)
	leal -24(%ebp),%ecx
	movl %ecx,-40(%ebp)
	.p2align 4,,7
.L35:
	pushl $0
	pushl $10
	call snooze
	addl $8,%esp
	call real_time_clock_usecs
	addl %eax,-24(%ebp)
	adcl %edx,-20(%ebp)
	movl -24(%ebp),%ebx
	movl -40(%ebp),%eax
	movl -16(%ebp),%edx
	movl %ebx,-48(%ebp)
	movl 4(%eax),%ecx
	movl -36(%ebp),%eax
	movl %ecx,-44(%ebp)
	movl %edx,-56(%ebp)
	movl %ebx,%edx
	roll $8,%edx
	andl $16711935,%edx
	movl 4(%eax),%eax
	movl %eax,-52(%ebp)
	movl %ebx,%eax
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%edx
	orl $1,%edx
	imull %ecx,%edx
	roll $5,%edx
	movl %edx,-48(%ebp)
	movl %ecx,%edx
	roll $8,%edx
	andl $16711935,%edx
	movl %ecx,%eax
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%edx
	orl $1,%edx
	imull %ebx,%edx
	roll $5,%edx
	movl %edx,-44(%ebp)
	movl -56(%ebp),%edx
	movl -44(%ebp),%ebx
	movl -52(%ebp),%edi
	movl -48(%ebp),%esi
	xorl -48(%ebp),%edx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%edx
	roll $8,%edx
	andl $16711935,%edx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%edx
	addl $1380155135,%edx
	imull $-639210807,%edx,%edx
	movl %edx,-56(%ebp)
	xorl -44(%ebp),%edi
	andl $31,%esi
	movl %edi,%eax
	movl %esi,%ecx
	sall %cl,%eax
	movl $32,%ebx
	subl %esi,%ebx
	movl %ebx,%ecx
	shrl %cl,%edi
	orl %edi,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	movl -36(%ebp),%eax
	addl $40520939,%ecx
	imull $1457891701,%ecx,%ecx
	movl %ecx,-52(%ebp)
	movl %edx,4(%eax)
	movl -24(%ebp),%edx
	movl %ecx,-16(%ebp)
	movl %ecx,-64(%ebp)
	movl 4(%eax),%ebx
	movl -40(%ebp),%eax
	movl %ebx,-60(%ebp)
	movl %edx,-72(%ebp)
	movl %ecx,%edx
	roll $8,%edx
	andl $16711935,%edx
	movl 4(%eax),%eax
	movl %eax,-68(%ebp)
	movl %ecx,%eax
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%edx
	orl $1,%edx
	imull %ebx,%edx
	roll $5,%edx
	movl %edx,-64(%ebp)
	movl %ebx,%edx
	roll $8,%edx
	andl $16711935,%edx
	movl %ebx,%eax
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%edx
	orl $1,%edx
	imull %ecx,%edx
	roll $5,%edx
	movl %edx,-60(%ebp)
	movl -72(%ebp),%edx
	movl -60(%ebp),%ebx
	xorl -64(%ebp),%edx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	movl -68(%ebp),%eax
	movl -64(%ebp),%esi
	addl $-955544767,%ecx
	imull $919367643,%ecx,%edi
	movl %edi,-72(%ebp)
	xorl -60(%ebp),%eax
	andl $31,%esi
	movl %eax,%edx
	movl %esi,%ecx
	sall %cl,%edx
	movl $32,%ebx
	subl %esi,%ebx
	movl %ebx,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -40(%ebp),%edx
	addl $-1859735498,%eax
	imull $836007927,%eax,%eax
	movl %eax,-68(%ebp)
	movl %edi,4(%edx)
	movl %eax,-24(%ebp)
	movl -24(%ebp),%eax
	movl -20(%ebp),%edx
	movl %eax,-32(%ebp)
	movl %edx,-28(%ebp)
	movl 8(%ebp),%eax
	movl 2056(%eax),%ecx
	leal 960(%ecx),%edx
	movl %edx,2056(%eax)
	addl $2056,%eax
	cmpl %eax,%edx
	jb .L39
	movl 8(%ebp),%edx
	addl $-1096,%ecx
	movl %ecx,2056(%edx)
.L39:
	movl 8(%ebp),%ecx
	movl -32(%ebp),%ebx
	movl 2056(%ecx),%esi
	movl -28(%ebp),%ecx
	movl %ebx,-80(%ebp)
	movl %ecx,-76(%ebp)
	movl (%esi),%eax
	movl %eax,-88(%ebp)
	movl 4(%esi),%edx
	movl %edx,-84(%ebp)
	movl %ebx,%edx
	roll $8,%edx
	andl $16711935,%edx
	movl %ebx,%eax
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%edx
	orl $1,%edx
	imull %ecx,%edx
	roll $5,%edx
	movl %edx,-80(%ebp)
	movl %ecx,%edx
	roll $8,%edx
	andl $16711935,%edx
	movl %ecx,%eax
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%edx
	orl $1,%edx
	imull %ebx,%edx
	roll $5,%edx
	movl %edx,-76(%ebp)
	movl -88(%ebp),%edx
	movl -76(%ebp),%ebx
	xorl -80(%ebp),%edx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl $557662966,%ecx
	imull $776563579,%ecx,%ecx
	movl %ecx,4(%esi)
	movl -84(%ebp),%eax
	movl -80(%ebp),%edi
	movl %ecx,-88(%ebp)
	xorl -76(%ebp),%eax
	andl $31,%edi
	movl %eax,%edx
	movl %edi,%ecx
	sall %cl,%edx
	movl $32,%ebx
	subl %edi,%ebx
	movl %ebx,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	addl $1699928825,%eax
	imull $390701653,%eax,%eax
	movl %eax,-84(%ebp)
	movl %eax,(%esi)
	movl -4(%ebp),%eax
	decl %eax
	movl %eax,-4(%ebp)
	movl -4(%ebp),%eax
	testl %eax,%eax
	jne .L35
.L30:
	movl -8(%ebp),%eax
	decl %eax
.L44:
	movl %eax,-8(%ebp)
	movl -8(%ebp),%eax
	testl %eax,%eax
	jne .L31
	leal -100(%ebp),%esp
	popl %ebx
	popl %esi
	popl %edi
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe1:
	.size	 reseed,.Lfe1-reseed
.globl __umoddi3
.data
	.align 4
	.type	 randcount,@object
	.size	 randcount,4
randcount:
	.long 0
.globl api_version
	.align 4
	.type	 api_version,@object
	.size	 api_version,4
api_version:
	.long 2
.section	.rodata
.LC2:
	.string	"random: init_hardware()\n"
.LC5:
	.string	"RNG semaphore"
.LC6:
	.string	"random: init_driver()\n"
	.align 4
.LC3:
	.long 1926667791
	.long 441137244
	.align 4
.LC4:
	.long 907690715
	.long -1669308441
.text
	.p2align 2
.globl init_driver
	.type	 init_driver,@function
init_driver:
	pushl %ebp
	movl %esp,%ebp
	subl $284,%esp
	pushl %edi
	pushl %esi
	pushl %ebx
	pushl $2088
	call malloc
	movl %eax,%edi
	movl .LC3,%eax
	movl .LC3+4,%edx
	movl %eax,2072(%edi)
	movl %edx,2076(%edi)
	movl .LC4,%eax
	movl .LC4+4,%edx
	movl %edi,2056(%edi)
	movl %edi,2068(%edi)
	movl %edi,2060(%edi)
	movl %edi,2064(%edi)
	movl %eax,2080(%edi)
	movl %edx,2084(%edi)
	pushl $8
	pushl %edi
	call reseed
	movl 2068(%edi),%edx
	addl $12,%esp
	leal 8(%edx),%eax
	movl %eax,2068(%edi)
	addl $560,2060(%edi)
	addl $1112,2064(%edi)
	leal 2056(%edi),%ecx
	movl %ecx,-36(%ebp)
	cmpl %ecx,%eax
	jb .L127
	addl $-2048,%edx
	movl %edx,2068(%edi)
	pushl $1
	pushl %edi
	call reseed
	addl $8,%esp
.L127:
	movl 2060(%edi),%eax
	cmpl -36(%ebp),%eax
	jb .L128
	addl $-2056,%eax
	movl %eax,2060(%edi)
.L128:
	movl 2064(%edi),%eax
	cmpl -36(%ebp),%eax
	jb .L129
	addl $-2056,%eax
	movl %eax,2064(%edi)
.L129:
	movl 2068(%edi),%eax
	movl 2060(%edi),%esi
	movl (%eax),%ebx
	movl %ebx,-44(%ebp)
	movl 4(%eax),%ecx
	movl 2072(%edi),%eax
	movl %eax,-52(%ebp)
	movl 2076(%edi),%edx
	movl %edx,-48(%ebp)
	movl %ebx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ebx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-44(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -52(%ebp),%edx
	orb $1,%al
	imull %ebx,%eax
	roll $5,%eax
	movl %eax,-40(%ebp)
	xorl -44(%ebp),%edx
	movl %eax,%ebx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl -48(%ebp),%edx
	movl %eax,%ebx
	roll $8,%ebx
	andl $16711935,%ebx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ebx
	movl -44(%ebp),%eax
	addl (%esi),%ebx
	andl $31,%eax
	movl %eax,-56(%ebp)
	movl -56(%ebp),%ecx
	imull $1235467377,%ebx,%ebx
	movl %ebx,-52(%ebp)
	xorl -40(%ebp),%edx
	movl %edx,%eax
	sall %cl,%eax
	movl $32,%ecx
	subl -56(%ebp),%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl 4(%esi),%ecx
	movl 2064(%edi),%esi
	movl 2080(%edi),%eax
	imull $1625458173,%ecx,%ecx
	movl %ebx,2076(%edi)
	movl %ecx,2072(%edi)
	movl %eax,-72(%ebp)
	movl 2084(%edi),%edx
	movl %edx,-68(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ebx,%eax
	roll $5,%eax
	movl %eax,-64(%ebp)
	movl %ebx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ebx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -72(%ebp),%edx
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-60(%ebp)
	xorl -64(%ebp),%edx
	movl %eax,%ebx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	movl $32,%ebx
	addl (%esi),%ecx
	imull $-1016683011,%ecx,%ecx
	movl %ecx,-284(%ebp)
	movl -68(%ebp),%eax
	movl -64(%ebp),%edx
	movl %ecx,-72(%ebp)
	andl $31,%edx
	movl %edx,-76(%ebp)
	movl -76(%ebp),%ecx
	xorl -60(%ebp),%eax
	movl %eax,%edx
	sall %cl,%edx
	subl %ecx,%ebx
	movl %ebx,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -284(%ebp),%edx
	addl 4(%esi),%eax
	imull $549938159,%eax,%eax
	movl %edx,2084(%edi)
	movl %eax,2080(%edi)
	movl 2080(%edi),%eax
	movl 2084(%edi),%edx
	movl %eax,-8(%ebp)
	movl %edx,-4(%ebp)
	movl 2056(%edi),%edx
	leal 960(%edx),%eax
	movl %eax,2056(%edi)
	cmpl -36(%ebp),%eax
	jb .L132
	addl $-1096,%edx
	movl %edx,2056(%edi)
.L132:
	movl 2056(%edi),%ebx
	movl -8(%ebp),%esi
	movl -4(%ebp),%ecx
	movl %esi,-84(%ebp)
	movl %ecx,-80(%ebp)
	movl (%ebx),%eax
	movl %eax,-92(%ebp)
	movl 4(%ebx),%edx
	movl %edx,-88(%ebp)
	movl %esi,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %esi,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-84(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -92(%ebp),%edx
	orb $1,%al
	imull %esi,%eax
	roll $5,%eax
	movl %eax,-80(%ebp)
	xorl -84(%ebp),%edx
	movl %eax,%esi
	andl $31,%esi
	movl %edx,%eax
	movl %esi,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %esi,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl $557662966,%ecx
	imull $776563579,%ecx,%ecx
	movl %ecx,4(%ebx)
	movl -88(%ebp),%eax
	movl -84(%ebp),%edx
	movl %ecx,-92(%ebp)
	andl $31,%edx
	movl %edx,-96(%ebp)
	movl -96(%ebp),%ecx
	xorl -80(%ebp),%eax
	movl %eax,%edx
	sall %cl,%edx
	movl $32,%esi
	subl %ecx,%esi
	movl %esi,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	imull $390701653,%eax,%eax
	addl $-485144915,%eax
	movl %eax,(%ebx)
	movl 2080(%edi),%eax
	movl 2084(%edi),%edx
	xorl 2072(%edi),%eax
	xorl 2076(%edi),%edx
	pushl $0
	pushl $257
	pushl %edx
	pushl %eax
	call __umoddi3
	movl 2068(%edi),%edx
	addl $16,%esp
	leal (%edi,%eax,8),%eax
	movl %eax,2056(%edi)
	leal 8(%edx),%eax
	movl %eax,2068(%edi)
	addl $560,2060(%edi)
	addl $1112,2064(%edi)
	cmpl -36(%ebp),%eax
	jb .L136
	addl $-2048,%edx
	movl %edx,2068(%edi)
	pushl $1
	pushl %edi
	call reseed
	addl $8,%esp
.L136:
	movl 2060(%edi),%eax
	cmpl -36(%ebp),%eax
	jb .L137
	addl $-2056,%eax
	movl %eax,2060(%edi)
.L137:
	movl 2064(%edi),%eax
	cmpl -36(%ebp),%eax
	jb .L138
	addl $-2056,%eax
	movl %eax,2064(%edi)
.L138:
	movl 2068(%edi),%eax
	movl 2060(%edi),%esi
	movl (%eax),%ebx
	movl %ebx,-104(%ebp)
	movl 4(%eax),%ecx
	movl 2072(%edi),%edx
	movl %edx,-112(%ebp)
	movl 2076(%edi),%eax
	movl %eax,-108(%ebp)
	movl %ebx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ebx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-104(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -112(%ebp),%edx
	orb $1,%al
	imull %ebx,%eax
	roll $5,%eax
	movl %eax,-100(%ebp)
	xorl -104(%ebp),%edx
	movl %eax,%ebx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl -108(%ebp),%edx
	movl %eax,%ebx
	roll $8,%ebx
	andl $16711935,%ebx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ebx
	movl -104(%ebp),%eax
	addl (%esi),%ebx
	andl $31,%eax
	movl %eax,-116(%ebp)
	movl -116(%ebp),%ecx
	imull $1235467377,%ebx,%ebx
	movl %ebx,-112(%ebp)
	xorl -100(%ebp),%edx
	movl %edx,%eax
	sall %cl,%eax
	movl $32,%ecx
	subl -116(%ebp),%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl 4(%esi),%ecx
	movl 2064(%edi),%esi
	movl 2080(%edi),%eax
	imull $1625458173,%ecx,%ecx
	movl %ebx,2076(%edi)
	movl %ecx,2072(%edi)
	movl %eax,-132(%ebp)
	movl 2084(%edi),%edx
	movl %edx,-128(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ebx,%eax
	roll $5,%eax
	movl %eax,-124(%ebp)
	movl %ebx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ebx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -132(%ebp),%edx
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-120(%ebp)
	xorl -124(%ebp),%edx
	movl %eax,%ebx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	movl $32,%ebx
	addl (%esi),%ecx
	imull $-1016683011,%ecx,%ecx
	movl %ecx,-284(%ebp)
	movl -128(%ebp),%eax
	movl -124(%ebp),%edx
	movl %ecx,-132(%ebp)
	andl $31,%edx
	movl %edx,-136(%ebp)
	movl -136(%ebp),%ecx
	xorl -120(%ebp),%eax
	movl %eax,%edx
	sall %cl,%edx
	subl %ecx,%ebx
	movl %ebx,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -284(%ebp),%edx
	addl 4(%esi),%eax
	imull $549938159,%eax,%eax
	movl %edx,2084(%edi)
	movl %eax,2080(%edi)
	movl 2080(%edi),%eax
	movl 2084(%edi),%edx
	movl %eax,-16(%ebp)
	movl %edx,-12(%ebp)
	movl 2056(%edi),%edx
	leal 960(%edx),%eax
	movl %eax,2056(%edi)
	cmpl -36(%ebp),%eax
	jb .L141
	addl $-1096,%edx
	movl %edx,2056(%edi)
.L141:
	movl 2056(%edi),%ebx
	movl -16(%ebp),%esi
	movl -12(%ebp),%ecx
	movl %esi,-144(%ebp)
	movl %ecx,-140(%ebp)
	movl (%ebx),%eax
	movl %eax,-152(%ebp)
	movl 4(%ebx),%edx
	movl %edx,-148(%ebp)
	movl %esi,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %esi,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-144(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -152(%ebp),%edx
	orb $1,%al
	imull %esi,%eax
	roll $5,%eax
	movl %eax,-140(%ebp)
	xorl -144(%ebp),%edx
	movl %eax,%esi
	andl $31,%esi
	movl %edx,%eax
	movl %esi,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %esi,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl $557662966,%ecx
	imull $776563579,%ecx,%ecx
	movl %ecx,4(%ebx)
	movl -148(%ebp),%eax
	movl -144(%ebp),%edx
	movl %ecx,-152(%ebp)
	andl $31,%edx
	movl %edx,-156(%ebp)
	movl -156(%ebp),%ecx
	xorl -140(%ebp),%eax
	movl %eax,%edx
	sall %cl,%edx
	movl $32,%esi
	subl %ecx,%esi
	movl %esi,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	imull $390701653,%eax,%eax
	addl $-485144915,%eax
	movl %eax,(%ebx)
	movl 2080(%edi),%eax
	movl 2084(%edi),%edx
	xorl 2072(%edi),%eax
	xorl 2076(%edi),%edx
	pushl $0
	pushl $257
	pushl %edx
	pushl %eax
	call __umoddi3
	addl $16,%esp
	leal (%edi,%eax,8),%edx
	leal 8(%edx),%eax
	movl %eax,2068(%edi)
	addl $560,2060(%edi)
	addl $1112,2064(%edi)
	cmpl -36(%ebp),%eax
	jb .L145
	addl $-2048,%edx
	movl %edx,2068(%edi)
	pushl $1
	pushl %edi
	call reseed
	addl $8,%esp
.L145:
	movl 2060(%edi),%eax
	cmpl -36(%ebp),%eax
	jb .L146
	addl $-2056,%eax
	movl %eax,2060(%edi)
.L146:
	leal 2056(%edi),%edx
	movl %edx,-160(%ebp)
	movl 2064(%edi),%eax
	cmpl %edx,%eax
	jb .L147
	addl $-2056,%eax
	movl %eax,2064(%edi)
.L147:
	movl 2068(%edi),%eax
	movl 2060(%edi),%esi
	movl (%eax),%ebx
	movl %ebx,-168(%ebp)
	movl 4(%eax),%ecx
	movl 2072(%edi),%eax
	movl %eax,-176(%ebp)
	movl 2076(%edi),%edx
	movl %edx,-172(%ebp)
	movl %ebx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ebx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-168(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -176(%ebp),%edx
	orb $1,%al
	imull %ebx,%eax
	roll $5,%eax
	movl %eax,-164(%ebp)
	xorl -168(%ebp),%edx
	movl %eax,%ebx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl -172(%ebp),%edx
	movl %eax,%ebx
	roll $8,%ebx
	andl $16711935,%ebx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ebx
	movl -168(%ebp),%eax
	addl (%esi),%ebx
	andl $31,%eax
	movl %eax,-180(%ebp)
	movl -180(%ebp),%ecx
	imull $1235467377,%ebx,%ebx
	movl %ebx,-176(%ebp)
	xorl -164(%ebp),%edx
	movl %edx,%eax
	sall %cl,%eax
	movl $32,%ecx
	subl -180(%ebp),%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl 4(%esi),%ecx
	movl 2064(%edi),%esi
	movl 2080(%edi),%eax
	imull $1625458173,%ecx,%ecx
	movl %ebx,2076(%edi)
	movl %ecx,2072(%edi)
	movl %eax,-196(%ebp)
	movl 2084(%edi),%edx
	movl %edx,-192(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ebx,%eax
	roll $5,%eax
	movl %eax,-188(%ebp)
	movl %ebx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ebx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -196(%ebp),%edx
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-184(%ebp)
	xorl -188(%ebp),%edx
	movl %eax,%ebx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	movl $32,%ebx
	addl (%esi),%ecx
	imull $-1016683011,%ecx,%ecx
	movl %ecx,-284(%ebp)
	movl -192(%ebp),%eax
	movl -188(%ebp),%edx
	movl %ecx,-196(%ebp)
	andl $31,%edx
	movl %edx,-200(%ebp)
	movl -200(%ebp),%ecx
	xorl -184(%ebp),%eax
	movl %eax,%edx
	sall %cl,%edx
	subl %ecx,%ebx
	movl %ebx,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -284(%ebp),%edx
	addl 4(%esi),%eax
	imull $549938159,%eax,%eax
	movl %edx,2084(%edi)
	movl %eax,2080(%edi)
	movl 2080(%edi),%eax
	movl 2084(%edi),%edx
	movl %eax,-24(%ebp)
	movl %edx,-20(%ebp)
	movl 2056(%edi),%edx
	leal 960(%edx),%eax
	movl %eax,2056(%edi)
	cmpl -160(%ebp),%eax
	jb .L150
	addl $-1096,%edx
	movl %edx,2056(%edi)
.L150:
	movl 2056(%edi),%ebx
	movl -24(%ebp),%esi
	movl -20(%ebp),%ecx
	movl %esi,-208(%ebp)
	movl %ecx,-204(%ebp)
	movl (%ebx),%eax
	movl %eax,-216(%ebp)
	movl 4(%ebx),%edx
	movl %edx,-212(%ebp)
	movl %esi,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %esi,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-208(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -216(%ebp),%edx
	orb $1,%al
	imull %esi,%eax
	roll $5,%eax
	movl %eax,-204(%ebp)
	xorl -208(%ebp),%edx
	movl %eax,%esi
	andl $31,%esi
	movl %edx,%eax
	movl %esi,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %esi,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl $557662966,%ecx
	imull $776563579,%ecx,%ecx
	movl %ecx,4(%ebx)
	movl -212(%ebp),%eax
	movl -208(%ebp),%edx
	movl %ecx,-216(%ebp)
	andl $31,%edx
	movl %edx,-220(%ebp)
	movl -220(%ebp),%ecx
	xorl -204(%ebp),%eax
	movl %eax,%edx
	sall %cl,%edx
	movl $32,%esi
	subl %ecx,%esi
	movl %esi,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	imull $390701653,%eax,%eax
	addl $-485144915,%eax
	movl %eax,(%ebx)
	movl 2080(%edi),%eax
	movl 2084(%edi),%edx
	xorl 2072(%edi),%eax
	xorl 2076(%edi),%edx
	pushl $0
	pushl $257
	pushl %edx
	pushl %eax
	call __umoddi3
	movl 2068(%edi),%edx
	addl $16,%esp
	leal 8(%edx),%ecx
	movl %ecx,2068(%edi)
	leal 560(%edi,%eax,8),%eax
	movl %eax,2060(%edi)
	addl $1112,2064(%edi)
	movl %ecx,%eax
	cmpl -160(%ebp),%eax
	jb .L154
	addl $-2048,%edx
	movl %edx,2068(%edi)
	pushl $1
	pushl %edi
	call reseed
	addl $8,%esp
.L154:
	movl 2060(%edi),%eax
	cmpl -160(%ebp),%eax
	jb .L155
	addl $-2056,%eax
	movl %eax,2060(%edi)
.L155:
	movl 2064(%edi),%eax
	cmpl -160(%ebp),%eax
	jb .L156
	addl $-2056,%eax
	movl %eax,2064(%edi)
.L156:
	movl 2068(%edi),%eax
	movl 2060(%edi),%esi
	movl (%eax),%ebx
	movl %ebx,-228(%ebp)
	movl 4(%eax),%ecx
	movl 2072(%edi),%eax
	movl %eax,-236(%ebp)
	movl 2076(%edi),%edx
	movl %edx,-232(%ebp)
	movl %ebx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ebx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-228(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -236(%ebp),%edx
	orb $1,%al
	imull %ebx,%eax
	roll $5,%eax
	movl %eax,-224(%ebp)
	xorl -228(%ebp),%edx
	movl %eax,%ebx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl -232(%ebp),%edx
	movl %eax,%ebx
	roll $8,%ebx
	andl $16711935,%ebx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ebx
	movl -228(%ebp),%eax
	addl (%esi),%ebx
	andl $31,%eax
	movl %eax,-240(%ebp)
	movl -240(%ebp),%ecx
	imull $1235467377,%ebx,%ebx
	movl %ebx,-236(%ebp)
	xorl -224(%ebp),%edx
	movl %edx,%eax
	sall %cl,%eax
	movl $32,%ecx
	subl -240(%ebp),%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl 4(%esi),%ecx
	movl 2064(%edi),%esi
	movl 2080(%edi),%eax
	imull $1625458173,%ecx,%ecx
	movl %ebx,2076(%edi)
	movl %ecx,2072(%edi)
	movl %eax,-256(%ebp)
	movl 2084(%edi),%edx
	movl %edx,-252(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ebx,%eax
	roll $5,%eax
	movl %eax,-248(%ebp)
	movl %ebx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ebx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -256(%ebp),%edx
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-244(%ebp)
	xorl -248(%ebp),%edx
	movl %eax,%ebx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	movl $32,%ebx
	addl (%esi),%ecx
	imull $-1016683011,%ecx,%ecx
	movl %ecx,-284(%ebp)
	movl -252(%ebp),%eax
	movl -248(%ebp),%edx
	movl %ecx,-256(%ebp)
	andl $31,%edx
	movl %edx,-260(%ebp)
	movl -260(%ebp),%ecx
	xorl -244(%ebp),%eax
	movl %eax,%edx
	sall %cl,%edx
	subl %ecx,%ebx
	movl %ebx,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -284(%ebp),%edx
	addl 4(%esi),%eax
	imull $549938159,%eax,%eax
	movl %edx,2084(%edi)
	movl %eax,2080(%edi)
	movl 2080(%edi),%eax
	movl 2084(%edi),%edx
	movl %eax,-32(%ebp)
	movl %edx,-28(%ebp)
	movl 2056(%edi),%edx
	leal 960(%edx),%eax
	movl %eax,2056(%edi)
	cmpl -160(%ebp),%eax
	jb .L159
	addl $-1096,%edx
	movl %edx,2056(%edi)
.L159:
	movl 2056(%edi),%ebx
	movl -32(%ebp),%esi
	movl -28(%ebp),%ecx
	movl %esi,-268(%ebp)
	movl %ecx,-264(%ebp)
	movl (%ebx),%eax
	movl %eax,-276(%ebp)
	movl 4(%ebx),%edx
	movl %edx,-272(%ebp)
	movl %esi,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %esi,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-268(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -276(%ebp),%edx
	orb $1,%al
	imull %esi,%eax
	roll $5,%eax
	movl %eax,-264(%ebp)
	xorl -268(%ebp),%edx
	movl %eax,%esi
	andl $31,%esi
	movl %edx,%eax
	movl %esi,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %esi,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl $557662966,%ecx
	imull $776563579,%ecx,%ecx
	movl %ecx,4(%ebx)
	movl -272(%ebp),%eax
	movl -268(%ebp),%edx
	movl %ecx,-276(%ebp)
	andl $31,%edx
	movl %edx,-280(%ebp)
	movl -280(%ebp),%ecx
	xorl -264(%ebp),%eax
	movl %eax,%edx
	sall %cl,%edx
	movl $32,%esi
	subl %ecx,%esi
	movl %esi,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	imull $390701653,%eax,%eax
	addl $-485144915,%eax
	movl %eax,(%ebx)
	movl 2080(%edi),%eax
	movl 2084(%edi),%edx
	xorl 2072(%edi),%eax
	xorl 2076(%edi),%edx
	pushl $0
	pushl $257
	pushl %edx
	pushl %eax
	call __umoddi3
	addl $16,%esp
	leal (%edi,%eax,8),%eax
	movl %eax,2064(%edi)
	movl %edi,rng
	pushl $.LC5
	pushl $1
	call create_sem
	movl %eax,rand_mutex
	pushl $.LC6
	call dprintf
	xorl %eax,%eax
	leal -296(%ebp),%esp
	popl %ebx
	popl %esi
	popl %edi
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe2:
	.size	 init_driver,.Lfe2-init_driver
.section	.rodata
.LC7:
	.string	"random: uninit_driver()\n"
.LC8:
	.string	"random: open(\"%s\")\n"
.text
	.p2align 2
	.type	 my_device_read,@function
my_device_read:
	pushl %ebp
	movl %esp,%ebp
	subl $140,%esp
	pushl %edi
	pushl %esi
	pushl %ebx
	movl rand_mutex,%eax
	pushl %eax
	call acquire_sem
	movl 24(%ebp),%edx
	addl $4,%esp
	movl (%edx),%eax
	addl randcount,%eax
	movl %eax,randcount
	cmpl $31,%eax
	jbe .L168
	movl $0,randcount
	pushl $1
	movl rng,%eax
	pushl %eax
	call reseed
	addl $8,%esp
.L168:
	movl 24(%ebp),%ecx
	movl $0,-20(%ebp)
	movl (%ecx),%eax
	jmp .L199
	.p2align 4,,7
.L172:
	movl rng,%ebx
	movl %ebx,-28(%ebp)
	movl 2068(%ebx),%edx
	leal 8(%edx),%esi
	movl %esi,2068(%ebx)
	addl $560,2060(%ebx)
	addl $1112,2064(%ebx)
	addl $2056,%ebx
	movl %ebx,-32(%ebp)
	movl %esi,%eax
	cmpl %ebx,%eax
	jb .L173
	movl -28(%ebp),%eax
	addl $-2048,%edx
	movl %edx,2068(%eax)
	pushl $1
	pushl %eax
	call reseed
	addl $8,%esp
.L173:
	movl -28(%ebp),%edx
	movl 2060(%edx),%eax
	cmpl -32(%ebp),%eax
	jb .L174
	addl $-2056,%eax
	movl %eax,2060(%edx)
.L174:
	movl -28(%ebp),%ecx
	movl 2064(%ecx),%eax
	cmpl -32(%ebp),%eax
	jb .L175
	addl $-2056,%eax
	movl %eax,2064(%ecx)
.L175:
	movl -28(%ebp),%ebx
	movl 2068(%ebx),%eax
	movl 2060(%ebx),%esi
	movl (%eax),%ebx
	movl %ebx,-40(%ebp)
	movl 4(%eax),%ecx
	movl -28(%ebp),%eax
	movl -28(%ebp),%edx
	movl %ecx,-36(%ebp)
	movl 2072(%eax),%eax
	movl %eax,-48(%ebp)
	movl 2076(%edx),%edx
	movl %edx,-44(%ebp)
	movl %ebx,%edx
	roll $8,%edx
	andl $16711935,%edx
	movl %ebx,%eax
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%edx
	orl $1,%edx
	imull %ecx,%edx
	roll $5,%edx
	movl %edx,-40(%ebp)
	movl %ecx,%edx
	roll $8,%edx
	andl $16711935,%edx
	movl %ecx,%eax
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%edx
	orl $1,%edx
	imull %ebx,%edx
	roll $5,%edx
	movl %edx,-36(%ebp)
	movl -48(%ebp),%edx
	movl -36(%ebp),%ebx
	xorl -40(%ebp),%edx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl -44(%ebp),%edx
	movl -40(%ebp),%edi
	movl %eax,%ebx
	roll $8,%ebx
	andl $16711935,%ebx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ebx
	addl (%esi),%ebx
	imull $1235467377,%ebx,%ebx
	movl %ebx,-48(%ebp)
	xorl -36(%ebp),%edx
	andl $31,%edi
	movl %edx,%eax
	movl %edi,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %edi,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl 4(%esi),%ecx
	movl -28(%ebp),%esi
	imull $1625458173,%ecx,%ecx
	movl %ecx,-44(%ebp)
	movl %ebx,2076(%esi)
	movl %ecx,2072(%esi)
	movl -28(%ebp),%eax
	movl 2064(%esi),%esi
	movl %ecx,-56(%ebp)
	movl %ebx,-52(%ebp)
	movl 2080(%eax),%eax
	movl %eax,-64(%ebp)
	movl -28(%ebp),%edx
	movl %ecx,%eax
	roll $24,%eax
	andl $-16711936,%eax
	movl 2084(%edx),%edx
	movl %edx,-60(%ebp)
	movl %ecx,%edx
	roll $8,%edx
	andl $16711935,%edx
	orl %eax,%edx
	orl $1,%edx
	imull %ebx,%edx
	roll $5,%edx
	movl %edx,-56(%ebp)
	movl %ebx,%edx
	roll $8,%edx
	andl $16711935,%edx
	movl %ebx,%eax
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%edx
	orl $1,%edx
	imull %ecx,%edx
	roll $5,%edx
	movl %edx,-52(%ebp)
	movl -64(%ebp),%edx
	movl -52(%ebp),%ebx
	xorl -56(%ebp),%edx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	movl -60(%ebp),%eax
	movl -56(%ebp),%edi
	addl (%esi),%ecx
	imull $-1016683011,%ecx,%ecx
	movl %ecx,-140(%ebp)
	movl %ecx,-64(%ebp)
	xorl -52(%ebp),%eax
	andl $31,%edi
	movl %eax,%edx
	movl %edi,%ecx
	sall %cl,%edx
	movl $32,%ebx
	subl %edi,%ebx
	movl %ebx,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	addl 4(%esi),%eax
	movl -140(%ebp),%esi
	movl -28(%ebp),%ebx
	imull $549938159,%eax,%eax
	movl %eax,-60(%ebp)
	movl %esi,2084(%ebx)
	movl %eax,2080(%ebx)
	movl 2080(%ebx),%eax
	movl 2084(%ebx),%edx
	movl %eax,-8(%ebp)
	movl %edx,-4(%ebp)
	movl 2056(%ebx),%edx
	leal 960(%edx),%eax
	movl %eax,2056(%ebx)
	cmpl -32(%ebp),%eax
	jb .L178
	addl $-1096,%edx
	movl %edx,2056(%ebx)
.L178:
	movl -28(%ebp),%eax
	movl -8(%ebp),%ebx
	movl -4(%ebp),%ecx
	movl 2056(%eax),%esi
	movl %ebx,-72(%ebp)
	movl %ecx,-68(%ebp)
	movl (%esi),%edx
	movl %edx,-80(%ebp)
	movl 4(%esi),%eax
	movl %eax,-76(%ebp)
	movl %ebx,%edx
	roll $8,%edx
	andl $16711935,%edx
	movl %ebx,%eax
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%edx
	orl $1,%edx
	imull %ecx,%edx
	roll $5,%edx
	movl %edx,-72(%ebp)
	movl %ecx,%edx
	roll $8,%edx
	andl $16711935,%edx
	movl %ecx,%eax
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%edx
	orl $1,%edx
	imull %ebx,%edx
	roll $5,%edx
	movl %edx,-68(%ebp)
	movl -80(%ebp),%edx
	movl -68(%ebp),%ebx
	xorl -72(%ebp),%edx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl $557662966,%ecx
	imull $776563579,%ecx,%ecx
	movl %ecx,4(%esi)
	movl -76(%ebp),%eax
	movl -72(%ebp),%edi
	movl %ecx,-80(%ebp)
	xorl -68(%ebp),%eax
	andl $31,%edi
	movl %eax,%edx
	movl %edi,%ecx
	sall %cl,%edx
	movl $32,%ebx
	subl %edi,%ebx
	movl %ebx,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	addl $1699928825,%eax
	imull $390701653,%eax,%eax
	movl %eax,-76(%ebp)
	movl %eax,(%esi)
	movl -28(%ebp),%ebx
	movl -20(%ebp),%esi
	movl 20(%ebp),%ecx
	movl 2080(%ebx),%eax
	movl 2084(%ebx),%edx
	xorl 2072(%ebx),%eax
	xorl 2076(%ebx),%edx
	movl %edx,%ebx
	xorl %eax,%ebx
	movl %ebx,(%ecx,%esi,4)
	incl %esi
	movl %esi,-20(%ebp)
	movl 24(%ebp),%esi
	movl (%esi),%eax
.L199:
	shrl $2,%eax
	cmpl %eax,-20(%ebp)
	jb .L172
	movl 24(%ebp),%eax
	movl $0,-24(%ebp)
	testb $3,(%eax)
	je .L185
	.p2align 4,,7
.L187:
	movl rng,%edx
	movl %edx,-84(%ebp)
	movl -84(%ebp),%ecx
	movl 2068(%edx),%edx
	leal 8(%edx),%ebx
	movl %ebx,2068(%ecx)
	addl $560,2060(%ecx)
	addl $1112,2064(%ecx)
	addl $2056,%ecx
	movl %ecx,-88(%ebp)
	movl %ebx,%eax
	cmpl %ecx,%eax
	jb .L188
	movl -84(%ebp),%esi
	addl $-2048,%edx
	movl %edx,2068(%esi)
	pushl $1
	pushl %esi
	call reseed
	addl $8,%esp
.L188:
	movl -84(%ebp),%edx
	movl 2060(%edx),%eax
	cmpl -88(%ebp),%eax
	jb .L189
	addl $-2056,%eax
	movl %eax,2060(%edx)
.L189:
	movl -84(%ebp),%ecx
	movl 2064(%ecx),%eax
	cmpl -88(%ebp),%eax
	jb .L190
	addl $-2056,%eax
	movl %eax,2064(%ecx)
.L190:
	movl -84(%ebp),%ebx
	movl 2068(%ebx),%eax
	movl 2060(%ebx),%esi
	movl (%eax),%ebx
	movl %ebx,-96(%ebp)
	movl 4(%eax),%ecx
	movl -84(%ebp),%eax
	movl -84(%ebp),%edx
	movl %ecx,-92(%ebp)
	movl 2072(%eax),%eax
	movl %eax,-104(%ebp)
	movl 2076(%edx),%edx
	movl %edx,-100(%ebp)
	movl %ebx,%edx
	roll $8,%edx
	andl $16711935,%edx
	movl %ebx,%eax
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%edx
	orl $1,%edx
	imull %ecx,%edx
	roll $5,%edx
	movl %edx,-96(%ebp)
	movl %ecx,%edx
	roll $8,%edx
	andl $16711935,%edx
	movl %ecx,%eax
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%edx
	orl $1,%edx
	imull %ebx,%edx
	roll $5,%edx
	movl %edx,-92(%ebp)
	movl -104(%ebp),%edx
	movl -92(%ebp),%ebx
	xorl -96(%ebp),%edx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl -100(%ebp),%edx
	movl -96(%ebp),%edi
	movl %eax,%ebx
	roll $8,%ebx
	andl $16711935,%ebx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ebx
	addl (%esi),%ebx
	imull $1235467377,%ebx,%ebx
	movl %ebx,-104(%ebp)
	xorl -92(%ebp),%edx
	andl $31,%edi
	movl %edx,%eax
	movl %edi,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %edi,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl 4(%esi),%ecx
	movl -84(%ebp),%esi
	imull $1625458173,%ecx,%ecx
	movl %ecx,-100(%ebp)
	movl %ebx,2076(%esi)
	movl %ecx,2072(%esi)
	movl -84(%ebp),%eax
	movl 2064(%esi),%esi
	movl %ecx,-112(%ebp)
	movl %ebx,-108(%ebp)
	movl 2080(%eax),%eax
	movl %eax,-120(%ebp)
	movl -84(%ebp),%edx
	movl %ecx,%eax
	roll $24,%eax
	andl $-16711936,%eax
	movl 2084(%edx),%edx
	movl %edx,-116(%ebp)
	movl %ecx,%edx
	roll $8,%edx
	andl $16711935,%edx
	orl %eax,%edx
	orl $1,%edx
	imull %ebx,%edx
	roll $5,%edx
	movl %edx,-112(%ebp)
	movl %ebx,%edx
	roll $8,%edx
	andl $16711935,%edx
	movl %ebx,%eax
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%edx
	orl $1,%edx
	imull %ecx,%edx
	roll $5,%edx
	movl %edx,-108(%ebp)
	movl -120(%ebp),%edx
	movl -108(%ebp),%ebx
	xorl -112(%ebp),%edx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	movl -116(%ebp),%eax
	movl -112(%ebp),%edi
	addl (%esi),%ecx
	imull $-1016683011,%ecx,%ecx
	movl %ecx,-140(%ebp)
	movl %ecx,-120(%ebp)
	xorl -108(%ebp),%eax
	andl $31,%edi
	movl %eax,%edx
	movl %edi,%ecx
	sall %cl,%edx
	movl $32,%ebx
	subl %edi,%ebx
	movl %ebx,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	addl 4(%esi),%eax
	movl -140(%ebp),%esi
	movl -84(%ebp),%ebx
	imull $549938159,%eax,%eax
	movl %eax,-116(%ebp)
	movl %esi,2084(%ebx)
	movl %eax,2080(%ebx)
	movl 2080(%ebx),%eax
	movl 2084(%ebx),%edx
	movl %eax,-16(%ebp)
	movl %edx,-12(%ebp)
	movl 2056(%ebx),%edx
	leal 960(%edx),%eax
	movl %eax,2056(%ebx)
	cmpl -88(%ebp),%eax
	jb .L193
	addl $-1096,%edx
	movl %edx,2056(%ebx)
.L193:
	movl -84(%ebp),%eax
	movl -16(%ebp),%ebx
	movl -12(%ebp),%ecx
	movl 2056(%eax),%esi
	movl %ebx,-128(%ebp)
	movl %ecx,-124(%ebp)
	movl (%esi),%edx
	movl %edx,-136(%ebp)
	movl 4(%esi),%eax
	movl %eax,-132(%ebp)
	movl %ebx,%edx
	roll $8,%edx
	andl $16711935,%edx
	movl %ebx,%eax
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%edx
	orl $1,%edx
	imull %ecx,%edx
	roll $5,%edx
	movl %edx,-128(%ebp)
	movl %ecx,%edx
	roll $8,%edx
	andl $16711935,%edx
	movl %ecx,%eax
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%edx
	orl $1,%edx
	imull %ebx,%edx
	roll $5,%edx
	movl %edx,-124(%ebp)
	movl -136(%ebp),%edx
	movl -124(%ebp),%ebx
	xorl -128(%ebp),%edx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl $557662966,%ecx
	imull $776563579,%ecx,%ecx
	movl %ecx,4(%esi)
	movl -132(%ebp),%eax
	movl -128(%ebp),%edi
	movl %ecx,-136(%ebp)
	xorl -124(%ebp),%eax
	andl $31,%edi
	movl %eax,%edx
	movl %edi,%ecx
	sall %cl,%edx
	movl $32,%ebx
	subl %edi,%ebx
	movl %ebx,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	addl $1699928825,%eax
	imull $390701653,%eax,%eax
	movl %eax,-132(%ebp)
	movl %eax,(%esi)
	movl -84(%ebp),%ebx
	movl -20(%ebp),%esi
	movl 2080(%ebx),%eax
	movl 2084(%ebx),%edx
	xorl 2072(%ebx),%eax
	xorl 2076(%ebx),%edx
	movl %eax,%ecx
	shrl $8,%ecx
	xorb %al,%cl
	movl %eax,%ebx
	shrl $16,%ebx
	xorb %bl,%cl
	movl %eax,%ebx
	shrl $24,%ebx
	xorb %bl,%cl
	xorb %dl,%cl
	movl %edx,%ebx
	shrl $8,%ebx
	xorb %bl,%cl
	movl %edx,%ebx
	shrl $16,%ebx
	xorb %bl,%cl
	movl -24(%ebp),%ebx
	leal (%ebx,%esi,4),%eax
	movl 20(%ebp),%esi
	shrl $24,%edx
	xorb %dl,%cl
	movb %cl,(%eax,%esi)
	movl 24(%ebp),%edx
	incl %ebx
	movl %ebx,-24(%ebp)
	movl (%edx),%eax
	andl $3,%eax
	cmpl %eax,%ebx
	jb .L187
.L185:
	movl rand_mutex,%eax
	pushl %eax
	call release_sem
	xorl %eax,%eax
	leal -152(%ebp),%esp
	popl %ebx
	popl %esi
	popl %edi
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe3:
	.size	 my_device_read,.Lfe3-my_device_read
.section	.rodata
.LC9:
	.string	"random: close()\n"
.LC10:
	.string	"random: free()\n"
.data
	.align 4
	.type	 my_device_name,@object
my_device_name:
	.long .LC11
	.long .LC12
	.long 0
.section	.rodata
.LC12:
	.string	"urandom"
.LC11:
	.string	"random"
	.size	 my_device_name,12
.data
	.align 32
	.type	 my_device_hooks,@object
	.size	 my_device_hooks,40
my_device_hooks:
	.long my_device_open
	.long my_device_close
	.long my_device_free
	.long my_device_control
	.long my_device_read
	.long my_device_write
	.zero	16
.section	.rodata
.LC13:
	.string	"random: publish_devices()\n"
.LC14:
	.string	"random: find_device(\"%s\")\n"
.text
	.p2align 2
.globl attach
	.type	 attach,@function
attach:
	pushl %ebp
	movl %esp,%ebp
	subl $20,%esp
	pushl %edi
	pushl %esi
	pushl %ebx
	movl 12(%ebp),%eax
	movl 8(%ebp),%edx
	movl (%eax),%esi
	movl %esi,-8(%ebp)
	movl 4(%eax),%ecx
	movl 8(%ebp),%eax
	movl $32,%ebx
	movl %ecx,-4(%ebp)
	movl (%eax),%eax
	movl %eax,-16(%ebp)
	movl 4(%edx),%edx
	movl %edx,-12(%ebp)
	movl %esi,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %esi,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-8(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -16(%ebp),%edx
	orb $1,%al
	imull %esi,%eax
	roll $5,%eax
	movl %eax,-4(%ebp)
	xorl -8(%ebp),%edx
	movl %eax,%esi
	andl $31,%esi
	movl %edx,%eax
	movl %esi,%ecx
	sall %cl,%eax
	movl %ebx,%ecx
	subl %esi,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,-20(%ebp)
	roll $8,-20(%ebp)
	andl $16711935,-20(%ebp)
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,-20(%ebp)
	movl 16(%ebp),%eax
	addl %eax,-20(%ebp)
	movl -20(%ebp),%edx
	movl -12(%ebp),%eax
	movl -8(%ebp),%edi
	imull 24(%ebp),%edx
	movl %edx,-20(%ebp)
	movl %edx,-16(%ebp)
	xorl -4(%ebp),%eax
	andl $31,%edi
	movl %eax,%edx
	movl %edi,%ecx
	sall %cl,%edx
	movl %ebx,%esi
	subl %edi,%esi
	movl %esi,%ecx
	shrl %cl,%eax
	movl -20(%ebp),%ecx
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl 8(%ebp),%edx
	addl 20(%ebp),%eax
	imull 28(%ebp),%eax
	movl %ecx,4(%edx)
	movl %eax,(%edx)
	popl %ebx
	popl %esi
	popl %edi
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe4:
	.size	 attach,.Lfe4-attach
	.p2align 2
.globl detach
	.type	 detach,@function
detach:
	pushl %ebp
	movl %esp,%ebp
	subl $16,%esp
	pushl %edi
	pushl %esi
	pushl %ebx
	movl 12(%ebp),%eax
	movl (%eax),%esi
	movl %esi,-8(%ebp)
	movl 4(%eax),%edi
	movl 8(%ebp),%eax
	movl 8(%ebp),%edx
	movl %edi,-4(%ebp)
	movl 4(%eax),%eax
	movl %eax,-16(%ebp)
	movl (%edx),%edx
	movl %edx,-12(%ebp)
	movl %esi,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %esi,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %edi,%eax
	roll $5,%eax
	movl %eax,-8(%ebp)
	movl %edi,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %edi,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %esi,%eax
	roll $5,%eax
	movl %eax,-4(%ebp)
	movl -16(%ebp),%eax
	imull 24(%ebp),%eax
	subl 16(%ebp),%eax
	movl %eax,%edx
	roll $8,%edx
	andl $16711935,%edx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%edx
	movl -4(%ebp),%eax
	andl $31,%eax
	movl %edx,%edi
	movl %eax,%ecx
	shrl %cl,%edi
	movl $32,%esi
	movl %esi,%ecx
	subl %eax,%ecx
	movl -12(%ebp),%eax
	movl -8(%ebp),%ebx
	sall %cl,%edx
	orl %edx,%edi
	xorl -8(%ebp),%edi
	movl %edi,-16(%ebp)
	imull 28(%ebp),%eax
	subl 20(%ebp),%eax
	movl %eax,%edx
	roll $8,%edx
	andl $16711935,%edx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%edx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	shrl %cl,%eax
	subl %ebx,%esi
	movl %esi,%ecx
	sall %cl,%edx
	orl %edx,%eax
	movl 8(%ebp),%edx
	movl %edi,(%edx)
	xorl -4(%ebp),%eax
	movl %eax,4(%edx)
	popl %ebx
	popl %esi
	popl %edi
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe5:
	.size	 detach,.Lfe5-detach
	.p2align 2
.globl chseed
	.type	 chseed,@function
chseed:
	pushl %ebp
	movl %esp,%ebp
	subl $16,%esp
	pushl %edi
	pushl %esi
	pushl %ebx
	movl 8(%ebp),%ecx
	leal 2056(%ecx),%eax
	movl 2056(%ecx),%ebx
	leal 960(%ebx),%edx
	movl %edx,2056(%ecx)
	cmpl %eax,%edx
	jb .L25
	addl $-1096,%ebx
	movl %ebx,2056(%ecx)
.L25:
	movl 2056(%ecx),%ebx
	movl 12(%ebp),%esi
	movl 16(%ebp),%ecx
	movl %esi,-8(%ebp)
	movl %ecx,-4(%ebp)
	movl (%ebx),%eax
	movl %eax,-16(%ebp)
	movl 4(%ebx),%edx
	movl %edx,-12(%ebp)
	movl %esi,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %esi,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-8(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -16(%ebp),%edx
	orb $1,%al
	imull %esi,%eax
	roll $5,%eax
	movl %eax,-4(%ebp)
	xorl -8(%ebp),%edx
	movl %eax,%esi
	andl $31,%esi
	movl %edx,%eax
	movl %esi,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %esi,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl $557662966,%ecx
	imull $776563579,%ecx,%ecx
	movl %ecx,4(%ebx)
	movl -12(%ebp),%eax
	movl -8(%ebp),%edi
	movl %ecx,-16(%ebp)
	xorl -4(%ebp),%eax
	andl $31,%edi
	movl %eax,%edx
	movl %edi,%ecx
	sall %cl,%edx
	movl $32,%esi
	subl %edi,%esi
	movl %esi,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	imull $390701653,%eax,%eax
	addl $-485144915,%eax
	movl %eax,(%ebx)
	popl %ebx
	popl %esi
	popl %edi
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe6:
	.size	 chseed,.Lfe6-chseed
	.p2align 2
.globl chrand
	.type	 chrand,@function
chrand:
	pushl %ebp
	movl %esp,%ebp
	subl $64,%esp
	pushl %edi
	pushl %esi
	pushl %ebx
	movl 8(%ebp),%eax
	movl 2068(%eax),%edx
	leal 8(%edx),%ecx
	movl %ecx,2068(%eax)
	addl $560,2060(%eax)
	addl $1112,2064(%eax)
	addl $2056,%eax
	movl %eax,-12(%ebp)
	movl %ecx,%eax
	cmpl -12(%ebp),%eax
	jb .L46
	movl 8(%ebp),%eax
	addl $-2048,%edx
	movl %edx,2068(%eax)
	pushl $1
	pushl %eax
	call reseed
.L46:
	movl 8(%ebp),%edx
	movl 2060(%edx),%eax
	cmpl -12(%ebp),%eax
	jb .L47
	addl $-2056,%eax
	movl %eax,2060(%edx)
.L47:
	movl 8(%ebp),%ecx
	movl 2064(%ecx),%eax
	cmpl -12(%ebp),%eax
	jb .L48
	addl $-2056,%eax
	movl %eax,2064(%ecx)
.L48:
	movl 8(%ebp),%eax
	movl 2060(%eax),%esi
	movl 2068(%eax),%eax
	movl 8(%ebp),%edx
	movl (%eax),%ebx
	movl %ebx,-20(%ebp)
	movl 4(%eax),%ecx
	movl %ecx,-16(%ebp)
	movl 2072(%edx),%edx
	movl 8(%ebp),%eax
	movl %edx,-28(%ebp)
	movl %ebx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	movl 2076(%eax),%eax
	movl %eax,-24(%ebp)
	movl %ebx,%eax
	roll $8,%eax
	andl $16711935,%eax
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-20(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -28(%ebp),%edx
	orb $1,%al
	imull %ebx,%eax
	roll $5,%eax
	movl %eax,-16(%ebp)
	xorl -20(%ebp),%edx
	movl %eax,%ebx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl -24(%ebp),%edx
	movl -20(%ebp),%edi
	movl %eax,%ebx
	roll $8,%ebx
	andl $16711935,%ebx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ebx
	addl (%esi),%ebx
	imull $1235467377,%ebx,%ebx
	movl %ebx,-28(%ebp)
	xorl -16(%ebp),%edx
	andl $31,%edi
	movl %edx,%eax
	movl %edi,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %edi,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	movl 8(%ebp),%eax
	addl 4(%esi),%ecx
	imull $1625458173,%ecx,%ecx
	movl %ebx,2076(%eax)
	movl %ecx,2072(%eax)
	movl 2064(%eax),%esi
	movl %ecx,-36(%ebp)
	movl %ebx,-32(%ebp)
	movl 2080(%eax),%edx
	movl %edx,-44(%ebp)
	movl 2084(%eax),%eax
	movl %eax,-40(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ebx,%eax
	roll $5,%eax
	movl %eax,-36(%ebp)
	movl %ebx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ebx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -44(%ebp),%edx
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-32(%ebp)
	xorl -36(%ebp),%edx
	movl %eax,%ebx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	movl -40(%ebp),%eax
	movl -36(%ebp),%edi
	andl $31,%edi
	movl $32,%ebx
	subl %edi,%ebx
	addl (%esi),%ecx
	imull $-1016683011,%ecx,%ecx
	movl %ecx,-64(%ebp)
	movl %ecx,-44(%ebp)
	xorl -32(%ebp),%eax
	movl %eax,%edx
	movl %edi,%ecx
	sall %cl,%edx
	movl %ebx,%ecx
	shrl %cl,%eax
	movl -64(%ebp),%ecx
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl 8(%ebp),%edx
	addl 4(%esi),%eax
	imull $549938159,%eax,%eax
	movl %ecx,2084(%edx)
	movl %eax,2080(%edx)
	movl 2080(%edx),%eax
	movl 2084(%edx),%edx
	movl %eax,-8(%ebp)
	movl %edx,-4(%ebp)
	movl 8(%ebp),%eax
	movl 8(%ebp),%ecx
	movl 2056(%eax),%edx
	leal 960(%edx),%eax
	movl %eax,2056(%ecx)
	cmpl -12(%ebp),%eax
	jb .L51
	addl $-1096,%edx
	movl %edx,2056(%ecx)
.L51:
	movl 8(%ebp),%eax
	movl -8(%ebp),%esi
	movl -4(%ebp),%ecx
	leal -76(%ebp),%esp
	movl 2056(%eax),%ebx
	movl %esi,-52(%ebp)
	movl %ecx,-48(%ebp)
	movl (%ebx),%edx
	movl %edx,-60(%ebp)
	movl 4(%ebx),%eax
	movl %eax,-56(%ebp)
	movl %esi,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %esi,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-52(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -60(%ebp),%edx
	orb $1,%al
	imull %esi,%eax
	roll $5,%eax
	movl %eax,-48(%ebp)
	xorl -52(%ebp),%edx
	movl %eax,%esi
	andl $31,%esi
	movl %edx,%eax
	movl %esi,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %esi,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl $557662966,%ecx
	imull $776563579,%ecx,%ecx
	movl %ecx,4(%ebx)
	movl -56(%ebp),%eax
	movl -52(%ebp),%edi
	movl %ecx,-60(%ebp)
	xorl -48(%ebp),%eax
	andl $31,%edi
	movl %eax,%edx
	movl %edi,%ecx
	sall %cl,%edx
	movl $32,%esi
	subl %edi,%esi
	movl %esi,%ecx
	shrl %cl,%eax
	movl 8(%ebp),%ecx
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	imull $390701653,%eax,%eax
	addl $-485144915,%eax
	movl %eax,(%ebx)
	popl %ebx
	popl %esi
	popl %edi
	movl %ebp,%esp
	popl %ebp
	movl 2080(%ecx),%eax
	movl 2084(%ecx),%edx
	xorl 2072(%ecx),%eax
	xorl 2076(%ecx),%edx
	ret
.Lfe7:
	.size	 chrand,.Lfe7-chrand
	.p2align 2
.globl chrand32
	.type	 chrand32,@function
chrand32:
	pushl %ebp
	movl %esp,%ebp
	subl $64,%esp
	pushl %edi
	pushl %esi
	pushl %ebx
	movl 8(%ebp),%eax
	movl 2068(%eax),%edx
	leal 8(%edx),%ecx
	movl %ecx,2068(%eax)
	addl $560,2060(%eax)
	addl $1112,2064(%eax)
	addl $2056,%eax
	movl %eax,-12(%ebp)
	movl %ecx,%eax
	cmpl -12(%ebp),%eax
	jb .L55
	movl 8(%ebp),%eax
	addl $-2048,%edx
	movl %edx,2068(%eax)
	pushl $1
	pushl %eax
	call reseed
.L55:
	movl 8(%ebp),%edx
	movl 2060(%edx),%eax
	cmpl -12(%ebp),%eax
	jb .L56
	addl $-2056,%eax
	movl %eax,2060(%edx)
.L56:
	movl 8(%ebp),%ecx
	movl 2064(%ecx),%eax
	cmpl -12(%ebp),%eax
	jb .L57
	addl $-2056,%eax
	movl %eax,2064(%ecx)
.L57:
	movl 8(%ebp),%eax
	movl 2060(%eax),%esi
	movl 2068(%eax),%eax
	movl 8(%ebp),%edx
	movl (%eax),%ebx
	movl %ebx,-20(%ebp)
	movl 4(%eax),%ecx
	movl %ecx,-16(%ebp)
	movl 2072(%edx),%edx
	movl 8(%ebp),%eax
	movl %edx,-28(%ebp)
	movl %ebx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	movl 2076(%eax),%eax
	movl %eax,-24(%ebp)
	movl %ebx,%eax
	roll $8,%eax
	andl $16711935,%eax
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-20(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -28(%ebp),%edx
	orb $1,%al
	imull %ebx,%eax
	roll $5,%eax
	movl %eax,-16(%ebp)
	xorl -20(%ebp),%edx
	movl %eax,%ebx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl -24(%ebp),%edx
	movl -20(%ebp),%edi
	movl %eax,%ebx
	roll $8,%ebx
	andl $16711935,%ebx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ebx
	addl (%esi),%ebx
	imull $1235467377,%ebx,%ebx
	movl %ebx,-28(%ebp)
	xorl -16(%ebp),%edx
	andl $31,%edi
	movl %edx,%eax
	movl %edi,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %edi,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	movl 8(%ebp),%eax
	addl 4(%esi),%ecx
	imull $1625458173,%ecx,%ecx
	movl %ebx,2076(%eax)
	movl %ecx,2072(%eax)
	movl 2064(%eax),%esi
	movl %ecx,-36(%ebp)
	movl %ebx,-32(%ebp)
	movl 2080(%eax),%edx
	movl %edx,-44(%ebp)
	movl 2084(%eax),%eax
	movl %eax,-40(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ebx,%eax
	roll $5,%eax
	movl %eax,-36(%ebp)
	movl %ebx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ebx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -44(%ebp),%edx
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-32(%ebp)
	xorl -36(%ebp),%edx
	movl %eax,%ebx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	movl -40(%ebp),%eax
	movl -36(%ebp),%edi
	andl $31,%edi
	movl $32,%ebx
	subl %edi,%ebx
	addl (%esi),%ecx
	imull $-1016683011,%ecx,%ecx
	movl %ecx,-64(%ebp)
	movl %ecx,-44(%ebp)
	xorl -32(%ebp),%eax
	movl %eax,%edx
	movl %edi,%ecx
	sall %cl,%edx
	movl %ebx,%ecx
	shrl %cl,%eax
	movl -64(%ebp),%ecx
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl 8(%ebp),%edx
	addl 4(%esi),%eax
	imull $549938159,%eax,%eax
	movl %ecx,2084(%edx)
	movl %eax,2080(%edx)
	movl 2080(%edx),%eax
	movl 2084(%edx),%edx
	movl %eax,-8(%ebp)
	movl %edx,-4(%ebp)
	movl 8(%ebp),%eax
	movl 8(%ebp),%ecx
	movl 2056(%eax),%edx
	leal 960(%edx),%eax
	movl %eax,2056(%ecx)
	cmpl -12(%ebp),%eax
	jb .L60
	addl $-1096,%edx
	movl %edx,2056(%ecx)
.L60:
	movl 8(%ebp),%eax
	movl -8(%ebp),%esi
	movl -4(%ebp),%ecx
	leal -76(%ebp),%esp
	movl 2056(%eax),%ebx
	movl %esi,-52(%ebp)
	movl %ecx,-48(%ebp)
	movl (%ebx),%edx
	movl %edx,-60(%ebp)
	movl 4(%ebx),%eax
	movl %eax,-56(%ebp)
	movl %esi,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %esi,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-52(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -60(%ebp),%edx
	orb $1,%al
	imull %esi,%eax
	roll $5,%eax
	movl %eax,-48(%ebp)
	xorl -52(%ebp),%edx
	movl %eax,%esi
	andl $31,%esi
	movl %edx,%eax
	movl %esi,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %esi,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl $557662966,%ecx
	imull $776563579,%ecx,%ecx
	movl %ecx,4(%ebx)
	movl -56(%ebp),%eax
	movl -52(%ebp),%edi
	movl %ecx,-60(%ebp)
	xorl -48(%ebp),%eax
	andl $31,%edi
	movl %eax,%edx
	movl %edi,%ecx
	sall %cl,%edx
	movl $32,%esi
	subl %edi,%esi
	movl %esi,%ecx
	shrl %cl,%eax
	movl 8(%ebp),%ecx
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	imull $390701653,%eax,%eax
	addl $-485144915,%eax
	movl %eax,(%ebx)
	popl %ebx
	popl %esi
	popl %edi
	movl %ebp,%esp
	popl %ebp
	movl 2080(%ecx),%eax
	movl 2084(%ecx),%edx
	xorl 2072(%ecx),%eax
	xorl 2076(%ecx),%edx
	xorl %edx,%eax
	ret
.Lfe8:
	.size	 chrand32,.Lfe8-chrand32
	.p2align 2
.globl chrand8
	.type	 chrand8,@function
chrand8:
	pushl %ebp
	movl %esp,%ebp
	subl $64,%esp
	pushl %edi
	pushl %esi
	pushl %ebx
	movl 8(%ebp),%eax
	movl 2068(%eax),%edx
	leal 8(%edx),%ecx
	movl %ecx,2068(%eax)
	addl $560,2060(%eax)
	addl $1112,2064(%eax)
	addl $2056,%eax
	movl %eax,-12(%ebp)
	movl %ecx,%eax
	cmpl -12(%ebp),%eax
	jb .L65
	movl 8(%ebp),%eax
	addl $-2048,%edx
	movl %edx,2068(%eax)
	pushl $1
	pushl %eax
	call reseed
.L65:
	movl 8(%ebp),%edx
	movl 2060(%edx),%eax
	cmpl -12(%ebp),%eax
	jb .L66
	addl $-2056,%eax
	movl %eax,2060(%edx)
.L66:
	movl 8(%ebp),%ecx
	movl 2064(%ecx),%eax
	cmpl -12(%ebp),%eax
	jb .L67
	addl $-2056,%eax
	movl %eax,2064(%ecx)
.L67:
	movl 8(%ebp),%eax
	movl 2060(%eax),%esi
	movl 2068(%eax),%eax
	movl 8(%ebp),%edx
	movl (%eax),%ebx
	movl %ebx,-20(%ebp)
	movl 4(%eax),%ecx
	movl %ecx,-16(%ebp)
	movl 2072(%edx),%edx
	movl 8(%ebp),%eax
	movl %edx,-28(%ebp)
	movl %ebx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	movl 2076(%eax),%eax
	movl %eax,-24(%ebp)
	movl %ebx,%eax
	roll $8,%eax
	andl $16711935,%eax
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-20(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -28(%ebp),%edx
	orb $1,%al
	imull %ebx,%eax
	roll $5,%eax
	movl %eax,-16(%ebp)
	xorl -20(%ebp),%edx
	movl %eax,%ebx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl -24(%ebp),%edx
	movl -20(%ebp),%edi
	movl %eax,%ebx
	roll $8,%ebx
	andl $16711935,%ebx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ebx
	addl (%esi),%ebx
	imull $1235467377,%ebx,%ebx
	movl %ebx,-28(%ebp)
	xorl -16(%ebp),%edx
	andl $31,%edi
	movl %edx,%eax
	movl %edi,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %edi,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	movl 8(%ebp),%eax
	addl 4(%esi),%ecx
	imull $1625458173,%ecx,%ecx
	movl %ebx,2076(%eax)
	movl %ecx,2072(%eax)
	movl 2064(%eax),%esi
	movl %ecx,-36(%ebp)
	movl %ebx,-32(%ebp)
	movl 2080(%eax),%edx
	movl %edx,-44(%ebp)
	movl 2084(%eax),%eax
	movl %eax,-40(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ebx,%eax
	roll $5,%eax
	movl %eax,-36(%ebp)
	movl %ebx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ebx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -44(%ebp),%edx
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-32(%ebp)
	xorl -36(%ebp),%edx
	movl %eax,%ebx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	movl -40(%ebp),%eax
	movl -36(%ebp),%edi
	andl $31,%edi
	movl $32,%ebx
	subl %edi,%ebx
	addl (%esi),%ecx
	imull $-1016683011,%ecx,%ecx
	movl %ecx,-64(%ebp)
	movl %ecx,-44(%ebp)
	xorl -32(%ebp),%eax
	movl %eax,%edx
	movl %edi,%ecx
	sall %cl,%edx
	movl %ebx,%ecx
	shrl %cl,%eax
	movl -64(%ebp),%ecx
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl 8(%ebp),%edx
	addl 4(%esi),%eax
	imull $549938159,%eax,%eax
	movl %ecx,2084(%edx)
	movl %eax,2080(%edx)
	movl 2080(%edx),%eax
	movl 2084(%edx),%edx
	movl %eax,-8(%ebp)
	movl %edx,-4(%ebp)
	movl 8(%ebp),%eax
	movl 8(%ebp),%ecx
	movl 2056(%eax),%edx
	leal 960(%edx),%eax
	movl %eax,2056(%ecx)
	cmpl -12(%ebp),%eax
	jb .L70
	addl $-1096,%edx
	movl %edx,2056(%ecx)
.L70:
	movl 8(%ebp),%eax
	movl -8(%ebp),%esi
	movl -4(%ebp),%ecx
	movl 2056(%eax),%ebx
	movl %esi,-52(%ebp)
	movl %ecx,-48(%ebp)
	movl (%ebx),%edx
	movl %edx,-60(%ebp)
	movl 4(%ebx),%eax
	movl %eax,-56(%ebp)
	movl %esi,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %esi,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-52(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -60(%ebp),%edx
	orb $1,%al
	imull %esi,%eax
	roll $5,%eax
	movl %eax,-48(%ebp)
	xorl -52(%ebp),%edx
	movl %eax,%esi
	andl $31,%esi
	movl %edx,%eax
	movl %esi,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %esi,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl $557662966,%ecx
	imull $776563579,%ecx,%ecx
	movl %ecx,4(%ebx)
	movl -56(%ebp),%eax
	movl -52(%ebp),%edi
	movl %ecx,-60(%ebp)
	xorl -48(%ebp),%eax
	andl $31,%edi
	movl %eax,%edx
	movl %edi,%ecx
	sall %cl,%edx
	movl $32,%esi
	subl %edi,%esi
	movl %esi,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	imull $390701653,%eax,%eax
	addl $-485144915,%eax
	movl %eax,(%ebx)
	movl 8(%ebp),%eax
	leal -76(%ebp),%esp
	movl 2080(%eax),%edx
	movl 2084(%eax),%ecx
	xorl 2072(%eax),%edx
	xorl 2076(%eax),%ecx
	movl %edx,%eax
	shrl $8,%eax
	xorb %dl,%al
	movl %edx,%ebx
	shrl $16,%ebx
	xorb %bl,%al
	movl %edx,%ebx
	shrl $24,%ebx
	xorb %bl,%al
	xorb %cl,%al
	movl %ecx,%ebx
	shrl $8,%ebx
	xorb %bl,%al
	movl %ecx,%ebx
	shrl $16,%ebx
	xorb %bl,%al
	movl %ecx,%edx
	shrl $24,%edx
	xorb %dl,%al
	andl $255,%eax
	popl %ebx
	popl %esi
	popl %edi
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe9:
	.size	 chrand8,.Lfe9-chrand8
.section	.rodata
	.align 4
.LC15:
	.long 1926667791
	.long 441137244
	.align 4
.LC16:
	.long 907690715
	.long -1669308441
.text
	.p2align 2
.globl new_chrand
	.type	 new_chrand,@function
new_chrand:
	pushl %ebp
	movl %esp,%ebp
	subl $284,%esp
	pushl %edi
	pushl %esi
	pushl %ebx
	movl 8(%ebp),%ebx
	pushl $2088
	call malloc
	movl %eax,%edi
	movl .LC15,%eax
	movl .LC15+4,%edx
	movl %eax,2072(%edi)
	movl %edx,2076(%edi)
	movl .LC16,%eax
	movl .LC16+4,%edx
	movl %edi,2056(%edi)
	movl %edi,2068(%edi)
	movl %edi,2060(%edi)
	movl %edi,2064(%edi)
	movl %eax,2080(%edi)
	movl %edx,2084(%edi)
	pushl %ebx
	pushl %edi
	call reseed
	movl 2068(%edi),%edx
	addl $12,%esp
	leal 8(%edx),%eax
	movl %eax,2068(%edi)
	addl $560,2060(%edi)
	addl $1112,2064(%edi)
	leal 2056(%edi),%ecx
	movl %ecx,-36(%ebp)
	cmpl %ecx,%eax
	jb .L75
	addl $-2048,%edx
	movl %edx,2068(%edi)
	pushl $1
	pushl %edi
	call reseed
	addl $8,%esp
.L75:
	movl 2060(%edi),%eax
	cmpl -36(%ebp),%eax
	jb .L76
	addl $-2056,%eax
	movl %eax,2060(%edi)
.L76:
	movl 2064(%edi),%eax
	cmpl -36(%ebp),%eax
	jb .L77
	addl $-2056,%eax
	movl %eax,2064(%edi)
.L77:
	movl 2068(%edi),%eax
	movl 2060(%edi),%esi
	movl (%eax),%ebx
	movl %ebx,-44(%ebp)
	movl 4(%eax),%ecx
	movl 2072(%edi),%eax
	movl %eax,-52(%ebp)
	movl 2076(%edi),%edx
	movl %edx,-48(%ebp)
	movl %ebx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ebx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-44(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -52(%ebp),%edx
	orb $1,%al
	imull %ebx,%eax
	roll $5,%eax
	movl %eax,-40(%ebp)
	xorl -44(%ebp),%edx
	movl %eax,%ebx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl -48(%ebp),%edx
	movl %eax,%ebx
	roll $8,%ebx
	andl $16711935,%ebx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ebx
	movl -44(%ebp),%eax
	addl (%esi),%ebx
	andl $31,%eax
	movl %eax,-56(%ebp)
	movl -56(%ebp),%ecx
	imull $1235467377,%ebx,%ebx
	movl %ebx,-52(%ebp)
	xorl -40(%ebp),%edx
	movl %edx,%eax
	sall %cl,%eax
	movl $32,%ecx
	subl -56(%ebp),%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl 4(%esi),%ecx
	movl 2064(%edi),%esi
	movl 2080(%edi),%eax
	imull $1625458173,%ecx,%ecx
	movl %ebx,2076(%edi)
	movl %ecx,2072(%edi)
	movl %eax,-72(%ebp)
	movl 2084(%edi),%edx
	movl %edx,-68(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ebx,%eax
	roll $5,%eax
	movl %eax,-64(%ebp)
	movl %ebx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ebx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -72(%ebp),%edx
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-60(%ebp)
	xorl -64(%ebp),%edx
	movl %eax,%ebx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	movl $32,%ebx
	addl (%esi),%ecx
	imull $-1016683011,%ecx,%ecx
	movl %ecx,-284(%ebp)
	movl -68(%ebp),%eax
	movl -64(%ebp),%edx
	movl %ecx,-72(%ebp)
	andl $31,%edx
	movl %edx,-76(%ebp)
	movl -76(%ebp),%ecx
	xorl -60(%ebp),%eax
	movl %eax,%edx
	sall %cl,%edx
	subl %ecx,%ebx
	movl %ebx,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -284(%ebp),%edx
	addl 4(%esi),%eax
	imull $549938159,%eax,%eax
	movl %edx,2084(%edi)
	movl %eax,2080(%edi)
	movl 2080(%edi),%eax
	movl 2084(%edi),%edx
	movl %eax,-8(%ebp)
	movl %edx,-4(%ebp)
	movl 2056(%edi),%edx
	leal 960(%edx),%eax
	movl %eax,2056(%edi)
	cmpl -36(%ebp),%eax
	jb .L80
	addl $-1096,%edx
	movl %edx,2056(%edi)
.L80:
	movl 2056(%edi),%ebx
	movl -8(%ebp),%esi
	movl -4(%ebp),%ecx
	movl %esi,-84(%ebp)
	movl %ecx,-80(%ebp)
	movl (%ebx),%eax
	movl %eax,-92(%ebp)
	movl 4(%ebx),%edx
	movl %edx,-88(%ebp)
	movl %esi,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %esi,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-84(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -92(%ebp),%edx
	orb $1,%al
	imull %esi,%eax
	roll $5,%eax
	movl %eax,-80(%ebp)
	xorl -84(%ebp),%edx
	movl %eax,%esi
	andl $31,%esi
	movl %edx,%eax
	movl %esi,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %esi,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl $557662966,%ecx
	imull $776563579,%ecx,%ecx
	movl %ecx,4(%ebx)
	movl -88(%ebp),%eax
	movl -84(%ebp),%edx
	movl %ecx,-92(%ebp)
	andl $31,%edx
	movl %edx,-96(%ebp)
	movl -96(%ebp),%ecx
	xorl -80(%ebp),%eax
	movl %eax,%edx
	sall %cl,%edx
	movl $32,%esi
	subl %ecx,%esi
	movl %esi,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	imull $390701653,%eax,%eax
	addl $-485144915,%eax
	movl %eax,(%ebx)
	movl 2080(%edi),%eax
	movl 2084(%edi),%edx
	xorl 2072(%edi),%eax
	xorl 2076(%edi),%edx
	pushl $0
	pushl $257
	pushl %edx
	pushl %eax
	call __umoddi3
	movl 2068(%edi),%edx
	addl $16,%esp
	leal (%edi,%eax,8),%eax
	movl %eax,2056(%edi)
	leal 8(%edx),%eax
	movl %eax,2068(%edi)
	addl $560,2060(%edi)
	addl $1112,2064(%edi)
	cmpl -36(%ebp),%eax
	jb .L84
	addl $-2048,%edx
	movl %edx,2068(%edi)
	pushl $1
	pushl %edi
	call reseed
	addl $8,%esp
.L84:
	movl 2060(%edi),%eax
	cmpl -36(%ebp),%eax
	jb .L85
	addl $-2056,%eax
	movl %eax,2060(%edi)
.L85:
	movl 2064(%edi),%eax
	cmpl -36(%ebp),%eax
	jb .L86
	addl $-2056,%eax
	movl %eax,2064(%edi)
.L86:
	movl 2068(%edi),%eax
	movl 2060(%edi),%esi
	movl (%eax),%ebx
	movl %ebx,-104(%ebp)
	movl 4(%eax),%ecx
	movl 2072(%edi),%edx
	movl %edx,-112(%ebp)
	movl 2076(%edi),%eax
	movl %eax,-108(%ebp)
	movl %ebx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ebx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-104(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -112(%ebp),%edx
	orb $1,%al
	imull %ebx,%eax
	roll $5,%eax
	movl %eax,-100(%ebp)
	xorl -104(%ebp),%edx
	movl %eax,%ebx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl -108(%ebp),%edx
	movl %eax,%ebx
	roll $8,%ebx
	andl $16711935,%ebx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ebx
	movl -104(%ebp),%eax
	addl (%esi),%ebx
	andl $31,%eax
	movl %eax,-116(%ebp)
	movl -116(%ebp),%ecx
	imull $1235467377,%ebx,%ebx
	movl %ebx,-112(%ebp)
	xorl -100(%ebp),%edx
	movl %edx,%eax
	sall %cl,%eax
	movl $32,%ecx
	subl -116(%ebp),%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl 4(%esi),%ecx
	movl 2064(%edi),%esi
	movl 2080(%edi),%eax
	imull $1625458173,%ecx,%ecx
	movl %ebx,2076(%edi)
	movl %ecx,2072(%edi)
	movl %eax,-132(%ebp)
	movl 2084(%edi),%edx
	movl %edx,-128(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ebx,%eax
	roll $5,%eax
	movl %eax,-124(%ebp)
	movl %ebx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ebx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -132(%ebp),%edx
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-120(%ebp)
	xorl -124(%ebp),%edx
	movl %eax,%ebx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	movl $32,%ebx
	addl (%esi),%ecx
	imull $-1016683011,%ecx,%ecx
	movl %ecx,-284(%ebp)
	movl -128(%ebp),%eax
	movl -124(%ebp),%edx
	movl %ecx,-132(%ebp)
	andl $31,%edx
	movl %edx,-136(%ebp)
	movl -136(%ebp),%ecx
	xorl -120(%ebp),%eax
	movl %eax,%edx
	sall %cl,%edx
	subl %ecx,%ebx
	movl %ebx,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -284(%ebp),%edx
	addl 4(%esi),%eax
	imull $549938159,%eax,%eax
	movl %edx,2084(%edi)
	movl %eax,2080(%edi)
	movl 2080(%edi),%eax
	movl 2084(%edi),%edx
	movl %eax,-16(%ebp)
	movl %edx,-12(%ebp)
	movl 2056(%edi),%edx
	leal 960(%edx),%eax
	movl %eax,2056(%edi)
	cmpl -36(%ebp),%eax
	jb .L89
	addl $-1096,%edx
	movl %edx,2056(%edi)
.L89:
	movl 2056(%edi),%ebx
	movl -16(%ebp),%esi
	movl -12(%ebp),%ecx
	movl %esi,-144(%ebp)
	movl %ecx,-140(%ebp)
	movl (%ebx),%eax
	movl %eax,-152(%ebp)
	movl 4(%ebx),%edx
	movl %edx,-148(%ebp)
	movl %esi,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %esi,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-144(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -152(%ebp),%edx
	orb $1,%al
	imull %esi,%eax
	roll $5,%eax
	movl %eax,-140(%ebp)
	xorl -144(%ebp),%edx
	movl %eax,%esi
	andl $31,%esi
	movl %edx,%eax
	movl %esi,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %esi,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl $557662966,%ecx
	imull $776563579,%ecx,%ecx
	movl %ecx,4(%ebx)
	movl -148(%ebp),%eax
	movl -144(%ebp),%edx
	movl %ecx,-152(%ebp)
	andl $31,%edx
	movl %edx,-156(%ebp)
	movl -156(%ebp),%ecx
	xorl -140(%ebp),%eax
	movl %eax,%edx
	sall %cl,%edx
	movl $32,%esi
	subl %ecx,%esi
	movl %esi,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	imull $390701653,%eax,%eax
	addl $-485144915,%eax
	movl %eax,(%ebx)
	movl 2080(%edi),%eax
	movl 2084(%edi),%edx
	xorl 2072(%edi),%eax
	xorl 2076(%edi),%edx
	pushl $0
	pushl $257
	pushl %edx
	pushl %eax
	call __umoddi3
	addl $16,%esp
	leal (%edi,%eax,8),%edx
	leal 8(%edx),%eax
	movl %eax,2068(%edi)
	addl $560,2060(%edi)
	addl $1112,2064(%edi)
	cmpl -36(%ebp),%eax
	jb .L93
	addl $-2048,%edx
	movl %edx,2068(%edi)
	pushl $1
	pushl %edi
	call reseed
	addl $8,%esp
.L93:
	movl 2060(%edi),%eax
	cmpl -36(%ebp),%eax
	jb .L94
	addl $-2056,%eax
	movl %eax,2060(%edi)
.L94:
	leal 2056(%edi),%edx
	movl %edx,-160(%ebp)
	movl 2064(%edi),%eax
	cmpl %edx,%eax
	jb .L95
	addl $-2056,%eax
	movl %eax,2064(%edi)
.L95:
	movl 2068(%edi),%eax
	movl 2060(%edi),%esi
	movl (%eax),%ebx
	movl %ebx,-168(%ebp)
	movl 4(%eax),%ecx
	movl 2072(%edi),%eax
	movl %eax,-176(%ebp)
	movl 2076(%edi),%edx
	movl %edx,-172(%ebp)
	movl %ebx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ebx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-168(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -176(%ebp),%edx
	orb $1,%al
	imull %ebx,%eax
	roll $5,%eax
	movl %eax,-164(%ebp)
	xorl -168(%ebp),%edx
	movl %eax,%ebx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl -172(%ebp),%edx
	movl %eax,%ebx
	roll $8,%ebx
	andl $16711935,%ebx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ebx
	movl -168(%ebp),%eax
	addl (%esi),%ebx
	andl $31,%eax
	movl %eax,-180(%ebp)
	movl -180(%ebp),%ecx
	imull $1235467377,%ebx,%ebx
	movl %ebx,-176(%ebp)
	xorl -164(%ebp),%edx
	movl %edx,%eax
	sall %cl,%eax
	movl $32,%ecx
	subl -180(%ebp),%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl 4(%esi),%ecx
	movl 2064(%edi),%esi
	movl 2080(%edi),%eax
	imull $1625458173,%ecx,%ecx
	movl %ebx,2076(%edi)
	movl %ecx,2072(%edi)
	movl %eax,-196(%ebp)
	movl 2084(%edi),%edx
	movl %edx,-192(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ebx,%eax
	roll $5,%eax
	movl %eax,-188(%ebp)
	movl %ebx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ebx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -196(%ebp),%edx
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-184(%ebp)
	xorl -188(%ebp),%edx
	movl %eax,%ebx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	movl $32,%ebx
	addl (%esi),%ecx
	imull $-1016683011,%ecx,%ecx
	movl %ecx,-284(%ebp)
	movl -192(%ebp),%eax
	movl -188(%ebp),%edx
	movl %ecx,-196(%ebp)
	andl $31,%edx
	movl %edx,-200(%ebp)
	movl -200(%ebp),%ecx
	xorl -184(%ebp),%eax
	movl %eax,%edx
	sall %cl,%edx
	subl %ecx,%ebx
	movl %ebx,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -284(%ebp),%edx
	addl 4(%esi),%eax
	imull $549938159,%eax,%eax
	movl %edx,2084(%edi)
	movl %eax,2080(%edi)
	movl 2080(%edi),%eax
	movl 2084(%edi),%edx
	movl %eax,-24(%ebp)
	movl %edx,-20(%ebp)
	movl 2056(%edi),%edx
	leal 960(%edx),%eax
	movl %eax,2056(%edi)
	cmpl -160(%ebp),%eax
	jb .L98
	addl $-1096,%edx
	movl %edx,2056(%edi)
.L98:
	movl 2056(%edi),%ebx
	movl -24(%ebp),%esi
	movl -20(%ebp),%ecx
	movl %esi,-208(%ebp)
	movl %ecx,-204(%ebp)
	movl (%ebx),%eax
	movl %eax,-216(%ebp)
	movl 4(%ebx),%edx
	movl %edx,-212(%ebp)
	movl %esi,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %esi,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-208(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -216(%ebp),%edx
	orb $1,%al
	imull %esi,%eax
	roll $5,%eax
	movl %eax,-204(%ebp)
	xorl -208(%ebp),%edx
	movl %eax,%esi
	andl $31,%esi
	movl %edx,%eax
	movl %esi,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %esi,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl $557662966,%ecx
	imull $776563579,%ecx,%ecx
	movl %ecx,4(%ebx)
	movl -212(%ebp),%eax
	movl -208(%ebp),%edx
	movl %ecx,-216(%ebp)
	andl $31,%edx
	movl %edx,-220(%ebp)
	movl -220(%ebp),%ecx
	xorl -204(%ebp),%eax
	movl %eax,%edx
	sall %cl,%edx
	movl $32,%esi
	subl %ecx,%esi
	movl %esi,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	imull $390701653,%eax,%eax
	addl $-485144915,%eax
	movl %eax,(%ebx)
	movl 2080(%edi),%eax
	movl 2084(%edi),%edx
	xorl 2072(%edi),%eax
	xorl 2076(%edi),%edx
	pushl $0
	pushl $257
	pushl %edx
	pushl %eax
	call __umoddi3
	movl 2068(%edi),%edx
	addl $16,%esp
	leal 8(%edx),%ecx
	movl %ecx,2068(%edi)
	leal 560(%edi,%eax,8),%eax
	movl %eax,2060(%edi)
	addl $1112,2064(%edi)
	movl %ecx,%eax
	cmpl -160(%ebp),%eax
	jb .L102
	addl $-2048,%edx
	movl %edx,2068(%edi)
	pushl $1
	pushl %edi
	call reseed
	addl $8,%esp
.L102:
	movl 2060(%edi),%eax
	cmpl -160(%ebp),%eax
	jb .L103
	addl $-2056,%eax
	movl %eax,2060(%edi)
.L103:
	movl 2064(%edi),%eax
	cmpl -160(%ebp),%eax
	jb .L104
	addl $-2056,%eax
	movl %eax,2064(%edi)
.L104:
	movl 2068(%edi),%eax
	movl 2060(%edi),%esi
	movl (%eax),%ebx
	movl %ebx,-228(%ebp)
	movl 4(%eax),%ecx
	movl 2072(%edi),%eax
	movl %eax,-236(%ebp)
	movl 2076(%edi),%edx
	movl %edx,-232(%ebp)
	movl %ebx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ebx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-228(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -236(%ebp),%edx
	orb $1,%al
	imull %ebx,%eax
	roll $5,%eax
	movl %eax,-224(%ebp)
	xorl -228(%ebp),%edx
	movl %eax,%ebx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl -232(%ebp),%edx
	movl %eax,%ebx
	roll $8,%ebx
	andl $16711935,%ebx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ebx
	movl -228(%ebp),%eax
	addl (%esi),%ebx
	andl $31,%eax
	movl %eax,-240(%ebp)
	movl -240(%ebp),%ecx
	imull $1235467377,%ebx,%ebx
	movl %ebx,-236(%ebp)
	xorl -224(%ebp),%edx
	movl %edx,%eax
	sall %cl,%eax
	movl $32,%ecx
	subl -240(%ebp),%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl 4(%esi),%ecx
	movl 2064(%edi),%esi
	movl 2080(%edi),%eax
	imull $1625458173,%ecx,%ecx
	movl %ebx,2076(%edi)
	movl %ecx,2072(%edi)
	movl %eax,-256(%ebp)
	movl 2084(%edi),%edx
	movl %edx,-252(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ebx,%eax
	roll $5,%eax
	movl %eax,-248(%ebp)
	movl %ebx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ebx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -256(%ebp),%edx
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-244(%ebp)
	xorl -248(%ebp),%edx
	movl %eax,%ebx
	andl $31,%ebx
	movl %edx,%eax
	movl %ebx,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %ebx,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	movl $32,%ebx
	addl (%esi),%ecx
	imull $-1016683011,%ecx,%ecx
	movl %ecx,-284(%ebp)
	movl -252(%ebp),%eax
	movl -248(%ebp),%edx
	movl %ecx,-256(%ebp)
	andl $31,%edx
	movl %edx,-260(%ebp)
	movl -260(%ebp),%ecx
	xorl -244(%ebp),%eax
	movl %eax,%edx
	sall %cl,%edx
	subl %ecx,%ebx
	movl %ebx,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -284(%ebp),%edx
	addl 4(%esi),%eax
	imull $549938159,%eax,%eax
	movl %edx,2084(%edi)
	movl %eax,2080(%edi)
	movl 2080(%edi),%eax
	movl 2084(%edi),%edx
	movl %eax,-32(%ebp)
	movl %edx,-28(%ebp)
	movl 2056(%edi),%edx
	leal 960(%edx),%eax
	movl %eax,2056(%edi)
	cmpl -160(%ebp),%eax
	jb .L107
	addl $-1096,%edx
	movl %edx,2056(%edi)
.L107:
	movl 2056(%edi),%ebx
	movl -32(%ebp),%esi
	movl -28(%ebp),%ecx
	movl %esi,-268(%ebp)
	movl %ecx,-264(%ebp)
	movl (%ebx),%eax
	movl %eax,-276(%ebp)
	movl 4(%ebx),%edx
	movl %edx,-272(%ebp)
	movl %esi,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %esi,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	orb $1,%al
	imull %ecx,%eax
	roll $5,%eax
	movl %eax,-268(%ebp)
	movl %ecx,%eax
	roll $8,%eax
	andl $16711935,%eax
	movl %ecx,%edx
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	movl -276(%ebp),%edx
	orb $1,%al
	imull %esi,%eax
	roll $5,%eax
	movl %eax,-264(%ebp)
	xorl -268(%ebp),%edx
	movl %eax,%esi
	andl $31,%esi
	movl %edx,%eax
	movl %esi,%ecx
	sall %cl,%eax
	movl $32,%ecx
	subl %esi,%ecx
	shrl %cl,%edx
	orl %edx,%eax
	movl %eax,%ecx
	roll $8,%ecx
	andl $16711935,%ecx
	roll $24,%eax
	andl $-16711936,%eax
	orl %eax,%ecx
	addl $557662966,%ecx
	imull $776563579,%ecx,%ecx
	movl %ecx,4(%ebx)
	movl -272(%ebp),%eax
	movl -268(%ebp),%edx
	movl %ecx,-276(%ebp)
	andl $31,%edx
	movl %edx,-280(%ebp)
	movl -280(%ebp),%ecx
	xorl -264(%ebp),%eax
	movl %eax,%edx
	sall %cl,%edx
	movl $32,%esi
	subl %ecx,%esi
	movl %esi,%ecx
	shrl %cl,%eax
	orl %eax,%edx
	movl %edx,%eax
	roll $8,%eax
	andl $16711935,%eax
	roll $24,%edx
	andl $-16711936,%edx
	orl %edx,%eax
	imull $390701653,%eax,%eax
	addl $-485144915,%eax
	movl %eax,(%ebx)
	movl 2080(%edi),%eax
	movl 2084(%edi),%edx
	xorl 2072(%edi),%eax
	xorl 2076(%edi),%edx
	pushl $0
	pushl $257
	pushl %edx
	pushl %eax
	call __umoddi3
	leal (%edi,%eax,8),%eax
	movl %eax,2064(%edi)
	movl %edi,%eax
	leal -296(%ebp),%esp
	popl %ebx
	popl %esi
	popl %edi
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe10:
	.size	 new_chrand,.Lfe10-new_chrand
	.p2align 2
.globl kill_chrand
	.type	 kill_chrand,@function
kill_chrand:
	pushl %ebp
	movl %esp,%ebp
	pushl %edi
	pushl %ebx
	movl 8(%ebp),%ebx
	movl %ebx,%edi
	xorl %edx,%edx
	movl %edx,%eax
	cld
	movl $522,%ecx
	rep
	stosl
	pushl %ebx
	call free
	leal -8(%ebp),%esp
	popl %ebx
	popl %edi
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe11:
	.size	 kill_chrand,.Lfe11-kill_chrand
	.p2align 2
.globl init_hardware
	.type	 init_hardware,@function
init_hardware:
	pushl %ebp
	movl %esp,%ebp
	pushl $.LC2
	call dprintf
	xorl %eax,%eax
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe12:
	.size	 init_hardware,.Lfe12-init_hardware
	.p2align 2
.globl publish_devices
	.type	 publish_devices,@function
publish_devices:
	pushl %ebp
	movl %esp,%ebp
	pushl $.LC13
	call dprintf
	movl $my_device_name,%eax
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe13:
	.size	 publish_devices,.Lfe13-publish_devices
	.p2align 2
.globl find_device
	.type	 find_device,@function
find_device:
	pushl %ebp
	movl %esp,%ebp
	pushl %edi
	pushl %esi
	pushl %ebx
	movl 8(%ebp),%edi
	pushl %edi
	pushl $.LC14
	call dprintf
	addl $8,%esp
	xorl %esi,%esi
	cmpl $0,my_device_name
	je .L220
	xorl %ebx,%ebx
	.p2align 4,,7
.L216:
	movl my_device_name(%ebx),%eax
	pushl %eax
	pushl %edi
	call strcmp
	addl $8,%esp
	testl %eax,%eax
	je .L222
	addl $4,%ebx
	incl %esi
	cmpl $0,my_device_name(%ebx)
	jne .L216
.L220:
	movl $-1,%eax
.L218:
	testl %eax,%eax
	jl .L213
	movl $my_device_hooks,%eax
	jmp .L221
	.p2align 4,,7
.L222:
	movl %esi,%eax
	jmp .L218
	.p2align 4,,7
.L213:
	xorl %eax,%eax
.L221:
	leal -12(%ebp),%esp
	popl %ebx
	popl %esi
	popl %edi
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe14:
	.size	 find_device,.Lfe14-find_device
	.p2align 2
.globl uninit_driver
	.type	 uninit_driver,@function
uninit_driver:
	pushl %ebp
	movl %esp,%ebp
	pushl %edi
	pushl %ebx
	movl rng,%ebx
	movl %ebx,%edi
	xorl %edx,%edx
	movl %edx,%eax
	cld
	movl $522,%ecx
	rep
	stosl
	pushl %ebx
	call free
	movl rand_mutex,%eax
	addl $4,%esp
	pushl %eax
	call delete_sem
	pushl $.LC7
	call dprintf
	leal -8(%ebp),%esp
	popl %ebx
	popl %edi
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe15:
	.size	 uninit_driver,.Lfe15-uninit_driver
	.local	rng
	.comm	rng,4,4
	.local	rand_mutex
	.comm	rand_mutex,4,4
	.p2align 2
	.type	 my_device_open,@function
my_device_open:
	pushl %ebp
	movl %esp,%ebp
	pushl %ebx
	movl 8(%ebp),%ebx
	pushl $8
	movl rng,%eax
	pushl %eax
	call reseed
	pushl %ebx
	pushl $.LC8
	call dprintf
	movl -4(%ebp),%ebx
	xorl %eax,%eax
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe16:
	.size	 my_device_open,.Lfe16-my_device_open
	.p2align 2
	.type	 my_device_write,@function
my_device_write:
	pushl %ebp
	movl %esp,%ebp
	xorl %eax,%eax
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe17:
	.size	 my_device_write,.Lfe17-my_device_write
	.p2align 2
	.type	 my_device_control,@function
my_device_control:
	pushl %ebp
	movl %esp,%ebp
	movl $-1,%eax
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe18:
	.size	 my_device_control,.Lfe18-my_device_control
	.p2align 2
	.type	 my_device_close,@function
my_device_close:
	pushl %ebp
	movl %esp,%ebp
	pushl $.LC9
	call dprintf
	xorl %eax,%eax
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe19:
	.size	 my_device_close,.Lfe19-my_device_close
	.p2align 2
	.type	 my_device_free,@function
my_device_free:
	pushl %ebp
	movl %esp,%ebp
	pushl $.LC10
	call dprintf
	xorl %eax,%eax
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe20:
	.size	 my_device_free,.Lfe20-my_device_free
	.ident	"GCC: (GNU) 2.9-beos-991026"
