clarify the purpose of this project
[nyanglibc.git] / libio / genops.s
blob220ed832030cb8d4a83fa01b7c8fe522db53f520
1 .text
2 .section __libc_freeres_fn,"ax",@progbits
3 .p2align 4,,15
4 .type buffer_free, @function
5 buffer_free:
6 .LFB105:
7 pushq %rbx
8 movq freeres_list(%rip), %rbx
9 movb $1, dealloc_buffers(%rip)
10 testq %rbx, %rbx
11 je .L1
12 .p2align 4,,10
13 .p2align 3
14 .L3:
15 movq 176(%rbx), %rdi
16 call free@PLT
17 movq 168(%rbx), %rbx
18 testq %rbx, %rbx
19 movq %rbx, freeres_list(%rip)
20 jne .L3
21 .L1:
22 popq %rbx
23 ret
24 .LFE105:
25 .size buffer_free, .-buffer_free
26 .text
27 .p2align 4,,15
28 .type save_for_backup, @function
29 save_for_backup:
30 .LFB77:
31 pushq %r15
32 pushq %r14
33 pushq %r13
34 pushq %r12
35 movq %rsi, %r13
36 pushq %rbp
37 pushq %rbx
38 movq %rsi, %r12
39 movq %rdi, %rbp
40 subq $40, %rsp
41 movq 88(%rdi), %rsi
42 movq 96(%rdi), %rax
43 movq 24(%rdi), %r8
44 movq 72(%rdi), %r15
45 movq %rsi, %r14
46 movq %rax, %rdx
47 subq %r8, %r13
48 subq %r15, %r14
49 testq %rax, %rax
50 movq %r13, %rbx
51 je .L34
52 .p2align 4,,10
53 .p2align 3
54 .L11:
55 movslq 16(%rdx), %rcx
56 movq (%rdx), %rdx
57 cmpq %rcx, %rbx
58 cmovg %rcx, %rbx
59 testq %rdx, %rdx
60 jne .L11
61 movq %r13, %rdx
62 subq %rbx, %rdx
63 cmpq %r14, %rdx
64 ja .L35
65 subq %rdx, %r14
66 testq %rbx, %rbx
67 leaq (%r15,%r14), %rdi
68 js .L12
69 testq %rdx, %rdx
70 jne .L36
71 movq %rdi, 80(%rbp)
72 .L21:
73 movl %r13d, %edx
74 .p2align 4,,10
75 .p2align 3
76 .L22:
77 subl %edx, 16(%rax)
78 movq (%rax), %rax
79 testq %rax, %rax
80 jne .L22
81 .L23:
82 xorl %eax, %eax
83 .L10:
84 addq $40, %rsp
85 popq %rbx
86 popq %rbp
87 popq %r12
88 popq %r13
89 popq %r14
90 popq %r15
91 ret
92 .p2align 4,,10
93 .p2align 3
94 .L35:
95 leaq 100(%rdx), %rax
96 movq %rsi, 24(%rsp)
97 movq %r8, 16(%rsp)
98 movq %rdx, 8(%rsp)
99 movq %rax, %rdi
100 movq %rax, (%rsp)
101 call malloc@PLT
102 testq %rax, %rax
103 movq %rax, %r14
104 je .L26
105 testq %rbx, %rbx
106 leaq 100(%rax), %rcx
107 movq 8(%rsp), %rdx
108 movq 16(%rsp), %r8
109 movq 24(%rsp), %rsi
110 js .L37
111 leaq (%r8,%rbx), %rsi
112 movq %rcx, %rdi
113 call memcpy@PLT
114 movq %rax, %rcx
115 .L17:
116 movq %r15, %rdi
117 movq %rcx, 8(%rsp)
118 call free@PLT
119 movq %r14, 72(%rbp)
120 subq 24(%rbp), %r12
121 addq (%rsp), %r14
122 movq 96(%rbp), %rax
123 movq 8(%rsp), %rcx
124 movq %r12, %r13
125 movq %r14, 88(%rbp)
126 .L18:
127 testq %rax, %rax
128 movq %rcx, 80(%rbp)
129 jne .L21
130 jmp .L23
131 .L38:
132 movq %rsi, %rdi
133 .L12:
134 movq %rbx, %rdx
135 addq %rbx, %rsi
136 negq %rdx
137 call memmove
138 movq %r14, %rdi
139 movq 24(%rbp), %rsi
140 movq %r12, %rdx
141 subq %rbx, %rdi
142 addq 72(%rbp), %rdi
143 subq %rsi, %rdx
144 .L33:
145 call memcpy@PLT
146 subq 24(%rbp), %r12
147 movq 72(%rbp), %rcx
148 movq 96(%rbp), %rax
149 addq %r14, %rcx
150 movq %r12, %r13
151 jmp .L18
152 .p2align 4,,10
153 .p2align 3
154 .L36:
155 leaq (%r8,%rbx), %rsi
156 jmp .L33
157 .p2align 4,,10
158 .p2align 3
159 .L34:
160 testq %r13, %r13
161 js .L38
162 movq %rsi, 80(%rdi)
163 jmp .L23
164 .p2align 4,,10
165 .p2align 3
166 .L37:
167 movq %rbx, %rdx
168 movq %rcx, %rdi
169 addq %rbx, %rsi
170 negq %rdx
171 movq %rcx, 8(%rsp)
172 call __mempcpy@PLT
173 movq 16(%rsp), %r8
174 movq %r13, %rdx
175 movq %rax, %rdi
176 movq %r8, %rsi
177 call memcpy@PLT
178 movq 8(%rsp), %rcx
179 jmp .L17
180 .L26:
181 movl $-1, %eax
182 jmp .L10
183 .LFE77:
184 .size save_for_backup, .-save_for_backup
185 .p2align 4,,15
186 .type flush_cleanup, @function
187 flush_cleanup:
188 .LFB68:
189 movq run_fp(%rip), %rax
190 testq %rax, %rax
191 je .L41
192 testl $32768, (%rax)
193 je .L48
194 .L41:
195 movl 4+list_all_lock(%rip), %eax
196 subl $1, %eax
197 testl %eax, %eax
198 movl %eax, 4+list_all_lock(%rip)
199 jne .L39
200 movq $0, 8+list_all_lock(%rip)
201 #APP
202 # 47 "genops.c" 1
203 movl %fs:24,%edx
204 # 0 "" 2
205 #NO_APP
206 testl %edx, %edx
207 jne .L46
208 subl $1, list_all_lock(%rip)
210 .p2align 4,,10
211 .p2align 3
212 .L46:
213 #APP
214 # 47 "genops.c" 1
215 xchgl %eax, list_all_lock(%rip)
216 # 0 "" 2
217 #NO_APP
218 cmpl $1, %eax
219 jle .L39
220 xorl %r10d, %r10d
221 movl $1, %edx
222 movl $129, %esi
223 leaq list_all_lock(%rip), %rdi
224 movl $202, %eax
225 #APP
226 # 47 "genops.c" 1
227 syscall
229 # 0 "" 2
230 #NO_APP
231 .L39:
232 rep ret
233 .p2align 4,,10
234 .p2align 3
235 .L48:
236 movq 136(%rax), %rdi
237 movl 4(%rdi), %eax
238 subl $1, %eax
239 testl %eax, %eax
240 movl %eax, 4(%rdi)
241 jne .L41
242 movq $0, 8(%rdi)
243 #APP
244 # 46 "genops.c" 1
245 movl %fs:24,%edx
246 # 0 "" 2
247 #NO_APP
248 testl %edx, %edx
249 jne .L43
250 subl $1, (%rdi)
251 jmp .L41
252 .p2align 4,,10
253 .p2align 3
254 .L43:
255 #APP
256 # 46 "genops.c" 1
257 xchgl %eax, (%rdi)
258 # 0 "" 2
259 #NO_APP
260 cmpl $1, %eax
261 jle .L41
262 xorl %r10d, %r10d
263 movl $1, %edx
264 movl $129, %esi
265 movl $202, %eax
266 #APP
267 # 46 "genops.c" 1
268 syscall
270 # 0 "" 2
271 #NO_APP
272 jmp .L41
273 .LFE68:
274 .size flush_cleanup, .-flush_cleanup
275 .p2align 4,,15
276 .type _IO_un_link.part.2, @function
277 _IO_un_link.part.2:
278 .LFB129:
279 pushq %r12
280 pushq %rbp
281 movq %rdi, %rbp
282 pushq %rbx
283 subq $32, %rsp
284 movq _pthread_cleanup_push_defer@GOTPCREL(%rip), %rbx
285 testq %rbx, %rbx
286 je .L50
287 leaq flush_cleanup(%rip), %rsi
288 movq %rsp, %rdi
289 xorl %edx, %edx
290 call _pthread_cleanup_push_defer@PLT
291 .L51:
292 movq %fs:16, %r12
293 cmpq 8+list_all_lock(%rip), %r12
294 je .L52
295 #APP
296 # 59 "genops.c" 1
297 movl %fs:24,%eax
298 # 0 "" 2
299 #NO_APP
300 testl %eax, %eax
301 jne .L53
302 movl $1, %edx
303 #APP
304 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
305 cmpxchgl %edx, list_all_lock(%rip)
306 # 0 "" 2
307 #NO_APP
308 .L54:
309 movq %r12, 8+list_all_lock(%rip)
310 .L52:
311 movl 0(%rbp), %esi
312 movl 4+list_all_lock(%rip), %edx
313 movq %rbp, run_fp(%rip)
314 movl %esi, %r8d
315 addl $1, %edx
316 andl $32768, %r8d
317 movl %edx, 4+list_all_lock(%rip)
318 jne .L55
319 movq 136(%rbp), %rdi
320 movq %fs:16, %r12
321 cmpq 8(%rdi), %r12
322 je .L56
323 #APP
324 # 61 "genops.c" 1
325 movl %fs:24,%eax
326 # 0 "" 2
327 #NO_APP
328 testl %eax, %eax
329 movl $1, %edx
330 jne .L57
331 #APP
332 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
333 cmpxchgl %edx, (%rdi)
334 # 0 "" 2
335 #NO_APP
336 .L58:
337 movl 0(%rbp), %esi
338 movq 136(%rbp), %rdi
339 movl %esi, %r8d
340 movq %r12, 8(%rdi)
341 andl $32768, %r8d
342 .L56:
343 addl $1, 4(%rdi)
344 movq _IO_list_all(%rip), %rdi
345 testq %rdi, %rdi
346 je .L59
347 .L75:
348 cmpq %rdi, %rbp
349 je .L90
350 movq 104(%rdi), %rcx
351 testq %rcx, %rcx
352 je .L59
353 cmpq %rcx, %rbp
354 jne .L62
355 jmp .L91
356 .p2align 4,,10
357 .p2align 3
358 .L64:
359 cmpq %rdx, %rbp
360 je .L92
361 movq %rdx, %rcx
362 .L62:
363 movq 104(%rcx), %rdx
364 testq %rdx, %rdx
365 jne .L64
366 .L59:
367 andb $127, %sil
368 testl %r8d, %r8d
369 movl %esi, 0(%rbp)
370 jne .L89
371 .L65:
372 movq 136(%rbp), %rdi
373 movl 4(%rdi), %eax
374 leal -1(%rax), %ecx
375 testl %ecx, %ecx
376 movl %ecx, 4(%rdi)
377 movl 4+list_all_lock(%rip), %edx
378 jne .L66
379 movq $0, 8(%rdi)
380 #APP
381 # 76 "genops.c" 1
382 movl %fs:24,%eax
383 # 0 "" 2
384 #NO_APP
385 testl %eax, %eax
386 jne .L68
387 subl $1, (%rdi)
388 movl 4+list_all_lock(%rip), %edx
389 .L66:
390 subl $1, %edx
391 movq $0, run_fp(%rip)
392 testl %edx, %edx
393 movl %edx, 4+list_all_lock(%rip)
394 jne .L70
395 movq $0, 8+list_all_lock(%rip)
396 #APP
397 # 78 "genops.c" 1
398 movl %fs:24,%eax
399 # 0 "" 2
400 #NO_APP
401 testl %eax, %eax
402 jne .L71
403 subl $1, list_all_lock(%rip)
404 .L70:
405 testq %rbx, %rbx
406 je .L49
407 movq %rsp, %rdi
408 xorl %esi, %esi
409 call _pthread_cleanup_pop_restore@PLT
410 .L49:
411 addq $32, %rsp
412 popq %rbx
413 popq %rbp
414 popq %r12
416 .p2align 4,,10
417 .p2align 3
418 .L55:
419 movq _IO_list_all(%rip), %rdi
420 testq %rdi, %rdi
421 jne .L75
422 andb $127, %sil
423 movl %esi, 0(%rbp)
424 jmp .L66
425 .p2align 4,,10
426 .p2align 3
427 .L90:
428 movq 104(%rbp), %rax
429 andb $127, %sil
430 testl %r8d, %r8d
431 movq %rax, _IO_list_all(%rip)
432 movl %esi, 0(%rbp)
433 je .L65
434 .L89:
435 movl 4+list_all_lock(%rip), %edx
436 jmp .L66
437 .p2align 4,,10
438 .p2align 3
439 .L50:
440 leaq flush_cleanup(%rip), %rax
441 movq $0, 8(%rsp)
442 movq %rax, (%rsp)
443 jmp .L51
444 .p2align 4,,10
445 .p2align 3
446 .L92:
447 addq $104, %rcx
448 .L63:
449 movq 104(%rbp), %rax
450 movq %rax, (%rcx)
451 jmp .L59
452 .p2align 4,,10
453 .p2align 3
454 .L71:
455 #APP
456 # 78 "genops.c" 1
457 xchgl %edx, list_all_lock(%rip)
458 # 0 "" 2
459 #NO_APP
460 cmpl $1, %edx
461 jle .L70
462 xorl %r10d, %r10d
463 movl $1, %edx
464 movl $129, %esi
465 leaq list_all_lock(%rip), %rdi
466 movl $202, %eax
467 #APP
468 # 78 "genops.c" 1
469 syscall
471 # 0 "" 2
472 #NO_APP
473 jmp .L70
474 .p2align 4,,10
475 .p2align 3
476 .L53:
477 xorl %eax, %eax
478 movl $1, %edx
479 lock cmpxchgl %edx, list_all_lock(%rip)
480 je .L54
481 leaq list_all_lock(%rip), %rdi
482 call __lll_lock_wait_private
483 jmp .L54
484 .p2align 4,,10
485 .p2align 3
486 .L57:
487 movl %r8d, %eax
488 lock cmpxchgl %edx, (%rdi)
489 je .L58
490 call __lll_lock_wait_private
491 jmp .L58
492 .p2align 4,,10
493 .p2align 3
494 .L91:
495 leaq 104(%rdi), %rcx
496 jmp .L63
497 .L68:
498 #APP
499 # 76 "genops.c" 1
500 xchgl %r8d, (%rdi)
501 # 0 "" 2
502 #NO_APP
503 cmpl $1, %r8d
504 movl 4+list_all_lock(%rip), %edx
505 jle .L66
506 xorl %r10d, %r10d
507 movl $1, %edx
508 movl $129, %esi
509 movl $202, %eax
510 #APP
511 # 76 "genops.c" 1
512 syscall
514 # 0 "" 2
515 #NO_APP
516 jmp .L89
517 .LFE129:
518 .size _IO_un_link.part.2, .-_IO_un_link.part.2
519 .p2align 4,,15
520 .globl _IO_un_link
521 .hidden _IO_un_link
522 .type _IO_un_link, @function
523 _IO_un_link:
524 .LFB69:
525 testb $-128, (%rdi)
526 je .L93
527 jmp _IO_un_link.part.2
528 .p2align 4,,10
529 .p2align 3
530 .L93:
531 rep ret
532 .LFE69:
533 .size _IO_un_link, .-_IO_un_link
534 .p2align 4,,15
535 .globl _IO_link_in
536 .hidden _IO_link_in
537 .type _IO_link_in, @function
538 _IO_link_in:
539 .LFB70:
540 movl (%rdi), %eax
541 testb $-128, %al
542 jne .L124
543 pushq %r12
544 pushq %rbp
545 orb $-128, %al
546 pushq %rbx
547 movq %rdi, %rbx
548 subq $32, %rsp
549 movq _pthread_cleanup_push_defer@GOTPCREL(%rip), %rbp
550 movl %eax, (%rdi)
551 testq %rbp, %rbp
552 je .L97
553 leaq flush_cleanup(%rip), %rsi
554 movq %rsp, %rdi
555 xorl %edx, %edx
556 call _pthread_cleanup_push_defer@PLT
557 .L98:
558 movq %fs:16, %r12
559 cmpq %r12, 8+list_all_lock(%rip)
560 je .L99
561 #APP
562 # 93 "genops.c" 1
563 movl %fs:24,%eax
564 # 0 "" 2
565 #NO_APP
566 testl %eax, %eax
567 jne .L100
568 movl $1, %edx
569 #APP
570 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
571 cmpxchgl %edx, list_all_lock(%rip)
572 # 0 "" 2
573 #NO_APP
574 .L101:
575 movq %r12, 8+list_all_lock(%rip)
576 .L99:
577 movl 4+list_all_lock(%rip), %edx
578 movl (%rbx), %ecx
579 movq %rbx, run_fp(%rip)
580 addl $1, %edx
581 andl $32768, %ecx
582 movl %edx, 4+list_all_lock(%rip)
583 jne .L102
584 movq 136(%rbx), %rdi
585 movq %fs:16, %r12
586 cmpq %r12, 8(%rdi)
587 je .L128
588 #APP
589 # 95 "genops.c" 1
590 movl %fs:24,%eax
591 # 0 "" 2
592 #NO_APP
593 testl %eax, %eax
594 movl $1, %edx
595 jne .L105
596 #APP
597 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
598 cmpxchgl %edx, (%rdi)
599 # 0 "" 2
600 #NO_APP
601 .L106:
602 movl (%rbx), %eax
603 movq 136(%rbx), %rdi
604 movq _IO_list_all(%rip), %rdx
605 addl $1, 4(%rdi)
606 testb $-128, %ah
607 movq %r12, 8(%rdi)
608 movq %rbx, _IO_list_all(%rip)
609 movq %rdx, 104(%rbx)
610 jne .L127
611 .L104:
612 movl 4(%rdi), %eax
613 subl $1, %eax
614 testl %eax, %eax
615 movl %eax, 4(%rdi)
616 movl 4+list_all_lock(%rip), %edx
617 jne .L107
618 movq $0, 8(%rdi)
619 #APP
620 # 100 "genops.c" 1
621 movl %fs:24,%edx
622 # 0 "" 2
623 #NO_APP
624 testl %edx, %edx
625 jne .L109
626 subl $1, (%rdi)
627 movl 4+list_all_lock(%rip), %edx
628 jmp .L107
629 .p2align 4,,10
630 .p2align 3
631 .L97:
632 leaq flush_cleanup(%rip), %rax
633 movq $0, 8(%rsp)
634 movq %rax, (%rsp)
635 jmp .L98
636 .p2align 4,,10
637 .p2align 3
638 .L124:
639 rep ret
640 .p2align 4,,10
641 .p2align 3
642 .L102:
643 movq _IO_list_all(%rip), %rax
644 movq %rbx, _IO_list_all(%rip)
645 movq %rax, 104(%rbx)
646 .L107:
647 subl $1, %edx
648 movq $0, run_fp(%rip)
649 testl %edx, %edx
650 movl %edx, 4+list_all_lock(%rip)
651 jne .L111
652 movq $0, 8+list_all_lock(%rip)
653 #APP
654 # 102 "genops.c" 1
655 movl %fs:24,%eax
656 # 0 "" 2
657 #NO_APP
658 testl %eax, %eax
659 jne .L112
660 subl $1, list_all_lock(%rip)
661 .L111:
662 testq %rbp, %rbp
663 je .L95
664 movq %rsp, %rdi
665 xorl %esi, %esi
666 call _pthread_cleanup_pop_restore@PLT
667 .L95:
668 addq $32, %rsp
669 popq %rbx
670 popq %rbp
671 popq %r12
673 .p2align 4,,10
674 .p2align 3
675 .L128:
676 movq _IO_list_all(%rip), %rax
677 addl $1, 4(%rdi)
678 movq %rbx, _IO_list_all(%rip)
679 movq %rax, 104(%rbx)
680 jmp .L104
681 .p2align 4,,10
682 .p2align 3
683 .L100:
684 xorl %eax, %eax
685 movl $1, %edx
686 lock cmpxchgl %edx, list_all_lock(%rip)
687 je .L101
688 leaq list_all_lock(%rip), %rdi
689 call __lll_lock_wait_private
690 jmp .L101
691 .p2align 4,,10
692 .p2align 3
693 .L112:
694 #APP
695 # 102 "genops.c" 1
696 xchgl %edx, list_all_lock(%rip)
697 # 0 "" 2
698 #NO_APP
699 cmpl $1, %edx
700 jle .L111
701 xorl %r10d, %r10d
702 movl $1, %edx
703 movl $129, %esi
704 leaq list_all_lock(%rip), %rdi
705 movl $202, %eax
706 #APP
707 # 102 "genops.c" 1
708 syscall
710 # 0 "" 2
711 #NO_APP
712 jmp .L111
713 .p2align 4,,10
714 .p2align 3
715 .L105:
716 movl %ecx, %eax
717 lock cmpxchgl %edx, (%rdi)
718 je .L106
719 call __lll_lock_wait_private
720 jmp .L106
721 .p2align 4,,10
722 .p2align 3
723 .L109:
724 #APP
725 # 100 "genops.c" 1
726 xchgl %eax, (%rdi)
727 # 0 "" 2
728 #NO_APP
729 cmpl $1, %eax
730 movl 4+list_all_lock(%rip), %edx
731 jle .L107
732 xorl %r10d, %r10d
733 movl $1, %edx
734 movl $129, %esi
735 movl $202, %eax
736 #APP
737 # 100 "genops.c" 1
738 syscall
740 # 0 "" 2
741 #NO_APP
742 .L127:
743 movl 4+list_all_lock(%rip), %edx
744 jmp .L107
745 .LFE70:
746 .size _IO_link_in, .-_IO_link_in
747 .p2align 4,,15
748 .globl _IO_least_marker
749 .type _IO_least_marker, @function
750 _IO_least_marker:
751 .LFB71:
752 movq 96(%rdi), %rdx
753 movq %rsi, %rax
754 subq 24(%rdi), %rax
755 testq %rdx, %rdx
756 je .L129
757 .p2align 4,,10
758 .p2align 3
759 .L131:
760 movslq 16(%rdx), %rcx
761 movq (%rdx), %rdx
762 cmpq %rcx, %rax
763 cmovg %rcx, %rax
764 testq %rdx, %rdx
765 jne .L131
766 .L129:
767 rep ret
768 .LFE71:
769 .size _IO_least_marker, .-_IO_least_marker
770 .p2align 4,,15
771 .globl _IO_switch_to_main_get_area
772 .type _IO_switch_to_main_get_area, @function
773 _IO_switch_to_main_get_area:
774 .LFB72:
775 movq 16(%rdi), %rax
776 movq 88(%rdi), %rdx
777 andl $-257, (%rdi)
778 movq %rdx, 16(%rdi)
779 movq %rax, 88(%rdi)
780 movq 24(%rdi), %rdx
781 movq 72(%rdi), %rax
782 movq %rdx, 72(%rdi)
783 movq %rax, 24(%rdi)
784 movq %rax, 8(%rdi)
786 .LFE72:
787 .size _IO_switch_to_main_get_area, .-_IO_switch_to_main_get_area
788 .p2align 4,,15
789 .globl _IO_switch_to_backup_area
790 .type _IO_switch_to_backup_area, @function
791 _IO_switch_to_backup_area:
792 .LFB73:
793 movq 16(%rdi), %rdx
794 movq 88(%rdi), %rax
795 movq 72(%rdi), %rcx
796 orl $256, (%rdi)
797 movq %rdx, 88(%rdi)
798 movq 24(%rdi), %rdx
799 movq %rax, 16(%rdi)
800 movq %rcx, 24(%rdi)
801 movq %rdx, 72(%rdi)
802 movq %rax, 8(%rdi)
804 .LFE73:
805 .size _IO_switch_to_backup_area, .-_IO_switch_to_backup_area
806 .p2align 4,,15
807 .globl _IO_switch_to_get_mode
808 .hidden _IO_switch_to_get_mode
809 .type _IO_switch_to_get_mode, @function
810 _IO_switch_to_get_mode:
811 .LFB74:
812 pushq %rbp
813 pushq %rbx
814 movq %rdi, %rbx
815 subq $8, %rsp
816 movq 40(%rdi), %rax
817 cmpq 32(%rdi), %rax
818 jbe .L139
819 movq 216(%rdi), %rbp
820 movq __start___libc_IO_vtables@GOTPCREL(%rip), %rdx
821 movq __stop___libc_IO_vtables@GOTPCREL(%rip), %rax
822 movq %rbp, %rsi
823 subq %rdx, %rax
824 subq %rdx, %rsi
825 cmpq %rsi, %rax
826 jbe .L148
827 .L140:
828 movl $-1, %esi
829 movq %rbx, %rdi
830 call *24(%rbp)
831 cmpl $-1, %eax
832 je .L138
833 movq 40(%rbx), %rax
834 .L139:
835 movl (%rbx), %edx
836 testb $1, %dh
837 jne .L149
838 cmpq %rax, 16(%rbx)
839 movq 56(%rbx), %rcx
840 movq %rcx, 24(%rbx)
841 jnb .L143
842 movq %rax, 16(%rbx)
843 .L143:
844 andb $-9, %dh
845 movq %rax, 8(%rbx)
846 movq %rax, 48(%rbx)
847 movq %rax, 32(%rbx)
848 movl %edx, (%rbx)
849 xorl %eax, %eax
850 .L138:
851 addq $8, %rsp
852 popq %rbx
853 popq %rbp
855 .p2align 4,,10
856 .p2align 3
857 .L149:
858 movq 80(%rbx), %rcx
859 movq %rcx, 24(%rbx)
860 jmp .L143
861 .p2align 4,,10
862 .p2align 3
863 .L148:
864 call _IO_vtable_check
865 jmp .L140
866 .LFE74:
867 .size _IO_switch_to_get_mode, .-_IO_switch_to_get_mode
868 .p2align 4,,15
869 .globl _IO_free_backup_area
870 .hidden _IO_free_backup_area
871 .type _IO_free_backup_area, @function
872 _IO_free_backup_area:
873 .LFB75:
874 pushq %rbx
875 movl (%rdi), %eax
876 movq %rdi, %rbx
877 movq 72(%rdi), %rdi
878 testb $1, %ah
879 je .L151
880 andb $-2, %ah
881 movq %rdi, 8(%rbx)
882 movl %eax, (%rbx)
883 movq 88(%rbx), %rax
884 movq %rax, 16(%rbx)
885 movq 24(%rbx), %rax
886 movq %rdi, 24(%rbx)
887 movq %rax, %rdi
888 .L151:
889 call free@PLT
890 movq $0, 72(%rbx)
891 movq $0, 88(%rbx)
892 movq $0, 80(%rbx)
893 popq %rbx
895 .LFE75:
896 .size _IO_free_backup_area, .-_IO_free_backup_area
897 .p2align 4,,15
898 .globl __overflow
899 .hidden __overflow
900 .type __overflow, @function
901 __overflow:
902 .LFB76:
903 pushq %rbx
904 subq $16, %rsp
905 movl 192(%rdi), %eax
906 testl %eax, %eax
907 jne .L157
908 movl $-1, 192(%rdi)
909 .L157:
910 movq 216(%rdi), %rbx
911 movq __start___libc_IO_vtables@GOTPCREL(%rip), %rdx
912 movq __stop___libc_IO_vtables@GOTPCREL(%rip), %rax
913 movq %rbx, %rcx
914 subq %rdx, %rax
915 subq %rdx, %rcx
916 cmpq %rcx, %rax
917 jbe .L160
918 movq 24(%rbx), %rax
919 addq $16, %rsp
920 popq %rbx
921 jmp *%rax
922 .p2align 4,,10
923 .p2align 3
924 .L160:
925 movl %esi, 12(%rsp)
926 movq %rdi, (%rsp)
927 call _IO_vtable_check
928 movq 24(%rbx), %rax
929 movl 12(%rsp), %esi
930 movq (%rsp), %rdi
931 addq $16, %rsp
932 popq %rbx
933 jmp *%rax
934 .LFE76:
935 .size __overflow, .-__overflow
936 .p2align 4,,15
937 .globl __underflow
938 .hidden __underflow
939 .type __underflow, @function
940 __underflow:
941 .LFB78:
942 movl 192(%rdi), %eax
943 testl %eax, %eax
944 jne .L162
945 movl $-1, 192(%rdi)
946 .L163:
947 pushq %rbp
948 pushq %rbx
949 movq %rdi, %rbx
950 subq $8, %rsp
951 testl $2048, (%rdi)
952 jne .L165
953 .L169:
954 movq 8(%rbx), %rax
955 movq 16(%rbx), %rdx
956 cmpq %rdx, %rax
957 jb .L188
958 movl (%rbx), %eax
959 testb $1, %ah
960 jne .L189
961 .L170:
962 cmpq $0, 96(%rbx)
963 je .L171
964 movq 16(%rbx), %rsi
965 movq %rbx, %rdi
966 call save_for_backup
967 testl %eax, %eax
968 jne .L168
969 .L172:
970 movq 216(%rbx), %rbp
971 movq __start___libc_IO_vtables@GOTPCREL(%rip), %rdx
972 movq __stop___libc_IO_vtables@GOTPCREL(%rip), %rax
973 movq %rbp, %rsi
974 subq %rdx, %rax
975 subq %rdx, %rsi
976 cmpq %rsi, %rax
977 jbe .L190
978 .L174:
979 movq 32(%rbp), %rax
980 addq $8, %rsp
981 movq %rbx, %rdi
982 popq %rbx
983 popq %rbp
984 jmp *%rax
985 .p2align 4,,10
986 .p2align 3
987 .L189:
988 andb $-2, %ah
989 movq 88(%rbx), %rcx
990 movq %rdx, 88(%rbx)
991 movl %eax, (%rbx)
992 movq 72(%rbx), %rax
993 movq 24(%rbx), %rdx
994 movq %rcx, 16(%rbx)
995 cmpq %rax, %rcx
996 movq %rax, 24(%rbx)
997 movq %rax, 8(%rbx)
998 movq %rdx, 72(%rbx)
999 jbe .L170
1000 .L188:
1001 movzbl (%rax), %eax
1002 .L161:
1003 addq $8, %rsp
1004 popq %rbx
1005 popq %rbp
1007 .p2align 4,,10
1008 .p2align 3
1009 .L162:
1010 cmpl $-1, %eax
1011 je .L163
1012 movl $-1, %eax
1014 .p2align 4,,10
1015 .p2align 3
1016 .L165:
1017 call _IO_switch_to_get_mode
1018 cmpl $-1, %eax
1019 jne .L169
1020 .L168:
1021 movl $-1, %eax
1022 jmp .L161
1023 .p2align 4,,10
1024 .p2align 3
1025 .L171:
1026 cmpq $0, 72(%rbx)
1027 je .L172
1028 movq %rbx, %rdi
1029 call _IO_free_backup_area
1030 jmp .L172
1031 .p2align 4,,10
1032 .p2align 3
1033 .L190:
1034 call _IO_vtable_check
1035 jmp .L174
1036 .LFE78:
1037 .size __underflow, .-__underflow
1038 .p2align 4,,15
1039 .globl __uflow
1040 .hidden __uflow
1041 .type __uflow, @function
1042 __uflow:
1043 .LFB79:
1044 movl 192(%rdi), %eax
1045 testl %eax, %eax
1046 jne .L192
1047 movl $-1, 192(%rdi)
1048 .L193:
1049 pushq %rbp
1050 pushq %rbx
1051 movq %rdi, %rbx
1052 subq $8, %rsp
1053 testl $2048, (%rdi)
1054 jne .L195
1055 .L199:
1056 movq 8(%rbx), %rax
1057 movq 16(%rbx), %rdx
1058 cmpq %rdx, %rax
1059 jb .L201
1060 movl (%rbx), %eax
1061 testb $1, %ah
1062 jne .L219
1063 cmpq $0, 96(%rbx)
1064 je .L202
1065 .L222:
1066 movq 16(%rbx), %rsi
1067 movq %rbx, %rdi
1068 call save_for_backup
1069 testl %eax, %eax
1070 jne .L198
1071 .L203:
1072 movq 216(%rbx), %rbp
1073 movq __start___libc_IO_vtables@GOTPCREL(%rip), %rdx
1074 movq __stop___libc_IO_vtables@GOTPCREL(%rip), %rax
1075 movq %rbp, %rsi
1076 subq %rdx, %rax
1077 subq %rdx, %rsi
1078 cmpq %rsi, %rax
1079 jbe .L220
1080 .L205:
1081 movq 40(%rbp), %rax
1082 addq $8, %rsp
1083 movq %rbx, %rdi
1084 popq %rbx
1085 popq %rbp
1086 jmp *%rax
1087 .p2align 4,,10
1088 .p2align 3
1089 .L219:
1090 andb $-2, %ah
1091 movq 88(%rbx), %rcx
1092 movq %rdx, 88(%rbx)
1093 movl %eax, (%rbx)
1094 movq 72(%rbx), %rax
1095 movq 24(%rbx), %rdx
1096 movq %rcx, 16(%rbx)
1097 cmpq %rax, %rcx
1098 movq %rax, 24(%rbx)
1099 movq %rdx, 72(%rbx)
1100 jbe .L221
1101 .L201:
1102 leaq 1(%rax), %rdx
1103 movq %rdx, 8(%rbx)
1104 movzbl (%rax), %eax
1105 .L191:
1106 addq $8, %rsp
1107 popq %rbx
1108 popq %rbp
1110 .p2align 4,,10
1111 .p2align 3
1112 .L192:
1113 cmpl $-1, %eax
1114 je .L193
1115 movl $-1, %eax
1117 .p2align 4,,10
1118 .p2align 3
1119 .L195:
1120 call _IO_switch_to_get_mode
1121 cmpl $-1, %eax
1122 jne .L199
1123 .L198:
1124 movl $-1, %eax
1125 jmp .L191
1126 .p2align 4,,10
1127 .p2align 3
1128 .L221:
1129 cmpq $0, 96(%rbx)
1130 movq %rax, 8(%rbx)
1131 jne .L222
1132 .L202:
1133 cmpq $0, 72(%rbx)
1134 je .L203
1135 movq %rbx, %rdi
1136 call _IO_free_backup_area
1137 jmp .L203
1138 .p2align 4,,10
1139 .p2align 3
1140 .L220:
1141 call _IO_vtable_check
1142 jmp .L205
1143 .LFE79:
1144 .size __uflow, .-__uflow
1145 .p2align 4,,15
1146 .globl _IO_setb
1147 .hidden _IO_setb
1148 .type _IO_setb, @function
1149 _IO_setb:
1150 .LFB80:
1151 pushq %rbx
1152 movq %rdi, %rbx
1153 subq $32, %rsp
1154 movq 56(%rdi), %rdi
1155 movl (%rbx), %eax
1156 testq %rdi, %rdi
1157 je .L224
1158 testb $1, %al
1159 je .L231
1160 .L224:
1161 movq %rdx, 64(%rbx)
1162 movl %eax, %edx
1163 andl $-2, %eax
1164 orl $1, %edx
1165 testl %ecx, %ecx
1166 movq %rsi, 56(%rbx)
1167 cmove %edx, %eax
1168 movl %eax, (%rbx)
1169 addq $32, %rsp
1170 popq %rbx
1172 .p2align 4,,10
1173 .p2align 3
1174 .L231:
1175 movl %ecx, 28(%rsp)
1176 movq %rdx, 16(%rsp)
1177 movq %rsi, 8(%rsp)
1178 call free@PLT
1179 movl (%rbx), %eax
1180 movl 28(%rsp), %ecx
1181 movq 16(%rsp), %rdx
1182 movq 8(%rsp), %rsi
1183 jmp .L224
1184 .LFE80:
1185 .size _IO_setb, .-_IO_setb
1186 .p2align 4,,15
1187 .globl _IO_doallocbuf
1188 .hidden _IO_doallocbuf
1189 .type _IO_doallocbuf, @function
1190 _IO_doallocbuf:
1191 .LFB81:
1192 cmpq $0, 56(%rdi)
1193 je .L250
1194 rep ret
1195 .p2align 4,,10
1196 .p2align 3
1197 .L250:
1198 pushq %r12
1199 pushq %rbp
1200 pushq %rbx
1201 movl (%rdi), %eax
1202 movq %rdi, %rbx
1203 testb $2, %al
1204 je .L235
1205 movl 192(%rdi), %edx
1206 testl %edx, %edx
1207 jg .L235
1208 leaq 132(%rdi), %r12
1209 leaq 131(%rdi), %rbp
1210 .L239:
1211 orl $1, %eax
1212 movq %rbp, 56(%rbx)
1213 movq %r12, 64(%rbx)
1214 movl %eax, (%rbx)
1215 .L232:
1216 popq %rbx
1217 popq %rbp
1218 popq %r12
1220 .p2align 4,,10
1221 .p2align 3
1222 .L235:
1223 movq 216(%rbx), %rbp
1224 movq __start___libc_IO_vtables@GOTPCREL(%rip), %rdx
1225 movq __stop___libc_IO_vtables@GOTPCREL(%rip), %rax
1226 movq %rbp, %rcx
1227 subq %rdx, %rax
1228 subq %rdx, %rcx
1229 cmpq %rcx, %rax
1230 jbe .L251
1231 .L237:
1232 movq %rbx, %rdi
1233 call *104(%rbp)
1234 cmpl $-1, %eax
1235 jne .L232
1236 movq 56(%rbx), %rdi
1237 leaq 132(%rbx), %r12
1238 leaq 131(%rbx), %rbp
1239 movl (%rbx), %eax
1240 testq %rdi, %rdi
1241 je .L239
1242 testb $1, %al
1243 jne .L239
1244 call free@PLT
1245 movl (%rbx), %eax
1246 jmp .L239
1247 .p2align 4,,10
1248 .p2align 3
1249 .L251:
1250 call _IO_vtable_check
1251 jmp .L237
1252 .LFE81:
1253 .size _IO_doallocbuf, .-_IO_doallocbuf
1254 .p2align 4,,15
1255 .globl _IO_default_underflow
1256 .type _IO_default_underflow, @function
1257 _IO_default_underflow:
1258 .LFB82:
1259 movl $-1, %eax
1261 .LFE82:
1262 .size _IO_default_underflow, .-_IO_default_underflow
1263 .p2align 4,,15
1264 .globl _IO_default_uflow
1265 .hidden _IO_default_uflow
1266 .type _IO_default_uflow, @function
1267 _IO_default_uflow:
1268 .LFB83:
1269 pushq %rbp
1270 pushq %rbx
1271 movq %rdi, %rbx
1272 subq $8, %rsp
1273 movq 216(%rdi), %rbp
1274 movq __start___libc_IO_vtables@GOTPCREL(%rip), %rdx
1275 movq __stop___libc_IO_vtables@GOTPCREL(%rip), %rax
1276 movq %rbp, %rcx
1277 subq %rdx, %rax
1278 subq %rdx, %rcx
1279 cmpq %rcx, %rax
1280 jbe .L260
1281 .L254:
1282 movq %rbx, %rdi
1283 call *32(%rbp)
1284 cmpl $-1, %eax
1285 je .L253
1286 movq 8(%rbx), %rax
1287 leaq 1(%rax), %rdx
1288 movq %rdx, 8(%rbx)
1289 movzbl (%rax), %eax
1290 .L253:
1291 addq $8, %rsp
1292 popq %rbx
1293 popq %rbp
1295 .p2align 4,,10
1296 .p2align 3
1297 .L260:
1298 call _IO_vtable_check
1299 jmp .L254
1300 .LFE83:
1301 .size _IO_default_uflow, .-_IO_default_uflow
1302 .p2align 4,,15
1303 .globl _IO_default_xsputn
1304 .hidden _IO_default_xsputn
1305 .type _IO_default_xsputn, @function
1306 _IO_default_xsputn:
1307 .LFB84:
1308 testq %rdx, %rdx
1309 je .L280
1310 pushq %r15
1311 pushq %r14
1312 movq %rsi, %r14
1313 pushq %r13
1314 pushq %r12
1315 movq %rdx, %r13
1316 pushq %rbp
1317 pushq %rbx
1318 movq %rdi, %r12
1319 movq %rdx, %rbp
1320 subq $8, %rsp
1321 jmp .L270
1322 .p2align 4,,10
1323 .p2align 3
1324 .L264:
1325 testq %rbx, %rbx
1326 jne .L285
1327 .L265:
1328 subq %rbx, %rbp
1329 .L263:
1330 testq %rbp, %rbp
1331 je .L267
1332 movq 216(%r12), %rbx
1333 movq __start___libc_IO_vtables@GOTPCREL(%rip), %rdx
1334 movq __stop___libc_IO_vtables@GOTPCREL(%rip), %rax
1335 movq %rbx, %rcx
1336 subq %rdx, %rax
1337 subq %rdx, %rcx
1338 cmpq %rcx, %rax
1339 jbe .L286
1340 .L268:
1341 movzbl (%r14), %esi
1342 movq %r12, %rdi
1343 leaq 1(%r14), %r15
1344 call *24(%rbx)
1345 cmpl $-1, %eax
1346 je .L287
1347 subq $1, %rbp
1348 movq %r15, %r14
1349 .L270:
1350 movq 40(%r12), %rdi
1351 movq 48(%r12), %rbx
1352 cmpq %rbx, %rdi
1353 jnb .L263
1354 subq %rdi, %rbx
1355 cmpq %rbx, %rbp
1356 cmovbe %rbp, %rbx
1357 cmpq $20, %rbx
1358 jbe .L264
1359 movq %r14, %rsi
1360 movq %rbx, %rdx
1361 addq %rbx, %r14
1362 call __mempcpy@PLT
1363 movq %rax, 40(%r12)
1364 jmp .L265
1365 .p2align 4,,10
1366 .p2align 3
1367 .L287:
1368 subq %rbp, %r13
1369 .L267:
1370 addq $8, %rsp
1371 movq %r13, %rax
1372 popq %rbx
1373 popq %rbp
1374 popq %r12
1375 popq %r13
1376 popq %r14
1377 popq %r15
1379 .p2align 4,,10
1380 .p2align 3
1381 .L280:
1382 xorl %eax, %eax
1384 .p2align 4,,10
1385 .p2align 3
1386 .L285:
1387 xorl %eax, %eax
1388 .p2align 4,,10
1389 .p2align 3
1390 .L266:
1391 movzbl (%r14,%rax), %edx
1392 movb %dl, (%rdi,%rax)
1393 addq $1, %rax
1394 cmpq %rax, %rbx
1395 jne .L266
1396 addq %rbx, %rdi
1397 addq %rbx, %r14
1398 movq %rdi, 40(%r12)
1399 jmp .L265
1400 .p2align 4,,10
1401 .p2align 3
1402 .L286:
1403 call _IO_vtable_check
1404 jmp .L268
1405 .LFE84:
1406 .size _IO_default_xsputn, .-_IO_default_xsputn
1407 .p2align 4,,15
1408 .globl _IO_sgetn
1409 .hidden _IO_sgetn
1410 .type _IO_sgetn, @function
1411 _IO_sgetn:
1412 .LFB85:
1413 pushq %rbx
1414 subq $32, %rsp
1415 movq 216(%rdi), %rbx
1416 movq __start___libc_IO_vtables@GOTPCREL(%rip), %rcx
1417 movq __stop___libc_IO_vtables@GOTPCREL(%rip), %rax
1418 movq %rbx, %r8
1419 subq %rcx, %rax
1420 subq %rcx, %r8
1421 cmpq %r8, %rax
1422 jbe .L291
1423 movq 64(%rbx), %rax
1424 addq $32, %rsp
1425 popq %rbx
1426 jmp *%rax
1427 .p2align 4,,10
1428 .p2align 3
1429 .L291:
1430 movq %rdx, 24(%rsp)
1431 movq %rsi, 16(%rsp)
1432 movq %rdi, 8(%rsp)
1433 call _IO_vtable_check
1434 movq 64(%rbx), %rax
1435 movq 24(%rsp), %rdx
1436 movq 16(%rsp), %rsi
1437 movq 8(%rsp), %rdi
1438 addq $32, %rsp
1439 popq %rbx
1440 jmp *%rax
1441 .LFE85:
1442 .size _IO_sgetn, .-_IO_sgetn
1443 .p2align 4,,15
1444 .globl _IO_default_xsgetn
1445 .hidden _IO_default_xsgetn
1446 .type _IO_default_xsgetn, @function
1447 _IO_default_xsgetn:
1448 .LFB86:
1449 pushq %r14
1450 movq %rdx, %r14
1451 pushq %r13
1452 movq %rdi, %r13
1453 pushq %r12
1454 movq %rdx, %r12
1455 pushq %rbp
1456 movq %rsi, %rbp
1457 pushq %rbx
1458 jmp .L298
1459 .p2align 4,,10
1460 .p2align 3
1461 .L294:
1462 testq %rax, %rax
1463 jne .L308
1464 .L295:
1465 subq %rbx, %r14
1466 .L293:
1467 testq %r14, %r14
1468 je .L297
1469 movq %r13, %rdi
1470 call __underflow
1471 cmpl $-1, %eax
1472 je .L309
1473 .L298:
1474 movq 8(%r13), %rsi
1475 movq 16(%r13), %rax
1476 cmpq %rax, %rsi
1477 jnb .L293
1478 subq %rsi, %rax
1479 cmpq %rax, %r14
1480 cmovbe %r14, %rax
1481 cmpq $20, %rax
1482 movq %rax, %rbx
1483 jbe .L294
1484 movq %rbp, %rdi
1485 movq %rax, %rdx
1486 call __mempcpy@PLT
1487 addq %rbx, 8(%r13)
1488 movq %rax, %rbp
1489 jmp .L295
1490 .p2align 4,,10
1491 .p2align 3
1492 .L309:
1493 subq %r14, %r12
1494 .L297:
1495 popq %rbx
1496 movq %r12, %rax
1497 popq %rbp
1498 popq %r12
1499 popq %r13
1500 popq %r14
1502 .p2align 4,,10
1503 .p2align 3
1504 .L308:
1505 leal -1(%rax), %ecx
1506 xorl %eax, %eax
1507 addq $1, %rcx
1508 .p2align 4,,10
1509 .p2align 3
1510 .L296:
1511 movzbl (%rsi,%rax), %edx
1512 movb %dl, 0(%rbp,%rax)
1513 addq $1, %rax
1514 cmpq %rcx, %rax
1515 jne .L296
1516 addq %rax, %rsi
1517 addq %rax, %rbp
1518 movq %rsi, 8(%r13)
1519 jmp .L295
1520 .LFE86:
1521 .size _IO_default_xsgetn, .-_IO_default_xsgetn
1522 .p2align 4,,15
1523 .globl _IO_default_setbuf
1524 .type _IO_default_setbuf, @function
1525 _IO_default_setbuf:
1526 .LFB87:
1527 pushq %r13
1528 pushq %r12
1529 movq %rsi, %r13
1530 pushq %rbp
1531 pushq %rbx
1532 movq %rdx, %rbp
1533 movq %rdi, %rbx
1534 subq $8, %rsp
1535 movq 216(%rdi), %r12
1536 movq __start___libc_IO_vtables@GOTPCREL(%rip), %rdx
1537 movq __stop___libc_IO_vtables@GOTPCREL(%rip), %rax
1538 movq %r12, %rcx
1539 subq %rdx, %rax
1540 subq %rdx, %rcx
1541 cmpq %rcx, %rax
1542 jbe .L327
1543 .L311:
1544 movq %rbx, %rdi
1545 call *96(%r12)
1546 cmpl $-1, %eax
1547 je .L318
1548 movl (%rbx), %eax
1549 testq %r13, %r13
1550 movq 56(%rbx), %rdi
1551 movl %eax, %edx
1552 je .L319
1553 testq %rbp, %rbp
1554 je .L319
1555 andl $-3, %edx
1556 addq %r13, %rbp
1557 testq %rdi, %rdi
1558 movl %edx, (%rbx)
1559 je .L317
1560 testb $1, %al
1561 je .L328
1562 .L317:
1563 orl $1, %edx
1564 movq %r13, 56(%rbx)
1565 movq %rbp, 64(%rbx)
1566 movl %edx, (%rbx)
1567 .L316:
1568 movq $0, 48(%rbx)
1569 movq $0, 40(%rbx)
1570 movq %rbx, %rax
1571 movq $0, 32(%rbx)
1572 movq $0, 16(%rbx)
1573 movq $0, 8(%rbx)
1574 movq $0, 24(%rbx)
1575 .L310:
1576 addq $8, %rsp
1577 popq %rbx
1578 popq %rbp
1579 popq %r12
1580 popq %r13
1582 .p2align 4,,10
1583 .p2align 3
1584 .L319:
1585 orl $2, %edx
1586 testq %rdi, %rdi
1587 leaq 132(%rbx), %rbp
1588 movl %edx, (%rbx)
1589 leaq 131(%rbx), %r12
1590 je .L315
1591 testb $1, %al
1592 je .L329
1593 .L315:
1594 orl $1, %edx
1595 movq %r12, 56(%rbx)
1596 movq %rbp, 64(%rbx)
1597 movl %edx, (%rbx)
1598 jmp .L316
1599 .p2align 4,,10
1600 .p2align 3
1601 .L328:
1602 call free@PLT
1603 movl (%rbx), %edx
1604 jmp .L317
1605 .p2align 4,,10
1606 .p2align 3
1607 .L329:
1608 call free@PLT
1609 movl (%rbx), %edx
1610 jmp .L315
1611 .p2align 4,,10
1612 .p2align 3
1613 .L327:
1614 call _IO_vtable_check
1615 jmp .L311
1616 .p2align 4,,10
1617 .p2align 3
1618 .L318:
1619 xorl %eax, %eax
1620 jmp .L310
1621 .LFE87:
1622 .size _IO_default_setbuf, .-_IO_default_setbuf
1623 .p2align 4,,15
1624 .globl _IO_default_seekpos
1625 .type _IO_default_seekpos, @function
1626 _IO_default_seekpos:
1627 .LFB88:
1628 pushq %rbx
1629 subq $32, %rsp
1630 movq 216(%rdi), %rbx
1631 movq __start___libc_IO_vtables@GOTPCREL(%rip), %r8
1632 movq __stop___libc_IO_vtables@GOTPCREL(%rip), %rax
1633 movq %rbx, %rcx
1634 subq %r8, %rax
1635 subq %r8, %rcx
1636 cmpq %rcx, %rax
1637 jbe .L333
1638 movq 72(%rbx), %rax
1639 addq $32, %rsp
1640 movl %edx, %ecx
1641 popq %rbx
1642 xorl %edx, %edx
1643 jmp *%rax
1644 .p2align 4,,10
1645 .p2align 3
1646 .L333:
1647 movl %edx, 28(%rsp)
1648 movq %rsi, 16(%rsp)
1649 movq %rdi, 8(%rsp)
1650 call _IO_vtable_check
1651 movl 28(%rsp), %edx
1652 movq 72(%rbx), %rax
1653 movq 16(%rsp), %rsi
1654 movq 8(%rsp), %rdi
1655 addq $32, %rsp
1656 popq %rbx
1657 movl %edx, %ecx
1658 xorl %edx, %edx
1659 jmp *%rax
1660 .LFE88:
1661 .size _IO_default_seekpos, .-_IO_default_seekpos
1662 .p2align 4,,15
1663 .globl _IO_default_doallocate
1664 .hidden _IO_default_doallocate
1665 .type _IO_default_doallocate, @function
1666 _IO_default_doallocate:
1667 .LFB89:
1668 pushq %r12
1669 pushq %rbp
1670 pushq %rbx
1671 movq %rdi, %rbx
1672 movl $8192, %edi
1673 call malloc@PLT
1674 movq %rax, %rbp
1675 movl $-1, %eax
1676 testq %rbp, %rbp
1677 je .L334
1678 movq 56(%rbx), %rdi
1679 leaq 8192(%rbp), %r12
1680 movl (%rbx), %edx
1681 testq %rdi, %rdi
1682 je .L336
1683 testb $1, %dl
1684 je .L344
1685 .L336:
1686 andl $-2, %edx
1687 movq %rbp, 56(%rbx)
1688 movq %r12, 64(%rbx)
1689 movl %edx, (%rbx)
1690 movl $1, %eax
1691 .L334:
1692 popq %rbx
1693 popq %rbp
1694 popq %r12
1696 .p2align 4,,10
1697 .p2align 3
1698 .L344:
1699 call free@PLT
1700 movl (%rbx), %edx
1701 jmp .L336
1702 .LFE89:
1703 .size _IO_default_doallocate, .-_IO_default_doallocate
1704 .p2align 4,,15
1705 .globl _IO_enable_locks
1706 .hidden _IO_enable_locks
1707 .type _IO_enable_locks, @function
1708 _IO_enable_locks:
1709 .LFB92:
1710 movl stdio_needs_locking(%rip), %eax
1711 testl %eax, %eax
1712 jne .L345
1713 movq _IO_list_all(%rip), %rax
1714 movl $1, stdio_needs_locking(%rip)
1715 testq %rax, %rax
1716 je .L345
1717 .p2align 4,,10
1718 .p2align 3
1719 .L347:
1720 orl $128, 116(%rax)
1721 movq 104(%rax), %rax
1722 testq %rax, %rax
1723 jne .L347
1724 .L345:
1725 rep ret
1726 .LFE92:
1727 .size _IO_enable_locks, .-_IO_enable_locks
1728 .p2align 4,,15
1729 .globl _IO_old_init
1730 .type _IO_old_init, @function
1731 _IO_old_init:
1732 .LFB93:
1733 movl stdio_needs_locking(%rip), %edx
1734 orl $-72548352, %esi
1735 movl $0, 116(%rdi)
1736 movl %esi, (%rdi)
1737 testl %edx, %edx
1738 je .L353
1739 movl $128, 116(%rdi)
1740 .L353:
1741 xorl %eax, %eax
1742 movq $0, 56(%rdi)
1743 movq $0, 64(%rdi)
1744 movw %ax, 128(%rdi)
1745 movq 136(%rdi), %rax
1746 movq $0, 24(%rdi)
1747 movq $0, 8(%rdi)
1748 movq $0, 16(%rdi)
1749 movq $0, 32(%rdi)
1750 testq %rax, %rax
1751 movq $0, 40(%rdi)
1752 movq $0, 48(%rdi)
1753 movq $0, 104(%rdi)
1754 movq $0, 72(%rdi)
1755 movq $0, 80(%rdi)
1756 movq $0, 88(%rdi)
1757 movq $0, 96(%rdi)
1758 je .L352
1759 movq $0, (%rax)
1760 movq $0, 8(%rax)
1761 .L352:
1762 rep ret
1763 .LFE93:
1764 .size _IO_old_init, .-_IO_old_init
1765 .p2align 4,,15
1766 .globl _IO_init_internal
1767 .hidden _IO_init_internal
1768 .type _IO_init_internal, @function
1769 _IO_init_internal:
1770 .LFB90:
1771 call _IO_old_init
1772 movl $-1, 192(%rdi)
1773 movq $-1, 160(%rdi)
1774 movq $0, 168(%rdi)
1776 .LFE90:
1777 .size _IO_init_internal, .-_IO_init_internal
1778 .p2align 4,,15
1779 .globl _IO_init
1780 .type _IO_init, @function
1781 _IO_init:
1782 .LFB91:
1783 call _IO_old_init
1784 movl $-1, 192(%rdi)
1785 movq $-1, 160(%rdi)
1786 movq $0, 168(%rdi)
1788 .LFE91:
1789 .size _IO_init, .-_IO_init
1790 .p2align 4,,15
1791 .globl _IO_no_init
1792 .type _IO_no_init, @function
1793 _IO_no_init:
1794 .LFB94:
1795 movl %edx, %r10d
1796 movq %rdi, %r9
1797 call _IO_old_init
1798 testl %r10d, %r10d
1799 movl %r10d, 192(%rdi)
1800 js .L361
1801 movq %rcx, 160(%rdi)
1802 movq $0, 48(%rcx)
1803 movq $0, 56(%rcx)
1804 movq $0, 16(%rcx)
1805 movq $0, (%rcx)
1806 movq $0, 8(%rcx)
1807 movq $0, 24(%rcx)
1808 movq $0, 32(%rcx)
1809 movq $0, 40(%rcx)
1810 movq $0, 64(%rcx)
1811 movq $0, 72(%rcx)
1812 movq $0, 80(%rcx)
1813 movq %r8, 224(%rcx)
1814 movq $0, 168(%r9)
1816 .p2align 4,,10
1817 .p2align 3
1818 .L361:
1819 movq $-1, 160(%rdi)
1820 movq $0, 168(%r9)
1822 .LFE94:
1823 .size _IO_no_init, .-_IO_no_init
1824 .p2align 4,,15
1825 .globl _IO_default_sync
1826 .type _IO_default_sync, @function
1827 _IO_default_sync:
1828 .LFB95:
1829 xorl %eax, %eax
1831 .LFE95:
1832 .size _IO_default_sync, .-_IO_default_sync
1833 .p2align 4,,15
1834 .globl _IO_default_finish
1835 .hidden _IO_default_finish
1836 .type _IO_default_finish, @function
1837 _IO_default_finish:
1838 .LFB96:
1839 pushq %rbx
1840 movq %rdi, %rbx
1841 movq 56(%rdi), %rdi
1842 testq %rdi, %rdi
1843 je .L365
1844 testb $1, (%rbx)
1845 je .L381
1846 .L365:
1847 movq 96(%rbx), %rax
1848 testq %rax, %rax
1849 je .L366
1850 .p2align 4,,10
1851 .p2align 3
1852 .L367:
1853 movq $0, 8(%rax)
1854 movq (%rax), %rax
1855 testq %rax, %rax
1856 jne .L367
1857 .L366:
1858 movq 72(%rbx), %rdi
1859 testq %rdi, %rdi
1860 je .L368
1861 call free@PLT
1862 movq $0, 72(%rbx)
1863 .L368:
1864 testb $-128, (%rbx)
1865 jne .L382
1866 popq %rbx
1868 .p2align 4,,10
1869 .p2align 3
1870 .L381:
1871 call free@PLT
1872 movq $0, 64(%rbx)
1873 movq $0, 56(%rbx)
1874 jmp .L365
1875 .p2align 4,,10
1876 .p2align 3
1877 .L382:
1878 movq %rbx, %rdi
1879 popq %rbx
1880 jmp _IO_un_link.part.2
1881 .LFE96:
1882 .size _IO_default_finish, .-_IO_default_finish
1883 .p2align 4,,15
1884 .globl _IO_default_seekoff
1885 .type _IO_default_seekoff, @function
1886 _IO_default_seekoff:
1887 .LFB97:
1888 movq $-1, %rax
1890 .LFE97:
1891 .size _IO_default_seekoff, .-_IO_default_seekoff
1892 .p2align 4,,15
1893 .globl _IO_sputbackc
1894 .hidden _IO_sputbackc
1895 .type _IO_sputbackc, @function
1896 _IO_sputbackc:
1897 .LFB98:
1898 pushq %rbp
1899 pushq %rbx
1900 movq %rdi, %rbx
1901 subq $24, %rsp
1902 movq 8(%rdi), %rax
1903 cmpq 24(%rdi), %rax
1904 jbe .L385
1905 cmpb %sil, -1(%rax)
1906 je .L393
1907 .L385:
1908 movq 216(%rbx), %rbp
1909 movq __start___libc_IO_vtables@GOTPCREL(%rip), %rdx
1910 movq __stop___libc_IO_vtables@GOTPCREL(%rip), %rax
1911 movq %rbp, %rcx
1912 subq %rdx, %rax
1913 subq %rdx, %rcx
1914 cmpq %rcx, %rax
1915 jbe .L394
1916 .L387:
1917 movq %rbx, %rdi
1918 call *48(%rbp)
1919 cmpl $-1, %eax
1920 je .L384
1921 .L386:
1922 andl $-17, (%rbx)
1923 .L384:
1924 addq $24, %rsp
1925 popq %rbx
1926 popq %rbp
1928 .p2align 4,,10
1929 .p2align 3
1930 .L393:
1931 subq $1, %rax
1932 movq %rax, 8(%rdi)
1933 movzbl %sil, %eax
1934 jmp .L386
1935 .p2align 4,,10
1936 .p2align 3
1937 .L394:
1938 movl %esi, 12(%rsp)
1939 call _IO_vtable_check
1940 movl 12(%rsp), %esi
1941 jmp .L387
1942 .LFE98:
1943 .size _IO_sputbackc, .-_IO_sputbackc
1944 .p2align 4,,15
1945 .globl _IO_sungetc
1946 .type _IO_sungetc, @function
1947 _IO_sungetc:
1948 .LFB99:
1949 pushq %rbp
1950 pushq %rbx
1951 movq %rdi, %rbx
1952 subq $8, %rsp
1953 movq 8(%rdi), %rax
1954 cmpq 24(%rdi), %rax
1955 jbe .L396
1956 leaq -1(%rax), %rdx
1957 movq %rdx, 8(%rdi)
1958 movzbl -1(%rax), %eax
1959 .L397:
1960 andl $-17, (%rbx)
1961 addq $8, %rsp
1962 popq %rbx
1963 popq %rbp
1965 .p2align 4,,10
1966 .p2align 3
1967 .L396:
1968 movq 216(%rdi), %rbp
1969 movq __start___libc_IO_vtables@GOTPCREL(%rip), %rdx
1970 movq __stop___libc_IO_vtables@GOTPCREL(%rip), %rax
1971 movq %rbp, %rcx
1972 subq %rdx, %rax
1973 subq %rdx, %rcx
1974 cmpq %rcx, %rax
1975 jbe .L405
1976 .L398:
1977 movl $-1, %esi
1978 movq %rbx, %rdi
1979 call *48(%rbp)
1980 cmpl $-1, %eax
1981 jne .L397
1982 addq $8, %rsp
1983 popq %rbx
1984 popq %rbp
1986 .p2align 4,,10
1987 .p2align 3
1988 .L405:
1989 call _IO_vtable_check
1990 jmp .L398
1991 .LFE99:
1992 .size _IO_sungetc, .-_IO_sungetc
1993 .p2align 4,,15
1994 .globl _IO_adjust_column
1995 .hidden _IO_adjust_column
1996 .type _IO_adjust_column, @function
1997 _IO_adjust_column:
1998 .LFB100:
1999 movslq %edx, %r8
2000 addq %rsi, %r8
2001 cmpq %r8, %rsi
2002 jnb .L407
2003 cmpb $10, -1(%r8)
2004 leaq -1(%r8), %rcx
2005 jne .L409
2006 jmp .L408
2007 .p2align 4,,10
2008 .p2align 3
2009 .L411:
2010 subq $1, %rcx
2011 cmpb $10, (%rcx)
2012 je .L408
2013 .L409:
2014 cmpq %rcx, %rsi
2015 jne .L411
2016 .L407:
2017 leal (%rdx,%rdi), %eax
2019 .p2align 4,,10
2020 .p2align 3
2021 .L408:
2022 subq %rcx, %r8
2023 leal -1(%r8), %eax
2025 .LFE100:
2026 .size _IO_adjust_column, .-_IO_adjust_column
2027 .p2align 4,,15
2028 .globl _IO_flush_all_lockp
2029 .type _IO_flush_all_lockp, @function
2030 _IO_flush_all_lockp:
2031 .LFB101:
2032 pushq %r15
2033 pushq %r14
2034 pushq %r13
2035 pushq %r12
2036 pushq %rbp
2037 pushq %rbx
2038 movl %edi, %ebp
2039 subq $40, %rsp
2040 movq _pthread_cleanup_push_defer@GOTPCREL(%rip), %r13
2041 testq %r13, %r13
2042 je .L414
2043 leaq flush_cleanup(%rip), %rsi
2044 movq %rsp, %rdi
2045 xorl %edx, %edx
2046 call _pthread_cleanup_push_defer@PLT
2047 .L415:
2048 movq %fs:16, %rbx
2049 cmpq %rbx, 8+list_all_lock(%rip)
2050 je .L416
2051 #APP
2052 # 692 "genops.c" 1
2053 movl %fs:24,%eax
2054 # 0 "" 2
2055 #NO_APP
2056 testl %eax, %eax
2057 jne .L417
2058 movl $1, %edx
2059 #APP
2060 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
2061 cmpxchgl %edx, list_all_lock(%rip)
2062 # 0 "" 2
2063 #NO_APP
2064 .L418:
2065 movq %rbx, 8+list_all_lock(%rip)
2066 .L416:
2067 movl 4+list_all_lock(%rip), %eax
2068 movq _IO_list_all(%rip), %rbx
2069 xorl %r12d, %r12d
2070 addl $1, %eax
2071 testq %rbx, %rbx
2072 movl %eax, 4+list_all_lock(%rip)
2073 je .L419
2074 movl $1, %r14d
2075 jmp .L432
2076 .p2align 4,,10
2077 .p2align 3
2078 .L424:
2079 movq 160(%rbx), %rax
2080 movq 24(%rax), %rsi
2081 cmpq %rsi, 32(%rax)
2082 jbe .L426
2083 .L425:
2084 movq 216(%rbx), %r15
2085 movq __start___libc_IO_vtables@GOTPCREL(%rip), %rdx
2086 movq __stop___libc_IO_vtables@GOTPCREL(%rip), %rax
2087 movq %r15, %rcx
2088 subq %rdx, %rax
2089 subq %rdx, %rcx
2090 cmpq %rcx, %rax
2091 jbe .L448
2092 .L427:
2093 movl $-1, %esi
2094 movq %rbx, %rdi
2095 call *24(%r15)
2096 cmpl $-1, %eax
2097 movl $-1, %eax
2098 cmove %eax, %r12d
2099 .L426:
2100 testl %ebp, %ebp
2101 je .L429
2102 testl $32768, (%rbx)
2103 jne .L429
2104 movq 136(%rbx), %rdi
2105 movl 4(%rdi), %eax
2106 subl $1, %eax
2107 testl %eax, %eax
2108 movl %eax, 4(%rdi)
2109 jne .L429
2110 movq $0, 8(%rdi)
2111 #APP
2112 # 710 "genops.c" 1
2113 movl %fs:24,%edx
2114 # 0 "" 2
2115 #NO_APP
2116 testl %edx, %edx
2117 jne .L431
2118 subl $1, (%rdi)
2119 .p2align 4,,10
2120 .p2align 3
2121 .L429:
2122 movq 104(%rbx), %rbx
2123 movq $0, run_fp(%rip)
2124 testq %rbx, %rbx
2125 je .L449
2126 .L432:
2127 testl %ebp, %ebp
2128 movq %rbx, run_fp(%rip)
2129 je .L420
2130 movl (%rbx), %edx
2131 andl $32768, %edx
2132 jne .L420
2133 movq 136(%rbx), %rdi
2134 movq %fs:16, %r15
2135 cmpq %r15, 8(%rdi)
2136 je .L421
2137 #APP
2138 # 699 "genops.c" 1
2139 movl %fs:24,%eax
2140 # 0 "" 2
2141 #NO_APP
2142 testl %eax, %eax
2143 jne .L422
2144 #APP
2145 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
2146 cmpxchgl %r14d, (%rdi)
2147 # 0 "" 2
2148 #NO_APP
2149 .L423:
2150 movq 136(%rbx), %rdi
2151 movq %r15, 8(%rdi)
2152 .L421:
2153 addl $1, 4(%rdi)
2154 .L420:
2155 movl 192(%rbx), %eax
2156 testl %eax, %eax
2157 jg .L424
2158 movq 32(%rbx), %rax
2159 cmpq %rax, 40(%rbx)
2160 ja .L425
2161 jmp .L426
2162 .p2align 4,,10
2163 .p2align 3
2164 .L449:
2165 movl 4+list_all_lock(%rip), %eax
2166 .L419:
2167 subl $1, %eax
2168 testl %eax, %eax
2169 movl %eax, 4+list_all_lock(%rip)
2170 jne .L434
2171 movq $0, 8+list_all_lock(%rip)
2172 #APP
2173 # 715 "genops.c" 1
2174 movl %fs:24,%edx
2175 # 0 "" 2
2176 #NO_APP
2177 testl %edx, %edx
2178 jne .L435
2179 subl $1, list_all_lock(%rip)
2180 .L434:
2181 testq %r13, %r13
2182 je .L413
2183 movq %rsp, %rdi
2184 xorl %esi, %esi
2185 call _pthread_cleanup_pop_restore@PLT
2186 .L413:
2187 addq $40, %rsp
2188 movl %r12d, %eax
2189 popq %rbx
2190 popq %rbp
2191 popq %r12
2192 popq %r13
2193 popq %r14
2194 popq %r15
2196 .p2align 4,,10
2197 .p2align 3
2198 .L414:
2199 leaq flush_cleanup(%rip), %rax
2200 movq $0, 8(%rsp)
2201 movq %rax, (%rsp)
2202 jmp .L415
2203 .p2align 4,,10
2204 .p2align 3
2205 .L448:
2206 call _IO_vtable_check
2207 jmp .L427
2208 .L435:
2209 #APP
2210 # 715 "genops.c" 1
2211 xchgl %eax, list_all_lock(%rip)
2212 # 0 "" 2
2213 #NO_APP
2214 cmpl $1, %eax
2215 jle .L434
2216 xorl %r10d, %r10d
2217 movl $1, %edx
2218 movl $129, %esi
2219 leaq list_all_lock(%rip), %rdi
2220 movl $202, %eax
2221 #APP
2222 # 715 "genops.c" 1
2223 syscall
2225 # 0 "" 2
2226 #NO_APP
2227 jmp .L434
2228 .p2align 4,,10
2229 .p2align 3
2230 .L422:
2231 movl %edx, %eax
2232 lock cmpxchgl %r14d, (%rdi)
2233 je .L423
2234 call __lll_lock_wait_private
2235 jmp .L423
2236 .p2align 4,,10
2237 .p2align 3
2238 .L431:
2239 #APP
2240 # 710 "genops.c" 1
2241 xchgl %eax, (%rdi)
2242 # 0 "" 2
2243 #NO_APP
2244 cmpl $1, %eax
2245 jle .L429
2246 xorl %r10d, %r10d
2247 movl $1, %edx
2248 movl $129, %esi
2249 movl $202, %eax
2250 #APP
2251 # 710 "genops.c" 1
2252 syscall
2254 # 0 "" 2
2255 #NO_APP
2256 jmp .L429
2257 .p2align 4,,10
2258 .p2align 3
2259 .L417:
2260 xorl %eax, %eax
2261 movl $1, %edx
2262 lock cmpxchgl %edx, list_all_lock(%rip)
2263 je .L418
2264 leaq list_all_lock(%rip), %rdi
2265 call __lll_lock_wait_private
2266 jmp .L418
2267 .LFE101:
2268 .size _IO_flush_all_lockp, .-_IO_flush_all_lockp
2269 .p2align 4,,15
2270 .globl _IO_cleanup
2271 .type _IO_cleanup, @function
2272 _IO_cleanup:
2273 .LFB106:
2274 pushq %r15
2275 pushq %r14
2276 xorl %edi, %edi
2277 pushq %r13
2278 pushq %r12
2279 pushq %rbp
2280 pushq %rbx
2281 subq $40, %rsp
2282 call _IO_flush_all_lockp
2283 movq _pthread_cleanup_push_defer@GOTPCREL(%rip), %r12
2284 movl %eax, %r13d
2285 testq %r12, %r12
2286 je .L451
2287 leaq flush_cleanup(%rip), %rsi
2288 movq %rsp, %rdi
2289 xorl %edx, %edx
2290 call _pthread_cleanup_push_defer@PLT
2291 .L452:
2292 movq %fs:16, %rbx
2293 cmpq 8+list_all_lock(%rip), %rbx
2294 je .L453
2295 #APP
2296 # 787 "genops.c" 1
2297 movl %fs:24,%eax
2298 # 0 "" 2
2299 #NO_APP
2300 testl %eax, %eax
2301 jne .L454
2302 movl $1, %edx
2303 #APP
2304 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
2305 cmpxchgl %edx, list_all_lock(%rip)
2306 # 0 "" 2
2307 #NO_APP
2308 .L455:
2309 movq %rbx, 8+list_all_lock(%rip)
2310 .L453:
2311 movl 4+list_all_lock(%rip), %eax
2312 movq _IO_list_all(%rip), %rbx
2313 addl $1, %eax
2314 testq %rbx, %rbx
2315 movl %eax, 4+list_all_lock(%rip)
2316 je .L456
2317 xorl %r14d, %r14d
2318 jmp .L470
2319 .p2align 4,,10
2320 .p2align 3
2321 .L458:
2322 movl $-1, 192(%rbx)
2323 movq 104(%rbx), %rbx
2324 testq %rbx, %rbx
2325 je .L494
2326 .L470:
2327 movl (%rbx), %ebp
2328 andl $2, %ebp
2329 jne .L458
2330 movl 192(%rbx), %edx
2331 testl %edx, %edx
2332 je .L458
2333 .L465:
2334 movq 136(%rbx), %rdx
2335 testq %rdx, %rdx
2336 je .L460
2337 movq %fs:16, %rsi
2338 cmpq 8(%rdx), %rsi
2339 je .L461
2340 #APP
2341 # 807 "genops.c" 1
2342 movl %fs:24,%eax
2343 # 0 "" 2
2344 #NO_APP
2345 testl %eax, %eax
2346 movl $1, %ecx
2347 jne .L462
2348 #APP
2349 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
2350 cmpxchgl %ecx, (%rdx)
2351 # 0 "" 2
2352 #NO_APP
2353 .L463:
2354 testl %eax, %eax
2355 je .L464
2356 call __sched_yield
2357 cmpl $1, %ebp
2358 jne .L476
2359 movl $2, %ebp
2360 .L460:
2361 cmpb $0, dealloc_buffers(%rip)
2362 je .L495
2363 .L466:
2364 movq 216(%rbx), %r15
2365 movq __start___libc_IO_vtables@GOTPCREL(%rip), %rdx
2366 movq __stop___libc_IO_vtables@GOTPCREL(%rip), %rax
2367 movq %r15, %rcx
2368 subq %rdx, %rax
2369 subq %rdx, %rcx
2370 cmpq %rcx, %rax
2371 jbe .L496
2372 .L467:
2373 xorl %edx, %edx
2374 xorl %esi, %esi
2375 movq %rbx, %rdi
2376 call *88(%r15)
2377 movl 192(%rbx), %eax
2378 testl %eax, %eax
2379 jle .L468
2380 xorl %ecx, %ecx
2381 xorl %edx, %edx
2382 xorl %esi, %esi
2383 movq %rbx, %rdi
2384 call _IO_wsetb
2385 .L468:
2386 cmpl $2, %ebp
2387 je .L458
2388 movq 136(%rbx), %rdi
2389 testq %rdi, %rdi
2390 je .L458
2391 movl 4(%rdi), %eax
2392 subl $1, %eax
2393 testl %eax, %eax
2394 movl %eax, 4(%rdi)
2395 jne .L458
2396 movq $0, 8(%rdi)
2397 #APP
2398 # 831 "genops.c" 1
2399 movl %fs:24,%edx
2400 # 0 "" 2
2401 #NO_APP
2402 testl %edx, %edx
2403 jne .L469
2404 subl $1, (%rdi)
2405 jmp .L458
2406 .p2align 4,,10
2407 .p2align 3
2408 .L494:
2409 movl 4+list_all_lock(%rip), %eax
2410 .L456:
2411 subl $1, %eax
2412 testl %eax, %eax
2413 movl %eax, 4+list_all_lock(%rip)
2414 jne .L472
2415 movq $0, 8+list_all_lock(%rip)
2416 #APP
2417 # 842 "genops.c" 1
2418 movl %fs:24,%edx
2419 # 0 "" 2
2420 #NO_APP
2421 testl %edx, %edx
2422 jne .L473
2423 subl $1, list_all_lock(%rip)
2424 .L472:
2425 testq %r12, %r12
2426 je .L450
2427 movq %rsp, %rdi
2428 xorl %esi, %esi
2429 call _pthread_cleanup_pop_restore@PLT
2430 .L450:
2431 addq $40, %rsp
2432 movl %r13d, %eax
2433 popq %rbx
2434 popq %rbp
2435 popq %r12
2436 popq %r13
2437 popq %r14
2438 popq %r15
2440 .p2align 4,,10
2441 .p2align 3
2442 .L476:
2443 movl $1, %ebp
2444 jmp .L465
2445 .p2align 4,,10
2446 .p2align 3
2447 .L495:
2448 movl (%rbx), %eax
2449 testb $1, %al
2450 jne .L466
2451 orl $1, %eax
2452 movl %eax, (%rbx)
2453 movq freeres_list(%rip), %rax
2454 movq %rbx, freeres_list(%rip)
2455 movq %rax, 168(%rbx)
2456 movq 56(%rbx), %rax
2457 movq %rax, 176(%rbx)
2458 jmp .L466
2459 .p2align 4,,10
2460 .p2align 3
2461 .L451:
2462 leaq flush_cleanup(%rip), %rax
2463 movq $0, 8(%rsp)
2464 movq %rax, (%rsp)
2465 jmp .L452
2466 .L473:
2467 #APP
2468 # 842 "genops.c" 1
2469 xchgl %eax, list_all_lock(%rip)
2470 # 0 "" 2
2471 #NO_APP
2472 cmpl $1, %eax
2473 jle .L472
2474 xorl %r10d, %r10d
2475 movl $1, %edx
2476 movl $129, %esi
2477 leaq list_all_lock(%rip), %rdi
2478 movl $202, %eax
2479 #APP
2480 # 842 "genops.c" 1
2481 syscall
2483 # 0 "" 2
2484 #NO_APP
2485 jmp .L472
2486 .p2align 4,,10
2487 .p2align 3
2488 .L462:
2489 movl %r14d, %eax
2490 lock cmpxchgl %ecx, (%rdx)
2491 setne %al
2492 movzbl %al, %eax
2493 jmp .L463
2494 .p2align 4,,10
2495 .p2align 3
2496 .L496:
2497 call _IO_vtable_check
2498 jmp .L467
2499 .p2align 4,,10
2500 .p2align 3
2501 .L454:
2502 xorl %eax, %eax
2503 movl $1, %edx
2504 lock cmpxchgl %edx, list_all_lock(%rip)
2505 je .L455
2506 leaq list_all_lock(%rip), %rdi
2507 call __lll_lock_wait_private
2508 jmp .L455
2509 .p2align 4,,10
2510 .p2align 3
2511 .L461:
2512 addl $1, 4(%rdx)
2513 jmp .L460
2514 .L464:
2515 movq 136(%rbx), %rax
2516 movq %rsi, 8(%rax)
2517 movl $1, 4(%rax)
2518 jmp .L460
2519 .L469:
2520 #APP
2521 # 831 "genops.c" 1
2522 xchgl %eax, (%rdi)
2523 # 0 "" 2
2524 #NO_APP
2525 cmpl $1, %eax
2526 jle .L458
2527 xorl %r10d, %r10d
2528 movl $1, %edx
2529 movl $129, %esi
2530 movl $202, %eax
2531 #APP
2532 # 831 "genops.c" 1
2533 syscall
2535 # 0 "" 2
2536 #NO_APP
2537 jmp .L458
2538 .LFE106:
2539 .size _IO_cleanup, .-_IO_cleanup
2540 .p2align 4,,15
2541 .globl _IO_flush_all
2542 .hidden _IO_flush_all
2543 .type _IO_flush_all, @function
2544 _IO_flush_all:
2545 .LFB102:
2546 movl $1, %edi
2547 jmp _IO_flush_all_lockp
2548 .LFE102:
2549 .size _IO_flush_all, .-_IO_flush_all
2550 .p2align 4,,15
2551 .globl _IO_flush_all_linebuffered
2552 .hidden _IO_flush_all_linebuffered
2553 .type _IO_flush_all_linebuffered, @function
2554 _IO_flush_all_linebuffered:
2555 .LFB103:
2556 pushq %r13
2557 pushq %r12
2558 pushq %rbp
2559 pushq %rbx
2560 subq $40, %rsp
2561 movq _pthread_cleanup_push_defer@GOTPCREL(%rip), %rbp
2562 testq %rbp, %rbp
2563 je .L499
2564 leaq flush_cleanup(%rip), %rsi
2565 movq %rsp, %rdi
2566 xorl %edx, %edx
2567 call _pthread_cleanup_push_defer@PLT
2568 .L500:
2569 movq %fs:16, %rbx
2570 cmpq %rbx, 8+list_all_lock(%rip)
2571 je .L501
2572 #APP
2573 # 738 "genops.c" 1
2574 movl %fs:24,%eax
2575 # 0 "" 2
2576 #NO_APP
2577 testl %eax, %eax
2578 jne .L502
2579 movl $1, %edx
2580 #APP
2581 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
2582 cmpxchgl %edx, list_all_lock(%rip)
2583 # 0 "" 2
2584 #NO_APP
2585 .L503:
2586 movq %rbx, 8+list_all_lock(%rip)
2587 .L501:
2588 movl 4+list_all_lock(%rip), %eax
2589 movq _IO_list_all(%rip), %rbx
2590 addl $1, %eax
2591 testq %rbx, %rbx
2592 movl %eax, 4+list_all_lock(%rip)
2593 je .L504
2594 movl $202, %r12d
2595 jmp .L515
2596 .p2align 4,,10
2597 .p2align 3
2598 .L534:
2599 movq 136(%rbx), %rdi
2600 movq %fs:16, %r13
2601 cmpq %r13, 8(%rdi)
2602 je .L506
2603 #APP
2604 # 744 "genops.c" 1
2605 movl %fs:24,%eax
2606 # 0 "" 2
2607 #NO_APP
2608 testl %eax, %eax
2609 movl $1, %edx
2610 jne .L507
2611 #APP
2612 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
2613 cmpxchgl %edx, (%rdi)
2614 # 0 "" 2
2615 #NO_APP
2616 .L508:
2617 movq 136(%rbx), %rdi
2618 movq %r13, 8(%rdi)
2619 .L506:
2620 movl (%rbx), %eax
2621 addl $1, 4(%rdi)
2622 andl $520, %eax
2623 cmpl $512, %eax
2624 je .L521
2625 .L509:
2626 testl $32768, (%rbx)
2627 jne .L512
2628 movq 136(%rbx), %rdi
2629 movl 4(%rdi), %eax
2630 subl $1, %eax
2631 testl %eax, %eax
2632 movl %eax, 4(%rdi)
2633 jne .L512
2634 movq $0, 8(%rdi)
2635 #APP
2636 # 749 "genops.c" 1
2637 movl %fs:24,%edx
2638 # 0 "" 2
2639 #NO_APP
2640 testl %edx, %edx
2641 jne .L514
2642 subl $1, (%rdi)
2643 .L512:
2644 movq 104(%rbx), %rbx
2645 movq $0, run_fp(%rip)
2646 testq %rbx, %rbx
2647 je .L533
2648 .L515:
2649 movl (%rbx), %edx
2650 movq %rbx, run_fp(%rip)
2651 movl %edx, %ecx
2652 andl $32768, %ecx
2653 je .L534
2654 andl $520, %edx
2655 cmpl $512, %edx
2656 jne .L512
2657 .L521:
2658 movq 216(%rbx), %r13
2659 movq __start___libc_IO_vtables@GOTPCREL(%rip), %rdx
2660 movq __stop___libc_IO_vtables@GOTPCREL(%rip), %rax
2661 movq %r13, %rsi
2662 subq %rdx, %rax
2663 subq %rdx, %rsi
2664 cmpq %rsi, %rax
2665 jbe .L535
2666 .L510:
2667 movl $-1, %esi
2668 movq %rbx, %rdi
2669 call *24(%r13)
2670 jmp .L509
2671 .p2align 4,,10
2672 .p2align 3
2673 .L533:
2674 movl 4+list_all_lock(%rip), %eax
2675 .L504:
2676 subl $1, %eax
2677 testl %eax, %eax
2678 movl %eax, 4+list_all_lock(%rip)
2679 jne .L517
2680 movq $0, 8+list_all_lock(%rip)
2681 #APP
2682 # 754 "genops.c" 1
2683 movl %fs:24,%edx
2684 # 0 "" 2
2685 #NO_APP
2686 testl %edx, %edx
2687 jne .L518
2688 subl $1, list_all_lock(%rip)
2689 .L517:
2690 testq %rbp, %rbp
2691 je .L498
2692 movq %rsp, %rdi
2693 xorl %esi, %esi
2694 call _pthread_cleanup_pop_restore@PLT
2695 .L498:
2696 addq $40, %rsp
2697 popq %rbx
2698 popq %rbp
2699 popq %r12
2700 popq %r13
2702 .p2align 4,,10
2703 .p2align 3
2704 .L499:
2705 leaq flush_cleanup(%rip), %rax
2706 movq $0, 8(%rsp)
2707 movq %rax, (%rsp)
2708 jmp .L500
2709 .L518:
2710 #APP
2711 # 754 "genops.c" 1
2712 xchgl %eax, list_all_lock(%rip)
2713 # 0 "" 2
2714 #NO_APP
2715 cmpl $1, %eax
2716 jle .L517
2717 xorl %r10d, %r10d
2718 movl $1, %edx
2719 movl $129, %esi
2720 leaq list_all_lock(%rip), %rdi
2721 movl $202, %eax
2722 #APP
2723 # 754 "genops.c" 1
2724 syscall
2726 # 0 "" 2
2727 #NO_APP
2728 jmp .L517
2729 .p2align 4,,10
2730 .p2align 3
2731 .L507:
2732 movl %ecx, %eax
2733 lock cmpxchgl %edx, (%rdi)
2734 je .L508
2735 call __lll_lock_wait_private
2736 jmp .L508
2737 .p2align 4,,10
2738 .p2align 3
2739 .L535:
2740 call _IO_vtable_check
2741 jmp .L510
2742 .p2align 4,,10
2743 .p2align 3
2744 .L514:
2745 #APP
2746 # 749 "genops.c" 1
2747 xchgl %eax, (%rdi)
2748 # 0 "" 2
2749 #NO_APP
2750 cmpl $1, %eax
2751 jle .L512
2752 xorl %r10d, %r10d
2753 movl $1, %edx
2754 movl $129, %esi
2755 movl %r12d, %eax
2756 #APP
2757 # 749 "genops.c" 1
2758 syscall
2760 # 0 "" 2
2761 #NO_APP
2762 jmp .L512
2763 .p2align 4,,10
2764 .p2align 3
2765 .L502:
2766 xorl %eax, %eax
2767 movl $1, %edx
2768 lock cmpxchgl %edx, list_all_lock(%rip)
2769 je .L503
2770 leaq list_all_lock(%rip), %rdi
2771 call __lll_lock_wait_private
2772 jmp .L503
2773 .LFE103:
2774 .size _IO_flush_all_linebuffered, .-_IO_flush_all_linebuffered
2775 .weak _flushlbf
2776 .set _flushlbf,_IO_flush_all_linebuffered
2777 .p2align 4,,15
2778 .globl _IO_init_marker
2779 .type _IO_init_marker, @function
2780 _IO_init_marker:
2781 .LFB107:
2782 pushq %rbx
2783 movq %rdi, %rbx
2784 subq $16, %rsp
2785 movl (%rsi), %edx
2786 movq %rsi, 8(%rdi)
2787 testb $8, %dh
2788 jne .L544
2789 .L537:
2790 andb $1, %dh
2791 movq 8(%rsi), %rax
2792 jne .L545
2793 subq 24(%rsi), %rax
2794 movl %eax, 16(%rbx)
2795 .L539:
2796 movq 96(%rsi), %rax
2797 movq %rax, (%rbx)
2798 movq %rbx, 96(%rsi)
2799 addq $16, %rsp
2800 popq %rbx
2802 .p2align 4,,10
2803 .p2align 3
2804 .L545:
2805 subq 16(%rsi), %rax
2806 movl %eax, 16(%rbx)
2807 jmp .L539
2808 .p2align 4,,10
2809 .p2align 3
2810 .L544:
2811 movq %rsi, %rdi
2812 movq %rsi, 8(%rsp)
2813 call _IO_switch_to_get_mode
2814 movq 8(%rsp), %rsi
2815 movl (%rsi), %edx
2816 jmp .L537
2817 .LFE107:
2818 .size _IO_init_marker, .-_IO_init_marker
2819 .p2align 4,,15
2820 .globl _IO_remove_marker
2821 .type _IO_remove_marker, @function
2822 _IO_remove_marker:
2823 .LFB108:
2824 movq 8(%rdi), %rax
2825 movq 96(%rax), %rdx
2826 testq %rdx, %rdx
2827 je .L546
2828 cmpq %rdi, %rdx
2829 jne .L549
2830 jmp .L556
2831 .p2align 4,,10
2832 .p2align 3
2833 .L551:
2834 cmpq %rax, %rdi
2835 je .L550
2836 movq %rax, %rdx
2837 .L549:
2838 movq (%rdx), %rax
2839 testq %rax, %rax
2840 jne .L551
2841 .L546:
2842 rep ret
2843 .p2align 4,,10
2844 .p2align 3
2845 .L556:
2846 leaq 96(%rax), %rdx
2847 .L550:
2848 movq (%rdi), %rax
2849 movq %rax, (%rdx)
2851 .LFE108:
2852 .size _IO_remove_marker, .-_IO_remove_marker
2853 .p2align 4,,15
2854 .globl _IO_marker_difference
2855 .type _IO_marker_difference, @function
2856 _IO_marker_difference:
2857 .LFB109:
2858 movl 16(%rdi), %eax
2859 subl 16(%rsi), %eax
2861 .LFE109:
2862 .size _IO_marker_difference, .-_IO_marker_difference
2863 .p2align 4,,15
2864 .globl _IO_marker_delta
2865 .type _IO_marker_delta, @function
2866 _IO_marker_delta:
2867 .LFB110:
2868 movq 8(%rdi), %rax
2869 testq %rax, %rax
2870 je .L562
2871 testl $256, (%rax)
2872 movq 8(%rax), %rdx
2873 jne .L563
2874 subl 24(%rax), %edx
2875 movl 16(%rdi), %eax
2876 subl %edx, %eax
2878 .p2align 4,,10
2879 .p2align 3
2880 .L563:
2881 subl 16(%rax), %edx
2882 movl 16(%rdi), %eax
2883 subl %edx, %eax
2885 .L562:
2886 movl $-1, %eax
2888 .LFE110:
2889 .size _IO_marker_delta, .-_IO_marker_delta
2890 .p2align 4,,15
2891 .globl _IO_seekmark
2892 .type _IO_seekmark, @function
2893 _IO_seekmark:
2894 .LFB111:
2895 movq 8(%rsi), %rdx
2896 movl $-1, %eax
2897 cmpq %rdi, %rdx
2898 jne .L564
2899 movslq 16(%rsi), %rax
2900 movl (%rdx), %ecx
2901 movl %ecx, %edi
2902 andl $256, %edi
2903 testl %eax, %eax
2904 js .L566
2905 testl %edi, %edi
2906 movq 24(%rdx), %rsi
2907 je .L568
2908 andb $-2, %ch
2909 movq 88(%rdx), %rdi
2910 movl %ecx, (%rdx)
2911 movq 16(%rdx), %rcx
2912 movq %rdi, 16(%rdx)
2913 movq %rcx, 88(%rdx)
2914 movq 72(%rdx), %rcx
2915 movq %rsi, 72(%rdx)
2916 movq %rcx, 24(%rdx)
2917 movq %rcx, %rsi
2918 .L568:
2919 addq %rsi, %rax
2920 movq %rax, 8(%rdx)
2921 xorl %eax, %eax
2922 .L564:
2923 rep ret
2924 .p2align 4,,10
2925 .p2align 3
2926 .L566:
2927 testl %edi, %edi
2928 movq 16(%rdx), %rsi
2929 jne .L568
2930 orb $1, %ch
2931 movq 72(%rdx), %rdi
2932 movl %ecx, (%rdx)
2933 movq 88(%rdx), %rcx
2934 movq %rsi, 88(%rdx)
2935 movq 24(%rdx), %rsi
2936 movq %rdi, 24(%rdx)
2937 movq %rcx, 16(%rdx)
2938 movq %rsi, 72(%rdx)
2939 movq %rcx, %rsi
2940 addq %rsi, %rax
2941 movq %rax, 8(%rdx)
2942 xorl %eax, %eax
2943 jmp .L564
2944 .LFE111:
2945 .size _IO_seekmark, .-_IO_seekmark
2946 .p2align 4,,15
2947 .globl _IO_unsave_markers
2948 .hidden _IO_unsave_markers
2949 .type _IO_unsave_markers, @function
2950 _IO_unsave_markers:
2951 .LFB112:
2952 cmpq $0, 96(%rdi)
2953 je .L574
2954 movq $0, 96(%rdi)
2955 .L574:
2956 cmpq $0, 72(%rdi)
2957 je .L573
2958 jmp _IO_free_backup_area
2959 .p2align 4,,10
2960 .p2align 3
2961 .L573:
2962 rep ret
2963 .LFE112:
2964 .size _IO_unsave_markers, .-_IO_unsave_markers
2965 .p2align 4,,15
2966 .globl _IO_default_pbackfail
2967 .hidden _IO_default_pbackfail
2968 .type _IO_default_pbackfail, @function
2969 _IO_default_pbackfail:
2970 .LFB113:
2971 pushq %r15
2972 pushq %r14
2973 pushq %r13
2974 pushq %r12
2975 movl %esi, %r12d
2976 pushq %rbp
2977 pushq %rbx
2978 movq %rdi, %rbx
2979 subq $24, %rsp
2980 movl (%rdi), %r13d
2981 movq 8(%rdi), %rbp
2982 movq 24(%rdi), %r14
2983 movl %r13d, %eax
2984 andl $256, %eax
2985 cmpq %r14, %rbp
2986 jbe .L577
2987 testl %eax, %eax
2988 je .L599
2989 .L578:
2990 leaq -1(%rbp), %rax
2991 movq %rax, 8(%rbx)
2992 movb %r12b, -1(%rbp)
2993 .L580:
2994 movzbl %r12b, %eax
2995 .L576:
2996 addq $24, %rsp
2997 popq %rbx
2998 popq %rbp
2999 popq %r12
3000 popq %r13
3001 popq %r14
3002 popq %r15
3004 .p2align 4,,10
3005 .p2align 3
3006 .L577:
3007 testl %eax, %eax
3008 je .L600
3009 movq 16(%rbx), %rdx
3010 subq %r14, %rdx
3011 leaq (%rdx,%rdx), %r15
3012 movq %rdx, 8(%rsp)
3013 movq %r15, %rdi
3014 call malloc@PLT
3015 testq %rax, %rax
3016 movq %rax, %r13
3017 je .L581
3018 movq 8(%rsp), %rdx
3019 movq %r15, %rbp
3020 movq %r14, %rsi
3021 subq %rdx, %rbp
3022 addq %rax, %rbp
3023 movq %rbp, %rdi
3024 call memcpy@PLT
3025 movq %r14, %rdi
3026 call free@PLT
3027 movq %r13, 24(%rbx)
3028 addq %r15, %r13
3029 movq %rbp, 80(%rbx)
3030 movq %r13, 16(%rbx)
3031 jmp .L578
3032 .p2align 4,,10
3033 .p2align 3
3034 .L599:
3035 movzbl -1(%rbp), %eax
3036 cmpl %esi, %eax
3037 je .L601
3038 cmpq $0, 72(%rdi)
3039 je .L584
3040 movq %rbp, %rsi
3041 movq %rbx, %rdi
3042 call save_for_backup
3043 testl %eax, %eax
3044 jne .L581
3045 movq 8(%rbx), %rcx
3046 movl (%rbx), %r13d
3047 movq 88(%rbx), %rbp
3048 movq 72(%rbx), %rax
3049 jmp .L582
3050 .p2align 4,,10
3051 .p2align 3
3052 .L600:
3053 movq 72(%rbx), %rax
3054 testq %rax, %rax
3055 je .L584
3056 movq %rbp, %rcx
3057 movq 88(%rbx), %rbp
3058 .L582:
3059 movq 16(%rbx), %rdx
3060 orl $256, %r13d
3061 movq %rbp, 16(%rbx)
3062 movl %r13d, (%rbx)
3063 movq %rax, 24(%rbx)
3064 movq %rcx, 72(%rbx)
3065 movq %rdx, 88(%rbx)
3066 jmp .L578
3067 .p2align 4,,10
3068 .p2align 3
3069 .L584:
3070 movl $128, %edi
3071 call malloc@PLT
3072 testq %rax, %rax
3073 je .L581
3074 leaq 128(%rax), %rdx
3075 movq %rbp, %rcx
3076 movq %rdx, 80(%rbx)
3077 movq %rdx, %rbp
3078 jmp .L582
3079 .p2align 4,,10
3080 .p2align 3
3081 .L601:
3082 subq $1, %rbp
3083 movq %rbp, 8(%rdi)
3084 jmp .L580
3085 .L581:
3086 movl $-1, %eax
3087 jmp .L576
3088 .LFE113:
3089 .size _IO_default_pbackfail, .-_IO_default_pbackfail
3090 .p2align 4,,15
3091 .globl _IO_default_seek
3092 .type _IO_default_seek, @function
3093 _IO_default_seek:
3094 .LFB114:
3095 movq $-1, %rax
3097 .LFE114:
3098 .size _IO_default_seek, .-_IO_default_seek
3099 .p2align 4,,15
3100 .globl _IO_default_stat
3101 .type _IO_default_stat, @function
3102 _IO_default_stat:
3103 .LFB115:
3104 movl $-1, %eax
3106 .LFE115:
3107 .size _IO_default_stat, .-_IO_default_stat
3108 .p2align 4,,15
3109 .globl _IO_default_read
3110 .type _IO_default_read, @function
3111 _IO_default_read:
3112 .LFB116:
3113 movq $-1, %rax
3115 .LFE116:
3116 .size _IO_default_read, .-_IO_default_read
3117 .p2align 4,,15
3118 .globl _IO_default_write
3119 .type _IO_default_write, @function
3120 _IO_default_write:
3121 .LFB117:
3122 xorl %eax, %eax
3124 .LFE117:
3125 .size _IO_default_write, .-_IO_default_write
3126 .p2align 4,,15
3127 .globl _IO_default_showmanyc
3128 .type _IO_default_showmanyc, @function
3129 _IO_default_showmanyc:
3130 .LFB131:
3131 movl $-1, %eax
3133 .LFE131:
3134 .size _IO_default_showmanyc, .-_IO_default_showmanyc
3135 .p2align 4,,15
3136 .globl _IO_default_imbue
3137 .type _IO_default_imbue, @function
3138 _IO_default_imbue:
3139 .LFB119:
3140 rep ret
3141 .LFE119:
3142 .size _IO_default_imbue, .-_IO_default_imbue
3143 .p2align 4,,15
3144 .globl _IO_iter_begin
3145 .hidden _IO_iter_begin
3146 .type _IO_iter_begin, @function
3147 _IO_iter_begin:
3148 .LFB120:
3149 movq _IO_list_all(%rip), %rax
3151 .LFE120:
3152 .size _IO_iter_begin, .-_IO_iter_begin
3153 .p2align 4,,15
3154 .globl _IO_iter_end
3155 .hidden _IO_iter_end
3156 .type _IO_iter_end, @function
3157 _IO_iter_end:
3158 .LFB121:
3159 xorl %eax, %eax
3161 .LFE121:
3162 .size _IO_iter_end, .-_IO_iter_end
3163 .p2align 4,,15
3164 .globl _IO_iter_next
3165 .hidden _IO_iter_next
3166 .type _IO_iter_next, @function
3167 _IO_iter_next:
3168 .LFB122:
3169 movq 104(%rdi), %rax
3171 .LFE122:
3172 .size _IO_iter_next, .-_IO_iter_next
3173 .p2align 4,,15
3174 .globl _IO_iter_file
3175 .hidden _IO_iter_file
3176 .type _IO_iter_file, @function
3177 _IO_iter_file:
3178 .LFB123:
3179 movq %rdi, %rax
3181 .LFE123:
3182 .size _IO_iter_file, .-_IO_iter_file
3183 .p2align 4,,15
3184 .globl _IO_list_lock
3185 .hidden _IO_list_lock
3186 .type _IO_list_lock, @function
3187 _IO_list_lock:
3188 .LFB124:
3189 pushq %rbx
3190 movq %fs:16, %rbx
3191 cmpq %rbx, 8+list_all_lock(%rip)
3192 je .L613
3193 #APP
3194 # 1096 "genops.c" 1
3195 movl %fs:24,%eax
3196 # 0 "" 2
3197 #NO_APP
3198 testl %eax, %eax
3199 jne .L614
3200 movl $1, %edx
3201 #APP
3202 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
3203 cmpxchgl %edx, list_all_lock(%rip)
3204 # 0 "" 2
3205 #NO_APP
3206 .L615:
3207 movq %rbx, 8+list_all_lock(%rip)
3208 .L613:
3209 addl $1, 4+list_all_lock(%rip)
3210 popq %rbx
3212 .p2align 4,,10
3213 .p2align 3
3214 .L614:
3215 xorl %eax, %eax
3216 movl $1, %edx
3217 lock cmpxchgl %edx, list_all_lock(%rip)
3218 je .L615
3219 leaq list_all_lock(%rip), %rdi
3220 call __lll_lock_wait_private
3221 jmp .L615
3222 .LFE124:
3223 .size _IO_list_lock, .-_IO_list_lock
3224 .p2align 4,,15
3225 .globl _IO_list_unlock
3226 .hidden _IO_list_unlock
3227 .type _IO_list_unlock, @function
3228 _IO_list_unlock:
3229 .LFB125:
3230 movl 4+list_all_lock(%rip), %eax
3231 subl $1, %eax
3232 testl %eax, %eax
3233 movl %eax, 4+list_all_lock(%rip)
3234 jne .L617
3235 movq $0, 8+list_all_lock(%rip)
3236 #APP
3237 # 1105 "genops.c" 1
3238 movl %fs:24,%edx
3239 # 0 "" 2
3240 #NO_APP
3241 testl %edx, %edx
3242 jne .L620
3243 subl $1, list_all_lock(%rip)
3245 .p2align 4,,10
3246 .p2align 3
3247 .L620:
3248 #APP
3249 # 1105 "genops.c" 1
3250 xchgl %eax, list_all_lock(%rip)
3251 # 0 "" 2
3252 #NO_APP
3253 cmpl $1, %eax
3254 jle .L617
3255 xorl %r10d, %r10d
3256 movl $1, %edx
3257 movl $129, %esi
3258 leaq list_all_lock(%rip), %rdi
3259 movl $202, %eax
3260 #APP
3261 # 1105 "genops.c" 1
3262 syscall
3264 # 0 "" 2
3265 #NO_APP
3266 .L617:
3267 rep ret
3268 .LFE125:
3269 .size _IO_list_unlock, .-_IO_list_unlock
3270 .p2align 4,,15
3271 .globl _IO_list_resetlock
3272 .hidden _IO_list_resetlock
3273 .type _IO_list_resetlock, @function
3274 _IO_list_resetlock:
3275 .LFB126:
3276 movq $0, list_all_lock(%rip)
3277 movq $0, 8+list_all_lock(%rip)
3279 .LFE126:
3280 .size _IO_list_resetlock, .-_IO_list_resetlock
3281 .section __libc_atexit,"aw",@progbits
3282 .align 8
3283 .type __elf_set___libc_atexit_element__IO_cleanup__, @object
3284 .size __elf_set___libc_atexit_element__IO_cleanup__, 8
3285 __elf_set___libc_atexit_element__IO_cleanup__:
3286 .quad _IO_cleanup
3287 .section __libc_subfreeres,"aw",@progbits
3288 .align 8
3289 .type __elf_set___libc_subfreeres_element_buffer_free__, @object
3290 .size __elf_set___libc_subfreeres_element_buffer_free__, 8
3291 __elf_set___libc_subfreeres_element_buffer_free__:
3292 .quad buffer_free
3293 .local freeres_list
3294 .comm freeres_list,8,8
3295 .local dealloc_buffers
3296 .comm dealloc_buffers,1,1
3297 .local stdio_needs_locking
3298 .comm stdio_needs_locking,4,4
3299 .local run_fp
3300 .comm run_fp,8,8
3301 .local list_all_lock
3302 .comm list_all_lock,16,16
3303 .weak __stop___libc_IO_vtables
3304 .weak __start___libc_IO_vtables
3305 .weak _pthread_cleanup_pop_restore
3306 .weak _pthread_cleanup_push_defer
3307 .hidden _IO_wsetb
3308 .hidden __sched_yield
3309 .hidden _IO_vtable_check
3310 .hidden __lll_lock_wait_private
3311 .hidden _IO_list_all
3312 .hidden memmove