clarify the purpose of this project
[nyanglibc.git] / libio / wgenops.s
blob44e3396abe894f347287d6b8001e528bb41293f3
1 .text
2 .p2align 4,,15
3 .type save_for_wbackup.isra.0, @function
4 save_for_wbackup.isra.0:
5 .LFB95:
6 pushq %r15
7 pushq %r14
8 movq %rdi, %r9
9 pushq %r13
10 pushq %r12
11 movq %rdx, %r12
12 pushq %rbp
13 pushq %rbx
14 movq %rsi, %r13
15 subq $56, %rsp
16 movq (%rdi), %rax
17 movq %rdx, 8(%rsp)
18 movq (%rsi), %rdx
19 movq %rax, %r14
20 movq 80(%rdx), %rsi
21 movq 16(%rdx), %r10
22 movq 64(%rdx), %rdi
23 movq %rsi, %r8
24 subq %r10, %r12
25 subq %rdi, %r8
26 movq %r12, %rbp
27 movq %r8, %r11
28 sarq $2, %rbp
29 sarq $2, %r11
30 testq %rax, %rax
31 movq %rbp, %rbx
32 movq %rbp, %rcx
33 je .L26
34 .p2align 4,,10
35 .p2align 3
36 .L2:
37 movslq 16(%r14), %r8
38 movq (%r14), %r14
39 cmpq %r8, %rbx
40 cmovg %r8, %rbx
41 testq %r14, %r14
42 jne .L2
43 movq %rbp, %r12
44 subq %rbx, %r12
45 cmpq %r11, %r12
46 ja .L27
47 movq %r11, %r15
48 subq %r12, %r15
49 leaq 0(,%r15,4), %r14
50 addq %r14, %rdi
51 testq %rbx, %rbx
52 js .L3
53 testq %r12, %r12
54 movq %r9, 16(%rsp)
55 jne .L28
56 movq %rdi, 72(%rdx)
57 .p2align 4,,10
58 .p2align 3
59 .L13:
60 subl %ecx, 16(%rax)
61 movq (%rax), %rax
62 testq %rax, %rax
63 jne .L13
64 .L14:
65 xorl %eax, %eax
66 .L1:
67 addq $56, %rsp
68 popq %rbx
69 popq %rbp
70 popq %r12
71 popq %r13
72 popq %r14
73 popq %r15
74 ret
75 .p2align 4,,10
76 .p2align 3
77 .L27:
78 leaq 400(,%r12,4), %rax
79 movq %r9, 40(%rsp)
80 movq %rsi, 32(%rsp)
81 movq %r10, 24(%rsp)
82 movq %rax, %rdi
83 movq %rax, 16(%rsp)
84 call malloc@PLT
85 testq %rax, %rax
86 movq %rax, %r15
87 je .L17
88 testq %rbx, %rbx
89 leaq 0(,%rbx,4), %rax
90 leaq 400(%r15), %r14
91 movq 24(%rsp), %r10
92 movq 32(%rsp), %rsi
93 movq 40(%rsp), %r9
94 js .L29
95 leaq (%r10,%rax), %rsi
96 movq %r12, %rdx
97 movq %r14, %rdi
98 movq %r9, 24(%rsp)
99 call __wmemcpy
100 movq 24(%rsp), %r9
101 .L8:
102 movq 0(%r13), %rax
103 movq %r9, 24(%rsp)
104 movq 64(%rax), %rdi
105 call free@PLT
106 movq 0(%r13), %rdx
107 movq 24(%rsp), %r9
108 movq 8(%rsp), %rcx
109 movq %r15, 64(%rdx)
110 subq 16(%rdx), %rcx
111 addq 16(%rsp), %r15
112 movq (%r9), %rax
113 sarq $2, %rcx
114 movq %r15, 80(%rdx)
115 .L9:
116 testq %rax, %rax
117 movq %r14, 72(%rdx)
118 jne .L13
119 jmp .L14
120 .L30:
121 movq %rsi, %rdi
122 .L3:
123 leaq (%rsi,%rbx,4), %rsi
124 movq %rbx, %rdx
125 movq %r9, 16(%rsp)
126 negq %rdx
127 subq %rbx, %r15
128 call __wmemmove
129 movq 0(%r13), %rax
130 movq 8(%rsp), %rbp
131 movq 16(%rax), %rsi
132 movq 64(%rax), %rax
133 movq %rbp, %rdx
134 subq %rsi, %rdx
135 leaq (%rax,%r15,4), %rdi
136 sarq $2, %rdx
137 call __wmemcpy
138 movq 0(%r13), %rdx
139 movq %rbp, %rcx
140 movq 16(%rsp), %r9
141 subq 16(%rdx), %rcx
142 addq 64(%rdx), %r14
143 movq (%r9), %rax
144 sarq $2, %rcx
145 jmp .L9
146 .p2align 4,,10
147 .p2align 3
148 .L28:
149 leaq (%r10,%rbx,4), %rsi
150 movq %r12, %rdx
151 call __wmemcpy
152 movq 0(%r13), %rdx
153 movq 8(%rsp), %rcx
154 movq 16(%rsp), %r9
155 subq 16(%rdx), %rcx
156 addq 64(%rdx), %r14
157 movq (%r9), %rax
158 sarq $2, %rcx
159 jmp .L9
160 .p2align 4,,10
161 .p2align 3
162 .L26:
163 testq %r12, %r12
164 movq %r11, %r15
165 movq %r8, %r14
166 js .L30
167 movq %rsi, 72(%rdx)
168 jmp .L14
169 .p2align 4,,10
170 .p2align 3
171 .L29:
172 movq %rbx, %rdx
173 addq %rax, %rsi
174 movq %r14, %rdi
175 negq %rdx
176 movq %r9, 32(%rsp)
177 call __wmempcpy
178 movq 24(%rsp), %r10
179 movq %rbp, %rdx
180 movq %rax, %rdi
181 movq %r10, %rsi
182 call __wmempcpy
183 movq 32(%rsp), %r9
184 jmp .L8
185 .L17:
186 movl $-1, %eax
187 jmp .L1
188 .LFE95:
189 .size save_for_wbackup.isra.0, .-save_for_wbackup.isra.0
190 .p2align 4,,15
191 .globl _IO_least_wmarker
192 .hidden _IO_least_wmarker
193 .type _IO_least_wmarker, @function
194 _IO_least_wmarker:
195 .LFB71:
196 movq 160(%rdi), %rdx
197 movq %rsi, %rax
198 subq 16(%rdx), %rax
199 movq 96(%rdi), %rdx
200 sarq $2, %rax
201 testq %rdx, %rdx
202 je .L31
203 .p2align 4,,10
204 .p2align 3
205 .L33:
206 movslq 16(%rdx), %rcx
207 movq (%rdx), %rdx
208 cmpq %rcx, %rax
209 cmovg %rcx, %rax
210 testq %rdx, %rdx
211 jne .L33
212 .L31:
213 rep ret
214 .LFE71:
215 .size _IO_least_wmarker, .-_IO_least_wmarker
216 .p2align 4,,15
217 .globl _IO_switch_to_main_wget_area
218 .hidden _IO_switch_to_main_wget_area
219 .type _IO_switch_to_main_wget_area, @function
220 _IO_switch_to_main_wget_area:
221 .LFB72:
222 movq 160(%rdi), %rax
223 andl $-257, (%rdi)
224 movq 8(%rax), %rdx
225 movq 80(%rax), %rcx
226 movq %rdx, 80(%rax)
227 movq 64(%rax), %rdx
228 movq %rcx, 8(%rax)
229 movq 16(%rax), %rcx
230 movq %rdx, (%rax)
231 movq %rdx, 16(%rax)
232 movq %rcx, 64(%rax)
234 .LFE72:
235 .size _IO_switch_to_main_wget_area, .-_IO_switch_to_main_wget_area
236 .p2align 4,,15
237 .globl _IO_switch_to_wbackup_area
238 .hidden _IO_switch_to_wbackup_area
239 .type _IO_switch_to_wbackup_area, @function
240 _IO_switch_to_wbackup_area:
241 .LFB73:
242 movq 160(%rdi), %rax
243 orl $256, (%rdi)
244 movq 8(%rax), %rcx
245 movq 80(%rax), %rdx
246 movq 64(%rax), %rsi
247 movq %rcx, 80(%rax)
248 movq 16(%rax), %rcx
249 movq %rdx, 8(%rax)
250 movq %rdx, (%rax)
251 movq %rsi, 16(%rax)
252 movq %rcx, 64(%rax)
254 .LFE73:
255 .size _IO_switch_to_wbackup_area, .-_IO_switch_to_wbackup_area
256 .p2align 4,,15
257 .globl _IO_wsetb
258 .hidden _IO_wsetb
259 .type _IO_wsetb, @function
260 _IO_wsetb:
261 .LFB74:
262 pushq %rbx
263 movq %rdi, %rbx
264 subq $32, %rsp
265 movq 160(%rdi), %r8
266 movl 116(%rbx), %eax
267 movq 48(%r8), %rdi
268 testq %rdi, %rdi
269 je .L41
270 testb $8, %al
271 je .L48
272 .L41:
273 movq %rdx, 56(%r8)
274 movl %eax, %edx
275 andl $-9, %eax
276 orl $8, %edx
277 testl %ecx, %ecx
278 movq %rsi, 48(%r8)
279 cmove %edx, %eax
280 movl %eax, 116(%rbx)
281 addq $32, %rsp
282 popq %rbx
284 .p2align 4,,10
285 .p2align 3
286 .L48:
287 movl %ecx, 28(%rsp)
288 movq %rdx, 16(%rsp)
289 movq %rsi, 8(%rsp)
290 call free@PLT
291 movq 160(%rbx), %r8
292 movl 116(%rbx), %eax
293 movl 28(%rsp), %ecx
294 movq 16(%rsp), %rdx
295 movq 8(%rsp), %rsi
296 jmp .L41
297 .LFE74:
298 .size _IO_wsetb, .-_IO_wsetb
299 .p2align 4,,15
300 .globl _IO_wdefault_pbackfail
301 .hidden _IO_wdefault_pbackfail
302 .type _IO_wdefault_pbackfail, @function
303 _IO_wdefault_pbackfail:
304 .LFB75:
305 pushq %r15
306 pushq %r14
307 pushq %r13
308 pushq %r12
309 movq %rdi, %r13
310 pushq %rbp
311 pushq %rbx
312 movl %esi, %r12d
313 subq $24, %rsp
314 movq 160(%rdi), %rbx
315 movl (%rdi), %r14d
316 movq (%rbx), %rbp
317 movq 16(%rbx), %r15
318 movl %r14d, %eax
319 andl $256, %eax
320 cmpq %r15, %rbp
321 jbe .L50
322 testl %eax, %eax
323 je .L71
324 .L51:
325 leaq -4(%rbp), %rax
326 movq %rax, (%rbx)
327 movl %r12d, -4(%rbp)
328 movl %r12d, %eax
329 .L49:
330 addq $24, %rsp
331 popq %rbx
332 popq %rbp
333 popq %r12
334 popq %r13
335 popq %r14
336 popq %r15
338 .p2align 4,,10
339 .p2align 3
340 .L50:
341 testl %eax, %eax
342 je .L72
343 movq 8(%rbx), %rbx
344 subq %r15, %rbx
345 sarq $2, %rbx
346 leaq 0(,%rbx,8), %r14
347 leaq (%rbx,%rbx), %rbp
348 movq %r14, %rdi
349 call malloc@PLT
350 testq %rax, %rax
351 je .L54
352 subq %rbx, %rbp
353 movq %rbx, %rdx
354 movq %r15, %rsi
355 leaq (%rax,%rbp,4), %rbp
356 movq %rax, 8(%rsp)
357 movq %rbp, %rdi
358 call __wmemcpy
359 movq 160(%r13), %rax
360 movq 16(%rax), %rdi
361 call free@PLT
362 movq 8(%rsp), %rcx
363 movq 160(%r13), %rbx
364 addq %rcx, %r14
365 movq %rcx, 16(%rbx)
366 movq %rbp, (%rbx)
367 movq %r14, 8(%rbx)
368 movq %rbp, 72(%rbx)
369 jmp .L51
370 .p2align 4,,10
371 .p2align 3
372 .L71:
373 movq 8(%rdi), %rdx
374 movsbl -1(%rdx), %eax
375 cmpl %esi, %eax
376 je .L73
377 cmpq $0, 64(%rbx)
378 je .L56
379 leaq 160(%r13), %rsi
380 leaq 96(%r13), %rdi
381 movq %rbp, %rdx
382 call save_for_wbackup.isra.0
383 testl %eax, %eax
384 jne .L54
385 movq 160(%r13), %rbx
386 movl 0(%r13), %r14d
387 movq (%rbx), %rcx
388 movq 80(%rbx), %rbp
389 movq 64(%rbx), %rax
390 jmp .L55
391 .p2align 4,,10
392 .p2align 3
393 .L72:
394 movq 64(%rbx), %rax
395 testq %rax, %rax
396 je .L56
397 movq %rbp, %rcx
398 movq 80(%rbx), %rbp
399 .L55:
400 movq 8(%rbx), %rdx
401 orl $256, %r14d
402 movl %r14d, 0(%r13)
403 movq %rbp, 8(%rbx)
404 movq %rax, 16(%rbx)
405 movq %rcx, 64(%rbx)
406 movq %rdx, 80(%rbx)
407 movq %rbp, (%rbx)
408 jmp .L51
409 .p2align 4,,10
410 .p2align 3
411 .L56:
412 movl $512, %edi
413 call malloc@PLT
414 testq %rax, %rax
415 je .L54
416 leaq 512(%rax), %rdx
417 movq %rbp, %rcx
418 movq %rax, 64(%rbx)
419 movq %rdx, 80(%rbx)
420 movq %rdx, 72(%rbx)
421 movq %rdx, %rbp
422 jmp .L55
423 .p2align 4,,10
424 .p2align 3
425 .L73:
426 subq $1, %rdx
427 movq %rdx, 8(%rdi)
428 jmp .L49
429 .p2align 4,,10
430 .p2align 3
431 .L54:
432 movl $-1, %eax
433 jmp .L49
434 .LFE75:
435 .size _IO_wdefault_pbackfail, .-_IO_wdefault_pbackfail
436 .p2align 4,,15
437 .globl _IO_wdefault_finish
438 .hidden _IO_wdefault_finish
439 .type _IO_wdefault_finish, @function
440 _IO_wdefault_finish:
441 .LFB76:
442 pushq %rbx
443 movq 160(%rdi), %rdx
444 movq %rdi, %rbx
445 movq 48(%rdx), %rdi
446 testq %rdi, %rdi
447 je .L75
448 testb $8, 116(%rbx)
449 je .L87
450 .L75:
451 movq 96(%rbx), %rax
452 testq %rax, %rax
453 je .L76
454 .p2align 4,,10
455 .p2align 3
456 .L77:
457 movq $0, 8(%rax)
458 movq (%rax), %rax
459 testq %rax, %rax
460 jne .L77
461 .L76:
462 cmpq $0, 72(%rbx)
463 je .L78
464 movq 64(%rdx), %rdi
465 call free@PLT
466 movq $0, 72(%rbx)
467 .L78:
468 movq %rbx, %rdi
469 popq %rbx
470 jmp _IO_un_link
471 .p2align 4,,10
472 .p2align 3
473 .L87:
474 call free@PLT
475 movq 160(%rbx), %rdx
476 movq $0, 56(%rdx)
477 movq $0, 48(%rdx)
478 jmp .L75
479 .LFE76:
480 .size _IO_wdefault_finish, .-_IO_wdefault_finish
481 .p2align 4,,15
482 .globl _IO_wdefault_uflow
483 .hidden _IO_wdefault_uflow
484 .type _IO_wdefault_uflow, @function
485 _IO_wdefault_uflow:
486 .LFB77:
487 pushq %rbp
488 pushq %rbx
489 movq %rdi, %rbx
490 subq $8, %rsp
491 movq 216(%rdi), %rbp
492 movq __start___libc_IO_vtables@GOTPCREL(%rip), %rdx
493 movq __stop___libc_IO_vtables@GOTPCREL(%rip), %rax
494 movq %rbp, %rsi
495 subq %rdx, %rax
496 subq %rdx, %rsi
497 cmpq %rsi, %rax
498 jbe .L94
499 .L89:
500 movq %rbx, %rdi
501 call *32(%rbp)
502 movl $-1, %edx
503 cmpl %edx, %eax
504 je .L88
505 movq 160(%rbx), %rdx
506 movq (%rdx), %rax
507 leaq 4(%rax), %rcx
508 movq %rcx, (%rdx)
509 movl (%rax), %edx
510 .L88:
511 addq $8, %rsp
512 movl %edx, %eax
513 popq %rbx
514 popq %rbp
516 .p2align 4,,10
517 .p2align 3
518 .L94:
519 call _IO_vtable_check
520 jmp .L89
521 .LFE77:
522 .size _IO_wdefault_uflow, .-_IO_wdefault_uflow
523 .p2align 4,,15
524 .globl __woverflow
525 .hidden __woverflow
526 .type __woverflow, @function
527 __woverflow:
528 .LFB78:
529 pushq %r12
530 pushq %rbp
531 movl %esi, %r12d
532 pushq %rbx
533 movl 192(%rdi), %eax
534 movq %rdi, %rbx
535 testl %eax, %eax
536 je .L99
537 .L96:
538 movq 216(%rbx), %rbp
539 movq __start___libc_IO_vtables@GOTPCREL(%rip), %rdx
540 movq __stop___libc_IO_vtables@GOTPCREL(%rip), %rax
541 movq %rbp, %rcx
542 subq %rdx, %rax
543 subq %rdx, %rcx
544 cmpq %rcx, %rax
545 jbe .L100
546 movq 24(%rbp), %rax
547 movl %r12d, %esi
548 movq %rbx, %rdi
549 popq %rbx
550 popq %rbp
551 popq %r12
552 jmp *%rax
553 .p2align 4,,10
554 .p2align 3
555 .L99:
556 movl $1, %esi
557 call _IO_fwide@PLT
558 jmp .L96
559 .p2align 4,,10
560 .p2align 3
561 .L100:
562 call _IO_vtable_check
563 movq 24(%rbp), %rax
564 movl %r12d, %esi
565 movq %rbx, %rdi
566 popq %rbx
567 popq %rbp
568 popq %r12
569 jmp *%rax
570 .LFE78:
571 .size __woverflow, .-__woverflow
572 .p2align 4,,15
573 .globl _IO_wdefault_xsputn
574 .hidden _IO_wdefault_xsputn
575 .type _IO_wdefault_xsputn, @function
576 _IO_wdefault_xsputn:
577 .LFB81:
578 pushq %r15
579 pushq %r14
580 xorl %eax, %eax
581 pushq %r13
582 pushq %r12
583 pushq %rbp
584 pushq %rbx
585 subq $24, %rsp
586 testq %rdx, %rdx
587 movq %rdx, 8(%rsp)
588 je .L101
589 movq %rdi, %rbp
590 movq %rsi, %r12
591 movq %rdx, %r13
592 .p2align 4,,10
593 .p2align 3
594 .L110:
595 movq 160(%rbp), %r15
596 movq %r12, %r14
597 movq 32(%r15), %rdi
598 movq 40(%r15), %rbx
599 subq %rdi, %rbx
600 testq %rbx, %rbx
601 jle .L103
602 sarq $2, %rbx
603 cmpq %r13, %rbx
604 cmova %r13, %rbx
605 cmpq $20, %rbx
606 jg .L122
607 testq %rbx, %rbx
608 je .L103
609 leaq 0(,%rbx,4), %rsi
610 xorl %eax, %eax
611 .p2align 4,,10
612 .p2align 3
613 .L107:
614 movl (%r12,%rax), %edx
615 movl %edx, (%rdi,%rax)
616 addq $4, %rax
617 cmpq %rax, %rsi
618 jne .L107
619 addq %rsi, %rdi
620 leaq (%r12,%rsi), %r14
621 subq %rbx, %r13
622 movq %rdi, 32(%r15)
623 .L103:
624 testq %r13, %r13
625 je .L108
626 movl (%r14), %esi
627 movq %rbp, %rdi
628 leaq 4(%r14), %r12
629 call __woverflow
630 cmpl $-1, %eax
631 je .L123
632 subq $1, %r13
633 jmp .L110
634 .p2align 4,,10
635 .p2align 3
636 .L123:
637 subq %r13, 8(%rsp)
638 .L108:
639 movq 8(%rsp), %rax
640 .L101:
641 addq $24, %rsp
642 popq %rbx
643 popq %rbp
644 popq %r12
645 popq %r13
646 popq %r14
647 popq %r15
649 .p2align 4,,10
650 .p2align 3
651 .L122:
652 movq %rbx, %rdx
653 movq %r12, %rsi
654 leaq (%r12,%rbx,4), %r14
655 call __wmempcpy
656 subq %rbx, %r13
657 movq %rax, 32(%r15)
658 jmp .L103
659 .LFE81:
660 .size _IO_wdefault_xsputn, .-_IO_wdefault_xsputn
661 .p2align 4,,15
662 .globl _IO_wdoallocbuf
663 .hidden _IO_wdoallocbuf
664 .type _IO_wdoallocbuf, @function
665 _IO_wdoallocbuf:
666 .LFB83:
667 movq 160(%rdi), %rsi
668 cmpq $0, 48(%rsi)
669 je .L133
670 rep ret
671 .p2align 4,,10
672 .p2align 3
673 .L133:
674 pushq %rbx
675 testb $2, (%rdi)
676 movq %rdi, %rbx
677 jne .L127
678 movq 224(%rsi), %rax
679 call *104(%rax)
680 cmpl $-1, %eax
681 je .L134
682 popq %rbx
684 .p2align 4,,10
685 .p2align 3
686 .L134:
687 movq 160(%rbx), %rsi
688 .L127:
689 movq %rbx, %rdi
690 leaq 220(%rsi), %rdx
691 xorl %ecx, %ecx
692 popq %rbx
693 addq $216, %rsi
694 jmp _IO_wsetb
695 .LFE83:
696 .size _IO_wdoallocbuf, .-_IO_wdoallocbuf
697 .p2align 4,,15
698 .globl _IO_wdefault_doallocate
699 .hidden _IO_wdefault_doallocate
700 .type _IO_wdefault_doallocate, @function
701 _IO_wdefault_doallocate:
702 .LFB84:
703 pushq %rbx
704 movq %rdi, %rbx
705 movl $8192, %edi
706 call malloc@PLT
707 movq %rax, %rsi
708 movl $-1, %eax
709 testq %rsi, %rsi
710 je .L135
711 leaq 32768(%rsi), %rdx
712 movl $1, %ecx
713 movq %rbx, %rdi
714 call _IO_wsetb
715 movl $1, %eax
716 .L135:
717 popq %rbx
719 .LFE84:
720 .size _IO_wdefault_doallocate, .-_IO_wdefault_doallocate
721 .p2align 4,,15
722 .globl _IO_switch_to_wget_mode
723 .hidden _IO_switch_to_wget_mode
724 .type _IO_switch_to_wget_mode, @function
725 _IO_switch_to_wget_mode:
726 .LFB85:
727 movq 160(%rdi), %rax
728 pushq %rbx
729 movq %rdi, %rbx
730 movq 32(%rax), %rdx
731 cmpq 24(%rax), %rdx
732 jbe .L142
733 movq 224(%rax), %rax
734 movl $-1, %esi
735 call *24(%rax)
736 cmpl $-1, %eax
737 je .L141
738 movq 160(%rbx), %rax
739 movq 32(%rax), %rdx
740 .L142:
741 movl (%rbx), %ecx
742 testb $1, %ch
743 jne .L150
744 cmpq %rdx, 8(%rax)
745 movq 48(%rax), %rsi
746 movq %rsi, 16(%rax)
747 jnb .L145
748 movq %rdx, 8(%rax)
749 .L145:
750 andb $-9, %ch
751 movq %rdx, (%rax)
752 movq %rdx, 40(%rax)
753 movq %rdx, 24(%rax)
754 movl %ecx, (%rbx)
755 xorl %eax, %eax
756 .L141:
757 popq %rbx
759 .p2align 4,,10
760 .p2align 3
761 .L150:
762 movq 72(%rax), %rsi
763 movq %rsi, 16(%rax)
764 jmp .L145
765 .LFE85:
766 .size _IO_switch_to_wget_mode, .-_IO_switch_to_wget_mode
767 .p2align 4,,15
768 .globl _IO_free_wbackup_area
769 .hidden _IO_free_wbackup_area
770 .type _IO_free_wbackup_area, @function
771 _IO_free_wbackup_area:
772 .LFB86:
773 pushq %rbx
774 movl (%rdi), %edx
775 movq %rdi, %rbx
776 movq 160(%rdi), %rax
777 testb $1, %dh
778 movq 64(%rax), %rdi
779 je .L152
780 andb $-2, %dh
781 movq 80(%rax), %rcx
782 movl %edx, (%rbx)
783 movq 8(%rax), %rdx
784 movq %rdi, (%rax)
785 movq %rcx, 8(%rax)
786 movq %rdx, 80(%rax)
787 movq 16(%rax), %rdx
788 movq %rdi, 16(%rax)
789 movq %rdx, 64(%rax)
790 movq %rdx, %rdi
791 .L152:
792 call free@PLT
793 movq 160(%rbx), %rax
794 movq $0, 64(%rax)
795 movq $0, 80(%rax)
796 movq $0, 72(%rax)
797 popq %rbx
799 .LFE86:
800 .size _IO_free_wbackup_area, .-_IO_free_wbackup_area
801 .p2align 4,,15
802 .globl __wuflow
803 .hidden __wuflow
804 .type __wuflow, @function
805 __wuflow:
806 .LFB79:
807 pushq %rbp
808 pushq %rbx
809 subq $8, %rsp
810 movl 192(%rdi), %edx
811 testl %edx, %edx
812 js .L162
813 movq %rdi, %rbx
814 je .L182
815 .L161:
816 testl $2048, (%rbx)
817 jne .L164
818 .L167:
819 movq 160(%rbx), %rax
820 movq (%rax), %rdx
821 movq 8(%rax), %rcx
822 cmpq %rcx, %rdx
823 jb .L169
824 movl (%rbx), %edx
825 testb $1, %dh
826 je .L168
827 andb $-2, %dh
828 movq 80(%rax), %rsi
829 movl %edx, (%rbx)
830 movq 64(%rax), %rdx
831 movq %rcx, 80(%rax)
832 movq 16(%rax), %rcx
833 movq %rsi, 8(%rax)
834 cmpq %rdx, %rsi
835 movq %rdx, 16(%rax)
836 movq %rcx, 64(%rax)
837 ja .L169
838 movq %rdx, (%rax)
839 .L168:
840 cmpq $0, 96(%rbx)
841 je .L170
842 movq 8(%rax), %rdx
843 leaq 160(%rbx), %rsi
844 leaq 96(%rbx), %rdi
845 call save_for_wbackup.isra.0
846 testl %eax, %eax
847 jne .L162
848 .L171:
849 movq 216(%rbx), %rbp
850 movq __start___libc_IO_vtables@GOTPCREL(%rip), %rdx
851 movq __stop___libc_IO_vtables@GOTPCREL(%rip), %rax
852 movq %rbp, %rsi
853 subq %rdx, %rax
854 subq %rdx, %rsi
855 cmpq %rsi, %rax
856 jbe .L183
857 .L173:
858 movq 40(%rbp), %rax
859 addq $8, %rsp
860 movq %rbx, %rdi
861 popq %rbx
862 popq %rbp
863 jmp *%rax
864 .p2align 4,,10
865 .p2align 3
866 .L169:
867 leaq 4(%rdx), %rcx
868 movq %rcx, (%rax)
869 movl (%rdx), %eax
870 addq $8, %rsp
871 popq %rbx
872 popq %rbp
874 .p2align 4,,10
875 .p2align 3
876 .L164:
877 movq %rbx, %rdi
878 call _IO_switch_to_wget_mode
879 cmpl $-1, %eax
880 jne .L167
881 .L162:
882 addq $8, %rsp
883 movl $-1, %eax
884 popq %rbx
885 popq %rbp
887 .p2align 4,,10
888 .p2align 3
889 .L182:
890 movl $1, %esi
891 call _IO_fwide@PLT
892 cmpl $1, %eax
893 jne .L162
894 movl 192(%rbx), %eax
895 testl %eax, %eax
896 jne .L161
897 movl $1, %esi
898 movq %rbx, %rdi
899 call _IO_fwide@PLT
900 jmp .L161
901 .p2align 4,,10
902 .p2align 3
903 .L170:
904 cmpq $0, 64(%rax)
905 je .L171
906 movq %rbx, %rdi
907 call _IO_free_wbackup_area
908 jmp .L171
909 .p2align 4,,10
910 .p2align 3
911 .L183:
912 call _IO_vtable_check
913 jmp .L173
914 .LFE79:
915 .size __wuflow, .-__wuflow
916 .p2align 4,,15
917 .globl __wunderflow
918 .hidden __wunderflow
919 .type __wunderflow, @function
920 __wunderflow:
921 .LFB80:
922 pushq %rbp
923 pushq %rbx
924 subq $8, %rsp
925 movl 192(%rdi), %edx
926 testl %edx, %edx
927 js .L189
928 movq %rdi, %rbx
929 je .L209
930 .L188:
931 testl $2048, (%rbx)
932 jne .L191
933 .L194:
934 movq 160(%rbx), %rax
935 movq (%rax), %rdx
936 movq 8(%rax), %rcx
937 cmpq %rcx, %rdx
938 jb .L208
939 movl (%rbx), %edx
940 testb $1, %dh
941 je .L195
942 andb $-2, %dh
943 movq 80(%rax), %rsi
944 movl %edx, (%rbx)
945 movq 64(%rax), %rdx
946 movq %rcx, 80(%rax)
947 movq 16(%rax), %rcx
948 movq %rsi, 8(%rax)
949 cmpq %rdx, %rsi
950 movq %rdx, 16(%rax)
951 movq %rdx, (%rax)
952 movq %rcx, 64(%rax)
953 ja .L208
954 .L195:
955 cmpq $0, 96(%rbx)
956 je .L196
957 movq 8(%rax), %rdx
958 leaq 160(%rbx), %rsi
959 leaq 96(%rbx), %rdi
960 call save_for_wbackup.isra.0
961 testl %eax, %eax
962 jne .L189
963 .L197:
964 movq 216(%rbx), %rbp
965 movq __start___libc_IO_vtables@GOTPCREL(%rip), %rdx
966 movq __stop___libc_IO_vtables@GOTPCREL(%rip), %rax
967 movq %rbp, %rsi
968 subq %rdx, %rax
969 subq %rdx, %rsi
970 cmpq %rsi, %rax
971 jbe .L210
972 .L199:
973 movq 32(%rbp), %rax
974 addq $8, %rsp
975 movq %rbx, %rdi
976 popq %rbx
977 popq %rbp
978 jmp *%rax
979 .p2align 4,,10
980 .p2align 3
981 .L208:
982 movl (%rdx), %eax
983 addq $8, %rsp
984 popq %rbx
985 popq %rbp
987 .p2align 4,,10
988 .p2align 3
989 .L191:
990 movq %rbx, %rdi
991 call _IO_switch_to_wget_mode
992 cmpl $-1, %eax
993 jne .L194
994 .L189:
995 addq $8, %rsp
996 movl $-1, %eax
997 popq %rbx
998 popq %rbp
1000 .p2align 4,,10
1001 .p2align 3
1002 .L209:
1003 movl $1, %esi
1004 call _IO_fwide@PLT
1005 cmpl $1, %eax
1006 jne .L189
1007 movl 192(%rbx), %eax
1008 testl %eax, %eax
1009 jne .L188
1010 movl $1, %esi
1011 movq %rbx, %rdi
1012 call _IO_fwide@PLT
1013 jmp .L188
1014 .p2align 4,,10
1015 .p2align 3
1016 .L196:
1017 cmpq $0, 72(%rbx)
1018 je .L197
1019 movq %rbx, %rdi
1020 call _IO_free_wbackup_area
1021 jmp .L197
1022 .p2align 4,,10
1023 .p2align 3
1024 .L210:
1025 call _IO_vtable_check
1026 jmp .L199
1027 .LFE80:
1028 .size __wunderflow, .-__wunderflow
1029 .p2align 4,,15
1030 .globl _IO_wdefault_xsgetn
1031 .hidden _IO_wdefault_xsgetn
1032 .type _IO_wdefault_xsgetn, @function
1033 _IO_wdefault_xsgetn:
1034 .LFB82:
1035 pushq %r14
1036 pushq %r13
1037 movq %rsi, %r14
1038 pushq %r12
1039 pushq %rbp
1040 movq %rdx, %r12
1041 pushq %rbx
1042 movq %rdi, %rbp
1043 movq %rdx, %r13
1044 .p2align 4,,10
1045 .p2align 3
1046 .L218:
1047 movq 160(%rbp), %rdx
1048 movq (%rdx), %rsi
1049 movq 8(%rdx), %rbx
1050 subq %rsi, %rbx
1051 testq %rbx, %rbx
1052 jle .L212
1053 sarq $2, %rbx
1054 cmpq %r13, %rbx
1055 cmova %r13, %rbx
1056 cmpq $20, %rbx
1057 jg .L228
1058 testq %rbx, %rbx
1059 je .L212
1060 leal -1(%rbx), %eax
1061 leaq 4(,%rax,4), %rdi
1062 xorl %eax, %eax
1063 .p2align 4,,10
1064 .p2align 3
1065 .L216:
1066 movl (%rsi,%rax), %ecx
1067 movl %ecx, (%r14,%rax)
1068 addq $4, %rax
1069 cmpq %rdi, %rax
1070 jne .L216
1071 addq %rax, %rsi
1072 addq %rax, %r14
1073 subq %rbx, %r13
1074 movq %rsi, (%rdx)
1075 .L212:
1076 testq %r13, %r13
1077 je .L217
1078 movq %rbp, %rdi
1079 call __wunderflow
1080 cmpl $-1, %eax
1081 jne .L218
1082 subq %r13, %r12
1083 .L217:
1084 popq %rbx
1085 movq %r12, %rax
1086 popq %rbp
1087 popq %r12
1088 popq %r13
1089 popq %r14
1091 .p2align 4,,10
1092 .p2align 3
1093 .L228:
1094 movq %rbx, %rdx
1095 movq %r14, %rdi
1096 subq %rbx, %r13
1097 call __wmempcpy
1098 movq %rax, %r14
1099 movq 160(%rbp), %rax
1100 leaq 0(,%rbx,4), %rdx
1101 addq %rdx, (%rax)
1102 jmp .L212
1103 .LFE82:
1104 .size _IO_wdefault_xsgetn, .-_IO_wdefault_xsgetn
1105 .p2align 4,,15
1106 .globl _IO_sputbackwc
1107 .hidden _IO_sputbackwc
1108 .type _IO_sputbackwc, @function
1109 _IO_sputbackwc:
1110 .LFB88:
1111 pushq %rbp
1112 pushq %rbx
1113 movq %rdi, %rbx
1114 subq $24, %rsp
1115 movq 160(%rdi), %rax
1116 movq (%rax), %rdx
1117 cmpq 16(%rax), %rdx
1118 jbe .L230
1119 cmpl %esi, -4(%rdx)
1120 je .L238
1121 .L230:
1122 movq 216(%rbx), %rbp
1123 movq __start___libc_IO_vtables@GOTPCREL(%rip), %rdx
1124 movq __stop___libc_IO_vtables@GOTPCREL(%rip), %rax
1125 movq %rbp, %rcx
1126 subq %rdx, %rax
1127 subq %rdx, %rcx
1128 cmpq %rcx, %rax
1129 jbe .L239
1130 .L232:
1131 movq %rbx, %rdi
1132 call *48(%rbp)
1133 .L231:
1134 cmpl $-1, %eax
1135 je .L229
1136 andl $-17, (%rbx)
1137 .L229:
1138 addq $24, %rsp
1139 popq %rbx
1140 popq %rbp
1142 .p2align 4,,10
1143 .p2align 3
1144 .L238:
1145 subq $4, %rdx
1146 movq %rdx, (%rax)
1147 movl %esi, %eax
1148 jmp .L231
1149 .p2align 4,,10
1150 .p2align 3
1151 .L239:
1152 movl %esi, 12(%rsp)
1153 call _IO_vtable_check
1154 movl 12(%rsp), %esi
1155 jmp .L232
1156 .LFE88:
1157 .size _IO_sputbackwc, .-_IO_sputbackwc
1158 .p2align 4,,15
1159 .globl _IO_sungetwc
1160 .type _IO_sungetwc, @function
1161 _IO_sungetwc:
1162 .LFB89:
1163 pushq %rbp
1164 pushq %rbx
1165 movq %rdi, %rbx
1166 subq $8, %rsp
1167 movq 160(%rdi), %rax
1168 movq (%rax), %rdx
1169 cmpq 16(%rax), %rdx
1170 jbe .L241
1171 leaq -4(%rdx), %rcx
1172 movq %rcx, (%rax)
1173 movl -4(%rdx), %eax
1174 .L242:
1175 cmpl $-1, %eax
1176 je .L240
1177 andl $-17, (%rbx)
1178 .L240:
1179 addq $8, %rsp
1180 popq %rbx
1181 popq %rbp
1183 .p2align 4,,10
1184 .p2align 3
1185 .L241:
1186 movq 216(%rdi), %rbp
1187 movq __start___libc_IO_vtables@GOTPCREL(%rip), %rdx
1188 movq __stop___libc_IO_vtables@GOTPCREL(%rip), %rax
1189 movq %rbp, %rsi
1190 subq %rdx, %rax
1191 subq %rdx, %rsi
1192 cmpq %rsi, %rax
1193 jbe .L249
1194 .L243:
1195 movl $-1, %esi
1196 movq %rbx, %rdi
1197 call *48(%rbp)
1198 jmp .L242
1199 .p2align 4,,10
1200 .p2align 3
1201 .L249:
1202 call _IO_vtable_check
1203 jmp .L243
1204 .LFE89:
1205 .size _IO_sungetwc, .-_IO_sungetwc
1206 .p2align 4,,15
1207 .globl _IO_adjust_wcolumn
1208 .type _IO_adjust_wcolumn, @function
1209 _IO_adjust_wcolumn:
1210 .LFB90:
1211 movslq %edx, %rcx
1212 leaq (%rsi,%rcx,4), %r8
1213 cmpq %r8, %rsi
1214 jnb .L251
1215 cmpl $10, -4(%r8)
1216 leaq -4(%r8), %rcx
1217 je .L252
1218 movq %rcx, %rax
1219 subq %rsi, %rax
1220 movq %rax, %rsi
1221 addq $3, %rsi
1222 notq %rsi
1223 andq $-4, %rsi
1224 addq %r8, %rsi
1225 jmp .L254
1226 .p2align 4,,10
1227 .p2align 3
1228 .L256:
1229 subq $4, %rcx
1230 cmpl $10, (%rcx)
1231 je .L252
1232 .L254:
1233 cmpq %rsi, %rcx
1234 jne .L256
1235 .L251:
1236 leal (%rdx,%rdi), %eax
1238 .p2align 4,,10
1239 .p2align 3
1240 .L252:
1241 subq %rcx, %r8
1242 sarq $2, %r8
1243 leal -1(%r8), %eax
1245 .LFE90:
1246 .size _IO_adjust_wcolumn, .-_IO_adjust_wcolumn
1247 .p2align 4,,15
1248 .globl _IO_init_wmarker
1249 .type _IO_init_wmarker, @function
1250 _IO_init_wmarker:
1251 .LFB91:
1252 pushq %rbx
1253 movq %rdi, %rbx
1254 subq $16, %rsp
1255 movl (%rsi), %edx
1256 movq %rsi, 8(%rdi)
1257 testb $8, %dh
1258 jne .L267
1259 .L260:
1260 movq 160(%rsi), %rcx
1261 andb $1, %dh
1262 movq (%rcx), %rax
1263 jne .L268
1264 subq 16(%rcx), %rax
1265 sarq $2, %rax
1266 movl %eax, 16(%rbx)
1267 .L262:
1268 movq 96(%rsi), %rax
1269 movq %rax, (%rbx)
1270 movq %rbx, 96(%rsi)
1271 addq $16, %rsp
1272 popq %rbx
1274 .p2align 4,,10
1275 .p2align 3
1276 .L268:
1277 subq 8(%rcx), %rax
1278 sarq $2, %rax
1279 movl %eax, 16(%rbx)
1280 jmp .L262
1281 .p2align 4,,10
1282 .p2align 3
1283 .L267:
1284 movq %rsi, %rdi
1285 movq %rsi, 8(%rsp)
1286 call _IO_switch_to_wget_mode
1287 movq 8(%rsp), %rsi
1288 movl (%rsi), %edx
1289 jmp .L260
1290 .LFE91:
1291 .size _IO_init_wmarker, .-_IO_init_wmarker
1292 .p2align 4,,15
1293 .globl _IO_wmarker_delta
1294 .type _IO_wmarker_delta, @function
1295 _IO_wmarker_delta:
1296 .LFB92:
1297 movq 8(%rdi), %rax
1298 testq %rax, %rax
1299 je .L273
1300 movq 160(%rax), %rcx
1301 movl (%rax), %eax
1302 testb $1, %ah
1303 movq (%rcx), %rdx
1304 jne .L274
1305 subq 16(%rcx), %rdx
1306 movl 16(%rdi), %eax
1307 sarq $2, %rdx
1308 subl %edx, %eax
1310 .p2align 4,,10
1311 .p2align 3
1312 .L274:
1313 subq 8(%rcx), %rdx
1314 movl 16(%rdi), %eax
1315 sarq $2, %rdx
1316 subl %edx, %eax
1318 .L273:
1319 movl $-1, %eax
1321 .LFE92:
1322 .size _IO_wmarker_delta, .-_IO_wmarker_delta
1323 .p2align 4,,15
1324 .globl _IO_seekwmark
1325 .type _IO_seekwmark, @function
1326 _IO_seekwmark:
1327 .LFB93:
1328 movq 8(%rsi), %rcx
1329 movl $-1, %eax
1330 cmpq %rdi, %rcx
1331 jne .L275
1332 movslq 16(%rsi), %rdx
1333 movl (%rcx), %esi
1334 movq 160(%rcx), %rax
1335 movl %esi, %edi
1336 andl $256, %edi
1337 testl %edx, %edx
1338 js .L277
1339 testl %edi, %edi
1340 movq 16(%rax), %r8
1341 je .L279
1342 andl $-257, %esi
1343 movl %esi, (%rcx)
1344 movq 8(%rax), %rcx
1345 movq 80(%rax), %rsi
1346 movq %rcx, 80(%rax)
1347 movq 64(%rax), %rcx
1348 movq %rsi, 8(%rax)
1349 movq %r8, 64(%rax)
1350 movq %rcx, 16(%rax)
1351 movq %rcx, %r8
1352 .L279:
1353 leaq (%r8,%rdx,4), %rdx
1354 movq %rdx, (%rax)
1355 xorl %eax, %eax
1356 .L275:
1357 rep ret
1358 .p2align 4,,10
1359 .p2align 3
1360 .L277:
1361 testl %edi, %edi
1362 movq 8(%rax), %r8
1363 jne .L279
1364 orl $256, %esi
1365 movq 64(%rax), %rdi
1366 movl %esi, (%rcx)
1367 movq 80(%rax), %rcx
1368 movq 16(%rax), %rsi
1369 movq %r8, 80(%rax)
1370 movq %rdi, 16(%rax)
1371 movq %rcx, %r8
1372 movq %rcx, 8(%rax)
1373 leaq (%r8,%rdx,4), %rdx
1374 movq %rsi, 64(%rax)
1375 movq %rdx, (%rax)
1376 xorl %eax, %eax
1377 jmp .L275
1378 .LFE93:
1379 .size _IO_seekwmark, .-_IO_seekwmark
1380 .p2align 4,,15
1381 .globl _IO_unsave_wmarkers
1382 .type _IO_unsave_wmarkers, @function
1383 _IO_unsave_wmarkers:
1384 .LFB94:
1385 cmpq $0, 96(%rdi)
1386 je .L285
1387 movq $0, 96(%rdi)
1388 .L285:
1389 cmpq $0, 72(%rdi)
1390 je .L284
1391 jmp _IO_free_wbackup_area
1392 .p2align 4,,10
1393 .p2align 3
1394 .L284:
1395 rep ret
1396 .LFE94:
1397 .size _IO_unsave_wmarkers, .-_IO_unsave_wmarkers
1398 .weak __stop___libc_IO_vtables
1399 .weak __start___libc_IO_vtables
1400 .hidden _IO_vtable_check
1401 .hidden _IO_un_link
1402 .hidden __wmempcpy
1403 .hidden __wmemmove
1404 .hidden __wmemcpy