# qhasm: int32 a # 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: int32 x # qhasm: int32 m # 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: int6464 diag0 # qhasm: int6464 diag1 # qhasm: int6464 diag2 # qhasm: int6464 diag3 # qhasm: int6464 p # qhasm: int6464 q # qhasm: int6464 r # qhasm: int6464 s # qhasm: int6464 t # qhasm: int6464 u # qhasm: int6464 v # qhasm: int6464 w # qhasm: int6464 mp # qhasm: int6464 mq # qhasm: int6464 mr # qhasm: int6464 ms # qhasm: int6464 mt # qhasm: int6464 mu # qhasm: int6464 mv # qhasm: int6464 mw # qhasm: int6464 a0 # qhasm: int6464 a1 # qhasm: int6464 a2 # qhasm: int6464 a3 # qhasm: int6464 a4 # qhasm: int6464 a5 # qhasm: int6464 a6 # qhasm: int6464 a7 # qhasm: int6464 b0 # qhasm: int6464 b1 # qhasm: int6464 b2 # qhasm: int6464 b3 # qhasm: int6464 b4 # qhasm: int6464 b5 # qhasm: int6464 b6 # qhasm: int6464 b7 # qhasm: int6464 z0 # qhasm: int6464 z1 # qhasm: int6464 z2 # qhasm: int6464 z3 # qhasm: int6464 z4 # qhasm: int6464 z5 # qhasm: int6464 z6 # qhasm: int6464 z7 # qhasm: int6464 z8 # qhasm: int6464 z9 # qhasm: int6464 z10 # qhasm: int6464 z11 # qhasm: int6464 z12 # qhasm: int6464 z13 # qhasm: int6464 z14 # qhasm: int6464 z15 # qhasm: stack128 z0_stack # qhasm: stack128 z1_stack # qhasm: stack128 z2_stack # qhasm: stack128 z3_stack # qhasm: stack128 z4_stack # qhasm: stack128 z5_stack # qhasm: stack128 z6_stack # qhasm: stack128 z7_stack # qhasm: stack128 z8_stack # qhasm: stack128 z9_stack # qhasm: stack128 z10_stack # qhasm: stack128 z11_stack # qhasm: stack128 z12_stack # qhasm: stack128 z13_stack # qhasm: stack128 z14_stack # qhasm: stack128 z15_stack # qhasm: stack128 orig0 # qhasm: stack128 orig1 # qhasm: stack128 orig2 # qhasm: stack128 orig3 # qhasm: stack128 orig4 # qhasm: stack128 orig5 # qhasm: stack128 orig6 # qhasm: stack128 orig7 # qhasm: stack128 orig8 # qhasm: stack128 orig9 # qhasm: stack128 orig10 # qhasm: stack128 orig11 # qhasm: stack128 orig12 # qhasm: stack128 orig13 # qhasm: stack128 orig14 # qhasm: stack128 orig15 # 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: 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 $640,%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: subl 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 $640,%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: unsignedz0=int6464#1 # asm 2: movdqa 0(z0=%xmm0 movdqa 0(%edx),%xmm0 # qhasm: z1 = z0[1,1,1,1] # asm 1: pshufd $0x55,z1=int6464#2 # asm 2: pshufd $0x55,z1=%xmm1 pshufd $0x55,%xmm0,%xmm1 # qhasm: z2 = z0[2,2,2,2] # asm 1: pshufd $0xaa,z2=int6464#3 # asm 2: pshufd $0xaa,z2=%xmm2 pshufd $0xaa,%xmm0,%xmm2 # qhasm: z3 = z0[3,3,3,3] # asm 1: pshufd $0xff,z3=int6464#4 # asm 2: pshufd $0xff,z3=%xmm3 pshufd $0xff,%xmm0,%xmm3 # qhasm: z0 = z0[0,0,0,0] # asm 1: pshufd $0x00,z0=int6464#1 # asm 2: pshufd $0x00,z0=%xmm0 pshufd $0x00,%xmm0,%xmm0 # qhasm: orig0 = z0 # asm 1: movdqa orig0=stack128#1 # asm 2: movdqa orig0=32(%esp) movdqa %xmm0,32(%esp) # qhasm: orig1 = z1 # asm 1: movdqa orig1=stack128#2 # asm 2: movdqa orig1=48(%esp) movdqa %xmm1,48(%esp) # qhasm: orig2 = z2 # asm 1: movdqa orig2=stack128#3 # asm 2: movdqa orig2=64(%esp) movdqa %xmm2,64(%esp) # qhasm: orig3 = z3 # asm 1: movdqa orig3=stack128#4 # asm 2: movdqa orig3=80(%esp) movdqa %xmm3,80(%esp) # qhasm: z4 = *(int128 *) (x + 16) # asm 1: movdqa 16(z4=int6464#1 # asm 2: movdqa 16(z4=%xmm0 movdqa 16(%edx),%xmm0 # qhasm: z5 = z4[1,1,1,1] # asm 1: pshufd $0x55,z5=int6464#2 # asm 2: pshufd $0x55,z5=%xmm1 pshufd $0x55,%xmm0,%xmm1 # qhasm: z6 = z4[2,2,2,2] # asm 1: pshufd $0xaa,z6=int6464#3 # asm 2: pshufd $0xaa,z6=%xmm2 pshufd $0xaa,%xmm0,%xmm2 # qhasm: z7 = z4[3,3,3,3] # asm 1: pshufd $0xff,z7=int6464#4 # asm 2: pshufd $0xff,z7=%xmm3 pshufd $0xff,%xmm0,%xmm3 # qhasm: z4 = z4[0,0,0,0] # asm 1: pshufd $0x00,z4=int6464#1 # asm 2: pshufd $0x00,z4=%xmm0 pshufd $0x00,%xmm0,%xmm0 # qhasm: orig4 = z4 # asm 1: movdqa orig4=stack128#5 # asm 2: movdqa orig4=96(%esp) movdqa %xmm0,96(%esp) # qhasm: orig5 = z5 # asm 1: movdqa orig5=stack128#6 # asm 2: movdqa orig5=112(%esp) movdqa %xmm1,112(%esp) # qhasm: orig6 = z6 # asm 1: movdqa orig6=stack128#7 # asm 2: movdqa orig6=128(%esp) movdqa %xmm2,128(%esp) # qhasm: orig7 = z7 # asm 1: movdqa orig7=stack128#8 # asm 2: movdqa orig7=144(%esp) movdqa %xmm3,144(%esp) # qhasm: z8 = *(int128 *) (x + 32) # asm 1: movdqa 32(z8=int6464#1 # asm 2: movdqa 32(z8=%xmm0 movdqa 32(%edx),%xmm0 # qhasm: z9 = z8[1,1,1,1] # asm 1: pshufd $0x55,z9=int6464#2 # asm 2: pshufd $0x55,z9=%xmm1 pshufd $0x55,%xmm0,%xmm1 # qhasm: z10 = z8[2,2,2,2] # asm 1: pshufd $0xaa,z10=int6464#3 # asm 2: pshufd $0xaa,z10=%xmm2 pshufd $0xaa,%xmm0,%xmm2 # qhasm: z11 = z8[3,3,3,3] # asm 1: pshufd $0xff,z11=int6464#4 # asm 2: pshufd $0xff,z11=%xmm3 pshufd $0xff,%xmm0,%xmm3 # qhasm: z8 = z8[0,0,0,0] # asm 1: pshufd $0x00,z8=int6464#1 # asm 2: pshufd $0x00,z8=%xmm0 pshufd $0x00,%xmm0,%xmm0 # qhasm: orig8 = z8 # asm 1: movdqa orig8=stack128#9 # asm 2: movdqa orig8=160(%esp) movdqa %xmm0,160(%esp) # qhasm: orig9 = z9 # asm 1: movdqa orig9=stack128#10 # asm 2: movdqa orig9=176(%esp) movdqa %xmm1,176(%esp) # qhasm: orig10 = z10 # asm 1: movdqa orig10=stack128#11 # asm 2: movdqa orig10=192(%esp) movdqa %xmm2,192(%esp) # qhasm: orig11 = z11 # asm 1: movdqa orig11=stack128#12 # asm 2: movdqa orig11=208(%esp) movdqa %xmm3,208(%esp) # qhasm: z12 = *(int128 *) (x + 48) # asm 1: movdqa 48(z12=int6464#1 # asm 2: movdqa 48(z12=%xmm0 movdqa 48(%edx),%xmm0 # qhasm: z14 = z12[2,2,2,2] # asm 1: pshufd $0xaa,z14=int6464#2 # asm 2: pshufd $0xaa,z14=%xmm1 pshufd $0xaa,%xmm0,%xmm1 # qhasm: z15 = z12[3,3,3,3] # asm 1: pshufd $0xff,z15=int6464#1 # asm 2: pshufd $0xff,z15=%xmm0 pshufd $0xff,%xmm0,%xmm0 # qhasm: orig14 = z14 # asm 1: movdqa orig14=stack128#13 # asm 2: movdqa orig14=224(%esp) movdqa %xmm1,224(%esp) # qhasm: orig15 = z15 # asm 1: movdqa orig15=stack128#14 # asm 2: movdqa orig15=240(%esp) movdqa %xmm0,240(%esp) # qhasm: bytesatleast256: ._bytesatleast256: # qhasm: in12 = *(uint32 *) (x + 48) # asm 1: movl 48(in12=int32#1 # asm 2: movl 48(in12=%eax movl 48(%edx),%eax # qhasm: in13 = *(uint32 *) (x + 52) # asm 1: movl 52(in13=int32#2 # asm 2: movl 52(in13=%ecx movl 52(%edx),%ecx # qhasm: ((uint32 *) &orig12)[0] = in12 # asm 1: movl orig12=stack128#15 # asm 2: movl orig12=256(%esp) movl %eax,256(%esp) # qhasm: ((uint32 *) &orig13)[0] = in13 # asm 1: movl orig13=stack128#16 # asm 2: movl orig13=272(%esp) movl %ecx,272(%esp) # qhasm: carry? in12 += 1 # asm 1: add $1,bytes_backup=stack32#6 # asm 2: movl bytes_backup=20(%esp) movl %ebx,20(%esp) # qhasm: i = 8 # asm 1: mov $8,>i=int32#1 # asm 2: mov $8,>i=%eax mov $8,%eax # qhasm: z5 = orig5 # asm 1: movdqa z5=int6464#1 # asm 2: movdqa z5=%xmm0 movdqa 112(%esp),%xmm0 # qhasm: z10 = orig10 # asm 1: movdqa z10=int6464#2 # asm 2: movdqa z10=%xmm1 movdqa 192(%esp),%xmm1 # qhasm: z15 = orig15 # asm 1: movdqa z15=int6464#3 # asm 2: movdqa z15=%xmm2 movdqa 240(%esp),%xmm2 # qhasm: z14 = orig14 # asm 1: movdqa z14=int6464#4 # asm 2: movdqa z14=%xmm3 movdqa 224(%esp),%xmm3 # qhasm: z3 = orig3 # asm 1: movdqa z3=int6464#5 # asm 2: movdqa z3=%xmm4 movdqa 80(%esp),%xmm4 # qhasm: z6 = orig6 # asm 1: movdqa z6=int6464#6 # asm 2: movdqa z6=%xmm5 movdqa 128(%esp),%xmm5 # qhasm: z11 = orig11 # asm 1: movdqa z11=int6464#7 # asm 2: movdqa z11=%xmm6 movdqa 208(%esp),%xmm6 # qhasm: z1 = orig1 # asm 1: movdqa z1=int6464#8 # asm 2: movdqa z1=%xmm7 movdqa 48(%esp),%xmm7 # qhasm: z5_stack = z5 # asm 1: movdqa z5_stack=stack128#17 # asm 2: movdqa z5_stack=288(%esp) movdqa %xmm0,288(%esp) # qhasm: z10_stack = z10 # asm 1: movdqa z10_stack=stack128#18 # asm 2: movdqa z10_stack=304(%esp) movdqa %xmm1,304(%esp) # qhasm: z15_stack = z15 # asm 1: movdqa z15_stack=stack128#19 # asm 2: movdqa z15_stack=320(%esp) movdqa %xmm2,320(%esp) # qhasm: z14_stack = z14 # asm 1: movdqa z14_stack=stack128#20 # asm 2: movdqa z14_stack=336(%esp) movdqa %xmm3,336(%esp) # qhasm: z3_stack = z3 # asm 1: movdqa z3_stack=stack128#21 # asm 2: movdqa z3_stack=352(%esp) movdqa %xmm4,352(%esp) # qhasm: z6_stack = z6 # asm 1: movdqa z6_stack=stack128#22 # asm 2: movdqa z6_stack=368(%esp) movdqa %xmm5,368(%esp) # qhasm: z11_stack = z11 # asm 1: movdqa z11_stack=stack128#23 # asm 2: movdqa z11_stack=384(%esp) movdqa %xmm6,384(%esp) # qhasm: z1_stack = z1 # asm 1: movdqa z1_stack=stack128#24 # asm 2: movdqa z1_stack=400(%esp) movdqa %xmm7,400(%esp) # qhasm: z7 = orig7 # asm 1: movdqa z7=int6464#5 # asm 2: movdqa z7=%xmm4 movdqa 144(%esp),%xmm4 # qhasm: z13 = orig13 # asm 1: movdqa z13=int6464#6 # asm 2: movdqa z13=%xmm5 movdqa 272(%esp),%xmm5 # qhasm: z2 = orig2 # asm 1: movdqa z2=int6464#7 # asm 2: movdqa z2=%xmm6 movdqa 64(%esp),%xmm6 # qhasm: z9 = orig9 # asm 1: movdqa z9=int6464#8 # asm 2: movdqa z9=%xmm7 movdqa 176(%esp),%xmm7 # qhasm: p = orig0 # asm 1: movdqa p=int6464#1 # asm 2: movdqa p=%xmm0 movdqa 32(%esp),%xmm0 # qhasm: t = orig12 # asm 1: movdqa t=int6464#3 # asm 2: movdqa t=%xmm2 movdqa 256(%esp),%xmm2 # qhasm: q = orig4 # asm 1: movdqa q=int6464#4 # asm 2: movdqa q=%xmm3 movdqa 96(%esp),%xmm3 # qhasm: r = orig8 # asm 1: movdqa r=int6464#2 # asm 2: movdqa r=%xmm1 movdqa 160(%esp),%xmm1 # qhasm: z7_stack = z7 # asm 1: movdqa z7_stack=stack128#25 # asm 2: movdqa z7_stack=416(%esp) movdqa %xmm4,416(%esp) # qhasm: z13_stack = z13 # asm 1: movdqa z13_stack=stack128#26 # asm 2: movdqa z13_stack=432(%esp) movdqa %xmm5,432(%esp) # qhasm: z2_stack = z2 # asm 1: movdqa z2_stack=stack128#27 # asm 2: movdqa z2_stack=448(%esp) movdqa %xmm6,448(%esp) # qhasm: z9_stack = z9 # asm 1: movdqa z9_stack=stack128#28 # asm 2: movdqa z9_stack=464(%esp) movdqa %xmm7,464(%esp) # qhasm: z0_stack = p # asm 1: movdqa z0_stack=stack128#29 # asm 2: movdqa z0_stack=480(%esp) movdqa %xmm0,480(%esp) # qhasm: z12_stack = t # asm 1: movdqa z12_stack=stack128#30 # asm 2: movdqa z12_stack=496(%esp) movdqa %xmm2,496(%esp) # qhasm: z4_stack = q # asm 1: movdqa z4_stack=stack128#31 # asm 2: movdqa z4_stack=512(%esp) movdqa %xmm3,512(%esp) # qhasm: z8_stack = r # asm 1: movdqa z8_stack=stack128#32 # asm 2: movdqa z8_stack=528(%esp) movdqa %xmm1,528(%esp) # qhasm: mainloop1: ._mainloop1: # qhasm: assign xmm0 to p # qhasm: assign xmm1 to r # qhasm: assign xmm2 to t # qhasm: assign xmm3 to q # qhasm: mp = z1_stack # asm 1: movdqa mp=int6464#5 # asm 2: movdqa mp=%xmm4 movdqa 400(%esp),%xmm4 # qhasm: mq = z5_stack # asm 1: movdqa mq=int6464#6 # asm 2: movdqa mq=%xmm5 movdqa 288(%esp),%xmm5 # qhasm: mt = z13_stack # asm 1: movdqa mt=int6464#7 # asm 2: movdqa mt=%xmm6 movdqa 432(%esp),%xmm6 # qhasm: uint32323232 p += q # asm 1: paddd u=int6464#8 # asm 2: movdqa u=%xmm7 movdqa %xmm2,%xmm7 # qhasm: uint32323232 u >>= 16 # asm 1: psrld $16,u=int6464#8 # asm 2: movdqa u=%xmm7 movdqa %xmm3,%xmm7 # qhasm: uint32323232 u >>= 20 # asm 1: psrld $20,mr=int6464#8 # asm 2: movdqa mr=%xmm7 movdqa 464(%esp),%xmm7 # qhasm: uint32323232 p += q # asm 1: paddd z0_stack=stack128#17 # asm 2: movdqa z0_stack=288(%esp) movdqa %xmm0,288(%esp) # qhasm: t ^= p # asm 1: pxor u=int6464#1 # asm 2: movdqa u=%xmm0 movdqa %xmm2,%xmm0 # qhasm: uint32323232 u >>= 24 # asm 1: psrld $24,z12_stack=stack128#24 # asm 2: movdqa z12_stack=400(%esp) movdqa %xmm2,400(%esp) # qhasm: uint32323232 r += t # asm 1: paddd z8_stack=stack128#26 # asm 2: movdqa z8_stack=432(%esp) movdqa %xmm1,432(%esp) # qhasm: q ^= r # asm 1: pxor u=int6464#1 # asm 2: movdqa u=%xmm0 movdqa %xmm3,%xmm0 # qhasm: uint32323232 u >>= 25 # asm 1: psrld $25,z4_stack=stack128#28 # asm 2: movdqa z4_stack=464(%esp) movdqa %xmm3,464(%esp) # qhasm: p = z2_stack # asm 1: movdqa p=int6464#1 # asm 2: movdqa p=%xmm0 movdqa 448(%esp),%xmm0 # qhasm: q = z6_stack # asm 1: movdqa q=int6464#4 # asm 2: movdqa q=%xmm3 movdqa 368(%esp),%xmm3 # qhasm: r = z10_stack # asm 1: movdqa r=int6464#2 # asm 2: movdqa r=%xmm1 movdqa 304(%esp),%xmm1 # qhasm: uint32323232 mp += mq # asm 1: paddd mu=int6464#3 # asm 2: movdqa mu=%xmm2 movdqa %xmm6,%xmm2 # qhasm: uint32323232 mu >>= 16 # asm 1: psrld $16,mu=int6464#3 # asm 2: movdqa mu=%xmm2 movdqa %xmm5,%xmm2 # qhasm: uint32323232 mu >>= 20 # asm 1: psrld $20,t=int6464#3 # asm 2: movdqa t=%xmm2 movdqa 336(%esp),%xmm2 # qhasm: uint32323232 mp += mq # asm 1: paddd z1_stack=stack128#18 # asm 2: movdqa z1_stack=304(%esp) movdqa %xmm4,304(%esp) # qhasm: mt ^= mp # asm 1: pxor mu=int6464#5 # asm 2: movdqa mu=%xmm4 movdqa %xmm6,%xmm4 # qhasm: uint32323232 mu >>= 24 # asm 1: psrld $24,z13_stack=stack128#20 # asm 2: movdqa z13_stack=336(%esp) movdqa %xmm6,336(%esp) # qhasm: uint32323232 mr += mt # asm 1: paddd z9_stack=stack128#27 # asm 2: movdqa z9_stack=448(%esp) movdqa %xmm7,448(%esp) # qhasm: mq ^= mr # asm 1: pxor mu=int6464#5 # asm 2: movdqa mu=%xmm4 movdqa %xmm5,%xmm4 # qhasm: uint32323232 mu >>= 25 # asm 1: psrld $25,z5_stack=stack128#22 # asm 2: movdqa z5_stack=368(%esp) movdqa %xmm5,368(%esp) # qhasm: assign xmm0 to p # qhasm: assign xmm1 to r # qhasm: assign xmm2 to t # qhasm: assign xmm3 to q # qhasm: mp = z3_stack # asm 1: movdqa mp=int6464#5 # asm 2: movdqa mp=%xmm4 movdqa 352(%esp),%xmm4 # qhasm: mq = z7_stack # asm 1: movdqa mq=int6464#6 # asm 2: movdqa mq=%xmm5 movdqa 416(%esp),%xmm5 # qhasm: mt = z15_stack # asm 1: movdqa mt=int6464#7 # asm 2: movdqa mt=%xmm6 movdqa 320(%esp),%xmm6 # qhasm: uint32323232 p += q # asm 1: paddd u=int6464#8 # asm 2: movdqa u=%xmm7 movdqa %xmm2,%xmm7 # qhasm: uint32323232 u >>= 16 # asm 1: psrld $16,u=int6464#8 # asm 2: movdqa u=%xmm7 movdqa %xmm3,%xmm7 # qhasm: uint32323232 u >>= 20 # asm 1: psrld $20,mr=int6464#8 # asm 2: movdqa mr=%xmm7 movdqa 384(%esp),%xmm7 # qhasm: uint32323232 p += q # asm 1: paddd z2_stack=stack128#21 # asm 2: movdqa z2_stack=352(%esp) movdqa %xmm0,352(%esp) # qhasm: t ^= p # asm 1: pxor u=int6464#1 # asm 2: movdqa u=%xmm0 movdqa %xmm2,%xmm0 # qhasm: uint32323232 u >>= 24 # asm 1: psrld $24,z14_stack=stack128#25 # asm 2: movdqa z14_stack=416(%esp) movdqa %xmm2,416(%esp) # qhasm: uint32323232 r += t # asm 1: paddd z10_stack=stack128#19 # asm 2: movdqa z10_stack=320(%esp) movdqa %xmm1,320(%esp) # qhasm: q ^= r # asm 1: pxor u=int6464#1 # asm 2: movdqa u=%xmm0 movdqa %xmm3,%xmm0 # qhasm: uint32323232 u >>= 25 # asm 1: psrld $25,z6_stack=stack128#23 # asm 2: movdqa z6_stack=384(%esp) movdqa %xmm3,384(%esp) # qhasm: p = z0_stack # asm 1: movdqa p=int6464#1 # asm 2: movdqa p=%xmm0 movdqa 288(%esp),%xmm0 # qhasm: q = z5_stack # asm 1: movdqa q=int6464#4 # asm 2: movdqa q=%xmm3 movdqa 368(%esp),%xmm3 # qhasm: r = z10_stack # asm 1: movdqa r=int6464#2 # asm 2: movdqa r=%xmm1 movdqa 320(%esp),%xmm1 # qhasm: uint32323232 mp += mq # asm 1: paddd mu=int6464#3 # asm 2: movdqa mu=%xmm2 movdqa %xmm6,%xmm2 # qhasm: uint32323232 mu >>= 16 # asm 1: psrld $16,mu=int6464#3 # asm 2: movdqa mu=%xmm2 movdqa %xmm5,%xmm2 # qhasm: uint32323232 mu >>= 20 # asm 1: psrld $20,z3_stack=stack128#29 # asm 2: movdqa z3_stack=480(%esp) movdqa %xmm4,480(%esp) # qhasm: mt ^= mp # asm 1: pxor mu=int6464#3 # asm 2: movdqa mu=%xmm2 movdqa %xmm6,%xmm2 # qhasm: uint32323232 mu >>= 24 # asm 1: psrld $24,z15_stack=stack128#30 # asm 2: movdqa z15_stack=496(%esp) movdqa %xmm6,496(%esp) # qhasm: t = mt # asm 1: movdqa t=int6464#3 # asm 2: movdqa t=%xmm2 movdqa %xmm6,%xmm2 # qhasm: uint32323232 mr += mt # asm 1: paddd z11_stack=stack128#17 # asm 2: movdqa z11_stack=288(%esp) movdqa %xmm7,288(%esp) # qhasm: mq ^= mr # asm 1: pxor mu=int6464#5 # asm 2: movdqa mu=%xmm4 movdqa %xmm5,%xmm4 # qhasm: uint32323232 mu >>= 25 # asm 1: psrld $25,z7_stack=stack128#22 # asm 2: movdqa z7_stack=368(%esp) movdqa %xmm5,368(%esp) # qhasm: assign xmm0 to p # qhasm: assign xmm1 to r # qhasm: assign xmm2 to t # qhasm: assign xmm3 to q # qhasm: mp = z1_stack # asm 1: movdqa mp=int6464#5 # asm 2: movdqa mp=%xmm4 movdqa 304(%esp),%xmm4 # qhasm: mq = z6_stack # asm 1: movdqa mq=int6464#6 # asm 2: movdqa mq=%xmm5 movdqa 384(%esp),%xmm5 # qhasm: mt = z12_stack # asm 1: movdqa mt=int6464#7 # asm 2: movdqa mt=%xmm6 movdqa 400(%esp),%xmm6 # qhasm: uint32323232 p += q # asm 1: paddd u=int6464#8 # asm 2: movdqa u=%xmm7 movdqa %xmm2,%xmm7 # qhasm: uint32323232 u >>= 16 # asm 1: psrld $16,u=int6464#8 # asm 2: movdqa u=%xmm7 movdqa %xmm3,%xmm7 # qhasm: uint32323232 u >>= 20 # asm 1: psrld $20,mr=int6464#8 # asm 2: movdqa mr=%xmm7 movdqa 288(%esp),%xmm7 # qhasm: uint32323232 p += q # asm 1: paddd z0_stack=stack128#31 # asm 2: movdqa z0_stack=512(%esp) movdqa %xmm0,512(%esp) # qhasm: t ^= p # asm 1: pxor u=int6464#1 # asm 2: movdqa u=%xmm0 movdqa %xmm2,%xmm0 # qhasm: uint32323232 u >>= 24 # asm 1: psrld $24,z15_stack=stack128#19 # asm 2: movdqa z15_stack=320(%esp) movdqa %xmm2,320(%esp) # qhasm: uint32323232 r += t # asm 1: paddd z10_stack=stack128#18 # asm 2: movdqa z10_stack=304(%esp) movdqa %xmm1,304(%esp) # qhasm: q ^= r # asm 1: pxor u=int6464#1 # asm 2: movdqa u=%xmm0 movdqa %xmm3,%xmm0 # qhasm: uint32323232 u >>= 25 # asm 1: psrld $25,z5_stack=stack128#17 # asm 2: movdqa z5_stack=288(%esp) movdqa %xmm3,288(%esp) # qhasm: p = z2_stack # asm 1: movdqa p=int6464#1 # asm 2: movdqa p=%xmm0 movdqa 352(%esp),%xmm0 # qhasm: q = z7_stack # asm 1: movdqa q=int6464#4 # asm 2: movdqa q=%xmm3 movdqa 368(%esp),%xmm3 # qhasm: r = z8_stack # asm 1: movdqa r=int6464#2 # asm 2: movdqa r=%xmm1 movdqa 432(%esp),%xmm1 # qhasm: uint32323232 mp += mq # asm 1: paddd mu=int6464#3 # asm 2: movdqa mu=%xmm2 movdqa %xmm6,%xmm2 # qhasm: uint32323232 mu >>= 16 # asm 1: psrld $16,mu=int6464#3 # asm 2: movdqa mu=%xmm2 movdqa %xmm5,%xmm2 # qhasm: uint32323232 mu >>= 20 # asm 1: psrld $20,t=int6464#3 # asm 2: movdqa t=%xmm2 movdqa 336(%esp),%xmm2 # qhasm: uint32323232 mp += mq # asm 1: paddd z1_stack=stack128#24 # asm 2: movdqa z1_stack=400(%esp) movdqa %xmm4,400(%esp) # qhasm: mt ^= mp # asm 1: pxor mu=int6464#5 # asm 2: movdqa mu=%xmm4 movdqa %xmm6,%xmm4 # qhasm: uint32323232 mu >>= 24 # asm 1: psrld $24,z12_stack=stack128#32 # asm 2: movdqa z12_stack=528(%esp) movdqa %xmm6,528(%esp) # qhasm: uint32323232 mr += mt # asm 1: paddd z11_stack=stack128#23 # asm 2: movdqa z11_stack=384(%esp) movdqa %xmm7,384(%esp) # qhasm: mq ^= mr # asm 1: pxor mu=int6464#5 # asm 2: movdqa mu=%xmm4 movdqa %xmm5,%xmm4 # qhasm: uint32323232 mu >>= 25 # asm 1: psrld $25,z6_stack=stack128#22 # asm 2: movdqa z6_stack=368(%esp) movdqa %xmm5,368(%esp) # qhasm: mp = z3_stack # asm 1: movdqa mp=int6464#5 # asm 2: movdqa mp=%xmm4 movdqa 480(%esp),%xmm4 # qhasm: mq = z4_stack # asm 1: movdqa mq=int6464#6 # asm 2: movdqa mq=%xmm5 movdqa 464(%esp),%xmm5 # qhasm: mt = z14_stack # asm 1: movdqa mt=int6464#7 # asm 2: movdqa mt=%xmm6 movdqa 416(%esp),%xmm6 # qhasm: assign xmm0 to p # qhasm: assign xmm1 to r # qhasm: assign xmm2 to t # qhasm: assign xmm3 to q # qhasm: uint32323232 p += q # asm 1: paddd u=int6464#8 # asm 2: movdqa u=%xmm7 movdqa %xmm2,%xmm7 # qhasm: uint32323232 u >>= 16 # asm 1: psrld $16,u=int6464#8 # asm 2: movdqa u=%xmm7 movdqa %xmm3,%xmm7 # qhasm: uint32323232 u >>= 20 # asm 1: psrld $20,mr=int6464#8 # asm 2: movdqa mr=%xmm7 movdqa 448(%esp),%xmm7 # qhasm: uint32323232 p += q # asm 1: paddd z2_stack=stack128#27 # asm 2: movdqa z2_stack=448(%esp) movdqa %xmm0,448(%esp) # qhasm: t ^= p # asm 1: pxor u=int6464#1 # asm 2: movdqa u=%xmm0 movdqa %xmm2,%xmm0 # qhasm: uint32323232 u >>= 24 # asm 1: psrld $24,z13_stack=stack128#26 # asm 2: movdqa z13_stack=432(%esp) movdqa %xmm2,432(%esp) # qhasm: uint32323232 r += t # asm 1: paddd z8_stack=stack128#29 # asm 2: movdqa z8_stack=480(%esp) movdqa %xmm1,480(%esp) # qhasm: q ^= r # asm 1: pxor u=int6464#1 # asm 2: movdqa u=%xmm0 movdqa %xmm3,%xmm0 # qhasm: uint32323232 u >>= 25 # asm 1: psrld $25,z7_stack=stack128#25 # asm 2: movdqa z7_stack=416(%esp) movdqa %xmm3,416(%esp) # qhasm: p = z0_stack # asm 1: movdqa p=int6464#1 # asm 2: movdqa p=%xmm0 movdqa 512(%esp),%xmm0 # qhasm: r = z8_stack # asm 1: movdqa r=int6464#2 # asm 2: movdqa r=%xmm1 movdqa 480(%esp),%xmm1 # qhasm: t = z12_stack # asm 1: movdqa t=int6464#3 # asm 2: movdqa t=%xmm2 movdqa 528(%esp),%xmm2 # qhasm: uint32323232 mp += mq # asm 1: paddd mu=int6464#4 # asm 2: movdqa mu=%xmm3 movdqa %xmm6,%xmm3 # qhasm: uint32323232 mu >>= 16 # asm 1: psrld $16,mu=int6464#4 # asm 2: movdqa mu=%xmm3 movdqa %xmm5,%xmm3 # qhasm: uint32323232 mu >>= 20 # asm 1: psrld $20,z3_stack=stack128#21 # asm 2: movdqa z3_stack=352(%esp) movdqa %xmm4,352(%esp) # qhasm: mt ^= mp # asm 1: pxor mu=int6464#4 # asm 2: movdqa mu=%xmm3 movdqa %xmm6,%xmm3 # qhasm: uint32323232 mu >>= 24 # asm 1: psrld $24,z14_stack=stack128#20 # asm 2: movdqa z14_stack=336(%esp) movdqa %xmm6,336(%esp) # qhasm: uint32323232 mr += mt # asm 1: paddd z9_stack=stack128#28 # asm 2: movdqa z9_stack=464(%esp) movdqa %xmm7,464(%esp) # qhasm: mq ^= mr # asm 1: pxor mu=int6464#4 # asm 2: movdqa mu=%xmm3 movdqa %xmm5,%xmm3 # qhasm: uint32323232 mu >>= 25 # asm 1: psrld $25,z4_stack=stack128#33 # asm 2: movdqa z4_stack=544(%esp) movdqa %xmm5,544(%esp) # qhasm: q = mq # asm 1: movdqa q=int6464#4 # asm 2: movdqa q=%xmm3 movdqa %xmm5,%xmm3 # qhasm: unsigned>? i -= 2 # asm 1: sub $2, ja ._mainloop1 # qhasm: z0 = z0_stack # asm 1: movdqa z0=int6464#1 # asm 2: movdqa z0=%xmm0 movdqa 512(%esp),%xmm0 # qhasm: z1 = z1_stack # asm 1: movdqa z1=int6464#2 # asm 2: movdqa z1=%xmm1 movdqa 400(%esp),%xmm1 # qhasm: z2 = z2_stack # asm 1: movdqa z2=int6464#3 # asm 2: movdqa z2=%xmm2 movdqa 448(%esp),%xmm2 # qhasm: z3 = z3_stack # asm 1: movdqa z3=int6464#4 # asm 2: movdqa z3=%xmm3 movdqa 352(%esp),%xmm3 # qhasm: uint32323232 z0 += orig0 # asm 1: paddd in0=int32#1 # asm 2: movd in0=%eax movd %xmm0,%eax # qhasm: in1 = z1 # asm 1: movd in1=int32#2 # asm 2: movd in1=%ecx movd %xmm1,%ecx # qhasm: in2 = z2 # asm 1: movd in2=int32#4 # asm 2: movd in2=%ebx movd %xmm2,%ebx # qhasm: in3 = z3 # asm 1: movd in3=int32#7 # asm 2: movd in3=%ebp movd %xmm3,%ebp # qhasm: z0 <<<= 96 # asm 1: pshufd $0x39,in0=int32#1 # asm 2: movd in0=%eax movd %xmm0,%eax # qhasm: in1 = z1 # asm 1: movd in1=int32#2 # asm 2: movd in1=%ecx movd %xmm1,%ecx # qhasm: in2 = z2 # asm 1: movd in2=int32#4 # asm 2: movd in2=%ebx movd %xmm2,%ebx # qhasm: in3 = z3 # asm 1: movd in3=int32#7 # asm 2: movd in3=%ebp movd %xmm3,%ebp # qhasm: z0 <<<= 96 # asm 1: pshufd $0x39,in0=int32#1 # asm 2: movd in0=%eax movd %xmm0,%eax # qhasm: in1 = z1 # asm 1: movd in1=int32#2 # asm 2: movd in1=%ecx movd %xmm1,%ecx # qhasm: in2 = z2 # asm 1: movd in2=int32#4 # asm 2: movd in2=%ebx movd %xmm2,%ebx # qhasm: in3 = z3 # asm 1: movd in3=int32#7 # asm 2: movd in3=%ebp movd %xmm3,%ebp # qhasm: z0 <<<= 96 # asm 1: pshufd $0x39,in0=int32#1 # asm 2: movd in0=%eax movd %xmm0,%eax # qhasm: in1 = z1 # asm 1: movd in1=int32#2 # asm 2: movd in1=%ecx movd %xmm1,%ecx # qhasm: in2 = z2 # asm 1: movd in2=int32#4 # asm 2: movd in2=%ebx movd %xmm2,%ebx # qhasm: in3 = z3 # asm 1: movd in3=int32#7 # asm 2: movd in3=%ebp movd %xmm3,%ebp # qhasm: in0 ^= *(uint32 *) (m + 192) # asm 1: xorl 192(z4=int6464#1 # asm 2: movdqa z4=%xmm0 movdqa 544(%esp),%xmm0 # qhasm: z5 = z5_stack # asm 1: movdqa z5=int6464#2 # asm 2: movdqa z5=%xmm1 movdqa 288(%esp),%xmm1 # qhasm: z6 = z6_stack # asm 1: movdqa z6=int6464#3 # asm 2: movdqa z6=%xmm2 movdqa 368(%esp),%xmm2 # qhasm: z7 = z7_stack # asm 1: movdqa z7=int6464#4 # asm 2: movdqa z7=%xmm3 movdqa 416(%esp),%xmm3 # qhasm: uint32323232 z4 += orig4 # asm 1: paddd in4=int32#1 # asm 2: movd in4=%eax movd %xmm0,%eax # qhasm: in5 = z5 # asm 1: movd in5=int32#2 # asm 2: movd in5=%ecx movd %xmm1,%ecx # qhasm: in6 = z6 # asm 1: movd in6=int32#4 # asm 2: movd in6=%ebx movd %xmm2,%ebx # qhasm: in7 = z7 # asm 1: movd in7=int32#7 # asm 2: movd in7=%ebp movd %xmm3,%ebp # qhasm: z4 <<<= 96 # asm 1: pshufd $0x39,in4=int32#1 # asm 2: movd in4=%eax movd %xmm0,%eax # qhasm: in5 = z5 # asm 1: movd in5=int32#2 # asm 2: movd in5=%ecx movd %xmm1,%ecx # qhasm: in6 = z6 # asm 1: movd in6=int32#4 # asm 2: movd in6=%ebx movd %xmm2,%ebx # qhasm: in7 = z7 # asm 1: movd in7=int32#7 # asm 2: movd in7=%ebp movd %xmm3,%ebp # qhasm: z4 <<<= 96 # asm 1: pshufd $0x39,in4=int32#1 # asm 2: movd in4=%eax movd %xmm0,%eax # qhasm: in5 = z5 # asm 1: movd in5=int32#2 # asm 2: movd in5=%ecx movd %xmm1,%ecx # qhasm: in6 = z6 # asm 1: movd in6=int32#4 # asm 2: movd in6=%ebx movd %xmm2,%ebx # qhasm: in7 = z7 # asm 1: movd in7=int32#7 # asm 2: movd in7=%ebp movd %xmm3,%ebp # qhasm: z4 <<<= 96 # asm 1: pshufd $0x39,in4=int32#1 # asm 2: movd in4=%eax movd %xmm0,%eax # qhasm: in5 = z5 # asm 1: movd in5=int32#2 # asm 2: movd in5=%ecx movd %xmm1,%ecx # qhasm: in6 = z6 # asm 1: movd in6=int32#4 # asm 2: movd in6=%ebx movd %xmm2,%ebx # qhasm: in7 = z7 # asm 1: movd in7=int32#7 # asm 2: movd in7=%ebp movd %xmm3,%ebp # qhasm: in4 ^= *(uint32 *) (m + 208) # asm 1: xorl 208(z8=int6464#1 # asm 2: movdqa z8=%xmm0 movdqa 480(%esp),%xmm0 # qhasm: z9 = z9_stack # asm 1: movdqa z9=int6464#2 # asm 2: movdqa z9=%xmm1 movdqa 464(%esp),%xmm1 # qhasm: z10 = z10_stack # asm 1: movdqa z10=int6464#3 # asm 2: movdqa z10=%xmm2 movdqa 304(%esp),%xmm2 # qhasm: z11 = z11_stack # asm 1: movdqa z11=int6464#4 # asm 2: movdqa z11=%xmm3 movdqa 384(%esp),%xmm3 # qhasm: uint32323232 z8 += orig8 # asm 1: paddd in8=int32#1 # asm 2: movd in8=%eax movd %xmm0,%eax # qhasm: in9 = z9 # asm 1: movd in9=int32#2 # asm 2: movd in9=%ecx movd %xmm1,%ecx # qhasm: in10 = z10 # asm 1: movd in10=int32#4 # asm 2: movd in10=%ebx movd %xmm2,%ebx # qhasm: in11 = z11 # asm 1: movd in11=int32#7 # asm 2: movd in11=%ebp movd %xmm3,%ebp # qhasm: z8 <<<= 96 # asm 1: pshufd $0x39,in8=int32#1 # asm 2: movd in8=%eax movd %xmm0,%eax # qhasm: in9 = z9 # asm 1: movd in9=int32#2 # asm 2: movd in9=%ecx movd %xmm1,%ecx # qhasm: in10 = z10 # asm 1: movd in10=int32#4 # asm 2: movd in10=%ebx movd %xmm2,%ebx # qhasm: in11 = z11 # asm 1: movd in11=int32#7 # asm 2: movd in11=%ebp movd %xmm3,%ebp # qhasm: z8 <<<= 96 # asm 1: pshufd $0x39,in8=int32#1 # asm 2: movd in8=%eax movd %xmm0,%eax # qhasm: in9 = z9 # asm 1: movd in9=int32#2 # asm 2: movd in9=%ecx movd %xmm1,%ecx # qhasm: in10 = z10 # asm 1: movd in10=int32#4 # asm 2: movd in10=%ebx movd %xmm2,%ebx # qhasm: in11 = z11 # asm 1: movd in11=int32#7 # asm 2: movd in11=%ebp movd %xmm3,%ebp # qhasm: z8 <<<= 96 # asm 1: pshufd $0x39,in8=int32#1 # asm 2: movd in8=%eax movd %xmm0,%eax # qhasm: in9 = z9 # asm 1: movd in9=int32#2 # asm 2: movd in9=%ecx movd %xmm1,%ecx # qhasm: in10 = z10 # asm 1: movd in10=int32#4 # asm 2: movd in10=%ebx movd %xmm2,%ebx # qhasm: in11 = z11 # asm 1: movd in11=int32#7 # asm 2: movd in11=%ebp movd %xmm3,%ebp # qhasm: in8 ^= *(uint32 *) (m + 224) # asm 1: xorl 224(z12=int6464#1 # asm 2: movdqa z12=%xmm0 movdqa 528(%esp),%xmm0 # qhasm: z13 = z13_stack # asm 1: movdqa z13=int6464#2 # asm 2: movdqa z13=%xmm1 movdqa 432(%esp),%xmm1 # qhasm: z14 = z14_stack # asm 1: movdqa z14=int6464#3 # asm 2: movdqa z14=%xmm2 movdqa 336(%esp),%xmm2 # qhasm: z15 = z15_stack # asm 1: movdqa z15=int6464#4 # asm 2: movdqa z15=%xmm3 movdqa 320(%esp),%xmm3 # qhasm: uint32323232 z12 += orig12 # asm 1: paddd in12=int32#1 # asm 2: movd in12=%eax movd %xmm0,%eax # qhasm: in13 = z13 # asm 1: movd in13=int32#2 # asm 2: movd in13=%ecx movd %xmm1,%ecx # qhasm: in14 = z14 # asm 1: movd in14=int32#4 # asm 2: movd in14=%ebx movd %xmm2,%ebx # qhasm: in15 = z15 # asm 1: movd in15=int32#7 # asm 2: movd in15=%ebp movd %xmm3,%ebp # qhasm: z12 <<<= 96 # asm 1: pshufd $0x39,in12=int32#1 # asm 2: movd in12=%eax movd %xmm0,%eax # qhasm: in13 = z13 # asm 1: movd in13=int32#2 # asm 2: movd in13=%ecx movd %xmm1,%ecx # qhasm: in14 = z14 # asm 1: movd in14=int32#4 # asm 2: movd in14=%ebx movd %xmm2,%ebx # qhasm: in15 = z15 # asm 1: movd in15=int32#7 # asm 2: movd in15=%ebp movd %xmm3,%ebp # qhasm: z12 <<<= 96 # asm 1: pshufd $0x39,in12=int32#1 # asm 2: movd in12=%eax movd %xmm0,%eax # qhasm: in13 = z13 # asm 1: movd in13=int32#2 # asm 2: movd in13=%ecx movd %xmm1,%ecx # qhasm: in14 = z14 # asm 1: movd in14=int32#4 # asm 2: movd in14=%ebx movd %xmm2,%ebx # qhasm: in15 = z15 # asm 1: movd in15=int32#7 # asm 2: movd in15=%ebp movd %xmm3,%ebp # qhasm: z12 <<<= 96 # asm 1: pshufd $0x39,in12=int32#1 # asm 2: movd in12=%eax movd %xmm0,%eax # qhasm: in13 = z13 # asm 1: movd in13=int32#2 # asm 2: movd in13=%ecx movd %xmm1,%ecx # qhasm: in14 = z14 # asm 1: movd in14=int32#4 # asm 2: movd in14=%ebx movd %xmm2,%ebx # qhasm: in15 = z15 # asm 1: movd in15=int32#7 # asm 2: movd in15=%ebp movd %xmm3,%ebp # qhasm: in12 ^= *(uint32 *) (m + 240) # asm 1: xorl 240(bytes=int32#4 # asm 2: movl bytes=%ebx movl 20(%esp),%ebx # qhasm: bytes -= 256 # asm 1: sub $256,? bytes - 0 # asm 1: cmp $0, jbe ._done # comment:fp stack unchanged by fallthrough # qhasm: bytesbetween1and255: ._bytesbetween1and255: # qhasm: unsignedctarget=stack32#6 # asm 2: movl ctarget=20(%esp) movl %edi,20(%esp) # qhasm: out = &tmp # asm 1: leal out=int32#6 # asm 2: leal out=%edi leal 576(%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 576(%esp),%edi # qhasm: m = &tmp # asm 1: leal m=int32#5 # asm 2: leal m=%esi leal 576(%esp),%esi # comment:fp stack unchanged by fallthrough # qhasm: nocopy: ._nocopy: # qhasm: bytes_backup = bytes # asm 1: movl bytes_backup=stack32#7 # asm 2: movl bytes_backup=24(%esp) movl %ebx,24(%esp) # qhasm: diag0 = *(int128 *) (x + 0) # asm 1: movdqa 0(diag0=int6464#1 # asm 2: movdqa 0(diag0=%xmm0 movdqa 0(%edx),%xmm0 # qhasm: diag1 = *(int128 *) (x + 16) # asm 1: movdqa 16(diag1=int6464#2 # asm 2: movdqa 16(diag1=%xmm1 movdqa 16(%edx),%xmm1 # qhasm: diag2 = *(int128 *) (x + 32) # asm 1: movdqa 32(diag2=int6464#3 # asm 2: movdqa 32(diag2=%xmm2 movdqa 32(%edx),%xmm2 # qhasm: diag3 = *(int128 *) (x + 48) # asm 1: movdqa 48(diag3=int6464#4 # asm 2: movdqa 48(diag3=%xmm3 movdqa 48(%edx),%xmm3 # qhasm: i = 8 # asm 1: mov $8,>i=int32#1 # asm 2: mov $8,>i=%eax mov $8,%eax # qhasm: mainloop2: ._mainloop2: # qhasm: uint32323232 diag0 += diag1 # asm 1: paddd b3=int6464#5 # asm 2: movdqa b3=%xmm4 movdqa %xmm3,%xmm4 # qhasm: uint32323232 diag3 <<= 16 # asm 1: pslld $16,>= 16 # asm 1: psrld $16,b1=int6464#5 # asm 2: movdqa b1=%xmm4 movdqa %xmm1,%xmm4 # qhasm: uint32323232 diag1 <<= 12 # asm 1: pslld $12,>= 20 # asm 1: psrld $20,b3=int6464#5 # asm 2: movdqa b3=%xmm4 movdqa %xmm3,%xmm4 # qhasm: uint32323232 diag3 <<= 8 # asm 1: pslld $8,>= 24 # asm 1: psrld $24,b1=int6464#5 # asm 2: movdqa b1=%xmm4 movdqa %xmm1,%xmm4 # qhasm: uint32323232 diag1 <<= 7 # asm 1: pslld $7,>= 25 # asm 1: psrld $25,? i -= 2 # asm 1: sub $2,b3=int6464#5 # asm 2: movdqa b3=%xmm4 movdqa %xmm3,%xmm4 # qhasm: uint32323232 diag3 <<= 16 # asm 1: pslld $16,>= 16 # asm 1: psrld $16,b1=int6464#5 # asm 2: movdqa b1=%xmm4 movdqa %xmm1,%xmm4 # qhasm: uint32323232 diag1 <<= 12 # asm 1: pslld $12,>= 20 # asm 1: psrld $20,b3=int6464#5 # asm 2: movdqa b3=%xmm4 movdqa %xmm3,%xmm4 # qhasm: uint32323232 diag3 <<= 8 # asm 1: pslld $8,>= 24 # asm 1: psrld $24,b1=int6464#5 # asm 2: movdqa b1=%xmm4 movdqa %xmm1,%xmm4 # qhasm: uint32323232 diag1 <<= 7 # asm 1: pslld $7,>= 25 # asm 1: psrld $25, ja ._mainloop2 # qhasm: uint32323232 diag0 += *(int128 *) (x + 0) # asm 1: paddd 0(bytes=int32#4 # asm 2: movl bytes=%ebx movl 24(%esp),%ebx # qhasm: in12 = *(uint32 *) (x + 48) # asm 1: movl 48(in12=int32#1 # asm 2: movl 48(in12=%eax movl 48(%edx),%eax # qhasm: in13 = *(uint32 *) (x + 52) # asm 1: movl 52(in13=int32#2 # asm 2: movl 52(in13=%ecx movl 52(%edx),%ecx # qhasm: carry? in12 += 1 # asm 1: add $1,? 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 20(%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: # comment:fp stack unchanged by fallthrough # qhasm: done: ._done: # qhasm: eax = eax_stack # 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: in4 = *(uint32 *) (k + 0) # asm 1: movl 0(in4=int32#4 # asm 2: movl 0(in4=%ebx movl 0(%ecx),%ebx # qhasm: in5 = *(uint32 *) (k + 4) # asm 1: movl 4(in5=int32#5 # asm 2: movl 4(in5=%esi movl 4(%ecx),%esi # qhasm: in6 = *(uint32 *) (k + 8) # asm 1: movl 8(in6=int32#6 # asm 2: movl 8(in6=%edi movl 8(%ecx),%edi # qhasm: in7 = *(uint32 *) (k + 12) # asm 1: movl 12(in7=int32#7 # asm 2: movl 12(in7=%ebp movl 12(%ecx),%ebp # qhasm: *(uint32 *) (x + 16) = in4 # asm 1: movl in8=int32#3 # asm 2: movl 16(in8=%edx movl 16(%ecx),%edx # qhasm: in9 = *(uint32 *) (k + 20) # asm 1: movl 20(in9=int32#4 # asm 2: movl 20(in9=%ebx movl 20(%ecx),%ebx # qhasm: in10 = *(uint32 *) (k + 24) # asm 1: movl 24(in10=int32#5 # asm 2: movl 24(in10=%esi movl 24(%ecx),%esi # qhasm: in11 = *(uint32 *) (k + 28) # asm 1: movl 28(in11=int32#2 # asm 2: movl 28(in11=%ecx movl 28(%ecx),%ecx # qhasm: *(uint32 *) (x + 32) = in8 # asm 1: movl in0=int32#2 # asm 2: mov $1634760805,>in0=%ecx mov $1634760805,%ecx # qhasm: in1 = 857760878 # asm 1: mov $857760878,>in1=int32#3 # asm 2: mov $857760878,>in1=%edx mov $857760878,%edx # qhasm: in2 = 2036477234 # asm 1: mov $2036477234,>in2=int32#4 # asm 2: mov $2036477234,>in2=%ebx mov $2036477234,%ebx # qhasm: in3 = 1797285236 # asm 1: mov $1797285236,>in3=int32#5 # asm 2: mov $1797285236,>in3=%esi mov $1797285236,%esi # qhasm: *(uint32 *) (x + 0) = in0 # asm 1: movl in8=int32#3 # asm 2: movl 0(in8=%edx movl 0(%ecx),%edx # qhasm: in9 = *(uint32 *) (k + 4) # asm 1: movl 4(in9=int32#4 # asm 2: movl 4(in9=%ebx movl 4(%ecx),%ebx # qhasm: in10 = *(uint32 *) (k + 8) # asm 1: movl 8(in10=int32#5 # asm 2: movl 8(in10=%esi movl 8(%ecx),%esi # qhasm: in11 = *(uint32 *) (k + 12) # asm 1: movl 12(in11=int32#2 # asm 2: movl 12(in11=%ecx movl 12(%ecx),%ecx # qhasm: *(uint32 *) (x + 32) = in8 # asm 1: movl in0=int32#2 # asm 2: mov $1634760805,>in0=%ecx mov $1634760805,%ecx # qhasm: in1 = 824206446 # asm 1: mov $824206446,>in1=int32#3 # asm 2: mov $824206446,>in1=%edx mov $824206446,%edx # qhasm: in2 = 2036477238 # asm 1: mov $2036477238,>in2=int32#4 # asm 2: mov $2036477238,>in2=%ebx mov $2036477238,%ebx # qhasm: in3 = 1797285236 # asm 1: mov $1797285236,>in3=int32#5 # asm 2: mov $1797285236,>in3=%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 $640,%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: in12 = 0 # asm 1: mov $0,>in12=int32#3 # asm 2: mov $0,>in12=%edx mov $0,%edx # qhasm: in13 = 0 # asm 1: mov $0,>in13=int32#4 # asm 2: mov $0,>in13=%ebx mov $0,%ebx # qhasm: in14 = *(uint32 *) (iv + 0) # asm 1: movl 0(in14=int32#5 # asm 2: movl 0(in14=%esi movl 0(%ecx),%esi # qhasm: in15 = *(uint32 *) (iv + 4) # asm 1: movl 4(in15=int32#2 # asm 2: movl 4(in15=%ecx movl 4(%ecx),%ecx # qhasm: *(uint32 *) (x + 48) = in12 # 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