1.text 2.p2align 5 3.globl _crypto_scalarmult_curve25519_athlon_fromdouble 4.globl crypto_scalarmult_curve25519_athlon_fromdouble 5_crypto_scalarmult_curve25519_athlon_fromdouble: 6crypto_scalarmult_curve25519_athlon_fromdouble: 7mov %esp,%eax 8and $31,%eax 9add $192,%eax 10sub %eax,%esp 11movl %ebp,0(%esp) 12movl 8(%esp,%eax),%ecx 13fldl 0(%ecx) 14faddl crypto_scalarmult_curve25519_athlon_out0offset 15fstpl 96(%esp) 16fldl 8(%ecx) 17faddl crypto_scalarmult_curve25519_athlon_out1offset 18fstpl 104(%esp) 19fldl 16(%ecx) 20faddl crypto_scalarmult_curve25519_athlon_out2offset 21fstpl 112(%esp) 22fldl 24(%ecx) 23faddl crypto_scalarmult_curve25519_athlon_out3offset 24fstpl 120(%esp) 25fldl 32(%ecx) 26faddl crypto_scalarmult_curve25519_athlon_out4offset 27fstpl 128(%esp) 28fldl 40(%ecx) 29faddl crypto_scalarmult_curve25519_athlon_out5offset 30fstpl 136(%esp) 31fldl 48(%ecx) 32faddl crypto_scalarmult_curve25519_athlon_out6offset 33fstpl 144(%esp) 34fldl 56(%ecx) 35faddl crypto_scalarmult_curve25519_athlon_out7offset 36fstpl 152(%esp) 37fldl 64(%ecx) 38faddl crypto_scalarmult_curve25519_athlon_out8offset 39fstpl 160(%esp) 40fldl 72(%ecx) 41faddl crypto_scalarmult_curve25519_athlon_out9offset 42fstpl 168(%esp) 43movl 96(%esp),%ecx 44movl %ecx,4(%esp) 45movl 104(%esp),%ecx 46shl $26,%ecx 47movl %ecx,40(%esp) 48movl 104(%esp),%ecx 49shr $6,%ecx 50movl %ecx,8(%esp) 51movl 112(%esp),%ecx 52shl $19,%ecx 53movl %ecx,44(%esp) 54movl 112(%esp),%ecx 55shr $13,%ecx 56movl %ecx,12(%esp) 57movl 120(%esp),%ecx 58shl $13,%ecx 59movl %ecx,48(%esp) 60movl 120(%esp),%ecx 61shr $19,%ecx 62movl %ecx,16(%esp) 63movl 128(%esp),%ecx 64shl $6,%ecx 65movl %ecx,52(%esp) 66movl 128(%esp),%ecx 67shr $26,%ecx 68movl 136(%esp),%edx 69add %edx,%ecx 70movl %ecx,20(%esp) 71movl 144(%esp),%ecx 72shl $25,%ecx 73movl %ecx,56(%esp) 74movl 144(%esp),%ecx 75shr $7,%ecx 76movl %ecx,24(%esp) 77movl 152(%esp),%ecx 78shl $19,%ecx 79movl %ecx,60(%esp) 80movl 152(%esp),%ecx 81shr $13,%ecx 82movl %ecx,28(%esp) 83movl 160(%esp),%ecx 84shl $12,%ecx 85movl %ecx,64(%esp) 86movl 160(%esp),%ecx 87shr $20,%ecx 88movl %ecx,32(%esp) 89movl 168(%esp),%ecx 90shl $6,%ecx 91movl %ecx,68(%esp) 92movl 168(%esp),%ecx 93shr $26,%ecx 94movl %ecx,36(%esp) 95mov $0,%ecx 96movl %ecx,72(%esp) 97movl 4(%esp),%ecx 98addl 40(%esp),%ecx 99movl %ecx,4(%esp) 100movl 8(%esp),%ecx 101adcl 44(%esp),%ecx 102movl %ecx,8(%esp) 103movl 12(%esp),%ecx 104adcl 48(%esp),%ecx 105movl %ecx,12(%esp) 106movl 16(%esp),%ecx 107adcl 52(%esp),%ecx 108movl %ecx,16(%esp) 109movl 20(%esp),%ecx 110adcl 56(%esp),%ecx 111movl %ecx,20(%esp) 112movl 24(%esp),%ecx 113adcl 60(%esp),%ecx 114movl %ecx,24(%esp) 115movl 28(%esp),%ecx 116adcl 64(%esp),%ecx 117movl %ecx,28(%esp) 118movl 32(%esp),%ecx 119adcl 68(%esp),%ecx 120movl %ecx,32(%esp) 121movl 36(%esp),%ecx 122adcl 72(%esp),%ecx 123movl %ecx,36(%esp) 124movl 4(%esp),%ecx 125adc $0x13,%ecx 126movl %ecx,40(%esp) 127movl 8(%esp),%ecx 128adc $0,%ecx 129movl %ecx,44(%esp) 130movl 12(%esp),%ecx 131adc $0,%ecx 132movl %ecx,48(%esp) 133movl 16(%esp),%ecx 134adc $0,%ecx 135movl %ecx,52(%esp) 136movl 20(%esp),%ecx 137adc $0,%ecx 138movl %ecx,56(%esp) 139movl 24(%esp),%ecx 140adc $0,%ecx 141movl %ecx,60(%esp) 142movl 28(%esp),%ecx 143adc $0,%ecx 144movl %ecx,64(%esp) 145movl 32(%esp),%ecx 146adc $0x80000000,%ecx 147movl %ecx,68(%esp) 148movl 36(%esp),%ebp 149adc $0xffffffff,%ebp 150and $0x80000000,%ebp 151sar $31,%ebp 152movl 4(%esp,%eax),%ecx 153movl 4(%esp),%edx 154xorl 40(%esp),%edx 155and %ebp,%edx 156xorl 40(%esp),%edx 157movl %edx,0(%ecx) 158movl 8(%esp),%edx 159xorl 44(%esp),%edx 160and %ebp,%edx 161xorl 44(%esp),%edx 162movl %edx,4(%ecx) 163movl 12(%esp),%edx 164xorl 48(%esp),%edx 165and %ebp,%edx 166xorl 48(%esp),%edx 167movl %edx,8(%ecx) 168movl 16(%esp),%edx 169xorl 52(%esp),%edx 170and %ebp,%edx 171xorl 52(%esp),%edx 172movl %edx,12(%ecx) 173movl 20(%esp),%edx 174xorl 56(%esp),%edx 175and %ebp,%edx 176xorl 56(%esp),%edx 177movl %edx,16(%ecx) 178movl 24(%esp),%edx 179xorl 60(%esp),%edx 180and %ebp,%edx 181xorl 60(%esp),%edx 182movl %edx,20(%ecx) 183movl 28(%esp),%edx 184xorl 64(%esp),%edx 185and %ebp,%edx 186xorl 64(%esp),%edx 187movl %edx,24(%ecx) 188movl 32(%esp),%edx 189xorl 68(%esp),%edx 190and %ebp,%edx 191xorl 68(%esp),%edx 192movl %edx,28(%ecx) 193movl 0(%esp),%ebp 194add %eax,%esp 195ret 196