1
+ .globl _Z21fiat_25519_from_bytesPmPKh
2
+ _Z21fiat_25519_from_bytesPmPKh:
3
+ push rbp
4
+ mov rbp , rsp
5
+ sub rsp , 456
6
+ mov qword ptr [ rbp - 8 ], rdi
7
+ mov qword ptr [ rbp - 16 ], rsi
8
+ mov rax , qword ptr [ rbp - 16 ]
9
+ movzx eax , byte ptr [ rax + 31 ]
10
+ shl rax , 44
11
+ mov qword ptr [ rbp - 24 ], rax
12
+ mov rax , qword ptr [ rbp - 16 ]
13
+ movzx eax , byte ptr [ rax + 30 ]
14
+ shl rax , 36
15
+ mov qword ptr [ rbp - 32 ], rax
16
+ mov rax , qword ptr [ rbp - 16 ]
17
+ movzx eax , byte ptr [ rax + 29 ]
18
+ shl rax , 28
19
+ mov qword ptr [ rbp - 40 ], rax
20
+ mov rax , qword ptr [ rbp - 16 ]
21
+ movzx eax , byte ptr [ rax + 28 ]
22
+ shl rax , 20
23
+ mov qword ptr [ rbp - 48 ], rax
24
+ mov rax , qword ptr [ rbp - 16 ]
25
+ movzx eax , byte ptr [ rax + 27 ]
26
+ shl rax , 12
27
+ mov qword ptr [ rbp - 56 ], rax
28
+ mov rax , qword ptr [ rbp - 16 ]
29
+ movzx eax , byte ptr [ rax + 26 ]
30
+ shl rax , 4
31
+ mov qword ptr [ rbp - 64 ], rax
32
+ mov rax , qword ptr [ rbp - 16 ]
33
+ movzx eax , byte ptr [ rax + 25 ]
34
+ shl rax , 47
35
+ mov qword ptr [ rbp - 72 ], rax
36
+ mov rax , qword ptr [ rbp - 16 ]
37
+ movzx eax , byte ptr [ rax + 24 ]
38
+ shl rax , 39
39
+ mov qword ptr [ rbp - 80 ], rax
40
+ mov rax , qword ptr [ rbp - 16 ]
41
+ movzx eax , byte ptr [ rax + 23 ]
42
+ shl rax , 31
43
+ mov qword ptr [ rbp - 88 ], rax
44
+ mov rax , qword ptr [ rbp - 16 ]
45
+ movzx eax , byte ptr [ rax + 22 ]
46
+ shl rax , 23
47
+ mov qword ptr [ rbp - 96 ], rax
48
+ mov rax , qword ptr [ rbp - 16 ]
49
+ movzx eax , byte ptr [ rax + 21 ]
50
+ shl rax , 15
51
+ mov qword ptr [ rbp - 104 ], rax
52
+ mov rax , qword ptr [ rbp - 16 ]
53
+ movzx eax , byte ptr [ rax + 20 ]
54
+ shl rax , 7
55
+ mov qword ptr [ rbp - 112 ], rax
56
+ mov rax , qword ptr [ rbp - 16 ]
57
+ movzx eax , byte ptr [ rax + 19 ]
58
+ shl rax , 50
59
+ mov qword ptr [ rbp - 120 ], rax
60
+ mov rax , qword ptr [ rbp - 16 ]
61
+ movzx eax , byte ptr [ rax + 18 ]
62
+ shl rax , 42
63
+ mov qword ptr [ rbp - 128 ], rax
64
+ mov rax , qword ptr [ rbp - 16 ]
65
+ movzx eax , byte ptr [ rax + 17 ]
66
+ shl rax , 34
67
+ mov qword ptr [ rbp - 136 ], rax
68
+ mov rax , qword ptr [ rbp - 16 ]
69
+ movzx eax , byte ptr [ rax + 16 ]
70
+ shl rax , 26
71
+ mov qword ptr [ rbp - 144 ], rax
72
+ mov rax , qword ptr [ rbp - 16 ]
73
+ movzx eax , byte ptr [ rax + 15 ]
74
+ shl rax , 18
75
+ mov qword ptr [ rbp - 152 ], rax
76
+ mov rax , qword ptr [ rbp - 16 ]
77
+ movzx eax , byte ptr [ rax + 14 ]
78
+ shl rax , 10
79
+ mov qword ptr [ rbp - 160 ], rax
80
+ mov rax , qword ptr [ rbp - 16 ]
81
+ movzx eax , byte ptr [ rax + 13 ]
82
+ shl rax , 2
83
+ mov qword ptr [ rbp - 168 ], rax
84
+ mov rax , qword ptr [ rbp - 16 ]
85
+ movzx eax , byte ptr [ rax + 12 ]
86
+ shl rax , 45
87
+ mov qword ptr [ rbp - 176 ], rax
88
+ mov rax , qword ptr [ rbp - 16 ]
89
+ movzx eax , byte ptr [ rax + 11 ]
90
+ shl rax , 37
91
+ mov qword ptr [ rbp - 184 ], rax
92
+ mov rax , qword ptr [ rbp - 16 ]
93
+ movzx eax , byte ptr [ rax + 10 ]
94
+ shl rax , 29
95
+ mov qword ptr [ rbp - 192 ], rax
96
+ mov rax , qword ptr [ rbp - 16 ]
97
+ movzx eax , byte ptr [ rax + 9 ]
98
+ shl rax , 21
99
+ mov qword ptr [ rbp - 200 ], rax
100
+ mov rax , qword ptr [ rbp - 16 ]
101
+ movzx eax , byte ptr [ rax + 8 ]
102
+ shl rax , 13
103
+ mov qword ptr [ rbp - 208 ], rax
104
+ mov rax , qword ptr [ rbp - 16 ]
105
+ movzx eax , byte ptr [ rax + 7 ]
106
+ shl rax , 5
107
+ mov qword ptr [ rbp - 216 ], rax
108
+ mov rax , qword ptr [ rbp - 16 ]
109
+ movzx eax , byte ptr [ rax + 6 ]
110
+ shl rax , 48
111
+ mov qword ptr [ rbp - 224 ], rax
112
+ mov rax , qword ptr [ rbp - 16 ]
113
+ movzx eax , byte ptr [ rax + 5 ]
114
+ shl rax , 40
115
+ mov qword ptr [ rbp - 232 ], rax
116
+ mov rax , qword ptr [ rbp - 16 ]
117
+ movzx eax , byte ptr [ rax + 4 ]
118
+ shl rax , 32
119
+ mov qword ptr [ rbp - 240 ], rax
120
+ mov rax , qword ptr [ rbp - 16 ]
121
+ movzx eax , byte ptr [ rax + 3 ]
122
+ shl rax , 24
123
+ mov qword ptr [ rbp - 248 ], rax
124
+ mov rax , qword ptr [ rbp - 16 ]
125
+ movzx eax , byte ptr [ rax + 2 ]
126
+ shl rax , 16
127
+ mov qword ptr [ rbp - 256 ], rax
128
+ mov rax , qword ptr [ rbp - 16 ]
129
+ movzx eax , byte ptr [ rax + 1 ]
130
+ shl rax , 8
131
+ mov qword ptr [ rbp - 264 ], rax
132
+ mov rax , qword ptr [ rbp - 16 ]
133
+ mov al , byte ptr [ rax ]
134
+ mov byte ptr [ rbp - 265 ], al
135
+ mov rax , qword ptr [ rbp - 264 ]
136
+ movzx ecx , byte ptr [ rbp - 265 ]
137
+ add rax , rcx
138
+ mov qword ptr [ rbp - 280 ], rax
139
+ mov rax , qword ptr [ rbp - 256 ]
140
+ add rax , qword ptr [ rbp - 280 ]
141
+ mov qword ptr [ rbp - 288 ], rax
142
+ mov rax , qword ptr [ rbp - 248 ]
143
+ add rax , qword ptr [ rbp - 288 ]
144
+ mov qword ptr [ rbp - 296 ], rax
145
+ mov rax , qword ptr [ rbp - 240 ]
146
+ add rax , qword ptr [ rbp - 296 ]
147
+ mov qword ptr [ rbp - 304 ], rax
148
+ mov rax , qword ptr [ rbp - 232 ]
149
+ add rax , qword ptr [ rbp - 304 ]
150
+ mov qword ptr [ rbp - 312 ], rax
151
+ mov rax , qword ptr [ rbp - 224 ]
152
+ add rax , qword ptr [ rbp - 312 ]
153
+ mov qword ptr [ rbp - 320 ], rax
154
+ movabs rax , 2251799813685247
155
+ and rax , qword ptr [ rbp - 320 ]
156
+ mov qword ptr [ rbp - 328 ], rax
157
+ mov rax , qword ptr [ rbp - 320 ]
158
+ shr rax , 51
159
+ mov byte ptr [ rbp - 329 ], al
160
+ mov rax , qword ptr [ rbp - 216 ]
161
+ movzx ecx , byte ptr [ rbp - 329 ]
162
+ add rax , rcx
163
+ mov qword ptr [ rbp - 344 ], rax
164
+ mov rax , qword ptr [ rbp - 208 ]
165
+ add rax , qword ptr [ rbp - 344 ]
166
+ mov qword ptr [ rbp - 352 ], rax
167
+ mov rax , qword ptr [ rbp - 200 ]
168
+ add rax , qword ptr [ rbp - 352 ]
169
+ mov qword ptr [ rbp - 360 ], rax
170
+ mov rax , qword ptr [ rbp - 192 ]
171
+ add rax , qword ptr [ rbp - 360 ]
172
+ mov qword ptr [ rbp - 368 ], rax
173
+ mov rax , qword ptr [ rbp - 184 ]
174
+ add rax , qword ptr [ rbp - 368 ]
175
+ mov qword ptr [ rbp - 376 ], rax
176
+ mov rax , qword ptr [ rbp - 176 ]
177
+ add rax , qword ptr [ rbp - 376 ]
178
+ mov qword ptr [ rbp - 384 ], rax
179
+ movabs rax , 2251799813685247
180
+ and rax , qword ptr [ rbp - 384 ]
181
+ mov qword ptr [ rbp - 392 ], rax
182
+ mov rax , qword ptr [ rbp - 384 ]
183
+ shr rax , 51
184
+ mov byte ptr [ rbp - 393 ], al
185
+ mov rax , qword ptr [ rbp - 168 ]
186
+ movzx ecx , byte ptr [ rbp - 393 ]
187
+ add rax , rcx
188
+ mov qword ptr [ rbp - 408 ], rax
189
+ mov rax , qword ptr [ rbp - 160 ]
190
+ add rax , qword ptr [ rbp - 408 ]
191
+ mov qword ptr [ rbp - 416 ], rax
192
+ mov rax , qword ptr [ rbp - 152 ]
193
+ add rax , qword ptr [ rbp - 416 ]
194
+ mov qword ptr [ rbp - 424 ], rax
195
+ mov rax , qword ptr [ rbp - 144 ]
196
+ add rax , qword ptr [ rbp - 424 ]
197
+ mov qword ptr [ rbp - 432 ], rax
198
+ mov rax , qword ptr [ rbp - 136 ]
199
+ add rax , qword ptr [ rbp - 432 ]
200
+ mov qword ptr [ rbp - 440 ], rax
201
+ mov rax , qword ptr [ rbp - 128 ]
202
+ add rax , qword ptr [ rbp - 440 ]
203
+ mov qword ptr [ rbp - 448 ], rax
204
+ mov rax , qword ptr [ rbp - 120 ]
205
+ add rax , qword ptr [ rbp - 448 ]
206
+ mov qword ptr [ rbp - 456 ], rax
207
+ movabs rax , 2251799813685247
208
+ and rax , qword ptr [ rbp - 456 ]
209
+ mov qword ptr [ rbp - 464 ], rax
210
+ mov rax , qword ptr [ rbp - 456 ]
211
+ shr rax , 51
212
+ mov byte ptr [ rbp - 465 ], al
213
+ mov rax , qword ptr [ rbp - 112 ]
214
+ movzx ecx , byte ptr [ rbp - 465 ]
215
+ add rax , rcx
216
+ mov qword ptr [ rbp - 480 ], rax
217
+ mov rax , qword ptr [ rbp - 104 ]
218
+ add rax , qword ptr [ rbp - 480 ]
219
+ mov qword ptr [ rbp - 488 ], rax
220
+ mov rax , qword ptr [ rbp - 96 ]
221
+ add rax , qword ptr [ rbp - 488 ]
222
+ mov qword ptr [ rbp - 496 ], rax
223
+ mov rax , qword ptr [ rbp - 88 ]
224
+ add rax , qword ptr [ rbp - 496 ]
225
+ mov qword ptr [ rbp - 504 ], rax
226
+ mov rax , qword ptr [ rbp - 80 ]
227
+ add rax , qword ptr [ rbp - 504 ]
228
+ mov qword ptr [ rbp - 512 ], rax
229
+ mov rax , qword ptr [ rbp - 72 ]
230
+ add rax , qword ptr [ rbp - 512 ]
231
+ mov qword ptr [ rbp - 520 ], rax
232
+ movabs rax , 2251799813685247
233
+ and rax , qword ptr [ rbp - 520 ]
234
+ mov qword ptr [ rbp - 528 ], rax
235
+ mov rax , qword ptr [ rbp - 520 ]
236
+ shr rax , 51
237
+ mov byte ptr [ rbp - 529 ], al
238
+ mov rax , qword ptr [ rbp - 64 ]
239
+ movzx ecx , byte ptr [ rbp - 529 ]
240
+ add rax , rcx
241
+ mov qword ptr [ rbp - 544 ], rax
242
+ mov rax , qword ptr [ rbp - 56 ]
243
+ add rax , qword ptr [ rbp - 544 ]
244
+ mov qword ptr [ rbp - 552 ], rax
245
+ mov rax , qword ptr [ rbp - 48 ]
246
+ add rax , qword ptr [ rbp - 552 ]
247
+ mov qword ptr [ rbp - 560 ], rax
248
+ mov rax , qword ptr [ rbp - 40 ]
249
+ add rax , qword ptr [ rbp - 560 ]
250
+ mov qword ptr [ rbp - 568 ], rax
251
+ mov rax , qword ptr [ rbp - 32 ]
252
+ add rax , qword ptr [ rbp - 568 ]
253
+ mov qword ptr [ rbp - 576 ], rax
254
+ mov rax , qword ptr [ rbp - 24 ]
255
+ add rax , qword ptr [ rbp - 576 ]
256
+ mov qword ptr [ rbp - 584 ], rax
257
+ mov rcx , qword ptr [ rbp - 328 ]
258
+ mov rax , qword ptr [ rbp - 8 ]
259
+ mov qword ptr [ rax ], rcx
260
+ mov rcx , qword ptr [ rbp - 392 ]
261
+ mov rax , qword ptr [ rbp - 8 ]
262
+ mov qword ptr [ rax + 8 ], rcx
263
+ mov rcx , qword ptr [ rbp - 464 ]
264
+ mov rax , qword ptr [ rbp - 8 ]
265
+ mov qword ptr [ rax + 16 ], rcx
266
+ mov rcx , qword ptr [ rbp - 528 ]
267
+ mov rax , qword ptr [ rbp - 8 ]
268
+ mov qword ptr [ rax + 24 ], rcx
269
+ mov rcx , qword ptr [ rbp - 584 ]
270
+ mov rax , qword ptr [ rbp - 8 ]
271
+ mov qword ptr [ rax + 32 ], rcx
272
+ add rsp , 456
273
+ pop rbp
274
+ ret
0 commit comments