1116680a4aac90f2aa7413d9095a592090648e557Ben MurdochOPTION DOTNAME 25f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles).text$ SEGMENT ALIGN(256) 'CODE' 3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 4116680a4aac90f2aa7413d9095a592090648e557Ben MurdochEXTERN OPENSSL_ia32cap_P:NEAR 5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 6116680a4aac90f2aa7413d9095a592090648e557Ben MurdochPUBLIC rsaz_512_sqr 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 8116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 32 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdochrsaz_512_sqr PROC PUBLIC 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[8+rsp],rdi ;WIN64 prologue 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[16+rsp],rsi 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,rsp 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$SEH_begin_rsaz_512_sqr:: 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdi,rcx 15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rsi,rdx 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdx,r8 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rcx,r9 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r8,QWORD PTR[40+rsp] 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rbx 22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rbp 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r12 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r13 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r14 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r15 27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub rsp,128+24 29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$sqr_body:: 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbp,rdx 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdx,QWORD PTR[rsi] 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[8+rsi] 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[128+rsp],rcx 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$oop_sqr 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 36116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 32 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$oop_sqr:: 38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov DWORD PTR[((128+8))+rsp],r8d 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,rdx 41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rdx 42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r8,rax 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[16+rsi] 44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r9,rdx 45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r9,rax 48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[24+rsi] 49116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10,rdx 50116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r10,0 51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 52116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 53116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r10,rax 54116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[32+rsi] 55116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r11,rdx 56116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r11,0 57116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 58116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 59116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r11,rax 60116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[40+rsi] 61116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,rdx 62116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r12,0 63116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 64116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 65116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r12,rax 66116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[48+rsi] 67116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,rdx 68116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r13,0 69116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 70116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 71116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r13,rax 72116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[56+rsi] 73116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,rdx 74116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r14,0 75116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 76116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 77116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r14,rax 78116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,rbx 79116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,rdx 80116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r15,0 81116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 82116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r8,r8 83116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rcx,r9 84116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r9,r9 85116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 86116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rax 87116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[rsp],rax 88116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r8,rdx 89116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r9,0 90116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 91116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[8+rsp],r8 92116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shr rcx,63 93116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 94116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 95116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r8,QWORD PTR[8+rsi] 96116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[16+rsi] 97116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul r8 98116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r10,rax 99116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[24+rsi] 100116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,rdx 101116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rbx,0 102116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 103116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul r8 104116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r11,rax 105116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[32+rsi] 106116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 107116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r11,rbx 108116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,rdx 109116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rbx,0 110116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 111116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul r8 112116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r12,rax 113116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[40+rsi] 114116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 115116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r12,rbx 116116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,rdx 117116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rbx,0 118116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 119116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul r8 120116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r13,rax 121116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[48+rsi] 122116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 123116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r13,rbx 124116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,rdx 125116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rbx,0 126116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 127116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul r8 128116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r14,rax 129116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[56+rsi] 130116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 131116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r14,rbx 132116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,rdx 133116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rbx,0 134116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 135116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul r8 136116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r15,rax 137116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,r8 138116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 139116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r15,rbx 140116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r8,rdx 141116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdx,r10 142116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r8,0 143116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 144116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add rdx,rdx 145116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r10,QWORD PTR[r10*2+rcx] 146116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,r11 147116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r11,r11 148116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 149116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rax 150116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r9,rax 151116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r10,rdx 152116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r11,0 153116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 154116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[16+rsp],r9 155116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[24+rsp],r10 156116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shr rbx,63 157116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 158116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 159116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r9,QWORD PTR[16+rsi] 160116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[24+rsi] 161116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul r9 162116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r12,rax 163116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[32+rsi] 164116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rcx,rdx 165116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rcx,0 166116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 167116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul r9 168116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r13,rax 169116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[40+rsi] 170116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 171116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r13,rcx 172116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rcx,rdx 173116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rcx,0 174116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 175116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul r9 176116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r14,rax 177116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[48+rsi] 178116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 179116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r14,rcx 180116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rcx,rdx 181116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rcx,0 182116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 183116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul r9 184116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10,r12 185116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[r12*2+rbx] 186116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r15,rax 187116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[56+rsi] 188116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 189116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r15,rcx 190116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rcx,rdx 191116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rcx,0 192116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 193116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul r9 194116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shr r10,63 195116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r8,rax 196116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,r9 197116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 198116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r8,rcx 199116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r9,rdx 200116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r9,0 201116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 202116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rcx,r13 203116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r13,QWORD PTR[r13*2+r10] 204116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 205116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rax 206116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r11,rax 207116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r12,rdx 208116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r13,0 209116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 210116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[32+rsp],r11 211116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[40+rsp],r12 212116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shr rcx,63 213116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 214116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 215116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10,QWORD PTR[24+rsi] 216116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[32+rsi] 217116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul r10 218116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r14,rax 219116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[40+rsi] 220116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,rdx 221116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rbx,0 222116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 223116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul r10 224116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r15,rax 225116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[48+rsi] 226116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 227116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r15,rbx 228116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,rdx 229116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rbx,0 230116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 231116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul r10 232116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,r14 233116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r14,QWORD PTR[r14*2+rcx] 234116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r8,rax 235116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[56+rsi] 236116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 237116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r8,rbx 238116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,rdx 239116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rbx,0 240116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 241116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul r10 242116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shr r12,63 243116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r9,rax 244116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,r10 245116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 246116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r9,rbx 247116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10,rdx 248116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r10,0 249116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 250116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,r15 251116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r15,QWORD PTR[r15*2+r12] 252116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 253116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rax 254116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r13,rax 255116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r14,rdx 256116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r15,0 257116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 258116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[48+rsp],r13 259116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[56+rsp],r14 260116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shr rbx,63 261116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 262116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 263116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r11,QWORD PTR[32+rsi] 264116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[40+rsi] 265116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul r11 266116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r8,rax 267116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[48+rsi] 268116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rcx,rdx 269116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rcx,0 270116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 271116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul r11 272116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r9,rax 273116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[56+rsi] 274116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 275116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,r8 276116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r8,QWORD PTR[r8*2+rbx] 277116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r9,rcx 278116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rcx,rdx 279116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rcx,0 280116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 281116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul r11 282116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shr r12,63 283116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r10,rax 284116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,r11 285116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 286116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r10,rcx 287116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r11,rdx 288116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r11,0 289116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 290116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rcx,r9 291116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r9,QWORD PTR[r9*2+r12] 292116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 293116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rax 294116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r15,rax 295116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r8,rdx 296116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r9,0 297116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 298116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[64+rsp],r15 299116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[72+rsp],r8 300116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shr rcx,63 301116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 302116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 303116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,QWORD PTR[40+rsi] 304116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[48+rsi] 305116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul r12 306116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r10,rax 307116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[56+rsi] 308116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,rdx 309116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rbx,0 310116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 311116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul r12 312116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r11,rax 313116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,r12 314116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,r10 315116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r10,QWORD PTR[r10*2+rcx] 316116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 317116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shr r15,63 318116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r11,rbx 319116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,rdx 320116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r12,0 321116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 322116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,r11 323116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r11,QWORD PTR[r11*2+r15] 324116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 325116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rax 326116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r9,rax 327116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r10,rdx 328116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r11,0 329116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 330116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[80+rsp],r9 331116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[88+rsp],r10 332116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 333116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 334116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,QWORD PTR[48+rsi] 335116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[56+rsi] 336116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul r13 337116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r12,rax 338116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,r13 339116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,rdx 340116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r13,0 341116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 342116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch xor r14,r14 343116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shl rbx,1 344116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r12,r12 345116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r13,r13 346116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r14,r14 347116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 348116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rax 349116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r11,rax 350116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r12,rdx 351116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r13,0 352116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 353116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[96+rsp],r11 354116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[104+rsp],r12 355116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 356116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 357116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[56+rsi] 358116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rax 359116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r13,rax 360116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 361116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 362116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r14,rdx 363116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 364116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[112+rsp],r13 365116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[120+rsp],r14 366116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 367116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r8,QWORD PTR[rsp] 368116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r9,QWORD PTR[8+rsp] 369116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10,QWORD PTR[16+rsp] 370116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r11,QWORD PTR[24+rsp] 371116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,QWORD PTR[32+rsp] 372116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,QWORD PTR[40+rsp] 373116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,QWORD PTR[48+rsp] 374116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,QWORD PTR[56+rsp] 375116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 376116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call __rsaz_512_reduce 377116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 378116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r8,QWORD PTR[64+rsp] 379116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r9,QWORD PTR[72+rsp] 380116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r10,QWORD PTR[80+rsp] 381116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r11,QWORD PTR[88+rsp] 382116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r12,QWORD PTR[96+rsp] 383116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r13,QWORD PTR[104+rsp] 384116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r14,QWORD PTR[112+rsp] 385116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r15,QWORD PTR[120+rsp] 386116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sbb rcx,rcx 387116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 388116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call __rsaz_512_subtract 389116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 390116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdx,r8 391116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,r9 392116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r8d,DWORD PTR[((128+8))+rsp] 393116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rsi,rdi 394116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 395116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch dec r8d 396116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jnz $L$oop_sqr 397116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 398116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[((128+24+48))+rsp] 399116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,QWORD PTR[((-48))+rax] 400116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,QWORD PTR[((-40))+rax] 401116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,QWORD PTR[((-32))+rax] 402116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,QWORD PTR[((-24))+rax] 403116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbp,QWORD PTR[((-16))+rax] 404116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,QWORD PTR[((-8))+rax] 405116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[rax] 406116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$sqr_epilogue:: 407116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue 408116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rsi,QWORD PTR[16+rsp] 409116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DB 0F3h,0C3h ;repret 410116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$SEH_end_rsaz_512_sqr:: 411116680a4aac90f2aa7413d9095a592090648e557Ben Murdochrsaz_512_sqr ENDP 412116680a4aac90f2aa7413d9095a592090648e557Ben MurdochPUBLIC rsaz_512_mul 413116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 414116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 32 415116680a4aac90f2aa7413d9095a592090648e557Ben Murdochrsaz_512_mul PROC PUBLIC 416116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[8+rsp],rdi ;WIN64 prologue 417116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[16+rsp],rsi 418116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,rsp 419116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$SEH_begin_rsaz_512_mul:: 420116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdi,rcx 421116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rsi,rdx 422116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdx,r8 423116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rcx,r9 424116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r8,QWORD PTR[40+rsp] 425116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 426116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 427116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rbx 428116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rbp 429116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r12 430116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r13 431116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r14 432116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r15 433116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 434116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub rsp,128+24 435116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$mul_body:: 436116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,72,15,110,199 437116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,72,15,110,201 438116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[128+rsp],r8 439116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,QWORD PTR[rdx] 440116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbp,rdx 441116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call __rsaz_512_mul 442116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 443116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,72,15,126,199 444116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,72,15,126,205 445116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 446116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r8,QWORD PTR[rsp] 447116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r9,QWORD PTR[8+rsp] 448116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10,QWORD PTR[16+rsp] 449116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r11,QWORD PTR[24+rsp] 450116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,QWORD PTR[32+rsp] 451116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,QWORD PTR[40+rsp] 452116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,QWORD PTR[48+rsp] 453116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,QWORD PTR[56+rsp] 454116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 455116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call __rsaz_512_reduce 456116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r8,QWORD PTR[64+rsp] 457116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r9,QWORD PTR[72+rsp] 458116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r10,QWORD PTR[80+rsp] 459116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r11,QWORD PTR[88+rsp] 460116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r12,QWORD PTR[96+rsp] 461116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r13,QWORD PTR[104+rsp] 462116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r14,QWORD PTR[112+rsp] 463116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r15,QWORD PTR[120+rsp] 464116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sbb rcx,rcx 465116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 466116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call __rsaz_512_subtract 467116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 468116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[((128+24+48))+rsp] 469116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,QWORD PTR[((-48))+rax] 470116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,QWORD PTR[((-40))+rax] 471116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,QWORD PTR[((-32))+rax] 472116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,QWORD PTR[((-24))+rax] 473116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbp,QWORD PTR[((-16))+rax] 474116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,QWORD PTR[((-8))+rax] 475116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[rax] 476116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$mul_epilogue:: 477116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue 478116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rsi,QWORD PTR[16+rsp] 479116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DB 0F3h,0C3h ;repret 480116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$SEH_end_rsaz_512_mul:: 481116680a4aac90f2aa7413d9095a592090648e557Ben Murdochrsaz_512_mul ENDP 482116680a4aac90f2aa7413d9095a592090648e557Ben MurdochPUBLIC rsaz_512_mul_gather4 483116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 484116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 32 485116680a4aac90f2aa7413d9095a592090648e557Ben Murdochrsaz_512_mul_gather4 PROC PUBLIC 486116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[8+rsp],rdi ;WIN64 prologue 487116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[16+rsp],rsi 488116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,rsp 489116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$SEH_begin_rsaz_512_mul_gather4:: 490116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdi,rcx 491116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rsi,rdx 492116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdx,r8 493116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rcx,r9 494116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r8,QWORD PTR[40+rsp] 495116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r9,QWORD PTR[48+rsp] 496116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 497116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 498116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rbx 499116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rbp 500116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r12 501116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r13 502116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r14 503116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r15 504116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 505116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r9d,r9d 506116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub rsp,128+24 507116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$mul_gather4_body:: 508116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov eax,DWORD PTR[64+r9*4+rdx] 509116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,72,15,110,199 510116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov ebx,DWORD PTR[r9*4+rdx] 511116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,72,15,110,201 512116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[128+rsp],r8 513116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 514116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shl rax,32 515116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch or rbx,rax 516116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[rsi] 517116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rcx,QWORD PTR[8+rsi] 518116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rbp,QWORD PTR[128+r9*4+rdx] 519116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 520116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[rsp],rax 521116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,rcx 522116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r8,rdx 523116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 524116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 525116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movd xmm4,DWORD PTR[rbp] 526116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r8,rax 527116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[16+rsi] 528116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r9,rdx 529116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r9,0 530116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 531116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 532116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movd xmm5,DWORD PTR[64+rbp] 533116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r9,rax 534116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[24+rsi] 535116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10,rdx 536116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r10,0 537116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 538116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 539116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pslldq xmm5,4 540116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r10,rax 541116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[32+rsi] 542116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r11,rdx 543116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r11,0 544116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 545116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 546116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch por xmm4,xmm5 547116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r11,rax 548116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[40+rsi] 549116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,rdx 550116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r12,0 551116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 552116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 553116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r12,rax 554116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[48+rsi] 555116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,rdx 556116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r13,0 557116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 558116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 559116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rbp,QWORD PTR[128+rbp] 560116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r13,rax 561116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[56+rsi] 562116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,rdx 563116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r14,0 564116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 565116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 566116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,72,15,126,227 567116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r14,rax 568116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[rsi] 569116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,rdx 570116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r15,0 571116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 572116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rdi,QWORD PTR[8+rsp] 573116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov ecx,7 574116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$oop_mul_gather 575116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 576116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 32 577116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$oop_mul_gather:: 578116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 579116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r8,rax 580116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[8+rsi] 581116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[rdi],r8 582116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r8,rdx 583116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r8,0 584116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 585116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 586116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movd xmm4,DWORD PTR[rbp] 587116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r9,rax 588116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[16+rsi] 589116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 590116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r8,r9 591116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r9,rdx 592116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r9,0 593116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 594116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 595116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movd xmm5,DWORD PTR[64+rbp] 596116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r10,rax 597116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[24+rsi] 598116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 599116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r9,r10 600116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10,rdx 601116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r10,0 602116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 603116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 604116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pslldq xmm5,4 605116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r11,rax 606116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[32+rsi] 607116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 608116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r10,r11 609116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r11,rdx 610116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r11,0 611116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 612116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 613116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch por xmm4,xmm5 614116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r12,rax 615116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[40+rsi] 616116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 617116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r11,r12 618116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,rdx 619116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r12,0 620116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 621116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 622116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r13,rax 623116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[48+rsi] 624116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 625116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r12,r13 626116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,rdx 627116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r13,0 628116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 629116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 630116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r14,rax 631116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[56+rsi] 632116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 633116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r13,r14 634116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,rdx 635116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r14,0 636116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 637116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 638116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,72,15,126,227 639116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r15,rax 640116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[rsi] 641116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 642116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r14,r15 643116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,rdx 644116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r15,0 645116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 646116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rbp,QWORD PTR[128+rbp] 647116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rdi,QWORD PTR[8+rdi] 648116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 649116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch dec ecx 650116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jnz $L$oop_mul_gather 651116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 652116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[rdi],r8 653116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[8+rdi],r9 654116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[16+rdi],r10 655116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[24+rdi],r11 656116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[32+rdi],r12 657116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[40+rdi],r13 658116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[48+rdi],r14 659116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[56+rdi],r15 660116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 661116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,72,15,126,199 662116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,72,15,126,205 663116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 664116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r8,QWORD PTR[rsp] 665116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r9,QWORD PTR[8+rsp] 666116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10,QWORD PTR[16+rsp] 667116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r11,QWORD PTR[24+rsp] 668116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,QWORD PTR[32+rsp] 669116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,QWORD PTR[40+rsp] 670116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,QWORD PTR[48+rsp] 671116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,QWORD PTR[56+rsp] 672116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 673116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call __rsaz_512_reduce 674116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r8,QWORD PTR[64+rsp] 675116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r9,QWORD PTR[72+rsp] 676116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r10,QWORD PTR[80+rsp] 677116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r11,QWORD PTR[88+rsp] 678116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r12,QWORD PTR[96+rsp] 679116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r13,QWORD PTR[104+rsp] 680116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r14,QWORD PTR[112+rsp] 681116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r15,QWORD PTR[120+rsp] 682116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sbb rcx,rcx 683116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 684116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call __rsaz_512_subtract 685116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 686116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[((128+24+48))+rsp] 687116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,QWORD PTR[((-48))+rax] 688116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,QWORD PTR[((-40))+rax] 689116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,QWORD PTR[((-32))+rax] 690116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,QWORD PTR[((-24))+rax] 691116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbp,QWORD PTR[((-16))+rax] 692116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,QWORD PTR[((-8))+rax] 693116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[rax] 694116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$mul_gather4_epilogue:: 695116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue 696116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rsi,QWORD PTR[16+rsp] 697116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DB 0F3h,0C3h ;repret 698116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$SEH_end_rsaz_512_mul_gather4:: 699116680a4aac90f2aa7413d9095a592090648e557Ben Murdochrsaz_512_mul_gather4 ENDP 700116680a4aac90f2aa7413d9095a592090648e557Ben MurdochPUBLIC rsaz_512_mul_scatter4 701116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 702116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 32 703116680a4aac90f2aa7413d9095a592090648e557Ben Murdochrsaz_512_mul_scatter4 PROC PUBLIC 704116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[8+rsp],rdi ;WIN64 prologue 705116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[16+rsp],rsi 706116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,rsp 707116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$SEH_begin_rsaz_512_mul_scatter4:: 708116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdi,rcx 709116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rsi,rdx 710116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdx,r8 711116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rcx,r9 712116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r8,QWORD PTR[40+rsp] 713116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r9,QWORD PTR[48+rsp] 714116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 715116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 716116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rbx 717116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rbp 718116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r12 719116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r13 720116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r14 721116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r15 722116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 723116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r9d,r9d 724116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub rsp,128+24 725116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$mul_scatter4_body:: 726116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r8,QWORD PTR[r9*4+r8] 727116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,72,15,110,199 728116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,72,15,110,202 729116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,73,15,110,208 730116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[128+rsp],rcx 731116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 732116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbp,rdi 733116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,QWORD PTR[rdi] 734116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call __rsaz_512_mul 735116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 736116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,72,15,126,199 737116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,72,15,126,205 738116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 739116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r8,QWORD PTR[rsp] 740116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r9,QWORD PTR[8+rsp] 741116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10,QWORD PTR[16+rsp] 742116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r11,QWORD PTR[24+rsp] 743116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,QWORD PTR[32+rsp] 744116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,QWORD PTR[40+rsp] 745116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,QWORD PTR[48+rsp] 746116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,QWORD PTR[56+rsp] 747116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 748116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call __rsaz_512_reduce 749116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r8,QWORD PTR[64+rsp] 750116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r9,QWORD PTR[72+rsp] 751116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r10,QWORD PTR[80+rsp] 752116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r11,QWORD PTR[88+rsp] 753116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r12,QWORD PTR[96+rsp] 754116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r13,QWORD PTR[104+rsp] 755116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r14,QWORD PTR[112+rsp] 756116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r15,QWORD PTR[120+rsp] 757116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,72,15,126,214 758116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sbb rcx,rcx 759116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 760116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call __rsaz_512_subtract 761116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 762116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov DWORD PTR[rsi],r8d 763116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shr r8,32 764116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov DWORD PTR[128+rsi],r9d 765116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shr r9,32 766116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov DWORD PTR[256+rsi],r10d 767116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shr r10,32 768116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov DWORD PTR[384+rsi],r11d 769116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shr r11,32 770116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov DWORD PTR[512+rsi],r12d 771116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shr r12,32 772116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov DWORD PTR[640+rsi],r13d 773116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shr r13,32 774116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov DWORD PTR[768+rsi],r14d 775116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shr r14,32 776116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov DWORD PTR[896+rsi],r15d 777116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shr r15,32 778116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov DWORD PTR[64+rsi],r8d 779116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov DWORD PTR[192+rsi],r9d 780116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov DWORD PTR[320+rsi],r10d 781116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov DWORD PTR[448+rsi],r11d 782116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov DWORD PTR[576+rsi],r12d 783116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov DWORD PTR[704+rsi],r13d 784116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov DWORD PTR[832+rsi],r14d 785116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov DWORD PTR[960+rsi],r15d 786116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 787116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[((128+24+48))+rsp] 788116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,QWORD PTR[((-48))+rax] 789116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,QWORD PTR[((-40))+rax] 790116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,QWORD PTR[((-32))+rax] 791116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,QWORD PTR[((-24))+rax] 792116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbp,QWORD PTR[((-16))+rax] 793116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,QWORD PTR[((-8))+rax] 794116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[rax] 795116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$mul_scatter4_epilogue:: 796116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue 797116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rsi,QWORD PTR[16+rsp] 798116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DB 0F3h,0C3h ;repret 799116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$SEH_end_rsaz_512_mul_scatter4:: 800116680a4aac90f2aa7413d9095a592090648e557Ben Murdochrsaz_512_mul_scatter4 ENDP 801116680a4aac90f2aa7413d9095a592090648e557Ben MurdochPUBLIC rsaz_512_mul_by_one 802116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 803116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 32 804116680a4aac90f2aa7413d9095a592090648e557Ben Murdochrsaz_512_mul_by_one PROC PUBLIC 805116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[8+rsp],rdi ;WIN64 prologue 806116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[16+rsp],rsi 807116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,rsp 808116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$SEH_begin_rsaz_512_mul_by_one:: 809116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdi,rcx 810116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rsi,rdx 811116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdx,r8 812116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rcx,r9 813116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 814116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 815116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rbx 816116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rbp 817116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r12 818116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r13 819116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r14 820116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r15 821116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 822116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub rsp,128+24 823116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$mul_by_one_body:: 824116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbp,rdx 825116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[128+rsp],rcx 826116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 827116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r8,QWORD PTR[rsi] 828116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm0 829116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r9,QWORD PTR[8+rsi] 830116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10,QWORD PTR[16+rsi] 831116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r11,QWORD PTR[24+rsi] 832116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,QWORD PTR[32+rsi] 833116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,QWORD PTR[40+rsi] 834116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,QWORD PTR[48+rsi] 835116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,QWORD PTR[56+rsi] 836116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 837116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[rsp],xmm0 838116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[16+rsp],xmm0 839116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[32+rsp],xmm0 840116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[48+rsp],xmm0 841116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[64+rsp],xmm0 842116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[80+rsp],xmm0 843116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[96+rsp],xmm0 844116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call __rsaz_512_reduce 845116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[rdi],r8 846116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[8+rdi],r9 847116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[16+rdi],r10 848116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[24+rdi],r11 849116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[32+rdi],r12 850116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[40+rdi],r13 851116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[48+rdi],r14 852116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[56+rdi],r15 853116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 854116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[((128+24+48))+rsp] 855116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,QWORD PTR[((-48))+rax] 856116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,QWORD PTR[((-40))+rax] 857116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,QWORD PTR[((-32))+rax] 858116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,QWORD PTR[((-24))+rax] 859116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbp,QWORD PTR[((-16))+rax] 860116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,QWORD PTR[((-8))+rax] 861116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[rax] 862116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$mul_by_one_epilogue:: 863116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue 864116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rsi,QWORD PTR[16+rsp] 865116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DB 0F3h,0C3h ;repret 866116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$SEH_end_rsaz_512_mul_by_one:: 867116680a4aac90f2aa7413d9095a592090648e557Ben Murdochrsaz_512_mul_by_one ENDP 868116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 869116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 32 870116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch__rsaz_512_reduce PROC PRIVATE 871116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,r8 872116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch imul rbx,QWORD PTR[((128+8))+rsp] 873116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[rbp] 874116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov ecx,8 875116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$reduction_loop 876116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 877116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 32 878116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$reduction_loop:: 879116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 880116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[8+rbp] 881116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch neg r8 882116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r8,rdx 883116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r8,0 884116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 885116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 886116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r9,rax 887116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[16+rbp] 888116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 889116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r8,r9 890116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r9,rdx 891116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r9,0 892116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 893116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 894116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r10,rax 895116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[24+rbp] 896116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 897116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r9,r10 898116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10,rdx 899116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r10,0 900116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 901116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 902116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r11,rax 903116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[32+rbp] 904116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 905116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r10,r11 906116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rsi,QWORD PTR[((128+8))+rsp] 907116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 908116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 909116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 910116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r11,rdx 911116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 912116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 913116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r12,rax 914116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[40+rbp] 915116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 916116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch imul rsi,r8 917116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r11,r12 918116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,rdx 919116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r12,0 920116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 921116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 922116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r13,rax 923116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[48+rbp] 924116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 925116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r12,r13 926116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,rdx 927116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r13,0 928116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 929116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 930116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r14,rax 931116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[56+rbp] 932116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 933116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r13,r14 934116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,rdx 935116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r14,0 936116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 937116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 938116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,rsi 939116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r15,rax 940116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[rbp] 941116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 942116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r14,r15 943116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,rdx 944116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r15,0 945116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 946116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch dec ecx 947116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jne $L$reduction_loop 948116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 949116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DB 0F3h,0C3h ;repret 950116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch__rsaz_512_reduce ENDP 951116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 952116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 32 953116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch__rsaz_512_subtract PROC PRIVATE 954116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[rdi],r8 955116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[8+rdi],r9 956116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[16+rdi],r10 957116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[24+rdi],r11 958116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[32+rdi],r12 959116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[40+rdi],r13 960116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[48+rdi],r14 961116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[56+rdi],r15 962116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 963116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r8,QWORD PTR[rbp] 964116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r9,QWORD PTR[8+rbp] 965116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch neg r8 966116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch not r9 967116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch and r8,rcx 968116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10,QWORD PTR[16+rbp] 969116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch and r9,rcx 970116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch not r10 971116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r11,QWORD PTR[24+rbp] 972116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch and r10,rcx 973116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch not r11 974116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,QWORD PTR[32+rbp] 975116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch and r11,rcx 976116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch not r12 977116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,QWORD PTR[40+rbp] 978116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch and r12,rcx 979116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch not r13 980116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,QWORD PTR[48+rbp] 981116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch and r13,rcx 982116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch not r14 983116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,QWORD PTR[56+rbp] 984116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch and r14,rcx 985116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch not r15 986116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch and r15,rcx 987116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 988116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r8,QWORD PTR[rdi] 989116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r9,QWORD PTR[8+rdi] 990116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r10,QWORD PTR[16+rdi] 991116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r11,QWORD PTR[24+rdi] 992116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r12,QWORD PTR[32+rdi] 993116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r13,QWORD PTR[40+rdi] 994116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r14,QWORD PTR[48+rdi] 995116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r15,QWORD PTR[56+rdi] 996116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 997116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[rdi],r8 998116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[8+rdi],r9 999116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[16+rdi],r10 1000116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[24+rdi],r11 1001116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[32+rdi],r12 1002116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[40+rdi],r13 1003116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[48+rdi],r14 1004116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[56+rdi],r15 1005116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1006116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DB 0F3h,0C3h ;repret 1007116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch__rsaz_512_subtract ENDP 1008116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1009116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 32 1010116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch__rsaz_512_mul PROC PRIVATE 1011116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rdi,QWORD PTR[8+rsp] 1012116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1013116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[rsi] 1014116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 1015116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[rdi],rax 1016116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[8+rsi] 1017116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r8,rdx 1018116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1019116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 1020116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r8,rax 1021116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[16+rsi] 1022116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r9,rdx 1023116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r9,0 1024116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1025116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 1026116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r9,rax 1027116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[24+rsi] 1028116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10,rdx 1029116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r10,0 1030116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1031116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 1032116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r10,rax 1033116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[32+rsi] 1034116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r11,rdx 1035116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r11,0 1036116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1037116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 1038116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r11,rax 1039116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[40+rsi] 1040116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,rdx 1041116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r12,0 1042116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1043116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 1044116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r12,rax 1045116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[48+rsi] 1046116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,rdx 1047116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r13,0 1048116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1049116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 1050116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r13,rax 1051116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[56+rsi] 1052116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,rdx 1053116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r14,0 1054116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1055116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 1056116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r14,rax 1057116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[rsi] 1058116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,rdx 1059116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r15,0 1060116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1061116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rbp,QWORD PTR[8+rbp] 1062116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rdi,QWORD PTR[8+rdi] 1063116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1064116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov ecx,7 1065116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$oop_mul 1066116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1067116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 32 1068116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$oop_mul:: 1069116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,QWORD PTR[rbp] 1070116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 1071116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r8,rax 1072116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[8+rsi] 1073116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[rdi],r8 1074116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r8,rdx 1075116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r8,0 1076116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1077116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 1078116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r9,rax 1079116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[16+rsi] 1080116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 1081116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r8,r9 1082116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r9,rdx 1083116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r9,0 1084116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1085116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 1086116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r10,rax 1087116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[24+rsi] 1088116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 1089116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r9,r10 1090116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10,rdx 1091116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r10,0 1092116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1093116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 1094116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r11,rax 1095116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[32+rsi] 1096116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 1097116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r10,r11 1098116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r11,rdx 1099116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r11,0 1100116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1101116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 1102116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r12,rax 1103116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[40+rsi] 1104116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 1105116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r11,r12 1106116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,rdx 1107116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r12,0 1108116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1109116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 1110116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r13,rax 1111116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[48+rsi] 1112116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 1113116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r12,r13 1114116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,rdx 1115116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r13,0 1116116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1117116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 1118116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r14,rax 1119116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[56+rsi] 1120116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 1121116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r13,r14 1122116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,rdx 1123116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rbp,QWORD PTR[8+rbp] 1124116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r14,0 1125116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1126116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mul rbx 1127116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r15,rax 1128116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[rsi] 1129116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc rdx,0 1130116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r14,r15 1131116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,rdx 1132116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch adc r15,0 1133116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1134116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rdi,QWORD PTR[8+rdi] 1135116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1136116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch dec ecx 1137116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jnz $L$oop_mul 1138116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1139116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[rdi],r8 1140116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[8+rdi],r9 1141116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[16+rdi],r10 1142116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[24+rdi],r11 1143116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[32+rdi],r12 1144116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[40+rdi],r13 1145116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[48+rdi],r14 1146116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[56+rdi],r15 1147116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1148116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DB 0F3h,0C3h ;repret 1149116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch__rsaz_512_mul ENDP 1150116680a4aac90f2aa7413d9095a592090648e557Ben MurdochPUBLIC rsaz_512_scatter4 1151116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1152116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1153116680a4aac90f2aa7413d9095a592090648e557Ben Murdochrsaz_512_scatter4 PROC PUBLIC 1154116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rcx,QWORD PTR[r8*4+rcx] 1155116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r9d,8 1156116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$oop_scatter 1157116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1158116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$oop_scatter:: 1159116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[rdx] 1160116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rdx,QWORD PTR[8+rdx] 1161116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov DWORD PTR[rcx],eax 1162116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shr rax,32 1163116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov DWORD PTR[64+rcx],eax 1164116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rcx,QWORD PTR[128+rcx] 1165116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch dec r9d 1166116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jnz $L$oop_scatter 1167116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DB 0F3h,0C3h ;repret 1168116680a4aac90f2aa7413d9095a592090648e557Ben Murdochrsaz_512_scatter4 ENDP 1169116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1170116680a4aac90f2aa7413d9095a592090648e557Ben MurdochPUBLIC rsaz_512_gather4 1171116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1172116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1173116680a4aac90f2aa7413d9095a592090648e557Ben Murdochrsaz_512_gather4 PROC PUBLIC 1174116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rdx,QWORD PTR[r8*4+rdx] 1175116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r9d,8 1176116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$oop_gather 1177116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1178116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$oop_gather:: 1179116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov eax,DWORD PTR[rdx] 1180116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r8d,DWORD PTR[64+rdx] 1181116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rdx,QWORD PTR[128+rdx] 1182116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shl r8,32 1183116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch or rax,r8 1184116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[rcx],rax 1185116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rcx,QWORD PTR[8+rcx] 1186116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch dec r9d 1187116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jnz $L$oop_gather 1188116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DB 0F3h,0C3h ;repret 1189116680a4aac90f2aa7413d9095a592090648e557Ben Murdochrsaz_512_gather4 ENDP 1190116680a4aac90f2aa7413d9095a592090648e557Ben MurdochEXTERN __imp_RtlVirtualUnwind:NEAR 1191116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1192116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1193116680a4aac90f2aa7413d9095a592090648e557Ben Murdochse_handler PROC PRIVATE 1194116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rsi 1195116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rdi 1196116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rbx 1197116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rbp 1198116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r12 1199116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r13 1200116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r14 1201116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r15 1202116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pushfq 1203116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub rsp,64 1204116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1205116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[120+r8] 1206116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,QWORD PTR[248+r8] 1207116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1208116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rsi,QWORD PTR[8+r9] 1209116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r11,QWORD PTR[56+r9] 1210116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1211116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,DWORD PTR[r11] 1212116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r10,QWORD PTR[r10*1+rsi] 1213116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp rbx,r10 1214116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jb $L$common_seh_tail 1215116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1216116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[152+r8] 1217116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1218116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,DWORD PTR[4+r11] 1219116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r10,QWORD PTR[r10*1+rsi] 1220116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp rbx,r10 1221116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jae $L$common_seh_tail 1222116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1223116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[((128+24+48))+rax] 1224116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1225116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,QWORD PTR[((-8))+rax] 1226116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbp,QWORD PTR[((-16))+rax] 1227116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,QWORD PTR[((-24))+rax] 1228116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,QWORD PTR[((-32))+rax] 1229116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,QWORD PTR[((-40))+rax] 1230116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,QWORD PTR[((-48))+rax] 1231116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[144+r8],rbx 1232116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[160+r8],rbp 1233116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[216+r8],r12 1234116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[224+r8],r13 1235116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[232+r8],r14 1236116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[240+r8],r15 1237116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1238116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$common_seh_tail:: 1239116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdi,QWORD PTR[8+rax] 1240116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rsi,QWORD PTR[16+rax] 1241116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[152+r8],rax 1242116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[168+r8],rsi 1243116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[176+r8],rdi 1244116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1245116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdi,QWORD PTR[40+r9] 1246116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rsi,r8 1247116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov ecx,154 1248116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD 0a548f3fch 1249116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1250116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rsi,r9 1251116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch xor rcx,rcx 1252116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdx,QWORD PTR[8+rsi] 1253116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r8,QWORD PTR[rsi] 1254116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r9,QWORD PTR[16+rsi] 1255116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10,QWORD PTR[40+rsi] 1256116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r11,QWORD PTR[56+rsi] 1257116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[24+rsi] 1258116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[32+rsp],r10 1259116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[40+rsp],r11 1260116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[48+rsp],r12 1261116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[56+rsp],rcx 1262116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call QWORD PTR[__imp_RtlVirtualUnwind] 1263116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1264116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov eax,1 1265116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add rsp,64 1266116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch popfq 1267116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pop r15 1268116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pop r14 1269116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pop r13 1270116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pop r12 1271116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pop rbp 1272116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pop rbx 1273116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pop rdi 1274116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pop rsi 1275116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DB 0F3h,0C3h ;repret 1276116680a4aac90f2aa7413d9095a592090648e557Ben Murdochse_handler ENDP 1277116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1278116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch.text$ ENDS 1279116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch.pdata SEGMENT READONLY ALIGN(4) 1280116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 4 1281116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$SEH_begin_rsaz_512_sqr 1282116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$SEH_end_rsaz_512_sqr 1283116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$SEH_info_rsaz_512_sqr 1284116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1285116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$SEH_begin_rsaz_512_mul 1286116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$SEH_end_rsaz_512_mul 1287116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$SEH_info_rsaz_512_mul 1288116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1289116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$SEH_begin_rsaz_512_mul_gather4 1290116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$SEH_end_rsaz_512_mul_gather4 1291116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$SEH_info_rsaz_512_mul_gather4 1292116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1293116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$SEH_begin_rsaz_512_mul_scatter4 1294116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$SEH_end_rsaz_512_mul_scatter4 1295116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$SEH_info_rsaz_512_mul_scatter4 1296116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1297116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$SEH_begin_rsaz_512_mul_by_one 1298116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$SEH_end_rsaz_512_mul_by_one 1299116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$SEH_info_rsaz_512_mul_by_one 1300116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1301116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch.pdata ENDS 1302116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch.xdata SEGMENT READONLY ALIGN(8) 1303116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 8 1304116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$SEH_info_rsaz_512_sqr:: 1305116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 9,0,0,0 1306116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel se_handler 1307116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$sqr_body,imagerel $L$sqr_epilogue 1308116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$SEH_info_rsaz_512_mul:: 1309116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 9,0,0,0 1310116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel se_handler 1311116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$mul_body,imagerel $L$mul_epilogue 1312116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$SEH_info_rsaz_512_mul_gather4:: 1313116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 9,0,0,0 1314116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel se_handler 1315116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$mul_gather4_body,imagerel $L$mul_gather4_epilogue 1316116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$SEH_info_rsaz_512_mul_scatter4:: 1317116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 9,0,0,0 1318116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel se_handler 1319116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$mul_scatter4_body,imagerel $L$mul_scatter4_epilogue 1320116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$SEH_info_rsaz_512_mul_by_one:: 1321116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 9,0,0,0 1322116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel se_handler 1323116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$mul_by_one_body,imagerel $L$mul_by_one_epilogue 1324116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1325116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch.xdata ENDS 1326116680a4aac90f2aa7413d9095a592090648e557Ben MurdochEND 1327