OPTION DOTNAME PUBLIC mul_mont_384x$1 PUBLIC sqr_mont_384x$1 PUBLIC mul_382x$1 PUBLIC sqr_382x$1 PUBLIC mul_384$1 PUBLIC sqr_384$1 PUBLIC redc_mont_384$1 PUBLIC from_mont_384$1 PUBLIC sgn0_pty_mont_384$1 PUBLIC sgn0_pty_mont_384x$1 PUBLIC mul_mont_384$1 PUBLIC sqr_mont_384$1 PUBLIC sqr_n_mul_mont_384$1 PUBLIC sqr_n_mul_mont_383$1 PUBLIC sqr_mont_382x$1 .text$ SEGMENT ALIGN(256) 'CODE' ALIGN 32 __subx_mod_384x384 PROC PRIVATE DB 243,15,30,250 mov r8,QWORD PTR[rsi] mov r9,QWORD PTR[8+rsi] mov r10,QWORD PTR[16+rsi] mov r11,QWORD PTR[24+rsi] mov r12,QWORD PTR[32+rsi] mov r13,QWORD PTR[40+rsi] mov r14,QWORD PTR[48+rsi] sub r8,QWORD PTR[rdx] mov r15,QWORD PTR[56+rsi] sbb r9,QWORD PTR[8+rdx] mov rax,QWORD PTR[64+rsi] sbb r10,QWORD PTR[16+rdx] mov rbx,QWORD PTR[72+rsi] sbb r11,QWORD PTR[24+rdx] mov rbp,QWORD PTR[80+rsi] sbb r12,QWORD PTR[32+rdx] mov rsi,QWORD PTR[88+rsi] sbb r13,QWORD PTR[40+rdx] mov QWORD PTR[rdi],r8 sbb r14,QWORD PTR[48+rdx] mov r8,QWORD PTR[rcx] mov QWORD PTR[8+rdi],r9 sbb r15,QWORD PTR[56+rdx] mov r9,QWORD PTR[8+rcx] mov QWORD PTR[16+rdi],r10 sbb rax,QWORD PTR[64+rdx] mov r10,QWORD PTR[16+rcx] mov QWORD PTR[24+rdi],r11 sbb rbx,QWORD PTR[72+rdx] mov r11,QWORD PTR[24+rcx] mov QWORD PTR[32+rdi],r12 sbb rbp,QWORD PTR[80+rdx] mov r12,QWORD PTR[32+rcx] mov QWORD PTR[40+rdi],r13 sbb rsi,QWORD PTR[88+rdx] mov r13,QWORD PTR[40+rcx] sbb rdx,rdx and r8,rdx and r9,rdx and r10,rdx and r11,rdx and r12,rdx and r13,rdx add r14,r8 adc r15,r9 mov QWORD PTR[48+rdi],r14 adc rax,r10 mov QWORD PTR[56+rdi],r15 adc rbx,r11 mov QWORD PTR[64+rdi],rax adc rbp,r12 mov QWORD PTR[72+rdi],rbx adc rsi,r13 mov QWORD PTR[80+rdi],rbp mov QWORD PTR[88+rdi],rsi ifdef __SGX_LVI_HARDENING__ pop rdx lfence jmp rdx ud2 else DB 0F3h,0C3h endif __subx_mod_384x384 ENDP ALIGN 32 __addx_mod_384 PROC PRIVATE DB 243,15,30,250 ifdef __SGX_LVI_HARDENING__ lfence endif mov r8,QWORD PTR[rsi] mov r9,QWORD PTR[8+rsi] mov r10,QWORD PTR[16+rsi] mov r11,QWORD PTR[24+rsi] mov r12,QWORD PTR[32+rsi] mov r13,QWORD PTR[40+rsi] add r8,QWORD PTR[rdx] adc r9,QWORD PTR[8+rdx] adc r10,QWORD PTR[16+rdx] mov r14,r8 adc r11,QWORD PTR[24+rdx] mov r15,r9 adc r12,QWORD PTR[32+rdx] mov rax,r10 adc r13,QWORD PTR[40+rdx] mov rbx,r11 sbb rdx,rdx sub r8,QWORD PTR[rcx] sbb r9,QWORD PTR[8+rcx] mov rbp,r12 sbb r10,QWORD PTR[16+rcx] sbb r11,QWORD PTR[24+rcx] sbb r12,QWORD PTR[32+rcx] mov rsi,r13 sbb r13,QWORD PTR[40+rcx] sbb rdx,0 cmovc r8,r14 cmovc r9,r15 cmovc r10,rax mov QWORD PTR[rdi],r8 cmovc r11,rbx mov QWORD PTR[8+rdi],r9 cmovc r12,rbp mov QWORD PTR[16+rdi],r10 cmovc r13,rsi mov QWORD PTR[24+rdi],r11 mov QWORD PTR[32+rdi],r12 mov QWORD PTR[40+rdi],r13 ifdef __SGX_LVI_HARDENING__ pop rdx lfence jmp rdx ud2 else DB 0F3h,0C3h endif __addx_mod_384 ENDP ALIGN 32 __subx_mod_384 PROC PRIVATE DB 243,15,30,250 ifdef __SGX_LVI_HARDENING__ lfence endif mov r8,QWORD PTR[rsi] mov r9,QWORD PTR[8+rsi] mov r10,QWORD PTR[16+rsi] mov r11,QWORD PTR[24+rsi] mov r12,QWORD PTR[32+rsi] mov r13,QWORD PTR[40+rsi] __subx_mod_384_a_is_loaded:: sub r8,QWORD PTR[rdx] mov r14,QWORD PTR[rcx] sbb r9,QWORD PTR[8+rdx] mov r15,QWORD PTR[8+rcx] sbb r10,QWORD PTR[16+rdx] mov rax,QWORD PTR[16+rcx] sbb r11,QWORD PTR[24+rdx] mov rbx,QWORD PTR[24+rcx] sbb r12,QWORD PTR[32+rdx] mov rbp,QWORD PTR[32+rcx] sbb r13,QWORD PTR[40+rdx] mov rsi,QWORD PTR[40+rcx] sbb rdx,rdx and r14,rdx and r15,rdx and rax,rdx and rbx,rdx and rbp,rdx and rsi,rdx add r8,r14 adc r9,r15 mov QWORD PTR[rdi],r8 adc r10,rax mov QWORD PTR[8+rdi],r9 adc r11,rbx mov QWORD PTR[16+rdi],r10 adc r12,rbp mov QWORD PTR[24+rdi],r11 adc r13,rsi mov QWORD PTR[32+rdi],r12 mov QWORD PTR[40+rdi],r13 ifdef __SGX_LVI_HARDENING__ pop rdx lfence jmp rdx ud2 else DB 0F3h,0C3h endif __subx_mod_384 ENDP PUBLIC mulx_mont_384x ALIGN 32 mulx_mont_384x PROC PUBLIC DB 243,15,30,250 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi mov r11,rsp $L$SEH_begin_mulx_mont_384x:: mov rdi,rcx mov rsi,rdx mov rdx,r8 mov rcx,r9 mov r8,QWORD PTR[40+rsp] mul_mont_384x$1:: push rbp push rbx push r12 push r13 push r14 push r15 sub rsp,328 $L$SEH_body_mulx_mont_384x:: mov rbx,rdx mov QWORD PTR[32+rsp],rdi mov QWORD PTR[24+rsp],rsi mov QWORD PTR[16+rsp],rdx mov QWORD PTR[8+rsp],rcx mov QWORD PTR[rsp],r8 lea rdi,QWORD PTR[40+rsp] ifdef __SGX_LVI_HARDENING__ lfence endif call __mulx_384 lea rbx,QWORD PTR[48+rbx] lea rsi,QWORD PTR[((128+48))+rsi] lea rdi,QWORD PTR[96+rdi] call __mulx_384 mov rcx,QWORD PTR[8+rsp] lea rsi,QWORD PTR[rbx] lea rdx,QWORD PTR[((-48))+rbx] lea rdi,QWORD PTR[((40+192+48))+rsp] ifdef __SGX_LVI_HARDENING__ lfence endif call __addx_mod_384 mov rsi,QWORD PTR[24+rsp] lea rdx,QWORD PTR[48+rsi] lea rdi,QWORD PTR[((-48))+rdi] ifdef __SGX_LVI_HARDENING__ lfence endif call __addx_mod_384 lea rbx,QWORD PTR[rdi] lea rsi,QWORD PTR[48+rdi] call __mulx_384 lea rsi,QWORD PTR[rdi] lea rdx,QWORD PTR[40+rsp] mov rcx,QWORD PTR[8+rsp] ifdef __SGX_LVI_HARDENING__ lfence endif call __subx_mod_384x384 lea rsi,QWORD PTR[rdi] lea rdx,QWORD PTR[((-96))+rdi] call __subx_mod_384x384 lea rsi,QWORD PTR[40+rsp] lea rdx,QWORD PTR[((40+96))+rsp] lea rdi,QWORD PTR[40+rsp] call __subx_mod_384x384 lea rbx,QWORD PTR[rcx] lea rsi,QWORD PTR[40+rsp] mov rcx,QWORD PTR[rsp] mov rdi,QWORD PTR[32+rsp] call __mulx_by_1_mont_384 call __redx_tail_mont_384 lea rsi,QWORD PTR[((40+192))+rsp] mov rcx,QWORD PTR[rsp] lea rdi,QWORD PTR[48+rdi] call __mulx_by_1_mont_384 call __redx_tail_mont_384 lea r8,QWORD PTR[328+rsp] mov r15,QWORD PTR[r8] mov r14,QWORD PTR[8+r8] mov r13,QWORD PTR[16+r8] mov r12,QWORD PTR[24+r8] mov rbx,QWORD PTR[32+r8] mov rbp,QWORD PTR[40+r8] lea rsp,QWORD PTR[48+r8] $L$SEH_epilogue_mulx_mont_384x:: mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue mov rsi,QWORD PTR[16+rsp] ifdef __SGX_LVI_HARDENING__ pop rdx lfence jmp rdx ud2 else DB 0F3h,0C3h endif $L$SEH_end_mulx_mont_384x:: mulx_mont_384x ENDP PUBLIC sqrx_mont_384x ALIGN 32 sqrx_mont_384x PROC PUBLIC DB 243,15,30,250 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi mov r11,rsp $L$SEH_begin_sqrx_mont_384x:: mov rdi,rcx mov rsi,rdx mov rdx,r8 mov rcx,r9 sqr_mont_384x$1:: push rbp push rbx push r12 push r13 push r14 push r15 sub rsp,136 $L$SEH_body_sqrx_mont_384x:: mov QWORD PTR[rsp],rcx mov rcx,rdx mov QWORD PTR[16+rsp],rdi mov QWORD PTR[24+rsp],rsi lea rdx,QWORD PTR[48+rsi] lea rdi,QWORD PTR[32+rsp] call __addx_mod_384 mov rsi,QWORD PTR[24+rsp] lea rdx,QWORD PTR[48+rsi] lea rdi,QWORD PTR[((32+48))+rsp] call __subx_mod_384 mov rsi,QWORD PTR[24+rsp] lea rbx,QWORD PTR[48+rsi] ifdef __SGX_LVI_HARDENING__ lfence endif mov rdx,QWORD PTR[48+rsi] mov r14,QWORD PTR[rsi] mov r15,QWORD PTR[8+rsi] mov rax,QWORD PTR[16+rsi] mov r12,QWORD PTR[24+rsi] mov rdi,QWORD PTR[32+rsi] mov rbp,QWORD PTR[40+rsi] lea rsi,QWORD PTR[((-128))+rsi] lea rcx,QWORD PTR[((-128))+rcx] mulx r9,r8,r14 call __mulx_mont_384 add rdx,rdx adc r15,r15 adc rax,rax mov r8,rdx adc r12,r12 mov r9,r15 adc rdi,rdi mov r10,rax adc rbp,rbp mov r11,r12 sbb rsi,rsi sub rdx,QWORD PTR[rcx] sbb r15,QWORD PTR[8+rcx] mov r13,rdi sbb rax,QWORD PTR[16+rcx] sbb r12,QWORD PTR[24+rcx] sbb rdi,QWORD PTR[32+rcx] mov r14,rbp sbb rbp,QWORD PTR[40+rcx] sbb rsi,0 cmovc rdx,r8 cmovc r15,r9 cmovc rax,r10 mov QWORD PTR[48+rbx],rdx cmovc r12,r11 mov QWORD PTR[56+rbx],r15 cmovc rdi,r13 mov QWORD PTR[64+rbx],rax cmovc rbp,r14 mov QWORD PTR[72+rbx],r12 mov QWORD PTR[80+rbx],rdi mov QWORD PTR[88+rbx],rbp lea rsi,QWORD PTR[32+rsp] lea rbx,QWORD PTR[((32+48))+rsp] mov rdx,QWORD PTR[((32+48))+rsp] mov r14,QWORD PTR[((32+0))+rsp] mov r15,QWORD PTR[((32+8))+rsp] mov rax,QWORD PTR[((32+16))+rsp] mov r12,QWORD PTR[((32+24))+rsp] mov rdi,QWORD PTR[((32+32))+rsp] mov rbp,QWORD PTR[((32+40))+rsp] lea rsi,QWORD PTR[((-128))+rsi] lea rcx,QWORD PTR[((-128))+rcx] mulx r9,r8,r14 call __mulx_mont_384 lea r8,QWORD PTR[136+rsp] mov r15,QWORD PTR[r8] mov r14,QWORD PTR[8+r8] mov r13,QWORD PTR[16+r8] mov r12,QWORD PTR[24+r8] mov rbx,QWORD PTR[32+r8] mov rbp,QWORD PTR[40+r8] lea rsp,QWORD PTR[48+r8] $L$SEH_epilogue_sqrx_mont_384x:: mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue mov rsi,QWORD PTR[16+rsp] ifdef __SGX_LVI_HARDENING__ pop rdx lfence jmp rdx ud2 else DB 0F3h,0C3h endif $L$SEH_end_sqrx_mont_384x:: sqrx_mont_384x ENDP PUBLIC mulx_382x ALIGN 32 mulx_382x PROC PUBLIC DB 243,15,30,250 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi mov r11,rsp $L$SEH_begin_mulx_382x:: mov rdi,rcx mov rsi,rdx mov rdx,r8 mov rcx,r9 mul_382x$1:: push rbp push rbx push r12 push r13 push r14 push r15 sub rsp,136 $L$SEH_body_mulx_382x:: lea rdi,QWORD PTR[96+rdi] mov QWORD PTR[rsp],rsi mov QWORD PTR[8+rsp],rdx mov QWORD PTR[16+rsp],rdi mov QWORD PTR[24+rsp],rcx ifdef __SGX_LVI_HARDENING__ lfence endif mov r8,QWORD PTR[rsi] mov r9,QWORD PTR[8+rsi] mov r10,QWORD PTR[16+rsi] mov r11,QWORD PTR[24+rsi] mov r12,QWORD PTR[32+rsi] mov r13,QWORD PTR[40+rsi] add r8,QWORD PTR[48+rsi] adc r9,QWORD PTR[56+rsi] adc r10,QWORD PTR[64+rsi] adc r11,QWORD PTR[72+rsi] adc r12,QWORD PTR[80+rsi] adc r13,QWORD PTR[88+rsi] mov QWORD PTR[((32+0))+rsp],r8 mov QWORD PTR[((32+8))+rsp],r9 mov QWORD PTR[((32+16))+rsp],r10 mov QWORD PTR[((32+24))+rsp],r11 mov QWORD PTR[((32+32))+rsp],r12 mov QWORD PTR[((32+40))+rsp],r13 mov r8,QWORD PTR[rdx] mov r9,QWORD PTR[8+rdx] mov r10,QWORD PTR[16+rdx] mov r11,QWORD PTR[24+rdx] mov r12,QWORD PTR[32+rdx] mov r13,QWORD PTR[40+rdx] add r8,QWORD PTR[48+rdx] adc r9,QWORD PTR[56+rdx] adc r10,QWORD PTR[64+rdx] adc r11,QWORD PTR[72+rdx] adc r12,QWORD PTR[80+rdx] adc r13,QWORD PTR[88+rdx] mov QWORD PTR[((32+48))+rsp],r8 mov QWORD PTR[((32+56))+rsp],r9 mov QWORD PTR[((32+64))+rsp],r10 mov QWORD PTR[((32+72))+rsp],r11 mov QWORD PTR[((32+80))+rsp],r12 mov QWORD PTR[((32+88))+rsp],r13 lea rsi,QWORD PTR[((32+0))+rsp] lea rbx,QWORD PTR[((32+48))+rsp] call __mulx_384 mov rsi,QWORD PTR[rsp] mov rbx,QWORD PTR[8+rsp] lea rdi,QWORD PTR[((-96))+rdi] ifdef __SGX_LVI_HARDENING__ lfence endif call __mulx_384 lea rsi,QWORD PTR[((48+128))+rsi] lea rbx,QWORD PTR[48+rbx] lea rdi,QWORD PTR[32+rsp] call __mulx_384 mov rsi,QWORD PTR[16+rsp] lea rdx,QWORD PTR[32+rsp] mov rcx,QWORD PTR[24+rsp] mov rdi,rsi ifdef __SGX_LVI_HARDENING__ lfence endif call __subx_mod_384x384 lea rsi,QWORD PTR[rdi] lea rdx,QWORD PTR[((-96))+rdi] call __subx_mod_384x384 lea rsi,QWORD PTR[((-96))+rdi] lea rdx,QWORD PTR[32+rsp] lea rdi,QWORD PTR[((-96))+rdi] call __subx_mod_384x384 lea r8,QWORD PTR[136+rsp] mov r15,QWORD PTR[r8] mov r14,QWORD PTR[8+r8] mov r13,QWORD PTR[16+r8] mov r12,QWORD PTR[24+r8] mov rbx,QWORD PTR[32+r8] mov rbp,QWORD PTR[40+r8] lea rsp,QWORD PTR[48+r8] $L$SEH_epilogue_mulx_382x:: mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue mov rsi,QWORD PTR[16+rsp] ifdef __SGX_LVI_HARDENING__ pop rdx lfence jmp rdx ud2 else DB 0F3h,0C3h endif $L$SEH_end_mulx_382x:: mulx_382x ENDP PUBLIC sqrx_382x ALIGN 32 sqrx_382x PROC PUBLIC DB 243,15,30,250 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi mov r11,rsp $L$SEH_begin_sqrx_382x:: mov rdi,rcx mov rsi,rdx mov rdx,r8 sqr_382x$1:: push rbp push rbx push r12 push r13 push r14 push r15 push rsi $L$SEH_body_sqrx_382x:: mov rcx,rdx ifdef __SGX_LVI_HARDENING__ lfence endif mov r14,QWORD PTR[rsi] mov r15,QWORD PTR[8+rsi] mov rax,QWORD PTR[16+rsi] mov rbx,QWORD PTR[24+rsi] mov rbp,QWORD PTR[32+rsi] mov rdx,QWORD PTR[40+rsi] mov r8,r14 add r14,QWORD PTR[48+rsi] mov r9,r15 adc r15,QWORD PTR[56+rsi] mov r10,rax adc rax,QWORD PTR[64+rsi] mov r11,rbx adc rbx,QWORD PTR[72+rsi] mov r12,rbp adc rbp,QWORD PTR[80+rsi] mov r13,rdx adc rdx,QWORD PTR[88+rsi] mov QWORD PTR[rdi],r14 mov QWORD PTR[8+rdi],r15 mov QWORD PTR[16+rdi],rax mov QWORD PTR[24+rdi],rbx mov QWORD PTR[32+rdi],rbp mov QWORD PTR[40+rdi],rdx lea rdx,QWORD PTR[48+rsi] lea rdi,QWORD PTR[48+rdi] call __subx_mod_384_a_is_loaded lea rsi,QWORD PTR[rdi] lea rbx,QWORD PTR[((-48))+rdi] lea rdi,QWORD PTR[((-48))+rdi] call __mulx_384 mov rsi,QWORD PTR[rsp] lea rbx,QWORD PTR[48+rsi] lea rdi,QWORD PTR[96+rdi] ifdef __SGX_LVI_HARDENING__ lfence endif call __mulx_384 mov r8,QWORD PTR[rdi] mov r9,QWORD PTR[8+rdi] mov r10,QWORD PTR[16+rdi] mov r11,QWORD PTR[24+rdi] mov r12,QWORD PTR[32+rdi] mov r13,QWORD PTR[40+rdi] mov r14,QWORD PTR[48+rdi] mov r15,QWORD PTR[56+rdi] mov rax,QWORD PTR[64+rdi] mov rbx,QWORD PTR[72+rdi] mov rbp,QWORD PTR[80+rdi] add r8,r8 mov rdx,QWORD PTR[88+rdi] adc r9,r9 mov QWORD PTR[rdi],r8 adc r10,r10 mov QWORD PTR[8+rdi],r9 adc r11,r11 mov QWORD PTR[16+rdi],r10 adc r12,r12 mov QWORD PTR[24+rdi],r11 adc r13,r13 mov QWORD PTR[32+rdi],r12 adc r14,r14 mov QWORD PTR[40+rdi],r13 adc r15,r15 mov QWORD PTR[48+rdi],r14 adc rax,rax mov QWORD PTR[56+rdi],r15 adc rbx,rbx mov QWORD PTR[64+rdi],rax adc rbp,rbp mov QWORD PTR[72+rdi],rbx adc rdx,rdx mov QWORD PTR[80+rdi],rbp mov QWORD PTR[88+rdi],rdx mov r15,QWORD PTR[8+rsp] mov r14,QWORD PTR[16+rsp] mov r13,QWORD PTR[24+rsp] mov r12,QWORD PTR[32+rsp] mov rbx,QWORD PTR[40+rsp] mov rbp,QWORD PTR[48+rsp] lea rsp,QWORD PTR[56+rsp] $L$SEH_epilogue_sqrx_382x:: mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue mov rsi,QWORD PTR[16+rsp] ifdef __SGX_LVI_HARDENING__ pop rdx lfence jmp rdx ud2 else DB 0F3h,0C3h endif $L$SEH_end_sqrx_382x:: sqrx_382x ENDP PUBLIC mulx_384 ALIGN 32 mulx_384 PROC PUBLIC DB 243,15,30,250 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi mov r11,rsp $L$SEH_begin_mulx_384:: mov rdi,rcx mov rsi,rdx mov rdx,r8 mul_384$1:: push rbp push rbx push r12 push r13 push r14 push r15 $L$SEH_body_mulx_384:: mov rbx,rdx ifdef __SGX_LVI_HARDENING__ lfence endif call __mulx_384 mov r15,QWORD PTR[rsp] mov r14,QWORD PTR[8+rsp] mov r13,QWORD PTR[16+rsp] mov r12,QWORD PTR[24+rsp] mov rbx,QWORD PTR[32+rsp] mov rbp,QWORD PTR[40+rsp] lea rsp,QWORD PTR[48+rsp] $L$SEH_epilogue_mulx_384:: mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue mov rsi,QWORD PTR[16+rsp] ifdef __SGX_LVI_HARDENING__ pop rdx lfence jmp rdx ud2 else DB 0F3h,0C3h endif $L$SEH_end_mulx_384:: mulx_384 ENDP ALIGN 32 __mulx_384 PROC PRIVATE DB 243,15,30,250 mov rdx,QWORD PTR[rbx] mov r14,QWORD PTR[rsi] mov r15,QWORD PTR[8+rsi] mov r10,QWORD PTR[16+rsi] mov r11,QWORD PTR[24+rsi] mov r12,QWORD PTR[32+rsi] mov r13,QWORD PTR[40+rsi] lea rsi,QWORD PTR[((-128))+rsi] mulx rcx,r9,r14 xor rbp,rbp mulx rax,r8,r15 adcx r8,rcx mov QWORD PTR[rdi],r9 mulx rcx,r9,r10 adcx r9,rax mulx rax,r10,r11 adcx r10,rcx mulx rcx,r11,r12 adcx r11,rax mulx r13,r12,r13 mov rdx,QWORD PTR[8+rbx] adcx r12,rcx adcx r13,rbp mulx rcx,rax,r14 adcx rax,r8 adox r9,rcx mov QWORD PTR[8+rdi],rax mulx rcx,r8,r15 adcx r8,r9 adox r10,rcx mulx rax,r9,QWORD PTR[((128+16))+rsi] adcx r9,r10 adox r11,rax mulx rcx,r10,QWORD PTR[((128+24))+rsi] adcx r10,r11 adox r12,rcx mulx rax,r11,QWORD PTR[((128+32))+rsi] adcx r11,r12 adox rax,r13 mulx r13,r12,QWORD PTR[((128+40))+rsi] mov rdx,QWORD PTR[16+rbx] adcx r12,rax adox r13,rbp adcx r13,rbp mulx rcx,rax,r14 adcx rax,r8 adox r9,rcx mov QWORD PTR[16+rdi],rax mulx rcx,r8,r15 adcx r8,r9 adox r10,rcx mulx rax,r9,QWORD PTR[((128+16))+rsi] adcx r9,r10 adox r11,rax mulx rcx,r10,QWORD PTR[((128+24))+rsi] adcx r10,r11 adox r12,rcx mulx rax,r11,QWORD PTR[((128+32))+rsi] adcx r11,r12 adox rax,r13 mulx r13,r12,QWORD PTR[((128+40))+rsi] mov rdx,QWORD PTR[24+rbx] adcx r12,rax adox r13,rbp adcx r13,rbp mulx rcx,rax,r14 adcx rax,r8 adox r9,rcx mov QWORD PTR[24+rdi],rax mulx rcx,r8,r15 adcx r8,r9 adox r10,rcx mulx rax,r9,QWORD PTR[((128+16))+rsi] adcx r9,r10 adox r11,rax mulx rcx,r10,QWORD PTR[((128+24))+rsi] adcx r10,r11 adox r12,rcx mulx rax,r11,QWORD PTR[((128+32))+rsi] adcx r11,r12 adox rax,r13 mulx r13,r12,QWORD PTR[((128+40))+rsi] mov rdx,QWORD PTR[32+rbx] adcx r12,rax adox r13,rbp adcx r13,rbp mulx rcx,rax,r14 adcx rax,r8 adox r9,rcx mov QWORD PTR[32+rdi],rax mulx rcx,r8,r15 adcx r8,r9 adox r10,rcx mulx rax,r9,QWORD PTR[((128+16))+rsi] adcx r9,r10 adox r11,rax mulx rcx,r10,QWORD PTR[((128+24))+rsi] adcx r10,r11 adox r12,rcx mulx rax,r11,QWORD PTR[((128+32))+rsi] adcx r11,r12 adox rax,r13 mulx r13,r12,QWORD PTR[((128+40))+rsi] mov rdx,QWORD PTR[40+rbx] adcx r12,rax adox r13,rbp adcx r13,rbp mulx rcx,rax,r14 adcx rax,r8 adox r9,rcx mov QWORD PTR[40+rdi],rax mulx rcx,r8,r15 adcx r8,r9 adox r10,rcx mulx rax,r9,QWORD PTR[((128+16))+rsi] adcx r9,r10 adox r11,rax mulx rcx,r10,QWORD PTR[((128+24))+rsi] adcx r10,r11 adox r12,rcx mulx rax,r11,QWORD PTR[((128+32))+rsi] adcx r11,r12 adox rax,r13 mulx r13,r12,QWORD PTR[((128+40))+rsi] mov rdx,rax adcx r12,rax adox r13,rbp adcx r13,rbp mov QWORD PTR[48+rdi],r8 mov QWORD PTR[56+rdi],r9 mov QWORD PTR[64+rdi],r10 mov QWORD PTR[72+rdi],r11 mov QWORD PTR[80+rdi],r12 mov QWORD PTR[88+rdi],r13 ifdef __SGX_LVI_HARDENING__ pop rdx lfence jmp rdx ud2 else DB 0F3h,0C3h endif __mulx_384 ENDP PUBLIC sqrx_384 ALIGN 32 sqrx_384 PROC PUBLIC DB 243,15,30,250 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi mov r11,rsp $L$SEH_begin_sqrx_384:: mov rdi,rcx mov rsi,rdx sqr_384$1:: push rbp push rbx push r12 push r13 push r14 push r15 push rdi $L$SEH_body_sqrx_384:: ifdef __SGX_LVI_HARDENING__ lfence endif call __sqrx_384 mov r15,QWORD PTR[8+rsp] mov r14,QWORD PTR[16+rsp] mov r13,QWORD PTR[24+rsp] mov r12,QWORD PTR[32+rsp] mov rbx,QWORD PTR[40+rsp] mov rbp,QWORD PTR[48+rsp] lea rsp,QWORD PTR[56+rsp] $L$SEH_epilogue_sqrx_384:: mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue mov rsi,QWORD PTR[16+rsp] ifdef __SGX_LVI_HARDENING__ pop rdx lfence jmp rdx ud2 else DB 0F3h,0C3h endif $L$SEH_end_sqrx_384:: sqrx_384 ENDP ALIGN 32 __sqrx_384 PROC PRIVATE DB 243,15,30,250 mov rdx,QWORD PTR[rsi] mov r14,QWORD PTR[8+rsi] mov r15,QWORD PTR[16+rsi] mov rcx,QWORD PTR[24+rsi] mov rbx,QWORD PTR[32+rsi] mulx rdi,r8,r14 mov rbp,QWORD PTR[40+rsi] mulx rax,r9,r15 add r9,rdi mulx rdi,r10,rcx adc r10,rax mulx rax,r11,rbx adc r11,rdi mulx r13,r12,rbp mov rdx,r14 adc r12,rax adc r13,0 xor r14,r14 mulx rax,rdi,r15 adcx r10,rdi adox r11,rax mulx rax,rdi,rcx adcx r11,rdi adox r12,rax mulx rax,rdi,rbx adcx r12,rdi adox r13,rax mulx rax,rdi,rbp mov rdx,r15 adcx r13,rdi adox rax,r14 adcx r14,rax xor r15,r15 mulx rax,rdi,rcx adcx r12,rdi adox r13,rax mulx rax,rdi,rbx adcx r13,rdi adox r14,rax mulx rax,rdi,rbp mov rdx,rcx adcx r14,rdi adox rax,r15 adcx r15,rax xor rcx,rcx mulx rax,rdi,rbx adcx r14,rdi adox r15,rax mulx rax,rdi,rbp mov rdx,rbx adcx r15,rdi adox rax,rcx adcx rcx,rax mulx rbx,rdi,rbp mov rdx,QWORD PTR[rsi] add rcx,rdi mov rdi,QWORD PTR[8+rsp] adc rbx,0 xor rbp,rbp adcx r8,r8 adcx r9,r9 adcx r10,r10 adcx r11,r11 adcx r12,r12 mulx rax,rdx,rdx mov QWORD PTR[rdi],rdx mov rdx,QWORD PTR[8+rsi] adox r8,rax mov QWORD PTR[8+rdi],r8 mulx rax,r8,rdx mov rdx,QWORD PTR[16+rsi] adox r9,r8 adox r10,rax mov QWORD PTR[16+rdi],r9 mov QWORD PTR[24+rdi],r10 mulx r9,r8,rdx mov rdx,QWORD PTR[24+rsi] adox r11,r8 adox r12,r9 adcx r13,r13 adcx r14,r14 mov QWORD PTR[32+rdi],r11 mov QWORD PTR[40+rdi],r12 mulx r9,r8,rdx mov rdx,QWORD PTR[32+rsi] adox r13,r8 adox r14,r9 adcx r15,r15 adcx rcx,rcx mov QWORD PTR[48+rdi],r13 mov QWORD PTR[56+rdi],r14 mulx r9,r8,rdx mov rdx,QWORD PTR[40+rsi] adox r15,r8 adox rcx,r9 adcx rbx,rbx adcx rbp,rbp mov QWORD PTR[64+rdi],r15 mov QWORD PTR[72+rdi],rcx mulx r9,r8,rdx adox rbx,r8 adox rbp,r9 mov QWORD PTR[80+rdi],rbx mov QWORD PTR[88+rdi],rbp ifdef __SGX_LVI_HARDENING__ pop rdx lfence jmp rdx ud2 else DB 0F3h,0C3h endif __sqrx_384 ENDP PUBLIC redcx_mont_384 ALIGN 32 redcx_mont_384 PROC PUBLIC DB 243,15,30,250 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi mov r11,rsp $L$SEH_begin_redcx_mont_384:: mov rdi,rcx mov rsi,rdx mov rdx,r8 mov rcx,r9 redc_mont_384$1:: push rbp push rbx push r12 push r13 push r14 push r15 sub rsp,8 $L$SEH_body_redcx_mont_384:: mov rbx,rdx ifdef __SGX_LVI_HARDENING__ lfence endif call __mulx_by_1_mont_384 call __redx_tail_mont_384 mov r15,QWORD PTR[8+rsp] mov r14,QWORD PTR[16+rsp] mov r13,QWORD PTR[24+rsp] mov r12,QWORD PTR[32+rsp] mov rbx,QWORD PTR[40+rsp] mov rbp,QWORD PTR[48+rsp] lea rsp,QWORD PTR[56+rsp] $L$SEH_epilogue_redcx_mont_384:: mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue mov rsi,QWORD PTR[16+rsp] ifdef __SGX_LVI_HARDENING__ pop rdx lfence jmp rdx ud2 else DB 0F3h,0C3h endif $L$SEH_end_redcx_mont_384:: redcx_mont_384 ENDP PUBLIC fromx_mont_384 ALIGN 32 fromx_mont_384 PROC PUBLIC DB 243,15,30,250 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi mov r11,rsp $L$SEH_begin_fromx_mont_384:: mov rdi,rcx mov rsi,rdx mov rdx,r8 mov rcx,r9 from_mont_384$1:: push rbp push rbx push r12 push r13 push r14 push r15 sub rsp,8 $L$SEH_body_fromx_mont_384:: mov rbx,rdx ifdef __SGX_LVI_HARDENING__ lfence endif call __mulx_by_1_mont_384 mov rax,r14 mov rcx,r15 mov rdx,r8 mov rbp,r9 sub r14,QWORD PTR[rbx] sbb r15,QWORD PTR[8+rbx] mov r13,r10 sbb r8,QWORD PTR[16+rbx] sbb r9,QWORD PTR[24+rbx] sbb r10,QWORD PTR[32+rbx] mov rsi,r11 sbb r11,QWORD PTR[40+rbx] cmovc r14,rax cmovc r15,rcx cmovc r8,rdx mov QWORD PTR[rdi],r14 cmovc r9,rbp mov QWORD PTR[8+rdi],r15 cmovc r10,r13 mov QWORD PTR[16+rdi],r8 cmovc r11,rsi mov QWORD PTR[24+rdi],r9 mov QWORD PTR[32+rdi],r10 mov QWORD PTR[40+rdi],r11 mov r15,QWORD PTR[8+rsp] mov r14,QWORD PTR[16+rsp] mov r13,QWORD PTR[24+rsp] mov r12,QWORD PTR[32+rsp] mov rbx,QWORD PTR[40+rsp] mov rbp,QWORD PTR[48+rsp] lea rsp,QWORD PTR[56+rsp] $L$SEH_epilogue_fromx_mont_384:: mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue mov rsi,QWORD PTR[16+rsp] ifdef __SGX_LVI_HARDENING__ pop rdx lfence jmp rdx ud2 else DB 0F3h,0C3h endif $L$SEH_end_fromx_mont_384:: fromx_mont_384 ENDP ALIGN 32 __mulx_by_1_mont_384 PROC PRIVATE DB 243,15,30,250 mov r8,QWORD PTR[rsi] mov rdx,rcx mov r9,QWORD PTR[8+rsi] mov r10,QWORD PTR[16+rsi] mov r11,QWORD PTR[24+rsi] mov r12,QWORD PTR[32+rsi] mov r13,QWORD PTR[40+rsi] imul rdx,r8 xor r14,r14 mulx rbp,rax,QWORD PTR[rbx] adcx r8,rax adox r9,rbp mulx rbp,rax,QWORD PTR[8+rbx] adcx r9,rax adox r10,rbp mulx rbp,rax,QWORD PTR[16+rbx] adcx r10,rax adox r11,rbp mulx rbp,rax,QWORD PTR[24+rbx] adcx r11,rax adox r12,rbp mulx rbp,rax,QWORD PTR[32+rbx] adcx r12,rax adox r13,rbp mulx rbp,rax,QWORD PTR[40+rbx] mov rdx,rcx adcx r13,rax adox rbp,r14 adcx r14,rbp imul rdx,r9 xor r15,r15 mulx rbp,rax,QWORD PTR[rbx] adcx r9,rax adox r10,rbp mulx rbp,rax,QWORD PTR[8+rbx] adcx r10,rax adox r11,rbp mulx rbp,rax,QWORD PTR[16+rbx] adcx r11,rax adox r12,rbp mulx rbp,rax,QWORD PTR[24+rbx] adcx r12,rax adox r13,rbp mulx rbp,rax,QWORD PTR[32+rbx] adcx r13,rax adox r14,rbp mulx rbp,rax,QWORD PTR[40+rbx] mov rdx,rcx adcx r14,rax adox rbp,r15 adcx r15,rbp imul rdx,r10 xor r8,r8 mulx rbp,rax,QWORD PTR[rbx] adcx r10,rax adox r11,rbp mulx rbp,rax,QWORD PTR[8+rbx] adcx r11,rax adox r12,rbp mulx rbp,rax,QWORD PTR[16+rbx] adcx r12,rax adox r13,rbp mulx rbp,rax,QWORD PTR[24+rbx] adcx r13,rax adox r14,rbp mulx rbp,rax,QWORD PTR[32+rbx] adcx r14,rax adox r15,rbp mulx rbp,rax,QWORD PTR[40+rbx] mov rdx,rcx adcx r15,rax adox rbp,r8 adcx r8,rbp imul rdx,r11 xor r9,r9 mulx rbp,rax,QWORD PTR[rbx] adcx r11,rax adox r12,rbp mulx rbp,rax,QWORD PTR[8+rbx] adcx r12,rax adox r13,rbp mulx rbp,rax,QWORD PTR[16+rbx] adcx r13,rax adox r14,rbp mulx rbp,rax,QWORD PTR[24+rbx] adcx r14,rax adox r15,rbp mulx rbp,rax,QWORD PTR[32+rbx] adcx r15,rax adox r8,rbp mulx rbp,rax,QWORD PTR[40+rbx] mov rdx,rcx adcx r8,rax adox rbp,r9 adcx r9,rbp imul rdx,r12 xor r10,r10 mulx rbp,rax,QWORD PTR[rbx] adcx r12,rax adox r13,rbp mulx rbp,rax,QWORD PTR[8+rbx] adcx r13,rax adox r14,rbp mulx rbp,rax,QWORD PTR[16+rbx] adcx r14,rax adox r15,rbp mulx rbp,rax,QWORD PTR[24+rbx] adcx r15,rax adox r8,rbp mulx rbp,rax,QWORD PTR[32+rbx] adcx r8,rax adox r9,rbp mulx rbp,rax,QWORD PTR[40+rbx] mov rdx,rcx adcx r9,rax adox rbp,r10 adcx r10,rbp imul rdx,r13 xor r11,r11 mulx rbp,rax,QWORD PTR[rbx] adcx r13,rax adox r14,rbp mulx rbp,rax,QWORD PTR[8+rbx] adcx r14,rax adox r15,rbp mulx rbp,rax,QWORD PTR[16+rbx] adcx r15,rax adox r8,rbp mulx rbp,rax,QWORD PTR[24+rbx] adcx r8,rax adox r9,rbp mulx rbp,rax,QWORD PTR[32+rbx] adcx r9,rax adox r10,rbp mulx rbp,rax,QWORD PTR[40+rbx] mov rdx,rcx adcx r10,rax adox rbp,r11 adcx r11,rbp ifdef __SGX_LVI_HARDENING__ pop rdx lfence jmp rdx ud2 else DB 0F3h,0C3h endif __mulx_by_1_mont_384 ENDP ALIGN 32 __redx_tail_mont_384 PROC PRIVATE DB 243,15,30,250 add r14,QWORD PTR[48+rsi] mov rax,r14 adc r15,QWORD PTR[56+rsi] adc r8,QWORD PTR[64+rsi] adc r9,QWORD PTR[72+rsi] mov rcx,r15 adc r10,QWORD PTR[80+rsi] adc r11,QWORD PTR[88+rsi] sbb r12,r12 mov rdx,r8 mov rbp,r9 sub r14,QWORD PTR[rbx] sbb r15,QWORD PTR[8+rbx] mov r13,r10 sbb r8,QWORD PTR[16+rbx] sbb r9,QWORD PTR[24+rbx] sbb r10,QWORD PTR[32+rbx] mov rsi,r11 sbb r11,QWORD PTR[40+rbx] sbb r12,0 cmovc r14,rax cmovc r15,rcx cmovc r8,rdx mov QWORD PTR[rdi],r14 cmovc r9,rbp mov QWORD PTR[8+rdi],r15 cmovc r10,r13 mov QWORD PTR[16+rdi],r8 cmovc r11,rsi mov QWORD PTR[24+rdi],r9 mov QWORD PTR[32+rdi],r10 mov QWORD PTR[40+rdi],r11 ifdef __SGX_LVI_HARDENING__ pop rdx lfence jmp rdx ud2 else DB 0F3h,0C3h endif __redx_tail_mont_384 ENDP PUBLIC sgn0x_pty_mont_384 ALIGN 32 sgn0x_pty_mont_384 PROC PUBLIC DB 243,15,30,250 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi mov r11,rsp $L$SEH_begin_sgn0x_pty_mont_384:: mov rdi,rcx mov rsi,rdx mov rdx,r8 sgn0_pty_mont_384$1:: push rbp push rbx push r12 push r13 push r14 push r15 sub rsp,8 $L$SEH_body_sgn0x_pty_mont_384:: mov rbx,rsi lea rsi,QWORD PTR[rdi] mov rcx,rdx ifdef __SGX_LVI_HARDENING__ lfence endif call __mulx_by_1_mont_384 xor rax,rax mov r13,r14 add r14,r14 adc r15,r15 adc r8,r8 adc r9,r9 adc r10,r10 adc r11,r11 adc rax,0 sub r14,QWORD PTR[rbx] sbb r15,QWORD PTR[8+rbx] sbb r8,QWORD PTR[16+rbx] sbb r9,QWORD PTR[24+rbx] sbb r10,QWORD PTR[32+rbx] sbb r11,QWORD PTR[40+rbx] sbb rax,0 not rax and r13,1 and rax,2 or rax,r13 mov r15,QWORD PTR[8+rsp] mov r14,QWORD PTR[16+rsp] mov r13,QWORD PTR[24+rsp] mov r12,QWORD PTR[32+rsp] mov rbx,QWORD PTR[40+rsp] mov rbp,QWORD PTR[48+rsp] lea rsp,QWORD PTR[56+rsp] $L$SEH_epilogue_sgn0x_pty_mont_384:: mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue mov rsi,QWORD PTR[16+rsp] ifdef __SGX_LVI_HARDENING__ pop rdx lfence jmp rdx ud2 else DB 0F3h,0C3h endif $L$SEH_end_sgn0x_pty_mont_384:: sgn0x_pty_mont_384 ENDP PUBLIC sgn0x_pty_mont_384x ALIGN 32 sgn0x_pty_mont_384x PROC PUBLIC DB 243,15,30,250 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi mov r11,rsp $L$SEH_begin_sgn0x_pty_mont_384x:: mov rdi,rcx mov rsi,rdx mov rdx,r8 sgn0_pty_mont_384x$1:: push rbp push rbx push r12 push r13 push r14 push r15 sub rsp,8 $L$SEH_body_sgn0x_pty_mont_384x:: mov rbx,rsi lea rsi,QWORD PTR[48+rdi] mov rcx,rdx ifdef __SGX_LVI_HARDENING__ lfence endif call __mulx_by_1_mont_384 mov r12,r14 or r14,r15 or r14,r8 or r14,r9 or r14,r10 or r14,r11 lea rsi,QWORD PTR[rdi] xor rdi,rdi mov r13,r12 add r12,r12 adc r15,r15 adc r8,r8 adc r9,r9 adc r10,r10 adc r11,r11 adc rdi,0 sub r12,QWORD PTR[rbx] sbb r15,QWORD PTR[8+rbx] sbb r8,QWORD PTR[16+rbx] sbb r9,QWORD PTR[24+rbx] sbb r10,QWORD PTR[32+rbx] sbb r11,QWORD PTR[40+rbx] sbb rdi,0 mov QWORD PTR[rsp],r14 not rdi and r13,1 and rdi,2 or rdi,r13 call __mulx_by_1_mont_384 mov r12,r14 or r14,r15 or r14,r8 or r14,r9 or r14,r10 or r14,r11 xor rax,rax mov r13,r12 add r12,r12 adc r15,r15 adc r8,r8 adc r9,r9 adc r10,r10 adc r11,r11 adc rax,0 sub r12,QWORD PTR[rbx] sbb r15,QWORD PTR[8+rbx] sbb r8,QWORD PTR[16+rbx] sbb r9,QWORD PTR[24+rbx] sbb r10,QWORD PTR[32+rbx] sbb r11,QWORD PTR[40+rbx] sbb rax,0 mov r12,QWORD PTR[rsp] not rax test r14,r14 cmovz r13,rdi test r12,r12 cmovnz rax,rdi and r13,1 and rax,2 or rax,r13 mov r15,QWORD PTR[8+rsp] mov r14,QWORD PTR[16+rsp] mov r13,QWORD PTR[24+rsp] mov r12,QWORD PTR[32+rsp] mov rbx,QWORD PTR[40+rsp] mov rbp,QWORD PTR[48+rsp] lea rsp,QWORD PTR[56+rsp] $L$SEH_epilogue_sgn0x_pty_mont_384x:: mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue mov rsi,QWORD PTR[16+rsp] ifdef __SGX_LVI_HARDENING__ pop rdx lfence jmp rdx ud2 else DB 0F3h,0C3h endif $L$SEH_end_sgn0x_pty_mont_384x:: sgn0x_pty_mont_384x ENDP PUBLIC mulx_mont_384 ALIGN 32 mulx_mont_384 PROC PUBLIC DB 243,15,30,250 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi mov r11,rsp $L$SEH_begin_mulx_mont_384:: mov rdi,rcx mov rsi,rdx mov rdx,r8 mov rcx,r9 mov r8,QWORD PTR[40+rsp] mul_mont_384$1:: push rbp push rbx push r12 push r13 push r14 push r15 lea rsp,QWORD PTR[((-24))+rsp] $L$SEH_body_mulx_mont_384:: mov rbx,rdx ifdef __SGX_LVI_HARDENING__ lfence endif mov rdx,QWORD PTR[rdx] mov r14,QWORD PTR[rsi] mov r15,QWORD PTR[8+rsi] mov rax,QWORD PTR[16+rsi] mov r12,QWORD PTR[24+rsi] mov QWORD PTR[16+rsp],rdi mov rdi,QWORD PTR[32+rsi] mov rbp,QWORD PTR[40+rsi] lea rsi,QWORD PTR[((-128))+rsi] lea rcx,QWORD PTR[((-128))+rcx] mov QWORD PTR[rsp],r8 mulx r9,r8,r14 call __mulx_mont_384 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$SEH_epilogue_mulx_mont_384:: mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue mov rsi,QWORD PTR[16+rsp] ifdef __SGX_LVI_HARDENING__ pop rdx lfence jmp rdx ud2 else DB 0F3h,0C3h endif $L$SEH_end_mulx_mont_384:: mulx_mont_384 ENDP ALIGN 32 __mulx_mont_384 PROC PRIVATE DB 243,15,30,250 mulx r10,r14,r15 mulx r11,r15,rax add r9,r14 mulx r12,rax,r12 adc r10,r15 mulx r13,rdi,rdi adc r11,rax mulx r14,rbp,rbp mov rdx,QWORD PTR[8+rbx] adc r12,rdi adc r13,rbp adc r14,0 xor r15,r15 mov QWORD PTR[16+rsp],r8 imul r8,QWORD PTR[8+rsp] xor rax,rax mulx rbp,rdi,QWORD PTR[((0+128))+rsi] adox r9,rdi adcx r10,rbp mulx rbp,rdi,QWORD PTR[((8+128))+rsi] adox r10,rdi adcx r11,rbp mulx rbp,rdi,QWORD PTR[((16+128))+rsi] adox r11,rdi adcx r12,rbp mulx rbp,rdi,QWORD PTR[((24+128))+rsi] adox r12,rdi adcx r13,rbp mulx rbp,rdi,QWORD PTR[((32+128))+rsi] adox r13,rdi adcx r14,rbp mulx rbp,rdi,QWORD PTR[((40+128))+rsi] mov rdx,r8 adox r14,rdi adcx r15,rbp adox r15,rax adox rax,rax xor r8,r8 mulx rbp,rdi,QWORD PTR[((0+128))+rcx] adcx rdi,QWORD PTR[16+rsp] adox r9,rbp mulx rbp,rdi,QWORD PTR[((8+128))+rcx] adcx r9,rdi adox r10,rbp mulx rbp,rdi,QWORD PTR[((16+128))+rcx] adcx r10,rdi adox r11,rbp mulx rbp,rdi,QWORD PTR[((24+128))+rcx] adcx r11,rdi adox r12,rbp mulx rbp,rdi,QWORD PTR[((32+128))+rcx] adcx r12,rdi adox r13,rbp mulx rbp,rdi,QWORD PTR[((40+128))+rcx] mov rdx,QWORD PTR[16+rbx] adcx r13,rdi adox r14,rbp adcx r14,r8 adox r15,r8 adcx r15,r8 adox rax,r8 adcx rax,r8 mov QWORD PTR[16+rsp],r9 imul r9,QWORD PTR[8+rsp] xor r8,r8 mulx rbp,rdi,QWORD PTR[((0+128))+rsi] adox r10,rdi adcx r11,rbp mulx rbp,rdi,QWORD PTR[((8+128))+rsi] adox r11,rdi adcx r12,rbp mulx rbp,rdi,QWORD PTR[((16+128))+rsi] adox r12,rdi adcx r13,rbp mulx rbp,rdi,QWORD PTR[((24+128))+rsi] adox r13,rdi adcx r14,rbp mulx rbp,rdi,QWORD PTR[((32+128))+rsi] adox r14,rdi adcx r15,rbp mulx rbp,rdi,QWORD PTR[((40+128))+rsi] mov rdx,r9 adox r15,rdi adcx rax,rbp adox rax,r8 adox r8,r8 xor r9,r9 mulx rbp,rdi,QWORD PTR[((0+128))+rcx] adcx rdi,QWORD PTR[16+rsp] adox r10,rbp mulx rbp,rdi,QWORD PTR[((8+128))+rcx] adcx r10,rdi adox r11,rbp mulx rbp,rdi,QWORD PTR[((16+128))+rcx] adcx r11,rdi adox r12,rbp mulx rbp,rdi,QWORD PTR[((24+128))+rcx] adcx r12,rdi adox r13,rbp mulx rbp,rdi,QWORD PTR[((32+128))+rcx] adcx r13,rdi adox r14,rbp mulx rbp,rdi,QWORD PTR[((40+128))+rcx] mov rdx,QWORD PTR[24+rbx] adcx r14,rdi adox r15,rbp adcx r15,r9 adox rax,r9 adcx rax,r9 adox r8,r9 adcx r8,r9 mov QWORD PTR[16+rsp],r10 imul r10,QWORD PTR[8+rsp] xor r9,r9 mulx rbp,rdi,QWORD PTR[((0+128))+rsi] adox r11,rdi adcx r12,rbp mulx rbp,rdi,QWORD PTR[((8+128))+rsi] adox r12,rdi adcx r13,rbp mulx rbp,rdi,QWORD PTR[((16+128))+rsi] adox r13,rdi adcx r14,rbp mulx rbp,rdi,QWORD PTR[((24+128))+rsi] adox r14,rdi adcx r15,rbp mulx rbp,rdi,QWORD PTR[((32+128))+rsi] adox r15,rdi adcx rax,rbp mulx rbp,rdi,QWORD PTR[((40+128))+rsi] mov rdx,r10 adox rax,rdi adcx r8,rbp adox r8,r9 adox r9,r9 xor r10,r10 mulx rbp,rdi,QWORD PTR[((0+128))+rcx] adcx rdi,QWORD PTR[16+rsp] adox r11,rbp mulx rbp,rdi,QWORD PTR[((8+128))+rcx] adcx r11,rdi adox r12,rbp mulx rbp,rdi,QWORD PTR[((16+128))+rcx] adcx r12,rdi adox r13,rbp mulx rbp,rdi,QWORD PTR[((24+128))+rcx] adcx r13,rdi adox r14,rbp mulx rbp,rdi,QWORD PTR[((32+128))+rcx] adcx r14,rdi adox r15,rbp mulx rbp,rdi,QWORD PTR[((40+128))+rcx] mov rdx,QWORD PTR[32+rbx] adcx r15,rdi adox rax,rbp adcx rax,r10 adox r8,r10 adcx r8,r10 adox r9,r10 adcx r9,r10 mov QWORD PTR[16+rsp],r11 imul r11,QWORD PTR[8+rsp] xor r10,r10 mulx rbp,rdi,QWORD PTR[((0+128))+rsi] adox r12,rdi adcx r13,rbp mulx rbp,rdi,QWORD PTR[((8+128))+rsi] adox r13,rdi adcx r14,rbp mulx rbp,rdi,QWORD PTR[((16+128))+rsi] adox r14,rdi adcx r15,rbp mulx rbp,rdi,QWORD PTR[((24+128))+rsi] adox r15,rdi adcx rax,rbp mulx rbp,rdi,QWORD PTR[((32+128))+rsi] adox rax,rdi adcx r8,rbp mulx rbp,rdi,QWORD PTR[((40+128))+rsi] mov rdx,r11 adox r8,rdi adcx r9,rbp adox r9,r10 adox r10,r10 xor r11,r11 mulx rbp,rdi,QWORD PTR[((0+128))+rcx] adcx rdi,QWORD PTR[16+rsp] adox r12,rbp mulx rbp,rdi,QWORD PTR[((8+128))+rcx] adcx r12,rdi adox r13,rbp mulx rbp,rdi,QWORD PTR[((16+128))+rcx] adcx r13,rdi adox r14,rbp mulx rbp,rdi,QWORD PTR[((24+128))+rcx] adcx r14,rdi adox r15,rbp mulx rbp,rdi,QWORD PTR[((32+128))+rcx] adcx r15,rdi adox rax,rbp mulx rbp,rdi,QWORD PTR[((40+128))+rcx] mov rdx,QWORD PTR[40+rbx] adcx rax,rdi adox r8,rbp adcx r8,r11 adox r9,r11 adcx r9,r11 adox r10,r11 adcx r10,r11 mov QWORD PTR[16+rsp],r12 imul r12,QWORD PTR[8+rsp] xor r11,r11 mulx rbp,rdi,QWORD PTR[((0+128))+rsi] adox r13,rdi adcx r14,rbp mulx rbp,rdi,QWORD PTR[((8+128))+rsi] adox r14,rdi adcx r15,rbp mulx rbp,rdi,QWORD PTR[((16+128))+rsi] adox r15,rdi adcx rax,rbp mulx rbp,rdi,QWORD PTR[((24+128))+rsi] adox rax,rdi adcx r8,rbp mulx rbp,rdi,QWORD PTR[((32+128))+rsi] adox r8,rdi adcx r9,rbp mulx rbp,rdi,QWORD PTR[((40+128))+rsi] mov rdx,r12 adox r9,rdi adcx r10,rbp adox r10,r11 adox r11,r11 xor r12,r12 mulx rbp,rdi,QWORD PTR[((0+128))+rcx] adcx rdi,QWORD PTR[16+rsp] adox r13,rbp mulx rbp,rdi,QWORD PTR[((8+128))+rcx] adcx r13,rdi adox r14,rbp mulx rbp,rdi,QWORD PTR[((16+128))+rcx] adcx r14,rdi adox r15,rbp mulx rbp,rdi,QWORD PTR[((24+128))+rcx] adcx r15,rdi adox rax,rbp mulx rbp,rdi,QWORD PTR[((32+128))+rcx] adcx rax,rdi adox r8,rbp mulx rbp,rdi,QWORD PTR[((40+128))+rcx] mov rdx,r13 adcx r8,rdi adox r9,rbp adcx r9,r12 adox r10,r12 adcx r10,r12 adox r11,r12 adcx r11,r12 imul rdx,QWORD PTR[8+rsp] mov rbx,QWORD PTR[24+rsp] xor r12,r12 mulx rbp,rdi,QWORD PTR[((0+128))+rcx] adcx r13,rdi adox r14,rbp mulx rbp,rdi,QWORD PTR[((8+128))+rcx] adcx r14,rdi adox r15,rbp mulx rbp,rdi,QWORD PTR[((16+128))+rcx] adcx r15,rdi adox rax,rbp mulx rbp,rdi,QWORD PTR[((24+128))+rcx] adcx rax,rdi adox r8,rbp mov r13,r15 mulx rbp,rdi,QWORD PTR[((32+128))+rcx] adcx r8,rdi adox r9,rbp mov rsi,rax mulx rbp,rdi,QWORD PTR[((40+128))+rcx] adcx r9,rdi adox r10,rbp mov rdx,r14 adcx r10,r12 adox r11,r12 lea rcx,QWORD PTR[128+rcx] mov r12,r8 adc r11,0 sub r14,QWORD PTR[rcx] sbb r15,QWORD PTR[8+rcx] mov rdi,r9 sbb rax,QWORD PTR[16+rcx] sbb r8,QWORD PTR[24+rcx] sbb r9,QWORD PTR[32+rcx] mov rbp,r10 sbb r10,QWORD PTR[40+rcx] sbb r11,0 cmovnc rdx,r14 cmovc r15,r13 cmovc rax,rsi cmovnc r12,r8 mov QWORD PTR[rbx],rdx cmovnc rdi,r9 mov QWORD PTR[8+rbx],r15 cmovnc rbp,r10 mov QWORD PTR[16+rbx],rax mov QWORD PTR[24+rbx],r12 mov QWORD PTR[32+rbx],rdi mov QWORD PTR[40+rbx],rbp ifdef __SGX_LVI_HARDENING__ pop rsi lfence jmp rsi ud2 else DB 0F3h,0C3h endif __mulx_mont_384 ENDP PUBLIC sqrx_mont_384 ALIGN 32 sqrx_mont_384 PROC PUBLIC DB 243,15,30,250 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi mov r11,rsp $L$SEH_begin_sqrx_mont_384:: mov rdi,rcx mov rsi,rdx mov rdx,r8 mov rcx,r9 sqr_mont_384$1:: push rbp push rbx push r12 push r13 push r14 push r15 lea rsp,QWORD PTR[((-24))+rsp] $L$SEH_body_sqrx_mont_384:: mov r8,rcx lea rcx,QWORD PTR[((-128))+rdx] ifdef __SGX_LVI_HARDENING__ lfence endif mov rdx,QWORD PTR[rsi] mov r15,QWORD PTR[8+rsi] mov rax,QWORD PTR[16+rsi] mov r12,QWORD PTR[24+rsi] mov QWORD PTR[16+rsp],rdi mov rdi,QWORD PTR[32+rsi] mov rbp,QWORD PTR[40+rsi] lea rbx,QWORD PTR[rsi] mov QWORD PTR[rsp],r8 lea rsi,QWORD PTR[((-128))+rsi] mulx r9,r8,rdx call __mulx_mont_384 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$SEH_epilogue_sqrx_mont_384:: mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue mov rsi,QWORD PTR[16+rsp] ifdef __SGX_LVI_HARDENING__ pop rdx lfence jmp rdx ud2 else DB 0F3h,0C3h endif $L$SEH_end_sqrx_mont_384:: sqrx_mont_384 ENDP PUBLIC sqrx_n_mul_mont_384 ALIGN 32 sqrx_n_mul_mont_384 PROC PUBLIC DB 243,15,30,250 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi mov r11,rsp $L$SEH_begin_sqrx_n_mul_mont_384:: mov rdi,rcx mov rsi,rdx mov rdx,r8 mov rcx,r9 mov r8,QWORD PTR[40+rsp] mov r9,QWORD PTR[48+rsp] sqr_n_mul_mont_384$1:: push rbp push rbx push r12 push r13 push r14 push r15 lea rsp,QWORD PTR[((-40))+rsp] $L$SEH_body_sqrx_n_mul_mont_384:: mov r10,rdx ifdef __SGX_LVI_HARDENING__ lfence endif mov rdx,QWORD PTR[rsi] mov r15,QWORD PTR[8+rsi] mov rax,QWORD PTR[16+rsi] mov rbx,rsi mov r12,QWORD PTR[24+rsi] mov QWORD PTR[16+rsp],rdi mov rdi,QWORD PTR[32+rsi] mov rbp,QWORD PTR[40+rsi] mov QWORD PTR[rsp],r8 mov QWORD PTR[24+rsp],r9 movq xmm2,QWORD PTR[r9] $L$oop_sqrx_384:: movd xmm1,r10d lea rsi,QWORD PTR[((-128))+rbx] lea rcx,QWORD PTR[((-128))+rcx] mulx r9,r8,rdx call __mulx_mont_384 movd r10d,xmm1 dec r10d jnz $L$oop_sqrx_384 mov r14,rdx DB 102,72,15,126,210 lea rsi,QWORD PTR[((-128))+rbx] mov rbx,QWORD PTR[24+rsp] lea rcx,QWORD PTR[((-128))+rcx] mulx r9,r8,r14 call __mulx_mont_384 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$SEH_epilogue_sqrx_n_mul_mont_384:: mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue mov rsi,QWORD PTR[16+rsp] ifdef __SGX_LVI_HARDENING__ pop rdx lfence jmp rdx ud2 else DB 0F3h,0C3h endif $L$SEH_end_sqrx_n_mul_mont_384:: sqrx_n_mul_mont_384 ENDP PUBLIC sqrx_n_mul_mont_383 ALIGN 32 sqrx_n_mul_mont_383 PROC PUBLIC DB 243,15,30,250 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi mov r11,rsp $L$SEH_begin_sqrx_n_mul_mont_383:: mov rdi,rcx mov rsi,rdx mov rdx,r8 mov rcx,r9 mov r8,QWORD PTR[40+rsp] mov r9,QWORD PTR[48+rsp] sqr_n_mul_mont_383$1:: push rbp push rbx push r12 push r13 push r14 push r15 lea rsp,QWORD PTR[((-40))+rsp] $L$SEH_body_sqrx_n_mul_mont_383:: mov r10,rdx ifdef __SGX_LVI_HARDENING__ lfence endif mov rdx,QWORD PTR[rsi] mov r15,QWORD PTR[8+rsi] mov rax,QWORD PTR[16+rsi] mov rbx,rsi mov r12,QWORD PTR[24+rsi] mov QWORD PTR[16+rsp],rdi mov rdi,QWORD PTR[32+rsi] mov rbp,QWORD PTR[40+rsi] mov QWORD PTR[rsp],r8 mov QWORD PTR[24+rsp],r9 movq xmm2,QWORD PTR[r9] lea rcx,QWORD PTR[((-128))+rcx] $L$oop_sqrx_383:: movd xmm1,r10d lea rsi,QWORD PTR[((-128))+rbx] mulx r9,r8,rdx call __mulx_mont_383_nonred movd r10d,xmm1 dec r10d jnz $L$oop_sqrx_383 mov r14,rdx DB 102,72,15,126,210 lea rsi,QWORD PTR[((-128))+rbx] mov rbx,QWORD PTR[24+rsp] mulx r9,r8,r14 call __mulx_mont_384 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$SEH_epilogue_sqrx_n_mul_mont_383:: mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue mov rsi,QWORD PTR[16+rsp] ifdef __SGX_LVI_HARDENING__ pop rdx lfence jmp rdx ud2 else DB 0F3h,0C3h endif $L$SEH_end_sqrx_n_mul_mont_383:: sqrx_n_mul_mont_383 ENDP ALIGN 32 __mulx_mont_383_nonred PROC PRIVATE DB 243,15,30,250 mulx r10,r14,r15 mulx r11,r15,rax add r9,r14 mulx r12,rax,r12 adc r10,r15 mulx r13,rdi,rdi adc r11,rax mulx r14,rbp,rbp mov rdx,QWORD PTR[8+rbx] adc r12,rdi adc r13,rbp adc r14,0 mov rax,r8 imul r8,QWORD PTR[8+rsp] xor r15,r15 mulx rbp,rdi,QWORD PTR[((0+128))+rsi] adox r9,rdi adcx r10,rbp mulx rbp,rdi,QWORD PTR[((8+128))+rsi] adox r10,rdi adcx r11,rbp mulx rbp,rdi,QWORD PTR[((16+128))+rsi] adox r11,rdi adcx r12,rbp mulx rbp,rdi,QWORD PTR[((24+128))+rsi] adox r12,rdi adcx r13,rbp mulx rbp,rdi,QWORD PTR[((32+128))+rsi] adox r13,rdi adcx r14,rbp mulx rbp,rdi,QWORD PTR[((40+128))+rsi] mov rdx,r8 adox r14,rdi adcx rbp,r15 adox r15,rbp xor r8,r8 mulx rbp,rdi,QWORD PTR[((0+128))+rcx] adcx rax,rdi adox r9,rbp mulx rbp,rdi,QWORD PTR[((8+128))+rcx] adcx r9,rdi adox r10,rbp mulx rbp,rdi,QWORD PTR[((16+128))+rcx] adcx r10,rdi adox r11,rbp mulx rbp,rdi,QWORD PTR[((24+128))+rcx] adcx r11,rdi adox r12,rbp mulx rbp,rdi,QWORD PTR[((32+128))+rcx] adcx r12,rdi adox r13,rbp mulx rbp,rdi,QWORD PTR[((40+128))+rcx] mov rdx,QWORD PTR[16+rbx] adcx r13,rdi adox r14,rbp adcx r14,rax adox r15,rax adcx r15,rax mov r8,r9 imul r9,QWORD PTR[8+rsp] xor rax,rax mulx rbp,rdi,QWORD PTR[((0+128))+rsi] adox r10,rdi adcx r11,rbp mulx rbp,rdi,QWORD PTR[((8+128))+rsi] adox r11,rdi adcx r12,rbp mulx rbp,rdi,QWORD PTR[((16+128))+rsi] adox r12,rdi adcx r13,rbp mulx rbp,rdi,QWORD PTR[((24+128))+rsi] adox r13,rdi adcx r14,rbp mulx rbp,rdi,QWORD PTR[((32+128))+rsi] adox r14,rdi adcx r15,rbp mulx rbp,rdi,QWORD PTR[((40+128))+rsi] mov rdx,r9 adox r15,rdi adcx rbp,rax adox rax,rbp xor r9,r9 mulx rbp,rdi,QWORD PTR[((0+128))+rcx] adcx r8,rdi adox r10,rbp mulx rbp,rdi,QWORD PTR[((8+128))+rcx] adcx r10,rdi adox r11,rbp mulx rbp,rdi,QWORD PTR[((16+128))+rcx] adcx r11,rdi adox r12,rbp mulx rbp,rdi,QWORD PTR[((24+128))+rcx] adcx r12,rdi adox r13,rbp mulx rbp,rdi,QWORD PTR[((32+128))+rcx] adcx r13,rdi adox r14,rbp mulx rbp,rdi,QWORD PTR[((40+128))+rcx] mov rdx,QWORD PTR[24+rbx] adcx r14,rdi adox r15,rbp adcx r15,r8 adox rax,r8 adcx rax,r8 mov r9,r10 imul r10,QWORD PTR[8+rsp] xor r8,r8 mulx rbp,rdi,QWORD PTR[((0+128))+rsi] adox r11,rdi adcx r12,rbp mulx rbp,rdi,QWORD PTR[((8+128))+rsi] adox r12,rdi adcx r13,rbp mulx rbp,rdi,QWORD PTR[((16+128))+rsi] adox r13,rdi adcx r14,rbp mulx rbp,rdi,QWORD PTR[((24+128))+rsi] adox r14,rdi adcx r15,rbp mulx rbp,rdi,QWORD PTR[((32+128))+rsi] adox r15,rdi adcx rax,rbp mulx rbp,rdi,QWORD PTR[((40+128))+rsi] mov rdx,r10 adox rax,rdi adcx rbp,r8 adox r8,rbp xor r10,r10 mulx rbp,rdi,QWORD PTR[((0+128))+rcx] adcx r9,rdi adox r11,rbp mulx rbp,rdi,QWORD PTR[((8+128))+rcx] adcx r11,rdi adox r12,rbp mulx rbp,rdi,QWORD PTR[((16+128))+rcx] adcx r12,rdi adox r13,rbp mulx rbp,rdi,QWORD PTR[((24+128))+rcx] adcx r13,rdi adox r14,rbp mulx rbp,rdi,QWORD PTR[((32+128))+rcx] adcx r14,rdi adox r15,rbp mulx rbp,rdi,QWORD PTR[((40+128))+rcx] mov rdx,QWORD PTR[32+rbx] adcx r15,rdi adox rax,rbp adcx rax,r9 adox r8,r9 adcx r8,r9 mov r10,r11 imul r11,QWORD PTR[8+rsp] xor r9,r9 mulx rbp,rdi,QWORD PTR[((0+128))+rsi] adox r12,rdi adcx r13,rbp mulx rbp,rdi,QWORD PTR[((8+128))+rsi] adox r13,rdi adcx r14,rbp mulx rbp,rdi,QWORD PTR[((16+128))+rsi] adox r14,rdi adcx r15,rbp mulx rbp,rdi,QWORD PTR[((24+128))+rsi] adox r15,rdi adcx rax,rbp mulx rbp,rdi,QWORD PTR[((32+128))+rsi] adox rax,rdi adcx r8,rbp mulx rbp,rdi,QWORD PTR[((40+128))+rsi] mov rdx,r11 adox r8,rdi adcx rbp,r9 adox r9,rbp xor r11,r11 mulx rbp,rdi,QWORD PTR[((0+128))+rcx] adcx r10,rdi adox r12,rbp mulx rbp,rdi,QWORD PTR[((8+128))+rcx] adcx r12,rdi adox r13,rbp mulx rbp,rdi,QWORD PTR[((16+128))+rcx] adcx r13,rdi adox r14,rbp mulx rbp,rdi,QWORD PTR[((24+128))+rcx] adcx r14,rdi adox r15,rbp mulx rbp,rdi,QWORD PTR[((32+128))+rcx] adcx r15,rdi adox rax,rbp mulx rbp,rdi,QWORD PTR[((40+128))+rcx] mov rdx,QWORD PTR[40+rbx] adcx rax,rdi adox r8,rbp adcx r8,r10 adox r9,r10 adcx r9,r10 mov r11,r12 imul r12,QWORD PTR[8+rsp] xor r10,r10 mulx rbp,rdi,QWORD PTR[((0+128))+rsi] adox r13,rdi adcx r14,rbp mulx rbp,rdi,QWORD PTR[((8+128))+rsi] adox r14,rdi adcx r15,rbp mulx rbp,rdi,QWORD PTR[((16+128))+rsi] adox r15,rdi adcx rax,rbp mulx rbp,rdi,QWORD PTR[((24+128))+rsi] adox rax,rdi adcx r8,rbp mulx rbp,rdi,QWORD PTR[((32+128))+rsi] adox r8,rdi adcx r9,rbp mulx rbp,rdi,QWORD PTR[((40+128))+rsi] mov rdx,r12 adox r9,rdi adcx rbp,r10 adox r10,rbp xor r12,r12 mulx rbp,rdi,QWORD PTR[((0+128))+rcx] adcx r11,rdi adox r13,rbp mulx rbp,rdi,QWORD PTR[((8+128))+rcx] adcx r13,rdi adox r14,rbp mulx rbp,rdi,QWORD PTR[((16+128))+rcx] adcx r14,rdi adox r15,rbp mulx rbp,rdi,QWORD PTR[((24+128))+rcx] adcx r15,rdi adox rax,rbp mulx rbp,rdi,QWORD PTR[((32+128))+rcx] adcx rax,rdi adox r8,rbp mulx rbp,rdi,QWORD PTR[((40+128))+rcx] mov rdx,r13 adcx r8,rdi adox r9,rbp adcx r9,r11 adox r10,r11 adcx r10,r11 imul rdx,QWORD PTR[8+rsp] mov rbx,QWORD PTR[24+rsp] xor r12,r12 mulx rbp,rdi,QWORD PTR[((0+128))+rcx] adcx r13,rdi adox r14,rbp mulx rbp,rdi,QWORD PTR[((8+128))+rcx] adcx r14,rdi adox r15,rbp mulx rbp,rdi,QWORD PTR[((16+128))+rcx] adcx r15,rdi adox rax,rbp mulx rbp,rdi,QWORD PTR[((24+128))+rcx] adcx rax,rdi adox r8,rbp mulx rbp,rdi,QWORD PTR[((32+128))+rcx] adcx r8,rdi adox r9,rbp mulx rbp,rdi,QWORD PTR[((40+128))+rcx] mov rdx,r14 adcx r9,rdi adox r10,rbp adc r10,0 mov r12,r8 mov QWORD PTR[rbx],r14 mov QWORD PTR[8+rbx],r15 mov QWORD PTR[16+rbx],rax mov rdi,r9 mov QWORD PTR[24+rbx],r8 mov QWORD PTR[32+rbx],r9 mov QWORD PTR[40+rbx],r10 mov rbp,r10 ifdef __SGX_LVI_HARDENING__ pop rsi lfence jmp rsi ud2 else DB 0F3h,0C3h endif __mulx_mont_383_nonred ENDP PUBLIC sqrx_mont_382x ALIGN 32 sqrx_mont_382x PROC PUBLIC DB 243,15,30,250 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue mov QWORD PTR[16+rsp],rsi mov r11,rsp $L$SEH_begin_sqrx_mont_382x:: mov rdi,rcx mov rsi,rdx mov rdx,r8 mov rcx,r9 sqr_mont_382x$1:: push rbp push rbx push r12 push r13 push r14 push r15 sub rsp,136 $L$SEH_body_sqrx_mont_382x:: mov QWORD PTR[rsp],rcx mov rcx,rdx mov QWORD PTR[16+rsp],rdi mov QWORD PTR[24+rsp],rsi ifdef __SGX_LVI_HARDENING__ lfence endif mov r8,QWORD PTR[rsi] mov r9,QWORD PTR[8+rsi] mov r10,QWORD PTR[16+rsi] mov r11,QWORD PTR[24+rsi] mov r12,QWORD PTR[32+rsi] mov r13,QWORD PTR[40+rsi] mov r14,r8 add r8,QWORD PTR[48+rsi] mov r15,r9 adc r9,QWORD PTR[56+rsi] mov rax,r10 adc r10,QWORD PTR[64+rsi] mov rdx,r11 adc r11,QWORD PTR[72+rsi] mov rbx,r12 adc r12,QWORD PTR[80+rsi] mov rbp,r13 adc r13,QWORD PTR[88+rsi] sub r14,QWORD PTR[48+rsi] sbb r15,QWORD PTR[56+rsi] sbb rax,QWORD PTR[64+rsi] sbb rdx,QWORD PTR[72+rsi] sbb rbx,QWORD PTR[80+rsi] sbb rbp,QWORD PTR[88+rsi] sbb rdi,rdi mov QWORD PTR[((32+0))+rsp],r8 mov QWORD PTR[((32+8))+rsp],r9 mov QWORD PTR[((32+16))+rsp],r10 mov QWORD PTR[((32+24))+rsp],r11 mov QWORD PTR[((32+32))+rsp],r12 mov QWORD PTR[((32+40))+rsp],r13 mov QWORD PTR[((32+48))+rsp],r14 mov QWORD PTR[((32+56))+rsp],r15 mov QWORD PTR[((32+64))+rsp],rax mov QWORD PTR[((32+72))+rsp],rdx mov QWORD PTR[((32+80))+rsp],rbx mov QWORD PTR[((32+88))+rsp],rbp mov QWORD PTR[((32+96))+rsp],rdi lea rbx,QWORD PTR[48+rsi] mov rdx,QWORD PTR[48+rsi] mov r14,QWORD PTR[rsi] mov r15,QWORD PTR[8+rsi] mov rax,QWORD PTR[16+rsi] mov r12,QWORD PTR[24+rsi] mov rdi,QWORD PTR[32+rsi] mov rbp,QWORD PTR[40+rsi] lea rsi,QWORD PTR[((-128))+rsi] lea rcx,QWORD PTR[((-128))+rcx] mulx r9,r8,r14 call __mulx_mont_383_nonred add rdx,rdx adc r15,r15 adc rax,rax adc r12,r12 adc rdi,rdi adc rbp,rbp mov QWORD PTR[48+rbx],rdx mov QWORD PTR[56+rbx],r15 mov QWORD PTR[64+rbx],rax mov QWORD PTR[72+rbx],r12 mov QWORD PTR[80+rbx],rdi mov QWORD PTR[88+rbx],rbp lea rsi,QWORD PTR[((32-128))+rsp] lea rbx,QWORD PTR[((32+48))+rsp] mov rdx,QWORD PTR[((32+48))+rsp] mov r14,QWORD PTR[((32+0))+rsp] mov r15,QWORD PTR[((32+8))+rsp] mov rax,QWORD PTR[((32+16))+rsp] mov r12,QWORD PTR[((32+24))+rsp] mov rdi,QWORD PTR[((32+32))+rsp] mov rbp,QWORD PTR[((32+40))+rsp] mulx r9,r8,r14 call __mulx_mont_383_nonred mov r14,QWORD PTR[((32+96))+rsp] lea rcx,QWORD PTR[128+rcx] mov r8,QWORD PTR[((32+0))+rsp] and r8,r14 mov r9,QWORD PTR[((32+8))+rsp] and r9,r14 mov r10,QWORD PTR[((32+16))+rsp] and r10,r14 mov r11,QWORD PTR[((32+24))+rsp] and r11,r14 mov r13,QWORD PTR[((32+32))+rsp] and r13,r14 and r14,QWORD PTR[((32+40))+rsp] sub rdx,r8 mov r8,QWORD PTR[rcx] sbb r15,r9 mov r9,QWORD PTR[8+rcx] sbb rax,r10 mov r10,QWORD PTR[16+rcx] sbb r12,r11 mov r11,QWORD PTR[24+rcx] sbb rdi,r13 mov r13,QWORD PTR[32+rcx] sbb rbp,r14 sbb r14,r14 and r8,r14 and r9,r14 and r10,r14 and r11,r14 and r13,r14 and r14,QWORD PTR[40+rcx] add rdx,r8 adc r15,r9 adc rax,r10 adc r12,r11 adc rdi,r13 adc rbp,r14 mov QWORD PTR[rbx],rdx mov QWORD PTR[8+rbx],r15 mov QWORD PTR[16+rbx],rax mov QWORD PTR[24+rbx],r12 mov QWORD PTR[32+rbx],rdi mov QWORD PTR[40+rbx],rbp lea r8,QWORD PTR[136+rsp] mov r15,QWORD PTR[r8] mov r14,QWORD PTR[8+r8] mov r13,QWORD PTR[16+r8] mov r12,QWORD PTR[24+r8] mov rbx,QWORD PTR[32+r8] mov rbp,QWORD PTR[40+r8] lea rsp,QWORD PTR[48+r8] $L$SEH_epilogue_sqrx_mont_382x:: mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue mov rsi,QWORD PTR[16+rsp] ifdef __SGX_LVI_HARDENING__ pop rdx lfence jmp rdx ud2 else DB 0F3h,0C3h endif $L$SEH_end_sqrx_mont_382x:: sqrx_mont_382x ENDP .text$ ENDS .pdata SEGMENT READONLY ALIGN(4) ALIGN 4 DD imagerel $L$SEH_begin_mulx_mont_384x DD imagerel $L$SEH_body_mulx_mont_384x DD imagerel $L$SEH_info_mulx_mont_384x_prologue DD imagerel $L$SEH_body_mulx_mont_384x DD imagerel $L$SEH_epilogue_mulx_mont_384x DD imagerel $L$SEH_info_mulx_mont_384x_body DD imagerel $L$SEH_epilogue_mulx_mont_384x DD imagerel $L$SEH_end_mulx_mont_384x DD imagerel $L$SEH_info_mulx_mont_384x_epilogue DD imagerel $L$SEH_begin_sqrx_mont_384x DD imagerel $L$SEH_body_sqrx_mont_384x DD imagerel $L$SEH_info_sqrx_mont_384x_prologue DD imagerel $L$SEH_body_sqrx_mont_384x DD imagerel $L$SEH_epilogue_sqrx_mont_384x DD imagerel $L$SEH_info_sqrx_mont_384x_body DD imagerel $L$SEH_epilogue_sqrx_mont_384x DD imagerel $L$SEH_end_sqrx_mont_384x DD imagerel $L$SEH_info_sqrx_mont_384x_epilogue DD imagerel $L$SEH_begin_mulx_382x DD imagerel $L$SEH_body_mulx_382x DD imagerel $L$SEH_info_mulx_382x_prologue DD imagerel $L$SEH_body_mulx_382x DD imagerel $L$SEH_epilogue_mulx_382x DD imagerel $L$SEH_info_mulx_382x_body DD imagerel $L$SEH_epilogue_mulx_382x DD imagerel $L$SEH_end_mulx_382x DD imagerel $L$SEH_info_mulx_382x_epilogue DD imagerel $L$SEH_begin_sqrx_382x DD imagerel $L$SEH_body_sqrx_382x DD imagerel $L$SEH_info_sqrx_382x_prologue DD imagerel $L$SEH_body_sqrx_382x DD imagerel $L$SEH_epilogue_sqrx_382x DD imagerel $L$SEH_info_sqrx_382x_body DD imagerel $L$SEH_epilogue_sqrx_382x DD imagerel $L$SEH_end_sqrx_382x DD imagerel $L$SEH_info_sqrx_382x_epilogue DD imagerel $L$SEH_begin_mulx_384 DD imagerel $L$SEH_body_mulx_384 DD imagerel $L$SEH_info_mulx_384_prologue DD imagerel $L$SEH_body_mulx_384 DD imagerel $L$SEH_epilogue_mulx_384 DD imagerel $L$SEH_info_mulx_384_body DD imagerel $L$SEH_epilogue_mulx_384 DD imagerel $L$SEH_end_mulx_384 DD imagerel $L$SEH_info_mulx_384_epilogue DD imagerel $L$SEH_begin_sqrx_384 DD imagerel $L$SEH_body_sqrx_384 DD imagerel $L$SEH_info_sqrx_384_prologue DD imagerel $L$SEH_body_sqrx_384 DD imagerel $L$SEH_epilogue_sqrx_384 DD imagerel $L$SEH_info_sqrx_384_body DD imagerel $L$SEH_epilogue_sqrx_384 DD imagerel $L$SEH_end_sqrx_384 DD imagerel $L$SEH_info_sqrx_384_epilogue DD imagerel $L$SEH_begin_redcx_mont_384 DD imagerel $L$SEH_body_redcx_mont_384 DD imagerel $L$SEH_info_redcx_mont_384_prologue DD imagerel $L$SEH_body_redcx_mont_384 DD imagerel $L$SEH_epilogue_redcx_mont_384 DD imagerel $L$SEH_info_redcx_mont_384_body DD imagerel $L$SEH_epilogue_redcx_mont_384 DD imagerel $L$SEH_end_redcx_mont_384 DD imagerel $L$SEH_info_redcx_mont_384_epilogue DD imagerel $L$SEH_begin_fromx_mont_384 DD imagerel $L$SEH_body_fromx_mont_384 DD imagerel $L$SEH_info_fromx_mont_384_prologue DD imagerel $L$SEH_body_fromx_mont_384 DD imagerel $L$SEH_epilogue_fromx_mont_384 DD imagerel $L$SEH_info_fromx_mont_384_body DD imagerel $L$SEH_epilogue_fromx_mont_384 DD imagerel $L$SEH_end_fromx_mont_384 DD imagerel $L$SEH_info_fromx_mont_384_epilogue DD imagerel $L$SEH_begin_sgn0x_pty_mont_384 DD imagerel $L$SEH_body_sgn0x_pty_mont_384 DD imagerel $L$SEH_info_sgn0x_pty_mont_384_prologue DD imagerel $L$SEH_body_sgn0x_pty_mont_384 DD imagerel $L$SEH_epilogue_sgn0x_pty_mont_384 DD imagerel $L$SEH_info_sgn0x_pty_mont_384_body DD imagerel $L$SEH_epilogue_sgn0x_pty_mont_384 DD imagerel $L$SEH_end_sgn0x_pty_mont_384 DD imagerel $L$SEH_info_sgn0x_pty_mont_384_epilogue DD imagerel $L$SEH_begin_sgn0x_pty_mont_384x DD imagerel $L$SEH_body_sgn0x_pty_mont_384x DD imagerel $L$SEH_info_sgn0x_pty_mont_384x_prologue DD imagerel $L$SEH_body_sgn0x_pty_mont_384x DD imagerel $L$SEH_epilogue_sgn0x_pty_mont_384x DD imagerel $L$SEH_info_sgn0x_pty_mont_384x_body DD imagerel $L$SEH_epilogue_sgn0x_pty_mont_384x DD imagerel $L$SEH_end_sgn0x_pty_mont_384x DD imagerel $L$SEH_info_sgn0x_pty_mont_384x_epilogue DD imagerel $L$SEH_begin_mulx_mont_384 DD imagerel $L$SEH_body_mulx_mont_384 DD imagerel $L$SEH_info_mulx_mont_384_prologue DD imagerel $L$SEH_body_mulx_mont_384 DD imagerel $L$SEH_epilogue_mulx_mont_384 DD imagerel $L$SEH_info_mulx_mont_384_body DD imagerel $L$SEH_epilogue_mulx_mont_384 DD imagerel $L$SEH_end_mulx_mont_384 DD imagerel $L$SEH_info_mulx_mont_384_epilogue DD imagerel $L$SEH_begin_sqrx_mont_384 DD imagerel $L$SEH_body_sqrx_mont_384 DD imagerel $L$SEH_info_sqrx_mont_384_prologue DD imagerel $L$SEH_body_sqrx_mont_384 DD imagerel $L$SEH_epilogue_sqrx_mont_384 DD imagerel $L$SEH_info_sqrx_mont_384_body DD imagerel $L$SEH_epilogue_sqrx_mont_384 DD imagerel $L$SEH_end_sqrx_mont_384 DD imagerel $L$SEH_info_sqrx_mont_384_epilogue DD imagerel $L$SEH_begin_sqrx_n_mul_mont_384 DD imagerel $L$SEH_body_sqrx_n_mul_mont_384 DD imagerel $L$SEH_info_sqrx_n_mul_mont_384_prologue DD imagerel $L$SEH_body_sqrx_n_mul_mont_384 DD imagerel $L$SEH_epilogue_sqrx_n_mul_mont_384 DD imagerel $L$SEH_info_sqrx_n_mul_mont_384_body DD imagerel $L$SEH_epilogue_sqrx_n_mul_mont_384 DD imagerel $L$SEH_end_sqrx_n_mul_mont_384 DD imagerel $L$SEH_info_sqrx_n_mul_mont_384_epilogue DD imagerel $L$SEH_begin_sqrx_n_mul_mont_383 DD imagerel $L$SEH_body_sqrx_n_mul_mont_383 DD imagerel $L$SEH_info_sqrx_n_mul_mont_383_prologue DD imagerel $L$SEH_body_sqrx_n_mul_mont_383 DD imagerel $L$SEH_epilogue_sqrx_n_mul_mont_383 DD imagerel $L$SEH_info_sqrx_n_mul_mont_383_body DD imagerel $L$SEH_epilogue_sqrx_n_mul_mont_383 DD imagerel $L$SEH_end_sqrx_n_mul_mont_383 DD imagerel $L$SEH_info_sqrx_n_mul_mont_383_epilogue DD imagerel $L$SEH_begin_sqrx_mont_382x DD imagerel $L$SEH_body_sqrx_mont_382x DD imagerel $L$SEH_info_sqrx_mont_382x_prologue DD imagerel $L$SEH_body_sqrx_mont_382x DD imagerel $L$SEH_epilogue_sqrx_mont_382x DD imagerel $L$SEH_info_sqrx_mont_382x_body DD imagerel $L$SEH_epilogue_sqrx_mont_382x DD imagerel $L$SEH_end_sqrx_mont_382x DD imagerel $L$SEH_info_sqrx_mont_382x_epilogue .pdata ENDS .xdata SEGMENT READONLY ALIGN(8) ALIGN 8 $L$SEH_info_mulx_mont_384x_prologue:: DB 1,0,5,00bh DB 0,074h,1,0 DB 0,064h,2,0 DB 0,0b3h DB 0,0 DD 0,0 $L$SEH_info_mulx_mont_384x_body:: DB 1,0,18,0 DB 000h,0f4h,029h,000h DB 000h,0e4h,02ah,000h DB 000h,0d4h,02bh,000h DB 000h,0c4h,02ch,000h DB 000h,034h,02dh,000h DB 000h,054h,02eh,000h DB 000h,074h,030h,000h DB 000h,064h,031h,000h DB 000h,001h,02fh,000h DB 000h,000h,000h,000h DB 000h,000h,000h,000h $L$SEH_info_mulx_mont_384x_epilogue:: DB 1,0,4,0 DB 000h,074h,001h,000h DB 000h,064h,002h,000h DB 000h,000h,000h,000h $L$SEH_info_sqrx_mont_384x_prologue:: DB 1,0,5,00bh DB 0,074h,1,0 DB 0,064h,2,0 DB 0,0b3h DB 0,0 DD 0,0 $L$SEH_info_sqrx_mont_384x_body:: DB 1,0,18,0 DB 000h,0f4h,011h,000h DB 000h,0e4h,012h,000h DB 000h,0d4h,013h,000h DB 000h,0c4h,014h,000h DB 000h,034h,015h,000h DB 000h,054h,016h,000h DB 000h,074h,018h,000h DB 000h,064h,019h,000h DB 000h,001h,017h,000h DB 000h,000h,000h,000h DB 000h,000h,000h,000h $L$SEH_info_sqrx_mont_384x_epilogue:: DB 1,0,4,0 DB 000h,074h,001h,000h DB 000h,064h,002h,000h DB 000h,000h,000h,000h $L$SEH_info_mulx_382x_prologue:: DB 1,0,5,00bh DB 0,074h,1,0 DB 0,064h,2,0 DB 0,0b3h DB 0,0 DD 0,0 $L$SEH_info_mulx_382x_body:: DB 1,0,18,0 DB 000h,0f4h,011h,000h DB 000h,0e4h,012h,000h DB 000h,0d4h,013h,000h DB 000h,0c4h,014h,000h DB 000h,034h,015h,000h DB 000h,054h,016h,000h DB 000h,074h,018h,000h DB 000h,064h,019h,000h DB 000h,001h,017h,000h DB 000h,000h,000h,000h DB 000h,000h,000h,000h $L$SEH_info_mulx_382x_epilogue:: DB 1,0,4,0 DB 000h,074h,001h,000h DB 000h,064h,002h,000h DB 000h,000h,000h,000h $L$SEH_info_sqrx_382x_prologue:: DB 1,0,5,00bh DB 0,074h,1,0 DB 0,064h,2,0 DB 0,0b3h DB 0,0 DD 0,0 $L$SEH_info_sqrx_382x_body:: DB 1,0,17,0 DB 000h,0f4h,001h,000h DB 000h,0e4h,002h,000h DB 000h,0d4h,003h,000h DB 000h,0c4h,004h,000h DB 000h,034h,005h,000h DB 000h,054h,006h,000h DB 000h,074h,008h,000h DB 000h,064h,009h,000h DB 000h,062h DB 000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h $L$SEH_info_sqrx_382x_epilogue:: DB 1,0,4,0 DB 000h,074h,001h,000h DB 000h,064h,002h,000h DB 000h,000h,000h,000h $L$SEH_info_mulx_384_prologue:: DB 1,0,5,00bh DB 0,074h,1,0 DB 0,064h,2,0 DB 0,0b3h DB 0,0 DD 0,0 $L$SEH_info_mulx_384_body:: DB 1,0,17,0 DB 000h,0f4h,000h,000h DB 000h,0e4h,001h,000h DB 000h,0d4h,002h,000h DB 000h,0c4h,003h,000h DB 000h,034h,004h,000h DB 000h,054h,005h,000h DB 000h,074h,007h,000h DB 000h,064h,008h,000h DB 000h,052h DB 000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h $L$SEH_info_mulx_384_epilogue:: DB 1,0,4,0 DB 000h,074h,001h,000h DB 000h,064h,002h,000h DB 000h,000h,000h,000h $L$SEH_info_sqrx_384_prologue:: DB 1,0,5,00bh DB 0,074h,1,0 DB 0,064h,2,0 DB 0,0b3h DB 0,0 DD 0,0 $L$SEH_info_sqrx_384_body:: DB 1,0,17,0 DB 000h,0f4h,001h,000h DB 000h,0e4h,002h,000h DB 000h,0d4h,003h,000h DB 000h,0c4h,004h,000h DB 000h,034h,005h,000h DB 000h,054h,006h,000h DB 000h,074h,008h,000h DB 000h,064h,009h,000h DB 000h,062h DB 000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h $L$SEH_info_sqrx_384_epilogue:: DB 1,0,4,0 DB 000h,074h,001h,000h DB 000h,064h,002h,000h DB 000h,000h,000h,000h $L$SEH_info_redcx_mont_384_prologue:: DB 1,0,5,00bh DB 0,074h,1,0 DB 0,064h,2,0 DB 0,0b3h DB 0,0 DD 0,0 $L$SEH_info_redcx_mont_384_body:: DB 1,0,17,0 DB 000h,0f4h,001h,000h DB 000h,0e4h,002h,000h DB 000h,0d4h,003h,000h DB 000h,0c4h,004h,000h DB 000h,034h,005h,000h DB 000h,054h,006h,000h DB 000h,074h,008h,000h DB 000h,064h,009h,000h DB 000h,062h DB 000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h $L$SEH_info_redcx_mont_384_epilogue:: DB 1,0,4,0 DB 000h,074h,001h,000h DB 000h,064h,002h,000h DB 000h,000h,000h,000h $L$SEH_info_fromx_mont_384_prologue:: DB 1,0,5,00bh DB 0,074h,1,0 DB 0,064h,2,0 DB 0,0b3h DB 0,0 DD 0,0 $L$SEH_info_fromx_mont_384_body:: DB 1,0,17,0 DB 000h,0f4h,001h,000h DB 000h,0e4h,002h,000h DB 000h,0d4h,003h,000h DB 000h,0c4h,004h,000h DB 000h,034h,005h,000h DB 000h,054h,006h,000h DB 000h,074h,008h,000h DB 000h,064h,009h,000h DB 000h,062h DB 000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h $L$SEH_info_fromx_mont_384_epilogue:: DB 1,0,4,0 DB 000h,074h,001h,000h DB 000h,064h,002h,000h DB 000h,000h,000h,000h $L$SEH_info_sgn0x_pty_mont_384_prologue:: DB 1,0,5,00bh DB 0,074h,1,0 DB 0,064h,2,0 DB 0,0b3h DB 0,0 DD 0,0 $L$SEH_info_sgn0x_pty_mont_384_body:: DB 1,0,17,0 DB 000h,0f4h,001h,000h DB 000h,0e4h,002h,000h DB 000h,0d4h,003h,000h DB 000h,0c4h,004h,000h DB 000h,034h,005h,000h DB 000h,054h,006h,000h DB 000h,074h,008h,000h DB 000h,064h,009h,000h DB 000h,062h DB 000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h $L$SEH_info_sgn0x_pty_mont_384_epilogue:: DB 1,0,4,0 DB 000h,074h,001h,000h DB 000h,064h,002h,000h DB 000h,000h,000h,000h $L$SEH_info_sgn0x_pty_mont_384x_prologue:: DB 1,0,5,00bh DB 0,074h,1,0 DB 0,064h,2,0 DB 0,0b3h DB 0,0 DD 0,0 $L$SEH_info_sgn0x_pty_mont_384x_body:: DB 1,0,17,0 DB 000h,0f4h,001h,000h DB 000h,0e4h,002h,000h DB 000h,0d4h,003h,000h DB 000h,0c4h,004h,000h DB 000h,034h,005h,000h DB 000h,054h,006h,000h DB 000h,074h,008h,000h DB 000h,064h,009h,000h DB 000h,062h DB 000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h $L$SEH_info_sgn0x_pty_mont_384x_epilogue:: DB 1,0,4,0 DB 000h,074h,001h,000h DB 000h,064h,002h,000h DB 000h,000h,000h,000h $L$SEH_info_mulx_mont_384_prologue:: DB 1,0,5,00bh DB 0,074h,1,0 DB 0,064h,2,0 DB 0,0b3h DB 0,0 DD 0,0 $L$SEH_info_mulx_mont_384_body:: DB 1,0,17,0 DB 000h,0f4h,003h,000h DB 000h,0e4h,004h,000h DB 000h,0d4h,005h,000h DB 000h,0c4h,006h,000h DB 000h,034h,007h,000h DB 000h,054h,008h,000h DB 000h,074h,00ah,000h DB 000h,064h,00bh,000h DB 000h,082h DB 000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h $L$SEH_info_mulx_mont_384_epilogue:: DB 1,0,4,0 DB 000h,074h,001h,000h DB 000h,064h,002h,000h DB 000h,000h,000h,000h $L$SEH_info_sqrx_mont_384_prologue:: DB 1,0,5,00bh DB 0,074h,1,0 DB 0,064h,2,0 DB 0,0b3h DB 0,0 DD 0,0 $L$SEH_info_sqrx_mont_384_body:: DB 1,0,17,0 DB 000h,0f4h,003h,000h DB 000h,0e4h,004h,000h DB 000h,0d4h,005h,000h DB 000h,0c4h,006h,000h DB 000h,034h,007h,000h DB 000h,054h,008h,000h DB 000h,074h,00ah,000h DB 000h,064h,00bh,000h DB 000h,082h DB 000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h $L$SEH_info_sqrx_mont_384_epilogue:: DB 1,0,4,0 DB 000h,074h,001h,000h DB 000h,064h,002h,000h DB 000h,000h,000h,000h $L$SEH_info_sqrx_n_mul_mont_384_prologue:: DB 1,0,5,00bh DB 0,074h,1,0 DB 0,064h,2,0 DB 0,0b3h DB 0,0 DD 0,0 $L$SEH_info_sqrx_n_mul_mont_384_body:: DB 1,0,17,0 DB 000h,0f4h,005h,000h DB 000h,0e4h,006h,000h DB 000h,0d4h,007h,000h DB 000h,0c4h,008h,000h DB 000h,034h,009h,000h DB 000h,054h,00ah,000h DB 000h,074h,00ch,000h DB 000h,064h,00dh,000h DB 000h,0a2h DB 000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h $L$SEH_info_sqrx_n_mul_mont_384_epilogue:: DB 1,0,4,0 DB 000h,074h,001h,000h DB 000h,064h,002h,000h DB 000h,000h,000h,000h $L$SEH_info_sqrx_n_mul_mont_383_prologue:: DB 1,0,5,00bh DB 0,074h,1,0 DB 0,064h,2,0 DB 0,0b3h DB 0,0 DD 0,0 $L$SEH_info_sqrx_n_mul_mont_383_body:: DB 1,0,17,0 DB 000h,0f4h,005h,000h DB 000h,0e4h,006h,000h DB 000h,0d4h,007h,000h DB 000h,0c4h,008h,000h DB 000h,034h,009h,000h DB 000h,054h,00ah,000h DB 000h,074h,00ch,000h DB 000h,064h,00dh,000h DB 000h,0a2h DB 000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h $L$SEH_info_sqrx_n_mul_mont_383_epilogue:: DB 1,0,4,0 DB 000h,074h,001h,000h DB 000h,064h,002h,000h DB 000h,000h,000h,000h $L$SEH_info_sqrx_mont_382x_prologue:: DB 1,0,5,00bh DB 0,074h,1,0 DB 0,064h,2,0 DB 0,0b3h DB 0,0 DD 0,0 $L$SEH_info_sqrx_mont_382x_body:: DB 1,0,18,0 DB 000h,0f4h,011h,000h DB 000h,0e4h,012h,000h DB 000h,0d4h,013h,000h DB 000h,0c4h,014h,000h DB 000h,034h,015h,000h DB 000h,054h,016h,000h DB 000h,074h,018h,000h DB 000h,064h,019h,000h DB 000h,001h,017h,000h DB 000h,000h,000h,000h DB 000h,000h,000h,000h $L$SEH_info_sqrx_mont_382x_epilogue:: DB 1,0,4,0 DB 000h,074h,001h,000h DB 000h,064h,002h,000h DB 000h,000h,000h,000h .xdata ENDS END