clarify the purpose of this project
[nyanglibc.git] / iconv / gconv_conf.s.in
blob1294da2aed61b3f65540ff5f38d4f0d61c5059e9
1 .text
2 .section .rodata.str1.8,"aMS",@progbits,1
3 .align 8
4 .LC0:
5 .string "/root/wip/nyanglibc/fork/iconv/gconv_conf.c"
6 .section .rodata.str1.1,"aMS",@progbits,1
7 .LC1:
8 .string "result == NULL"
9 .LC2:
10 .string "default_gconv_path[0] == '/'"
11 .LC3:
12 .string ":"
13 .LC4:
14 .string "elem != NULL"
15 .LC5:
16 .string "cwd != NULL"
17 .text
18 .p2align 4,,15
19 .type __gconv_get_path, @function
20 __gconv_get_path:
21 pushq %rbp
22 movq %rsp, %rbp
23 pushq %r15
24 pushq %r14
25 pushq %r13
26 pushq %r12
27 pushq %rbx
28 subq $56, %rsp
29 cmpq $0, __gconv_path_elem(%rip)
30 jne .L28
31 movq __gconv_path_envvar(%rip), %r12
32 movq default_gconv_path_bytes_n(%rip), %rbx
33 testq %r12, %r12
34 je .L29
35 movq %r12, %rdi
36 call strlen
37 leaq 1(%rbx,%rax), %r14
38 movq %rax, %rdx
39 movq %r12, %rsi
40 leaq 30(%r14), %rcx
41 andq $-16, %rcx
42 subq %rcx, %rsp
43 leaq 15(%rsp), %rdi
44 andq $-16, %rdi
45 movq %rdi, -56(%rbp)
46 call __mempcpy@PLT
47 leaq default_gconv_path(%rip), %rsi
48 leaq 1(%rax), %rdi
49 movq %rbx, %rdx
50 movb $58, (%rax)
51 call memcpy@PLT
52 xorl %esi, %esi
53 xorl %edi, %edi
54 call __getcwd
55 testq %rax, %rax
56 movq %rax, %r13
57 je .L18
58 movq %rax, %rdi
59 call strlen
60 movq %rax, -80(%rbp)
61 .L6:
62 cmpb $47, default_gconv_path(%rip)
63 jne .L30
64 movq -56(%rbp), %rax
65 movl $58, %esi
66 movq %rax, %rdi
67 movq %rax, -96(%rbp)
68 call strchr
69 movq %rax, %rbx
70 movq -80(%rbp), %rax
71 addq $1, %rax
72 testq %rbx, %rbx
73 movq %rax, -72(%rbp)
74 je .L19
75 movl $1, %r15d
76 xorl %ecx, %ecx
77 jmp .L10
78 .p2align 4,,10
79 .p2align 3
80 .L21:
81 movq %rax, %rbx
82 .L10:
83 leal 1(%r15), %eax
84 addq $1, %rcx
85 cmpq %rcx, %rbx
86 movl %eax, %r12d
87 je .L9
88 leal 2(%r15), %r12d
89 movl %eax, %r15d
90 .L9:
91 leaq 1(%rbx), %rdi
92 movl $58, %esi
93 call strchr
94 testq %rax, %rax
95 movq %rbx, %rcx
96 jne .L21
97 leal -1(%r15), %edi
98 movslq %r12d, %rax
99 movslq %r15d, %r12
100 salq $4, %rax
101 movslq %edi, %rdi
102 imulq -72(%rbp), %rdi
103 .L8:
104 addq %r12, %rax
105 addq %rax, %r14
106 addq %r14, %rdi
107 call malloc@PLT
108 testq %rax, %rax
109 movq %rax, -88(%rbp)
110 je .L22
111 addq $1, %r12
112 movq -96(%rbp), %rdi
113 leaq .LC3(%rip), %rsi
114 salq $4, %r12
115 movq $0, __gconv_max_path_elem_len(%rip)
116 leaq (%rax,%r12), %r14
117 leaq -56(%rbp), %rax
118 movq %rax, %rdx
119 movq %rax, -72(%rbp)
120 call __strtok_r
121 testq %rax, %rax
122 movq %rax, %r15
123 je .L31
124 movq -88(%rbp), %rbx
125 xorl %r12d, %r12d
126 .p2align 4,,10
127 .p2align 3
128 .L17:
129 movq %r14, (%rbx)
130 cmpb $47, (%r15)
131 je .L13
132 testq %r13, %r13
133 je .L32
134 movq -80(%rbp), %rdx
135 movq %r14, %rdi
136 movq %r13, %rsi
137 call __mempcpy@PLT
138 leaq 1(%rax), %r14
139 movb $47, (%rax)
140 .L13:
141 movq %r15, %rsi
142 movq %r14, %rdi
143 call __stpcpy@PLT
144 cmpb $47, -1(%rax)
145 je .L15
146 movb $47, (%rax)
147 addq $1, %rax
148 .L15:
149 movq %rax, %rdx
150 subq (%rbx), %rdx
151 cmpq __gconv_max_path_elem_len(%rip), %rdx
152 movq %rdx, 8(%rbx)
153 jbe .L16
154 movq %rdx, __gconv_max_path_elem_len(%rip)
155 .L16:
156 movq -72(%rbp), %rdx
157 leaq .LC3(%rip), %rsi
158 xorl %edi, %edi
159 movb $0, (%rax)
160 leaq 1(%rax), %r14
161 addl $1, %r12d
162 addq $16, %rbx
163 call __strtok_r
164 testq %rax, %rax
165 movq %rax, %r15
166 jne .L17
167 movslq %r12d, %r12
168 salq $4, %r12
169 addq -88(%rbp), %r12
170 movq $0, (%r12)
171 movq $0, 8(%r12)
172 .L11:
173 movq -88(%rbp), %rax
174 movq %r13, %rdi
175 movq %rax, __gconv_path_elem(%rip)
176 call free@PLT
177 leaq -40(%rbp), %rsp
178 popq %rbx
179 popq %r12
180 popq %r13
181 popq %r14
182 popq %r15
183 popq %rbp
185 .p2align 4,,10
186 .p2align 3
187 .L22:
188 leaq empty_path_elem(%rip), %rax
189 movq %rax, -88(%rbp)
190 jmp .L11
191 .p2align 4,,10
192 .p2align 3
193 .L29:
194 leaq default_gconv_path(%rip), %rsi
195 movq %rsi, %rax
196 .L4:
197 movl (%rax), %ecx
198 addq $4, %rax
199 leal -16843009(%rcx), %edx
200 notl %ecx
201 andl %ecx, %edx
202 andl $-2139062144, %edx
203 je .L4
204 movl %edx, %ecx
205 movq %rbx, %r14
206 shrl $16, %ecx
207 testl $32896, %edx
208 cmove %ecx, %edx
209 leaq 2(%rax), %rcx
210 cmove %rcx, %rax
211 movl %edx, %ecx
212 addb %dl, %cl
213 sbbq $3, %rax
214 xorl %r13d, %r13d
215 subq %rsi, %rax
216 leaq default_gconv_path(%rip), %rsi
217 leaq 1(%rax), %rdx
218 addq $31, %rax
219 andq $-16, %rax
220 subq %rax, %rsp
221 leaq 15(%rsp), %rdi
222 andq $-16, %rdi
223 call memcpy@PLT
224 movq $0, -80(%rbp)
225 movq %rax, -56(%rbp)
226 jmp .L6
227 .p2align 4,,10
228 .p2align 3
229 .L19:
230 xorl %edi, %edi
231 movl $1, %r12d
232 movl $32, %eax
233 jmp .L8
234 .p2align 4,,10
235 .p2align 3
236 .L18:
237 movq $0, -80(%rbp)
238 jmp .L6
239 .L32:
240 leaq __PRETTY_FUNCTION__.11976(%rip), %rcx
241 leaq .LC0(%rip), %rsi
242 leaq .LC5(%rip), %rdi
243 movl $507, %edx
244 call __assert_fail
245 .L30:
246 leaq __PRETTY_FUNCTION__.11976(%rip), %rcx
247 leaq .LC0(%rip), %rsi
248 leaq .LC2(%rip), %rdi
249 movl $474, %edx
250 call __assert_fail
251 .L28:
252 leaq __PRETTY_FUNCTION__.11976(%rip), %rcx
253 leaq .LC0(%rip), %rsi
254 leaq .LC1(%rip), %rdi
255 movl $439, %edx
256 call __assert_fail
257 .L31:
258 leaq __PRETTY_FUNCTION__.11976(%rip), %rcx
259 leaq .LC0(%rip), %rsi
260 leaq .LC4(%rip), %rdi
261 movl $501, %edx
262 call __assert_fail
263 .size __gconv_get_path, .-__gconv_get_path
264 .section __libc_freeres_fn,"ax",@progbits
265 .p2align 4,,15
266 .type free_mem, @function
267 free_mem:
268 movq __gconv_path_elem(%rip), %rdi
269 testq %rdi, %rdi
270 je .L33
271 leaq empty_path_elem(%rip), %rax
272 cmpq %rax, %rdi
273 je .L33
274 jmp free@PLT
275 .p2align 4,,10
276 .p2align 3
277 .L33:
278 rep ret
279 .size free_mem, .-free_mem
280 .text
281 .p2align 4,,15
282 .type insert_module, @function
283 insert_module:
284 pushq %r15
285 pushq %r14
286 movl %esi, %r14d
287 pushq %r13
288 pushq %r12
289 movq %rdi, %r13
290 pushq %rbp
291 pushq %rbx
292 leaq __gconv_modules_db(%rip), %rbp
293 subq $8, %rsp
294 jmp .L42
295 .p2align 4,,10
296 .p2align 3
297 .L52:
298 movq 0(%r13), %r12
299 movq (%rbx), %rsi
300 movq %r12, %rdi
301 call strcmp
302 testl %eax, %eax
303 je .L70
304 leaq 32(%rbx), %rbp
305 addq $48, %rbx
306 testl %eax, %eax
307 cmovns %rbx, %rbp
308 .L42:
309 movq 0(%rbp), %rbx
310 testq %rbx, %rbx
311 jne .L52
312 .L45:
313 movq %r13, 0(%rbp)
314 .L41:
315 addq $8, %rsp
316 popq %rbx
317 popq %rbp
318 popq %r12
319 popq %r13
320 popq %r14
321 popq %r15
323 .p2align 4,,10
324 .p2align 3
325 .L70:
326 movq 8(%r13), %r15
327 movq 8(%rbx), %rsi
328 movq %r15, %rdi
329 call strcmp
330 testl %eax, %eax
331 je .L71
332 .p2align 4,,10
333 .p2align 3
334 .L46:
335 leaq 40(%rbx), %rbp
336 movq 40(%rbx), %rbx
337 testq %rbx, %rbx
338 je .L45
339 movq (%rbx), %rsi
340 movq %r12, %rdi
341 call strcmp
342 testl %eax, %eax
343 jne .L46
344 movq 8(%rbx), %rsi
345 movq %r15, %rdi
346 call strcmp
347 testl %eax, %eax
348 jne .L46
349 .L71:
350 movl 16(%rbx), %eax
351 cmpl %eax, 16(%r13)
352 jl .L53
353 je .L72
354 .L48:
355 testl %r14d, %r14d
356 je .L41
357 movq %r13, %rdi
358 .L69:
359 addq $8, %rsp
360 popq %rbx
361 popq %rbp
362 popq %r12
363 popq %r13
364 popq %r14
365 popq %r15
366 jmp free@PLT
367 .p2align 4,,10
368 .p2align 3
369 .L72:
370 movl 20(%rbx), %eax
371 cmpl %eax, 20(%r13)
372 jge .L48
373 .L53:
374 movq 32(%rbx), %rax
375 movq %rbx, %rdi
376 movq %rax, 32(%r13)
377 movq 48(%rbx), %rax
378 movq %rax, 48(%r13)
379 movq 40(%rbx), %rax
380 movq %rax, 40(%r13)
381 movq %r13, 0(%rbp)
382 jmp .L69
383 .size insert_module, .-insert_module
384 .p2align 4,,15
385 .type detect_conflict, @function
386 detect_conflict:
387 pushq %rbp
388 pushq %rbx
389 subq $8, %rsp
390 movq __gconv_modules_db(%rip), %rbx
391 testq %rbx, %rbx
392 je .L78
393 movq %rdi, %rbp
394 jmp .L77
395 .p2align 4,,10
396 .p2align 3
397 .L75:
398 movq 48(%rbx), %rbx
399 testq %rbx, %rbx
400 je .L78
401 .L77:
402 movq (%rbx), %rsi
403 movq %rbp, %rdi
404 call strcmp
405 testl %eax, %eax
406 je .L79
407 jns .L75
408 movq 32(%rbx), %rbx
409 testq %rbx, %rbx
410 jne .L77
411 .L78:
412 addq $8, %rsp
413 xorl %eax, %eax
414 popq %rbx
415 popq %rbp
417 .p2align 4,,10
418 .p2align 3
419 .L79:
420 addq $8, %rsp
421 movl $1, %eax
422 popq %rbx
423 popq %rbp
425 .size detect_conflict, .-detect_conflict
426 .p2align 4,,15
427 .type add_module.isra.0, @function
428 add_module.isra.0:
429 pushq %rbp
430 movq %rdx, %r8
431 movq %rsi, %r9
432 movq %rsp, %rbp
433 pushq %r15
434 pushq %r14
435 pushq %r13
436 pushq %r12
437 movq %rdi, %r12
438 pushq %rbx
439 subq $72, %rsp
440 movsbq (%rdi), %rax
441 movq 104+_nl_C_locobj(%rip), %rdx
442 testb $32, 1(%rdx,%rax,2)
443 je .L150
444 .p2align 4,,10
445 .p2align 3
446 .L84:
447 addq $1, %r12
448 movsbq (%r12), %rax
449 testb $32, 1(%rdx,%rax,2)
450 movq %rax, %rsi
451 jne .L84
452 .L83:
453 testb %sil, %sil
454 je .L82
455 movq 120+_nl_C_locobj(%rip), %rsi
456 movq %r12, %rbx
457 jmp .L86
458 .p2align 4,,10
459 .p2align 3
460 .L153:
461 testb $32, 1(%rdx,%rax,2)
462 jne .L152
463 movq %rdi, %rbx
464 .L86:
465 movl (%rsi,%rax,4), %eax
466 leaq 1(%rbx), %rdi
467 movb %al, (%rbx)
468 movsbq 1(%rbx), %rax
469 testb %al, %al
470 jne .L153
471 .L82:
472 leaq -40(%rbp), %rsp
473 popq %rbx
474 popq %r12
475 popq %r13
476 popq %r14
477 popq %r15
478 popq %rbp
480 .p2align 4,,10
481 .p2align 3
482 .L152:
483 movsbq 1(%rdi), %rax
484 addq $2, %rbx
485 movb $0, (%rdi)
486 movq %rbx, %r15
487 testb $32, 1(%rdx,%rax,2)
488 movq %rax, %rdi
489 je .L89
490 .p2align 4,,10
491 .p2align 3
492 .L88:
493 addq $1, %r15
494 movsbq (%r15), %rax
495 testb $32, 1(%rdx,%rax,2)
496 movq %rax, %rdi
497 jne .L88
498 .L89:
499 testb %dil, %dil
500 movq %rbx, %r13
501 jne .L90
502 jmp .L82
503 .p2align 4,,10
504 .p2align 3
505 .L155:
506 testb $32, 1(%rdx,%rax,2)
507 jne .L154
508 movq %r10, %r13
509 .L90:
510 movl (%rsi,%rax,4), %eax
511 leaq 1(%r13), %r10
512 addq $1, %r15
513 movb %al, -1(%r10)
514 movsbq (%r15), %rax
515 testb %al, %al
516 jne .L155
517 jmp .L82
518 .p2align 4,,10
519 .p2align 3
520 .L154:
521 addq $2, %r13
522 movb $0, (%r10)
523 .p2align 4,,10
524 .p2align 3
525 .L92:
526 addq $1, %r15
527 movsbq (%r15), %rsi
528 testb $32, 1(%rdx,%rsi,2)
529 movq %rsi, %rax
530 jne .L92
531 testb %sil, %sil
532 je .L108
533 movq %r13, %r14
534 jmp .L94
535 .p2align 4,,10
536 .p2align 3
537 .L157:
538 movsbq %al, %rdi
539 testb $32, 1(%rdx,%rdi,2)
540 jne .L156
541 movq %rsi, %r14
542 .L94:
543 leaq 1(%r14), %rsi
544 addq $1, %r15
545 movb %al, -1(%rsi)
546 movzbl (%r15), %eax
547 testb %al, %al
548 jne .L157
549 .L93:
550 leaq 1(%rsi), %r14
551 movb $0, (%rsi)
552 movl $1, %r11d
553 .L101:
554 movzbl 1(%r10), %eax
555 testb %al, %al
556 je .L82
557 cmpb $47, %al
558 movl $0, %eax
559 movl $3, %r15d
560 cmove %rax, %r8
561 movq %r14, %rax
562 subq %r13, %rax
563 cmpq $3, %rax
564 movq %rax, -104(%rbp)
565 jle .L97
566 xorl %r15d, %r15d
567 cmpl $7303982, -4(%r14)
568 setne %r15b
569 leal (%r15,%r15,2), %r15d
570 .L97:
571 movq %rbx, %rax
572 movq %r12, %rdi
573 movq %r8, -88(%rbp)
574 subq %r12, %rax
575 movq %r9, -80(%rbp)
576 movl %r11d, -72(%rbp)
577 movq %rax, %rsi
578 movl %ecx, -92(%rbp)
579 movq %rax, -112(%rbp)
580 call __strnlen
581 leaq 31(%rax), %rdx
582 movq %r12, %rsi
583 andq $-16, %rdx
584 subq %rdx, %rsp
585 movq %rax, %rdx
586 leaq 15(%rsp), %rdi
587 andq $-16, %rdi
588 movb $0, (%rdi,%rax)
589 call memcpy@PLT
590 leaq -64(%rbp), %rdi
591 leaq __gconv_alias_compare(%rip), %rdx
592 leaq __gconv_alias_db(%rip), %rsi
593 movq %rax, -64(%rbp)
594 call __tfind
595 testq %rax, %rax
596 movl -72(%rbp), %r11d
597 movq -80(%rbp), %r9
598 movq -88(%rbp), %r8
599 jne .L82
600 subq %r12, %r14
601 movslq %r15d, %rax
602 movl $1, %edi
603 leaq 56(%r8,%r14), %rsi
604 movq %r9, -88(%rbp)
605 movl %r11d, -80(%rbp)
606 movq %r8, -72(%rbp)
607 addq %rax, %rsi
608 call calloc@PLT
609 testq %rax, %rax
610 movq %rax, %r14
611 je .L82
612 leaq 56(%rax), %rdi
613 movq -112(%rbp), %rdx
614 movq %r12, %rsi
615 movq %rdi, (%rax)
616 call __mempcpy@PLT
617 movq %r13, %rdx
618 movq %rax, 8(%r14)
619 movq %rbx, %rsi
620 subq %rbx, %rdx
621 movq %rax, %rdi
622 call __mempcpy@PLT
623 movq -72(%rbp), %r8
624 movl -80(%rbp), %r11d
625 movl -92(%rbp), %ecx
626 movq %rax, 24(%r14)
627 movq -88(%rbp), %r9
628 testq %r8, %r8
629 movl %r11d, 16(%r14)
630 movl %ecx, 20(%r14)
631 je .L98
632 movq %r8, %rdx
633 movq %r9, %rsi
634 movq %rax, %rdi
635 call __mempcpy@PLT
636 .L98:
637 movq -104(%rbp), %rdx
638 movq %r13, %rsi
639 movq %rax, %rdi
640 call __mempcpy@PLT
641 testl %r15d, %r15d
642 je .L99
643 movl $7303982, -1(%rax)
644 .L99:
645 movl $1, %esi
646 movq %r14, %rdi
647 call insert_module
648 jmp .L82
649 .p2align 4,,10
650 .p2align 3
651 .L150:
652 movq %rax, %rsi
653 jmp .L83
654 .p2align 4,,10
655 .p2align 3
656 .L156:
657 movb $0, (%rsi)
658 leaq -64(%rbp), %rsi
659 movl $10, %edx
660 movq %r15, %rdi
661 movl %ecx, -92(%rbp)
662 movq %r8, -88(%rbp)
663 movq %r9, -80(%rbp)
664 movq %r10, -72(%rbp)
665 call strtol
666 cmpq %r15, -64(%rbp)
667 movl %eax, %r11d
668 movq -72(%rbp), %r10
669 movq -80(%rbp), %r9
670 movq -88(%rbp), %r8
671 movl -92(%rbp), %ecx
672 je .L114
673 testl %eax, %eax
674 jle .L114
675 .L102:
676 addq $2, %r14
677 jmp .L101
678 .p2align 4,,10
679 .p2align 3
680 .L114:
681 movl $1, %r11d
682 jmp .L102
683 .L108:
684 movq %r13, %rsi
685 jmp .L93
686 .size add_module.isra.0, .-add_module.isra.0
687 .p2align 4,,15
688 .type add_alias2.isra.1.part.2, @function
689 add_alias2.isra.1.part.2:
690 pushq %r13
691 subq %rdi, %rdx
692 pushq %r12
693 pushq %rbp
694 pushq %rbx
695 movq %rdi, %r12
696 leaq 16(%rdx), %rdi
697 movq %rsi, %r13
698 movq %rdx, %rbp
699 subq $8, %rsp
700 call malloc@PLT
701 testq %rax, %rax
702 je .L158
703 leaq 16(%rax), %rdi
704 movq %rax, %rbx
705 movq %rbp, %rdx
706 movq %r12, %rsi
707 subq %r12, %r13
708 call memcpy@PLT
709 leaq __gconv_alias_compare(%rip), %rdx
710 movq %rax, (%rbx)
711 leaq __gconv_alias_db(%rip), %rsi
712 addq %r13, %rax
713 movq %rbx, %rdi
714 movq %rax, 8(%rbx)
715 call __tsearch
716 testq %rax, %rax
717 je .L161
718 cmpq (%rax), %rbx
719 je .L158
720 .L161:
721 addq $8, %rsp
722 movq %rbx, %rdi
723 popq %rbx
724 popq %rbp
725 popq %r12
726 popq %r13
727 jmp free@PLT
728 .p2align 4,,10
729 .p2align 3
730 .L158:
731 addq $8, %rsp
732 popq %rbx
733 popq %rbp
734 popq %r12
735 popq %r13
737 .size add_alias2.isra.1.part.2, .-add_alias2.isra.1.part.2
738 .section .rodata.str1.1
739 .LC6:
740 .string "rce"
741 .LC7:
742 .string "alias"
743 .LC8:
744 .string "module"
745 .text
746 .p2align 4,,15
747 .type __gconv_read_conf, @function
748 __gconv_read_conf:
749 pushq %rbp
750 movq %rsp, %rbp
751 pushq %r15
752 pushq %r14
753 pushq %r13
754 pushq %r12
755 pushq %rbx
756 subq $104, %rsp
757 movq __libc_errno@gottpoff(%rip), %rax
758 movl %fs:(%rax), %ebx
759 movl %ebx, -116(%rbp)
760 call __gconv_load_cache
761 testl %eax, %eax
762 jne .L168
763 movq __libc_errno@gottpoff(%rip), %rax
764 movl %ebx, %fs:(%rax)
765 leaq -40(%rbp), %rsp
766 popq %rbx
767 popq %r12
768 popq %r13
769 popq %r14
770 popq %r15
771 popq %rbp
773 .L168:
774 call __gconv_get_path
775 movq __gconv_path_elem(%rip), %rax
776 leaq -64(%rbp), %r12
777 movq (%rax), %rsi
778 testq %rsi, %rsi
779 movq %rsi, -96(%rbp)
780 je .L170
781 leaq -64(%rbp), %r12
782 movq 104+_nl_C_locobj(%rip), %r15
783 movq $16, -104(%rbp)
784 movq %r12, -88(%rbp)
785 .p2align 4,,10
786 .p2align 3
787 .L200:
788 movq 8(%rax), %rdx
789 movq -96(%rbp), %rsi
790 leaq 44(%rdx), %rax
791 movq %rdx, -112(%rbp)
792 andq $-16, %rax
793 subq %rax, %rsp
794 leaq 15(%rsp), %rbx
795 andq $-16, %rbx
796 movq %rbx, %rdi
797 call __mempcpy@PLT
798 movabsq $8029123697353646951, %rsi
799 movl $115, %edx
800 movq %rbx, %rdi
801 movq %rsi, (%rax)
802 leaq .LC6(%rip), %rsi
803 movl $1701606756, 8(%rax)
804 movw %dx, 12(%rax)
805 call _IO_new_fopen@PLT
806 testq %rax, %rax
807 movq %rax, %rbx
808 movq $0, -72(%rbp)
809 movq $0, -64(%rbp)
810 je .L174
811 movl (%rax), %eax
812 leaq -72(%rbp), %r13
813 orb $-128, %ah
814 testb $16, %al
815 movl %eax, (%rbx)
816 jne .L199
817 .p2align 4,,10
818 .p2align 3
819 .L198:
820 movq -88(%rbp), %rsi
821 movq %rbx, %rcx
822 movl $10, %edx
823 movq %r13, %rdi
824 call _IO_getdelim@PLT
825 testq %rax, %rax
826 movq %rax, %r14
827 js .L199
828 movq -72(%rbp), %r12
829 movl $35, %esi
830 movq %r12, %rdi
831 call strchr
832 testq %rax, %rax
833 je .L175
834 movb $0, (%rax)
835 jmp .L247
836 .p2align 4,,10
837 .p2align 3
838 .L176:
839 addq $1, %r12
840 .L247:
841 movsbq (%r12), %rdx
842 testb $32, 1(%r15,%rdx,2)
843 jne .L176
844 cmpq %r12, %rax
845 je .L180
846 movsbq (%r12), %rax
847 testb %al, %al
848 je .L180
849 testb $32, 1(%r15,%rax,2)
850 jne .L180
851 movq %r12, %r8
852 jmp .L184
853 .p2align 4,,10
854 .p2align 3
855 .L182:
856 testb $32, 1(%r15,%rax,2)
857 jne .L248
858 .L184:
859 addq $1, %r8
860 movsbq (%r8), %rax
861 testb %al, %al
862 jne .L182
863 .L248:
864 movq %r8, %rax
865 subq %r12, %rax
866 cmpq $5, %rax
867 je .L249
868 cmpq $6, %rax
869 jne .L180
870 cmpl $1969516397, (%r12)
871 je .L250
872 .p2align 4,,10
873 .p2align 3
874 .L180:
875 movl (%rbx), %eax
876 .L252:
877 testb $16, %al
878 je .L198
879 .L199:
880 movq -72(%rbp), %rdi
881 call free@PLT
882 movq %rbx, %rdi
883 call _IO_new_fclose@PLT
884 .L174:
885 movq -104(%rbp), %rdi
886 movq __gconv_path_elem(%rip), %rax
887 addq %rdi, %rax
888 addq $16, %rdi
889 movq (%rax), %rcx
890 movq %rdi, -104(%rbp)
891 testq %rcx, %rcx
892 movq %rcx, -96(%rbp)
893 jne .L200
894 movq -88(%rbp), %r12
895 .L170:
896 leaq builtin_modules(%rip), %r14
897 leaq __gconv_alias_compare(%rip), %rbx
898 leaq 672(%r14), %r13
899 jmp .L203
900 .p2align 4,,10
901 .p2align 3
902 .L202:
903 addq $56, %r14
904 cmpq %r14, %r13
905 je .L251
906 .L203:
907 movq (%r14), %rax
908 leaq __gconv_alias_db(%rip), %rsi
909 movq %rbx, %rdx
910 movq %r12, %rdi
911 movq %rax, -64(%rbp)
912 call __tfind
913 testq %rax, %rax
914 jne .L202
915 xorl %esi, %esi
916 movq %r14, %rdi
917 addq $56, %r14
918 call insert_module
919 cmpq %r14, %r13
920 jne .L203
921 .L251:
922 leaq builtin_aliases(%rip), %r12
923 .p2align 4,,10
924 .p2align 3
925 .L205:
926 xorl %esi, %esi
927 movq %r12, %rdi
928 call __rawmemchr
929 leaq 1(%rax), %rbx
930 xorl %esi, %esi
931 movq %rbx, %rdi
932 call __rawmemchr
933 movq %r12, %rdi
934 movq %rax, %r13
935 leaq 1(%rax), %r14
936 call detect_conflict
937 testl %eax, %eax
938 jne .L204
939 movq %r14, %rdx
940 movq %rbx, %rsi
941 movq %r12, %rdi
942 call add_alias2.isra.1.part.2
943 .L204:
944 cmpb $0, 1(%r13)
945 movq %r14, %r12
946 jne .L205
947 movl -116(%rbp), %esi
948 movq __libc_errno@gottpoff(%rip), %rax
949 movl %esi, %fs:(%rax)
950 leaq -40(%rbp), %rsp
951 popq %rbx
952 popq %r12
953 popq %r13
954 popq %r14
955 popq %r15
956 popq %rbp
958 .p2align 4,,10
959 .p2align 3
960 .L250:
961 cmpw $25964, 4(%r12)
962 jne .L180
963 movl modcounter.11956(%rip), %ecx
964 movq -112(%rbp), %rdx
965 movq %r8, %rdi
966 movq -96(%rbp), %rsi
967 leal 1(%rcx), %eax
968 movl %eax, modcounter.11956(%rip)
969 call add_module.isra.0
970 movl (%rbx), %eax
971 jmp .L252
972 .p2align 4,,10
973 .p2align 3
974 .L175:
975 leaq -1(%r12,%r14), %rdx
976 cmpb $10, (%rdx)
977 jne .L247
978 movb $0, (%rdx)
979 jmp .L247
980 .p2align 4,,10
981 .p2align 3
982 .L249:
983 cmpl $1634298977, (%r12)
984 jne .L180
985 cmpb $115, 4(%r12)
986 jne .L180
987 movsbq (%r8), %rax
988 testb $32, 1(%r15,%rax,2)
989 movq %rax, %rcx
990 je .L188
991 .p2align 4,,10
992 .p2align 3
993 .L189:
994 addq $1, %r8
995 movsbq (%r8), %rax
996 testb $32, 1(%r15,%rax,2)
997 movq %rax, %rcx
998 jne .L189
999 .L188:
1000 testb %cl, %cl
1001 movq %r8, %rdx
1002 jne .L190
1003 jmp .L180
1004 .p2align 4,,10
1005 .p2align 3
1006 .L254:
1007 testb $32, 1(%r15,%rax,2)
1008 jne .L253
1009 movq %rcx, %rdx
1010 .L190:
1011 movq 120+_nl_C_locobj(%rip), %rsi
1012 leaq 1(%rdx), %rcx
1013 movl (%rsi,%rax,4), %eax
1014 movb %al, -1(%rcx)
1015 movsbq 1(%rdx), %rax
1016 testb %al, %al
1017 jne .L254
1018 jmp .L180
1019 .L253:
1020 movsbq 1(%rcx), %rax
1021 movb $0, (%rcx)
1022 leaq 2(%rdx), %r12
1023 movq %r12, %rdx
1024 testb $32, 1(%r15,%rax,2)
1025 movq %rax, %rcx
1026 je .L193
1027 .p2align 4,,10
1028 .p2align 3
1029 .L192:
1030 addq $1, %rdx
1031 movsbq (%rdx), %rax
1032 testb $32, 1(%r15,%rax,2)
1033 movq %rax, %rcx
1034 jne .L192
1035 .L193:
1036 testb %cl, %cl
1037 movq %r12, %rsi
1038 jne .L195
1039 jmp .L180
1040 .p2align 4,,10
1041 .p2align 3
1042 .L255:
1043 testb $32, 1(%r15,%rax,2)
1044 jne .L194
1045 movq %rcx, %rsi
1046 .L195:
1047 movq 120+_nl_C_locobj(%rip), %rdi
1048 leaq 1(%rsi), %rcx
1049 addq $1, %rdx
1050 movl (%rdi,%rax,4), %eax
1051 movb %al, -1(%rcx)
1052 movsbq (%rdx), %rax
1053 testb %al, %al
1054 jne .L255
1055 .L194:
1056 cmpq %rcx, %r12
1057 movq %rsi, -128(%rbp)
1058 je .L180
1059 movq %r8, %rdi
1060 movb $0, (%rcx)
1061 movq %r8, -136(%rbp)
1062 call detect_conflict
1063 testl %eax, %eax
1064 movq -136(%rbp), %r8
1065 movq -128(%rbp), %rsi
1066 jne .L180
1067 leaq 2(%rsi), %rdx
1068 movq %r8, %rdi
1069 movq %r12, %rsi
1070 call add_alias2.isra.1.part.2
1071 movl (%rbx), %eax
1072 jmp .L252
1073 .size __gconv_read_conf, .-__gconv_read_conf
1074 .p2align 4,,15
1075 .globl __gconv_load_conf
1076 .hidden __gconv_load_conf
1077 .type __gconv_load_conf, @function
1078 __gconv_load_conf:
1079 cmpq $0, __pthread_once@GOTPCREL(%rip)
1080 jne .L263
1081 movl once(%rip), %eax
1082 testl %eax, %eax
1083 je .L264
1084 rep ret
1085 .p2align 4,,10
1086 .p2align 3
1087 .L263:
1088 leaq __gconv_read_conf(%rip), %rsi
1089 leaq once(%rip), %rdi
1090 jmp __pthread_once@PLT
1091 .p2align 4,,10
1092 .p2align 3
1093 .L264:
1094 subq $8, %rsp
1095 call __gconv_read_conf
1096 orl $2, once(%rip)
1097 addq $8, %rsp
1099 .size __gconv_load_conf, .-__gconv_load_conf
1100 .local modcounter.11956
1101 .comm modcounter.11956,4,4
1102 .section .rodata.str1.16,"aMS",@progbits,1
1103 .align 16
1104 .type __PRETTY_FUNCTION__.11976, @object
1105 .size __PRETTY_FUNCTION__.11976, 17
1106 __PRETTY_FUNCTION__.11976:
1107 .string "__gconv_get_path"
1108 .section __libc_subfreeres,"aw",@progbits
1109 .align 8
1110 .type __elf_set___libc_subfreeres_element_free_mem__, @object
1111 .size __elf_set___libc_subfreeres_element_free_mem__, 8
1112 __elf_set___libc_subfreeres_element_free_mem__:
1113 .quad free_mem
1114 .local once
1115 .comm once,4,4
1116 .hidden __gconv_path_envvar
1117 .comm __gconv_path_envvar,8,8
1118 .section .rodata
1119 .align 32
1120 .type builtin_aliases, @object
1121 .size builtin_aliases, 999
1122 builtin_aliases:
1123 .string "UCS4//"
1124 .string "ISO-10646/UCS4/"
1125 .string "UCS-4//"
1126 .string "ISO-10646/UCS4/"
1127 .string "UCS-4BE//"
1128 .string "ISO-10646/UCS4/"
1129 .string "CSUCS4//"
1130 .string "ISO-10646/UCS4/"
1131 .string "ISO-10646//"
1132 .string "ISO-10646/UCS4/"
1133 .string "10646-1:1993//"
1134 .string "ISO-10646/UCS4/"
1135 .string "10646-1:1993/UCS4/"
1136 .string "ISO-10646/UCS4/"
1137 .string "OSF00010104//"
1138 .string "ISO-10646/UCS4/"
1139 .string "OSF00010105//"
1140 .string "ISO-10646/UCS4/"
1141 .string "OSF00010106//"
1142 .string "ISO-10646/UCS4/"
1143 .string "WCHAR_T//"
1144 .string "INTERNAL"
1145 .string "UTF8//"
1146 .string "ISO-10646/UTF8/"
1147 .string "UTF-8//"
1148 .string "ISO-10646/UTF8/"
1149 .string "ISO-IR-193//"
1150 .string "ISO-10646/UTF8/"
1151 .string "OSF05010001//"
1152 .string "ISO-10646/UTF8/"
1153 .string "ISO-10646/UTF-8/"
1154 .string "ISO-10646/UTF8/"
1155 .string "UCS2//"
1156 .string "ISO-10646/UCS2/"
1157 .string "UCS-2//"
1158 .string "ISO-10646/UCS2/"
1159 .string "OSF00010100//"
1160 .string "ISO-10646/UCS2/"
1161 .string "OSF00010101//"
1162 .string "ISO-10646/UCS2/"
1163 .string "OSF00010102//"
1164 .string "ISO-10646/UCS2/"
1165 .string "ANSI_X3.4//"
1166 .string "ANSI_X3.4-1968//"
1167 .string "ISO-IR-6//"
1168 .string "ANSI_X3.4-1968//"
1169 .string "ANSI_X3.4-1986//"
1170 .string "ANSI_X3.4-1968//"
1171 .string "ISO_646.IRV:1991//"
1172 .string "ANSI_X3.4-1968//"
1173 .string "ASCII//"
1174 .string "ANSI_X3.4-1968//"
1175 .string "ISO646-US//"
1176 .string "ANSI_X3.4-1968//"
1177 .string "US-ASCII//"
1178 .string "ANSI_X3.4-1968//"
1179 .string "US//"
1180 .string "ANSI_X3.4-1968//"
1181 .string "IBM367//"
1182 .string "ANSI_X3.4-1968//"
1183 .string "CP367//"
1184 .string "ANSI_X3.4-1968//"
1185 .string "CSASCII//"
1186 .string "ANSI_X3.4-1968//"
1187 .string "OSF00010020//"
1188 .string "ANSI_X3.4-1968//"
1189 .string "UNICODELITTLE//"
1190 .string "ISO-10646/UCS2/"
1191 .string "UCS-2LE//"
1192 .string "ISO-10646/UCS2/"
1193 .string "UCS-2BE//"
1194 .string "UNICODEBIG//"
1195 .string ""
1196 .section .rodata.str1.1
1197 .LC9:
1198 .string "INTERNAL"
1199 .LC10:
1200 .string "ISO-10646/UCS4/"
1201 .LC11:
1202 .string "=INTERNAL->ucs4"
1203 .LC12:
1204 .string "=ucs4->INTERNAL"
1205 .LC13:
1206 .string "UCS-4LE//"
1207 .LC14:
1208 .string "=INTERNAL->ucs4le"
1209 .LC15:
1210 .string "=ucs4le->INTERNAL"
1211 .LC16:
1212 .string "ISO-10646/UTF8/"
1213 .LC17:
1214 .string "=INTERNAL->utf8"
1215 .LC18:
1216 .string "=utf8->INTERNAL"
1217 .LC19:
1218 .string "ISO-10646/UCS2/"
1219 .LC20:
1220 .string "=ucs2->INTERNAL"
1221 .LC21:
1222 .string "=INTERNAL->ucs2"
1223 .LC22:
1224 .string "ANSI_X3.4-1968//"
1225 .LC23:
1226 .string "=ascii->INTERNAL"
1227 .LC24:
1228 .string "=INTERNAL->ascii"
1229 .LC25:
1230 .string "UNICODEBIG//"
1231 .LC26:
1232 .string "=ucs2reverse->INTERNAL"
1233 .LC27:
1234 .string "=INTERNAL->ucs2reverse"
1235 .section .data.rel.local,"aw",@progbits
1236 .align 32
1237 .type builtin_modules, @object
1238 .size builtin_modules, 672
1239 builtin_modules:
1240 .quad .LC9
1241 .quad .LC10
1242 .long 1
1243 .long 2147483647
1244 .quad .LC11
1245 .zero 24
1246 .quad .LC10
1247 .quad .LC9
1248 .long 1
1249 .long 2147483647
1250 .quad .LC12
1251 .zero 24
1252 .quad .LC9
1253 .quad .LC13
1254 .long 1
1255 .long 2147483647
1256 .quad .LC14
1257 .zero 24
1258 .quad .LC13
1259 .quad .LC9
1260 .long 1
1261 .long 2147483647
1262 .quad .LC15
1263 .zero 24
1264 .quad .LC9
1265 .quad .LC16
1266 .long 1
1267 .long 2147483647
1268 .quad .LC17
1269 .zero 24
1270 .quad .LC16
1271 .quad .LC9
1272 .long 1
1273 .long 2147483647
1274 .quad .LC18
1275 .zero 24
1276 .quad .LC19
1277 .quad .LC9
1278 .long 1
1279 .long 2147483647
1280 .quad .LC20
1281 .zero 24
1282 .quad .LC9
1283 .quad .LC19
1284 .long 1
1285 .long 2147483647
1286 .quad .LC21
1287 .zero 24
1288 .quad .LC22
1289 .quad .LC9
1290 .long 1
1291 .long 2147483647
1292 .quad .LC23
1293 .zero 24
1294 .quad .LC9
1295 .quad .LC22
1296 .long 1
1297 .long 2147483647
1298 .quad .LC24
1299 .zero 24
1300 .quad .LC25
1301 .quad .LC9
1302 .long 1
1303 .long 2147483647
1304 .quad .LC26
1305 .zero 24
1306 .quad .LC9
1307 .quad .LC25
1308 .long 1
1309 .long 2147483647
1310 .quad .LC27
1311 .zero 24
1312 .section .rodata.cst16,"aM",@progbits,16
1313 .align 16
1314 .type empty_path_elem, @object
1315 .size empty_path_elem, 16
1316 empty_path_elem:
1317 .zero 16
1318 .comm __gconv_max_path_elem_len,8,8
1319 .comm __gconv_path_elem,8,8
1320 .globl default_gconv_path_bytes_n
1321 .data
1322 .align 8
1323 .type default_gconv_path_bytes_n, @object
1324 .size default_gconv_path_bytes_n, 8
1325 default_gconv_path_bytes_n:
1326 .quad CONF_DEFAULT_GCONV_PATH_STR_BYTES_N
1327 .globl default_gconv_path
1328 .align 32
1329 .type default_gconv_path, @object
1330 .size default_gconv_path, CONF_DEFAULT_GCONV_PATH_STR_BYTES_N
1331 default_gconv_path:
1332 .string "CONF_DEFAULT_GCONV_PATH_STR"
1333 .weak __pthread_once
1334 .hidden __rawmemchr
1335 .hidden __gconv_load_cache
1336 .hidden __tsearch
1337 .hidden strtol
1338 .hidden __tfind
1339 .hidden __gconv_alias_db
1340 .hidden __gconv_alias_compare
1341 .hidden __strnlen
1342 .hidden _nl_C_locobj
1343 .hidden strcmp
1344 .hidden __gconv_modules_db
1345 .hidden __assert_fail
1346 .hidden __strtok_r
1347 .hidden strchr
1348 .hidden __getcwd
1349 .hidden strlen