diff options
author | heretic <heretic@yandex-team.ru> | 2022-02-10 16:45:46 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:46 +0300 |
commit | 81eddc8c0b55990194e112b02d127b87d54164a9 (patch) | |
tree | 9142afc54d335ea52910662635b898e79e192e49 /contrib/libs/openssl/asm/windows/crypto/ec/x25519-x86_64.masm | |
parent | 397cbe258b9e064f49c4ca575279f02f39fef76e (diff) | |
download | ydb-81eddc8c0b55990194e112b02d127b87d54164a9.tar.gz |
Restoring authorship annotation for <heretic@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 | 790 |
1 files changed, 395 insertions, 395 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 4406b2634c..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,14 +1,14 @@ -OPTION DOTNAME -.text$ SEGMENT ALIGN(256) 'CODE' +OPTION DOTNAME +.text$ SEGMENT ALIGN(256) 'CODE' -PUBLIC x25519_fe51_mul +PUBLIC x25519_fe51_mul ALIGN 32 -x25519_fe51_mul PROC PUBLIC - mov QWORD PTR[8+rsp],rdi ;WIN64 prologue - mov QWORD PTR[16+rsp],rsi +x25519_fe51_mul PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi mov rax,rsp -$L$SEH_begin_x25519_fe51_mul:: +$L$SEH_begin_x25519_fe51_mul:: mov rdi,rcx mov rsi,rdx mov rdx,r8 @@ -27,149 +27,149 @@ $L$SEH_begin_x25519_fe51_mul:: push r15 - lea rsp,QWORD PTR[((-40))+rsp] + lea rsp,QWORD PTR[((-40))+rsp] -$L$fe51_mul_body:: +$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 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 QWORD PTR[32+rsp],rdi mov rdi,rax mul r11 - mov QWORD PTR[rsp],r11 + mov QWORD PTR[rsp],r11 mov rbx,rax mov rax,rdi mov rcx,rdx mul r12 - mov QWORD PTR[8+rsp],r12 + mov QWORD PTR[8+rsp],r12 mov r8,rax mov rax,rdi - lea r15,QWORD PTR[r14*8+r14] + lea r15,QWORD PTR[r14*8+r14] mov r9,rdx mul r13 - mov QWORD PTR[16+rsp],r13 + mov QWORD PTR[16+rsp],r13 mov r10,rax mov rax,rdi - lea rdi,QWORD PTR[r15*2+r14] + lea rdi,QWORD PTR[r15*2+r14] mov r11,rdx mul rbp mov r12,rax - mov rax,QWORD PTR[rsi] + mov rax,QWORD PTR[rsi] mov r13,rdx mul r14 mov r14,rax - mov rax,QWORD PTR[8+rsi] + mov rax,QWORD PTR[8+rsi] mov r15,rdx mul rdi add rbx,rax - mov rax,QWORD PTR[16+rsi] + mov rax,QWORD PTR[16+rsi] adc rcx,rdx mul rdi add r8,rax - mov rax,QWORD PTR[24+rsi] + mov rax,QWORD PTR[24+rsi] adc r9,rdx mul rdi add r10,rax - mov rax,QWORD PTR[32+rsi] + mov rax,QWORD PTR[32+rsi] adc r11,rdx mul rdi imul rdi,rbp,19 add r12,rax - mov rax,QWORD PTR[8+rsi] + mov rax,QWORD PTR[8+rsi] adc r13,rdx mul rbp - mov rbp,QWORD PTR[16+rsp] + mov rbp,QWORD PTR[16+rsp] add r14,rax - mov rax,QWORD PTR[16+rsi] + mov rax,QWORD PTR[16+rsi] adc r15,rdx mul rdi add rbx,rax - mov rax,QWORD PTR[24+rsi] + mov rax,QWORD PTR[24+rsi] adc rcx,rdx mul rdi add r8,rax - mov rax,QWORD PTR[32+rsi] + mov rax,QWORD PTR[32+rsi] adc r9,rdx mul rdi imul rdi,rbp,19 add r10,rax - mov rax,QWORD PTR[8+rsi] + mov rax,QWORD PTR[8+rsi] adc r11,rdx mul rbp add r12,rax - mov rax,QWORD PTR[16+rsi] + mov rax,QWORD PTR[16+rsi] adc r13,rdx mul rbp - mov rbp,QWORD PTR[8+rsp] + mov rbp,QWORD PTR[8+rsp] add r14,rax - mov rax,QWORD PTR[24+rsi] + mov rax,QWORD PTR[24+rsi] adc r15,rdx mul rdi add rbx,rax - mov rax,QWORD PTR[32+rsi] + mov rax,QWORD PTR[32+rsi] adc rcx,rdx mul rdi add r8,rax - mov rax,QWORD PTR[8+rsi] + mov rax,QWORD PTR[8+rsi] adc r9,rdx mul rbp imul rdi,rbp,19 add r10,rax - mov rax,QWORD PTR[16+rsi] + mov rax,QWORD PTR[16+rsi] adc r11,rdx mul rbp add r12,rax - mov rax,QWORD PTR[24+rsi] + mov rax,QWORD PTR[24+rsi] adc r13,rdx mul rbp - mov rbp,QWORD PTR[rsp] + mov rbp,QWORD PTR[rsp] add r14,rax - mov rax,QWORD PTR[32+rsi] + mov rax,QWORD PTR[32+rsi] adc r15,rdx mul rdi add rbx,rax - mov rax,QWORD PTR[8+rsi] + mov rax,QWORD PTR[8+rsi] adc rcx,rdx mul rbp add r8,rax - mov rax,QWORD PTR[16+rsi] + mov rax,QWORD PTR[16+rsi] adc r9,rdx mul rbp add r10,rax - mov rax,QWORD PTR[24+rsi] + mov rax,QWORD PTR[24+rsi] adc r11,rdx mul rbp add r12,rax - mov rax,QWORD PTR[32+rsi] + mov rax,QWORD PTR[32+rsi] adc r13,rdx mul rbp add r14,rax adc r15,rdx - mov rdi,QWORD PTR[32+rsp] - jmp $L$reduce51 -$L$fe51_mul_epilogue:: + mov rdi,QWORD PTR[32+rsp] + jmp $L$reduce51 +$L$fe51_mul_epilogue:: -$L$SEH_end_x25519_fe51_mul:: -x25519_fe51_mul ENDP +$L$SEH_end_x25519_fe51_mul:: +x25519_fe51_mul ENDP -PUBLIC x25519_fe51_sqr +PUBLIC x25519_fe51_sqr ALIGN 32 -x25519_fe51_sqr PROC PUBLIC - mov QWORD PTR[8+rsp],rdi ;WIN64 prologue - mov QWORD PTR[16+rsp],rsi +x25519_fe51_sqr PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi mov rax,rsp -$L$SEH_begin_x25519_fe51_sqr:: +$L$SEH_begin_x25519_fe51_sqr:: mov rdi,rcx mov rsi,rdx @@ -187,28 +187,28 @@ $L$SEH_begin_x25519_fe51_sqr:: push r15 - lea rsp,QWORD PTR[((-40))+rsp] + lea rsp,QWORD PTR[((-40))+rsp] -$L$fe51_sqr_body:: +$L$fe51_sqr_body:: - mov rax,QWORD PTR[rsi] - mov r15,QWORD PTR[16+rsi] - mov rbp,QWORD PTR[32+rsi] + 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] + mov QWORD PTR[32+rsp],rdi + lea r14,QWORD PTR[rax*1+rax] mul rax mov rbx,rax - mov rax,QWORD PTR[8+rsi] + mov rax,QWORD PTR[8+rsi] mov rcx,rdx mul r14 mov r8,rax mov rax,r15 - mov QWORD PTR[rsp],r15 + mov QWORD PTR[rsp],r15 mov r9,rdx mul r14 mov r10,rax - mov rax,QWORD PTR[24+rsi] + mov rax,QWORD PTR[24+rsi] mov r11,rdx imul rdi,rbp,19 mul r14 @@ -222,14 +222,14 @@ $L$fe51_sqr_body:: mul rdi add r12,rax - mov rax,QWORD PTR[8+rsi] + mov rax,QWORD PTR[8+rsi] adc r13,rdx - mov rsi,QWORD PTR[24+rsi] - lea rbp,QWORD PTR[rax*1+rax] + mov rsi,QWORD PTR[24+rsi] + lea rbp,QWORD PTR[rax*1+rax] mul rax add r10,rax - mov rax,QWORD PTR[rsp] + mov rax,QWORD PTR[rsp] adc r11,rdx mul rbp add r12,rax @@ -242,7 +242,7 @@ $L$fe51_sqr_body:: imul rbp,rsi,19 mul rdi add rbx,rax - lea rax,QWORD PTR[rsi*1+rsi] + lea rax,QWORD PTR[rsi*1+rsi] adc rcx,rdx mul rdi @@ -251,10 +251,10 @@ $L$fe51_sqr_body:: adc r11,rdx mul rbp add r8,rax - mov rax,QWORD PTR[rsp] + mov rax,QWORD PTR[rsp] adc r9,rdx - lea rsi,QWORD PTR[rax*1+rax] + lea rsi,QWORD PTR[rax*1+rax] mul rax add r14,rax mov rax,rbp @@ -267,12 +267,12 @@ $L$fe51_sqr_body:: add r8,rax adc r9,rdx - mov rdi,QWORD PTR[32+rsp] - jmp $L$reduce51 + mov rdi,QWORD PTR[32+rsp] + jmp $L$reduce51 ALIGN 32 -$L$reduce51:: - mov rbp,07ffffffffffffh +$L$reduce51:: + mov rbp,07ffffffffffffh mov rdx,r10 shr r10,51 @@ -311,8 +311,8 @@ $L$reduce51:: and r10,rbp or r15,r14 - lea r14,QWORD PTR[r15*8+r15] - lea r15,QWORD PTR[r14*2+r15] + lea r14,QWORD PTR[r15*8+r15] + lea r15,QWORD PTR[r14*2+r15] add rax,r15 mov r8,rdx @@ -325,42 +325,42 @@ $L$reduce51:: 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 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 r15,QWORD PTR[40+rsp] - mov r14,QWORD PTR[48+rsp] + mov r14,QWORD PTR[48+rsp] - mov r13,QWORD PTR[56+rsp] + mov r13,QWORD PTR[56+rsp] - mov r12,QWORD PTR[64+rsp] + mov r12,QWORD PTR[64+rsp] - mov rbx,QWORD PTR[72+rsp] + mov rbx,QWORD PTR[72+rsp] - mov rbp,QWORD PTR[80+rsp] + mov rbp,QWORD PTR[80+rsp] - lea rsp,QWORD PTR[88+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] +$L$fe51_sqr_epilogue:: + mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue + mov rsi,QWORD PTR[16+rsp] DB 0F3h,0C3h ;repret -$L$SEH_end_x25519_fe51_sqr:: -x25519_fe51_sqr ENDP +$L$SEH_end_x25519_fe51_sqr:: +x25519_fe51_sqr ENDP -PUBLIC x25519_fe51_mul121666 +PUBLIC x25519_fe51_mul121666 ALIGN 32 -x25519_fe51_mul121666 PROC PUBLIC - mov QWORD PTR[8+rsp],rdi ;WIN64 prologue - mov QWORD PTR[16+rsp],rsi +x25519_fe51_mul121666 PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi mov rax,rsp -$L$SEH_begin_x25519_fe51_mul121666:: +$L$SEH_begin_x25519_fe51_mul121666:: mov rdi,rcx mov rsi,rdx @@ -378,59 +378,59 @@ $L$SEH_begin_x25519_fe51_mul121666:: push r15 - lea rsp,QWORD PTR[((-40))+rsp] + lea rsp,QWORD PTR[((-40))+rsp] -$L$fe51_mul121666_body:: +$L$fe51_mul121666_body:: mov eax,121666 - mul QWORD PTR[rsi] + mul QWORD PTR[rsi] mov rbx,rax mov eax,121666 mov rcx,rdx - mul QWORD PTR[8+rsi] + mul QWORD PTR[8+rsi] mov r8,rax mov eax,121666 mov r9,rdx - mul QWORD PTR[16+rsi] + mul QWORD PTR[16+rsi] mov r10,rax mov eax,121666 mov r11,rdx - mul QWORD PTR[24+rsi] + mul QWORD PTR[24+rsi] mov r12,rax mov eax,121666 mov r13,rdx - mul QWORD PTR[32+rsi] + mul QWORD PTR[32+rsi] mov r14,rax mov r15,rdx - jmp $L$reduce51 -$L$fe51_mul121666_epilogue:: + 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 +$L$SEH_end_x25519_fe51_mul121666:: +x25519_fe51_mul121666 ENDP +EXTERN OPENSSL_ia32cap_P:NEAR +PUBLIC x25519_fe64_eligible ALIGN 32 -x25519_fe64_eligible PROC PUBLIC - - mov ecx,DWORD PTR[((OPENSSL_ia32cap_P+8))] +x25519_fe64_eligible PROC PUBLIC + + mov ecx,DWORD PTR[((OPENSSL_ia32cap_P+8))] xor eax,eax - and ecx,080100h - cmp ecx,080100h + and ecx,080100h + cmp ecx,080100h cmove eax,ecx DB 0F3h,0C3h ;repret -x25519_fe64_eligible ENDP +x25519_fe64_eligible ENDP -PUBLIC x25519_fe64_mul +PUBLIC x25519_fe64_mul ALIGN 32 -x25519_fe64_mul PROC PUBLIC - mov QWORD PTR[8+rsp],rdi ;WIN64 prologue - mov QWORD PTR[16+rsp],rsi +x25519_fe64_mul PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi mov rax,rsp -$L$SEH_begin_x25519_fe64_mul:: +$L$SEH_begin_x25519_fe64_mul:: mov rdi,rcx mov rsi,rdx mov rdx,r8 @@ -451,16 +451,16 @@ $L$SEH_begin_x25519_fe64_mul:: push rdi - lea rsp,QWORD PTR[((-16))+rsp] + lea rsp,QWORD PTR[((-16))+rsp] -$L$fe64_mul_body:: +$L$fe64_mul_body:: 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] + 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 @@ -469,9 +469,9 @@ $L$fe64_mul_body:: mulx rax,r10,r14 adcx r10,rbx mulx r12,r11,r15 - mov rdx,QWORD PTR[8+rsi] + mov rdx,QWORD PTR[8+rsi] adcx r11,rax - mov QWORD PTR[rsp],r14 + mov QWORD PTR[rsp],r14 adcx r12,rdi mulx rbx,rax,rbp @@ -484,7 +484,7 @@ $L$fe64_mul_body:: adox r11,rax adcx r12,rbx mulx r13,rax,r15 - mov rdx,QWORD PTR[16+rsi] + mov rdx,QWORD PTR[16+rsi] adox r12,rax adcx r13,rdi adox r13,rdi @@ -499,7 +499,7 @@ $L$fe64_mul_body:: adcx r12,rax adox r13,rbx mulx r14,rax,r15 - mov rdx,QWORD PTR[24+rsi] + mov rdx,QWORD PTR[24+rsi] adcx r13,rax adox r14,rdi adcx r14,rdi @@ -510,7 +510,7 @@ $L$fe64_mul_body:: mulx rbx,rax,rcx adox r12,rax adcx r13,rbx - mulx rbx,rax,QWORD PTR[rsp] + mulx rbx,rax,QWORD PTR[rsp] adox r13,rax adcx r14,rbx mulx r15,rax,r15 @@ -519,20 +519,20 @@ $L$fe64_mul_body:: adcx r15,rdi adox r15,rdi - jmp $L$reduce64 -$L$fe64_mul_epilogue:: + jmp $L$reduce64 +$L$fe64_mul_epilogue:: -$L$SEH_end_x25519_fe64_mul:: -x25519_fe64_mul ENDP +$L$SEH_end_x25519_fe64_mul:: +x25519_fe64_mul ENDP -PUBLIC x25519_fe64_sqr +PUBLIC x25519_fe64_sqr ALIGN 32 -x25519_fe64_sqr PROC PUBLIC - mov QWORD PTR[8+rsp],rdi ;WIN64 prologue - mov QWORD PTR[16+rsp],rsi +x25519_fe64_sqr PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi mov rax,rsp -$L$SEH_begin_x25519_fe64_sqr:: +$L$SEH_begin_x25519_fe64_sqr:: mov rdi,rcx mov rsi,rdx @@ -552,14 +552,14 @@ $L$SEH_begin_x25519_fe64_sqr:: push rdi - lea rsp,QWORD PTR[((-16))+rsp] + lea rsp,QWORD PTR[((-16))+rsp] -$L$fe64_sqr_body:: +$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] + 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 @@ -608,10 +608,10 @@ $L$fe64_sqr_body:: adox r14,rax adcx r15,rdi adox r15,rdi - jmp $L$reduce64 + jmp $L$reduce64 ALIGN 32 -$L$reduce64:: +$L$reduce64:: mulx rbx,rax,r12 adcx r8,rax adox r9,rbx @@ -626,7 +626,7 @@ $L$reduce64:: adox r12,rdi adcx r12,rdi - mov rdi,QWORD PTR[16+rsp] + mov rdi,QWORD PTR[16+rsp] imul r12,rdx add r8,r12 @@ -638,54 +638,54 @@ $L$reduce64:: 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 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 r15,QWORD PTR[24+rsp] - mov r14,QWORD PTR[32+rsp] + mov r14,QWORD PTR[32+rsp] - mov r13,QWORD PTR[40+rsp] + mov r13,QWORD PTR[40+rsp] - mov r12,QWORD PTR[48+rsp] + mov r12,QWORD PTR[48+rsp] - mov rbx,QWORD PTR[56+rsp] + mov rbx,QWORD PTR[56+rsp] - mov rbp,QWORD PTR[64+rsp] + mov rbp,QWORD PTR[64+rsp] - lea rsp,QWORD PTR[72+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] +$L$fe64_sqr_epilogue:: + mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue + mov rsi,QWORD PTR[16+rsp] DB 0F3h,0C3h ;repret -$L$SEH_end_x25519_fe64_sqr:: -x25519_fe64_sqr ENDP +$L$SEH_end_x25519_fe64_sqr:: +x25519_fe64_sqr ENDP -PUBLIC x25519_fe64_mul121666 +PUBLIC x25519_fe64_mul121666 ALIGN 32 -x25519_fe64_mul121666 PROC PUBLIC - mov QWORD PTR[8+rsp],rdi ;WIN64 prologue - mov QWORD PTR[16+rsp],rsi +x25519_fe64_mul121666 PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi mov rax,rsp -$L$SEH_begin_x25519_fe64_mul121666:: +$L$SEH_begin_x25519_fe64_mul121666:: mov rdi,rcx mov rsi,rdx -$L$fe64_mul121666_body:: - +$L$fe64_mul121666_body:: + mov edx,121666 - mulx rcx,r8,QWORD PTR[rsi] - mulx rax,r9,QWORD PTR[8+rsi] + mulx rcx,r8,QWORD PTR[rsi] + mulx rax,r9,QWORD PTR[8+rsi] add r9,rcx - mulx rcx,r10,QWORD PTR[16+rsi] + mulx rcx,r10,QWORD PTR[16+rsi] adc r10,rax - mulx rax,r11,QWORD PTR[24+rsi] + mulx rax,r11,QWORD PTR[24+rsi] adc r11,rcx adc rax,0 @@ -700,138 +700,138 @@ $L$fe64_mul121666_body:: 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] + 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 -$L$SEH_end_x25519_fe64_mul121666:: -x25519_fe64_mul121666 ENDP +$L$SEH_end_x25519_fe64_mul121666:: +x25519_fe64_mul121666 ENDP + +PUBLIC x25519_fe64_add -PUBLIC x25519_fe64_add - ALIGN 32 -x25519_fe64_add PROC PUBLIC - mov QWORD PTR[8+rsp],rdi ;WIN64 prologue - mov QWORD PTR[16+rsp],rsi +x25519_fe64_add PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi mov rax,rsp -$L$SEH_begin_x25519_fe64_add:: +$L$SEH_begin_x25519_fe64_add:: mov rdi,rcx mov rsi,rdx mov rdx,r8 -$L$fe64_add_body:: +$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] + 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] - 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 - mov QWORD PTR[8+rdi],r9 + mov QWORD PTR[8+rdi],r9 adc r11,0 - mov QWORD PTR[16+rdi],r10 + mov QWORD PTR[16+rdi],r10 sbb rax,rax - mov QWORD PTR[24+rdi],r11 + mov QWORD PTR[24+rdi],r11 and rax,38 add r8,rax - mov QWORD PTR[rdi],r8 + mov QWORD PTR[rdi],r8 -$L$fe64_add_epilogue:: - mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue - mov rsi,QWORD PTR[16+rsp] +$L$fe64_add_epilogue:: + mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue + mov rsi,QWORD PTR[16+rsp] DB 0F3h,0C3h ;repret -$L$SEH_end_x25519_fe64_add:: -x25519_fe64_add ENDP +$L$SEH_end_x25519_fe64_add:: +x25519_fe64_add ENDP + +PUBLIC x25519_fe64_sub -PUBLIC x25519_fe64_sub - ALIGN 32 -x25519_fe64_sub PROC PUBLIC - mov QWORD PTR[8+rsp],rdi ;WIN64 prologue - mov QWORD PTR[16+rsp],rsi +x25519_fe64_sub PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi mov rax,rsp -$L$SEH_begin_x25519_fe64_sub:: +$L$SEH_begin_x25519_fe64_sub:: mov rdi,rcx mov rsi,rdx mov rdx,r8 -$L$fe64_sub_body:: +$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] + 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] - 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 - mov QWORD PTR[8+rdi],r9 + mov QWORD PTR[8+rdi],r9 sbb r11,0 - mov QWORD PTR[16+rdi],r10 + mov QWORD PTR[16+rdi],r10 sbb rax,rax - mov QWORD PTR[24+rdi],r11 + mov QWORD PTR[24+rdi],r11 and rax,38 sub r8,rax - mov QWORD PTR[rdi],r8 + mov QWORD PTR[rdi],r8 -$L$fe64_sub_epilogue:: - mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue - mov rsi,QWORD PTR[16+rsp] +$L$fe64_sub_epilogue:: + mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue + mov rsi,QWORD PTR[16+rsp] DB 0F3h,0C3h ;repret -$L$SEH_end_x25519_fe64_sub:: -x25519_fe64_sub ENDP +$L$SEH_end_x25519_fe64_sub:: +x25519_fe64_sub ENDP + +PUBLIC x25519_fe64_tobytes -PUBLIC x25519_fe64_tobytes - ALIGN 32 -x25519_fe64_tobytes PROC PUBLIC - mov QWORD PTR[8+rsp],rdi ;WIN64 prologue - mov QWORD PTR[16+rsp],rsi +x25519_fe64_tobytes PROC PUBLIC + mov QWORD PTR[8+rsp],rdi ;WIN64 prologue + mov QWORD PTR[16+rsp],rsi mov rax,rsp -$L$SEH_begin_x25519_fe64_tobytes:: +$L$SEH_begin_x25519_fe64_tobytes:: mov rdi,rcx mov rsi,rdx -$L$fe64_to_body:: +$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] - 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] + lea rax,QWORD PTR[r11*1+r11] sar r11,63 shr rax,1 and r11,19 @@ -842,7 +842,7 @@ $L$fe64_to_body:: adc r10,0 adc rax,0 - lea r11,QWORD PTR[rax*1+rax] + lea r11,QWORD PTR[rax*1+rax] sar rax,63 shr r11,1 not rax @@ -853,27 +853,27 @@ $L$fe64_to_body:: 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 + 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] +$L$fe64_to_epilogue:: + mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue + mov rsi,QWORD PTR[16+rsp] DB 0F3h,0C3h ;repret - -$L$SEH_end_x25519_fe64_tobytes:: -x25519_fe64_tobytes ENDP + +$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 -EXTERN __imp_RtlVirtualUnwind:NEAR +EXTERN __imp_RtlVirtualUnwind:NEAR ALIGN 16 -short_handler PROC PRIVATE +short_handler PROC PRIVATE push rsi push rdi push rbx @@ -885,24 +885,24 @@ short_handler PROC PRIVATE pushfq sub rsp,64 - mov rax,QWORD PTR[120+r8] - mov rbx,QWORD PTR[248+r8] + 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 rsi,QWORD PTR[8+r9] + mov r11,QWORD PTR[56+r9] - mov r10d,DWORD PTR[r11] - lea r10,QWORD PTR[r10*1+rsi] + mov r10d,DWORD PTR[r11] + lea r10,QWORD PTR[r10*1+rsi] cmp rbx,r10 - jb $L$common_seh_tail + jb $L$common_seh_tail - mov rax,QWORD PTR[152+r8] - jmp $L$common_seh_tail -short_handler ENDP + mov rax,QWORD PTR[152+r8] + jmp $L$common_seh_tail +short_handler ENDP ALIGN 16 -full_handler PROC PRIVATE +full_handler PROC PRIVATE push rsi push rdi push rbx @@ -914,65 +914,65 @@ full_handler PROC PRIVATE pushfq sub rsp,64 - mov rax,QWORD PTR[120+r8] - mov rbx,QWORD PTR[248+r8] + 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 rsi,QWORD PTR[8+r9] + mov r11,QWORD PTR[56+r9] - mov r10d,DWORD PTR[r11] - lea r10,QWORD PTR[r10*1+rsi] + mov r10d,DWORD PTR[r11] + lea r10,QWORD PTR[r10*1+rsi] cmp rbx,r10 - jb $L$common_seh_tail + jb $L$common_seh_tail - mov rax,QWORD PTR[152+r8] + mov rax,QWORD PTR[152+r8] - mov r10d,DWORD PTR[4+r11] - lea r10,QWORD PTR[r10*1+rsi] + mov r10d,DWORD PTR[4+r11] + lea r10,QWORD PTR[r10*1+rsi] 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] - mov r13,QWORD PTR[((-32))+rax] - mov r14,QWORD PTR[((-40))+rax] - mov r15,QWORD PTR[((-48))+rax] - mov QWORD PTR[144+r8],rbx - mov QWORD PTR[160+r8],rbp - mov QWORD PTR[216+r8],r12 - 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] + 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] + mov r13,QWORD PTR[((-32))+rax] + mov r14,QWORD PTR[((-40))+rax] + mov r15,QWORD PTR[((-48))+rax] + mov QWORD PTR[144+r8],rbx + mov QWORD PTR[160+r8],rbp + mov QWORD PTR[216+r8],r12 + 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 - DD 0a548f3fch + DD 0a548f3fch mov rsi,r9 xor rcx,rcx - mov rdx,QWORD PTR[8+rsi] - mov r8,QWORD PTR[rsi] - mov r9,QWORD PTR[16+rsi] - mov r10,QWORD PTR[40+rsi] - lea r11,QWORD PTR[56+rsi] - lea r12,QWORD PTR[24+rsi] - mov QWORD PTR[32+rsp],r10 - mov QWORD PTR[40+rsp],r11 - mov QWORD PTR[48+rsp],r12 - mov QWORD PTR[56+rsp],rcx - call QWORD PTR[__imp_RtlVirtualUnwind] + mov rdx,QWORD PTR[8+rsi] + mov r8,QWORD PTR[rsi] + mov r9,QWORD PTR[16+rsi] + mov r10,QWORD PTR[40+rsi] + lea r11,QWORD PTR[56+rsi] + lea r12,QWORD PTR[24+rsi] + mov QWORD PTR[32+rsp],r10 + mov QWORD PTR[40+rsp],r11 + mov QWORD PTR[48+rsp],r12 + mov QWORD PTR[56+rsp],rcx + call QWORD PTR[__imp_RtlVirtualUnwind] mov eax,1 add rsp,64 @@ -986,89 +986,89 @@ $L$common_seh_tail:: pop rdi pop rsi DB 0F3h,0C3h ;repret -full_handler ENDP +full_handler ENDP -.text$ ENDS -.pdata SEGMENT READONLY ALIGN(4) +.text$ ENDS +.pdata SEGMENT READONLY 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) + 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 -$L$SEH_info_x25519_fe51_mul:: +$L$SEH_info_x25519_fe51_mul:: DB 9,0,0,0 - DD imagerel full_handler - DD imagerel $L$fe51_mul_body,imagerel $L$fe51_mul_epilogue + DD imagerel full_handler + DD imagerel $L$fe51_mul_body,imagerel $L$fe51_mul_epilogue DD 88,0 -$L$SEH_info_x25519_fe51_sqr:: +$L$SEH_info_x25519_fe51_sqr:: DB 9,0,0,0 - DD imagerel full_handler - DD imagerel $L$fe51_sqr_body,imagerel $L$fe51_sqr_epilogue + DD imagerel full_handler + DD imagerel $L$fe51_sqr_body,imagerel $L$fe51_sqr_epilogue DD 88,0 -$L$SEH_info_x25519_fe51_mul121666:: +$L$SEH_info_x25519_fe51_mul121666:: DB 9,0,0,0 - DD imagerel full_handler - DD imagerel $L$fe51_mul121666_body,imagerel $L$fe51_mul121666_epilogue + DD imagerel full_handler + DD imagerel $L$fe51_mul121666_body,imagerel $L$fe51_mul121666_epilogue DD 88,0 -$L$SEH_info_x25519_fe64_mul:: +$L$SEH_info_x25519_fe64_mul:: DB 9,0,0,0 - DD imagerel full_handler - DD imagerel $L$fe64_mul_body,imagerel $L$fe64_mul_epilogue + DD imagerel full_handler + DD imagerel $L$fe64_mul_body,imagerel $L$fe64_mul_epilogue DD 72,0 -$L$SEH_info_x25519_fe64_sqr:: +$L$SEH_info_x25519_fe64_sqr:: DB 9,0,0,0 - DD imagerel full_handler - DD imagerel $L$fe64_sqr_body,imagerel $L$fe64_sqr_epilogue + DD imagerel full_handler + DD imagerel $L$fe64_sqr_body,imagerel $L$fe64_sqr_epilogue DD 72,0 -$L$SEH_info_x25519_fe64_mul121666:: +$L$SEH_info_x25519_fe64_mul121666:: 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:: + 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 - DD imagerel short_handler - DD imagerel $L$fe64_add_body,imagerel $L$fe64_add_epilogue -$L$SEH_info_x25519_fe64_sub:: + 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 - DD imagerel short_handler - DD imagerel $L$fe64_sub_body,imagerel $L$fe64_sub_epilogue -$L$SEH_info_x25519_fe64_tobytes:: + 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 - DD imagerel short_handler - DD imagerel $L$fe64_to_body,imagerel $L$fe64_to_epilogue - -.xdata ENDS -END + DD imagerel short_handler + DD imagerel $L$fe64_to_body,imagerel $L$fe64_to_epilogue + +.xdata ENDS +END |