clarify the purpose of this project
[nyanglibc.git] / nss / nss_database.s
blob2b4ae2eae0b7a91ad4ed50e7b7a644dd3438bdf4
1 .text
2 .p2align 4,,15
3 .type name_to_database_index, @function
4 name_to_database_index:
5 pushq %r14
6 pushq %r13
7 xorl %r14d, %r14d
8 pushq %r12
9 leaq nss_database_name_array(%rip), %r12
10 pushq %rbp
11 pushq %rbx
12 movq %rdi, %r13
13 movl $14, %ebp
14 .p2align 4,,10
15 .p2align 3
16 .L2:
17 leaq (%r14,%rbp), %rbx
18 movq %r13, %rdi
19 shrq %rbx
20 leaq (%rbx,%rbx,4), %rax
21 leaq (%rbx,%rax,2), %rsi
22 addq %r12, %rsi
23 call strcmp
24 testl %eax, %eax
25 js .L3
26 je .L4
27 leaq 1(%rbx), %r14
28 cmpq %rbp, %r14
29 jb .L2
30 .L9:
31 popq %rbx
32 movl $-1, %eax
33 popq %rbp
34 popq %r12
35 popq %r13
36 popq %r14
37 ret
38 .p2align 4,,10
39 .p2align 3
40 .L3:
41 cmpq %r14, %rbx
42 jbe .L9
43 movq %rbx, %rbp
44 jmp .L2
45 .p2align 4,,10
46 .p2align 3
47 .L4:
48 movl %ebx, %eax
49 popq %rbx
50 popq %rbp
51 popq %r12
52 popq %r13
53 popq %r14
54 ret
55 .size name_to_database_index, .-name_to_database_index
56 .p2align 4,,15
57 .type global_state_allocate, @function
58 global_state_allocate:
59 subq $8, %rsp
60 movl $192, %edi
61 call malloc@PLT
62 testq %rax, %rax
63 movq %rax, %rdx
64 je .L11
65 leaq 48(%rax), %rsi
66 movq $-1, (%rax)
67 movl $14, %ecx
68 xorl %eax, %eax
69 movq %rsi, %rdi
70 rep stosq
71 movb $1, 164(%rdx)
72 movl $0, 160(%rdx)
73 movl $0, 168(%rdx)
74 movq $0, 176(%rdx)
75 movq $0, 184(%rdx)
76 .L11:
77 movq %rdx, %rax
78 addq $8, %rsp
79 ret
80 .size global_state_allocate, .-global_state_allocate
81 .section .rodata.str1.1,"aMS",@progbits,1
82 .LC0:
83 .string "files"
84 .LC1:
85 .string "nis"
86 .LC2:
87 .string "nis nisplus"
88 .LC3:
89 .string "dns [!UNAVAIL=return] files"
90 .LC4:
91 .string "/etc/nsswitch.conf"
92 .LC5:
93 .string "/"
94 .LC6:
95 .string "rce"
96 .LC7:
97 .string "nss_database.c"
98 .LC8:
99 .string "ret > 0"
100 .LC9:
101 .string "errno == ENOMEM"
102 .text
103 .p2align 4,,15
104 .type nss_database_check_reload_and_get, @function
105 nss_database_check_reload_and_get:
106 pushq %r15
107 pushq %r14
108 pushq %r13
109 pushq %r12
110 pushq %rbp
111 pushq %rbx
112 subq $456, %rsp
113 movl 160(%rdi), %r14d
114 testl %r14d, %r14d
115 je .L18
116 movl %edx, %edx
117 movl $1, %r14d
118 movq 48(%rdi,%rdx,8), %rax
119 movq %rax, (%rsi)
120 .L17:
121 addq $456, %rsp
122 movl %r14d, %eax
123 popq %rbx
124 popq %rbp
125 popq %r12
126 popq %r13
127 popq %r14
128 popq %r15
130 .p2align 4,,10
131 .p2align 3
132 .L18:
133 leaq 80(%rsp), %r12
134 movq %rsi, %rbp
135 leaq .LC4(%rip), %rsi
136 movq %rdi, %r15
137 movl %edx, %ebx
138 movq %r12, %rdi
139 call __file_change_detection_for_path
140 testb %al, %al
141 movl %eax, %r13d
142 je .L34
143 #APP
144 # 382 "nss_database.c" 1
145 movl %fs:24,%eax
146 # 0 "" 2
147 #NO_APP
148 leaq 168(%r15), %rcx
149 testl %eax, %eax
150 movl $1, %edx
151 movq %rcx, 16(%rsp)
152 jne .L21
153 #APP
154 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
155 cmpxchgl %edx, 168(%r15)
156 # 0 "" 2
157 #NO_APP
158 .L22:
159 movq %r15, %rsi
160 movq %r12, %rdi
161 call __file_is_unchanged
162 testb %al, %al
163 movl %eax, %r14d
164 je .L23
165 .L64:
166 movq 48(%r15,%rbx,8), %rax
167 movq %rax, 0(%rbp)
168 #APP
169 # 431 "nss_database.c" 1
170 movl %fs:24,%eax
171 # 0 "" 2
172 #NO_APP
173 testl %eax, %eax
174 jne .L65
175 subl $1, 168(%r15)
176 jmp .L17
177 .L70:
178 leaq .LC1(%rip), %rdi
179 .L53:
180 movq %rsi, 40(%rsp)
181 movq %rcx, 32(%rsp)
182 call __nss_action_parse@PLT
183 testq %rax, %rax
184 movq %rax, 48(%rbx,%r14,8)
185 movq 32(%rsp), %rcx
186 movq 40(%rsp), %rsi
187 jne .L55
188 movq __libc_errno@gottpoff(%rip), %rbx
189 movzbl 60(%rsp), %r14d
190 cmpl $12, %fs:(%rbx)
191 jne .L120
192 cmpq $0, 8(%rsp)
193 jne .L60
194 .p2align 4,,10
195 .p2align 3
196 .L34:
197 xorl %r14d, %r14d
198 jmp .L17
199 .p2align 4,,10
200 .p2align 3
201 .L23:
202 leaq 128(%rsp), %rsi
203 leaq .LC5(%rip), %rdi
204 call __stat64
205 testl %eax, %eax
206 jne .L26
207 movq 176(%r15), %rax
208 movq 136(%rsp), %rdx
209 testq %rax, %rax
210 je .L27
211 cmpq %rdx, %rax
212 je .L121
213 .L26:
214 movl $1, 160(%r15)
215 #APP
216 # 403 "nss_database.c" 1
217 movl %fs:24,%eax
218 # 0 "" 2
219 #NO_APP
220 testl %eax, %eax
221 jne .L29
222 subl $1, 168(%r15)
223 .L30:
224 call __nss_module_disable_loading@PLT
225 .L117:
226 movl %r13d, %r14d
227 jmp .L17
228 .p2align 4,,10
229 .p2align 3
230 .L27:
231 movq 128(%rsp), %rax
232 .L28:
233 movq %rdx, 176(%r15)
234 movq %rax, 184(%r15)
235 #APP
236 # 409 "nss_database.c" 1
237 movl %fs:24,%eax
238 # 0 "" 2
239 #NO_APP
240 testl %eax, %eax
241 jne .L31
242 subl $1, 168(%r15)
243 .L32:
244 leaq 272(%rsp), %rdi
245 xorl %eax, %eax
246 movl $21, %ecx
247 leaq .LC6(%rip), %rsi
248 movq %rdi, 48(%rsp)
249 rep stosq
250 leaq .LC4(%rip), %rdi
251 movb $1, 436(%rsp)
252 call _IO_new_fopen@PLT
253 testq %rax, %rax
254 movq %rax, 8(%rsp)
255 je .L122
256 movq 8(%rsp), %rax
257 orl $32768, (%rax)
258 leaq 72(%rsp), %rax
259 movq $0, 64(%rsp)
260 movq $0, 72(%rsp)
261 movq %rax, 32(%rsp)
262 leaq 64(%rsp), %rax
263 movq %rax, 24(%rsp)
264 .p2align 4,,10
265 .p2align 3
266 .L36:
267 movq 8(%rsp), %rdx
268 movq 32(%rsp), %rsi
269 movq 24(%rsp), %rdi
270 call __getline
271 movq 8(%rsp), %rcx
272 movl (%rcx), %edx
273 testb $32, %dl
274 jne .L37
275 andl $16, %edx
276 jne .L38
277 testq %rax, %rax
278 jle .L123
279 movq 64(%rsp), %rdi
280 movq __libc_tsd_CTYPE_B@gottpoff(%rip), %r8
281 movsbq (%rdi), %rdx
282 movq %fs:(%r8), %rsi
283 testb $32, 1(%rsi,%rdx,2)
284 movq %rdx, %rax
285 je .L40
286 .p2align 4,,10
287 .p2align 3
288 .L41:
289 addq $1, %rdi
290 movsbq (%rdi), %rdx
291 testb $32, 1(%rsi,%rdx,2)
292 movq %rdx, %rax
293 jne .L41
294 .L40:
295 testb %al, %al
296 je .L36
297 testb $32, 1(%rsi,%rdx,2)
298 jne .L36
299 cmpb $58, %al
300 je .L36
301 movq %rdi, %rdx
302 jmp .L43
303 .p2align 4,,10
304 .p2align 3
305 .L124:
306 cmpb $58, %al
307 je .L45
308 .L43:
309 addq $1, %rdx
310 movzbl (%rdx), %eax
311 testb %al, %al
312 je .L36
313 movsbq %al, %rcx
314 movzwl (%rsi,%rcx,2), %ecx
315 andw $8192, %cx
316 je .L124
317 .L45:
318 cmpq %rdx, %rdi
319 je .L36
320 testw %cx, %cx
321 jne .L95
322 cmpb $58, %al
323 jne .L46
324 .p2align 4,,10
325 .p2align 3
326 .L95:
327 addq $1, %rdx
328 movzbl (%rdx), %ecx
329 movb $0, -1(%rdx)
330 testb %cl, %cl
331 je .L46
332 movq %fs:(%r8), %rsi
333 movsbq %cl, %rax
334 testb $32, 1(%rsi,%rax,2)
335 jne .L95
336 cmpb $58, %cl
337 je .L95
338 .L46:
339 movq %rdx, 40(%rsp)
340 call name_to_database_index
341 testl %eax, %eax
342 movl %eax, 60(%rsp)
343 js .L36
344 movq 40(%rsp), %rdx
345 movq %rdx, %rdi
346 call __nss_action_parse@PLT
347 testq %rax, %rax
348 je .L37
349 movslq 60(%rsp), %rcx
350 movq %rax, 320(%rsp,%rcx,8)
351 jmp .L36
352 .p2align 4,,10
353 .p2align 3
354 .L21:
355 leaq 168(%r15), %rcx
356 movl %r14d, %eax
357 lock cmpxchgl %edx, (%rcx)
358 je .L22
359 movq %rcx, %rdi
360 call __lll_lock_wait_private
361 jmp .L22
362 .p2align 4,,10
363 .p2align 3
364 .L65:
365 xorl %eax, %eax
366 #APP
367 # 431 "nss_database.c" 1
368 xchgl %eax, 168(%r15)
369 # 0 "" 2
370 #NO_APP
371 cmpl $1, %eax
372 jle .L117
373 xorl %r10d, %r10d
374 movl $1, %edx
375 movl $129, %esi
376 movq 16(%rsp), %rdi
377 movl $202, %eax
378 #APP
379 # 431 "nss_database.c" 1
380 syscall
382 # 0 "" 2
383 #NO_APP
384 jmp .L17
385 .L37:
386 movq 64(%rsp), %rdi
387 call free@PLT
388 movq __libc_errno@gottpoff(%rip), %rbx
389 .L60:
390 movl %fs:(%rbx), %ebp
391 movq 8(%rsp), %rdi
392 call _IO_new_fclose@PLT
393 movl %ebp, %fs:(%rbx)
394 jmp .L17
395 .L121:
396 movq 184(%r15), %rax
397 cmpq %rax, 128(%rsp)
398 jne .L26
399 jmp .L28
400 .L122:
401 movq __libc_errno@gottpoff(%rip), %rax
402 movl %fs:(%rax), %eax
403 cmpl $40, %eax
404 ja .L34
405 movabsq $1099514781702, %rdx
406 btq %rax, %rdx
407 jnc .L34
408 .L35:
409 xorl %edx, %edx
410 movb %r14b, 60(%rsp)
411 movl %ebx, 24(%rsp)
412 leaq per_database_defaults(%rip), %rcx
413 leaq .L52(%rip), %rsi
414 movq %rdx, %r14
415 movq 48(%rsp), %rbx
416 jmp .L58
417 .p2align 4,,10
418 .p2align 3
419 .L55:
420 addq $1, %r14
421 cmpq $14, %r14
422 je .L125
423 .L58:
424 cmpq $0, 48(%rbx,%r14,8)
425 jne .L55
426 cmpb $7, (%rcx,%r14)
427 ja .L50
428 movzbl (%rcx,%r14), %eax
429 movslq (%rsi,%rax,4), %rax
430 addq %rsi, %rax
431 jmp *%rax
432 .section .rodata
433 .align 4
434 .align 4
435 .L52:
436 .long .L50-.L52
437 .long .L50-.L52
438 .long .L51-.L52
439 .long .L50-.L52
440 .long .L70-.L52
441 .long .L54-.L52
442 .long .L55-.L52
443 .long .L56-.L52
444 .text
445 .L51:
446 leaq .LC3(%rip), %rdi
447 jmp .L53
448 .L54:
449 leaq .LC2(%rip), %rdi
450 jmp .L53
451 .L50:
452 leaq .LC0(%rip), %rdi
453 jmp .L53
454 .p2align 4,,10
455 .p2align 3
456 .L125:
457 movq 48(%rsp), %rdi
458 movq 8(%rsp), %rsi
459 movl 24(%rsp), %ebx
460 call __file_change_detection_for_fp
461 movq 8(%rsp), %rdi
462 movl %eax, %r14d
463 testq %rdi, %rdi
464 je .L61
465 movq __libc_errno@gottpoff(%rip), %rax
466 movl %fs:(%rax), %edx
467 movl %edx, 8(%rsp)
468 call _IO_new_fclose@PLT
469 movq __libc_errno@gottpoff(%rip), %rax
470 movl 8(%rsp), %edx
471 movl %edx, %fs:(%rax)
472 .L61:
473 testb %r14b, %r14b
474 je .L34
475 movq 48(%rsp), %rdi
476 movq %r12, %rsi
477 call __file_is_unchanged
478 testb %al, %al
479 jne .L62
480 movq $-1, 272(%rsp)
481 .L62:
482 #APP
483 # 421 "nss_database.c" 1
484 movl %fs:24,%eax
485 # 0 "" 2
486 #NO_APP
487 testl %eax, %eax
488 jne .L126
489 movl $1, %edx
490 #APP
491 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
492 cmpxchgl %edx, 168(%r15)
493 # 0 "" 2
494 #NO_APP
495 .L63:
496 movl 160(%r15), %eax
497 testl %eax, %eax
498 jne .L64
499 movdqa 272(%rsp), %xmm0
500 movq 432(%rsp), %rax
501 movups %xmm0, (%r15)
502 movdqa 288(%rsp), %xmm0
503 movq %rax, 160(%r15)
504 movups %xmm0, 16(%r15)
505 movdqa 304(%rsp), %xmm0
506 movups %xmm0, 32(%r15)
507 movdqa 320(%rsp), %xmm0
508 movups %xmm0, 48(%r15)
509 movdqa 336(%rsp), %xmm0
510 movups %xmm0, 64(%r15)
511 movdqa 352(%rsp), %xmm0
512 movups %xmm0, 80(%r15)
513 movdqa 368(%rsp), %xmm0
514 movups %xmm0, 96(%r15)
515 movdqa 384(%rsp), %xmm0
516 movups %xmm0, 112(%r15)
517 movdqa 400(%rsp), %xmm0
518 movups %xmm0, 128(%r15)
519 movdqa 416(%rsp), %xmm0
520 movups %xmm0, 144(%r15)
521 jmp .L64
522 .L29:
523 xorl %eax, %eax
524 #APP
525 # 403 "nss_database.c" 1
526 xchgl %eax, 168(%r15)
527 # 0 "" 2
528 #NO_APP
529 cmpl $1, %eax
530 jle .L30
531 xorl %r10d, %r10d
532 movl $1, %edx
533 movl $129, %esi
534 movq 16(%rsp), %rdi
535 movl $202, %eax
536 #APP
537 # 403 "nss_database.c" 1
538 syscall
540 # 0 "" 2
541 #NO_APP
542 jmp .L30
543 .L38:
544 movq 64(%rsp), %rdi
545 call free@PLT
546 jmp .L35
547 .L31:
548 xorl %eax, %eax
549 #APP
550 # 409 "nss_database.c" 1
551 xchgl %eax, 168(%r15)
552 # 0 "" 2
553 #NO_APP
554 cmpl $1, %eax
555 jle .L32
556 xorl %r10d, %r10d
557 movl $1, %edx
558 movl $129, %esi
559 leaq 168(%r15), %rdi
560 movl $202, %eax
561 #APP
562 # 409 "nss_database.c" 1
563 syscall
565 # 0 "" 2
566 #NO_APP
567 jmp .L32
568 .L126:
569 movq 16(%rsp), %rcx
570 xorl %eax, %eax
571 movl $1, %edx
572 lock cmpxchgl %edx, (%rcx)
573 je .L63
574 movq 16(%rsp), %rdi
575 call __lll_lock_wait_private
576 jmp .L63
577 .L123:
578 leaq __PRETTY_FUNCTION__.12399(%rip), %rcx
579 leaq .LC7(%rip), %rsi
580 leaq .LC8(%rip), %rdi
581 movl $289, %edx
582 call __assert_fail
583 .L56:
584 .L120:
585 leaq __PRETTY_FUNCTION__.12355(%rip), %rcx
586 leaq .LC7(%rip), %rsi
587 leaq .LC9(%rip), %rdi
588 movl $166, %edx
589 call __assert_fail
590 .size nss_database_check_reload_and_get, .-nss_database_check_reload_and_get
591 .p2align 4,,15
592 .globl __nss_database_get
593 .hidden __nss_database_get
594 .type __nss_database_get, @function
595 __nss_database_get:
596 pushq %rbp
597 pushq %rbx
598 movl %edi, %ebp
599 movq %rsi, %rbx
600 subq $8, %rsp
601 movq global_database_state(%rip), %rdi
602 testq %rdi, %rdi
603 jne .L129
604 leaq global_database_state(%rip), %rdi
605 leaq global_state_allocate(%rip), %rsi
606 xorl %ecx, %ecx
607 xorl %edx, %edx
608 call __libc_allocate_once_slow
609 movq %rax, %rdi
610 .L129:
611 addq $8, %rsp
612 movl %ebp, %edx
613 movq %rbx, %rsi
614 popq %rbx
615 popq %rbp
616 jmp nss_database_check_reload_and_get
617 .size __nss_database_get, .-__nss_database_get
618 .p2align 4,,15
619 .globl __nss_configure_lookup
620 .type __nss_configure_lookup, @function
621 __nss_configure_lookup:
622 pushq %r12
623 pushq %rbp
624 movq %rsi, %r12
625 pushq %rbx
626 subq $16, %rsp
627 call name_to_database_index
628 movslq %eax, %rbx
629 testl %ebx, %ebx
630 js .L136
631 leaq 8(%rsp), %rsi
632 movl %ebx, %edi
633 call __nss_database_get
634 movq global_database_state(%rip), %rbp
635 testq %rbp, %rbp
636 jne .L135
637 leaq global_state_allocate(%rip), %rsi
638 leaq global_database_state(%rip), %rdi
639 xorl %ecx, %ecx
640 xorl %edx, %edx
641 call __libc_allocate_once_slow
642 movq %rax, %rbp
643 .L135:
644 movq %r12, %rdi
645 call __nss_action_parse@PLT
646 testq %rax, %rax
647 movq %rax, 8(%rsp)
648 je .L136
649 movl $1, 160(%rbp)
650 movq 8(%rsp), %rax
651 movq %rax, 48(%rbp,%rbx,8)
652 xorl %eax, %eax
653 .L131:
654 addq $16, %rsp
655 popq %rbx
656 popq %rbp
657 popq %r12
659 .p2align 4,,10
660 .p2align 3
661 .L136:
662 movl $-1, %eax
663 jmp .L131
664 .size __nss_configure_lookup, .-__nss_configure_lookup
665 .section .rodata.str1.1
666 .LC10:
667 .string "local != NULL"
668 .text
669 .p2align 4,,15
670 .globl __nss_database_get_noreload
671 .hidden __nss_database_get_noreload
672 .type __nss_database_get_noreload, @function
673 __nss_database_get_noreload:
674 pushq %r12
675 pushq %rbp
676 pushq %rbx
677 movq global_database_state(%rip), %rbx
678 testq %rbx, %rbx
679 je .L148
680 movl %edi, %ebp
681 #APP
682 # 451 "nss_database.c" 1
683 movl %fs:24,%eax
684 # 0 "" 2
685 #NO_APP
686 testl %eax, %eax
687 leaq 168(%rbx), %r12
688 jne .L143
689 movl $1, %edx
690 #APP
691 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
692 cmpxchgl %edx, 168(%rbx)
693 # 0 "" 2
694 #NO_APP
695 .L144:
696 movq 48(%rbx,%rbp,8), %r8
697 #APP
698 # 453 "nss_database.c" 1
699 movl %fs:24,%eax
700 # 0 "" 2
701 #NO_APP
702 testl %eax, %eax
703 jne .L145
704 subl $1, 168(%rbx)
705 .L141:
706 popq %rbx
707 movq %r8, %rax
708 popq %rbp
709 popq %r12
711 .p2align 4,,10
712 .p2align 3
713 .L143:
714 xorl %eax, %eax
715 movl $1, %edx
716 lock cmpxchgl %edx, (%r12)
717 je .L144
718 movq %r12, %rdi
719 call __lll_lock_wait_private
720 jmp .L144
721 .p2align 4,,10
722 .p2align 3
723 .L145:
724 xorl %eax, %eax
725 #APP
726 # 453 "nss_database.c" 1
727 xchgl %eax, 168(%rbx)
728 # 0 "" 2
729 #NO_APP
730 cmpl $1, %eax
731 jle .L141
732 xorl %r10d, %r10d
733 movl $1, %edx
734 movl $129, %esi
735 movq %r12, %rdi
736 movl $202, %eax
737 #APP
738 # 453 "nss_database.c" 1
739 syscall
741 # 0 "" 2
742 #NO_APP
743 jmp .L141
744 .L148:
745 leaq __PRETTY_FUNCTION__.12600(%rip), %rcx
746 leaq .LC7(%rip), %rsi
747 leaq .LC10(%rip), %rdi
748 movl $449, %edx
749 call __assert_fail
750 .size __nss_database_get_noreload, .-__nss_database_get_noreload
751 .section __libc_freeres_fn,"ax",@progbits
752 .p2align 4,,15
753 .globl __nss_database_freeres
754 .hidden __nss_database_freeres
755 .type __nss_database_freeres, @function
756 __nss_database_freeres:
757 subq $8, %rsp
758 movq global_database_state(%rip), %rdi
759 call free@PLT
760 movq $0, global_database_state(%rip)
761 addq $8, %rsp
763 .size __nss_database_freeres, .-__nss_database_freeres
764 .text
765 .p2align 4,,15
766 .globl __nss_database_fork_prepare_parent
767 .hidden __nss_database_fork_prepare_parent
768 .type __nss_database_fork_prepare_parent, @function
769 __nss_database_fork_prepare_parent:
770 pushq %r12
771 pushq %rbp
772 pushq %rbx
773 movq global_database_state(%rip), %rbx
774 testq %rbx, %rbx
775 je .L158
776 movq %rdi, %rbp
777 #APP
778 # 476 "nss_database.c" 1
779 movl %fs:24,%eax
780 # 0 "" 2
781 #NO_APP
782 testl %eax, %eax
783 leaq 168(%rbx), %r12
784 jne .L154
785 movl $1, %edx
786 #APP
787 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
788 cmpxchgl %edx, (%r12)
789 # 0 "" 2
790 #NO_APP
791 .L155:
792 movdqu (%rbx), %xmm0
793 movups %xmm0, 0(%rbp)
794 movdqu 16(%rbx), %xmm0
795 movups %xmm0, 16(%rbp)
796 movdqu 32(%rbx), %xmm0
797 movups %xmm0, 32(%rbp)
798 movdqu 48(%rbx), %xmm0
799 movups %xmm0, 48(%rbp)
800 movdqu 64(%rbx), %xmm0
801 movups %xmm0, 64(%rbp)
802 movdqu 80(%rbx), %xmm0
803 movups %xmm0, 80(%rbp)
804 movdqu 96(%rbx), %xmm0
805 movups %xmm0, 96(%rbp)
806 movdqu 112(%rbx), %xmm0
807 movups %xmm0, 112(%rbp)
808 movdqu 128(%rbx), %xmm0
809 movups %xmm0, 128(%rbp)
810 movdqu 144(%rbx), %xmm0
811 movups %xmm0, 144(%rbp)
812 movq 160(%rbx), %rax
813 movq %rax, 160(%rbp)
814 #APP
815 # 478 "nss_database.c" 1
816 movl %fs:24,%eax
817 # 0 "" 2
818 #NO_APP
819 testl %eax, %eax
820 jne .L156
821 subl $1, 168(%rbx)
822 .L151:
823 popq %rbx
824 popq %rbp
825 popq %r12
827 .p2align 4,,10
828 .p2align 3
829 .L158:
830 movb $0, 164(%rdi)
831 popq %rbx
832 popq %rbp
833 popq %r12
835 .p2align 4,,10
836 .p2align 3
837 .L154:
838 xorl %eax, %eax
839 movl $1, %edx
840 lock cmpxchgl %edx, (%r12)
841 je .L155
842 movq %r12, %rdi
843 call __lll_lock_wait_private
844 jmp .L155
845 .p2align 4,,10
846 .p2align 3
847 .L156:
848 xorl %eax, %eax
849 #APP
850 # 478 "nss_database.c" 1
851 xchgl %eax, (%r12)
852 # 0 "" 2
853 #NO_APP
854 cmpl $1, %eax
855 jle .L151
856 xorl %r10d, %r10d
857 movl $1, %edx
858 movl $129, %esi
859 movq %r12, %rdi
860 movl $202, %eax
861 #APP
862 # 478 "nss_database.c" 1
863 syscall
865 # 0 "" 2
866 #NO_APP
867 jmp .L151
868 .size __nss_database_fork_prepare_parent, .-__nss_database_fork_prepare_parent
869 .p2align 4,,15
870 .globl __nss_database_fork_subprocess
871 .hidden __nss_database_fork_subprocess
872 .type __nss_database_fork_subprocess, @function
873 __nss_database_fork_subprocess:
874 movq global_database_state(%rip), %rax
875 cmpb $0, 164(%rdi)
876 je .L160
877 testq %rax, %rax
878 je .L169
879 movdqu (%rdi), %xmm0
880 movups %xmm0, (%rax)
881 movdqu 16(%rdi), %xmm0
882 movups %xmm0, 16(%rax)
883 movdqu 32(%rdi), %xmm0
884 movups %xmm0, 32(%rax)
885 movdqu 48(%rdi), %xmm0
886 movups %xmm0, 48(%rax)
887 movdqu 64(%rdi), %xmm0
888 movups %xmm0, 64(%rax)
889 movdqu 80(%rdi), %xmm0
890 movups %xmm0, 80(%rax)
891 movdqu 96(%rdi), %xmm0
892 movups %xmm0, 96(%rax)
893 movdqu 112(%rdi), %xmm0
894 movups %xmm0, 112(%rax)
895 movdqu 128(%rdi), %xmm0
896 movups %xmm0, 128(%rax)
897 movdqu 144(%rdi), %xmm0
898 movups %xmm0, 144(%rax)
899 movq 160(%rdi), %rdx
900 movl $0, 168(%rax)
901 movq %rdx, 160(%rax)
903 .p2align 4,,10
904 .p2align 3
905 .L160:
906 testq %rax, %rax
907 je .L159
908 movq $0, global_database_state(%rip)
909 .L159:
910 rep ret
911 .L169:
912 leaq __PRETTY_FUNCTION__.12697(%rip), %rcx
913 leaq .LC7(%rip), %rsi
914 leaq .LC10(%rip), %rdi
915 subq $8, %rsp
916 movl $489, %edx
917 call __assert_fail
918 .size __nss_database_fork_subprocess, .-__nss_database_fork_subprocess
919 .section .rodata.str1.16,"aMS",@progbits,1
920 .align 16
921 .type __PRETTY_FUNCTION__.12697, @object
922 .size __PRETTY_FUNCTION__.12697, 31
923 __PRETTY_FUNCTION__.12697:
924 .string "__nss_database_fork_subprocess"
925 .align 16
926 .type __PRETTY_FUNCTION__.12600, @object
927 .size __PRETTY_FUNCTION__.12600, 28
928 __PRETTY_FUNCTION__.12600:
929 .string "__nss_database_get_noreload"
930 .align 16
931 .type __PRETTY_FUNCTION__.12355, @object
932 .size __PRETTY_FUNCTION__.12355, 28
933 __PRETTY_FUNCTION__.12355:
934 .string "nss_database_select_default"
935 .align 16
936 .type __PRETTY_FUNCTION__.12399, @object
937 .size __PRETTY_FUNCTION__.12399, 22
938 __PRETTY_FUNCTION__.12399:
939 .string "nss_database_reload_1"
940 .section .rodata
941 .align 32
942 .type nss_database_name_array, @object
943 .size nss_database_name_array, 154
944 nss_database_name_array:
945 .string "aliases"
946 .zero 3
947 .string "ethers"
948 .zero 4
949 .string "group"
950 .zero 5
951 .string "gshadow"
952 .zero 3
953 .string "hosts"
954 .zero 5
955 .string "initgroups"
956 .string "netgroup"
957 .zero 2
958 .string "networks"
959 .zero 2
960 .string "passwd"
961 .zero 4
962 .string "protocols"
963 .zero 1
964 .string "publickey"
965 .zero 1
966 .string "rpc"
967 .zero 7
968 .string "services"
969 .zero 2
970 .string "shadow"
971 .zero 4
972 .align 8
973 .type per_database_defaults, @object
974 .size per_database_defaults, 14
975 per_database_defaults:
976 .zero 2
977 .byte 1
978 .byte 3
979 .byte 2
980 .byte 6
981 .zero 1
982 .byte 2
983 .byte 1
984 .zero 1
985 .byte 5
986 .zero 2
987 .byte 1
988 .local global_database_state
989 .comm global_database_state,8,8
990 .hidden __libc_allocate_once_slow
991 .hidden __assert_fail
992 .hidden __file_change_detection_for_fp
993 .hidden __lll_lock_wait_private
994 .hidden __getline
995 .hidden __stat64
996 .hidden __file_is_unchanged
997 .hidden __file_change_detection_for_path
998 .hidden strcmp