hsblst-0.0.4: c-source/build/coff/mulq_mont_384-x86_64.s
.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