clarify the purpose of this project
[nyanglibc.git] / sunrpc / auth_unix.shared.s
blob83522e727e42c3b6587cd1ab537880bcda35f400
1 .text
2 #APP
3 memmove = __GI_memmove
4 memset = __GI_memset
5 memcpy = __GI_memcpy
6 .symver __EI_authunix_create, authunix_create@GLIBC_2.2.5
7 .symver __EI_authunix_create_default, authunix_create_default@GLIBC_2.2.5
8 #NO_APP
9 .p2align 4,,15
10 .type authunix_nextverf, @function
11 authunix_nextverf:
12 .LFB65:
13 rep ret
14 .LFE65:
15 .size authunix_nextverf, .-authunix_nextverf
16 .p2align 4,,15
17 .type authunix_marshal, @function
18 authunix_marshal:
19 .LFB66:
20 movq %rsi, %rax
21 movq 64(%rdi), %rsi
22 movq 8(%rax), %rcx
23 movq %rax, %rdi
24 movl 456(%rsi), %edx
25 addq $56, %rsi
26 movq 24(%rcx), %rcx
27 jmp *%rcx
28 .LFE66:
29 .size authunix_marshal, .-authunix_marshal
30 .p2align 4,,15
31 .type authunix_destroy, @function
32 authunix_destroy:
33 .LFB69:
34 pushq %rbp
35 pushq %rbx
36 movq %rdi, %rbx
37 subq $8, %rsp
38 movq 64(%rdi), %rbp
39 movq 8(%rbp), %rdi
40 call free@PLT
41 movq 32(%rbp), %rdi
42 testq %rdi, %rdi
43 je .L5
44 call free@PLT
45 .L5:
46 movq 64(%rbx), %rdi
47 call free@PLT
48 movq 32(%rbx), %rdi
49 testq %rdi, %rdi
50 je .L6
51 call free@PLT
52 .L6:
53 addq $8, %rsp
54 movq %rbx, %rdi
55 popq %rbx
56 popq %rbp
57 jmp free@PLT
58 .LFE69:
59 .size authunix_destroy, .-authunix_destroy
60 .section .rodata.str1.8,"aMS",@progbits,1
61 .align 8
62 .LC0:
63 .string "auth_unix.c: Fatal marshalling problem"
64 .text
65 .p2align 4,,15
66 .type marshal_new_auth, @function
67 marshal_new_auth:
68 .LFB70:
69 pushq %r12
70 pushq %rbp
71 xorl %ecx, %ecx
72 pushq %rbx
73 movq %rdi, %rbp
74 movl $400, %edx
75 subq $48, %rsp
76 movq 64(%rdi), %r12
77 movq %rsp, %rbx
78 movq %rbx, %rdi
79 leaq 56(%r12), %rsi
80 call __GI_xdrmem_create
81 movq %rbp, %rsi
82 movq %rbx, %rdi
83 call __GI_xdr_opaque_auth
84 testl %eax, %eax
85 je .L17
86 leaq 24(%rbp), %rsi
87 movq %rbx, %rdi
88 call __GI_xdr_opaque_auth
89 testl %eax, %eax
90 je .L17
91 movq 8(%rsp), %rax
92 movq %rbx, %rdi
93 call *32(%rax)
94 movl %eax, 456(%r12)
95 jmp .L16
96 .p2align 4,,10
97 .p2align 3
98 .L17:
99 leaq __GI__libc_intl_domainname(%rip), %rdi
100 leaq .LC0(%rip), %rsi
101 movl $5, %edx
102 call __GI___dcgettext
103 movq %rax, %rdi
104 call __GI_perror
105 .L16:
106 movq 8(%rsp), %rax
107 movq 56(%rax), %rax
108 testq %rax, %rax
109 je .L18
110 movq %rbx, %rdi
111 call *%rax
112 .L18:
113 addq $48, %rsp
114 movl $1, %eax
115 popq %rbx
116 popq %rbp
117 popq %r12
119 .LFE70:
120 .size marshal_new_auth, .-marshal_new_auth
121 .p2align 4,,15
122 .type authunix_refresh, @function
123 authunix_refresh:
124 .LFB68:
125 pushq %r14
126 pushq %r13
127 pushq %r12
128 pushq %rbp
129 xorl %r12d, %r12d
130 pushq %rbx
131 subq $112, %rsp
132 movq 64(%rdi), %rbx
133 movq 8(%rbx), %rsi
134 cmpq %rsi, 8(%rdi)
135 je .L26
136 addq $1, 48(%rbx)
137 movl 16(%rbx), %edx
138 leaq 64(%rsp), %r13
139 leaq 16(%rsp), %r14
140 movl $1, %ecx
141 movq %rdi, %rbp
142 movq %r13, %rdi
143 movq $0, 24(%rsp)
144 movq $0, 48(%rsp)
145 call __GI_xdrmem_create
146 movq %r14, %rsi
147 movq %r13, %rdi
148 call __GI_xdr_authunix_parms
149 testl %eax, %eax
150 movl %eax, %r12d
151 jne .L40
152 .L28:
153 movq %r14, %rsi
154 movq %r13, %rdi
155 movl $2, 64(%rsp)
156 call __GI_xdr_authunix_parms
157 movq 72(%rsp), %rax
158 movq 56(%rax), %rax
159 testq %rax, %rax
160 je .L26
161 movq %r13, %rdi
162 call *%rax
163 .L26:
164 addq $112, %rsp
165 movl %r12d, %eax
166 popq %rbx
167 popq %rbp
168 popq %r12
169 popq %r13
170 popq %r14
172 .p2align 4,,10
173 .p2align 3
174 .L40:
175 xorl %edi, %edi
176 movq %rsp, %rsi
177 call __GI___clock_gettime
178 movq (%rsp), %rax
179 xorl %esi, %esi
180 movq %r13, %rdi
181 movl $0, 64(%rsp)
182 movq %rax, 16(%rsp)
183 movq 72(%rsp), %rax
184 call *40(%rax)
185 movq %r14, %rsi
186 movq %r13, %rdi
187 call __GI_xdr_authunix_parms
188 testl %eax, %eax
189 movl %eax, %r12d
190 je .L28
191 movdqu (%rbx), %xmm0
192 movq %rbp, %rdi
193 movq 16(%rbx), %rax
194 movups %xmm0, 0(%rbp)
195 movq %rax, 16(%rbp)
196 call marshal_new_auth
197 jmp .L28
198 .LFE68:
199 .size authunix_refresh, .-authunix_refresh
200 .p2align 4,,15
201 .type authunix_validate, @function
202 authunix_validate:
203 .LFB67:
204 cmpl $2, (%rsi)
205 je .L53
206 movl $1, %eax
208 .p2align 4,,10
209 .p2align 3
210 .L53:
211 pushq %r13
212 pushq %r12
213 movl $1, %ecx
214 pushq %rbp
215 pushq %rbx
216 movq %rdi, %rbp
217 subq $56, %rsp
218 movq 64(%rdi), %rbx
219 movl 16(%rsi), %edx
220 movq 8(%rsi), %rsi
221 movq %rsp, %r12
222 movq %r12, %rdi
223 call __GI_xdrmem_create
224 movq 32(%rbx), %rdi
225 testq %rdi, %rdi
226 je .L43
227 call free@PLT
228 movq $0, 32(%rbx)
229 .L43:
230 leaq 24(%rbx), %r13
231 movq %r12, %rdi
232 movq %r13, %rsi
233 call __GI_xdr_opaque_auth
234 testl %eax, %eax
235 je .L44
236 movdqu 24(%rbx), %xmm0
237 movq 40(%rbx), %rax
238 movups %xmm0, 0(%rbp)
239 movq %rax, 16(%rbp)
240 .L45:
241 movq %rbp, %rdi
242 call marshal_new_auth
243 addq $56, %rsp
244 movl $1, %eax
245 popq %rbx
246 popq %rbp
247 popq %r12
248 popq %r13
250 .p2align 4,,10
251 .p2align 3
252 .L44:
253 movq %r13, %rsi
254 movq %r12, %rdi
255 movl $2, (%rsp)
256 call __GI_xdr_opaque_auth
257 movq 16(%rbx), %rax
258 movq $0, 32(%rbx)
259 movdqu (%rbx), %xmm0
260 movq %rax, 16(%rbp)
261 movups %xmm0, 0(%rbp)
262 jmp .L45
263 .LFE67:
264 .size authunix_validate, .-authunix_validate
265 .section .rodata.str1.1,"aMS",@progbits,1
266 .LC1:
267 .string "out of memory\n"
268 .LC2:
269 .string "%s: %s"
270 .text
271 .p2align 4,,15
272 .globl __GI_authunix_create
273 .hidden __GI_authunix_create
274 .type __GI_authunix_create, @function
275 __GI_authunix_create:
276 .LFB63:
277 pushq %r15
278 pushq %r14
279 movq %rdi, %r15
280 pushq %r13
281 pushq %r12
282 movl $72, %edi
283 pushq %rbp
284 pushq %rbx
285 movl %esi, %r14d
286 movl %ecx, %r12d
287 movq %r8, %rbp
288 subq $536, %rsp
289 movl %edx, 12(%rsp)
290 call malloc@PLT
291 movl $464, %edi
292 movq %rax, %rbx
293 call malloc@PLT
294 testq %rbx, %rbx
295 movq %rax, %r13
296 je .L59
297 testq %rax, %rax
298 je .L59
299 leaq auth_unix_ops(%rip), %rax
300 movdqu __GI__null_auth(%rip), %xmm0
301 leaq 16(%rsp), %rsi
302 xorl %edi, %edi
303 movq %r13, 64(%rbx)
304 movq %rax, 56(%rbx)
305 movq 16+__GI__null_auth(%rip), %rax
306 movups %xmm0, 24(%rbx)
307 movq $0, 48(%r13)
308 movups %xmm0, 24(%r13)
309 movq %rax, 40(%rbx)
310 movq %rax, 40(%r13)
311 call __GI___clock_gettime
312 movq 16(%rsp), %rax
313 movl %r12d, 56(%rsp)
314 leaq 128(%rsp), %r12
315 movq %rbp, 64(%rsp)
316 leaq 80(%rsp), %rbp
317 xorl %ecx, %ecx
318 movl $400, %edx
319 movq %r12, %rsi
320 movq %r15, 40(%rsp)
321 movq %rax, 32(%rsp)
322 movl 12(%rsp), %eax
323 movq %rbp, %rdi
324 movl %r14d, 48(%rsp)
325 movl %eax, 52(%rsp)
326 call __GI_xdrmem_create
327 leaq 32(%rsp), %rsi
328 movq %rbp, %rdi
329 call __GI_xdr_authunix_parms
330 testl %eax, %eax
331 je .L64
332 movq 88(%rsp), %rax
333 movq %rbp, %rdi
334 call *32(%rax)
335 movl %eax, %ebp
336 movl %eax, 16(%r13)
337 movl $1, 0(%r13)
338 movq %rbp, %rdi
339 call malloc@PLT
340 testq %rax, %rax
341 movq %rax, 8(%r13)
342 je .L59
343 movq %rax, %rdi
344 movq %rbp, %rdx
345 movq %r12, %rsi
346 call __GI_memcpy@PLT
347 movdqu 0(%r13), %xmm0
348 movq %rbx, %rdi
349 movq 16(%r13), %rax
350 movups %xmm0, (%rbx)
351 movq %rax, 16(%rbx)
352 call marshal_new_auth
353 .L54:
354 addq $536, %rsp
355 movq %rbx, %rax
356 popq %rbx
357 popq %rbp
358 popq %r12
359 popq %r13
360 popq %r14
361 popq %r15
363 .p2align 4,,10
364 .p2align 3
365 .L59:
366 leaq .LC1(%rip), %rsi
367 leaq __GI__libc_intl_domainname(%rip), %rdi
368 movl $5, %edx
369 call __GI___dcgettext
370 leaq __func__.8733(%rip), %rdx
371 leaq .LC2(%rip), %rsi
372 movq %rax, %rcx
373 xorl %edi, %edi
374 xorl %eax, %eax
375 call __fxprintf
376 movq %rbx, %rdi
377 xorl %ebx, %ebx
378 call free@PLT
379 movq %r13, %rdi
380 call free@PLT
381 jmp .L54
382 .L64:
383 call __GI_abort
384 .LFE63:
385 .size __GI_authunix_create, .-__GI_authunix_create
386 .globl __EI_authunix_create
387 .set __EI_authunix_create,__GI_authunix_create
388 .p2align 4,,15
389 .globl __GI_authunix_create_default
390 .hidden __GI_authunix_create_default
391 .type __GI_authunix_create_default, @function
392 __GI_authunix_create_default:
393 .LFB64:
394 pushq %rbp
395 movl $255, %esi
396 movq %rsp, %rbp
397 pushq %r15
398 pushq %r14
399 pushq %r13
400 leaq -304(%rbp), %r13
401 pushq %r12
402 pushq %rbx
403 movq %r13, %rdi
404 subq $280, %rsp
405 call __gethostname
406 cmpl $-1, %eax
407 je .L72
408 movb $0, -49(%rbp)
409 xorl %r12d, %r12d
410 call __geteuid
411 movl %eax, -312(%rbp)
412 call __getegid
413 movl %eax, %r15d
414 jmp .L73
415 .p2align 4,,10
416 .p2align 3
417 .L90:
418 cmpb $1, %r12b
419 je .L68
420 cltq
421 leaq 30(,%rax,4), %rax
422 andq $-16, %rax
423 subq %rax, %rsp
424 leaq 15(%rsp), %rbx
425 andq $-16, %rbx
426 .L69:
427 movq %rbx, %rsi
428 movl %r14d, %edi
429 call __getgroups
430 cmpl $-1, %eax
431 jne .L71
432 movq __libc_errno@gottpoff(%rip), %rax
433 cmpl $22, %fs:(%rax)
434 jne .L72
435 cmpl $255, %r14d
436 seta %al
437 orl %r12d, %eax
438 movl $1, %r12d
439 testb %al, %al
440 jne .L89
441 .L73:
442 xorl %esi, %esi
443 xorl %edi, %edi
444 call __getgroups
445 cmpl $255, %eax
446 movl %eax, %r14d
447 jbe .L90
448 .L68:
449 movslq %r14d, %rdi
450 salq $2, %rdi
451 call malloc@PLT
452 testq %rax, %rax
453 movq %rax, %rbx
454 jne .L69
455 xorl %eax, %eax
456 .L65:
457 leaq -40(%rbp), %rsp
458 popq %rbx
459 popq %r12
460 popq %r13
461 popq %r14
462 popq %r15
463 popq %rbp
465 .p2align 4,,10
466 .p2align 3
467 .L71:
468 movl -312(%rbp), %esi
469 cmpl $16, %eax
470 movl $16, %ecx
471 cmovle %eax, %ecx
472 movq %rbx, %r8
473 movl %r15d, %edx
474 movq %r13, %rdi
475 call __GI_authunix_create
476 cmpl $255, %r14d
477 ja .L76
478 testb %r12b, %r12b
479 je .L65
480 .L76:
481 movq %rbx, %rdi
482 movq %rax, -312(%rbp)
483 call free@PLT
484 movq -312(%rbp), %rax
485 leaq -40(%rbp), %rsp
486 popq %rbx
487 popq %r12
488 popq %r13
489 popq %r14
490 popq %r15
491 popq %rbp
493 .p2align 4,,10
494 .p2align 3
495 .L89:
496 .L67:
497 movq %rbx, %rdi
498 movb %al, -313(%rbp)
499 call free@PLT
500 movzbl -313(%rbp), %eax
501 movl %eax, %r12d
502 jmp .L73
503 .L72:
504 call __GI_abort
505 .LFE64:
506 .size __GI_authunix_create_default, .-__GI_authunix_create_default
507 .globl __EI_authunix_create_default
508 .set __EI_authunix_create_default,__GI_authunix_create_default
509 .section .rodata.str1.16,"aMS",@progbits,1
510 .align 16
511 .type __func__.8733, @object
512 .size __func__.8733, 16
513 __func__.8733:
514 .string "authunix_create"
515 .section .data.rel.ro.local,"aw",@progbits
516 .align 32
517 .type auth_unix_ops, @object
518 .size auth_unix_ops, 40
519 auth_unix_ops:
520 .quad authunix_nextverf
521 .quad authunix_marshal
522 .quad authunix_validate
523 .quad authunix_refresh
524 .quad authunix_destroy
525 .hidden __getgroups
526 .hidden __getegid
527 .hidden __geteuid
528 .hidden __gethostname
529 .hidden __fxprintf