; for masm (ml64.exe)
_data$x segment align(64)
align 64
p:
dq 0effffffffaaabh, 0feb153ffffb9fh, 6b0f6241eabffh, 12bf6730d2a0fh, 764774b84f385h, 1ba7b6434bacdh, 1ea397fe69a4bh, 1a011h
ap:
dq 0effffffffaaabh, 0effffffffaaabh, 0effffffffaaabh, 0effffffffaaabh, 0effffffffaaabh, 0effffffffaaabh, 0effffffffaaabh, 0effffffffaaabh
dq 0feb153ffffb9fh, 0feb153ffffb9fh, 0feb153ffffb9fh, 0feb153ffffb9fh, 0feb153ffffb9fh, 0feb153ffffb9fh, 0feb153ffffb9fh, 0feb153ffffb9fh
dq 6b0f6241eabffh, 6b0f6241eabffh, 6b0f6241eabffh, 6b0f6241eabffh, 6b0f6241eabffh, 6b0f6241eabffh, 6b0f6241eabffh, 6b0f6241eabffh
dq 12bf6730d2a0fh, 12bf6730d2a0fh, 12bf6730d2a0fh, 12bf6730d2a0fh, 12bf6730d2a0fh, 12bf6730d2a0fh, 12bf6730d2a0fh, 12bf6730d2a0fh
dq 764774b84f385h, 764774b84f385h, 764774b84f385h, 764774b84f385h, 764774b84f385h, 764774b84f385h, 764774b84f385h, 764774b84f385h
dq 1ba7b6434bacdh, 1ba7b6434bacdh, 1ba7b6434bacdh, 1ba7b6434bacdh, 1ba7b6434bacdh, 1ba7b6434bacdh, 1ba7b6434bacdh, 1ba7b6434bacdh
dq 1ea397fe69a4bh, 1ea397fe69a4bh, 1ea397fe69a4bh, 1ea397fe69a4bh, 1ea397fe69a4bh, 1ea397fe69a4bh, 1ea397fe69a4bh, 1ea397fe69a4bh
dq 1a011h, 1a011h, 1a011h, 1a011h, 1a011h, 1a011h, 1a011h, 1a011h
apA:
dq 0effffffffaaabh, 0effffffffaaabh, 0effffffffaaabh, 0effffffffaaabh, 0effffffffaaabh, 0effffffffaaabh, 0effffffffaaabh, 0effffffffaaabh, 0effffffffaaabh, 0effffffffaaabh, 0effffffffaaabh, 0effffffffaaabh, 0effffffffaaabh, 0effffffffaaabh, 0effffffffaaabh, 0effffffffaaabh
dq 0feb153ffffb9fh, 0feb153ffffb9fh, 0feb153ffffb9fh, 0feb153ffffb9fh, 0feb153ffffb9fh, 0feb153ffffb9fh, 0feb153ffffb9fh, 0feb153ffffb9fh, 0feb153ffffb9fh, 0feb153ffffb9fh, 0feb153ffffb9fh, 0feb153ffffb9fh, 0feb153ffffb9fh, 0feb153ffffb9fh, 0feb153ffffb9fh, 0feb153ffffb9fh
dq 6b0f6241eabffh, 6b0f6241eabffh, 6b0f6241eabffh, 6b0f6241eabffh, 6b0f6241eabffh, 6b0f6241eabffh, 6b0f6241eabffh, 6b0f6241eabffh, 6b0f6241eabffh, 6b0f6241eabffh, 6b0f6241eabffh, 6b0f6241eabffh, 6b0f6241eabffh, 6b0f6241eabffh, 6b0f6241eabffh, 6b0f6241eabffh
dq 12bf6730d2a0fh, 12bf6730d2a0fh, 12bf6730d2a0fh, 12bf6730d2a0fh, 12bf6730d2a0fh, 12bf6730d2a0fh, 12bf6730d2a0fh, 12bf6730d2a0fh, 12bf6730d2a0fh, 12bf6730d2a0fh, 12bf6730d2a0fh, 12bf6730d2a0fh, 12bf6730d2a0fh, 12bf6730d2a0fh, 12bf6730d2a0fh, 12bf6730d2a0fh
dq 764774b84f385h, 764774b84f385h, 764774b84f385h, 764774b84f385h, 764774b84f385h, 764774b84f385h, 764774b84f385h, 764774b84f385h, 764774b84f385h, 764774b84f385h, 764774b84f385h, 764774b84f385h, 764774b84f385h, 764774b84f385h, 764774b84f385h, 764774b84f385h
dq 1ba7b6434bacdh, 1ba7b6434bacdh, 1ba7b6434bacdh, 1ba7b6434bacdh, 1ba7b6434bacdh, 1ba7b6434bacdh, 1ba7b6434bacdh, 1ba7b6434bacdh, 1ba7b6434bacdh, 1ba7b6434bacdh, 1ba7b6434bacdh, 1ba7b6434bacdh, 1ba7b6434bacdh, 1ba7b6434bacdh, 1ba7b6434bacdh, 1ba7b6434bacdh
dq 1ea397fe69a4bh, 1ea397fe69a4bh, 1ea397fe69a4bh, 1ea397fe69a4bh, 1ea397fe69a4bh, 1ea397fe69a4bh, 1ea397fe69a4bh, 1ea397fe69a4bh, 1ea397fe69a4bh, 1ea397fe69a4bh, 1ea397fe69a4bh, 1ea397fe69a4bh, 1ea397fe69a4bh, 1ea397fe69a4bh, 1ea397fe69a4bh, 1ea397fe69a4bh
dq 1a011h, 1a011h, 1a011h, 1a011h, 1a011h, 1a011h, 1a011h, 1a011h, 1a011h, 1a011h, 1a011h, 1a011h, 1a011h, 1a011h, 1a011h, 1a011h
rp:
dq 1125887021744125
_data$x ends
_text$x segment align(64) execute
mcl_c5_vaddPre proc export
mov rax, 4503599627370495
vpbroadcastq zmm0, rax
vmovdqa64 zmm2, zmmword ptr [rdx]
vpaddq zmm2, zmm2, zmmword ptr [r8]
vpsrlq zmm1, zmm2, 52
vpandq zmm2, zmm2, zmm0
vmovdqa64 zmmword ptr [rcx], zmm2
vmovdqa64 zmm2, zmmword ptr [rdx+64]
vpaddq zmm2, zmm2, zmmword ptr [r8+64]
vpaddq zmm2, zmm2, zmm1
vpsrlq zmm1, zmm2, 52
vpandq zmm2, zmm2, zmm0
vmovdqa64 zmmword ptr [rcx+64], zmm2
vmovdqa64 zmm2, zmmword ptr [rdx+128]
vpaddq zmm2, zmm2, zmmword ptr [r8+128]
vpaddq zmm2, zmm2, zmm1
vpsrlq zmm1, zmm2, 52
vpandq zmm2, zmm2, zmm0
vmovdqa64 zmmword ptr [rcx+128], zmm2
vmovdqa64 zmm2, zmmword ptr [rdx+192]
vpaddq zmm2, zmm2, zmmword ptr [r8+192]
vpaddq zmm2, zmm2, zmm1
vpsrlq zmm1, zmm2, 52
vpandq zmm2, zmm2, zmm0
vmovdqa64 zmmword ptr [rcx+192], zmm2
vmovdqa64 zmm2, zmmword ptr [rdx+256]
vpaddq zmm2, zmm2, zmmword ptr [r8+256]
vpaddq zmm2, zmm2, zmm1
vpsrlq zmm1, zmm2, 52
vpandq zmm2, zmm2, zmm0
vmovdqa64 zmmword ptr [rcx+256], zmm2
vmovdqa64 zmm2, zmmword ptr [rdx+320]
vpaddq zmm2, zmm2, zmmword ptr [r8+320]
vpaddq zmm2, zmm2, zmm1
vpsrlq zmm1, zmm2, 52
vpandq zmm2, zmm2, zmm0
vmovdqa64 zmmword ptr [rcx+320], zmm2
vmovdqa64 zmm2, zmmword ptr [rdx+384]
vpaddq zmm2, zmm2, zmmword ptr [r8+384]
vpaddq zmm2, zmm2, zmm1
vpsrlq zmm1, zmm2, 52
vpandq zmm2, zmm2, zmm0
vmovdqa64 zmmword ptr [rcx+384], zmm2
vmovdqa64 zmm2, zmmword ptr [rdx+448]
vpaddq zmm2, zmm2, zmmword ptr [r8+448]
vpaddq zmm2, zmm2, zmm1
vmovdqa64 zmmword ptr [rcx+448], zmm2
vzeroupper
ret
mcl_c5_vaddPre endp
mcl_c5_vsubPre proc export
mov rax, 4503599627370495
vpbroadcastq zmm0, rax
vmovdqa64 zmm2, zmmword ptr [rdx]
vpsubq zmm2, zmm2, zmmword ptr [r8]
vpsrlq zmm1, zmm2, 63
vpandq zmm2, zmm2, zmm0
vmovdqa64 zmmword ptr [rcx], zmm2
vmovdqa64 zmm2, zmmword ptr [rdx+64]
vpsubq zmm2, zmm2, zmmword ptr [r8+64]
vpsubq zmm2, zmm2, zmm1
vpsrlq zmm1, zmm2, 63
vpandq zmm2, zmm2, zmm0
vmovdqa64 zmmword ptr [rcx+64], zmm2
vmovdqa64 zmm2, zmmword ptr [rdx+128]
vpsubq zmm2, zmm2, zmmword ptr [r8+128]
vpsubq zmm2, zmm2, zmm1
vpsrlq zmm1, zmm2, 63
vpandq zmm2, zmm2, zmm0
vmovdqa64 zmmword ptr [rcx+128], zmm2
vmovdqa64 zmm2, zmmword ptr [rdx+192]
vpsubq zmm2, zmm2, zmmword ptr [r8+192]
vpsubq zmm2, zmm2, zmm1
vpsrlq zmm1, zmm2, 63
vpandq zmm2, zmm2, zmm0
vmovdqa64 zmmword ptr [rcx+192], zmm2
vmovdqa64 zmm2, zmmword ptr [rdx+256]
vpsubq zmm2, zmm2, zmmword ptr [r8+256]
vpsubq zmm2, zmm2, zmm1
vpsrlq zmm1, zmm2, 63
vpandq zmm2, zmm2, zmm0
vmovdqa64 zmmword ptr [rcx+256], zmm2
vmovdqa64 zmm2, zmmword ptr [rdx+320]
vpsubq zmm2, zmm2, zmmword ptr [r8+320]
vpsubq zmm2, zmm2, zmm1
vpsrlq zmm1, zmm2, 63
vpandq zmm2, zmm2, zmm0
vmovdqa64 zmmword ptr [rcx+320], zmm2
vmovdqa64 zmm2, zmmword ptr [rdx+384]
vpsubq zmm2, zmm2, zmmword ptr [r8+384]
vpsubq zmm2, zmm2, zmm1
vpsrlq zmm1, zmm2, 63
vpandq zmm2, zmm2, zmm0
vmovdqa64 zmmword ptr [rcx+384], zmm2
vmovdqa64 zmm2, zmmword ptr [rdx+448]
vpsubq zmm2, zmm2, zmmword ptr [r8+448]
vpsubq zmm2, zmm2, zmm1
vpsrlq zmm1, zmm2, 63
vpandq zmm2, zmm2, zmm0
vmovdqa64 zmmword ptr [rcx+448], zmm2
vpxorq zmm2, zmm2, zmm2
vpcmpgtq k1, zmm1, zmm2
vzeroupper
ret
mcl_c5_vsubPre endp
mcl_c5_vaddPreA proc export
mov rax, 4503599627370495
vpbroadcastq zmm0, rax
vmovdqa64 zmm3, zmmword ptr [rdx]
vmovdqa64 zmm4, zmmword ptr [rdx+64]
vpaddq zmm3, zmm3, zmmword ptr [r8]
vpaddq zmm4, zmm4, zmmword ptr [r8+64]
vpsrlq zmm1, zmm3, 52
vpsrlq zmm2, zmm4, 52
vpandq zmm3, zmm3, zmm0
vpandq zmm4, zmm4, zmm0
vmovdqa64 zmmword ptr [rcx], zmm3
vmovdqa64 zmmword ptr [rcx+64], zmm4
vmovdqa64 zmm3, zmmword ptr [rdx+128]
vmovdqa64 zmm4, zmmword ptr [rdx+192]
vpaddq zmm3, zmm3, zmmword ptr [r8+128]
vpaddq zmm4, zmm4, zmmword ptr [r8+192]
vpaddq zmm3, zmm3, zmm1
vpaddq zmm4, zmm4, zmm2
vpsrlq zmm1, zmm3, 52
vpsrlq zmm2, zmm4, 52
vpandq zmm3, zmm3, zmm0
vpandq zmm4, zmm4, zmm0
vmovdqa64 zmmword ptr [rcx+128], zmm3
vmovdqa64 zmmword ptr [rcx+192], zmm4
vmovdqa64 zmm3, zmmword ptr [rdx+256]
vmovdqa64 zmm4, zmmword ptr [rdx+320]
vpaddq zmm3, zmm3, zmmword ptr [r8+256]
vpaddq zmm4, zmm4, zmmword ptr [r8+320]
vpaddq zmm3, zmm3, zmm1
vpaddq zmm4, zmm4, zmm2
vpsrlq zmm1, zmm3, 52
vpsrlq zmm2, zmm4, 52
vpandq zmm3, zmm3, zmm0
vpandq zmm4, zmm4, zmm0
vmovdqa64 zmmword ptr [rcx+256], zmm3
vmovdqa64 zmmword ptr [rcx+320], zmm4
vmovdqa64 zmm3, zmmword ptr [rdx+384]
vmovdqa64 zmm4, zmmword ptr [rdx+448]
vpaddq zmm3, zmm3, zmmword ptr [r8+384]
vpaddq zmm4, zmm4, zmmword ptr [r8+448]
vpaddq zmm3, zmm3, zmm1
vpaddq zmm4, zmm4, zmm2
vpsrlq zmm1, zmm3, 52
vpsrlq zmm2, zmm4, 52
vpandq zmm3, zmm3, zmm0
vpandq zmm4, zmm4, zmm0
vmovdqa64 zmmword ptr [rcx+384], zmm3
vmovdqa64 zmmword ptr [rcx+448], zmm4
vmovdqa64 zmm3, zmmword ptr [rdx+512]
vmovdqa64 zmm4, zmmword ptr [rdx+576]
vpaddq zmm3, zmm3, zmmword ptr [r8+512]
vpaddq zmm4, zmm4, zmmword ptr [r8+576]
vpaddq zmm3, zmm3, zmm1
vpaddq zmm4, zmm4, zmm2
vpsrlq zmm1, zmm3, 52
vpsrlq zmm2, zmm4, 52
vpandq zmm3, zmm3, zmm0
vpandq zmm4, zmm4, zmm0
vmovdqa64 zmmword ptr [rcx+512], zmm3
vmovdqa64 zmmword ptr [rcx+576], zmm4
vmovdqa64 zmm3, zmmword ptr [rdx+640]
vmovdqa64 zmm4, zmmword ptr [rdx+704]
vpaddq zmm3, zmm3, zmmword ptr [r8+640]
vpaddq zmm4, zmm4, zmmword ptr [r8+704]
vpaddq zmm3, zmm3, zmm1
vpaddq zmm4, zmm4, zmm2
vpsrlq zmm1, zmm3, 52
vpsrlq zmm2, zmm4, 52
vpandq zmm3, zmm3, zmm0
vpandq zmm4, zmm4, zmm0
vmovdqa64 zmmword ptr [rcx+640], zmm3
vmovdqa64 zmmword ptr [rcx+704], zmm4
vmovdqa64 zmm3, zmmword ptr [rdx+768]
vmovdqa64 zmm4, zmmword ptr [rdx+832]
vpaddq zmm3, zmm3, zmmword ptr [r8+768]
vpaddq zmm4, zmm4, zmmword ptr [r8+832]
vpaddq zmm3, zmm3, zmm1
vpaddq zmm4, zmm4, zmm2
vpsrlq zmm1, zmm3, 52
vpsrlq zmm2, zmm4, 52
vpandq zmm3, zmm3, zmm0
vpandq zmm4, zmm4, zmm0
vmovdqa64 zmmword ptr [rcx+768], zmm3
vmovdqa64 zmmword ptr [rcx+832], zmm4
vmovdqa64 zmm3, zmmword ptr [rdx+896]
vmovdqa64 zmm4, zmmword ptr [rdx+960]
vpaddq zmm3, zmm3, zmmword ptr [r8+896]
vpaddq zmm4, zmm4, zmmword ptr [r8+960]
vpaddq zmm3, zmm3, zmm1
vpaddq zmm4, zmm4, zmm2
vmovdqa64 zmmword ptr [rcx+896], zmm3
vmovdqa64 zmmword ptr [rcx+960], zmm4
vzeroupper
ret
mcl_c5_vaddPreA endp
mcl_c5_vsubPreA proc export
mov rax, 4503599627370495
vpbroadcastq zmm0, rax
vmovdqa64 zmm3, zmmword ptr [rdx]
vmovdqa64 zmm4, zmmword ptr [rdx+64]
vpsubq zmm3, zmm3, zmmword ptr [r8]
vpsubq zmm4, zmm4, zmmword ptr [r8+64]
vpsrlq zmm1, zmm3, 63
vpsrlq zmm2, zmm4, 63
vpandq zmm3, zmm3, zmm0
vpandq zmm4, zmm4, zmm0
vmovdqa64 zmmword ptr [rcx], zmm3
vmovdqa64 zmmword ptr [rcx+64], zmm4
vmovdqa64 zmm3, zmmword ptr [rdx+128]
vmovdqa64 zmm4, zmmword ptr [rdx+192]
vpsubq zmm3, zmm3, zmmword ptr [r8+128]
vpsubq zmm4, zmm4, zmmword ptr [r8+192]
vpsubq zmm3, zmm3, zmm1
vpsubq zmm4, zmm4, zmm2
vpsrlq zmm1, zmm3, 63
vpsrlq zmm2, zmm4, 63
vpandq zmm3, zmm3, zmm0
vpandq zmm4, zmm4, zmm0
vmovdqa64 zmmword ptr [rcx+128], zmm3
vmovdqa64 zmmword ptr [rcx+192], zmm4
vmovdqa64 zmm3, zmmword ptr [rdx+256]
vmovdqa64 zmm4, zmmword ptr [rdx+320]
vpsubq zmm3, zmm3, zmmword ptr [r8+256]
vpsubq zmm4, zmm4, zmmword ptr [r8+320]
vpsubq zmm3, zmm3, zmm1
vpsubq zmm4, zmm4, zmm2
vpsrlq zmm1, zmm3, 63
vpsrlq zmm2, zmm4, 63
vpandq zmm3, zmm3, zmm0
vpandq zmm4, zmm4, zmm0
vmovdqa64 zmmword ptr [rcx+256], zmm3
vmovdqa64 zmmword ptr [rcx+320], zmm4
vmovdqa64 zmm3, zmmword ptr [rdx+384]
vmovdqa64 zmm4, zmmword ptr [rdx+448]
vpsubq zmm3, zmm3, zmmword ptr [r8+384]
vpsubq zmm4, zmm4, zmmword ptr [r8+448]
vpsubq zmm3, zmm3, zmm1
vpsubq zmm4, zmm4, zmm2
vpsrlq zmm1, zmm3, 63
vpsrlq zmm2, zmm4, 63
vpandq zmm3, zmm3, zmm0
vpandq zmm4, zmm4, zmm0
vmovdqa64 zmmword ptr [rcx+384], zmm3
vmovdqa64 zmmword ptr [rcx+448], zmm4
vmovdqa64 zmm3, zmmword ptr [rdx+512]
vmovdqa64 zmm4, zmmword ptr [rdx+576]
vpsubq zmm3, zmm3, zmmword ptr [r8+512]
vpsubq zmm4, zmm4, zmmword ptr [r8+576]
vpsubq zmm3, zmm3, zmm1
vpsubq zmm4, zmm4, zmm2
vpsrlq zmm1, zmm3, 63
vpsrlq zmm2, zmm4, 63
vpandq zmm3, zmm3, zmm0
vpandq zmm4, zmm4, zmm0
vmovdqa64 zmmword ptr [rcx+512], zmm3
vmovdqa64 zmmword ptr [rcx+576], zmm4
vmovdqa64 zmm3, zmmword ptr [rdx+640]
vmovdqa64 zmm4, zmmword ptr [rdx+704]
vpsubq zmm3, zmm3, zmmword ptr [r8+640]
vpsubq zmm4, zmm4, zmmword ptr [r8+704]
vpsubq zmm3, zmm3, zmm1
vpsubq zmm4, zmm4, zmm2
vpsrlq zmm1, zmm3, 63
vpsrlq zmm2, zmm4, 63
vpandq zmm3, zmm3, zmm0
vpandq zmm4, zmm4, zmm0
vmovdqa64 zmmword ptr [rcx+640], zmm3
vmovdqa64 zmmword ptr [rcx+704], zmm4
vmovdqa64 zmm3, zmmword ptr [rdx+768]
vmovdqa64 zmm4, zmmword ptr [rdx+832]
vpsubq zmm3, zmm3, zmmword ptr [r8+768]
vpsubq zmm4, zmm4, zmmword ptr [r8+832]
vpsubq zmm3, zmm3, zmm1
vpsubq zmm4, zmm4, zmm2
vpsrlq zmm1, zmm3, 63
vpsrlq zmm2, zmm4, 63
vpandq zmm3, zmm3, zmm0
vpandq zmm4, zmm4, zmm0
vmovdqa64 zmmword ptr [rcx+768], zmm3
vmovdqa64 zmmword ptr [rcx+832], zmm4
vmovdqa64 zmm3, zmmword ptr [rdx+896]
vmovdqa64 zmm4, zmmword ptr [rdx+960]
vpsubq zmm3, zmm3, zmmword ptr [r8+896]
vpsubq zmm4, zmm4, zmmword ptr [r8+960]
vpsubq zmm3, zmm3, zmm1
vpsubq zmm4, zmm4, zmm2
vpsrlq zmm1, zmm3, 63
vpsrlq zmm2, zmm4, 63
vpandq zmm3, zmm3, zmm0
vpandq zmm4, zmm4, zmm0
vmovdqa64 zmmword ptr [rcx+896], zmm3
vmovdqa64 zmmword ptr [rcx+960], zmm4
vpxorq zmm3, zmm3, zmm3
vpcmpgtq k1, zmm1, zmm3
vpcmpgtq k2, zmm2, zmm3
vzeroupper
ret
mcl_c5_vsubPreA endp
mcl_c5_vadd proc export
sub rsp, 184
vmovups xmmword ptr [rsp], xmm5
vmovups xmmword ptr [rsp+16], xmm6
vmovups xmmword ptr [rsp+32], xmm7
vmovups xmmword ptr [rsp+48], xmm8
vmovups xmmword ptr [rsp+64], xmm9
vmovups xmmword ptr [rsp+80], xmm10
vmovups xmmword ptr [rsp+96], xmm11
vmovups xmmword ptr [rsp+112], xmm12
vmovups xmmword ptr [rsp+128], xmm13
vmovups xmmword ptr [rsp+144], xmm14
vmovups xmmword ptr [rsp+160], xmm15
mov r10, rcx
mov rax, 4503599627370495
vpbroadcastq zmm16, rax
lea rax, p
vmovdqa64 zmm0, zmmword ptr [rdx]
vpaddq zmm0, zmm0, zmmword ptr [r8]
vpsrlq zmm17, zmm0, 52
vpandq zmm0, zmm0, zmm16
vmovdqa64 zmm1, zmmword ptr [rdx+64]
vpaddq zmm1, zmm1, zmmword ptr [r8+64]
vpaddq zmm1, zmm1, zmm17
vpsrlq zmm17, zmm1, 52
vpandq zmm1, zmm1, zmm16
vmovdqa64 zmm2, zmmword ptr [rdx+128]
vpaddq zmm2, zmm2, zmmword ptr [r8+128]
vpaddq zmm2, zmm2, zmm17
vpsrlq zmm17, zmm2, 52
vpandq zmm2, zmm2, zmm16
vmovdqa64 zmm3, zmmword ptr [rdx+192]
vpaddq zmm3, zmm3, zmmword ptr [r8+192]
vpaddq zmm3, zmm3, zmm17
vpsrlq zmm17, zmm3, 52
vpandq zmm3, zmm3, zmm16
vmovdqa64 zmm4, zmmword ptr [rdx+256]
vpaddq zmm4, zmm4, zmmword ptr [r8+256]
vpaddq zmm4, zmm4, zmm17
vpsrlq zmm17, zmm4, 52
vpandq zmm4, zmm4, zmm16
vmovdqa64 zmm5, zmmword ptr [rdx+320]
vpaddq zmm5, zmm5, zmmword ptr [r8+320]
vpaddq zmm5, zmm5, zmm17
vpsrlq zmm17, zmm5, 52
vpandq zmm5, zmm5, zmm16
vmovdqa64 zmm6, zmmword ptr [rdx+384]
vpaddq zmm6, zmm6, zmmword ptr [r8+384]
vpaddq zmm6, zmm6, zmm17
vpsrlq zmm17, zmm6, 52
vpandq zmm6, zmm6, zmm16
vmovdqa64 zmm7, zmmword ptr [rdx+448]
vpaddq zmm7, zmm7, zmmword ptr [r8+448]
vpaddq zmm7, zmm7, zmm17
vpxorq zmm18, zmm18, zmm18
vpsubq zmm8, zmm0, qword bcst [rax]
vpsrlq zmm17, zmm8, 63
vpsubq zmm9, zmm1, qword bcst [rax+8]
vpsubq zmm9, zmm9, zmm17
vpsrlq zmm17, zmm9, 63
vpsubq zmm10, zmm2, qword bcst [rax+16]
vpsubq zmm10, zmm10, zmm17
vpsrlq zmm17, zmm10, 63
vpsubq zmm11, zmm3, qword bcst [rax+24]
vpsubq zmm11, zmm11, zmm17
vpsrlq zmm17, zmm11, 63
vpsubq zmm12, zmm4, qword bcst [rax+32]
vpsubq zmm12, zmm12, zmm17
vpsrlq zmm17, zmm12, 63
vpsubq zmm13, zmm5, qword bcst [rax+40]
vpsubq zmm13, zmm13, zmm17
vpsrlq zmm17, zmm13, 63
vpsubq zmm14, zmm6, qword bcst [rax+48]
vpsubq zmm14, zmm14, zmm17
vpsrlq zmm17, zmm14, 63
vpsubq zmm15, zmm7, qword bcst [rax+56]
vpsubq zmm15, zmm15, zmm17
vpsrlq zmm17, zmm15, 63
vpcmpeqq k1, zmm17, zmm18
vpandq zmm0{k1}, zmm8, zmm16
vpandq zmm1{k1}, zmm9, zmm16
vpandq zmm2{k1}, zmm10, zmm16
vpandq zmm3{k1}, zmm11, zmm16
vpandq zmm4{k1}, zmm12, zmm16
vpandq zmm5{k1}, zmm13, zmm16
vpandq zmm6{k1}, zmm14, zmm16
vpandq zmm7{k1}, zmm15, zmm16
vmovdqa64 zmmword ptr [r10], zmm0
vmovdqa64 zmmword ptr [r10+64], zmm1
vmovdqa64 zmmword ptr [r10+128], zmm2
vmovdqa64 zmmword ptr [r10+192], zmm3
vmovdqa64 zmmword ptr [r10+256], zmm4
vmovdqa64 zmmword ptr [r10+320], zmm5
vmovdqa64 zmmword ptr [r10+384], zmm6
vmovdqa64 zmmword ptr [r10+448], zmm7
vmovups xmm5, xmmword ptr [rsp]
vmovups xmm6, xmmword ptr [rsp+16]
vmovups xmm7, xmmword ptr [rsp+32]
vmovups xmm8, xmmword ptr [rsp+48]
vmovups xmm9, xmmword ptr [rsp+64]
vmovups xmm10, xmmword ptr [rsp+80]
vmovups xmm11, xmmword ptr [rsp+96]
vmovups xmm12, xmmword ptr [rsp+112]
vmovups xmm13, xmmword ptr [rsp+128]
vmovups xmm14, xmmword ptr [rsp+144]
vmovups xmm15, xmmword ptr [rsp+160]
vzeroupper
add rsp, 184
ret
mcl_c5_vadd endp
mcl_c5_vsub proc export
sub rsp, 184
vmovups xmmword ptr [rsp], xmm5
vmovups xmmword ptr [rsp+16], xmm6
vmovups xmmword ptr [rsp+32], xmm7
vmovups xmmword ptr [rsp+48], xmm8
vmovups xmmword ptr [rsp+64], xmm9
vmovups xmmword ptr [rsp+80], xmm10
vmovups xmmword ptr [rsp+96], xmm11
vmovups xmmword ptr [rsp+112], xmm12
vmovups xmmword ptr [rsp+128], xmm13
vmovups xmmword ptr [rsp+144], xmm14
vmovups xmmword ptr [rsp+160], xmm15
mov rax, 4503599627370495
vpbroadcastq zmm16, rax
lea rax, p
vmovdqa64 zmm0, zmmword ptr [rdx]
vpsubq zmm0, zmm0, zmmword ptr [r8]
vpsrlq zmm17, zmm0, 63
vpandq zmm0, zmm0, zmm16
vmovdqa64 zmm1, zmmword ptr [rdx+64]
vpsubq zmm1, zmm1, zmmword ptr [r8+64]
vpsubq zmm1, zmm1, zmm17
vpsrlq zmm17, zmm1, 63
vpandq zmm1, zmm1, zmm16
vmovdqa64 zmm2, zmmword ptr [rdx+128]
vpsubq zmm2, zmm2, zmmword ptr [r8+128]
vpsubq zmm2, zmm2, zmm17
vpsrlq zmm17, zmm2, 63
vpandq zmm2, zmm2, zmm16
vmovdqa64 zmm3, zmmword ptr [rdx+192]
vpsubq zmm3, zmm3, zmmword ptr [r8+192]
vpsubq zmm3, zmm3, zmm17
vpsrlq zmm17, zmm3, 63
vpandq zmm3, zmm3, zmm16
vmovdqa64 zmm4, zmmword ptr [rdx+256]
vpsubq zmm4, zmm4, zmmword ptr [r8+256]
vpsubq zmm4, zmm4, zmm17
vpsrlq zmm17, zmm4, 63
vpandq zmm4, zmm4, zmm16
vmovdqa64 zmm5, zmmword ptr [rdx+320]
vpsubq zmm5, zmm5, zmmword ptr [r8+320]
vpsubq zmm5, zmm5, zmm17
vpsrlq zmm17, zmm5, 63
vpandq zmm5, zmm5, zmm16
vmovdqa64 zmm6, zmmword ptr [rdx+384]
vpsubq zmm6, zmm6, zmmword ptr [r8+384]
vpsubq zmm6, zmm6, zmm17
vpsrlq zmm17, zmm6, 63
vpandq zmm6, zmm6, zmm16
vmovdqa64 zmm7, zmmword ptr [rdx+448]
vpsubq zmm7, zmm7, zmmword ptr [r8+448]
vpsubq zmm7, zmm7, zmm17
vpsrlq zmm17, zmm7, 63
vpandq zmm7, zmm7, zmm16
vpxorq zmm8, zmm8, zmm8
vpcmpgtq k1, zmm17, zmm8
vpaddq zmm8, zmm0, qword bcst [rax]
vpsrlq zmm17, zmm8, 52
vpandq zmm0{k1}, zmm8, zmm16
vpaddq zmm9, zmm1, qword bcst [rax+8]
vpaddq zmm9, zmm9, zmm17
vpsrlq zmm17, zmm9, 52
vpandq zmm1{k1}, zmm9, zmm16
vpaddq zmm10, zmm2, qword bcst [rax+16]
vpaddq zmm10, zmm10, zmm17
vpsrlq zmm17, zmm10, 52
vpandq zmm2{k1}, zmm10, zmm16
vpaddq zmm11, zmm3, qword bcst [rax+24]
vpaddq zmm11, zmm11, zmm17
vpsrlq zmm17, zmm11, 52
vpandq zmm3{k1}, zmm11, zmm16
vpaddq zmm12, zmm4, qword bcst [rax+32]
vpaddq zmm12, zmm12, zmm17
vpsrlq zmm17, zmm12, 52
vpandq zmm4{k1}, zmm12, zmm16
vpaddq zmm13, zmm5, qword bcst [rax+40]
vpaddq zmm13, zmm13, zmm17
vpsrlq zmm17, zmm13, 52
vpandq zmm5{k1}, zmm13, zmm16
vpaddq zmm14, zmm6, qword bcst [rax+48]
vpaddq zmm14, zmm14, zmm17
vpsrlq zmm17, zmm14, 52
vpandq zmm6{k1}, zmm14, zmm16
vpaddq zmm15, zmm7, qword bcst [rax+56]
vpaddq zmm15, zmm15, zmm17
vpandq zmm7{k1}, zmm15, zmm16
vmovdqa64 zmmword ptr [rcx], zmm0
vmovdqa64 zmmword ptr [rcx+64], zmm1
vmovdqa64 zmmword ptr [rcx+128], zmm2
vmovdqa64 zmmword ptr [rcx+192], zmm3
vmovdqa64 zmmword ptr [rcx+256], zmm4
vmovdqa64 zmmword ptr [rcx+320], zmm5
vmovdqa64 zmmword ptr [rcx+384], zmm6
vmovdqa64 zmmword ptr [rcx+448], zmm7
vmovups xmm5, xmmword ptr [rsp]
vmovups xmm6, xmmword ptr [rsp+16]
vmovups xmm7, xmmword ptr [rsp+32]
vmovups xmm8, xmmword ptr [rsp+48]
vmovups xmm9, xmmword ptr [rsp+64]
vmovups xmm10, xmmword ptr [rsp+80]
vmovups xmm11, xmmword ptr [rsp+96]
vmovups xmm12, xmmword ptr [rsp+112]
vmovups xmm13, xmmword ptr [rsp+128]
vmovups xmm14, xmmword ptr [rsp+144]
vmovups xmm15, xmmword ptr [rsp+160]
vzeroupper
add rsp, 184
ret
mcl_c5_vsub endp
mcl_c5_vmul proc export
sub rsp, 184
vmovups xmmword ptr [rsp], xmm5
vmovups xmmword ptr [rsp+16], xmm6
vmovups xmmword ptr [rsp+32], xmm7
vmovups xmmword ptr [rsp+48], xmm8
vmovups xmmword ptr [rsp+64], xmm9
vmovups xmmword ptr [rsp+80], xmm10
vmovups xmmword ptr [rsp+96], xmm11
vmovups xmmword ptr [rsp+112], xmm12
vmovups xmmword ptr [rsp+128], xmm13
vmovups xmmword ptr [rsp+144], xmm14
vmovups xmmword ptr [rsp+160], xmm15
mov r10, rcx
lea rax, ap
vmovdqa64 zmm20, zmmword ptr [rax]
vmovdqa64 zmm21, zmmword ptr [rax+64]
vmovdqa64 zmm22, zmmword ptr [rax+128]
vmovdqa64 zmm23, zmmword ptr [rax+192]
vmovdqa64 zmm24, zmmword ptr [rax+256]
vmovdqa64 zmm25, zmmword ptr [rax+320]
vmovdqa64 zmm26, zmmword ptr [rax+384]
vmovdqa64 zmm27, zmmword ptr [rax+448]
mov rax, 4503599627370495
vpbroadcastq zmm9, rax
lea r9, rp
vmovdqa64 zmm11, zmmword ptr [r8]
add r8, 64
vpxorq zmm0, zmm0, zmm0
vpmadd52luq zmm0, zmm11, zmmword ptr [rdx]
vpxorq zmm10, zmm10, zmm10
vpmadd52huq zmm10, zmm11, zmmword ptr [rdx]
vmovdqa64 zmm1, zmm10
vpmadd52luq zmm1, zmm11, zmmword ptr [rdx+64]
vpxorq zmm10, zmm10, zmm10
vpmadd52huq zmm10, zmm11, zmmword ptr [rdx+64]
vmovdqa64 zmm2, zmm10
vpmadd52luq zmm2, zmm11, zmmword ptr [rdx+128]
vpxorq zmm10, zmm10, zmm10
vpmadd52huq zmm10, zmm11, zmmword ptr [rdx+128]
vmovdqa64 zmm3, zmm10
vpmadd52luq zmm3, zmm11, zmmword ptr [rdx+192]
vpxorq zmm10, zmm10, zmm10
vpmadd52huq zmm10, zmm11, zmmword ptr [rdx+192]
vmovdqa64 zmm4, zmm10
vpmadd52luq zmm4, zmm11, zmmword ptr [rdx+256]
vpxorq zmm10, zmm10, zmm10
vpmadd52huq zmm10, zmm11, zmmword ptr [rdx+256]
vmovdqa64 zmm5, zmm10
vpmadd52luq zmm5, zmm11, zmmword ptr [rdx+320]
vpxorq zmm10, zmm10, zmm10
vpmadd52huq zmm10, zmm11, zmmword ptr [rdx+320]
vmovdqa64 zmm6, zmm10
vpmadd52luq zmm6, zmm11, zmmword ptr [rdx+384]
vpxorq zmm10, zmm10, zmm10
vpmadd52huq zmm10, zmm11, zmmword ptr [rdx+384]
vmovdqa64 zmm7, zmm10
vpmadd52luq zmm7, zmm11, zmmword ptr [rdx+448]
vpxorq zmm8, zmm8, zmm8
vpmadd52huq zmm8, zmm11, zmmword ptr [rdx+448]
vpxorq zmm11, zmm11, zmm11
vpmadd52luq zmm11, zmm0, qword bcst [r9]
vpmadd52luq zmm0, zmm11, zmm20
vpmadd52huq zmm1, zmm11, zmm20
vpmadd52luq zmm1, zmm11, zmm21
vpmadd52huq zmm2, zmm11, zmm21
vpmadd52luq zmm2, zmm11, zmm22
vpmadd52huq zmm3, zmm11, zmm22
vpmadd52luq zmm3, zmm11, zmm23
vpmadd52huq zmm4, zmm11, zmm23
vpmadd52luq zmm4, zmm11, zmm24
vpmadd52huq zmm5, zmm11, zmm24
vpmadd52luq zmm5, zmm11, zmm25
vpmadd52huq zmm6, zmm11, zmm25
vpmadd52luq zmm6, zmm11, zmm26
vpmadd52huq zmm7, zmm11, zmm26
vpmadd52luq zmm7, zmm11, zmm27
vpmadd52huq zmm8, zmm11, zmm27
mov ecx, 7
align 32
@L1:
mov rax, rdx
vmovdqa64 zmm11, zmmword ptr [r8]
add r8, 64
vmovdqa64 zmm10, zmm0
vmovdqa64 zmm0, zmm1
vmovdqa64 zmm1, zmm2
vmovdqa64 zmm2, zmm3
vmovdqa64 zmm3, zmm4
vmovdqa64 zmm4, zmm5
vmovdqa64 zmm5, zmm6
vmovdqa64 zmm6, zmm7
vmovdqa64 zmm7, zmm8
vpxorq zmm8, zmm8, zmm8
vpmadd52luq zmm0, zmm11, zmmword ptr [rax]
vpmadd52huq zmm1, zmm11, zmmword ptr [rax]
vpmadd52luq zmm1, zmm11, zmmword ptr [rax+64]
vpmadd52huq zmm2, zmm11, zmmword ptr [rax+64]
vpmadd52luq zmm2, zmm11, zmmword ptr [rax+128]
vpmadd52huq zmm3, zmm11, zmmword ptr [rax+128]
vpmadd52luq zmm3, zmm11, zmmword ptr [rax+192]
vpmadd52huq zmm4, zmm11, zmmword ptr [rax+192]
vpmadd52luq zmm4, zmm11, zmmword ptr [rax+256]
vpmadd52huq zmm5, zmm11, zmmword ptr [rax+256]
vpmadd52luq zmm5, zmm11, zmmword ptr [rax+320]
vpmadd52huq zmm6, zmm11, zmmword ptr [rax+320]
vpmadd52luq zmm6, zmm11, zmmword ptr [rax+384]
vpmadd52huq zmm7, zmm11, zmmword ptr [rax+384]
vpmadd52luq zmm7, zmm11, zmmword ptr [rax+448]
vpmadd52huq zmm8, zmm11, zmmword ptr [rax+448]
vpsrlq zmm11, zmm10, 52
vpaddq zmm0, zmm0, zmm11
vpxorq zmm11, zmm11, zmm11
vpmadd52luq zmm11, zmm0, qword bcst [r9]
vpmadd52luq zmm0, zmm11, zmm20
vpmadd52huq zmm1, zmm11, zmm20
vpmadd52luq zmm1, zmm11, zmm21
vpmadd52huq zmm2, zmm11, zmm21
vpmadd52luq zmm2, zmm11, zmm22
vpmadd52huq zmm3, zmm11, zmm22
vpmadd52luq zmm3, zmm11, zmm23
vpmadd52huq zmm4, zmm11, zmm23
vpmadd52luq zmm4, zmm11, zmm24
vpmadd52huq zmm5, zmm11, zmm24
vpmadd52luq zmm5, zmm11, zmm25
vpmadd52huq zmm6, zmm11, zmm25
vpmadd52luq zmm6, zmm11, zmm26
vpmadd52huq zmm7, zmm11, zmm26
vpmadd52luq zmm7, zmm11, zmm27
vpmadd52huq zmm8, zmm11, zmm27
dec ecx
jnz @L1
vpsrlq zmm11, zmm0, 52
vpaddq zmm1, zmm1, zmm11
vpandq zmm0, zmm0, zmm9
vpsrlq zmm11, zmm1, 52
vpaddq zmm2, zmm2, zmm11
vpandq zmm1, zmm1, zmm9
vpsrlq zmm11, zmm2, 52
vpaddq zmm3, zmm3, zmm11
vpandq zmm2, zmm2, zmm9
vpsrlq zmm11, zmm3, 52
vpaddq zmm4, zmm4, zmm11
vpandq zmm3, zmm3, zmm9
vpsrlq zmm11, zmm4, 52
vpaddq zmm5, zmm5, zmm11
vpandq zmm4, zmm4, zmm9
vpsrlq zmm11, zmm5, 52
vpaddq zmm6, zmm6, zmm11
vpandq zmm5, zmm5, zmm9
vpsrlq zmm11, zmm6, 52
vpaddq zmm7, zmm7, zmm11
vpandq zmm6, zmm6, zmm9
vpsrlq zmm11, zmm7, 52
vpaddq zmm8, zmm8, zmm11
vpandq zmm7, zmm7, zmm9
vpxorq zmm10, zmm10, zmm10
vpsubq zmm12, zmm1, zmm20
vpsrlq zmm11, zmm12, 63
vpsubq zmm13, zmm2, zmm21
vpsubq zmm13, zmm13, zmm11
vpsrlq zmm11, zmm13, 63
vpsubq zmm14, zmm3, zmm22
vpsubq zmm14, zmm14, zmm11
vpsrlq zmm11, zmm14, 63
vpsubq zmm15, zmm4, zmm23
vpsubq zmm15, zmm15, zmm11
vpsrlq zmm11, zmm15, 63
vpsubq zmm16, zmm5, zmm24
vpsubq zmm16, zmm16, zmm11
vpsrlq zmm11, zmm16, 63
vpsubq zmm17, zmm6, zmm25
vpsubq zmm17, zmm17, zmm11
vpsrlq zmm11, zmm17, 63
vpsubq zmm18, zmm7, zmm26
vpsubq zmm18, zmm18, zmm11
vpsrlq zmm11, zmm18, 63
vpsubq zmm19, zmm8, zmm27
vpsubq zmm19, zmm19, zmm11
vpsrlq zmm11, zmm19, 63
vpcmpeqq k1, zmm11, zmm10
vpandq zmm1{k1}, zmm12, zmm9
vpandq zmm2{k1}, zmm13, zmm9
vpandq zmm3{k1}, zmm14, zmm9
vpandq zmm4{k1}, zmm15, zmm9
vpandq zmm5{k1}, zmm16, zmm9
vpandq zmm6{k1}, zmm17, zmm9
vpandq zmm7{k1}, zmm18, zmm9
vpandq zmm8{k1}, zmm19, zmm9
vmovdqa64 zmmword ptr [r10], zmm1
vmovdqa64 zmmword ptr [r10+64], zmm2
vmovdqa64 zmmword ptr [r10+128], zmm3
vmovdqa64 zmmword ptr [r10+192], zmm4
vmovdqa64 zmmword ptr [r10+256], zmm5
vmovdqa64 zmmword ptr [r10+320], zmm6
vmovdqa64 zmmword ptr [r10+384], zmm7
vmovdqa64 zmmword ptr [r10+448], zmm8
vmovups xmm5, xmmword ptr [rsp]
vmovups xmm6, xmmword ptr [rsp+16]
vmovups xmm7, xmmword ptr [rsp+32]
vmovups xmm8, xmmword ptr [rsp+48]
vmovups xmm9, xmmword ptr [rsp+64]
vmovups xmm10, xmmword ptr [rsp+80]
vmovups xmm11, xmmword ptr [rsp+96]
vmovups xmm12, xmmword ptr [rsp+112]
vmovups xmm13, xmmword ptr [rsp+128]
vmovups xmm14, xmmword ptr [rsp+144]
vmovups xmm15, xmmword ptr [rsp+160]
vzeroupper
add rsp, 184
ret
mcl_c5_vmul endp
mcl_c5_vsqr proc export
sub rsp, 184
vmovups xmmword ptr [rsp], xmm5
vmovups xmmword ptr [rsp+16], xmm6
vmovups xmmword ptr [rsp+32], xmm7
vmovups xmmword ptr [rsp+48], xmm8
vmovups xmmword ptr [rsp+64], xmm9
vmovups xmmword ptr [rsp+80], xmm10
vmovups xmmword ptr [rsp+96], xmm11
vmovups xmmword ptr [rsp+112], xmm12
vmovups xmmword ptr [rsp+128], xmm13
vmovups xmmword ptr [rsp+144], xmm14
vmovups xmmword ptr [rsp+160], xmm15
mov r10, rcx
vmovdqa64 zmm19, zmmword ptr [rdx]
vmovdqa64 zmm20, zmmword ptr [rdx+64]
vmovdqa64 zmm21, zmmword ptr [rdx+128]
vmovdqa64 zmm22, zmmword ptr [rdx+192]
vmovdqa64 zmm23, zmmword ptr [rdx+256]
vmovdqa64 zmm24, zmmword ptr [rdx+320]
vmovdqa64 zmm25, zmmword ptr [rdx+384]
vmovdqa64 zmm26, zmmword ptr [rdx+448]
vpxorq zmm0, zmm0, zmm0
vpmadd52luq zmm0, zmm19, zmm19
vpxorq zmm1, zmm1, zmm1
vpxorq zmm2, zmm2, zmm2
vpmadd52luq zmm1, zmm20, zmm19
vpmadd52huq zmm2, zmm20, zmm19
vpxorq zmm3, zmm3, zmm3
vpxorq zmm4, zmm4, zmm4
vpmadd52luq zmm3, zmm21, zmm20
vpmadd52huq zmm4, zmm21, zmm20
vpxorq zmm5, zmm5, zmm5
vpxorq zmm6, zmm6, zmm6
vpmadd52luq zmm5, zmm22, zmm21
vpmadd52huq zmm6, zmm22, zmm21
vpxorq zmm7, zmm7, zmm7
vpxorq zmm8, zmm8, zmm8
vpmadd52luq zmm7, zmm23, zmm22
vpmadd52huq zmm8, zmm23, zmm22
vpxorq zmm9, zmm9, zmm9
vpxorq zmm10, zmm10, zmm10
vpmadd52luq zmm9, zmm24, zmm23
vpmadd52huq zmm10, zmm24, zmm23
vpxorq zmm11, zmm11, zmm11
vpxorq zmm12, zmm12, zmm12
vpmadd52luq zmm11, zmm25, zmm24
vpmadd52huq zmm12, zmm25, zmm24
vpxorq zmm13, zmm13, zmm13
vpxorq zmm14, zmm14, zmm14
vpmadd52luq zmm13, zmm26, zmm25
vpmadd52huq zmm14, zmm26, zmm25
vpmadd52luq zmm2, zmm21, zmm19
vpmadd52huq zmm3, zmm21, zmm19
vpmadd52luq zmm4, zmm22, zmm20
vpmadd52huq zmm5, zmm22, zmm20
vpmadd52luq zmm6, zmm23, zmm21
vpmadd52huq zmm7, zmm23, zmm21
vpmadd52luq zmm8, zmm24, zmm22
vpmadd52huq zmm9, zmm24, zmm22
vpmadd52luq zmm10, zmm25, zmm23
vpmadd52huq zmm11, zmm25, zmm23
vpmadd52luq zmm12, zmm26, zmm24
vpmadd52huq zmm13, zmm26, zmm24
vpmadd52luq zmm3, zmm22, zmm19
vpmadd52huq zmm4, zmm22, zmm19
vpmadd52luq zmm5, zmm23, zmm20
vpmadd52huq zmm6, zmm23, zmm20
vpmadd52luq zmm7, zmm24, zmm21
vpmadd52huq zmm8, zmm24, zmm21
vpmadd52luq zmm9, zmm25, zmm22
vpmadd52huq zmm10, zmm25, zmm22
vpmadd52luq zmm11, zmm26, zmm23
vpmadd52huq zmm12, zmm26, zmm23
vpmadd52luq zmm4, zmm23, zmm19
vpmadd52huq zmm5, zmm23, zmm19
vpmadd52luq zmm6, zmm24, zmm20
vpmadd52huq zmm7, zmm24, zmm20
vpmadd52luq zmm8, zmm25, zmm21
vpmadd52huq zmm9, zmm25, zmm21
vpmadd52luq zmm10, zmm26, zmm22
vpmadd52huq zmm11, zmm26, zmm22
vpmadd52luq zmm5, zmm24, zmm19
vpmadd52huq zmm6, zmm24, zmm19
vpmadd52luq zmm7, zmm25, zmm20
vpmadd52huq zmm8, zmm25, zmm20
vpmadd52luq zmm9, zmm26, zmm21
vpmadd52huq zmm10, zmm26, zmm21
vpmadd52luq zmm6, zmm25, zmm19
vpmadd52huq zmm7, zmm25, zmm19
vpmadd52luq zmm8, zmm26, zmm20
vpmadd52huq zmm9, zmm26, zmm20
vpmadd52luq zmm7, zmm26, zmm19
vpmadd52huq zmm8, zmm26, zmm19
vpaddq zmm1, zmm1, zmm1
vpaddq zmm2, zmm2, zmm2
vpaddq zmm3, zmm3, zmm3
vpaddq zmm4, zmm4, zmm4
vpaddq zmm5, zmm5, zmm5
vpaddq zmm6, zmm6, zmm6
vpaddq zmm7, zmm7, zmm7
vpaddq zmm8, zmm8, zmm8
vpaddq zmm9, zmm9, zmm9
vpaddq zmm10, zmm10, zmm10
vpaddq zmm11, zmm11, zmm11
vpaddq zmm12, zmm12, zmm12
vpaddq zmm13, zmm13, zmm13
vpaddq zmm14, zmm14, zmm14
vpmadd52huq zmm1, zmm19, zmm19
vpmadd52luq zmm2, zmm20, zmm20
vpmadd52huq zmm3, zmm20, zmm20
vpmadd52luq zmm4, zmm21, zmm21
vpmadd52huq zmm5, zmm21, zmm21
vpmadd52luq zmm6, zmm22, zmm22
vpmadd52huq zmm7, zmm22, zmm22
vpmadd52luq zmm8, zmm23, zmm23
vpmadd52huq zmm9, zmm23, zmm23
vpmadd52luq zmm10, zmm24, zmm24
vpmadd52huq zmm11, zmm24, zmm24
vpmadd52luq zmm12, zmm25, zmm25
vpmadd52huq zmm13, zmm25, zmm25
vpmadd52luq zmm14, zmm26, zmm26
vpxorq zmm15, zmm15, zmm15
vpmadd52huq zmm15, zmm26, zmm26
lea rax, ap
vmovdqa64 zmm19, zmmword ptr [rax]
vmovdqa64 zmm20, zmmword ptr [rax+64]
vmovdqa64 zmm21, zmmword ptr [rax+128]
vmovdqa64 zmm22, zmmword ptr [rax+192]
vmovdqa64 zmm23, zmmword ptr [rax+256]
vmovdqa64 zmm24, zmmword ptr [rax+320]
vmovdqa64 zmm25, zmmword ptr [rax+384]
vmovdqa64 zmm26, zmmword ptr [rax+448]
mov rax, 4503599627370495
vpbroadcastq zmm18, rax
vpbroadcastq zmm27, qword ptr rp
vpxorq zmm16, zmm16, zmm16
vpmadd52luq zmm16, zmm0, zmm27
vpmadd52luq zmm0, zmm16, zmm19
vpmadd52huq zmm1, zmm16, zmm19
vpmadd52luq zmm1, zmm16, zmm20
vpmadd52huq zmm2, zmm16, zmm20
vpmadd52luq zmm2, zmm16, zmm21
vpmadd52huq zmm3, zmm16, zmm21
vpmadd52luq zmm3, zmm16, zmm22
vpmadd52huq zmm4, zmm16, zmm22
vpmadd52luq zmm4, zmm16, zmm23
vpmadd52huq zmm5, zmm16, zmm23
vpmadd52luq zmm5, zmm16, zmm24
vpmadd52huq zmm6, zmm16, zmm24
vpmadd52luq zmm6, zmm16, zmm25
vpmadd52huq zmm7, zmm16, zmm25
vpmadd52luq zmm7, zmm16, zmm26
vpmadd52huq zmm8, zmm16, zmm26
vpsrlq zmm16, zmm0, 52
vpaddq zmm1, zmm1, zmm16
vpxorq zmm16, zmm16, zmm16
vpmadd52luq zmm16, zmm1, zmm27
vpmadd52luq zmm1, zmm16, zmm19
vpmadd52huq zmm2, zmm16, zmm19
vpmadd52luq zmm2, zmm16, zmm20
vpmadd52huq zmm3, zmm16, zmm20
vpmadd52luq zmm3, zmm16, zmm21
vpmadd52huq zmm4, zmm16, zmm21
vpmadd52luq zmm4, zmm16, zmm22
vpmadd52huq zmm5, zmm16, zmm22
vpmadd52luq zmm5, zmm16, zmm23
vpmadd52huq zmm6, zmm16, zmm23
vpmadd52luq zmm6, zmm16, zmm24
vpmadd52huq zmm7, zmm16, zmm24
vpmadd52luq zmm7, zmm16, zmm25
vpmadd52huq zmm8, zmm16, zmm25
vpmadd52luq zmm8, zmm16, zmm26
vpmadd52huq zmm9, zmm16, zmm26
vpsrlq zmm16, zmm1, 52
vpaddq zmm2, zmm2, zmm16
vpxorq zmm16, zmm16, zmm16
vpmadd52luq zmm16, zmm2, zmm27
vpmadd52luq zmm2, zmm16, zmm19
vpmadd52huq zmm3, zmm16, zmm19
vpmadd52luq zmm3, zmm16, zmm20
vpmadd52huq zmm4, zmm16, zmm20
vpmadd52luq zmm4, zmm16, zmm21
vpmadd52huq zmm5, zmm16, zmm21
vpmadd52luq zmm5, zmm16, zmm22
vpmadd52huq zmm6, zmm16, zmm22
vpmadd52luq zmm6, zmm16, zmm23
vpmadd52huq zmm7, zmm16, zmm23
vpmadd52luq zmm7, zmm16, zmm24
vpmadd52huq zmm8, zmm16, zmm24
vpmadd52luq zmm8, zmm16, zmm25
vpmadd52huq zmm9, zmm16, zmm25
vpmadd52luq zmm9, zmm16, zmm26
vpmadd52huq zmm10, zmm16, zmm26
vpsrlq zmm16, zmm2, 52
vpaddq zmm3, zmm3, zmm16
vpxorq zmm16, zmm16, zmm16
vpmadd52luq zmm16, zmm3, zmm27
vpmadd52luq zmm3, zmm16, zmm19
vpmadd52huq zmm4, zmm16, zmm19
vpmadd52luq zmm4, zmm16, zmm20
vpmadd52huq zmm5, zmm16, zmm20
vpmadd52luq zmm5, zmm16, zmm21
vpmadd52huq zmm6, zmm16, zmm21
vpmadd52luq zmm6, zmm16, zmm22
vpmadd52huq zmm7, zmm16, zmm22
vpmadd52luq zmm7, zmm16, zmm23
vpmadd52huq zmm8, zmm16, zmm23
vpmadd52luq zmm8, zmm16, zmm24
vpmadd52huq zmm9, zmm16, zmm24
vpmadd52luq zmm9, zmm16, zmm25
vpmadd52huq zmm10, zmm16, zmm25
vpmadd52luq zmm10, zmm16, zmm26
vpmadd52huq zmm11, zmm16, zmm26
vpsrlq zmm16, zmm3, 52
vpaddq zmm4, zmm4, zmm16
vpxorq zmm16, zmm16, zmm16
vpmadd52luq zmm16, zmm4, zmm27
vpmadd52luq zmm4, zmm16, zmm19
vpmadd52huq zmm5, zmm16, zmm19
vpmadd52luq zmm5, zmm16, zmm20
vpmadd52huq zmm6, zmm16, zmm20
vpmadd52luq zmm6, zmm16, zmm21
vpmadd52huq zmm7, zmm16, zmm21
vpmadd52luq zmm7, zmm16, zmm22
vpmadd52huq zmm8, zmm16, zmm22
vpmadd52luq zmm8, zmm16, zmm23
vpmadd52huq zmm9, zmm16, zmm23
vpmadd52luq zmm9, zmm16, zmm24
vpmadd52huq zmm10, zmm16, zmm24
vpmadd52luq zmm10, zmm16, zmm25
vpmadd52huq zmm11, zmm16, zmm25
vpmadd52luq zmm11, zmm16, zmm26
vpmadd52huq zmm12, zmm16, zmm26
vpsrlq zmm16, zmm4, 52
vpaddq zmm5, zmm5, zmm16
vpxorq zmm16, zmm16, zmm16
vpmadd52luq zmm16, zmm5, zmm27
vpmadd52luq zmm5, zmm16, zmm19
vpmadd52huq zmm6, zmm16, zmm19
vpmadd52luq zmm6, zmm16, zmm20
vpmadd52huq zmm7, zmm16, zmm20
vpmadd52luq zmm7, zmm16, zmm21
vpmadd52huq zmm8, zmm16, zmm21
vpmadd52luq zmm8, zmm16, zmm22
vpmadd52huq zmm9, zmm16, zmm22
vpmadd52luq zmm9, zmm16, zmm23
vpmadd52huq zmm10, zmm16, zmm23
vpmadd52luq zmm10, zmm16, zmm24
vpmadd52huq zmm11, zmm16, zmm24
vpmadd52luq zmm11, zmm16, zmm25
vpmadd52huq zmm12, zmm16, zmm25
vpmadd52luq zmm12, zmm16, zmm26
vpmadd52huq zmm13, zmm16, zmm26
vpsrlq zmm16, zmm5, 52
vpaddq zmm6, zmm6, zmm16
vpxorq zmm16, zmm16, zmm16
vpmadd52luq zmm16, zmm6, zmm27
vpmadd52luq zmm6, zmm16, zmm19
vpmadd52huq zmm7, zmm16, zmm19
vpmadd52luq zmm7, zmm16, zmm20
vpmadd52huq zmm8, zmm16, zmm20
vpmadd52luq zmm8, zmm16, zmm21
vpmadd52huq zmm9, zmm16, zmm21
vpmadd52luq zmm9, zmm16, zmm22
vpmadd52huq zmm10, zmm16, zmm22
vpmadd52luq zmm10, zmm16, zmm23
vpmadd52huq zmm11, zmm16, zmm23
vpmadd52luq zmm11, zmm16, zmm24
vpmadd52huq zmm12, zmm16, zmm24
vpmadd52luq zmm12, zmm16, zmm25
vpmadd52huq zmm13, zmm16, zmm25
vpmadd52luq zmm13, zmm16, zmm26
vpmadd52huq zmm14, zmm16, zmm26
vpsrlq zmm16, zmm6, 52
vpaddq zmm7, zmm7, zmm16
vpxorq zmm16, zmm16, zmm16
vpmadd52luq zmm16, zmm7, zmm27
vpmadd52luq zmm7, zmm16, zmm19
vpmadd52huq zmm8, zmm16, zmm19
vpmadd52luq zmm8, zmm16, zmm20
vpmadd52huq zmm9, zmm16, zmm20
vpmadd52luq zmm9, zmm16, zmm21
vpmadd52huq zmm10, zmm16, zmm21
vpmadd52luq zmm10, zmm16, zmm22
vpmadd52huq zmm11, zmm16, zmm22
vpmadd52luq zmm11, zmm16, zmm23
vpmadd52huq zmm12, zmm16, zmm23
vpmadd52luq zmm12, zmm16, zmm24
vpmadd52huq zmm13, zmm16, zmm24
vpmadd52luq zmm13, zmm16, zmm25
vpmadd52huq zmm14, zmm16, zmm25
vpmadd52luq zmm14, zmm16, zmm26
vpmadd52huq zmm15, zmm16, zmm26
vpsrlq zmm16, zmm7, 52
vpaddq zmm8, zmm8, zmm16
vpandq zmm7, zmm7, zmm18
vpsrlq zmm16, zmm8, 52
vpaddq zmm9, zmm9, zmm16
vpandq zmm8, zmm8, zmm18
vpsrlq zmm16, zmm9, 52
vpaddq zmm10, zmm10, zmm16
vpandq zmm9, zmm9, zmm18
vpsrlq zmm16, zmm10, 52
vpaddq zmm11, zmm11, zmm16
vpandq zmm10, zmm10, zmm18
vpsrlq zmm16, zmm11, 52
vpaddq zmm12, zmm12, zmm16
vpandq zmm11, zmm11, zmm18
vpsrlq zmm16, zmm12, 52
vpaddq zmm13, zmm13, zmm16
vpandq zmm12, zmm12, zmm18
vpsrlq zmm16, zmm13, 52
vpaddq zmm14, zmm14, zmm16
vpandq zmm13, zmm13, zmm18
vpsrlq zmm16, zmm14, 52
vpaddq zmm15, zmm15, zmm16
vpandq zmm14, zmm14, zmm18
vpxorq zmm27, zmm27, zmm27
vpsubq zmm0, zmm8, zmm19
vpsrlq zmm16, zmm0, 63
vpsubq zmm1, zmm9, zmm20
vpsubq zmm1, zmm1, zmm16
vpsrlq zmm16, zmm1, 63
vpsubq zmm2, zmm10, zmm21
vpsubq zmm2, zmm2, zmm16
vpsrlq zmm16, zmm2, 63
vpsubq zmm3, zmm11, zmm22
vpsubq zmm3, zmm3, zmm16
vpsrlq zmm16, zmm3, 63
vpsubq zmm4, zmm12, zmm23
vpsubq zmm4, zmm4, zmm16
vpsrlq zmm16, zmm4, 63
vpsubq zmm5, zmm13, zmm24
vpsubq zmm5, zmm5, zmm16
vpsrlq zmm16, zmm5, 63
vpsubq zmm6, zmm14, zmm25
vpsubq zmm6, zmm6, zmm16
vpsrlq zmm16, zmm6, 63
vpsubq zmm7, zmm15, zmm26
vpsubq zmm7, zmm7, zmm16
vpsrlq zmm16, zmm7, 63
vpcmpeqq k1, zmm16, zmm27
vpandq zmm8{k1}, zmm0, zmm18
vpandq zmm9{k1}, zmm1, zmm18
vpandq zmm10{k1}, zmm2, zmm18
vpandq zmm11{k1}, zmm3, zmm18
vpandq zmm12{k1}, zmm4, zmm18
vpandq zmm13{k1}, zmm5, zmm18
vpandq zmm14{k1}, zmm6, zmm18
vpandq zmm15{k1}, zmm7, zmm18
vmovdqa64 zmmword ptr [r10], zmm8
vmovdqa64 zmmword ptr [r10+64], zmm9
vmovdqa64 zmmword ptr [r10+128], zmm10
vmovdqa64 zmmword ptr [r10+192], zmm11
vmovdqa64 zmmword ptr [r10+256], zmm12
vmovdqa64 zmmword ptr [r10+320], zmm13
vmovdqa64 zmmword ptr [r10+384], zmm14
vmovdqa64 zmmword ptr [r10+448], zmm15
vmovups xmm5, xmmword ptr [rsp]
vmovups xmm6, xmmword ptr [rsp+16]
vmovups xmm7, xmmword ptr [rsp+32]
vmovups xmm8, xmmword ptr [rsp+48]
vmovups xmm9, xmmword ptr [rsp+64]
vmovups xmm10, xmmword ptr [rsp+80]
vmovups xmm11, xmmword ptr [rsp+96]
vmovups xmm12, xmmword ptr [rsp+112]
vmovups xmm13, xmmword ptr [rsp+128]
vmovups xmm14, xmmword ptr [rsp+144]
vmovups xmm15, xmmword ptr [rsp+160]
vzeroupper
add rsp, 184
ret
mcl_c5_vsqr endp
mcl_c5_vaddA proc export
sub rsp, 184
vmovups xmmword ptr [rsp], xmm5
vmovups xmmword ptr [rsp+16], xmm6
vmovups xmmword ptr [rsp+32], xmm7
vmovups xmmword ptr [rsp+48], xmm8
vmovups xmmword ptr [rsp+64], xmm9
vmovups xmmword ptr [rsp+80], xmm10
vmovups xmmword ptr [rsp+96], xmm11
vmovups xmmword ptr [rsp+112], xmm12
vmovups xmmword ptr [rsp+128], xmm13
vmovups xmmword ptr [rsp+144], xmm14
vmovups xmmword ptr [rsp+160], xmm15
mov r10, rcx
mov rax, 4503599627370495
vpbroadcastq zmm16, rax
lea rax, p
mov r9, 2
@L2:
vmovdqa64 zmm0, zmmword ptr [rdx]
vpaddq zmm0, zmm0, zmmword ptr [r8]
vpsrlq zmm17, zmm0, 52
vpandq zmm0, zmm0, zmm16
vmovdqa64 zmm1, zmmword ptr [rdx+128]
vpaddq zmm1, zmm1, zmmword ptr [r8+128]
vpaddq zmm1, zmm1, zmm17
vpsrlq zmm17, zmm1, 52
vpandq zmm1, zmm1, zmm16
vmovdqa64 zmm2, zmmword ptr [rdx+256]
vpaddq zmm2, zmm2, zmmword ptr [r8+256]
vpaddq zmm2, zmm2, zmm17
vpsrlq zmm17, zmm2, 52
vpandq zmm2, zmm2, zmm16
vmovdqa64 zmm3, zmmword ptr [rdx+384]
vpaddq zmm3, zmm3, zmmword ptr [r8+384]
vpaddq zmm3, zmm3, zmm17
vpsrlq zmm17, zmm3, 52
vpandq zmm3, zmm3, zmm16
vmovdqa64 zmm4, zmmword ptr [rdx+512]
vpaddq zmm4, zmm4, zmmword ptr [r8+512]
vpaddq zmm4, zmm4, zmm17
vpsrlq zmm17, zmm4, 52
vpandq zmm4, zmm4, zmm16
vmovdqa64 zmm5, zmmword ptr [rdx+640]
vpaddq zmm5, zmm5, zmmword ptr [r8+640]
vpaddq zmm5, zmm5, zmm17
vpsrlq zmm17, zmm5, 52
vpandq zmm5, zmm5, zmm16
vmovdqa64 zmm6, zmmword ptr [rdx+768]
vpaddq zmm6, zmm6, zmmword ptr [r8+768]
vpaddq zmm6, zmm6, zmm17
vpsrlq zmm17, zmm6, 52
vpandq zmm6, zmm6, zmm16
vmovdqa64 zmm7, zmmword ptr [rdx+896]
vpaddq zmm7, zmm7, zmmword ptr [r8+896]
vpaddq zmm7, zmm7, zmm17
vpxorq zmm18, zmm18, zmm18
vpsubq zmm8, zmm0, qword bcst [rax]
vpsrlq zmm17, zmm8, 63
vpsubq zmm9, zmm1, qword bcst [rax+8]
vpsubq zmm9, zmm9, zmm17
vpsrlq zmm17, zmm9, 63
vpsubq zmm10, zmm2, qword bcst [rax+16]
vpsubq zmm10, zmm10, zmm17
vpsrlq zmm17, zmm10, 63
vpsubq zmm11, zmm3, qword bcst [rax+24]
vpsubq zmm11, zmm11, zmm17
vpsrlq zmm17, zmm11, 63
vpsubq zmm12, zmm4, qword bcst [rax+32]
vpsubq zmm12, zmm12, zmm17
vpsrlq zmm17, zmm12, 63
vpsubq zmm13, zmm5, qword bcst [rax+40]
vpsubq zmm13, zmm13, zmm17
vpsrlq zmm17, zmm13, 63
vpsubq zmm14, zmm6, qword bcst [rax+48]
vpsubq zmm14, zmm14, zmm17
vpsrlq zmm17, zmm14, 63
vpsubq zmm15, zmm7, qword bcst [rax+56]
vpsubq zmm15, zmm15, zmm17
vpsrlq zmm17, zmm15, 63
vpcmpeqq k1, zmm17, zmm18
vpandq zmm0{k1}, zmm8, zmm16
vpandq zmm1{k1}, zmm9, zmm16
vpandq zmm2{k1}, zmm10, zmm16
vpandq zmm3{k1}, zmm11, zmm16
vpandq zmm4{k1}, zmm12, zmm16
vpandq zmm5{k1}, zmm13, zmm16
vpandq zmm6{k1}, zmm14, zmm16
vpandq zmm7{k1}, zmm15, zmm16
vmovdqa64 zmmword ptr [r10], zmm0
vmovdqa64 zmmword ptr [r10+128], zmm1
vmovdqa64 zmmword ptr [r10+256], zmm2
vmovdqa64 zmmword ptr [r10+384], zmm3
vmovdqa64 zmmword ptr [r10+512], zmm4
vmovdqa64 zmmword ptr [r10+640], zmm5
vmovdqa64 zmmword ptr [r10+768], zmm6
vmovdqa64 zmmword ptr [r10+896], zmm7
add rdx, 64
add r8, 64
add r10, 64
sub r9, 1
jnz @L2
vmovups xmm5, xmmword ptr [rsp]
vmovups xmm6, xmmword ptr [rsp+16]
vmovups xmm7, xmmword ptr [rsp+32]
vmovups xmm8, xmmword ptr [rsp+48]
vmovups xmm9, xmmword ptr [rsp+64]
vmovups xmm10, xmmword ptr [rsp+80]
vmovups xmm11, xmmword ptr [rsp+96]
vmovups xmm12, xmmword ptr [rsp+112]
vmovups xmm13, xmmword ptr [rsp+128]
vmovups xmm14, xmmword ptr [rsp+144]
vmovups xmm15, xmmword ptr [rsp+160]
vzeroupper
add rsp, 184
ret
mcl_c5_vaddA endp
mcl_c5_vsubA proc export
sub rsp, 184
vmovups xmmword ptr [rsp], xmm5
vmovups xmmword ptr [rsp+16], xmm6
vmovups xmmword ptr [rsp+32], xmm7
vmovups xmmword ptr [rsp+48], xmm8
vmovups xmmword ptr [rsp+64], xmm9
vmovups xmmword ptr [rsp+80], xmm10
vmovups xmmword ptr [rsp+96], xmm11
vmovups xmmword ptr [rsp+112], xmm12
vmovups xmmword ptr [rsp+128], xmm13
vmovups xmmword ptr [rsp+144], xmm14
vmovups xmmword ptr [rsp+160], xmm15
mov rax, 4503599627370495
vpbroadcastq zmm24, rax
lea rax, p
vmovdqa64 zmm0, zmmword ptr [rdx]
vmovdqa64 zmm1, zmmword ptr [rdx+64]
vpsubq zmm0, zmm0, zmmword ptr [r8]
vpsubq zmm1, zmm1, zmmword ptr [r8+64]
vpsrlq zmm25, zmm0, 63
vpsrlq zmm26, zmm1, 63
vpandq zmm0, zmm0, zmm24
vpandq zmm1, zmm1, zmm24
vmovdqa64 zmm2, zmmword ptr [rdx+128]
vmovdqa64 zmm3, zmmword ptr [rdx+192]
vpsubq zmm2, zmm2, zmmword ptr [r8+128]
vpsubq zmm3, zmm3, zmmword ptr [r8+192]
vpsubq zmm2, zmm2, zmm25
vpsubq zmm3, zmm3, zmm26
vpsrlq zmm25, zmm2, 63
vpsrlq zmm26, zmm3, 63
vpandq zmm2, zmm2, zmm24
vpandq zmm3, zmm3, zmm24
vmovdqa64 zmm4, zmmword ptr [rdx+256]
vmovdqa64 zmm5, zmmword ptr [rdx+320]
vpsubq zmm4, zmm4, zmmword ptr [r8+256]
vpsubq zmm5, zmm5, zmmword ptr [r8+320]
vpsubq zmm4, zmm4, zmm25
vpsubq zmm5, zmm5, zmm26
vpsrlq zmm25, zmm4, 63
vpsrlq zmm26, zmm5, 63
vpandq zmm4, zmm4, zmm24
vpandq zmm5, zmm5, zmm24
vmovdqa64 zmm6, zmmword ptr [rdx+384]
vmovdqa64 zmm7, zmmword ptr [rdx+448]
vpsubq zmm6, zmm6, zmmword ptr [r8+384]
vpsubq zmm7, zmm7, zmmword ptr [r8+448]
vpsubq zmm6, zmm6, zmm25
vpsubq zmm7, zmm7, zmm26
vpsrlq zmm25, zmm6, 63
vpsrlq zmm26, zmm7, 63
vpandq zmm6, zmm6, zmm24
vpandq zmm7, zmm7, zmm24
vmovdqa64 zmm8, zmmword ptr [rdx+512]
vmovdqa64 zmm9, zmmword ptr [rdx+576]
vpsubq zmm8, zmm8, zmmword ptr [r8+512]
vpsubq zmm9, zmm9, zmmword ptr [r8+576]
vpsubq zmm8, zmm8, zmm25
vpsubq zmm9, zmm9, zmm26
vpsrlq zmm25, zmm8, 63
vpsrlq zmm26, zmm9, 63
vpandq zmm8, zmm8, zmm24
vpandq zmm9, zmm9, zmm24
vmovdqa64 zmm10, zmmword ptr [rdx+640]
vmovdqa64 zmm11, zmmword ptr [rdx+704]
vpsubq zmm10, zmm10, zmmword ptr [r8+640]
vpsubq zmm11, zmm11, zmmword ptr [r8+704]
vpsubq zmm10, zmm10, zmm25
vpsubq zmm11, zmm11, zmm26
vpsrlq zmm25, zmm10, 63
vpsrlq zmm26, zmm11, 63
vpandq zmm10, zmm10, zmm24
vpandq zmm11, zmm11, zmm24
vmovdqa64 zmm12, zmmword ptr [rdx+768]
vmovdqa64 zmm13, zmmword ptr [rdx+832]
vpsubq zmm12, zmm12, zmmword ptr [r8+768]
vpsubq zmm13, zmm13, zmmword ptr [r8+832]
vpsubq zmm12, zmm12, zmm25
vpsubq zmm13, zmm13, zmm26
vpsrlq zmm25, zmm12, 63
vpsrlq zmm26, zmm13, 63
vpandq zmm12, zmm12, zmm24
vpandq zmm13, zmm13, zmm24
vmovdqa64 zmm14, zmmword ptr [rdx+896]
vmovdqa64 zmm15, zmmword ptr [rdx+960]
vpsubq zmm14, zmm14, zmmword ptr [r8+896]
vpsubq zmm15, zmm15, zmmword ptr [r8+960]
vpsubq zmm14, zmm14, zmm25
vpsubq zmm15, zmm15, zmm26
vpsrlq zmm25, zmm14, 63
vpsrlq zmm26, zmm15, 63
vpandq zmm14, zmm14, zmm24
vpandq zmm15, zmm15, zmm24
vpxorq zmm16, zmm16, zmm16
vpcmpgtq k1, zmm25, zmm16
vpcmpgtq k2, zmm26, zmm16
vpaddq zmm16, zmm0, qword bcst [rax]
vpsrlq zmm25, zmm16, 52
vpandq zmm0{k1}, zmm16, zmm24
vpaddq zmm17, zmm2, qword bcst [rax+8]
vpaddq zmm17, zmm17, zmm25
vpsrlq zmm25, zmm17, 52
vpandq zmm2{k1}, zmm17, zmm24
vpaddq zmm18, zmm4, qword bcst [rax+16]
vpaddq zmm18, zmm18, zmm25
vpsrlq zmm25, zmm18, 52
vpandq zmm4{k1}, zmm18, zmm24
vpaddq zmm19, zmm6, qword bcst [rax+24]
vpaddq zmm19, zmm19, zmm25
vpsrlq zmm25, zmm19, 52
vpandq zmm6{k1}, zmm19, zmm24
vpaddq zmm20, zmm8, qword bcst [rax+32]
vpaddq zmm20, zmm20, zmm25
vpsrlq zmm25, zmm20, 52
vpandq zmm8{k1}, zmm20, zmm24
vpaddq zmm21, zmm10, qword bcst [rax+40]
vpaddq zmm21, zmm21, zmm25
vpsrlq zmm25, zmm21, 52
vpandq zmm10{k1}, zmm21, zmm24
vpaddq zmm22, zmm12, qword bcst [rax+48]
vpaddq zmm22, zmm22, zmm25
vpsrlq zmm25, zmm22, 52
vpandq zmm12{k1}, zmm22, zmm24
vpaddq zmm23, zmm14, qword bcst [rax+56]
vpaddq zmm23, zmm23, zmm25
vpandq zmm14{k1}, zmm23, zmm24
vpaddq zmm16, zmm1, qword bcst [rax]
vpsrlq zmm25, zmm16, 52
vpandq zmm1{k2}, zmm16, zmm24
vpaddq zmm17, zmm3, qword bcst [rax+8]
vpaddq zmm17, zmm17, zmm25
vpsrlq zmm25, zmm17, 52
vpandq zmm3{k2}, zmm17, zmm24
vpaddq zmm18, zmm5, qword bcst [rax+16]
vpaddq zmm18, zmm18, zmm25
vpsrlq zmm25, zmm18, 52
vpandq zmm5{k2}, zmm18, zmm24
vpaddq zmm19, zmm7, qword bcst [rax+24]
vpaddq zmm19, zmm19, zmm25
vpsrlq zmm25, zmm19, 52
vpandq zmm7{k2}, zmm19, zmm24
vpaddq zmm20, zmm9, qword bcst [rax+32]
vpaddq zmm20, zmm20, zmm25
vpsrlq zmm25, zmm20, 52
vpandq zmm9{k2}, zmm20, zmm24
vpaddq zmm21, zmm11, qword bcst [rax+40]
vpaddq zmm21, zmm21, zmm25
vpsrlq zmm25, zmm21, 52
vpandq zmm11{k2}, zmm21, zmm24
vpaddq zmm22, zmm13, qword bcst [rax+48]
vpaddq zmm22, zmm22, zmm25
vpsrlq zmm25, zmm22, 52
vpandq zmm13{k2}, zmm22, zmm24
vpaddq zmm23, zmm15, qword bcst [rax+56]
vpaddq zmm23, zmm23, zmm25
vpandq zmm15{k2}, zmm23, zmm24
vmovdqa64 zmmword ptr [rcx], zmm0
vmovdqa64 zmmword ptr [rcx+64], zmm1
vmovdqa64 zmmword ptr [rcx+128], zmm2
vmovdqa64 zmmword ptr [rcx+192], zmm3
vmovdqa64 zmmword ptr [rcx+256], zmm4
vmovdqa64 zmmword ptr [rcx+320], zmm5
vmovdqa64 zmmword ptr [rcx+384], zmm6
vmovdqa64 zmmword ptr [rcx+448], zmm7
vmovdqa64 zmmword ptr [rcx+512], zmm8
vmovdqa64 zmmword ptr [rcx+576], zmm9
vmovdqa64 zmmword ptr [rcx+640], zmm10
vmovdqa64 zmmword ptr [rcx+704], zmm11
vmovdqa64 zmmword ptr [rcx+768], zmm12
vmovdqa64 zmmword ptr [rcx+832], zmm13
vmovdqa64 zmmword ptr [rcx+896], zmm14
vmovdqa64 zmmword ptr [rcx+960], zmm15
vmovups xmm5, xmmword ptr [rsp]
vmovups xmm6, xmmword ptr [rsp+16]
vmovups xmm7, xmmword ptr [rsp+32]
vmovups xmm8, xmmword ptr [rsp+48]
vmovups xmm9, xmmword ptr [rsp+64]
vmovups xmm10, xmmword ptr [rsp+80]
vmovups xmm11, xmmword ptr [rsp+96]
vmovups xmm12, xmmword ptr [rsp+112]
vmovups xmm13, xmmword ptr [rsp+128]
vmovups xmm14, xmmword ptr [rsp+144]
vmovups xmm15, xmmword ptr [rsp+160]
vzeroupper
add rsp, 184
ret
mcl_c5_vsubA endp
mcl_c5_vmulA proc export
sub rsp, 184
vmovups xmmword ptr [rsp], xmm5
vmovups xmmword ptr [rsp+16], xmm6
vmovups xmmword ptr [rsp+32], xmm7
vmovups xmmword ptr [rsp+48], xmm8
vmovups xmmword ptr [rsp+64], xmm9
vmovups xmmword ptr [rsp+80], xmm10
vmovups xmmword ptr [rsp+96], xmm11
vmovups xmmword ptr [rsp+112], xmm12
vmovups xmmword ptr [rsp+128], xmm13
vmovups xmmword ptr [rsp+144], xmm14
vmovups xmmword ptr [rsp+160], xmm15
lea rax, ap
vmovdqa64 zmm23, zmmword ptr [rax]
vmovdqa64 zmm24, zmmword ptr [rax+64]
vmovdqa64 zmm25, zmmword ptr [rax+128]
vmovdqa64 zmm26, zmmword ptr [rax+192]
vmovdqa64 zmm27, zmmword ptr [rax+256]
vmovdqa64 zmm28, zmmword ptr [rax+320]
vmovdqa64 zmm29, zmmword ptr [rax+384]
vmovdqa64 zmm30, zmmword ptr [rax+448]
mov rax, 4503599627370495
vpbroadcastq zmm18, rax
lea r9, rp
vmovdqa64 zmm21, zmmword ptr [r8]
vmovdqa64 zmm22, zmmword ptr [r8+64]
add r8, 128
vpxorq zmm0, zmm0, zmm0
vpxorq zmm1, zmm1, zmm1
vpmadd52luq zmm0, zmm21, zmmword ptr [rdx]
vpmadd52luq zmm1, zmm22, zmmword ptr [rdx+64]
vpxorq zmm19, zmm19, zmm19
vpxorq zmm20, zmm20, zmm20
vpmadd52huq zmm19, zmm21, zmmword ptr [rdx]
vpmadd52huq zmm20, zmm22, zmmword ptr [rdx+64]
vmovdqa64 zmm2, zmm19
vmovdqa64 zmm3, zmm20
vpmadd52luq zmm2, zmm21, zmmword ptr [rdx+128]
vpmadd52luq zmm3, zmm22, zmmword ptr [rdx+192]
vpxorq zmm19, zmm19, zmm19
vpxorq zmm20, zmm20, zmm20
vpmadd52huq zmm19, zmm21, zmmword ptr [rdx+128]
vpmadd52huq zmm20, zmm22, zmmword ptr [rdx+192]
vmovdqa64 zmm4, zmm19
vmovdqa64 zmm5, zmm20
vpmadd52luq zmm4, zmm21, zmmword ptr [rdx+256]
vpmadd52luq zmm5, zmm22, zmmword ptr [rdx+320]
vpxorq zmm19, zmm19, zmm19
vpxorq zmm20, zmm20, zmm20
vpmadd52huq zmm19, zmm21, zmmword ptr [rdx+256]
vpmadd52huq zmm20, zmm22, zmmword ptr [rdx+320]
vmovdqa64 zmm6, zmm19
vmovdqa64 zmm7, zmm20
vpmadd52luq zmm6, zmm21, zmmword ptr [rdx+384]
vpmadd52luq zmm7, zmm22, zmmword ptr [rdx+448]
vpxorq zmm19, zmm19, zmm19
vpxorq zmm20, zmm20, zmm20
vpmadd52huq zmm19, zmm21, zmmword ptr [rdx+384]
vpmadd52huq zmm20, zmm22, zmmword ptr [rdx+448]
vmovdqa64 zmm8, zmm19
vmovdqa64 zmm9, zmm20
vpmadd52luq zmm8, zmm21, zmmword ptr [rdx+512]
vpmadd52luq zmm9, zmm22, zmmword ptr [rdx+576]
vpxorq zmm19, zmm19, zmm19
vpxorq zmm20, zmm20, zmm20
vpmadd52huq zmm19, zmm21, zmmword ptr [rdx+512]
vpmadd52huq zmm20, zmm22, zmmword ptr [rdx+576]
vmovdqa64 zmm10, zmm19
vmovdqa64 zmm11, zmm20
vpmadd52luq zmm10, zmm21, zmmword ptr [rdx+640]
vpmadd52luq zmm11, zmm22, zmmword ptr [rdx+704]
vpxorq zmm19, zmm19, zmm19
vpxorq zmm20, zmm20, zmm20
vpmadd52huq zmm19, zmm21, zmmword ptr [rdx+640]
vpmadd52huq zmm20, zmm22, zmmword ptr [rdx+704]
vmovdqa64 zmm12, zmm19
vmovdqa64 zmm13, zmm20
vpmadd52luq zmm12, zmm21, zmmword ptr [rdx+768]
vpmadd52luq zmm13, zmm22, zmmword ptr [rdx+832]
vpxorq zmm19, zmm19, zmm19
vpxorq zmm20, zmm20, zmm20
vpmadd52huq zmm19, zmm21, zmmword ptr [rdx+768]
vpmadd52huq zmm20, zmm22, zmmword ptr [rdx+832]
vmovdqa64 zmm14, zmm19
vmovdqa64 zmm15, zmm20
vpmadd52luq zmm14, zmm21, zmmword ptr [rdx+896]
vpmadd52luq zmm15, zmm22, zmmword ptr [rdx+960]
vpxorq zmm16, zmm16, zmm16
vpxorq zmm17, zmm17, zmm17
vpmadd52huq zmm16, zmm21, zmmword ptr [rdx+896]
vpmadd52huq zmm17, zmm22, zmmword ptr [rdx+960]
vpxorq zmm21, zmm21, zmm21
vpxorq zmm22, zmm22, zmm22
vpmadd52luq zmm21, zmm0, qword bcst [r9]
vpmadd52luq zmm22, zmm1, qword bcst [r9]
vpmadd52luq zmm0, zmm21, zmm23
vpmadd52luq zmm1, zmm22, zmm23
vpmadd52huq zmm2, zmm21, zmm23
vpmadd52huq zmm3, zmm22, zmm23
vpmadd52luq zmm2, zmm21, zmm24
vpmadd52luq zmm3, zmm22, zmm24
vpmadd52huq zmm4, zmm21, zmm24
vpmadd52huq zmm5, zmm22, zmm24
vpmadd52luq zmm4, zmm21, zmm25
vpmadd52luq zmm5, zmm22, zmm25
vpmadd52huq zmm6, zmm21, zmm25
vpmadd52huq zmm7, zmm22, zmm25
vpmadd52luq zmm6, zmm21, zmm26
vpmadd52luq zmm7, zmm22, zmm26
vpmadd52huq zmm8, zmm21, zmm26
vpmadd52huq zmm9, zmm22, zmm26
vpmadd52luq zmm8, zmm21, zmm27
vpmadd52luq zmm9, zmm22, zmm27
vpmadd52huq zmm10, zmm21, zmm27
vpmadd52huq zmm11, zmm22, zmm27
vpmadd52luq zmm10, zmm21, zmm28
vpmadd52luq zmm11, zmm22, zmm28
vpmadd52huq zmm12, zmm21, zmm28
vpmadd52huq zmm13, zmm22, zmm28
vpmadd52luq zmm12, zmm21, zmm29
vpmadd52luq zmm13, zmm22, zmm29
vpmadd52huq zmm14, zmm21, zmm29
vpmadd52huq zmm15, zmm22, zmm29
vpmadd52luq zmm14, zmm21, zmm30
vpmadd52luq zmm15, zmm22, zmm30
vpmadd52huq zmm16, zmm21, zmm30
vpmadd52huq zmm17, zmm22, zmm30
mov r10, 7
align 32
@L3:
mov rax, rdx
vmovdqa64 zmm21, zmmword ptr [r8]
vmovdqa64 zmm22, zmmword ptr [r8+64]
add r8, 128
vmovdqa64 zmm19, zmm0
vmovdqa64 zmm20, zmm1
vmovdqa64 zmm0, zmm2
vmovdqa64 zmm1, zmm3
vmovdqa64 zmm2, zmm4
vmovdqa64 zmm3, zmm5
vmovdqa64 zmm4, zmm6
vmovdqa64 zmm5, zmm7
vmovdqa64 zmm6, zmm8
vmovdqa64 zmm7, zmm9
vmovdqa64 zmm8, zmm10
vmovdqa64 zmm9, zmm11
vmovdqa64 zmm10, zmm12
vmovdqa64 zmm11, zmm13
vmovdqa64 zmm12, zmm14
vmovdqa64 zmm13, zmm15
vmovdqa64 zmm14, zmm16
vmovdqa64 zmm15, zmm17
vpxorq zmm16, zmm16, zmm16
vpxorq zmm17, zmm17, zmm17
vpmadd52luq zmm0, zmm21, zmmword ptr [rax]
vpmadd52luq zmm1, zmm22, zmmword ptr [rax+64]
vpmadd52huq zmm2, zmm21, zmmword ptr [rax]
vpmadd52huq zmm3, zmm22, zmmword ptr [rax+64]
vpmadd52luq zmm2, zmm21, zmmword ptr [rax+128]
vpmadd52luq zmm3, zmm22, zmmword ptr [rax+192]
vpmadd52huq zmm4, zmm21, zmmword ptr [rax+128]
vpmadd52huq zmm5, zmm22, zmmword ptr [rax+192]
vpmadd52luq zmm4, zmm21, zmmword ptr [rax+256]
vpmadd52luq zmm5, zmm22, zmmword ptr [rax+320]
vpmadd52huq zmm6, zmm21, zmmword ptr [rax+256]
vpmadd52huq zmm7, zmm22, zmmword ptr [rax+320]
vpmadd52luq zmm6, zmm21, zmmword ptr [rax+384]
vpmadd52luq zmm7, zmm22, zmmword ptr [rax+448]
vpmadd52huq zmm8, zmm21, zmmword ptr [rax+384]
vpmadd52huq zmm9, zmm22, zmmword ptr [rax+448]
vpmadd52luq zmm8, zmm21, zmmword ptr [rax+512]
vpmadd52luq zmm9, zmm22, zmmword ptr [rax+576]
vpmadd52huq zmm10, zmm21, zmmword ptr [rax+512]
vpmadd52huq zmm11, zmm22, zmmword ptr [rax+576]
vpmadd52luq zmm10, zmm21, zmmword ptr [rax+640]
vpmadd52luq zmm11, zmm22, zmmword ptr [rax+704]
vpmadd52huq zmm12, zmm21, zmmword ptr [rax+640]
vpmadd52huq zmm13, zmm22, zmmword ptr [rax+704]
vpmadd52luq zmm12, zmm21, zmmword ptr [rax+768]
vpmadd52luq zmm13, zmm22, zmmword ptr [rax+832]
vpmadd52huq zmm14, zmm21, zmmword ptr [rax+768]
vpmadd52huq zmm15, zmm22, zmmword ptr [rax+832]
vpmadd52luq zmm14, zmm21, zmmword ptr [rax+896]
vpmadd52luq zmm15, zmm22, zmmword ptr [rax+960]
vpmadd52huq zmm16, zmm21, zmmword ptr [rax+896]
vpmadd52huq zmm17, zmm22, zmmword ptr [rax+960]
vpsrlq zmm21, zmm19, 52
vpsrlq zmm22, zmm20, 52
vpaddq zmm0, zmm0, zmm21
vpaddq zmm1, zmm1, zmm22
vpxorq zmm21, zmm21, zmm21
vpxorq zmm22, zmm22, zmm22
vpmadd52luq zmm21, zmm0, qword bcst [r9]
vpmadd52luq zmm22, zmm1, qword bcst [r9]
vpmadd52luq zmm0, zmm21, zmm23
vpmadd52luq zmm1, zmm22, zmm23
vpmadd52huq zmm2, zmm21, zmm23
vpmadd52huq zmm3, zmm22, zmm23
vpmadd52luq zmm2, zmm21, zmm24
vpmadd52luq zmm3, zmm22, zmm24
vpmadd52huq zmm4, zmm21, zmm24
vpmadd52huq zmm5, zmm22, zmm24
vpmadd52luq zmm4, zmm21, zmm25
vpmadd52luq zmm5, zmm22, zmm25
vpmadd52huq zmm6, zmm21, zmm25
vpmadd52huq zmm7, zmm22, zmm25
vpmadd52luq zmm6, zmm21, zmm26
vpmadd52luq zmm7, zmm22, zmm26
vpmadd52huq zmm8, zmm21, zmm26
vpmadd52huq zmm9, zmm22, zmm26
vpmadd52luq zmm8, zmm21, zmm27
vpmadd52luq zmm9, zmm22, zmm27
vpmadd52huq zmm10, zmm21, zmm27
vpmadd52huq zmm11, zmm22, zmm27
vpmadd52luq zmm10, zmm21, zmm28
vpmadd52luq zmm11, zmm22, zmm28
vpmadd52huq zmm12, zmm21, zmm28
vpmadd52huq zmm13, zmm22, zmm28
vpmadd52luq zmm12, zmm21, zmm29
vpmadd52luq zmm13, zmm22, zmm29
vpmadd52huq zmm14, zmm21, zmm29
vpmadd52huq zmm15, zmm22, zmm29
vpmadd52luq zmm14, zmm21, zmm30
vpmadd52luq zmm15, zmm22, zmm30
vpmadd52huq zmm16, zmm21, zmm30
vpmadd52huq zmm17, zmm22, zmm30
dec r10
jnz @L3
vpsrlq zmm21, zmm0, 52
vpsrlq zmm22, zmm1, 52
vpaddq zmm2, zmm2, zmm21
vpaddq zmm3, zmm3, zmm22
vpandq zmm0, zmm0, zmm18
vpandq zmm1, zmm1, zmm18
vpsrlq zmm21, zmm2, 52
vpsrlq zmm22, zmm3, 52
vpaddq zmm4, zmm4, zmm21
vpaddq zmm5, zmm5, zmm22
vpandq zmm2, zmm2, zmm18
vpandq zmm3, zmm3, zmm18
vpsrlq zmm21, zmm4, 52
vpsrlq zmm22, zmm5, 52
vpaddq zmm6, zmm6, zmm21
vpaddq zmm7, zmm7, zmm22
vpandq zmm4, zmm4, zmm18
vpandq zmm5, zmm5, zmm18
vpsrlq zmm21, zmm6, 52
vpsrlq zmm22, zmm7, 52
vpaddq zmm8, zmm8, zmm21
vpaddq zmm9, zmm9, zmm22
vpandq zmm6, zmm6, zmm18
vpandq zmm7, zmm7, zmm18
vpsrlq zmm21, zmm8, 52
vpsrlq zmm22, zmm9, 52
vpaddq zmm10, zmm10, zmm21
vpaddq zmm11, zmm11, zmm22
vpandq zmm8, zmm8, zmm18
vpandq zmm9, zmm9, zmm18
vpsrlq zmm21, zmm10, 52
vpsrlq zmm22, zmm11, 52
vpaddq zmm12, zmm12, zmm21
vpaddq zmm13, zmm13, zmm22
vpandq zmm10, zmm10, zmm18
vpandq zmm11, zmm11, zmm18
vpsrlq zmm21, zmm12, 52
vpsrlq zmm22, zmm13, 52
vpaddq zmm14, zmm14, zmm21
vpaddq zmm15, zmm15, zmm22
vpandq zmm12, zmm12, zmm18
vpandq zmm13, zmm13, zmm18
vpsrlq zmm21, zmm14, 52
vpsrlq zmm22, zmm15, 52
vpaddq zmm16, zmm16, zmm21
vpaddq zmm17, zmm17, zmm22
vpandq zmm14, zmm14, zmm18
vpandq zmm15, zmm15, zmm18
lea rax, p
vpxorq zmm19, zmm19, zmm19
vpsubq zmm23, zmm2, zmm23
vpsrlq zmm21, zmm23, 63
vpsubq zmm24, zmm4, zmm24
vpsubq zmm24, zmm24, zmm21
vpsrlq zmm21, zmm24, 63
vpsubq zmm25, zmm6, zmm25
vpsubq zmm25, zmm25, zmm21
vpsrlq zmm21, zmm25, 63
vpsubq zmm26, zmm8, zmm26
vpsubq zmm26, zmm26, zmm21
vpsrlq zmm21, zmm26, 63
vpsubq zmm27, zmm10, zmm27
vpsubq zmm27, zmm27, zmm21
vpsrlq zmm21, zmm27, 63
vpsubq zmm28, zmm12, zmm28
vpsubq zmm28, zmm28, zmm21
vpsrlq zmm21, zmm28, 63
vpsubq zmm29, zmm14, zmm29
vpsubq zmm29, zmm29, zmm21
vpsrlq zmm21, zmm29, 63
vpsubq zmm30, zmm16, zmm30
vpsubq zmm30, zmm30, zmm21
vpsrlq zmm21, zmm30, 63
vpcmpeqq k1, zmm21, zmm19
vpandq zmm2{k1}, zmm23, zmm18
vpandq zmm4{k1}, zmm24, zmm18
vpandq zmm6{k1}, zmm25, zmm18
vpandq zmm8{k1}, zmm26, zmm18
vpandq zmm10{k1}, zmm27, zmm18
vpandq zmm12{k1}, zmm28, zmm18
vpandq zmm14{k1}, zmm29, zmm18
vpandq zmm16{k1}, zmm30, zmm18
vmovdqa64 zmmword ptr [rcx], zmm2
vmovdqa64 zmmword ptr [rcx+64], zmm3
vmovdqa64 zmmword ptr [rcx+128], zmm4
vmovdqa64 zmmword ptr [rcx+192], zmm5
vmovdqa64 zmmword ptr [rcx+256], zmm6
vmovdqa64 zmmword ptr [rcx+320], zmm7
vmovdqa64 zmmword ptr [rcx+384], zmm8
vmovdqa64 zmmword ptr [rcx+448], zmm9
vmovdqa64 zmmword ptr [rcx+512], zmm10
vmovdqa64 zmmword ptr [rcx+576], zmm11
vmovdqa64 zmmword ptr [rcx+640], zmm12
vmovdqa64 zmmword ptr [rcx+704], zmm13
vmovdqa64 zmmword ptr [rcx+768], zmm14
vmovdqa64 zmmword ptr [rcx+832], zmm15
vmovdqa64 zmmword ptr [rcx+896], zmm16
vmovdqa64 zmmword ptr [rcx+960], zmm17
vpsubq zmm23, zmm3, qword bcst [rax]
vpsrlq zmm21, zmm23, 63
vpsubq zmm24, zmm5, qword bcst [rax+8]
vpsubq zmm24, zmm24, zmm21
vpsrlq zmm21, zmm24, 63
vpsubq zmm25, zmm7, qword bcst [rax+16]
vpsubq zmm25, zmm25, zmm21
vpsrlq zmm21, zmm25, 63
vpsubq zmm26, zmm9, qword bcst [rax+24]
vpsubq zmm26, zmm26, zmm21
vpsrlq zmm21, zmm26, 63
vpsubq zmm27, zmm11, qword bcst [rax+32]
vpsubq zmm27, zmm27, zmm21
vpsrlq zmm21, zmm27, 63
vpsubq zmm28, zmm13, qword bcst [rax+40]
vpsubq zmm28, zmm28, zmm21
vpsrlq zmm21, zmm28, 63
vpsubq zmm29, zmm15, qword bcst [rax+48]
vpsubq zmm29, zmm29, zmm21
vpsrlq zmm21, zmm29, 63
vpsubq zmm30, zmm17, qword bcst [rax+56]
vpsubq zmm30, zmm30, zmm21
vpsrlq zmm21, zmm30, 63
vpcmpeqq k1, zmm21, zmm19
vpandq zmm3{k1}, zmm23, zmm18
vpandq zmm5{k1}, zmm24, zmm18
vpandq zmm7{k1}, zmm25, zmm18
vpandq zmm9{k1}, zmm26, zmm18
vpandq zmm11{k1}, zmm27, zmm18
vpandq zmm13{k1}, zmm28, zmm18
vpandq zmm15{k1}, zmm29, zmm18
vpandq zmm17{k1}, zmm30, zmm18
vmovdqa64 zmmword ptr [rcx+512], zmm10
vmovdqa64 zmmword ptr [rcx+576], zmm11
vmovdqa64 zmmword ptr [rcx+640], zmm12
vmovdqa64 zmmword ptr [rcx+704], zmm13
vmovdqa64 zmmword ptr [rcx+768], zmm14
vmovdqa64 zmmword ptr [rcx+832], zmm15
vmovdqa64 zmmword ptr [rcx+896], zmm16
vmovdqa64 zmmword ptr [rcx+960], zmm17
vmovups xmm5, xmmword ptr [rsp]
vmovups xmm6, xmmword ptr [rsp+16]
vmovups xmm7, xmmword ptr [rsp+32]
vmovups xmm8, xmmword ptr [rsp+48]
vmovups xmm9, xmmword ptr [rsp+64]
vmovups xmm10, xmmword ptr [rsp+80]
vmovups xmm11, xmmword ptr [rsp+96]
vmovups xmm12, xmmword ptr [rsp+112]
vmovups xmm13, xmmword ptr [rsp+128]
vmovups xmm14, xmmword ptr [rsp+144]
vmovups xmm15, xmmword ptr [rsp+160]
vzeroupper
add rsp, 184
ret
mcl_c5_vmulA endp
align 16
mclb_add1 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
setc al
movzx eax, al
ret
mclb_add1 endp
align 16
mclb_add2 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
setc al
movzx eax, al
ret
mclb_add2 endp
align 16
mclb_add3 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
setc al
movzx eax, al
ret
mclb_add3 endp
align 16
mclb_add4 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
setc al
movzx eax, al
ret
mclb_add4 endp
align 16
mclb_add5 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
setc al
movzx eax, al
ret
mclb_add5 endp
align 16
mclb_add6 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
adc rax, [r8+40]
mov [rcx+40], rax
setc al
movzx eax, al
ret
mclb_add6 endp
align 16
mclb_add7 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
adc rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
adc rax, [r8+48]
mov [rcx+48], rax
setc al
movzx eax, al
ret
mclb_add7 endp
align 16
mclb_add8 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
adc rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
adc rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
adc rax, [r8+56]
mov [rcx+56], rax
setc al
movzx eax, al
ret
mclb_add8 endp
align 16
mclb_add9 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
adc rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
adc rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
adc rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
adc rax, [r8+64]
mov [rcx+64], rax
setc al
movzx eax, al
ret
mclb_add9 endp
align 16
mclb_add10 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
adc rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
adc rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
adc rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
adc rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
adc rax, [r8+72]
mov [rcx+72], rax
setc al
movzx eax, al
ret
mclb_add10 endp
align 16
mclb_add11 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
adc rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
adc rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
adc rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
adc rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
adc rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
adc rax, [r8+80]
mov [rcx+80], rax
setc al
movzx eax, al
ret
mclb_add11 endp
align 16
mclb_add12 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
adc rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
adc rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
adc rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
adc rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
adc rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
adc rax, [r8+80]
mov [rcx+80], rax
mov rax, [rdx+88]
adc rax, [r8+88]
mov [rcx+88], rax
setc al
movzx eax, al
ret
mclb_add12 endp
align 16
mclb_add13 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
adc rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
adc rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
adc rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
adc rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
adc rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
adc rax, [r8+80]
mov [rcx+80], rax
mov rax, [rdx+88]
adc rax, [r8+88]
mov [rcx+88], rax
mov rax, [rdx+96]
adc rax, [r8+96]
mov [rcx+96], rax
setc al
movzx eax, al
ret
mclb_add13 endp
align 16
mclb_add14 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
adc rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
adc rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
adc rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
adc rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
adc rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
adc rax, [r8+80]
mov [rcx+80], rax
mov rax, [rdx+88]
adc rax, [r8+88]
mov [rcx+88], rax
mov rax, [rdx+96]
adc rax, [r8+96]
mov [rcx+96], rax
mov rax, [rdx+104]
adc rax, [r8+104]
mov [rcx+104], rax
setc al
movzx eax, al
ret
mclb_add14 endp
align 16
mclb_add15 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
adc rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
adc rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
adc rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
adc rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
adc rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
adc rax, [r8+80]
mov [rcx+80], rax
mov rax, [rdx+88]
adc rax, [r8+88]
mov [rcx+88], rax
mov rax, [rdx+96]
adc rax, [r8+96]
mov [rcx+96], rax
mov rax, [rdx+104]
adc rax, [r8+104]
mov [rcx+104], rax
mov rax, [rdx+112]
adc rax, [r8+112]
mov [rcx+112], rax
setc al
movzx eax, al
ret
mclb_add15 endp
align 16
mclb_add16 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
adc rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
adc rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
adc rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
adc rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
adc rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
adc rax, [r8+80]
mov [rcx+80], rax
mov rax, [rdx+88]
adc rax, [r8+88]
mov [rcx+88], rax
mov rax, [rdx+96]
adc rax, [r8+96]
mov [rcx+96], rax
mov rax, [rdx+104]
adc rax, [r8+104]
mov [rcx+104], rax
mov rax, [rdx+112]
adc rax, [r8+112]
mov [rcx+112], rax
mov rax, [rdx+120]
adc rax, [r8+120]
mov [rcx+120], rax
setc al
movzx eax, al
ret
mclb_add16 endp
align 16
mclb_sub1 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
setc al
movzx eax, al
ret
mclb_sub1 endp
align 16
mclb_sub2 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
setc al
movzx eax, al
ret
mclb_sub2 endp
align 16
mclb_sub3 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
setc al
movzx eax, al
ret
mclb_sub3 endp
align 16
mclb_sub4 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
setc al
movzx eax, al
ret
mclb_sub4 endp
align 16
mclb_sub5 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
setc al
movzx eax, al
ret
mclb_sub5 endp
align 16
mclb_sub6 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
sbb rax, [r8+40]
mov [rcx+40], rax
setc al
movzx eax, al
ret
mclb_sub6 endp
align 16
mclb_sub7 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
sbb rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
sbb rax, [r8+48]
mov [rcx+48], rax
setc al
movzx eax, al
ret
mclb_sub7 endp
align 16
mclb_sub8 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
sbb rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
sbb rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
sbb rax, [r8+56]
mov [rcx+56], rax
setc al
movzx eax, al
ret
mclb_sub8 endp
align 16
mclb_sub9 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
sbb rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
sbb rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
sbb rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
sbb rax, [r8+64]
mov [rcx+64], rax
setc al
movzx eax, al
ret
mclb_sub9 endp
align 16
mclb_sub10 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
sbb rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
sbb rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
sbb rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
sbb rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
sbb rax, [r8+72]
mov [rcx+72], rax
setc al
movzx eax, al
ret
mclb_sub10 endp
align 16
mclb_sub11 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
sbb rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
sbb rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
sbb rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
sbb rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
sbb rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
sbb rax, [r8+80]
mov [rcx+80], rax
setc al
movzx eax, al
ret
mclb_sub11 endp
align 16
mclb_sub12 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
sbb rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
sbb rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
sbb rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
sbb rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
sbb rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
sbb rax, [r8+80]
mov [rcx+80], rax
mov rax, [rdx+88]
sbb rax, [r8+88]
mov [rcx+88], rax
setc al
movzx eax, al
ret
mclb_sub12 endp
align 16
mclb_sub13 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
sbb rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
sbb rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
sbb rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
sbb rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
sbb rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
sbb rax, [r8+80]
mov [rcx+80], rax
mov rax, [rdx+88]
sbb rax, [r8+88]
mov [rcx+88], rax
mov rax, [rdx+96]
sbb rax, [r8+96]
mov [rcx+96], rax
setc al
movzx eax, al
ret
mclb_sub13 endp
align 16
mclb_sub14 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
sbb rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
sbb rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
sbb rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
sbb rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
sbb rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
sbb rax, [r8+80]
mov [rcx+80], rax
mov rax, [rdx+88]
sbb rax, [r8+88]
mov [rcx+88], rax
mov rax, [rdx+96]
sbb rax, [r8+96]
mov [rcx+96], rax
mov rax, [rdx+104]
sbb rax, [r8+104]
mov [rcx+104], rax
setc al
movzx eax, al
ret
mclb_sub14 endp
align 16
mclb_sub15 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
sbb rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
sbb rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
sbb rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
sbb rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
sbb rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
sbb rax, [r8+80]
mov [rcx+80], rax
mov rax, [rdx+88]
sbb rax, [r8+88]
mov [rcx+88], rax
mov rax, [rdx+96]
sbb rax, [r8+96]
mov [rcx+96], rax
mov rax, [rdx+104]
sbb rax, [r8+104]
mov [rcx+104], rax
mov rax, [rdx+112]
sbb rax, [r8+112]
mov [rcx+112], rax
setc al
movzx eax, al
ret
mclb_sub15 endp
align 16
mclb_sub16 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
sbb rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
sbb rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
sbb rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
sbb rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
sbb rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
sbb rax, [r8+80]
mov [rcx+80], rax
mov rax, [rdx+88]
sbb rax, [r8+88]
mov [rcx+88], rax
mov rax, [rdx+96]
sbb rax, [r8+96]
mov [rcx+96], rax
mov rax, [rdx+104]
sbb rax, [r8+104]
mov [rcx+104], rax
mov rax, [rdx+112]
sbb rax, [r8+112]
mov [rcx+112], rax
mov rax, [rdx+120]
sbb rax, [r8+120]
mov [rcx+120], rax
setc al
movzx eax, al
ret
mclb_sub16 endp
align 16
mclb_addNF1 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
ret
mclb_addNF1 endp
align 16
mclb_addNF2 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
ret
mclb_addNF2 endp
align 16
mclb_addNF3 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
ret
mclb_addNF3 endp
align 16
mclb_addNF4 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
ret
mclb_addNF4 endp
align 16
mclb_addNF5 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
ret
mclb_addNF5 endp
align 16
mclb_addNF6 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
adc rax, [r8+40]
mov [rcx+40], rax
ret
mclb_addNF6 endp
align 16
mclb_addNF7 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
adc rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
adc rax, [r8+48]
mov [rcx+48], rax
ret
mclb_addNF7 endp
align 16
mclb_addNF8 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
adc rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
adc rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
adc rax, [r8+56]
mov [rcx+56], rax
ret
mclb_addNF8 endp
align 16
mclb_addNF9 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
adc rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
adc rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
adc rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
adc rax, [r8+64]
mov [rcx+64], rax
ret
mclb_addNF9 endp
align 16
mclb_addNF10 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
adc rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
adc rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
adc rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
adc rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
adc rax, [r8+72]
mov [rcx+72], rax
ret
mclb_addNF10 endp
align 16
mclb_addNF11 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
adc rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
adc rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
adc rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
adc rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
adc rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
adc rax, [r8+80]
mov [rcx+80], rax
ret
mclb_addNF11 endp
align 16
mclb_addNF12 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
adc rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
adc rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
adc rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
adc rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
adc rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
adc rax, [r8+80]
mov [rcx+80], rax
mov rax, [rdx+88]
adc rax, [r8+88]
mov [rcx+88], rax
ret
mclb_addNF12 endp
align 16
mclb_addNF13 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
adc rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
adc rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
adc rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
adc rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
adc rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
adc rax, [r8+80]
mov [rcx+80], rax
mov rax, [rdx+88]
adc rax, [r8+88]
mov [rcx+88], rax
mov rax, [rdx+96]
adc rax, [r8+96]
mov [rcx+96], rax
ret
mclb_addNF13 endp
align 16
mclb_addNF14 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
adc rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
adc rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
adc rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
adc rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
adc rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
adc rax, [r8+80]
mov [rcx+80], rax
mov rax, [rdx+88]
adc rax, [r8+88]
mov [rcx+88], rax
mov rax, [rdx+96]
adc rax, [r8+96]
mov [rcx+96], rax
mov rax, [rdx+104]
adc rax, [r8+104]
mov [rcx+104], rax
ret
mclb_addNF14 endp
align 16
mclb_addNF15 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
adc rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
adc rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
adc rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
adc rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
adc rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
adc rax, [r8+80]
mov [rcx+80], rax
mov rax, [rdx+88]
adc rax, [r8+88]
mov [rcx+88], rax
mov rax, [rdx+96]
adc rax, [r8+96]
mov [rcx+96], rax
mov rax, [rdx+104]
adc rax, [r8+104]
mov [rcx+104], rax
mov rax, [rdx+112]
adc rax, [r8+112]
mov [rcx+112], rax
ret
mclb_addNF15 endp
align 16
mclb_addNF16 proc export
mov rax, [rdx]
add rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
adc rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
adc rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
adc rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
adc rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
adc rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
adc rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
adc rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
adc rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
adc rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
adc rax, [r8+80]
mov [rcx+80], rax
mov rax, [rdx+88]
adc rax, [r8+88]
mov [rcx+88], rax
mov rax, [rdx+96]
adc rax, [r8+96]
mov [rcx+96], rax
mov rax, [rdx+104]
adc rax, [r8+104]
mov [rcx+104], rax
mov rax, [rdx+112]
adc rax, [r8+112]
mov [rcx+112], rax
mov rax, [rdx+120]
adc rax, [r8+120]
mov [rcx+120], rax
ret
mclb_addNF16 endp
align 16
mclb_subNF1 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
setc al
movzx eax, al
ret
mclb_subNF1 endp
align 16
mclb_subNF2 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
setc al
movzx eax, al
ret
mclb_subNF2 endp
align 16
mclb_subNF3 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
setc al
movzx eax, al
ret
mclb_subNF3 endp
align 16
mclb_subNF4 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
setc al
movzx eax, al
ret
mclb_subNF4 endp
align 16
mclb_subNF5 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
setc al
movzx eax, al
ret
mclb_subNF5 endp
align 16
mclb_subNF6 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
sbb rax, [r8+40]
mov [rcx+40], rax
setc al
movzx eax, al
ret
mclb_subNF6 endp
align 16
mclb_subNF7 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
sbb rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
sbb rax, [r8+48]
mov [rcx+48], rax
setc al
movzx eax, al
ret
mclb_subNF7 endp
align 16
mclb_subNF8 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
sbb rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
sbb rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
sbb rax, [r8+56]
mov [rcx+56], rax
setc al
movzx eax, al
ret
mclb_subNF8 endp
align 16
mclb_subNF9 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
sbb rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
sbb rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
sbb rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
sbb rax, [r8+64]
mov [rcx+64], rax
setc al
movzx eax, al
ret
mclb_subNF9 endp
align 16
mclb_subNF10 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
sbb rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
sbb rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
sbb rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
sbb rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
sbb rax, [r8+72]
mov [rcx+72], rax
setc al
movzx eax, al
ret
mclb_subNF10 endp
align 16
mclb_subNF11 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
sbb rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
sbb rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
sbb rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
sbb rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
sbb rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
sbb rax, [r8+80]
mov [rcx+80], rax
setc al
movzx eax, al
ret
mclb_subNF11 endp
align 16
mclb_subNF12 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
sbb rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
sbb rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
sbb rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
sbb rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
sbb rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
sbb rax, [r8+80]
mov [rcx+80], rax
mov rax, [rdx+88]
sbb rax, [r8+88]
mov [rcx+88], rax
setc al
movzx eax, al
ret
mclb_subNF12 endp
align 16
mclb_subNF13 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
sbb rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
sbb rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
sbb rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
sbb rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
sbb rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
sbb rax, [r8+80]
mov [rcx+80], rax
mov rax, [rdx+88]
sbb rax, [r8+88]
mov [rcx+88], rax
mov rax, [rdx+96]
sbb rax, [r8+96]
mov [rcx+96], rax
setc al
movzx eax, al
ret
mclb_subNF13 endp
align 16
mclb_subNF14 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
sbb rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
sbb rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
sbb rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
sbb rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
sbb rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
sbb rax, [r8+80]
mov [rcx+80], rax
mov rax, [rdx+88]
sbb rax, [r8+88]
mov [rcx+88], rax
mov rax, [rdx+96]
sbb rax, [r8+96]
mov [rcx+96], rax
mov rax, [rdx+104]
sbb rax, [r8+104]
mov [rcx+104], rax
setc al
movzx eax, al
ret
mclb_subNF14 endp
align 16
mclb_subNF15 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
sbb rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
sbb rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
sbb rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
sbb rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
sbb rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
sbb rax, [r8+80]
mov [rcx+80], rax
mov rax, [rdx+88]
sbb rax, [r8+88]
mov [rcx+88], rax
mov rax, [rdx+96]
sbb rax, [r8+96]
mov [rcx+96], rax
mov rax, [rdx+104]
sbb rax, [r8+104]
mov [rcx+104], rax
mov rax, [rdx+112]
sbb rax, [r8+112]
mov [rcx+112], rax
setc al
movzx eax, al
ret
mclb_subNF15 endp
align 16
mclb_subNF16 proc export
mov rax, [rdx]
sub rax, [r8]
mov [rcx], rax
mov rax, [rdx+8]
sbb rax, [r8+8]
mov [rcx+8], rax
mov rax, [rdx+16]
sbb rax, [r8+16]
mov [rcx+16], rax
mov rax, [rdx+24]
sbb rax, [r8+24]
mov [rcx+24], rax
mov rax, [rdx+32]
sbb rax, [r8+32]
mov [rcx+32], rax
mov rax, [rdx+40]
sbb rax, [r8+40]
mov [rcx+40], rax
mov rax, [rdx+48]
sbb rax, [r8+48]
mov [rcx+48], rax
mov rax, [rdx+56]
sbb rax, [r8+56]
mov [rcx+56], rax
mov rax, [rdx+64]
sbb rax, [r8+64]
mov [rcx+64], rax
mov rax, [rdx+72]
sbb rax, [r8+72]
mov [rcx+72], rax
mov rax, [rdx+80]
sbb rax, [r8+80]
mov [rcx+80], rax
mov rax, [rdx+88]
sbb rax, [r8+88]
mov [rcx+88], rax
mov rax, [rdx+96]
sbb rax, [r8+96]
mov [rcx+96], rax
mov rax, [rdx+104]
sbb rax, [r8+104]
mov [rcx+104], rax
mov rax, [rdx+112]
sbb rax, [r8+112]
mov [rcx+112], rax
mov rax, [rdx+120]
sbb rax, [r8+120]
mov [rcx+120], rax
setc al
movzx eax, al
ret
mclb_subNF16 endp
align 16
mclb_mulUnit_fast1 proc export
mov rax, [rdx]
mul r8
mov [rcx], rax
mov rax, rdx
ret
mclb_mulUnit_fast1 endp
align 16
mclb_mulUnit_fast2 proc export
mov r11, rdx
mov rax, [r11]
mul r8
mov [rcx], rax
mov r9, rdx
mov rax, [r11+8]
mul r8
add rax, r9
adc rdx, 0
mov [rcx+8], rax
mov rax, rdx
ret
mclb_mulUnit_fast2 endp
align 16
mclb_mulUnit_fast3 proc export
mov r11, rdx
mov rdx, r8
mulx r10, rax, [r11]
mov [rcx], rax
mulx r9, rax, [r11+8]
add rax, r10
mov [rcx+8], rax
mulx rax, rdx, [r11+16]
adc rdx, r9
mov [rcx+16], rdx
adc rax, 0
ret
mclb_mulUnit_fast3 endp
align 16
mclb_mulUnit_fast4 proc export
mov r11, rdx
mov rdx, r8
mulx r10, rax, [r11]
mov [rcx], rax
mulx r9, rax, [r11+8]
add rax, r10
mov [rcx+8], rax
mulx r10, rax, [r11+16]
adc rax, r9
mov [rcx+16], rax
mulx rax, rdx, [r11+24]
adc rdx, r10
mov [rcx+24], rdx
adc rax, 0
ret
mclb_mulUnit_fast4 endp
align 16
mclb_mulUnit_fast5 proc export
mov r11, rdx
mov rdx, r8
mulx r10, rax, [r11]
mov [rcx], rax
mulx r9, rax, [r11+8]
add rax, r10
mov [rcx+8], rax
mulx r10, rax, [r11+16]
adc rax, r9
mov [rcx+16], rax
mulx r9, rax, [r11+24]
adc rax, r10
mov [rcx+24], rax
mulx rax, rdx, [r11+32]
adc rdx, r9
mov [rcx+32], rdx
adc rax, 0
ret
mclb_mulUnit_fast5 endp
align 16
mclb_mulUnit_fast6 proc export
mov r11, rdx
mov rdx, r8
mulx r10, rax, [r11]
mov [rcx], rax
mulx r9, rax, [r11+8]
add rax, r10
mov [rcx+8], rax
mulx r10, rax, [r11+16]
adc rax, r9
mov [rcx+16], rax
mulx r9, rax, [r11+24]
adc rax, r10
mov [rcx+24], rax
mulx r10, rax, [r11+32]
adc rax, r9
mov [rcx+32], rax
mulx rax, rdx, [r11+40]
adc rdx, r10
mov [rcx+40], rdx
adc rax, 0
ret
mclb_mulUnit_fast6 endp
align 16
mclb_mulUnit_fast7 proc export
mov r11, rdx
mov rdx, r8
mulx r10, rax, [r11]
mov [rcx], rax
mulx r9, rax, [r11+8]
add rax, r10
mov [rcx+8], rax
mulx r10, rax, [r11+16]
adc rax, r9
mov [rcx+16], rax
mulx r9, rax, [r11+24]
adc rax, r10
mov [rcx+24], rax
mulx r10, rax, [r11+32]
adc rax, r9
mov [rcx+32], rax
mulx r9, rax, [r11+40]
adc rax, r10
mov [rcx+40], rax
mulx rax, rdx, [r11+48]
adc rdx, r9
mov [rcx+48], rdx
adc rax, 0
ret
mclb_mulUnit_fast7 endp
align 16
mclb_mulUnit_fast8 proc export
mov r11, rdx
mov rdx, r8
mulx r10, rax, [r11]
mov [rcx], rax
mulx r9, rax, [r11+8]
add rax, r10
mov [rcx+8], rax
mulx r10, rax, [r11+16]
adc rax, r9
mov [rcx+16], rax
mulx r9, rax, [r11+24]
adc rax, r10
mov [rcx+24], rax
mulx r10, rax, [r11+32]
adc rax, r9
mov [rcx+32], rax
mulx r9, rax, [r11+40]
adc rax, r10
mov [rcx+40], rax
mulx r10, rax, [r11+48]
adc rax, r9
mov [rcx+48], rax
mulx rax, rdx, [r11+56]
adc rdx, r10
mov [rcx+56], rdx
adc rax, 0
ret
mclb_mulUnit_fast8 endp
align 16
mclb_mulUnit_fast9 proc export
mov r11, rdx
mov rdx, r8
mulx r10, rax, [r11]
mov [rcx], rax
mulx r9, rax, [r11+8]
add rax, r10
mov [rcx+8], rax
mulx r10, rax, [r11+16]
adc rax, r9
mov [rcx+16], rax
mulx r9, rax, [r11+24]
adc rax, r10
mov [rcx+24], rax
mulx r10, rax, [r11+32]
adc rax, r9
mov [rcx+32], rax
mulx r9, rax, [r11+40]
adc rax, r10
mov [rcx+40], rax
mulx r10, rax, [r11+48]
adc rax, r9
mov [rcx+48], rax
mulx r9, rax, [r11+56]
adc rax, r10
mov [rcx+56], rax
mulx rax, rdx, [r11+64]
adc rdx, r9
mov [rcx+64], rdx
adc rax, 0
ret
mclb_mulUnit_fast9 endp
align 16
mclb_mulUnitAdd_fast1 proc export
mov r11, rdx
mov rdx, r8
xor eax, eax
mov r9, [rcx]
mulx rax, r10, [r11]
adox r9, r10
mov [rcx], r9
mov r9, 0
adcx rax, r9
adox rax, r9
ret
mclb_mulUnitAdd_fast1 endp
align 16
mclb_mulUnitAdd_fast2 proc export
mov r11, rdx
mov rdx, r8
xor eax, eax
mov r9, [rcx]
mulx rax, r10, [r11]
adox r9, r10
mov [rcx], r9
mov r9, [rcx+8]
adcx r9, rax
mulx rax, r10, [r11+8]
adox r9, r10
mov [rcx+8], r9
mov r9, 0
adcx rax, r9
adox rax, r9
ret
mclb_mulUnitAdd_fast2 endp
align 16
mclb_mulUnitAdd_fast3 proc export
mov r11, rdx
mov rdx, r8
xor eax, eax
mov r9, [rcx]
mulx rax, r10, [r11]
adox r9, r10
mov [rcx], r9
mov r9, [rcx+8]
adcx r9, rax
mulx rax, r10, [r11+8]
adox r9, r10
mov [rcx+8], r9
mov r9, [rcx+16]
adcx r9, rax
mulx rax, r10, [r11+16]
adox r9, r10
mov [rcx+16], r9
mov r9, 0
adcx rax, r9
adox rax, r9
ret
mclb_mulUnitAdd_fast3 endp
align 16
mclb_mulUnitAdd_fast4 proc export
mov r11, rdx
mov rdx, r8
xor eax, eax
mov r9, [rcx]
mulx rax, r10, [r11]
adox r9, r10
mov [rcx], r9
mov r9, [rcx+8]
adcx r9, rax
mulx rax, r10, [r11+8]
adox r9, r10
mov [rcx+8], r9
mov r9, [rcx+16]
adcx r9, rax
mulx rax, r10, [r11+16]
adox r9, r10
mov [rcx+16], r9
mov r9, [rcx+24]
adcx r9, rax
mulx rax, r10, [r11+24]
adox r9, r10
mov [rcx+24], r9
mov r9, 0
adcx rax, r9
adox rax, r9
ret
mclb_mulUnitAdd_fast4 endp
align 16
mclb_mulUnitAdd_fast5 proc export
mov r11, rdx
mov rdx, r8
xor eax, eax
mov r9, [rcx]
mulx rax, r10, [r11]
adox r9, r10
mov [rcx], r9
mov r9, [rcx+8]
adcx r9, rax
mulx rax, r10, [r11+8]
adox r9, r10
mov [rcx+8], r9
mov r9, [rcx+16]
adcx r9, rax
mulx rax, r10, [r11+16]
adox r9, r10
mov [rcx+16], r9
mov r9, [rcx+24]
adcx r9, rax
mulx rax, r10, [r11+24]
adox r9, r10
mov [rcx+24], r9
mov r9, [rcx+32]
adcx r9, rax
mulx rax, r10, [r11+32]
adox r9, r10
mov [rcx+32], r9
mov r9, 0
adcx rax, r9
adox rax, r9
ret
mclb_mulUnitAdd_fast5 endp
align 16
mclb_mulUnitAdd_fast6 proc export
mov r11, rdx
mov rdx, r8
xor eax, eax
mov r9, [rcx]
mulx rax, r10, [r11]
adox r9, r10
mov [rcx], r9
mov r9, [rcx+8]
adcx r9, rax
mulx rax, r10, [r11+8]
adox r9, r10
mov [rcx+8], r9
mov r9, [rcx+16]
adcx r9, rax
mulx rax, r10, [r11+16]
adox r9, r10
mov [rcx+16], r9
mov r9, [rcx+24]
adcx r9, rax
mulx rax, r10, [r11+24]
adox r9, r10
mov [rcx+24], r9
mov r9, [rcx+32]
adcx r9, rax
mulx rax, r10, [r11+32]
adox r9, r10
mov [rcx+32], r9
mov r9, [rcx+40]
adcx r9, rax
mulx rax, r10, [r11+40]
adox r9, r10
mov [rcx+40], r9
mov r9, 0
adcx rax, r9
adox rax, r9
ret
mclb_mulUnitAdd_fast6 endp
align 16
mclb_mulUnitAdd_fast7 proc export
mov r11, rdx
mov rdx, r8
xor eax, eax
mov r9, [rcx]
mulx rax, r10, [r11]
adox r9, r10
mov [rcx], r9
mov r9, [rcx+8]
adcx r9, rax
mulx rax, r10, [r11+8]
adox r9, r10
mov [rcx+8], r9
mov r9, [rcx+16]
adcx r9, rax
mulx rax, r10, [r11+16]
adox r9, r10
mov [rcx+16], r9
mov r9, [rcx+24]
adcx r9, rax
mulx rax, r10, [r11+24]
adox r9, r10
mov [rcx+24], r9
mov r9, [rcx+32]
adcx r9, rax
mulx rax, r10, [r11+32]
adox r9, r10
mov [rcx+32], r9
mov r9, [rcx+40]
adcx r9, rax
mulx rax, r10, [r11+40]
adox r9, r10
mov [rcx+40], r9
mov r9, [rcx+48]
adcx r9, rax
mulx rax, r10, [r11+48]
adox r9, r10
mov [rcx+48], r9
mov r9, 0
adcx rax, r9
adox rax, r9
ret
mclb_mulUnitAdd_fast7 endp
align 16
mclb_mulUnitAdd_fast8 proc export
mov r11, rdx
mov rdx, r8
xor eax, eax
mov r9, [rcx]
mulx rax, r10, [r11]
adox r9, r10
mov [rcx], r9
mov r9, [rcx+8]
adcx r9, rax
mulx rax, r10, [r11+8]
adox r9, r10
mov [rcx+8], r9
mov r9, [rcx+16]
adcx r9, rax
mulx rax, r10, [r11+16]
adox r9, r10
mov [rcx+16], r9
mov r9, [rcx+24]
adcx r9, rax
mulx rax, r10, [r11+24]
adox r9, r10
mov [rcx+24], r9
mov r9, [rcx+32]
adcx r9, rax
mulx rax, r10, [r11+32]
adox r9, r10
mov [rcx+32], r9
mov r9, [rcx+40]
adcx r9, rax
mulx rax, r10, [r11+40]
adox r9, r10
mov [rcx+40], r9
mov r9, [rcx+48]
adcx r9, rax
mulx rax, r10, [r11+48]
adox r9, r10
mov [rcx+48], r9
mov r9, [rcx+56]
adcx r9, rax
mulx rax, r10, [r11+56]
adox r9, r10
mov [rcx+56], r9
mov r9, 0
adcx rax, r9
adox rax, r9
ret
mclb_mulUnitAdd_fast8 endp
align 16
mclb_mulUnitAdd_fast9 proc export
mov r11, rdx
mov rdx, r8
xor eax, eax
mov r9, [rcx]
mulx rax, r10, [r11]
adox r9, r10
mov [rcx], r9
mov r9, [rcx+8]
adcx r9, rax
mulx rax, r10, [r11+8]
adox r9, r10
mov [rcx+8], r9
mov r9, [rcx+16]
adcx r9, rax
mulx rax, r10, [r11+16]
adox r9, r10
mov [rcx+16], r9
mov r9, [rcx+24]
adcx r9, rax
mulx rax, r10, [r11+24]
adox r9, r10
mov [rcx+24], r9
mov r9, [rcx+32]
adcx r9, rax
mulx rax, r10, [r11+32]
adox r9, r10
mov [rcx+32], r9
mov r9, [rcx+40]
adcx r9, rax
mulx rax, r10, [r11+40]
adox r9, r10
mov [rcx+40], r9
mov r9, [rcx+48]
adcx r9, rax
mulx rax, r10, [r11+48]
adox r9, r10
mov [rcx+48], r9
mov r9, [rcx+56]
adcx r9, rax
mulx rax, r10, [r11+56]
adox r9, r10
mov [rcx+56], r9
mov r9, [rcx+64]
adcx r9, rax
mulx rax, r10, [r11+64]
adox r9, r10
mov [rcx+64], r9
mov r9, 0
adcx rax, r9
adox rax, r9
ret
mclb_mulUnitAdd_fast9 endp
align 16
mclb_mulUnit_slow1 proc export
mov rax, [rdx]
mul r8
mov [rcx], rax
mov rax, rdx
ret
mclb_mulUnit_slow1 endp
align 16
mclb_mulUnit_slow2 proc export
mov r11, rdx
mov rax, [r11]
mul r8
mov [rcx], rax
mov r9, rdx
mov rax, [r11+8]
mul r8
add rax, r9
adc rdx, 0
mov [rcx+8], rax
mov rax, rdx
ret
mclb_mulUnit_slow2 endp
align 16
mclb_mulUnit_slow3 proc export
sub rsp, 40
mov r11, rdx
mov rax, [r11]
mul r8
mov [rcx], rax
mov [rsp+16], rdx
mov rax, [r11+8]
mul r8
mov [rsp], rax
mov [rsp+24], rdx
mov rax, [r11+16]
mul r8
mov [rsp+8], rax
mov rax, [rsp+16]
add rax, [rsp]
mov [rcx+8], rax
mov rax, [rsp+24]
adc rax, [rsp+8]
mov [rcx+16], rax
adc rdx, 0
mov rax, rdx
add rsp, 40
ret
mclb_mulUnit_slow3 endp
align 16
mclb_mulUnit_slow4 proc export
sub rsp, 56
mov r11, rdx
mov rax, [r11]
mul r8
mov [rcx], rax
mov [rsp+24], rdx
mov rax, [r11+8]
mul r8
mov [rsp], rax
mov [rsp+32], rdx
mov rax, [r11+16]
mul r8
mov [rsp+8], rax
mov [rsp+40], rdx
mov rax, [r11+24]
mul r8
mov [rsp+16], rax
mov rax, [rsp+24]
add rax, [rsp]
mov [rcx+8], rax
mov rax, [rsp+32]
adc rax, [rsp+8]
mov [rcx+16], rax
mov rax, [rsp+40]
adc rax, [rsp+16]
mov [rcx+24], rax
adc rdx, 0
mov rax, rdx
add rsp, 56
ret
mclb_mulUnit_slow4 endp
align 16
mclb_mulUnit_slow5 proc export
sub rsp, 72
mov r11, rdx
mov rax, [r11]
mul r8
mov [rcx], rax
mov [rsp+32], rdx
mov rax, [r11+8]
mul r8
mov [rsp], rax
mov [rsp+40], rdx
mov rax, [r11+16]
mul r8
mov [rsp+8], rax
mov [rsp+48], rdx
mov rax, [r11+24]
mul r8
mov [rsp+16], rax
mov [rsp+56], rdx
mov rax, [r11+32]
mul r8
mov [rsp+24], rax
mov rax, [rsp+32]
add rax, [rsp]
mov [rcx+8], rax
mov rax, [rsp+40]
adc rax, [rsp+8]
mov [rcx+16], rax
mov rax, [rsp+48]
adc rax, [rsp+16]
mov [rcx+24], rax
mov rax, [rsp+56]
adc rax, [rsp+24]
mov [rcx+32], rax
adc rdx, 0
mov rax, rdx
add rsp, 72
ret
mclb_mulUnit_slow5 endp
align 16
mclb_mulUnit_slow6 proc export
sub rsp, 88
mov r11, rdx
mov rax, [r11]
mul r8
mov [rcx], rax
mov [rsp+40], rdx
mov rax, [r11+8]
mul r8
mov [rsp], rax
mov [rsp+48], rdx
mov rax, [r11+16]
mul r8
mov [rsp+8], rax
mov [rsp+56], rdx
mov rax, [r11+24]
mul r8
mov [rsp+16], rax
mov [rsp+64], rdx
mov rax, [r11+32]
mul r8
mov [rsp+24], rax
mov [rsp+72], rdx
mov rax, [r11+40]
mul r8
mov [rsp+32], rax
mov rax, [rsp+40]
add rax, [rsp]
mov [rcx+8], rax
mov rax, [rsp+48]
adc rax, [rsp+8]
mov [rcx+16], rax
mov rax, [rsp+56]
adc rax, [rsp+16]
mov [rcx+24], rax
mov rax, [rsp+64]
adc rax, [rsp+24]
mov [rcx+32], rax
mov rax, [rsp+72]
adc rax, [rsp+32]
mov [rcx+40], rax
adc rdx, 0
mov rax, rdx
add rsp, 88
ret
mclb_mulUnit_slow6 endp
align 16
mclb_mulUnit_slow7 proc export
sub rsp, 104
mov r11, rdx
mov rax, [r11]
mul r8
mov [rcx], rax
mov [rsp+48], rdx
mov rax, [r11+8]
mul r8
mov [rsp], rax
mov [rsp+56], rdx
mov rax, [r11+16]
mul r8
mov [rsp+8], rax
mov [rsp+64], rdx
mov rax, [r11+24]
mul r8
mov [rsp+16], rax
mov [rsp+72], rdx
mov rax, [r11+32]
mul r8
mov [rsp+24], rax
mov [rsp+80], rdx
mov rax, [r11+40]
mul r8
mov [rsp+32], rax
mov [rsp+88], rdx
mov rax, [r11+48]
mul r8
mov [rsp+40], rax
mov rax, [rsp+48]
add rax, [rsp]
mov [rcx+8], rax
mov rax, [rsp+56]
adc rax, [rsp+8]
mov [rcx+16], rax
mov rax, [rsp+64]
adc rax, [rsp+16]
mov [rcx+24], rax
mov rax, [rsp+72]
adc rax, [rsp+24]
mov [rcx+32], rax
mov rax, [rsp+80]
adc rax, [rsp+32]
mov [rcx+40], rax
mov rax, [rsp+88]
adc rax, [rsp+40]
mov [rcx+48], rax
adc rdx, 0
mov rax, rdx
add rsp, 104
ret
mclb_mulUnit_slow7 endp
align 16
mclb_mulUnit_slow8 proc export
sub rsp, 120
mov r11, rdx
mov rax, [r11]
mul r8
mov [rcx], rax
mov [rsp+56], rdx
mov rax, [r11+8]
mul r8
mov [rsp], rax
mov [rsp+64], rdx
mov rax, [r11+16]
mul r8
mov [rsp+8], rax
mov [rsp+72], rdx
mov rax, [r11+24]
mul r8
mov [rsp+16], rax
mov [rsp+80], rdx
mov rax, [r11+32]
mul r8
mov [rsp+24], rax
mov [rsp+88], rdx
mov rax, [r11+40]
mul r8
mov [rsp+32], rax
mov [rsp+96], rdx
mov rax, [r11+48]
mul r8
mov [rsp+40], rax
mov [rsp+104], rdx
mov rax, [r11+56]
mul r8
mov [rsp+48], rax
mov rax, [rsp+56]
add rax, [rsp]
mov [rcx+8], rax
mov rax, [rsp+64]
adc rax, [rsp+8]
mov [rcx+16], rax
mov rax, [rsp+72]
adc rax, [rsp+16]
mov [rcx+24], rax
mov rax, [rsp+80]
adc rax, [rsp+24]
mov [rcx+32], rax
mov rax, [rsp+88]
adc rax, [rsp+32]
mov [rcx+40], rax
mov rax, [rsp+96]
adc rax, [rsp+40]
mov [rcx+48], rax
mov rax, [rsp+104]
adc rax, [rsp+48]
mov [rcx+56], rax
adc rdx, 0
mov rax, rdx
add rsp, 120
ret
mclb_mulUnit_slow8 endp
align 16
mclb_mulUnit_slow9 proc export
sub rsp, 136
mov r11, rdx
mov rax, [r11]
mul r8
mov [rcx], rax
mov [rsp+64], rdx
mov rax, [r11+8]
mul r8
mov [rsp], rax
mov [rsp+72], rdx
mov rax, [r11+16]
mul r8
mov [rsp+8], rax
mov [rsp+80], rdx
mov rax, [r11+24]
mul r8
mov [rsp+16], rax
mov [rsp+88], rdx
mov rax, [r11+32]
mul r8
mov [rsp+24], rax
mov [rsp+96], rdx
mov rax, [r11+40]
mul r8
mov [rsp+32], rax
mov [rsp+104], rdx
mov rax, [r11+48]
mul r8
mov [rsp+40], rax
mov [rsp+112], rdx
mov rax, [r11+56]
mul r8
mov [rsp+48], rax
mov [rsp+120], rdx
mov rax, [r11+64]
mul r8
mov [rsp+56], rax
mov rax, [rsp+64]
add rax, [rsp]
mov [rcx+8], rax
mov rax, [rsp+72]
adc rax, [rsp+8]
mov [rcx+16], rax
mov rax, [rsp+80]
adc rax, [rsp+16]
mov [rcx+24], rax
mov rax, [rsp+88]
adc rax, [rsp+24]
mov [rcx+32], rax
mov rax, [rsp+96]
adc rax, [rsp+32]
mov [rcx+40], rax
mov rax, [rsp+104]
adc rax, [rsp+40]
mov [rcx+48], rax
mov rax, [rsp+112]
adc rax, [rsp+48]
mov [rcx+56], rax
mov rax, [rsp+120]
adc rax, [rsp+56]
mov [rcx+64], rax
adc rdx, 0
mov rax, rdx
add rsp, 136
ret
mclb_mulUnit_slow9 endp
align 16
mclb_mulUnitAdd_slow1 proc export
sub rsp, 8
mov r11, rdx
mov rax, [r11]
mul r8
mov [rsp], rax
mov rax, [rsp]
add [rcx], rax
adc rdx, 0
mov rax, rdx
add rsp, 8
ret
mclb_mulUnitAdd_slow1 endp
align 16
mclb_mulUnitAdd_slow2 proc export
sub rsp, 24
mov r11, rdx
mov rax, [r11]
mul r8
mov [rsp], rax
mov [rsp+16], rdx
mov rax, [r11+8]
mul r8
mov [rsp+8], rax
mov rax, [rsp+8]
add rax, [rsp+16]
mov [rsp+8], rax
adc rdx, 0
mov rax, [rsp]
add [rcx], rax
mov rax, [rsp+8]
adc [rcx+8], rax
adc rdx, 0
mov rax, rdx
add rsp, 24
ret
mclb_mulUnitAdd_slow2 endp
align 16
mclb_mulUnitAdd_slow3 proc export
sub rsp, 40
mov r11, rdx
mov rax, [r11]
mul r8
mov [rsp], rax
mov [rsp+24], rdx
mov rax, [r11+8]
mul r8
mov [rsp+8], rax
mov [rsp+32], rdx
mov rax, [r11+16]
mul r8
mov [rsp+16], rax
mov rax, [rsp+8]
add rax, [rsp+24]
mov [rsp+8], rax
mov rax, [rsp+16]
adc rax, [rsp+32]
mov [rsp+16], rax
adc rdx, 0
mov rax, [rsp]
add [rcx], rax
mov rax, [rsp+8]
adc [rcx+8], rax
mov rax, [rsp+16]
adc [rcx+16], rax
adc rdx, 0
mov rax, rdx
add rsp, 40
ret
mclb_mulUnitAdd_slow3 endp
align 16
mclb_mulUnitAdd_slow4 proc export
sub rsp, 56
mov r11, rdx
mov rax, [r11]
mul r8
mov [rsp], rax
mov [rsp+32], rdx
mov rax, [r11+8]
mul r8
mov [rsp+8], rax
mov [rsp+40], rdx
mov rax, [r11+16]
mul r8
mov [rsp+16], rax
mov [rsp+48], rdx
mov rax, [r11+24]
mul r8
mov [rsp+24], rax
mov rax, [rsp+8]
add rax, [rsp+32]
mov [rsp+8], rax
mov rax, [rsp+16]
adc rax, [rsp+40]
mov [rsp+16], rax
mov rax, [rsp+24]
adc rax, [rsp+48]
mov [rsp+24], rax
adc rdx, 0
mov rax, [rsp]
add [rcx], rax
mov rax, [rsp+8]
adc [rcx+8], rax
mov rax, [rsp+16]
adc [rcx+16], rax
mov rax, [rsp+24]
adc [rcx+24], rax
adc rdx, 0
mov rax, rdx
add rsp, 56
ret
mclb_mulUnitAdd_slow4 endp
align 16
mclb_mulUnitAdd_slow5 proc export
sub rsp, 72
mov r11, rdx
mov rax, [r11]
mul r8
mov [rsp], rax
mov [rsp+40], rdx
mov rax, [r11+8]
mul r8
mov [rsp+8], rax
mov [rsp+48], rdx
mov rax, [r11+16]
mul r8
mov [rsp+16], rax
mov [rsp+56], rdx
mov rax, [r11+24]
mul r8
mov [rsp+24], rax
mov [rsp+64], rdx
mov rax, [r11+32]
mul r8
mov [rsp+32], rax
mov rax, [rsp+8]
add rax, [rsp+40]
mov [rsp+8], rax
mov rax, [rsp+16]
adc rax, [rsp+48]
mov [rsp+16], rax
mov rax, [rsp+24]
adc rax, [rsp+56]
mov [rsp+24], rax
mov rax, [rsp+32]
adc rax, [rsp+64]
mov [rsp+32], rax
adc rdx, 0
mov rax, [rsp]
add [rcx], rax
mov rax, [rsp+8]
adc [rcx+8], rax
mov rax, [rsp+16]
adc [rcx+16], rax
mov rax, [rsp+24]
adc [rcx+24], rax
mov rax, [rsp+32]
adc [rcx+32], rax
adc rdx, 0
mov rax, rdx
add rsp, 72
ret
mclb_mulUnitAdd_slow5 endp
align 16
mclb_mulUnitAdd_slow6 proc export
sub rsp, 88
mov r11, rdx
mov rax, [r11]
mul r8
mov [rsp], rax
mov [rsp+48], rdx
mov rax, [r11+8]
mul r8
mov [rsp+8], rax
mov [rsp+56], rdx
mov rax, [r11+16]
mul r8
mov [rsp+16], rax
mov [rsp+64], rdx
mov rax, [r11+24]
mul r8
mov [rsp+24], rax
mov [rsp+72], rdx
mov rax, [r11+32]
mul r8
mov [rsp+32], rax
mov [rsp+80], rdx
mov rax, [r11+40]
mul r8
mov [rsp+40], rax
mov rax, [rsp+8]
add rax, [rsp+48]
mov [rsp+8], rax
mov rax, [rsp+16]
adc rax, [rsp+56]
mov [rsp+16], rax
mov rax, [rsp+24]
adc rax, [rsp+64]
mov [rsp+24], rax
mov rax, [rsp+32]
adc rax, [rsp+72]
mov [rsp+32], rax
mov rax, [rsp+40]
adc rax, [rsp+80]
mov [rsp+40], rax
adc rdx, 0
mov rax, [rsp]
add [rcx], rax
mov rax, [rsp+8]
adc [rcx+8], rax
mov rax, [rsp+16]
adc [rcx+16], rax
mov rax, [rsp+24]
adc [rcx+24], rax
mov rax, [rsp+32]
adc [rcx+32], rax
mov rax, [rsp+40]
adc [rcx+40], rax
adc rdx, 0
mov rax, rdx
add rsp, 88
ret
mclb_mulUnitAdd_slow6 endp
align 16
mclb_mulUnitAdd_slow7 proc export
sub rsp, 104
mov r11, rdx
mov rax, [r11]
mul r8
mov [rsp], rax
mov [rsp+56], rdx
mov rax, [r11+8]
mul r8
mov [rsp+8], rax
mov [rsp+64], rdx
mov rax, [r11+16]
mul r8
mov [rsp+16], rax
mov [rsp+72], rdx
mov rax, [r11+24]
mul r8
mov [rsp+24], rax
mov [rsp+80], rdx
mov rax, [r11+32]
mul r8
mov [rsp+32], rax
mov [rsp+88], rdx
mov rax, [r11+40]
mul r8
mov [rsp+40], rax
mov [rsp+96], rdx
mov rax, [r11+48]
mul r8
mov [rsp+48], rax
mov rax, [rsp+8]
add rax, [rsp+56]
mov [rsp+8], rax
mov rax, [rsp+16]
adc rax, [rsp+64]
mov [rsp+16], rax
mov rax, [rsp+24]
adc rax, [rsp+72]
mov [rsp+24], rax
mov rax, [rsp+32]
adc rax, [rsp+80]
mov [rsp+32], rax
mov rax, [rsp+40]
adc rax, [rsp+88]
mov [rsp+40], rax
mov rax, [rsp+48]
adc rax, [rsp+96]
mov [rsp+48], rax
adc rdx, 0
mov rax, [rsp]
add [rcx], rax
mov rax, [rsp+8]
adc [rcx+8], rax
mov rax, [rsp+16]
adc [rcx+16], rax
mov rax, [rsp+24]
adc [rcx+24], rax
mov rax, [rsp+32]
adc [rcx+32], rax
mov rax, [rsp+40]
adc [rcx+40], rax
mov rax, [rsp+48]
adc [rcx+48], rax
adc rdx, 0
mov rax, rdx
add rsp, 104
ret
mclb_mulUnitAdd_slow7 endp
align 16
mclb_mulUnitAdd_slow8 proc export
sub rsp, 120
mov r11, rdx
mov rax, [r11]
mul r8
mov [rsp], rax
mov [rsp+64], rdx
mov rax, [r11+8]
mul r8
mov [rsp+8], rax
mov [rsp+72], rdx
mov rax, [r11+16]
mul r8
mov [rsp+16], rax
mov [rsp+80], rdx
mov rax, [r11+24]
mul r8
mov [rsp+24], rax
mov [rsp+88], rdx
mov rax, [r11+32]
mul r8
mov [rsp+32], rax
mov [rsp+96], rdx
mov rax, [r11+40]
mul r8
mov [rsp+40], rax
mov [rsp+104], rdx
mov rax, [r11+48]
mul r8
mov [rsp+48], rax
mov [rsp+112], rdx
mov rax, [r11+56]
mul r8
mov [rsp+56], rax
mov rax, [rsp+8]
add rax, [rsp+64]
mov [rsp+8], rax
mov rax, [rsp+16]
adc rax, [rsp+72]
mov [rsp+16], rax
mov rax, [rsp+24]
adc rax, [rsp+80]
mov [rsp+24], rax
mov rax, [rsp+32]
adc rax, [rsp+88]
mov [rsp+32], rax
mov rax, [rsp+40]
adc rax, [rsp+96]
mov [rsp+40], rax
mov rax, [rsp+48]
adc rax, [rsp+104]
mov [rsp+48], rax
mov rax, [rsp+56]
adc rax, [rsp+112]
mov [rsp+56], rax
adc rdx, 0
mov rax, [rsp]
add [rcx], rax
mov rax, [rsp+8]
adc [rcx+8], rax
mov rax, [rsp+16]
adc [rcx+16], rax
mov rax, [rsp+24]
adc [rcx+24], rax
mov rax, [rsp+32]
adc [rcx+32], rax
mov rax, [rsp+40]
adc [rcx+40], rax
mov rax, [rsp+48]
adc [rcx+48], rax
mov rax, [rsp+56]
adc [rcx+56], rax
adc rdx, 0
mov rax, rdx
add rsp, 120
ret
mclb_mulUnitAdd_slow8 endp
align 16
mclb_mulUnitAdd_slow9 proc export
sub rsp, 136
mov r11, rdx
mov rax, [r11]
mul r8
mov [rsp], rax
mov [rsp+72], rdx
mov rax, [r11+8]
mul r8
mov [rsp+8], rax
mov [rsp+80], rdx
mov rax, [r11+16]
mul r8
mov [rsp+16], rax
mov [rsp+88], rdx
mov rax, [r11+24]
mul r8
mov [rsp+24], rax
mov [rsp+96], rdx
mov rax, [r11+32]
mul r8
mov [rsp+32], rax
mov [rsp+104], rdx
mov rax, [r11+40]
mul r8
mov [rsp+40], rax
mov [rsp+112], rdx
mov rax, [r11+48]
mul r8
mov [rsp+48], rax
mov [rsp+120], rdx
mov rax, [r11+56]
mul r8
mov [rsp+56], rax
mov [rsp+128], rdx
mov rax, [r11+64]
mul r8
mov [rsp+64], rax
mov rax, [rsp+8]
add rax, [rsp+72]
mov [rsp+8], rax
mov rax, [rsp+16]
adc rax, [rsp+80]
mov [rsp+16], rax
mov rax, [rsp+24]
adc rax, [rsp+88]
mov [rsp+24], rax
mov rax, [rsp+32]
adc rax, [rsp+96]
mov [rsp+32], rax
mov rax, [rsp+40]
adc rax, [rsp+104]
mov [rsp+40], rax
mov rax, [rsp+48]
adc rax, [rsp+112]
mov [rsp+48], rax
mov rax, [rsp+56]
adc rax, [rsp+120]
mov [rsp+56], rax
mov rax, [rsp+64]
adc rax, [rsp+128]
mov [rsp+64], rax
adc rdx, 0
mov rax, [rsp]
add [rcx], rax
mov rax, [rsp+8]
adc [rcx+8], rax
mov rax, [rsp+16]
adc [rcx+16], rax
mov rax, [rsp+24]
adc [rcx+24], rax
mov rax, [rsp+32]
adc [rcx+32], rax
mov rax, [rsp+40]
adc [rcx+40], rax
mov rax, [rsp+48]
adc [rcx+48], rax
mov rax, [rsp+56]
adc [rcx+56], rax
mov rax, [rsp+64]
adc [rcx+64], rax
adc rdx, 0
mov rax, rdx
add rsp, 136
ret
mclb_mulUnitAdd_slow9 endp
align 16
mclb_mul_fast1 proc export
mov r11, rdx
mov rax, [r11]
mov rdx, [r8]
mul rdx
mov [rcx], rax
mov [rcx+8], rdx
ret
mclb_mul_fast1 endp
align 16
mclb_mul_fast2 proc export
push rdi
mov r11, rdx
mov rdx, [r11]
mulx r9, rax, [r8]
mov [rcx], rax
mulx r10, rax, [r8+8]
add r9, rax
adc r10, 0
mov rdx, [r11+8]
xor rax, rax
mulx rdi, rax, [r8]
adox r9, rax
mov [rcx+8], r9
adcx r10, rdi
mulx rdi, rax, [r8+8]
adox r10, rax
mov rax, 0
adox rdi, rax
adc rdi, rax
mov [rcx+16], r10
mov [rcx+24], rdi
pop rdi
ret
mclb_mul_fast2 endp
align 16
mclb_mul_fast3 proc export
push rdi
push rsi
mov r11, rdx
mov rdx, [r11]
mulx r9, rax, [r8]
mov [rcx], rax
mulx r10, rax, [r8+8]
add r9, rax
mulx rdi, rax, [r8+16]
adc r10, rax
adc rdi, 0
mov rdx, [r11+8]
xor rax, rax
mulx rsi, rax, [r8]
adox r9, rax
mov [rcx+8], r9
adcx r10, rsi
mulx rsi, rax, [r8+8]
adox r10, rax
adcx rdi, rsi
mulx rsi, rax, [r8+16]
adox rdi, rax
mov rax, 0
adox rsi, rax
adc rsi, rax
mov rdx, [r11+16]
xor rax, rax
mulx r9, rax, [r8]
adox r10, rax
mov [rcx+16], r10
adcx rdi, r9
mulx r9, rax, [r8+8]
adox rdi, rax
adcx rsi, r9
mulx r9, rax, [r8+16]
adox rsi, rax
mov rax, 0
adox r9, rax
adc r9, rax
mov [rcx+24], rdi
mov [rcx+32], rsi
mov [rcx+40], r9
pop rsi
pop rdi
ret
mclb_mul_fast3 endp
align 16
mclb_mul_fast4 proc export
push rdi
push rsi
push rbx
mov r11, rdx
mov rdx, [r11]
mulx r9, rax, [r8]
mov [rcx], rax
mulx r10, rax, [r8+8]
add r9, rax
mulx rdi, rax, [r8+16]
adc r10, rax
mulx rsi, rax, [r8+24]
adc rdi, rax
adc rsi, 0
mov rdx, [r11+8]
xor rax, rax
mulx rbx, rax, [r8]
adox r9, rax
mov [rcx+8], r9
adcx r10, rbx
mulx rbx, rax, [r8+8]
adox r10, rax
adcx rdi, rbx
mulx rbx, rax, [r8+16]
adox rdi, rax
adcx rsi, rbx
mulx rbx, rax, [r8+24]
adox rsi, rax
mov rax, 0
adox rbx, rax
adc rbx, rax
mov rdx, [r11+16]
xor rax, rax
mulx r9, rax, [r8]
adox r10, rax
mov [rcx+16], r10
adcx rdi, r9
mulx r9, rax, [r8+8]
adox rdi, rax
adcx rsi, r9
mulx r9, rax, [r8+16]
adox rsi, rax
adcx rbx, r9
mulx r9, rax, [r8+24]
adox rbx, rax
mov rax, 0
adox r9, rax
adc r9, rax
mov rdx, [r11+24]
xor rax, rax
mulx r10, rax, [r8]
adox rdi, rax
mov [rcx+24], rdi
adcx rsi, r10
mulx r10, rax, [r8+8]
adox rsi, rax
adcx rbx, r10
mulx r10, rax, [r8+16]
adox rbx, rax
adcx r9, r10
mulx r10, rax, [r8+24]
adox r9, rax
mov rax, 0
adox r10, rax
adc r10, rax
mov [rcx+32], rsi
mov [rcx+40], rbx
mov [rcx+48], r9
mov [rcx+56], r10
pop rbx
pop rsi
pop rdi
ret
mclb_mul_fast4 endp
align 16
mclb_mul_fast5 proc export
push rdi
push rsi
push rbx
push rbp
mov r11, rdx
mov rdx, [r11]
mulx r9, rax, [r8]
mov [rcx], rax
mulx r10, rax, [r8+8]
add r9, rax
mulx rdi, rax, [r8+16]
adc r10, rax
mulx rsi, rax, [r8+24]
adc rdi, rax
mulx rbx, rax, [r8+32]
adc rsi, rax
adc rbx, 0
mov rdx, [r11+8]
xor rax, rax
mulx rbp, rax, [r8]
adox r9, rax
mov [rcx+8], r9
adcx r10, rbp
mulx rbp, rax, [r8+8]
adox r10, rax
adcx rdi, rbp
mulx rbp, rax, [r8+16]
adox rdi, rax
adcx rsi, rbp
mulx rbp, rax, [r8+24]
adox rsi, rax
adcx rbx, rbp
mulx rbp, rax, [r8+32]
adox rbx, rax
mov rax, 0
adox rbp, rax
adc rbp, rax
mov rdx, [r11+16]
xor rax, rax
mulx r9, rax, [r8]
adox r10, rax
mov [rcx+16], r10
adcx rdi, r9
mulx r9, rax, [r8+8]
adox rdi, rax
adcx rsi, r9
mulx r9, rax, [r8+16]
adox rsi, rax
adcx rbx, r9
mulx r9, rax, [r8+24]
adox rbx, rax
adcx rbp, r9
mulx r9, rax, [r8+32]
adox rbp, rax
mov rax, 0
adox r9, rax
adc r9, rax
mov rdx, [r11+24]
xor rax, rax
mulx r10, rax, [r8]
adox rdi, rax
mov [rcx+24], rdi
adcx rsi, r10
mulx r10, rax, [r8+8]
adox rsi, rax
adcx rbx, r10
mulx r10, rax, [r8+16]
adox rbx, rax
adcx rbp, r10
mulx r10, rax, [r8+24]
adox rbp, rax
adcx r9, r10
mulx r10, rax, [r8+32]
adox r9, rax
mov rax, 0
adox r10, rax
adc r10, rax
mov rdx, [r11+32]
xor rax, rax
mulx rdi, rax, [r8]
adox rsi, rax
mov [rcx+32], rsi
adcx rbx, rdi
mulx rdi, rax, [r8+8]
adox rbx, rax
adcx rbp, rdi
mulx rdi, rax, [r8+16]
adox rbp, rax
adcx r9, rdi
mulx rdi, rax, [r8+24]
adox r9, rax
adcx r10, rdi
mulx rdi, rax, [r8+32]
adox r10, rax
mov rax, 0
adox rdi, rax
adc rdi, rax
mov [rcx+40], rbx
mov [rcx+48], rbp
mov [rcx+56], r9
mov [rcx+64], r10
mov [rcx+72], rdi
pop rbp
pop rbx
pop rsi
pop rdi
ret
mclb_mul_fast5 endp
align 16
mclb_mul_fast6 proc export
push rdi
push rsi
push rbx
push rbp
push r12
mov r11, rdx
mov rdx, [r11]
mulx r9, rax, [r8]
mov [rcx], rax
mulx r10, rax, [r8+8]
add r9, rax
mulx rdi, rax, [r8+16]
adc r10, rax
mulx rsi, rax, [r8+24]
adc rdi, rax
mulx rbx, rax, [r8+32]
adc rsi, rax
mulx rbp, rax, [r8+40]
adc rbx, rax
adc rbp, 0
mov rdx, [r11+8]
xor rax, rax
mulx r12, rax, [r8]
adox r9, rax
mov [rcx+8], r9
adcx r10, r12
mulx r12, rax, [r8+8]
adox r10, rax
adcx rdi, r12
mulx r12, rax, [r8+16]
adox rdi, rax
adcx rsi, r12
mulx r12, rax, [r8+24]
adox rsi, rax
adcx rbx, r12
mulx r12, rax, [r8+32]
adox rbx, rax
adcx rbp, r12
mulx r12, rax, [r8+40]
adox rbp, rax
mov rax, 0
adox r12, rax
adc r12, rax
mov rdx, [r11+16]
xor rax, rax
mulx r9, rax, [r8]
adox r10, rax
mov [rcx+16], r10
adcx rdi, r9
mulx r9, rax, [r8+8]
adox rdi, rax
adcx rsi, r9
mulx r9, rax, [r8+16]
adox rsi, rax
adcx rbx, r9
mulx r9, rax, [r8+24]
adox rbx, rax
adcx rbp, r9
mulx r9, rax, [r8+32]
adox rbp, rax
adcx r12, r9
mulx r9, rax, [r8+40]
adox r12, rax
mov rax, 0
adox r9, rax
adc r9, rax
mov rdx, [r11+24]
xor rax, rax
mulx r10, rax, [r8]
adox rdi, rax
mov [rcx+24], rdi
adcx rsi, r10
mulx r10, rax, [r8+8]
adox rsi, rax
adcx rbx, r10
mulx r10, rax, [r8+16]
adox rbx, rax
adcx rbp, r10
mulx r10, rax, [r8+24]
adox rbp, rax
adcx r12, r10
mulx r10, rax, [r8+32]
adox r12, rax
adcx r9, r10
mulx r10, rax, [r8+40]
adox r9, rax
mov rax, 0
adox r10, rax
adc r10, rax
mov rdx, [r11+32]
xor rax, rax
mulx rdi, rax, [r8]
adox rsi, rax
mov [rcx+32], rsi
adcx rbx, rdi
mulx rdi, rax, [r8+8]
adox rbx, rax
adcx rbp, rdi
mulx rdi, rax, [r8+16]
adox rbp, rax
adcx r12, rdi
mulx rdi, rax, [r8+24]
adox r12, rax
adcx r9, rdi
mulx rdi, rax, [r8+32]
adox r9, rax
adcx r10, rdi
mulx rdi, rax, [r8+40]
adox r10, rax
mov rax, 0
adox rdi, rax
adc rdi, rax
mov rdx, [r11+40]
xor rax, rax
mulx rsi, rax, [r8]
adox rbx, rax
mov [rcx+40], rbx
adcx rbp, rsi
mulx rsi, rax, [r8+8]
adox rbp, rax
adcx r12, rsi
mulx rsi, rax, [r8+16]
adox r12, rax
adcx r9, rsi
mulx rsi, rax, [r8+24]
adox r9, rax
adcx r10, rsi
mulx rsi, rax, [r8+32]
adox r10, rax
adcx rdi, rsi
mulx rsi, rax, [r8+40]
adox rdi, rax
mov rax, 0
adox rsi, rax
adc rsi, rax
mov [rcx+48], rbp
mov [rcx+56], r12
mov [rcx+64], r9
mov [rcx+72], r10
mov [rcx+80], rdi
mov [rcx+88], rsi
pop r12
pop rbp
pop rbx
pop rsi
pop rdi
ret
mclb_mul_fast6 endp
align 16
mclb_mul_fast7 proc export
push rdi
push rsi
push rbx
push rbp
push r12
push r13
mov r11, rdx
mov rdx, [r11]
mulx r9, rax, [r8]
mov [rcx], rax
mulx r10, rax, [r8+8]
add r9, rax
mulx rdi, rax, [r8+16]
adc r10, rax
mulx rsi, rax, [r8+24]
adc rdi, rax
mulx rbx, rax, [r8+32]
adc rsi, rax
mulx rbp, rax, [r8+40]
adc rbx, rax
mulx r12, rax, [r8+48]
adc rbp, rax
adc r12, 0
mov rdx, [r11+8]
xor rax, rax
mulx r13, rax, [r8]
adox r9, rax
mov [rcx+8], r9
adcx r10, r13
mulx r13, rax, [r8+8]
adox r10, rax
adcx rdi, r13
mulx r13, rax, [r8+16]
adox rdi, rax
adcx rsi, r13
mulx r13, rax, [r8+24]
adox rsi, rax
adcx rbx, r13
mulx r13, rax, [r8+32]
adox rbx, rax
adcx rbp, r13
mulx r13, rax, [r8+40]
adox rbp, rax
adcx r12, r13
mulx r13, rax, [r8+48]
adox r12, rax
mov rax, 0
adox r13, rax
adc r13, rax
mov rdx, [r11+16]
xor rax, rax
mulx r9, rax, [r8]
adox r10, rax
mov [rcx+16], r10
adcx rdi, r9
mulx r9, rax, [r8+8]
adox rdi, rax
adcx rsi, r9
mulx r9, rax, [r8+16]
adox rsi, rax
adcx rbx, r9
mulx r9, rax, [r8+24]
adox rbx, rax
adcx rbp, r9
mulx r9, rax, [r8+32]
adox rbp, rax
adcx r12, r9
mulx r9, rax, [r8+40]
adox r12, rax
adcx r13, r9
mulx r9, rax, [r8+48]
adox r13, rax
mov rax, 0
adox r9, rax
adc r9, rax
mov rdx, [r11+24]
xor rax, rax
mulx r10, rax, [r8]
adox rdi, rax
mov [rcx+24], rdi
adcx rsi, r10
mulx r10, rax, [r8+8]
adox rsi, rax
adcx rbx, r10
mulx r10, rax, [r8+16]
adox rbx, rax
adcx rbp, r10
mulx r10, rax, [r8+24]
adox rbp, rax
adcx r12, r10
mulx r10, rax, [r8+32]
adox r12, rax
adcx r13, r10
mulx r10, rax, [r8+40]
adox r13, rax
adcx r9, r10
mulx r10, rax, [r8+48]
adox r9, rax
mov rax, 0
adox r10, rax
adc r10, rax
mov rdx, [r11+32]
xor rax, rax
mulx rdi, rax, [r8]
adox rsi, rax
mov [rcx+32], rsi
adcx rbx, rdi
mulx rdi, rax, [r8+8]
adox rbx, rax
adcx rbp, rdi
mulx rdi, rax, [r8+16]
adox rbp, rax
adcx r12, rdi
mulx rdi, rax, [r8+24]
adox r12, rax
adcx r13, rdi
mulx rdi, rax, [r8+32]
adox r13, rax
adcx r9, rdi
mulx rdi, rax, [r8+40]
adox r9, rax
adcx r10, rdi
mulx rdi, rax, [r8+48]
adox r10, rax
mov rax, 0
adox rdi, rax
adc rdi, rax
mov rdx, [r11+40]
xor rax, rax
mulx rsi, rax, [r8]
adox rbx, rax
mov [rcx+40], rbx
adcx rbp, rsi
mulx rsi, rax, [r8+8]
adox rbp, rax
adcx r12, rsi
mulx rsi, rax, [r8+16]
adox r12, rax
adcx r13, rsi
mulx rsi, rax, [r8+24]
adox r13, rax
adcx r9, rsi
mulx rsi, rax, [r8+32]
adox r9, rax
adcx r10, rsi
mulx rsi, rax, [r8+40]
adox r10, rax
adcx rdi, rsi
mulx rsi, rax, [r8+48]
adox rdi, rax
mov rax, 0
adox rsi, rax
adc rsi, rax
mov rdx, [r11+48]
xor rax, rax
mulx rbx, rax, [r8]
adox rbp, rax
mov [rcx+48], rbp
adcx r12, rbx
mulx rbx, rax, [r8+8]
adox r12, rax
adcx r13, rbx
mulx rbx, rax, [r8+16]
adox r13, rax
adcx r9, rbx
mulx rbx, rax, [r8+24]
adox r9, rax
adcx r10, rbx
mulx rbx, rax, [r8+32]
adox r10, rax
adcx rdi, rbx
mulx rbx, rax, [r8+40]
adox rdi, rax
adcx rsi, rbx
mulx rbx, rax, [r8+48]
adox rsi, rax
mov rax, 0
adox rbx, rax
adc rbx, rax
mov [rcx+56], r12
mov [rcx+64], r13
mov [rcx+72], r9
mov [rcx+80], r10
mov [rcx+88], rdi
mov [rcx+96], rsi
mov [rcx+104], rbx
pop r13
pop r12
pop rbp
pop rbx
pop rsi
pop rdi
ret
mclb_mul_fast7 endp
align 16
mclb_mul_fast8 proc export
push rdi
push rsi
push rbx
push rbp
push r12
push r13
push r14
mov r11, rdx
mov rdx, [r11]
mulx r9, rax, [r8]
mov [rcx], rax
mulx r10, rax, [r8+8]
add r9, rax
mulx rdi, rax, [r8+16]
adc r10, rax
mulx rsi, rax, [r8+24]
adc rdi, rax
mulx rbx, rax, [r8+32]
adc rsi, rax
mulx rbp, rax, [r8+40]
adc rbx, rax
mulx r12, rax, [r8+48]
adc rbp, rax
mulx r13, rax, [r8+56]
adc r12, rax
adc r13, 0
mov rdx, [r11+8]
xor rax, rax
mulx r14, rax, [r8]
adox r9, rax
mov [rcx+8], r9
adcx r10, r14
mulx r14, rax, [r8+8]
adox r10, rax
adcx rdi, r14
mulx r14, rax, [r8+16]
adox rdi, rax
adcx rsi, r14
mulx r14, rax, [r8+24]
adox rsi, rax
adcx rbx, r14
mulx r14, rax, [r8+32]
adox rbx, rax
adcx rbp, r14
mulx r14, rax, [r8+40]
adox rbp, rax
adcx r12, r14
mulx r14, rax, [r8+48]
adox r12, rax
adcx r13, r14
mulx r14, rax, [r8+56]
adox r13, rax
mov rax, 0
adox r14, rax
adc r14, rax
mov rdx, [r11+16]
xor rax, rax
mulx r9, rax, [r8]
adox r10, rax
mov [rcx+16], r10
adcx rdi, r9
mulx r9, rax, [r8+8]
adox rdi, rax
adcx rsi, r9
mulx r9, rax, [r8+16]
adox rsi, rax
adcx rbx, r9
mulx r9, rax, [r8+24]
adox rbx, rax
adcx rbp, r9
mulx r9, rax, [r8+32]
adox rbp, rax
adcx r12, r9
mulx r9, rax, [r8+40]
adox r12, rax
adcx r13, r9
mulx r9, rax, [r8+48]
adox r13, rax
adcx r14, r9
mulx r9, rax, [r8+56]
adox r14, rax
mov rax, 0
adox r9, rax
adc r9, rax
mov rdx, [r11+24]
xor rax, rax
mulx r10, rax, [r8]
adox rdi, rax
mov [rcx+24], rdi
adcx rsi, r10
mulx r10, rax, [r8+8]
adox rsi, rax
adcx rbx, r10
mulx r10, rax, [r8+16]
adox rbx, rax
adcx rbp, r10
mulx r10, rax, [r8+24]
adox rbp, rax
adcx r12, r10
mulx r10, rax, [r8+32]
adox r12, rax
adcx r13, r10
mulx r10, rax, [r8+40]
adox r13, rax
adcx r14, r10
mulx r10, rax, [r8+48]
adox r14, rax
adcx r9, r10
mulx r10, rax, [r8+56]
adox r9, rax
mov rax, 0
adox r10, rax
adc r10, rax
mov rdx, [r11+32]
xor rax, rax
mulx rdi, rax, [r8]
adox rsi, rax
mov [rcx+32], rsi
adcx rbx, rdi
mulx rdi, rax, [r8+8]
adox rbx, rax
adcx rbp, rdi
mulx rdi, rax, [r8+16]
adox rbp, rax
adcx r12, rdi
mulx rdi, rax, [r8+24]
adox r12, rax
adcx r13, rdi
mulx rdi, rax, [r8+32]
adox r13, rax
adcx r14, rdi
mulx rdi, rax, [r8+40]
adox r14, rax
adcx r9, rdi
mulx rdi, rax, [r8+48]
adox r9, rax
adcx r10, rdi
mulx rdi, rax, [r8+56]
adox r10, rax
mov rax, 0
adox rdi, rax
adc rdi, rax
mov rdx, [r11+40]
xor rax, rax
mulx rsi, rax, [r8]
adox rbx, rax
mov [rcx+40], rbx
adcx rbp, rsi
mulx rsi, rax, [r8+8]
adox rbp, rax
adcx r12, rsi
mulx rsi, rax, [r8+16]
adox r12, rax
adcx r13, rsi
mulx rsi, rax, [r8+24]
adox r13, rax
adcx r14, rsi
mulx rsi, rax, [r8+32]
adox r14, rax
adcx r9, rsi
mulx rsi, rax, [r8+40]
adox r9, rax
adcx r10, rsi
mulx rsi, rax, [r8+48]
adox r10, rax
adcx rdi, rsi
mulx rsi, rax, [r8+56]
adox rdi, rax
mov rax, 0
adox rsi, rax
adc rsi, rax
mov rdx, [r11+48]
xor rax, rax
mulx rbx, rax, [r8]
adox rbp, rax
mov [rcx+48], rbp
adcx r12, rbx
mulx rbx, rax, [r8+8]
adox r12, rax
adcx r13, rbx
mulx rbx, rax, [r8+16]
adox r13, rax
adcx r14, rbx
mulx rbx, rax, [r8+24]
adox r14, rax
adcx r9, rbx
mulx rbx, rax, [r8+32]
adox r9, rax
adcx r10, rbx
mulx rbx, rax, [r8+40]
adox r10, rax
adcx rdi, rbx
mulx rbx, rax, [r8+48]
adox rdi, rax
adcx rsi, rbx
mulx rbx, rax, [r8+56]
adox rsi, rax
mov rax, 0
adox rbx, rax
adc rbx, rax
mov rdx, [r11+56]
xor rax, rax
mulx rbp, rax, [r8]
adox r12, rax
mov [rcx+56], r12
adcx r13, rbp
mulx rbp, rax, [r8+8]
adox r13, rax
adcx r14, rbp
mulx rbp, rax, [r8+16]
adox r14, rax
adcx r9, rbp
mulx rbp, rax, [r8+24]
adox r9, rax
adcx r10, rbp
mulx rbp, rax, [r8+32]
adox r10, rax
adcx rdi, rbp
mulx rbp, rax, [r8+40]
adox rdi, rax
adcx rsi, rbp
mulx rbp, rax, [r8+48]
adox rsi, rax
adcx rbx, rbp
mulx rbp, rax, [r8+56]
adox rbx, rax
mov rax, 0
adox rbp, rax
adc rbp, rax
mov [rcx+64], r13
mov [rcx+72], r14
mov [rcx+80], r9
mov [rcx+88], r10
mov [rcx+96], rdi
mov [rcx+104], rsi
mov [rcx+112], rbx
mov [rcx+120], rbp
pop r14
pop r13
pop r12
pop rbp
pop rbx
pop rsi
pop rdi
ret
mclb_mul_fast8 endp
align 16
mclb_mul_fast9 proc export
push rdi
push rsi
push rbx
push rbp
push r12
push r13
push r14
push r15
mov r11, rdx
mov rdx, [r11]
mulx r9, rax, [r8]
mov [rcx], rax
mulx r10, rax, [r8+8]
add r9, rax
mulx rdi, rax, [r8+16]
adc r10, rax
mulx rsi, rax, [r8+24]
adc rdi, rax
mulx rbx, rax, [r8+32]
adc rsi, rax
mulx rbp, rax, [r8+40]
adc rbx, rax
mulx r12, rax, [r8+48]
adc rbp, rax
mulx r13, rax, [r8+56]
adc r12, rax
mulx r14, rax, [r8+64]
adc r13, rax
adc r14, 0
mov rdx, [r11+8]
xor rax, rax
mulx r15, rax, [r8]
adox r9, rax
mov [rcx+8], r9
adcx r10, r15
mulx r15, rax, [r8+8]
adox r10, rax
adcx rdi, r15
mulx r15, rax, [r8+16]
adox rdi, rax
adcx rsi, r15
mulx r15, rax, [r8+24]
adox rsi, rax
adcx rbx, r15
mulx r15, rax, [r8+32]
adox rbx, rax
adcx rbp, r15
mulx r15, rax, [r8+40]
adox rbp, rax
adcx r12, r15
mulx r15, rax, [r8+48]
adox r12, rax
adcx r13, r15
mulx r15, rax, [r8+56]
adox r13, rax
adcx r14, r15
mulx r15, rax, [r8+64]
adox r14, rax
mov rax, 0
adox r15, rax
adc r15, rax
mov rdx, [r11+16]
xor rax, rax
mulx r9, rax, [r8]
adox r10, rax
mov [rcx+16], r10
adcx rdi, r9
mulx r9, rax, [r8+8]
adox rdi, rax
adcx rsi, r9
mulx r9, rax, [r8+16]
adox rsi, rax
adcx rbx, r9
mulx r9, rax, [r8+24]
adox rbx, rax
adcx rbp, r9
mulx r9, rax, [r8+32]
adox rbp, rax
adcx r12, r9
mulx r9, rax, [r8+40]
adox r12, rax
adcx r13, r9
mulx r9, rax, [r8+48]
adox r13, rax
adcx r14, r9
mulx r9, rax, [r8+56]
adox r14, rax
adcx r15, r9
mulx r9, rax, [r8+64]
adox r15, rax
mov rax, 0
adox r9, rax
adc r9, rax
mov rdx, [r11+24]
xor rax, rax
mulx r10, rax, [r8]
adox rdi, rax
mov [rcx+24], rdi
adcx rsi, r10
mulx r10, rax, [r8+8]
adox rsi, rax
adcx rbx, r10
mulx r10, rax, [r8+16]
adox rbx, rax
adcx rbp, r10
mulx r10, rax, [r8+24]
adox rbp, rax
adcx r12, r10
mulx r10, rax, [r8+32]
adox r12, rax
adcx r13, r10
mulx r10, rax, [r8+40]
adox r13, rax
adcx r14, r10
mulx r10, rax, [r8+48]
adox r14, rax
adcx r15, r10
mulx r10, rax, [r8+56]
adox r15, rax
adcx r9, r10
mulx r10, rax, [r8+64]
adox r9, rax
mov rax, 0
adox r10, rax
adc r10, rax
mov rdx, [r11+32]
xor rax, rax
mulx rdi, rax, [r8]
adox rsi, rax
mov [rcx+32], rsi
adcx rbx, rdi
mulx rdi, rax, [r8+8]
adox rbx, rax
adcx rbp, rdi
mulx rdi, rax, [r8+16]
adox rbp, rax
adcx r12, rdi
mulx rdi, rax, [r8+24]
adox r12, rax
adcx r13, rdi
mulx rdi, rax, [r8+32]
adox r13, rax
adcx r14, rdi
mulx rdi, rax, [r8+40]
adox r14, rax
adcx r15, rdi
mulx rdi, rax, [r8+48]
adox r15, rax
adcx r9, rdi
mulx rdi, rax, [r8+56]
adox r9, rax
adcx r10, rdi
mulx rdi, rax, [r8+64]
adox r10, rax
mov rax, 0
adox rdi, rax
adc rdi, rax
mov rdx, [r11+40]
xor rax, rax
mulx rsi, rax, [r8]
adox rbx, rax
mov [rcx+40], rbx
adcx rbp, rsi
mulx rsi, rax, [r8+8]
adox rbp, rax
adcx r12, rsi
mulx rsi, rax, [r8+16]
adox r12, rax
adcx r13, rsi
mulx rsi, rax, [r8+24]
adox r13, rax
adcx r14, rsi
mulx rsi, rax, [r8+32]
adox r14, rax
adcx r15, rsi
mulx rsi, rax, [r8+40]
adox r15, rax
adcx r9, rsi
mulx rsi, rax, [r8+48]
adox r9, rax
adcx r10, rsi
mulx rsi, rax, [r8+56]
adox r10, rax
adcx rdi, rsi
mulx rsi, rax, [r8+64]
adox rdi, rax
mov rax, 0
adox rsi, rax
adc rsi, rax
mov rdx, [r11+48]
xor rax, rax
mulx rbx, rax, [r8]
adox rbp, rax
mov [rcx+48], rbp
adcx r12, rbx
mulx rbx, rax, [r8+8]
adox r12, rax
adcx r13, rbx
mulx rbx, rax, [r8+16]
adox r13, rax
adcx r14, rbx
mulx rbx, rax, [r8+24]
adox r14, rax
adcx r15, rbx
mulx rbx, rax, [r8+32]
adox r15, rax
adcx r9, rbx
mulx rbx, rax, [r8+40]
adox r9, rax
adcx r10, rbx
mulx rbx, rax, [r8+48]
adox r10, rax
adcx rdi, rbx
mulx rbx, rax, [r8+56]
adox rdi, rax
adcx rsi, rbx
mulx rbx, rax, [r8+64]
adox rsi, rax
mov rax, 0
adox rbx, rax
adc rbx, rax
mov rdx, [r11+56]
xor rax, rax
mulx rbp, rax, [r8]
adox r12, rax
mov [rcx+56], r12
adcx r13, rbp
mulx rbp, rax, [r8+8]
adox r13, rax
adcx r14, rbp
mulx rbp, rax, [r8+16]
adox r14, rax
adcx r15, rbp
mulx rbp, rax, [r8+24]
adox r15, rax
adcx r9, rbp
mulx rbp, rax, [r8+32]
adox r9, rax
adcx r10, rbp
mulx rbp, rax, [r8+40]
adox r10, rax
adcx rdi, rbp
mulx rbp, rax, [r8+48]
adox rdi, rax
adcx rsi, rbp
mulx rbp, rax, [r8+56]
adox rsi, rax
adcx rbx, rbp
mulx rbp, rax, [r8+64]
adox rbx, rax
mov rax, 0
adox rbp, rax
adc rbp, rax
mov rdx, [r11+64]
xor rax, rax
mulx r12, rax, [r8]
adox r13, rax
mov [rcx+64], r13
adcx r14, r12
mulx r12, rax, [r8+8]
adox r14, rax
adcx r15, r12
mulx r12, rax, [r8+16]
adox r15, rax
adcx r9, r12
mulx r12, rax, [r8+24]
adox r9, rax
adcx r10, r12
mulx r12, rax, [r8+32]
adox r10, rax
adcx rdi, r12
mulx r12, rax, [r8+40]
adox rdi, rax
adcx rsi, r12
mulx r12, rax, [r8+48]
adox rsi, rax
adcx rbx, r12
mulx r12, rax, [r8+56]
adox rbx, rax
adcx rbp, r12
mulx r12, rax, [r8+64]
adox rbp, rax
mov rax, 0
adox r12, rax
adc r12, rax
mov [rcx+72], r14
mov [rcx+80], r15
mov [rcx+88], r9
mov [rcx+96], r10
mov [rcx+104], rdi
mov [rcx+112], rsi
mov [rcx+120], rbx
mov [rcx+128], rbp
mov [rcx+136], r12
pop r15
pop r14
pop r13
pop r12
pop rbp
pop rbx
pop rsi
pop rdi
ret
mclb_mul_fast9 endp
align 16
mclb_sqr_fast1 proc export
mov r11, rdx
mov rax, [r11]
mul rax
mov [rcx], rax
mov [rcx+8], rdx
ret
mclb_sqr_fast1 endp
align 16
mclb_sqr_fast2 proc export
mov r8, rdx
jmp mclb_mul_fast2
mclb_sqr_fast2 endp
align 16
mclb_sqr_fast3 proc export
mov r8, rdx
jmp mclb_mul_fast3
mclb_sqr_fast3 endp
align 16
mclb_sqr_fast4 proc export
mov r8, rdx
jmp mclb_mul_fast4
mclb_sqr_fast4 endp
align 16
mclb_sqr_fast5 proc export
mov r8, rdx
jmp mclb_mul_fast5
mclb_sqr_fast5 endp
align 16
mclb_sqr_fast6 proc export
mov r8, rdx
jmp mclb_mul_fast6
mclb_sqr_fast6 endp
align 16
mclb_sqr_fast7 proc export
mov r8, rdx
jmp mclb_mul_fast7
mclb_sqr_fast7 endp
align 16
mclb_sqr_fast8 proc export
mov r8, rdx
jmp mclb_mul_fast8
mclb_sqr_fast8 endp
align 16
mclb_sqr_fast9 proc export
mov r8, rdx
jmp mclb_mul_fast9
mclb_sqr_fast9 endp
align 16
mclb_udiv128 proc export
mov rax, rdx
mov rdx, rcx
div r8
mov [r9], rdx
ret
mclb_udiv128 endp
_text$x ends
end
