# qhasm: int32 a # qhasm: int32 b # qhasm: int32 c # qhasm: int32 r # qhasm: int32 s # qhasm: int32 t # qhasm: int32 d # qhasm: int32 u # qhasm: int32 e # qhasm: int32 v # qhasm: stack32 arg1 # qhasm: stack32 arg2 # qhasm: stack32 arg3 # qhasm: stack32 arg4 # qhasm: input arg1 # qhasm: input arg2 # qhasm: input arg3 # qhasm: input arg4 # qhasm: int32 eax # qhasm: int32 ebx # qhasm: int32 esi # qhasm: int32 edi # qhasm: int32 ebp # qhasm: caller eax # qhasm: caller ebx # qhasm: caller esi # qhasm: caller edi # qhasm: caller ebp # qhasm: int32 k # qhasm: int32 kbits # qhasm: int32 iv # qhasm: int32 i # qhasm: stack32 x_backup # qhasm: int32 x # qhasm: stack32 m_backup # qhasm: int32 m # qhasm: stack32 out_backup # qhasm: int32 out # qhasm: stack32 bytes_backup # qhasm: int32 bytes # qhasm: stack32 eax_stack # qhasm: stack32 ebx_stack # qhasm: stack32 esi_stack # qhasm: stack32 edi_stack # qhasm: stack32 ebp_stack # qhasm: int32 in0 # qhasm: int32 in1 # qhasm: int32 in2 # qhasm: int32 in3 # qhasm: int32 in4 # qhasm: int32 in5 # qhasm: int32 in6 # qhasm: int32 in7 # qhasm: int32 in8 # qhasm: int32 in9 # qhasm: int32 in10 # qhasm: int32 in11 # qhasm: int32 in12 # qhasm: int32 in13 # qhasm: int32 in14 # qhasm: int32 in15 # qhasm: stack32 x0 # qhasm: stack32 x1 # qhasm: stack32 x2 # qhasm: stack32 x3 # qhasm: stack32 x4 # qhasm: stack32 x5 # qhasm: stack32 x6 # qhasm: stack32 x7 # qhasm: stack32 x8 # qhasm: stack32 x9 # qhasm: stack32 x10 # qhasm: stack32 x11 # qhasm: stack32 x12 # qhasm: stack32 x13 # qhasm: stack32 x14 # qhasm: stack32 x15 # qhasm: stack32 j0 # qhasm: stack32 j1 # qhasm: stack32 j2 # qhasm: stack32 j3 # qhasm: stack32 j4 # qhasm: stack32 j5 # qhasm: stack32 j6 # qhasm: stack32 j7 # qhasm: stack32 j8 # qhasm: stack32 j9 # qhasm: stack32 j10 # qhasm: stack32 j11 # qhasm: stack32 j12 # qhasm: stack32 j13 # qhasm: stack32 j14 # qhasm: stack32 j15 # qhasm: stack512 tmp # qhasm: stack32 ctarget # qhasm: enter ECRYPT_keystream_bytes .text .p2align 5 .globl _ECRYPT_keystream_bytes .globl ECRYPT_keystream_bytes _ECRYPT_keystream_bytes: ECRYPT_keystream_bytes: mov %esp,%eax and $31,%eax add $256,%eax sub %eax,%esp # qhasm: eax_stack = eax # asm 1: movl eax_stack=stack32#1 # asm 2: movl eax_stack=0(%esp) movl %eax,0(%esp) # qhasm: ebx_stack = ebx # asm 1: movl ebx_stack=stack32#2 # asm 2: movl ebx_stack=4(%esp) movl %ebx,4(%esp) # qhasm: esi_stack = esi # asm 1: movl esi_stack=stack32#3 # asm 2: movl esi_stack=8(%esp) movl %esi,8(%esp) # qhasm: edi_stack = edi # asm 1: movl edi_stack=stack32#4 # asm 2: movl edi_stack=12(%esp) movl %edi,12(%esp) # qhasm: ebp_stack = ebp # asm 1: movl ebp_stack=stack32#5 # asm 2: movl ebp_stack=16(%esp) movl %ebp,16(%esp) # qhasm: x = arg1 # asm 1: movl x=int32#3 # asm 2: movl x=%edx movl 4(%esp,%eax),%edx # qhasm: m = arg2 # asm 1: movl m=int32#5 # asm 2: movl m=%esi movl 8(%esp,%eax),%esi # qhasm: out = m # asm 1: mov out=int32#6 # asm 2: mov out=%edi mov %esi,%edi # qhasm: bytes = arg3 # asm 1: movl bytes=int32#4 # asm 2: movl bytes=%ebx movl 12(%esp,%eax),%ebx # qhasm: unsigned>? bytes - 0 # asm 1: cmp $0, jbe ._done # qhasm: a = 0 # asm 1: mov $0,>a=int32#1 # asm 2: mov $0,>a=%eax mov $0,%eax # qhasm: i = bytes # asm 1: mov i=int32#2 # asm 2: mov i=%ecx mov %ebx,%ecx # qhasm: while (i) { *out++ = a; --i } rep stosb # qhasm: out -= bytes # asm 1: sub eax_stack=stack32#1 # asm 2: movl eax_stack=0(%esp) movl %eax,0(%esp) # qhasm: ebx_stack = ebx # asm 1: movl ebx_stack=stack32#2 # asm 2: movl ebx_stack=4(%esp) movl %ebx,4(%esp) # qhasm: esi_stack = esi # asm 1: movl esi_stack=stack32#3 # asm 2: movl esi_stack=8(%esp) movl %esi,8(%esp) # qhasm: edi_stack = edi # asm 1: movl edi_stack=stack32#4 # asm 2: movl edi_stack=12(%esp) movl %edi,12(%esp) # qhasm: ebp_stack = ebp # asm 1: movl ebp_stack=stack32#5 # asm 2: movl ebp_stack=16(%esp) movl %ebp,16(%esp) # qhasm: x = arg1 # asm 1: movl x=int32#3 # asm 2: movl x=%edx movl 4(%esp,%eax),%edx # qhasm: m = arg2 # asm 1: movl m=int32#5 # asm 2: movl m=%esi movl 8(%esp,%eax),%esi # qhasm: out = arg3 # asm 1: movl out=int32#6 # asm 2: movl out=%edi movl 12(%esp,%eax),%edi # qhasm: bytes = arg4 # asm 1: movl bytes=int32#4 # asm 2: movl bytes=%ebx movl 16(%esp,%eax),%ebx # qhasm: unsigned>? bytes - 0 # asm 1: cmp $0, jbe ._done # comment:fp stack unchanged by jump # qhasm: goto start jmp ._start # qhasm: enter ECRYPT_encrypt_bytes .text .p2align 5 .globl _ECRYPT_encrypt_bytes .globl ECRYPT_encrypt_bytes _ECRYPT_encrypt_bytes: ECRYPT_encrypt_bytes: mov %esp,%eax and $31,%eax add $256,%eax sub %eax,%esp # qhasm: eax_stack = eax # asm 1: movl eax_stack=stack32#1 # asm 2: movl eax_stack=0(%esp) movl %eax,0(%esp) # qhasm: ebx_stack = ebx # asm 1: movl ebx_stack=stack32#2 # asm 2: movl ebx_stack=4(%esp) movl %ebx,4(%esp) # qhasm: esi_stack = esi # asm 1: movl esi_stack=stack32#3 # asm 2: movl esi_stack=8(%esp) movl %esi,8(%esp) # qhasm: edi_stack = edi # asm 1: movl edi_stack=stack32#4 # asm 2: movl edi_stack=12(%esp) movl %edi,12(%esp) # qhasm: ebp_stack = ebp # asm 1: movl ebp_stack=stack32#5 # asm 2: movl ebp_stack=16(%esp) movl %ebp,16(%esp) # qhasm: x = arg1 # asm 1: movl x=int32#3 # asm 2: movl x=%edx movl 4(%esp,%eax),%edx # qhasm: m = arg2 # asm 1: movl m=int32#5 # asm 2: movl m=%esi movl 8(%esp,%eax),%esi # qhasm: out = arg3 # asm 1: movl out=int32#6 # asm 2: movl out=%edi movl 12(%esp,%eax),%edi # qhasm: bytes = arg4 # asm 1: movl bytes=int32#4 # asm 2: movl bytes=%ebx movl 16(%esp,%eax),%ebx # qhasm: unsigned>? bytes - 0 # asm 1: cmp $0, jbe ._done # comment:fp stack unchanged by fallthrough # qhasm: start: ._start: # qhasm: in0 = *(uint32 *) (x + 0) # asm 1: movl 0(in0=int32#1 # asm 2: movl 0(in0=%eax movl 0(%edx),%eax # qhasm: in1 = *(uint32 *) (x + 4) # asm 1: movl 4(in1=int32#2 # asm 2: movl 4(in1=%ecx movl 4(%edx),%ecx # qhasm: in2 = *(uint32 *) (x + 8) # asm 1: movl 8(in2=int32#7 # asm 2: movl 8(in2=%ebp movl 8(%edx),%ebp # qhasm: j0 = in0 # asm 1: movl j0=stack32#6 # asm 2: movl j0=20(%esp) movl %eax,20(%esp) # qhasm: in3 = *(uint32 *) (x + 12) # asm 1: movl 12(in3=int32#1 # asm 2: movl 12(in3=%eax movl 12(%edx),%eax # qhasm: j1 = in1 # asm 1: movl j1=stack32#7 # asm 2: movl j1=24(%esp) movl %ecx,24(%esp) # qhasm: in4 = *(uint32 *) (x + 16) # asm 1: movl 16(in4=int32#2 # asm 2: movl 16(in4=%ecx movl 16(%edx),%ecx # qhasm: j2 = in2 # asm 1: movl j2=stack32#8 # asm 2: movl j2=28(%esp) movl %ebp,28(%esp) # qhasm: in5 = *(uint32 *) (x + 20) # asm 1: movl 20(in5=int32#7 # asm 2: movl 20(in5=%ebp movl 20(%edx),%ebp # qhasm: j3 = in3 # asm 1: movl j3=stack32#9 # asm 2: movl j3=32(%esp) movl %eax,32(%esp) # qhasm: in6 = *(uint32 *) (x + 24) # asm 1: movl 24(in6=int32#1 # asm 2: movl 24(in6=%eax movl 24(%edx),%eax # qhasm: j4 = in4 # asm 1: movl j4=stack32#10 # asm 2: movl j4=36(%esp) movl %ecx,36(%esp) # qhasm: in7 = *(uint32 *) (x + 28) # asm 1: movl 28(in7=int32#2 # asm 2: movl 28(in7=%ecx movl 28(%edx),%ecx # qhasm: j5 = in5 # asm 1: movl j5=stack32#11 # asm 2: movl j5=40(%esp) movl %ebp,40(%esp) # qhasm: in8 = *(uint32 *) (x + 32) # asm 1: movl 32(in8=int32#7 # asm 2: movl 32(in8=%ebp movl 32(%edx),%ebp # qhasm: j6 = in6 # asm 1: movl j6=stack32#12 # asm 2: movl j6=44(%esp) movl %eax,44(%esp) # qhasm: in9 = *(uint32 *) (x + 36) # asm 1: movl 36(in9=int32#1 # asm 2: movl 36(in9=%eax movl 36(%edx),%eax # qhasm: j7 = in7 # asm 1: movl j7=stack32#13 # asm 2: movl j7=48(%esp) movl %ecx,48(%esp) # qhasm: in10 = *(uint32 *) (x + 40) # asm 1: movl 40(in10=int32#2 # asm 2: movl 40(in10=%ecx movl 40(%edx),%ecx # qhasm: j8 = in8 # asm 1: movl j8=stack32#14 # asm 2: movl j8=52(%esp) movl %ebp,52(%esp) # qhasm: in11 = *(uint32 *) (x + 44) # asm 1: movl 44(in11=int32#7 # asm 2: movl 44(in11=%ebp movl 44(%edx),%ebp # qhasm: j9 = in9 # asm 1: movl j9=stack32#15 # asm 2: movl j9=56(%esp) movl %eax,56(%esp) # qhasm: in12 = *(uint32 *) (x + 48) # asm 1: movl 48(in12=int32#1 # asm 2: movl 48(in12=%eax movl 48(%edx),%eax # qhasm: j10 = in10 # asm 1: movl j10=stack32#16 # asm 2: movl j10=60(%esp) movl %ecx,60(%esp) # qhasm: in13 = *(uint32 *) (x + 52) # asm 1: movl 52(in13=int32#2 # asm 2: movl 52(in13=%ecx movl 52(%edx),%ecx # qhasm: j11 = in11 # asm 1: movl j11=stack32#17 # asm 2: movl j11=64(%esp) movl %ebp,64(%esp) # qhasm: in14 = *(uint32 *) (x + 56) # asm 1: movl 56(in14=int32#7 # asm 2: movl 56(in14=%ebp movl 56(%edx),%ebp # qhasm: j12 = in12 # asm 1: movl j12=stack32#18 # asm 2: movl j12=68(%esp) movl %eax,68(%esp) # qhasm: in15 = *(uint32 *) (x + 60) # asm 1: movl 60(in15=int32#1 # asm 2: movl 60(in15=%eax movl 60(%edx),%eax # qhasm: j13 = in13 # asm 1: movl j13=stack32#19 # asm 2: movl j13=72(%esp) movl %ecx,72(%esp) # qhasm: j14 = in14 # asm 1: movl j14=stack32#20 # asm 2: movl j14=76(%esp) movl %ebp,76(%esp) # qhasm: j15 = in15 # asm 1: movl j15=stack32#21 # asm 2: movl j15=80(%esp) movl %eax,80(%esp) # qhasm: x_backup = x # asm 1: movl x_backup=stack32#22 # asm 2: movl x_backup=84(%esp) movl %edx,84(%esp) # qhasm: bytesatleast1: ._bytesatleast1: # qhasm: unsignedctarget=stack32#23 # asm 2: movl ctarget=88(%esp) movl %edi,88(%esp) # qhasm: out = &tmp # asm 1: leal out=int32#6 # asm 2: leal out=%edi leal 192(%esp),%edi # qhasm: i = bytes # asm 1: mov i=int32#2 # asm 2: mov i=%ecx mov %ebx,%ecx # qhasm: while (i) { *out++ = *m++; --i } rep movsb # qhasm: out = &tmp # asm 1: leal out=int32#6 # asm 2: leal out=%edi leal 192(%esp),%edi # qhasm: m = &tmp # asm 1: leal m=int32#5 # asm 2: leal m=%esi leal 192(%esp),%esi # comment:fp stack unchanged by fallthrough # qhasm: nocopy: ._nocopy: # qhasm: out_backup = out # asm 1: movl out_backup=stack32#24 # asm 2: movl out_backup=92(%esp) movl %edi,92(%esp) # qhasm: m_backup = m # asm 1: movl m_backup=stack32#25 # asm 2: movl m_backup=96(%esp) movl %esi,96(%esp) # qhasm: bytes_backup = bytes # asm 1: movl bytes_backup=stack32#26 # asm 2: movl bytes_backup=100(%esp) movl %ebx,100(%esp) # qhasm: in0 = j0 # asm 1: movl in0=int32#1 # asm 2: movl in0=%eax movl 20(%esp),%eax # qhasm: in1 = j1 # asm 1: movl in1=int32#2 # asm 2: movl in1=%ecx movl 24(%esp),%ecx # qhasm: in2 = j2 # asm 1: movl in2=int32#3 # asm 2: movl in2=%edx movl 28(%esp),%edx # qhasm: in3 = j3 # asm 1: movl in3=int32#4 # asm 2: movl in3=%ebx movl 32(%esp),%ebx # qhasm: x0 = in0 # asm 1: movl x0=stack32#27 # asm 2: movl x0=104(%esp) movl %eax,104(%esp) # qhasm: x1 = in1 # asm 1: movl x1=stack32#28 # asm 2: movl x1=108(%esp) movl %ecx,108(%esp) # qhasm: x2 = in2 # asm 1: movl x2=stack32#29 # asm 2: movl x2=112(%esp) movl %edx,112(%esp) # qhasm: x3 = in3 # asm 1: movl x3=stack32#30 # asm 2: movl x3=116(%esp) movl %ebx,116(%esp) # qhasm: in4 = j4 # asm 1: movl in4=int32#1 # asm 2: movl in4=%eax movl 36(%esp),%eax # qhasm: in5 = j5 # asm 1: movl in5=int32#2 # asm 2: movl in5=%ecx movl 40(%esp),%ecx # qhasm: in6 = j6 # asm 1: movl in6=int32#3 # asm 2: movl in6=%edx movl 44(%esp),%edx # qhasm: in7 = j7 # asm 1: movl in7=int32#4 # asm 2: movl in7=%ebx movl 48(%esp),%ebx # qhasm: x4 = in4 # asm 1: movl x4=stack32#31 # asm 2: movl x4=120(%esp) movl %eax,120(%esp) # qhasm: x5 = in5 # asm 1: movl x5=stack32#32 # asm 2: movl x5=124(%esp) movl %ecx,124(%esp) # qhasm: x6 = in6 # asm 1: movl x6=stack32#33 # asm 2: movl x6=128(%esp) movl %edx,128(%esp) # qhasm: x7 = in7 # asm 1: movl x7=stack32#34 # asm 2: movl x7=132(%esp) movl %ebx,132(%esp) # qhasm: in8 = j8 # asm 1: movl in8=int32#1 # asm 2: movl in8=%eax movl 52(%esp),%eax # qhasm: in9 = j9 # asm 1: movl in9=int32#2 # asm 2: movl in9=%ecx movl 56(%esp),%ecx # qhasm: in10 = j10 # asm 1: movl in10=int32#3 # asm 2: movl in10=%edx movl 60(%esp),%edx # qhasm: in11 = j11 # asm 1: movl in11=int32#4 # asm 2: movl in11=%ebx movl 64(%esp),%ebx # qhasm: x8 = in8 # asm 1: movl x8=stack32#35 # asm 2: movl x8=136(%esp) movl %eax,136(%esp) # qhasm: x9 = in9 # asm 1: movl x9=stack32#36 # asm 2: movl x9=140(%esp) movl %ecx,140(%esp) # qhasm: x10 = in10 # asm 1: movl x10=stack32#37 # asm 2: movl x10=144(%esp) movl %edx,144(%esp) # qhasm: x11 = in11 # asm 1: movl x11=stack32#38 # asm 2: movl x11=148(%esp) movl %ebx,148(%esp) # qhasm: in12 = j12 # asm 1: movl in12=int32#1 # asm 2: movl in12=%eax movl 68(%esp),%eax # qhasm: in13 = j13 # asm 1: movl in13=int32#2 # asm 2: movl in13=%ecx movl 72(%esp),%ecx # qhasm: in14 = j14 # asm 1: movl in14=int32#3 # asm 2: movl in14=%edx movl 76(%esp),%edx # qhasm: in15 = j15 # asm 1: movl in15=int32#4 # asm 2: movl in15=%ebx movl 80(%esp),%ebx # qhasm: x12 = in12 # asm 1: movl x12=stack32#39 # asm 2: movl x12=152(%esp) movl %eax,152(%esp) # qhasm: x13 = in13 # asm 1: movl x13=stack32#40 # asm 2: movl x13=156(%esp) movl %ecx,156(%esp) # qhasm: x14 = in14 # asm 1: movl x14=stack32#41 # asm 2: movl x14=160(%esp) movl %edx,160(%esp) # qhasm: x15 = in15 # asm 1: movl x15=stack32#42 # asm 2: movl x15=164(%esp) movl %ebx,164(%esp) # qhasm: i = 20 # asm 1: mov $20,>i=int32#2 # asm 2: mov $20,>i=%ecx mov $20,%ecx # qhasm: mainloop: ._mainloop: # qhasm: a = x12 # asm 1: movl a=int32#1 # asm 2: movl a=%eax movl 152(%esp),%eax # qhasm: b = x0 # asm 1: movl b=int32#3 # asm 2: movl b=%edx movl 104(%esp),%edx # qhasm: c = x4 # asm 1: movl c=int32#4 # asm 2: movl c=%ebx movl 120(%esp),%ebx # qhasm: r = x1 # asm 1: movl r=int32#5 # asm 2: movl r=%esi movl 108(%esp),%esi # qhasm: e = a + b # asm 1: lea (e=int32#6 # asm 2: lea (e=%edi lea (%eax,%edx),%edi # qhasm: e <<<= 7 # asm 1: rol $7,x4=stack32#27 # asm 2: movl x4=104(%esp) movl %ebx,104(%esp) # qhasm: d = x8 # asm 1: movl d=int32#6 # asm 2: movl d=%edi movl 136(%esp),%edi # qhasm: e = b + c # asm 1: lea (e=int32#7 # asm 2: lea (e=%ebp lea (%edx,%ebx),%ebp # qhasm: e <<<= 9 # asm 1: rol $9,s=int32#7 # asm 2: movl s=%ebp movl 124(%esp),%ebp # qhasm: x8 = d # asm 1: movl x8=stack32#28 # asm 2: movl x8=108(%esp) movl %edi,108(%esp) # qhasm: c += d # asm 1: add t=int32#4 # asm 2: movl t=%ebx movl 140(%esp),%ebx # qhasm: x12 = a # asm 1: movl x12=stack32#31 # asm 2: movl x12=120(%esp) movl %eax,120(%esp) # qhasm: a += d # asm 1: add v=int32#6 # asm 2: lea (v=%edi lea (%esi,%ebp),%edi # qhasm: v <<<= 7 # asm 1: rol $7,x9=stack32#32 # asm 2: movl x9=124(%esp) movl %ebx,124(%esp) # qhasm: u = x13 # asm 1: movl u=int32#6 # asm 2: movl u=%edi movl 156(%esp),%edi # qhasm: b ^= a # asm 1: xor v=int32#1 # asm 2: lea (v=%eax lea (%ebp,%ebx),%eax # qhasm: v <<<= 9 # asm 1: rol $9,x13=stack32#35 # asm 2: movl x13=136(%esp) movl %edi,136(%esp) # qhasm: a = x6 # asm 1: movl a=int32#1 # asm 2: movl a=%eax movl 128(%esp),%eax # qhasm: x0 = b # asm 1: movl x0=stack32#33 # asm 2: movl x0=128(%esp) movl %edx,128(%esp) # qhasm: b = x10 # asm 1: movl b=int32#3 # asm 2: movl b=%edx movl 144(%esp),%edx # qhasm: t += u # asm 1: add c=int32#4 # asm 2: movl c=%ebx movl 160(%esp),%ebx # qhasm: x1 = r # asm 1: movl x1=stack32#36 # asm 2: movl x1=140(%esp) movl %esi,140(%esp) # qhasm: r += u # asm 1: add e=int32#6 # asm 2: lea (e=%edi lea (%eax,%edx),%edi # qhasm: e <<<= 7 # asm 1: rol $7,x14=stack32#37 # asm 2: movl x14=144(%esp) movl %ebx,144(%esp) # qhasm: d = x2 # asm 1: movl d=int32#6 # asm 2: movl d=%edi movl 112(%esp),%edi # qhasm: s ^= r # asm 1: xor e=int32#5 # asm 2: lea (e=%esi lea (%edx,%ebx),%esi # qhasm: e <<<= 9 # asm 1: rol $9,x2=stack32#29 # asm 2: movl x2=112(%esp) movl %edi,112(%esp) # qhasm: r = x11 # asm 1: movl r=int32#5 # asm 2: movl r=%esi movl 148(%esp),%esi # qhasm: x5 = s # asm 1: movl x5=stack32#38 # asm 2: movl x5=148(%esp) movl %ebp,148(%esp) # qhasm: s = x15 # asm 1: movl s=int32#7 # asm 2: movl s=%ebp movl 164(%esp),%ebp # qhasm: c += d # asm 1: add t=int32#4 # asm 2: movl t=%ebx movl 116(%esp),%ebx # qhasm: x6 = a # asm 1: movl x6=stack32#30 # asm 2: movl x6=116(%esp) movl %eax,116(%esp) # qhasm: a += d # asm 1: add v=int32#6 # asm 2: lea (v=%edi lea (%esi,%ebp),%edi # qhasm: v <<<= 7 # asm 1: rol $7,u=int32#6 # asm 2: movl u=%edi movl 132(%esp),%edi # qhasm: b ^= a # asm 1: xor v=int32#1 # asm 2: lea (v=%eax lea (%ebp,%ebx),%eax # qhasm: v <<<= 9 # asm 1: rol $9,x7=stack32#34 # asm 2: movl x7=132(%esp) movl %edi,132(%esp) # qhasm: a = t # asm 1: mov a=int32#1 # asm 2: mov a=%eax mov %ebx,%eax # qhasm: x10 = b # asm 1: movl x10=stack32#39 # asm 2: movl x10=152(%esp) movl %edx,152(%esp) # qhasm: b = x0 # asm 1: movl b=int32#3 # asm 2: movl b=%edx movl 128(%esp),%edx # qhasm: t += u # asm 1: add c=int32#4 # asm 2: movl c=%ebx movl 140(%esp),%ebx # qhasm: x11 = r # asm 1: movl x11=stack32#33 # asm 2: movl x11=128(%esp) movl %esi,128(%esp) # qhasm: r += u # asm 1: add e=int32#6 # asm 2: lea (e=%edi lea (%eax,%edx),%edi # qhasm: e <<<= 7 # asm 1: rol $7,x1=stack32#36 # asm 2: movl x1=140(%esp) movl %ebx,140(%esp) # qhasm: d = x2 # asm 1: movl d=int32#6 # asm 2: movl d=%edi movl 112(%esp),%edi # qhasm: s ^= r # asm 1: xor e=int32#5 # asm 2: lea (e=%esi lea (%edx,%ebx),%esi # qhasm: e <<<= 9 # asm 1: rol $9,x2=stack32#29 # asm 2: movl x2=112(%esp) movl %edi,112(%esp) # qhasm: r = x4 # asm 1: movl r=int32#5 # asm 2: movl r=%esi movl 104(%esp),%esi # qhasm: x15 = s # asm 1: movl x15=stack32#27 # asm 2: movl x15=104(%esp) movl %ebp,104(%esp) # qhasm: s = x5 # asm 1: movl s=int32#7 # asm 2: movl s=%ebp movl 148(%esp),%ebp # qhasm: c += d # asm 1: add t=int32#4 # asm 2: movl t=%ebx movl 116(%esp),%ebx # qhasm: x3 = a # asm 1: movl x3=stack32#30 # asm 2: movl x3=116(%esp) movl %eax,116(%esp) # qhasm: a += d # asm 1: add v=int32#6 # asm 2: lea (v=%edi lea (%esi,%ebp),%edi # qhasm: v <<<= 7 # asm 1: rol $7,x6=stack32#38 # asm 2: movl x6=148(%esp) movl %ebx,148(%esp) # qhasm: u = x7 # asm 1: movl u=int32#6 # asm 2: movl u=%edi movl 132(%esp),%edi # qhasm: b ^= a # asm 1: xor v=int32#1 # asm 2: lea (v=%eax lea (%ebp,%ebx),%eax # qhasm: v <<<= 9 # asm 1: rol $9,x7=stack32#34 # asm 2: movl x7=132(%esp) movl %edi,132(%esp) # qhasm: a = x9 # asm 1: movl a=int32#1 # asm 2: movl a=%eax movl 124(%esp),%eax # qhasm: x0 = b # asm 1: movl x0=stack32#32 # asm 2: movl x0=124(%esp) movl %edx,124(%esp) # qhasm: b = x10 # asm 1: movl b=int32#3 # asm 2: movl b=%edx movl 152(%esp),%edx # qhasm: t += u # asm 1: add c=int32#4 # asm 2: movl c=%ebx movl 128(%esp),%ebx # qhasm: x4 = r # asm 1: movl x4=stack32#33 # asm 2: movl x4=128(%esp) movl %esi,128(%esp) # qhasm: r += u # asm 1: add e=int32#6 # asm 2: lea (e=%edi lea (%eax,%edx),%edi # qhasm: e <<<= 7 # asm 1: rol $7,x11=stack32#39 # asm 2: movl x11=152(%esp) movl %ebx,152(%esp) # qhasm: d = x8 # asm 1: movl d=int32#6 # asm 2: movl d=%edi movl 108(%esp),%edi # qhasm: s ^= r # asm 1: xor e=int32#5 # asm 2: lea (e=%esi lea (%edx,%ebx),%esi # qhasm: e <<<= 9 # asm 1: rol $9,x8=stack32#28 # asm 2: movl x8=108(%esp) movl %edi,108(%esp) # qhasm: r = x14 # asm 1: movl r=int32#5 # asm 2: movl r=%esi movl 144(%esp),%esi # qhasm: x5 = s # asm 1: movl x5=stack32#37 # asm 2: movl x5=144(%esp) movl %ebp,144(%esp) # qhasm: s = x15 # asm 1: movl s=int32#7 # asm 2: movl s=%ebp movl 104(%esp),%ebp # qhasm: c += d # asm 1: add t=int32#4 # asm 2: movl t=%ebx movl 120(%esp),%ebx # qhasm: x9 = a # asm 1: movl x9=stack32#27 # asm 2: movl x9=104(%esp) movl %eax,104(%esp) # qhasm: a += d # asm 1: add v=int32#6 # asm 2: lea (v=%edi lea (%esi,%ebp),%edi # qhasm: v <<<= 7 # asm 1: rol $7,u=int32#6 # asm 2: movl u=%edi movl 136(%esp),%edi # qhasm: b ^= a # asm 1: xor v=int32#1 # asm 2: lea (v=%eax lea (%ebp,%ebx),%eax # qhasm: v <<<= 9 # asm 1: rol $9,x13=stack32#31 # asm 2: movl x13=120(%esp) movl %edi,120(%esp) # qhasm: a = t # asm 1: mov a=int32#1 # asm 2: mov a=%eax mov %ebx,%eax # qhasm: x10 = b # asm 1: movl x10=stack32#35 # asm 2: movl x10=136(%esp) movl %edx,136(%esp) # qhasm: b = x0 # asm 1: movl b=int32#3 # asm 2: movl b=%edx movl 124(%esp),%edx # qhasm: t += u # asm 1: add c=int32#4 # asm 2: movl c=%ebx movl 128(%esp),%ebx # qhasm: x14 = r # asm 1: movl x14=stack32#32 # asm 2: movl x14=124(%esp) movl %esi,124(%esp) # qhasm: r += u # asm 1: add e=int32#6 # asm 2: lea (e=%edi lea (%eax,%edx),%edi # qhasm: e <<<= 7 # asm 1: rol $7,x4=stack32#33 # asm 2: movl x4=128(%esp) movl %ebx,128(%esp) # qhasm: s ^= r # asm 1: xor d=int32#5 # asm 2: movl d=%esi movl 108(%esp),%esi # qhasm: e = b + c # asm 1: lea (e=int32#6 # asm 2: lea (e=%edi lea (%edx,%ebx),%edi # qhasm: e <<<= 9 # asm 1: rol $9,r=int32#6 # asm 2: movl r=%edi movl 140(%esp),%edi # qhasm: x15 = s # asm 1: movl x15=stack32#28 # asm 2: movl x15=108(%esp) movl %ebp,108(%esp) # qhasm: s = x5 # asm 1: movl s=int32#7 # asm 2: movl s=%ebp movl 144(%esp),%ebp # qhasm: x8 = d # asm 1: movl x8=stack32#36 # asm 2: movl x8=140(%esp) movl %esi,140(%esp) # qhasm: c += d # asm 1: add t=int32#4 # asm 2: movl t=%ebx movl 104(%esp),%ebx # qhasm: x12 = a # asm 1: movl x12=stack32#37 # asm 2: movl x12=144(%esp) movl %eax,144(%esp) # qhasm: a += d # asm 1: add v=int32#5 # asm 2: lea (v=%esi lea (%edi,%ebp),%esi # qhasm: v <<<= 7 # asm 1: rol $7,x9=stack32#27 # asm 2: movl x9=104(%esp) movl %ebx,104(%esp) # qhasm: u = x13 # asm 1: movl u=int32#5 # asm 2: movl u=%esi movl 120(%esp),%esi # qhasm: b ^= a # asm 1: xor v=int32#1 # asm 2: lea (v=%eax lea (%ebp,%ebx),%eax # qhasm: v <<<= 9 # asm 1: rol $9,x13=stack32#40 # asm 2: movl x13=156(%esp) movl %esi,156(%esp) # qhasm: a = x6 # asm 1: movl a=int32#1 # asm 2: movl a=%eax movl 148(%esp),%eax # qhasm: x0 = b # asm 1: movl x0=stack32#31 # asm 2: movl x0=120(%esp) movl %edx,120(%esp) # qhasm: b = x10 # asm 1: movl b=int32#3 # asm 2: movl b=%edx movl 136(%esp),%edx # qhasm: t += u # asm 1: add c=int32#4 # asm 2: movl c=%ebx movl 124(%esp),%ebx # qhasm: x1 = r # asm 1: movl x1=stack32#32 # asm 2: movl x1=124(%esp) movl %edi,124(%esp) # qhasm: r += u # asm 1: add e=int32#5 # asm 2: lea (e=%esi lea (%eax,%edx),%esi # qhasm: e <<<= 7 # asm 1: rol $7,x14=stack32#41 # asm 2: movl x14=160(%esp) movl %ebx,160(%esp) # qhasm: d = x2 # asm 1: movl d=int32#5 # asm 2: movl d=%esi movl 112(%esp),%esi # qhasm: s ^= r # asm 1: xor e=int32#6 # asm 2: lea (e=%edi lea (%edx,%ebx),%edi # qhasm: e <<<= 9 # asm 1: rol $9,x2=stack32#29 # asm 2: movl x2=112(%esp) movl %esi,112(%esp) # qhasm: r = x11 # asm 1: movl r=int32#6 # asm 2: movl r=%edi movl 152(%esp),%edi # qhasm: x5 = s # asm 1: movl x5=stack32#35 # asm 2: movl x5=136(%esp) movl %ebp,136(%esp) # qhasm: s = x15 # asm 1: movl s=int32#7 # asm 2: movl s=%ebp movl 108(%esp),%ebp # qhasm: c += d # asm 1: add t=int32#4 # asm 2: movl t=%ebx movl 116(%esp),%ebx # qhasm: x6 = a # asm 1: movl x6=stack32#30 # asm 2: movl x6=116(%esp) movl %eax,116(%esp) # qhasm: a += d # asm 1: add v=int32#5 # asm 2: lea (v=%esi lea (%edi,%ebp),%esi # qhasm: v <<<= 7 # asm 1: rol $7,u=int32#5 # asm 2: movl u=%esi movl 132(%esp),%esi # qhasm: b ^= a # asm 1: xor v=int32#1 # asm 2: lea (v=%eax lea (%ebp,%ebx),%eax # qhasm: v <<<= 9 # asm 1: rol $9,x7=stack32#34 # asm 2: movl x7=132(%esp) movl %esi,132(%esp) # qhasm: a = t # asm 1: mov a=int32#1 # asm 2: mov a=%eax mov %ebx,%eax # qhasm: x10 = b # asm 1: movl x10=stack32#38 # asm 2: movl x10=148(%esp) movl %edx,148(%esp) # qhasm: b = x0 # asm 1: movl b=int32#3 # asm 2: movl b=%edx movl 120(%esp),%edx # qhasm: t += u # asm 1: add c=int32#4 # asm 2: movl c=%ebx movl 124(%esp),%ebx # qhasm: x11 = r # asm 1: movl x11=stack32#31 # asm 2: movl x11=120(%esp) movl %edi,120(%esp) # qhasm: r += u # asm 1: add e=int32#5 # asm 2: lea (e=%esi lea (%eax,%edx),%esi # qhasm: e <<<= 7 # asm 1: rol $7,x1=stack32#28 # asm 2: movl x1=108(%esp) movl %ebx,108(%esp) # qhasm: d = x2 # asm 1: movl d=int32#5 # asm 2: movl d=%esi movl 112(%esp),%esi # qhasm: s ^= r # asm 1: xor e=int32#6 # asm 2: lea (e=%edi lea (%edx,%ebx),%edi # qhasm: e <<<= 9 # asm 1: rol $9,x2=stack32#29 # asm 2: movl x2=112(%esp) movl %esi,112(%esp) # qhasm: r = x4 # asm 1: movl r=int32#6 # asm 2: movl r=%edi movl 128(%esp),%edi # qhasm: x15 = s # asm 1: movl x15=stack32#39 # asm 2: movl x15=152(%esp) movl %ebp,152(%esp) # qhasm: s = x5 # asm 1: movl s=int32#7 # asm 2: movl s=%ebp movl 136(%esp),%ebp # qhasm: c += d # asm 1: add t=int32#4 # asm 2: movl t=%ebx movl 116(%esp),%ebx # qhasm: x3 = a # asm 1: movl x3=stack32#30 # asm 2: movl x3=116(%esp) movl %eax,116(%esp) # qhasm: a += d # asm 1: add v=int32#5 # asm 2: lea (v=%esi lea (%edi,%ebp),%esi # qhasm: v <<<= 7 # asm 1: rol $7,x6=stack32#33 # asm 2: movl x6=128(%esp) movl %ebx,128(%esp) # qhasm: u = x7 # asm 1: movl u=int32#5 # asm 2: movl u=%esi movl 132(%esp),%esi # qhasm: b ^= a # asm 1: xor v=int32#1 # asm 2: lea (v=%eax lea (%ebp,%ebx),%eax # qhasm: v <<<= 9 # asm 1: rol $9,x7=stack32#34 # asm 2: movl x7=132(%esp) movl %esi,132(%esp) # qhasm: a = x9 # asm 1: movl a=int32#1 # asm 2: movl a=%eax movl 104(%esp),%eax # qhasm: x0 = b # asm 1: movl x0=stack32#27 # asm 2: movl x0=104(%esp) movl %edx,104(%esp) # qhasm: b = x10 # asm 1: movl b=int32#3 # asm 2: movl b=%edx movl 148(%esp),%edx # qhasm: t += u # asm 1: add c=int32#4 # asm 2: movl c=%ebx movl 120(%esp),%ebx # qhasm: x4 = r # asm 1: movl x4=stack32#31 # asm 2: movl x4=120(%esp) movl %edi,120(%esp) # qhasm: r += u # asm 1: add e=int32#5 # asm 2: lea (e=%esi lea (%eax,%edx),%esi # qhasm: e <<<= 7 # asm 1: rol $7,x11=stack32#38 # asm 2: movl x11=148(%esp) movl %ebx,148(%esp) # qhasm: d = x8 # asm 1: movl d=int32#5 # asm 2: movl d=%esi movl 140(%esp),%esi # qhasm: s ^= r # asm 1: xor e=int32#6 # asm 2: lea (e=%edi lea (%edx,%ebx),%edi # qhasm: e <<<= 9 # asm 1: rol $9,x8=stack32#35 # asm 2: movl x8=136(%esp) movl %esi,136(%esp) # qhasm: r = x14 # asm 1: movl r=int32#6 # asm 2: movl r=%edi movl 160(%esp),%edi # qhasm: x5 = s # asm 1: movl x5=stack32#32 # asm 2: movl x5=124(%esp) movl %ebp,124(%esp) # qhasm: s = x15 # asm 1: movl s=int32#7 # asm 2: movl s=%ebp movl 152(%esp),%ebp # qhasm: c += d # asm 1: add t=int32#4 # asm 2: movl t=%ebx movl 144(%esp),%ebx # qhasm: x9 = a # asm 1: movl x9=stack32#36 # asm 2: movl x9=140(%esp) movl %eax,140(%esp) # qhasm: a += d # asm 1: add v=int32#5 # asm 2: lea (v=%esi lea (%edi,%ebp),%esi # qhasm: v <<<= 7 # asm 1: rol $7,x12=stack32#39 # asm 2: movl x12=152(%esp) movl %ebx,152(%esp) # qhasm: u = x13 # asm 1: movl u=int32#5 # asm 2: movl u=%esi movl 156(%esp),%esi # qhasm: b ^= a # asm 1: xor v=int32#1 # asm 2: lea (v=%eax lea (%ebp,%ebx),%eax # qhasm: v <<<= 9 # asm 1: rol $9,x13=stack32#40 # asm 2: movl x13=156(%esp) movl %esi,156(%esp) # qhasm: t += u # asm 1: add x10=stack32#37 # asm 2: movl x10=144(%esp) movl %edx,144(%esp) # qhasm: t <<<= 13 # asm 1: rol $13,x14=stack32#41 # asm 2: movl x14=160(%esp) movl %edi,160(%esp) # qhasm: r += u # asm 1: add x15=stack32#42 # asm 2: movl x15=164(%esp) movl %ebp,164(%esp) # qhasm: unsigned>? i -= 4 # asm 1: sub $4, ja ._mainloop # qhasm: out = out_backup # asm 1: movl out=int32#6 # asm 2: movl out=%edi movl 92(%esp),%edi # qhasm: m = m_backup # asm 1: movl m=int32#5 # asm 2: movl m=%esi movl 96(%esp),%esi # qhasm: in0 = x0 # asm 1: movl in0=int32#1 # asm 2: movl in0=%eax movl 104(%esp),%eax # qhasm: in1 = x1 # asm 1: movl in1=int32#2 # asm 2: movl in1=%ecx movl 108(%esp),%ecx # qhasm: in0 += j0 # asm 1: addl in2=int32#7 # asm 2: movl in2=%ebp movl 112(%esp),%ebp # qhasm: in3 = x3 # asm 1: movl in3=int32#1 # asm 2: movl in3=%eax movl 116(%esp),%eax # qhasm: in2 += j2 # asm 1: addl in4=int32#2 # asm 2: movl in4=%ecx movl 120(%esp),%ecx # qhasm: in5 = x5 # asm 1: movl in5=int32#7 # asm 2: movl in5=%ebp movl 124(%esp),%ebp # qhasm: in4 += j4 # asm 1: addl in6=int32#1 # asm 2: movl in6=%eax movl 128(%esp),%eax # qhasm: in7 = x7 # asm 1: movl in7=int32#2 # asm 2: movl in7=%ecx movl 132(%esp),%ecx # qhasm: in6 += j6 # asm 1: addl in8=int32#1 # asm 2: movl in8=%eax movl 136(%esp),%eax # qhasm: in9 = x9 # asm 1: movl in9=int32#2 # asm 2: movl in9=%ecx movl 140(%esp),%ecx # qhasm: in8 += j8 # asm 1: addl in10=int32#2 # asm 2: movl in10=%ecx movl 144(%esp),%ecx # qhasm: in11 = x11 # asm 1: movl in11=int32#7 # asm 2: movl in11=%ebp movl 148(%esp),%ebp # qhasm: in10 += j10 # asm 1: addl in12=int32#1 # asm 2: movl in12=%eax movl 152(%esp),%eax # qhasm: in13 = x13 # asm 1: movl in13=int32#2 # asm 2: movl in13=%ecx movl 156(%esp),%ecx # qhasm: in12 += j12 # asm 1: addl in14=int32#7 # asm 2: movl in14=%ebp movl 160(%esp),%ebp # qhasm: in15 = x15 # asm 1: movl in15=int32#1 # asm 2: movl in15=%eax movl 164(%esp),%eax # qhasm: in14 += j14 # asm 1: addl bytes=int32#4 # asm 2: movl bytes=%ebx movl 100(%esp),%ebx # qhasm: in8 = j8 # asm 1: movl in8=int32#7 # asm 2: movl in8=%ebp movl 52(%esp),%ebp # qhasm: in9 = j9 # asm 1: movl in9=int32#1 # asm 2: movl in9=%eax movl 56(%esp),%eax # qhasm: in8 += 1 # asm 1: add $1,j8=stack32#14 # asm 2: movl j8=52(%esp) movl %ebp,52(%esp) # qhasm: j9 = in9 # asm 1: movl j9=stack32#15 # asm 2: movl j9=56(%esp) movl %eax,56(%esp) # qhasm: unsigned>? unsigned ja ._bytesatleast65 # comment:fp stack unchanged by jump # qhasm: goto bytesatleast64 if !unsigned< jae ._bytesatleast64 # qhasm: m = out # asm 1: mov m=int32#5 # asm 2: mov m=%esi mov %edi,%esi # qhasm: out = ctarget # asm 1: movl out=int32#6 # asm 2: movl out=%edi movl 88(%esp),%edi # qhasm: i = bytes # asm 1: mov i=int32#2 # asm 2: mov i=%ecx mov %ebx,%ecx # qhasm: while (i) { *out++ = *m++; --i } rep movsb # comment:fp stack unchanged by fallthrough # qhasm: bytesatleast64: ._bytesatleast64: # qhasm: x = x_backup # asm 1: movl x=int32#3 # asm 2: movl x=%edx movl 84(%esp),%edx # qhasm: in8 = j8 # asm 1: movl in8=int32#1 # asm 2: movl in8=%eax movl 52(%esp),%eax # qhasm: in9 = j9 # asm 1: movl in9=int32#2 # asm 2: movl in9=%ecx movl 56(%esp),%ecx # qhasm: *(uint32 *) (x + 32) = in8 # asm 1: movl eax=int32#1 # asm 2: movl eax=%eax movl 0(%esp),%eax # qhasm: ebx = ebx_stack # asm 1: movl ebx=int32#4 # asm 2: movl ebx=%ebx movl 4(%esp),%ebx # qhasm: esi = esi_stack # asm 1: movl esi=int32#5 # asm 2: movl esi=%esi movl 8(%esp),%esi # qhasm: edi = edi_stack # asm 1: movl edi=int32#6 # asm 2: movl edi=%edi movl 12(%esp),%edi # qhasm: ebp = ebp_stack # asm 1: movl ebp=int32#7 # asm 2: movl ebp=%ebp movl 16(%esp),%ebp # qhasm: leave add %eax,%esp ret # qhasm: bytesatleast65: ._bytesatleast65: # qhasm: bytes -= 64 # asm 1: sub $64,eax_stack=stack32#1 # asm 2: movl eax_stack=0(%esp) movl %eax,0(%esp) # qhasm: ebx_stack = ebx # asm 1: movl ebx_stack=stack32#2 # asm 2: movl ebx_stack=4(%esp) movl %ebx,4(%esp) # qhasm: esi_stack = esi # asm 1: movl esi_stack=stack32#3 # asm 2: movl esi_stack=8(%esp) movl %esi,8(%esp) # qhasm: edi_stack = edi # asm 1: movl edi_stack=stack32#4 # asm 2: movl edi_stack=12(%esp) movl %edi,12(%esp) # qhasm: ebp_stack = ebp # asm 1: movl ebp_stack=stack32#5 # asm 2: movl ebp_stack=16(%esp) movl %ebp,16(%esp) # qhasm: k = arg2 # asm 1: movl k=int32#2 # asm 2: movl k=%ecx movl 8(%esp,%eax),%ecx # qhasm: kbits = arg3 # asm 1: movl kbits=int32#3 # asm 2: movl kbits=%edx movl 12(%esp,%eax),%edx # qhasm: x = arg1 # asm 1: movl x=int32#1 # asm 2: movl x=%eax movl 4(%esp,%eax),%eax # qhasm: in1 = *(uint32 *) (k + 0) # asm 1: movl 0(in1=int32#4 # asm 2: movl 0(in1=%ebx movl 0(%ecx),%ebx # qhasm: in2 = *(uint32 *) (k + 4) # asm 1: movl 4(in2=int32#5 # asm 2: movl 4(in2=%esi movl 4(%ecx),%esi # qhasm: in3 = *(uint32 *) (k + 8) # asm 1: movl 8(in3=int32#6 # asm 2: movl 8(in3=%edi movl 8(%ecx),%edi # qhasm: in4 = *(uint32 *) (k + 12) # asm 1: movl 12(in4=int32#7 # asm 2: movl 12(in4=%ebp movl 12(%ecx),%ebp # qhasm: *(uint32 *) (x + 4) = in1 # asm 1: movl in11=int32#3 # asm 2: movl 16(in11=%edx movl 16(%ecx),%edx # qhasm: in12 = *(uint32 *) (k + 20) # asm 1: movl 20(in12=int32#4 # asm 2: movl 20(in12=%ebx movl 20(%ecx),%ebx # qhasm: in13 = *(uint32 *) (k + 24) # asm 1: movl 24(in13=int32#5 # asm 2: movl 24(in13=%esi movl 24(%ecx),%esi # qhasm: in14 = *(uint32 *) (k + 28) # asm 1: movl 28(in14=int32#2 # asm 2: movl 28(in14=%ecx movl 28(%ecx),%ecx # qhasm: *(uint32 *) (x + 44) = in11 # asm 1: movl in0=int32#2 # asm 2: mov $1634760805,>in0=%ecx mov $1634760805,%ecx # qhasm: in5 = 857760878 # asm 1: mov $857760878,>in5=int32#3 # asm 2: mov $857760878,>in5=%edx mov $857760878,%edx # qhasm: in10 = 2036477234 # asm 1: mov $2036477234,>in10=int32#4 # asm 2: mov $2036477234,>in10=%ebx mov $2036477234,%ebx # qhasm: in15 = 1797285236 # asm 1: mov $1797285236,>in15=int32#5 # asm 2: mov $1797285236,>in15=%esi mov $1797285236,%esi # qhasm: *(uint32 *) (x + 0) = in0 # asm 1: movl in11=int32#3 # asm 2: movl 0(in11=%edx movl 0(%ecx),%edx # qhasm: in12 = *(uint32 *) (k + 4) # asm 1: movl 4(in12=int32#4 # asm 2: movl 4(in12=%ebx movl 4(%ecx),%ebx # qhasm: in13 = *(uint32 *) (k + 8) # asm 1: movl 8(in13=int32#5 # asm 2: movl 8(in13=%esi movl 8(%ecx),%esi # qhasm: in14 = *(uint32 *) (k + 12) # asm 1: movl 12(in14=int32#2 # asm 2: movl 12(in14=%ecx movl 12(%ecx),%ecx # qhasm: *(uint32 *) (x + 44) = in11 # asm 1: movl in0=int32#2 # asm 2: mov $1634760805,>in0=%ecx mov $1634760805,%ecx # qhasm: in5 = 824206446 # asm 1: mov $824206446,>in5=int32#3 # asm 2: mov $824206446,>in5=%edx mov $824206446,%edx # qhasm: in10 = 2036477238 # asm 1: mov $2036477238,>in10=int32#4 # asm 2: mov $2036477238,>in10=%ebx mov $2036477238,%ebx # qhasm: in15 = 1797285236 # asm 1: mov $1797285236,>in15=int32#5 # asm 2: mov $1797285236,>in15=%esi mov $1797285236,%esi # qhasm: *(uint32 *) (x + 0) = in0 # asm 1: movl eax=int32#1 # asm 2: movl eax=%eax movl 0(%esp),%eax # qhasm: ebx = ebx_stack # asm 1: movl ebx=int32#4 # asm 2: movl ebx=%ebx movl 4(%esp),%ebx # qhasm: esi = esi_stack # asm 1: movl esi=int32#5 # asm 2: movl esi=%esi movl 8(%esp),%esi # qhasm: edi = edi_stack # asm 1: movl edi=int32#6 # asm 2: movl edi=%edi movl 12(%esp),%edi # qhasm: ebp = ebp_stack # asm 1: movl ebp=int32#7 # asm 2: movl ebp=%ebp movl 16(%esp),%ebp # qhasm: leave add %eax,%esp ret # qhasm: enter ECRYPT_ivsetup .text .p2align 5 .globl _ECRYPT_ivsetup .globl ECRYPT_ivsetup _ECRYPT_ivsetup: ECRYPT_ivsetup: mov %esp,%eax and $31,%eax add $256,%eax sub %eax,%esp # qhasm: eax_stack = eax # asm 1: movl eax_stack=stack32#1 # asm 2: movl eax_stack=0(%esp) movl %eax,0(%esp) # qhasm: ebx_stack = ebx # asm 1: movl ebx_stack=stack32#2 # asm 2: movl ebx_stack=4(%esp) movl %ebx,4(%esp) # qhasm: esi_stack = esi # asm 1: movl esi_stack=stack32#3 # asm 2: movl esi_stack=8(%esp) movl %esi,8(%esp) # qhasm: edi_stack = edi # asm 1: movl edi_stack=stack32#4 # asm 2: movl edi_stack=12(%esp) movl %edi,12(%esp) # qhasm: ebp_stack = ebp # asm 1: movl ebp_stack=stack32#5 # asm 2: movl ebp_stack=16(%esp) movl %ebp,16(%esp) # qhasm: iv = arg2 # asm 1: movl iv=int32#2 # asm 2: movl iv=%ecx movl 8(%esp,%eax),%ecx # qhasm: x = arg1 # asm 1: movl x=int32#1 # asm 2: movl x=%eax movl 4(%esp,%eax),%eax # qhasm: in6 = *(uint32 *) (iv + 0) # asm 1: movl 0(in6=int32#3 # asm 2: movl 0(in6=%edx movl 0(%ecx),%edx # qhasm: in7 = *(uint32 *) (iv + 4) # asm 1: movl 4(in7=int32#2 # asm 2: movl 4(in7=%ecx movl 4(%ecx),%ecx # qhasm: in8 = 0 # asm 1: mov $0,>in8=int32#4 # asm 2: mov $0,>in8=%ebx mov $0,%ebx # qhasm: in9 = 0 # asm 1: mov $0,>in9=int32#5 # asm 2: mov $0,>in9=%esi mov $0,%esi # qhasm: *(uint32 *) (x + 24) = in6 # asm 1: movl eax=int32#1 # asm 2: movl eax=%eax movl 0(%esp),%eax # qhasm: ebx = ebx_stack # asm 1: movl ebx=int32#4 # asm 2: movl ebx=%ebx movl 4(%esp),%ebx # qhasm: esi = esi_stack # asm 1: movl esi=int32#5 # asm 2: movl esi=%esi movl 8(%esp),%esi # qhasm: edi = edi_stack # asm 1: movl edi=int32#6 # asm 2: movl edi=%edi movl 12(%esp),%edi # qhasm: ebp = ebp_stack # asm 1: movl ebp=int32#7 # asm 2: movl ebp=%ebp movl 16(%esp),%ebp # qhasm: leave add %eax,%esp ret