clarify the purpose of this project
[nyanglibc.git] / io / fts.shared.s
blob5ed0a05c9858f45df73e0964017661c10b2375ac
1 .text
2 #APP
3 memmove = __GI_memmove
4 memset = __GI_memset
5 memcpy = __GI_memcpy
6 #NO_APP
7 .p2align 4,,15
8 .type fts_sort, @function
9 fts_sort:
10 pushq %r12
11 movq %rdi, %r12
12 pushq %rbp
13 cmpl %edx, 48(%r12)
14 pushq %rbx
15 movl %edx, %ebp
16 movq %rsi, %rbx
17 movq 16(%rdi), %rdi
18 jl .L17
19 .L2:
20 testq %rbx, %rbx
21 je .L5
22 movq %rdi, %rdx
23 .p2align 4,,10
24 .p2align 3
25 .L6:
26 addq $8, %rdx
27 movq %rbx, -8(%rdx)
28 movq 16(%rbx), %rbx
29 testq %rbx, %rbx
30 jne .L6
31 .L5:
32 movq 56(%r12), %rcx
33 movslq %ebp, %rsi
34 movl $8, %edx
35 call __GI_qsort
36 movq 16(%r12), %r8
37 cmpl $1, %ebp
38 movq (%r8), %rax
39 je .L10
40 leal -2(%rbp), %edx
41 leaq 8(%r8), %rcx
42 movq %rax, %rdi
43 movq %rdx, %rbp
44 leaq (%rcx,%rdx,8), %rdx
45 jmp .L9
46 .p2align 4,,10
47 .p2align 3
48 .L8:
49 movq (%rcx), %rdi
50 addq $8, %rcx
51 .L9:
52 movq (%rcx), %rsi
53 cmpq %rdx, %rcx
54 movq %rsi, 16(%rdi)
55 jne .L8
56 movq 8(%r8,%rbp,8), %rdx
57 .L7:
58 movq $0, 16(%rdx)
59 .L1:
60 popq %rbx
61 popq %rbp
62 popq %r12
63 ret
64 .p2align 4,,10
65 .p2align 3
66 .L17:
67 leal 40(%rdx), %eax
68 movl %eax, 48(%r12)
69 cltq
70 leaq 0(,%rax,8), %rsi
71 call realloc@PLT
72 testq %rax, %rax
73 movq %rax, %rdi
74 je .L18
75 movq %rax, 16(%r12)
76 jmp .L2
77 .p2align 4,,10
78 .p2align 3
79 .L10:
80 movq %rax, %rdx
81 jmp .L7
82 .L18:
83 movq 16(%r12), %rdi
84 call free@PLT
85 movq $0, 16(%r12)
86 movl $0, 48(%r12)
87 movq %rbx, %rax
88 jmp .L1
89 .size fts_sort, .-fts_sort
90 .p2align 4,,15
91 .type fts_palloc.isra.2, @function
92 fts_palloc.isra.2:
93 pushq %rbx
94 movl (%rsi), %eax
95 movq %rdi, %rbx
96 movq (%rdi), %rdi
97 leal 256(%rax,%rdx), %eax
98 cmpl $65534, %eax
99 movl %eax, (%rsi)
100 ja .L24
101 movslq %eax, %rsi
102 call realloc@PLT
103 testq %rax, %rax
104 je .L25
105 movq %rax, (%rbx)
106 xorl %eax, %eax
107 popq %rbx
109 .p2align 4,,10
110 .p2align 3
111 .L24:
112 call free@PLT
113 movq __libc_errno@gottpoff(%rip), %rax
114 movq $0, (%rbx)
115 movl $36, %fs:(%rax)
116 movl $1, %eax
117 popq %rbx
119 .p2align 4,,10
120 .p2align 3
121 .L25:
122 movq (%rbx), %rdi
123 call free@PLT
124 movq $0, (%rbx)
125 movl $1, %eax
126 popq %rbx
128 .size fts_palloc.isra.2, .-fts_palloc.isra.2
129 .p2align 4,,15
130 .type fts_stat.isra.4, @function
131 fts_stat.isra.4:
132 pushq %r13
133 pushq %r12
134 movl %edi, %eax
135 pushq %rbp
136 pushq %rbx
137 movq %rsi, %rbp
138 subq $152, %rsp
139 testb $8, %al
140 movq %rsp, %rbx
141 jne .L27
142 movq 104(%rsi), %rbx
143 .L27:
144 andl $2, %eax
145 movq 40(%rbp), %rdi
146 movq %rbx, %rsi
147 orl %edx, %eax
148 je .L28
149 call __stat@PLT
150 testl %eax, %eax
151 jne .L52
152 .L29:
153 movl 24(%rbx), %eax
154 andl $61440, %eax
155 cmpl $16384, %eax
156 je .L53
157 cmpl $40960, %eax
158 je .L41
159 cmpl $32768, %eax
160 sete %al
161 movzbl %al, %eax
162 leal 3(%rax,%rax,4), %eax
163 .L26:
164 addq $152, %rsp
165 popq %rbx
166 popq %rbp
167 popq %r12
168 popq %r13
170 .p2align 4,,10
171 .p2align 3
172 .L28:
173 call __lstat@PLT
174 testl %eax, %eax
175 je .L29
176 movq __libc_errno@gottpoff(%rip), %rax
177 movl %fs:(%rax), %eax
178 movl %eax, 56(%rbp)
179 .L32:
180 leaq 8(%rbx), %rdi
181 movq $0, (%rbx)
182 movq $0, 136(%rbx)
183 xorl %eax, %eax
184 andq $-8, %rdi
185 subq %rdi, %rbx
186 leal 144(%rbx), %ecx
187 shrl $3, %ecx
188 rep stosq
189 addq $152, %rsp
190 movl $10, %eax
191 popq %rbx
192 popq %rbp
193 popq %r12
194 popq %r13
196 .p2align 4,,10
197 .p2align 3
198 .L53:
199 cmpb $46, 112(%rbp)
200 movq (%rbx), %rcx
201 movq 8(%rbx), %rdx
202 movq 16(%rbx), %rax
203 movq %rcx, 80(%rbp)
204 movq %rdx, 72(%rbp)
205 movq %rax, 88(%rbp)
206 je .L54
207 .L34:
208 movq 8(%rbp), %rax
209 cmpw $0, 96(%rax)
210 jns .L36
211 jmp .L40
212 .p2align 4,,10
213 .p2align 3
214 .L35:
215 movq 8(%rax), %rax
216 cmpw $0, 96(%rax)
217 js .L40
218 .L36:
219 cmpq 72(%rax), %rdx
220 jne .L35
221 cmpq 80(%rax), %rcx
222 jne .L35
223 movq %rax, 0(%rbp)
224 movl $2, %eax
225 jmp .L26
226 .p2align 4,,10
227 .p2align 3
228 .L52:
229 movq __libc_errno@gottpoff(%rip), %r12
230 movq 40(%rbp), %rdi
231 movq %rbx, %rsi
232 movl %fs:(%r12), %r13d
233 call __lstat@PLT
234 testl %eax, %eax
235 jne .L30
236 movl $0, %fs:(%r12)
237 movl $13, %eax
238 jmp .L26
239 .p2align 4,,10
240 .p2align 3
241 .L54:
242 cmpb $0, 113(%rbp)
243 movl $5, %eax
244 je .L26
245 movl 112(%rbp), %esi
246 andl $16776960, %esi
247 cmpl $11776, %esi
248 jne .L34
249 jmp .L26
250 .p2align 4,,10
251 .p2align 3
252 .L40:
253 addq $152, %rsp
254 movl $1, %eax
255 popq %rbx
256 popq %rbp
257 popq %r12
258 popq %r13
260 .p2align 4,,10
261 .p2align 3
262 .L41:
263 movl $12, %eax
264 jmp .L26
265 .p2align 4,,10
266 .p2align 3
267 .L30:
268 movl %r13d, 56(%rbp)
269 jmp .L32
270 .size fts_stat.isra.4, .-fts_stat.isra.4
271 .p2align 4,,15
272 .type fts_alloc.isra.5, @function
273 fts_alloc.isra.5:
274 pushq %r13
275 pushq %r12
276 movq %rdi, %r13
277 pushq %rbp
278 pushq %rbx
279 movq %rdx, %r12
280 movq %rcx, %rbp
281 subq $8, %rsp
282 andl $8, %esi
283 jne .L56
284 leaq 279(%rcx), %rdi
285 call malloc@PLT
286 testq %rax, %rax
287 movq %rax, %rbx
288 je .L60
289 leaq 112(%rax), %rcx
290 movq %rbp, %rdx
291 movq %r12, %rsi
292 movq %rcx, %rdi
293 call __GI_memcpy@PLT
294 leaq 17(%rax,%rbp), %rax
295 movb $0, 112(%rbx,%rbp)
296 andq $-16, %rax
297 movq %rax, 104(%rbx)
298 jmp .L59
299 .p2align 4,,10
300 .p2align 3
301 .L56:
302 leaq 120(%rcx), %rdi
303 call malloc@PLT
304 testq %rax, %rax
305 movq %rax, %rbx
306 je .L60
307 leaq 112(%rbx), %rdi
308 movq %rbp, %rdx
309 movq %r12, %rsi
310 call __GI_memcpy@PLT
311 movb $0, 112(%rbx,%rbp)
312 .L59:
313 movw %bp, 66(%rbx)
314 movq %r13, 48(%rbx)
315 movl $0, 56(%rbx)
316 movl $196608, 100(%rbx)
317 movq $0, 24(%rbx)
318 movq $0, 32(%rbx)
319 .L55:
320 addq $8, %rsp
321 movq %rbx, %rax
322 popq %rbx
323 popq %rbp
324 popq %r12
325 popq %r13
327 .p2align 4,,10
328 .p2align 3
329 .L60:
330 xorl %ebx, %ebx
331 jmp .L55
332 .size fts_alloc.isra.5, .-fts_alloc.isra.5
333 .p2align 4,,15
334 .type fts_safe_changedir.isra.7.part.8, @function
335 fts_safe_changedir.isra.7.part.8:
336 pushq %r14
337 pushq %r13
338 pushq %r12
339 pushq %rbp
340 movq %rdi, %r12
341 pushq %rbx
342 movq %rsi, %rbp
343 movl %edx, %ebx
344 subq $144, %rsp
345 testl %edx, %edx
346 js .L82
347 movq %rsp, %rsi
348 movl %edx, %edi
349 movl %ebx, %r14d
350 call __GI___fstat64
351 testl %eax, %eax
352 je .L77
353 movq __libc_errno@gottpoff(%rip), %rbp
354 movl $-1, %r12d
355 movl %fs:0(%rbp), %r13d
356 .L74:
357 movl %r13d, %fs:0(%rbp)
358 .L67:
359 addq $144, %rsp
360 movl %r12d, %eax
361 popq %rbx
362 popq %rbp
363 popq %r12
364 popq %r13
365 popq %r14
367 .p2align 4,,10
368 .p2align 3
369 .L82:
370 xorl %edx, %edx
371 xorl %esi, %esi
372 xorl %eax, %eax
373 movq %rcx, %rdi
374 call __GI___open
375 testl %eax, %eax
376 movl %eax, %r14d
377 js .L83
378 movq %rsp, %rsi
379 movl %eax, %edi
380 call __GI___fstat64
381 testl %eax, %eax
382 jne .L84
383 .L77:
384 movq (%rsp), %rax
385 cmpq %rax, 0(%rbp)
386 je .L85
387 .L71:
388 movq __libc_errno@gottpoff(%rip), %rbp
389 movl $2, %r13d
390 movl $-1, %r12d
391 movl $2, %fs:0(%rbp)
392 .L73:
393 testl %ebx, %ebx
394 jns .L74
395 .L75:
396 movl %r14d, %edi
397 call __GI___close
398 jmp .L74
399 .p2align 4,,10
400 .p2align 3
401 .L85:
402 movq 8(%rsp), %rax
403 cmpq %rax, (%r12)
404 jne .L71
405 movl %r14d, %edi
406 call __fchdir
407 movq __libc_errno@gottpoff(%rip), %rbp
408 movl %eax, %r12d
409 movl %fs:0(%rbp), %r13d
410 jmp .L73
411 .L83:
412 movl $-1, %r12d
413 jmp .L67
414 .L84:
415 movq __libc_errno@gottpoff(%rip), %rbp
416 orl $-1, %r12d
417 movl %fs:0(%rbp), %r13d
418 jmp .L75
419 .size fts_safe_changedir.isra.7.part.8, .-fts_safe_changedir.isra.7.part.8
420 .section .rodata.str1.1,"aMS",@progbits,1
421 .LC0:
422 .string ".."
423 .text
424 .p2align 4,,15
425 .type fts_build, @function
426 fts_build:
427 pushq %r15
428 pushq %r14
429 pushq %r13
430 pushq %r12
431 pushq %rbp
432 pushq %rbx
433 movq %rdi, %rbx
434 subq $88, %rsp
435 movq (%rdi), %rax
436 movl %esi, 68(%rsp)
437 movq 40(%rax), %rdi
438 movq %rax, 48(%rsp)
439 call __opendir
440 testq %rax, %rax
441 movq %rax, 16(%rsp)
442 je .L231
443 movl 68(%rsp), %esi
444 cmpl $2, %esi
445 je .L147
446 movl 64(%rbx), %eax
447 cmpl $3, %esi
448 sete %bpl
449 movl %eax, %edx
450 andl $24, %edx
451 cmpl $24, %edx
452 je .L232
453 movl $0, 64(%rsp)
454 movl $-1, 24(%rsp)
455 movl $1, %r12d
456 .L91:
457 movl 64(%rbx), %eax
458 andl $4, %eax
459 movl %eax, 76(%rsp)
460 je .L233
461 .L151:
462 movl $1, 76(%rsp)
463 .L90:
464 movq 48(%rsp), %rcx
465 movzwl 64(%rcx), %edx
466 movq 48(%rcx), %rcx
467 cmpb $47, -1(%rcx,%rdx)
468 jne .L95
469 subl $1, %edx
470 .L95:
471 testb $4, 64(%rbx)
472 movq $0, 56(%rsp)
473 je .L96
474 movslq %edx, %rax
475 addq 32(%rbx), %rax
476 leaq 1(%rax), %rcx
477 movb $47, (%rax)
478 movq %rcx, 56(%rsp)
479 .L96:
480 movl 44(%rbx), %r15d
481 leal 1(%rdx), %eax
482 movl %eax, 28(%rsp)
483 subl %eax, %r15d
484 movq 48(%rsp), %rax
485 cmpq $0, 16(%rsp)
486 movslq %r15d, %r15
487 movzwl 96(%rax), %eax
488 movw %ax, 46(%rsp)
489 je .L234
490 movslq 28(%rsp), %rax
491 movl $0, 72(%rsp)
492 xorl %r13d, %r13d
493 movq $0, 8(%rsp)
494 movl $0, 40(%rsp)
495 movq %rax, 32(%rsp)
496 jmp .L97
497 .p2align 4,,10
498 .p2align 3
499 .L240:
500 movl 64(%rsp), %eax
501 testl %eax, %eax
502 je .L111
503 testb $-5, 18(%r12)
504 jne .L110
505 .L111:
506 movl 64(%rbx), %edi
507 leaq 112(%r14), %rsi
508 testb $4, %dil
509 jne .L235
510 movq %rsi, 40(%r14)
511 .L116:
512 xorl %edx, %edx
513 movq %r14, %rsi
514 call fts_stat.isra.4
515 movl 24(%rsp), %ebp
516 movw %ax, 98(%r14)
517 testl %ebp, %ebp
518 jle .L114
519 leal -1(%rax), %edx
520 cmpw $1, %dx
521 jbe .L160
522 cmpw $5, %ax
523 je .L160
524 .L114:
525 testq %r13, %r13
526 movq $0, 16(%r14)
527 je .L155
528 .L241:
529 movq 8(%rsp), %rax
530 movq %r14, 16(%rax)
531 .L118:
532 addl $1, 40(%rsp)
533 movq %r14, 8(%rsp)
534 .L97:
535 movq 16(%rsp), %rdi
536 call __readdir
537 testq %rax, %rax
538 movq %rax, %r12
539 je .L236
540 movl 64(%rbx), %r14d
541 testb $32, %r14b
542 jne .L99
543 cmpb $46, 19(%r12)
544 je .L237
545 .L99:
546 leaq 19(%r12), %rbp
547 movq %rbp, %rdi
548 call __GI_strlen
549 movq 32(%rbx), %rdi
550 movl %r14d, %esi
551 movq %rax, %rcx
552 movq %rbp, %rdx
553 call fts_alloc.isra.5
554 testq %rax, %rax
555 movq %rax, %r14
556 je .L101
557 movq %rbp, %rdi
558 call __GI_strlen
559 cmpq %r15, %rax
560 movq %rax, %rdx
561 jnb .L238
562 addq 32(%rsp), %rdx
563 cmpq $65534, %rdx
564 ja .L239
565 .L107:
566 movzwl 46(%rsp), %eax
567 movq %rbp, %rdi
568 addl $1, %eax
569 movw %ax, 96(%r14)
570 movq (%rbx), %rax
571 movq %rax, 8(%r14)
572 call __GI_strlen
573 addw 28(%rsp), %ax
574 movw %ax, 64(%r14)
575 movl 24(%rsp), %eax
576 testl %eax, %eax
577 jne .L240
578 .L110:
579 testb $4, 64(%rbx)
580 leaq 112(%r14), %rax
581 je .L113
582 movq 48(%r14), %rax
583 .L113:
584 movl $11, %r12d
585 testq %r13, %r13
586 movq %rax, 40(%r14)
587 movw %r12w, 98(%r14)
588 movq $0, 16(%r14)
589 jne .L241
590 .L155:
591 movq %r14, %r13
592 jmp .L118
593 .p2align 4,,10
594 .p2align 3
595 .L147:
596 movl $0, 64(%rsp)
597 movl $0, 24(%rsp)
598 movl $0, 76(%rsp)
599 jmp .L90
600 .p2align 4,,10
601 .p2align 3
602 .L238:
603 movq 32(%rsp), %rcx
604 leaq 44(%rbx), %rsi
605 leaq 32(%rbx), %rdi
606 movq 32(%rbx), %r15
607 leaq 1(%rax,%rcx), %rdx
608 call fts_palloc.isra.2
609 testl %eax, %eax
610 jne .L101
611 movq 32(%rbx), %rax
612 cmpq %r15, %rax
613 je .L106
614 testb $4, 64(%rbx)
615 movl $1, 72(%rsp)
616 je .L106
617 addq 32(%rsp), %rax
618 movq %rax, 56(%rsp)
619 .L106:
620 movq %rbp, %rdi
621 movl 44(%rbx), %r15d
622 subl 28(%rsp), %r15d
623 call __GI_strlen
624 movq %rax, %rdx
625 addq 32(%rsp), %rdx
626 movslq %r15d, %r15
627 cmpq $65534, %rdx
628 jbe .L107
629 .L239:
630 movq %r14, %rdi
631 call free@PLT
632 testq %r13, %r13
633 je .L108
634 movq %r13, %rdi
635 .p2align 4,,10
636 .p2align 3
637 .L109:
638 movq 16(%rdi), %rbp
639 call free@PLT
640 testq %rbp, %rbp
641 movq %rbp, %rdi
642 jne .L109
643 .L108:
644 movq 16(%rsp), %rdi
645 xorl %r13d, %r13d
646 call __closedir
647 movq 48(%rsp), %rax
648 movl $7, %edx
649 movw %dx, 98(%rax)
650 movq __libc_errno@gottpoff(%rip), %rax
651 orl $512, 64(%rbx)
652 movl $36, %fs:(%rax)
653 jmp .L86
654 .p2align 4,,10
655 .p2align 3
656 .L237:
657 cmpb $0, 20(%r12)
658 je .L97
659 cmpw $46, 20(%r12)
660 jne .L99
661 jmp .L97
662 .p2align 4,,10
663 .p2align 3
664 .L235:
665 movq 48(%r14), %rax
666 movq 56(%rsp), %rdi
667 movq %rax, 40(%r14)
668 movzwl 66(%r14), %eax
669 leaq 1(%rax), %rdx
670 call __GI_memmove
671 movl 64(%rbx), %edi
672 jmp .L116
673 .p2align 4,,10
674 .p2align 3
675 .L160:
676 subl $1, 24(%rsp)
677 jmp .L114
678 .p2align 4,,10
679 .p2align 3
680 .L236:
681 movq 16(%rsp), %rdi
682 call __closedir
683 movl 72(%rsp), %ecx
684 testl %ecx, %ecx
685 jne .L242
686 .L141:
687 testb $4, 64(%rbx)
688 je .L128
689 movl 28(%rsp), %eax
690 cmpl %eax, 44(%rbx)
691 je .L161
692 movl 40(%rsp), %r11d
693 testl %r11d, %r11d
694 jne .L129
695 .L161:
696 subq $1, 56(%rsp)
697 .L129:
698 movq 56(%rsp), %rax
699 movb $0, (%rax)
700 .L128:
701 movl 76(%rsp), %r10d
702 testl %r10d, %r10d
703 je .L131
704 cmpl $1, 68(%rsp)
705 je .L143
706 movl 40(%rsp), %r9d
707 testl %r9d, %r9d
708 je .L143
709 .L132:
710 cmpq $0, 56(%rbx)
711 je .L86
712 movl 40(%rsp), %eax
713 cmpl $1, %eax
714 je .L86
715 addq $88, %rsp
716 movq %r13, %rsi
717 movq %rbx, %rdi
718 popq %rbx
719 popq %rbp
720 popq %r12
721 popq %r13
722 popq %r14
723 popq %r15
724 movl %eax, %edx
725 jmp fts_sort
726 .p2align 4,,10
727 .p2align 3
728 .L131:
729 movl 40(%rsp), %edi
730 testl %edi, %edi
731 jne .L132
732 .L145:
733 cmpl $3, 68(%rsp)
734 je .L146
735 .L138:
736 testq %r13, %r13
737 movq %r13, %rdi
738 je .L230
739 .p2align 4,,10
740 .p2align 3
741 .L139:
742 movq 16(%rdi), %rbx
743 call free@PLT
744 testq %rbx, %rbx
745 movq %rbx, %rdi
746 jne .L139
747 .L230:
748 xorl %r13d, %r13d
749 .L86:
750 addq $88, %rsp
751 movq %r13, %rax
752 popq %rbx
753 popq %rbp
754 popq %r12
755 popq %r13
756 popq %r14
757 popq %r15
759 .p2align 4,,10
760 .p2align 3
761 .L231:
762 cmpl $3, 68(%rsp)
763 jne .L230
764 movq __libc_errno@gottpoff(%rip), %rax
765 movq 48(%rsp), %rsi
766 movl $4, %edi
767 movl %fs:(%rax), %eax
768 movw %di, 98(%rsi)
769 movl %eax, 56(%rsi)
770 jmp .L230
771 .p2align 4,,10
772 .p2align 3
773 .L101:
774 movq __libc_errno@gottpoff(%rip), %r12
775 movq %r14, %rdi
776 movl %fs:(%r12), %r15d
777 call free@PLT
778 testq %r13, %r13
779 je .L104
780 movq %r13, %rdi
781 .p2align 4,,10
782 .p2align 3
783 .L105:
784 movq 16(%rdi), %rbp
785 call free@PLT
786 testq %rbp, %rbp
787 movq %rbp, %rdi
788 jne .L105
789 .L104:
790 movq 16(%rsp), %rdi
791 xorl %r13d, %r13d
792 call __closedir
793 movq 48(%rsp), %rax
794 movl $7, %ecx
795 movl %r15d, %fs:(%r12)
796 movw %cx, 98(%rax)
797 orl $512, 64(%rbx)
798 jmp .L86
799 .p2align 4,,10
800 .p2align 3
801 .L232:
802 movq 48(%rsp), %rsi
803 testb $32, %al
804 movl $1, 64(%rsp)
805 movq 88(%rsi), %rdx
806 leal -2(%rdx), %ecx
807 cmovne %edx, %ecx
808 testl %ecx, %ecx
809 movl %ecx, 24(%rsp)
810 setne %r12b
811 jne .L91
812 testb %bpl, %bpl
813 jne .L91
814 movl $0, 24(%rsp)
815 movl $0, 76(%rsp)
816 jmp .L90
817 .p2align 4,,10
818 .p2align 3
819 .L242:
820 movq 8(%rbx), %rax
821 movq 32(%rbx), %rcx
822 testq %rax, %rax
823 je .L121
824 .p2align 4,,10
825 .p2align 3
826 .L123:
827 movq 40(%rax), %rdx
828 leaq 112(%rax), %rsi
829 cmpq %rsi, %rdx
830 je .L122
831 subq 48(%rax), %rdx
832 addq %rcx, %rdx
833 movq %rdx, 40(%rax)
834 .L122:
835 movq %rcx, 48(%rax)
836 movq 16(%rax), %rax
837 testq %rax, %rax
838 jne .L123
839 .L121:
840 movq %r13, %rax
841 jmp .L124
842 .p2align 4,,10
843 .p2align 3
844 .L126:
845 movq %rdx, %rax
846 .L124:
847 cmpw $0, 96(%rax)
848 js .L141
849 movq 40(%rax), %rdx
850 leaq 112(%rax), %rsi
851 cmpq %rsi, %rdx
852 je .L125
853 subq 48(%rax), %rdx
854 addq %rcx, %rdx
855 movq %rdx, 40(%rax)
856 .L125:
857 movq 16(%rax), %rdx
858 movq %rcx, 48(%rax)
859 testq %rdx, %rdx
860 jne .L126
861 movq 8(%rax), %rdx
862 jmp .L126
863 .p2align 4,,10
864 .p2align 3
865 .L233:
866 movq 16(%rsp), %rax
867 movq 48(%rsp), %r15
868 xorl %ecx, %ecx
869 movl (%rax), %edx
870 leaq 80(%r15), %rsi
871 leaq 72(%r15), %rdi
872 call fts_safe_changedir.isra.7.part.8
873 testl %eax, %eax
874 je .L151
875 testb %bpl, %bpl
876 je .L94
877 testb %r12b, %r12b
878 je .L94
879 movq __libc_errno@gottpoff(%rip), %rax
880 movl %fs:(%rax), %eax
881 movl %eax, 56(%r15)
882 .L94:
883 movq 48(%rsp), %rax
884 movq 16(%rsp), %rdi
885 orw $1, 100(%rax)
886 call __closedir
887 movq $0, 16(%rsp)
888 jmp .L90
889 .L234:
890 movl 64(%rbx), %eax
891 andl $4, %eax
892 movl %eax, 40(%rsp)
893 je .L142
894 movl 76(%rsp), %edx
895 movq 56(%rsp), %rax
896 testl %edx, %edx
897 movb $0, -1(%rax)
898 je .L243
899 xorl %r13d, %r13d
900 movl $0, 40(%rsp)
901 .p2align 4,,10
902 .p2align 3
903 .L143:
904 movl 64(%rbx), %eax
905 movq 48(%rsp), %rcx
906 andl $4, %eax
907 cmpw $0, 96(%rcx)
908 je .L244
909 testl %eax, %eax
910 jne .L131
911 movq 48(%rsp), %rax
912 leaq .LC0(%rip), %rcx
913 movl $-1, %edx
914 movq 8(%rax), %rax
915 leaq 80(%rax), %rsi
916 leaq 72(%rax), %rdi
917 call fts_safe_changedir.isra.7.part.8
918 testl %eax, %eax
919 setne %al
920 .L135:
921 testb %al, %al
922 je .L131
923 movq 48(%rsp), %rax
924 movl $7, %r8d
925 movw %r8w, 98(%rax)
926 orl $512, 64(%rbx)
927 testq %r13, %r13
928 je .L230
929 movq %r13, %rdi
930 .p2align 4,,10
931 .p2align 3
932 .L137:
933 movq 16(%rdi), %rbx
934 call free@PLT
935 testq %rbx, %rbx
936 movq %rbx, %rdi
937 jne .L137
938 jmp .L230
939 .L243:
940 cmpl $3, 68(%rsp)
941 jne .L230
942 xorl %r13d, %r13d
943 .L146:
944 movq 48(%rsp), %rax
945 movl $6, %esi
946 movw %si, 98(%rax)
947 jmp .L138
948 .L244:
949 testl %eax, %eax
950 jne .L131
951 movl 40(%rbx), %edi
952 call __fchdir
953 testl %eax, %eax
954 setne %al
955 jmp .L135
956 .L142:
957 movl 76(%rsp), %eax
958 xorl %r13d, %r13d
959 testl %eax, %eax
960 je .L145
961 jmp .L143
962 .size fts_build, .-fts_build
963 .section .rodata.str1.1
964 .LC1:
965 .string ""
966 .LC2:
967 .string "."
968 .text
969 .p2align 4,,15
970 .globl fts_open
971 .type fts_open, @function
972 fts_open:
973 pushq %r15
974 pushq %r14
975 pushq %r13
976 pushq %r12
977 pushq %rbp
978 pushq %rbx
979 subq $40, %rsp
980 testl $-256, %esi
981 jne .L300
982 movq %rdi, %r12
983 movl %esi, %ebp
984 movl $72, %edi
985 movl $1, %esi
986 movq %rdx, %r14
987 call calloc@PLT
988 testq %rax, %rax
989 movq %rax, %rbx
990 je .L245
991 movq (%r12), %rdi
992 movq %r14, 56(%rax)
993 movl %ebp, %eax
994 orl $4, %eax
995 testb $2, %bpl
996 cmovne %eax, %ebp
997 testq %rdi, %rdi
998 movl %ebp, 64(%rbx)
999 je .L267
1000 movq %r12, %r13
1001 xorl %ebp, %ebp
1002 .p2align 4,,10
1003 .p2align 3
1004 .L251:
1005 call __GI_strlen
1006 cmpq %rax, %rbp
1007 cmovb %rax, %rbp
1008 addq $8, %r13
1009 movq 0(%r13), %rdi
1010 testq %rdi, %rdi
1011 jne .L251
1012 leaq 1(%rbp), %rdx
1013 movl $4096, %eax
1014 cmpq $4096, %rdx
1015 cmovb %rax, %rdx
1016 .L250:
1017 leaq 44(%rbx), %rsi
1018 leaq 32(%rbx), %rdi
1019 call fts_palloc.isra.2
1020 testl %eax, %eax
1021 movl %eax, %r13d
1022 jne .L252
1023 cmpq $0, (%r12)
1024 je .L268
1025 movl 64(%rbx), %esi
1026 movq 32(%rbx), %rdi
1027 leaq .LC1(%rip), %rdx
1028 xorl %ecx, %ecx
1029 call fts_alloc.isra.5
1030 testq %rax, %rax
1031 movq %rax, 16(%rsp)
1032 je .L254
1033 movq (%r12), %rdx
1034 movl $-1, %esi
1035 movw %si, 96(%rax)
1036 testq %rdx, %rdx
1037 je .L253
1038 xorl %ebp, %ebp
1039 jmp .L261
1040 .p2align 4,,10
1041 .p2align 3
1042 .L303:
1043 movq %rbp, 16(%r15)
1044 movq %r15, %rbp
1045 .L260:
1046 addq $8, %r12
1047 movq (%r12), %rdx
1048 addl $1, %r13d
1049 testq %rdx, %rdx
1050 je .L301
1051 .L261:
1052 movq %rdx, %rdi
1053 movq %rdx, 8(%rsp)
1054 call __GI_strlen
1055 testq %rax, %rax
1056 movq 8(%rsp), %rdx
1057 je .L302
1058 movl 64(%rbx), %esi
1059 movq 32(%rbx), %rdi
1060 movq %rax, %rcx
1061 call fts_alloc.isra.5
1062 xorl %ecx, %ecx
1063 movq %rax, %r15
1064 movl 64(%rbx), %edi
1065 movw %cx, 96(%rax)
1066 movq 16(%rsp), %rax
1067 movq %r15, %rsi
1068 movl %edi, %edx
1069 movq %rax, 8(%r15)
1070 leaq 112(%r15), %rax
1071 andl $1, %edx
1072 movq %rax, 40(%r15)
1073 call fts_stat.isra.4
1074 movl $1, %ecx
1075 cmpw $5, %ax
1076 cmove %ecx, %eax
1077 testq %r14, %r14
1078 movw %ax, 98(%r15)
1079 jne .L303
1080 testq %rbp, %rbp
1081 movq $0, 16(%r15)
1082 je .L269
1083 movq 24(%rsp), %rax
1084 movq %r15, 24(%rsp)
1085 movq %r15, 16(%rax)
1086 jmp .L260
1087 .p2align 4,,10
1088 .p2align 3
1089 .L268:
1090 movq $0, 16(%rsp)
1091 .L253:
1092 movl 64(%rbx), %esi
1093 movq 32(%rbx), %rdi
1094 leaq .LC1(%rip), %rdx
1095 xorl %ecx, %ecx
1096 call fts_alloc.isra.5
1097 testq %rax, %rax
1098 movq %rax, (%rbx)
1099 je .L265
1100 xorl %ebp, %ebp
1101 .L266:
1102 testb $4, 64(%rbx)
1103 movl $9, %edx
1104 movq %rbp, 16(%rax)
1105 movw %dx, 98(%rax)
1106 jne .L245
1107 leaq .LC2(%rip), %rdi
1108 xorl %edx, %edx
1109 xorl %esi, %esi
1110 xorl %eax, %eax
1111 call __GI___open
1112 testl %eax, %eax
1113 movl %eax, 40(%rbx)
1114 jns .L245
1115 orl $4, 64(%rbx)
1116 .L245:
1117 addq $40, %rsp
1118 movq %rbx, %rax
1119 popq %rbx
1120 popq %rbp
1121 popq %r12
1122 popq %r13
1123 popq %r14
1124 popq %r15
1126 .p2align 4,,10
1127 .p2align 3
1128 .L302:
1129 movq __libc_errno@gottpoff(%rip), %rax
1130 movl $2, %fs:(%rax)
1131 jmp .L299
1132 .p2align 4,,10
1133 .p2align 3
1134 .L263:
1135 movq 16(%rbp), %r12
1136 movq %rbp, %rdi
1137 call free@PLT
1138 movq %r12, %rbp
1139 .L299:
1140 testq %rbp, %rbp
1141 jne .L263
1142 .L265:
1143 movq 16(%rsp), %rdi
1144 call free@PLT
1145 .L254:
1146 movq 32(%rbx), %rdi
1147 call free@PLT
1148 .L252:
1149 movq %rbx, %rdi
1150 xorl %ebx, %ebx
1151 call free@PLT
1152 jmp .L245
1153 .p2align 4,,10
1154 .p2align 3
1155 .L269:
1156 movq %r15, 24(%rsp)
1157 movq %r15, %rbp
1158 jmp .L260
1159 .p2align 4,,10
1160 .p2align 3
1161 .L301:
1162 testq %r14, %r14
1163 je .L262
1164 cmpl $1, %r13d
1165 jle .L262
1166 movq %rbp, %rsi
1167 movl %r13d, %edx
1168 movq %rbx, %rdi
1169 call fts_sort
1170 movl 64(%rbx), %esi
1171 movq 32(%rbx), %rdi
1172 leaq .LC1(%rip), %rdx
1173 xorl %ecx, %ecx
1174 movq %rax, %rbp
1175 call fts_alloc.isra.5
1176 testq %rax, %rax
1177 movq %rax, (%rbx)
1178 jne .L266
1179 jmp .L299
1180 .p2align 4,,10
1181 .p2align 3
1182 .L300:
1183 movq __libc_errno@gottpoff(%rip), %rax
1184 xorl %ebx, %ebx
1185 movl $22, %fs:(%rax)
1186 jmp .L245
1187 .p2align 4,,10
1188 .p2align 3
1189 .L267:
1190 movl $4096, %edx
1191 jmp .L250
1192 .p2align 4,,10
1193 .p2align 3
1194 .L262:
1195 movl 64(%rbx), %esi
1196 movq 32(%rbx), %rdi
1197 leaq .LC1(%rip), %rdx
1198 xorl %ecx, %ecx
1199 call fts_alloc.isra.5
1200 testq %rax, %rax
1201 movq %rax, (%rbx)
1202 jne .L266
1203 jmp .L263
1204 .size fts_open, .-fts_open
1205 .weak fts64_open
1206 .set fts64_open,fts_open
1207 .p2align 4,,15
1208 .globl fts_close
1209 .type fts_close, @function
1210 fts_close:
1211 pushq %r12
1212 pushq %rbp
1213 movq %rdi, %rbp
1214 pushq %rbx
1215 movq (%rdi), %rdi
1216 testq %rdi, %rdi
1217 je .L305
1218 cmpw $0, 96(%rdi)
1219 jns .L308
1220 jmp .L315
1221 .p2align 4,,10
1222 .p2align 3
1223 .L307:
1224 call free@PLT
1225 cmpw $0, 96(%rbx)
1226 movq %rbx, %rdi
1227 js .L306
1228 .L308:
1229 movq 16(%rdi), %rbx
1230 testq %rbx, %rbx
1231 jne .L307
1232 movq 8(%rdi), %rbx
1233 call free@PLT
1234 cmpw $0, 96(%rbx)
1235 movq %rbx, %rdi
1236 jns .L308
1237 .L306:
1238 movq %rbx, %rdi
1239 call free@PLT
1240 .L305:
1241 movq 8(%rbp), %rdi
1242 testq %rdi, %rdi
1243 je .L309
1244 .p2align 4,,10
1245 .p2align 3
1246 .L310:
1247 movq 16(%rdi), %rbx
1248 call free@PLT
1249 testq %rbx, %rbx
1250 movq %rbx, %rdi
1251 jne .L310
1252 .L309:
1253 movq 16(%rbp), %rdi
1254 call free@PLT
1255 movq 32(%rbp), %rdi
1256 call free@PLT
1257 testb $4, 64(%rbp)
1258 jne .L313
1259 movl 40(%rbp), %edi
1260 call __fchdir
1261 testl %eax, %eax
1262 je .L328
1263 movq __libc_errno@gottpoff(%rip), %rbx
1264 movl 40(%rbp), %edi
1265 movl %fs:(%rbx), %r12d
1266 call __GI___close
1267 testl %r12d, %r12d
1268 jne .L329
1269 .L313:
1270 movq %rbp, %rdi
1271 call free@PLT
1272 xorl %eax, %eax
1273 .L304:
1274 popq %rbx
1275 popq %rbp
1276 popq %r12
1278 .p2align 4,,10
1279 .p2align 3
1280 .L328:
1281 movl 40(%rbp), %edi
1282 call __GI___close
1283 jmp .L313
1284 .p2align 4,,10
1285 .p2align 3
1286 .L315:
1287 movq %rdi, %rbx
1288 movq %rbx, %rdi
1289 call free@PLT
1290 jmp .L305
1291 .L329:
1292 movq %rbp, %rdi
1293 call free@PLT
1294 movl %r12d, %fs:(%rbx)
1295 movl $-1, %eax
1296 jmp .L304
1297 .size fts_close, .-fts_close
1298 .weak fts64_close
1299 .set fts64_close,fts_close
1300 .p2align 4,,15
1301 .globl fts_read
1302 .type fts_read, @function
1303 fts_read:
1304 pushq %r14
1305 pushq %r13
1306 pushq %r12
1307 pushq %rbp
1308 pushq %rbx
1309 movq (%rdi), %rbp
1310 testq %rbp, %rbp
1311 je .L412
1312 movl 64(%rdi), %ecx
1313 testb $2, %ch
1314 jne .L412
1315 movzwl 102(%rbp), %eax
1316 movl $3, %r9d
1317 movq %rdi, %r12
1318 movw %r9w, 102(%rbp)
1319 cmpl $1, %eax
1320 je .L414
1321 cmpl $2, %eax
1322 movzwl 98(%rbp), %edx
1323 je .L415
1324 cmpw $1, %dx
1325 jne .L356
1326 jmp .L416
1327 .p2align 4,,10
1328 .p2align 3
1329 .L419:
1330 movq %rbx, (%r12)
1331 movq %rbp, %rdi
1332 call free@PLT
1333 cmpw $0, 96(%rbx)
1334 je .L417
1335 movzwl 102(%rbx), %eax
1336 movq %rbx, %rbp
1337 cmpw $4, %ax
1338 jne .L418
1339 .L338:
1340 .L356:
1341 movq 16(%rbp), %rbx
1342 testq %rbx, %rbx
1343 jne .L419
1344 movq 8(%rbp), %rbx
1345 movq %rbp, %rdi
1346 movq %rbx, (%r12)
1347 call free@PLT
1348 cmpw $-1, 96(%rbx)
1349 je .L420
1350 movzwl 64(%rbx), %eax
1351 movq 32(%r12), %rdx
1352 movb $0, (%rdx,%rax)
1353 cmpw $0, 96(%rbx)
1354 jne .L361
1355 testb $4, 64(%r12)
1356 je .L421
1357 .L366:
1358 movl 56(%rbx), %edx
1359 xorl %eax, %eax
1360 movq %rbx, %rbp
1361 testl %edx, %edx
1362 setne %al
1363 addl $6, %eax
1364 movw %ax, 98(%rbx)
1365 .L330:
1366 popq %rbx
1367 movq %rbp, %rax
1368 popq %rbp
1369 popq %r12
1370 popq %r13
1371 popq %r14
1373 .p2align 4,,10
1374 .p2align 3
1375 .L415:
1376 leal -12(%rdx), %eax
1377 cmpw $1, %ax
1378 jbe .L422
1379 cmpw $1, %dx
1380 jne .L356
1381 .L368:
1382 testb $64, %cl
1383 je .L340
1384 movq 24(%r12), %rax
1385 cmpq %rax, 80(%rbp)
1386 je .L340
1387 .L339:
1388 testb $2, 100(%rbp)
1389 jne .L423
1390 .L341:
1391 movq 8(%r12), %rdi
1392 testq %rdi, %rdi
1393 je .L342
1394 .p2align 4,,10
1395 .p2align 3
1396 .L343:
1397 movq 16(%rdi), %rbx
1398 call free@PLT
1399 testq %rbx, %rbx
1400 movq %rbx, %rdi
1401 jne .L343
1402 movq $0, 8(%r12)
1403 .L342:
1404 movl $6, %edi
1405 movq %rbp, %rax
1406 movw %di, 98(%rbp)
1407 popq %rbx
1408 popq %rbp
1409 popq %r12
1410 popq %r13
1411 popq %r14
1413 .p2align 4,,10
1414 .p2align 3
1415 .L422:
1416 movl $1, %edx
1417 movq %rbp, %rsi
1418 movl %ecx, %edi
1419 call fts_stat.isra.4
1420 cmpw $1, %ax
1421 movw %ax, 98(%rbp)
1422 jne .L330
1423 testb $4, 64(%r12)
1424 jne .L330
1425 leaq .LC2(%rip), %rdi
1426 xorl %edx, %edx
1427 xorl %esi, %esi
1428 xorl %eax, %eax
1429 call __GI___open
1430 testl %eax, %eax
1431 movl %eax, 60(%rbp)
1432 js .L424
1433 orw $2, 100(%rbp)
1434 jmp .L330
1435 .p2align 4,,10
1436 .p2align 3
1437 .L340:
1438 movq 8(%r12), %rbx
1439 testq %rbx, %rbx
1440 je .L344
1441 testb $1, %ch
1442 jne .L425
1443 andl $4, %ecx
1444 je .L426
1445 .L348:
1446 movq $0, 8(%r12)
1447 movq %rbx, (%r12)
1448 .L350:
1449 movq 8(%rbx), %rcx
1450 movq 32(%r12), %rdi
1451 movzwl 64(%rcx), %edx
1452 movq 48(%rcx), %rcx
1453 cmpb $47, -1(%rcx,%rdx)
1454 movq %rdx, %rax
1455 jne .L359
1456 subl $1, %eax
1457 movslq %eax, %rdx
1458 .L359:
1459 addq %rdx, %rdi
1460 leaq 112(%rbx), %rsi
1461 movq %rbx, %rbp
1462 movb $47, (%rdi)
1463 movzwl 66(%rbx), %eax
1464 addq $1, %rdi
1465 leaq 1(%rax), %rdx
1466 call __GI_memmove
1467 popq %rbx
1468 movq %rbp, %rax
1469 popq %rbp
1470 popq %r12
1471 popq %r13
1472 popq %r14
1474 .p2align 4,,10
1475 .p2align 3
1476 .L416:
1477 cmpl $4, %eax
1478 jne .L368
1479 jmp .L339
1480 .p2align 4,,10
1481 .p2align 3
1482 .L414:
1483 movq %rbp, %rsi
1484 xorl %edx, %edx
1485 movl %ecx, %edi
1486 call fts_stat.isra.4
1487 movw %ax, 98(%rbp)
1488 movq %rbp, %rax
1489 popq %rbx
1490 popq %rbp
1491 popq %r12
1492 popq %r13
1493 popq %r14
1495 .p2align 4,,10
1496 .p2align 3
1497 .L417:
1498 testb $4, 64(%r12)
1499 jne .L353
1500 movl 40(%r12), %edi
1501 call __fchdir
1502 testl %eax, %eax
1503 jne .L413
1504 .L353:
1505 movzwl 66(%rbx), %eax
1506 leaq 112(%rbx), %r13
1507 movq 32(%r12), %rdi
1508 movq %r13, %rsi
1509 leaq 1(%rax), %rdx
1510 movw %ax, 64(%rbx)
1511 call __GI_memmove
1512 movl $47, %esi
1513 movq %r13, %rdi
1514 call __GI_strrchr
1515 testq %rax, %rax
1516 je .L354
1517 cmpq %rax, %r13
1518 je .L427
1519 .L355:
1520 leaq 1(%rax), %rbp
1521 movq %rbp, %rdi
1522 call __GI_strlen
1523 leal 1(%rax), %edx
1524 movq %rax, %r14
1525 movq %rbp, %rsi
1526 movq %r13, %rdi
1527 movslq %edx, %rdx
1528 call __GI_memmove
1529 movw %r14w, 66(%rbx)
1530 .L354:
1531 movq 32(%r12), %rax
1532 movq %rbx, %rbp
1533 movq %rax, 48(%rbx)
1534 movq %rax, 40(%rbx)
1535 movq 80(%rbx), %rax
1536 movq %rax, 24(%r12)
1537 movq %rbp, %rax
1538 popq %rbx
1539 popq %rbp
1540 popq %r12
1541 popq %r13
1542 popq %r14
1544 .p2align 4,,10
1545 .p2align 3
1546 .L418:
1547 cmpw $2, %ax
1548 jne .L350
1549 movl 64(%r12), %edi
1550 movl $1, %edx
1551 movq %rbx, %rsi
1552 call fts_stat.isra.4
1553 cmpw $1, %ax
1554 movw %ax, 98(%rbx)
1555 je .L428
1556 .L357:
1557 movl $3, %ecx
1558 movw %cx, 102(%rbx)
1559 jmp .L350
1560 .p2align 4,,10
1561 .p2align 3
1562 .L361:
1563 movzwl 100(%rbx), %eax
1564 testb $2, %al
1565 jne .L429
1566 testb $1, %al
1567 jne .L366
1568 testb $4, 64(%r12)
1569 jne .L366
1570 movq 8(%rbx), %rax
1571 leaq .LC0(%rip), %rcx
1572 movl $-1, %edx
1573 leaq 80(%rax), %rsi
1574 leaq 72(%rax), %rdi
1575 call fts_safe_changedir.isra.7.part.8
1576 testl %eax, %eax
1577 je .L366
1578 .L413:
1579 orl $512, 64(%r12)
1580 .L412:
1581 xorl %ebp, %ebp
1582 popq %rbx
1583 movq %rbp, %rax
1584 popq %rbp
1585 popq %r12
1586 popq %r13
1587 popq %r14
1589 .p2align 4,,10
1590 .p2align 3
1591 .L425:
1592 andb $-2, %ch
1593 movl %ecx, 64(%r12)
1594 .p2align 4,,10
1595 .p2align 3
1596 .L346:
1597 movq 16(%rbx), %r13
1598 movq %rbx, %rdi
1599 call free@PLT
1600 testq %r13, %r13
1601 movq %r13, %rbx
1602 jne .L346
1603 movq $0, 8(%r12)
1604 .L344:
1605 movl $3, %esi
1606 movq %r12, %rdi
1607 call fts_build
1608 testq %rax, %rax
1609 movq %rax, %rbx
1610 movq %rax, 8(%r12)
1611 jne .L348
1612 testb $2, 65(%r12)
1613 je .L330
1614 jmp .L412
1615 .p2align 4,,10
1616 .p2align 3
1617 .L429:
1618 testb $4, 64(%r12)
1619 movl 60(%rbx), %edi
1620 jne .L364
1621 call __fchdir
1622 testl %eax, %eax
1623 jne .L365
1624 movl 60(%rbx), %edi
1625 .L364:
1626 call __GI___close
1627 jmp .L366
1628 .p2align 4,,10
1629 .p2align 3
1630 .L427:
1631 cmpb $0, 113(%rbx)
1632 jne .L355
1633 jmp .L354
1634 .p2align 4,,10
1635 .p2align 3
1636 .L423:
1637 movl 60(%rbp), %edi
1638 call __GI___close
1639 jmp .L341
1640 .L426:
1641 movq 40(%rbp), %rcx
1642 leaq 80(%rbp), %rsi
1643 leaq 72(%rbp), %rdi
1644 movl $-1, %edx
1645 call fts_safe_changedir.isra.7.part.8
1646 testl %eax, %eax
1647 je .L347
1648 movq __libc_errno@gottpoff(%rip), %rax
1649 movq 8(%r12), %rbx
1650 orw $1, 100(%rbp)
1651 movl %fs:(%rax), %eax
1652 testq %rbx, %rbx
1653 movl %eax, 56(%rbp)
1654 je .L348
1655 movq %rbx, %rax
1656 .p2align 4,,10
1657 .p2align 3
1658 .L349:
1659 movq 8(%rax), %rdx
1660 movq 40(%rdx), %rdx
1661 movq %rdx, 40(%rax)
1662 movq 16(%rax), %rax
1663 testq %rax, %rax
1664 jne .L349
1665 jmp .L348
1666 .L421:
1667 movl 40(%r12), %edi
1668 call __fchdir
1669 testl %eax, %eax
1670 je .L366
1671 jmp .L413
1672 .L347:
1673 movq 8(%r12), %rbx
1674 jmp .L348
1675 .L428:
1676 testb $4, 64(%r12)
1677 jne .L357
1678 leaq .LC2(%rip), %rdi
1679 xorl %edx, %edx
1680 xorl %esi, %esi
1681 xorl %eax, %eax
1682 call __GI___open
1683 testl %eax, %eax
1684 movl %eax, 60(%rbx)
1685 js .L430
1686 orw $2, 100(%rbx)
1687 jmp .L357
1688 .L420:
1689 movq %rbx, %rdi
1690 xorl %ebp, %ebp
1691 call free@PLT
1692 movq __libc_errno@gottpoff(%rip), %rax
1693 movl $0, %fs:(%rax)
1694 movq $0, (%r12)
1695 jmp .L330
1696 .L424:
1697 movq __libc_errno@gottpoff(%rip), %rax
1698 movl $7, %r8d
1699 movw %r8w, 98(%rbp)
1700 movl %fs:(%rax), %eax
1701 movl %eax, 56(%rbp)
1702 jmp .L330
1703 .L430:
1704 movq __libc_errno@gottpoff(%rip), %rax
1705 movl $7, %esi
1706 movw %si, 98(%rbx)
1707 movl %fs:(%rax), %eax
1708 movl %eax, 56(%rbx)
1709 jmp .L357
1710 .L365:
1711 movq __libc_errno@gottpoff(%rip), %rbp
1712 movl 60(%rbx), %edi
1713 movl %fs:0(%rbp), %r13d
1714 call __GI___close
1715 orl $512, 64(%r12)
1716 movl %r13d, %fs:0(%rbp)
1717 xorl %ebp, %ebp
1718 jmp .L330
1719 .size fts_read, .-fts_read
1720 .weak fts64_read
1721 .set fts64_read,fts_read
1722 .p2align 4,,15
1723 .globl fts_set
1724 .type fts_set, @function
1725 fts_set:
1726 cmpl $4, %edx
1727 ja .L434
1728 movw %dx, 102(%rsi)
1729 xorl %eax, %eax
1731 .p2align 4,,10
1732 .p2align 3
1733 .L434:
1734 movq __libc_errno@gottpoff(%rip), %rax
1735 movl $22, %fs:(%rax)
1736 movl $1, %eax
1738 .size fts_set, .-fts_set
1739 .weak fts64_set
1740 .set fts64_set,fts_set
1741 .p2align 4,,15
1742 .globl fts_children
1743 .type fts_children, @function
1744 fts_children:
1745 testl $-257, %esi
1746 jne .L454
1747 pushq %r13
1748 pushq %r12
1749 pushq %rbp
1750 pushq %rbx
1751 subq $8, %rsp
1752 testb $2, 65(%rdi)
1753 movq __libc_errno@gottpoff(%rip), %rax
1754 movq (%rdi), %r12
1755 movl $0, %fs:(%rax)
1756 jne .L440
1757 movzwl 98(%r12), %eax
1758 cmpw $9, %ax
1759 je .L455
1760 cmpw $1, %ax
1761 jne .L440
1762 movq %rdi, %rbp
1763 movq 8(%rdi), %rdi
1764 movl %esi, %r13d
1765 testq %rdi, %rdi
1766 je .L441
1767 .p2align 4,,10
1768 .p2align 3
1769 .L442:
1770 movq 16(%rdi), %rbx
1771 call free@PLT
1772 testq %rbx, %rbx
1773 movq %rbx, %rdi
1774 jne .L442
1775 .L441:
1776 cmpl $256, %r13d
1777 movl $1, %ebx
1778 jne .L443
1779 orl $256, 64(%rbp)
1780 movl $2, %ebx
1781 .L443:
1782 cmpw $0, 96(%r12)
1783 jne .L444
1784 movq 40(%r12), %rax
1785 cmpb $47, (%rax)
1786 je .L444
1787 testb $4, 64(%rbp)
1788 je .L445
1789 .L444:
1790 movl %ebx, %esi
1791 movq %rbp, %rdi
1792 call fts_build
1793 movq %rax, 8(%rbp)
1794 .L435:
1795 addq $8, %rsp
1796 popq %rbx
1797 popq %rbp
1798 popq %r12
1799 popq %r13
1801 .p2align 4,,10
1802 .p2align 3
1803 .L455:
1804 movq 16(%r12), %rax
1805 addq $8, %rsp
1806 popq %rbx
1807 popq %rbp
1808 popq %r12
1809 popq %r13
1811 .p2align 4,,10
1812 .p2align 3
1813 .L440:
1814 addq $8, %rsp
1815 xorl %eax, %eax
1816 popq %rbx
1817 popq %rbp
1818 popq %r12
1819 popq %r13
1821 .p2align 4,,10
1822 .p2align 3
1823 .L445:
1824 leaq .LC2(%rip), %rdi
1825 xorl %edx, %edx
1826 xorl %esi, %esi
1827 xorl %eax, %eax
1828 call __GI___open
1829 testl %eax, %eax
1830 movl %eax, %r12d
1831 js .L440
1832 movl %ebx, %esi
1833 movq %rbp, %rdi
1834 call fts_build
1835 movl %r12d, %edi
1836 movq %rax, 8(%rbp)
1837 call __fchdir
1838 testl %eax, %eax
1839 jne .L440
1840 movl %r12d, %edi
1841 call __GI___close
1842 movq 8(%rbp), %rax
1843 jmp .L435
1844 .p2align 4,,10
1845 .p2align 3
1846 .L454:
1847 movq __libc_errno@gottpoff(%rip), %rax
1848 movl $22, %fs:(%rax)
1849 xorl %eax, %eax
1851 .size fts_children, .-fts_children
1852 .weak fts64_children
1853 .set fts64_children,fts_children
1854 .hidden __closedir
1855 .hidden __readdir
1856 .hidden __opendir
1857 .hidden __fchdir