.comm __blst_platform_cap,4 .text .def __subq_mod_384x384; .scl 3; .type 32; .endef .p2align 5 __subq_mod_384x384: .byte 0xf3,0x0f,0x1e,0xfa movq 0(%rsi),%r8 movq 8(%rsi),%r9 movq 16(%rsi),%r10 movq 24(%rsi),%r11 movq 32(%rsi),%r12 movq 40(%rsi),%r13 movq 48(%rsi),%r14 subq 0(%rdx),%r8 movq 56(%rsi),%r15 sbbq 8(%rdx),%r9 movq 64(%rsi),%rax sbbq 16(%rdx),%r10 movq 72(%rsi),%rbx sbbq 24(%rdx),%r11 movq 80(%rsi),%rbp sbbq 32(%rdx),%r12 movq 88(%rsi),%rsi sbbq 40(%rdx),%r13 movq %r8,0(%rdi) sbbq 48(%rdx),%r14 movq 0(%rcx),%r8 movq %r9,8(%rdi) sbbq 56(%rdx),%r15 movq 8(%rcx),%r9 movq %r10,16(%rdi) sbbq 64(%rdx),%rax movq 16(%rcx),%r10 movq %r11,24(%rdi) sbbq 72(%rdx),%rbx movq 24(%rcx),%r11 movq %r12,32(%rdi) sbbq 80(%rdx),%rbp movq 32(%rcx),%r12 movq %r13,40(%rdi) sbbq 88(%rdx),%rsi movq 40(%rcx),%r13 sbbq %rdx,%rdx andq %rdx,%r8 andq %rdx,%r9 andq %rdx,%r10 andq %rdx,%r11 andq %rdx,%r12 andq %rdx,%r13 addq %r8,%r14 adcq %r9,%r15 movq %r14,48(%rdi) adcq %r10,%rax movq %r15,56(%rdi) adcq %r11,%rbx movq %rax,64(%rdi) adcq %r12,%rbp movq %rbx,72(%rdi) adcq %r13,%rsi movq %rbp,80(%rdi) movq %rsi,88(%rdi) #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .def __addq_mod_384; .scl 3; .type 32; .endef .p2align 5 __addq_mod_384: .byte 0xf3,0x0f,0x1e,0xfa movq 0(%rsi),%r8 movq 8(%rsi),%r9 movq 16(%rsi),%r10 movq 24(%rsi),%r11 movq 32(%rsi),%r12 movq 40(%rsi),%r13 addq 0(%rdx),%r8 adcq 8(%rdx),%r9 adcq 16(%rdx),%r10 movq %r8,%r14 adcq 24(%rdx),%r11 movq %r9,%r15 adcq 32(%rdx),%r12 movq %r10,%rax adcq 40(%rdx),%r13 movq %r11,%rbx sbbq %rdx,%rdx subq 0(%rcx),%r8 sbbq 8(%rcx),%r9 movq %r12,%rbp sbbq 16(%rcx),%r10 sbbq 24(%rcx),%r11 sbbq 32(%rcx),%r12 movq %r13,%rsi sbbq 40(%rcx),%r13 sbbq $0,%rdx cmovcq %r14,%r8 cmovcq %r15,%r9 cmovcq %rax,%r10 movq %r8,0(%rdi) cmovcq %rbx,%r11 movq %r9,8(%rdi) cmovcq %rbp,%r12 movq %r10,16(%rdi) cmovcq %rsi,%r13 movq %r11,24(%rdi) movq %r12,32(%rdi) movq %r13,40(%rdi) #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .def __subq_mod_384; .scl 3; .type 32; .endef .p2align 5 __subq_mod_384: .byte 0xf3,0x0f,0x1e,0xfa movq 0(%rsi),%r8 movq 8(%rsi),%r9 movq 16(%rsi),%r10 movq 24(%rsi),%r11 movq 32(%rsi),%r12 movq 40(%rsi),%r13 __subq_mod_384_a_is_loaded: subq 0(%rdx),%r8 movq 0(%rcx),%r14 sbbq 8(%rdx),%r9 movq 8(%rcx),%r15 sbbq 16(%rdx),%r10 movq 16(%rcx),%rax sbbq 24(%rdx),%r11 movq 24(%rcx),%rbx sbbq 32(%rdx),%r12 movq 32(%rcx),%rbp sbbq 40(%rdx),%r13 movq 40(%rcx),%rsi sbbq %rdx,%rdx andq %rdx,%r14 andq %rdx,%r15 andq %rdx,%rax andq %rdx,%rbx andq %rdx,%rbp andq %rdx,%rsi addq %r14,%r8 adcq %r15,%r9 movq %r8,0(%rdi) adcq %rax,%r10 movq %r9,8(%rdi) adcq %rbx,%r11 movq %r10,16(%rdi) adcq %rbp,%r12 movq %r11,24(%rdi) adcq %rsi,%r13 movq %r12,32(%rdi) movq %r13,40(%rdi) #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .globl mul_mont_384x .def mul_mont_384x; .scl 2; .type 32; .endef .p2align 5 mul_mont_384x: .byte 0xf3,0x0f,0x1e,0xfa movq %rdi,8(%rsp) movq %rsi,16(%rsp) movq %rsp,%r11 .LSEH_begin_mul_mont_384x: movq %rcx,%rdi movq %rdx,%rsi movq %r8,%rdx movq %r9,%rcx movq 40(%rsp),%r8 #ifdef __BLST_PORTABLE__ testl $1,__blst_platform_cap(%rip) jnz mul_mont_384x$1 #endif pushq %rbp pushq %rbx pushq %r12 pushq %r13 pushq %r14 pushq %r15 subq $328,%rsp .LSEH_body_mul_mont_384x: movq %rdx,%rbx movq %rdi,32(%rsp) movq %rsi,24(%rsp) movq %rdx,16(%rsp) movq %rcx,8(%rsp) movq %r8,0(%rsp) leaq 40(%rsp),%rdi call __mulq_384 leaq 48(%rbx),%rbx leaq 48(%rsi),%rsi leaq 40+96(%rsp),%rdi call __mulq_384 movq 8(%rsp),%rcx leaq -48(%rsi),%rdx leaq 40+192+48(%rsp),%rdi call __addq_mod_384 movq 16(%rsp),%rsi leaq 48(%rsi),%rdx leaq -48(%rdi),%rdi call __addq_mod_384 leaq (%rdi),%rbx leaq 48(%rdi),%rsi call __mulq_384 leaq (%rdi),%rsi leaq 40(%rsp),%rdx movq 8(%rsp),%rcx call __subq_mod_384x384 leaq (%rdi),%rsi leaq -96(%rdi),%rdx call __subq_mod_384x384 leaq 40(%rsp),%rsi leaq 40+96(%rsp),%rdx leaq 40(%rsp),%rdi call __subq_mod_384x384 movq %rcx,%rbx leaq 40(%rsp),%rsi movq 0(%rsp),%rcx movq 32(%rsp),%rdi call __mulq_by_1_mont_384 call __redq_tail_mont_384 leaq 40+192(%rsp),%rsi movq 0(%rsp),%rcx leaq 48(%rdi),%rdi call __mulq_by_1_mont_384 call __redq_tail_mont_384 leaq 328(%rsp),%r8 movq 0(%r8),%r15 movq 8(%r8),%r14 movq 16(%r8),%r13 movq 24(%r8),%r12 movq 32(%r8),%rbx movq 40(%r8),%rbp leaq 48(%r8),%rsp .LSEH_epilogue_mul_mont_384x: mov 8(%rsp),%rdi mov 16(%rsp),%rsi #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .LSEH_end_mul_mont_384x: .globl sqr_mont_384x .def sqr_mont_384x; .scl 2; .type 32; .endef .p2align 5 sqr_mont_384x: .byte 0xf3,0x0f,0x1e,0xfa movq %rdi,8(%rsp) movq %rsi,16(%rsp) movq %rsp,%r11 .LSEH_begin_sqr_mont_384x: movq %rcx,%rdi movq %rdx,%rsi movq %r8,%rdx movq %r9,%rcx #ifdef __BLST_PORTABLE__ testl $1,__blst_platform_cap(%rip) jnz sqr_mont_384x$1 #endif pushq %rbp pushq %rbx pushq %r12 pushq %r13 pushq %r14 pushq %r15 subq $136,%rsp .LSEH_body_sqr_mont_384x: movq %rcx,0(%rsp) movq %rdx,%rcx movq %rdi,8(%rsp) movq %rsi,16(%rsp) leaq 48(%rsi),%rdx leaq 32(%rsp),%rdi call __addq_mod_384 movq 16(%rsp),%rsi leaq 48(%rsi),%rdx leaq 32+48(%rsp),%rdi call __subq_mod_384 movq 16(%rsp),%rsi leaq 48(%rsi),%rbx movq 48(%rsi),%rax movq 0(%rsi),%r14 movq 8(%rsi),%r15 movq 16(%rsi),%r12 movq 24(%rsi),%r13 call __mulq_mont_384 addq %r14,%r14 adcq %r15,%r15 adcq %r8,%r8 movq %r14,%r12 adcq %r9,%r9 movq %r15,%r13 adcq %r10,%r10 movq %r8,%rax adcq %r11,%r11 movq %r9,%rbx sbbq %rdx,%rdx subq 0(%rcx),%r14 sbbq 8(%rcx),%r15 movq %r10,%rbp sbbq 16(%rcx),%r8 sbbq 24(%rcx),%r9 sbbq 32(%rcx),%r10 movq %r11,%rsi sbbq 40(%rcx),%r11 sbbq $0,%rdx cmovcq %r12,%r14 cmovcq %r13,%r15 cmovcq %rax,%r8 movq %r14,48(%rdi) cmovcq %rbx,%r9 movq %r15,56(%rdi) cmovcq %rbp,%r10 movq %r8,64(%rdi) cmovcq %rsi,%r11 movq %r9,72(%rdi) movq %r10,80(%rdi) movq %r11,88(%rdi) leaq 32(%rsp),%rsi leaq 32+48(%rsp),%rbx movq 32+48(%rsp),%rax movq 32+0(%rsp),%r14 movq 32+8(%rsp),%r15 movq 32+16(%rsp),%r12 movq 32+24(%rsp),%r13 call __mulq_mont_384 leaq 136(%rsp),%r8 movq 0(%r8),%r15 movq 8(%r8),%r14 movq 16(%r8),%r13 movq 24(%r8),%r12 movq 32(%r8),%rbx movq 40(%r8),%rbp leaq 48(%r8),%rsp .LSEH_epilogue_sqr_mont_384x: mov 8(%rsp),%rdi mov 16(%rsp),%rsi #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .LSEH_end_sqr_mont_384x: .globl mul_382x .def mul_382x; .scl 2; .type 32; .endef .p2align 5 mul_382x: .byte 0xf3,0x0f,0x1e,0xfa movq %rdi,8(%rsp) movq %rsi,16(%rsp) movq %rsp,%r11 .LSEH_begin_mul_382x: movq %rcx,%rdi movq %rdx,%rsi movq %r8,%rdx movq %r9,%rcx #ifdef __BLST_PORTABLE__ testl $1,__blst_platform_cap(%rip) jnz mul_382x$1 #endif pushq %rbp pushq %rbx pushq %r12 pushq %r13 pushq %r14 pushq %r15 subq $136,%rsp .LSEH_body_mul_382x: leaq 96(%rdi),%rdi movq %rsi,0(%rsp) movq %rdx,8(%rsp) movq %rdi,16(%rsp) movq %rcx,24(%rsp) movq 0(%rsi),%r8 movq 8(%rsi),%r9 movq 16(%rsi),%r10 movq 24(%rsi),%r11 movq 32(%rsi),%r12 movq 40(%rsi),%r13 addq 48(%rsi),%r8 adcq 56(%rsi),%r9 adcq 64(%rsi),%r10 adcq 72(%rsi),%r11 adcq 80(%rsi),%r12 adcq 88(%rsi),%r13 movq %r8,32+0(%rsp) movq %r9,32+8(%rsp) movq %r10,32+16(%rsp) movq %r11,32+24(%rsp) movq %r12,32+32(%rsp) movq %r13,32+40(%rsp) movq 0(%rdx),%r8 movq 8(%rdx),%r9 movq 16(%rdx),%r10 movq 24(%rdx),%r11 movq 32(%rdx),%r12 movq 40(%rdx),%r13 addq 48(%rdx),%r8 adcq 56(%rdx),%r9 adcq 64(%rdx),%r10 adcq 72(%rdx),%r11 adcq 80(%rdx),%r12 adcq 88(%rdx),%r13 movq %r8,32+48(%rsp) movq %r9,32+56(%rsp) movq %r10,32+64(%rsp) movq %r11,32+72(%rsp) movq %r12,32+80(%rsp) movq %r13,32+88(%rsp) leaq 32+0(%rsp),%rsi leaq 32+48(%rsp),%rbx call __mulq_384 movq 0(%rsp),%rsi movq 8(%rsp),%rbx leaq -96(%rdi),%rdi call __mulq_384 leaq 48(%rsi),%rsi leaq 48(%rbx),%rbx leaq 32(%rsp),%rdi call __mulq_384 movq 16(%rsp),%rsi leaq 32(%rsp),%rdx movq 24(%rsp),%rcx movq %rsi,%rdi call __subq_mod_384x384 leaq 0(%rdi),%rsi leaq -96(%rdi),%rdx call __subq_mod_384x384 leaq -96(%rdi),%rsi leaq 32(%rsp),%rdx leaq -96(%rdi),%rdi call __subq_mod_384x384 leaq 136(%rsp),%r8 movq 0(%r8),%r15 movq 8(%r8),%r14 movq 16(%r8),%r13 movq 24(%r8),%r12 movq 32(%r8),%rbx movq 40(%r8),%rbp leaq 48(%r8),%rsp .LSEH_epilogue_mul_382x: mov 8(%rsp),%rdi mov 16(%rsp),%rsi #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .LSEH_end_mul_382x: .globl sqr_382x .def sqr_382x; .scl 2; .type 32; .endef .p2align 5 sqr_382x: .byte 0xf3,0x0f,0x1e,0xfa movq %rdi,8(%rsp) movq %rsi,16(%rsp) movq %rsp,%r11 .LSEH_begin_sqr_382x: movq %rcx,%rdi movq %rdx,%rsi movq %r8,%rdx #ifdef __BLST_PORTABLE__ testl $1,__blst_platform_cap(%rip) jnz sqr_382x$1 #endif pushq %rbp pushq %rbx pushq %r12 pushq %r13 pushq %r14 pushq %r15 pushq %rsi .LSEH_body_sqr_382x: movq %rdx,%rcx movq 0(%rsi),%r14 movq 8(%rsi),%r15 movq 16(%rsi),%rax movq 24(%rsi),%rbx movq 32(%rsi),%rbp movq 40(%rsi),%rdx movq %r14,%r8 addq 48(%rsi),%r14 movq %r15,%r9 adcq 56(%rsi),%r15 movq %rax,%r10 adcq 64(%rsi),%rax movq %rbx,%r11 adcq 72(%rsi),%rbx movq %rbp,%r12 adcq 80(%rsi),%rbp movq %rdx,%r13 adcq 88(%rsi),%rdx movq %r14,0(%rdi) movq %r15,8(%rdi) movq %rax,16(%rdi) movq %rbx,24(%rdi) movq %rbp,32(%rdi) movq %rdx,40(%rdi) leaq 48(%rsi),%rdx leaq 48(%rdi),%rdi call __subq_mod_384_a_is_loaded leaq (%rdi),%rsi leaq -48(%rdi),%rbx leaq -48(%rdi),%rdi call __mulq_384 movq (%rsp),%rsi leaq 48(%rsi),%rbx leaq 96(%rdi),%rdi call __mulq_384 movq 0(%rdi),%r8 movq 8(%rdi),%r9 movq 16(%rdi),%r10 movq 24(%rdi),%r11 movq 32(%rdi),%r12 movq 40(%rdi),%r13 movq 48(%rdi),%r14 movq 56(%rdi),%r15 movq 64(%rdi),%rax movq 72(%rdi),%rbx movq 80(%rdi),%rbp addq %r8,%r8 movq 88(%rdi),%rdx adcq %r9,%r9 movq %r8,0(%rdi) adcq %r10,%r10 movq %r9,8(%rdi) adcq %r11,%r11 movq %r10,16(%rdi) adcq %r12,%r12 movq %r11,24(%rdi) adcq %r13,%r13 movq %r12,32(%rdi) adcq %r14,%r14 movq %r13,40(%rdi) adcq %r15,%r15 movq %r14,48(%rdi) adcq %rax,%rax movq %r15,56(%rdi) adcq %rbx,%rbx movq %rax,64(%rdi) adcq %rbp,%rbp movq %rbx,72(%rdi) adcq %rdx,%rdx movq %rbp,80(%rdi) movq %rdx,88(%rdi) movq 8(%rsp),%r15 movq 16(%rsp),%r14 movq 24(%rsp),%r13 movq 32(%rsp),%r12 movq 40(%rsp),%rbx movq 48(%rsp),%rbp leaq 56(%rsp),%rsp .LSEH_epilogue_sqr_382x: mov 8(%rsp),%rdi mov 16(%rsp),%rsi #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .LSEH_end_sqr_382x: .globl mul_384 .def mul_384; .scl 2; .type 32; .endef .p2align 5 mul_384: .byte 0xf3,0x0f,0x1e,0xfa movq %rdi,8(%rsp) movq %rsi,16(%rsp) movq %rsp,%r11 .LSEH_begin_mul_384: movq %rcx,%rdi movq %rdx,%rsi movq %r8,%rdx #ifdef __BLST_PORTABLE__ testl $1,__blst_platform_cap(%rip) jnz mul_384$1 #endif pushq %rbp pushq %rbx pushq %r12 .LSEH_body_mul_384: movq %rdx,%rbx call __mulq_384 movq 0(%rsp),%r12 movq 8(%rsp),%rbx movq 16(%rsp),%rbp leaq 24(%rsp),%rsp .LSEH_epilogue_mul_384: mov 8(%rsp),%rdi mov 16(%rsp),%rsi #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .LSEH_end_mul_384: .def __mulq_384; .scl 3; .type 32; .endef .p2align 5 __mulq_384: .byte 0xf3,0x0f,0x1e,0xfa movq 0(%rbx),%rax movq %rax,%rbp mulq 0(%rsi) movq %rax,0(%rdi) movq %rbp,%rax movq %rdx,%rcx mulq 8(%rsi) addq %rax,%rcx movq %rbp,%rax adcq $0,%rdx movq %rdx,%r8 mulq 16(%rsi) addq %rax,%r8 movq %rbp,%rax adcq $0,%rdx movq %rdx,%r9 mulq 24(%rsi) addq %rax,%r9 movq %rbp,%rax adcq $0,%rdx movq %rdx,%r10 mulq 32(%rsi) addq %rax,%r10 movq %rbp,%rax adcq $0,%rdx movq %rdx,%r11 mulq 40(%rsi) addq %rax,%r11 movq 8(%rbx),%rax adcq $0,%rdx movq %rdx,%r12 movq %rax,%rbp mulq 0(%rsi) addq %rax,%rcx movq %rbp,%rax adcq $0,%rdx movq %rcx,8(%rdi) movq %rdx,%rcx mulq 8(%rsi) addq %rax,%r8 movq %rbp,%rax adcq $0,%rdx addq %r8,%rcx adcq $0,%rdx movq %rdx,%r8 mulq 16(%rsi) addq %rax,%r9 movq %rbp,%rax adcq $0,%rdx addq %r9,%r8 adcq $0,%rdx movq %rdx,%r9 mulq 24(%rsi) addq %rax,%r10 movq %rbp,%rax adcq $0,%rdx addq %r10,%r9 adcq $0,%rdx movq %rdx,%r10 mulq 32(%rsi) addq %rax,%r11 movq %rbp,%rax adcq $0,%rdx addq %r11,%r10 adcq $0,%rdx movq %rdx,%r11 mulq 40(%rsi) addq %rax,%r12 movq 16(%rbx),%rax adcq $0,%rdx addq %r12,%r11 adcq $0,%rdx movq %rdx,%r12 movq %rax,%rbp mulq 0(%rsi) addq %rax,%rcx movq %rbp,%rax adcq $0,%rdx movq %rcx,16(%rdi) movq %rdx,%rcx mulq 8(%rsi) addq %rax,%r8 movq %rbp,%rax adcq $0,%rdx addq %r8,%rcx adcq $0,%rdx movq %rdx,%r8 mulq 16(%rsi) addq %rax,%r9 movq %rbp,%rax adcq $0,%rdx addq %r9,%r8 adcq $0,%rdx movq %rdx,%r9 mulq 24(%rsi) addq %rax,%r10 movq %rbp,%rax adcq $0,%rdx addq %r10,%r9 adcq $0,%rdx movq %rdx,%r10 mulq 32(%rsi) addq %rax,%r11 movq %rbp,%rax adcq $0,%rdx addq %r11,%r10 adcq $0,%rdx movq %rdx,%r11 mulq 40(%rsi) addq %rax,%r12 movq 24(%rbx),%rax adcq $0,%rdx addq %r12,%r11 adcq $0,%rdx movq %rdx,%r12 movq %rax,%rbp mulq 0(%rsi) addq %rax,%rcx movq %rbp,%rax adcq $0,%rdx movq %rcx,24(%rdi) movq %rdx,%rcx mulq 8(%rsi) addq %rax,%r8 movq %rbp,%rax adcq $0,%rdx addq %r8,%rcx adcq $0,%rdx movq %rdx,%r8 mulq 16(%rsi) addq %rax,%r9 movq %rbp,%rax adcq $0,%rdx addq %r9,%r8 adcq $0,%rdx movq %rdx,%r9 mulq 24(%rsi) addq %rax,%r10 movq %rbp,%rax adcq $0,%rdx addq %r10,%r9 adcq $0,%rdx movq %rdx,%r10 mulq 32(%rsi) addq %rax,%r11 movq %rbp,%rax adcq $0,%rdx addq %r11,%r10 adcq $0,%rdx movq %rdx,%r11 mulq 40(%rsi) addq %rax,%r12 movq 32(%rbx),%rax adcq $0,%rdx addq %r12,%r11 adcq $0,%rdx movq %rdx,%r12 movq %rax,%rbp mulq 0(%rsi) addq %rax,%rcx movq %rbp,%rax adcq $0,%rdx movq %rcx,32(%rdi) movq %rdx,%rcx mulq 8(%rsi) addq %rax,%r8 movq %rbp,%rax adcq $0,%rdx addq %r8,%rcx adcq $0,%rdx movq %rdx,%r8 mulq 16(%rsi) addq %rax,%r9 movq %rbp,%rax adcq $0,%rdx addq %r9,%r8 adcq $0,%rdx movq %rdx,%r9 mulq 24(%rsi) addq %rax,%r10 movq %rbp,%rax adcq $0,%rdx addq %r10,%r9 adcq $0,%rdx movq %rdx,%r10 mulq 32(%rsi) addq %rax,%r11 movq %rbp,%rax adcq $0,%rdx addq %r11,%r10 adcq $0,%rdx movq %rdx,%r11 mulq 40(%rsi) addq %rax,%r12 movq 40(%rbx),%rax adcq $0,%rdx addq %r12,%r11 adcq $0,%rdx movq %rdx,%r12 movq %rax,%rbp mulq 0(%rsi) addq %rax,%rcx movq %rbp,%rax adcq $0,%rdx movq %rcx,40(%rdi) movq %rdx,%rcx mulq 8(%rsi) addq %rax,%r8 movq %rbp,%rax adcq $0,%rdx addq %r8,%rcx adcq $0,%rdx movq %rdx,%r8 mulq 16(%rsi) addq %rax,%r9 movq %rbp,%rax adcq $0,%rdx addq %r9,%r8 adcq $0,%rdx movq %rdx,%r9 mulq 24(%rsi) addq %rax,%r10 movq %rbp,%rax adcq $0,%rdx addq %r10,%r9 adcq $0,%rdx movq %rdx,%r10 mulq 32(%rsi) addq %rax,%r11 movq %rbp,%rax adcq $0,%rdx addq %r11,%r10 adcq $0,%rdx movq %rdx,%r11 mulq 40(%rsi) addq %rax,%r12 movq %rax,%rax adcq $0,%rdx addq %r12,%r11 adcq $0,%rdx movq %rdx,%r12 movq %rcx,48(%rdi) movq %r8,56(%rdi) movq %r9,64(%rdi) movq %r10,72(%rdi) movq %r11,80(%rdi) movq %r12,88(%rdi) #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .globl sqr_384 .def sqr_384; .scl 2; .type 32; .endef .p2align 5 sqr_384: .byte 0xf3,0x0f,0x1e,0xfa movq %rdi,8(%rsp) movq %rsi,16(%rsp) movq %rsp,%r11 .LSEH_begin_sqr_384: movq %rcx,%rdi movq %rdx,%rsi #ifdef __BLST_PORTABLE__ testl $1,__blst_platform_cap(%rip) jnz sqr_384$1 #endif pushq %rbp pushq %rbx pushq %r12 pushq %r13 pushq %r14 pushq %r15 subq $8,%rsp .LSEH_body_sqr_384: call __sqrq_384 movq 8(%rsp),%r15 movq 16(%rsp),%r14 movq 24(%rsp),%r13 movq 32(%rsp),%r12 movq 40(%rsp),%rbx movq 48(%rsp),%rbp leaq 56(%rsp),%rsp .LSEH_epilogue_sqr_384: mov 8(%rsp),%rdi mov 16(%rsp),%rsi #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .LSEH_end_sqr_384: .def __sqrq_384; .scl 3; .type 32; .endef .p2align 5 __sqrq_384: .byte 0xf3,0x0f,0x1e,0xfa movq 0(%rsi),%rax movq 8(%rsi),%r15 movq 16(%rsi),%rcx movq 24(%rsi),%rbx movq %rax,%r14 mulq %r15 movq %rax,%r9 movq %r14,%rax movq 32(%rsi),%rbp movq %rdx,%r10 mulq %rcx addq %rax,%r10 movq %r14,%rax adcq $0,%rdx movq 40(%rsi),%rsi movq %rdx,%r11 mulq %rbx addq %rax,%r11 movq %r14,%rax adcq $0,%rdx movq %rdx,%r12 mulq %rbp addq %rax,%r12 movq %r14,%rax adcq $0,%rdx movq %rdx,%r13 mulq %rsi addq %rax,%r13 movq %r14,%rax adcq $0,%rdx movq %rdx,%r14 mulq %rax xorq %r8,%r8 movq %rax,0(%rdi) movq %r15,%rax addq %r9,%r9 adcq $0,%r8 addq %rdx,%r9 adcq $0,%r8 movq %r9,8(%rdi) mulq %rcx addq %rax,%r11 movq %r15,%rax adcq $0,%rdx movq %rdx,%r9 mulq %rbx addq %rax,%r12 movq %r15,%rax adcq $0,%rdx addq %r9,%r12 adcq $0,%rdx movq %rdx,%r9 mulq %rbp addq %rax,%r13 movq %r15,%rax adcq $0,%rdx addq %r9,%r13 adcq $0,%rdx movq %rdx,%r9 mulq %rsi addq %rax,%r14 movq %r15,%rax adcq $0,%rdx addq %r9,%r14 adcq $0,%rdx movq %rdx,%r15 mulq %rax xorq %r9,%r9 addq %rax,%r8 movq %rcx,%rax addq %r10,%r10 adcq %r11,%r11 adcq $0,%r9 addq %r8,%r10 adcq %rdx,%r11 adcq $0,%r9 movq %r10,16(%rdi) mulq %rbx addq %rax,%r13 movq %rcx,%rax adcq $0,%rdx movq %r11,24(%rdi) movq %rdx,%r8 mulq %rbp addq %rax,%r14 movq %rcx,%rax adcq $0,%rdx addq %r8,%r14 adcq $0,%rdx movq %rdx,%r8 mulq %rsi addq %rax,%r15 movq %rcx,%rax adcq $0,%rdx addq %r8,%r15 adcq $0,%rdx movq %rdx,%rcx mulq %rax xorq %r11,%r11 addq %rax,%r9 movq %rbx,%rax addq %r12,%r12 adcq %r13,%r13 adcq $0,%r11 addq %r9,%r12 adcq %rdx,%r13 adcq $0,%r11 movq %r12,32(%rdi) mulq %rbp addq %rax,%r15 movq %rbx,%rax adcq $0,%rdx movq %r13,40(%rdi) movq %rdx,%r8 mulq %rsi addq %rax,%rcx movq %rbx,%rax adcq $0,%rdx addq %r8,%rcx adcq $0,%rdx movq %rdx,%rbx mulq %rax xorq %r12,%r12 addq %rax,%r11 movq %rbp,%rax addq %r14,%r14 adcq %r15,%r15 adcq $0,%r12 addq %r11,%r14 adcq %rdx,%r15 movq %r14,48(%rdi) adcq $0,%r12 movq %r15,56(%rdi) mulq %rsi addq %rax,%rbx movq %rbp,%rax adcq $0,%rdx movq %rdx,%rbp mulq %rax xorq %r13,%r13 addq %rax,%r12 movq %rsi,%rax addq %rcx,%rcx adcq %rbx,%rbx adcq $0,%r13 addq %r12,%rcx adcq %rdx,%rbx movq %rcx,64(%rdi) adcq $0,%r13 movq %rbx,72(%rdi) mulq %rax addq %r13,%rax addq %rbp,%rbp adcq $0,%rdx addq %rbp,%rax adcq $0,%rdx movq %rax,80(%rdi) movq %rdx,88(%rdi) #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .globl sqr_mont_384 .def sqr_mont_384; .scl 2; .type 32; .endef .p2align 5 sqr_mont_384: .byte 0xf3,0x0f,0x1e,0xfa movq %rdi,8(%rsp) movq %rsi,16(%rsp) movq %rsp,%r11 .LSEH_begin_sqr_mont_384: movq %rcx,%rdi movq %rdx,%rsi movq %r8,%rdx movq %r9,%rcx #ifdef __BLST_PORTABLE__ testl $1,__blst_platform_cap(%rip) jnz sqr_mont_384$1 #endif pushq %rbp pushq %rbx pushq %r12 pushq %r13 pushq %r14 pushq %r15 subq $120,%rsp .LSEH_body_sqr_mont_384: movq %rcx,96(%rsp) movq %rdx,104(%rsp) movq %rdi,112(%rsp) movq %rsp,%rdi call __sqrq_384 leaq 0(%rsp),%rsi movq 96(%rsp),%rcx movq 104(%rsp),%rbx movq 112(%rsp),%rdi call __mulq_by_1_mont_384 call __redq_tail_mont_384 leaq 120(%rsp),%r8 movq 120(%rsp),%r15 movq 8(%r8),%r14 movq 16(%r8),%r13 movq 24(%r8),%r12 movq 32(%r8),%rbx movq 40(%r8),%rbp leaq 48(%r8),%rsp .LSEH_epilogue_sqr_mont_384: mov 8(%rsp),%rdi mov 16(%rsp),%rsi #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .LSEH_end_sqr_mont_384: .globl redc_mont_384 .def redc_mont_384; .scl 2; .type 32; .endef .p2align 5 redc_mont_384: .byte 0xf3,0x0f,0x1e,0xfa movq %rdi,8(%rsp) movq %rsi,16(%rsp) movq %rsp,%r11 .LSEH_begin_redc_mont_384: movq %rcx,%rdi movq %rdx,%rsi movq %r8,%rdx movq %r9,%rcx #ifdef __BLST_PORTABLE__ testl $1,__blst_platform_cap(%rip) jnz redc_mont_384$1 #endif pushq %rbp pushq %rbx pushq %r12 pushq %r13 pushq %r14 pushq %r15 subq $8,%rsp .LSEH_body_redc_mont_384: movq %rdx,%rbx call __mulq_by_1_mont_384 call __redq_tail_mont_384 movq 8(%rsp),%r15 movq 16(%rsp),%r14 movq 24(%rsp),%r13 movq 32(%rsp),%r12 movq 40(%rsp),%rbx movq 48(%rsp),%rbp leaq 56(%rsp),%rsp .LSEH_epilogue_redc_mont_384: mov 8(%rsp),%rdi mov 16(%rsp),%rsi #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .LSEH_end_redc_mont_384: .globl from_mont_384 .def from_mont_384; .scl 2; .type 32; .endef .p2align 5 from_mont_384: .byte 0xf3,0x0f,0x1e,0xfa movq %rdi,8(%rsp) movq %rsi,16(%rsp) movq %rsp,%r11 .LSEH_begin_from_mont_384: movq %rcx,%rdi movq %rdx,%rsi movq %r8,%rdx movq %r9,%rcx #ifdef __BLST_PORTABLE__ testl $1,__blst_platform_cap(%rip) jnz from_mont_384$1 #endif pushq %rbp pushq %rbx pushq %r12 pushq %r13 pushq %r14 pushq %r15 subq $8,%rsp .LSEH_body_from_mont_384: movq %rdx,%rbx call __mulq_by_1_mont_384 movq %r15,%rcx movq %r8,%rdx movq %r9,%rbp subq 0(%rbx),%r14 sbbq 8(%rbx),%r15 movq %r10,%r13 sbbq 16(%rbx),%r8 sbbq 24(%rbx),%r9 sbbq 32(%rbx),%r10 movq %r11,%rsi sbbq 40(%rbx),%r11 cmovcq %rax,%r14 cmovcq %rcx,%r15 cmovcq %rdx,%r8 movq %r14,0(%rdi) cmovcq %rbp,%r9 movq %r15,8(%rdi) cmovcq %r13,%r10 movq %r8,16(%rdi) cmovcq %rsi,%r11 movq %r9,24(%rdi) movq %r10,32(%rdi) movq %r11,40(%rdi) movq 8(%rsp),%r15 movq 16(%rsp),%r14 movq 24(%rsp),%r13 movq 32(%rsp),%r12 movq 40(%rsp),%rbx movq 48(%rsp),%rbp leaq 56(%rsp),%rsp .LSEH_epilogue_from_mont_384: mov 8(%rsp),%rdi mov 16(%rsp),%rsi #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .LSEH_end_from_mont_384: .def __mulq_by_1_mont_384; .scl 3; .type 32; .endef .p2align 5 __mulq_by_1_mont_384: .byte 0xf3,0x0f,0x1e,0xfa movq 0(%rsi),%rax movq 8(%rsi),%r9 movq 16(%rsi),%r10 movq 24(%rsi),%r11 movq 32(%rsi),%r12 movq 40(%rsi),%r13 movq %rax,%r14 imulq %rcx,%rax movq %rax,%r8 mulq 0(%rbx) addq %rax,%r14 movq %r8,%rax adcq %rdx,%r14 mulq 8(%rbx) addq %rax,%r9 movq %r8,%rax adcq $0,%rdx addq %r14,%r9 adcq $0,%rdx movq %rdx,%r14 mulq 16(%rbx) addq %rax,%r10 movq %r8,%rax adcq $0,%rdx addq %r14,%r10 adcq $0,%rdx movq %rdx,%r14 mulq 24(%rbx) addq %rax,%r11 movq %r8,%rax adcq $0,%rdx movq %r9,%r15 imulq %rcx,%r9 addq %r14,%r11 adcq $0,%rdx movq %rdx,%r14 mulq 32(%rbx) addq %rax,%r12 movq %r8,%rax adcq $0,%rdx addq %r14,%r12 adcq $0,%rdx movq %rdx,%r14 mulq 40(%rbx) addq %rax,%r13 movq %r9,%rax adcq $0,%rdx addq %r14,%r13 adcq $0,%rdx movq %rdx,%r14 mulq 0(%rbx) addq %rax,%r15 movq %r9,%rax adcq %rdx,%r15 mulq 8(%rbx) addq %rax,%r10 movq %r9,%rax adcq $0,%rdx addq %r15,%r10 adcq $0,%rdx movq %rdx,%r15 mulq 16(%rbx) addq %rax,%r11 movq %r9,%rax adcq $0,%rdx addq %r15,%r11 adcq $0,%rdx movq %rdx,%r15 mulq 24(%rbx) addq %rax,%r12 movq %r9,%rax adcq $0,%rdx movq %r10,%r8 imulq %rcx,%r10 addq %r15,%r12 adcq $0,%rdx movq %rdx,%r15 mulq 32(%rbx) addq %rax,%r13 movq %r9,%rax adcq $0,%rdx addq %r15,%r13 adcq $0,%rdx movq %rdx,%r15 mulq 40(%rbx) addq %rax,%r14 movq %r10,%rax adcq $0,%rdx addq %r15,%r14 adcq $0,%rdx movq %rdx,%r15 mulq 0(%rbx) addq %rax,%r8 movq %r10,%rax adcq %rdx,%r8 mulq 8(%rbx) addq %rax,%r11 movq %r10,%rax adcq $0,%rdx addq %r8,%r11 adcq $0,%rdx movq %rdx,%r8 mulq 16(%rbx) addq %rax,%r12 movq %r10,%rax adcq $0,%rdx addq %r8,%r12 adcq $0,%rdx movq %rdx,%r8 mulq 24(%rbx) addq %rax,%r13 movq %r10,%rax adcq $0,%rdx movq %r11,%r9 imulq %rcx,%r11 addq %r8,%r13 adcq $0,%rdx movq %rdx,%r8 mulq 32(%rbx) addq %rax,%r14 movq %r10,%rax adcq $0,%rdx addq %r8,%r14 adcq $0,%rdx movq %rdx,%r8 mulq 40(%rbx) addq %rax,%r15 movq %r11,%rax adcq $0,%rdx addq %r8,%r15 adcq $0,%rdx movq %rdx,%r8 mulq 0(%rbx) addq %rax,%r9 movq %r11,%rax adcq %rdx,%r9 mulq 8(%rbx) addq %rax,%r12 movq %r11,%rax adcq $0,%rdx addq %r9,%r12 adcq $0,%rdx movq %rdx,%r9 mulq 16(%rbx) addq %rax,%r13 movq %r11,%rax adcq $0,%rdx addq %r9,%r13 adcq $0,%rdx movq %rdx,%r9 mulq 24(%rbx) addq %rax,%r14 movq %r11,%rax adcq $0,%rdx movq %r12,%r10 imulq %rcx,%r12 addq %r9,%r14 adcq $0,%rdx movq %rdx,%r9 mulq 32(%rbx) addq %rax,%r15 movq %r11,%rax adcq $0,%rdx addq %r9,%r15 adcq $0,%rdx movq %rdx,%r9 mulq 40(%rbx) addq %rax,%r8 movq %r12,%rax adcq $0,%rdx addq %r9,%r8 adcq $0,%rdx movq %rdx,%r9 mulq 0(%rbx) addq %rax,%r10 movq %r12,%rax adcq %rdx,%r10 mulq 8(%rbx) addq %rax,%r13 movq %r12,%rax adcq $0,%rdx addq %r10,%r13 adcq $0,%rdx movq %rdx,%r10 mulq 16(%rbx) addq %rax,%r14 movq %r12,%rax adcq $0,%rdx addq %r10,%r14 adcq $0,%rdx movq %rdx,%r10 mulq 24(%rbx) addq %rax,%r15 movq %r12,%rax adcq $0,%rdx movq %r13,%r11 imulq %rcx,%r13 addq %r10,%r15 adcq $0,%rdx movq %rdx,%r10 mulq 32(%rbx) addq %rax,%r8 movq %r12,%rax adcq $0,%rdx addq %r10,%r8 adcq $0,%rdx movq %rdx,%r10 mulq 40(%rbx) addq %rax,%r9 movq %r13,%rax adcq $0,%rdx addq %r10,%r9 adcq $0,%rdx movq %rdx,%r10 mulq 0(%rbx) addq %rax,%r11 movq %r13,%rax adcq %rdx,%r11 mulq 8(%rbx) addq %rax,%r14 movq %r13,%rax adcq $0,%rdx addq %r11,%r14 adcq $0,%rdx movq %rdx,%r11 mulq 16(%rbx) addq %rax,%r15 movq %r13,%rax adcq $0,%rdx addq %r11,%r15 adcq $0,%rdx movq %rdx,%r11 mulq 24(%rbx) addq %rax,%r8 movq %r13,%rax adcq $0,%rdx addq %r11,%r8 adcq $0,%rdx movq %rdx,%r11 mulq 32(%rbx) addq %rax,%r9 movq %r13,%rax adcq $0,%rdx addq %r11,%r9 adcq $0,%rdx movq %rdx,%r11 mulq 40(%rbx) addq %rax,%r10 movq %r14,%rax adcq $0,%rdx addq %r11,%r10 adcq $0,%rdx movq %rdx,%r11 #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .def __redq_tail_mont_384; .scl 3; .type 32; .endef .p2align 5 __redq_tail_mont_384: .byte 0xf3,0x0f,0x1e,0xfa addq 48(%rsi),%r14 movq %r14,%rax adcq 56(%rsi),%r15 adcq 64(%rsi),%r8 adcq 72(%rsi),%r9 movq %r15,%rcx adcq 80(%rsi),%r10 adcq 88(%rsi),%r11 sbbq %r12,%r12 movq %r8,%rdx movq %r9,%rbp subq 0(%rbx),%r14 sbbq 8(%rbx),%r15 movq %r10,%r13 sbbq 16(%rbx),%r8 sbbq 24(%rbx),%r9 sbbq 32(%rbx),%r10 movq %r11,%rsi sbbq 40(%rbx),%r11 sbbq $0,%r12 cmovcq %rax,%r14 cmovcq %rcx,%r15 cmovcq %rdx,%r8 movq %r14,0(%rdi) cmovcq %rbp,%r9 movq %r15,8(%rdi) cmovcq %r13,%r10 movq %r8,16(%rdi) cmovcq %rsi,%r11 movq %r9,24(%rdi) movq %r10,32(%rdi) movq %r11,40(%rdi) #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .globl sgn0_pty_mont_384 .def sgn0_pty_mont_384; .scl 2; .type 32; .endef .p2align 5 sgn0_pty_mont_384: .byte 0xf3,0x0f,0x1e,0xfa movq %rdi,8(%rsp) movq %rsi,16(%rsp) movq %rsp,%r11 .LSEH_begin_sgn0_pty_mont_384: movq %rcx,%rdi movq %rdx,%rsi movq %r8,%rdx #ifdef __BLST_PORTABLE__ testl $1,__blst_platform_cap(%rip) jnz sgn0_pty_mont_384$1 #endif pushq %rbp pushq %rbx pushq %r12 pushq %r13 pushq %r14 pushq %r15 subq $8,%rsp .LSEH_body_sgn0_pty_mont_384: movq %rsi,%rbx leaq 0(%rdi),%rsi movq %rdx,%rcx call __mulq_by_1_mont_384 xorq %rax,%rax movq %r14,%r13 addq %r14,%r14 adcq %r15,%r15 adcq %r8,%r8 adcq %r9,%r9 adcq %r10,%r10 adcq %r11,%r11 adcq $0,%rax subq 0(%rbx),%r14 sbbq 8(%rbx),%r15 sbbq 16(%rbx),%r8 sbbq 24(%rbx),%r9 sbbq 32(%rbx),%r10 sbbq 40(%rbx),%r11 sbbq $0,%rax notq %rax andq $1,%r13 andq $2,%rax orq %r13,%rax movq 8(%rsp),%r15 movq 16(%rsp),%r14 movq 24(%rsp),%r13 movq 32(%rsp),%r12 movq 40(%rsp),%rbx movq 48(%rsp),%rbp leaq 56(%rsp),%rsp .LSEH_epilogue_sgn0_pty_mont_384: mov 8(%rsp),%rdi mov 16(%rsp),%rsi #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .LSEH_end_sgn0_pty_mont_384: .globl sgn0_pty_mont_384x .def sgn0_pty_mont_384x; .scl 2; .type 32; .endef .p2align 5 sgn0_pty_mont_384x: .byte 0xf3,0x0f,0x1e,0xfa movq %rdi,8(%rsp) movq %rsi,16(%rsp) movq %rsp,%r11 .LSEH_begin_sgn0_pty_mont_384x: movq %rcx,%rdi movq %rdx,%rsi movq %r8,%rdx #ifdef __BLST_PORTABLE__ testl $1,__blst_platform_cap(%rip) jnz sgn0_pty_mont_384x$1 #endif pushq %rbp pushq %rbx pushq %r12 pushq %r13 pushq %r14 pushq %r15 subq $8,%rsp .LSEH_body_sgn0_pty_mont_384x: movq %rsi,%rbx leaq 48(%rdi),%rsi movq %rdx,%rcx call __mulq_by_1_mont_384 movq %r14,%r12 orq %r15,%r14 orq %r8,%r14 orq %r9,%r14 orq %r10,%r14 orq %r11,%r14 leaq 0(%rdi),%rsi xorq %rdi,%rdi movq %r12,%r13 addq %r12,%r12 adcq %r15,%r15 adcq %r8,%r8 adcq %r9,%r9 adcq %r10,%r10 adcq %r11,%r11 adcq $0,%rdi subq 0(%rbx),%r12 sbbq 8(%rbx),%r15 sbbq 16(%rbx),%r8 sbbq 24(%rbx),%r9 sbbq 32(%rbx),%r10 sbbq 40(%rbx),%r11 sbbq $0,%rdi movq %r14,0(%rsp) notq %rdi andq $1,%r13 andq $2,%rdi orq %r13,%rdi call __mulq_by_1_mont_384 movq %r14,%r12 orq %r15,%r14 orq %r8,%r14 orq %r9,%r14 orq %r10,%r14 orq %r11,%r14 xorq %rax,%rax movq %r12,%r13 addq %r12,%r12 adcq %r15,%r15 adcq %r8,%r8 adcq %r9,%r9 adcq %r10,%r10 adcq %r11,%r11 adcq $0,%rax subq 0(%rbx),%r12 sbbq 8(%rbx),%r15 sbbq 16(%rbx),%r8 sbbq 24(%rbx),%r9 sbbq 32(%rbx),%r10 sbbq 40(%rbx),%r11 sbbq $0,%rax movq 0(%rsp),%r12 notq %rax testq %r14,%r14 cmovzq %rdi,%r13 testq %r12,%r12 cmovnzq %rdi,%rax andq $1,%r13 andq $2,%rax orq %r13,%rax movq 8(%rsp),%r15 movq 16(%rsp),%r14 movq 24(%rsp),%r13 movq 32(%rsp),%r12 movq 40(%rsp),%rbx movq 48(%rsp),%rbp leaq 56(%rsp),%rsp .LSEH_epilogue_sgn0_pty_mont_384x: mov 8(%rsp),%rdi mov 16(%rsp),%rsi #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .LSEH_end_sgn0_pty_mont_384x: .globl mul_mont_384 .def mul_mont_384; .scl 2; .type 32; .endef .p2align 5 mul_mont_384: .byte 0xf3,0x0f,0x1e,0xfa movq %rdi,8(%rsp) movq %rsi,16(%rsp) movq %rsp,%r11 .LSEH_begin_mul_mont_384: movq %rcx,%rdi movq %rdx,%rsi movq %r8,%rdx movq %r9,%rcx movq 40(%rsp),%r8 #ifdef __BLST_PORTABLE__ testl $1,__blst_platform_cap(%rip) jnz mul_mont_384$1 #endif pushq %rbp pushq %rbx pushq %r12 pushq %r13 pushq %r14 pushq %r15 subq $24,%rsp .LSEH_body_mul_mont_384: movq 0(%rdx),%rax movq 0(%rsi),%r14 movq 8(%rsi),%r15 movq 16(%rsi),%r12 movq 24(%rsi),%r13 movq %rdx,%rbx movq %r8,0(%rsp) movq %rdi,8(%rsp) call __mulq_mont_384 movq 24(%rsp),%r15 movq 32(%rsp),%r14 movq 40(%rsp),%r13 movq 48(%rsp),%r12 movq 56(%rsp),%rbx movq 64(%rsp),%rbp leaq 72(%rsp),%rsp .LSEH_epilogue_mul_mont_384: mov 8(%rsp),%rdi mov 16(%rsp),%rsi #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .LSEH_end_mul_mont_384: .def __mulq_mont_384; .scl 3; .type 32; .endef .p2align 5 __mulq_mont_384: .byte 0xf3,0x0f,0x1e,0xfa movq %rax,%rdi mulq %r14 movq %rax,%r8 movq %rdi,%rax movq %rdx,%r9 mulq %r15 addq %rax,%r9 movq %rdi,%rax adcq $0,%rdx movq %rdx,%r10 mulq %r12 addq %rax,%r10 movq %rdi,%rax adcq $0,%rdx movq %rdx,%r11 movq %r8,%rbp imulq 8(%rsp),%r8 mulq %r13 addq %rax,%r11 movq %rdi,%rax adcq $0,%rdx movq %rdx,%r12 mulq 32(%rsi) addq %rax,%r12 movq %rdi,%rax adcq $0,%rdx movq %rdx,%r13 mulq 40(%rsi) addq %rax,%r13 movq %r8,%rax adcq $0,%rdx xorq %r15,%r15 movq %rdx,%r14 mulq 0(%rcx) addq %rax,%rbp movq %r8,%rax adcq %rdx,%rbp mulq 8(%rcx) addq %rax,%r9 movq %r8,%rax adcq $0,%rdx addq %rbp,%r9 adcq $0,%rdx movq %rdx,%rbp mulq 16(%rcx) addq %rax,%r10 movq %r8,%rax adcq $0,%rdx addq %rbp,%r10 adcq $0,%rdx movq %rdx,%rbp mulq 24(%rcx) addq %rbp,%r11 adcq $0,%rdx addq %rax,%r11 movq %r8,%rax adcq $0,%rdx movq %rdx,%rbp mulq 32(%rcx) addq %rax,%r12 movq %r8,%rax adcq $0,%rdx addq %rbp,%r12 adcq $0,%rdx movq %rdx,%rbp mulq 40(%rcx) addq %rax,%r13 movq 8(%rbx),%rax adcq $0,%rdx addq %rbp,%r13 adcq %rdx,%r14 adcq $0,%r15 movq %rax,%rdi mulq 0(%rsi) addq %rax,%r9 movq %rdi,%rax adcq $0,%rdx movq %rdx,%r8 mulq 8(%rsi) addq %rax,%r10 movq %rdi,%rax adcq $0,%rdx addq %r8,%r10 adcq $0,%rdx movq %rdx,%r8 mulq 16(%rsi) addq %rax,%r11 movq %rdi,%rax adcq $0,%rdx addq %r8,%r11 adcq $0,%rdx movq %rdx,%r8 movq %r9,%rbp imulq 8(%rsp),%r9 mulq 24(%rsi) addq %rax,%r12 movq %rdi,%rax adcq $0,%rdx addq %r8,%r12 adcq $0,%rdx movq %rdx,%r8 mulq 32(%rsi) addq %rax,%r13 movq %rdi,%rax adcq $0,%rdx addq %r8,%r13 adcq $0,%rdx movq %rdx,%r8 mulq 40(%rsi) addq %r8,%r14 adcq $0,%rdx xorq %r8,%r8 addq %rax,%r14 movq %r9,%rax adcq %rdx,%r15 adcq $0,%r8 mulq 0(%rcx) addq %rax,%rbp movq %r9,%rax adcq %rdx,%rbp mulq 8(%rcx) addq %rax,%r10 movq %r9,%rax adcq $0,%rdx addq %rbp,%r10 adcq $0,%rdx movq %rdx,%rbp mulq 16(%rcx) addq %rax,%r11 movq %r9,%rax adcq $0,%rdx addq %rbp,%r11 adcq $0,%rdx movq %rdx,%rbp mulq 24(%rcx) addq %rbp,%r12 adcq $0,%rdx addq %rax,%r12 movq %r9,%rax adcq $0,%rdx movq %rdx,%rbp mulq 32(%rcx) addq %rax,%r13 movq %r9,%rax adcq $0,%rdx addq %rbp,%r13 adcq $0,%rdx movq %rdx,%rbp mulq 40(%rcx) addq %rax,%r14 movq 16(%rbx),%rax adcq $0,%rdx addq %rbp,%r14 adcq %rdx,%r15 adcq $0,%r8 movq %rax,%rdi mulq 0(%rsi) addq %rax,%r10 movq %rdi,%rax adcq $0,%rdx movq %rdx,%r9 mulq 8(%rsi) addq %rax,%r11 movq %rdi,%rax adcq $0,%rdx addq %r9,%r11 adcq $0,%rdx movq %rdx,%r9 mulq 16(%rsi) addq %rax,%r12 movq %rdi,%rax adcq $0,%rdx addq %r9,%r12 adcq $0,%rdx movq %rdx,%r9 movq %r10,%rbp imulq 8(%rsp),%r10 mulq 24(%rsi) addq %rax,%r13 movq %rdi,%rax adcq $0,%rdx addq %r9,%r13 adcq $0,%rdx movq %rdx,%r9 mulq 32(%rsi) addq %rax,%r14 movq %rdi,%rax adcq $0,%rdx addq %r9,%r14 adcq $0,%rdx movq %rdx,%r9 mulq 40(%rsi) addq %r9,%r15 adcq $0,%rdx xorq %r9,%r9 addq %rax,%r15 movq %r10,%rax adcq %rdx,%r8 adcq $0,%r9 mulq 0(%rcx) addq %rax,%rbp movq %r10,%rax adcq %rdx,%rbp mulq 8(%rcx) addq %rax,%r11 movq %r10,%rax adcq $0,%rdx addq %rbp,%r11 adcq $0,%rdx movq %rdx,%rbp mulq 16(%rcx) addq %rax,%r12 movq %r10,%rax adcq $0,%rdx addq %rbp,%r12 adcq $0,%rdx movq %rdx,%rbp mulq 24(%rcx) addq %rbp,%r13 adcq $0,%rdx addq %rax,%r13 movq %r10,%rax adcq $0,%rdx movq %rdx,%rbp mulq 32(%rcx) addq %rax,%r14 movq %r10,%rax adcq $0,%rdx addq %rbp,%r14 adcq $0,%rdx movq %rdx,%rbp mulq 40(%rcx) addq %rax,%r15 movq 24(%rbx),%rax adcq $0,%rdx addq %rbp,%r15 adcq %rdx,%r8 adcq $0,%r9 movq %rax,%rdi mulq 0(%rsi) addq %rax,%r11 movq %rdi,%rax adcq $0,%rdx movq %rdx,%r10 mulq 8(%rsi) addq %rax,%r12 movq %rdi,%rax adcq $0,%rdx addq %r10,%r12 adcq $0,%rdx movq %rdx,%r10 mulq 16(%rsi) addq %rax,%r13 movq %rdi,%rax adcq $0,%rdx addq %r10,%r13 adcq $0,%rdx movq %rdx,%r10 movq %r11,%rbp imulq 8(%rsp),%r11 mulq 24(%rsi) addq %rax,%r14 movq %rdi,%rax adcq $0,%rdx addq %r10,%r14 adcq $0,%rdx movq %rdx,%r10 mulq 32(%rsi) addq %rax,%r15 movq %rdi,%rax adcq $0,%rdx addq %r10,%r15 adcq $0,%rdx movq %rdx,%r10 mulq 40(%rsi) addq %r10,%r8 adcq $0,%rdx xorq %r10,%r10 addq %rax,%r8 movq %r11,%rax adcq %rdx,%r9 adcq $0,%r10 mulq 0(%rcx) addq %rax,%rbp movq %r11,%rax adcq %rdx,%rbp mulq 8(%rcx) addq %rax,%r12 movq %r11,%rax adcq $0,%rdx addq %rbp,%r12 adcq $0,%rdx movq %rdx,%rbp mulq 16(%rcx) addq %rax,%r13 movq %r11,%rax adcq $0,%rdx addq %rbp,%r13 adcq $0,%rdx movq %rdx,%rbp mulq 24(%rcx) addq %rbp,%r14 adcq $0,%rdx addq %rax,%r14 movq %r11,%rax adcq $0,%rdx movq %rdx,%rbp mulq 32(%rcx) addq %rax,%r15 movq %r11,%rax adcq $0,%rdx addq %rbp,%r15 adcq $0,%rdx movq %rdx,%rbp mulq 40(%rcx) addq %rax,%r8 movq 32(%rbx),%rax adcq $0,%rdx addq %rbp,%r8 adcq %rdx,%r9 adcq $0,%r10 movq %rax,%rdi mulq 0(%rsi) addq %rax,%r12 movq %rdi,%rax adcq $0,%rdx movq %rdx,%r11 mulq 8(%rsi) addq %rax,%r13 movq %rdi,%rax adcq $0,%rdx addq %r11,%r13 adcq $0,%rdx movq %rdx,%r11 mulq 16(%rsi) addq %rax,%r14 movq %rdi,%rax adcq $0,%rdx addq %r11,%r14 adcq $0,%rdx movq %rdx,%r11 movq %r12,%rbp imulq 8(%rsp),%r12 mulq 24(%rsi) addq %rax,%r15 movq %rdi,%rax adcq $0,%rdx addq %r11,%r15 adcq $0,%rdx movq %rdx,%r11 mulq 32(%rsi) addq %rax,%r8 movq %rdi,%rax adcq $0,%rdx addq %r11,%r8 adcq $0,%rdx movq %rdx,%r11 mulq 40(%rsi) addq %r11,%r9 adcq $0,%rdx xorq %r11,%r11 addq %rax,%r9 movq %r12,%rax adcq %rdx,%r10 adcq $0,%r11 mulq 0(%rcx) addq %rax,%rbp movq %r12,%rax adcq %rdx,%rbp mulq 8(%rcx) addq %rax,%r13 movq %r12,%rax adcq $0,%rdx addq %rbp,%r13 adcq $0,%rdx movq %rdx,%rbp mulq 16(%rcx) addq %rax,%r14 movq %r12,%rax adcq $0,%rdx addq %rbp,%r14 adcq $0,%rdx movq %rdx,%rbp mulq 24(%rcx) addq %rbp,%r15 adcq $0,%rdx addq %rax,%r15 movq %r12,%rax adcq $0,%rdx movq %rdx,%rbp mulq 32(%rcx) addq %rax,%r8 movq %r12,%rax adcq $0,%rdx addq %rbp,%r8 adcq $0,%rdx movq %rdx,%rbp mulq 40(%rcx) addq %rax,%r9 movq 40(%rbx),%rax adcq $0,%rdx addq %rbp,%r9 adcq %rdx,%r10 adcq $0,%r11 movq %rax,%rdi mulq 0(%rsi) addq %rax,%r13 movq %rdi,%rax adcq $0,%rdx movq %rdx,%r12 mulq 8(%rsi) addq %rax,%r14 movq %rdi,%rax adcq $0,%rdx addq %r12,%r14 adcq $0,%rdx movq %rdx,%r12 mulq 16(%rsi) addq %rax,%r15 movq %rdi,%rax adcq $0,%rdx addq %r12,%r15 adcq $0,%rdx movq %rdx,%r12 movq %r13,%rbp imulq 8(%rsp),%r13 mulq 24(%rsi) addq %rax,%r8 movq %rdi,%rax adcq $0,%rdx addq %r12,%r8 adcq $0,%rdx movq %rdx,%r12 mulq 32(%rsi) addq %rax,%r9 movq %rdi,%rax adcq $0,%rdx addq %r12,%r9 adcq $0,%rdx movq %rdx,%r12 mulq 40(%rsi) addq %r12,%r10 adcq $0,%rdx xorq %r12,%r12 addq %rax,%r10 movq %r13,%rax adcq %rdx,%r11 adcq $0,%r12 mulq 0(%rcx) addq %rax,%rbp movq %r13,%rax adcq %rdx,%rbp mulq 8(%rcx) addq %rax,%r14 movq %r13,%rax adcq $0,%rdx addq %rbp,%r14 adcq $0,%rdx movq %rdx,%rbp mulq 16(%rcx) addq %rax,%r15 movq %r13,%rax adcq $0,%rdx addq %rbp,%r15 adcq $0,%rdx movq %rdx,%rbp mulq 24(%rcx) addq %rbp,%r8 adcq $0,%rdx addq %rax,%r8 movq %r13,%rax adcq $0,%rdx movq %rdx,%rbp mulq 32(%rcx) addq %rax,%r9 movq %r13,%rax adcq $0,%rdx addq %rbp,%r9 adcq $0,%rdx movq %rdx,%rbp mulq 40(%rcx) addq %rax,%r10 movq %r14,%rax adcq $0,%rdx addq %rbp,%r10 adcq %rdx,%r11 adcq $0,%r12 movq 16(%rsp),%rdi subq 0(%rcx),%r14 movq %r15,%rdx sbbq 8(%rcx),%r15 movq %r8,%rbx sbbq 16(%rcx),%r8 movq %r9,%rsi sbbq 24(%rcx),%r9 movq %r10,%rbp sbbq 32(%rcx),%r10 movq %r11,%r13 sbbq 40(%rcx),%r11 sbbq $0,%r12 cmovcq %rax,%r14 cmovcq %rdx,%r15 cmovcq %rbx,%r8 movq %r14,0(%rdi) cmovcq %rsi,%r9 movq %r15,8(%rdi) cmovcq %rbp,%r10 movq %r8,16(%rdi) cmovcq %r13,%r11 movq %r9,24(%rdi) movq %r10,32(%rdi) movq %r11,40(%rdi) #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .globl sqr_n_mul_mont_384 .def sqr_n_mul_mont_384; .scl 2; .type 32; .endef .p2align 5 sqr_n_mul_mont_384: .byte 0xf3,0x0f,0x1e,0xfa movq %rdi,8(%rsp) movq %rsi,16(%rsp) movq %rsp,%r11 .LSEH_begin_sqr_n_mul_mont_384: movq %rcx,%rdi movq %rdx,%rsi movq %r8,%rdx movq %r9,%rcx movq 40(%rsp),%r8 movq 48(%rsp),%r9 #ifdef __BLST_PORTABLE__ testl $1,__blst_platform_cap(%rip) jnz sqr_n_mul_mont_384$1 #endif pushq %rbp pushq %rbx pushq %r12 pushq %r13 pushq %r14 pushq %r15 subq $136,%rsp .LSEH_body_sqr_n_mul_mont_384: movq %r8,0(%rsp) movq %rdi,8(%rsp) movq %rcx,16(%rsp) leaq 32(%rsp),%rdi movq %r9,24(%rsp) movq (%r9),%xmm2 .Loop_sqr_384: movd %edx,%xmm1 call __sqrq_384 leaq 0(%rdi),%rsi movq 0(%rsp),%rcx movq 16(%rsp),%rbx call __mulq_by_1_mont_384 call __redq_tail_mont_384 movd %xmm1,%edx leaq 0(%rdi),%rsi decl %edx jnz .Loop_sqr_384 .byte 102,72,15,126,208 movq %rbx,%rcx movq 24(%rsp),%rbx movq %r8,%r12 movq %r9,%r13 call __mulq_mont_384 leaq 136(%rsp),%r8 movq 136(%rsp),%r15 movq 8(%r8),%r14 movq 16(%r8),%r13 movq 24(%r8),%r12 movq 32(%r8),%rbx movq 40(%r8),%rbp leaq 48(%r8),%rsp .LSEH_epilogue_sqr_n_mul_mont_384: mov 8(%rsp),%rdi mov 16(%rsp),%rsi #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .LSEH_end_sqr_n_mul_mont_384: .globl sqr_n_mul_mont_383 .def sqr_n_mul_mont_383; .scl 2; .type 32; .endef .p2align 5 sqr_n_mul_mont_383: .byte 0xf3,0x0f,0x1e,0xfa movq %rdi,8(%rsp) movq %rsi,16(%rsp) movq %rsp,%r11 .LSEH_begin_sqr_n_mul_mont_383: movq %rcx,%rdi movq %rdx,%rsi movq %r8,%rdx movq %r9,%rcx movq 40(%rsp),%r8 movq 48(%rsp),%r9 #ifdef __BLST_PORTABLE__ testl $1,__blst_platform_cap(%rip) jnz sqr_n_mul_mont_383$1 #endif pushq %rbp pushq %rbx pushq %r12 pushq %r13 pushq %r14 pushq %r15 subq $136,%rsp .LSEH_body_sqr_n_mul_mont_383: movq %r8,0(%rsp) movq %rdi,8(%rsp) movq %rcx,16(%rsp) leaq 32(%rsp),%rdi movq %r9,24(%rsp) movq (%r9),%xmm2 .Loop_sqr_383: movd %edx,%xmm1 call __sqrq_384 leaq 0(%rdi),%rsi movq 0(%rsp),%rcx movq 16(%rsp),%rbx call __mulq_by_1_mont_384 movd %xmm1,%edx addq 48(%rsi),%r14 adcq 56(%rsi),%r15 adcq 64(%rsi),%r8 adcq 72(%rsi),%r9 adcq 80(%rsi),%r10 adcq 88(%rsi),%r11 leaq 0(%rdi),%rsi movq %r14,0(%rdi) movq %r15,8(%rdi) movq %r8,16(%rdi) movq %r9,24(%rdi) movq %r10,32(%rdi) movq %r11,40(%rdi) decl %edx jnz .Loop_sqr_383 .byte 102,72,15,126,208 movq %rbx,%rcx movq 24(%rsp),%rbx movq %r8,%r12 movq %r9,%r13 call __mulq_mont_384 leaq 136(%rsp),%r8 movq 136(%rsp),%r15 movq 8(%r8),%r14 movq 16(%r8),%r13 movq 24(%r8),%r12 movq 32(%r8),%rbx movq 40(%r8),%rbp leaq 48(%r8),%rsp .LSEH_epilogue_sqr_n_mul_mont_383: mov 8(%rsp),%rdi mov 16(%rsp),%rsi #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .LSEH_end_sqr_n_mul_mont_383: .def __mulq_mont_383_nonred; .scl 3; .type 32; .endef .p2align 5 __mulq_mont_383_nonred: .byte 0xf3,0x0f,0x1e,0xfa movq %rax,%rbp mulq %r14 movq %rax,%r8 movq %rbp,%rax movq %rdx,%r9 mulq %r15 addq %rax,%r9 movq %rbp,%rax adcq $0,%rdx movq %rdx,%r10 mulq %r12 addq %rax,%r10 movq %rbp,%rax adcq $0,%rdx movq %rdx,%r11 movq %r8,%r15 imulq 8(%rsp),%r8 mulq %r13 addq %rax,%r11 movq %rbp,%rax adcq $0,%rdx movq %rdx,%r12 mulq 32(%rsi) addq %rax,%r12 movq %rbp,%rax adcq $0,%rdx movq %rdx,%r13 mulq 40(%rsi) addq %rax,%r13 movq %r8,%rax adcq $0,%rdx movq %rdx,%r14 mulq 0(%rcx) addq %rax,%r15 movq %r8,%rax adcq %rdx,%r15 mulq 8(%rcx) addq %rax,%r9 movq %r8,%rax adcq $0,%rdx addq %r15,%r9 adcq $0,%rdx movq %rdx,%r15 mulq 16(%rcx) addq %rax,%r10 movq %r8,%rax adcq $0,%rdx addq %r15,%r10 adcq $0,%rdx movq %rdx,%r15 mulq 24(%rcx) addq %r15,%r11 adcq $0,%rdx addq %rax,%r11 movq %r8,%rax adcq $0,%rdx movq %rdx,%r15 mulq 32(%rcx) addq %rax,%r12 movq %r8,%rax adcq $0,%rdx addq %r15,%r12 adcq $0,%rdx movq %rdx,%r15 mulq 40(%rcx) addq %rax,%r13 movq 8(%rbx),%rax adcq $0,%rdx addq %r15,%r13 adcq %rdx,%r14 movq %rax,%rbp mulq 0(%rsi) addq %rax,%r9 movq %rbp,%rax adcq $0,%rdx movq %rdx,%r15 mulq 8(%rsi) addq %rax,%r10 movq %rbp,%rax adcq $0,%rdx addq %r15,%r10 adcq $0,%rdx movq %rdx,%r15 mulq 16(%rsi) addq %rax,%r11 movq %rbp,%rax adcq $0,%rdx addq %r15,%r11 adcq $0,%rdx movq %rdx,%r15 movq %r9,%r8 imulq 8(%rsp),%r9 mulq 24(%rsi) addq %rax,%r12 movq %rbp,%rax adcq $0,%rdx addq %r15,%r12 adcq $0,%rdx movq %rdx,%r15 mulq 32(%rsi) addq %rax,%r13 movq %rbp,%rax adcq $0,%rdx addq %r15,%r13 adcq $0,%rdx movq %rdx,%r15 mulq 40(%rsi) addq %r15,%r14 adcq $0,%rdx addq %rax,%r14 movq %r9,%rax adcq $0,%rdx movq %rdx,%r15 mulq 0(%rcx) addq %rax,%r8 movq %r9,%rax adcq %rdx,%r8 mulq 8(%rcx) addq %rax,%r10 movq %r9,%rax adcq $0,%rdx addq %r8,%r10 adcq $0,%rdx movq %rdx,%r8 mulq 16(%rcx) addq %rax,%r11 movq %r9,%rax adcq $0,%rdx addq %r8,%r11 adcq $0,%rdx movq %rdx,%r8 mulq 24(%rcx) addq %r8,%r12 adcq $0,%rdx addq %rax,%r12 movq %r9,%rax adcq $0,%rdx movq %rdx,%r8 mulq 32(%rcx) addq %rax,%r13 movq %r9,%rax adcq $0,%rdx addq %r8,%r13 adcq $0,%rdx movq %rdx,%r8 mulq 40(%rcx) addq %rax,%r14 movq 16(%rbx),%rax adcq $0,%rdx addq %r8,%r14 adcq %rdx,%r15 movq %rax,%rbp mulq 0(%rsi) addq %rax,%r10 movq %rbp,%rax adcq $0,%rdx movq %rdx,%r8 mulq 8(%rsi) addq %rax,%r11 movq %rbp,%rax adcq $0,%rdx addq %r8,%r11 adcq $0,%rdx movq %rdx,%r8 mulq 16(%rsi) addq %rax,%r12 movq %rbp,%rax adcq $0,%rdx addq %r8,%r12 adcq $0,%rdx movq %rdx,%r8 movq %r10,%r9 imulq 8(%rsp),%r10 mulq 24(%rsi) addq %rax,%r13 movq %rbp,%rax adcq $0,%rdx addq %r8,%r13 adcq $0,%rdx movq %rdx,%r8 mulq 32(%rsi) addq %rax,%r14 movq %rbp,%rax adcq $0,%rdx addq %r8,%r14 adcq $0,%rdx movq %rdx,%r8 mulq 40(%rsi) addq %r8,%r15 adcq $0,%rdx addq %rax,%r15 movq %r10,%rax adcq $0,%rdx movq %rdx,%r8 mulq 0(%rcx) addq %rax,%r9 movq %r10,%rax adcq %rdx,%r9 mulq 8(%rcx) addq %rax,%r11 movq %r10,%rax adcq $0,%rdx addq %r9,%r11 adcq $0,%rdx movq %rdx,%r9 mulq 16(%rcx) addq %rax,%r12 movq %r10,%rax adcq $0,%rdx addq %r9,%r12 adcq $0,%rdx movq %rdx,%r9 mulq 24(%rcx) addq %r9,%r13 adcq $0,%rdx addq %rax,%r13 movq %r10,%rax adcq $0,%rdx movq %rdx,%r9 mulq 32(%rcx) addq %rax,%r14 movq %r10,%rax adcq $0,%rdx addq %r9,%r14 adcq $0,%rdx movq %rdx,%r9 mulq 40(%rcx) addq %rax,%r15 movq 24(%rbx),%rax adcq $0,%rdx addq %r9,%r15 adcq %rdx,%r8 movq %rax,%rbp mulq 0(%rsi) addq %rax,%r11 movq %rbp,%rax adcq $0,%rdx movq %rdx,%r9 mulq 8(%rsi) addq %rax,%r12 movq %rbp,%rax adcq $0,%rdx addq %r9,%r12 adcq $0,%rdx movq %rdx,%r9 mulq 16(%rsi) addq %rax,%r13 movq %rbp,%rax adcq $0,%rdx addq %r9,%r13 adcq $0,%rdx movq %rdx,%r9 movq %r11,%r10 imulq 8(%rsp),%r11 mulq 24(%rsi) addq %rax,%r14 movq %rbp,%rax adcq $0,%rdx addq %r9,%r14 adcq $0,%rdx movq %rdx,%r9 mulq 32(%rsi) addq %rax,%r15 movq %rbp,%rax adcq $0,%rdx addq %r9,%r15 adcq $0,%rdx movq %rdx,%r9 mulq 40(%rsi) addq %r9,%r8 adcq $0,%rdx addq %rax,%r8 movq %r11,%rax adcq $0,%rdx movq %rdx,%r9 mulq 0(%rcx) addq %rax,%r10 movq %r11,%rax adcq %rdx,%r10 mulq 8(%rcx) addq %rax,%r12 movq %r11,%rax adcq $0,%rdx addq %r10,%r12 adcq $0,%rdx movq %rdx,%r10 mulq 16(%rcx) addq %rax,%r13 movq %r11,%rax adcq $0,%rdx addq %r10,%r13 adcq $0,%rdx movq %rdx,%r10 mulq 24(%rcx) addq %r10,%r14 adcq $0,%rdx addq %rax,%r14 movq %r11,%rax adcq $0,%rdx movq %rdx,%r10 mulq 32(%rcx) addq %rax,%r15 movq %r11,%rax adcq $0,%rdx addq %r10,%r15 adcq $0,%rdx movq %rdx,%r10 mulq 40(%rcx) addq %rax,%r8 movq 32(%rbx),%rax adcq $0,%rdx addq %r10,%r8 adcq %rdx,%r9 movq %rax,%rbp mulq 0(%rsi) addq %rax,%r12 movq %rbp,%rax adcq $0,%rdx movq %rdx,%r10 mulq 8(%rsi) addq %rax,%r13 movq %rbp,%rax adcq $0,%rdx addq %r10,%r13 adcq $0,%rdx movq %rdx,%r10 mulq 16(%rsi) addq %rax,%r14 movq %rbp,%rax adcq $0,%rdx addq %r10,%r14 adcq $0,%rdx movq %rdx,%r10 movq %r12,%r11 imulq 8(%rsp),%r12 mulq 24(%rsi) addq %rax,%r15 movq %rbp,%rax adcq $0,%rdx addq %r10,%r15 adcq $0,%rdx movq %rdx,%r10 mulq 32(%rsi) addq %rax,%r8 movq %rbp,%rax adcq $0,%rdx addq %r10,%r8 adcq $0,%rdx movq %rdx,%r10 mulq 40(%rsi) addq %r10,%r9 adcq $0,%rdx addq %rax,%r9 movq %r12,%rax adcq $0,%rdx movq %rdx,%r10 mulq 0(%rcx) addq %rax,%r11 movq %r12,%rax adcq %rdx,%r11 mulq 8(%rcx) addq %rax,%r13 movq %r12,%rax adcq $0,%rdx addq %r11,%r13 adcq $0,%rdx movq %rdx,%r11 mulq 16(%rcx) addq %rax,%r14 movq %r12,%rax adcq $0,%rdx addq %r11,%r14 adcq $0,%rdx movq %rdx,%r11 mulq 24(%rcx) addq %r11,%r15 adcq $0,%rdx addq %rax,%r15 movq %r12,%rax adcq $0,%rdx movq %rdx,%r11 mulq 32(%rcx) addq %rax,%r8 movq %r12,%rax adcq $0,%rdx addq %r11,%r8 adcq $0,%rdx movq %rdx,%r11 mulq 40(%rcx) addq %rax,%r9 movq 40(%rbx),%rax adcq $0,%rdx addq %r11,%r9 adcq %rdx,%r10 movq %rax,%rbp mulq 0(%rsi) addq %rax,%r13 movq %rbp,%rax adcq $0,%rdx movq %rdx,%r11 mulq 8(%rsi) addq %rax,%r14 movq %rbp,%rax adcq $0,%rdx addq %r11,%r14 adcq $0,%rdx movq %rdx,%r11 mulq 16(%rsi) addq %rax,%r15 movq %rbp,%rax adcq $0,%rdx addq %r11,%r15 adcq $0,%rdx movq %rdx,%r11 movq %r13,%r12 imulq 8(%rsp),%r13 mulq 24(%rsi) addq %rax,%r8 movq %rbp,%rax adcq $0,%rdx addq %r11,%r8 adcq $0,%rdx movq %rdx,%r11 mulq 32(%rsi) addq %rax,%r9 movq %rbp,%rax adcq $0,%rdx addq %r11,%r9 adcq $0,%rdx movq %rdx,%r11 mulq 40(%rsi) addq %r11,%r10 adcq $0,%rdx addq %rax,%r10 movq %r13,%rax adcq $0,%rdx movq %rdx,%r11 mulq 0(%rcx) addq %rax,%r12 movq %r13,%rax adcq %rdx,%r12 mulq 8(%rcx) addq %rax,%r14 movq %r13,%rax adcq $0,%rdx addq %r12,%r14 adcq $0,%rdx movq %rdx,%r12 mulq 16(%rcx) addq %rax,%r15 movq %r13,%rax adcq $0,%rdx addq %r12,%r15 adcq $0,%rdx movq %rdx,%r12 mulq 24(%rcx) addq %r12,%r8 adcq $0,%rdx addq %rax,%r8 movq %r13,%rax adcq $0,%rdx movq %rdx,%r12 mulq 32(%rcx) addq %rax,%r9 movq %r13,%rax adcq $0,%rdx addq %r12,%r9 adcq $0,%rdx movq %rdx,%r12 mulq 40(%rcx) addq %rax,%r10 movq %r14,%rax adcq $0,%rdx addq %r12,%r10 adcq %rdx,%r11 #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .globl sqr_mont_382x .def sqr_mont_382x; .scl 2; .type 32; .endef .p2align 5 sqr_mont_382x: .byte 0xf3,0x0f,0x1e,0xfa movq %rdi,8(%rsp) movq %rsi,16(%rsp) movq %rsp,%r11 .LSEH_begin_sqr_mont_382x: movq %rcx,%rdi movq %rdx,%rsi movq %r8,%rdx movq %r9,%rcx #ifdef __BLST_PORTABLE__ testl $1,__blst_platform_cap(%rip) jnz sqr_mont_382x$1 #endif pushq %rbp pushq %rbx pushq %r12 pushq %r13 pushq %r14 pushq %r15 subq $136,%rsp .LSEH_body_sqr_mont_382x: movq %rcx,0(%rsp) movq %rdx,%rcx movq %rsi,16(%rsp) movq %rdi,24(%rsp) movq 0(%rsi),%r8 movq 8(%rsi),%r9 movq 16(%rsi),%r10 movq 24(%rsi),%r11 movq 32(%rsi),%r12 movq 40(%rsi),%r13 movq %r8,%r14 addq 48(%rsi),%r8 movq %r9,%r15 adcq 56(%rsi),%r9 movq %r10,%rax adcq 64(%rsi),%r10 movq %r11,%rdx adcq 72(%rsi),%r11 movq %r12,%rbx adcq 80(%rsi),%r12 movq %r13,%rbp adcq 88(%rsi),%r13 subq 48(%rsi),%r14 sbbq 56(%rsi),%r15 sbbq 64(%rsi),%rax sbbq 72(%rsi),%rdx sbbq 80(%rsi),%rbx sbbq 88(%rsi),%rbp sbbq %rdi,%rdi movq %r8,32+0(%rsp) movq %r9,32+8(%rsp) movq %r10,32+16(%rsp) movq %r11,32+24(%rsp) movq %r12,32+32(%rsp) movq %r13,32+40(%rsp) movq %r14,32+48(%rsp) movq %r15,32+56(%rsp) movq %rax,32+64(%rsp) movq %rdx,32+72(%rsp) movq %rbx,32+80(%rsp) movq %rbp,32+88(%rsp) movq %rdi,32+96(%rsp) leaq 48(%rsi),%rbx movq 48(%rsi),%rax movq 0(%rsi),%r14 movq 8(%rsi),%r15 movq 16(%rsi),%r12 movq 24(%rsi),%r13 movq 24(%rsp),%rdi call __mulq_mont_383_nonred addq %r14,%r14 adcq %r15,%r15 adcq %r8,%r8 adcq %r9,%r9 adcq %r10,%r10 adcq %r11,%r11 movq %r14,48(%rdi) movq %r15,56(%rdi) movq %r8,64(%rdi) movq %r9,72(%rdi) movq %r10,80(%rdi) movq %r11,88(%rdi) leaq 32(%rsp),%rsi leaq 32+48(%rsp),%rbx movq 32+48(%rsp),%rax movq 32+0(%rsp),%r14 movq 32+8(%rsp),%r15 movq 32+16(%rsp),%r12 movq 32+24(%rsp),%r13 call __mulq_mont_383_nonred movq 32+96(%rsp),%rsi movq 32+0(%rsp),%r12 movq 32+8(%rsp),%r13 andq %rsi,%r12 movq 32+16(%rsp),%rax andq %rsi,%r13 movq 32+24(%rsp),%rbx andq %rsi,%rax movq 32+32(%rsp),%rbp andq %rsi,%rbx andq %rsi,%rbp andq 32+40(%rsp),%rsi subq %r12,%r14 movq 0(%rcx),%r12 sbbq %r13,%r15 movq 8(%rcx),%r13 sbbq %rax,%r8 movq 16(%rcx),%rax sbbq %rbx,%r9 movq 24(%rcx),%rbx sbbq %rbp,%r10 movq 32(%rcx),%rbp sbbq %rsi,%r11 sbbq %rsi,%rsi andq %rsi,%r12 andq %rsi,%r13 andq %rsi,%rax andq %rsi,%rbx andq %rsi,%rbp andq 40(%rcx),%rsi addq %r12,%r14 adcq %r13,%r15 adcq %rax,%r8 adcq %rbx,%r9 adcq %rbp,%r10 adcq %rsi,%r11 movq %r14,0(%rdi) movq %r15,8(%rdi) movq %r8,16(%rdi) movq %r9,24(%rdi) movq %r10,32(%rdi) movq %r11,40(%rdi) leaq 136(%rsp),%r8 movq 0(%r8),%r15 movq 8(%r8),%r14 movq 16(%r8),%r13 movq 24(%r8),%r12 movq 32(%r8),%rbx movq 40(%r8),%rbp leaq 48(%r8),%rsp .LSEH_epilogue_sqr_mont_382x: mov 8(%rsp),%rdi mov 16(%rsp),%rsi #ifdef __SGX_LVI_HARDENING__ popq %rdx lfence jmpq *%rdx ud2 #else .byte 0xf3,0xc3 #endif .LSEH_end_sqr_mont_382x: .section .pdata .p2align 2 .rva .LSEH_begin_mul_mont_384x .rva .LSEH_body_mul_mont_384x .rva .LSEH_info_mul_mont_384x_prologue .rva .LSEH_body_mul_mont_384x .rva .LSEH_epilogue_mul_mont_384x .rva .LSEH_info_mul_mont_384x_body .rva .LSEH_epilogue_mul_mont_384x .rva .LSEH_end_mul_mont_384x .rva .LSEH_info_mul_mont_384x_epilogue .rva .LSEH_begin_sqr_mont_384x .rva .LSEH_body_sqr_mont_384x .rva .LSEH_info_sqr_mont_384x_prologue .rva .LSEH_body_sqr_mont_384x .rva .LSEH_epilogue_sqr_mont_384x .rva .LSEH_info_sqr_mont_384x_body .rva .LSEH_epilogue_sqr_mont_384x .rva .LSEH_end_sqr_mont_384x .rva .LSEH_info_sqr_mont_384x_epilogue .rva .LSEH_begin_mul_382x .rva .LSEH_body_mul_382x .rva .LSEH_info_mul_382x_prologue .rva .LSEH_body_mul_382x .rva .LSEH_epilogue_mul_382x .rva .LSEH_info_mul_382x_body .rva .LSEH_epilogue_mul_382x .rva .LSEH_end_mul_382x .rva .LSEH_info_mul_382x_epilogue .rva .LSEH_begin_sqr_382x .rva .LSEH_body_sqr_382x .rva .LSEH_info_sqr_382x_prologue .rva .LSEH_body_sqr_382x .rva .LSEH_epilogue_sqr_382x .rva .LSEH_info_sqr_382x_body .rva .LSEH_epilogue_sqr_382x .rva .LSEH_end_sqr_382x .rva .LSEH_info_sqr_382x_epilogue .rva .LSEH_begin_mul_384 .rva .LSEH_body_mul_384 .rva .LSEH_info_mul_384_prologue .rva .LSEH_body_mul_384 .rva .LSEH_epilogue_mul_384 .rva .LSEH_info_mul_384_body .rva .LSEH_epilogue_mul_384 .rva .LSEH_end_mul_384 .rva .LSEH_info_mul_384_epilogue .rva .LSEH_begin_sqr_384 .rva .LSEH_body_sqr_384 .rva .LSEH_info_sqr_384_prologue .rva .LSEH_body_sqr_384 .rva .LSEH_epilogue_sqr_384 .rva .LSEH_info_sqr_384_body .rva .LSEH_epilogue_sqr_384 .rva .LSEH_end_sqr_384 .rva .LSEH_info_sqr_384_epilogue .rva .LSEH_begin_sqr_mont_384 .rva .LSEH_body_sqr_mont_384 .rva .LSEH_info_sqr_mont_384_prologue .rva .LSEH_body_sqr_mont_384 .rva .LSEH_epilogue_sqr_mont_384 .rva .LSEH_info_sqr_mont_384_body .rva .LSEH_epilogue_sqr_mont_384 .rva .LSEH_end_sqr_mont_384 .rva .LSEH_info_sqr_mont_384_epilogue .rva .LSEH_begin_redc_mont_384 .rva .LSEH_body_redc_mont_384 .rva .LSEH_info_redc_mont_384_prologue .rva .LSEH_body_redc_mont_384 .rva .LSEH_epilogue_redc_mont_384 .rva .LSEH_info_redc_mont_384_body .rva .LSEH_epilogue_redc_mont_384 .rva .LSEH_end_redc_mont_384 .rva .LSEH_info_redc_mont_384_epilogue .rva .LSEH_begin_from_mont_384 .rva .LSEH_body_from_mont_384 .rva .LSEH_info_from_mont_384_prologue .rva .LSEH_body_from_mont_384 .rva .LSEH_epilogue_from_mont_384 .rva .LSEH_info_from_mont_384_body .rva .LSEH_epilogue_from_mont_384 .rva .LSEH_end_from_mont_384 .rva .LSEH_info_from_mont_384_epilogue .rva .LSEH_begin_sgn0_pty_mont_384 .rva .LSEH_body_sgn0_pty_mont_384 .rva .LSEH_info_sgn0_pty_mont_384_prologue .rva .LSEH_body_sgn0_pty_mont_384 .rva .LSEH_epilogue_sgn0_pty_mont_384 .rva .LSEH_info_sgn0_pty_mont_384_body .rva .LSEH_epilogue_sgn0_pty_mont_384 .rva .LSEH_end_sgn0_pty_mont_384 .rva .LSEH_info_sgn0_pty_mont_384_epilogue .rva .LSEH_begin_sgn0_pty_mont_384x .rva .LSEH_body_sgn0_pty_mont_384x .rva .LSEH_info_sgn0_pty_mont_384x_prologue .rva .LSEH_body_sgn0_pty_mont_384x .rva .LSEH_epilogue_sgn0_pty_mont_384x .rva .LSEH_info_sgn0_pty_mont_384x_body .rva .LSEH_epilogue_sgn0_pty_mont_384x .rva .LSEH_end_sgn0_pty_mont_384x .rva .LSEH_info_sgn0_pty_mont_384x_epilogue .rva .LSEH_begin_mul_mont_384 .rva .LSEH_body_mul_mont_384 .rva .LSEH_info_mul_mont_384_prologue .rva .LSEH_body_mul_mont_384 .rva .LSEH_epilogue_mul_mont_384 .rva .LSEH_info_mul_mont_384_body .rva .LSEH_epilogue_mul_mont_384 .rva .LSEH_end_mul_mont_384 .rva .LSEH_info_mul_mont_384_epilogue .rva .LSEH_begin_sqr_n_mul_mont_384 .rva .LSEH_body_sqr_n_mul_mont_384 .rva .LSEH_info_sqr_n_mul_mont_384_prologue .rva .LSEH_body_sqr_n_mul_mont_384 .rva .LSEH_epilogue_sqr_n_mul_mont_384 .rva .LSEH_info_sqr_n_mul_mont_384_body .rva .LSEH_epilogue_sqr_n_mul_mont_384 .rva .LSEH_end_sqr_n_mul_mont_384 .rva .LSEH_info_sqr_n_mul_mont_384_epilogue .rva .LSEH_begin_sqr_n_mul_mont_383 .rva .LSEH_body_sqr_n_mul_mont_383 .rva .LSEH_info_sqr_n_mul_mont_383_prologue .rva .LSEH_body_sqr_n_mul_mont_383 .rva .LSEH_epilogue_sqr_n_mul_mont_383 .rva .LSEH_info_sqr_n_mul_mont_383_body .rva .LSEH_epilogue_sqr_n_mul_mont_383 .rva .LSEH_end_sqr_n_mul_mont_383 .rva .LSEH_info_sqr_n_mul_mont_383_epilogue .rva .LSEH_begin_sqr_mont_382x .rva .LSEH_body_sqr_mont_382x .rva .LSEH_info_sqr_mont_382x_prologue .rva .LSEH_body_sqr_mont_382x .rva .LSEH_epilogue_sqr_mont_382x .rva .LSEH_info_sqr_mont_382x_body .rva .LSEH_epilogue_sqr_mont_382x .rva .LSEH_end_sqr_mont_382x .rva .LSEH_info_sqr_mont_382x_epilogue .section .xdata .p2align 3 .LSEH_info_mul_mont_384x_prologue: .byte 1,0,5,0x0b .byte 0,0x74,1,0 .byte 0,0x64,2,0 .byte 0,0xb3 .byte 0,0 .long 0,0 .LSEH_info_mul_mont_384x_body: .byte 1,0,18,0 .byte 0x00,0xf4,0x29,0x00 .byte 0x00,0xe4,0x2a,0x00 .byte 0x00,0xd4,0x2b,0x00 .byte 0x00,0xc4,0x2c,0x00 .byte 0x00,0x34,0x2d,0x00 .byte 0x00,0x54,0x2e,0x00 .byte 0x00,0x74,0x30,0x00 .byte 0x00,0x64,0x31,0x00 .byte 0x00,0x01,0x2f,0x00 .byte 0x00,0x00,0x00,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_mul_mont_384x_epilogue: .byte 1,0,4,0 .byte 0x00,0x74,0x01,0x00 .byte 0x00,0x64,0x02,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_sqr_mont_384x_prologue: .byte 1,0,5,0x0b .byte 0,0x74,1,0 .byte 0,0x64,2,0 .byte 0,0xb3 .byte 0,0 .long 0,0 .LSEH_info_sqr_mont_384x_body: .byte 1,0,18,0 .byte 0x00,0xf4,0x11,0x00 .byte 0x00,0xe4,0x12,0x00 .byte 0x00,0xd4,0x13,0x00 .byte 0x00,0xc4,0x14,0x00 .byte 0x00,0x34,0x15,0x00 .byte 0x00,0x54,0x16,0x00 .byte 0x00,0x74,0x18,0x00 .byte 0x00,0x64,0x19,0x00 .byte 0x00,0x01,0x17,0x00 .byte 0x00,0x00,0x00,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_sqr_mont_384x_epilogue: .byte 1,0,4,0 .byte 0x00,0x74,0x01,0x00 .byte 0x00,0x64,0x02,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_mul_382x_prologue: .byte 1,0,5,0x0b .byte 0,0x74,1,0 .byte 0,0x64,2,0 .byte 0,0xb3 .byte 0,0 .long 0,0 .LSEH_info_mul_382x_body: .byte 1,0,18,0 .byte 0x00,0xf4,0x11,0x00 .byte 0x00,0xe4,0x12,0x00 .byte 0x00,0xd4,0x13,0x00 .byte 0x00,0xc4,0x14,0x00 .byte 0x00,0x34,0x15,0x00 .byte 0x00,0x54,0x16,0x00 .byte 0x00,0x74,0x18,0x00 .byte 0x00,0x64,0x19,0x00 .byte 0x00,0x01,0x17,0x00 .byte 0x00,0x00,0x00,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_mul_382x_epilogue: .byte 1,0,4,0 .byte 0x00,0x74,0x01,0x00 .byte 0x00,0x64,0x02,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_sqr_382x_prologue: .byte 1,0,5,0x0b .byte 0,0x74,1,0 .byte 0,0x64,2,0 .byte 0,0xb3 .byte 0,0 .long 0,0 .LSEH_info_sqr_382x_body: .byte 1,0,17,0 .byte 0x00,0xf4,0x01,0x00 .byte 0x00,0xe4,0x02,0x00 .byte 0x00,0xd4,0x03,0x00 .byte 0x00,0xc4,0x04,0x00 .byte 0x00,0x34,0x05,0x00 .byte 0x00,0x54,0x06,0x00 .byte 0x00,0x74,0x08,0x00 .byte 0x00,0x64,0x09,0x00 .byte 0x00,0x62 .byte 0x00,0x00,0x00,0x00,0x00,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_sqr_382x_epilogue: .byte 1,0,4,0 .byte 0x00,0x74,0x01,0x00 .byte 0x00,0x64,0x02,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_mul_384_prologue: .byte 1,0,5,0x0b .byte 0,0x74,1,0 .byte 0,0x64,2,0 .byte 0,0xb3 .byte 0,0 .long 0,0 .LSEH_info_mul_384_body: .byte 1,0,11,0 .byte 0x00,0xc4,0x00,0x00 .byte 0x00,0x34,0x01,0x00 .byte 0x00,0x54,0x02,0x00 .byte 0x00,0x74,0x04,0x00 .byte 0x00,0x64,0x05,0x00 .byte 0x00,0x22 .byte 0x00,0x00,0x00,0x00,0x00,0x00 .LSEH_info_mul_384_epilogue: .byte 1,0,4,0 .byte 0x00,0x74,0x01,0x00 .byte 0x00,0x64,0x02,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_sqr_384_prologue: .byte 1,0,5,0x0b .byte 0,0x74,1,0 .byte 0,0x64,2,0 .byte 0,0xb3 .byte 0,0 .long 0,0 .LSEH_info_sqr_384_body: .byte 1,0,17,0 .byte 0x00,0xf4,0x01,0x00 .byte 0x00,0xe4,0x02,0x00 .byte 0x00,0xd4,0x03,0x00 .byte 0x00,0xc4,0x04,0x00 .byte 0x00,0x34,0x05,0x00 .byte 0x00,0x54,0x06,0x00 .byte 0x00,0x74,0x08,0x00 .byte 0x00,0x64,0x09,0x00 .byte 0x00,0x62 .byte 0x00,0x00,0x00,0x00,0x00,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_sqr_384_epilogue: .byte 1,0,4,0 .byte 0x00,0x74,0x01,0x00 .byte 0x00,0x64,0x02,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_sqr_mont_384_prologue: .byte 1,0,5,0x0b .byte 0,0x74,1,0 .byte 0,0x64,2,0 .byte 0,0xb3 .byte 0,0 .long 0,0 .LSEH_info_sqr_mont_384_body: .byte 1,0,18,0 .byte 0x00,0xf4,0x0f,0x00 .byte 0x00,0xe4,0x10,0x00 .byte 0x00,0xd4,0x11,0x00 .byte 0x00,0xc4,0x12,0x00 .byte 0x00,0x34,0x13,0x00 .byte 0x00,0x54,0x14,0x00 .byte 0x00,0x74,0x16,0x00 .byte 0x00,0x64,0x17,0x00 .byte 0x00,0x01,0x15,0x00 .byte 0x00,0x00,0x00,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_sqr_mont_384_epilogue: .byte 1,0,4,0 .byte 0x00,0x74,0x01,0x00 .byte 0x00,0x64,0x02,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_redc_mont_384_prologue: .byte 1,0,5,0x0b .byte 0,0x74,1,0 .byte 0,0x64,2,0 .byte 0,0xb3 .byte 0,0 .long 0,0 .LSEH_info_redc_mont_384_body: .byte 1,0,17,0 .byte 0x00,0xf4,0x01,0x00 .byte 0x00,0xe4,0x02,0x00 .byte 0x00,0xd4,0x03,0x00 .byte 0x00,0xc4,0x04,0x00 .byte 0x00,0x34,0x05,0x00 .byte 0x00,0x54,0x06,0x00 .byte 0x00,0x74,0x08,0x00 .byte 0x00,0x64,0x09,0x00 .byte 0x00,0x62 .byte 0x00,0x00,0x00,0x00,0x00,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_redc_mont_384_epilogue: .byte 1,0,4,0 .byte 0x00,0x74,0x01,0x00 .byte 0x00,0x64,0x02,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_from_mont_384_prologue: .byte 1,0,5,0x0b .byte 0,0x74,1,0 .byte 0,0x64,2,0 .byte 0,0xb3 .byte 0,0 .long 0,0 .LSEH_info_from_mont_384_body: .byte 1,0,17,0 .byte 0x00,0xf4,0x01,0x00 .byte 0x00,0xe4,0x02,0x00 .byte 0x00,0xd4,0x03,0x00 .byte 0x00,0xc4,0x04,0x00 .byte 0x00,0x34,0x05,0x00 .byte 0x00,0x54,0x06,0x00 .byte 0x00,0x74,0x08,0x00 .byte 0x00,0x64,0x09,0x00 .byte 0x00,0x62 .byte 0x00,0x00,0x00,0x00,0x00,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_from_mont_384_epilogue: .byte 1,0,4,0 .byte 0x00,0x74,0x01,0x00 .byte 0x00,0x64,0x02,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_sgn0_pty_mont_384_prologue: .byte 1,0,5,0x0b .byte 0,0x74,1,0 .byte 0,0x64,2,0 .byte 0,0xb3 .byte 0,0 .long 0,0 .LSEH_info_sgn0_pty_mont_384_body: .byte 1,0,17,0 .byte 0x00,0xf4,0x01,0x00 .byte 0x00,0xe4,0x02,0x00 .byte 0x00,0xd4,0x03,0x00 .byte 0x00,0xc4,0x04,0x00 .byte 0x00,0x34,0x05,0x00 .byte 0x00,0x54,0x06,0x00 .byte 0x00,0x74,0x08,0x00 .byte 0x00,0x64,0x09,0x00 .byte 0x00,0x62 .byte 0x00,0x00,0x00,0x00,0x00,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_sgn0_pty_mont_384_epilogue: .byte 1,0,4,0 .byte 0x00,0x74,0x01,0x00 .byte 0x00,0x64,0x02,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_sgn0_pty_mont_384x_prologue: .byte 1,0,5,0x0b .byte 0,0x74,1,0 .byte 0,0x64,2,0 .byte 0,0xb3 .byte 0,0 .long 0,0 .LSEH_info_sgn0_pty_mont_384x_body: .byte 1,0,17,0 .byte 0x00,0xf4,0x01,0x00 .byte 0x00,0xe4,0x02,0x00 .byte 0x00,0xd4,0x03,0x00 .byte 0x00,0xc4,0x04,0x00 .byte 0x00,0x34,0x05,0x00 .byte 0x00,0x54,0x06,0x00 .byte 0x00,0x74,0x08,0x00 .byte 0x00,0x64,0x09,0x00 .byte 0x00,0x62 .byte 0x00,0x00,0x00,0x00,0x00,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_sgn0_pty_mont_384x_epilogue: .byte 1,0,4,0 .byte 0x00,0x74,0x01,0x00 .byte 0x00,0x64,0x02,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_mul_mont_384_prologue: .byte 1,0,5,0x0b .byte 0,0x74,1,0 .byte 0,0x64,2,0 .byte 0,0xb3 .byte 0,0 .long 0,0 .LSEH_info_mul_mont_384_body: .byte 1,0,17,0 .byte 0x00,0xf4,0x03,0x00 .byte 0x00,0xe4,0x04,0x00 .byte 0x00,0xd4,0x05,0x00 .byte 0x00,0xc4,0x06,0x00 .byte 0x00,0x34,0x07,0x00 .byte 0x00,0x54,0x08,0x00 .byte 0x00,0x74,0x0a,0x00 .byte 0x00,0x64,0x0b,0x00 .byte 0x00,0x82 .byte 0x00,0x00,0x00,0x00,0x00,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_mul_mont_384_epilogue: .byte 1,0,4,0 .byte 0x00,0x74,0x01,0x00 .byte 0x00,0x64,0x02,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_sqr_n_mul_mont_384_prologue: .byte 1,0,5,0x0b .byte 0,0x74,1,0 .byte 0,0x64,2,0 .byte 0,0xb3 .byte 0,0 .long 0,0 .LSEH_info_sqr_n_mul_mont_384_body: .byte 1,0,18,0 .byte 0x00,0xf4,0x11,0x00 .byte 0x00,0xe4,0x12,0x00 .byte 0x00,0xd4,0x13,0x00 .byte 0x00,0xc4,0x14,0x00 .byte 0x00,0x34,0x15,0x00 .byte 0x00,0x54,0x16,0x00 .byte 0x00,0x74,0x18,0x00 .byte 0x00,0x64,0x19,0x00 .byte 0x00,0x01,0x17,0x00 .byte 0x00,0x00,0x00,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_sqr_n_mul_mont_384_epilogue: .byte 1,0,4,0 .byte 0x00,0x74,0x01,0x00 .byte 0x00,0x64,0x02,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_sqr_n_mul_mont_383_prologue: .byte 1,0,5,0x0b .byte 0,0x74,1,0 .byte 0,0x64,2,0 .byte 0,0xb3 .byte 0,0 .long 0,0 .LSEH_info_sqr_n_mul_mont_383_body: .byte 1,0,18,0 .byte 0x00,0xf4,0x11,0x00 .byte 0x00,0xe4,0x12,0x00 .byte 0x00,0xd4,0x13,0x00 .byte 0x00,0xc4,0x14,0x00 .byte 0x00,0x34,0x15,0x00 .byte 0x00,0x54,0x16,0x00 .byte 0x00,0x74,0x18,0x00 .byte 0x00,0x64,0x19,0x00 .byte 0x00,0x01,0x17,0x00 .byte 0x00,0x00,0x00,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_sqr_n_mul_mont_383_epilogue: .byte 1,0,4,0 .byte 0x00,0x74,0x01,0x00 .byte 0x00,0x64,0x02,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_sqr_mont_382x_prologue: .byte 1,0,5,0x0b .byte 0,0x74,1,0 .byte 0,0x64,2,0 .byte 0,0xb3 .byte 0,0 .long 0,0 .LSEH_info_sqr_mont_382x_body: .byte 1,0,18,0 .byte 0x00,0xf4,0x11,0x00 .byte 0x00,0xe4,0x12,0x00 .byte 0x00,0xd4,0x13,0x00 .byte 0x00,0xc4,0x14,0x00 .byte 0x00,0x34,0x15,0x00 .byte 0x00,0x54,0x16,0x00 .byte 0x00,0x74,0x18,0x00 .byte 0x00,0x64,0x19,0x00 .byte 0x00,0x01,0x17,0x00 .byte 0x00,0x00,0x00,0x00 .byte 0x00,0x00,0x00,0x00 .LSEH_info_sqr_mont_382x_epilogue: .byte 1,0,4,0 .byte 0x00,0x74,0x01,0x00 .byte 0x00,0x64,0x02,0x00 .byte 0x00,0x00,0x00,0x00