aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/openssl/asm/windows/crypto/ec/x25519-x86_64.masm
diff options
context:
space:
mode:
authorheretic <heretic@yandex-team.ru>2022-02-10 16:45:46 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:45:46 +0300
commit81eddc8c0b55990194e112b02d127b87d54164a9 (patch)
tree9142afc54d335ea52910662635b898e79e192e49 /contrib/libs/openssl/asm/windows/crypto/ec/x25519-x86_64.masm
parent397cbe258b9e064f49c4ca575279f02f39fef76e (diff)
downloadydb-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.masm790
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