diff options
author | deshevoy <deshevoy@yandex-team.ru> | 2022-02-10 16:46:57 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:46:57 +0300 |
commit | 28148f76dbfcc644d96427d41c92f36cbf2fdc6e (patch) | |
tree | b83306b6e37edeea782e9eed673d89286c4fef35 /contrib/libs/openssl/asm/windows/crypto/ec/x25519-x86_64.masm | |
parent | e988f30484abe5fdeedcc7a5d3c226c01a21800c (diff) | |
download | ydb-28148f76dbfcc644d96427d41c92f36cbf2fdc6e.tar.gz |
Restoring authorship annotation for <deshevoy@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/libs/openssl/asm/windows/crypto/ec/x25519-x86_64.masm')
-rw-r--r-- | contrib/libs/openssl/asm/windows/crypto/ec/x25519-x86_64.masm | 1382 |
1 files changed, 691 insertions, 691 deletions
diff --git a/contrib/libs/openssl/asm/windows/crypto/ec/x25519-x86_64.masm b/contrib/libs/openssl/asm/windows/crypto/ec/x25519-x86_64.masm index 3cb7bb62d6..37662eccbb 100644 --- a/contrib/libs/openssl/asm/windows/crypto/ec/x25519-x86_64.masm +++ b/contrib/libs/openssl/asm/windows/crypto/ec/x25519-x86_64.masm @@ -1,940 +1,940 @@ OPTION DOTNAME .text$ SEGMENT ALIGN(256) 'CODE' - + PUBLIC x25519_fe51_mul - -ALIGN 32 + +ALIGN 32 x25519_fe51_mul PROC PUBLIC mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi - mov rax,rsp + mov rax,rsp $L$SEH_begin_x25519_fe51_mul:: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - - - - push rbp - - push rbx - - push r12 - - push r13 - - push r14 - - push r15 - + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + + + push rbp + + push rbx + + push r12 + + push r13 + + push r14 + + push r15 + lea rsp,QWORD PTR[((-40))+rsp] - + $L$fe51_mul_body:: - + mov rax,QWORD PTR[rsi] mov r11,QWORD PTR[rdx] mov r12,QWORD PTR[8+rdx] mov r13,QWORD PTR[16+rdx] mov rbp,QWORD PTR[24+rdx] mov r14,QWORD PTR[32+rdx] - + mov QWORD PTR[32+rsp],rdi - mov rdi,rax - mul r11 + mov rdi,rax + mul r11 mov QWORD PTR[rsp],r11 - mov rbx,rax - mov rax,rdi - mov rcx,rdx - mul r12 + mov rbx,rax + mov rax,rdi + mov rcx,rdx + mul r12 mov QWORD PTR[8+rsp],r12 - mov r8,rax - mov rax,rdi + mov r8,rax + mov rax,rdi lea r15,QWORD PTR[r14*8+r14] - mov r9,rdx - mul r13 + mov r9,rdx + mul r13 mov QWORD PTR[16+rsp],r13 - mov r10,rax - mov rax,rdi + mov r10,rax + mov rax,rdi lea rdi,QWORD PTR[r15*2+r14] - mov r11,rdx - mul rbp - mov r12,rax + mov r11,rdx + mul rbp + mov r12,rax mov rax,QWORD PTR[rsi] - mov r13,rdx - mul r14 - mov r14,rax + mov r13,rdx + mul r14 + mov r14,rax mov rax,QWORD PTR[8+rsi] - mov r15,rdx - - mul rdi - add rbx,rax + mov r15,rdx + + mul rdi + add rbx,rax mov rax,QWORD PTR[16+rsi] - adc rcx,rdx - mul rdi - add r8,rax + adc rcx,rdx + mul rdi + add r8,rax mov rax,QWORD PTR[24+rsi] - adc r9,rdx - mul rdi - add r10,rax + adc r9,rdx + mul rdi + add r10,rax mov rax,QWORD PTR[32+rsi] - adc r11,rdx - mul rdi - imul rdi,rbp,19 - add r12,rax + adc r11,rdx + mul rdi + imul rdi,rbp,19 + add r12,rax mov rax,QWORD PTR[8+rsi] - adc r13,rdx - mul rbp + adc r13,rdx + mul rbp mov rbp,QWORD PTR[16+rsp] - add r14,rax + add r14,rax mov rax,QWORD PTR[16+rsi] - adc r15,rdx - - mul rdi - add rbx,rax + adc r15,rdx + + mul rdi + add rbx,rax mov rax,QWORD PTR[24+rsi] - adc rcx,rdx - mul rdi - add r8,rax + adc rcx,rdx + mul rdi + add r8,rax mov rax,QWORD PTR[32+rsi] - adc r9,rdx - mul rdi - imul rdi,rbp,19 - add r10,rax + adc r9,rdx + mul rdi + imul rdi,rbp,19 + add r10,rax mov rax,QWORD PTR[8+rsi] - adc r11,rdx - mul rbp - add r12,rax + adc r11,rdx + mul rbp + add r12,rax mov rax,QWORD PTR[16+rsi] - adc r13,rdx - mul rbp + adc r13,rdx + mul rbp mov rbp,QWORD PTR[8+rsp] - add r14,rax + add r14,rax mov rax,QWORD PTR[24+rsi] - adc r15,rdx - - mul rdi - add rbx,rax + adc r15,rdx + + mul rdi + add rbx,rax mov rax,QWORD PTR[32+rsi] - adc rcx,rdx - mul rdi - add r8,rax + adc rcx,rdx + mul rdi + add r8,rax mov rax,QWORD PTR[8+rsi] - adc r9,rdx - mul rbp - imul rdi,rbp,19 - add r10,rax + adc r9,rdx + mul rbp + imul rdi,rbp,19 + add r10,rax mov rax,QWORD PTR[16+rsi] - adc r11,rdx - mul rbp - add r12,rax + adc r11,rdx + mul rbp + add r12,rax mov rax,QWORD PTR[24+rsi] - adc r13,rdx - mul rbp + adc r13,rdx + mul rbp mov rbp,QWORD PTR[rsp] - add r14,rax + add r14,rax mov rax,QWORD PTR[32+rsi] - adc r15,rdx - - mul rdi - add rbx,rax + adc r15,rdx + + mul rdi + add rbx,rax mov rax,QWORD PTR[8+rsi] - adc rcx,rdx - mul rbp - add r8,rax + adc rcx,rdx + mul rbp + add r8,rax mov rax,QWORD PTR[16+rsi] - adc r9,rdx - mul rbp - add r10,rax + adc r9,rdx + mul rbp + add r10,rax mov rax,QWORD PTR[24+rsi] - adc r11,rdx - mul rbp - add r12,rax + adc r11,rdx + mul rbp + add r12,rax mov rax,QWORD PTR[32+rsi] - adc r13,rdx - mul rbp - add r14,rax - adc r15,rdx - + adc r13,rdx + mul rbp + add r14,rax + adc r15,rdx + mov rdi,QWORD PTR[32+rsp] jmp $L$reduce51 $L$fe51_mul_epilogue:: - + $L$SEH_end_x25519_fe51_mul:: x25519_fe51_mul ENDP - + PUBLIC x25519_fe51_sqr - -ALIGN 32 + +ALIGN 32 x25519_fe51_sqr PROC PUBLIC mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi - mov rax,rsp + mov rax,rsp $L$SEH_begin_x25519_fe51_sqr:: - mov rdi,rcx - mov rsi,rdx - - - - push rbp - - push rbx - - push r12 - - push r13 - - push r14 - - push r15 - + mov rdi,rcx + mov rsi,rdx + + + + push rbp + + push rbx + + push r12 + + push r13 + + push r14 + + push r15 + lea rsp,QWORD PTR[((-40))+rsp] - + $L$fe51_sqr_body:: - + mov rax,QWORD PTR[rsi] mov r15,QWORD PTR[16+rsi] mov rbp,QWORD PTR[32+rsi] - + mov QWORD PTR[32+rsp],rdi lea r14,QWORD PTR[rax*1+rax] - mul rax - mov rbx,rax + mul rax + mov rbx,rax mov rax,QWORD PTR[8+rsi] - mov rcx,rdx - mul r14 - mov r8,rax - mov rax,r15 + mov rcx,rdx + mul r14 + mov r8,rax + mov rax,r15 mov QWORD PTR[rsp],r15 - mov r9,rdx - mul r14 - mov r10,rax + mov r9,rdx + mul r14 + mov r10,rax mov rax,QWORD PTR[24+rsi] - mov r11,rdx - imul rdi,rbp,19 - mul r14 - mov r12,rax - mov rax,rbp - mov r13,rdx - mul r14 - mov r14,rax - mov rax,rbp - mov r15,rdx - - mul rdi - add r12,rax + mov r11,rdx + imul rdi,rbp,19 + mul r14 + mov r12,rax + mov rax,rbp + mov r13,rdx + mul r14 + mov r14,rax + mov rax,rbp + mov r15,rdx + + mul rdi + add r12,rax mov rax,QWORD PTR[8+rsi] - adc r13,rdx - + adc r13,rdx + mov rsi,QWORD PTR[24+rsi] lea rbp,QWORD PTR[rax*1+rax] - mul rax - add r10,rax + mul rax + add r10,rax mov rax,QWORD PTR[rsp] - adc r11,rdx - mul rbp - add r12,rax - mov rax,rbp - adc r13,rdx - mul rsi - add r14,rax - mov rax,rbp - adc r15,rdx - imul rbp,rsi,19 - mul rdi - add rbx,rax + adc r11,rdx + mul rbp + add r12,rax + mov rax,rbp + adc r13,rdx + mul rsi + add r14,rax + mov rax,rbp + adc r15,rdx + imul rbp,rsi,19 + mul rdi + add rbx,rax lea rax,QWORD PTR[rsi*1+rsi] - adc rcx,rdx - - mul rdi - add r10,rax - mov rax,rsi - adc r11,rdx - mul rbp - add r8,rax + adc rcx,rdx + + mul rdi + add r10,rax + mov rax,rsi + adc r11,rdx + mul rbp + add r8,rax mov rax,QWORD PTR[rsp] - adc r9,rdx - + adc r9,rdx + lea rsi,QWORD PTR[rax*1+rax] - mul rax - add r14,rax - mov rax,rbp - adc r15,rdx - mul rsi - add rbx,rax - mov rax,rsi - adc rcx,rdx - mul rdi - add r8,rax - adc r9,rdx - + mul rax + add r14,rax + mov rax,rbp + adc r15,rdx + mul rsi + add rbx,rax + mov rax,rsi + adc rcx,rdx + mul rdi + add r8,rax + adc r9,rdx + mov rdi,QWORD PTR[32+rsp] jmp $L$reduce51 - -ALIGN 32 + +ALIGN 32 $L$reduce51:: mov rbp,07ffffffffffffh - - mov rdx,r10 - shr r10,51 - shl r11,13 - and rdx,rbp - or r11,r10 - add r12,r11 - adc r13,0 - - mov rax,rbx - shr rbx,51 - shl rcx,13 - and rax,rbp - or rcx,rbx - add r8,rcx - adc r9,0 - - mov rbx,r12 - shr r12,51 - shl r13,13 - and rbx,rbp - or r13,r12 - add r14,r13 - adc r15,0 - - mov rcx,r8 - shr r8,51 - shl r9,13 - and rcx,rbp - or r9,r8 - add rdx,r9 - - mov r10,r14 - shr r14,51 - shl r15,13 - and r10,rbp - or r15,r14 - + + mov rdx,r10 + shr r10,51 + shl r11,13 + and rdx,rbp + or r11,r10 + add r12,r11 + adc r13,0 + + mov rax,rbx + shr rbx,51 + shl rcx,13 + and rax,rbp + or rcx,rbx + add r8,rcx + adc r9,0 + + mov rbx,r12 + shr r12,51 + shl r13,13 + and rbx,rbp + or r13,r12 + add r14,r13 + adc r15,0 + + mov rcx,r8 + shr r8,51 + shl r9,13 + and rcx,rbp + or r9,r8 + add rdx,r9 + + mov r10,r14 + shr r14,51 + shl r15,13 + and r10,rbp + or r15,r14 + lea r14,QWORD PTR[r15*8+r15] lea r15,QWORD PTR[r14*2+r15] - add rax,r15 - - mov r8,rdx - and rdx,rbp - shr r8,51 - add rbx,r8 - - mov r9,rax - and rax,rbp - shr r9,51 - add rcx,r9 - + add rax,r15 + + mov r8,rdx + and rdx,rbp + shr r8,51 + add rbx,r8 + + mov r9,rax + and rax,rbp + shr r9,51 + add rcx,r9 + mov QWORD PTR[rdi],rax mov QWORD PTR[8+rdi],rcx mov QWORD PTR[16+rdi],rdx mov QWORD PTR[24+rdi],rbx mov QWORD PTR[32+rdi],r10 - + mov r15,QWORD PTR[40+rsp] - + mov r14,QWORD PTR[48+rsp] - + mov r13,QWORD PTR[56+rsp] - + mov r12,QWORD PTR[64+rsp] - + mov rbx,QWORD PTR[72+rsp] - + mov rbp,QWORD PTR[80+rsp] - + lea rsp,QWORD PTR[88+rsp] - + $L$fe51_sqr_epilogue:: mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue mov rsi,QWORD PTR[16+rsp] - DB 0F3h,0C3h ;repret - + DB 0F3h,0C3h ;repret + $L$SEH_end_x25519_fe51_sqr:: x25519_fe51_sqr ENDP - + PUBLIC x25519_fe51_mul121666 - -ALIGN 32 + +ALIGN 32 x25519_fe51_mul121666 PROC PUBLIC mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi - mov rax,rsp + mov rax,rsp $L$SEH_begin_x25519_fe51_mul121666:: - mov rdi,rcx - mov rsi,rdx - - - - push rbp - - push rbx - - push r12 - - push r13 - - push r14 - - push r15 - + mov rdi,rcx + mov rsi,rdx + + + + push rbp + + push rbx + + push r12 + + push r13 + + push r14 + + push r15 + lea rsp,QWORD PTR[((-40))+rsp] - + $L$fe51_mul121666_body:: - mov eax,121666 - + mov eax,121666 + mul QWORD PTR[rsi] - mov rbx,rax - mov eax,121666 - mov rcx,rdx + mov rbx,rax + mov eax,121666 + mov rcx,rdx mul QWORD PTR[8+rsi] - mov r8,rax - mov eax,121666 - mov r9,rdx + mov r8,rax + mov eax,121666 + mov r9,rdx mul QWORD PTR[16+rsi] - mov r10,rax - mov eax,121666 - mov r11,rdx + mov r10,rax + mov eax,121666 + mov r11,rdx mul QWORD PTR[24+rsi] - mov r12,rax - mov eax,121666 - mov r13,rdx + mov r12,rax + mov eax,121666 + mov r13,rdx mul QWORD PTR[32+rsi] - mov r14,rax - mov r15,rdx - + mov r14,rax + mov r15,rdx + jmp $L$reduce51 $L$fe51_mul121666_epilogue:: - + $L$SEH_end_x25519_fe51_mul121666:: x25519_fe51_mul121666 ENDP EXTERN OPENSSL_ia32cap_P:NEAR PUBLIC x25519_fe64_eligible - -ALIGN 32 + +ALIGN 32 x25519_fe64_eligible PROC PUBLIC mov ecx,DWORD PTR[((OPENSSL_ia32cap_P+8))] - xor eax,eax + xor eax,eax and ecx,080100h cmp ecx,080100h - cmove eax,ecx - DB 0F3h,0C3h ;repret - + cmove eax,ecx + DB 0F3h,0C3h ;repret + x25519_fe64_eligible ENDP - + PUBLIC x25519_fe64_mul - -ALIGN 32 + +ALIGN 32 x25519_fe64_mul PROC PUBLIC mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi - mov rax,rsp + mov rax,rsp $L$SEH_begin_x25519_fe64_mul:: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - - - - push rbp - - push rbx - - push r12 - - push r13 - - push r14 - - push r15 - - push rdi - + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + + + push rbp + + push rbx + + push r12 + + push r13 + + push r14 + + push r15 + + push rdi + lea rsp,QWORD PTR[((-16))+rsp] - + $L$fe64_mul_body:: - - mov rax,rdx + + mov rax,rdx mov rbp,QWORD PTR[rdx] mov rdx,QWORD PTR[rsi] mov rcx,QWORD PTR[8+rax] mov r14,QWORD PTR[16+rax] mov r15,QWORD PTR[24+rax] - - mulx rax,r8,rbp - xor edi,edi - mulx rbx,r9,rcx - adcx r9,rax - mulx rax,r10,r14 - adcx r10,rbx - mulx r12,r11,r15 + + mulx rax,r8,rbp + xor edi,edi + mulx rbx,r9,rcx + adcx r9,rax + mulx rax,r10,r14 + adcx r10,rbx + mulx r12,r11,r15 mov rdx,QWORD PTR[8+rsi] - adcx r11,rax + adcx r11,rax mov QWORD PTR[rsp],r14 - adcx r12,rdi - - mulx rbx,rax,rbp - adox r9,rax - adcx r10,rbx - mulx rbx,rax,rcx - adox r10,rax - adcx r11,rbx - mulx rbx,rax,r14 - adox r11,rax - adcx r12,rbx - mulx r13,rax,r15 + adcx r12,rdi + + mulx rbx,rax,rbp + adox r9,rax + adcx r10,rbx + mulx rbx,rax,rcx + adox r10,rax + adcx r11,rbx + mulx rbx,rax,r14 + adox r11,rax + adcx r12,rbx + mulx r13,rax,r15 mov rdx,QWORD PTR[16+rsi] - adox r12,rax - adcx r13,rdi - adox r13,rdi - - mulx rbx,rax,rbp - adcx r10,rax - adox r11,rbx - mulx rbx,rax,rcx - adcx r11,rax - adox r12,rbx - mulx rbx,rax,r14 - adcx r12,rax - adox r13,rbx - mulx r14,rax,r15 + adox r12,rax + adcx r13,rdi + adox r13,rdi + + mulx rbx,rax,rbp + adcx r10,rax + adox r11,rbx + mulx rbx,rax,rcx + adcx r11,rax + adox r12,rbx + mulx rbx,rax,r14 + adcx r12,rax + adox r13,rbx + mulx r14,rax,r15 mov rdx,QWORD PTR[24+rsi] - adcx r13,rax - adox r14,rdi - adcx r14,rdi - - mulx rbx,rax,rbp - adox r11,rax - adcx r12,rbx - mulx rbx,rax,rcx - adox r12,rax - adcx r13,rbx + adcx r13,rax + adox r14,rdi + adcx r14,rdi + + mulx rbx,rax,rbp + adox r11,rax + adcx r12,rbx + mulx rbx,rax,rcx + adox r12,rax + adcx r13,rbx mulx rbx,rax,QWORD PTR[rsp] - adox r13,rax - adcx r14,rbx - mulx r15,rax,r15 - mov edx,38 - adox r14,rax - adcx r15,rdi - adox r15,rdi - + adox r13,rax + adcx r14,rbx + mulx r15,rax,r15 + mov edx,38 + adox r14,rax + adcx r15,rdi + adox r15,rdi + jmp $L$reduce64 $L$fe64_mul_epilogue:: - + $L$SEH_end_x25519_fe64_mul:: x25519_fe64_mul ENDP - + PUBLIC x25519_fe64_sqr - -ALIGN 32 + +ALIGN 32 x25519_fe64_sqr PROC PUBLIC mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi - mov rax,rsp + mov rax,rsp $L$SEH_begin_x25519_fe64_sqr:: - mov rdi,rcx - mov rsi,rdx - - - - push rbp - - push rbx - - push r12 - - push r13 - - push r14 - - push r15 - - push rdi - + mov rdi,rcx + mov rsi,rdx + + + + push rbp + + push rbx + + push r12 + + push r13 + + push r14 + + push r15 + + push rdi + lea rsp,QWORD PTR[((-16))+rsp] - + $L$fe64_sqr_body:: - + mov rdx,QWORD PTR[rsi] mov rcx,QWORD PTR[8+rsi] mov rbp,QWORD PTR[16+rsi] mov rsi,QWORD PTR[24+rsi] - - - mulx r15,r8,rdx - mulx rax,r9,rcx - xor edi,edi - mulx rbx,r10,rbp - adcx r10,rax - mulx r12,r11,rsi - mov rdx,rcx - adcx r11,rbx - adcx r12,rdi - - - mulx rbx,rax,rbp - adox r11,rax - adcx r12,rbx - mulx r13,rax,rsi - mov rdx,rbp - adox r12,rax - adcx r13,rdi - - - mulx r14,rax,rsi - mov rdx,rcx - adox r13,rax - adcx r14,rdi - adox r14,rdi - - adcx r9,r9 - adox r9,r15 - adcx r10,r10 - mulx rbx,rax,rdx - mov rdx,rbp - adcx r11,r11 - adox r10,rax - adcx r12,r12 - adox r11,rbx - mulx rbx,rax,rdx - mov rdx,rsi - adcx r13,r13 - adox r12,rax - adcx r14,r14 - adox r13,rbx - mulx r15,rax,rdx - mov edx,38 - adox r14,rax - adcx r15,rdi - adox r15,rdi + + + mulx r15,r8,rdx + mulx rax,r9,rcx + xor edi,edi + mulx rbx,r10,rbp + adcx r10,rax + mulx r12,r11,rsi + mov rdx,rcx + adcx r11,rbx + adcx r12,rdi + + + mulx rbx,rax,rbp + adox r11,rax + adcx r12,rbx + mulx r13,rax,rsi + mov rdx,rbp + adox r12,rax + adcx r13,rdi + + + mulx r14,rax,rsi + mov rdx,rcx + adox r13,rax + adcx r14,rdi + adox r14,rdi + + adcx r9,r9 + adox r9,r15 + adcx r10,r10 + mulx rbx,rax,rdx + mov rdx,rbp + adcx r11,r11 + adox r10,rax + adcx r12,r12 + adox r11,rbx + mulx rbx,rax,rdx + mov rdx,rsi + adcx r13,r13 + adox r12,rax + adcx r14,r14 + adox r13,rbx + mulx r15,rax,rdx + mov edx,38 + adox r14,rax + adcx r15,rdi + adox r15,rdi jmp $L$reduce64 - -ALIGN 32 + +ALIGN 32 $L$reduce64:: - mulx rbx,rax,r12 - adcx r8,rax - adox r9,rbx - mulx rbx,rax,r13 - adcx r9,rax - adox r10,rbx - mulx rbx,rax,r14 - adcx r10,rax - adox r11,rbx - mulx r12,rax,r15 - adcx r11,rax - adox r12,rdi - adcx r12,rdi - + mulx rbx,rax,r12 + adcx r8,rax + adox r9,rbx + mulx rbx,rax,r13 + adcx r9,rax + adox r10,rbx + mulx rbx,rax,r14 + adcx r10,rax + adox r11,rbx + mulx r12,rax,r15 + adcx r11,rax + adox r12,rdi + adcx r12,rdi + mov rdi,QWORD PTR[16+rsp] - imul r12,rdx - - add r8,r12 - adc r9,0 - adc r10,0 - adc r11,0 - - sbb rax,rax - and rax,38 - - add r8,rax + imul r12,rdx + + add r8,r12 + adc r9,0 + adc r10,0 + adc r11,0 + + sbb rax,rax + and rax,38 + + add r8,rax mov QWORD PTR[8+rdi],r9 mov QWORD PTR[16+rdi],r10 mov QWORD PTR[24+rdi],r11 mov QWORD PTR[rdi],r8 - + mov r15,QWORD PTR[24+rsp] - + mov r14,QWORD PTR[32+rsp] - + mov r13,QWORD PTR[40+rsp] - + mov r12,QWORD PTR[48+rsp] - + mov rbx,QWORD PTR[56+rsp] - + mov rbp,QWORD PTR[64+rsp] - + lea rsp,QWORD PTR[72+rsp] - + $L$fe64_sqr_epilogue:: mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue mov rsi,QWORD PTR[16+rsp] - DB 0F3h,0C3h ;repret - + DB 0F3h,0C3h ;repret + $L$SEH_end_x25519_fe64_sqr:: x25519_fe64_sqr ENDP - + PUBLIC x25519_fe64_mul121666 - -ALIGN 32 + +ALIGN 32 x25519_fe64_mul121666 PROC PUBLIC mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi - mov rax,rsp + mov rax,rsp $L$SEH_begin_x25519_fe64_mul121666:: - mov rdi,rcx - mov rsi,rdx - - + mov rdi,rcx + mov rsi,rdx + + $L$fe64_mul121666_body:: - mov edx,121666 + mov edx,121666 mulx rcx,r8,QWORD PTR[rsi] mulx rax,r9,QWORD PTR[8+rsi] - add r9,rcx + add r9,rcx mulx rcx,r10,QWORD PTR[16+rsi] - adc r10,rax + adc r10,rax mulx rax,r11,QWORD PTR[24+rsi] - adc r11,rcx - adc rax,0 - - imul rax,rax,38 - - add r8,rax - adc r9,0 - adc r10,0 - adc r11,0 - - sbb rax,rax - and rax,38 - - add r8,rax + adc r11,rcx + adc rax,0 + + imul rax,rax,38 + + add r8,rax + adc r9,0 + adc r10,0 + adc r11,0 + + sbb rax,rax + and rax,38 + + add r8,rax mov QWORD PTR[8+rdi],r9 mov QWORD PTR[16+rdi],r10 mov QWORD PTR[24+rdi],r11 mov QWORD PTR[rdi],r8 - + $L$fe64_mul121666_epilogue:: mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue mov rsi,QWORD PTR[16+rsp] - DB 0F3h,0C3h ;repret - + DB 0F3h,0C3h ;repret + $L$SEH_end_x25519_fe64_mul121666:: x25519_fe64_mul121666 ENDP - + PUBLIC x25519_fe64_add -ALIGN 32 +ALIGN 32 x25519_fe64_add PROC PUBLIC mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi - mov rax,rsp + mov rax,rsp $L$SEH_begin_x25519_fe64_add:: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - - + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + $L$fe64_add_body:: - + mov r8,QWORD PTR[rsi] mov r9,QWORD PTR[8+rsi] mov r10,QWORD PTR[16+rsi] mov r11,QWORD PTR[24+rsi] - + add r8,QWORD PTR[rdx] adc r9,QWORD PTR[8+rdx] adc r10,QWORD PTR[16+rdx] adc r11,QWORD PTR[24+rdx] - sbb rax,rax - and rax,38 - - add r8,rax - adc r9,0 - adc r10,0 + sbb rax,rax + and rax,38 + + add r8,rax + adc r9,0 + adc r10,0 mov QWORD PTR[8+rdi],r9 - adc r11,0 + adc r11,0 mov QWORD PTR[16+rdi],r10 - sbb rax,rax + sbb rax,rax mov QWORD PTR[24+rdi],r11 - and rax,38 - - add r8,rax + and rax,38 + + add r8,rax mov QWORD PTR[rdi],r8 - + $L$fe64_add_epilogue:: mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue mov rsi,QWORD PTR[16+rsp] - DB 0F3h,0C3h ;repret - + DB 0F3h,0C3h ;repret + $L$SEH_end_x25519_fe64_add:: x25519_fe64_add ENDP - + PUBLIC x25519_fe64_sub -ALIGN 32 +ALIGN 32 x25519_fe64_sub PROC PUBLIC mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi - mov rax,rsp + mov rax,rsp $L$SEH_begin_x25519_fe64_sub:: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - - + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + $L$fe64_sub_body:: - + mov r8,QWORD PTR[rsi] mov r9,QWORD PTR[8+rsi] mov r10,QWORD PTR[16+rsi] mov r11,QWORD PTR[24+rsi] - + sub r8,QWORD PTR[rdx] sbb r9,QWORD PTR[8+rdx] sbb r10,QWORD PTR[16+rdx] sbb r11,QWORD PTR[24+rdx] - sbb rax,rax - and rax,38 - - sub r8,rax - sbb r9,0 - sbb r10,0 + sbb rax,rax + and rax,38 + + sub r8,rax + sbb r9,0 + sbb r10,0 mov QWORD PTR[8+rdi],r9 - sbb r11,0 + sbb r11,0 mov QWORD PTR[16+rdi],r10 - sbb rax,rax + sbb rax,rax mov QWORD PTR[24+rdi],r11 - and rax,38 - - sub r8,rax + and rax,38 + + sub r8,rax mov QWORD PTR[rdi],r8 - + $L$fe64_sub_epilogue:: mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue mov rsi,QWORD PTR[16+rsp] - DB 0F3h,0C3h ;repret - + DB 0F3h,0C3h ;repret + $L$SEH_end_x25519_fe64_sub:: x25519_fe64_sub ENDP - + PUBLIC x25519_fe64_tobytes -ALIGN 32 +ALIGN 32 x25519_fe64_tobytes PROC PUBLIC mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi - mov rax,rsp + mov rax,rsp $L$SEH_begin_x25519_fe64_tobytes:: - mov rdi,rcx - mov rsi,rdx - - + mov rdi,rcx + mov rsi,rdx + + $L$fe64_to_body:: - + mov r8,QWORD PTR[rsi] mov r9,QWORD PTR[8+rsi] mov r10,QWORD PTR[16+rsi] mov r11,QWORD PTR[24+rsi] - + lea rax,QWORD PTR[r11*1+r11] - sar r11,63 - shr rax,1 - and r11,19 - add r11,19 - - add r8,r11 - adc r9,0 - adc r10,0 - adc rax,0 - + sar r11,63 + shr rax,1 + and r11,19 + add r11,19 + + add r8,r11 + adc r9,0 + adc r10,0 + adc rax,0 + lea r11,QWORD PTR[rax*1+rax] - sar rax,63 - shr r11,1 - not rax - and rax,19 - - sub r8,rax - sbb r9,0 - sbb r10,0 - sbb r11,0 - + sar rax,63 + shr r11,1 + not rax + and rax,19 + + sub r8,rax + sbb r9,0 + sbb r10,0 + sbb r11,0 + mov QWORD PTR[rdi],r8 mov QWORD PTR[8+rdi],r9 mov QWORD PTR[16+rdi],r10 mov QWORD PTR[24+rdi],r11 - + $L$fe64_to_epilogue:: mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue mov rsi,QWORD PTR[16+rsp] - DB 0F3h,0C3h ;repret + DB 0F3h,0C3h ;repret $L$SEH_end_x25519_fe64_tobytes:: x25519_fe64_tobytes ENDP -DB 88,50,53,53,49,57,32,112,114,105,109,105,116,105,118,101 -DB 115,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82 -DB 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112 -DB 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +DB 88,50,53,53,49,57,32,112,114,105,109,105,116,105,118,101 +DB 115,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82 +DB 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112 +DB 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 EXTERN __imp_RtlVirtualUnwind:NEAR - - -ALIGN 16 + + +ALIGN 16 short_handler PROC PRIVATE - push rsi - push rdi - push rbx - push rbp - push r12 - push r13 - push r14 - push r15 - pushfq - sub rsp,64 - + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + mov rax,QWORD PTR[120+r8] mov rbx,QWORD PTR[248+r8] - + mov rsi,QWORD PTR[8+r9] mov r11,QWORD PTR[56+r9] - + mov r10d,DWORD PTR[r11] lea r10,QWORD PTR[r10*1+rsi] - cmp rbx,r10 + cmp rbx,r10 jb $L$common_seh_tail - + mov rax,QWORD PTR[152+r8] jmp $L$common_seh_tail short_handler ENDP - - -ALIGN 16 + + +ALIGN 16 full_handler PROC PRIVATE - push rsi - push rdi - push rbx - push rbp - push r12 - push r13 - push r14 - push r15 - pushfq - sub rsp,64 - + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + mov rax,QWORD PTR[120+r8] mov rbx,QWORD PTR[248+r8] - + mov rsi,QWORD PTR[8+r9] mov r11,QWORD PTR[56+r9] - + mov r10d,DWORD PTR[r11] lea r10,QWORD PTR[r10*1+rsi] - cmp rbx,r10 + cmp rbx,r10 jb $L$common_seh_tail - + mov rax,QWORD PTR[152+r8] - + mov r10d,DWORD PTR[4+r11] lea r10,QWORD PTR[r10*1+rsi] - cmp rbx,r10 + cmp rbx,r10 jae $L$common_seh_tail - + mov r10d,DWORD PTR[8+r11] lea rax,QWORD PTR[r10*1+rax] - + mov rbp,QWORD PTR[((-8))+rax] mov rbx,QWORD PTR[((-16))+rax] mov r12,QWORD PTR[((-24))+rax] @@ -947,21 +947,21 @@ full_handler PROC PRIVATE mov QWORD PTR[224+r8],r13 mov QWORD PTR[232+r8],r14 mov QWORD PTR[240+r8],r15 - + $L$common_seh_tail:: mov rdi,QWORD PTR[8+rax] mov rsi,QWORD PTR[16+rax] mov QWORD PTR[152+r8],rax mov QWORD PTR[168+r8],rsi mov QWORD PTR[176+r8],rdi - + mov rdi,QWORD PTR[40+r9] - mov rsi,r8 - mov ecx,154 + mov rsi,r8 + mov ecx,154 DD 0a548f3fch - - mov rsi,r9 - xor rcx,rcx + + mov rsi,r9 + xor rcx,rcx mov rdx,QWORD PTR[8+rsi] mov r8,QWORD PTR[rsi] mov r9,QWORD PTR[16+rsi] @@ -973,100 +973,100 @@ $L$common_seh_tail:: mov QWORD PTR[48+rsp],r12 mov QWORD PTR[56+rsp],rcx call QWORD PTR[__imp_RtlVirtualUnwind] - - mov eax,1 - add rsp,64 - popfq - pop r15 - pop r14 - pop r13 - pop r12 - pop rbp - pop rbx - pop rdi - pop rsi - DB 0F3h,0C3h ;repret + + mov eax,1 + add rsp,64 + popfq + pop r15 + pop r14 + pop r13 + pop r12 + pop rbp + pop rbx + pop rdi + pop rsi + DB 0F3h,0C3h ;repret full_handler ENDP - + .text$ ENDS .pdata SEGMENT READONLY ALIGN(4) -ALIGN 4 +ALIGN 4 DD imagerel $L$SEH_begin_x25519_fe51_mul DD imagerel $L$SEH_end_x25519_fe51_mul DD imagerel $L$SEH_info_x25519_fe51_mul - + DD imagerel $L$SEH_begin_x25519_fe51_sqr DD imagerel $L$SEH_end_x25519_fe51_sqr DD imagerel $L$SEH_info_x25519_fe51_sqr - + DD imagerel $L$SEH_begin_x25519_fe51_mul121666 DD imagerel $L$SEH_end_x25519_fe51_mul121666 DD imagerel $L$SEH_info_x25519_fe51_mul121666 DD imagerel $L$SEH_begin_x25519_fe64_mul DD imagerel $L$SEH_end_x25519_fe64_mul DD imagerel $L$SEH_info_x25519_fe64_mul - + DD imagerel $L$SEH_begin_x25519_fe64_sqr DD imagerel $L$SEH_end_x25519_fe64_sqr DD imagerel $L$SEH_info_x25519_fe64_sqr - + DD imagerel $L$SEH_begin_x25519_fe64_mul121666 DD imagerel $L$SEH_end_x25519_fe64_mul121666 DD imagerel $L$SEH_info_x25519_fe64_mul121666 - + DD imagerel $L$SEH_begin_x25519_fe64_add DD imagerel $L$SEH_end_x25519_fe64_add DD imagerel $L$SEH_info_x25519_fe64_add - + DD imagerel $L$SEH_begin_x25519_fe64_sub DD imagerel $L$SEH_end_x25519_fe64_sub DD imagerel $L$SEH_info_x25519_fe64_sub - + DD imagerel $L$SEH_begin_x25519_fe64_tobytes DD imagerel $L$SEH_end_x25519_fe64_tobytes DD imagerel $L$SEH_info_x25519_fe64_tobytes .pdata ENDS .xdata SEGMENT READONLY ALIGN(8) -ALIGN 8 +ALIGN 8 $L$SEH_info_x25519_fe51_mul:: -DB 9,0,0,0 +DB 9,0,0,0 DD imagerel full_handler DD imagerel $L$fe51_mul_body,imagerel $L$fe51_mul_epilogue - DD 88,0 + DD 88,0 $L$SEH_info_x25519_fe51_sqr:: -DB 9,0,0,0 +DB 9,0,0,0 DD imagerel full_handler DD imagerel $L$fe51_sqr_body,imagerel $L$fe51_sqr_epilogue - DD 88,0 + DD 88,0 $L$SEH_info_x25519_fe51_mul121666:: -DB 9,0,0,0 +DB 9,0,0,0 DD imagerel full_handler DD imagerel $L$fe51_mul121666_body,imagerel $L$fe51_mul121666_epilogue - DD 88,0 + DD 88,0 $L$SEH_info_x25519_fe64_mul:: -DB 9,0,0,0 +DB 9,0,0,0 DD imagerel full_handler DD imagerel $L$fe64_mul_body,imagerel $L$fe64_mul_epilogue - DD 72,0 + DD 72,0 $L$SEH_info_x25519_fe64_sqr:: -DB 9,0,0,0 +DB 9,0,0,0 DD imagerel full_handler DD imagerel $L$fe64_sqr_body,imagerel $L$fe64_sqr_epilogue - DD 72,0 + DD 72,0 $L$SEH_info_x25519_fe64_mul121666:: -DB 9,0,0,0 +DB 9,0,0,0 DD imagerel short_handler DD imagerel $L$fe64_mul121666_body,imagerel $L$fe64_mul121666_epilogue $L$SEH_info_x25519_fe64_add:: -DB 9,0,0,0 +DB 9,0,0,0 DD imagerel short_handler DD imagerel $L$fe64_add_body,imagerel $L$fe64_add_epilogue $L$SEH_info_x25519_fe64_sub:: -DB 9,0,0,0 +DB 9,0,0,0 DD imagerel short_handler DD imagerel $L$fe64_sub_body,imagerel $L$fe64_sub_epilogue $L$SEH_info_x25519_fe64_tobytes:: -DB 9,0,0,0 +DB 9,0,0,0 DD imagerel short_handler DD imagerel $L$fe64_to_body,imagerel $L$fe64_to_epilogue |