.data
taps:
.long 1
.long 2
.long 9
.long 15
.long 25
.text
.globl main
main:
movl 0x0831423, %eax
call createKeystream
ret
createKeystream:
movl $32, %edx g
lfsr:
movl $taps, %esi
movl $5, %ecx # array size
movl %eax, %ebx # seed -> temp
xorl %edi, %edi # zero out index
part1: cmpl %edi, %ecx
je part2
shrl (%esi,%edi,4), %ebx # temp >> taps[i] <-------- PROBLEM
xorl %eax, %ebx # seed ^ temp > temp
incl %edi
jmp part1
part2: andl $1, %ebx # temp &= 1
shl $31, %ebx # temp << 31
shr $1, %eax # seed >> 1
or %ebx, %eax # temp | seed -> seed
dec %edx
jnz lfsr
ret